generated from mintlify/starter
-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
448 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
title: "Installing Naabu" | ||
description: "Learn about how to install Naabu and get started" | ||
sidebarTitle: "Install" | ||
--- | ||
|
||
|
||
<Tabs> | ||
<Tab title="Go"> | ||
<Note> Enter the command below in a terminal to install ProjectDiscovery's Naabu using Go. </Note> | ||
|
||
```bash | ||
go install -v github.com/projectdiscovery/naabu/cmd/httpx@latest | ||
``` | ||
</Tab> | ||
<Tab title="Binary"> | ||
```bash | ||
https://github.com/projectdiscovery/naabu/releases/ | ||
``` | ||
|
||
<Tip> | ||
- Download the latest binary for your OS. | ||
- Unzip the ready to run binary. | ||
</Tip> | ||
|
||
</Tab> | ||
</Tabs> | ||
|
||
## Installation Notes | ||
- Naabu requires the latest version of [**Go**](https://go.dev/doc/install) | ||
- Add the Go bin path to the system paths. On OSX or Linux, in your terminal use | ||
|
||
``` | ||
echo export $PATH=$PATH:$HOME/go/bin >> $home/.bashrc | ||
source $home/.bashrc | ||
``` | ||
- To add the Go bin path in Windows, [click this link for instructions.](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/) | ||
- The binary will be located in `$home/go/bin/naabu` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
--- | ||
title: "Naabu Overview" | ||
description: "A Go-based port scanning tool to quickly enumerate valid ports" | ||
sidebarTitle: "Overview" | ||
--- | ||
|
||
# What is **Naabu?** | ||
|
||
Naabu is a port scanning tool written in Go that enumerates valid ports for hosts in a fast and reliable manner. It is a really simple tool that does fast SYN/CONNECT/UDP scans on the host or list of hosts and provides all ports that return a reply. | ||
|
||
## Features and capabilities | ||
|
||
- Fast And Simple **SYN/CONNECT/UDP** probe based scanning | ||
- Optimized for ease of use and **lightweight** on resources | ||
- **DNS** Port scan | ||
- **Automatic IP Deduplication** for DNS port scan | ||
- **IPv4/IPv6** Port scan (**experimental**) | ||
- **Passive** Port enumeration using Shodan [Internetdb](https://internetdb.shodan.io) | ||
- **Host Discovery** scan (**experimental**) | ||
- **NMAP** integration for service discovery | ||
- Multiple input support - **STDIN/HOST/IP/CIDR/ASN** | ||
- Multiple output format support - **JSON/TXT/STDOUT** | ||
|
||
## Additional Naabu Resources | ||
|
||
As an open source tool with a robust community there are a lot of community-created resources available. | ||
We are happy to share those to offer even more information about our tools. | ||
<i>ProjectDiscovery’s httpx should not be confused with the httpx python library.</i> | ||
|
||
<Note>Sharing these resources **is not formal approval or a recommendation** from ProjectDiscovery. | ||
We cannot provide an endorsement of accuracy or validation that content is up-to-date. Anything shared here should be approached with caution.</Note> | ||
|
||
- https://mrshan.medium.com/naabu-port-scanner-why-you-should-use-it-947d8ca025df | ||
- https://highon.coffee/blog/naabu-cheat-sheet/ | ||
|
||
## Support | ||
Questions about using Naabu? Issues working through installation? Cool story or use case you want to share? Get in touch! | ||
|
||
Check out the [Help](/help) section of the docs or reach out to us on [Discord](https://discord.com/invite/projectdiscovery). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,249 @@ | ||
--- | ||
title: "Running Naabu" | ||
description: "Learn about running Naabu with examples and sample output" | ||
sidebarTitle: "Running" | ||
--- | ||
|
||
For all of the flags and options available for `naabu` be sure to check out the [Usage](/tools/naabu/usage) page. On this page we'll share examples running httpx with specific flags and goals | ||
and the output you can expect from each. | ||
|
||
<Note> If you have questions, reach out to us through [Help](/help). </Note> | ||
|
||
## Basic Examples | ||
|
||
# Running Naabu | ||
|
||
To run the tool on a target, just use the following command. | ||
```sh | ||
naabu -host hackerone.com | ||
``` | ||
|
||
This will run the tool against hackerone.com. There are a number of configuration options that you can pass along with this command. The verbose switch `-v` can be used to display verbose information. | ||
|
||
```console | ||
naabu -host hackerone.com | ||
|
||
__ | ||
___ ___ ___ _/ / __ __ | ||
/ _ \/ _ \/ _ \/ _ \/ // / | ||
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.3 | ||
|
||
projectdiscovery.io | ||
|
||
[WRN] Use with caution. You are responsible for your actions | ||
[WRN] Developers assume no liability and are not responsible for any misuse or damage. | ||
[INF] Running SYN scan with root privileges | ||
[INF] Found 4 ports on host hackerone.com (104.16.100.52) | ||
|
||
hackerone.com:80 | ||
hackerone.com:443 | ||
hackerone.com:8443 | ||
hackerone.com:8080 | ||
``` | ||
|
||
The ports to scan for on the host can be specified via `-p` parameter (udp ports must be expressed as `u:port`). It takes nmap format ports and runs enumeration on them. | ||
|
||
```sh | ||
naabu -p 80,443,21-23,u:53 -host hackerone.com | ||
``` | ||
|
||
By default, the Naabu checks for nmap's `Top 100` ports. It supports the following in-built port lists - | ||
|
||
| Flag | Description | | ||
|-------------------|--------------------------------------| | ||
| `-top-ports 100` | Scan for nmap top **100** port | | ||
| `-top-ports 1000` | Scan for nmap top **1000** port | | ||
| `-p - ` | Scan for full ports from **1-65535** | | ||
|
||
You can also specify specific ports which you would like to exclude from the scan. | ||
|
||
```sh | ||
naabu -p - -exclude-ports 80,443 | ||
``` | ||
|
||
To run the naabu on a list of hosts, `-list` option can be used. | ||
|
||
```sh | ||
naabu -list hosts.txt | ||
``` | ||
To run the naabu on a ASN, AS input can be used. It takes the IP address available for given ASN and runs the enumeration on them. | ||
|
||
```console | ||
echo AS14421 | naabu -p 80,443 | ||
|
||
216.101.17.249:80 | ||
216.101.17.249:443 | ||
216.101.17.248:443 | ||
216.101.17.252:443 | ||
216.101.17.251:80 | ||
216.101.17.251:443 | ||
216.101.17.250:443 | ||
216.101.17.250:80 | ||
``` | ||
You can also get output in json format using `-json` switch. This switch saves the output in the JSON lines format. | ||
|
||
```console | ||
naabu -host 104.16.99.52 -json | ||
|
||
{"ip":"104.16.99.52","port":443} | ||
{"ip":"104.16.99.52","port":80} | ||
``` | ||
|
||
The ports discovered can be piped to other tools too. For example, you can pipe the ports discovered by naabu to [httpx](https://github.com/projectdiscovery/httpx) which will then find running http servers on the host. | ||
|
||
```console | ||
echo hackerone.com | naabu -silent | httpx -silent | ||
|
||
http://hackerone.com:8443 | ||
http://hackerone.com:443 | ||
http://hackerone.com:8080 | ||
http://hackerone.com:80 | ||
``` | ||
|
||
The speed can be controlled by changing the value of `rate` flag that represent the number of packets per second. Increasing it while processing hosts may lead to increased false-positive rates. So it is recommended to keep it to a reasonable amount. | ||
|
||
# IPv4 and IPv6 | ||
|
||
Naabu supports both IPv4 and IPv6. Both ranges can be piped together as input. If IPv6 is used, connectivity must be correctly configured, and the network interface must have an IPv6 address assigned (`inet6`) and a default gateway. | ||
|
||
```console | ||
echo hackerone.com | dnsx -resp-only -a -aaaa -silent | naabu -p 80 -silent | ||
|
||
104.16.99.52:80 | ||
104.16.100.52:80 | ||
2606:4700::6810:6434:80 | ||
2606:4700::6810:6334:80 | ||
``` | ||
|
||
The option `-ip-version 6` makes the tool use IPv6 addresses while resolving domain names. | ||
|
||
```console | ||
echo hackerone.com | ./naabu -p 80 -ip-version 6 | ||
|
||
__ | ||
___ ___ ___ _/ / __ __ | ||
/ _ \/ _ \/ _ \/ _ \/ // / | ||
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.8 | ||
|
||
projectdiscovery.io | ||
|
||
Use with caution. You are responsible for your actions | ||
Developers assume no liability and are not responsible for any misuse or damage. | ||
[INF] Running CONNECT scan with non root privileges | ||
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6334) | ||
hackerone.com:80 | ||
``` | ||
|
||
To scan all the IPs of both version, `ip-version 4,6` can be used along with `-scan-all-ips` flag. | ||
|
||
```console | ||
echo hackerone.com | ./naabu -iv 4,6 -sa -p 80 -silent | ||
|
||
[INF] Found 1 ports on host hackerone.com (104.16.100.52) | ||
hackerone.com:80 | ||
[INF] Found 1 ports on host hackerone.com (104.16.99.52) | ||
hackerone.com:80 | ||
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6334) | ||
hackerone.com:80 | ||
[INF] Found 1 ports on host hackerone.com (2606:4700::6810:6434) | ||
hackerone.com:80 | ||
``` | ||
|
||
# Host Discovery | ||
|
||
Naabu optionally supports multiple options to perform host discovery, as outlined below. Host discovery is completed automatically before beginning a connect/syn scan if the process has enough privileges. `-sn` flag instructs the toll to perform host discovery only. `-Pn` flag skips the host discovery phase. Host discovery is completed using multiple internal methods; one can specify the desired approach to perform host discovery by setting available options. | ||
|
||
Available options to perform host discovery: | ||
|
||
- **ARP** ping (`-arp`) | ||
- TCP **SYN** ping (`-ps 80`) | ||
- TCP **ACK** ping (`-pa 443`) | ||
- ICMP **echo** ping (`-pe`) | ||
- ICMP **timestamp** ping (`-pp`) | ||
- ICMP **address mask** ping (`-pm`) | ||
- IPv6 **neighbor discovery** (`-nd`) | ||
|
||
# Configuration file | ||
|
||
Naabu supports config file as default located at `$HOME/.config/naabu/config.yaml`, It allows you to define any flag in the config file and set default values to include for all scans. | ||
|
||
|
||
# Nmap integration | ||
|
||
We have integrated nmap support for service discovery or any additional scans supported by nmap on the found results by Naabu, make sure you have `nmap` installed to use this feature. | ||
|
||
To use,`nmap-cli` flag can be used followed by nmap command, for example:- | ||
|
||
```console | ||
echo hackerone.com | naabu -nmap-cli 'nmap -sV -oX nmap-output' | ||
__ | ||
___ ___ ___ _/ / __ __ | ||
/ _ \/ _ \/ _ \/ _ \/ // / | ||
/_//_/\_,_/\_,_/_.__/\_,_/ v2.0.0 | ||
|
||
projectdiscovery.io | ||
|
||
[WRN] Use with caution. You are responsible for your actions | ||
[WRN] Developers assume no liability and are not responsible for any misuse or damage. | ||
[INF] Running TCP/ICMP/SYN scan with root privileges | ||
[INF] Found 4 ports on host hackerone.com (104.16.99.52) | ||
|
||
hackerone.com:443 | ||
hackerone.com:80 | ||
hackerone.com:8443 | ||
hackerone.com:8080 | ||
|
||
[INF] Running nmap command: nmap -sV -p 80,8443,8080,443 104.16.99.52 | ||
|
||
Starting Nmap 7.01 ( https://nmap.org ) at 2020-09-23 05:02 UTC | ||
Nmap scan report for 104.16.99.52 | ||
Host is up (0.0021s latency). | ||
PORT STATE SERVICE VERSION | ||
80/tcp open http cloudflare | ||
443/tcp open ssl/https cloudflare | ||
8080/tcp open http-proxy cloudflare | ||
8443/tcp open ssl/https-alt cloudflare | ||
``` | ||
|
||
# CDN/WAF Exclusion | ||
|
||
Naabu also supports excluding CDN/WAF IPs being port scanned. If used, only `80` and `443` ports get scanned for those IPs. This feature can be enabled by using `exclude-cdn` flag. | ||
|
||
Currently `cloudflare`, `akamai`, `incapsula` and `sucuri` IPs are supported for exclusions. | ||
|
||
# Scan Status | ||
Naabu exposes json scan info on a local port bound to localhost at `http://localhost:63636` (the port can be changed via the `-metrics-port` flag) | ||
|
||
# Using naabu as library | ||
The following sample program scan the port `80` of `scanme.sh`. The results are returned via the `OnResult` callback: | ||
|
||
```go | ||
package main | ||
|
||
import ( | ||
"log" | ||
|
||
"github.com/projectdiscovery/goflags" | ||
"github.com/projectdiscovery/naabu/v2/pkg/result" | ||
"github.com/projectdiscovery/naabu/v2/pkg/runner" | ||
) | ||
|
||
func main() { | ||
options := runner.Options{ | ||
Host: goflags.StringSlice{"scanme.sh"}, | ||
ScanType: "s", | ||
OnResult: func(hr *result.HostResult) { | ||
log.Println(hr.Host, hr.Ports) | ||
}, | ||
Ports: "80", | ||
} | ||
|
||
naabuRunner, err := runner.NewRunner(&options) | ||
if err != nil { | ||
log.Fatal(err) | ||
} | ||
defer naabuRunner.Close() | ||
|
||
naabuRunner.RunEnumeration() | ||
} | ||
``` |
Oops, something went wrong.