
FOFA API को क्वेरी करने, कस्टम फ़ील्ड्स (IP, port, cert, TLS, आदि) निकालने, परिणामों को डीडुप्लिकेट करने और बाधित खोजों को फिर से शुरू करने के लिए मल्टी-थ्रेडेड पायथन टूल।
FOFA (Fofa.so) API को क्वेरी करने, चयनित फ़ील्ड निकालने और बुद्धिमान फ़ॉर्मेटिंग के साथ अद्वितीय परिणाम सहेजने के लिए एक शक्तिशाली मल्टी-थ्रेडेड Python टूल।
ip, port, title, cert.*, tls.*, …)domains_*.txt, ips_*.txt)list कमांड सभी मान्य फ़ील्ड दिखाता है)raw_input का उपयोग करती है – Python 3 पर आसानी से पोर्टेबल)requests लाइब्रेरीनिर्भरता स्थापित करें:
pip install requests
🔧 कॉन्फ़िगरेशन
API_KEY = "PUT UR TOKEN HERE"
import os
API_KEY = os.getenv("FOFA_API_KEY", "your_default_key")
🚀 उपयोग
स्क्रिप्ट चलाएँ:
python fofa_searcher.py
आपसे इंटरैक्टिव रूप से पूछा जाएगा:
[?] Enter FOFA query: domain="example.com"
[?] Enter max page to scrape [Default: 1]: 5
प्रत्येक पेज SIZE_DEFAULT तक परिणाम लौटाता है।
[?] Enter fields [Default: host,ip,port]: host,ip,port,title,cert.sn
सभी मान्य फ़ील्ड (बेसिक, सर्टिफिकेट, TLS) देखने के लिए list टाइप करें।
सभी परिणाम एक वर्णनात्मक फ़ाइलनाम के साथ OUTPUT_DIR में सहेजे जाते हैं, जैसे results/domains_example_com_20250315_143022.txt
📂 आउटपुट उदाहरण
एकल फ़ील्ड – सुंदर ढंग से लेबल किया गया:
IP: 93.184.216.34
Port: 443
Title: Example Domain
एकाधिक फ़ील्ड – कॉम्पैक्ट प्रारूप:
93.184.216.34 | Port:443 | [Example Domain] | {US}
सर्टिफिकेट / TLS फ़ील्ड – स्पष्ट लेबल:
Cert Serial Number: 01:23:45:...
TLS version: TLSv1.2
🧩 मान्य फ़ील्ड्स
यह टूल सभी सामान्य FOFA फ़ील्ड्स के साथ-साथ सर्टिफिकेट (cert.) और TLS (tls.) फ़ील्ड्स को सपोर्ट करता है।
बेसिक फ़ील्ड्स (आंशिक सूची)
ip, port, protocol, base_protocol, host, domain, title, server, country, region, city, os, asn, org, banner, header, body, cname, icp, jarm, icon, fid, status_code, product
सर्टिफिकेट फ़ील्ड्स
cert, cert.sn, cert.not_after, cert.not_before, cert.domain, cert.subject.org, cert.subject.cn, cert.issuer.org, cert.issuer.cn, cert.is_valid, cert.is_match, cert.is_equal
TLS फ़ील्ड्स
tls.version, tls.ja3s
उन सभी को देखने के लिए फ़ील्ड प्रॉम्प्ट के दौरान list टाइप करें।
⚙️ कॉन्फ़िगरेशन वेरिएबल्स (स्क्रिप्ट के अंदर)
वेरिएबल डिफ़ॉल्ट विवरण CONCURRENT_THREADS 10 समानांतर पेज अनुरोधों की संख्या SIZE_DEFAULT 100 प्रति पेज परिणाम (FOFA द्वारा अनुमत अधिकतम) OUTPUT_DIR results वह निर्देशिका जहाँ आउटपुट फ़ाइलें सहेजी जाती हैं
📝 महत्वपूर्ण नोट्स
· स्क्रिप्ट API एंडपॉइंट के रूप में en.fofa.info का उपयोग करती है। · डिडुप्लिकेशन पहले फ़ील्ड मान (जैसे, IP या डोमेन) पर आधारित है और केस-इंसेंसिटिव है। · लंबे स्ट्रिंग्स (टाइटल, बैनर, हेडर) पठनीयता के लिए आउटपुट में ट्रंकेट किए जाते हैं। · यदि आप स्क्रिप्ट को बाधित करते हैं (Ctrl+C), तो यह सुचारू रूप से बाहर निकलती है। · स्क्रिप्ट वर्तमान में Python 2 raw_input का उपयोग करती है। Python 3 के साथ चलाने के लिए, raw_input को input से बदलें और print स्टेटमेंट्स को समायोजित करें।
❗ समस्या निवारण
समस्या समाधान API_KEY सेट नहीं है स्क्रिप्ट संपादित करें और अपनी कुंजी जोड़ें। अमान्य फ़ील्ड अनुमत फ़ील्ड देखने के लिए स्क्रिप्ट चलाएँ और list टाइप करें। कोई परिणाम नहीं अपनी FOFA क्वेरी सिंटैक्स और API क्रेडिट जाँचें। ImportError: No module named requests pip install requests के साथ requests इंस्टॉल करें। UnicodeEncodeError स्क्रिप्ट पहले से UTF-8 एन्कोडिंग संभालती है; सुनिश्चित करें कि आपका टर्मिनल इसे सपोर्ट करता है।
📄 लाइसेंस
MIT लाइसेंस – अपनी रिकॉनिसेंस आवश्यकताओं के लिए उपयोग और संशोधन के लिए स्वतंत्र। नोट: FOFA API का उपयोग FOFA की सेवा शर्तों के अधीन है।
🙌 आभार
FOFA सर्च इंजन के लिए निर्मित – एक शक्तिशाली IoT और एसेट सर्च प्लेटफ़ॉर्म।
शुभ खोज! 🔍