Nuclei

Nuclei

Overview

Nuclei (GitHub project) is a sort of web scanner that works by parsing through the request and comparing whether the response matches some pre-determined template, resulting in a positive detection for whatever the analyst was looking for.

Key Characteristics

Key Value
Name Nuclei
Project URL https://nuclei.projectdiscovery.io/
Documentation https://github.com/projectdiscovery/nuclei
Author Project Discovery
Category #software

Description

Nuclei is like a combination of Nmap and a vulnerability scanner, where the vulnerability tests are composed in "templates" written in YAML. You can think of the template development as a kind of Yara for web requests.

Components

Nuclei is simple: it's a binary with a directory containing the rules, or detections, executed by the tool.

Setup

Binary installation

The simplest method to get started with Nuclei is to download the binary for your platform from the releases page.

Installing Nuclei Templates

Nuclei templates will auto download to your system when Nuclei runs. Alternatively, you can pull them down with git

git clone https://github.com/projectdiscovery/nuclei-templates

Running Nuclei in Docker

Nuclei in Docker is fairly straightforward. Pull the image, and throw your CLI parameters at it.

Note

When using the docker image, relative pathing is not supported, and I have only been successful when using the full path of the template within the container

Configuration

Updating

Run nuclei -update

Usage

Note

Rmember to use http:// or https:// for your targets. Nuclei will not accurately check the desintation

Getting Started

Using Workflows

Examples

These examples assume the compiled nuclei binary and the nuclei-templates in the same directory.
(click to expand)

- Identify a site's underlying technologies

nuclei --tags tech -u https://example.com

Resume

Nuclei can also resume an aborted session. When you ctrl-c a scan, it will provide the path to the resume file. Simply call that with -r
Example: nuclei -r ~/.config/nuclei/resume-cfd8sque5pcse523000g.cfg

Nuclei Templates

Example Template


How Nuclei fits in an Intel workflow

Using Nuclei for bug hunting

The following guide provides an excellent overview of putting all the pieces from above together to create a bug-hunting workflow. Project Discovery blog post The Ultimate Guide to Finding Bugs With Nuclei

Using Nuclei as an ASM platform

'ASM' stands for Attack Surface Management. The Project Discovery blog post Hacking Together an ASM Platform Using ProjectDiscovery Tools describes a GitHub project using Nuclei and some other tools to piece together an #ASM platform to monitor accessible infrastructure for potential exposure.

Checking for a potential domain takeover is another Nuclei capability using the ./dns/servfail-refused-hosts.yaml template.