利用动态二进制加密实现新型一句话木马之客户端篇
rebeyond WEB安全 77551浏览 · 2018-09-24 08:43

概述

本系列文章重写了java、.net、php三个版本的一句话木马,可以解析并执行客户端传递过来的加密二进制流,并实现了相应的客户端工具。从而一劳永逸的绕过WAF或者其他网络防火墙的检测。
本来是想把这三个版本写在一篇文章里,过程中发现篇幅太大,所以分成了四篇,分别是:

利用动态二进制加密实现新型一句话木马之Java篇
利用动态二进制加密实现新型一句话木马之.NET篇
利用动态二进制加密实现新型一句话木马之PHP篇
利用动态二进制加密实现新型一句话木马之客户端篇

正文

在前面三篇文章中,分别实现了Java、.net、PHP三个版本的新型一句话木马,也针对不同版本编程语言的特点,对客户端的差异化部分做了简单的介绍。下面就把客户端的功能再简单介绍一下,就当是README.MD了,客户端暂时取名为冰蝎,采用Java+SWT开发,支持Windows、Linux、MacOS(Mac系统需通过-XstartOnFirstThread参数执行),主要功能如下:

1. 基本信息

客户端和服务端握手之后,会获取服务器的基本信息,Java、.NET版本包括环境变量、系统属性等,PHP版本会显示phpinfo的内容。

2. 文件管理

这个没什么好说的,无非是文件的增删改查,稍微不同的是上传的文件都是加密传输的,可以避免被拦截。

3. 命令执行

执行单条操作系统命令。

4. 虚拟终端

虚拟终端是模拟了一个真实的交互式Shell环境,相当于把服务器侧的Shell给搬到了客户端,在这个Shell里可以执行各种需要交互式的命令,如ssh、mysql。比如说:我们可以在这个Shell里去ssh连接服务器侧内网的其他主机,可以参考下面这个动图:

当然,如果你习惯powershell,也可以弹个powershell出来,如下图:

5. Socks代理

虚拟终端功能其实就已经部分实现了内网穿透的能力,在Shell环境里做的所有事情都是在内网环境中的。不过为了方便使用其他工具,客户端还提供了基于一句话木马的Socks代理功能,一键开启,简单高效,可以参考如下动图:

顺便说一下,代理过程中所有的流量都是在socks的基础上封装了一层AES。

6.反弹Shell

反弹Shell是突破防火墙的利器,也几乎是后渗透过程的必备步骤。提到后渗透,当然少不了metasploit,提到metasploit,当然少不了meterpreter,所以冰蝎客户端提供了两种反弹Shell的方式,常规Shell和Meterpreter,实现和metasploit的一键无缝对接。请参考如下动图:

上图演示的是Meterpreter,当然常规的Shell也可以对接metasploit,就不演示了。

7.数据库管理

常规功能,实现了数据库的可视化管理,放张截图吧:

和常规管理工具不同的是,在Java和.NET环境中,当目标机器中没有对应数据库的驱动时,会自动上传并加载数据库驱动。比如目标程序用的是MySQL的数据,但是内网有另外一台Oracle,此时就会自动上传并加载Oracle对应的驱动。

8.自定义代码

可以在服务端执行任意的Java、PHP、C#代码,这也是个常规功能,值得一提的是我们输入的代码都是加密传输的,所以不用为了躲避waf而用各种编码变形,效果请参考如下动图:

9.备忘录

渗透的时候总有很多零碎的信息需要记录,所以针对每个Shell提供了一个备忘录的功能,目前只支持纯文本,粘贴进去自动保存:

目前就实现了这么多功能,由于是在业余时间完成,略有仓促,有不少地方需要完善,当然也可能会有不少隐藏的bug,所以打算暂时不开源了,等迭代两个版本优化一下再说。如果在使用中遇到什么bug,欢迎反馈给我。

工具下载

下载地址:链接:https://pan.baidu.com/s/1G_z5FNX20--mdfo0qX7MAQ 密码:v3r0

最后,祝大家中秋节快乐!

本篇完。

22 条评论
某人
表情
可输入 255
求知鱼14569632587
2020-04-20 10:40 0 回复

@223034****@qq.co 俺也是 怎么搞这个


223034****@qq.co
2019-07-18 06:30 0 回复

我怎么在github上没找到下载在哪呢?下下来怎么就是md的文档


max
2019-02-16 02:14 0 回复

@komi 老哥我也遇到了这个问题,想请教一下您这个问题最后是怎么解决的?



60516****@qq.com
2019-01-18 04:06 0 回复

新型一句话木马是哪个?怎么获取 怎么修改 说说如何像菜刀一样的使用教程 搞的复杂到下载了没人会用


0r3ak
2018-10-23 04:29 1 回复

有时连接总是报错



rebeyond
2018-10-09 12:36 2 回复

冰蝎v1.2版本 https://github.com/rebeyond/Behinder/releases/tag/Behinder_v1.2


2018.10.09 v1.2 更新日志


1.增加了程序的稳定性。

2.服务端兼容范围扩大,PHP测试版本包含5.4~7.2。

3.修复了之前某些PHP环境无法正常使用的bug。

4.PHP服务端免杀,过安全狗和D盾。

5.文件管理模块默认打开服务端所在web路径。

6.数据库管理模块,枚举数据库和表时,SQL语句实时显示在SQL语句文本框中。


备注:

1.由于通信采用了AES加密,所以PHP需要开启openssl扩展(或者自己修改服务端实现AES加解密),Java和.NET原生支持AES加密。

2.PHP数据库管理模块支持数据库表右键弹出菜单。

3.客户端附带的服务端为最简版本,没有做容错处理,所以直接浏览器访问可能会报错,但是不影响客户端正常连接。如果不介意服务端体积增加几个字节,可以自己加一些容错判断语句。

4.Mac系统下需要通过-XstartOnFirstThread参数启动,java -XstartOnFirstThread -jar Behinder.jar


rebeyond
2018-09-30 06:34 2 回复

冰蝎v1.1版本 https://github.com/rebeyond/Behinder/releases/tag/Behinder_v1.1


更新日志


1.新增随机UserAgent支持,每次会话会从17种常见UserAgent中随机选取。

2.服务端兼容范围扩大,Java最低支持至1.6,.NET最低支持至2.0。

3.新增jspx格式服务端。随压缩包提供的服务端是三种语言的最简版本,如果不介意多几个字节,可以自己改写服务端,只要基本逻辑不变即可。

4.HTTP响应全部加密传输。

5.修复了一些程序无响应导致崩溃的bug。

6.客户端运行环境最低要求扩展为JRE6。

7.修复了PHP在windows环境下虚拟终端开启失败的问题。

8.修复了Mac OS下虚拟终端背景色和前景色重叠看不到文本内容的bug。

9.新增了“更新信息”tab页面,提供最新版客户端的下载,同时服务端会不定期更新并在此页面提供下载。


wllhm1011****
2018-09-29 06:05 0 回复

阿里云盾已经报警了


komi
2018-09-26 14:14 0 回复

@komi 关于这个bug,第一次是能正常打开连接的,后面过了几分钟,或关闭了,再打开就一直报这个错了。不知道原因。


komi
2018-09-26 12:36 0 回复

bug


komi
2018-09-26 10:15 0 回复

这必将是WAF产品未来很长段时间内面临的一大防护难点。来啊~搞事情啊~


rebeyond
2018-09-26 03:44 0 回复

@lcx 感谢!


fzer0
2018-09-26 03:15 0 回复

这种思路实现的木马,waf该怎么去拦截?


weirdbird
2018-09-26 02:17 0 回复

老哥,链接跪了~ ,坐等github


lcx
2018-09-26 01:42 0 回复

提供个bug,在kali2017.3下,打开界面后,再无法进行任何操作,卡死了。