如何创建一个自己公司网站,银川网站建设公司排名,手机首页,百度推广就是做网站吧题目描述是冰蝎进行WebShell连接的流量包#xff0c;我们需要找到攻击者获取到的服务器用户名和服务器内网IP地址。
先介绍一下常见webshell工具的流量特征#xff1a;
1、中国菜刀 请求体中存在eval、base64等特征字符#xff1b;
连接过程中使用base64编码对发送的指令…题目描述是冰蝎进行WebShell连接的流量包我们需要找到攻击者获取到的服务器用户名和服务器内网IP地址。
先介绍一下常见webshell工具的流量特征
1、中国菜刀 请求体中存在eval、base64等特征字符
连接过程中使用base64编码对发送的指令进行加密
还有一段以QG开头7J结尾的固定代码。
2、蚁剑 默认的user-agent请求头是antsword XXX不过可以修改
一般将payload进行分段分别进行base64编码
一般具有像eval这样的关键字和ini_set(display,0)这段代码。
3、冰蝎 PHP代码中可能存在eval、assert等关键词
jsp代码中可能会有get class(),get class loader()等字符特征。
中国菜刀、蚁剑的攻击流量特征明显容易被各类安全设备检测而冰蝎是一款基于Java开发的动态加密通信流量的Webshell工具由于通信流量被加密传统的 WAF、IDS 设备难以检测冰蝎最大特点就是对交互流量进行对称加密冰蝎密文采用对称加密算法AES加密加密后还会进行 base64 编码且加密秘钥是由随机数函数动态生成因此该客户端的流量几乎无法检测。
解题第一步先找AES加密算法的密钥
服务器使用随机数MD5的高16位作为密钥存储到会话的SESSIONID中我们可以通过wireshark抓包看到。
在找这些包之前我们其实可以先利用wireshark的过滤器进行初步的筛选
筛选HTTP POST请求因为攻击者通常通过POST请求发送命令和数据
http.request.method POST
筛选非常大或非常小的HTTP POST数据包这些可能包含有关服务器的信息
http.request.method POST and (frame.len 1000 or frame.len 5000)
筛选出具有 ACK 标志的 TCP 数据包这些数据包通常表示响应报文
tcp.flags.ack 1
我们也可以使用 and 对上面的一些条件进行组合筛选 。
查看请求shell.php的包 注意每个包前面是什么协议你就追踪什么流比如这里这个包是http协议那么你就要追踪http流否则出来的响应报文可能会存在格式的问题导致无法解码和识别。
追踪http流 找到与AES加密相关的东西 进行base64解码
拿到 $keye45e329feb5d925b; 接下来我们就可以对请求报文或者响应报文中的AES密文进行解密了
像下面这种格式的就是AES的密文红色部分是请求报文蓝色部分是响应报文。 我们使用在线网站批量解码AES批量加密解密 - 在线工具 (bugscaner.com)
先给大家看一下我前面提到过关于追踪流的情况
这是对同一个http协议的包追踪http流和tcp流的不同结果 这里这个用户名是很好找的很多包里面都有我只是列举了其中某个包 用户名为www-data
而服务器的内网ip则在长度为100的post请求1.php里面其他包里面可能也还有可以再找找我主要是最开始追踪成tcp流了导致一直没找到这段响应报文。 第一段响应报文解两次码后还是密文在第二段里面从我框起来的位置一直拉到结尾。 先解AES 再对msg的内容解base64 得到一个以basicInfo开头的东西对其内容再解base64注意要去掉basicInfo头否则会出错 在解码内容里找到服务器内网ip和用户名
172.17.0.2 和 www-data 其实也没必要对整个base64解码只需要对末尾 localIp:MTcyLjE3LjAuMg 的内容解码即可得到内网ip 因此flag为
flag{www-data_172.17.0.2} 溯源这个东西其实是很可怕的