Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ssh-enum — Ce projet explore si OpenSSH moderne révèle des noms d'utilisateur valides via des différences subtiles de réponse ou de temporisation. Enquête sur l'énumération d'utilisateurs CVE-2016-6210 ( test t de Welch, d de Cohen et ingénierie de détection ) dans un laboratoire contrôlé sous Ubuntu 22.04.5 LTS ; il examine également les traces que de telles tentatives laissent derrière elles et comment elles peuvent être détectées. | Kitploit
Outils/GitHubGitHub/alisha-chaudhary/ssh-enum
ReconnaissanceAnalyse des VulnérabilitésCollecte d'InformationsTests d'IntrusionArticles et RechercheApprentissage et ÉducationAnalyse de Journaux
GitHubalisha-chaudhary/ssh-enum

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

ssh-enum

Voir le dépôt
12il y a 2 moisPas encore vérifié

À propos

Ce projet explore si OpenSSH moderne révèle des noms d'utilisateur valides via des différences subtiles de réponse ou de temporisation. Enquête sur l'énumération d'utilisateurs CVE-2016-6210 ( test t de Welch, d de Cohen et ingénierie de détection ) dans un laboratoire contrôlé sous Ubuntu 22.04.5 LTS ; il examine également les traces que de telles tentatives laissent derrière elles et comment elles peuvent être détectées.

Partager

ssh-enum

Étude de validation statistique de CVE-2016-6210

Une réinvestigation reproductible de l'énumération de noms d'utilisateur OpenSSH par analyse statistique.

Ce projet réinvestit CVE-2016-6210, un canal auxiliaire temporel documenté d'OpenSSH, afin de déterminer s'il reste observable sur un serveur Ubuntu moderne avec la configuration PAM par défaut.

Plutôt que de supposer que le comportement publié s'applique toujours, le projet évalue les mesures de temps d'authentification collectées via des sondages manuels, Hydra et Metasploit en utilisant le test t de Welch et le d de Cohen pour distinguer les signaux temporels réels du bruit de mesure.

L'étude n'a révélé aucune différence temporelle statistiquement significative sur la configuration par défaut testée, démontrant l'importance de l'expérimentation reproductible et de la validation fondée sur des preuves des affirmations de sécurité publiées.


⚠️ Avis légal

Ce projet a été entièrement mené dans un environnement de laboratoire isolé et dont vous êtes propriétaire. Tous les résultats ne s'appliquent qu'à la configuration testée. Ne testez jamais des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite.


Table des matières

  • Énoncé du problème
  • Configuration du laboratoire
  • Méthodologie
  • Ce qui a été construit
  • Observations et conclusions
  • Réflexion
  • Risques de sécurité
  • Stratégies d'atténuation
  • Améliorations futures
  • Structure du projet
  • Démarrage rapide
  • Références

🎯 Énoncé du problème

L'énumération d'utilisateurs – la capacité de déterminer si un nom d'utilisateur spécifique existe sur un système distant sans informations d'identification valides. Il s'agit d'une première étape cruciale dans la chaîne d'attaque menant à la compromission du compte :``` Reconnaissance → [User Enumeration] → Password Attack → Access ↑ This project investigates here

Si un attaquant peut distinguer « cet utilisateur existe » de « cet utilisateur n’existe pas » en analysant les réponses du serveur, il peut réduire considérablement l’espace de clés pour les attaques ultérieures par force brute ou par bourrage d’identifiants.

SSH est une cible fréquente car il est quasi universellement exposé, gère l’authentification par mot de passe, et les implémentations plus anciennes présentaient des différences de temps mesurables entre les noms d’utilisateur valides et invalides (CVE-2016-6210).

**Cette investigation pose deux questions :**

1. L’OpenSSH moderne sur Ubuntu 22.04.5 LTS avec la configuration par défaut divulgue-t-il l’existence d’un utilisateur
   via les messages de réponse, le temps de réponse ou les signaux rapportés par les outils ?
2. Si un attaquant tente quand même l’attaque, quels artefacts laisse-t-il ? et avec quelle fiabilité
   peuvent-ils être détectés ?

---

## 🖥️ Configuration du laboratoire

Tous les tests ont été réalisés dans un réseau virtuel isolé, sans accès à Internet.

| Machine   | Système d’exploitation     | Rôle                             | IP               | Version SSH      |
|-----------|----------------------------|----------------------------------|------------------|------------------|
| Attaquant | Kali Linux 2024.1          | Outils offensifs, scripts d’analyse | 192.168.56.5     | —                |
| Cible     | Ubuntu Server 22.04.5 LTS  | Exécute OpenSSH avec configuration **par défaut** | 192.168.56.10    | OpenSSH 8.9p1    |

**Configuration SSH cible (`/etc/ssh/sshd_config` par défaut) :**```
PasswordAuthentication yes
UsePAM yes                  # Key setting — normalises timing via dummy hash
PermitRootLogin prohibit-password
MaxAuthTries 6
LogLevel INFO

UsePAM yes est le paramètre de durcissement critique. Il force OpenSSH à exécuter un calcul bcrypt factice pour les utilisateurs inexistants, correspondant au timing d'une vérification de mot de passe réelle. Cela a été introduit spécifiquement comme contre-mesure à CVE-2016-6210.


🔬 Méthodologie

Chaque méthode d'attaque a été exécutée comme un essai indépendant avec un état de journal propre :```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

Preuves collectées par essai :
- Sortie standard/erreur de l'outil (sauvegardée textuellement)
- `/var/log/auth.log` de la cible
- Échantillons de synchronisation des réponses via `time.perf_counter()` dans `manual_ssh.py`
- Bannière SSH récupérée avant toute tentative d'authentification

### Méthodes d'attaque

| Méthode               | Outil                               | Liste de mots            | Objectif                                         |
|-----------------------|-------------------------------------|--------------------------|--------------------------------------------------|
| SSH manuel            | `ssh` CLI + Paramiko                | 50 noms d'utilisateur courants | Référence ; inspecter les réponses brutes         |
| Bruteforce Hydra      | `hydra`                             | les mêmes 50             | Automatisé ; exploite le mode d'énumération intégré de Hydra |
| Module Metasploit     | `auxiliary/scanner/ssh/ssh_enumuser`| les mêmes 50             | Module d'énumération dédié du framework           |
| Empreinte de bannière | custom `BannerFingerprinter`        | N/A                      | Fuite de version sans authentification, vérification CVE |
| Analyse temporelle    | custom `ResponseAnalyzer`           | sous-ensemble valide vs invalide | Vérification statistique par canal auxiliaire        |

---

## Ce qui a été construit

Ce projet va au-delà de l'exécution d'outils — il encapsule chaque attaque et toute la logique de détection dans une base de code Python structurée et fournit un orchestrateur qui exécute l'ensemble du pipeline de bout en bout.

### Outils d'attaque (`src/attack_tools/`)

**`ManualSSHEnumerator`** — Teste chaque nom d'utilisateur N fois avec `paramiko`, en enregistrant le timing précis, le type de résultat et la bannière SSH. Calcule la moyenne/écart type par nom d'utilisateur. Il est crucial qu'il ne **réutilise pas** les connexions entre les tentatives, ce qui garantit que chaque échantillon capture le temps de traitement complet du côté serveur.

**`BannerFingerprinter`** — Récupère la bannière SSH via une socket TCP brute (aucune information d'identification nécessaire). Analyse le nom de l'implémentation, la chaîne de version et l'indice du système d'exploitation. Recoupe avec un registre CVE local. Une version comme `OpenSSH_8.9p1 Ubuntu-3ubuntu0.6` révèle le logiciel serveur exact — potentiellement suffisant pour identifier les vulnérabilités connues avant toute tentative d'authentification.

**`HydraAutomation`** — Wrapper de sous-processus autour de Hydra. Analyse la sortie standard pour extraire les connexions réussies, les messages d'erreur et le verdict d'énumération propre à Hydra (`does not support user enumeration`).

**`MetasploitScanner`** — Écrit un script de ressource temporaire et pilote `msfconsole` via un sous-processus. Analyse la sortie pour la détection de durcissement et les noms d'utilisateur trouvés.

### Outils de détection (`src/detection_tools/`)

**`LogParser`** — Analyseur basé sur des expressions régulières pour auth.log supportant cinq types d'événements SSH : `failed_invalid_user`, `failed_valid_user`, `pre_auth_reject`, `accepted`, `disconnected`. Retourne des dictionnaires d'événements structurés avec horodatage, type d'événement, nom d'utilisateur, IP source et port.
Télécharger l’outil