2021陇剑杯
全是流量分析。麻了。只做了一部分。
参考链接
陇剑杯 个人 ’WriteUp‘-魔法少女雪殇 (snowywar.top)
陇剑杯Writeup(部分) - 惊觉 (leheavengame.com)
1.签到
题目描述:
网关小王在上网途中发现自己的网络访问异常缓慢,于是对网络出口捕获了流量,请您分析流量后进行回答:
1.1:
#### 题目:
此时正在进行的可能是http 协议的网络攻击。(如有字母请全部使用小写,填写样例:http、dns、ftp)
#### 题解:
2.jwt
题目描述:
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
2.1
题目 :
该网站使用了 ____** ** 认证方式(如有字母请全部使用小写)
题解:
jwt
2.2
题目:
黑客绕过验证使用的jwt中,id和username是____。
题解:
10087#admin
解析jwt的token如下
2.3
题目:
黑客获取webshell之后,权限是___
题解:
root
看流量,执行命令whoami。输出alert(‘root’),所以是root
2.4
题目:
黑客上传的恶意文件文件名是 ___。(请提交带有文件后缀的文件名,如x.txt)
题解:
/tem/1.c
继续分析流量,发现这里写入的文件是1.c
2.5
题目:
黑客在服务器上编译的恶意so文件,文件名是
题解:
looter.so
继续分析,解析编码,发现文件时looter.so
2.6
题目:
黑客在服务器上修改了一个配置文件,文件的绝对路径为____。(请确认绝对路径后再提交)
题解:
/etc/pam.d/common-auth
分析流量可以知道,最后的路径是/etc/pam.d/common-auth
3.webshell
题目详情:
单位网站被黑客挂马,请您从流量中分析出webshell,进行回答:
3.1
题目:
黑客登录系统使用的密码是___。
题解:
Admin123!@#
由流量分析可知,登录密码是Admin123!@#。
使用http.request.method=="POST"来进行筛选
3.2
题目:
黑客修改了一个日志文件,文件的绝对路径为___。(请确认绝对路径后再提交)
题解:
/var/www/html/data/Runtime/Logs/Home/21_08_07.log
简单方法:分组字节流-搜索.log,再拼接根目录即可。
复杂点:
绝对路径分为两个部分,一个是网站根目录,一个是相对路径。又因所问为日志文件,所以只需要找到phpinfo(),查找根目录和日志文件拼接即可。
导出所有的HTTP对象,在index(34).php%3fm=home&a=assign_resume_tpl
文件中发现phpinfo页面,修改后缀为html。打开。
查找根目录
查找日志文件
拼接即是绝对路径。
3.3
题目:
黑客获取webshell之后,权限是
题解:
www-data
317这里执行了whoami命令
319这里有回包,显示是www-data
3.4
题目:
黑客写入的webshell文件名是
题解:
1.php
3.5
题目:
黑客上传的代理工具客户端名字是
题解:
frpc
344包发送的信息
url解码得到如下结果
可以看到
$f=base64_decode(substr($_POST["j68071301598f"],2))
是从第二位开始取。解码j68071301598f得到
也可以从这里看
这个不会的人是真不会。学习了其他师傅的wp。
3.6
题目:
黑客代理工具的回连服务端ip是
题解:
192.168.239.123
继续解码344的包。把xa5d606e67883a的值解密得
5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A72656D6F74655F706F7274203D383131310A706C7567696E203D20736F636B73350A706C7567696E5F75736572203D2030484446743136634C514A0A706C7567696E5F706173737764203D204A544E32373647700A7573655F656E6372797074696F6E203D20747275650A7573655F636F6D7072657373696F6E203D20747275650A
3.7
题目:
黑客得socks5得连接账号、密码是
题解:
0HDFt16cLQJ&JTN276Gp
这个题在上一步3.6解码中有
4. 日志分析
题目描述:
单位某应用程序被攻击,请分析日志,进行作答:
4.1
题目:
网络存在源码泄露,源码文件名是
题解:
www.zip
这里我们直接搜索返回状态为200的流量,发现www.zip
4.2
题目:
分析攻击流量,黑客往/tmp目录写入一个文件,文件名为
题解:
sess_car
直接查找tmp即可看到。
4.3
题目:
分析攻击流量,黑客使用的是__类读取了秘密文件。
题解:
SplFileObject
同样的,在目录穿越反序列化的时候,已经显示出来了。
5. 流量分析 后续补上
题目描述:
5.1
题目:
攻击者的IP是
题解:
172.18.0.125
这里看大佬博客,发现是猜的。具体做法
唯有85号追踪流的分布与其他的完全不同,且比较均匀。攻击ip只有一个,于是猜测流量分布应该也与其他混淆流量不同,提交过后发现正确。
这个题不太懂,看了大佬得wp。似懂非懂,这里记录一下。
分析流量包,主机ip应该是172.18.0.1。都是UDP的包。看包的内容时,注意到UDP包头都是P05=,有的跟base64,有的跟乱码。P05=后面都是00 00 00 00 或者01 00 00 00,其中00的长度是32,01的长度是16,可能是认证过程。
根据长度16猜测可能是aes,用长度16的base64,即P05=后面是01 00 00 00的,作为aes key解密,02 00 00 00对应的包里面有一个可见字符,其中受害IP为172.18.0.125
6.内存分析
题目描述:
网关小王制作了一个虚拟机,让您来分析后作答
6.1
题目:
虚拟机的密码是__。(密码中为flag{xxxx},含有空格,提交时不要去掉)
题解:
flag{W31C0M3 T0 THiS 34SY F0R3NSiCX}
使用volatility工具进行分析
imageinfo获取系统信息
使用lsadump命令查看最后登录的用户,得到flag
flag{W31C0M3 T0 THiS 34SY F0R3NSiCX}
6.2
题目:
虚拟机中有一个华为收集的备份文件,文件里的图片的字符串为___。(解题过程中需要用到上一题答案中flag{}内的内容进行处理。本题的格式也是flag{xxxx},含有空格,提交时不要去掉)
题解:
flag{TH4NK Y0U FOR DECRYPTING MY DATA}
题目说是华为收集,那么直接使用grep命令来搜集有关于HUAWEI的信息。命令: filescan|grep -E “HUAWEI”
然后把文件dump下来,使用命令
dumpfiles -Q fileid -D 导出的文件夹
导出来一个exe文件,我们改一下后缀名,运行看一下,是一个自解压文件。
这时候需要对解压出来的文件进行解密,需要使用github上解密华为的工具。工具地址是: https://github.com/RealityNet/kobackupdec.git
使用命令:
python kobackupdec.py -vvv W31C0M3_T0_THiS_34SY_F0R3NSiCX HUAWEI ./jiemi
在生成的文件中的解压包中,发现flag图片
7.简单日志分析
题目描述:
某应用程序被攻击,请分析日志后作答:
7.1
题目:
黑客攻击的参数是___。(如有字母请全部使用小写)
题解:
user
翻看日志,发现GET传递的参数为user
7.2
题目:
黑客查看的秘密文件的绝对路径是___。
题解:
/Th4s_IS_VERY_Import_Fi1e
base64解码传递的参数,得到秘密文件
### 7.3
题目:
黑客反弹shell的ip和端口是___。(格式使用"ip:端口",例如127.0.0.1:2333)
题解:
192.168.2.197:8888
解码传递的最后一个参数,得到ip和端口
8.SQL注入
这里贴一个脚本,以后做到这类题可以直接上脚本,比一个一个看好。
import re
from urllib.parse import unquote
file_name = "access_1.log"
pattern_string = "select%20flag%20from%20sqli.flag"
#file_name = input("输入文件名,文件记得要在当前脚本目录下:")
#pattern_string = input("复制个特征值过来,比如select,flag啥的:")
flag = ''
# 打开文件以及读取行数
get_File = open(file_name, "r+")
get_line = get_File.readline()
while get_line:
get_Data = re.search(pattern_string, get_line)
if get_Data:
get_Data_Num = re.search(r'4[7-8][0-1]?.*', get_Data.string)
if get_Data_Num:
flag += (re.findall(r"%20=%20\'(.+?)\'", get_Data_Num.string))[0]
print(unquote(flag[:-1], 'utf-8'))
get_line = get_File.readline()
get_File.close()
题目描述:
某程序被攻击,请分析日志后作答
8.1
题目:
黑客在注入过程中采用的注入手法叫__。(格式为4个汉字,例如:“拼搏努力”)
题解:
布尔盲注
8.2
题目:
黑客在注入过程中,最终获取flag的数据库名、表名和字段名是___。(格式为"数据库名#表名#字段名",例如:database#table#column)
题解:
sqli#flag#flag
查看日志,即可发现
8.3
题目:
黑客最后获取到的flag字符串为
题解:
flag{deddcd67-bcfd-487e-b940-1217e668c7db}
查看日志,发现每次当数据库位数进行变化时,前一个字母的拼接结果就是flag
9.wifi
题目描述:
服务器、客户端、vmem
9.1
题目:
小王往upload-labs上传木马后进行了cat /flag,flag内容为___。(压缩包里有解压密码的提示,需要额外添加花括号)
题解:
flag{5db5b7b0bb74babb66e1522f3a6b1b12}
分析vmem文件。
在客户端的流量包中,发现wifi名称为My_Wifi
然后在镜像中查找My_Wifi,发现了个zip。
导出zip文件
volatility -f 1.vmem --profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003fdc38c8 -n --dump-dir=./fileout
解压发现password提示密码是自己wifi的GUID。网上搜索GUID在interfaces里面
这样的com格式的字符串在注册表中。我们可以使用volatility中的interfaces去定位。得到GUID,{529B7D2A-05D1-4F21-A001-8F4FF817FC3A}。
得到wifi密码233@114514_qwe,可以用来解密客户端加密流量。
这里使用airdecap-ng来解密客户端流量
这里解出来一个流量包文件,打开流量包,导出HTTP文件。
将pass的值解密,先url解密,再base64解密,得到明文,判断为哥斯拉流量。加密方式是xor_base64。流量密码是
$pass=‘key’;
$key=‘3c6e0b8a9c15224a’;
这里有个解密脚本
<?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='key';
$payloadName='payload';
$key='3c6e0b8a9c15224a';
echo gzdecode(encode(base64_decode('流量'),$key));
?>
得到flag
10.iOS
题目描述:
一位ios安全研究员在家中使用手机联网被黑,不仅被窃密还丢失比特币若干,请你通过流量和日志分析后作答
10.1
题目:
黑客所控制的C&C服务器IP是___。
题解:
3.128.156.159
首先分析access.log文件,发现上传了个一句话木马。然后就没什么了。然后发现keylog.txt文件是对流量包进行RSA解密所需的密钥,先不管。
查看流量包,然后导出所有的HTTP文件
查看文件,发现了一个ios_agent参数。还有链接github.com和一个ip。
然后在流量包的分组字节流中搜索ios_agent参数。
然后追踪TCP流,发现黑客首先执行了ls,然后从github上执行了wget下载ios_agent 并赋予777权限,然后执行ios_agent命令。
通过最后执行的这个命令,我们可以看到,黑客控制的C&C服务器ip是3.128.156.159
10.2
题目:
黑客利用的Github开源项目的名字是___。(如有字母请全部使用小写)
题解:
stowaway
在上一问中有看到。
10.3
题目:
通讯加密密钥的明文是___。
题解:
hack4sec
通过10.1中执行命令这条我们可以看到,-s后面跟的参数就是加密密钥。
10.4
题目:
黑客通过sql盲注拿到了一个敏感数据,内容是___。
题解:
746558f3-c841-456b-85d7-d6c0f2edabb2
存在很多http协议,查看http2发现存在sql注入,查看每一位最后的请求值,会得到一个uuid值。
部分存在TLS加密的流量需要用到密钥进行解密,当浏览器访问https站点时使用SSL/TLS协议。必须拥有服务器私钥,才能得到用于对称加密的密钥,然后真正解开加密的数据。
我们需要导入TLS协议所需的keylog.txt文件。然后就可以查看http2,也就是https协议了。
然后搜索select,就可以发现含有select的语句。再像之前那样找sql语句即可,最后hex转一下
10.5
题目:
黑客端口扫描的扫描器范围是___。(格式使用“开始端口-结束端口”,例如1-65535)
题解:
10-499
端口扫描涉及到rst报文和连续端口访问,我们打开专家信息找到rst。然后可以看到是从10开始到499结束。
10.6
题目:
黑客访问/攻击了内网的几个服务器,IP地址为___。(多个IP之间按从小到大排序,使用#来分隔,例如127.0.0.1#192.168.0.1)
题解:
172.28.0.2#192.168.1.12
总共有两个。
在access.log里面很清楚的看到有一个ip地址,然后再在https保温中看到一个攻击的内网服务器地址,也就是进行sql注入攻击的ip地址。
10.7
题目:
黑客写入了一个webshell,其密码为__。
题解:
fxxk
查看access.log里面传的一句话木马。