流量分析:Wireshark与流量分析实战

捕获与解密

        一般抓取流量用最多的就是Wireshark,其次就是tcpdump。抓取流量可以按时间段来,比如攻击发生前后10分钟,还有前端接口的流量,比如MySQL的3306端口以此来过滤,减少干扰。

关键词与特征

恶意关键词搜索

        可以搜一些高危的关键词,比如是eval、UNION SELECT、shell,最好是选择不分大小写,因为有的攻击手法它是靠大小写来绕过的,还有双写。可以用一些Wireshark的过滤语法,例如tcp contains "关键词",可以快速的定位可疑的数据包。

        动态的就要分析一些高频的POST请求,异常的Content-Length和加密流量还有监控系统的调用,比如Web进程启动了cmd。

Webshell特征识别

冰蝎
静态特征

        PHP版的使用的是16位预共享密钥,比如e45e329feb5d925b,JSP版的有ClassLoader反射代码。

        代码中检测OpenSSL支持,动态切换加密算法,比如AES或者XOR加密。

动态特征

        加密通信:全程用AES加密流量,密钥通过MD5截断生成的,默认密码一般是rebeyond。

        会话特征:使用长连接(Connection:Keep-Alive),Content-Length的值比较大,比如像有5740个字节。

        请求头:包含Pragma:no-cache和Accept:application/xhtml+xml等弱特征。

哥斯拉
静态特征

        默认生成的后门包含xc、pass等变量名,JSP版的用的是ClassLoader和getClass().getClassLoader()。

        支持多协议混淆,比如HTTP和SOCKS5,支持多种加密模块。

动态特征

        请求头:Accept头固定为text/html,application/xhtml+xml...

        响应头:Cache-Control:no-store,no-cache标识无缓存策略。

        加密机制:采用AES加密+Base64编码+MD5认证的多层加密流程。

        Cookie特征:请求里面的Cookie末尾有分号,比如Cookie: key=value;

蚁剑
静态特征

        一般默认@ini_set()、@set_time_limit(0)作为代码开头。

        支持多语言后门,比如PHP的assert、JSP的ClassLoader反射调用。

动态特征

        请求体:参数值通过随机变量名传递Base64编码的指令,比如p1=base64编码的代码。

        响应格式:结果被随机数包裹,例如随机数的结果是随机数,增强隐蔽性。

        流量混淆:支持插件扩展,可以自定义编码器,比如AES加密,绕过基础检测。

中国菜刀
静态特征

        代码里面固定包含eval($_POST'caidao')或者eval request("caidao")等敏感函数调用。

        PHP/ASP/JSP脚本均使用统一的后门参数,例如caidao。

动态特征

        请求头:UA头一般会伪装成百度爬虫或者火狐浏览器

        请求体:payload用的是Base64编码,里面固定字符串QGluaV9zZXQ...解码后是@ini_set()

        响应格式:明文的返回结果包裹在X@Y中,例如写入成功是X@Y1X@Y,写入失败是X@Y0X@Y

通用特征

1.混淆技术

        ·字符串拆分,比如"UN"+"ION",变量名随机化,插入无关的注释。

        ·利用图片上传模块等正常功能伪装恶意代码。

2.反检测机制

        ·动态生成密钥,比如说冰蝎4.0,无文件驻留,像内存马。

        ·模拟合法流量,比如会伪装成数据库查询。

TLS证书的定位与导出

本地流量

        如果是本地拦截的流量的话可以在环境变量里新建用户变量,变量名SSLKEYLOGFILE,变量值就是绝对路径,例如E:\XXX\SSLKey\sslkey.log。然后重新打开浏览器,当再次访问页面时会把密钥日志放到sslkey.log文件里。打开Wireshark

流量包

        把需要分析的流量包导入到Wireshark之后在过滤栏中输入tls.handshake.type == 123(这里的123指的是TLS握手协议中的证书类型,例如Handshake Type: Certificate),直接筛选出所有包含Certificate消息的TLS握手包。在筛选结果中展开数据包的协议层次,例如Transport Layer Security → TLSv1.2/1.3 Record Layer → Handshake Protocol: Certificate(服务器证书→中间CA→根CA),然后右键证书字段,例如Certificate: [证书名],选择Export Packet Bytes...保存为.der文件。

        PEM格式的证书可以直接从File →Exprot Objects →TLS →选择证书 →Save,然后保存为.pem文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值