
पेनिट्रेशन टेस्टर्स फ्रेमवर्क (PTF) अद्यतन उपकरणों के लिए मॉड्यूलर समर्थन का एक तरीका है।
===
पेनटेस्टर्स फ्रेमवर्क (PTF) एक Python स्क्रिप्ट है जो Debian/Ubuntu/ArchLinux आधारित वितरणों के लिए डिज़ाइन की गई है, ताकि पेनिट्रेशन टेस्टिंग के लिए एक समान और परिचित वितरण तैयार किया जा सके। पेंटेस्टर्स के रूप में, हम /pentest/ निर्देशिकाओं या अपने स्वयं के टूलसेट के आदी हो गए हैं जिन्हें हम हर समय अद्यतित रखना चाहते हैं। हमारे पास वे "go to" उपकरण हैं जिनका हम नियमित रूप से उपयोग करते हैं, और नवीनतम और सर्वोत्तम का उपयोग करना महत्वपूर्ण है।
PTF आपके सभी पेनिट्रेशन टेस्टिंग टूल्स (नवीनतम और सर्वोत्तम) को स्थापित करने, उन्हें कंपाइल करने, बनाने और इस प्रकार बनाने का प्रयास करता है कि आप किसी भी मशीन पर अपने वितरण को स्थापित/अद्यतन कर सकें। सब कुछ इस प्रकार व्यवस्थित है जो पेनिट्रेशन टेस्टिंग एक्जीक्यूशन स्टैंडर्ड (PTES) के अनुरूप है और बहुत सी ऐसी चीजों को समाप्त करता है जो शायद ही कभी उपयोग की जाती हैं। PTF स्थापना और पैकेजिंग को सरल करता है और आपके लिए एक संपूर्ण पेंटेस्ट फ्रेमवर्क बनाता है। चूंकि यह एक फ्रेमवर्क है, आप इसे अपनी आवश्यकता के अनुसार कॉन्फ़िगर और जोड़ सकते हैं। हम अक्सर आंतरिक रूप से विकसित रेपो देखते हैं जिनका उपयोग आप इस फ्रेमवर्क के भाग के रूप में कर सकते हैं। यह सब आप पर निर्भर है।
इस परियोजना का अंतिम लक्ष्य सामुदायिक समर्थन है। हम चाहते हैं कि github रिपॉजिटरी में नए टूल्स जोड़े जाएं। अपने मॉड्यूल सबमिट करें। उन्हें कॉन्फ़िगर और जोड़ना बहुत सरल है और इसमें केवल कुछ मिनट लगते हैं।
PTF को उचित रूप से काम करने के लिए python-pexpect की आवश्यकता है।
नीचे दिए गए कमांड को चलाएं:
pip install -r requirements.txt
./ptf
पहले config/ptf.config फ़ाइल देखें जिसमें सब कुछ स्थापित करने का आधार स्थान होता है। डिफ़ॉल्ट रूप से यह /pentest निर्देशिका में स्थापित होगा। एक बार जब आप इसे कॉन्फ़िगर कर लें, तो ./ptf (या python ptf) टाइप करके PTF चलाएं।
यह आपको एक Metasploitesque प्रकार के शेल में डाल देगा जो स्थिरता के लिए समान दिखने और अनुभव प्रदान करता है। Show modules, use <modules> आदि सभी स्वीकृत कमांड हैं। पहले चीजें पहले, हमेशा help या ? टाइप करें ताकि कमांड की पूरी सूची देख सकें।
PTF का उपयोग करने के तरीके पर एक वीडियो ट्यूटोरियल के लिए, हमारा Vimeo पेज देखें: https://vimeo.com/137133837
यदि आप सब कुछ स्थापित और/या अपडेट करना चाहते हैं, तो बस निम्नलिखित करें:
./ptf
use modules/install_update_all
yes
यह PTF के अंदर सभी टूल्स को स्थापित करेगा। यदि वे पहले से स्थापित हैं, तो यह पुनरावृत्त होगा और आपके लिए स्वचालित रूप से सब कुछ अपडेट करेगा।
आप प्रत्येक मॉड्यूल को अलग-अलग भी स्थापित कर सकते हैं, फिर use modules/update_installed का उपयोग करें जो केवल वही अपडेट करेगा जो आपने पहले स्थापित किया है।
उदाहरण के लिए:
./ptf
use modules/update_installed
यह केवल पिछले वाले को अपडेट करेगा जो आपने स्थापित किए हैं।
आप मॉड्यूल के बारे में जानकारी बदलने के लिए show options भी कर सकते हैं।
यदि आप केवल उदाहरण के लिए एक्सप्लॉइटेशन टूल्स स्थापित करना चाहते हैं, तो आप चला सकते हैं:
./ptf
use modules/exploitation/install_update_all
यह केवल एक्सप्लॉइटेशन मॉड्यूल स्थापित करेगा। आप किसी भी मॉड्यूल श्रेणी के लिए ऐसा कर सकते हैं।
आप केवल वे उपकरण स्थापित कर सकते हैं जो आप चाहते हैं, modules/custom_list/list.txt अनुभाग पर जाकर। list.txt फ़ाइल को संशोधित करें और उन उपकरणों को जोड़ें जिन्हें आप केवल स्थापित या अद्यतन करना चाहते हैं।
list.txt फ़ाइल का उदाहरण:
modules/exploitation/metasploit modules/post-exploitation/unicorn
फिर PTF में:
./ptf
use modules/custom_list/list
yes
यह आपको अपने मॉड्यूल कॉन्फ़िगरेशन को आगे ले जाने और केवल वे उपकरण स्थापित करने की अनुमति देता है जो आप चाहते हैं और उन्हें अद्यतित रखता है।
आप श्रेणी का उपयोग किए बिना भी केवल एक मॉड्यूल निर्दिष्ट कर सकते हैं:
./ptf
use trevorc2
yes
पहले, modules/ निर्देशिका पर जाएं, इसके अंदर Penetration Testing Execution Standard (PTES) चरणों के आधार पर उपनिर्देशिकाएं हैं। उन चरणों में जाएं और विभिन्न मॉड्यूल देखें। जैसे ही आप एक नया जोड़ते हैं, उदाहरण के लिए testing.py, अगली बार जब आप PTF लॉन्च करेंगे तो यह स्वचालित रूप से आयात हो जाएगा। मॉड्यूल को देखते समय कुछ प्रमुख घटक हैं जिन्हें पूरा किया जाना चाहिए।
नीचे एक नमूना मॉड्यूल है
AUTHOR="David Kennedy (ReL1K)"
DESCRIPTION="This module will install/update the Browser Exploitation Framework (BeEF)"
INSTALL_TYPE="GIT"
REPOSITORY_LOCATION="https://github.com/beefproject/beef"
X64_LOCATION="https://github.com/something_thats_x64_instead_of_x86
INSTALL_LOCATION="beef"
DEBIAN="ruby1.9.3,sqlite3,ruby-sqlite3"
ARCHLINUX = "arch-module,etc"
BYPASS_UPDATE="NO"
AFTER_COMMANDS="cd {INSTALL_LOCATION},ruby install-beef"
LAUNCHER="beef"
TOOL_DEPEND="modules/exploitation/metasploit"
सभी फ़ील्ड काफी आसान हैं, रिपॉजिटरी स्थानों पर, आप GIT, SVN FILE, या TAGS का उपयोग कर सकते हैं। निर्भरताएं भरें, और आप स्थापना स्थान कहां चाहते हैं। PTF वह लेगा जहां python फ़ाइल स्थित है (उदाहरण के लिए exploitation) और इसे आपके द्वारा PTF कॉन्फ़िग (config के अंतर्गत स्थित) में निर्दिष्ट स्थान पर ले जाएगा। डिफ़ॉल्ट रूप से यह आपके सभी टूल्स को /pentest/PTES_PHASE/TOOL_FOLDER में स्थापित करता है।
मॉड्यूल में ध्यान दें, आप after commands में {INSTALL_LOCATION} निर्दिष्ट कर सकते हैं। यह वहां जोड़ेगा जहां आप after commands का उपयोग करते समय स्थापना स्थान जाना चाहते हैं।
आप {PTF_LOCATION} भी निर्दिष्ट कर सकते हैं जो आपकी PTF स्थापना के लिए आधार पथ खींचेगा।
आपके पास रिपॉजिटरी स्थानों के लिए 32 बिट और 64 बिट दोनों स्थान निर्दिष्ट करने की क्षमता भी है। रिपॉजिटरी स्थान हमेशा x86 डाउनलोड पथ होना चाहिए। किसी टूल के लिए 64 बिट पथ जोड़ने के लिए, X64_LOCATION निर्दिष्ट करें और इसे एक URL दें। जब PTF लॉन्च होता है तो यह स्वचालित रूप से आर्किटेक्चर का पता लगाएगा और x86 के बजाय x64 लिंक का उपयोग करने का प्रयास करेगा।
ध्यान दें कि ArchLinux पैकेज भी समर्थित हैं, मॉड्यूल में किसी भी प्लेटफॉर्म पर उचित रूप से स्थापित होने के लिए इसे DEBIAN और ARCH दोनों के लिए निर्दिष्ट करने की आवश्यकता है।
TAGS मोड का उपयोग करते समय, यह आपको एक github प्रोजेक्ट का उपयोग करने की अनुमति देगा जो नवीनतम संस्करण (आमतौर पर संकलित अनुप्रयोग) खींचने और स्वचालित रूप से डाउनलोड करने के लिए टैग का उपयोग करता है। TAGS विधि का उपयोग करने के लिए, modules/intelligence-gathering/teamfiltration.py के अंतर्गत संरचना देखें। इस उदाहरण में, repository_location की कोई आवश्यकता नहीं है, लेकिन आपको प्रोजेक्ट स्वामी, प्रोजेक्ट नाम/रेपो, और डाउनलोड करने के लिए फ़ाइलनाम जानना होगा। TeamFiltration के उदाहरण में, यह https://github.com/Flangvik/TeamFiltration पर स्थित है। स्वामी Flangvik होगा, प्रोजेक्ट/टूल TeamFiltration होगा। यदि आप रिलीज़ पर जाते हैं: https://github.com/Flangvik/TeamFiltration/releases/, तो हम देख सकते हैं कि जिस फ़ाइल को हम डाउनलोड करना चाहते हैं उसका नाम "TeamFiltration_Linux" है। ये OWNER, REPOHOME और FILENAME के अंतर्गत हैं। इन्हें निर्दिष्ट करने पर, PTF स्वचालित रूप से टूल के नवीनतम रिलीज़ का पता लगाएगा और उन्हें स्थापित करेगा।
आप अपने स्वयं के मॉड्यूल बना सकते हैं और PTF gitlab एक्सेस का भी समर्थन करता है। git, wget आदि निर्दिष्ट करने के बजाय, बस gitlab निर्दिष्ट करें और मॉड्यूल के लिए अपने स्वयं के आंतरिक gitlab टूल्स की ओर इंगित करें।
जब मुख्य विधि के रूप में पारंपरिक git या svn का उपयोग किया जाता है, तो मॉड्यूल स्थापित होने के बाद क्या होगा कि यह बस टूल का नवीनतम संस्करण ले लेगा। after commands के साथ, सामान्यतः स्थापित करते समय, आपको प्रत्येक अपडेट के बाद after commands चलाने की आवश्यकता हो सकती है। यदि आप बायपास अपडेट को YES (BYPASS_UPDATE="YES") पर सेट करते हैं, तो हर बार जब टूल चलाया जाता है, यह नवीनतम संस्करण चेक आउट करेगा और फिर भी after commands चलाएगा। यदि इसे no पर चिह्नित किया गया है, तो यह केवल सिस्टम के नवीनतम संस्करण को git pull करेगा। FILE विकल्पों के लिए, हमेशा BYPASS_UPDATE="YES" का उपयोग करने की अनुशंसा की जाती है ताकि यह हर बार फ़ाइलों को अधिलेखित करे।