Ч.2: Active Directory, Windows-сети, SMTP, SNMP
🏢 Что это
Вторая часть сетевых основ — протоколы и технологии, которые чаще всего встречаются в корпоративных сетях. Active Directory, SMB, LDAP, Kerberos — это хлеб пентестера при тестировании Windows-инфраструктуры. Большинство компаний в мире работают на Windows + AD.
📌 Active Directory — мозг Windows-сети
Что это
Active Directory (AD) — централизованная система управления пользователями, компьютерами и ресурсами в Windows-сетях. Один сервер (Domain Controller) контролирует кто куда может заходить, какие права имеет, какие политики действуют.
Аналогия: AD — это отдел кадров + охрана + IT-отдел в одном лице. Он знает всех сотрудников, их должности, в какие комнаты у кого есть доступ, и следит за соблюдением правил.
Основные компоненты
Domain Controller (DC) — сервер, на котором крутится AD. Хранит все учётные записи, пароли (в виде хешей), групповые политики. Компрометация DC = полный контроль над всей сетью.
Domain (Домен) — логическая группа компьютеров и пользователей. Например, corp.company.com. Все машины в домене подчиняются политикам DC.
Forest (Лес) — группа доменов с общей схемой. Один лес может содержать несколько доменов с доверительными отношениями.
Organizational Unit (OU) — контейнер для организации объектов внутри домена. "Отдел продаж", "IT-отдел", "Серверы" — разные OU с разными политиками.
Group Policy (GPO) — набор правил, применяемых к пользователям и компьютерам. Запрет USB, требования к паролю, автозапуск скриптов — всё через GPO.
Аутентификация в AD
NTLM (NT LAN Manager) — старый протокол аутентификации. Использует хеш пароля вместо самого пароля. Уязвим к Pass-the-Hash атаке — если ты получил хеш, можешь аутентифицироваться без знания пароля.
Kerberos — современный протокол аутентификации в AD.
Как работает Kerberos (упрощённо):
1. Пользователь вводит логин/пароль
2. Клиент отправляет запрос на DC (KDC — Key Distribution Center)
3. KDC возвращает TGT (Ticket Granting Ticket) — "паспорт"
4. Когда нужен доступ к ресурсу — клиент предъявляет TGT и получает сервисный тикет
5. Сервисный тикет предъявляется ресурсу (файл-серверу, базе данных)
Аналогия: приходишь на фестиваль, покупаешь браслет на входе (TGT). С браслетом подходишь к любой палатке и получаешь конкретный билет на аттракцион (сервисный тикет). Не нужно каждый раз показывать паспорт.
AD для пентестера — золотая цель
Распространённые атаки:
- Kerberoasting — запрос сервисных тикетов для аккаунтов с SPN (Service Principal Name) и офлайн-взлом их хешей. Не требует привилегий — любой доменный пользователь может это сделать
- AS-REP Roasting — атака на аккаунты без pre-authentication. Получаем хеш без аутентификации
- Pass-the-Hash — используем NTLM-хеш вместо пароля для аутентификации
- Pass-the-Ticket — используем украденный Kerberos-тикет для доступа к ресурсам
- Golden Ticket — подделка TGT с помощью хеша аккаунта krbtgt. Даёт неограниченный доступ ко всему домену
- Silver Ticket — подделка сервисного тикета для конкретного сервиса
- DCSync — имитация репликации между DC для получения хешей всех паролей
Разведка AD:
# Из Linux с Kali
enum4linux -a TARGET_IP # Сбор информации через SMB/LDAP
ldapsearch -x -H ldap://DC_IP # Запрос LDAP-каталога
crackmapexec smb TARGET_IP # Разведка SMB
⚡ SMB — файловые шары Windows
Что это
SMB (Server Message Block) — протокол для доступа к файлам, принтерам и ресурсам в Windows-сетях. Порт 445 (современный) и 139 (через NetBIOS, устаревший).
Аналогия: общая папка на работе, куда все могут складывать и забирать файлы. SMB — это протокол, который управляет этими общими папками.
Версии SMB
- SMBv1 — старый, уязвимый. EternalBlue (MS17-010) через SMBv1 = WannaCry, NotPetya. Должен быть отключён
- SMBv2 — улучшенный, но всё ещё есть уязвимости
- SMBv3 — современный, с шифрованием
SMB для пентестера
# Перечисление шар (доступных папок)
smbclient -L //TARGET_IP -N # -N = без пароля (null session)
# Подключение к шаре
smbclient //TARGET_IP/share_name
# Перечисление через Nmap
nmap --script smb-enum-shares TARGET_IP
# Проверка на EternalBlue
nmap --script smb-vuln-ms17-010 TARGET_IP
# Брутфорс SMB
crackmapexec smb TARGET_IP -u users.txt -p passwords.txt
Null Session — подключение без аутентификации. На старых системах позволяет получить список пользователей, шар, политик паролей.
🔍 LDAP — каталог сети
Что это
LDAP (Lightweight Directory Access Protocol) — протокол для доступа к каталогу (directory). Active Directory использует LDAP для хранения и поиска информации о пользователях, группах, компьютерах.
Порты: 389 (LDAP), 636 (LDAPS — с шифрованием), 3268 (Global Catalog), 3269 (Global Catalog SSL).
Аналогия: если AD — это библиотека, то LDAP — это каталог-картотека, по которой ты ищешь нужную книгу.
Структура LDAP
DC=corp,DC=company,DC=com ← домен
├── OU=Users ← отдел "Пользователи"
│ ├── CN=John Smith ← конкретный пользователь
│ └── CN=Admin ← ещё один пользователь
├── OU=Computers ← компьютеры
│ └── CN=WORKSTATION-01
└── OU=Groups ← группы
└── CN=Domain Admins ← группа администраторов
- DC — Domain Component (часть домена)
- OU — Organizational Unit (подразделение)
- CN — Common Name (имя объекта)
LDAP для пентестера
# Анонимный запрос (если разрешён)
ldapsearch -x -H ldap://DC_IP -b "DC=corp,DC=company,DC=com"
# Поиск пользователей
ldapsearch -x -H ldap://DC_IP -b "DC=corp,DC=company,DC=com" "(objectClass=user)"
# Поиск админов
ldapsearch -x -H ldap://DC_IP -b "DC=corp,DC=company,DC=com" "(memberOf=CN=Domain Admins,CN=Users,DC=corp,DC=company,DC=com)"
Если LDAP принимает анонимные запросы — можно получить полный список пользователей, групп, компьютеров без аутентификации.
⚡ FTP — передача файлов
Что это
FTP (File Transfer Protocol) — старый протокол для передачи файлов. Порт 21 (управление) и 20 (данные). Всё передаётся открытым текстом — логины, пароли, файлы.
Режимы FTP
- Active mode — сервер подключается к клиенту для передачи данных (проблемы с NAT/файрволом)
- Passive mode — клиент подключается к серверу (работает через NAT)
FTP для пентестера
# Подключение
ftp TARGET_IP
# Анонимный вход (если разрешён)
ftp TARGET_IP
# login: anonymous
# password: (пустой или email)
# Через Nmap
nmap --script ftp-anon TARGET_IP # Проверка анонимного доступа
nmap --script ftp-brute TARGET_IP # Брутфорс
# Проверка на уязвимости
nmap --script ftp-vuln* TARGET_IP
Anonymous FTP — если включён, любой может подключиться без пароля и скачивать/загружать файлы. На Metasploitable2 это включено.
vsftpd 2.3.4 backdoor — эта уязвимость легко эксплуатируется. Бэкдор активируется вводом :) в логине.
🔧 SMTP — отправка почты
Что это
SMTP (Simple Mail Transfer Protocol) — протокол для отправки электронной почты. Порт 25 (незашифрованный), 465 (SSL), 587 (TLS).
SMTP для пентестера
# Подключение через telnet
telnet TARGET_IP 25
# Команды SMTP
HELO test.com # Приветствие
VRFY admin # Проверить существует ли пользователь
EXPN admins # Раскрыть список рассылки
MAIL FROM:<test@test.com>
RCPT TO:<admin@target.com>
DATA
Subject: Test
Hello!
.
VRFY — позволяет проверить существование пользователя. Если не отключена — можно перебирать имена пользователей.
Open Relay — SMTP-сервер, который пересылает почту от кого угодно кому угодно. Используется для спама и фишинга.
# Перечисление пользователей через Nmap
nmap --script smtp-enum-users TARGET_IP
# Проверка open relay
nmap --script smtp-open-relay TARGET_IP
🔍 SNMP — мониторинг сети
Что это
SNMP (Simple Network Management Protocol) — протокол для мониторинга и управления сетевыми устройствами. Порт 161 (UDP). Используется на роутерах, коммутаторах, принтерах, серверах.
Community Strings
SNMP использует "community strings" — по сути пароли в открытом тексте:
- public — read-only (чтение). Дефолтное значение
- private — read-write (чтение и запись). Дефолтное значение
Если дефолтные строки не изменены — любой может читать всю информацию об устройстве, а с private — ещё и менять конфигурацию.
Что можно получить через SNMP
- Список запущенных процессов
- Установленное ПО
- Сетевые интерфейсы и IP-адреса
- Таблица маршрутизации
- Открытые TCP/UDP порты
- Имена пользователей
- Системная информация (ОС, аптайм, hostname)
SNMP для пентестера
# Перечисление с community string "public"
snmpwalk -v2c -c public TARGET_IP
# Конкретные данные
snmpwalk -v2c -c public TARGET_IP 1.3.6.1.2.1.1 # Системная информация
snmpwalk -v2c -c public TARGET_IP 1.3.6.1.2.1.25.4 # Запущенные процессы
# Брутфорс community strings
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt TARGET_IP
# Через Nmap
nmap -sU -p 161 --script snmp-info TARGET_IP
SNMP v1/v2c — community strings передаются открытым текстом. Могут быть перехвачены. SNMP v3 — с аутентификацией и шифрованием. Более безопасная версия.
⚡ SSH — безопасный удалённый доступ
Что это
SSH (Secure Shell) — зашифрованный протокол для удалённого управления. Порт 22. Замена Telnet.
Аутентификация в SSH
По паролю — вводишь логин и пароль. Уязвимо к брутфорсу.
По ключу — генерируешь пару ключей (приватный + публичный). Публичный кладёшь на сервер, приватный храниш у себя. Это то, как подключаться к VPS.
# Генерация ключей
ssh-keygen -t ed***** -C "comment"
# Копирование публичного ключа на сервер
ssh-copy-id user@server
# Подключение с явным указанием ключа
ssh -i ~/.ssh/id_ed***** user@server
SSH для пентестера
# Брутфорс (как ты делал на Metasploitable)
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://TARGET_IP
# Через Metasploit
use auxiliary/scanner/ssh/ssh_login
# Перечисление алгоритмов (для поиска слабых)
nmap --script ssh2-enum-algos TARGET_IP
# SSH-туннель (проброс порта)
ssh -L 8080:internal-server:80 user@gateway
# Теперь localhost:8080 → internal-server:80 через gateway
SSH-туннели — мощный инструмент пентестера. Позволяют получить доступ к внутренним сервисам через скомпрометированный хост:
# Локальный проброс — доступ к внутреннему сервису
ssh -L 3306:db-server:3306 user@compromised-host
# Теперь localhost:3306 → db-server:3306
# Динамический проброс (SOCKS-прокси)
ssh -D 9050 user@compromised-host
# Весь трафик через SOCKS на localhost:9050 пойдёт через compromised-host
# Обратный туннель — цель подключается к тебе
ssh -R 4444:localhost:4444 user@attacker-server
🛡 Сетевые устройства
Файрвол (Firewall)
Фильтрует трафик по правилам: разрешить/запретить определённые IP, порты, протоколы.
Типы:
- Packet filter — проверяет заголовки пакетов (IP, порт). Быстрый, но простой. Пример: iptables
- Stateful — отслеживает состояние соединений. Знает, что ответный пакет связан с исходящим запросом
- Application layer (WAF) — проверяет содержимое на уровне приложения. Может блокировать SQL injection, XSS
IDS/IPS
- IDS (Intrusion Detection System) — обнаруживает атаки и оповещает. Как сигнализация — пищит, но не останавливает
- IPS (Intrusion Prevention System) — обнаруживает и блокирует. Как сигнализация + автоматическая блокировка дверей
Примеры: Snort, Suricata, Fail2Ban (блокирует IP после нескольких неудачных попыток входа).
Прокси-сервер
Посредник между клиентом и сервером:
- Forward proxy — клиент → прокси → интернет. Корпоративная фильтрация (например, Zscaler, который можно найти через Shodan)
- Reverse proxy — интернет → прокси → внутренний сервер. Например, Caddy/Nginx/Traefik — это reverse proxy
VPN
Создаёт зашифрованный туннель. Типы:
- Site-to-Site — соединяет две сети (офис с офисом)
- Remote Access — удалённый пользователь подключается к сети (например, Tailscale)
Протоколы: WireGuard, OpenVPN, IPsec, VLESS+XTLS-Reality (для VPN сервисов).
🔧 Сетевые утилиты — инструментарий
Базовые команды
# Информация о своих интерфейсах
ip a # Linux (современный)
ifconfig # Linux (устаревший)
ipconfig # Windows
# Таблица маршрутизации
ip route show # Linux
route print # Windows
# DNS-запросы
nslookup domain.com
dig domain.com
host domain.com
# Проверка соединения
ping TARGET_IP
traceroute TARGET_IP # Linux
tracert TARGET_IP # Windows
# Открытые порты на своей машине
ss -tlnp # Linux
netstat -an # Windows/Linux
# ARP-таблица
arp -a
ip neigh show
# Кто слушает на порту
lsof -i :80 # Linux
Продвинутые инструменты
# Перехват трафика
tcpdump -i eth0 port 80 # CLI
wireshark # GUI
# Сканирование сети
nmap -sV -p- TARGET_IP # Полный скан
masscan -p1-65535 TARGET_IP --rate=1000 # Быстрый скан
# DNS-разведка
fierce --domain target.com # Перебор поддоменов
dnsrecon -d target.com # DNS-разведка
# SMB-разведка
enum4linux -a TARGET_IP
crackmapexec smb TARGET_IP
# SNMP-разведка
snmpwalk -v2c -c public TARGET_IP
🧠 Готовые комбо
Полная разведка цели:
ping TARGET → жив? → nmap -sV -O -p- TARGET → порты и сервисы → searchsploit SERVICE VERSION → эксплойты → dig/nslookup → DNS-разведка → whois → владелец
Разведка Windows-домена:
nmap -p 88,135,139,389,445,636,3268 TARGET → AD? → enum4linux -a TARGET → пользователи, шары → ldapsearch → каталог → crackmapexec smb TARGET → SMB-разведка
Порты → технология:
22 → Linux/SSH. 445 → Windows/SMB. 88 → Kerberos/AD. 389 → LDAP. 3389 → RDP.
53 → DNS. 25 → SMTP. 161 → SNMP. 3306 → MySQL. 6379 → Redis.
Определение "это AD?" по открытым портам:
88 (Kerberos) + 389 (LDAP) + 445 (SMB) + 135 (RPC) + 636 (LDAPS) = почти точно Domain Controller
⚠️ Важные моменты
- Active Directory — приоритетная цель в корпоративном пентесте. Компрометация DC = контроль над всей сетью. Большинство корпоративных пентестов заканчиваются именно на AD
- SMB порт 445 — самый опасный порт Windows. EternalBlue, WannaCry, NotPetya — всё через 445. Если видишь открытый 445 — проверяй MS17-010 первым делом
- NTLM-хеши не нужно расшифровывать. Pass-the-Hash позволяет аутентифицироваться самим хешем. Это уникальная особенность Windows-сетей
- SNMP с community string "public" — это как пароль "password". Но встречается повсеместно на сетевых устройствах
- SSH-туннели — главный инструмент для pivoting. После компрометации одного хоста — через него пробрасываешь доступ ко всей внутренней сети
- Kerberos-тикеты живут 10 часов. Украденный тикет действителен ограниченное время, но Golden Ticket можно сделать на 10 лет
- LDAP часто принимает анонимные запросы. Первым делом проверяй — если работает без пароля, получишь полный каталог домена бесплатно
- FTP — всё открытым текстом. Если перехватишь FTP-трафик — увидишь логины, пароли и файлы в чистом виде