在CTF比赛中,流量分析是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件和pcapng文件 ,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。有时候也会需要选手们先进行修复或重构传输文件后,再进行分析。
总的来说有以下几个步骤
-
总体把握
-
协议分级
-
端点统计
-
过滤筛选
-
过滤语法
-
Host,Protocol,contains,特征值
-
发现异常
-
特殊字符串
-
协议某字段
-
flag 位于服务器中
-
数据提取
-
字符串取
-
文件提取
总的来说比赛中的流量分析可以概括为以下三个方向:
-
流量包修复
-
协议分析
-
数据提取
pcap文件和pcapng文件流量包的分析通常都是通过图形化的网络嗅探器——WireShark进行的,这款嗅探器经过众多开发者的不断完善,现在已经成为使用最为广泛的安全工具之一。
CTF题型主要分为流量包修复、WEB流量包分析、USB流量包分析和其他流量包分析。
■ 流量包修复
比赛过程中有可能会出现通过WireShark打开题目给的流量包后提示包异常的情况,如下图所示:
第一届 “百度杯” 信息安全攻防总决赛 线上选拔赛:find the flag
pacp文件地址:
https://static2.ichunqiu.com/icq/resources/fileupload/CTF/BSRC/2017/BSRC3-1/findtheflag.cap
解题思路:
通过在线pacp包修复工具进行修复:
http://f00l.de/hacking/pcapfix.php
https://github.com/Rup0rt/pcapfix/tree/devel
data.data == 77:68:65:72:65:20:69:73:20:74:68:65:20:66:6c:61:67:3f
获取 flag
flag{aha!_you_found_it!}
■ Web流量包分析
Web数据包分析的题目主要出现WEB攻击行为的分析上, 典型的Web攻击行为有:Web扫描、后台目录爆破、后台账号爆破、WebShell上传、SQL注入等等。
■ Web扫描分析
题型:
通过给出的流量包获取攻击者使用的Web扫描工具。
解题思路:
常见的Web扫描器有Awvs,Netsparker,Appscan,Webinspect,Rsas(绿盟极光),Nessus,WebReaver,Sqlmap等。要识别攻击者使用的是哪一种扫描器,可通过WireShark筛选扫描器特征来得知。
相关命令:
http contains “扫描器指纹”
扫描器指纹
awvs:acunetix
netsparker:netsparker
appscan:Appscan
nessus:nessus
sqlmap:sqlmap
#url
acunetix
acunetix_wvs
acunetix_test
#headers
Host: acunetix_wvs_security_test
Cookie: acunetix_wvs_security_test
Cookie: acunetix
Accept: acunetix/wvs
#body
acunetix_wvs_security_test
acunetix
#url
nessus
Nessus
#headers
x_forwarded_for: nessus
referer: nessus
host: nessus
#body
nessus
Nessus
安恒八月月赛流量分析
https://pan.baidu.com/s/13SoD6xB7YBiqpUDCIcb8mg
某公司内网网络被黑客渗透,请分析流量,给出黑客使用的扫描器
输入命令
http contains "acunetix"
■ 后台目录爆破分析
题型:
已知攻击者通过目录爆破的手段获取了网站的后台地址,请通过给出的流量包获取后台地址。
解题思路:
要获取流量包中记录的后台地址,可通过wireshark筛选后台url特征来得知。
相关命令:
http contains “后台url特征”
常见后台地址
admin
manager
login
system
Disallow
一般情况下,大多数网站创建者或管理员都会在网站的根目录放置一个名为robots.txt的文本文件,用来控制自己的网站哪些目录允许SE搜索引擎,爬行并收录,哪些目录禁止搜索引擎收录,Disallow,正是robots.txt文件中设置禁止搜索引擎收录哪些目录的一个词语。
涉及到后台目录爆破,就要发大量的请求,如黑客使用御剑等工具进行目录扫描,会发送很多请求,因为是在遍历字典中的一些目录,所以捕获到数据包中会有一大片都是扫描目录的而且还是404 Not Found
输入命令
ip.addr == 192.168.32.189 && http contains "404"
■ 后台账号爆破
题型:
已知攻击者通过暴力破解的手段获取了网站的后台登陆账号,请通过给出的流量包获取正确的账号信息。
解题思路:
Web账号登陆页面通常采用POST方法请求,要获取流量包中记录的账号信息可通过wiresshark筛选出POST请求和账号中的关键字如‘admin’。
相关命令:
http.request.method == "POST" && http contains "关键字"
当黑客扫描到后台登录页面时,肯定会先使用万能密码和弱口令进行尝试,而登录页面一般都是POST
请求,万能密码和弱口令一般都是含有admin
的,而且登录页面一般是有login
这个关键字的,所以可以利用这些进行过滤。
http.request.method == "POST" && http contains "login"
■ WebShell上传
题型:
已知攻击者上传了恶意WebShell文件,请通过给出的流量包还原出攻击者上传的WebShell内容。
解题思路:
WebShell文件上传常采用POST方法请求,文件内容常见关键字eval,system,assert要。获取流量包中记录的webshell可通过wireshark筛选出POST请求和关键字。
相关命令:
http.request.method == "POST" && http contains "关键字"
■ USB流量包分析
USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。在CTF中,USB流量分析主要以键盘和鼠标流量为主。
■ 键盘流量
USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节。其中键盘击键信息集中在第三个字节中。数据如下图所示:
题型:
Flag藏于USB流量中,通过USB协议数据中的键盘键码转换成键位。
解题思路:
-
使用kali linux中的tshark 命令把cap data提取出来,并去除空行。
tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt
2. 根据《USB键盘协议中键码》中的HID Usage ID将数据还原成键位。
■ 鼠标流量
USB协议鼠标数据部分在Leftover Capture Data域中,数据长度为四个字节。
其中第一个字节代表按键,当取0x00时,代表没有按键、为0x01时,代表按左键,为0x02时,代表当前按键为右键。第二个字节可以看成是一个signed byte类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。第三个字节与第二字节类似,代表垂直上下移动的偏移。
题型:
Flag藏于USB流量中,通过USB协议数据中的鼠标移动轨迹转换成Flag。
解题思路:
-
使用kali linux中的tshark 命令把cap data提取出来,并去除空行。
tshark -r usb.pcap -T fields -e usb.capdata > usbdata.txt
2. 根据usb协议鼠标数据还原鼠标移动轨迹。
CTF 套路
一般是传webshell然后菜刀连接,参数进行base64编码,
先解密参数,了解进行了什么操作一步步解密请求参数了解进行什么操作
先找http,分析请求内容,一般是base64解码 ,
然后大概能知道一个密码或者一个压缩文件,图片什么的,
下一步就是文件提取,一般用到winhex或者HXD 16进制编码的工具。
部分内容参考以下资料
参考资料 :
https://www.freebuf.com/sectool/201830.html
作者:漏洞社区
链接:https://www.freebuf.com/sectool/201830.html
来源:FreeBuf
本文始发于微信公众号(利刃信安):【学习笔记】CTF 之 流量分析(02)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论