HTB Knife. Эксплуатируем нашумевший бэкдор в языке PHP

Содержание статьи

  • Разведка
  • Сканирование портов
  • Точка опоры
  • Локальное повышение привилегий

Се­год­ня мы с тобой прой­дем лег­кую машину под наз­вани­ем Knife с пло­щад­ки Hack The Box. Ее изю­мин­ка — это поразив­ший всех, но быс­тро обна­ружен­ный и запат­ченный бэк­дор в PHP 8.1.0-dev. Мы раз­берем­ся, что же все‑таки делать, если вдруг попалась такая экзо­тика, а так­же прой­дем весь путь от поис­ка уяз­вимос­тей до зах­вата хос­та.

warning

Под­клю­чать­ся к машинам с HTB рекомен­дует­ся толь­ко через VPN. Не делай это­го с компь­юте­ров, где есть важ­ные для тебя дан­ные, так как ты ока­жешь­ся в общей сети с дру­гими учас­тни­ками.

 

Разведка

 

Сканирование портов

До­бав­ляем IP машины в /etc/hosts, что­бы даль­ше обра­щать­ся по удоб­ному адре­су и не печатать IP.

10.10.10.242 knife.htb

И ска­ниру­ем пор­ты.

Справка: сканирование портов

Ска­ниро­вание пор­тов — стан­дар­тный пер­вый шаг при любой ата­ке. Он поз­воля­ет ата­кующе­му узнать, какие служ­бы на хос­те при­нима­ют соеди­нение. На осно­ве этой информа­ции выбира­ется сле­дующий шаг к получе­нию точ­ки вхо­да.

На­ибо­лее извес­тный инс­тру­мент для ска­ниро­вания — это Nmap. Улуч­шить резуль­таты его работы ты можешь при помощи сле­дующе­го скрип­та.

#!/bin/bashports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr 'n' ',' | sed s/,$//)nmap -p$ports -A $1

Он дей­ству­ет в два эта­па. На пер­вом про­изво­дит­ся обыч­ное быс­трое ска­ниро­вание, на вто­ром — более тща­тель­ное ска­ниро­вание, с исполь­зовани­ем име­ющих­ся скрип­тов (опция -A).

Ре­зуль­тат ска­ниро­вания

Мы наб­люда­ем два откры­тых пор­та: 22 (служ­ба SSH) и 80 (Apache 2.4.41). На SSH нам пока делать нечего, поэто­му будем изу­чать сайт.

Глав­ная стра­ница сай­та

На самом сай­те не находим ничего инте­рес­ного — там есть нес­коль­ко скрип­тов на JS, но они для нас бес­полез­ны.

Нам нуж­но про­вес­ти более глу­бокий ана­лиз. Для это­го есть, к при­меру, ути­лита WhatWeb — она рас­позна­ет веб‑тех­нологии, в том чис­ле сис­тему управле­ния кон­тентом (CMS), плат­формы для ведения бло­гов, пакеты ста­тис­тики и ана­лити­ки, биб­лиоте­ки JavaScript, веб‑сер­веры и дру­гие вещи. К тому же к WhatWeb есть более 1700 пла­гинов, которые мож­но исполь­зовать в агрессив­ном режиме ска­ниро­вания. Но если запус­тить прог­рамму с нас­трой­ками по умол­чанию, то будет выпол­нен все­го один зап­рос.

Ре­зуль­тат ска­ниро­вания WhatWeb

Из всей пред­став­ленной информа­ции наибо­лее инте­ресен заголо­вок X-Powered-By, по которо­му опре­делим вер­сию PHP 8.1.0-dev. Сло­во dev озна­чает, что вер­сия PHP тес­товая, а зна­чит, в ней могут быть уяз­вимос­ти. Поищем их!

Справка: поиск готовых эксплоитов

При пен­тесте луч­ше все­го искать экс­пло­иты при помощи Google, пос­коль­ку этот поис­ковик заг­лядыва­ет и в лич­ные бло­ги, и в самые раз­ные отче­ты. Уско­рят дело спе­циали­зиро­ван­ные базы вро­де Exploit-DB — там час­то мож­но обна­ружить под­ходящие вари­анты. Если ты работа­ешь в спе­циали­зиро­ван­ной ОС вро­де Kali Linux, то эта база у тебя уже есть и для поис­ка мож­но исполь­зовать ути­литу searchsploit.

По­иск экс­пло­итов для PHP 8.1.0-dev

Это как раз тот слу­чай, ког­да searchsploit нам не помог­ла, а вот в Google уда­лось най­ти кое‑что инте­рес­ное.

 

Точка опоры

Вер­сия PHP 8.1.0-dev была выпуще­на с бэк­дором, но раз­работ­чики быс­тро обна­ружи­ли его и уда­лили в релизе.

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *