【CTF流量分析:从入门到精通】

CTF(Capture The Flag)是一种网络安全竞赛,其中流量分析是一种常见的题型。流量分析就是通过分析网络流量包,提取出有用的信息,如密码、密钥、文件、flag等。流量分析需要掌握一些基本的网络协议知识,以及一些常用的工具和技巧。本文将介绍流量分析的基本概念,常见的题型和解题方法,以及一些实战案例,帮助你从入门到精通流量分析。

流量分析的基本概念

流量包(packet)是网络通信中的最小单位,它包含了发送方和接收方的地址、协议类型、数据内容等信息。流量包按照不同的层次可以分为物理层、数据链路层、网络层、传输层、应用层等,每一层都有相应的协议和格式。流量分析就是通过观察和解析流量包的各个层次的信息,找出其中的规律和异常,从而达到目的。

流量分析的工具有很多,其中最常用的是wireshark,它是一个图形化的网络嗅探器,可以捕获和分析实时或离线的流量包,支持多种协议和过滤器,还有一些高级功能,如数据包还原、数据提取、流量统计等。除了wireshark,还有一些其他的工具,如tcpdump、tshark、foremost、binwalk等,它们各有特点和优势,可以根据不同的场景和需求选择使用。

流量分析的技巧有很多,其中最重要的是过滤和搜索。过滤是指根据一定的条件,筛选出感兴趣的流量包,如协议类型、端口号、IP地址、数据长度等。搜索是指根据一定的关键字,查找出包含该关键字的流量包,如字符串、十六进制、正则表达式等。通过过滤和搜索,可以快速定位到目标流量包,从而节省时间和精力。

流量分析的常见题型和解题方法

流量分析的题型有很多,但大致可以分为以下几类:

  • ping报文信息:这类题目是通过分析icmp协议的ping报文,提取出其中隐藏的信息,如flag、文件、命令等。解题方法是观察每个ping报文的数据部分,找出其中的规律和异常,或者用脚本处理。
  • 上传/下载文件:这类题目是通过分析http协议或其他协议的上传/下载文件的流量,提取出其中的文件内容,如压缩包、图片、文本等。解题方法是使用wireshark的导出对象功能,或者手动提取数据部分,或者用foremost等工具分离文件。
  • sql注入攻击:这类题目是通过分析http协议的sql注入攻击的流量,提取出其中的数据库信息,如表名、字段名、数据内容等。解题方法是观察每个http请求的参数和响应,找出其中的注入语句和结果,或者用sqlmap等工具自动化注入。
  • 访问特定的加密解密网站:这类题目是通过分析http协议的访问特定的加密解密网站的流量,提取出其中的加密或解密的内容,如md5、base64、aes等。解题方法是观察每个http请求的参数和响应,找出其中的加密或解密的内容,或者用在线工具或脚本进行加密或解密。
  • 后台扫描+弱密码爆破+菜刀:这类题目是通过分析http协议的后台扫描+弱密码爆破+菜刀的流量,提取出其中的后台地址、用户名、密码、文件内容等。解题方法是观察每个http请求的参数和响应,找出其中的扫描工具、爆破工具、菜刀工具的特征和结果,或者用相应的工具进行验证和操作。
  • usb流量分析:这类题目是通过分析usb协议的流量,提取出其中的键盘输入、鼠标点击、文件拷贝等信息。解题方法是使用wireshark的usb键盘解码器,或者手动解析usb数据包,或者用脚本处理。
  • WiFi无线密码破解:这类题目是通过分析WiFi协议的流量,提取出其中的无线密码,如wep、wpa、wpa2等。解题方法是使用wireshark的无线密码解码器,或者使用aircrack-ng等工具进行破解。
  • 根据一组流量包了解黑客的具体行为:这类题目是通过分析一组复杂的流量包,了解黑客的具体行为,如攻击方式、攻击目标、攻击结果等。解题方法是综合运用上述的各种工具和技巧,分析流量包的各个层次和细节,还原黑客的攻击过程和思路。

流量分析的实战案例

下面我们来看几个流量分析的实战案例,分别涉及到不同的题型和方法,帮助你加深理解和掌握流量分析的技能。

案例一:ping报文信息

这是一个来自第八届极客大挑战的题目,题目给出了一个流量包,要求提取出其中的flag。

打开流量包,发现有一大段的icmp协议的包,发现在icmp报文中夹杂着flag:

 

这里可以依次查看每一个icmp报文数据,然后得到flag:

flag{p1ng_p0ng_p1ng_p0ng}

也可以用脚本处理,如下:

import pyshark
cap = pyshark.FileCapture('ping.pcap')
flag = ''
for packet in cap:
    data = packet[packet.highest_layer].data
    flag += chr(int(data, 16))
cap.close()
print(flag)

案例二:上传/下载文件

这是一个来自第七季极客大挑战的题目,题目给出了一个流量包,要求提取出其中的文件内容。

打开流量包,发现有一些http协议的包,其中有一个包的数据部分包含了一个rar压缩包:

 

要提取出这个rar包,有两种方法:

方法一:直接复制数据块,然后复制到winhex中,转存为rar。

复制数据块 as Hex stream > 在winhex中粘贴 为 ASCII HEX > 删除前面的 多余信息 > 保存为 rar

方法二:用foremost分离:

foremost -i http.pcap -o output

在output文件夹中可以看的分离出来的文件。

 

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M1r4n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值