
سكربت Bash يلف أدوات Active Directory للعد التلقائي، فحص الثغرات، الاستغلال، وتفريغ كلمات المرور عبر LDAP و RPC و Kerberos و SMB.
linWinPwn هو سكريبت bash يغلف عددًا من أدوات Active Directory للاستكشاف (LDAP، RPC، ADCS، MSSQL، Kerberos، SCCM)، وفحص الثغرات (noPac، ZeroLogon، MS17-010، MS14-068)، وتعديل الكائنات (تغيير كلمة المرور، إضافة مستخدم إلى مجموعة، RBCD، Shadow Credentials) واستخراج كلمات المرور (secretsdump، lsassy، nanodump، DonPAPI). يقوم السكريبت بتبسيط استخدام عدد كبير من الأدوات: impacket، bloodhound، netexec، enum4linux-ng، ldapdomaindump، lsassy، smbmap، kerbrute، certipy، silenthound، bloodyAD، DonPAPI وغيرها الكثير.
قم باستنساخ المستودع وتثبيت المتطلبات باستخدام سكريبت install.sh
git clone https://github.com/lefayjey/linWinPwn
cd linWinPwn
chmod +x install.sh
./install.sh
بدلاً من ذلك، استخدم صورة Docker المجمعة مسبقًا من Docker Hub
docker pull lefayjey/linwinpwn:latest
# إضافة linWinPwn_docker إلى PATH
echo -e "docker run --rm --init -it --net=host -v \$(pwd):/opt/lwp-output lefayjey/linwinpwn:latest \$@" | sudo tee "/usr/local/sbin/linWinPwn_docker"
sudo chmod 755 /usr/local/sbin/linWinPwn_docker
# تشغيل linWinPwn_docker (الإخراج إلى الدليل الحالي للمضيف)
linWinPwn_docker -t <DC_IP>
linWinPwn_docker -t <DC_IP> -d <domain> -u <user> -p <password> --auto
أو البناء من المصدر
docker build -t linwinpwn .
docker run --rm --init -it --net=host -v $(pwd):/opt/lwp-output linwinpwn -t <DC_IP>
يمكن تشغيل سكريبت linWinPwn في الوضع التفاعلي (الافتراضي)، أو في الوضع الآلي (الاستكشاف فقط).
1. الوضع التفاعلي (الافتراضي) - فتح قائمة تفاعلية لتشغيل الفحوصات بشكل منفصل
linWinPwn -t <Domain_Controller_IP> [-d <AD_domain> -u <AD_user> -p <AD_password> -H <hash[LM:NT]> -K <kerbticket[./krb5cc_ticket]> -A <AES_key> -C <cert[./cert.pfx]> -o <output_dir>]
2. الوضع الآلي - باستخدام الوسيط --auto، تشغيل أدوات الاستكشاف (بدون استغلال أو تعديلات أو استخراج كلمات مرور)
عند استخدام الوضع الآلي، يتم إجراء فحوصات مختلفة بناءً على طريقة المصادقة.
linWinPwn -t <Domain_Controller_IP> --auto [-o <output_dir>]
linWinPwn -t <Domain_Controller_IP> -d <AD_domain> -u <AD_user> [-p <AD_password> -H <hash[LM:NT]> -K <kerbticket[./krb5cc_ticket]> -A <AES_key> -C <cert[./cert.pfx]>] [-o <output_dir>] --auto
Auto config - تشغيل مزامنة NTP مع وحدة التحكم بالمجال وإضافة إدخال إلى /etc/hosts قبل تشغيل الوحدات
linWinPwn -t <Domain_Controller_IP> --auto-config
LDAPS - استخدام LDAPS بدلاً من LDAP (المنفذ 636)
linWinPwn -t <Domain_Controller_IP> --ldaps
Force Kerberos Auth - فرض استخدام مصادقة Kerberos بدلاً من NTLM (عند الإمكان)
linWinPwn -t <Domain_Controller_IP> --force-kerb
Verbose - تفعيل جميع مخرجات التفصيل والتصحيح
linWinPwn -t <Domain_Controller_IP> --verbose
Interface - اختيار واجهة الشبكة الخاصة بالمهاجم
linWinPwn -t <Domain_Controller_IP> -I tun0
linWinPwn -t <Domain_Controller_IP> --interface eth0
Targets - اختيار الأهداف المراد فحصها (DC، All، IP=IP_or_hostname، File=./path_to_file)
linWinPwn -t <Domain_Controller_IP> --targets All
linWinPwn -t <Domain_Controller_IP> --targets DC
linWinPwn -t <Domain_Controller_IP> -T IP=192.168.0.1
linWinPwn -t <Domain_Controller_IP> -T File=./list_servers.txt
Custom wordlists - اختيار قوائم كلمات مرور ومستخدمين مخصصة
linWinPwn -t <Domain_Controller_IP> -U /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
linWinPwn -t <Domain_Controller_IP> -P /usr/share/seclists/Passwords/xato-net-10-million-passwords.txt
يمكن أن يكون linWinPwn مفيدًا بشكل خاص عندما يكون لديك وصول إلى بيئة Active Directory لفترة زمنية محدودة فقط، وترغب في أن تكون أكثر كفاءة في عملية الاستكشاف وجمع الأدلة. بالإضافة إلى ذلك، يمكن لـ linWinPwn استبدال استخدام أدوات الاستكشاف على Windows بهدف تقليل عدد الآثار التي يتم إنشاؤها (مثل أوامر PowerShell، أحداث Windows، الملفات التي تم إنشاؤها على القرص)، وتجاوز بعض برامج مكافحة الفيروسات أو EDRs. يمكن تحقيق ذلك عن طريق إجراء إعادة توجيه منفذ ديناميكية عن بُعد من خلال إنشاء نفق SSH من مضيف Windows (مثل جهاز VDI أو محطة عمل أو كمبيوتر محمول) إلى جهاز Linux عن بُعد (مثل كمبيوتر Pentest المحمول أو VPS)، وتشغيل linWinPwn مع proxychains.
على مضيف Windows، قم بتشغيل باستخدام PowerShell:
ssh.exe kali@<linux_machine> -R 1080 -NCqf
على جهاز Linux، قم أولاً بتحديث /etc/proxychains4.conf ليشمل socks5 127.0.0.1 1080، ثم قم بتشغيل:
linWinPwn_proxychains -t <Domain_Controller_IP> -d <AD_domain> -u <AD_user> [-p <AD_password> -H <hash[LM:NT]> -K <kerbticket[./krb5cc_ticket]> -A <AES_key> -C <cert[./cert.pfx]>] [-o <output_dir>] [--auto]
ldap3: netexec، ldapdomaindump (NTLM)، Certipy، pre2k، bloodhound، ldeep، GroupPolicyBackdoor، relayking
msldap: bloodyAD
netexec، ldapdomaindump، ldeep، windapsearch، godap، pre2k، ldapnomnom
الإلهام: S3cur3Th1sSh1t - WinPwn
الأدوات:
lwp_tool_integrator.py يقوم بأتمتة تكامل الأدوات الجديدة. يقوم بتصحيح ملفات linWinPwn.sh و install.sh و README.md في خطوة واحدة:
authenticate() مع العلامات المناسبةinstall.sh للتثبيت التلقائيREADME.mdالاستخدام:
python3 lwp_tool_integrator.py <tool_config.json>
انظر lwp_tool_template.json للحصول على مثال للتكوين.
استخدام linWinPwn لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والاتحادية المعمول بها. يخل المطورون مسؤوليتهم ولا يتحملون أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج. يُستخدم فقط للأغراض التعليمية.
| الأداة | جلسة فارغة | كلمة مرور | تجزئة NTLM | تذكرة Kerberos | مفتاح AES | شهادة |
|---|
netexec | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Impacket | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
bloodhound-python | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
ldapdomaindump | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
enum4linux-ng | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
bloodyAD | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ |
SilentHound | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
ldeep | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
windapsearch | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
LDAPWordlistHarvester | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
LDAPConsole | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
pyLDAPmonitor | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
sccmhunter | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
ldapper | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
Adalanche | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
GPOwned | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
ACED | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
breads | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
godap | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
adcheck | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
certi.py | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
Certipy | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
certsync | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
pre2k | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
orpheus | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
smbmap | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
FindUncommonShares | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
smbclient-ng | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
manspider | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
coercer | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
privexchange | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
RunFinger.py | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
mssqlrelay | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
targetedKerberoast | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
pygpoabuse | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
DonPAPI | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
hekatomb | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
ExtractBitlockerKeys | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
evilwinrm | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
mssqlpwner | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
SoaPy | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
SCCMSecrets | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
Soaphound | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
gpoParser | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
spearspray | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
GroupPolicyBackdoor | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
NetworkHound | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ |
ShareHound | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
DACLSearch | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ |
ScriptScout | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
relayking | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
ADWS Domain Dump | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
PyADRecon | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ |
PyADRecon-ADWS | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ |
ADPulse | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
PowerView.py | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
evil-winrm-py | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
المراجع: