
गो में लिखा गया एक तेज़ पोर्ट स्कैनर जो विश्वसनीयता और सरलता पर केंद्रित है। इसे बग बाउंटी और पेंटेस्ट में अटैक सरफेस डिस्कवरी के लिए अन्य टूल्स के साथ संयोजन में उपयोग करने के लिए डिज़ाइन किया गया है।
विशेषताएँ • स्थापना • उपयोग • Naabu चलाना • कॉन्फ़िग • NMAP एकीकरण • CDN/WAF बहिष्करण • Discord
Naabu एक पोर्ट स्कैनिंग टूल है जो Go में लिखा गया है और आपको तेज़ और विश्वसनीय तरीके से होस्ट के लिए मान्य पोर्ट खोजने की अनुमति देता है। यह एक बहुत ही सरल टूल है जो होस्ट/होस्टों की सूची पर तेज़ SYN/CONNECT/UDP स्कैन करता है और उन सभी पोर्ट को सूचीबद्ध करता है जो उत्तर देते हैं।
naabu -h
यह उपकरण के लिए सहायता प्रदर्शित करेगा। यहाँ वे सभी स्विच हैं जो यह समर्थन करता है।```yaml
Usage:
naabu [flags]
Flags:
INPUT:
-host string[] hosts to scan ports for (comma-separated)
-list, -l string list of hosts to scan ports (file)
-exclude-hosts, -eh string hosts to exclude from the scan (comma-separated)
-exclude-file, -ef string list of hosts to exclude from scan (file)
PORT:
-port, -p string ports to scan (80,443, 100-200)
-top-ports, -tp string top ports to scan (default 100) [full,100,1000]
-exclude-ports, -ep string ports to exclude from scan (comma-separated)
-ports-file, -pf string list of ports to scan (file)
-port-threshold, -pts int port threshold to skip port scan for the host
-exclude-cdn, -ec skip full port scans for CDN/WAF (only scan for port 80,443)
-display-cdn, -cdn display cdn in use
RATE-LIMIT:
-c int general internal worker threads (default 25)
-rate int packets to send per second (default 1000)
UPDATE:
-up, -update update naabu to latest version
-duc, -disable-update-check disable automatic naabu update check
OUTPUT:
-o, -output string file to write output to (optional)
-j, -json write output in JSON lines format
-csv write output in csv format
SERVICES-DISCOVERY:
-sD, -service-discovery identify services by port number
-sV, -service-version detect service versions using nmap-service-probes
-sV-fast only probe port-hinted services (faster, skips fallback)
-sV-timeout duration timeout for service version probes (default 5s)
-sV-workers int number of concurrent service version workers (default 25)
-sV-probes string custom nmap-service-probes file path (auto-detected from local nmap install if empty)
-uP, -udp-probes send protocol-specific payloads on UDP scans using nmap-service-probes
CONFIGURATION:
-config string path to the naabu configuration file (default $HOME/.config/naabu/config.yaml)
-scan-all-ips, -sa scan all the IP's associated with DNS record
-ip-version, -iv string[] ip version to scan of hostname (4,6) - (default 4,6) (default ["4","6"])
-scan-type, -s string type of port scan (SYN/CONNECT) (default "c")
-source-ip string source ip and port (x.x.x.x:yyy - might not work on OSX)
-cp, -connect-payload string payload to send in CONNECT scans (optional)
-interface-list, -il list available interfaces and public ip
-interface, -i string network Interface to use for port scan
-nmap invoke nmap scan on targets (nmap must be installed) - Deprecated
-nmap-cli string nmap command to run on found results (example: -nmap-cli 'nmap -sV')
-r string list of custom resolver dns resolution (comma separated or from file)
-proxy string socks5 proxy (ip[:port] / fqdn[:port]
-proxy-auth string socks5 proxy authentication (username:password)
-dns-order string dns resolution order (p/l/lp/pl) (default "l")
-sr, -system-resolver use system DNS as fallback resolver
-resume resume scan using resume.cfg
-stream stream mode (disables resume, nmap, verify, retries, shuffling, etc)
-passive display passive open ports using shodan internetdb api (automatically enables stream mode)
-irt, -input-read-timeout value timeout on input read (default 3m0s)
-no-stdin Disable Stdin processing
HOST-DISCOVERY:
-sn, -host-discovery Perform Only Host Discovery
-show-dead show hosts that did not respond to host discovery (requires host discovery)
-Pn, -skip-host-discovery Skip Host discovery (Deprecated: use -wn/-with-host-discovery instead)
-wn, -with-host-discovery Enable Host discovery
-ps, -probe-tcp-syn string[] TCP SYN Ping (host discovery needs to be enabled)
-pa, -probe-tcp-ack string[] TCP ACK Ping (host discovery needs to be enabled)
-pe, -probe-icmp-echo ICMP echo request Ping (host discovery needs to be enabled)
-pp, -probe-icmp-timestamp ICMP timestamp request Ping (host discovery needs to be enabled)
-pm, -probe-icmp-address-mask ICMP address mask request Ping (host discovery needs to be enabled)
-arp, -arp-ping ARP ping (host discovery needs to be enabled)
-nd, -nd-ping IPv6 Neighbor Discovery (host discovery needs to be enabled)
-rev-ptr Reverse PTR lookup for input ips
OPTIMIZATION:
-retries int number of retries for the port scan (default 3)
-timeout int millisecond to wait before timing out (default 1000)
-warm-up-time int time in seconds between scan phases (default 2)
-ping ping probes for verification of host
-verify validate the ports again with TCP verification
-ss, -smart-scan predictive port scanning using port correlation model (not compatible with stream mode)
-pt, -prediction-threshold int minimum confidence for port predictions (0-100%) (default 20)
DEBUG:
-health-check, -hc run diagnostic check up
-debug display debugging information
-verbose, -v display verbose output
-no-color, -nc disable colors in CLI output
-silent display only results in output
-version display version of naabu
-stats display stats of the running scan (deprecated)
-si, -stats-interval int number of seconds to wait between showing a statistics update (deprecated) (default 5)
-mp, -metrics-port int port to expose naabu metrics on (default 63636)
CLOUD:
-auth configure projectdiscovery cloud (pdcp) api key (default true)
-ac, -auth-config string configure projectdiscovery cloud (pdcp) api key credential file
-pd, -dashboard upload / view output in projectdiscovery cloud (pdcp) UI dashboard
-tid, -team-id string upload asset results to given team id (optional)
-aid, -asset-id string upload new assets to existing asset id (optional)
-aname, -asset-name string assets group name to set (optional)
-pdu, -dashboard-upload string upload naabu output file (jsonl) in projectdiscovery cloud (pdcp) UI dashboard
चलाने के लिए तैयार बाइनरी / डॉकर डाउनलोड करें या GO के साथ इंस्टॉल करें
नोट: naabu स्थापित करने से पहले, सुनिश्चित करें कि पैकेट कैप्चरिंग के लिए
libpcapलाइब्रेरी स्थापित हो।
Linux पर libpcap स्थापित करने के लिए: sudo apt install -y libpcap-dev, Mac पर: brew install libpcap, Windows पर: Npcap स्थापित करें
go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
# Naabu चलाना
किसी लक्ष्य पर उपकरण चलाने के लिए, बस निम्नलिखित कमांड का उपयोग करें।```sh
naabu -host hackerone.com
यह hackerone.com के विरुद्ध उपकरण चलाएगा। इस कमांड के साथ आप कई कॉन्फ़िगरेशन विकल्प पास कर सकते हैं। वर्बोज़ स्विच -v का उपयोग वर्बोज़ जानकारी प्रदर्शित करने के लिए किया जा सकता है।```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
होस्ट पर स्कैन करने के लिए पोर्ट को `-p` पैरामीटर के माध्यम से निर्दिष्ट किया जा सकता है (यूडीपी पोर्ट को `u:port` के रूप में व्यक्त किया जाना चाहिए)। यह nmap फॉर्मेट के पोर्ट लेता है और उन पर एनुमरेशन चलाता है।```sh
naabu -p 80,443,21-23,u:53 -host hackerone.com
UDP स्कैन के लिए, आप -cp या --connect-payload फ़्लैग का उपयोग करके भेजने के लिए एक कस्टम पेलोड निर्दिष्ट कर सकते हैं। यह विशेष रूप से उन UDP सेवाओं के लिए उपयोगी है जिन्हें प्रतिक्रिया देने के लिए विशिष्ट डेटा की आवश्यकता होती है:```sh
naabu -p u:53 -host example.com -cp "DNS query payload"
डिफ़ॉल्ट रूप से, Naabu nmap के `Top 100` पोर्ट की जाँच करता है। यह निम्नलिखित अंतर्निर्मित पोर्ट सूचियों का समर्थन करता है -
| फ़्लैग | विवरण |
|-------------------|--------------------------------------|
| `-top-ports 100` | nmap के शीर्ष **100** पोर्ट की स्कैन करें |
| `-top-ports 1000` | nmap के शीर्ष **1000** पोर्ट की स्कैन करें |
| `-p - ` | **1-65535** तक के पूर्ण पोर्ट की स्कैन करें |
आप उन विशिष्ट पोर्ट को भी निर्दिष्ट कर सकते हैं जिन्हें आप स्कैन से बाहर रखना चाहते हैं।```sh
naabu -p - -exclude-ports 80,443
naabu को होस्ट्स की सूची पर चलाने के लिए, -list विकल्प का उपयोग किया जा सकता है।```sh
naabu -list hosts.txt
एक ASN पर naabu चलाने के लिए, AS इनपुट का उपयोग किया जा सकता है। यह दिए गए ASN के लिए उपलब्ध IP पते लेता है और उन पर एनुमरेशन चलाता है।```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
आप -json स्विच का उपयोग करके JSON प्रारूप में आउटपुट भी प्राप्त कर सकते हैं। यह स्विच आउटपुट को JSON लाइन्स प्रारूप में सहेजता है।```console
naabu -host 104.16.99.52 -json
{"ip":"104.16.99.52","port":443} {"ip":"104.16.99.52","port":80}
खोजे गए पोर्ट को अन्य टूल्स पर भी पाइप किया जा सकता है। उदाहरण के लिए, आप naabu द्वारा खोजे गए पोर्ट को [httpx](https://github.com/projectdiscovery/httpx) पर पाइप कर सकते हैं, जो तब होस्ट पर चल रहे http सर्वरों का पता लगाएगा।```console
echo hackerone.com | naabu -silent | httpx -silent
http://hackerone.com:8443
http://hackerone.com:443
http://hackerone.com:8080
http://hackerone.com:80
गति को rate फ्लैग के मान को बदलकर नियंत्रित किया जा सकता है जो प्रति सेकंड पैकेटों की संख्या दर्शाता है। होस्टों को प्रोसेस करते समय इसे बढ़ाने से गलत-सकारात्मक दरें बढ़ सकती हैं। इसलिए इसे उचित मात्रा में रखने की सिफारिश की जाती है।
Naabu IPv4 और IPv6 दोनों का समर्थन करता है, और दोनों डिफ़ॉल्ट रूप से सक्षम हैं। यदि IPv6 का उपयोग किया जाता है, तो कनेक्टिविटी को सही ढंग से कॉन्फ़िगर किया जाना चाहिए, और नेटवर्क इंटरफ़ेस में एक IPv6 पता (inet6) और एक डिफ़ॉल्ट गेटवे असाइन होना चाहिए।```console
echo hackerone.com | naabu -p 80 -silent
104.16.99.52:80 104.16.100.52:80 2606:4700::6810:6434:80 2606:4700::6810:6334:80
विकल्प `-ip-version 6` उपकरण को डोमेन नामों को हल करते समय केवल IPv6 पतों का उपयोग करने के लिए बनाता है।```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
दोनों संस्करणों के सभी IPs को स्कैन करने के लिए, -scan-all-ips फ्लैग का उपयोग किया जा सकता है।```console
echo hackerone.com | ./naabu -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
# होस्ट खोज
Naabu वैकल्पिक रूप से होस्ट खोज करने के लिए कई विकल्पों का समर्थन करता है। होस्ट खोज वैकल्पिक है और इसे `-wn` फ़्लैग के साथ सक्षम किया जा सकता है। `-sn` फ़्लैग टूल को केवल होस्ट खोज करने का निर्देश देता है।
होस्ट खोज करने के लिए उपलब्ध विकल्प:
- **ARP** पिंग (`-arp`)
- TCP **SYN** पिंग (`-ps 80`)
- TCP **ACK** पिंग (`-pa 443`)
- ICMP **echo** पिंग (`-pe`)
- ICMP **timestamp** पिंग (`-pp`)
- ICMP **address mask** पिंग (`-pm`)
- IPv6 **neighbor discovery** (`-nd`)
# कॉन्फ़िगरेशन फ़ाइल
Naabu डिफ़ॉल्ट रूप से `$HOME/.config/naabu/config.yaml` पर स्थित कॉन्फ़िगरेशन फ़ाइल का समर्थन करता है। यह आपको कॉन्फ़िगरेशन फ़ाइल में किसी भी फ़्लैग को परिभाषित करने और सभी स्कैनों के लिए डिफ़ॉल्ट मान सेट करने की अनुमति देता है।
# Nmap एकीकरण
हमने Naabu द्वारा प्राप्त परिणामों पर सेवा खोज या nmap द्वारा समर्थित किसी भी अतिरिक्त स्कैन के लिए nmap समर्थन को एकीकृत किया है, इस सुविधा का उपयोग करने के लिए सुनिश्चित करें कि आपके पास `nmap` स्थापित हो।
उपयोग करने के लिए, `nmap-cli` फ़्लैग का उपयोग nmap कमांड के बाद किया जा सकता है, उदाहरण के लिए:-```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
Naabu में nmap के सेवा प्रोब डेटाबेस का उपयोग करके अंतर्निहित सेवा संस्करण पहचान है। यह अधिकतम प्रदर्शन के लिए पोर्ट स्कैनिंग के समानांतर चलता है।```sh naabu -host scanme.sh -sV
$ msftrecon 'http://localhost:8080/api/data/;.env' -m -t 'TST_12345'
scanme.sh:22 [ssh OpenSSH/6.6.1p1]
scanme.sh:80 [http Apache httpd/2.4.7]
scanme.sh:9929 [nping-echo Nping echo]
[INF] Found 3 ports on host scanme.sh (45.33.32.156) with 3 services identified
```
उपलब्ध फ़्लैग:
| फ़्लैग | विवरण |
|------|-------------|
| `-sV` | सेवा संस्करण का पता लगाना सक्षम करें |
| `-sV-fast` | केवल पोर्ट-संकेतित सेवाओं की जाँच करें (तेज़, फ़ॉलबैक जाँच छोड़ता है) |
| `-sV-timeout duration` | सेवा संस्करण जाँच के लिए टाइमआउट (डिफ़ॉल्ट 5s) |
| `-sV-workers int` | समवर्ती सेवा संस्करण कार्यकर्ताओं की संख्या (डिफ़ॉल्ट 25) |
| `-sV-probes string` | कस्टम nmap-service-probes फ़ाइल पथ (खाली होने पर स्थानीय nmap इंस्टॉल से स्वतः पता लगाया जाता है) |
| `-sD` | सेवा खोज (पोर्ट नंबर को सेवा नाम से मिलान, कोई सक्रिय जाँच नहीं) |
`-sV` फ़्लैग के लिए `nmap-service-probes` डेटाबेस फ़ाइल की आवश्यकता है। naabu स्वयं इस डेटाबेस को शामिल नहीं करता है (यह कॉपीलेफ्ट Nmap Public Source License के अंतर्गत लाइसेंस प्राप्त है, जो naabu के MIT लाइसेंस के साथ असंगत है), इसलिए यह फ़ाइल को स्थानीय nmap इंस्टॉलेशन से पढ़ता है, स्वचालित रूप से मानक nmap इंस्टॉलेशन पथों में खोजता है। कस्टम फ़ाइल का उपयोग करने के लिए, `-sV-probes` के साथ पथ निर्दिष्ट करें।
# UDP सेवा जाँच
UDP सेवाएँ आमतौर पर जब उन्हें एक खाली डेटाग्राम प्राप्त होता है तो चुप रहती हैं, इसलिए एक अंधा UDP पोर्ट स्कैन उनमें से अधिकांश को नहीं खोज पाता। `-uP` (`-udp-probes`) के साथ naabu स्कैन किए जा रहे प्रत्येक UDP पोर्ट के लिए `nmap-service-probes` डेटाबेस से एक प्रोटोकॉल-विशिष्ट पेलोड चुनता है (53 के लिए DNS क्वेरी, 123 के लिए NTP अनुरोध, 161 के लिए SNMPv1 GetRequest, और इसी प्रकार), ताकि वास्तविक सेवाओं के पास उत्तर देने के लिए कुछ हो और naabu उन्हें खुला रिपोर्ट कर सके।```sh
naabu -host scanme.sh -p u:53,u:123,u:161 -uP
```
नोट्स:
- `-uP` वैकल्पिक और योगात्मक है। जब अक्षम किया जाता है (डिफ़ॉल्ट), UDP स्कैन अपने ऐतिहासिक शून्य-लंबाई-डेटाग्राम व्यवहार को बनाए रखते हैं।
- चयनित प्रोब गंतव्य पोर्ट के लिए सर्वोच्च-प्राथमिकता (न्यूनतम-दुर्लभता) मिलान है; यदि किसी पोर्ट के लिए कोई प्रोब पंजीकृत नहीं है तो स्कैन खाली डेटाग्राम पर वापस आ जाता है।
- `-cp` के माध्यम से उपयोगकर्ता द्वारा प्रदान किया गया पेलोड हमेशा उस पोर्ट के लिए स्वचालित प्रोब पर जीतता है।
- `-uP` उसी प्रोब डेटाबेस का पुन: उपयोग करता है जो `-sV` करता है, इसलिए आप पार्स लागत दो बार चुकाए बिना दोनों को जोड़ सकते हैं। प्रोब फ़ाइल स्थानीय nmap इंस्टॉल से स्वचालित रूप से स्थित होती है; कस्टम फ़ाइल की ओर इशारा करने के लिए `-sV-probes` का उपयोग करें। यदि कोई डेटाबेस नहीं मिल सकता है तो `-uP` एक चेतावनी लॉग करता है और चुपचाप अक्षम हो जाता है।
# सीडीएन/डब्ल्यूएएफ बहिष्करण
Naabu पोर्ट स्कैन किए जा रहे सीडीएन/डब्ल्यूएएफ आईपी को बाहर करने का भी समर्थन करता है। यदि उपयोग किया जाता है, तो उन आईपी के लिए केवल `80` और `443` पोर्ट स्कैन किए जाते हैं। इस सुविधा को `exclude-cdn` फ़्लैग का उपयोग करके सक्षम किया जा सकता है।
वर्तमान में बहिष्करण के लिए `cloudflare`, `akamai`, `incapsula` और `sucuri` आईपी समर्थित हैं।
# स्कैन स्थिति
Naabu स्थानीय पोर्ट पर स्थानीय होस्ट से बंधे json स्कैन जानकारी को `http://localhost:63636/metrics` पर प्रकट करता है (पोर्ट को `-metrics-port` फ़्लैग के माध्यम से बदला जा सकता है)
# naabu को लाइब्रेरी के रूप में उपयोग करना
निम्नलिखित नमूना प्रोग्राम `scanme.sh` के पोर्ट `80` को स्कैन करता है। परिणाम `OnResult` कॉलबैक के माध्यम से लौटाए जाते हैं:
```
func main() {
results, err := naabu.Scan("scanme.sh", "80")
if err != nil {
panic(err)
}
for result := range results {
fmt.Println(result)
}
}
``````go
package main
import (
"log"
"context"
"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(context.Background())
}
```
> **`OnResult`** स्कैन पूरा होने के बाद एकत्रित परिणामों के साथ एक बार कॉल किया जाता है। पोर्ट खोजे जाने पर परिणामों को **रीयल-टाइम** में प्रोसेस करने के लिए, इसके बजाय **`OnReceive`** का उपयोग करें। `Stream` विकल्प केवल एसिंक्रोनस टार्गेट लोडिंग को नियंत्रित करता है — यह कॉलबैक के फायर होने के समय को प्रभावित नहीं करता है।
# Notes
- Naabu [nmap एकीकरण](https://github.com/projectdiscovery/naabu#nmap-integration) का समर्थन करने के लिए एक सुविधा के रूप में मनमानी बाइनरी निष्पादन की अनुमति देता है।
- Naabu कई होस्ट / मास पोर्ट स्कैनिंग पर पोर्ट स्कैन करने के लिए डिज़ाइन किया गया है।
- डिफ़ॉल्ट रूप से naabu इस धारणा के साथ कॉन्फ़िगर किया गया है कि आप इसे VPS से चला रहे हैं।
- हम सुझाव देते हैं कि यदि naabu को स्थानीय सिस्टम से चला रहे हैं तो फ़्लैग / रेट को ट्यून करें।
- सर्वोत्तम परिणामों के लिए, naabu को **root** उपयोगकर्ता के रूप में चलाएं।
-----
Naabu को [projectdiscovery](https://projectdiscovery.io) टीम द्वारा 🖤 से बनाया गया है। सामुदायिक योगदान ने इस प्रोजेक्ट को वह बनाया है जो यह है।
अधिक जानकारी के लिए **[Thanks.md](https://github.com/projectdiscovery/naabu/blob/master/THANKS.md)** फ़ाइल देखें।