Сетевая разведка и сканирование портов: nmap и masscan в пентесте — fingerprinting сервисов и обход IDS


За пять лет пентестов я ни разу не видел, чтобы эксплойт сработал «вслепую». Каждая успешная атака начинается с разведки: ты должен знать, что торчит в сети, на каком порту, какой версии - и только потом выбирать вектор. Сетевая разведка и сканирование портов - фундамент любого пентеста. Не освоил эту фазу - дальше можно не идти.

Здесь я разберу весь цикл сетевой разведки: от обнаружения живых хостов до определения версий сервисов и обхода IDS. Не абстрактно, а с конкретными командами, разбором каждого флага и объяснением того, что в этот момент происходит на уровне пакетов. Покажу, как связать masscan и nmap в единую цепочку и получить полную карту сети.

Что происходит при сетевой разведке и зачем она нужна​

Техники сетевой разведки - первое, что выполняет пентестер (или атакующий) при работе с целевой инфраструктурой. В терминологии MITRE ATT&CK сюда попадают сразу несколько техник:
  • - обнаружение сервисов на открытых портах
  • Remote System Discovery (T1018, Discovery) - определение живых хостов в сети
  • - поиск уязвимостей через активное зондирование
Когда ты пишешь в отчёте «обнаружен открытый порт 3389», заказчик пожмёт плечами. А вот «Network Service Discovery (T1046) выявил RDP-сервис на нестандартном порту 33389 без ограничения по источникам» - это уже конкретная находка с привязкой к фреймворку, которую понимает и SOC, и CISO.

Весь процесс разведки выстраивается в три этапа:
  1. Обнаружение хостов - кто вообще живой в сети
  2. Сканирование портов - какие двери открыты
  3. Fingerprinting - что за ними стоит, какой версии, какой ОС
Каждый этап - свои инструменты и техники. Разберём последовательно.

Обнаружение хостов в сети: ping sweep, ARP и другие методы​

Прежде чем сканировать порты, нужно понять, какие хосты вообще отвечают. Гонять всю подсеть /24 по всем 65535 портам без предварительной разведки - часы впустую.

ICMP ping sweep​

Самый простой способ - отправить ICMP Echo Request каждому адресу в диапазоне:
Bash:
nmap -sn 192.168.1.0/24 -oG ping_sweep.gnmap
Флаг -sn говорит nmap: «только обнаружение хостов, порты не трогай». Nmap по умолчанию шлёт не только ICMP echo, но и TCP SYN на порт 443, TCP ACK на порт 80 и ICMP timestamp request - комбинация повышает шансы обнаружить хост, даже если один из протоколов заблокирован.

Проблема: многие хосты не отвечают на ICMP. Корпоративные файрволы часто режут пинги. Если ping sweep показал 5 хостов из ожидаемых 50 - это не значит, что сеть пустая. Скорее наоборот.

ARP-сканирование в локальной сети​

Если ты находишься в том же L2-сегменте, что и цели (типичная ситуация на внутреннем пентесте), ARP-запросы работают надёжнее всего:
Bash:
nmap -sn -PR 192.168.1.0/24
Флаг -PR переключает nmap на ARP-запросы. Почему это надёжнее? ARP - протокол канального уровня, без него невозможна сетевая связность. Заблокировать ARP в локалке нельзя без потери коммуникации. Каждый живой хост обязан ответить - деваться ему некуда.

Кастомные пробы для обхода фильтрации​

Когда ICMP заблокирован, а ты не в локальном сегменте, помогают TCP-пробы на конкретные порты. Из официальной документации nmap: для обнаружения хостов можно комбинировать несколько типов проб:
Bash:
# TCP SYN на популярные порты + ICMP
nmap -sn -PS22,80,443,3389 -PE 10.0.0.0/24
-PS22,80,443,3389 шлёт TCP SYN на указанные порты. Если хост ответит SYN-ACK или RST - он живой. -PE добавляет ICMP echo на случай, если TCP-порты закрыты, но ICMP разрешён.

Извлекаем список живых хостов для следующего этапа:
Bash:
grep "Up" ping_sweep.gnmap | awk '{print $2}' > live_hosts.txt

Техники сканирования портов: что происходит на уровне пакетов​

Определение открытых портов - ядро сетевой разведки. Nmap поддерживает больше десяти техник сканирования, но на практике 90% задач решаются тремя: SYN, Connect и UDP. Остальные - для специфических сценариев: анализ файрволов или обход IDS.

Stealth сканирование SYN (-sS)​

SYN-скан - дефолтная и самая популярная техника nmap. Именно её инструмент использует, когда запущен от root без дополнительных флагов:
Bash:
sudo nmap -sS -p- 192.168.1.100 -oA syn_scan
Что происходит в сети:
  1. Nmap шлёт TCP-пакет с флагом SYN на целевой порт
  2. Если порт открыт - цель отвечает SYN-ACK. Nmap немедленно отправляет RST, обрывая соединение
  3. Если порт закрыт - цель отвечает RST
  4. Если нет ответа или приходит ICMP unreachable - порт помечается как filtered
Почему «stealth»? TCP-хендшейк не завершается. Многие приложения логируют только установленные соединения (после ACK), а SYN-скан до этого шага не доходит. Но не обольщайся: современные IDS (Snort, Suricata) прекрасно видят SYN-сканы по паттерну множественных SYN-пакетов без завершения хендшейка. Stealth - это скорее историческое название.

Флаг -p- критически важен - он сканирует все 65535 портов. Без него nmap проверяет только top-1000. На моей практике забытые сервисы регулярно обнаруживаются на нестандартных портах: RDP на 33389, веб-интерфейсы на 8443, 9090, базы данных на 13306. Пропустишь порт - пропустишь вектор атаки.

TCP Connect сканирование (-sT)​

Connect-скан использует системный вызов connect() для установки полного TCP-соединения:
Bash:
nmap -sT -p- 192.168.1.100 -oA connect_scan
Разница с SYN-сканом:

ПараметрSYN-скан (-sS)Connect-скан (-sT)
Требует rootДаНет
Завершает хендшейкНетДа
СкоростьБыстрееМедленнее
Видимость в логахТолько IDSIDS и логи приложений
ТочностьВысокаяВысокая

Когда использовать Connect-скан? Когда нет root-прав - тут без вариантов. Или когда сеть использует stateful firewall, который отслеживает SYN без ACK и блокирует такие пакеты - тогда полное соединение может пройти, а половинчатое нет. На практике это редкость, но я встречал такие конфигурации в банковских сетях.

UDP-сканирование (-sU)​

UDP-сканирование - головная боль начинающих пентестеров. Но игнорировать его нельзя: DNS (53), SNMP (161/162), DHCP (67/68) - критичные сервисы, которые работают по UDP. Как сказано в документации nmap: «exploitable UDP services are quite common and attackers certainly don't ignore the whole protocol».
Bash:
sudo nmap -sU --top-ports 100 192.168.1.100 -oA udp_scan
Почему UDP-скан такой медленный и капризный:
  • UDP не имеет хендшейка. Отправил пакет - и сидишь ждёшь
  • Если порт закрыт - цель отвечает ICMP Port Unreachable
  • Если порт открыт - обычно тишина (нет ответа вообще)
  • Nmap помечает отсутствие ответа как open|filtered - порт может быть как открытым, так и отфильтрованным файрволом
И ещё одна радость: Linux и Solaris ограничивают скорость отправки ICMP Port Unreachable (по умолчанию - один в секунду). Это значит, что сканирование 65535 UDP-портов на Linux-хосте может занять более 18 часов. Именно поэтому для UDP я использую --top-ports 100 вместо полного перебора.

Совет из практики: комбинируй UDP и TCP в одном запуске:
Bash:
sudo nmap -sS -sU --top-ports 200 -iL live_hosts.txt -oA combined_scan

ACK-сканирование для анализа файрволов (-sA)​

ACK-скан не ищет открытые порты - он определяет правила файрвола:
Bash:
sudo nmap -sA -p 80,443,8080 192.168.1.1
Nmap шлёт пакеты только с флагом ACK. Это не начало соединения, поэтому:
  • Если приходит RST - порт не фильтруется (пакет прошёл через файрвол)
  • Если ответа нет или приходит ICMP unreachable - порт фильтруется
Зачем? На внешнем пентесте перед активным сканированием полезно понять, какие порты файрвол вообще пропускает. Экономит время и снижает шум.

Masscan - быстрое сканирование портов на больших сетях​

Когда нужно просканировать подсеть /16 (65536 адресов), nmap будет работать часы. Masscan решает задачу на порядки быстрее - за минуты при сканировании ограниченного набора портов или высоком rate (100K+), хотя полное сканирование всех 65535 портов на /16 при умеренном rate займёт дни. По данным автора - Роберта Грэхема - masscan способен отправлять до 10 миллионов пакетов в секунду на 10GbE-адаптере.

Но есть принципиальная разница: masscan - это «радар», nmap - «бинокль с тепловизором». Masscan быстро находит, где торчат открытые порты. Nmap детально исследует каждый найденный.

Базовый запуск с безопасным rate​

Bash:
sudo masscan -p1-65535 10.0.0.0/16 --rate=5000 \
  -oG masscan_results.gnmap
Разбор флагов:
  • -p1-65535 - все TCP-порты. Masscan не знает никаких «top-1000»
  • --rate=5000 - 5000 пакетов в секунду. Для корпоративной LAN - приемлемо. Для продакшн-среды с чувствительным оборудованием снижай до 1000
  • -oG - grepable-формат, удобный для парсинга и передачи в nmap
Классическая ошибка джуниора: запуск masscan без rate-лимита на клиентской сети. На моём первом пентесте стажёр запустил masscan с rate 50000 на /16 подсеть - сетевое оборудование начало терять пакеты, SOC позвонил через минуту. Rate всегда согласовывай с условиями engagement.

Передача результатов masscan в nmap​

Masscan - грубый инструмент с ложноположительными результатами (асинхронная отправка и приём пакетов, без ожидания ответа на каждый). Всегда верифицируй находки:
Bash:
# Извлекаем уникальные IP из результатов masscan
grep "Host:" masscan_results.gnmap \
  | awk '{print $2}' | sort -u > masscan_hosts.txt

# Глубокое сканирование найденных хостов через nmap
# Здесь используется -p- для полной верификации всех портов,
# а не только найденных masscan (у которого бывают false negatives).
# Для экономии времени можно извлечь порты из masscan и передать через -p.
sudo nmap -sS -sV -sC -O \
  -iL masscan_hosts.txt \
  -oA detailed_scan \
  --max-retries 2 \
  --host-timeout 30m
Эта двухэтапная схема - «masscan для охвата, nmap для глубины» - стандартная методология пентеста сканирования портов на больших инфраструктурах. Лично я другой связки для крупных сетей не использую.

Fingerprinting сервисов и определение ОС через nmap​

Найти открытый порт - полдела. Нужно понять, что за ним стоит. Сканирование сервисов и версий - этап, который превращает список портов в список потенциальных векторов атаки.

Version Detection (-sV)​

Bash:
sudo nmap -sV --version-intensity 7 -p 22,80,443,3306,8080 192.168.1.100
Как работает -sV: nmap подключается к открытому порту и шлёт набор проб (probes) из базы [URL='https://nmap.org/book/vscan-fileformat.html']nmap-service-probes[/URL]. Ответы сравниваются с известными паттернами. Параметр --version-intensity управляет количеством проб:
  • 0 - минимум проб, максимум скорости
  • 9 (по умолчанию) - все пробы, максимум точности
На практике я ставлю --version-intensity 5-7 - баланс между скоростью и точностью. Полная интенсивность нужна только для хостов, где стандартные пробы дали tcpwrapped или неопределённый результат.

Banner grabbing через netcat​

Когда nmap показывает порт как tcpwrapped (сервис принял соединение, но не ответил на пробы), проверяю руками:
Bash:
# HTTP banner
echo -e "HEAD / HTTP/1.0\r\n\r\n" | nc -w 5 192.168.1.100 8080

# SSH banner - часто отдаёт версию сразу при подключении
nc -w 5 192.168.1.100 22

# SMTP banner
nc -w 5 192.168.1.100 25
SSH обычно сразу возвращает строку вида SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6. Одна строка - и ты знаешь: OpenSSH 8.9, Ubuntu. Можно искать CVE под эту версию. Просто, как два байта переслать.

OS Fingerprinting (-O)​

Bash:
sudo nmap -O --osscan-guess 192.168.1.100
Nmap анализирует поведение TCP/IP стека цели: значения TTL, TCP Window Size, TCP Options, ICMP-ответы, фрагментацию. Каждая ОС реализует стек чуть по-своему - nmap сравнивает ответы с базой nmap-os-db.

Флаг --osscan-guess заставляет nmap выдать наиболее вероятную ОС даже при низкой уверенности. Полезно, когда файрвол искажает часть ответов.

Для надёжного fingerprinting нужны и открытые, и закрытые порты на цели - nmap использует разницу в ответах для сопоставления с базой.

NSE-скрипты: поиск уязвимостей через nmap

Nmap Scripting Engine превращает сканер портов в инструмент для Vulnerability Scanning (T1595.002, Reconnaissance):
Bash:
# Общий скан на известные уязвимости
nmap -sV --script vuln -p 445 192.168.1.0/24

# Проверка EternalBlue (MS17-010)
nmap -p 445 --script smb-vuln-ms17-010 192.168.1.0/24

# Проверка MS12-020 (CVE-2012-0002) - RCE в RDP
nmap -p 3389 --script rdp-vuln-ms12-020 192.168.1.100

# Аудит SSL/TLS конфигурации
nmap -p 443 --script ssl-enum-ciphers 192.168.1.100
CVE-2012-0002 (CVSS v2: 9.3, HIGH - верхняя из трёх категорий severity в CVSS v2: Low 0.0–3.9, Medium 4.0–6.9, High 7.0–10.0; CVSS v3 не присвоен) - уязвимость в реализации Remote Desktop Protocol в Microsoft Windows XP SP2/SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 SP2/R2/R2 SP1 и Windows 7 Gold/SP1. Некорректная обработка RDP-пакетов в памяти позволяет удалённому атакующему выполнить произвольный код через специально сформированные RDP-пакеты, вызывающие доступ к неинициализированному или удалённому объекту. Классификация: CWE-94 (официальная классификация NVD). Описание CVE упоминает доступ к неинициализированному или удалённому объекту в памяти, что, по мнению ряда исследователей, ближе к CWE-416 (Use After Free) / CWE-824 (Access of Uninitialized Pointer), однако NVD официально классифицирует уязвимость как CWE-94.

В стандартной поставке nmap (на момент написания) нет официального NSE-скрипта для BlueKeep ( ). Доступны community-скрипты (например, от Ekultek на GitHub). Альтернативы: rdpscan (Robert Graham) или модуль Metasploit auxiliary/scanner/rdp/cve_2019_0708_bluekeep. CVE-2019-0708 - уязвимость удалённого выполнения кода в Remote Desktop Services с CVSS 9.8 (CRITICAL). Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - атака по сети, низкая сложность, не нужны ни привилегии, ни действие пользователя. Классификация: CWE-416 (Use After Free). Затрагивает Windows XP, Windows Server 2003, Windows 7, Windows Server 2008 и Windows Server 2008 R2. Помимо десктопных и серверных ОС Microsoft, уязвимость затрагивает ряд промышленных и медицинских систем (например, Siemens Axiom Multix M), использующих встроенные версии Windows с RDP. Microsoft выпустила внеплановые патчи даже для снятых с поддержки XP и Server 2003 - что уже само по себе говорит о серьёзности дыры.

Обход систем обнаружения: stealth-техники сканирования​

На реальном пентесте тебя мониторит SOC. Вот техники, которые снижают вероятность обнаружения (но не гарантируют невидимость - держи это в голове):

Управление скоростью (-T)​

Nmap поддерживает шесть профилей тайминга:

ПрофильНазваниеЗадержка между пробамиКогда применять
-T0Paranoid5 минутОбход IDS при внешнем пентесте
-T1Sneaky15 секундСкрытное сканирование
-T2Polite0.4 секундыЧувствительные сети
-T3NormalПо умолчаниюСтандартные задачи
-T4AggressiveМинимальнаяБыстрое сканирование в LAN
-T5InsaneБез задержекТестовые среды

На внутреннем пентесте обычно хватает -T3 или -T4. Для внешней разведки с требованием скрытности - -T1 или -T2. Лично я на внешних проектах почти всегда начинаю с -T2 - лучше подождать лишний час, чем получить звонок от SOC на второй минуте.

Фрагментация пакетов​

Bash:
sudo nmap -sS -f --mtu 16 -p 80,443 192.168.1.100
Флаг -f разбивает IP-пакеты на фрагменты. --mtu 16 задаёт размер фрагмента (должен быть кратен 8). Некоторые stateless файрволы не умеют собирать фрагментированные пакеты и пропускают их без анализа. Современные stateful файрволы это видят, но в устаревших инфраструктурах (а таких до сих пор полно) - работает.

Decoy-сканирование​

Bash:
sudo nmap -sS -D RND:10 -p- 192.168.1.100
-D RND:10 подмешивает к твоему сканированию 10 поддельных IP-адресов. В логах цели будет 11 «сканеров» вместо одного. Но случайные decoy-адреса (RND) часто неэффективны - IDS может отфильтровать их по отсутствию обратного трафика или принадлежности к нерелевантным диапазонам. Для реальной эффективности лучше указывать IP живых хостов в той же подсети: -D 10.0.0.5,10.0.0.12,10.0.0.33,ME.

Рандомизация порядка портов​

Bash:
sudo nmap -sS --randomize-hosts -p- -iL live_hosts.txt
По умолчанию nmap сканирует хосты в определённом порядке. --randomize-hosts перемешивает порядок обхода. Порты nmap рандомизирует по умолчанию (можно контролировать через --top-ports или -r для последовательного перебора).

Полный цикл сетевой разведки: пошаговый сценарий​

Вот как я выстраиваю пентест сканирование портов на реальном проекте. Делай раз, делай два, делай три.

Шаг 1: подготовка рабочей директории​

Bash:
ENGAGEMENT="pentest_$(date +%Y%m%d)"
mkdir -p /tmp/${ENGAGEMENT}/{scans,pcaps,loot}

Шаг 2: быстрый охват через masscan​

Bash:
sudo masscan -p1-65535 10.10.0.0/16 --rate=3000 \
  -oG /tmp/${ENGAGEMENT}/scans/masscan_full.gnmap
При rate=3000 и полном диапазоне портов на /16 сканирование займёт дни (65536 хостов × 65535 портов / 3000 пакетов/сек ≈ 16+ дней). Для быстрого охвата ограничьте набор портов (-p 1-1000) или увеличьте rate. Получаем грубую карту открытых портов.

Шаг 3: извлечение живых хостов​

Bash:
grep "Host:" /tmp/${ENGAGEMENT}/scans/masscan_full.gnmap \
  | awk '{print $2}' | sort -u \
  > /tmp/${ENGAGEMENT}/scans/live_hosts.txt

echo "Найдено хостов: $(wc -l < /tmp/${ENGAGEMENT}/scans/live_hosts.txt)"

Шаг 4: host discovery для пропущенных (ARP + TCP)​

Bash:
sudo nmap -sn -PR -PS22,80,443,3389 10.10.0.0/16 \
  -oG /tmp/${ENGAGEMENT}/scans/nmap_discovery.gnmap

# Мержим с результатами masscan
grep "Up" /tmp/${ENGAGEMENT}/scans/nmap_discovery.gnmap \
  | awk '{print $2}' >> /tmp/${ENGAGEMENT}/scans/live_hosts.txt

sort -u -o /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
  /tmp/${ENGAGEMENT}/scans/live_hosts.txt

Шаг 5: глубокое nmap сканирование сети​

Bash:
sudo nmap -sS -sV -sC -O \
  -p- \
  -iL /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
  -oA /tmp/${ENGAGEMENT}/scans/full_scan \
  --max-retries 2 \
  --host-timeout 30m \
  -T4
Разбор: -sS (SYN-скан) + -sV (определение версий) + -sC (скрипты по умолчанию) + -O (OS fingerprinting) + -p- (все порты) + -T4 (агрессивный тайминг для LAN).

Шаг 6: точечный поиск уязвимостей​

Bash:
# SMB-уязвимости на всех хостах с портом 445
sudo nmap -p 445 --script smb-vuln-ms17-010,smb-vuln-ms08-067 \
  -iL /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
  -oA /tmp/${ENGAGEMENT}/scans/smb_vulns

# SSL/TLS аудит на всех HTTPS
sudo nmap -p 443,8443 --script ssl-enum-ciphers \
  -iL /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
  -oA /tmp/${ENGAGEMENT}/scans/ssl_audit

Шаг 7: ручная верификация нестандартных портов​

Bash:
# Порт 9090 показал tcpwrapped - проверяем руками
echo -e "GET / HTTP/1.0\r\n\r\n" | nc -w 5 10.10.5.42 9090

# Записываем трафик во время ручных проверок
sudo tcpdump -i eth0 -w /tmp/${ENGAGEMENT}/pcaps/manual.pcap \
  host 10.10.5.42 &

Шаг 8: UDP-сканирование приоритетных целей​

Bash:
sudo nmap -sU --top-ports 50 \
  -iL /tmp/${ENGAGEMENT}/scans/live_hosts.txt \
  -oA /tmp/${ENGAGEMENT}/scans/udp_scan \
  --max-retries 1
UDP-скан запускаю последним и только по top-50 портам - иначе время ожидания взорвётся на больших сетях.

Сводная таблица инструментов сетевой разведки​

ИнструментЗадачаСкоростьТочностьТребует root
masscanБыстрый охват больших сетейОчень высокаяСредняяДа
nmap -sSSYN-сканирование портовВысокаяВысокаяДа
nmap -sTConnect-сканированиеСредняяВысокаяНет
nmap -sVFingerprinting сервисов nmapНизкаяОчень высокаяНет
nmap -OOS fingerprintingНизкаяВысокаяДа
nmap --scriptNSE-скрипты (vuln, enum)Зависит от скриптаВысокаяЗависит от скрипта
netcatBanner grabbing, ручная проверкаРучнаяТочнаяНет
tcpdumpАнализ трафика при сканированииПассивныйТочнаяДа

Логика связки: masscan (быстро находим, где что-то торчит) → nmap -sS (верифицируем открытые порты) → nmap -sV -sC (определяем сервисы и версии) → nmap --script vuln (ищем уязвимости) → netcat (ручная доверификация сомнительных портов).

Типичные ошибки начинающих​

Сканирование только top-1000 портов. Без -p- nmap проверяет 1000 наиболее популярных портов. Сервис на порту 8888, 31337 или 50000 будет пропущен. Я находил RDP на 33389, Jenkins на 8888, незащищённые REST API на 50080 - всё за пределами top-1000. Для тех кто в танке - это значит, что без -p- вы тупо не видите треть поверхности атаки.

Доверие результатам masscan без верификации. Masscan использует асинхронную отправку - он не ждёт ответа на каждый пакет. Ложноположительные результаты - норма. Всегда проверяй через nmap.

Запуск с -T5 на продакшн-сети. Агрессивный тайминг генерирует поток пакетов, который может положить сетевое оборудование. Для продакшн-сред максимум -T3, для чувствительных - -T2. Один раз наступишь на эти грабли - запомнишь навсегда.

Игнорирование UDP. DNS, SNMP, TFTP, NTP - все по UDP. SNMP с community string public - частая находка на внутренних пентестах, дающая доступ к конфигурации сетевого оборудования.

Сканирование без записи результатов. Флаг -oA сохраняет вывод в трёх форматах (nmap, xml, gnmap). Без него повторный скан - потерянные часы.

Сетевая разведка - навык, который нарабатывается практикой. Подними виртуальную лабораторию, поставь несколько машин с разными сервисами и пройди весь цикл: от masscan до ручного banner grabbing. Когда увидишь, как SYN-ACK приходит на tcpdump в реальном времени - поймёшь, как это работает, лучше любого учебника. Попробуйте просканировать свой лабораторный сегмент по шагам из раздела выше и сравнить, что нашёл masscan, а что - nmap. Расхождения будут, и они многое объяснят.
 
Мы в соцсетях:

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

Похожие темы

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

HackerLab