
CF-Hero एक रिकॉनिसेंस टूल है जो Cloudflare-संरक्षित वेब अनुप्रयोगों के मूल IP पते खोजने के लिए कई डेटा स्रोतों का उपयोग करता है।
यह क्या है? • विशेषताएँ • पृष्ठभूमि • स्थापना • उपयोग • cf-hero चलाना • ZoomEye (प्रायोजक) • करने योग्य
CF-Hero एक व्यापक टोही उपकरण है जिसे Cloudflare द्वारा सुरक्षित वेब अनुप्रयोगों के वास्तविक IP पते खोजने के लिए विकसित किया गया है। यह विभिन्न तरीकों से बहु-स्रोत खुफिया जानकारी एकत्र करता है।
यह उपकरण Cloudflare-सुरक्षित लक्ष्यों के संभावित मूल IP पते पहचानने के लिए इन स्रोतों से डेटा का विश्लेषण करता है। यह गलत सकारात्मक परिणामों को कम करने के लिए प्रतिक्रिया विश्लेषण के माध्यम से निष्कर्षों को मान्य करता है।
उपकरण का एक सरल फ़्लोचार्ट```
┌──────────┐
│ │ ┌─────────┐
│ Domain │───────►│ Check A │
│ │ │ Records │
└──────────┘ └────┬────┘
│
┌──────────────────┘
│
▼
┌─────────────┐
│Is it behind │ YES
│ CloudFlare │────────────────────────────────────────┐
└─────────────┘ │
│ │
│ │
│ ▼
│ ┌──────────────────────────┐
│ │ Check the domain from │
│ ┌─────────────────│ various sources │───────────────────┐
│ │ └──────────────────────────┘ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ ▼ ▼ ▼ ▼
│ ┌────────────────┐ ┌─────────────┐ ┌───────────┐ ┌─────────────┐
│ │ Historical DNS │ │ Current DNS │ ┌─┤ OSINT │ │ Sub/domains │
│ ┌──│ Records │ ┌─│ Records │ │ └───────────┘ ┌─│ │
│ │ └────────────────┘ │ └─────────────┘ │ ┌─────────┐ │ └─────────────┘
│ │ ┌──────────────┐ │ ┌───────────┐ ├──►│ ZoomEye │ │ ┌─────────────┐
│ ├───►│SecurityTrails│ ├──►│ TXT │ │ └─────────┘ │ │ sub(domains)│
│ │ └──────────────┘ │ └───────────┘ │ ┌─────────┐ └──►│ used by the │
│ │ ┌──────────────┐ │ ┌───────────┐ ├──►│ Shodan │ │ same company│
│ │ └───►│Completedns │ └──►│ A │ │ └─────────┘ └─────────────┘ │
│ │ └──────────────┘ └───────────┘ │ ┌─────────┐ │
│ │ └──►│ Censys │ │
│ │ └─────────┘ │
│ │ │
│ │ │
│ └────────────────────────────────────────────┬────────────────────────────────────────────┘
│ │
NO │ │
│ │
│ │
│ ▼
│ ┌──────────────────────────────────────┐
│ │ Establish direct HTTP connections to │
│ │ each discovered IP address │
│ └──────────────────────────────────────┘
│ │
│ │
│ │
│ ▼
│ ┌─────────────────────────────┐
│ │ Compare the HTML title with │
│ │ the target's title │
│ └─────────────────────────────┘
│ │
│ │
│ │
│ ▼
│ ┌─────────────────────┐
│ │ │ YES
│ │ Are they the same ? │─────────────────────┐
│ │ │ │
│ └─────────────────────┘ ▼
│ │ ┌───────────────┐
│ │NO │ Real IP found │
│ │ └───────┬───────┘
│ ▼ │
│ ┌──────────┐ │
└───────────────────────────────────────────►│ FINISH │◄───────────────────────────┘
└──────────┘
# Feautures
### विशेषताएँ
- DNS टोही
- वर्तमान DNS रिकॉर्ड (A, TXT) की जाँच करता है
- Cloudflare के पीछे के डोमेन निकालता है
- Cloudflare के पीछे न होने वाले डोमेन निकालता है
- उपयोगकर्ता द्वारा प्रदान किया गया HTML शीर्षक (यदि CF आपको ब्लॉक कर दे)
- स्मार्ट रंग-संयोजन
- तृतीय-पक्ष खुफिया जानकारी
- ZoomEye एकीकरण
- Censys एकीकरण
- Shodan एकीकरण
- SecurityTrails एकीकरण
- संबद्ध डोमेन के लिए रिवर्स IP लुकअप
- उन्नत सुविधाएँ
- कस्टम JA3 फिंगरप्रिंट समर्थन
- समवर्ती स्कैनिंग क्षमताएँ
- मानक इनपुट समर्थन (पाइपिंग)
- सत्यापन के लिए HTML शीर्षक तुलना
- प्रॉक्सी समर्थन
- कस्टम User-Agent कॉन्फ़िगरेशन
# पृष्ठभूमि
## वर्तमान DNS रिकॉर्ड
आइए गलत कॉन्फ़िगर किए गए DNS सेटिंग्स के साथ कुछ उपयोग-मामलों पर नज़र डालें।
जैसा कि आप देख सकते हैं, एक सामान्य DNS क्वेरी डोमेन का IP पता लौटाती है। उदाहरण के लिए, musana.net Cloudflare (CF) के पीछे है, लेकिन कभी-कभी डोमेन में कई A रिकॉर्ड होते हैं, और उनमें से कुछ CF से जुड़े IP पतों के अनुरूप नहीं हो सकते। (यह DNS आउटपुट केवल एक उदाहरणात्मक उदाहरण है और musana.net के सटीक DNS उत्तर का प्रतिनिधित्व नहीं कर सकता।)```
;; ANSWER SECTION:
musana.net. 300 IN A 104.16.42.102
musana.net. 300 IN A 104.16.43.102
musana.net. 300 IN A 123.45.67.89 (Real IP exposed)
musana.net. 300 IN A 123.45.76.98 (Real IP exposed)
दूसरा मामला TXT रिकॉर्ड से संबंधित है। कभी-कभी डोमेन CF के पीछे होता है लेकिन डोमेन का वास्तविक IP TXT रिकॉर्ड में इस्तेमाल किया जा सकता है। CF-Hero सभी TXT रिकॉर्ड की जाँच करता है, फिर सभी IP पते निकालता है और अंत में वह मिले IP से HTTP के माध्यम से कनेक्ट करने का प्रयास करता है।
मान लीजिए हमारे पास DNS TXT रिकॉर्ड जैसा कुछ है। जैसा कि TXT रिकॉर्ड में देखा गया है, SPF रिकॉर्ड मौजूद है। कुछ कंपनियाँ अपना स्वयं का मेल सर्वर होस्ट कर सकती हैं और TXT रिकॉर्ड में IP हो सकता है जो लक्ष्य डोमेन की ओर इशारा करता है।
जैसा कि आप निम्नलिखित DNS उत्तर में देख सकते हैं, SPF रिकॉर्ड में कुछ IP पते हैं। Cf-Hero इनकी भी जाँच करता है।``` ;; ANSWER SECTION: musana.net. 115 IN TXT "1password-site-verification=LROK6G5XFJG5NF76TE2FBTABUA" musana.net. 115 IN TXT "5fG-7tA-G4V" musana.net. 115 IN TXT "MS=ms16524910" musana.net. 115 IN TXT "OSSRH-74956" musana.net. 115 IN TXT "docker-verification=6910d334-a3fc-419c-89ac-57668af5bf0d" musana.net. 115 IN TXT "docusign=4c6d27bb-572e-4fd4-896c-81bfb0af0aa1" musana.net. 115 IN TXT "shopify-verification-code=1Ww5VsPpkIf32cJ5PdDHdguRk22K2R" musana.net. 115 IN TXT "shopify-verification-code=NM243t2faQbaJs8SRFMSEQAc4J9UQf" musana.net. 115 IN TXT "v=spf1 include:_spf.google.com include:cust-spf.exacttarget.com include:amazonses.com include:mail.zendesk.com include:servers.mcsv.net include:spf.mailjet.com ip4:216.74.162.13 ip4:216.74.162.14 ip4:153.95.95.86 ip4:18.197.36.5 -all"
## OSINT
OSINT किसी भी domain का real IP खोजने की एक और तकनीक है जो CF के पीछे होता है। विशेष उद्देश्य के लिए बहुत सारे special search engines हैं। Shodan और Censys इनमें से दो हैं। वे अधिक detail और तकनीकी जानकारी प्रदान करते हैं। ये search engines पूरे internet को लगातार scan करते हैं और नए assets खोजते हैं या assets में होने वाले बदलावों को monitor और log करते हैं। जब कोई domain जो CF के पीछे नहीं है, online आता है, तो इन दोनों engines के bots उस domain का real IP log कर सकते हैं। कुछ समय बाद यदि domain Cloudflare के पीछे चला जाता है, तो उनका IP इन search engines का उपयोग करके पाया जा सकता है।
CF-Hero censys और shodan की भी जाँच करता है। (ध्यान दें कि जब आप इन services का उपयोग करते हैं तो API quota के कारण आपकी कुछ सीमाएँ होती हैं।)
## (Sub)Domains
दूसरी trick (sub)domain technique है। वास्तव में इसका subdomain होना ज़रूरी नहीं है; यह domain भी हो सकता है। मुख्य बिंदु यह है; domains एक ही company के होने चाहिए।
मान लीजिए हमारे पास 2 domains हैं। उनमें से एक CF के पीछे है लेकिन दूसरा नहीं है। इस case में, आप उस domain से connect करते हैं जो CF के पीछे नहीं है, फिर आप host header को उस domain में बदलते हैं जो CF के पीछे है। यदि आपको उस application का response मिलता है जो CF के पीछे है, बधाई हो, आपने CF को bypass कर दिया। आप अब web application को सीधे IP से access कर सकते हैं। (और निश्चित रूप से यह configuration पर भी निर्भर करता है)
आइए करीब से देखें```
--> TCP --> blog.musana.net [123.45.67.89] ---> HTTPs -------------\
\
--> TCP --> api.musana.net [123.67.45.98] ----> HTTPs -----------\ \
\ \
--> TCP --> test.musana.net [123.89.44.88] ---> HTTPs -------------\ \
\___\____________________
--> TCP --> tools.musana.net [123.44.55.66] --> HTTPs -------------> | GET / HTTP/2 |
| Host: musana.net | ====> Check & Compare Responses
--> TCP --> admin.musana.net [33.44.123.45] --> HTTPs -------------->|_______________________|
/ /
--> TCP --> ... [...] ------------------------> HTTPs ------------------>/ /
/ /
--> TCP --> ... [...] ------------------------> HTTPs ---------------->/ /
/ /
--> TCP --> random-test.com [55.44.11.33] ----> HTTPs -------------->/ /
/
--> TCP --> fsubsidiary.net [66.77.22.123] ---> HTTPs ----------------->/
ऐतिहासिक DNS रिकॉर्ड सेवाएँ इंटरनेट पर सभी डोमेनों की खोज करने तथा इन डोमेनों के DNS रिकॉर्ड में हुए परिवर्तनों को दर्ज करने का प्रयास करती हैं। इन सेवाओं में सबसे प्रसिद्ध securitytrails है। यदि कोई डोमेन अपने वास्तविक IP पते के साथ इंटरनेट पर प्रकाशित होता है, तो इन सेवाओं का बॉट उसका वास्तविक IP पता लॉग कर सकता है; उसके बाद यदि डोमेन को cloudflare के पीछे ले जाया जाता है, तो इन सेवाओं का उपयोग करके वास्तविक IP पतों का पता लगाया जा सकता है। इस प्रकार, हम उस डोमेन का वास्तविक IP पता पा सकते हैं जो अतीत में वास्तविक IP पते पर प्रसारित हुआ है।
यह ऐतिहासिक DNS रिकॉर्ड के लिए security trails सेवा का उपयोग करता है। आप cf-hero.yaml फ़ाइल में API कुंजी दर्ज करने के बाद -securitytrails पैरामीटर का उपयोग करके यह स्कैन कर सकते हैं।
cf-hero को सफलतापूर्वक स्थापित करने के लिए go1.18 की आवश्यकता है। स्थापित करने के लिए निम्न कमांड चलाएँ।``` go install -v github.com/musana/cf-hero/cmd/cf-hero@latest
# उपयोग```
____ __
_____/ __/ / /_ ___ _________
/ ___/ /__ ___ / __ \/ _ \/ ___/ __ \
/ /__/ ___/ (___) / / / / __/ / / /_/ /
\___/_/ /_/ /_/\___/_/ \____/
@musana
_____________________________________________
Unmask the origin IPs of Cloudflare-protected domains
Usage:
cf-hero [flags]
Flags:
GENERAL OPTIONS:
-w int Worker count (default 16)
-f string Input file containing list of host/domain
-v Enable verbose output
-title string Specify HTML title to match (skip fetching from Cloudflare domain)
PRINT OPTIONS:
-cf Print domains behind Cloudflare
-non-cf Print domains not behind Cloudflare
SOURCES:
-censys Include Censys in scanning
-securitytrails Include SecurityTrails historical DNS records in scanning
-shodan Include Shodan historical DNS records in scanning
-zoomeye Include Zoomeye in scanning
-dl string Domain list for sub/domain scanning
-td string Target domain for sub/domain scanning
CONFIGURATION:
-hm string HTTP method. (default "GET")
-ja3 string JA3 String (default "772,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,18-10-16-23-45-35-5-11-13-65281-0-51-43-17513-27,29-23-24,0")
-ua string HTTP User-Agent (default "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/113.0")
-px string HTTP proxy URL
सबसे बुनियादी रनिंग कमांड। यह डिफ़ॉल्ट रूप से A और TXT रिकॉर्ड की जाँच करता है।```
या आप इसमें "f" पैरामीटर पास कर सकते हैं।```
# cf-hero -f domains.txt
स्कैन में ZoomEye को शामिल करने के लिए zoomeye पैरामीटर का उपयोग करें```
स्कैन में Censys को शामिल करने के लिए **censys** पैरामीटर का उपयोग करें```
# cat domain.txt | cf-hero -censys
स्कैन में Shodan को शामिल करने के लिए shodan पैरामीटर का उपयोग करें```
स्कैन में SecurityTrails को शामिल करने के लिए **securitytrails** पैरामीटर का उपयोग करें```
# cat domain.txt | cf-hero -securitytrails
-td और -dl पैरामीटर का उपयोग करके, Cloudflare के पीछे नहीं होने वाले डोमेन या सबडोमेन की सूची का उपयोग करके लक्ष्य डोमेन का IP पता खोजने का प्रयास करें। -dl पैरामीटर के साथ उन ब्लॉकों में IP पते निर्दिष्ट करके, जहाँ आपने लक्ष्य के क्लाउड या ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर द्वारा उपयोग किए गए लाइव IP पतों की पहचान की है, आप लक्ष्य डोमेन का वास्तविक IP पता पा सकते हैं।```
CF के पीछे डोमेन प्राप्त करने के लिए```
# cf-hero -f domains.txt -cf
CF के पीछे नहीं होने वाले डोमेन प्राप्त करने के लिए```
अन्य विकल्प (custom ja3, proxy, worker, user agent)```
# cf-hero -d https://musana.net -ua "Mozilla" -w 32 -ja3 "771,22..." -px "http://127.0.0.1:8080"
cf-hero.yaml फ़ाइल को $HOME/.config/ निर्देशिका में बनाएँ ताकि APIs की कुंजी सेट हो सके।```
// content of YAML file should be like;
zoomeye:
> **Censys पर नोट:** CF-Hero अब [Censys Platform API](https://docs.censys.com/reference/get-started) का उपयोग करता है
> (legacy `search.censys.io` API 2026 में बंद हो रही है)। Censys Platform कंसोल से एक Personal Access Token (PAT) जनरेट करें
> और इसे पहले `censys` एंट्री के रूप में रखें। यदि आपका खाता भुगतान योजना पर है,
> तो दूसरी एंट्री के रूप में अपना Organization ID (API Access पृष्ठ पर दिखाया गया) जोड़ें — इसके बिना, API
> Free-tier अनुमतियाँ लौटाता है और कोई परिणाम नहीं दे सकता है (HTTP 403)।
## SS
- स्मार्ट कलरिंग: पीले हाइलाइट्स गैर-Cloudflare IPs को दर्शाते हैं, जो केवल जाँच के अधीन होंगे।
- यदि पहला अनुरोध Cloudflare द्वारा अवरुद्ध है तो title पैरामीटर सेट किया जा सकता है।(title 'Just a moment...' होगा) यदि title पैरामीटर सेट नहीं है, तो HTML title स्वतः प्राप्त होता है।
<p align="left">
<img src="https://assets.kitploit.com/production/public/readmes/49199/e80b0d75e679cf55e02181d2af808f95830912a200c11a7c30427223bd7099cf.png">
</p>
<p align="left">
<img src="https://assets.kitploit.com/production/public/readmes/49199/71d5a3a4afae8732b7a7f945260bf65cdd5b28599adc9677d601c9977a84bf0f.png">
</p>
## 🏆 प्रायोजन
इस प्रोजेक्ट को गर्व से [ZoomEye](https://www.zoomeye.ai) का समर्थन प्राप्त है।
<p height="100" align="left">
<a href="https://www.zoomeye.ai"><img height="100" src="https://www.zoomeye.ai/static/logo-CVnk4X2t.svg"></a>
</p>
## कार्य सूची
- फ़ेविकॉन खोज
- viewdns एकीकरण