OmniScan व्यापक भेद्यता स्कैनर
OmniScan एक Python-आधारित हल्का, बहु-इंजन भेद्यता स्कैनर है, जिसे विशेष रूप से रेड टीम संचालन और सुरक्षा अनुसंधान के लिए डिज़ाइन किया गया है। यह न केवल हल्का Nuclei इंजन (Lite) और Afrog इंजन को एकीकृत करता है, बल्कि शक्तिशाली संपत्ति संग्रह और परिणाम प्रबंधन सुविधाएँ भी प्रदान करता है।
मुख्य विशेषताएं
1. बहु-इंजन समर्थन
- Nuclei Lite इंजन (अंतर्निहित):
- Python मूल रूप से कार्यान्वित Nuclei मुख्य तर्क, जिसे Go वातावरण पर निर्भर होने की आवश्यकता नहीं है।
- सुरक्षा वृद्धि:
simpleeval का उपयोग eval के स्थान पर किया जाता है, और सैंडबॉक्स वातावरण में DSL अभिव्यक्तियाँ निष्पादित की जाती हैं, जिससे दुर्भावनापूर्ण टेम्पलेट कोड को चलने से रोका जा सके।
- स्मार्ट चर निर्माण: अपरिभाषित टेम्पलेट चर (जैसे
{{lang-file}} -> etc/passwd) को स्वचालित रूप से पहचानें और भरें, स्मार्ट फ़ज़िंग का समर्थन करता है।
- गहन अनुकूलता:
- अधिकांश Nuclei Helper फ़ंक्शन का समर्थन करता है (जिसमें
hmac, gzip, reverse, rand_base आदि शामिल हैं)।
flow और req-condition तर्क नियंत्रण का समर्थन करता है।
cookie-reuse सत्र रखरखाव और redirects रीडायरेक्ट नियंत्रण का समर्थन करता है।
- स्मार्ट गलत सकारात्मक फ़िल्टरिंग:
- स्मार्ट FP कमी: 200 OK पृष्ठों के लिए, केवल स्थिति कोड से मेल खाने वाले लेकिन कीवर्ड से मेल न खाने वाले गलत सकारात्मक को स्मार्ट रूप से पहचानें और फ़िल्टर करें (सख्त मोड अनुमान)।
- WAF पहचान: 403/429 जैसे WAF अवरोधन पृष्ठों को स्वचालित रूप से पहचानें, गलत सकारात्मक से बचें।
- OOB इंटरैक्शन डिटेक्शन (वर्धित):
- अंतर्निहित
Interactsh क्लाइंट, बिना प्रतिक्रिया वाली भेद्यता (जैसे Blind RCE, SSRF) को स्वचालित रूप से संभालता है।
- कोरिलेशन ID: प्रत्येक अनुरोध के लिए एक अद्वितीय संबंध ID उत्पन्न करता है, OOB इंटरैक्शन का सटीक मिलान करता है और गलत सकारात्मक को पूरी तरह से समाप्त करता है।
- अनुकूली प्रतीक्षा: OOB डिटेक्शन प्रतीक्षा समय को बुद्धिमानी से समायोजित करता है, गति और सटीकता के बीच संतुलन बनाता है।
- Afrog इंजन: Afrog स्कैनर को एकीकृत करता है, अतिरिक्त भेद्यता पहचान क्षमता प्रदान करता है।
- Nuclei आधिकारिक इंजन: सिस्टम पर स्थापित Nuclei बाइनरी को स्कैन करने के लिए कॉल करने का समर्थन करता है।
- XRay इंजन: वेब स्कैनिंग के लिए XRay को कॉल करने का समर्थन करता है।
2. प्लगइन सिस्टम (नया)
- Python प्लगइन विस्तार: उपयोगकर्ताओं को स्कैन प्लगइन के रूप में Python स्क्रिप्ट लिखने और जटिल तर्क को संभालने की अनुमति देता है।
- दृश्य प्रगति: अंतर्निहित
tqdm प्रगति बार, प्रत्येक लक्ष्य पर प्रत्येक प्लगइन की स्कैन प्रगति को वास्तविक समय में प्रदर्शित करता है।
- सरल और उपयोग में आसान: बस
BasePlugin वर्ग से विरासत प्राप्त करें और check(url) विधि को लागू करें।
- निर्बाध एकीकरण: प्लगइन स्कैन परिणाम स्वचालित रूप से मुख्य रिपोर्ट में शामिल होते हैं, जो Nuclei परिणामों के साथ एकीकृत रूप से प्रबंधित होते हैं।
- लक्षित स्कैनिंग: विशेष जाँच के लिए एक या अधिक प्लगइन फ़ाइलों को निर्दिष्ट करने का समर्थन करता है।
- उदाहरण प्लगइन:
git_config.py: .git/config लीक का पता लगाएं
spring_boot.py: Spring Boot Actuator का पता लगाएं
ds_store.py: .DS_Store लीक का पता लगाएं
phpinfo.py: phpinfo() पृष्ठ का पता लगाएं
backup_files.py: सामान्य बैकअप फ़ाइलों (.bak, .zip आदि) का पता लगाएं
swagger_ui.py: Swagger UI दस्तावेज़ीकरण का पता लगाएं
3. संपत्ति संग्रह
- FOFA खोज: FOFA API को एकीकृत करता है, सिंटैक्स के अनुसार बैच में संपत्ति खोजने का समर्थन करता है (जैसे
country="CN")।
- Shodan खोज: Shodan API को एकीकृत करता है, कीवर्ड के अनुसार संपत्ति खोजने का समर्थन करता है।
- एकल लक्ष्य: त्वरित स्कैन के लिए सीधे एकल URL निर्दिष्ट करने का समर्थन करता है।
- स्थानीय लक्ष्य लोडिंग: टेक्स्ट फ़ाइल से URL सूची को बैच में लोड करने का समर्थन करता है।
- स्मार्ट जीवित पहचान: स्कैन से पहले स्वचालित रूप से HTTP जीवित पहचान करें, अमान्य लक्ष्यों को फ़िल्टर करें।
- URL मानकीकरण: स्वचालित रूप से URL प्रोटोकॉल (http/https) को पूरा करें और डुप्लिकेट हटाएं।
4. उच्च प्रदर्शन एसिंक्रोनस आर्किटेक्चर और विशाल टेम्पलेट समर्थन
- Python
asyncio और aiohttp फ्रेमवर्क का उपयोग करता है।
- मेमोरी ऑप्टिमाइज़ेशन (नया):
- आलसी लोडिंग: टेम्पलेट फ़ाइलें आवश्यकतानुसार लोड की जाती हैं, एक बार में सभी फ़ाइलों को लोड करने की आवश्यकता नहीं है।
- बैच प्रोसेसिंग: करोड़ों POC टेम्पलेट्स के बैच स्कैन का समर्थन करता है (डिफ़ॉल्ट रूप से प्रति बैच 5000), बड़े पैमाने पर स्कैनिंग के दौरान मेमोरी ओवरफ़्लो (OOM) समस्या को पूरी तरह से हल करता है।
- स्वचालित मेमोरी रिसाइक्लिंग: प्रत्येक बैच स्कैन पूरा होने पर स्वचालित रूप से मेमोरी जारी होती है।
- वास्तविक समय प्रगति निगरानी: विस्तृत बैच प्रगति और प्रतिशत प्रदर्शित करता है।
- LogFilter सिस्टम: "Illegal cookie name" जैसी गैर-महत्वपूर्ण त्रुटियों को स्वचालित रूप से ब्लॉक करता है, आउटपुट को साफ रखता है।
5. परिणाम प्रबंधन
- वास्तविक समय परिणाम सहेजना:
- प्रत्येक भेद्यता पाए जाने पर तुरंत SQLite डेटाबेस और CSV फ़ाइल में लिखता है, प्रोग्राम बाधित होने पर डेटा हानि को रोकता है।
- प्रत्येक लक्ष्य स्कैन पूरा होने पर स्वचालित रूप से सारांश आँकड़े अपडेट करता है।
- बहु-प्रारूप रिपोर्ट: वास्तविक समय में JSON, CSV और HTML प्रारूपों में स्कैन रिपोर्ट उत्पन्न करता है।
- SQLite डेटाबेस: अंतर्निहित SQLite डेटाबेस, स्कैन परिणामों को स्वचालित रूप से डुप्लिकेट हटाता है (टेम्पलेट ID + लक्ष्य + URL के आधार पर)।
- विस्तृत सारांश:
- स्कैन प्रक्रिया के दौरान प्रत्येक लक्ष्य के लिए भेद्यता सारांश वास्तविक समय में आउटपुट करता है (उस लक्ष्य के वर्तमान बैच और संचयी कुल पाए गए शामिल हैं)।
- प्रगति बार वैश्विक संचयी पाई गई भेद्यताओं की कुल संख्या प्रदर्शित करता है।
- स्कैन समाप्त होने के बाद वैश्विक भेद्यता आँकड़े प्रदान करता है।
6. OOB (आउट-ऑफ-बैंड) इंटरैक्शन डिटेक्शन
- पूर्ण स्वचालित बंद-लूप डिटेक्शन: Blind RCE, SSRF, Blind SQLi जैसी बिना प्रतिक्रिया वाली भेद्यताओं को स्वचालित रूप से संभालता है।
- अंतर्निहित Interactsh क्लाइंट:
- स्वचालित रूप से
interactsh-client बाइनरी फ़ाइल डाउनलोड और प्रबंधित करता है। (मैंने interactsh-client.zip अपलोड कर दिया है, आप इसे सीधे इस निर्देशिका में अनज़िप कर सकते हैं।)
- स्वचालित रूप से OOB पेलोड URL प्राप्त करता है (जैसे
xxx.oast.pro)।
- वास्तविक समय में DNS/HTTP/SMTP इंटरैक्शन लॉग की निगरानी करता है।
- शून्य कॉन्फ़िगरेशन: स्कैनर स्वचालित रूप से टेम्पलेट में
{{interactsh-url}} को वास्तविक समय में प्राप्त पेलोड से बदल देता है।
त्वरित आरंभ
पर्यावरण आवश्यकताएँ
- Python 3.8+
- Linux / macOS / Windows
स्थापना
-
रिपॉजिटरी क्लोन करें:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
-
निर्भरताएँ स्थापित करें:
pip3 install -r requirements.txt
-
उपकरण कॉन्फ़िगर करें (वैकल्पिक):
- यदि
Afrog या XRay का उपयोग करते हैं, तो सुनिश्चित करें कि संबंधित निष्पादन योग्य फ़ाइलें प्रोजेक्ट रूट निर्देशिका या सिस्टम पथ में हैं।
- API कुंजी और स्कैन पैरामीटर सेट करने के लिए
config.yml (वैकल्पिक) कॉन्फ़िगर करें।
उपयोग उदाहरण
1. एकल लक्ष्य स्कैन
एकल URL स्कैन करें:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
2. संपत्ति संग्रह और स्कैन (FOFA)
FOFA से संपत्ति खोजें और Nuclei Lite इंजन से स्कैन करें:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
3. स्थानीय बैच स्कैन
urls.txt से लक्ष्य पढ़ें और स्कैन करें:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
4. स्कैन उपकरण निर्दिष्ट करें
- Nuclei Lite:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/
- Afrog:
python3 omniscan.py -l urls.txt --tool afrog
- XRay:
python3 omniscan.py -l urls.txt --tool xray
5. इंटरैक्टिव मोड
--tool पैरामीटर के बिना चलाएं, इंटरैक्टिव मेनू में उपकरण चुनें:
python3 omniscan.py -l urls.txt