Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sub.Monitor — Herramienta de monitoreo continuo pasivo de subdominios autoalojada. | Kitploit
Herramientas/GitHubGitHub/e1abrador/sub.monitor
ReconocimientoRecopilación de InformaciónEnumeración de Subdominios
GitHube1abrador/sub.monitor

sub.Monitor

Herramienta de monitoreo continuo pasivo de subdominios autoalojada.

Ver Repositorio
1722014hace 2 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

sub.Monitor


   Herramienta de monitoreo de subdominios rápida y fácil de usar para la gestión continua de la superficie de ataque.

image

¿Por qué?

¿Por qué optar por sub.Monitor? Este programa ofrece una configuración sencilla gracias a su uso de SQLite para almacenar todos los dominios identificados (eliminando la necesidad de una gestión previa de la base de datos). Además, presume de una alta personalización, ya que los usuarios solo necesitan añadir unas pocas líneas de código al script usando sus herramientas elegidas. En contraste con otras soluciones existentes que dependen de bases de datos como MySQL o MongoDB, inicializar el script puede convertirse en una tarea tediosa.

Características

  • Rápido
  • Fácil de usar
  • Fácil de instalar
  • Fácil de personalizar
  • Guarda continuamente los subdominios en la base de datos local (con la posibilidad de volcarlos todos)
  • Notificaciones por Telegram/Slack/Discord

Menú de ayuda

sub.Monitor banderas:

options:
  --add ADD             Domain to scan
  --out-scope OUT_SCOPE
                        File with out-of-scope domains
  --file FILE           File with known subdomains
  -D DOMAIN, --domain DOMAIN
                        Domain to scan
  -H HOURS, --hours HOURS
                        Hours between scans
  --dump                Dump all subdomains for a specific domain
  --list                List all root domains in the database
  -df DF                File with domains to scan
  --inscope             Dump only in-scope domains
  --notinscope          Dump only out-of-scope domains
  --dumpall             Dump all subdomains with their details
  --info                Show discovery date for subdomains
  -help, -?             Show this help message and exit

Configuraciones previas necesarias

Debes escribir las rutas de los archivos de configuración (api) en el archivo config.ini.

  • Archivo de configuración de API de Subfinder.
  • Archivo de configuración de API de Amass.
  • Archivo de configuración de API de Notify.
  • Deberás especificar las rutas del binario y de configuración en el archivo sub.monitor-config.ini.
  • Finalmente, ejecuta pip3 install -r requirements.txt

Puedes implementar fácilmente tus propias herramientas en el script, solo modifica las líneas de código:

def run_tool(tool, domain, output_file):
    print(f'[{datetime.datetime.now()}] - Running {tool} on {domain}')
    if tool == 'assetfinder':
        assetfinder_binary = config.get('Binary paths', 'assetfinder')
        cmd = f'echo {domain} | {assetfinder_binary} -subs-only | grep -E "{domain}$" |grep -v "*" | grep -v "@"'
    elif tool == 'subfinder':
        subfinder_binary = config.get('Binary paths', 'subfinder')
        subfinder_api = config.get('Api', 'subfinder_api')
        cmd = f'{subfinder_binary} -d {domain} -silent -pc {subfinder_api} -all'
    elif tool == 'amass':
        amass_binary = config.get('Binary paths', 'amass')
        amass_api = config.get('Api', 'amass_api')
        cmd = f'{amass_binary} enum -passive -norecursive -noalts -d {domain} -config {amass_api}'
    elif tool == 'my-custom-tool':
        my-custom-tool-binary = config.get('Binary paths', 'my-custom-tool-binary-or-script')
        cmd = f'{my-custom-tool-binary} -d {domain}'

Es importante tener en cuenta que si agregas una herramienta personalizada, la última salida debe ser los dominios resultantes para que sub.Monitor los guarde en la base de datos; por ejemplo, la forma de usarlo sería:

cmd = f'bash customtool.sh {domain}''
...
cat customtool.sh
mycustomtool -d $1 > /tmp/$1.txt &>/dev/null; cat /tmp/$1.txt | unfurl domains | anew; rm -r /tmp/$1.txt

También añade el nombre de tu herramienta aquí:

                for tool in ['subfinder', 'amass', 'assetfinder', 'my-custom-tool-name']:
                    run_tool(tool, domain, output_file)

Finalmente, por supuesto, debes agregar la herramienta en el archivo sub.monitor-config.ini para que el script de Python pueda obtener el binario desde ese archivo de configuración.

Lo único necesario es que una vez que el comando haya terminado, debe mostrar en la salida todos los dominios descubiertos para que la herramienta pueda guardarlos en el archivo de logs y dentro de la base de datos.

Plan de trabajo

En primer lugar, sub.Monitor necesita una lista de dominios ya escaneados:

➜  cat ibm_sorted_subdomains.txt
test1.ibm.com
test2.ibm.com
test3.ibm.com
subtest.testX.ibm.com
...

Ahora, el archivo que contiene los subdominios se puede pasar a sub.Monitor con el siguiente comando:

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

También existe la posibilidad de añadir una bandera de fuera de alcance; por ejemplo, supongamos que un programa Bug Bounty tiene la siguiente política:

*.ibm.com - in scope
super-admin.ibm.com - out of scope
*.super-admin.ibm.com - out of scope

Es posible crear un archivo con esto:

cat outscope.txt
super-admin.ibm.com
*.super-admin.ibm.com

Ahora, puedes añadir manualmente todos los dominios descubiertos a la base de datos (filtrando los que están dentro del alcance):

python3 monitor.py --add ibm.com --file ibm_sorted_subdomains.txt --out-scope outscope.txt
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

[2023-06-06 18:16:26.002521] - 538 subdomains were added to the local database.

Esto añadirá todos tus subdominios a la base de datos, pero marcará todos los que están fuera de alcance con la bandera [Fuera de alcance] (veremos cómo filtrar los dominios dentro del alcance de la base de datos en la sección de volcado de dominios).

Para confirmar que el dominio ha sido añadido a la base de datos, ejecuta:

python3 monitor.py --list
          _    ___  ___            _ _
          | |   |  \/  |           (_) |
 ___ _   _| |__ | .  . | ___  _ __  _| |_ ___  _ __
/ __| | | | '_ \| |\/| |/ _ \| '_ \| | __/ _ \| '__|
\__ \ |_| | |_) | |  | | (_) | | | | | || (_) | |
|___/\__,_|_.__/\_|  |_/\___/|_| |_|_|\__\___/|_|

                    github.com/e1abrador/sub.Monitor

ibm.com [9 subdomains added manually] [2 subdomains discovered] [11 total unique in database]

Una vez que se ha cargado correctamente, el proceso de monitoreo puede comenzar. Se recomienda usar TMUX en una VPS y dejarlo ejecutándose durante mucho tiempo. Con el siguiente comando, el script ejecutará las herramientas de enumeración de subdominios y comparará los nuevos resultados con los antiguos. Si se encuentra algún subdominio nuevo, sub.Monitor lo añadirá primero a la base de datos local (para que no notifique más sobre ese descubrimiento) y luego notificará al usuario a través de Slack/Telegram/Discord.

Descargar herramienta