
बाहरी और आंतरिक नेटवर्क हमले की सतह की खोज के लिए उपकरण
ASF का उद्देश्य एक आक्रमण सतह प्रहरी के रूप में कार्य करके संगठनों की रक्षा करना है, जो एक "ऑब्जेक्ट" प्रदान करता है जो हो सकता है: एक डोमेन, IP पता या CIDR (आंतरिक या बाहरी), ASF संपत्तियों/उप-डोमेन की खोज करेगा, उनके पोर्ट और सेवाओं की गणना करेगा, डेल्टा को ट्रैक करेगा और सार्वजनिक रूप से उपलब्ध POC के साथ 0 दिवसीय कमजोरियों के खिलाफ समर्थन की एक अतिरिक्त परत का लाभ उठाते हुए एक सतत और लचीले हमले और अलर्टिंग ढांचे के रूप में कार्य करेगा।
गतिशील संपत्तियों और उनसे जुड़ी कमजोरियों की निरंतर स्कैनिंग या शोषण के माध्यम से एक ही शीशे में स्वचालित खोज का समर्थन और लचीलापन की कमी ASF के निर्माण का प्रेरक कारण थी, वर्तमान समाधान प्रौद्योगिकी या उस कार्यक्रम द्वारा प्रतिबंधित हैं जिसके लिए वे बनाए गए हैं, हम एक ऐसा समाधान चाहते थे जो स्केलेबल हो और साथ ही पूर्ण कमजोरी जीवनचक्र को संभालने के लिए लोकप्रिय ओपन सोर्स सुरक्षा उपकरणों का उपयोग करता हो।
ASF ओपन सोर्स प्रोजेक्ट्स की एक नस्ल है जो GUI के शीर्ष पर एक ही शीशे में लिपटे उपकरणों के एक शक्तिशाली शस्त्रागार का लाभ उठाती है। ASF आर्किटेक्चर आरेख नीचे दर्शाया गया है:

Kali Linux का नवीनतम संस्करण (64 बिट्स पर परीक्षण किया गया) - https://kali.org/get-kali/
कम से कम 16 GB RAM
1 TB HD - XFS फाइलसिस्टम अनुशंसित
निम्नलिखित चरणों को root उपयोगकर्ता के रूप में निष्पादित करें ताकि आक्रमण सतह ढांचे को स्थापित और चलाया जा सके।
रिपॉजिटरी को क्लोन करें
/opt/ निर्देशिका में क्लोन करें।git clone https://github.com/vmware-labs/attack-surface-framework.git /opt/asf
cd /opt/asf/
पर्यावरण फ़ाइल कॉन्फ़िगर करें
प्रोजेक्ट निर्देशिका में एक .env.prod फ़ाइल बनाएं। यह setup.sh के सही ढंग से चलने के लिए महत्वपूर्ण है।
नोट: आप .env.prod फ़ाइल उत्पन्न कर सकते हैं या backup.env.prod से कॉपी कर सकते हैं, अपने वातावरण के अनुरूप आवश्यक परिवर्तन करके।
.env.prod की उदाहरण संरचना:
# Django settings, don't enable debug on production!
DEBUG=True
DJANGO_ADMIN_ENABLED=True
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=False
SOCIAL_AUTH_GITHUB_ENABLED=False
DJANGO_SAML2_ENABLED=False #Enable Social Authenticatio with Google.
SAML2_SSO_URL=https://saml2.local
SAML2_ASF_URL=https://atttacksurfaceframework.local
ALLOWED_HOSTS=*,localhost, config('SERVER', default='127.0.0.1')
MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
JIRA_ENABLED=False
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=""
WPScan_Default_Severity=medium
स्थानीय Kali Linux वातावरण के लिए: ASF तक पहुँचने के लिए अपने वेब ब्राउज़र में http://127.0.0.1:2021 पर नेविगेट करें
ASF को सार्वजनिक रूप से उजागर नहीं किया जाना चाहिए, यह मानते हुए कि आप इसे क्लाउड प्रदाता पर या स्थानीय इंस्टेंस पर भी स्थापित करते हैं, हम SSH के माध्यम से पोर्ट फ़ॉरवर्डिंग का उपयोग करके इसे एक्सेस करने की सलाह देते हैं, यहाँ एक उदाहरण है:
ssh -i "key.pem" -L 2021:127.0.0.1:2021 user@yourhost - ASF GUI के लिए
फिर अपना ब्राउज़र खोलें और यहाँ जाएं:
http://127.0.0.1:2021 - ASF के लिए - user:youruser pass:yourpass (प्रारंभिक सेटअप में प्रदान किया गया)
सुरक्षा टिप: सुनिश्चित करें कि MongoDB सहित प्रत्येक घटक सुरक्षित रूप से कॉन्फ़िगर किया गया है, और ASF तक आंतरिक रूप से भी सुरक्षित रूप से पहुँचा गया है। अपनी सुरक्षा रणनीति में ASF को लागू करते समय सुरक्षा सर्वोत्तम प्रथाओं का पालन करना महत्वपूर्ण है।
इसके अतिरिक्त आप .env.prod में सही सोशल लॉगिन सुविधा को सक्षम करके सोशल लॉगिन कॉन्फ़िगर कर सकते हैं
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=True (False)
SOCIAL_AUTH_GITHUB_ENABLED=True (False)
DJANGO_SAML2_ENABLED=True (False)
सोशल ऐप जोड़ने के लिए एडमिन पैनल http://127.0.0.1:2021/admin पर नेविगेट करें।
ध्यान दें कि यदि सोशल लॉगिन सक्षम है और एडमिन पैनल में कॉन्फ़िगर नहीं किया गया है तो ASF लॉगिन पृष्ठ प्रदर्शित नहीं करेगा - वापस जाने के लिए बस .env.prod में सोशल लॉगिन को अक्षम करें
जीरा एकीकरण और टिकटिंग को सक्षम करने के लिए, ASF .env.prod फ़ाइल में निम्नलिखित मान सेट करने का समर्थन करता है:
JIRA_ENABLED=True
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=
रेड टीम मॉड्यूल में Wordpress Scan का उपयोग करने के लिए redteam/wpscan/wpscan.sh की लाइन #7 में WPScan API टोकन डालें।
ASF के दो दायरे हैं:
A) बाहरी: आपकी सार्वजनिक रूप से उजागर संपत्तियों के लिए।
B) आंतरिक: आपके कॉर्पोरेट नेटवर्क में संपत्तियां।
बाहरी दायरे के लिए, प्रवाह चार बुनियादी चरणों से गुज़रता है:
A.1 लक्ष्य - यहाँ आप अपने लक्ष्य इनपुट करते हैं

A.2 खोज - मॉड्यूल जो सार्वजनिक रूप से उजागर संपत्तियों की खोज के लिए Amass प्रक्रिया चलाता है, अपने API कुंजियाँ सेट करने के लिए अपनी कॉन्फ़िगरेशन फ़ाइल बनाने के लिए स्वतंत्र महसूस करें https://github.com/OWASP/Amass/blob/master/examples/config.ini

A.3 गणना - मॉड्यूल जो पोर्ट/सेवाओं की गणना करने और रेडटीम मॉड्यूल के लिए फ़िल्टर बनाने के लिए NMAP प्रक्रिया चलाता है। डिफ़ॉल्ट सेटअप --top-ports 200 देखना है, लेकिन आप इसे /opt/asf/tools/nmap/*.sh में अपनी आवश्यकताओं के अनुसार ढाल सकते हैं

A.4 रेडटीम - मॉड्यूल जो "/opt/asf/redteam" में स्थित उप-मॉड्यूल चलाता है

नोट: आंतरिक दायरे के लिए, प्रवाह A.1(लक्ष्य), A.3(गणना) और A.4(रेडटीम) से होकर गुज़रता है।
attack-surface-framework प्रोजेक्ट टीम समुदाय से योगदान का स्वागत करती है। attack-surface-framework के साथ काम करना शुरू करने से पहले, कृपया हमारा डेवलपर प्रमाणपत्र ऑफ़ ओरिजिन पढ़ें। इस रिपॉजिटरी में सभी योगदान उस पृष्ठ पर बताए अनुसार हस्ताक्षरित होने चाहिए। आपके हस्ताक्षर प्रमाणित करते हैं कि आपने पैच लिखा है या इसे ओपन-सोर्स पैच के रूप में पास करने का अधिकार है। अधिक विस्तृत जानकारी के लिए, CONTRIBUTING.md देखें।
Attack Surface Framework कॉपीराइट 2021 VMware, Inc.
नीचे दिया गया BSD-2 लाइसेंस ("लाइसेंस") Attack Surface Framework प्रोजेक्ट के सभी भागों पर लागू होता है। आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में ही कर सकते हैं।
BSD-2 लाइसेंस
स्रोत और बाइनरी रूपों में, संशोधन के साथ या बिना, पुनर्वितरण और उपयोग की अनुमति है, बशर्ते निम्नलिखित शर्तें पूरी हों:
स्रोत कोड के पुनर्वितरण में उपरोक्त कॉपीराइट नोटिस, शर्तों की यह सूची और निम्नलिखित अस्वीकरण को बनाए रखना चाहिए।
बाइनरी रूप में पुनर्वितरण में दस्तावेज़ीकरण और/या वितरण के साथ प्रदान की गई अन्य सामग्रियों में उपरोक्त कॉपीराइट नोटिस, शर्तों की यह सूची और निम्नलिखित अस्वीकरण को पुन: प्रस्तुत करना चाहिए।
यह सॉफ्टवेयर कॉपीराइट धारकों और योगदानकर्ताओं द्वारा "जैसा है" प्रदान किया जाता है और कोई भी व्यक्त या निहित वारंटी, जिसमें शामिल हैं लेकिन व्यापारिकता और किसी विशेष उद्देश्य के लिए उपयुक्तता की निहित वारंटी तक सीमित नहीं हैं, अस्वीकृत की जाती हैं। किसी भी स्थिति में कॉपीराइट धारक या योगदानकर्ता किसी भी प्रत्यक्ष, अप्रत्यक्ष, आकस्मिक, विशेष, अनुकरणीय या परिणामी क्षति (जिसमें शामिल हैं लेकिन वैकल्पिक वस्तुओं या सेवाओं की खरीद; उपयोग, डेटा या लाभ की हानि; या व्यवधान तक सीमित नहीं हैं) के लिए उत्तरदायी नहीं होंगे, चाहे वे किसी भी सिद्धांत पर आधारित हों, चाहे वे अनुबंध, सख्त दायित्व या अपकार (लापरवाही सहित) में हों, जो भी सॉफ्टवेयर के उपयोग से उत्पन्न हों, भले ही ऐसी क्षति की संभावना के बारे में सलाह दी गई हो।
Attack Surface Framework कॉपीराइट 2021 VMware, Inc.
यह उत्पाद आपको BSD-2 लाइसेंस ("लाइसेंस") के तहत लाइसेंस प्राप्त है। आप इस उत्पाद का उपयोग केवल BSD-2 लाइसेंस के अनुपालन में ही कर सकते हैं।
इस उत्पाद में अलग-अलग कॉपीराइट नोटिस और लाइसेंस शर्तों के साथ कई उप-घटक शामिल हो सकते हैं। इन उप-घटकों का आपका उपयोग उप-घटक के लाइसेंस की शर्तों और नियमों के अधीन है, जैसा कि LICENSE फ़ाइल में उल्लेखित है।
https://www.djangoproject.com/
https://github.com/creativetimofficial/material-dashboard-django
https://github.com/OWASP/Amass
https://github.com/lanjelot/patator
https://github.com/FortyNorthSecurity/EyeWitness
https://github.com/projectdiscovery/nuclei
https://www.graylog.org/products/open-source
https://github.com/wpscanteam/wpscan
https://github.com/vanhauser-thc/thc-hydra
https://nxlog.co/products/nxlog-community-edition
नोट: ASF के अलर्टिंग या रिपोर्टिंग कार्यों के लिए MongoDB आवश्यक है।
docker run -dp 27017:27017 -v local-mongo:/data/db --name local-mongo --restart=always -e MONGO_INITDB_ROOT_USERNAME=<<>> -e MONGO_INITDB_ROOT_PASSWORD=<<>> mongo
.env.prod को निम्नलिखित विवरणों के साथ अपडेट करें:MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
./setup.sh चलाएं