Ручной поиск уязвимостей
📌 Суть подхода
Ручной анализ уязвимостей — это то, чем пентестер занимается большую часть времени. Схема простая:
- Сканируешь цель → узнаёшь версии сервисов
- Берёшь название + версию → ищешь известные уязвимости
- Находишь эксплойт → используешь для атаки
Никакой магии. Кто-то до тебя уже нашёл дыру и написал эксплойт — твоя задача найти его и применить.
🔍 Шаг 1: Узнать версии сервисов
Всё начинается с Nmap и флага -sV:
nmap -sV 10.0.0.1
Пример вывода:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1
80/tcp open http Apache httpd 2.4.49
445/tcp open netbios-ssn Samba 3.0.20
6667/tcp open irc UnrealIRCd 3.2.8.1
Каждая строка — потенциальная точка входа. Берёшь название и версию, и начинаешь искать.
🌐 Шаг 2: Поиск в Google
Самый простой и эффективный метод. Копируешь версию сервиса и добавляешь слово exploit:
vsftpd 2.3.4 exploit
Apache 2.4.49 exploit
UnrealIRCd 3.2.8.1 exploit
Google сразу покажет:
- Готовые эксплойты на GitHub, Exploit-DB
- Описания CVE с деталями
- Статьи с пошаговой эксплуатацией
Что искать в результатах:
- Remote Code Execution (RCE) — выполнение команд на цели. Золото.
- Backdoor — бэкдор, оставленный в коде. Лёгкая победа.
- Local File Inclusion (LFI) — чтение файлов на сервере
- SQL Injection — доступ к базе данных
- Denial of Service (DoS) — отказ в обслуживании (менее полезно для пентеста)
📊 Шаг 3: Базы уязвимостей
Exploit-DB (exploit-db.com)
Главная база эксплойтов. Для каждого эксплойта есть:
- Описание уязвимости
- Платформа (Linux/Windows)
- Исходный код эксплойта (Python, Ruby, C)
- Ссылка на CVE
Искать можно прямо на сайте или через Google с site:exploit-db.com:
site:exploit-db.com vsftpd 2.3.4
CVE Details (cvedetails.com)
База всех зарегистрированных уязвимостей. Для каждой CVE:
- Score (оценка от 0 до 10) — чем выше, тем опаснее
- Impact — влияние на конфиденциальность, целостность, доступность
- Тип — RCE, DoS, информационная утечка
Оценка 10.0 — критическая уязвимость, скорее всего RCE или полный доступ. Оценка 7.0-9.9 — серьёзная, стоит проверить. Оценка ниже 5.0 — обычно менее полезна для пентеста.
NVD (nvd.nist.gov)
Национальная база уязвимостей США. Более подробные описания, ссылки на патчи, CVSS-скоринг.
GitHub
Много эксплойтов публикуется на GitHub. Ищи:
vsftpd 2.3.4 exploit site:github.com
🔧 Шаг 4: SearchSploit (локальный поиск)
SearchSploit — утилита в Kali Linux которая ищет эксплойты в локальной копии Exploit-DB. Работает офлайн — не нужен интернет.
searchsploit vsftpd 2.3.4
Вывод:
Exploit Title | Path
vsftpd 2.3.4 - Backdoor Command Exec | unix/remote/49757.py
Показывает название эксплойта, платформу и путь к файлу.
Полезные флаги
searchsploit apache 2.4.49 # поиск по имени и версии
searchsploit -w apache 2.4.49 # показать URL на exploit-db.com
searchsploit -p 49757 # полный путь к файлу эксплойта
searchsploit -m 49757 # скопировать эксплойт в текущую папку
searchsploit --update # обновить базу
Найти и использовать эксплойт
# 1. Ищем
searchsploit UnrealIRCd
# 2. Смотрим путь
searchsploit -p 16922
# 3. Копируем в рабочую папку
searchsploit -m 16922
# 4. Смотрим что внутри
cat 16922.rb
Где лежат файлы эксплойтов
/usr/share/exploitdb/exploits/
Можно искать вручную:
locate 16922.rb
🆔 CVE — что это и как читать
CVE (Common Vulnerabilities and Exposures) — стандартный идентификатор уязвимости.
Формат: CVE-ГОД-НОМЕР
Примеры:
CVE-2021-41773— Path Traversal в Apache 2.4.49CVE-2017-0144— EternalBlue (WannaCry) в Windows SMBCVE-2011-2523— Бэкдор в vsftpd 2.3.4
Когда нашёл CVE — ищи эксплойт по номеру:
CVE-2021-41773 exploit
CVE-2021-41773 POC
CVE-2021-41773 github
POC (Proof of Concept) — рабочий пример эксплуатации. Именно его ищешь.
📋 CVSS — система оценки
CVSS (Common Vulnerability Scoring System) — числовая оценка серьёзности уязвимости от 0 до 10.
0.0 — нет угрозы
0.1–3.9 — низкая. Информационная утечка, minor баги
4.0–6.9 — средняя. Может понадобиться дополнительный доступ
7.0–8.9 — высокая. Серьёзный ущерб, возможен удалённый доступ
9.0–10.0 — критическая. RCE, полный контроль, без аутентификации
При пентесте в первую очередь интересуют уязвимости с оценкой 7.0+.
⚡ Шаг 5: Nmap NSE-скрипты для уязвимостей
Nmap тоже может искать уязвимости автоматически:
nmap --script vuln 10.0.0.1
Запускает все скрипты категории vuln — проверяет десятки CVE за раз.
Более точный вариант — с определением версий:
nmap -sV --script vuln 10.0.0.1
Скрипт vulners — ищет CVE по определённым версиям сервисов:
nmap -sV --script vulners 10.0.0.1
NSE-скрипты удобны для быстрой автоматической проверки, но ручной поиск в Google и SearchSploit обычно находит больше.
🛠 Nessus — автоматический сканер
Nessus — один из самых мощных сканеров уязвимостей. В отличие от ручного поиска, он:
- Сканирует все порты и сервисы автоматически
- Проверяет тысячи CVE
- Выдаёт отчёт с оценками и рекомендациями
- Проверяет конфигурации (слабые пароли, открытые шары, дефолтные настройки)
Бесплатная версия — Nessus Essentials (до 16 IP). Для обучения хватает.
Nessus — тема для отдельной шпаргалки. Но важно понимать: даже с Nessus, ручной анализ остаётся основным навыком.
🔄 Полный workflow
1. nmap -sV -sC -p- -T4 -oA scan target
│
▼
2. Изучить вывод — записать все версии сервисов
│
▼
3. Для каждой версии:
├── Google: "название версия exploit"
├── searchsploit название версия
├── Exploit-DB / CVE Details
└── nmap --script vuln
│
▼
4. Оценить найденное:
├── Платформа совпадает? (Linux/Windows)
├── Версия точно та? (2.4.49, не 2.4.50)
├── Есть рабочий эксплойт? (POC, код)
└── Оценка CVSS 7.0+?
│
▼
5. Эксплуатация (Metasploit или ручной запуск)
🧠 Практический пример
Допустим, nmap показал:
21/tcp open ftp vsftpd 2.3.4
80/tcp open http Apache httpd 2.4.49
vsftpd 2.3.4:
searchsploit vsftpd 2.3.4
# → Backdoor Command Execution
Это знаменитый бэкдор — кто-то внедрил его в исходный код vsftpd. Подключаешься к FTP, отправляешь специальный логин со смайликом :) и получаешь shell. Оценка 10.0.
Apache 2.4.49:
Google: "Apache 2.4.49 exploit"
# → CVE-2021-41773 — Path Traversal + RCE
Можно читать файлы сервера и выполнять команды. Оценка 9.8.
Обе уязвимости критические — через каждую можно получить доступ к системе.
📎 Полезные ресурсы
exploit-db.com — база эксплойтов с исходным кодом
cvedetails.com — детали CVE, оценки, затронутые версии
nvd.nist.gov — национальная база уязвимостей
github.com — POC и эксплойты от исследователей
searchsploit — офлайн-поиск в Kali Linux
vulners.com — агрегатор уязвимостей, используется NSE-скриптом vulners
⚠️ Важно
Ручной поиск уязвимостей — основа работы пентестера. Автоматические инструменты (Nessus, OpenVAS) помогают, но не заменяют:
- Они могут пропустить уязвимость
- Они дают ложные срабатывания
- Они не умеют думать и комбинировать уязвимости
Умение гуглить, читать CVE и понимать эксплойты — навык который отличает пентестера от человека который просто нажимает кнопки в инструментах.