Arsenal do Analista (A²)™

README.md

[Arsenal do Enalista (A²)™]

Uma ferramenta para Pesquisadores de Segurança

Descrição

Com aa_adhoc, execute uma lista de URLs e verifique sites em busca de arquivos maliciosos com base em extensões pré-definidas.

Com aa_certstream, descubra quando um kit de phishing foi implantado em um domínio. Com essa informação, você pode ser um dos primeiros a:

  • Identificar
  • Bloquear
  • Reportar
  • Analisar

Com aa_urlscan, pesquise facilmente no urlscan.io e verifique sites em busca de arquivos maliciosos com base em extensões pré-definidas.

Com aa_whoisds, baixe uma lista de domínios recém-registrados do WHOIS Domain Search, pontue os domínios e procure por sinais de atividade maliciosa.

Pré-requisitos

  • Ubuntu 18.04+ (deve funcionar em outras distribuições Linux)
  • Python 2.7.14
  • Pacotes DEB:
  • gcc
  • Git (opcional)
  • Torsocks (opcional: usado com a flag --tor)

Instalação

  1. Abra um terminal e execute o seguinte comando: ``` git clone https://github.com/ecstatic-nobel/Analyst-Arsenal.git
    cd Analyst-Arsenal
    bash py_pkg_update.sh



###

### Uso

**aa\_adhoc**
O seguinte comando irá:

- Fazer requisições aos domínios obtidos de um arquivo
- Baixar arquivos do site quando um diretório aberto for encontrado contendo um arquivo com a extensão desejada

1 argumento posicional necessário:

- **Arquivo de Entrada** : Caminho para o arquivo contendo URLs

Argumentos opcionais:

- **--directory** : Baixar dados para CAP\_DIR (padrão: ./Captures)
- **--level** : Profundidade de recursão (padrão=1, infinito=0)
- **--max-redirect** : Redirecionamentos máximos (padrão=0)
- **--quiet** : Não mostrar saída do wget
- **--threads** : Número de threads a serem criadas
- **--timeout** : Definir tempo limite da conexão para TIMEOUT
- **--tor** : Baixar arquivos pela rede Tor
- **--very-verbose** : Mostrar mensagens de erro


python aa_adhoc.py <ARQUIVO_ENTRADA> [--directory] [--level] [--max-redirect] [--quiet] [--threads] [--timeout] [--tor] [--very-verbose]


**aa\_certstream**
O seguinte comando irá:

- Transmitir logs CT via Certstream
- Pontuar e adicionar domínios suspeitos à fila enquanto outros domínios continuam sendo pontuados
- Fazer requisições simultâneas aos domínios na fila para buscar extensões de arquivos pré-definidas
- Baixar recursivamente o site quando um diretório aberto for encontrado contendo um arquivo com uma extensão específica

Argumentos opcionais:

- **--ctl-server** : URL do servidor Certstream para se conectar
- **--dns-twist** : Verificar palavras-chave torcidas encontradas em dns\_twisted.yaml
- **--directory** : Baixar dados para CAP\_DIR (padrão: ./Captures)
- **--level** : Profundidade de recursão (padrão=1, infinito=0)
- **--log-nc** : Arquivo para armazenar domínios que não foram verificados
- **--quiet** : Não mostrar saída do wget
- **--score** : Pontuação mínima para acionar uma sessão (Padrão: 75)
- **--threads** : Número de threads a serem criadas
- **--timeout** : Definir tempo limite da conexão para TIMEOUT
- **--tor** : Baixar arquivos pela rede Tor
- **--verbose** : Mostrar domínios sendo pontuados
- **--very-verbose** : Mostrar mensagens de erro


python aa_certstream.py [--ctl-server] [--dns-twist] [--dierctory] [--level] [--log-nc] [--quiet] [--score] [--threads] [--timeout] [--tor] [--verbose] [--very-verbose]


**aa\_urlscan**
O seguinte comando irá:

- Fazer requisições aos domínios obtidos de urlscan.io
- Baixar recursivamente o site quando um diretório aberto for encontrado contendo um arquivo com a extensão desejada

3 argumentos posicionais necessários:

- **Tipo de Consulta** : automatic, manual, certstream, openphish, phishtank, twitter, urlhaus
- **Delta** : Número de dias para procurar atrás (GMT)
- **String de Consulta** : Texto para buscar (sem espaços)

Argumentos opcionais:

- **--directory** : Baixar dados para CAP\_DIR (padrão: ./Captures)
- **--level** : Profundidade de recursão (padrão=1, infinito=0)
- **--max-redirect** : Redirecionamentos máximos (padrão=0)
- **--quiet** : Não mostrar saída do wget
- **--threads** : Número de threads a serem criadas
- **--timeout** : Definir tempo limite da conexão para TIMEOUT
- **--tor** : Baixar arquivos pela rede Tor
- **--very-verbose** : Mostrar mensagens de erro


python aa_urlscan.py <TIPO_CONSULTA> <DELTA> <STRING_CONSULTA> [--directory] [--level] [--max-redirect] [--quiet] [--threads] [--timeout] [--tor] [--very-verbose]


**Nota**: Se o caminho for um arquivo, ele será automaticamente baixado.

**aa\_whoisds**

- Baixar uma lista de domínios recém-registrados do WHOIS Domain Search (whoisds.com)
- Pontuar e adicionar domínios suspeitos à fila enquanto outros domínios continuam sendo pontuados
- Fazer requisições simultâneas aos domínios na fila para buscar extensões de arquivos pré-definidas
- Baixar recursivamente o site quando um diretório aberto for encontrado contendo um arquivo com uma extensão específica

1 argumento posicional necessário:

- **Delta** : Número de dias para procurar atrás (GMT)

Argumentos opcionais:

- **--dns-twist** : Verificar palavras-chave torcidas encontradas em dns\_twisted.yaml
- **--directory** : Baixar dados para CAP\_DIR (padrão: ./Captures)
- **--level** : Profundidade de recursão (padrão=1, infinito=0)
- **--log-nc** : Arquivo para armazenar domínios que não foram verificados
- **--quiet** : Não mostrar saída do wget
- **--score** : Pontuação mínima para acionar uma sessão (Padrão: 75)
- **--threads** : Número de threads a serem criadas
- **--timeout** : Definir tempo limite da conexão para TIMEOUT
- **--tor** : Baixar arquivos pela rede Tor
- **--verbose** : Mostrar domínios sendo pontuados
- **--very-verbose** : Mostrar mensagens de erro


python aa_whoisds.py <DELTA> [--dns-twist] [--directory] [--level] [--log-nc] [--quiet] [--score] [--threads] [--timeout] [--tor] [--verbose] [--very-verbose]


###

### Coisas para saber

- Seja responsável!!!
- Mensagens de saída:
- **Complete**: download completo ou o site cancelou antes do término
- **Critical**: um domínio foi encontrado com pontuação acima de 120
- **Directory**: o diretório de saída está indisponível
- **Download**: verificações passaram e o download começou
- **Empty**: o diretório de saída estava vazio e foi removido
- **Failed**: não foi possível estabelecer conexão com o site
- **Session**: verificando o site por dados incluídos em `external.yaml`
- **Suspicious**: um domínio foi encontrado com pontuação acima de 90
- **Triggered**: um domínio foi encontrado com a pontuação mínima especificada
- Verifique o arquivo `queue_file.txt` para entender melhor o tamanho da fila. Se estiver muito grande, aumente o número de threads, eleve a pontuação ou reduza o nível.
- Se as palavras-chave em `config.yaml` forem modificadas e `--dns-twist` for utilizado, regenere `dns_twisted.yaml` executando o seguinte comando: ```
bash dnstwist.sh CAMINHO_PARA_SCRIPT_DNSTWIST

  • Usar a flag --dns-twist usará pelo menos 20 threads por padrão
  • Downloads via Tor ocorrem através de 127.0.0.1:9050
  • Esses scripts não verificarão as configurações do Torsocks

Por favor, faça fork, crie pull requests e ajude a melhorar isso.

Tags: Security research Python automation threat-intelligence

Publicado em 10-21 05:25