Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
Lepus — Découvreur de sous-domaines | Kitploit
Outils/GitHubGitHub/gfek/lepus
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCartographie RéseauScan de PortsAnalyse des VulnérabilitésCollecte d'InformationsÉnumération de Sous-domainesAnalyse DNS
GitHubgfek/lepus

Lepus

Découvreur de sous-domaines

Voir le dépôt
37148il y a 3 ansVérifié par Kitploit

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 →
Partager

GitHub License GitHub Python GitHub Version

Lepus

Lepus est un outil pour énumérer les sous-domaines, vérifier les prises de contrôle de sous-domaines et effectuer des scans de ports – et il est rapide, c'est le cas de le dire !

Utilisation de base

root@kitploit:~
lepus.py yahoo.com

Résumé

  • Modes d'énumération
  • Prise de contrôle de sous-domaine
  • Scan de ports
  • Installation
  • Arguments
  • Exemple de commande complète

Modes d'énumération

Les modes d'énumération sont les différentes façons dont lepus utilise pour identifier les sous-domaines pour un domaine donné. Ces modes sont :

  • Collecteurs
  • Dictionnaire
  • Permutations
  • DNS inversé
  • Markov

De plus :

  • Pour toutes les méthodes, lepus vérifie si le domaine donné ou tout sous-domaine potentiel généré est un domaine wildcard ou non.
  • Après identification, lepus collecte les informations ASN et réseau pour les domaines identifiés qui résolvent en adresses IP publiques.

Collecteurs

Le mode Collecteurs collecte les sous-domaines à partir des services suivants :

Vous pouvez ajouter vos clés API dans le fichier config.ini.

Le module Collecteurs s'exécutera par défaut sur lepus. Si vous ne souhaitez pas utiliser les collecteurs lors d'une exécution de lepus (pour ne pas épuiser vos limites de clés API), vous pouvez utiliser l'argument -nc ou --no-collectors.

Dictionnaire

Le mode dictionnaire peut être utilisé lorsque vous souhaitez fournir à lepus une liste de sous-domaines. Vous pouvez utiliser l'argument -w ou --wordlist suivi du fichier. Une liste personnalisée est fournie avec lepus, située dans lists/subdomains.txt. Un exemple d'exécution serait :

root@kitploit:~
lepus.py -w lists/subdomains.txt yahoo.com

Permutations

Le mode Permutations effectue des modifications sur la liste des sous-domaines identifiés. Pour chaque sous-domaine, un certain nombre de permutations aura lieu en fonction du fichier lists/words.txt. Vous pouvez également fournir une wordlist personnalisée pour les permutations avec l'argument -pw ou --permutation-wordlist, suivi du nom du fichier. Un exemple d'exécution serait :

root@kitploit:~
lepus.py --permutate yahoo.com

ou

root@kitploit:~
lepus.py --permutate -pw customsubdomains.txt yahoo.com

DNS inversé (ReverseDNS)

Le mode ReverseDNS rassemblera toutes les adresses IP résolues et effectuera un DNS inversé sur chacune d'elles afin de détecter plus de sous-domaines. Par exemple, si www.example.com résout en 1.2.3.4, lepus effectuera un DNS inversé pour 1.2.3.4 et rassemblera tous les autres sous-domaines appartenant à example.com, par exemple www2, internal ou oldsite.

Pour exécuter le module ReverseDNS, utilisez l'argument --reverse. De plus, --ripe (ou -ripe) peut être utilisé pour demander au module d'interroger la base de données RIPE en utilisant le domaine de second niveau pour les plages réseau potentielles. De plus, lepus prend en charge l'argument --ranges (ou -r). Vous pouvez l'utiliser pour effectuer des résolutions DNS inversées contre les CIDR appartenant au domaine cible.

Par défaut, ce module prendra en compte toutes les IP précédemment identifiées, puis les plages définies, puis les plages identifiées via la base de données RIPE. Si vous souhaitez exécuter le module uniquement contre des plages spécifiques ou identifiées par RIPE, et non contre toutes les IP déjà identifiées, vous pouvez utiliser l'argument --only-ranges (-or).

Un exemple d'exécution serait :

root@kitploit:~
lepus.py --reverse yahoo.com

ou

root@kitploit:~
lepus.py --reverse -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com

ou uniquement contre les plages définies ou identifiées par RIPE

root@kitploit:~
lepus.py --reverse -or -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com

Astuce : lepus identifiera les ASN et les Réseaux pendant l'énumération, vous pouvez donc également utiliser ces plages pour identifier plus de sous-domaines avec une exécution ultérieure.

Markov

Avec ce module, Lepus utilisera les chaînes de Markov afin de s'entraîner, puis de générer des sous-domaines basés sur ceux déjà connus. Plus la surface générale est grande, mieux l'outil pourra s'entraîner et, par conséquent, meilleurs seront les résultats.

Le module peut être activé avec l'argument --markovify. Les paramètres incluent également la taille de l'état de Markov, la longueur maximale de l'ajout de candidat généré et la quantité de candidats générés. Les valeurs prédéfinies sont respectivement 3, 5 et 5. Ces arguments peuvent être modifiés avec -ms (--markov-state), -ml (--markov-length) et -mq (--markov-quantity) selon vos besoins. Gardez à l'esprit que plus ces valeurs sont grandes, plus Lepus aura besoin de temps pour générer les candidats.

Il est à noter que différentes exécutions de ce module peuvent générer des candidats différents, n'hésitez donc pas à l'exécuter plusieurs fois consécutivement. Gardez à l'esprit que plus les valeurs -ms, -ml et -mq sont élevées, plus le temps nécessaire à la génération de candidats sera long.

root@kitploit:~
lepus.py --markovify yahoo.com

ou

root@kitploit:~
lepus.py --markovify -ms 5 -ml 10 -mq 10

Prise de contrôle de sous-domaine

Lepus dispose d'une liste de signatures pour identifier si un domaine peut être pris en contrôle. Vous pouvez l'utiliser en fournissant l'argument --takeover. Ce module prend également en charge les notifications Slack, une fois qu'une prise de contrôle potentielle a été identifiée, en ajoutant un token Slack dans le fichier config.ini. Les vérifications sont effectuées contre les services suivants :

  • Acquia
  • Activecampaign
  • Aftership
  • Aha!
  • Airee
  • Amazon AWS/S3
  • Apigee
  • Azure
  • Bigcartel
  • Bitbucket
  • Brightcove
  • Campaign Monitor
  • Cargo Collective
  • Desk
  • Feedpress
  • Fly.io
  • Getresponse
  • Ghost.io
  • Github
  • Hatena
  • Helpjuice
  • Helpscout
  • Heroku
  • Instapage
  • Intercom
  • JetBrains
  • Kajabi
  • Kayako
  • Launchrock
  • Mashery
  • Maxcdn
  • Moosend
  • Ning
  • Pantheon
  • Pingdom
  • Readme.io
  • Simplebooklet
  • Smugmug
  • Statuspage
  • Strikingly
  • Surge.sh
  • Surveygizmo
  • Tave
  • Teamwork
  • Thinkific
  • Tictail
  • Tilda
  • Tumblr
  • Uptime Robot
  • UserVoice
  • Vend
  • Webflow
  • Wishpond
  • Wordpress
  • Zendesk

Scan de ports

Le module de scan de ports vérifiera les ports ouverts sur une cible et les enregistrera dans les résultats. Vous pouvez utiliser l'argument --portscan qui, par défaut, analysera les ports 80, 443, 8000, 8080, 8443. Vous pouvez également utiliser des ports personnalisés ou choisir un ensemble prédéfini de ports.

Ensemble de portsPorts
small80, 443
medium (par défaut)80, 443, 8000, 8080, 8443

Un exemple d'exécution serait :

root@kitploit:~
lepus.py --portscan yahoo.com

ou

root@kitploit:~
lepus.py --portscan -p huge yahoo.com

ou

root@kitploit:~
lepus.py --portscan -p 80,443,8082,65123 yahoo.com

Installation

  1. Installation normale :

    root@kitploit:~
    $ python3.7 -m pip install -r requirements.txt
    
  2. De préférence, installez dans un virtualenv :

    root@kitploit:~
    $ pyenv virtualenv 3.7.4 lepus
    $ pyenv activate lepus
    $ pip install -r requirements.txt
    
  3. Installation du dernier python sur debian :

    root@kitploit:~
    $ apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget
    $ curl -O https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz
    $ tar -xf Python-3.7.4.tar.xz
    $ cd Python-3.7.4
    $ ./configure --enable-optimizations --enable-loadable-sqlite-extensions
    $ make
    $ make altinstall
    

Arguments

root@kitploit:~
usage: lepus.py [-h] [-w WORDLIST] [-hw] [-t THREADS] [-nc] [-zt]
                [--permutate] [-pw PERMUTATION_WORDLIST] [--reverse]
                [-r RANGES] [--portscan] [-p PORTS] [--takeover] [--markovify]
                [-ms MARKOV_STATE] [-ml MARKOV_LENGTH] [-mq MARKOV_QUANTITY]
                [-f] [-v]
                domain

OSINT d'infrastructure

arguments positionnels :
  domain                domaine à rechercher

arguments optionnels :
  -h, --help            affiche ce message d'aide et quitte
  -w WORDLIST, --wordlist WORDLIST
                        wordlist avec les sous-domaines
  -hw, --hide-wildcards
                        masquer les résolutions wildcard
  -t THREADS, --threads THREADS
                        nombre de threads [par défaut 100]
  -nc, --no-collectors  ignorer l'énumération passive de sous-domaines
  -zt, --zone-transfer  tenter un transfert de zone à partir des serveurs de noms identifiés
  --permutate           effectuer des permutations sur les domaines résolus
  -pw PERMUTATION_WORDLIST, --permutation-wordlist PERMUTATION_WORDLIST
                        wordlist pour effectuer les permutations [par défaut lists/words.txt]
  --reverse             effectuer des recherches DNS inversées sur les adresses IP publiques résolues
  -ripe, --ripe         interroger la base de données ripe avec le domaine de 2ème niveau pour les réseaux à utiliser pour les recherches inversées
  -r RANGES, --ranges RANGES
                        plages IP séparées par des virgules sur lesquelles effectuer des recherches DNS inversées
  -or, --only-ranges    utiliser uniquement les plages fournies avec -r ou -ripe et non toutes les IP précédemment identifiées
  --portscan            analyser les adresses IP publiques résolues pour les ports ouverts
  -p PORTS, --ports PORTS
                        ensemble de ports à utiliser par le module de scan [par défaut medium]
  --takeover            vérifier les hôtes identifiés pour des prises de contrôle potentielles de sous-domaines
  --markovify           utiliser les chaînes de Markov pour identifier plus de sous-domaines
  -ms MARKOV_STATE, --markov-state MARKOV_STATE
                        taille de l'état de Markov [par défaut 3]
  -ml MARKOV_LENGTH, --markov-length MARKOV_LENGTH
                        longueur maximale des substitutions de Markov [par défaut 5]
  -mq MARKOV_QUANTITY, --markov-quantity MARKOV_QUANTITY
                        quantité maximale de résultats de Markov par longueur de candidat [par défaut 5]
  -f, --flush           supprimer toutes les entrées du domaine spécifié dans la base de données
  -v, --version         affiche le numéro de version du programme et quitte

Exemple de commande complète

Ce qui suit est un exemple d'exécution avec tous les arguments actifs disponibles :

root@kitploit:~
./lepus.py python.org --wordlist lists/subdomains.txt --permutate -pw ~/mypermsword.lst --reverse -ripe -r 10.11.12.0/24 --portscan -p huge --takeover --markovify -ms 3 -ml 10 -mq 10

La commande suivante vide toutes les entrées de la base de données pour un domaine spécifique :

root@kitploit:~
./lepus.py python.org --flush
Télécharger l’outil
ServiceAPI Requise
CensysOui
CertSpotterNon
CRTNon
DNSTrailsOui
FOFAOui
Google TransparencyNon
HackerTargetNon
PassiveTotalOui
Project Discovery ChaosOui
Project CrobatNon
Project SonarNon
RiddlerOui
ShodanOui
SpyseOui
ThreatCrowdNon
ThreatMinerNon
VirusTotalOui
Wayback MachineNon
ZoomEyeOui
large80, 81, 443, 591, 2082, 2087, 2095, 2096, 3000, 8000, 8001, 8008, 8080, 8083, 8443, 8834, 8888, 9000, 9090, 9443
huge80, 81, 300, 443, 591, 593, 832, 981, 1010, 1311, 2082, 2087, 2095, 2096, 2480, 3000, 3128, 3333, 4243, 4567, 4711, 4712, 4993, 5000, 5104, 5108, 5800, 6543, 7000, 7396, 7474, 8000, 8001, 8008, 8014, 8042, 8069, 8080, 8081, 8088, 8090, 8091, 8118, 8123, 8172, 8222, 8243, 8280, 8281, 8333, 8443, 8500, 8834, 8880, 8888, 8983, 9000, 9043, 9060, 9080, 9090, 9091, 9200, 9443, 9800, 9943, 9980, 9981, 12443, 16080, 18091, 18092, 20720, 28017