Todo o conteúdo fornecido neste port destina-se exclusivamente a fins educacionais, de estudo e desenvolvimento profissional e pessoal. As informações aqui apresentadas são para serem utilizadas de forma ética e profissional, em conformidade com todas as leis e regulamentos aplicáveis.
É fundamental ressaltar que qualquer conhecimento ou habilidade adquiridos por meio deste conteúdo devem ser aplicados de maneira responsável e ética. O uso de técnicas, ferramentas ou estratégias discutidas aqui para atividades ilegais, prejudiciais, invasivas ou antiéticas é estritamente proibido e desencorajado.
Recomenda-se que você sempre busque aconselhamento legal e ético antes de realizar qualquer atividade relacionada à segurança cibernética. Como criador deste conteúdo não me responsabilizo por qualquer uso inadequado ou ilegal das informações apresentadas.
Lembre-se de que a ética e a integridade são fundamentais para o avanço e a reputação positiva da comunidade de segurança cibernética. Ao adquirir conhecimento e habilidades, comprometa-se a usá-los de forma responsável, profissional e ética, contribuindo para um ambiente online mais seguro e confiável.
Nuclei é uma ferramenta para detectar vulnerabilidades potenciais e informações sensíveis em sua infraestrutura usando modelos pré-definidos. Os modelos são escritos em uma linguagem simples baseada em YAML e definem os padrões e regras que o Nuclei usa para escanear um alvo. O Nuclei pode ser usado para escanear uma ampla variedade de alvos, incluindo aplicativos web, serviços de rede e arquivos armazenados em disco.
A ferramenta é construída para ser rápida, eficiente e pode ser executada em paralelo em vários núcleos. Pode ser usado tanto na fase ativa quanto na fase passiva de uma engajamento de teste de penetração. A ferramenta também pode ser integrada a outras ferramentas, como o Burp Suite e o ZAP.
O Nuclei é um projeto de código aberto e os modelos também são de código aberto e podem ser contribuídos pela comunidade. A ferramenta é ativamente desenvolvida e mantida pela comunidade e novos recursos e modelos são adicionados regularmente.
Link github: https://github.com/projectdiscovery/nuclei
Requisitos
Nuclei requer go1.19 para ser executado. Para download do go, veja a página oficial e siga os passos do seu sistema operacional.
Link oficial go: https://go.dev/dl/
[alert type=green]Todos os comandos abaixo foram executados em um sistema Operacional Kali Linux .[/alert]
01 – Instalação
Execute o seguinte comando para instalar a versão mais recente do Nuclei.
go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest
Após o download, mova (ou copie) a pasta nuclei para /usr/bin
mv/root/go/bin/nuclei /usr/bin
02 – Arquivo de configuração do Nuclei
Por padrão o arquivo de configuração está disponível em
$HOME/.config/nuclei/config.yaml
Você pode editar (descomentando as linhas) ou criar seu próprio arquivo de configuração, exemplo
$HOME/.config/nuclei/jjardel-config.yaml
Arquivo personalizado de configuração.
/* Your code... */
Ao executar o nuclei, caso queira executar com o arquivo de sua preferencia, passe “- parametro/flag para o comando.
nuclei -config jjardel-config.yaml -l domains.txt
03- Comando Help
Comando informativo onde você encontrará todos os parametros aceitos pela ferramenta.
nuclei -h
04- Atualizar o Nuclei
nuclei -update
04. Templates
Um Nuclei Template é um arquivo que contém um conjunto de regras e padrões usados para identificar tipos específicos de informação, como dados pessoais ou informações sensíveis, em um determinado texto ou documento. Os templates podem ser usados para escanear uma ampla variedade de alvos, incluindo aplicativos da web, serviços de rede e arquivos armazenados em disco.
Baixando alguns modelos
Como mencionamos anteriormente, o Nuclei é executado em modelos. Por padrão, nenhum modelo está disponível e precisamos baixá-los. Todos os modelos da comunidade podem ser encontrados no Git do Project Discoverys >> https://github.com/projectdiscovery/nuclei-templates.
Esses modelos são feitos pela comunidade e são um excelente ponto de partida.
Pasta com os templates
Por padrão a pasta com os templates fica em $HOME/nuclei-templates
Se você gosta de executar vários modelos na lista de destino, pode usar o fornecimento de um diretório em vez de um arquivo. O Nuclei processará todos os arquivos .yaml no diretório. Se você deseja selecionar modelos de vários diretórios, pode adicionar sinalizadores (-t) para cada modelo ou diretório.
nuclei -l <target-list> -t templates/http/ -t templated/ftp/
Mais exemplos de uso de templates
nuclei -t exposures/configs/git-config.yaml -l domains.txt
nuclei -t cves/2021/ -l domains.txt
nuclei -t cves/2020/ -t exposed-tokens -t misconfiguration -l domains.txt
Atualizar Templates
nuclei -ut
05. Executando o Nuclei
O básico é fornecer uma lista de destinos (-l) e um modelo (-t) que precisa ser verificado nesses destinos.
nuclei -l <target-list> -t <template-path>
Em um único alvo
nuclei -u https://example.com
Interessante saber é que os Nuclei suportam entrada padrão (STDIN) para sua lista de destino. Isso facilita o encadeamento de várias ferramentas.
Utilizando comando “Cat”
Caso ja tenha uma lista de dominios e subdominios enumerada, você pode executar comando
cat <domain-list> | nuclei -t <template-path>
Apontando o arquivo com os dominios.
nuclei -l </path/domains.txt>
nuclei -l /home/domains/tesla.com.txt
Definindo a saída com os resultados.
nuclei -l /home/domains/tesla.com.txt -o </path/output.txt
nuclei -l /home/domains/tesla.com.txt -o /home/kali/resultados.txt
Subfinder + Nuclei template
Caso queira utilizar um one liner command, você pode mesclar o Subfinder (ou outra ferramenta de enumeração de dominios) – veja o post sobre enumeração de dominios para saber mais – junto com o Nuclei em um unico comando.
subfinder -d <dominio.com> | nuclei
Será executado o comando para enumerar os subdominios com a ferramenta “Subfinder” e em seguida o Nuclei será executado de modo default, com todos os templates disponiveis na pasta ~/nuclei-templates
Criação de modelos e fluxos de trabalho
Agora a parte mais interessante. Modelos personalizados e criar o seu próprio é o poder dos núcleos. Quando você deseja encontrar bugs válidos com núcleos, precisa criar seus próprios modelos e fluxos de trabalho.
Você encontra uma referência completa em: https://nuclei.projectdiscovery.io/templating-guide
Finalizando
Nesse post foi coberto os fundamentos do Nuclei para você começar. Sendo o Nuclei um scanner poderoso que você pode personalizar de acordo com suas necessidades para encontrar vulnerabilidade e bugs. Estude-o e conhecerá seu poder.
[…] […]
[…] Nuclei é um canivete suiço poderossimo. Trabalhando com templates, você consegui criar os seus próprios ou utilizar de cetenas de já existentes. Te ajudará a detectar vulnerabilidades potenciais e informações sensíveis em sua infraestrutura usando modelos pré-definidos. Os modelos são escritos em uma linguagem simples baseada em YAML e definem os padrões e regras que o Nuclei usa para escanear um alvo. O Nuclei pode ser usado para escanear uma ampla variedade de alvos, incluindo aplicativos web, serviços de rede e arquivos armazenados em disco. Nesse post, falo um pouco sobre: https://jardel.tec.br/2023/01/18/nuclei/ […]