第25篇:冰蝎2.x过流量检测改造的全过程

admin 2023年5月20日02:13:58评论28 views字数 2704阅读9分0秒阅读模式

第25篇:冰蝎2.x过流量检测改造的全过程

 Part1 前言 

冰蝎是一款动态二进制加密网站管理客户端,其特点是流量AES加密,JSP文件很小,做红队或者攻防比赛的人,几乎人手一份。使用的人多了,必然被各种流量监控设备识别,所以需要手工对其魔改,去掉或者改掉一些流量特征。自己魔改冰蝎或者哥斯拉优势也明显,代码完全掌握在自己手里,可随时根据各种流量监控设备的规则,与时俱进地编写绕过代码。

这篇文章的核心内容主要基于我在2020年山东首届“明湖论剑”网络安全技术沙龙上分享的一个PPT,今天重新整理总结一下,感觉也不错


 Part2 思考3个问题 

在进行冰蝎改造工作之前,首先思考3个问题,同时也借助这3个问题,分享几个迷惑管理员及蓝队分析人员的小技巧。


 1   在流量监控设备的记录里,或者在Web访问日志中,显示了一系列404响应码的/admin.jsp访问,这些是不是webshell攻击行为呢?

第25篇:冰蝎2.x过流量检测改造的全过程


这些都是webshell攻击行为!如下图所示,每条/admin.jsp访问记录的响应码都是404,但是webshell却是真实存在的,而且已经完成执行命令操作了。

第25篇:冰蝎2.x过流量检测改造的全过程


具体是怎么实现的呢?其实非常简单,我只是加了一行代码而已。因为response对象在我们控制之下,意味着返回的response的属性我们是可以控制和修改的!

第25篇:冰蝎2.x过流量检测改造的全过程


 2   浏览器访问一个webshell地址,网页返回提示“HTTP ERROR 404”或者“找不到XXX的网页”,这个webshell就一定不存在吗?

第25篇:冰蝎2.x过流量检测改造的全过程


其实这个webshell是存在的!404响应码也只是一个伪装而已。如下所示,我也只是加了一行代码而已,当使用GET方法去请求webshell时,返回404响应码。

第25篇:冰蝎2.x过流量检测改造的全过程


 3   一个webshell删除.jsp文件及.class文件就真的就完全删除了吗?

答案是不一定。请看如下这个jsp型shell,只要攻击者浏览器访问一下,就可以向tomcat中间件注入一个内存马,即使把jsp文件删除也没用。

第25篇:冰蝎2.x过流量检测改造的全过程


 Part3 冰蝎逆向修改过程 

下面开始讲讲正式的冰蝎改造过程,我把详细的代码截图都贴出来了,大家到时候照着改就行。改造好的冰蝎就不放出来了,流传开了必然失效,因为始终敌不过流量监控设备的,这个道理就和免杀一样,一旦流传开免杀必然失效。


  • 两次秘钥交互过程去除

如下图所示,冰蝎2.0在秘钥交互过程中会发两次请求,这个两次请求的特征非常明显,很容易被识别,所以想办法去掉。至于秘钥,我们自己魔改的话,完全可以换成静态秘钥的,然后再把流量数据包修改一下即可,比如添加一些额外字符进行混淆等等。

第25篇:冰蝎2.x过流量检测改造的全过程


如下所示,这两次请求由Utils类控制,将url的相关代码注释掉即可。

第25篇:冰蝎2.x过流量检测改造的全过程


  • 更改为固定秘钥

在Utils类中的getRawKey方法的最后,向result对象写入秘钥。只要我们的秘钥不被知道,加密流量就解不开。

第25篇:冰蝎2.x过流量检测改造的全过程


为了解耦合,方便随时更改秘钥,于是附带写了一个小工具,自动对冰蝎客户端的配置文件及附带的ASP、PHP、JSP马进行修改。

第25篇:冰蝎2.x过流量检测改造的全过程


  • 客户端屏幕不居中

冰蝎客户端打开之后,界面不居中,我比较喜欢居中格式的。在Main.java类中,添加如下代码即可,通过setLocation方法使冰蝎界面屏幕居中。

第25篇:冰蝎2.x过流量检测改造的全过程


  • 添加设置超时时间功能

冰蝎2.0如果访问一个不存在的url时,由于默认超时时间过长,会造成界面长时间卡死。经过分析,它的发包基本上都是基于HttpURLConnection类实现的,所以可以直接设置各种超时时间解决这个问题。

第25篇:冰蝎2.x过流量检测改造的全过程


  • 文件管理功能无法排序

冰蝎2.0的“文件管理”功能无法排序。我们在获取webshell之后,经常需要按照时间、文件大小对文件进行排序,以便找到有价值的配置文件或者敏感文件。这里改动幅度大一些,我添加了一个按钮,然后在按钮事件中加入了一段排序代码。

第25篇:冰蝎2.x过流量检测改造的全过程


实现方法是,在MainShell类中添加一个按钮,并将排序功能代码写入按钮事件中。

第25篇:冰蝎2.x过流量检测改造的全过程


排序功能代码如下:

第25篇:冰蝎2.x过流量检测改造的全过程


  • 无socks5代理设置功能

这里我原本也想加入一个按钮去实现的,但是弄出来界面不美观,索性就添加一个“载入配置文件”的功能,在配置文件中实现设置socks5代理吧。

第25篇:冰蝎2.x过流量检测改造的全过程


配置文件内容如下:

第25篇:冰蝎2.x过流量检测改造的全过程


  • 请求数据包中Accept字段固定

这个好改,全局搜索setRequestProperty方法进行修改即可,修改成自己想要的http消息头:

第25篇:冰蝎2.x过流量检测改造的全过程


第25篇:冰蝎2.x过流量检测改造的全过程


  • Content-Type固定

这个好改,全局搜索setRequestProperty方法进行修改即可,修改成自己想要的http消息头:

第25篇:冰蝎2.x过流量检测改造的全过程


和上述修改一样,全局搜索setRequestProperty方法进行修改即可:

第25篇:冰蝎2.x过流量检测改造的全过程


第25篇:冰蝎2.x过流量检测改造的全过程


  • User-Agent伪随机修正

这里需要强调一下,冰蝎2.0的User-Agent并不是完全随机的,点开webshell之前冰蝎客户端会随机选择一个user-agent,但是点开这个webshell之后,在当前的打开状态下,其User-Agent始终是这一个。

修正这个问题同样需要在Utils类中进行修改,然后把冰蝎中的User-Agent列表换成自己的,原版冰蝎中的User-Agent列表比较旧。

第25篇:冰蝎2.x过流量检测改造的全过程


  • 绕过OpenRASP

具体原理可以看以下这篇文章http://weishi.baidu.com/article/855

第25篇:冰蝎2.x过流量检测改造的全过程


如下图所示,将冰蝎的包名全部改掉,记得RunCMD方法名也需要改掉。当然冰蝎3.0的包名已经没有这些特征了。

第25篇:冰蝎2.x过流量检测改造的全过程


改造后的冰蝎几乎无特征可寻

第25篇:冰蝎2.x过流量检测改造的全过程


 Part4 总结 

1.  随着流量监控设备的不断升级,很多团队都研发了属于自己的Webshell管理平台,然后小范围流传,很多红队人员也都自己魔改了一个冰蝎或者哥斯拉webshell管理工具。

2.  上述魔改过程,只是给大家开阔一下思路,有什么好的建议,欢迎公众号后台给我留言,一起讨论。

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款


第25篇:冰蝎2.x过流量检测改造的全过程

往期回顾

2022年度精选文章

dom-xss精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips




原文始发于微信公众号(迪哥讲事):第25篇:冰蝎2.x过流量检测改造的全过程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月20日02:13:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第25篇:冰蝎2.x过流量检测改造的全过程https://cn-sec.com/archives/1748455.html

发表评论

匿名网友 填写信息