
पेंटेस्ट स्क्रीनशॉट के विश्लेषण के लिए कन्वोल्यूशनल न्यूरल नेटवर्क

अपने उन स्क्रीनशॉट को एक त्वरित नज़र से देखें।
Eyeballer बड़े पैमाने के नेटवर्क पेनिट्रेशन टेस्ट के लिए है, जहाँ आपको वेब-आधारित होस्ट के एक बड़े सेट से "दिलचस्प" लक्ष्य खोजने होते हैं। अपने पसंदीदा स्क्रीनशॉटिंग टूल का उपयोग सामान्य रूप से करें (EyeWitness या GoWitness) और फिर उन्हें Eyeballer के माध्यम से चलाएँ ताकि यह बता सके कि किसमें कमज़ोरियाँ होने की संभावना है और किसमें नहीं।
लाइव प्रयास करें: https://eyeballer.bishopfox.com
| पुरानी दिखने वाली साइटें | लॉगिन पृष्ठ |
|---|---|
![]() | ![]() |
| वेबऐप | कस्टम 404 |
|---|---|
![]() | ![]() |
| पार्क्ड डोमेन |
|---|
![]() |
पुरानी दिखने वाली साइटें ब्लॉकी फ्रेम, टूटा हुआ CSS, वह विशेष "जे ने सै क्वा" जो किसी वेबसाइट में होती है जो 2000 के दशक की शुरुआत में डिज़ाइन की गई लगती है। जब आप इसे देखते हैं तो पहचान जाते हैं। पुरानी वेबसाइटें सिर्फ बदसूरत नहीं होतीं, वे आमतौर पर बेहद कमज़ोर भी होती हैं। जब आप किसी चीज़ में हैक करना चाहते हैं, तो ये वेबसाइटें सोने की खान होती हैं।
लॉगिन पृष्ठ लॉगिन पृष्ठ पेन टेस्टिंग के लिए मूल्यवान होते हैं, वे संकेत देते हैं कि अतिरिक्त कार्यक्षमता है जिस तक आपके पास अभी पहुँच नहीं है। इसका मतलब यह भी है कि क्रेडेंशियल गणना हमलों की एक सरल अनुवर्ती प्रक्रिया है। आप सोच सकते हैं कि लॉगिन पृष्ठ खोजने के लिए एक सरल अनुमानी (heuristic) सेट कर सकते हैं, लेकिन व्यवहार में यह बहुत कठिन है। आधुनिक साइटें केवल एक साधारण इनपुट टैग का उपयोग नहीं करतीं जिसे हम grep कर सकें।
वेबऐप यह आपको बताता है कि यहाँ पृष्ठों और कार्यक्षमता का एक बड़ा समूह उपलब्ध है जो हमले के लिए सतह क्षेत्र के रूप में काम कर सकता है। यह एक साधारण लॉगिन पृष्ठ के विपरीत है, जिसमें कोई अन्य कार्यक्षमता नहीं है। या एक डिफ़ॉल्ट IIS लैंडिंग पृष्ठ जिसमें कोई अन्य कार्यक्षमता नहीं है। यह लेबल आपको संकेत देना चाहिए कि यहाँ हमला करने के लिए एक वेब एप्लिकेशन है।
कस्टम 404 आधुनिक साइटें टूटे रोबोट या उदास कुत्तों की तस्वीरों के साथ आकर्षक कस्टम 404 पृष्ठ बनाना पसंद करती हैं। दुर्भाग्य से, वे ऐसा करते समय HTTP 200 प्रतिक्रिया कोड भी लौटाना पसंद करती हैं। अक्सर, "404" पृष्ठ में "404" पाठ भी नहीं होता है। ये पृष्ठ आमतौर पर अरुचिकर होते हैं, इस तथ्य के बावजूद कि देखने में बहुत कुछ चल रहा है, और Eyeballer आपको इन्हें छाँटने में मदद कर सकता है।
पार्क्ड डोमेन पार्क्ड डोमेन वे वेबसाइटें हैं जो वास्तविक दिखती हैं, लेकिन मान्य हमले की सतह नहीं हैं। वे स्थानापन्न पृष्ठ होते हैं, आमतौर पर किसी वास्तविक कार्यक्षमता से रहित, लगभग पूरी तरह से विज्ञापनों से बने होते हैं, और आमतौर पर हमारे वास्तविक लक्ष्य द्वारा नहीं चलाए जाते। यह तब मिलता है जब निर्दिष्ट डोमेन गलत हो या समाप्त हो गया हो। इन पृष्ठों को ढूंढना और उन्हें दायरे से हटाना समय के साथ बहुत मूल्यवान है।
pip पर आवश्यक पैकेज डाउनलोड करें:
sudo pip3 install -r requirements.txt
या यदि आप GPU समर्थन चाहते हैं:
sudo pip3 install -r requirements-gpu.txt
नोट: TensorFlow के साथ GPU सेट करना इस README के दायरे से बहुत बाहर है। हार्डवेयर संगतता पर विचार करना है, ड्राइवर स्थापित करने हैं... बहुत कुछ है। इसलिए यदि आप GPU चाहते हैं तो आपको यह भाग स्वयं ही समझना होगा। लेकिन कम से कम Python पैकेज के दृष्टिकोण से, उपरोक्त requirements फ़ाइल आपको कवर करती है।
पूर्व-प्रशिक्षित भार (Pretrained Weights)
नवीनतम पूर्व-प्रशिक्षित भार के लिए, GitHub पर रिलीज़ अनुभाग देखें।
प्रशिक्षण डेटा आप हमारा प्रशिक्षण डेटा यहाँ पा सकते हैं:
https://www.kaggle.com/altf42600/pentest-screensots
प्रशिक्षण डेटा से आपको दो चीज़ें चाहिए:
images/ फ़ोल्डर, जिसमें सभी स्क्रीनशॉट (224x224 पर आकार बदले गए) होंlabels.csv जिसमें सभी लेबल होंदोनों को Eyeballer कोड ट्री के मूल में कॉपी करें।
इसके अलावा, आप एक पूर्व-प्रशिक्षित भार फ़ाइल पा सकते हैं जिसे आप बिना प्रशिक्षण के सीधे उपयोग कर सकते हैं।
bishop-fox-pretrained-vN.h5यह GitHub पर है, नवीनतम के लिए releases अनुभाग देखें।
नोट: सर्वोत्तम परिणामों के लिए, सुनिश्चित करें कि आप अपनी वेबसाइटों का स्क्रीनशॉट मूल 1.6x पहलू अनुपात में लेते हैं। अर्थात: 1440x900। Eyeballer छवि को आपके लिए स्वचालित रूप से सही आकार में स्केल करेगा, लेकिन यदि पहलू अनुपात गलत है तो यह इस तरह से संकुचित होगी जो भविष्यवाणी प्रदर्शन को प्रभावित करेगा।
कुछ स्क्रीनशॉट को देखने के लिए, बस "predict" मोड चलाएँ:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict YOUR_FILE.png
या फ़ाइलों की पूरी निर्देशिका के लिए:
eyeballer.py --weights YOUR_WEIGHTS.h5 predict PATH_TO/YOUR_FILES/
Eyeballer परिणाम आपको मानव-पठनीय प्रारूप (एक results.html फ़ाइल ताकि आप आसानी से ब्राउज़ कर सकें) और मशीन-पठनीय प्रारूप (एक results.csv फ़ाइल) में वापस देगा।
Eyeballer के प्रदर्शन को एक मूल्यांकन डेटासेट के विरुद्ध मापा जाता है, जो कुल स्क्रीनशॉट का 20% यादृच्छिक रूप से चुना जाता है। चूँकि इन स्क्रीनशॉट का प्रशिक्षण में कभी उपयोग नहीं किया जाता, वे यह देखने का एक प्रभावी तरीका हो सकते हैं कि मॉडल कितना अच्छा प्रदर्शन कर रहा है। यहाँ नवीनतम परिणाम हैं:
| समग्र बाइनरी सटीकता | 93.52% |
|---|---|
| सब-या-कुछ नहीं सटीकता | 76.09% |
समग्र बाइनरी सटीकता संभवतः वह है जिसे आप मॉडल की "सटीकता" मानते हैं। यह संभावना है कि किसी भी एकल लेबल को देखते हुए, वह सही है।
सब-या-कुछ नहीं सटीकता अधिक कठोर है। इसके लिए, हम किसी छवि के सभी लेबलों पर विचार करते हैं और इसे विफलता मानते हैं यदि कोई भी लेबल गलत है। यह सटीकता रेटिंग संभावना है कि मॉडल किसी भी छवि के लिए सभी लेबलों की सही भविष्यवाणी करता है।
Precision बनाम Recall की विस्तृत व्याख्या के लिए, Wikipedia देखें.
एक नया मॉडल प्रशिक्षित करने के लिए, चलाएँ:
eyeballer.py train
इसे उचित समय में चलाने के लिए आपको अच्छे GPU वाली मशीन की आवश्यकता होगी। इसे सेट करना इस README के दायरे से बाहर है।
यह एक नया मॉडल फ़ाइल (डिफ़ॉल्ट रूप से weights.h5) आउटपुट करेगा।
आपने अभी एक नया मॉडल प्रशिक्षित किया, बढ़िया! देखते हैं कि यह कुछ ऐसी छवियों के विरुद्ध कैसे प्रदर्शन करता है जो इसने पहले कभी नहीं देखी हैं, विभिन्न मैट्रिक्स पर:
eyeballer.py --weights YOUR_WEIGHTS.h5 evaluate
आउटपुट प्रोग्राम के प्रत्येक लेबल के लिए मॉडल की सटीकता (Precision और Recall दोनों में) का वर्णन करेगा। ("उपरोक्त में से कोई नहीं" को एक छद्म-लेबल के रूप में शामिल करते हुए)
| लेबल | सटीकता (Precision) | पुनःस्मरण (Recall) |
|---|
| कस्टम 404 | 80.20% | 91.01% |
| लॉगिन पृष्ठ | 86.41% | 88.47% |
| वेबऐप | 95.32% | 96.83% |
| पुरानी दिखने वाली | 91.70% | 62.20% |
| पार्क्ड डोमेन | 70.99% | 66.43% |