Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Darkcloak — أداة تمويه هوية العمليات على Linux تقوم بتزييف comm وargv وcmdline وenviron ومسار exe وVMAs عبر خط أنابيب prctl من 11 مرحلة لانتحال شخصية عملية أخرى. | Kitploit
أدوات/GitHubGitHub/0x574r/darkcloak
تصعيد الامتيازاتآليات الاستمراريةالتهرب من IDS/IPSأدوات انتحال الشخصيةما بعد الاستغلالتحليل الملفات الثنائيةالأوراق والأبحاثالفريق الأحمرانتحال البصمة الرقمية
GitHub0x574r/darkcloak

Darkcloak

أداة تمويه هوية العمليات على Linux تقوم بتزييف comm وargv وcmdline وenviron ومسار exe وVMAs عبر خط أنابيب prctl من 11 مرحلة لانتحال شخصية عملية أخرى.

1124منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

DARKCLOAK

NASM Platform Architecture

إخفاء هوية العمليات على Linux

يقوم DARKCLOAK بتسلسل التلاعب بجميع مصادر الهوية المرئية لمساحة المستخدم في خط أنابيب تسلسلي من 11 مرحلة يحوّل العملية تدريجيًا حتى تصبح غير قابلة للتمييز عن العملية المنتحَلَة بالنسبة لأدوات المراقبة في مساحة المستخدم. على حد علمنا، لا توجد أداة منشورة تجمع بين التلاعب المتزامن بجميع مصادر الهوية المرئية لمساحة المستخدم.

الشرح التقني الكامل متاح على مدونة RAZOR.

ما الذي يتم تزويره

  • task_struct->comm: عبر PR_SET_NAME
  • argv[0]: عبر الكتابة المباشرة على المكدس
  • سطر الأوامر (/proc/$PID/cmdline): عبر PR_SET_MM_ARG_START/END
  • البيئة (/proc/$PID/environ): عبر PR_SET_MM_ENV_START/END
  • مسار الملف التنفيذي (/proc/$PID/exe): عبر PR_SET_MM_EXE_FILE
  • مناطق VMA المدعومة بملفات (/proc/$PID/maps): تُستبدل بذاكرة مجهولة
  • رؤية مساحة أسماء العملية: عبر unshare

كيف يعمل

يعمل خط الأنابيب بترتيب صارم تحدده التبعيات بين أنظمة النواة الفرعية التي يتم التلاعب بها:

  1. استبطان ELF: يحلل المتجه المساعد عند _start لحل PHT والحصول على نطاقات العناوين الافتراضية لجميع مقاطع PT_LOAD الثلاثة
  2. قراءة بيانات الاعتماد: getresuid / getresgid لتخزين UIDs و GIDs الأصلية لاستعادتها لاحقًا
  3. تصعيد UID: setresuid(0,0,0) إذا كان أي من UIDs الثلاثة يساوي 0
  4. تصعيد القدرات: ينسخ المجموعة المسموح بها إلى المجموعتين الفعّالة والقابلة للتوريث عبر capget/capset
  5. تزوير الهوية:
    • prctl(PR_SET_NAME) → يستبدل task_struct->comm
    • كتابة مباشرة على المكدس عند [rsp+8] → تستبدل argv[0]
    • prctl(PR_SET_DUMPABLE, 0) → يحجب الوصول إلى و من العمليات غير المتمتعة بامتيازات

mmap trampoline

يفشل PR_SET_MM_EXE_FILE مع EBUSY طالما أن أي VMA لا يزال مدعومًا بالملف التنفيذي الأصلي. وبما أنه لا يمكن إلغاء تعيين مقطع .text بينما يكون RIP بداخله، فإن إخفاء الهوية يعمل من صفحة مجهولة مؤقتة:

  1. تخصيص صفحة مجهولة بحجم 4096 بايت (mmap)
  2. نسخ كود إخفاء الهوية (mm_start→mm_end) وبيانات تعريف المقاطع إليها
  3. جعل الصفحة قابلة للتنفيذ (mprotect)
  4. القفز إليها: يغادر RIP مقطع .text
  5. لكل مقطع من مقاطع PT_LOAD الثلاثة: mmap منطقة مجهولة جديدة → memcpy لمحتويات المقطع → munmap للأصل → mremap للنسخة المجهولة إلى العنوان الأصلي → mprotect لاستعادة الأذونات الأصلية
  6. العودة إلى .text المجهول الآن، وإلغاء تعيين صفحة trampoline

الملف التنفيذي هو ELF ثابت بدون مفسّر، لذا فإن تخطيط VMA وقت التشغيل حتمي بالكامل: ثلاثة مقاطع PT_LOAD، والمكدس، و vDSO الخاص بالنواة.

البناء

root@kitploit:~
nasm -f elf64 darkcloak.asm -o darkcloak.o
ld darkcloak.o -o darkcloak

الإعداد

تُحدَّد أهداف التزوير وقت الترجمة في قسم .data. القيم الافتراضية تنتحل شخصية sshd:

root@kitploit:~
mimic_name    db 'sshd', 0
mimic_argv    db './sshd', 0
mimic_exe     db '/usr/sbin/sshd', 0
mimic_cmdline db '/usr/sbin/sshd', 0, '-D', 0, '[email protected]', 0, ...
mimic_environ db 'LANG=en_US.UTF-8', 0, 'NOTIFY_SOCKET=/run/systemd/notify', 0, ...

لانتحال شخصية عملية مختلفة، حدّث هذه القيم قبل البناء.

الاستخدام

root@kitploit:~
./darkcloak

يتطلب CAP_SYS_RESOURCE و CAP_SETUID و CAP_SETGID و CAP_SETPCAP في المجموعة المسموح بها. إذا كان CAP_SYS_RESOURCE غائبًا، يتم تخطي كتلة تزوير MM بالكامل (إخفاء هوية VMA + تبديل EXE_FILE). إذا كان CAP_SETPCAP غائبًا، تتراجع الأداة من PR_SET_SECUREBITS إلى PR_SET_KEEPCAPS.

التحقق

root@kitploit:~
./darkcloak &
PID=$!

cat /proc/$PID/comm
readlink /proc/$PID/exe
cat /proc/$PID/cmdline | tr '\0' ' '
cat /proc/$PID/environ | tr '\0' '\n' | head -3
cat /proc/$PID/maps | head -5
cat /proc/$PID/status | grep -E 'Uid|Gid|Cap'
ps aux | grep $PID

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

نُشر حصريًا لأغراض تعليمية وبحثية. استخدمه فقط على الأنظمة التي تملكها أو لديك تفويض كتابي صريح لاختبارها.

تنزيل الأداة
/proc/$PID/mem
ptrace(PTRACE_ATTACH)
  • إخفاء هوية VMA عبر mmap trampoline (انظر أدناه) → يزيل جميع التعيينات المدعومة بملفات
  • prctl(PR_SET_MM_ARG_START/END) → يعيد توجيه /proc/$PID/cmdline
  • prctl(PR_SET_MM_ENV_START/END) → يعيد توجيه /proc/$PID/environ
  • prctl(PR_SET_MM_EXE_FILE) → يستبدل mm_struct->exe_file
  • الاحتفاظ بالقدرات: PR_SET_SECUREBITS (إذا توفر CAP_SETPCAP) أو PR_SET_KEEPCAPS (كخيار احتياطي) للنجاة من إسقاط UID
  • تخفيض UID: setresuid(1000,1000,1000) أو استعادة القيم الأصلية
  • تخفيض GID: setresgid(1000,1000,1000) أو استعادة القيم الأصلية
  • تخفيض القدرات: يمسح المجموعتين الفعّالة والقابلة للتوريث
  • عزل مساحة الأسماء: unshare(CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWNET | CLONE_NEWIPC)
  • الاحتفاظ: nanosleep(120s) ثم exit