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

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

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

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

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

Категории

Все категории
Loading categories
ssh-enum — Этот проект исследует, раскрывает ли современный OpenSSH действительные имена пользователей через тонкие различия в ответах или времени. Исследование перечисления пользователей CVE-2016-6210 (t-критерий Уэлча, d Коэна и инженерия обнаружения) в контролируемой лаборатории на Ubuntu 22.04.5 LTS, также изучает следы, которые оставляют такие попытки, и как их можно обнаружить. | Kitploit
Инструменты/GitHubGitHub/alisha-chaudhary/ssh-enum
РазведкаАнализ уязвимостейСбор информацииТестирование на ПроникновениеСтатьи и ИсследованияОбучение и ОбразованиеАнализ Журналов
GitHubalisha-chaudhary/ssh-enum

Популярное

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

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

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

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

Смотреть все инструменты →

ssh-enum

Репозиторий
122 месяцев назадЕщё не проверено

Описание

Этот проект исследует, раскрывает ли современный OpenSSH действительные имена пользователей через тонкие различия в ответах или времени. Исследование перечисления пользователей CVE-2016-6210 (t-критерий Уэлча, d Коэна и инженерия обнаружения) в контролируемой лаборатории на Ubuntu 22.04.5 LTS, также изучает следы, которые оставляют такие попытки, и как их можно обнаружить.

Поделиться

ssh-enum

Статистическое валидационное исследование CVE-2016-6210

Воспроизводимое повторное исследование перебора имён пользователей OpenSSH с использованием статистического анализа.

Этот проект заново исследует CVE-2016-6210, документированный побочный канал по времени в OpenSSH, чтобы определить, остаётся ли он наблюдаемым на современном сервере Ubuntu с конфигурацией PAM по умолчанию.

Вместо предположения, что опубликованное поведение всё ещё применимо, проект оценивает временные замеры аутентификации, собранные с помощью ручного зондирования, Hydra и Metasploit, используя t-критерий Уэлча и d Коэна для различения реальных временных сигналов от шума измерений.

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


⚠️ Правовое уведомление

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


Содержание

  • Постановка задачи
  • Настройка лаборатории
  • Методология
  • Что было создано
  • Наблюдения и результаты
  • Ход мыслей
  • Риски безопасности
  • Стратегии смягчения
  • Будущие улучшения
  • Структура проекта
  • Быстрый старт
  • Ссылки

🎯 Постановка задачи

Перебор имён пользователей — возможность определить, существует ли конкретное имя пользователя на удалённой системе без действительных учётных данных. Это критически важный первый шаг в цепочке атак, ведущей к компрометации учётной записи:``` Reconnaissance → [User Enumeration] → Password Attack → Access ↑ This project investigates here

Если злоумышленник может отличить «пользователь существует» от «пользователь не существует», анализируя ответы сервера, он может значительно сократить пространство ключей для последующих атак перебора или атак с использованием украденных учетных данных.

SSH является частой целью, так как он почти повсеместно открыт, поддерживает аутентификацию по паролю, а в старых реализациях были измеримые временные различия между действительными и недействительными именами пользователей (CVE-2016-6210).

**Это исследование задает два вопроса:**

1. Утекает ли современный OpenSSH на Ubuntu 22.04.5 LTS с конфигурацией по умолчанию информацию о существовании имени пользователя через ответные сообщения, временные задержки или сигналы, сообщаемые инструментами?
2. Если злоумышленник все же предпримет попытку, какие артефакты остаются? и насколько надежно их можно обнаружить?

---

## 🖥️ Лабораторная установка

Все тестирование проводилось в полностью изолированной виртуальной сети host-only без доступа в интернет.

| Машина    | ОС                        | Роль                                    | IP               | Версия SSH      |
|-----------|---------------------------|-----------------------------------------|------------------|------------------|
| Атакующий | Kali Linux 2024.1         | Инструменты атаки, скрипты анализа       | 192.168.56.5     | —                |
| Цель      | Ubuntu Server 22.04.5 LTS | Запущен OpenSSH с **конфигурацией по умолчанию** | 192.168.56.10    | OpenSSH 8.9p1    |

**Конфигурация SSH цели (`/etc/ssh/sshd_config` по умолчанию):**```
PasswordAuthentication yes
UsePAM yes                  # Key setting — normalises timing via dummy hash
PermitRootLogin prohibit-password
MaxAuthTries 6
LogLevel INFO

UsePAM yes является критически важной настройкой защиты. Она заставляет OpenSSH выполнять фиктивное вычисление bcrypt для несуществующих пользователей, имитируя время реальной проверки пароля. Это было введено специально как контрмера против CVE-2016-6210.


🔬 Методология

Каждый метод атаки запускался как независимое испытание с чистым состоянием журнала:```bash

Reset log state on target before each trial

sudo truncate -s 0 /var/log/auth.log

After attack: collect evidence

sudo cp /var/log/auth.log ~/evidence/trial-N-auth.log

Evidence collected per trial:
- Tool stdout/stderr (saved verbatim)
- `/var/log/auth.log` from target
- Response timing samples via `time.perf_counter()` in `manual_ssh.py`
- SSH banner grabbed before any auth attempt

### Attack Methods

| Method                | Tool                                 | Wordlist                | Purpose                                         |
|-----------------------|--------------------------------------|-------------------------|-------------------------------------------------|
| Manual SSH            | `ssh` CLI + Paramiko                 | 50 common usernames     | Baseline; inspect raw responses                 |
| Hydra brute force     | `hydra`                              | same 50                 | Automated; leverages Hydra's built-in enum mode |
| Metasploit module     | `auxiliary/scanner/ssh/ssh_enumuser` | same 50                 | Framework's dedicated enumeration module        |
| Banner fingerprinting | custom `BannerFingerprinter`         | N/A                     | No-auth version leak, CVE check                 |
| Timing analysis       | custom `ResponseAnalyzer`            | valid vs invalid subset | Statistical side-channel check                  |

---

## What Was Built

This project goes beyond running tools — it wraps each attack and all detection logic in a structured Python codebase and provides an orchestrator that runs the entire pipeline end-to-end.

### Attack Tools (`src/attack_tools/`)

**`ManualSSHEnumerator`** — Tests each username N times with `paramiko`, recording
precise timing, result type, and SSH banner. Computes mean/std per username. Critically,
it does **not** reuse connections between attempts, ensuring each sample captures the
full server-side processing time.

**`BannerFingerprinter`** — Grabs the SSH banner over a raw TCP socket (no credentials
needed). Parses implementation name, version string, and OS hint. Cross-references
against a local CVE registry. A version like `OpenSSH_8.9p1 Ubuntu-3ubuntu0.6` reveals
the exact server software — potentially enough to identify known vulnerabilities before
any authentication is attempted.

**`HydraAutomation`** — Subprocess wrapper around Hydra. Parses stdout to extract
successful logins, error messages, and Hydra's own enumeration verdict
(`does not support user enumeration`).

**`MetasploitScanner`** — Writes a temporary resource script and drives `msfconsole`
via subprocess. Parses output for hardening detection and any found usernames.

### Detection Tools (`src/detection_tools/`)

**`LogParser`** — Regex-based auth.log parser supporting five SSH event types:
`failed_invalid_user`, `failed_valid_user`, `pre_auth_reject`, `accepted`,
`disconnected`. Returns structured event dicts with timestamp, event type, username,
source IP, and port.

**`ResponseAnalyzer`** — Performs Welch's t-test on timing distributions from valid vs
invalid usernames. Computes timing delta (ms), p-value, Cohen's d effect size, and
a plain-language conclusion. Threshold: delta ≥ 5ms AND p < 0.05 triggers a side-channel
warning.

**`EnumerationDetector`** — Four detection patterns:
- **Rapid user probes**: sliding window - same IP, ≥10 distinct usernames within 60s
- **Wordlist correlation**: match rate between attempted usernames and known attack lists
- **Sequential timing**: coefficient of variation on inter-attempt gaps (low CoV → tool)
- **Distributed probing**: same username from multiple IPs (credential stuffing recon)
Скачать инструмент