Follow the steps below to setup and try out Nuclei
Get the latest version
Verify the version
go version
to verify that you are running the latest version (v 1.21 at the time of writing)Verify your GOPATH
go env | grep GOPATH
in your terminal and copy the output path.
You may need to add a /bin
to the end of this path for it to work correctly.Open your shell config file
nano ~/.zshrc
for zsh or nano ~/.bashrc
for bash.At the bottom of the file, add export PATH=”$PATH:insert/go/path/here/bin”
, replacing insert/go/path/here
with the GOPATH from Step 1.Reset your terminal
source ~/.zshrc
or source~/.bashrc
to reset your terminal and reload it with the new config added.
You can also just close your terminal and open it again for this to take effect.Verify your updated PATH
$PATH
to check that the go binary directory is added to the end.Install Nuclei with Go
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
Confirm installation
nuclei -h
to see the list of options and flags available.http://honey.scanme.sh/
) to demonstrate the expected scan behavior and walk you through some results.
nuclei -u http://honey.scanme.sh/
.
The -u option specifies the target you want to scan with all available templates.
[mismatched-ssl-certificate] [ssl] [low] scanme.sh:443 [CN: scanme]
The fields are as follows:
[mismatched-ssl-certificate]
is the template-id for the finding[ssl]
is the protocol associated with the finding[low]
is the severity associated with the findingScanme.sh:443
is the output (in this case the host that the finding applies to)[CN: scanme]
- This output also includes an extracted value, which is not typically in all templates but does show an example of some of the other types of output you might see.[template-id]
[protocol]
[severity]
output (impacted host, etc)
Other examples: