
Encuentra mucho más desde Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal, GhostArchive & Intelligence X!
La idea detrás de waymore es encontrar aún más enlaces de Wayback Machine (además de otras fuentes) que otras herramientas existentes.
👉 La mayor diferencia entre waymore y otras herramientas es que también puede descargar las respuestas archivadas para las URLs en Wayback Machine (y URLScan) para que luego puedas buscar en ellas aún más enlaces, comentarios de desarrolladores, parámetros adicionales, etc., etc. 👉 Además, otras herramientas actualmente no manejan el límite de velocidad que ahora imponen las fuentes, y a menudo se detienen con resultados incompletos sin informarte que están incompletos.
Cualquier persona que haga bug bounty probablemente haya usado la increíble waybackurls de @TomNomNoms. Esta herramienta obtiene URLs de web.archive.org y enlaces adicionales (si los hay) de una de las colecciones de índice en index.commoncrawl.org. También es probable que hayas usado la increíble gau de @hacker_ que también encuentra URLs del archivo de Wayback, Common Crawl, pero también de Alien Vault, URLScan, Virus Total e Intelligence X. Ahora waymore obtiene URLs de TODAS esas fuentes también (con la capacidad de filtrar más para obtener lo que quieras):
👉 Es un punto que muchos parecen pasar por alto, así que lo repetiré :) … La mayor diferencia entre waymore y otras herramientas es que también puede descargar las respuestas archivadas para las URLs en Wayback Machine para que luego puedas buscar en ellas aún más enlaces, comentarios de desarrolladores, parámetros adicionales, etc., etc.
👉 POR FAVOR, LEE TODA LA INFORMACIÓN DE ESTA PÁGINA PARA APROVECHAR AL MÁXIMO ESTA HERRAMIENTA, Y ESPECIALMENTE ANTES DE REPORTAR CUALQUIER PROBLEMA 🤘
👉 ESTA HERRAMIENTA PUEDE SER MUY LENTA, PERO ESTÁ DISEÑADA PARA COBERTURA, NO PARA VELOCIDAD
⚠️ Un error común es pasar un archivo de subdominios para obtener todo de un dominio. ¡NO LO HAGAS! Simplemente pasa solo el dominio para obtener todos los subdominios de ese dominio. Será MUCHO más rápido y no te perderás nada.
NOTA: Si ya tienes un archivo config.yml, no se sobrescribirá. El archivo config.yml.NEW se creará en el mismo directorio. Si necesitas la nueva configuración, elimina config.yml y renombra config.yml.NEW a config.yml.
waymore es compatible con Python 3.7+ (se requiere Python 3.7 o superior para soporte de async/await).
Instala waymore en el entorno predeterminado (global) de Python.```bash
pip install waymore
O```bash
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
Puedes actualizar con```bash pip install --upgrade waymore
### pipx
Configuración rápida en un entorno python aislado usando [pipx](https://pypa.github.io/pipx/)```bash
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | El dominio objetivo (o archivo de dominios) para encontrar enlaces. Puede ser solo un dominio, o un dominio con una ruta específica. Si es solo un dominio para obtener todo de ese dominio, no lo prefije con www.. También puede especificar solo un TLD prefijándolo con un punto, p. ej. .mil, lo que obtendrá todos los subdominios para todos los dominios con ese TLD (NOTA: La fuente Alien Vault OTX está excluida si se busca un TLD porque requiere un dominio completo). NOTA: Cualquier esquema, número de puerto, cadena de consulta o fragmento de URL será eliminado de los valores de entrada. Sin embargo, si proporciona una ruta, esta se buscará específicamente, por lo que limitará sus resultados. |
| -mode | | El modo a ejecutar: U (recuperar solo URLs), R (descargar solo Respuestas) o B (Ambos). Si -i es solo un dominio, -mode por defecto será B. Si -i es un dominio con ruta, por defecto será . |
| -oU | --output-urls | El archivo para guardar la salida de Enlaces, incluida la ruta si es necesario. Si no se pasa el argumento , se creará un directorio en la ruta especificada por la clave en el archivo (típicamente por defecto es ). Dentro de ese directorio, se creará un directorio con el dominio objetivo (o dominio con ruta) pasado con (o para cada línea de un archivo pasado con ). Por ejemplo: |
| -oR | --output-responses | El directorio para guardar los archivos de respuesta de salida, incluida la ruta si es necesario. Si no se pasa el argumento, se creará un directorio en la ruta especificada por la clave en el archivo (típicamente por defecto es ). Dentro de ese directorio, se creará un directorio con el dominio objetivo (o dominio con ruta) pasado con (o para cada línea de un archivo pasado con ). Por ejemplo: |
| -n | --no-subs | No incluir subdominios del dominio objetivo (solo se usa si la entrada no es un dominio con una ruta específica). |
| -f | --filter-responses-only | Los enlaces iniciales de las fuentes no se filtrarán, solo las respuestas que se descargan, p. ej., puede ser útil para ver todas las rutas disponibles de los enlaces, incluso si no se desea verificar el contenido. |
| -fc | | Filtrar códigos de estado HTTP para URLs y respuestas recuperadas. Lista separada por comas de códigos (por defecto: los valores de ). Pasar este argumento anulará el valor de |
| -ft | | Filtrar Tipos MIME para URLs y respuestas recuperadas. Lista separada por comas de Tipos MIME (por defecto: los valores de ). Pasar este argumento anulará el valor de . . |
| -mc | | Solo COINCIDIR códigos de estado HTTP para URLs y respuestas recuperadas. Lista separada por comas de códigos. Pasar este argumento anula la configuración y . |
| -mt | | Solo Tipos MIME para URLs y respuestas recuperadas. Lista separada por comas de tipos MIME. Pasar este argumento anula la configuración y . . |
| -l | --limit | Cuántas respuestas se guardarán (si se pasa o ). Un valor positivo obtendrá los resultados, un valor negativo obtendrá los resultados. Un valor de 0 obtendrá las respuestas (por defecto: 5000) |
| -from | --from-date | Fecha desde la cual obtener datos. Si no se especifica, obtendrá desde los resultados más antiguos posibles. Se puede pasar un valor parcial, p. ej., , , etc. |
| -to | --to-date | Fecha hasta la cual obtener datos. Si no se especifica, obtendrá hasta los resultados más recientes posibles. Se puede pasar un valor parcial, p. ej., , , etc. |
| -ci | --capture-interval | Filtra la búsqueda en archive.org para obtener solo como máximo 1 captura por hora (), día () o mes (). Este filtro se usa solo para respuestas. El valor por defecto es pero también se puede establecer en para no filtrar nada y obtener todas las respuestas. |
| -ra | --regex-after | Expresión regular para fines de filtrado contra enlaces encontrados de todas las fuentes de URLs Y respuestas descargadas. |
| -url-filename | | Establecer el nombre del archivo de las respuestas descargadas en la URL que generó la respuesta; de lo contrario, se establecerá en el valor hash de la respuesta. Usar el valor hash significa que múltiples URLs que generaron la misma respuesta solo resultarán en un archivo guardado para esa respuesta. |
| -xwm | | Excluir comprobaciones de enlaces de Wayback Machine (archive.org) |
| -xcc | | Excluir comprobaciones de enlaces de commoncrawl.org |
| -xav | | Excluir comprobaciones de enlaces de alienvault.com |
| -xus | | Excluir comprobaciones de enlaces de urlscan.io |
| -xvt | | Excluir comprobaciones de enlaces de virustotal.com |
| -xix | | Excluir comprobaciones de enlaces de Intelligence X.com |
| -xga | | Excluir comprobaciones de enlaces de ghostarchive.org |
| -lcc | | Limitar el número de colecciones de índice de Common Crawl buscadas, p. ej., buscará solo las últimas colecciones (por defecto: 1). A partir de noviembre de 2024 hay actualmente 106 colecciones. Establecer en buscará las colecciones. Si no desea buscar Common Crawl, use la opción . |
| -t | --timeout | ¡Esto es solo para respuestas archivadas! Cuántos segundos esperar a que el servidor envíe datos antes de rendirse (por defecto: 30) |
| -p | --processes | Se realiza un subprocesamiento básico al obtener solicitudes para un archivo de URLs. Este argumento determina el número de procesos (hilos) utilizados (por defecto: 2) |
| -r | --retries | El número de reintentos para solicitudes que obtienen error de conexión o limitación de velocidad (por defecto: 1). |
| -sip | --source-ip OR --bind-ip | Vincular solicitudes HTTP/HTTPS salientes a esta IP de origen (útil en hosts con múltiples direcciones IP). Pasar este argumento anula el valor en el archivo . |
| -m | --memory-threshold | El porcentaje de umbral de memoria. Si la memoria de la máquina supera el umbral, el programa se detendrá y finalizará correctamente antes de quedarse sin memoria (por defecto: 95) |
| -ko | --keywords-only | Solo devolver enlaces y respuestas que contengan palabras clave de interés. Esto puede reducir el tiempo necesario para obtener resultados. Si proporciona la bandera sin valor, las palabras clave se toman de la lista separada por comas en el archivo (típicamente en ) con la clave ; de lo contrario, puede pasar un valor Regex específico para usar, p. ej., para obtener solo enlaces que contengan la palabra , o para obtener solo archivos JS. La comprobación Regex NO distingue entre mayúsculas y minúsculas. |
| -lr | --limit-requests | Limitar el número de solicitudes que se realizarán al obtener enlaces de una fuente (esto no se aplica a Common Crawl). Algunos objetivos pueden devolver una gran cantidad de solicitudes necesarias que simplemente no son factibles de obtener, por lo que esto se puede usar para manejar esa situación. Por defecto es 0 (Cero), lo que significa que no hay límite. |
| -ow | --output-overwrite | Si el archivo de salida de URL (por defecto , o especificado por ) ya existe, se sobrescribirá en lugar de agregarse. |
| -nlf | --new-links-file | Si se pasa este argumento, también se escribirá un archivo (o si se usa , será el nombre de ese archivo con el sufijo ), y contendrá enlaces para la última ejecución. Esto se puede usar para monitoreo continuo de un objetivo (solo para , no para ). |
| | --stream | Enviar URLs a STDOUT tan pronto como se encuentren (se mostrarán duplicados). Solo funciona con . Toda otra salida se suprime, así que use para ver errores. Use para guardar explícitamente los resultados en un archivo (se eliminarán duplicados). |
| -c | --config | Ruta al archivo de configuración YML. Si no se pasa, busca el archivo en el directorio predeterminado, típicamente . |
| -wrlr | --wayback-rate-limit-retry | El número de minutos que el usuario desea esperar por una pausa de límite de velocidad en Wayback Machine (archive.org) en lugar de detenerse con un error (por defecto: 3). |
| -urlr | --urlscan-rate-limit-retry | El número de minutos que el usuario desea esperar por una pausa de límite de velocidad en URLScan.io en lugar de detenerse con un error (por defecto: 1). |
| -co | --check-only | Esto hará algunas solicitudes mínimas para mostrarle cuántas solicitudes, y aproximadamente cuánto tiempo podría tomar, obtener URLs de las fuentes y respuestas descargadas de Wayback Machine (desafortunadamente no es posible verificar cuánto tiempo tomará descargar respuestas de URLScan). |
| -nd | --notify-discord | Si se debe enviar una notificación a Discord cuando waymore complete. Requiere que esté proporcionado en el archivo . |
| -nt | --notify-telegram | Si se debe enviar una notificación a Telegram cuando waymore complete. Requiere que y estén proporcionados en el archivo . |
| -oijs | --output-inline-js | Si se debe guardar javascript en línea combinado de todos los archivos relevantes en el directorio de respuestas cuando se ha usado (o ). Los archivos se guardan con el nombre donde es el número del archivo, guardando 1000 scripts únicos por archivo. También se creará el archivo , que contiene el valor de todos los scripts externos referenciados en los archivos. |
| -v | --verbose | Salida detallada |
| | --version | Mostrar el número de versión actual. |
| -h | --help | Mostrar el mensaje de ayuda y salir. |## Ejecutar con docker
Instala docker```bash git clone https://github.com/xnl-h4ck3r/waymore.git cd waymore
Construir imagen:```bash
docker build -t waymore .
Ejecuta waymore con este comando:```bash docker run -it --rm -v $PWD/results:/app/results waymore:latest -i example.com -oU example.com.links -oR results/example.com/
## Entrada y Modo
La entrada `-i` puede ser solo un dominio, por ejemplo `redbull.com`, o un dominio y una ruta específicos, por ejemplo `redbull.com/robots.txt`. También se puede pasar un archivo de dominios/URLs para procesar (o pasar valores mediante tuberías desde otro programa en la línea de comandos). **NOTA: Cualquier esquema, número de puerto, cadena de consulta o fragmento de URL será eliminado de los valores de entrada. Sin embargo, si se proporciona una ruta, esta se buscará específicamente, por lo que limitará los resultados.**
Existen diferentes modos que se pueden ejecutar para waymore. El argumento `-mode` puede tener 3 valores diferentes:
- `U` - Se recuperarán URLs de archive.org (si no se pasa `-xwm`), commoncrawl.org (si no se pasa `-xcc`), otx.alienvault.com (si no se pasa `-xvv`) y urlscan.io (si no se pasa `-xus`)
- `R` - Se descargarán respuestas de archive.org
- `B` - Se recuperarán tanto URLs como respuestas
Si la entrada fue una URL específica, por ejemplo `redbull.com/robots.txt`, entonces el `-mode` predeterminado es `R`. Solo se descargarán respuestas. No se puede cambiar el modo a `U` o `B` para un dominio con ruta porque no es necesario recuperar URLs para una URL específica.
Si la entrada es solo un dominio, por ejemplo `redbull.com`, entonces el `-mode` predeterminado es `B`. Se puede cambiar a `U` o `R` si es necesario. Cuando se pasa solo un dominio, se recuperan todas las URLs/respuestas para ese dominio (y subdominios a menos que se pase `-n`). Si se pasa la opción de sin subdominios `-n`, el subdominio `www` aún se incluye de forma predeterminada.
## config.yml
El archivo `config.yml` (normalmente en `~/.config/waymore/`) tiene valores que se pueden actualizar según tus necesidades. Los filtros se proporcionan como listas separadas por comas:
- `FILTER_CODE` - Exclusiones utilizadas para excluir respuestas que intentaremos obtener de web.archive.org, y también para nombres de archivo cuando `-i` es un directorio, por ejemplo `301,302`. Esto se puede anular con el argumento `-fc`. Pasar `-mc` (para coincidir con códigos de estado en lugar de filtrar) anulará cualquier valor en `FILTER_CODE` o `-fc`.
- `FILTER_MIME` - Exclusiones de tipo MIME Content-Type utilizadas para filtrar enlaces y respuestas de web.archive.org a través de su API, por ejemplo `'text/css,image/jpeg`. Esto se puede anular con el argumento `-ft`. Pasar `-mt` (para coincidir con tipos MIME en lugar de filtrar) anulará cualquier valor en `FILTER_MIME` o `-ft`.
- `FILTER_URL` - Exclusiones de código de respuesta que usaremos para filtrar enlaces y respuestas de web.archive.org a través de su API, por ejemplo `.css,.jpg`
- `FILTER_KEYWORDS` - Solo se devolverán enlaces y respuestas que contengan las palabras clave especificadas si se pasa el argumento `-ko`/`--keywords-only` (sin proporcionar un valor explícito en la línea de comandos), por ejemplo `admin,portal`
- `URLSCAN_API_KEY` - Puedes registrarte en [urlscan.io](https://urlscan.io/user/signup) para obtener una clave API **GRATUITA** (también hay suscripciones de pago disponibles). Se recomienda obtener una clave y colocarla en el archivo de configuración para poder obtener más resultados (y más rápido) de su API. NOTA: Serás limitado en la tasa a menos que tengas una suscripción de pago completa.
- `CONTINUE_RESPONSES_IF_PIPED` - Si la recuperación de respuestas de archive no se completa, se te preguntará la próxima vez si deseas continuar con la ejecución anterior. Sin embargo, si `stdout` se envía mediante tubería a otro proceso, se asume que no deseas tener un mensaje interactivo. Un valor de `True` (predeterminado) determinará que se continúe con la ejecución anterior. Si deseas una ejecución nueva cada vez, configúralo en `False`.
- `WEBHOOK_DISCORD` - Si se pasa el argumento `--notify-discord`, `waymore` enviará una notificación a este webhook de Discord.
- `TELEGRAM_BOT_TOKEN` - Si se pasa el argumento `--notify-telegram`, `waymore` usará este token para enviar una notificación a Telegram.
- `TELEGRAM_CHAT_ID` - Si se pasa el argumento `--notify-telegram`, `waymore` enviará la notificación a este ID de chat.
- `DEFAULT_OUTPUT_DIR` - Esta es la ubicación predeterminada de cualquier archivo de salida escrito si no se usan los argumentos `-oU` y `-oR`. Si el valor de esta clave está en blanco, entonces se usará la ubicación del archivo `config.yml`.
- `INTELX_API_KEY` - Puedes registrarte en [intelx.io aquí](https://intelx.io/product). Requiere una clave API académica o de pago para realizar la búsqueda `/phonebook/search` a través de su API (a partir del 01-09-2024, el servicio Phonebook ha sido restringido a usuarios académicos o de pago debido al abuso constante de cuentas de spam). Puedes obtener una clave API gratuita para uso académico si te registras con una dirección de correo electrónico académica válida.
- `SOURCE_IP` - Opcional. Vincula las solicitudes HTTP/HTTPS salientes a una IP de origen específica en hosts con múltiples interfaces. También se puede configurar mediante el indicador CLI `--source-ip/--bind-ip` (la CLI tiene prioridad).
**NOTA: Los tipos MIME no se pueden filtrar para Alien Vault OTX, Virus Total e Intelligence X porque no tienen la capacidad de filtrar por tipo MIME. A veces URLScan no tiene un tipo MIME definido para una URL. En estos casos, las URLs se incluirán independientemente del filtro o coincidencia. Ten esto en cuenta y considera excluir ciertos proveedores si esto es importante.**
## Salida
En el directorio de salida predeterminado especificado en el archivo `config.yml` con `DEFAULT_OUTPUT_DIR` (si está en blanco, se usará la ubicación del propio archivo `config.yml`, típicamente `~/.config/waymore/`), se creará un directorio `results`. Dentro de ese, se creará un directorio con el dominio de destino (o dominio con ruta) pasado con `-i` (o para cada línea de un archivo pasado con `-i`). Alternativamente, puedes usar el argumento `-oU` para especificar dónde se guardará el archivo de enlaces URL (y el nombre del archivo). También puedes usar el argumento `-oR` para especificar un directorio (o ruta) donde se guardarán las respuestas archivadas.
Cuando se ejecuta, se crean los siguientes archivos en el directorio de destino:
- `waymore.txt` - Si `-mode` es `U` o `B`, este archivo contendrá enlaces de las fuentes seleccionadas. Los enlaces se recuperarán de archive.org Wayback Machine (a menos que se haya pasado `-xwm`), commoncrawl.org (a menos que se haya pasado `-xcc`), otx.alienvault.com (a menos que se haya pasado `-xav`) y urlscan.io (a menos que se haya pasado `-xus`). Si también se pasó la opción `-ow`, cualquier archivo `waymore.txt` existente en el directorio de resultados de destino se sobrescribirá; de lo contrario, se agregarán nuevos enlaces y se eliminarán los duplicados.
- `index.txt` - Si `-mode` es `R` o `B`, y no se pasó `-url-filename`, entonces se descargarán respuestas archivadas y se usarán valores hash para los nombres de archivo guardados. Este archivo contiene una lista separada por comas de `<hash>,<URL del archivo>,<timestamp>` en caso de que necesites saber qué URLs produjeron qué respuesta.
- `TODOS LOS DEMÁS ARCHIVOS` - Estos archivos de respuesta archivados se crearán si `-mode` fue `R` o `B`. Si se pasó `-url-filename`, entonces los nombres de archivo serán la URL del archivo que generó la respuesta, por ejemplo `https--example.com-robots.txt`; de lo contrario, el nombre de archivo será un valor hash, por ejemplo `7960113391501.{EXT}`, donde `{EXT}` será la extensión derivada de la ruta; de lo contrario, se derivará del `content-type` de la respuesta. A veces se dará una extensión general, por ejemplo `.js` para cualquier tipo de contenido que contenga la palabra `javascript`; de lo contrario, puede establecerse como la última parte del tipo (por ejemplo, si es `application/java-archive`, el archivo será `7960113391501.java-archive`). El uso de valores hash significa que se escribirán menos archivos, ya que solo habrá un archivo por respuesta única. Estas respuestas archivadas se editan, antes de guardarlas, para eliminar cualquier referencia a `web.archive.org`.
## Información y Sugerencias
La cantidad de enlaces encontrados, y luego potencialmente la cantidad de archivos de respuestas archivadas que descargarás, podría ser **ENORME** para muchos dominios. Esta herramienta no se trata de velocidad, se trata de encontrar más, así que ten paciencia.
Hay una opción `-p` para aumentar la cantidad de procesos (utilizada al recuperar enlaces de todas las fuentes y descargar respuestas archivadas de archive.org). Sin embargo, aunque puede que no sea tan rápido como te gustaría, sugeriría dejar `-p` en el valor predeterminado de 3 porque personalmente encontré problemas al obtener respuestas con valores más altos. ¡No queremos causar problemas a estos servicios, así que sé sensato!
A menudo uso la opción `-f` porque quiero que `waymore.txt` contenga TODOS los enlaces posibles. Aunque no me importen las imágenes, fuentes, etc., aún podría ser útil ver todas las rutas posibles y quizás parámetros. Cualquier filtro siempre se aplicará al descargar respuestas archivadas. ¡No quieres perder tiempo descargando miles de imágenes!
Usar la opción `-v` puede ayudar a ver lo que sucede detrás de escena y podría ayudarte si no obtienes la salida que esperas.
Todos los tipos MIME Content-Type de las URL encontradas (por todas las fuentes excepto Alien Vault) se mostrarán cuando se use `-v`. Esto puede ayudar a agregar más exclusiones si descubres que aún obtienes cosas que no deseas ver. Si ves un tipo MIME que se incluye pero no deseas que continúe, agrégalo a `FILTER_MIME` en `config.yml`.
Cabe señalar que a veces el tipo MIME en archive.org se almacena como `unk` y `unknown` en lugar del MIME real, por lo que el filtro no lo eliminará necesariamente de sus resultados. La configuración de `FILTER_URL` se puede usar para eliminarlos después. Por ejemplo, si un GIF tiene tipo MIME `unk` en lugar de `image/gif` (y eso está en `FILTER_MIME`), no se filtrará, pero si la URL es `https://target.com/assets/logo.gif` y `.gif` está en `FILTER_URL`, no se solicitará.
Si `config.yml` no existe, o las entradas para los filtros no están en el archivo, se utilizan los filtros predeterminados. Es mejor tener el archivo y revisarlos para asegurarte de obtener lo que necesitas.
Puede haber potencialmente millones de respuestas, así que asegúrate de establecer filtros, pero también el Límite (`-l`), Fecha Desde (`-from`), Fecha Hasta (`-to`) y/o Intervalo de Captura (`-ci`) si es necesario. El límite predeterminado es 5000, pero supongamos que quieres obtener las últimas 20.000 respuestas desde 2015 hasta enero de 2018... pasarías `-l -20000 -from 2015 -to 201801`. El Intervalo de Captura determina cuántas respuestas se descargarán para una URL particular dentro de un período especificado, por ejemplo, si lo configuras como `m`, solo obtendrás una respuesta por mes para una URL. El valor predeterminado `d` probablemente reducirá en gran medida la cantidad de respuestas y es poco probable que se pierdan muchas respuestas únicas a menos que un objetivo cambie algo más de una vez en un día determinado.
Otro argumento útil es `-mc` que solo obtendrá resultados donde el código de estado HTTP coincida con la lista separada por comas pasada, por ejemplo `-mc 200` o `-mc 200,403`.
También puedes reducir en gran medida la cantidad (y por lo tanto el tiempo de ejecución) de enlaces y respuestas devolviendo solo aquellos que contengan palabras clave de tu interés. Puedes listar estas palabras clave en `config.yml` con la clave `FILTER_KEYWORDS` y luego pasar el argumento `-ko`/`--keywords-only` para usarlas, o puedes pasar `-ko`/`--keywords-only` con una expresión regular específica, por ejemplo `-ko "\.js(\?.*|$)"` para obtener solo archivos JS. **NOTA: La expresión regular CDX requiere que todas las rutas coincidan con la cadena completa, por lo que si se usa `$` como parte de un grupo OR, entonces se requiere `.*` en la parte de la expresión regular `(\?.*|$)`.**
Como se mencionó anteriormente, regístrate en [urlscan.io](https://urlscan.io/user/signup) para obtener una clave API **GRATUITA** (también hay suscripciones de pago disponibles). Se recomienda obtener una clave y colocarla en el archivo `config.yml` para poder obtener más resultados (y más rápido) de su API. NOTA: Serás limitado en la tasa a menos que tengas una suscripción de pago completa.
La CDX API de archive.org Wayback Machine a veces puede requerir una cantidad enorme de solicitudes para obtener todos los enlaces. Por ejemplo, si ejecutas **waymore** para `-i twitter.com`, dice que hay **28,903,799** solicitudes a archive.org que deben realizarse (¡eso podría tomar casi 1000 días para algunas personas!). El argumento `-lr` se puede usar para limitar la cantidad de solicitudes realizadas por fuente (aunque normalmente archive.org es el problema). El valor predeterminado del argumento es 0 (cero), que no aplica ningún límite.
También hay un problema con la CDX API de Wayback Machine donde la cantidad de páginas devueltas no es correcta cuando se aplican filtros y puede causar problemas (ver https://github.com/internetarchive/wayback/issues/243). Hasta que se resuelva ese problema, establecer el argumento `-lr` a un valor sensato puede ayudar con ese problema a corto plazo.
La API de Common Crawl ha tenido muchos problemas durante mucho tiempo. Incluir esta fuente podría hacer que waymore tarde mucho más en ejecutarse y puede que no produzca resultados adicionales. Puedes verificar si hay un problema visitando http://index.commoncrawl.org/collinfo.json y viendo si esto es exitoso. Considera excluir Common Crawl por completo usando el argumento `--providers` y sin incluir `commoncrawl`, o usando el argumento `-xcc`.
**¡Los servidores de la API del proveedor no están diseñados para soportar grandes volúmenes, así que sé sensato y considerado con lo que les envías!**
Al descargar respuestas archivadas, esto puede llevar mucho tiempo y, a veces, puede ser interrumpido por la máquina por alguna razón, o interrumpido manualmente por el usuario.
En el directorio `results` del objetivo, se crea un archivo llamado `responses.tmp` al inicio del proceso y contiene todas las URL de respuesta que se recuperarán. También habrá un archivo llamado `continueResp.tmp` que almacena el índice de la última respuesta recuperada. Si se ejecuta `waymore` para obtener respuestas (`-mode R` o `-mode B`), y estos archivos existen, significa que hubo una ejecución anterior incompleta, y se te preguntará si deseas continuar con esa en su lugar. Entonces continuará desde donde se detuvo antes.
## Algunos Ejemplos Básicos
### Ejemplo 1
Solo obtén las URLs de todas las fuentes para `redbull.com` (`-mode U` es solo para URLs, por lo que no se descargan respuestas):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example1.png"></center>
Las URLs se guardan en la misma ruta que `config.yml` (típicamente `~/.config/waymore`) en `results/redbull.com/waymore.txt`
### Ejemplo 2
Obtén TODAS las URLs de Wayback para `redbull.com` (no se aplican filtros en el modo `U` con `-f`, y no se recuperan URLs de Common Crawl, Alien Vault, URLScan y Virus Total, porque se pasan `-xcc`, `-xav`, `-xus`, `-xvt` respectivamente. Esto también se puede lograr pasando `--providers wayback` en lugar de los argumentos de exclusión).
Guarda las PRIMERAS 200 respuestas encontradas a partir de 2022 (`-l 200 -from 2022`):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example2.png"></center>
El `-mode` no se estableció explícitamente, por lo que predetermina a `B` (Ambos: recuperar URLs Y descargar respuestas).
Se creará un archivo para cada respuesta única y también se guardará en `results/redbull.com/`:
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example3.png"></center>
También habrá un archivo `results/redbull.com/index.txt` que contendrá una referencia a qué URLs dieron la respuesta para qué archivo, por ejemplo```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
donde 4847147712618 es el valor hash de la respuesta en 4847147712618.xnl, el segundo valor es la URL de Wayback Machine donde puedes ver la página real que fue archivada, y el tercero es una marca de tiempo de cuándo se descargó la respuesta.
Puedes canalizar waymore a otras herramientas. Cualquier error se envía a stderr y cualquier enlace encontrado se envía a stdout. El archivo de salida sigue creándose además de que los enlaces se canalizan al siguiente programa. Sin embargo, las respuestas archivadas no se canalizan al siguiente programa, pero aún se escriben en archivos. Por ejemplo:```
waymore -i redbull.com -mode U | unfurl keys | sort -u
También puedes pasar la entrada a través de `stdin` en lugar de `-i`.```
cat redbull_subs.txt | waymore
A veces es posible que solo quieras comprobar cuántas solicitudes y cuánto tiempo es probable que waymore tarde si lo ejecutas para un dominio en particular. Puedes hacer una comprobación rápida usando el argumento -co/--check-only. Por ejemplo:```
waymore -i redbull.com --check-only
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example4.png"></center>
## ¡Encontrando muchas más URLs!
Ahora tienes muchas respuestas archivadas y quieres encontrar enlaces adicionales? ¡Fácil! ¿Por qué no usar [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder)?
Por ejemplo:```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
O ejecuta otras herramientas como trufflehog o gf sobre el directorio de respuestas para encontrar aún más de las respuestas archivadas.
A continuación se muestra una charla detallada que di para el canal de Discord de Jason Haddix en marzo de 2024 para cubrir TODO lo que necesitas saber sobre waymore.
NOTA: Este video es de marzo de 2024, por lo que las funciones agregadas después de esta fecha no aparecerán y algunas funciones pueden haber cambiado. Por favor, verifica las instrucciones actuales.
Si encuentras algún problema, o tienes ideas para mejoras, no dudes en crear un issue en Github. Si hay un problema, será útil si puedes proporcionar el comando exacto que ejecutaste y una descripción detallada del problema. Si es posible, ejecuta con -v para reproducir el problema y notificame sobre cualquier mensaje de error que se muestre.
-oos que acepte un archivo de subdominios/URLs fuera de alcance que no se devolverán en la salida, ni se descargarán sus respuestas.waymore_index.txt no se desduplica si se ejecuta varias veces para la misma entrada con -mode R o -mode B.¡Buena suerte y buena caza! Si realmente te encanta la herramienta (o cualquier otra), o te ayudó a encontrar un gran bounty, considera ¡INVÍTAME UN CAFÉ! ☕ (¡Me vendría bien la cafeína!)
🤘 /XNL-h4ck3r
-modeR-oR/resultsDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore/-i-i-oU ~/Recon/Redbull/waymoreUrls.txt/resultsDEFAULT_OUTPUT_DIRconfig.yml~/.config/waymore/-i-i-oR ~/Recon/Redbull/waymoreResponsesFILTER_CODEconfig.ymlconfig.ymlFILTER_MIMEconfig.ymlconfig.ymlFILTER_CODE-fcFILTER_MIME-ft-mode R-mode B20162018052021202112hdmdnone-ra '\.js(\?\|$)'-lcc 10100-xccSOURCE_IPconfig.ymlconfig.yml~/.config/waymore/FILTER_KEYWORDS-ko "admin"admin-ko "\.js(\?.*\|$)"waymore.txt-oUwaymore.new-oU.newmodo Umodo R-mode U-v-oUconfig.yml~/.config/waymore429429WEBHOOK_DISCORDconfig.ymlTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDconfig.yml-mode R-mode BcombinedInline{}.js{}combinedInlineSrc.txtsrc