É como jogar boliche com pára-choques. -@ippsec
AutoRecon é uma ferramenta de reconhecimento de rede multithread que realiza enumeração automatizada de serviços. Pretende ser uma ferramenta que economize tempo para uso em CTFs e outros ambientes de testes de penetração (por exemplo, OSCP). Também pode ser útil em compromissos do mundo real.
A ferramenta funciona primeiro realizando varreduras de portas / varreduras de detecção de serviço. A partir desses resultados iniciais, a ferramenta lançará novas varreduras de enumeração desses serviços usando diversas ferramentas diferentes. Por exemplo, se o HTTP for encontrado, o feroxbuster será lançado (assim como muitos outros).
Tudo na ferramenta é altamente configurável. A configuração padrão não realiza exploração automatizada para manter a ferramenta alinhada com as regras do exame OSCP. Se desejar adicionar ferramentas de exploração automática à configuração, você o fará por sua própria conta e risco. O autor não será responsabilizado por ações negativas que resultem do uso indevido desta ferramenta.
Isenção de responsabilidade: embora a AutoRecon se esforce para realizar o máximo possível de identificação e enumeração de serviços, não há garantia de que todos os serviços serão identificados ou que todos os serviços serão totalmente enumerados. Os usuários do AutoRecon (especialmente estudantes) devem realizar sua própria enumeração manual junto com o AutoRecon. Não confie apenas nesta ferramenta para exames, CTFs ou outros compromissos.
AutoRecon foi inspirado em três ferramentas que o autor utilizou durante os laboratórios OSCP: Reconnoitre, ReconScan e bscan. Embora todas as três ferramentas fossem úteis, nenhuma delas sozinha tinha a funcionalidade desejada. AutoRecon combina os melhores recursos das ferramentas mencionadas ao mesmo tempo que implementa muitos novos recursos para ajudar os testadores na enumeração de vários alvos.
Existem três maneiras de instalar o AutoRecon: pipx, pip e manualmente. Antes da instalação utilizando qualquer um destes métodos, determinados requisitos precisam ser atendidos. Se você não atualizou seu cache do apt recentemente, execute o seguinte comando para instalar os pacotes mais recentes disponíveis:
sudo apt update
AutoRecon requer o uso de Python 3.8+ e pip, que pode ser instalado no Kali Linux usando os seguintes comandos:
sudo apt install python3
sudo apt install python3-pip
Vários comandos usados no AutoRecon fazem referência ao projeto SecLists, no diretório /usr/share/seclists/. Você pode baixar manualmente o projeto SecLists para este diretório (https://github.com/danielmiessler/SecLists) ou, se estiver usando Kali Linux ( altamente recomendado ), você pode executar os seguintes comandos:
sudo apt install seclists
O AutoRecon ainda será executado se você não instalar o SecLists, embora vários comandos possam falhar e alguns comandos manuais também possam não ser executados.
Além disso, os seguintes comandos podem precisar ser instalados, dependendo do seu sistema operacional:
curl
dnsrecon
enum4linux
feroxbuster
gobuster
impacket-scripts
nbtscan
nikto
nmap
onesixtyone
oscanner
redis-tools
smbclient
smbmap
snmpwalk
sslscan
svwar
tnscmd10g
whatweb
wkhtmltopdf
No Kali Linux, você pode garantir que todos estejam instalados usando os seguintes comandos:
sudo apt install seclists curl dnsrecon enum4linux feroxbuster gobuster impacket-scripts nbtscan nikto nmap onesixtyone oscanner redis-tools smbclient smbmap snmp sslscan sipvicious tnscmd10g whatweb wkhtmltopdf
É recomendado que você use pipx
para instalar o AutoRecon. pipx instalará o AutoRecon em seu próprio ambiente virtual e o disponibilizará no contexto global, evitando dependências conflitantes de pacotes e a instabilidade resultante. Primeiro, instale o pipx usando os seguintes comandos:
sudo apt install python3-venv
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Você terá que reorganizar seu arquivo ~/.bashrc ou ~/.zshrc (ou abrir uma nova guia) após executar esses comandos para usar o pipx.
Instale o AutoRecon usando o seguinte comando:
pipx install git+https://github.com/Tib3rius/AutoRecon.git
Observe que se você deseja executar o AutoRecon usando sudo (necessário para varredura SYN e varredura UDP mais rápidas), você deve usar um dos seguintes exemplos:
sudo env " PATH= $PATH " autorecon [OPTIONS]
sudo $( which autorecon ) [OPTIONS]
Alternativamente, você pode usar pip
para instalar o AutoRecon usando o seguinte comando:
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
Observe que se você deseja executar o AutoRecon usando sudo (necessário para varredura SYN e varredura UDP mais rápidas), você terá que executar o comando acima como usuário root (ou usando sudo).
Da mesma forma que pipx
, se instalado usando pip
você pode executar o AutoRecon simplesmente executando autorecon
.
Se preferir não usar pip
ou pipx
, você ainda pode instalar e executar autorecon.py
manualmente como um script. No diretório AutoRecon, instale as dependências:
python3 -m pip install -r requirements.txt
Você poderá então executar o script autorecon.py
:
python3 autorecon.py [OPTIONS] 127.0.0.1
Atualizar o AutoRecon quando ele tiver sido instalado com pipx é o mais fácil e é por isso que o método é recomendado. Basta executar o seguinte comando:
pipx upgrade autorecon
Se você instalou o AutoRecon usando pip, primeiro você terá que desinstalar o AutoRecon e depois reinstalar usando o mesmo comando de instalação:
python3 -m pip uninstall autorecon
python3 -m pip install git+https://github.com/Tib3rius/AutoRecon.git
Se você instalou o AutoRecon manualmente, basta mudar para o diretório AutoRecon e executar o seguinte comando:
git pull
Supondo que você não modificou nenhum conteúdo do diretório AutoRecon, isso deve extrair o código mais recente deste repositório GitHub, após o qual você pode executar o AutoRecon usando o script autorecon.py como de costume.
Um processo de atualização do plugin está em andamento. Até então, após a atualização, remova o diretório ~/.local/share/AutoRecon e execute o AutoRecon com qualquer argumento para preencher novamente com os arquivos mais recentes.
AutoRecon usa funcionalidade específica do Python 3 e não oferece suporte ao Python 2.
usage: autorecon [-t TARGET_FILE] [-p PORTS] [-m MAX_SCANS] [-mp MAX_PORT_SCANS] [-c CONFIG_FILE] [-g GLOBAL_FILE] [--tags TAGS]
[--exclude-tags TAGS] [--port-scans PLUGINS] [--service-scans PLUGINS] [--reports PLUGINS] [--plugins-dir PLUGINS_DIR]
[--add-plugins-dir PLUGINS_DIR] [-l [TYPE]] [-o OUTPUT] [--single-target] [--only-scans-dir] [--no-port-dirs]
[--heartbeat HEARTBEAT] [--timeout TIMEOUT] [--target-timeout TARGET_TIMEOUT] [--nmap NMAP | --nmap-append NMAP_APPEND]
[--proxychains] [--disable-sanity-checks] [--disable-keyboard-control] [--force-services SERVICE [SERVICE ...]] [--accessible]
[-v] [--version] [--curl.path VALUE] [--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}]
[--dirbuster.wordlist VALUE [VALUE ...]] [--dirbuster.threads VALUE] [--dirbuster.ext VALUE]
[--onesixtyone.community-strings VALUE] [--global.username-wordlist VALUE] [--global.password-wordlist VALUE]
[--global.domain VALUE] [-h]
[targets ...]
Network reconnaissance tool to port scan and automatically enumerate services found on multiple targets.
positional arguments:
targets IP addresses (e.g. 10.0.0.1), CIDR notation (e.g. 10.0.0.1/24), or resolvable hostnames (e.g. foo.bar) to scan.
optional arguments:
-t TARGET_FILE, --target-file TARGET_FILE
Read targets from file.
-p PORTS, --ports PORTS
Comma separated list of ports / port ranges to scan. Specify TCP/UDP ports by prepending list with T:/U: To scan both
TCP/UDP, put port(s) at start or specify B: e.g. 53,T:21-25,80,U:123,B:123. Default: None
-m MAX_SCANS, --max-scans MAX_SCANS
The maximum number of concurrent scans to run. Default: 50
-mp MAX_PORT_SCANS, --max-port-scans MAX_PORT_SCANS
The maximum number of concurrent port scans to run. Default: 10 (approx 20% of max-scans unless specified)
-c CONFIG_FILE, --config CONFIG_FILE
Location of AutoRecon's config file. Default: ~/.config/AutoRecon/config.toml
-g GLOBAL_FILE, --global-file GLOBAL_FILE
Location of AutoRecon's global file. Default: ~/.config/AutoRecon/global.toml
--tags TAGS Tags to determine which plugins should be included. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be included, it must have all the tags specified in
at least one group. Default: default
--exclude-tags TAGS Tags to determine which plugins should be excluded. Separate tags by a plus symbol (+) to group tags together. Separate
groups with a comma (,) to create multiple groups. For a plugin to be excluded, it must have all the tags specified in
at least one group. Default: None
--port-scans PLUGINS Override --tags / --exclude-tags for the listed PortScan plugins (comma separated). Default: None
--service-scans PLUGINS
Override --tags / --exclude-tags for the listed ServiceScan plugins (comma separated). Default: None
--reports PLUGINS Override --tags / --exclude-tags for the listed Report plugins (comma separated). Default: None
--plugins-dir PLUGINS_DIR
The location of the plugins directory. Default: ~/.local/share/AutoRecon/plugins
--add-plugins-dir PLUGINS_DIR
The location of an additional plugins directory to add to the main one. Default: None
-l [TYPE], --list [TYPE]
List all plugins or plugins of a specific type. e.g. --list, --list port, --list service
-o OUTPUT, --output OUTPUT
The output directory for results. Default: results
--single-target Only scan a single target. A directory named after the target will not be created. Instead, the directory structure will
be created within the output directory. Default: False
--only-scans-dir Only create the "scans" directory for results. Other directories (e.g. exploit, loot, report) will not be created.
Default: False
--no-port-dirs Don't create directories for ports (e.g. scans/tcp80, scans/udp53). Instead store all results in the "scans" directory
itself. Default: False
--heartbeat HEARTBEAT
Specifies the heartbeat interval (in seconds) for scan status messages. Default: 60
--timeout TIMEOUT Specifies the maximum amount of time in minutes that AutoRecon should run for. Default: None
--target-timeout TARGET_TIMEOUT
Specifies the maximum amount of time in minutes that a target should be scanned for before abandoning it and moving on.
Default: None
--nmap NMAP Override the {nmap_extra} variable in scans. Default: -vv --reason -Pn -T4
--nmap-append NMAP_APPEND
Append to the default {nmap_extra} variable in scans. Default:
--proxychains Use if you are running AutoRecon via proxychains. Default: False
--disable-sanity-checks
Disable sanity checks that would otherwise prevent the scans from running. Default: False
--disable-keyboard-control
Disables keyboard control ([s]tatus, Up, Down) if you are in SSH or Docker.
--force-services SERVICE [SERVICE ...]
A space separated list of services in the following style: tcp/80/http tcp/443/https/secure
--accessible Attempts to make AutoRecon output more accessible to screenreaders. Default: False
-v, --verbose Enable verbose output. Repeat for more verbosity.
--version Prints the AutoRecon version and exits.
-h, --help Show this help message and exit.
plugin arguments:
These are optional arguments for certain plugins.
--curl.path VALUE The path on the web server to curl. Default: /
--dirbuster.tool {feroxbuster,gobuster,dirsearch,ffuf,dirb}
The tool to use for directory busting. Default: feroxbuster
--dirbuster.wordlist VALUE [VALUE ...]
The wordlist(s) to use when directory busting. Separate multiple wordlists with spaces. Default:
['~/.local/share/AutoRecon/wordlists/dirbuster.txt']
--dirbuster.threads VALUE
The number of threads to use when directory busting. Default: 10
--dirbuster.ext VALUE
The extensions you wish to fuzz (no dot, comma separated). Default: txt,html,php,asp,aspx,jsp
--onesixtyone.community-strings VALUE
The file containing a list of community strings to try. Default: /usr/share/seclists/Discovery/SNMP/common-snmp-
community-strings-onesixtyone.txt
global plugin arguments:
These are optional arguments that can be used by all plugins.
--global.username-wordlist VALUE
A wordlist of usernames, useful for bruteforcing. Default: /usr/share/seclists/Usernames/top-usernames-shortlist.txt
--global.password-wordlist VALUE
A wordlist of passwords, useful for bruteforcing. Default: /usr/share/seclists/Passwords/darkweb2017-top100.txt
--global.domain VALUE
The domain to use (if known). Used for DNS and/or Active Directory. Default: None
AutoRecon oferece suporte a quatro níveis de verbosidade:
Nota: Você pode alterar o detalhamento do AutoRecon no meio da varredura pressionando as teclas de seta para cima e para baixo.
Por padrão, os resultados serão armazenados no diretório ./results. Um novo subdiretório é criado para cada destino. A estrutura deste subdiretório é:
.
├── exploit/
├── loot/
├── report/
│ ├── local.txt
│ ├── notes.txt
│ ├── proof.txt
│ └── screenshots/
└── scans/
├── _commands.log
├── _manual_commands.txt
├── tcp80/
├── udp53/
└── xml/
O diretório de exploração destina-se a conter qualquer código de exploração que você baixe/escreva para o alvo.
O diretório de saque destina-se a conter qualquer saque (por exemplo, hashes, arquivos interessantes) que você encontrar no alvo.
O diretório do relatório contém alguns arquivos e diretórios gerados automaticamente que são úteis para relatórios:
O diretório de varreduras é para onde irão todos os resultados das varreduras realizadas pelo AutoRecon. Isso inclui varreduras de portas/detecção de serviços, bem como quaisquer varreduras de enumeração de serviços. Ele também contém dois outros arquivos:
Por padrão, os diretórios são criados para cada porta aberta (por exemplo, tcp80, udp53) e os resultados da varredura dos serviços encontrados nessas portas são armazenados em seus respectivos diretórios. Você pode desativar esse comportamento usando a opção de linha de comando --no-port-dirs e os resultados da verificação serão armazenados no próprio diretório de verificações.
Se uma verificação resultar em erro, um arquivo chamado _errors.log também aparecerá no diretório de verificações com alguns detalhes para alertar o usuário.
Se a saída corresponder a um padrão definido, um arquivo chamado _patterns.log também aparecerá no diretório scans com detalhes sobre a saída correspondente.
O diretório scans/xml armazena qualquer saída XML (por exemplo, de varreduras Nmap) separadamente das saídas principais da varredura, para que o próprio diretório scans não fique muito confuso.
O AutoRecon foi inestimável durante meu exame OSCP, pois me salvou do tédio de executar sozinho meus comandos ativos de coleta de informações. Consegui começar com um alvo com todas as informações de que precisava claramente colocadas à minha frente. Eu recomendaria fortemente este utilitário para qualquer pessoa nos laboratórios PWK, no exame OSCP ou em outros ambientes, como VulnHub ou HTB. É uma ótima ferramenta tanto para pessoas que estão começando sua jornada no OffSec quanto para veteranos experientes. Apenas certifique-se de que em algum lugar entre esses dois pontos você reserve um tempo para aprender o que está acontecendo "nos bastidores" e como/por que ele verifica o que faz.
- b0ats (hosts de exame 5/5 com root)
Uau, que grande achado! Antes de usar o AutoRecon, o ReconScan era meu script de enumeração para destinos porque executava automaticamente os comandos de enumeração depois de encontrar portas abertas. A única coisa que faltava era a criação automática de diretórios-chave que um pentester poderia precisar durante um combate (exploração, saque, relatório, varredura). O Reconnoitre fez isso, mas não executou esses comandos automaticamente para você. Achei que o ReconScan era o joelho da abelha, até que experimentei o AutoRecon. É incrível! Ele combina os melhores recursos do Reconnoitre (criação automática de diretório) e ReconScan (execução automática dos comandos de enumeração). Tudo o que preciso fazer é executá-lo em um alvo ou conjunto de alvos e começar a revisar as informações que ele já coletou enquanto continua o resto da varredura. A prova está no pudim :) Passou no exame OSCP! Parabéns a Tib3rius!
- trabalho0ut
Um amigo me contou sobre o AutoRecon, então experimentei nos laboratórios PWK. O AutoRecon lança as ferramentas comuns que todos nós sempre usamos, seja nmap ou nikto, e também cria um bom sistema de subpastas baseado nos alvos que você está atacando. A característica mais forte do AutoRecon é a velocidade; no exame OSCP, deixei a ferramenta rodando em segundo plano enquanto começava com outro alvo e, em questão de minutos, toda a saída do AutoRecon estava esperando por mim. O AutoRecon cria um arquivo cheio de comandos que você deve tentar manualmente, alguns dos quais podem exigir ajustes (por exemplo, comandos de força bruta Hydra). É bom ter essa lista de verificação extra.
- tr3mb0 (hosts de exame 4/5 com root)
Ser apresentado ao AutoRecon foi uma virada de jogo completa para mim enquanto fazia o OSCP e estabelecia minha metodologia de teste de penetração. AutoRecon é uma ferramenta de reconhecimento multithread que combina e automatiza ferramentas de enumeração populares para fazer a maior parte do trabalho pesado para você. Você não pode ficar muito melhor do que isso! Depois de executar o AutoRecon em meus hosts de exame OSCP, recebi um baú cheio de informações que me ajudaram a começar em cada host e a passar na primeira tentativa. A melhor parte da ferramenta é que ela inicia automaticamente varreduras de enumeração adicionais com base nas varreduras iniciais de portas (por exemplo, execute enum4linux se o SMB for detectado). A única parte ruim é que não usei essa ferramenta antes! Obrigado Tib3rius.
- rufy (hosts de exame 4/5 com root)
O AutoRecon permite que um pesquisador de segurança verifique hosts iterativamente e identifique possíveis vetores de ataque. Seu verdadeiro poder vem na forma de realizar varreduras em segundo plano enquanto o invasor está trabalhando em outro host. Consegui iniciar minhas varreduras e terminar um host específico em que estava trabalhando - e depois retornar para encontrar todas as varreduras relevantes concluídas. Pude então começar imediatamente a tentar obter acesso inicial em vez de executar manualmente o processo de verificação ativa. Continuarei a usar o AutoRecon em futuros testes de penetração e CTFs e recomendo fortemente que você faça o mesmo.
- waar (hosts de exame 4.99/5 com root)
"Se você precisa realizar uma tarefa mais de duas vezes por dia, precisa automatizá-la." Esse é um conselho que um antigo chefe me deu. O AutoRecon leva essa lição a sério. Esteja você fazendo o exame ou nos laboratórios PWK, você pode ativar o AutoRecon e deixá-lo fazer sua mágica. Eu o coloquei em execução durante meu último exame enquanto trabalhava no buffer overflow. Quando terminei, todos os dados enum de que precisava estavam lá para eu analisar. 10/10 recomendaria para qualquer pessoa que esteja entrando no CTF e para qualquer pessoa que já esteja nisso há muito tempo.
- whoisflynn
Eu amo tanto essa ferramenta que a escrevi.
- Tib3rius (hosts de exame 5/5 com root)
Eu recomendo fortemente que qualquer pessoa que vá para seu OSCP, faça CTFs ou HTB verifique esta ferramenta. Estou usando o AutoRecon no HTB há um mês antes de usá-lo nos laboratórios PWK e isso me ajudou a passar no exame OSCP. Se você estiver tendo dificuldades para se adaptar a uma metodologia de enumeração, recomendo que você siga o fluxo e as técnicas que este script usa. Isso elimina muito do trabalho tedioso ao qual você provavelmente está acostumado e, ao mesmo tempo, fornece subdiretórios bem organizados para examinar rapidamente e não perder a cabeça. Os comandos manuais que ele fornece são ótimos para situações específicas que precisam deles quando você fica sem opções. É uma ferramenta muito valiosa, não posso recomendar o suficiente.
- d0hnuts (hosts de exame 5/5 com root)
Autorecon não é apenas qualquer outra ferramenta, é uma estrutura de correlação de reconhecimento para compromissos. Isso me ajudou a disparar um monte de varreduras enquanto trabalhava em outros alvos. Isso pode ajudar muito na gestão do tempo. Isso me ajudou a possuir 4/5 caixas no exame pwk! Resultado: Aprovado!
- Wh0ami (hosts de exame 4/5 com root)
A primeira vez que ouvi falar do AutoRecon perguntei se realmente precisava disso, minha enumeração estava OK... Tentei com a mente aberta e imediatamente fiquei um pouco surpreso com a quantidade de informação que ele geraria. Depois que me acostumei e comecei a ler o resultado, percebi o quanto estava faltando. Usei-o para o exame OSCP e encontrei coisas que de outra forma nunca teria encontrado. Acredito firmemente que sem o AutoRecon eu teria falhado. É uma ótima ferramenta e estou muito impressionado com o que o Tib3rius foi capaz de criar. Definitivamente algo que já estou recomendando para outras pessoas, inclusive para você!
- otornew
O AutoRecon me ajudou a economizar um tempo valioso em meu exame OSCP, permitindo-me gastar menos tempo verificando sistemas e mais tempo invadindo-os. Este software vale seu peso em ouro!
-TorHackr
A ferramenta mágica que tornou a enumeração muito fácil, basta ativá-la e observar a beleza do multi-threading cuspindo uma tonelada de informações que exigiriam muitos comandos para serem executadas. Certamente acredito que apenas usando o AutoRecon no exame OSCP, metade do esforço já estaria feito. Fortemente recomendado!
- Arman (resolveu os anfitriões do exame 4.5/5)