Тёмный рабочий стол с разобранным сетевым коммутатором и перерезанным кабелем. Руки в перчатках держат зонд у UART-разъёма, диагностический экран светится зелёным текстом с кодами уязвимостей.


38 минут от первого SNMP-запроса до пароля domain-админа. Внутренний пентест логистической компании - Nmap показал порт 161/udp с дефолтной community string, и SNMP-сервис радостно выдал имена хостов, интерфейсы и запущенные процессы. Два перехода по SMB-шарам с анонимным доступом, файл passwords.xlsx в открытом виде - домен скомпрометирован. Три сервиса, ни один не настроили. Сложных эксплойтов не понадобилось.

Ключевые термины: что нужно понимать до первой команды​

Прежде чем разбирать конкретные атаки на сетевые протоколы при пентесте - разберёмся с понятиями. Без них дальнейшие команды превращаются в набор букв.

Community string в протоколе SNMP - по сути пароль для доступа к информации об устройстве. Отправляете SNMP-запрос, вместе с ним летит community string, и устройство решает - отдавать данные или нет. По умолчанию на огромном количестве оборудования стоит "public" для чтения и "private" для чтения-записи. Если админ не сменил эти значения - любой в сети читает конфигурацию маршрутизаторов, коммутаторов и серверов. Просто так, одной командой.

NTLM-хеш - результат хеширования пароля пользователя в Windows. При входе Windows преобразует пароль в хеш и хранит именно его. При сетевой аутентификации (SMB, HTTP, LDAP) используется NTLM-хеш для подтверждения личности. Для пентестера тут ключевой момент: зная NTLM-хеш, можно аутентифицироваться без знания самого пароля - техника Pass-the-Hash. Расшифровывать хеш не обязательно.

SMB signing - механизм, при котором каждый SMB-пакет подписывается криптографическим ключом сессии. Без подписи атакующий перехватывает запрос аутентификации одного хоста и перенаправляет на другой (SMB relay). С подписью - перенаправленный пакет отбрасывается, подпись не совпадает. На контроллерах домена SMB signing требуется по умолчанию (через GPO). На рабочих станциях до Windows 11 24H2 signing лишь включён, но не обязателен - обязательным на всех системах он стал начиная с Windows 11 24H2 и Server 2025.

Open relay в контексте SMTP - почтовый сервер, который принимает и пересылает письма от кого угодно кому угодно без проверки отправителя. Атакующий использует такой сервер для фишинга от имени легитимного домена компании. Письмо приходит с настоящего IP-адреса почтового сервера жертвы - базовые проверки обходятся на раз.

Как развернуть лабораторию для практики​

[Применимо: лабораторная среда, обучение]

Все техники из статьи воспроизводимы в локальной виртуальной среде без доступа в интернет.

Требования к окружению:
  • RAM: 8 ГБ минимум (4 ГБ для Kali Linux + 4 ГБ для Metasploitable 2), рекомендуется 12 ГБ
  • CPU: 2+ ядра
  • Disk: 40 ГБ свободного пространства
  • ОС хоста: Windows 10+, macOS 12+, Linux
  • Виртуализация: VirtualBox 7.x (бесплатный) или VMware Workstation
  • Интернет: не требуется после скачивания образов
Шаг 1. Скачайте VirtualBox с virtualbox.org, установка стандартная. Для macOS на Apple Silicon - UTM вместо VirtualBox (VirtualBox на ARM не работает).

Шаг 2. Загрузите готовый образ Kali Linux для VirtualBox с kali.org/get-kali (раздел Virtual Machines). Файл .ova импортируется через File → Import Appliance. Выделите VM минимум 4 ГБ RAM и 2 CPU.

Шаг 3. Скачайте Metasploitable 2 - намеренно уязвимую Linux-машину от Rapid7 (SourceForge, поиск "Metasploitable 2 download"). Распакуйте архив, создайте новую VM: New → Linux → Ubuntu (32-bit) → Use existing virtual hard disk → укажите .vmdk из архива. На Apple Silicon Metasploitable 2 (x86) запускается только через QEMU-эмуляцию в UTM и работает медленно - для ARM-хостов рассмотрите Metasploitable 3 или машины с VulnHub.

Шаг 4. Обе машины переключите на Host-Only Network: Settings → Network → Attached to: Host-Only Adapter. Это изолирует лабораторию от домашней и рабочей сети - ломать будете только свои машины.

Шаг 5. Запустите обе VM. На Kali выполните sudo netdiscover -r 192.168.56.0/24 - в выводе появится IP-адрес Metasploitable (обычно 192.168.56.101). Пропингуйте: ping 192.168.56.101 - отвечает, значит лаборатория готова.

Metasploitable 2 содержит намеренно уязвимые сервисы: FTP (vsftpd 2.3.4 с бэкдором), SMB (Samba 3.x), SNMP с дефолтной community string, SMTP - полный набор для отработки техник из этой статьи.

Разведка сетевых сервисов: первое сканирование

[Применимо: внутренний и внешний пентест, black/grey box]

Каждая атака начинается с разведки - Scanning IP Blocks (T1595.001, Reconnaissance). Задача: понять, какие сервисы торчат наружу и какие из них настроены кривовато. Для первого прохода хватит одной команды:
Bash:
# SYN-скан с определением версий (требует root)
# Контекст: внутренний пентест, лабораторная среда
sudo nmap -sS -sV -p 21,25,80,161,443,445,3389 192.168.56.0/24
Флаг -sS - полуоткрытое SYN-сканирование, не завершает TCP-рукопожатие и потому менее заметно, чем полный connect-скан. Флаг -sV определяет версии сервисов - без него увидите только номер порта, но не узнаете, что за софт на нём крутится.

В выводе Nmap каждый порт помечен одним из трёх состояний:
  • open - сервис принимает соединения (пришёл SYN-ACK)
  • closed - порт закрыт, сервис не запущен (пришёл RST)
  • filtered - между вами и целью стоит firewall, который дропнул пакет (тишина)
Разница между closed и filtered принципиальна: closed - «здесь ничего нет», а filtered - «здесь что-то может быть, но firewall не пускает». Второй вариант интереснее.

SYN-сканирование требует root для работы с raw-сокетами. И нет, оно не невидимо - Suricata и Snort фиксируют паттерн быстрого перебора портов с одного IP. Elastic 8.x+ с threshold-правилом на количество SYN-пакетов без ACK обнаружит скан за минуты. Медленный скан (-T1 или -T2) размазывает паттерн, но увеличивает время с минут до часов.

Эксплуатация SMB уязвимостей: от null-сессии до lateral movement​

[Применимо: внутренний пентест, Windows/AD-среда]

SMB (Server Message Block, порт 445) - самый «жирный» вектор на внутреннем пентесте корпоративной сети с Windows. Через SMB работают файловые шары, принтеры и механизмы доменной аутентификации.

Место в kill chain: recon → SMB enumeration → exploitation (relay / EternalBlue) → lateral movement → privilege escalation → domain admin.

Null-сессия и перечисление ресурсов​

Null-сессия - подключение к SMB без имени пользователя и пароля. На непропатченных или криво настроенных системах это открывает доступ к спискам доменных пользователей, групп и сетевых шар. Для перечисления - enum4linux (обёртка над smbclient и rpcclient): enum4linux -a <IP>. В выводе ищите Users (доменные учётки), Share Enumeration (доступные шары) и Password Policy (минимальная длина пароля, порог блокировки - это критично перед любым брутфорсом).

Вариант побыстрее - NetExec (бывший CrackMapExec, репозиторий активен, последнее обновление - 2024): nxc smb 192.168.56.0/24 --shares -u '' -p '' проверяет все хосты подсети на доступные шары через null-сессию за один проход.

Что делать с результатом: список пользователей сохраняете в файл для password spraying. Шары с правами на чтение проверяете руками - конфигурационные файлы, скрипты с хардкоженными паролями, бэкапы баз данных. На практике именно в SMB-шарах чаще всего валяются файлы вида passwords.xlsx или backup_config.txt с кредами в открытом виде. Классика, которая не стареет.

SMB relay атака​

SMB relay - одна из самых результативных атак на внутреннюю сеть. Механика: запускаете Responder, который слушает широковещательные запросы LLMNR и NBT-NS. Когда Windows-машина не может разрешить имя через DNS (опечатка в адресе, удалённый сетевой ресурс), она спрашивает всех в broadcast-домене. Responder отвечает: «это я, аутентифицируйся у меня». Перехваченный NTLM-запрос перенаправляется через ntlmrelayx из Impacket на хосты с отключённым SMB signing.

Проверка, где signing отключён: nxc smb 192.168.56.0/24 --gen-relay-list targets.txt - создаёт файл со списком уязвимых хостов.

В современных средах есть нюансы: контроллеры домена требуют SMB signing по умолчанию начиная с Windows 2000 Server (через GPO Default Domain Controllers Policy). На рабочих станциях поведение определяется групповой политикой. Microsoft Defender for Endpoint фиксирует подозрительные процессы Responder/Inveigh; NDR-сенсоры обнаруживают аномальные LLMNR/NBT-NS ответы. CrowdStrike Falcon или SentinelOne ловят Responder по сигнатурам (хотя формально он работает на Kali, а не на целевой машине). Но на практике в 2025 году signing на рабочих станциях отключён в большинстве сетей, которые я тестирую. Так что relay работает - и ещё как.

EternalBlue: legacy, но показательно​

EternalBlue (MS17-010) - уязвимость в SMBv1, удалённое выполнение кода без аутентификации. В Metasploit - модуль exploit/windows/smb/ms17_010_eternalblue. На реальных пентестах в 2025 году встречается редко - только на legacy-системах (Windows 7, Server 2008 R2), не обновлявшихся годами. В лабораторной среде (Metasploitable, Hack The Box) - отличный способ понять, как выглядит полная цепочка RCE через сетевой протокол: от скана до shell. Потренировавшись на этом - будет проще понять более сложные эксплойты.

Атаки на FTP сервер: не только анонимный доступ​

[Применимо: внешний и внутренний пентест, legacy-инфраструктура]

FTP (порт 21) - протокол из 1970-х, передающий данные и пароли в чём мать родила (в открытом виде). На внешних пентестах встречается реже (вытеснен SFTP/SCP), но на внутренних - регулярно: NAS-хранилища, принтеры, legacy-приложения для обмена файлами.

Место в kill chain: recon → FTP enumeration → credential access (anonymous / brute force) → data exfiltration.

Первое действие - проверка анонимного доступа: подключаетесь ftp <IP>, логин anonymous, пароль пустой (или любой email). Пускает - листаете содержимое (ls -la) и ищете конфигурационные файлы, бэкапы, скрипты с паролями. На одном из проектов в анонимной FTP-шаре лежал .sql-дамп с таблицей пользователей - MD5-хеши без соли, половина расшифровалась за минуты через hashcat.

Если анонимный доступ закрыт - Hydra для брутфорса: hydra -l admin -P /usr/share/wordlists/rockyou.txt ftp://<IP>. Но сначала узнайте парольную политику через SMB или AD - сколько попыток до блокировки учётной записи. Без этой информации рискуете заблокировать реальные аккаунты, а заказчик такому не обрадуется.

vsftpd 3.x+ и ProFTPD по умолчанию блокируют после нескольких неудачных попыток. В среде с SIEM (Elastic 8.x+, MaxPatrol SIEM) массовые неудачные логины на FTP генерируют алерты по правилам Brute Force (T1110, Credential Access). Из всех описанных техник - эта самая «шумная».

SNMP enumeration при пентесте сетевой инфраструктуры​

[Применимо: внутренний пентест, сетевое оборудование, серверы, IoT]

SNMP (порт 161/udp) - протокол мониторинга, который на практике превращается в золотую жилу для пентестера. SNMP v1 и v2c передают community string в открытом виде, и на удивительном количестве устройств стоят дефолтные значения. Это первое, что стоит проверить на внутреннем пентесте - тише только тишина.

Проверка дефолтной community string "public" - одна команда:
Bash:
# Запрос SNMP-данных с community string "public"
# Контекст: внутренний пентест, UDP порт 161
snmpwalk -v 2c -c public 192.168.56.101
Если команда возвращает данные вместо таймаута - устройство отдаёт информацию любому, кто знает (или угадал) community string. Что можно вытянуть:

OID-веткаСодержимоеПольза для атакующего
systemИмя хоста, описание, uptimeFingerprinting ОС и роли сервера
interfacesСетевые интерфейсы и IP-адресаПолная карта сети без единого сканирования
hrSWRunNameЗапущенные процессыОбнаружение антивируса, сервисов, баз данных
hrStorageДиски и разделыПоиск data-хранилищ для эксфильтрации

На сетевом оборудовании (Cisco Catalyst, HP/Aruba, MikroTik) community string "private" в режиме чтения-записи позволяет скачать полный конфиг устройства - вместе с паролями, VLAN-настройками и ACL. На практике это моментальная компрометация всего сетевого сегмента. Одна строчка - и весь свитч ваш.

Для автоматизации по подсети - модуль Metasploit auxiliary/scanner/snmp/snmp_enum: задаёте RHOSTS на подсеть, COMMUNITY на "public", запускаете и получаете сводку по всем устройствам с открытым SNMP.

SNMP v3, доступный с 2004 года, использует аутентификацию и шифрование - дефолтные community strings там не работают. На современном оборудовании (Cisco IOS-XE 17.x+, Juniper Junos 23.x+) SNMP v1/v2c зачастую отключён по умолчанию. Но в реальных корпоративных сетях legacy-оборудование с v2c и community string "public" - не исключение, а норма. Отдельный бонус: SNMP-запросы по UDP практически не логируются стандартными SIEM-конфигурациями и крайне сложны для обнаружения IDS.

SMTP атаки на почтовый сервер: от перечисления до спуфинга​

[Применимо: внешний пентест, фишинговые кампании, red team]

SMTP (порты 25, 465, 587) - протокол отправки электронной почты. Для пентестера тут два вектора: перечисление валидных email-адресов и подделка (спуфинг) писем для фишинга.

Место в kill chain: SMTP user enumeration → email spoofing → Phishing (T1566, Initial Access) → Spearphishing Attachment (T1566.001) → payload delivery → foothold.

Перечисление пользователей​

SMTP-серверы поддерживают команды для проверки существования почтового ящика. Три метода:

VRFY - напрямую спрашивает сервер, существует ли пользователь. Подключаетесь через telnet mail.target.com 25, вводите EHLO test, затем VRFY admin. Ответ 250 - пользователь есть, 550 - нет, 252 - сервер не подтверждает явно (типичный ответ при отключённом VRFY, переключайтесь на RCPT TO).

EXPN - раскрывает членов рассылки. Работает аналогично VRFY, но для мейлинг-листов.

RCPT TO - косвенная проверка через попытку отправки: MAIL FROM:<test@example.com>, затем RCPT TO:<admin@target.com>. Ответ 250 OK подтверждает существование адреса.

Автоматизация - smtp-user-enum: smtp-user-enum -M RCPT -U users.txt -t mail.target.com -f sender@example.com проверяет список пользователей за минуты. Многие современные серверы отключают VRFY и EXPN, но RCPT TO работает практически всегда - сервер обязан сообщить, принимает ли он письмо.

Для Nmap есть скрипт smtp-enum-users: nmap -p 25 --script smtp-enum-users mail.target.com. А скрипт smtp-ntlm-info вытягивает из SMTP-сервера с NTLM-аутентификацией имя NetBIOS-домена, имя компьютера и DNS-домен - ценная информация для дальнейшей разведки AD.

Open relay и email spoofing​

Проверка open relay через Nmap: nmap -p 25 --script smtp-open-relay mail.target.com. Если сервер - open relay, атакующий отправляет письма от имени любого сотрудника компании. Оговорка: даже при успешной отправке через telnet письмо может быть перехвачено внутренними фильтрами - firewall или Exchange часто блокируют его на следующем этапе, а атакующий об этом из SMTP-ответа не узнает.

Защита от спуфинга строится на трёх DNS-записях: SPF (кто имеет право отправлять от имени домена), DKIM (цифровая подпись письма) и DMARC (политика обработки писем, не прошедших SPF/DKIM). На пентесте все три проверяются через dig: dig +short TXT target.com | grep "v=spf1" покажет SPF-запись, dig +short TXT _dmarc.target.com - DMARC-политику. Нет этих записей - готовая находка для отчёта.

CVE в SMTP-сервисах: что это значит на практике​

CVE-2019-10149 - критическая уязвимость в Exim 4.87–4.91 (CVSS 9.8, CRITICAL, AV:N/AC:L/PR:N/UI:N - атака по сети, без привилегий и действий пользователя). Некорректная валидация адреса получателя в deliver_message() (CWE-78, OS Command Injection) позволяла выполнить команды на сервере. Затронуты Exim на Ubuntu и Debian. Уязвимость в CISA KEV - каталоге активно эксплуатируемых уязвимостей. Публичные эксплойты на Exploit-DB: EDB-46974 (remote command execution, Qualys) и EDB-46996 (local privilege escalation). Для тех кто в танке - непропатченный Exim = полный контроль над почтовым сервером без аутентификации. В 2025 году встречается только на заброшенных серверах с Debian 9 / Ubuntu 16.04, давно вышедших из поддержки.

CVE-2021-26855 (ProxyLogon) - SSRF в Microsoft Exchange Server (CVSS 9.1, CRITICAL, CWE-918). Часть цепочки ProxyLogon, позволявшей неаутентифицированному атакующему выполнить код на Exchange. В CISA KEV с пометкой об использовании в ransomware-атаках. Почтовый сервер - не просто «отправлялка писем», а полноценная точка initial access в корпоративную инфраструктуру.

Пентест сетевой инфраструктуры: выбор вектора атаки​

После первого сканирования у вас список открытых портов и сервисов. Вопрос: что атаковать первым? Вот decision tree, который работает на внутренних пентестах:

1. SMB (445) с отключённым signing? → Запускайте Responder + ntlmrelayx. Пассивная атака: не требует подбора паролей, работает пока жертва сама обращается к несуществующему ресурсу. Минимальный шум.

2. SNMP (161) с дефолтной community string?snmpwalk для карты сети и процессов. Часто даёт больше информации, чем все остальные сервисы вместе, при практически нулевой обнаруживаемости.

3. FTP (21)? → Проверьте анонимный доступ. Закрыт - отложите брутфорс до получения парольной политики через SMB/AD.

4. SMTP (25)? → Перечислите пользователей через RCPT TO. Список валидных email-адресов пригодится для password spraying на OWA/VPN или фишинговой кампании.

Принцип простой: сначала пассивные техники (relay, SNMP read), потом активные (брутфорс, эксплойты). Пассивные тише и реже триггерят алерты SIEM. Активные - только когда пассивные исчерпаны или парольная политика позволяет безопасный перебор.

Что засветится в SIEM и IDS при эксплуатации сетевых протоколов​

Каждая описанная техника оставляет следы. Разница между успешным пентестом и заблокированным IP через пять минут - понимание того, что видит защита.
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Паттерн виден: SNMP enumeration и SMB relay - наименее обнаруживаемые техники в типовых (не усиленных) конфигурациях мониторинга. Брутфорс - самая заметная. Поэтому decision tree и ставит пассивные техники выше активных.

Для blue team: если в вашем SIEM нет правил на LLMNR/NBT-NS spoofing - вы не увидите relay-атаку, пока атакующий уже не получит хеш. Sigma-правила для этого сценария существуют, но требуют подключения Windows Event Forwarding с рабочих станций, а не только с серверов.

На внутренних пентестах средних компаний я вижу одну и ту же картину: периметр защищён неплохо - WAF, IPS, сегментация DMZ - а внутренняя сеть живёт в 2010 году. SNMP v2c с community string "public" на коммутаторах, SMB signing отключён на рабочих станциях, FTP с анонимным доступом на NAS. Бюджет на внешнюю защиту есть, на внутреннюю - «у нас же периметр закрывает». Каждый раз цепочка от SNMP-запроса до domain admin занимает не дни, а часы. Ситуация в ближайший год не изменится: Microsoft включает обязательный SMB signing начиная с Windows 11 24H2 и Server 2025, но legacy-парк никто не перенастраивает. SNMP v3 существует с 2004 года, но "public" на Cisco 2960 в продакшене встречается чаще, чем хотелось бы. Пока дефолтные конфиги дают результат быстрее эксплойтов - сложные техники просто не нужны. Если хочешь повторить шаги от SNMP до SMB relay на стенде без корпоративного SIEM - задачи с этой спецификой есть на HackerLab.pro.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab