
Encontre muito mais de Wayback Machine, Common Crawl, Alien Vault OTX, URLScan, VirusTotal, GhostArchive e Intelligence X!
A ideia por trás do waymore é encontrar ainda mais links da Wayback Machine (além de outras fontes) do que outras ferramentas existentes.
👉 A maior diferença entre o waymore e outras ferramentas é que ele também pode baixar as respostas arquivadas para URLs na wayback machine (e URLScan) para que você possa então pesquisá-las por ainda mais links, comentários de desenvolvedores, parâmetros extras, etc. etc.
👉 Além disso, outras ferramentas atualmente não lidam com a limitação de taxa agora imposta pelas fontes, e muitas vezes simplesmente param com resultados incompletos e não informam que estão incompletos.
Qualquer pessoa que faça bug bounty provavelmente já usou o incrível waybackurls de @TomNomNoms. Esta ferramenta obtém URLs de web.archive.org e links adicionais (se houver) de uma das coleções de índice em index.commoncrawl.org. Você provavelmente também usou o incrível gau de @hacker_ que também encontra URLs do wayback archive, Common Crawl, mas também do Alien Vault, URLScan, Virus Total e Intelligence X. Agora, o waymore obtém URLs de TODAS essas fontes também (com capacidade de filtrar mais para obter o que você deseja):
👉 É um ponto que muitos parecem perder, então vou apenas adicioná-lo novamente :) ... A maior diferença entre o waymore e outras ferramentas é que ele também pode baixar as respostas arquivadas para URLs na wayback machine para que você possa então pesquisá-las por ainda mais links, comentários de desenvolvedores, parâmetros extras, etc.
👉 LEIA TODAS AS INFORMAÇÕES NESTA PÁGINA PARA APROVEITAR AO MÁXIMO ESTA FERRAMENTA, E ESPECIALMENTE ANTES DE ABRIR QUALQUER ISSUE 🤘
👉 ESTA FERRAMENTA PODE SER MUITO LENTA, MAS FOI FEITA PARA COBERTURA, NÃO PARA VELOCIDADE
⚠️ Um erro comum que é cometido é passar um arquivo de subdomínios para obter tudo de um domínio. NÃO FAÇA ISSO! Basta passar apenas o domínio para obter todos os subs desse domínio. Será MUITO mais rápido e você não perderá nada.
NOTA: Se você já possui um arquivo config.yml, ele não será sobrescrito. O arquivo config.yml.NEW será criado no mesmo diretório. Se você precisar da nova configuração, remova config.yml e renomeie config.yml.NEW de volta para config.yml.
waymore suporta Python 3.7+ (Python 3.7 ou superior necessário para suporte a async/await).
Instale o waymore no ambiente python padrão (global).```bash
pip install waymore
OU```bash
pip install git+https://github.com/xnl-h4ck3r/waymore.git -v
Você pode atualizar com```bash pip install --upgrade waymore
### pipx
Configuração rápida em ambiente Python isolado usando [pipx](https://pypa.github.io/pipx/)```bash
pipx install git+https://github.com/xnl-h4ck3r/waymore.git
| ------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| -i | --input | O domínio alvo (ou arquivo de domínios) para encontrar links. Pode ser apenas um domínio, ou um domínio com um caminho específico. Se for apenas um domínio para obter tudo para esse domínio, não prefixe com www.. Você também pode especificar apenas um TLD prefixando com um ponto, por exemplo .mil, que obterá todos os subdomínios para todos os domínios com esse TLD (NOTA: A fonte Alien Vault OTX é excluída ao pesquisar por um TLD porque requer um domínio completo). NOTA: Qualquer esquema, número de porta, string de consulta ou fragmento de URL será removido dos valores de entrada. No entanto, se você fornecer um caminho, ele será especificamente pesquisado, limitando seus resultados. |
| -mode | | O modo a executar: U (apenas recuperar URLs), R (apenas baixar Respostas) ou B (Ambos). Se -i for apenas um domínio, então -mode terá como padrão B. Se -i for um domínio com caminho, então terá como padrão . |
| -oU | --output-urls | O arquivo para salvar a saída de Links, incluindo caminho se necessário. Se o argumento não for passado, um diretório será criado no caminho especificado pela chave no arquivo (normalmente padrão é ). Dentro dele, um diretório será criado com o domínio alvo (ou domínio com caminho) passado com (ou para cada linha de um arquivo passado com ). Por exemplo: |
| -oR | --output-responses | O diretório para salvar os arquivos de saída de resposta, incluindo caminho se necessário. Se o argumento não for passado, um diretório será criado no caminho especificado pela chave no arquivo (normalmente padrão é ). Dentro dele, um diretório será criado com o domínio alvo (ou domínio com caminho) passado com (ou para cada linha de um arquivo passado com ). Por exemplo: |
| -n | --no-subs | Não incluir subdomínios do domínio alvo (usado apenas se a entrada não for um domínio com um caminho específico). |
| -f | --filter-responses-only | Os links iniciais das fontes não serão filtrados, apenas as respostas baixadas. Por exemplo, pode ser útil ver todos os caminhos disponíveis a partir dos links, mesmo que não queira verificar o conteúdo. |
| -fc | | Filtrar códigos de status HTTP para URLs e respostas recuperadas. Lista separada por vírgulas de códigos (padrão: os valores do ). Passar este argumento substituirá o valor do . |
| -ft | | Filtrar Tipos MIME para URLs e respostas recuperadas. Lista separada por vírgulas de Tipos MIME (padrão: os valores do ). Passar este argumento substituirá o valor do . . |
| -mc | | Apenas Corresponder códigos de status HTTP para URLs e respostas recuperadas. Lista separada por vírgulas de códigos. Passar este argumento substitui a configuração e . |
| -mt | | Apenas Tipos MIME para URLs e respostas recuperadas. Lista separada por vírgulas de tipos MIME. Passar este argumento substitui a configuração e . . |
| -l | --limit | Quantas respostas serão salvas (se ou for passado). Um valor positivo obterá os resultados, um valor negativo obterá os resultados. Um valor de 0 obterá as respostas (padrão: 5000) |
| -from | --from-date | Qual data para obter dados a partir de. Se não especificado, obterá dos resultados mais antigos possíveis. Um valor parcial pode ser passado, por exemplo , , etc. |
| -to | --to-date | Qual data para obter dados até. Se não especificado, obterá até os resultados mais recentes possíveis. Um valor parcial pode ser passado, por exemplo , , etc. |
| -ci | --capture-interval | Filtra a pesquisa no archive.org para obter no máximo 1 captura por hora (), dia () ou mês (). Este filtro é usado apenas para respostas. O padrão é mas também pode ser definido como para não filtrar nada e obter todas as respostas. |
| -ra | --regex-after | RegEx para fins de filtragem contra links encontrados de todas as fontes de URLs E respostas baixadas. |
| -url-filename | | Define o nome do arquivo das respostas baixadas para a URL que gerou a resposta, caso contrário será definido para o valor hash da resposta. Usar o valor hash significa que múltiplas URLs que geraram a mesma resposta resultarão em apenas um arquivo salvo para essa resposta. |
| -xwm | | Excluir verificações de links do Wayback Machine (archive.org) |
| -xcc | | Excluir verificações de links do commoncrawl.org |
| -xav | | Excluir verificações de links do alienvault.com |
| -xus | | Excluir verificações de links do urlscan.io |
| -xvt | | Excluir verificações de links do virustotal.com |
| -xix | | Excluir verificações de links do Intelligence X.com |
| -xga | | Excluir verificações de links do ghostarchive.org |
| -lcc | | Limitar o número de coleções de índice Common Crawl pesquisadas, por exemplo pesquisará apenas as últimas coleções (padrão: 1). Em novembro de 2024 existem atualmente 106 coleções. Definir como pesquisará as coleções. Se não quiser pesquisar o Common Crawl, use a opção . |
| -t | --timeout | Isto é apenas para respostas arquivadas! Quantos segundos esperar para o servidor enviar dados antes de desistir (padrão: 30) |
| -p | --processes | Multi-threading básico é feito ao obter requisições para um arquivo de URLs. Este argumento determina o número de processos (threads) usados (padrão: 2) |
| -r | --retries | O número de tentativas para requisições que obtêm erro de conexão ou limite de taxa (rate limit) (padrão: 1). |
| -sip | --source-ip OR --bind-ip | Vincular requisições HTTP/HTTPS de saída a este IP de origem (útil em hosts com múltiplas interfaces). Passar este argumento substitui o valor no arquivo . |
| -m | --memory-threshold | O percentual do limite de memória. Se a memória da máquina ultrapassar o limite, o programa será interrompido e encerrado graciosamente antes de ficar sem memória (padrão: 95) |
| -ko | --keywords-only | Retornar apenas links e respostas que contenham palavras-chave de seu interesse. Isso pode reduzir o tempo para obter resultados. Se você fornecer a flag sem valor, as palavras-chave são obtidas da lista separada por vírgulas no arquivo (tipicamente em ) com a chave , caso contrário você pode passar um valor Regex específico para usar, por exemplo para obter apenas links contendo a palavra , ou para obter apenas arquivos JS. A verificação Regex NÃO é sensível a maiúsculas/minúsculas. |
| -lr | --limit-requests | Limitar o número de requisições que serão feitas ao obter links de uma fonte (isso não se aplica ao Common Crawl). Alguns alvos podem retornar uma enorme quantidade de requisições necessárias que simplesmente não são viáveis de obter, então isso pode ser usado para gerenciar essa situação. O padrão é 0 (Zero) o que significa que não há limite. |
| -ow | --output-overwrite | Se o arquivo de saída de URL (padrão , ou especificado por ) já existir, ele será sobrescrito em vez de ser anexado. |
| -nlf | --new-links-file | Se este argumento for passado, um arquivo (ou se for usado será o nome desse arquivo com sufixo ) também será escrito, e conterá links para a execução mais recente. Isso pode ser usado para monitoramento contínuo de um alvo (apenas para , não ). |
| | --stream | Enviar URLs para STDOUT assim que forem encontrados (duplicatas serão mostradas). Funciona apenas com . Toda outra saída é suprimida, então use para ver erros. Use para salvar explicitamente resultados em arquivo (será deduplicado). |
| -c | --config | Caminho para o arquivo de configuração YML. Se não for passado, procura pelo arquivo no diretório padrão, tipicamente . |
| -wrlr | --wayback-rate-limit-retry | O número de minutos que o usuário deseja esperar por uma pausa de limite de taxa no Wayback Machine (archive.org) em vez de parar com um erro (padrão: 3). |
| -urlr | --urlscan-rate-limit-retry | O número de minutos que o usuário deseja esperar por uma pausa de limite de taxa no URLScan.io em vez de parar com um erro (padrão: 1). |
| -co | --check-only | Isso fará algumas requisições mínimas para mostrar quantas requisições, e aproximadamente quanto tempo poderia levar, para obter URLs das fontes e respostas baixadas do Wayback Machine (infelizmente não é possível verificar quanto tempo levará para baixar respostas do URLScan). |
| -nd | --notify-discord | Se deve enviar uma notificação para o Discord quando waymore concluir. Requer que seja fornecido no arquivo . |
| -nt | --notify-telegram | Se deve enviar uma notificação para o Telegram quando waymore concluir. Requer que e sejam fornecidos no arquivo . |
| -oijs | --output-inline-js | Se deve salvar o javascript inline combinado de todos os arquivos relevantes no diretório de resposta quando (ou ) for usado. Os arquivos são salvos com o nome onde é o número do arquivo, salvando 1000 scripts únicos por arquivo. O arquivo também será criado, contendo o valor de todos os scripts externos referenciados nos arquivos. |
| -v | --verbose | Saída detalhada (verbose) |
| | --version | Mostrar o número da versão atual. |
| -h | --help | Mostrar a mensagem de ajuda e sair. |## Executar com docker
Instalar docker```bash git clone https://github.com/xnl-h4ck3r/waymore.git cd waymore
Construir imagem:```bash
docker build -t waymore .
Execute o waymore com 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 e Modo
A entrada `-i` pode ser apenas um domínio, por exemplo, `redbull.com` ou um domínio e caminho específico, por exemplo, `redbull.com/robots.txt`. Você também pode passar um arquivo de domínios/URLs para processar (ou passar valores por pipe de outro programa na linha de comando). **NOTA: Qualquer esquema, número de porta, string de consulta ou fragmento de URL será removido dos valores de entrada. No entanto, se você fornecer um caminho, ele será pesquisado especificamente, o que limitará seus resultados.**
Existem diferentes modos que podem ser executados para o waymore. O argumento `-mode` pode ter 3 valores diferentes:
- `U` - URLs serão recuperadas do archive.org (se `-xwm` não for passado), commoncrawl.org (se `-xcc` não for passado), otx.alienvault.com (se `-xvv` não for passado) e urlscan.io (se `-xus` não for passado)
- `R` - Respostas serão baixadas do archive.org
- `B` - Tanto URLs quanto Respostas serão recuperados
Se a entrada foi uma URL específica, por exemplo, `redbull.com/robots.txt`, então o `-mode` padrão é `R`. Apenas respostas serão baixadas. Você não pode alterar o modo para `U` ou `B` para um domínio com caminho porque não é necessário recuperar URLs para uma URL específica.
Se a entrada for apenas um domínio, por exemplo, `redbull.com`, então o `-mode` padrão é `B`. Pode ser alterado para `U` ou `R` se necessário. Quando apenas um domínio é passado, todas as URLs/respostas são recuperadas para aquele domínio (e subdomínios, a menos que `-n` seja passado). Se a opção de nenhum subdomínio `-n` for passada, o subdomínio `www` ainda é incluído por padrão.
## config.yml
O arquivo `config.yml` (normalmente em `~/.config/waymore/`) possui valores que podem ser atualizados para atender às suas necessidades. Os filtros são fornecidos como listas separadas por vírgulas:
- `FILTER_CODE` - Exclusões usadas para excluir respostas que tentaremos obter do web.archive.org, e também para nomes de arquivos quando `-i` é um diretório, por exemplo, `301,302`. Isso pode ser sobrescrito com o argumento `-fc`. Passar o `-mc` (para corresponder códigos de status em vez de filtrar) sobrescreverá qualquer valor em `FILTER_CODE` ou `-fc`.
- `FILTER_MIME` - Exclusões de Content-Type MIME usadas para filtrar links e respostas do web.archive.org através de sua API, por exemplo, `'text/css,image/jpeg`. Isso pode ser sobrescrito com o argumento `-ft`. Passar o `-mt` (para corresponder tipos MIME em vez de filtrar) sobrescreverá qualquer valor em `FILTER_MIME` ou `-ft`.
- `FILTER_URL` - Exclusões de código de resposta que usaremos para filtrar links e respostas do web.archive.org através de sua API, por exemplo, `.css,.jpg`
- `FILTER_KEYWORDS` - Apenas links e respostas serão retornados que contenham as palavras-chave especificadas se o argumento `-ko`/`--keywords-only` for passado (sem fornecer um valor explícito na linha de comando), por exemplo, `admin,portal`
- `URLSCAN_API_KEY` - Você pode se inscrever no [urlscan.io](https://urlscan.io/user/signup) para obter uma chave de API **GRATUITA** (também existem assinaturas pagas disponíveis). É recomendável obter uma chave e colocá-la no arquivo de configuração para que você possa obter mais (e mais rápido) da API deles. NOTA: Você será limitado por taxa, a menos que tenha uma assinatura paga completa.
- `CONTINUE_RESPONSES_IF_PIPED` - Se a recuperação de respostas do archive não for concluída, você será perguntado na próxima vez se deseja continuar com a execução anterior. No entanto, se o `stdout` for canalizado para outro processo, presume-se que você não deseja ter um prompt interativo. Um valor `True` (padrão) garantirá que a execução anterior seja continuada. Se você quiser uma execução limpa todas as vezes, defina como `False`.
- `WEBHOOK_DISCORD` - Se o argumento `--notify-discord` for passado, o `waymore` enviará uma notificação para este webhook do Discord.
- `TELEGRAM_BOT_TOKEN` - Se o argumento `--notify-telegram` for passado, o `waymore` usará este token para enviar uma notificação para o Telegram.
- `TELEGRAM_CHAT_ID` - Se o argumento `--notify-telegram` for passado, o `waymore` enviará a notificação para este ID de chat.
- `DEFAULT_OUTPUT_DIR` - Este é o local padrão de quaisquer arquivos de saída gravados se os argumentos `-oU` e `-oR` não forem usados. Se o valor desta chave estiver em branco, o padrão será o local do arquivo `config.yml`.
- `INTELX_API_KEY` - Você pode se inscrever no [intelx.io aqui](https://intelx.io/product). Requer uma chave de API acadêmica ou paga para fazer a pesquisa `/phonebook/search` através da API deles (a partir de 2024-09-01, o serviço Phonebook foi restrito a usuários acadêmicos ou pagos devido ao abuso constante por contas de spam). Você pode obter uma chave de API gratuita para uso acadêmico se inscrevendo com um endereço de e-mail acadêmico válido.
- `SOURCE_IP` - Opcional. Vincular requisições HTTP/HTTPS de saída a um IP de origem específico em hosts multi-homed. Também pode ser definido através da flag de CLI `--source-ip/--bind-ip` (a CLI tem precedência).
**NOTA: Os tipos MIME não podem ser filtrados para Alien Vault OTX, Virus Total e Intelligence X porque eles não têm a capacidade de filtrar por Tipo MIME. Às vezes, o URLScan não tem um Tipo MIME definido para uma URL. Nestes casos, as URLs serão incluídas independentemente do filtro ou correspondência. Tenha isso em mente e considere excluir certos provedores se isso for importante.**
## Saída
No diretório de saída padrão especificado no arquivo `config.yml` com `DEFAULT_OUTPUT_DIR` (se estiver em branco, o padrão será o local do próprio arquivo `config.yml`, normalmente `~/.config/waymore/`), um diretório `results` será criado. Dentro dele, um diretório será criado com o domínio alvo (ou domínio com caminho) passado com `-i` (ou para cada linha de um arquivo passado com `-i`). Alternativamente, você pode usar o argumento `-oU` para especificar onde o arquivo de links de URL será gerado (e o nome do arquivo). Você também pode usar o argumento `-oR` para especificar um diretório (ou caminho) onde as respostas arquivadas serão geradas.
Quando executado, os seguintes arquivos são criados no diretório alvo:
- `waymore.txt` - Se `-mode` for `U` ou `B`, este arquivo conterá links das fontes selecionadas. Os links serão recuperados do archive.org Wayback Machine (a menos que `-xwm` tenha sido passado), commoncrawl.org (a menos que `-xcc` tenha sido passado), otx.alienvault.com (a menos que `-xav` tenha sido passado) e urlscan.io (a menos que `-xus` tenha sido passado). Se a opção `-ow` também foi passada, qualquer arquivo `waymore.txt` existente no diretório de resultados alvo será sobrescrito, caso contrário, novos links serão anexados e duplicatas removidas.
- `index.txt` - Se `-mode` for `R` ou `B`, e `-url-filename` não foi passado, então as respostas arquivadas serão baixadas e valores de hash serão usados para os nomes de arquivo salvos. Este arquivo contém uma lista separada por vírgulas de `<hash>,<URL do archive>,<timestamp>` caso você precise saber quais URLs produziram qual resposta.
- `TODOS OS OUTROS ARQUIVOS` - Esses arquivos de resposta arquivada serão criados se `-mode` for `R` ou `B`. Se `-url-filename` foi passado, os nomes dos arquivos serão a URL do archive que gerou a resposta, por exemplo, `https--example.com-robots.txt`, caso contrário, o nome do arquivo será um valor de hash, por exemplo, `7960113391501.{EXT}` onde `{EXT}` será a extensão derivada do caminho, caso contrário será derivada do `content-type` da resposta. Às vezes, uma extensão geral será dada, por exemplo, `.js` para qualquer tipo de conteúdo contendo a palavra `javascript`, caso contrário, pode ser definido para a última parte do tipo (por exemplo, se for `application/java-archive`, o arquivo será `7960113391501.java-archive`). Usar valores de hash significa que menos arquivos serão gravados, pois haverá apenas um arquivo por resposta única. Essas respostas arquivadas são editadas, antes de serem salvas, para remover qualquer referência a `web.archive.org`.
## Informações e Sugestões
O número de links encontrados e, potencialmente, o número de arquivos de respostas arquivadas que você baixará pode ser **ENORME** para muitos domínios. Esta ferramenta não é sobre velocidade, é sobre encontrar mais, então seja paciente.
Existe uma opção `-p` para aumentar o número de processos (usado ao recuperar links de todas as fontes e baixar respostas arquivadas do archive.org). No entanto, embora possa não ser tão rápido quanto você gostaria, sugiro deixar `-p` no padrão de 3 porque pessoalmente encontrei problemas ao obter respostas com valores mais altos. Não queremos causar problemas a esses serviços, então seja sensato!
Frequentemente uso a opção `-f` porque quero que `waymore.txt` contenha TODOS os links possíveis. Mesmo que eu não me importe com imagens, fontes, etc., ainda pode ser útil ver todos os caminhos possíveis e talvez parâmetros. Quaisquer filtros serão sempre aplicados ao baixar respostas arquivadas. Você não quer perder tempo baixando milhares de imagens!
Usar a opção `-v` pode ajudar a ver o que está acontecendo nos bastidores e pode ajudar se você não estiver obtendo a saída esperada.
Todos os Tipos de Conteúdo MIME das URLs encontradas (por todas as fontes, exceto Alien Vault) serão exibidos quando `-v` for usado. Isso pode ajudar a adicionar mais exclusões se você achar que ainda recebe coisas que não deseja ver. Se você notar um tipo MIME que está sendo incluído, mas não o deseja daqui para frente, adicione-o ao `FILTER_MIME` no `config.yml`.
Deve-se notar que, às vezes, o tipo MIME no archive.org é armazenado como `unk` e `unknown` em vez do tipo MIME real, então o filtro não o removerá necessariamente dos resultados. As configurações de `FILTER_URL` podem ser usadas para removê-los posteriormente. Por exemplo, se um GIF tiver tipo MIME `unk` em vez de `image/gif` (e isso estiver em `FILTER_MIME`), ele não será filtrado, mas se a url for `https://target.com/assets/logo.gif` e `.gif` estiver em `FILTER_URL`, ela não será solicitada.
Se `config.yml` não existir, ou as entradas para filtros não estiverem no arquivo, os filtros padrão serão usados. É melhor ter o arquivo e revisá-los para garantir que você está obtendo o que precisa.
Pode haver potencialmente milhões de respostas, portanto, certifique-se de definir filtros, mas também o Limite (`-l`), Data de (`-from`), Data até (`-to`) e/ou Intervalo de Captura (`-ci`) se necessário. O limite padrão é 5000, mas digamos que você queira obter as últimas 20.000 respostas de 2015 até janeiro de 2018... você passaria `-l -20000 -from 2015 -to 201801`. O Intervalo de Captura determina quantas respostas serão baixadas para uma URL específica dentro de um período especificado, por exemplo, se você definir como `m`, receberá apenas uma resposta por mês para uma URL. O padrão `d` provavelmente reduzirá bastante o número de respostas e é improvável que perca muitas respostas únicas, a menos que um alvo tenha mudado algo mais de uma vez em um determinado dia.
Outro argumento útil é `-mc` que só obterá resultados onde o código de status HTTP corresponda à lista separada por vírgulas passada, por exemplo, `-mc 200` ou `-mc 200,403`.
Você também pode reduzir bastante o número (e, portanto, o tempo de execução) de links e respostas retornando apenas aqueles que contêm palavras-chave de seu interesse. Você pode listar essas palavras-chave no `config.yml` com a chave `FILTER_KEYWORDS` e depois passar o argumento `-ko`/`--keywords-only` para usá-las, ou pode passar `-ko`/`--keywords-only` com uma Regex específica, por exemplo, `-ko "\.js(\?.*|$)"` para obter apenas arquivos JS. **NOTA: A regex CDX exige que todos os caminhos correspondam à string completa, portanto, se `$` for usado como parte de um grupo OR, o `.*` é necessário na parte da regex `(\?.*|$)`.**
Como mencionado acima, inscreva-se no [urlscan.io](https://urlscan.io/user/signup) para obter uma chave de API **GRATUITA** (também existem assinaturas pagas disponíveis). É recomendável obter uma chave e colocá-la no arquivo `config.yml` para que você possa obter mais (e mais rápido) da API deles. NOTA: Você será limitado por taxa, a menos que tenha uma assinatura paga completa.
A API CDX do Wayback Machine do archive.org às vezes pode exigir uma quantidade enorme de requisições para obter todos os links. Por exemplo, se você executar o **waymore** para `-i twitter.com`, ele diz que existem **28.903.799** requisições ao archive.org que precisam ser feitas (isso pode levar quase 1000 dias para algumas pessoas!!!). O argumento `-lr` pode ser usado para limitar o número de requisições feitas por fonte (embora geralmente seja o archive.org o problema). O valor padrão para o argumento é 0 (Zero), o que não aplica limite.
Há também um problema com a API CDX do Wayback Machine em que o número de páginas retornadas não está correto quando filtros são aplicados e pode causar problemas (veja https://github.com/internetarchive/wayback/issues/243). Até que esse problema seja resolvido, definir o argumento `-lr` para um valor razoável pode ajudar com esse problema a curto prazo.
A API do Common Crawl tem tido muitos problemas por um longo tempo. Incluir esta fonte pode fazer com que o waymore demore muito mais para ser executado e pode não render resultados extras. Você pode verificar se há um problema visitando http://index.commoncrawl.org/collinfo.json e vendo se isso é bem-sucedido. Considere excluir o Common Crawl completamente usando o argumento `--providers` e não incluindo `commoncrawl`, ou usando o argumento `-xcc`.
**Os servidores da API do provedor não foram projetados para lidar com grandes volumes, então seja sensato e considere o que você envia para eles!**
Ao baixar respostas arquivadas, isso pode levar muito tempo e pode ser interrompido pela máquina por algum motivo, ou interrompido manualmente pelo usuário.
No diretório `results` do alvo, um arquivo chamado `responses.tmp` é criado no início do processo e contém todas as URLs de resposta que serão recuperadas. Haverá também um arquivo chamado `continueResp.tmp` que armazena o índice da última resposta recuperada. Se o `waymore` for executado para obter respostas (`-mode R` ou `-mode B`), e esses arquivos existirem, significa que houve uma execução incompleta anterior, e você será perguntado se deseja continuar com essa. Ele então continuará de onde parou antes.
## Alguns Exemplos Básicos
### Exemplo 1
Apenas obtenha as URLs de todas as fontes para `redbull.com` (`-mode U` é apenas para URLs, então nenhuma resposta é baixada):
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example1.png"></center>
As URLs são salvas no mesmo caminho que `config.yml` (normalmente `~/.config/waymore`) em `results/redbull.com/waymore.txt`
### Exemplo 2
Obtenha TODAS as URLs do Wayback para `redbull.com` (nenhum filtro é aplicado no `mode U` com `-f`, e nenhuma URL é recuperada do Common Crawl, Alien Vault, URLScan e Virus Total, porque `-xcc`, `-xav`, `-xus`, `-xvt` são passados respectivamente. Isso também pode ser alcançado passando `--providers wayback` em vez dos argumentos de exclusão).
Salve as PRIMEIRAS 200 respostas 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>
O `-mode` não foi definido explicitamente, então o padrão é `B` (Ambos - recuperar URLs E baixar respostas).
Um arquivo será criado para cada resposta única e também salvo em `results/redbull.com/`:
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example3.png"></center>
Haverá também um arquivo `results/redbull.com/index.txt` que conterá uma referência a quais URLs forneceram a resposta para qual arquivo, por exemplo,```
4847147712618,https://web.archive.org/web/20220426044405/https://www.redbull.com/additional-services/geo ,2022-06-24 20:07:50.603486
onde 4847147712618 é o valor hash da resposta em 4847147712618.xnl, o 2º valor é o URL da Wayback Machine onde você pode visualizar a página real que foi arquivada, e o 3º é um timestamp de quando a resposta foi baixada.
Você pode usar pipe do waymore para outras ferramentas. Quaisquer erros são enviados para stderr e quaisquer links encontrados são enviados para stdout. O arquivo de saída ainda é criado além dos links serem redirecionados para o próximo programa. No entanto, as respostas arquivadas não são redirecionadas para o próximo programa, mas ainda são escritas em arquivos. Por exemplo:```
waymore -i redbull.com -mode U | unfurl keys | sort -u
Você também pode passar a entrada pelo `stdin` em vez de `-i`.```
cat redbull_subs.txt | waymore
Às vezes, você pode querer apenas verificar quantas requisições e quanto tempo o waymore provavelmente levaria se você o executasse para um domínio específico. Você pode fazer uma verificação rápida usando o argumento -co/--check-only. Por exemplo:```
waymore -i redbull.com --check-only
<center><img src="https://raw.githubusercontent.com/xnl-h4ck3r/waymore/main/waymore/images/example4.png"></center>
## Encontrando Muito Mais URLs!
Então agora você tem muitas respostas arquivadas e quer encontrar links extras? Fácil! Por que não usar [xnLinkFinder](https://github.com/xnl-h4ck3r/xnLinkFinder)?
Por exemplo:```
xnLinkFinder -i ~/Tools/waymore/results/redbull.com -sp https://www.redbull.com -sf redbull.com -o redbull.txt
Or execute outras ferramentas como trufflehog ou gf sobre o diretório de respostas para encontrar ainda mais a partir das respostas arquivadas!
Abaixo está uma apresentação detalhada que fiz para o canal do Discord do Jason Haddix em março de 2024 para cobrir TUDO que você precisa saber sobre waymore.
NOTA: Este vídeo é de março de 2024, portanto, quaisquer funcionalidades adicionadas após essa data não serão apresentadas e algumas funcionalidades podem ter mudado. Verifique novamente as instruções atuais.
Se você encontrar algum problema, ou tiver ideias para melhorias, sinta-se à vontade para abrir uma issue no Github. Se houver um problema, será útil se você puder fornecer o comando exato que executou e uma descrição detalhada do problema. Se possível, execute com -v para reproduzir o problema e me informe sobre quaisquer mensagens de erro que forem exibidas.
-oos que aceite um arquivo de subdomínios/URLs Fora do Escopo que não serão retornados na saída, nem terão respostas baixadas.waymore_index.txt não é desduplicado se for executado várias vezes para a mesma entrada com -mode R ou -mode B.Boa sorte e boa caça! Se você realmente ama a ferramenta (ou qualquer outra), ou elas o ajudaram a encontrar uma recompensa incrível, considere ME PAGAR UM CAFÉ! ☕ (Eu poderia usar a 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.newmode Umode R-mode U-v-oUconfig.yml~/.config/waymore429429WEBHOOK_DISCORDconfig.ymlTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDconfig.yml-mode R-mode BcombinedInline{}.js{}combinedInlineSrc.txtsrc