Nuclei – Project Discovery

189 views
4 mins read
2
MOSTRAR: Aviso importante: Uso Ético e Profissional do Conteúdo

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.


 

Sou um profissional apaixonado pela área de Segurança da Informação. Sou certificado em ISO 27001, ISO 27005, LGPD e GDPR, o que me torna um Data Protection Officer (DPO) certificado. Também sou certificado CC e SSCP pelo (ISC)², bem como um AWS Practitioner. Além do meu trabalho, sou um orgulhoso pai de três filhos, um nerd, um cinéfilo, um leitor voraz e um eterno aprendiz.

2 Comments

  1. […] 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/ […]

Deixe um comentário

Your email address will not be published.

Previous Story

Subdomain Enum

Next Story

Bugbounty reports

Latest from Ferramentas

Git Exposed

Introdução A questão da segurança na era digital tornou-se rapidamente um tema quente. Todos nós já