📌 Шпаргалка #12

Ручной поиск уязвимостей

✍️ pentestudy 📅 26.03.2026

📌 Суть подхода

Ручной анализ уязвимостей — это то, чем пентестер занимается большую часть времени. Схема простая:

  1. Сканируешь цель → узнаёшь версии сервисов
  2. Берёшь название + версию → ищешь известные уязвимости
  3. Находишь эксплойт → используешь для атаки

Никакой магии. Кто-то до тебя уже нашёл дыру и написал эксплойт — твоя задача найти его и применить.


🔍 Шаг 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.49
  • CVE-2017-0144 — EternalBlue (WannaCry) в Windows SMB
  • CVE-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 и понимать эксплойты — навык который отличает пентестера от человека который просто нажимает кнопки в инструментах.

Содержание
📌 Суть подхода 🔍 Шаг 1: Узнать версии сервисов 🌐 Шаг 2: Поиск в Google 📊 Шаг 3: Базы уязвимостей Exploit-DB (exploit-db.com) CVE Details (cvedetails.com) NVD (nvd.nist.gov) GitHub 🔧 Шаг 4: SearchSploit (локальный поиск) Полезные флаги Найти и использовать эксплойт Где лежат файлы эксплойтов 🆔 CVE — что это и как читать 📋 CVSS — система оценки ⚡ Шаг 5: Nmap NSE-скрипты для уязвимостей 🛠 Nessus — автоматический сканер 🔄 Полный workflow 🧠 Практический пример 📎 Полезные ресурсы ⚠️ Важно