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
webstor — Enumera todos los sitios web a través de las redes de una organización mediante transferencias de zona DNS y masscan, almacena las respuestas y permite consultar tecnologías web vulnerables conocidas y patrones de expresiones regulares personalizados. | Kitploit
Herramientas/GitHubGitHub/rossgeerlings/webstor
ReconocimientoEscáneres de VulnerabilidadesRecopilación de InformaciónSeguridad WebAnálisis de DNS
GitHubrossgeerlings/webstor

webstor

Enumera todos los sitios web a través de las redes de una organización mediante transferencias de zona DNS y masscan, almacena las respuestas y permite consultar tecnologías web vulnerables conocidas y patrones de expresiones regulares personalizados.

Ver Repositorio
15820hace 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

 

WebStor

Identificación rápida de tecnologías web vulnerables en su organización

WebStor es una herramienta implementada en Python bajo la licencia MIT para enumerar rápidamente todos los sitios web en todas las redes de su organización, almacenar sus respuestas y consultar tecnologías web y versiones conocidas, como aquellas con vulnerabilidades de día cero. Está pensada, en particular, para resolver el problema único que se presenta en organizaciones de tamaño mediano a grande con administración descentralizada, donde puede ser casi imposible rastrear todas las tecnologías web implementadas por varios administradores distribuidos en diferentes unidades y redes.

WebStor logra su objetivo realizando las siguientes acciones:

  1. Realiza transferencias de zona DNS para recopilar registros A y CNAME de una organización.
  2. Utiliza Masscan para escanear puertos HTTP/HTTPS abiertos en los rangos de red de la organización, así como cualquier dirección IP fuera de esos rangos que estuviera presente en los registros A y CNAME de la organización.
  3. Utiliza la biblioteca Python requests para recopilar todas las respuestas y almacenarlas en una base de datos MariaDB. Todos los nombres DNS correspondientes a una IP con puertos HTTP/HTTPS abiertos se incluirán en las solicitudes además de la dirección IP, de modo que los sitios que utilizan diferentes encabezados no hagan que se pase por alto un sitio web.
  4. Descarga la base de datos de tecnologías web de Wappalyzer y la almacena en la base de datos MariaDB, lo que permite a los usuarios consultar la(s) ubicación(es) de una tecnología web común por nombre.
  5. Permite a los usuarios consultar la(s) ubicación(es) donde se encuentran expresiones regulares personalizadas dentro de las respuestas almacenadas.

Plataformas compatibles

WebStor actualmente se ejecutará en sistemas Linux. Como está escrito en Python, la conversión para admitir Windows sería trivial y es probable que ocurra en el futuro.

Requisitos previos

Aplicaciones

  • Masscan
    • Si va a utilizar un trabajo cron para actualizar la base de datos (típico), es fundamental que configure sudo nopasswd para cualquier usuario que ejecute el escaneo de Masscan a través de WebStor.
  • MariaDB 10.0.5 o posterior
    • Las credenciales predeterminadas que intenta WebStor serán root y una contraseña en blanco. Consulte la sección "Opciones seguras" para configurar WebStor para usar otros nombres de usuario y contraseñas para conectarse a la base de datos.

Bibliotecas de Python

  • pip3 install dnspython
  • pip3 install beautifulsoup4
  • pip3 install mysql-connector-python
  • pip3 install js-regex
  • pip3 install gevent
  • pip3 install requests

Disponibilidad a través de PyPI

  • Si simplemente desea ejecutar WebStor y no editarlo, puede instalar las aplicaciones necesarias y luego usar 'sudo pip3 install webstor'.
  • Después de instalar WebStor a través de PyPI, webstor estará en la ruta y se podrá ejecutar desde la línea de comandos independientemente del directorio de trabajo con 'webstor' en lugar de 'webstor.py', por ejemplo, 'webstor -g'.

Uso básico

root@kitploit:~
       webstor.py [-h] [--ADD-HTTP-PORT HTTPPORTTOADD] [--CLEAR-HTTP]
                  [--ADD-HTTPS-PORT HTTPSPORTTOADD] [--CLEAR-HTTPS]
                  [--ADD-CUSTOM-FINGERPRINT FINGERPRINT]
                  [--DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE]
                  [--IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE]
                  [--CLEAR-CUSTOM-FINGERPRINTS] [--SHOW-CONFIG]
                  [--SHOW-CONFIG-FULL] [--RUN-MASSCAN]
                  [--SET-MASSCAN-RANGES SETSCANRANGES]
                  [--ADD-RANGE RANGETOADD] [--DELETE-RANGE RANGETODELETE]
                  [--IMPORT-MASSCAN-RANGES IMPORTSCANRANGES]
                  [--ADD-PATH PATHTOADD] [--DELETE-PATH PATHTODELETE]
                  [--CLEAR-PATHS] [--REFRESH-RESPONSES]
                  [--RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH]
                  [--SEARCH-PATTERN SEARCHPATTERN]
                  [--SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT]
                  [--SEARCH-WAPPALYZER SEARCHWAPPALYZER] [--NO-TSIG-KEY]
                  [--TSIG-KEY-IMPORT IMPORTTSIGFILE]
                  [--TSIG-KEY-REPLACE REPLACEMENTTSIGFILE]
                  [--DELETE-TSIG TSIGTODELETE]
                  [--USE-TSIG-FILE-ONLY USETSIGFILEONLY]
                  [--DOWNLOAD-NEW-WAPPALYZER] [--LIST-WAPPALYZER-TECH-NAMES]
                  [--ZONE-XFER] [--ADD-DOMAIN DOMAINDETAILS]
                  [--DELETE-DOMAIN DOMAINTODELETE]
                  [--IMPORT-ZONE-FILE IMPORTZONEFILE] [--CLEAR-DOMAINS]
                  [--LIST-DOMAINS] [--LIST-OUTSIDE] [--SQL-CREDS SQLCREDSFILE]

optional arguments:
  -h, --help            show this help message and exit
  --ADD-HTTP-PORT HTTPPORTTOADD, -a HTTPPORTTOADD
                        Add a custom HTTP port.
  --CLEAR-HTTP, -aC     Clear any custom HTTP ports and revert to default of
                        80.
  --ADD-HTTPS-PORT HTTPSPORTTOADD, -b HTTPSPORTTOADD
                        Add a custom HTTPS port.
  --CLEAR-HTTPS, -bC    Clear any custom HTTPS ports and revert to default of
                        443.
  --ADD-CUSTOM-FINGERPRINT FINGERPRINT, -c FINGERPRINT
                        Add a custom fingerprint in the form <Name>,<RegEx>.
  --DELETE-CUSTOM-FINGERPRINT FINGERPRINTNAMETODELETE, -cD FINGERPRINTNAMETODELETE
                        Delete a custom fingerprint by name.
  --IMPORT-CUSTOM-FINGERPRINT IMPORTFINGERPRINTFILE, -cI IMPORTFINGERPRINTFILE
                        Import a custom fingerprint file with the path
                        specified.
  --CLEAR-CUSTOM-FINGERPRINTS, -cC
                        Clears all custom fingerprints stored in DB.
  --SHOW-CONFIG, -g     Show current WebStor configuration (brief).
  --SHOW-CONFIG-FULL, -gF
                        Show current WebStor configuration (full).
  --RUN-MASSCAN, -m     Runs a new port scan with Masscan on all configured
                        TCP ports for HTTP and HTTPS, against all configured
                        ranges and any IP addresses from DNS records that are
                        outside those ranges.
  --SET-MASSCAN-RANGES SETSCANRANGES, -mR SETSCANRANGES
                        Scan range or ranges, replaces existing ranges in DB,
                        comma separated, such as: -s
                        10.10.0.0/16,10.13.0.0/16,192.168.1.0/24
  --IMPORT-MASSCAN-RANGES IMPORTSCANRANGES, -mI IMPORTSCANRANGES
                        Import scan ranges (CIDR blocks) from a specified
                        file.
  --DELETE-RANGE RANGETODELETE, -mD RANGETODELETE
                        Delete scan range.
  --ADD-PATH PATHTOADD, -p PATHTOADD
                        Add paths for which to request and store responses
                        besides '/'.
  --DELETE-PATH PATHTODELETE, -pD PATHTODELETE
                        Delete paths for which to request and store responses
                        besides '/'.
  --CLEAR-PATHS, -pC    Clear any custom URL request paths and revert to
                        default of '/'.
  --REFRESH-RESPONSES, -r
                        Refresh URL responses in DB.
  --RESPONSES-ADD-FOR-PATH RESPONSESADDFORPATH, -rP RESPONSESADDFORPATH
                        Add URL responses for a one-time path in with the
                        current responses in the DB.
  --SEARCH-PATTERN SEARCHPATTERN, -sP SEARCHPATTERN
                        Search for string or regular expression in WebStor
                        database.
  --SEARCH-CUSTOM-FINGERPRINT SEARCHFINGERPRINT, -sC SEARCHFINGERPRINT
                        Search for technology by name of user-provided custom
                        fingerprint.
  --SEARCH-WAPPALYZER SEARCHWAPPALYZER, -sW SEARCHWAPPALYZER
                        Search for technology by name (from Wappalyzer Tech
                        DB) in WebStor DB.
  --NO-TSIG-KEY, -tN    Do not use DNSSec TSIG key stored in database or a
                        file, even if present.
  --TSIG-KEY-IMPORT IMPORTTSIGFILE, -tI IMPORTTSIGFILE
                        Import a specified TSIG key file into the database
  --TSIG-KEY-REPLACE REPLACEMENTTSIGFILE, -tR REPLACEMENTTSIGFILE
                        Replace a TSIG key in the database with a specified
                        file
  --DELETE-TSIG TSIGTODELETE, -dT TSIGTODELETE
                        Delete a TSIG key from the database by name.
  --USE-TSIG-FILE-ONLY USETSIGFILEONLY, -tF USETSIGFILEONLY
                        Only use tsig file specified (full path), do not use
                        TSIGs stored in the DB. Applies to all domains,
                        limiting WebStor to one TSIG for zone transfers in the
                        current execution.
  --DOWNLOAD-NEW-WAPPALYZER, -w
                        Download a new Wappalyzer fingerprints file directly
                        from GitHub. Overwrites existing Wappalyzer
                        fingerprint data.
  --LIST-WAPPALYZER-TECH-NAMES, -wL
                        List the names of all Wappalyzer technologies in the
                        database.
  --ZONE-XFER, -z       Forces a new zone transfer using all domains, servers,
                        and associated TSIG keys in DB
  --ADD-DOMAIN DOMAINDETAILS, -zA DOMAINDETAILS
                        Add a domain in the form <Domain name>,<Server>,<TSIG
                        Key Name>.
  --DELETE-DOMAIN DOMAINTODELETE, -zD DOMAINTODELETE
                        Delete a DNS domain from the database by name.
  --IMPORT-ZONE-FILE IMPORTZONEFILE, -zI IMPORTZONEFILE
                        Add domains for zone transfers from a file.
  --CLEAR-DOMAINS, -zC  Clears all DNS domains stored in DB.
  --LIST-DOMAINS, -zL   Lists all DNS domains stored in DB.
  --LIST-OUTSIDE, -e    Prints a list of all names and IPs from our zone
                        transfers that are outside defined net ranges.
  --SQL-CREDS SQLCREDSFILE, -q SQLCREDSFILE
                        Use SQL credentials in file at specified path.

Pasos para configurar inicialmente WebStor y llenar la base de datos:

NOTA: Estos pasos asumen que su organización usa solo una clave TSIG para las transferencias de zona y que todos los registros se pueden consultar desde un servidor DNS. Si este no es el caso, consulte la sección de casos de uso seguros/esotéricos a continuación.

  1. Obtenga un archivo de clave TSIG que le permita realizar transferencias de zona, colóquelo en su directorio de trabajo.
  2. Obtenga un archivo de lista delimitada por nuevas líneas de todos los rangos de red de su organización (notación CIDR). Si está utilizando grandes cantidades de espacio privado RFC1918, especialmente espacio 10.X, no agregue simplemente 10.0.0.0/8, ya que esto haría que Masscan tarde mucho tiempo más adelante. En su lugar, use múltiples bloques más pequeños que estén realmente asignados (como 10.10.3.0/24). Con una red corporativa o universitaria típica al momento de escribir esto, puede esperar que cada millón de direcciones IP escaneadas tome aproximadamente 15 minutos durante el masscan con la configuración de limitación actual de WebStor.
  3. Cree un archivo de texto con los nombres de dominio para los cuales realizará transferencias de zona. Al principio del archivo, inserte dos líneas: la primera con el nombre de su clave TSIG (si no sabe cuál es, estará en la primera línea de su archivo TSIG justo después de "key"), y la segunda línea debe ser el nombre o la dirección IP de su servidor DNS. El resto del archivo debe ser cada nombre de dominio DNS de su organización, uno por línea. Para una universidad grande típica, estos serán nombres como engineering.stateu.edu.
  4. Ejecute ./webstor.py -g para mostrar la configuración y confirmar la funcionalidad de la base de datos.
  5. Ejecute ./webstor.py -tI <archivo tsig> -mI <archivo de rangos de red> -zI <archivo de dominios> NOTA: durante la parte de importación TSIG de este proceso, se le pedirá un dominio para asociar con el TSIG y un servidor DNS para apuntar para ese TSIG. Esto se debe a que el archivo TSIG en sí mismo no contiene esta información. Simplemente proporcione cualquiera de sus dominios, por ejemplo, stateu.edu, y la dirección IP de su servidor DNS. La información en el archivo de importación de dominios, procesada después, reemplazará la asociación del dominio.
  6. WebStor ahora está listo para recopilar datos. Ejecute ./webstor.py -z -m -r -w. Esto recopilará registros DNS a través de transferencia de zona, escaneará puertos web abiertos con Masscan, realizará solicitudes HTTP/HTTPS contra todos los hosts con puertos web abiertos (el superconjunto de aquellos en sus rangos de red y hosts con registros DNS que caen fuera de esos rangos) y almacenará las respuestas en la base de datos. La opción -w también descarga la copia más reciente de la base de datos de tecnologías web de Wappalyzer desde GitHub.

Ejemplo de uso

root@kitploit:~
# Buscar una cadena/expresión regular asociada con una tecnología web:
./webstor.py -sP "content=\"wordpress 4.[7-9]"
# Se devolverá una lista de sitios con esta expresión regular, respuestas esperadas de sitios Wordpress v4.7-9.

# Para guardar la expresión regular del ejemplo anterior como una huella digital personalizada que pueda consultar
# por nombre (y no necesite recordar la expresión regular cada vez):
./webstor.py -c "wordpress4.7-9,content=\"wordpress 4.[7-9]"

# Después de ejecutar el comando anterior, la consulta se puede realizar simplemente con:
./webstor.py -sC wordpress4.7-9

# Usar WebStor para buscar sitios Wordpress a través de definiciones de Wappalyzer:
./webstor.py -sW wordpress
# Se devolverá una lista de sitios Wordpress accesibles en las redes de su organización. NOTA: Las búsquedas de Wappalyzer pueden ser más lentas que las búsquedas de patrones/expresiones regulares
# debido a la cantidad de propiedades que se consultan para verificar.

Resultados mostrados por nombre e IP

Los sitios se consultan según las respuestas tanto a nombres como a direcciones IP. Esto es importante porque algunos servidores web alojan múltiples sitios bajo múltiples nombres. Algunos otros servidores pueden servir solo un sitio predeterminado o una respuesta predeterminada del proveedor de alojamiento cuando se solicitan por IP (por ejemplo, https://68.66.216.42), y un sitio real de línea de negocio cuando se consultan por nombre (por ejemplo, https://www.seekerdlp.com). Por esta razón, si tiene un sitio nombrado que también se sirve cuando se solicita la IP del servidor web, verá resultados de consulta para ambos.

Mantener los resultados actualizados

Se recomienda que configure un trabajo cron para ejecutar WebStor diariamente para que sus resultados de consulta siempre reflejen el estado actual de su red.

Opciones seguras

Si no desea usar las credenciales predeterminadas de MariaDB (root, contraseña en blanco), puede usar la opción -q para especificar la ruta a un archivo con credenciales. La primera línea del archivo debe ser el servidor, por ejemplo, localhost. La segunda línea debe ser el nombre de usuario de sql. La tercera línea debe ser la contraseña.

Si no desea almacenar su TSIG en la base de datos, puede usar la opción -tF para especificar la ruta a un archivo de clave TSIG con ACL.

Si su organización utiliza múltiples claves TSIG, deberá almacenarlas en la base de datos. Cada una se puede agregar con la opción -tI y los dominios se pueden agregar mediante las opciones normales, especificando la clave y el servidor adecuados.

Atribución

WebStor utiliza la base de datos de tecnologías de Wappalyzer para búsquedas de tecnología previamente pobladas e indexadas por nombre contra las respuestas almacenadas de WebStor. Wappalyzer tiene licencia bajo los términos de la licencia MIT.

Agradecimientos especiales

  • Brandon Bailey <Twitter: @ge0stigm4> (Codiseñador del concepto original)
  • Bob Harold (Orientación sobre DNS)
  • Neamen Negash <nnegash@umich.edu> (Instalador)
  • afreudenreich (Múltiples correcciones de errores y mejoras)

Licencia y autor

WebStor fue escrito por Ross Geerlings <rjgeer@umich.edu>, <ross@seekerdlp.com>.

WebStor está licenciado bajo los términos de la licencia MIT, reproducida a continuación.

La licencia MIT

Copyright (c) 2020-2024 The University of Michigan Board of Regents.

Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y la documentación fime-les asociada (el "Software"), para tratar el Software sin restricción, incluyendo, sin limitación, los derechos para usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y para permitir a las personas a quienes se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, ADECUACIÓN PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, O EN CONEXIÓN CON, EL SOFTWARE O EL USO U OTRO TRATO EN EL SOFTWARE.

Descargar herramienta