第四部分:D 模块 CTF 夺旗-防御
总体要求:根据任务要求,参赛队通过扫描、渗透测试等手段检测自己堡垒
服务器中存在的安全缺陷,进行针对性加固,从而提升系统的安全防御性能。
注意:该模块所有的时间格式是数据包内设置时间格式为:flag{12:34:37.347025}
1) 分析攻击者的IP地址并作为flag提交。flag:flag{xxx.xxx.xxx.xxx}
flag:flag{192.168.1.180}
2) 分析攻击者找到后台地址的时间。将黑客第一次访问的后台地址的时间(Time字段)的值作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.uri contains "/index.php/admin"
flag:flag{12:59:06.816816}
3) 分析攻击者成功进入后台的时间(Time字段)的值。将时间作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.uri contains "/index.php/admin" && http contains "passwd=admin"
flag:flag{13:01:48.032447}
4) 分析攻击者第一次访问webshell的时间(Time字段)的值。将时间作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.uri contains "/class/cache304/index.php"
flag:flag{13:06:44.844874}
5) 分析攻击者上传webshell的手法。将攻击者用于传递webshell用的文件名作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.method == "POST"
看到一段应用商店的下载请求并且下载地址是黑客的服务器地址:
flag:flag{cache304.1.0.zip}
6) 分析攻击者webshell文件上传的算法,将通过webshell上传的恶意文件的目标路径以及文件名作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.uri contains "/class/cache304/index.php"
过滤完成后可得到如下的数据包:
分析post的a的值可知,通过Post提交的参数进行了base64编码并在前面添加了2个垃圾字符。所以对数据包进行过滤可知:
flag:{/tmp/peerserver_linux_x64}
7) 分析攻击者给刚刚用webshell上传的文件增加执行权限的数据包长度(Length字段)的值,将长度作为flag提交。
wireshark过滤语法:ip.addr == 192.168.1.180 && http.request.uri contains "/class/cache304/index.php"
对该数据包进行解密
flag:flag{836}
8) 分析攻击者用于传递tty的shell连接秘钥。将秘钥作为flag提交。
wireshark语法:ip.addr == 192.168.1.180 && http.request.uri contains "/class/cache304/index.php"
追踪TCP流量发现执行的代码
进行url解密提取base64进行base64解码后可看到明文代码:
flag:flag{j89e23ry37hw9348yrh923}
9)分析攻击者提权的方式。将攻击者上传提权可执行文件的时间(Time字段)的值作为flag提交。
通过之前的流量分析可知攻击者通过udp加密传输的命令执行。然后执行了一条下载提权文件的命令。提权文件通过tcp进行传输。
还可以通过虚拟机内docker中的.bash_history文件拿到线索分析出来
flag:flag{13:18:18.847510}
10) 分析攻击者提权的过程,将攻击者提权成功后第一次连接的时间(Time字段)的值作为flag提交。
根据虚拟机内docker中的.bash_history文件拿到线索分析出来在下载完成后就执行了docker逃逸操作,并且连接到攻击者的8888端口。所以查找第一次与8888端口握手的时间。
flag:flag{13:19:06.809000}
11)分析攻击者提权的过程,将攻击者提权成功后执行的第一个和第二个命令按顺序拼接在一起作为flag提交。
wireshark语法:ip.addr == 192.168.1.180 && tcp.port == 8888
追踪流查看执行的命令:
flag:flag{idifconfig}
12) 分析攻击者提权成功后的操作,将攻击者添加的用户的用户名密码作为flag提交。
通过查看用户列表可以看到多出一个zxb用户。
然后可以在数据包中过滤zxb关键字,找到数据包。
flag:flag{zxb123456}
13)分析攻击者权限维持操作,并将攻击者上传的打包文件的文件名作为flag提交。
flag:flag{reptile.tar}
14)分析攻击者权限维持操作,并将攻击者上传的可执行后门程序的文件名作为flag提交。
flag:flag{reptile_sshe}
15)分析攻击者权限维持操作,并将攻击者在自启脚本中用于开机启动后门程序的那行命令作为flag提交。
flag:flag{./etc/ssh/reptile_sshe&}
16)分析攻击者权限维持操作,并将自启程序连接的远程服务器端口号作为flag提交。
flag:flag{8081}
17)分析攻击者权限维持操作,将攻击者免密登陆的认证文件的md5值作为flag提交。
flag:flag{17e13bc510e4c758d69a0305c498a0e7}