
संपत्ति खोज और पहचान उपकरण तेजी से वेब फिंगरप्रिंट जानकारी की पहचान करते हैं, संपत्ति प्रकारों का पता लगाते हैं। रेड टीम को लक्ष्य संपत्ति जानकारी का तेजी से पता लगाने में सहायता करते हैं, ब्लू टीम को संदिग्ध कमजोरियों का पता लगाने में सहायता करते हैं।
[中文 Readme]
Dismap का स्थान एक संपत्ति खोज और पहचान उपकरण है। यह web/tcp/udp जैसे प्रोटोकॉल और फ़िंगरप्रिंट जानकारी को तेज़ी से पहचान सकता है, संपत्ति के प्रकार का पता लगा सकता है, और आंतरिक और बाहरी नेटवर्क के लिए उपयुक्त है। यह रेड टीम के सदस्यों को संभावित जोखिम वाली संपत्ति जानकारी का तेज़ी से पता लगाने में मदद करता है, और ब्लू टीम के सदस्यों को संदिग्ध कमज़ोर संपत्तियों का पता लगाने में सहायता करता है।
Dismap के पास एक पूर्ण फ़िंगरप्रिंट नियम आधार है, जिसमें वर्तमान में tcp/udp/tls प्रोटोकॉल फ़िंगरप्रिंट और 4500+ वेब फ़िंगरप्रिंट नियम शामिल हैं, जो favicon, body, header आदि की पहचान कर सकते हैं। नियम आधार का परिचय RuleLab पर स्थित है।
स्कैन परिणाम सीधे vulmap(>=0.8) पर भेजे जा सकते हैं भेद्यता स्कैनिंग के लिए। संस्करण 0.3 में, टेक्स्ट परिणाम बदल दिया गया है, json फ़ाइल परिणाम जोड़ा गया है, और vulmap >= 1.0 में लिंकेज का समर्थन करेगा।
Dismap Linux, MacOS और Windows के लिए एक बाइनरी फ़ाइल है। Release पर जाएँ और संगत संस्करण डाउनलोड करके चलाएँ:
# Linux या MacOS
zhzyker@debian:~$ chmod +x dismap-0.3-linux-amd64
zhzyker@debian:~$ ./dismap-0.3-linux-amd64 -h
# Windows
C:\Users\zhzyker\Desktop> dismap-0.3-windows-amd64.exe -h
-f, --file string निर्दिष्ट फ़ाइल से लक्ष्य पार्स करें बैच पहचान के लिए
-h, --help सहायता दिखाएँ
-i, --ip string नेटवर्क सेगमेंट [जैसे -i 192.168.1.0/24 या -i 192.168.1.1-10]
-j, --json string json प्रारूप में स्कैन परिणाम [जैसे -j r.json]
-l, --level int लॉग स्तर निर्दिष्ट करें (0:Fatal 1:Error 2:Info 3:Warning 4:Debug 5:Verbose) (डिफ़ॉल्ट 3)
-m, --mode string प्रोटोकॉल निर्दिष्ट करें [जैसे -m mysql/-m http]
--nc कैरेक्टर रंग प्रिंट न करें
--np जीवित होस्ट का पता लगाने के लिए ICMP/PING का उपयोग न करें
-o, --output string स्कैन परिणामों को निर्दिष्ट फ़ाइल में सहेजें (डिफ़ॉल्ट "output.txt")
-p, --port string कस्टम स्कैन पोर्ट [जैसे -p 80,443 या -p 1-65535]
--proxy string प्रॉक्सी स्कैन का उपयोग करें, http/socks5 प्रोटोकॉल समर्थित है [जैसे --proxy socks5://127.0.0.1:1080]
-t, --thread int समवर्ती थ्रेड की संख्या (डिफ़ॉल्ट 500)
--timeout int प्रतिक्रिया टाइमआउट समय, डिफ़ॉल्ट 5 सेकंड (डिफ़ॉल्ट 5)
--type string प्रकार निर्दिष्ट करें [जैसे --type tcp/--type udp]
-u, --uri string लक्ष्य URI निर्दिष्ट करें [जैसे -u https://example.com]
zhzyker@debian:~$ ./dismap -i 192.168.1.1/24
zhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -o result.txt -j result.json
zhzyker@debian:~$ ./dismap -i 192.168.1.1/24 --np --timeout 10
zhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -t 1000
zhzyker@debian:~$ ./dismap -u https://github.com/zhzyker/dismap
zhzyker@debian:~$ ./dismap -u mysql://192.168.1.1:3306
zhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -p 1-65535
संपूर्ण नियम आधार rule.go में स्थित एक स्ट्रक्ट है मोटा प्रारूप:
Rule:
Name: name /* नियम का नाम परिभाषित करें */
Type: header|body|ico /* समर्थित पहचान प्रकार, header, body, ico को किसी भी तार्किक संयोजन में इस्तेमाल किया जा सकता है, ico का अर्थ favicon.ico का अलग से अनुरोध करना और MD5 की गणना करना है */
Mode: and|or /* प्रकार निर्धारण तर्क */
Rule
InBody: str /* निर्दिष्ट करें कि प्रतिक्रिया बॉडी में कौन सा str मौजूद है */
InHeader: str /* निर्दिष्ट करें कि प्रतिक्रिया Header में कौन सा str मौजूद है */
InIcoMd5: str_md5 /* favicon.ico का MD5 */
Http:
ReqMethod: GET|POST /* कस्टम अनुरोध विधि, वर्तमान में GET और POST का समर्थन करता है */
ReqPath: str /* कस्टम अनुरोध वेब पथ */
ReqHeader: []str /* Http अनुरोध के header को कस्टमाइज़ करें */
ReqBody: str /* POST अनुरोध का body कस्टमाइज़ करें */
उदाहरण1:
जांचें कि क्या प्रतिक्रिया बॉडी में कैरेक्टर <flink-root></flink-root> मौजूद है
{"Apahce Flink", "body", "", InStr{"(<flink-root></flink-root>)", "", ""}, ReqHttp{"", "", nil, ""}},
उदाहरण2:
कस्टम अनुरोध पथ /myportal/control/main सेट करें, और कस्टम अनुरोध के परिणाम में header कैरेक्टर और body कैरेक्टर मौजूद हैं या नहीं, इसका निर्धारण करें
यह देखा जा सकता है कि सभी रेगुलर एक्सप्रेशन का समर्थन करते हैं
{"Apache OFBiz", "body|header", "or", InStr{"(Apache OFBiz|apache.ofbiz)", "(Set-Cookie: OFBiz.Visitor=(.*))", ""}, ReqHttp{"GET", "/myportal/control/main", nil, ""}},
header, body, ico के तार्किक संबंध को मनमाने ढंग से जोड़ा जा सकता है, लेकिन बार-बार नहीं जोड़ा जा सकता:
संभव: "body|header|ico", "or" या "body|header|ico", "or|and" या "body|ico", "and"
असंभव: "body|body", "or"
बार-बार संयोजन को प्रकार द्वारा निर्दिष्ट करने की अनुमति नहीं है, लेकिन InBody के माध्यम से कैरेक्टर का निर्धारण करके प्राप्त किया जा सकता है: "body", "", InStr{"(str1|str2)"}