
पेनिट्रेशन टेस्टर्स फ्रेमवर्क (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" का उपयोग करने की अनुशंसा की जाती है ताकि यह हर बार फ़ाइलों को अधिलेखित करे।
After commands वे आदेश हैं जिन्हें आप स्थापना के बाद सम्मिलित कर सकते हैं। यह एक निर्देशिका में स्विच करना और स्थापना को पूरा करने के लिए अतिरिक्त आदेश चलाना हो सकता है। उदाहरण के लिए BEEF परिदृश्य में, आपको बाद में ruby install-beef चलाने की आवश्यकता है। नीचे {INSTALL_LOCATION} फ़्लैग का उपयोग करके after commands का एक उदाहरण है।
AFTER_COMMANDS="cp config/dict/rockyou.txt {INSTALL_LOCATION}"
उन AFTER_COMMANDS के लिए जो स्वयं स्थापित करते हैं (उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं है)।
मॉड्यूल में LAUNCHER= फ़्लैग वैकल्पिक है। यदि आप उदाहरण के लिए LAUNCHER="setoolkit" जोड़ते हैं, तो PTF स्वचालित रूप से /usr/local/bin/ के अंतर्गत टूल के लिए एक लॉन्चर बनाएगा। setoolkit उदाहरण में, चलाने पर - PTF स्वचालित रूप से /usr/local/bin/setoolkit के अंतर्गत एक फ़ाइल बनाएगा ताकि आप बस setoolkit टाइप करके कहीं से भी SET लॉन्च कर सकें। सभी फ़ाइलें अभी भी उपयुक्त श्रेणियों के अंतर्गत स्थापित होंगी, उदाहरण के लिए /pentest/exploitation/setoolkit, हालांकि एक स्वचालित लॉन्चर बनाया जाएगा।
आप एक एप्लिकेशन के लिए कई लॉन्चर रख सकते हैं। उदाहरण के लिए, Metasploit के लिए आप msfconsole, msfvenom आदि चाह सकते हैं। कई लॉन्चर जोड़ने के लिए, बस उनके बीच , लगाएं। उदाहरण के लिए LAUNCHER="msfconsole,msfvenom"। यह दोनों के लिए लॉन्चर बनाएगा।
आप बस ./ptf --update-all भी चला सकते हैं और यह फ्रेमवर्क में जाए बिना आपके लिए स्वचालित रूप से सब कुछ अपडेट कर देगा।
यदि आप स्वचालित बिल्ड में ptf चला रहे हैं, तो आप heredoc का उपयोग कर सकते हैं ताकि आपको इंटरैक्टिव रूप से उन मॉड्यूल को टाइप न करना पड़े जिन्हें आप स्थापित करना चाहते हैं। उदाहरण:
./ptf <<EOF
use modules/exploitation/metasploit
run
use modules/password-recovery/johntheripper
run
EOF
कुछ उपकरण जैसे Veil, SET, आदि को Metasploit Framework जैसे उपकरणों की आवश्यकता होती है। आप मॉड्यूल में TOOL_DEPEND="modules/exploitation/metasploit,module/exploitation/set" जोड़ सकते हैं और कई अन्य उपकरण यदि टूल को स्थापित करने से पहले किसी टूल की आवश्यकता हो। यह PTF को पहले आवश्यक टूल स्थापित करने के लिए मजबूर करेगा, फिर उस मॉड्यूल को स्थापित करेगा जिसे इसकी आवश्यकता है। उदाहरण:
TOOL_DEPEND="modules/exploitation/metasploit"
यह पहले Metasploit स्थापित करेगा या सुनिश्चित करेगा कि एप्लिकेशन को स्थापित करने से पहले इसे पहले स्थापित किया गया है।
IGNORE_THESE_MODULES= कॉन्फ़िग विकल्प PTF रूट निर्देशिका में config/ptf.config के अंतर्गत पाया जा सकता है। यह मॉड्यूल को अनदेखा करेगा और उन्हें स्थापित नहीं करेगा - सब कुछ अल्पविराम से अलग किया गया है और नाम पर आधारित है - उदाहरण: modules/exploitation/metasploit,modules/exploitation/set या संपूर्ण मॉड्यूल श्रेणियां, जैसे /modules/code-audit/*,/modules/reporting/*
IGNORE_UPDATE_ALL_MODULES= कॉन्फ़िग विकल्प PTF रूट निर्देशिका में config/ptf.config के अंतर्गत पाया जा सकता है। यह केवल तब मॉड्यूल को अनदेखा करेगा जब install_update_all कर रहे हों, जिसका उपयोग तब किया जाता है जब आप सभी टूल्स स्थापित करना चाहते हैं। यह बड़े अनुप्रयोगों के लिए हो सकता है जिनमें काफी समय लगता है, जिन्हें उपयोगकर्ता इंटरैक्शन की आवश्यकता होती है, या सिस्टम पर कई पोर्ट और प्रोटोकॉल खोलते हैं। यह IGNORE_THESE_MODULES के समान ही काम करता है, सिवाय इसके कि उन्हें modules/update_installed के माध्यम से मैन्युअल रूप से स्थापित और अद्यतन किया जा सकता है। ये अल्पविराम से सीमांकित हैं, इसलिए उदाहरण के लिए modules/exploitation/tool1,modules/exploitation/tool2, install_update_all चलाते समय, ये टूल्स स्थापित नहीं होंगे जब तक कि आप modules/exploitation/tool1 का उपयोग करने और उस विधि के माध्यम से स्थापित करने न जाएं।
config/ptf.config के अंतर्गत कॉन्फ़िग विकल्प में INCLUDE_ONLY_THESE_MODULES केवल उन विशिष्ट मॉड्यूल को स्थापित और शामिल करेगा जो यहां निर्दिष्ट हैं। यह आपके द्वारा चाहे गए टूल्स को बेसलाइन करने और केवल उन्हें स्थापित करने के लिए अच्छा है।
यदि आप चाहें तो बिना बैनर संदेश के PTF लॉन्च कर सकते हैं। बस निर्दिष्ट करें:
./ptf --no-banner
or
./ptf -nb
आप निम्नलिखित टाइप करके देख सकते हैं कि आपने PTF के माध्यम से कौन से एप्लिकेशन पहले ही स्थापित कर लिए हैं:
ptf>show installed