
Um scanner de enumeração e vulnerabilidade assíncrono. Execute todas as ferramentas em todos os hosts.
celerystalk ajuda você a automatizar seu processo de varredura/enumeração de rede com jobs assíncronos (também conhecidos como tasks) enquanto mantém controle total sobre quais ferramentas deseja executar.

Demonstração Interativa: Modo Bug Bounty (HackerOne)
Demonstração Interativa: Modo de Avaliação de Vulnerabilidades / PenTest (máquinas aposentadas do HackTheBox.eu)
| Fase | Comando | Exemplos de ferramentas utilizadas |
|---|---|---|
| Recon/Enumeração DNS | ./celerystalk subdomains -d dominio1,dominio2 | Amass, sublist3r |
| Definir Escopo, Importar nmap/nessus | ./celerystalk import [dados_varredura,arquivos_escopo,etc.] | celerystalk |
| Varredura de Portas | ./celerystalk nmap | nmap |
| Enumeração de Diretórios e Arquivos, Identificação de Vulnerabilidades | ./celerystalk scan | Gobuster, Nikto, Photon, sqlmap, wpscan, hydra, medusa, wappalyzer, whatweb, etc. |
| Capturas de Tela | ./celerystalk sceenshots | Aquatone |
| Análise | ./celerystalk report | celerystalk |
celerystalk é:
Você deve instalar e executar o celerystalk como root``` git clone https://github.com/sethsec/celerystalk.git cd celerystalk/setup ./install.sh cd .. ./celerystalk -h
## Use container docker do Dockerhub```
docker pull sethsec/celerystalk:latest
docker run -p 27007:27007 -ti celerystalk
docker build -t celerystalk https://github.com/sethsec/celerystalk.git docker run -p 27007:27007 -ti celerystalk
## Usando celerystalk - O básico
### [Modo URL] - Como escanear uma URL (ou múltiplas URLs em um arquivo)
#### Inicie todas as ferramentas habilitadas contra uma URL ou várias URLs em um arquivo sem precisar importar escopo, nmap, etc.```
# ./celerystalk scan -u url or filename # Run all enabled commands against specified url(s)
# ./celerystalk query watch (then Ctrl+c) # Wait for scans to finish
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
#### Ou, importe a lista de hosts que estão no escopo e deixe o celerystalk executar o nmap para você```
# ./celerystalk import -S scope.txt # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk nmap # Nmap all in-scope hosts (reads options from config.ini)
## Uso Avançado: Modo Bug Bounty vs Modo de Avaliação de Vulnerabilidades
Você define o modo na instanciação do workspace. O workspace padrão é o modo VAPT, mas você tem duas opções para workspaces criados manualmente.
* Se você está começando com endereços IP/faixas/CIDRs no escopo, use o modo de Avaliação de Vulnerabilidades e Teste de Penetração (VAPT).
* Se você está começando com domínios no escopo, use o modo Bug Bounty (BB).
### [Modo Bug Bounty]
* No modo BB, todos os subdomínios encontrados com celerystalk ou importados manualmente são marcados como no escopo.
#### Encontre subdomínios, defina hosts fora do escopo, escaneie todo o resto```
# ./celerystalk workspace create -o /dir -m bb # Create default workspace and set output dir
# ./celerystalk subdomains -d company.com,dom.net # Find subdomains and determine if in scope
# ./celerystalk import -S scope.txt (optional) # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk import -O out_scope.txt (optional) # Define HOSTS/IPs that are out of scope
# ./celerystalk nmap (optional) # Nmap all in-scope hosts (reads options from config.ini)
# ./celerystalk import -f client.xml (optional) # If you would rather import an nmap file you already ran
# ./celerystalk scan [--noIP] # Run all enabled commands against all in scope hosts
# ./celerystalk query watch (then Ctrl+c) # Wait for scans to finish
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
Nota: Você pode executar o comando de subdomínios primeiro e depois definir o escopo, ou pode definir o escopo e importar subdomínios.
**Nota:** Você pode executar o comando de subdomínios primeiro e depois definir o escopo, ou pode definir o escopo e importar subdomínios.
#### Importar lista de hosts que estão no escopo e fazer com que o celerystalk execute nmap e analise os resultados```
# ./celerystalk workspace create -o /dir -m vapt # Create default workspace and set output dir
# ./celerystalk import -S client-inscope-list.txt # Import IP/CIDR/Ranges and mark as in scope
# ./celerystalk import -O out_scope.txt (optional) # Define HOSTS/IPs that are out of scope
# ./celerystalk nmap # Nmap all in-scope hosts (reads options from config.ini)
# ./celerystalk query watch (then Ctrl+c) # Watch nmap scans as they move from pending > running > complete
# ./celerystalk subdomains -d client.com,client.net # Find subdomains and determine if in scope
# ./celerystalk scan # Run all enabled commands
# ./celerystalk query watch (then Ctrl+c) # Watch scans as they move from pending > running > complete
# ./celerystalk screenshots # Take screenshots
# ./celerystalk report # Generate report
Nota: Você pode executar o comando de subdomínios primeiro e depois definir o escopo, ou pode definir o escopo e importar subdomínios.
Para mais detalhes, consulte a página Configuration na Wiki
Você precisa criar um workspace antes de fazer qualquer outra coisa.
#### import
Este comando permite importar dados de portas e hosts para o celerystalk, e permite definir o que está no escopo e o que está fora do escopo.
| Opção | Descrição |
| --- | --- |
| -f scan.xml | <b>xml do Nmap/Nessus</b><br><ul><li>Adiciona todos os endereços IP deste arquivo à tabela de hosts e os marca como no escopo para serem escaneados.</li><li>Adiciona todas as portas e tipos de serviço à tabela de serviços.</li></ul> |
| -S scope.txt | <b>Arquivo de escopo</b><br><ul><li>Mostrar diferenças de arquivo que não foram preparadas </li></ul>|
| -D subdomains.txt | <b>Arquivo de (sub)domínios</b><br><ul><li>O celerystalk determina se cada subdomínio está no escopo resolvendo o IP e procurando pelo IP no banco de dados. Se houver uma correspondência, o domínio é marcado como no escopo e será escaneado.</li></ul>|```
Import Nmap XML file: ./celerystalk import -f /assessments/nmap.xml
Import Nessus file: ./celerystalk import -f /assessments/scan.nessus
Import list of Domains: ./celerystalk import -D <file>
Import list of IPs/Ranges: ./celerystalk import -S <file>
Specify workspace: ./celerystalk import -f <file>
Import multiple files: ./celerystalk import -f nmap.xml -S scope.txt -D domains.txt
Este comando executa todas as ferramentas de busca de subdomínios no seu arquivo de configuração. Se preferir, você pode fazer isso fora do celerystalk e importar os subdomínios com o comando import
| Opção | Descrição |
|---|---|
| -d dominio1,dominio2,etc | Executar Amass, Sublist3r, etc. e armazenar domínios no BD
|
| Find subdomains: celerystalk subdomains -d domain1.com,domain2.com |
#### nmap
Este comando executará o nmap para você, usando as opções especificadas no arquivo config.ini. Você também pode importar dados de varredura de portas de um arquivo xml do nmap ou de um arquivo .nessus.
| Opção | Descrição |
| --- | --- |
| sem opções | Lê o comando nmap do config e varre todos os serviços para hosts no escopo
| -c [filename] | Especifica um arquivo de configuração do celerystalk [Padrão: ./config.ini]
#### scan
Este comando enviará tarefas para o celery, que as executa de forma assíncrona e registra a saída no seu diretório de saída.
| Opção | Descrição |
| --- | --- |
| sem opções | <b>Varrer todos os hosts no escopo</b><ul><li>Lê o banco de dados e varre todos os IPs e subdomínios no escopo.</li><li>Executa todas as ferramentas habilitadas para IPs, mas apenas ferramentas específicas de http/http contra virtualhosts</li></ul> |
| --noIP | Não varrer hosts por IP (apenas varrer vhosts)
| -t ip,vhost,cidr | <b>Varrer alvo(s) específico(s) do banco de dados ou arquivo de varredura</b><ul><li>Varrer um subconjunto dos IPs e/ou subdomínios no escopo</li></ul> |
| -s | <b>Simulação</b><br> Envia todas as tarefas para o celery, mas todos os comandos são executados com um # antes, tornando-os inertes</li></ul> |
| -c [filename] | Especifica um arquivo de configuração do celerystalk [Padrão: ./config.ini] |
| -u [URL] | Varrer uma URL específica, mesmo que ainda não esteja no banco de dados |```
Scan all in scope hosts: ./celerystalk scan
Scan subset of DB hosts: ./celerystalk scan -t 10.0.0.1,10.0.0.3
./celerystalk scan -t 10.0.0.100-200
./celerystalk scan -t 10.0.0.0/24
./celerystalk scan -t sub.domain.com
Simulation mode: ./celerystalk scan -s
Este comando vai rescanejar um host já escaneado.
| Option | Description |
|---|---|
| no option | Para cada host no escopo no banco de dados, o celerystalk perguntará se você deseja rescaneá-lo |
./celerystalk rescan -c myconfig.ini
Rescan some hosts ./celerystalk rescan -t 1.2.3.4,sub.domain.com
Simulation mode: ./celerystalk rescan -s
#### query
Verifique assincronamente o status da fila de tarefas com a frequência que desejar. O modo watch executa o comando linux watch para não encher todo o buffer do terminal.
| Option | Description |
| --- | --- |
| no options | Mostra todas as tarefas no espaço de trabalho atual |
| watch | Envia comando para o comando unix watch que permite obter um status atualizado a cada 2 segundos |
| brief | Limite de 5 resultados por status (pending/running/completed/cancelled/paused) |
| summary | Mostra apenas um banner com números e não as tarefas em si |```
Query Tasks: ./celerystalk query
./celerystalk query watch
./celerystalk query brief
./celerystalk query summary
./celerystalk query summary watch
Cancelar/Pausar/Retomar qualquer tarefa(s) que esteja em execução ou na fila.
./celerystalk <verb> all #Cancel/Pause/Resume all tasks from current workspaces
| Opções | Descrição |
| --- | --- |
| sem opções | Capturar screenshots para todos os caminhos conhecidos |```
./celerystalk screenshots
Execute um relatório que combina toda a saída da ferramenta em um arquivo html e um arquivo txt. Execute isto quantas vezes desejar. Cada vez que executar o relatório, ele substitui o relatório anterior.
| Opções | Descrição |
|---|---|
| sem opções | Cria relatório para todos os hosts no escopo que foram escaneados |
| Create Report: ./celerystalk report #Create a report for all scanned hosts in current workspace |
#### db
Liste ou exporte os workspaces, hosts, services ou paths armazenados no banco de dados do celerystalk
| Opção | Descrição |
| --- | --- |
| workspaces | Mostra todos os workspaces conhecidos e o diretório de saída associado a cada workspace |
| workspace | Mesmo que workspaces |
| services | Mostra todas as portas abertas conhecidas e tipos de serviço por IP |
| ports | Mesmo que ports. |
| hosts | Mostra todos os hosts (endereços IP e subdomínios/vhosts) e se estão no escopo e se foram submetidos para varredura |
| vhosts | Mesmo que o comando hosts, mas exclui vhosts que são endereços IP. |
| paths | Mostra todos os paths que foram identificados por vhost |
| paths_only | Mostra uma lista de paths separados por nova linha no db. Útil para redirecionar para outra ferramenta |
| export | Exporta as tabelas de services, hosts e paths
| export_paths_only | Exporta apenas uma lista de paths separados por nova linha no db para um arquivo.```
Show workspaces: ./celerystalk db workspaces
./celerystalk db workspace
Show services: ./celerystalk db services
./celerystalk db ports
Show hosts: ./celerystalk db hosts
Show vhosts only ./celerystalk db vhosts
Show paths: ./celerystalk db paths
Show paths (no table) ./celerystalk db paths_only
Show tasks: ./celerystalk db tasks
Export tables to csv ./celerystalk db export
Export paths to txt ./celerystalk db export_paths_only
Funções Administrativas
## Uso```
Usage:
celerystalk workspace ([create]|[switch]) [-w workspace_name] [-o <output_dir>] [-m <mode>] [-h]
celerystalk import [-f <nmap_file>] [-S scope_file] [-D subdomains_file] [-O outOfScope.txt] [-u <url>] [-h]
celerystalk subdomains [-d <domains>] [-c <config_file>] [-s] [-h]
celerystalk nmap [-t <targets>] [-c <config_file>] [-s] [-h]
celerystalk scan [-t <targets>] [--noIP] [-c <config_file>] [-s] [-h]
celerystalk scan -u <url> [-c <config_file>] [-s] [-h]
celerystalk rescan [-t <targets>] [-c <config_file>] [-s] [-h]
celerystalk query ([full] | [summary] | [brief]) [watch] [-h]
celerystalk query [watch] ([full] | [summary] | [brief]) [-h]
celerystalk report [-h]
celerystalk screenshots [-h]
celerystalk cancel ([all]|[<task_ids>]) [-h]
celerystalk pause ([all]|[<task_ids>]) [-h]
celerystalk resume ([all]|[<task_ids>]) [-h]
celerystalk db ([workspaces]|[workspace]|[services]|[ports]|[hosts]|[vhosts]|[paths]|[paths_only]|[tasks]) [-h]
celerystalk db export [-h]
celerystalk admin ([start]|[stop]|[restart]|[reset]|[backup]|[restore]) [-f <restore_file>] [-h]
celerystalk interactive [-h]
celerystalk (help | -h | --help)
Options:
-h --help Show this screen
-v --version Show version
-f <nmap_file> Nmap xml import file
-c <config_file> Specify a non-default configuration file by name
-o <output_dir> Output directory
-m <mode> vapt = VulnAssmt/PenTest, bb = Bug Bounty
-S <scope_file> Scope import file
-O <outscope_file> Out of scope hosts file
-D <subdomains_file> Subdomains import file
-t <targets> Target(s): IP, IP Range, CIDR
-u <url> URL to parse and scan with all configured tools
-w <workspace> Workspace
-d --domains Domains to scan for vhosts
-s --simulation Simulation mode. Submit tasks comment out all commands
--noIP Only scan targets by DNS hostname (Don't scan the IP address)
Context specific help with examples:
./celerystalk workspace -h
./celerystalk subdomains -h
./celerystalk import -h
./celerystalk nmap -h
./celerystalk scan -h
./celerystalk rescan -h
./celerystalk query -h
./celerystalk pause -h
./celerystalk resume -h
./celerystalk cancel -h
./celerystalk db -h
./celerystalk screenshots -h
./celerystalk report -h
./celerystalk admin -h
Este projeto foi inspirado por muitas ferramentas excelentes:
Agradecimentos a @offensivesecurity e @hackthebox_eu por suas redes de laboratório
Também, agradecimentos a:
| Option | Description |
|---|
| sem opções | Exibe o workspace atual |
| create | Cria um novo workspace |
| -w | Define o nome do novo workspace |
| -o | Define o diretório de saída atribuído ao workspace |
| -m | Modo [vapt \ bb] |
| Create default workspace ./celerystalk workspace create -o /assessments/client -m bb | |
| Create named workspace ./celerystalk workspace create -o /assessments/client -w client -m vapt | |
| Switch to another workspace ./celerystalk workspace client |
| -t ip,vhost,cidr | Escaneie um subconjunto dos IPs e/ou subdomínios no escopo. |
| -s | Envia todas as tarefas para o celery, mas todos os comandos são executados com um # antes deles, tornando-os inertes. |
| -c [filename] | Especifique um arquivo de configuração do celerystalk [Padrão: ./config.ini] |
| Rescan all hosts: ./celerystalk rescan |
| Opção | Descrição |
|---|
| cancel |
|
| pause |
|
| resume |
|
| Cancel/Pause/Resume Tasks: ./celerystalk 5,6,10-20 #Cancel/Pause/Resume tasks 5, 6, and 10-20 from current workspace |
| Opções | Descrição |
|---|
| start | Iniciar processos Celery & Redis |
| stop | Parar processos Celery & Redis |
| restart | Reiniciar processos Celery & Redis |
| reset | Destruir BD, Limpar Redis, recomeçar |
| backup | Fazer backup do BD e todos os diretórios de dados do workspace |
| restore | Restaurar BD e todos os diretórios de dados do workspace |
| -f [filename] | Nome do arquivo de restauração |
| Examples: | |
| ./celerystalk admin start | |
| ./celerystalk admin stop | |
| ./celerystalk admin restart | |
| ./celerystalk admin reset | |
| ./celerystalk admin backup -f | |
| ./celerystalk admin restore -f |