Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Lepus — Buscador de subdominios | Kitploit
Herramientas/GitHubGitHub/gfek/lepus
OSINT (Inteligencia de Fuentes Abiertas)ReconocimientoMapeo de RedesEscaneo de PuertosAnálisis de VulnerabilidadesRecopilación de InformaciónEnumeración de SubdominiosAnálisis de DNS
GitHubgfek/lepus

Lepus

Buscador de subdominios

Ver Repositorio
37148hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

GitHub License GitHub Python GitHub Version

Lepus

Lepus es una herramienta para enumerar subdominios, verificar la posibilidad de toma de control de subdominios y realizar escaneos de puertos. ¡Y vaya que es rápida!

Uso básico

root@kitploit:~
lepus.py yahoo.com

Resumen

  • Modos de enumeración
  • Toma de control de subdominios
  • Escaneo de puertos
  • Instalación
  • Argumentos
  • Ejemplo de comando completo

Modos de enumeración

Los modos de enumeración son las diferentes formas que Lepus utiliza para identificar subdominios de un dominio dado. Estos modos son:

  • Colectores
  • Diccionario
  • Permutaciones
  • DNS Inverso
  • Markov

Además:

  • Para todos los métodos, Lepus verifica si el dominio dado o cualquier subdominio potencial generado es un dominio comodín o no.
  • Tras la identificación, Lepus recopila información de ASN y de red para los dominios identificados que resuelven a direcciones IP públicas.

Colectores

El modo Colectores recopila subdominios de los siguientes servicios:

Puedes añadir tus claves de API en el archivo config.ini.

El módulo de Colectores se ejecutará por defecto en Lepus. Si no deseas usar los colectores durante una ejecución de Lepus (para no agotar los límites de tus claves de API), puedes usar el argumento -nc o --no-collectors.

Diccionario

El modo diccionario se puede usar cuando quieras proporcionar a Lepus una lista de subdominios. Puedes usar el argumento -w o --wordlist seguido del archivo. Una lista personalizada viene con Lepus ubicada en lists/subdomains.txt. Un ejemplo de ejecución sería:

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

Permutaciones

El modo Permutaciones realiza cambios en la lista de subdominios que han sido identificados. Para cada subdominio, se realizarán una serie de permutaciones basadas en el archivo lists/words.txt. También puedes proporcionar una lista de palabras personalizada para las permutaciones con el argumento -pw o --permutation-wordlist, seguido del nombre del archivo. Un ejemplo de ejecución sería:

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

o

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

DNS Inverso

El modo DNS Inverso recopilará todas las direcciones IP que se resolvieron y realizará un DNS inverso en cada una para detectar más subdominios. Por ejemplo, si www.example.com resuelve a 1.2.3.4, Lepus realizará un DNS inverso para 1.2.3.4 y recopilará cualquier otro subdominio perteneciente a example.com, por ejemplo, www2, internal o oldsite.

Para ejecutar el módulo de DNS Inverso usa el argumento --reverse. Además, se puede usar --ripe (o -ripe) para indicar al módulo que consulte la base de datos de RIPE usando el dominio de segundo nivel para posibles rangos de red. Además, Lepus soporta el argumento --ranges (o -r). Puedes usarlo para realizar resoluciones DNS inversas contra CIDR que pertenezcan al dominio objetivo.

Por defecto, este módulo tomará en cuenta todas las IPs previamente identificadas, luego los rangos definidos y luego los rangos identificados a través de la base de datos de RIPE. En caso de que solo quieras ejecutar el módulo contra rangos específicos o identificados por RIPE, y no contra todas las IPs ya identificadas, puedes usar el argumento --only-ranges (-or).

Un ejemplo de ejecución sería:

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

o

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

o solo contra los rangos definidos o identificados por RIPE

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

Sugerencia: Lepus identificará ASNs y Redes durante la enumeración, por lo que también puedes usar estos rangos para identificar más subdominios en una ejecución posterior.

Markov

Con este módulo, Lepus utilizará cadenas de Markov para entrenarse y luego generar subdominios basados en los ya conocidos. Cuanto mayor sea la superficie general, mejor podrá la herramienta entrenarse y, posteriormente, mejores serán los resultados.

El módulo se puede activar con el argumento --markovify. Los parámetros también incluyen el tamaño del estado de Markov, la longitud máxima de la adición candidata generada y la cantidad de candidatos generados. Los valores predefinidos son 3, 5 y 5 respectivamente. Esos argumentos se pueden cambiar con -ms (--markov-state), -ml (--markov-length) y -mq (--markov-quantity) según tus necesidades. Ten en cuenta que cuanto mayores sean estos valores, más tiempo necesitará Lepus para generar los candidatos.

Cabe señalar que diferentes ejecuciones de este módulo pueden generar candidatos diferentes, así que siéntete libre de ejecutarlo varias veces consecutivas. Ten en cuenta que cuanto más altos sean los valores de -ms, -ml y -mq, más tiempo se necesitará para la generación de candidatos.

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

o

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

Toma de control de subdominios

Lepus tiene una lista de firmas para identificar si un dominio puede ser tomado. Puedes usarlo proporcionando el argumento --takeover. Este módulo también soporta notificaciones de Slack, una vez que se haya identificado una posible toma de control, añadiendo un token de Slack en el archivo config.ini. Las comprobaciones se realizan contra los siguientes servicios:

  • 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

Escaneo de puertos

El módulo de escaneo de puertos verificará los puertos abiertos contra un objetivo y los registrará en los resultados. Puedes usar el argumento --portscan, que por defecto escaneará los puertos 80, 443, 8000, 8080, 8443. También puedes usar puertos personalizados o elegir un conjunto predefinido de puertos.

Conjunto de puertosPuertos
small80, 443
medium (por defecto)80, 443, 8000, 8080, 8443

Un ejemplo de ejecución sería:

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

o

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

o

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

Instalación

  1. Instalación normal:

    root@kitploit:~
    $ python3.7 -m pip install -r requirements.txt
    
  2. Preferiblemente instalar en un virtualenv:

    root@kitploit:~
    $ pyenv virtualenv 3.7.4 lepus
    $ pyenv activate lepus
    $ pip install -r requirements.txt
    
  3. Instalando la última versión de Python en 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
    

Argumentos

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

Infrastructure OSINT

positional arguments:
  domain                dominio a buscar

optional arguments:
  -h, --help            muestra este mensaje de ayuda y sale
  -w WORDLIST, --wordlist WORDLIST
                        lista de palabras con subdominios
  -hw, --hide-wildcards
                        ocultar resoluciones comodín
  -t THREADS, --threads THREADS
                        número de hilos [por defecto es 100]
  -nc, --no-collectors  saltar la enumeración pasiva de subdominios
  -zt, --zone-transfer  intentar transferencia de zona desde los servidores de nombres identificados
  --permutate           realizar permutaciones en los dominios resueltos
  -pw PERMUTATION_WORDLIST, --permutation-wordlist PERMUTATION_WORDLIST
                        lista de palabras para realizar permutaciones [por defecto es lists/words.txt]
  --reverse             realizar consultas DNS inversas en direcciones IP públicas resueltas
  -ripe, --ripe         consultar la base de datos de RIPE con el dominio de segundo nivel 
                        para redes que se usarán en las consultas inversas
  -r RANGES, --ranges RANGES
                        rangos de IP separados por comas para realizar consultas DNS inversas
  -or, --only-ranges    usar solo los rangos proporcionados con -r o -ripe y no todas las IPs identificadas previamente
  --portscan            escanear direcciones IP públicas resueltas en busca de puertos abiertos
  -p PORTS, --ports PORTS
                        conjunto de puertos a usar por el módulo de escaneo de puertos
                        [por defecto es medium]
  --takeover            verificar los hosts identificados en busca de posibles tomas de control de subdominios
  --markovify           usar cadenas de Markov para identificar más subdominios
  -ms MARKOV_STATE, --markov-state MARKOV_STATE
                        tamaño del estado de Markov [por defecto es 3]
  -ml MARKOV_LENGTH, --markov-length MARKOV_LENGTH
                        longitud máxima de las sustituciones de Markov [por defecto es 5]
  -mq MARKOV_QUANTITY, --markov-quantity MARKOV_QUANTITY
                        cantidad máxima de resultados de Markov por longitud de candidato [por defecto es 5]
  -f, --flush           purgar todos los registros del dominio especificado de la base de datos
  -v, --version         mostrar el número de versión del programa y salir

Ejemplo de comando completo

El siguiente es un ejemplo de ejecución con todos los argumentos activos 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

El siguiente comando vacía todas las entradas de la base de datos para un dominio específico:

root@kitploit:~
./lepus.py python.org --flush
Descargar herramienta
ServicioAPI Requerida
CensysSí
CertSpotterNo
CRTNo
DNSTrailsSí
FOFASí
Google TransparencyNo
HackerTargetNo
PassiveTotalSí
Project Discovery ChaosSí
Project CrobatNo
Project SonarNo
RiddlerSí
ShodanSí
SpyseSí
ThreatCrowdNo
ThreatMinerNo
VirusTotalSí
Wayback MachineNo
ZoomEyeSí
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