![image](https://habrastorage.org/webt/mx/ij/xo/mxijxohzlp-buxaeq4s90lovizq.png)
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье много поработаем с FTP и DNS, проэксплуатируем SQLi в сервисе whois, а также пройдемся по следам другого взлома, а именно найдем шелл, подберем параметр, и поанализируем логи и дамп трафика.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.155, который я добавляю в /etc/hosts.
10.10.10.155 scavenger.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.155 --rate=500
![image](https://habrastorage.org/webt/p6/px/fj/p6pxfjxxqyawt3wvchaf-xkza1s.png)
Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A scavenger.htb -p 21,22,25,43,53,80
![image](https://habrastorage.org/webt/fu/vs/fz/fuvsfz2spcz-yirzbal3lj0fil0.png)
Из вывода nmap можно обнаружить, что на хосте работают службы FTP, SSH, SMTP (доступна по домену ib01.supersechosting.htb), также служба whois, использующая СУБД MariaDB (засвечено еще одно доменное имя — www.supersechosting.htb), служба DNS и веб-сервер Apache.
Добавляем найденные домены в /etc/hosts.
10.10.10.155 scavenger.htb ib01.supersechosting.htb www.supersechosting.htb
Давайте попробуем найти еще dns-имена. Попробуем сделать Трансфер зоны DNS с помощью dig.
dig axfr supersechosting.htb @10.10.10.155
![image](https://habrastorage.org/webt/xk/i5/90/xki590a5txjkz1vvkwxochiyo1m.png)
Добавляем данные записи в /etc/hosts.
10.10.10.155 scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb
Далее пойдем на WHOIS сервис, основное применение которого — получение регистрационных данных о владельцах доменных имён, IP-адресов и автономных систем.
![image](https://habrastorage.org/webt/hd/6m/ab/hd6mabgmr5j-u3wswevegt7h8fy.png)
Так как используются SQL базы данных, то отправим запрос с кавычкой и заметим ошибку, выдаваемую сервисом.
![image](https://habrastorage.org/webt/xv/yp/nb/xvypnbcbzpuf5vrw2cgpqab4mje.png)
Таким образом присутствует SQL инъекция.
![image](https://habrastorage.org/webt/jq/h5/k9/jqh5k9i4jxigmpp5wlysksweb9e.png)
Сначала вычисляем количество столбцов, а также ту колонку, которая выводится пользователю.
![image](https://habrastorage.org/webt/wt/rl/ha/wtrlhabotuuknkrbqyoy9cqexkm.png)
Так получаем число колонок — 2, и то что выводится первая. Далее узнаем таблицы и названия колонок.
![image](https://habrastorage.org/webt/pz/mg/cv/pzmgcvdpuisisyxqmyktj_jykay.png)
И теперь читаем все домены, которые знает сервис.
![image](https://habrastorage.org/webt/ts/od/qd/tsodqdubmrc8gm0d9s2pfs9mvpg.png)
Находим новые имена, которые добавляем в /etc/hosts.
10.10.10.155 scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb justanotherblog.htb pwnhats.htb rentahacker.htb
Теперь выполним трансфер зоны с найденного имени.
![image](https://habrastorage.org/webt/1w/s7/8j/1ws78jdgqrqppjscvmn5vfryegy.png)
![image](https://habrastorage.org/webt/zs/l8/do/zsl8doxpgkh5jg8dfgx6pkiaukm.png)
![image](https://habrastorage.org/webt/0u/cm/sn/0ucmsnid0l_z4wkqhntqtrzl2ac.png)
Таким образом, находя новые имена, дополняем файл /etc/hosts
10.10.10.155 scavenger.htb ib01.supersechosting.htb www.supersechosting.htb supersechosting.htb ftp.supersechosting.htb mail1.supersechosting.htb ns1.supersechosting.htb whois.supersechosting.htb justanotherblog.htb pwnhats.htb rentahacker.htb www.justanotherblog.htb www.pwnhats.htb www.rentahacker.htb sec03.rentahacker.htb
Обойдя все сайты, ничего существенного не имеем, кроме одного сообщения с www.rentahacker.htb, из которого делаем вывод, что сервис уже был взломан.
![image](https://habrastorage.org/webt/f5/4w/uc/f54wuct7iq1n-lmisq3no5wlwxw.png)
И переходя к sec03.rentahacker.htb видим тому подтверждение.
![image](https://habrastorage.org/webt/mj/ef/bi/mjefbinble9jgrjwcvlyjsypdzs.png)
Просканируем директории и файлы с помощью gobuster. Укажем словарь из dirb, количество потоков 120, также интересующие коды ответов сервера и допустимую задержку ответа 20 секунд.
gobuster dir -w /usr/share/wordlists/dirb/big.txt -t 120 -e -x php -u http://sec03.rentahacker.htb/ -s "200,204,301,302,307,401" --timeout 20s
![image](https://habrastorage.org/webt/lg/7g/ls/lg7glshnwo7-2e5sokj8ut2c3ui.png)
Находим интересную страницу — shell.php, при обращении к которой, ничего не происходит. Скорее всего это происходит, так как мы обращаемся к странице без параметров. Давайте переберем параметры с помощью wfuzz, указав в параметрах список, и то что количество слов в ответе не должно быть равным 0.
wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt --hw 0 http://sec03.rentahacker.htb/shell.php?FUZZ=id
![image](https://habrastorage.org/webt/7h/id/hm/7hidhmojgishtqplnnvuakr4ppc.png)
Находим параметр, проверим его.
![image](https://habrastorage.org/webt/rj/vc/hm/rjvchm1hxh1edt4yvmk4_jhu5os.png)
Проверим директорию /home.
![image](https://habrastorage.org/webt/qq/bl/oe/qqbloep5ewwumlmh8vb75kp1qsk.png)
Теперь осмотримся в домашней директории пользователя.
![image](https://habrastorage.org/webt/k4/8m/ky/k48mkyehfytidgrzlixttwzdufs.png)
Просматриваем конфиги WordPress и получаем логин и пароль пользователя для подключения к базе данных.
![image](https://habrastorage.org/webt/-j/rv/xl/-jrvxljkd_tfazli6nui_j2mf0g.png)
К SSH данный пароль не подошел, но подошел к ftp и это нам ничего не дало. На хосте работает почтовая служба, поэтому есть смысл проверить сообщения пользователя.
![image](https://habrastorage.org/webt/gh/ur/ko/ghurkoc0ap0msgwwpwkgtk6tf2o.png)
И находим еще одни учетные данные. Скачиваем все что есть на FTP.
wget -m --no-passive ftp://ib01ftp:YhgRt56_Ta@ftp.supersechosting.htb
![image](https://habrastorage.org/webt/fz/ip/hs/fziphsv_pr9pqwvn7cug6fyepuw.png)
Заходим в директорию, в которую скачали файлы и смотрим, что имеем. Там записка, лог и дамп трафика.
![image](https://habrastorage.org/webt/g3/bo/al/g3boal49hisvqz_w6jerxxbspxk.png)
Откроем Wireshark и посмотрим, что там. Судя по логу, нас интересует HTTP сессия, давайте посмотрим все HTTP объекты: Файл -> Экспортировать объекты -> HTTP.
![image](https://habrastorage.org/webt/lo/1d/5z/lo1d5zoqegr_jcgpl08onc__xps.png)
Из всего, что было представлено, сохраним код root.c
![image](https://habrastorage.org/webt/78/qg/n0/78qgn0om3mj9ju61a8y7tleskqi.png)
Далее перейдем в основное окно Wireshark и проверим какие-нибудь учетные данные. Так имеем три POST запроса, в них передается пароль.
![image](https://habrastorage.org/webt/xc/vo/14/xcvo14swlzhxwqkzyhpns5mobtg.png)
Данный пароль подошел для аутентификации в FTP.
![image](https://habrastorage.org/webt/t-/1v/fs/t-1vfslsquhu3mmm8gqjtiowa1k.png)
Также имеется странная директория — “...”. В ней лежал собранный root.ko.
![image](https://habrastorage.org/webt/uk/8z/cp/uk8zcp8qd42dnzyzdtvi7okkqw0.png)
![image](https://habrastorage.org/webt/qm/0-/hh/qm0-hhlx52hzgfon2nzxvrcye4k.png)
Давайте проанализируем исходный код.
![image](https://habrastorage.org/webt/ls/jb/vr/lsjbvreiwvjpmknnf7fjfggkfn4.png)
С самого начала становится ясно, с каким устройством мы имеем дело. Проверим, имеется ли это устройство в системе.
![image](https://habrastorage.org/webt/bi/hw/px/bihwpx254shtons1kcct0uc9nl4.png)
Все верно, устройство есть. В коде нас интересует одна функция, которая после проверки поданной на вход строки, предоставит доступ от имени пользователя с uid равным 0, то есть root.
![image](https://habrastorage.org/webt/4l/8k/vm/4l8kvmwvakrgyzd45h7qjcotb-m.png)
Теперь откроем программу в декомпиляторе и найдем функцию root_write.
![image](https://habrastorage.org/webt/xb/ax/3c/xbax3cn6jpicvakwm3dlclwc_bq.png)
Код немного изменен и вместо строки g0tROot верная строка — g3tPr1v. Вернемся к первоначальному шелу и после получения прав root посмотрим его домашнюю директорию.
![image](https://habrastorage.org/webt/yu/ys/km/yuyskmqwmgdqy-uv1uc6dmjx2dy.png)
Забираем флаг.
![image](https://habrastorage.org/webt/of/el/rj/ofelrjfy0mvkrzr4fxwcuf-9pss.png)
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Ti_Fix
Just a reminder.
Hack The Box Rules:
We expect each and every one of you to comply by the rules. Failure to do so might result in a permanent ban.
7. Dont spoil!
Dont share how you hacked each machine with other members. This includes the invite code generation and all challenges.
Blacklynx
Машина в статусе Retired. Можно публично раскрывать решение.