
खुले पोर्ट्स पर सेवा खोज के लिए एक स्वतंत्र उपयोगिता!
विशेषताएँ • स्थापना • उपयोग • fingerprintx चलाना • लाइब्रेरी के रूप में उपयोग • nmap क्यों नहीं? • नोट्स • आभार
fingerprintx एक उपयोगिता है जो httpx के समान है, लेकिन यह RDP, SSH, MySQL, PostgreSQL, Kafka आदि जैसी सेवाओं की फिंगरप्रिंटिंग का भी समर्थन करती है। fingerprintx का उपयोग Naabu जैसे पोर्ट स्कैनरों के साथ किया जा सकता है, ताकि पोर्ट स्कैन के दौरान पहचाने गए पोर्टों के सेट की फिंगरप्रिंटिंग की जा सके। उदाहरण के लिए, कोई इंजीनियर किसी IP रेंज को स्कैन करना चाह सकता है और फिर सभी खोजे गए पोर्टों पर चल रही सेवा की तेजी से पहचान कर सकता है।



51 सेवा डिटेक्शन प्लगइन्स जो TCP और UDP प्रोटोकॉल का समर्थन करते हैं:
| सेवा | ट्रांसपोर्ट |
|---|---|
| Cassandra | TCP |
| ChromaDB | TCP |
| CouchDB | TCP |
| DB2 | TCP |
| DHCP | UDP |
| Diameter | TCP |
| DNS | TCP/UDP |
| Echo | TCP |
| Elasticsearch | TCP |
| Firebird | TCP |
| FTP | TCP |
| HTTP/HTTPS | TCP |
| IMAP | TCP |
| InfluxDB | TCP |
| IPMI | TCP |
| IPSEC | UDP |
| Java RMI | TCP |
| JDWP | TCP |
| Kafka | TCP |
| LDAP | TCP |
| Linux RPC | TCP |
| Memcached | TCP |
| Milvus | TCP |
| Modbus | TCP |
| MongoDB | TCP |
| MQTT | TCP |
| MSSQL | TCP |
| MySQL | TCP |
| Neo4j | TCP |
| NetBIOS-NS | UDP |
| NTP | UDP |
| OpenVPN | UDP |
| OracleDB | TCP |
| Pinecone | TCP |
| POP3 | TCP |
| PostgreSQL | TCP |
| RDP | TCP |
| Redis | TCP |
| Rsync | TCP |
| RTSP | TCP |
| SMB | TCP |
| SMPP | TCP |
| SMTP | TCP |
| SNMP | UDP |
| SNPP | TCP |
| SSH | TCP |
| STUN | UDP |
| Sybase | TCP |
| Telnet | TCP |
| VNC | TCP |
GitHub से
go install github.com/praetorian-inc/fingerprintx/cmd/fingerprintx@latest
स्रोत से (go संस्करण > 1.18)
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx
# go संस्करण > 1.18 के साथ
$ go build ./cmd/fingerprintx
$ ./fingerprintx -h
Docker
$ git clone [email protected]:praetorian-inc/fingerprintx.git
$ cd fingerprintx
# बिल्ड करें
docker build -t fingerprintx .
# और चलाएँ
docker run --rm fingerprintx -h
docker run --rm fingerprintx -t praetorian.com:80 --json
fingerprintx -h
-h विकल्प fingerprintx के लिए सभी समर्थित फ्लैग प्रदर्शित करेगा।
Usage:
fingerprintx [flags]
TARGET SPECIFICATION:
Requires a host and port number or ip and port number. The port is assumed to be open.
HOST:PORT or IP:PORT
EXAMPLES:
fingerprintx -t praetorian.com:80
fingerprintx -l input-file.txt
fingerprintx --json -t praetorian.com:80,127.0.0.1:8000
Flags:
--csv output format in csv
-f, --fast fast mode
-h, --help help for fingerprintx
--json output format in json
-l, --list string input file containing targets
-o, --output string output file
-t, --targets strings target or comma separated target list
-w, --timeout int timeout (milliseconds) (default 500)
-U, --udp run UDP plugins
-v, --verbose verbose mode
fast मोड प्रत्येक लक्ष्य के लिए उस पोर्ट से जुड़ी डिफ़ॉल्ट सेवा का ही फिंगरप्रिंट लेने का प्रयास करेगा। उदाहरण के लिए, यदि इनपुट praetorian.com:8443 है, तो केवल https प्लगइन चलेगा। यदि praetorian.com:8443 पर https नहीं चल रहा है, तो कोई आउटपुट नहीं होगा। ऐसा क्यों? यह होस्टों की बड़ी सूची में अधिकांश सेवाओं को तेज़ी से फिंगरप्रिंट करने का एक तरीका है (80/20 नियम के बारे में सोचें)।
एक लक्ष्य के साथ:
$ fingerprintx -t 127.0.0.1:8000
http://127.0.0.1:8000
डिफ़ॉल्ट रूप से, आउटपुट इस रूप में होता है: SERVICE://HOST:PORT। अधिक विस्तृत सेवा आउटपुट प्राप्त करने के लिए --json फ्लैग के साथ JSON निर्दिष्ट करें:
$ fingerprintx -t 127.0.0.1:8000 --json
{"ip":"127.0.0.1","port":8000,"service":"http","transport":"tcp","metadata":{"responseHeaders":{"Content-Length":["1154"],"Content-Type":["text/html; charset=utf-8"],"Date":["Mon, 19 Sep 2022 18:23:18 GMT"],"Server":["SimpleHTTP/0.6 Python/3.10.6"]},"status":"200 OK","statusCode":200,"version":"SimpleHTTP/0.6 Python/3.10.6"}}
किसी अन्य प्रोग्राम (जैसे naabu) से आउटपुट पाइप करें:
$ naabu 127.0.0.1 -silent 2>/dev/null | fingerprintx
http://127.0.0.1:8000
ftp://127.0.0.1:21
इनपुट फ़ाइल के साथ चलाएँ:
$ cat input.txt | fingerprintx
http://praetorian.com:80
telnet://telehack.com:23