冰蝎各版本工具分析与魔改思路
0x00 V2版本
1. 项目
github项目:https://github.com/rebeyond/Behinder/releases/
V2 源码:https://github.com/hktalent/afterLoader
2. 流量分析
执行流程图:
首次连接一句话服务端时,客户端首先向服务器端发起GET请求,只有一个参数,格式为?pass=123形式,服务器端随机产生一个128位的密钥,把密钥回显给客户端,同时把密钥写进服务器侧的Session中
客户端获取密钥后,后面的请求都为POST请求,对本地的二进制payload先进行AES加密然后base64编码,再通过POST请求发送至服务器端。正常的网站接口或者页面中,一般是响应的html代码或者json,冰蝎2响应的数据则为经过AES加密的二进制数据,所以Content-Type均为 : application/octet-stream
3. 特点
- 服务器端动态解析二进制class文件
- 客户端已编译类的参数化:使用ASM框架来动态修改class文件中的属性值,动态生成经过参数化的payload class
4. 流量特征
- GET请求的 HTTP 响应包中Content-Length字段的值是固定的16,同时URI只有一个参数,key-value型参数
- 默认的 Accept 字段较为特殊 text/html, image/gif, image/jpeg, ; q=.2, /*; q=.2
- UserAgent字段内置了十余种比较老的User Agent,每次连接shell会随机选择一个进行使用
- JSP类型的webshell,POST请求体数据均为base64编码,Content-Type为application/octet-stream,响应体数据均为二进制文件
- 执行JSP webshell,一般较短的命令Content-Length都是9068
0x01 V3版本
1. 项目
github项目:https://github.com/rebeyond/Behinder/releases/
V3 源码:https://github.com/MountCloud/BehinderClientSource
2. 流量分析
冰蝎3和2相比,最重要的变化就是去除动态密钥协商机制,采用预共享密钥,全程无明文交互,密钥格式为md5(“admin”)[0:16],其余的都差不多
这里还要提到一点,当客户端第一次调用ShellService�#doConnect�方法连接webshell失败,会调用Utils#getKeyAndCookie�方法发送Get请求连接协商秘钥,猜测作者可能是为了兼容2版本的webshell,也算是一个特征点
3. 特点
- 去除动态密钥协商机制
4. 流量特征
- 流量特征其实也V2版本类似,同样内置了十余种比较老的User Agent,POST请求体数据均为base64编码
- 存在GET请求,同时URI只有一个key-value类型参数
0x02 V4版本
1. 项目
github项目:https://github.com/rebeyond/Behinder/releases/
V4 源码:https://github.com/MountCloud/BehinderClientSource
2. 流量分析
本地选择加密算法,生成服务端Webshell,加密算法对Payload进行加密,然后数据通过POST请求发送给远程服务端
服务端收到Payload密文后,利用解密算法进行解密
服务端执行解密后的Payload,并获取执行结果
服务端对Payload执行结果进行加密,然后返回给本地客户端
客户端收到响应密文后,利用解密算法解密,得到响应内容明文
3. 特点
- 允许自定义加密解密协议
4. 流量特征
- 采用默认aes加密协议情况下流量特征与V2、V3类似
0x03 安全设备检测原理图
某盟UTS:
0x04 魔改思路
针对不同安全产商设备的检测原理,整理了以下几种魔改思路:
- 加密解密算法,除了默认的AES,可以使用DES、3DES、TDEA、Blowfish、Twofish、RC2、RC4、RC5、IDEA、SKIPJACK等对称加密算法
- 去除base64编码特征,请求体和响应体数据随机产生不定长度的额外字节数组
- 去除请求头User-Agent、Accept、Referer、Content-type等特征
- 请求包以json格式参数,响应体数据返回json格式或者html格式,数据可以拆散隐藏在html标签中
- 修改请求协议,使用HEAD协议,长度较小的paylaod放到header执行,Shell返回404,响应数据通过ceye类似接口进行中转/服务器可访问的目录图片中转
- 客户端不定时发送不定长度的垃圾数据
- 基于sessionID生成密钥、payload参数名、分隔符等
- 使用Java底层函数绕OpenRASP
- webshell免杀
网络安全学习路线&学习资源
【----帮助网安学习,以下所有学习资料免费领!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
网络安全的知识多而杂,怎么科学合理安排?
初级
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
学习教程
第一阶段:零基础入门系列教程
第二阶段:学习书籍
第三阶段:实战文档
尾言
最后,我其实要给部分人泼冷水,因为说实话,上面讲到的资料包获取没有任何的门槛。
但是,我觉得很多人拿到了却并不会去学习。
大部分人的问题看似是“如何行动”,其实是“无法开始”。
几乎任何一个领域都是这样,所谓“万事开头难”,绝大多数人都卡在第一步,还没开始就自己把自己淘汰出局了。
如果你真的确信自己喜欢网络安全/黑客技术,马上行动起来,比一切都重要。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。!!!
冰蝎各版本工具分析与魔改思路相关推荐
- base64还原_冰蝎3.0流量分析与还原
希望这篇文章可以真正帮助那些被打穿的单位识别与溯源. phpshell 与冰蝎2.0在建立连接时随机生成AES密钥同时明文交换不同是,冰蝎3.0的AES密钥为连接密码32位md5值的前16位,默认连接 ...
- 冰蝎3 冰蝎2 behinder流量分析 流量解密
好多没找全,明天再找吧好累 冰蝎3 AES密钥为连接密码32位md5值的前16位,默认连接密码rebeyond. webshell: php <?php @error_reporting(0); ...
- 冰蝎各个版本的更新日志
工具在资源中最新版本 ###2021.4.29 v3.0 Beta 11[t00ls专版] 更新日志 1.修复了某些情况下CS反弹提示Class not found的问题: 2.修复了Java版本较新 ...
- n.m8yun.com/list/sy.php?p=1,开胃菜:冰蝎2.0流量分析
#coding:utf-8 import base64 from Crypto.Cipher import AES import binascii import json #注:python3 安装 ...
- 【WAF绕过-权限控制工具】菜刀、蚁剑、冰蝎 下载、使用方法
一.菜刀: 1.1.简介:中国菜刀是一款专业的网站管理软件,用途广泛,使用方便,小巧实用.只要支持动态脚本的网站,都可以用中国菜刀来进行管理1.2.功能:主要功能有:文件管理,虚拟终端,数据库管理1. ...
- 冰蝎加密 WebShell 过杀软
用Web系统语言(如:ASP.PHP.JSP等)编写的WebShell,WebShell上传服务器后当成页面被攻击者访问,常当做后门. WebShell危害 做后门: 文件.数据库操作: 修改Web ...
- 冰蝎shell_冰蝎动态二进制加密WebShell特征分析
概述 冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF.探针设备.本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时 ...
- 冰蝎(Behinder)双击无法打开
冰蝎(Behinder)双击无法打开 文章目录 冰蝎(Behinder)双击无法打开 尝试过的解决方法 最后的解决方法 参考链接 不想讲过多废话:我的环境如下,如果感觉环境不是很相符的,可以关闭这个页 ...
- 冰蝎无法打开(Behinder无法运行)
0x0前言 冰蝎beta7版本客户端不再内置JavaFX库,java11以后版本移除了JavaFX库,要运行冰蝎需要自己下载JavaFX库. javaFX:https://openjfx.cn/dl/ ...
最新文章
- GoogleReader的Likes操作数据如何获取?
- python中函数的括号使用
- SQL--Chapter1_Overview of SQL Server
- c语言链表p-%3enext,课程设计报告.c语言程序设计.pdf
- JavaScript实现创建自定义对象的常用方式总结
- Go interface 操作示例
- 常犯的18个统计学错误, 避坑防雷指南!
- 移除元素所有事件监听_前端日记—DOM 事件机制和事件委托
- jQuery Form Plugin (二) :使用AJAX提交Form表单
- 可靠性工程基础 修订版 课后答案 (刘品)
- rgba颜色和16进制颜色互相转换
- 影响力最大化 IC模型+贪心算法
- java练习题-猜数字游戏
- 基于一阶倒立摆系统的模糊神经网络PID控制
- Animator.paly 跳到动画结束
- 一个玩游戏的失足青年,转行做游戏开发到教育的挣扎过程(3)
- 能够PING通同网段的节点, 但却PING不通其他网段的所有节点的最可能的原因是
- NOI系列活动标准竞赛环境(2016年11月08日更新)
- 区块链与DApp开发(学习总结)
- javascript:幂指数运算符