Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CTF之misc杂项解题技巧总结(2)——流量分析

CTF之misc杂项解题技巧总结(2)——流量分析

作者头像
用户10781703
发布于 2023-12-23 01:12:23
发布于 2023-12-23 01:12:23
6.4K00
代码可运行
举报
运行总次数:0
代码可运行

通常比赛中会提供一个包含流量数据的 PCAP 文件,有时候也会需要选手们先进行修复或重构传输文件后,再进行分析。

PCAP 这一块作为重点考察方向,复杂的地方在于数据包里充满着大量无关的流量信息,因此如何分类和过滤数据是参赛者需要完成的工作。

概括来讲在比赛中的流量分析有以下三个方向:

1、流量包修复 2、协议分析 3、数据提取

我们首先用一个合天的实验来对流量分析进行初探(wireshark之文件还原)

场景:

黑客通过ARP欺骗,使用wireshark获取了整个局域网内的流量信息,无意之中发现有人在某个网站上上传了一份文件,但是他不知道怎么用wireshark去还原这份文件,所以将监听的数据报保存了一份wireshark监听记录,我们需要对流量包进行分析并还原出目标所上传的图片。

操作流程:

打开数据包发现数据共有148条(算很少了)

但是手动一条一条去审计也很费精力。利用wireshark的显示过滤功能,因为从题目中我们确定,上传时候访问的是网站,所以在filter中输入http,显示所有的http协议数据包,还剩下32个

通过分析我们发现在末尾第143条数据中看到upload关键词的post数据包,从而怀疑这条就是涉及到上传的数据包。

知识补充

以前的POST方式是不支持传送文件的,对于普通的post来说,他的Content-type是application/x-www-from-urlencode,也就意味着消息的内容会被url编码,但是后来支持传送文件,将Content-type扩展为multipart/form-data,来向server发送二进制数据,并且还要用一个内容分隔符来分割数据,boundry. 同时chrome和ie的策略也有所不同,IE是传送完整的路径,而Chrome只传送文件名。

如果拥有编写网站的经验,就会知道上传文件提交可以使用一个post表单的形式,所以也可以使用显示过滤器选出所有POST方法提交的数据包(http.request.method==”POST”)

通过对这个数据包进行分析,得到确实上传了一张图片,文件名为bingo.png,同时由于文件较大,TCP协议对其进行了切片,一共切了5个片,点击各个Frame可以看到每个包中的内容。

其实在这一步我们就可以直接将其中图片的十六进制数据进行复制,用一些十六进制编辑器(例如Winhex)写入其中保存为bingo.png就可以了(注意去掉不该有的数据。)

这里我们利用TCP流跟踪,对这个会话进行完整分析。

有两个数据包,一个是请求的包,一个是响应的包,我们选择较大的请求包(因为里边包含原始图片信息),选择原始类型将其进行保存。

然后利用winhex将其打开,发现其囊括了整个HTTP请求(包括请求所用的头部以及所POST的数据包括boundary)

这里就不用原实验中的方法了因为较为麻烦,我们知道PNG图片的文件头为89 50 4E 47,所以直接在winhex中搜索十六进制数据,删除其前边的所有数据。

图片传送完毕还有其相关的尾部信息(可在刚才的wireshark流中查看),也对其进行删除操作

最后将其命名为bingo.png,打开图片得到key。

现在我们来对在比赛中的三个方向进行分析

1、流量包修复

比如一个流量包它的文件头也是对的,里边也没有包含其他的文件等等等等,但是就是打开出现一些未知的错误,这时候就要考虑对流量包进行修复。 这类题目考察较少,通常都借助现成的工具例如PCAPFIX直接修复。

Tools: PcapFix Online https://f00l.de/hacking/pcapfix.php PcapFix https://github.com/Rup0rt/pcapfix/tree/devel

下边介绍流量包几个常见的块,详细介绍可以看:http://www.tcpdump.org/pcap/pcap.html

一般文件结构

常见块

Section Header Block(必须存在)

Interface Description Block(接口描述,必须存在,描述接口特性)

Packet Block(数据块)

2、协议分析

此类方向需要对分析流量包工具所用的语法有一定的掌握,这里以wireshark为例,须掌握wireshark过滤器(捕捉过滤器与显示过滤器)的基础语法,从而更快更精准的获取指定的信息

捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中,需要在开始捕捉前设置。

显示过滤器:用于在捕获结果中进行详细查找,可以在得到捕捉结果后进行更改

捕捉过滤器基础语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Protocol   Direction   Host(s)    Value   LogicalOperations    other expressiontcp           dst           10.1.1.1     80      and     tcp dst 10.2.2.2    3128

Protocol

可能的值: ether, fddi, ip, arp, rarp, decnet,lat, sca, moprc, mopdl, tcp and udp,如果没有特别指明是什么协议,则默认使用所有支持的协议。

Direction

可能的值: src, dst, src and dst, src or dst,如果没有特别指明来源或目的地,则默认使用 “src or dst” 作为关键字。

Host(s)

可能的值: net, port,host, portrange,如果没有指定此值,则默认使用”host”关键字。

例如,”src 10.1.1.1”与”src host 10.1.1.1”相同。

Logical Operations

可能的值:not, and, or

否(“not”)具有最高的优先级,或(“or”)和与(“and”)具有相同的优先级

“not tcp port 3128 and tcp port23”与”(not tcp port 3128) and tcp port23”相同。

举例分析:

tcp dst port 3128 //目的TCP端口为3128的封包。 ip src host 10.1.1.1 //来源IP地址为10.1.1.1的封包。 host 10.1.2.3 //目的或来源IP地址为10.1.2.3的封包。

src portrange 2000-2500

//来源为UDP或TCP,并且端口号在2000至2500范围内的封包

not icmp //除了icmp以外的所有封包。

显示过滤器基础语法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Protocol    String1 String2     ComparisonOperator    Value   Logical Operations     other expression

Protocol

可以使用大量位于OSI模型第2至7层的协议。在Expression中可以看到,例如,IP,TCP,DNS,SSH

String1,String2

可选择显示过滤器右侧表达式,点击父类的+号,然后查看其子类

Comparison Oerators

可以使用六种比较运算符

Logical Expressions

举例

snmp || dns || icmp //显示SNMP或DNS或ICMP封包 ip.addr == 10.1.1.1 //显示源或目的IP为10.1.1.1的封包 ip.src != 10.1.2.3 and ip.dst!=10.4.5.6 //显示源不为10.1.2.3并且目的不为10.4.5.6的封包 tcp.port == 25 //显示来源或目的TCP端口号为25的封包 tcp.dport == 25 //显示目的TCP端口号为25的封包

如果过滤器语法是正确的,表达式背景为绿色,否则为红色

前文中的wireshark文件还原就可以说是一个很基础的数据包流量分析。

3、数据提取

这一块是流量包中另一个重点,通过对协议分析,找到题目的关键点,从而对所需要的数据进行提取。

可以学习一下tshark的使用。

tshark作为wireshark的命令行版,高效快捷是它的优点,配合其余命令行工具(awk,grep)等灵活使用,可以快速定位,提取数据从而省去了繁杂的脚本编写

常用方法:tshark –r .pcap –Y -T fields –e | * > data

流量包例题分析

题目1、MISC.rar

key为文本格式,你找得到吗?

这道题非常基础,一般也是我拿到流量包首先会看的,既然要找的文本格式,那我就直接查看

用wireshark打开数据包,在文件 -> 导出对象中,选择HTTP

拉到最下方,发现有一份txt文件,选中并save,打开文件后得到key

题目2:ISCC Misc 就在其中

打开数据包,简单分析一下,arp寻找到目的ip的MAC地址进行通信,TCP三次握手,然后利用FTP进行文件下载,我们来追踪TCP流

eq是等于的意思,后边的序号是一次完整的TCP连接,依次更改直到我们想要的内容

看到有个pub.key还有其他一些文件,看到这些信息需要敏感一点,从这个公钥自然联想到私钥,私钥可以干嘛?这里边的文件和私钥有什么关系?难道是被加密的文件要用私钥来进行解密?

再翻一翻发现一枚私钥,应该确定是需要使用密钥来对文件进行解密。

把私钥复制出去,存为private.key,数据包里边还有很多文件,我们用binwalk查看一下看有没有是否可以提取

发现一个压缩包,里边有一个key.txt,我们使用foremost对其进行提取,并解压出这个key.txt,但是打印发现里边的数据是乱码,大可能是被加密了?

然后使用openssl对其进行解密

成功得到flag。

openssl 的使用

openssl是一个功能强大的工具包,它集成了众多密码算法及实用工具。我们即可以利用它提供的命令台工具生成密钥、证书来加密解密文件,也可以在利用其提供的API接口在代码中对传输信息进行加密。Openssl的简单使用:

1、生成一个密钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openssl genrsa -out test.key 1024

这里-out指定生成文件的。需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。后面的1024是生成密钥的长度。

2、提取文件中的公钥

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openssl rsa -in test.key -pubout -outtest_pub.key

-in指定输入文件,-out指定提取生成公钥的文件名。至此,我们手上就有了一个公钥,一个私钥(包含公钥)。现在可以将用公钥来加密文件了。

3、在目录中创建一个hello的文本文件,然后用此前生成的公钥加密文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openssl rsautl -encrypt -in hello -inkeytest_pub.key -pubin -out hello.en

-in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件

4、解密文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
openssl rsautl -decrypt -in hello.en -inkeytest.key -out hello.de

-in指定要加密的文件,-inkey指定密钥,-pubin表明是用纯公钥文件加密,-out为加密后的文件。

题目3:Google-CTF-2016:a-cute-stegosaurus-100

https://github.com/ctfs/write-ups-2016/tree/master/google-ctf-2016/forensics/a-cute-stegosaurus-100

当时做出这道题的并不多,全球只有26支队伍,给我我也不会做,拿过来咱看看

在tcp报文段中有6Bit的状态控制码,分别如下

URG:紧急比特(urgent),当URG=1时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据) ACK:确认比特(Acknowledge)。只有当ACK=1时确认号字段才有效,代表这个封包为确认封包。当ACK=0时,确认号无效。 PSH:(Push function)若为1时,代表要求对方立即传送缓冲区内的其他对应封包,而无需等缓冲满了才送。 RST:复位比特(Reset) ,当RST=1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。 SYN:同步比特(Synchronous),SYN置为1,就表示这是一个连接请求或连接接受报文,通常带有 SYN 标志的封包表示『主动』要连接到对方的意思。。 FIN:终止比特(Final),用来释放一个连接。当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

而本题中的tcp.urg却为

通过tshark提取 tcp.urg 然后取出0的字段,换行符转,直接转换成python的列表,转ascii即可得到flag

tshark -r Stego-200_urg.pcap -T fields -etcp.urgent_pointer|egrep -vi “^0$”|tr ‘\n’ ‘,’

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在CTF中少走弯路(基础篇)
自己并不是专业的赛棍也没有打过很多比赛,这篇文章是自己在CTF中对于杂项这块知识学习的小结,希望可以对初入CTF的同学有所帮助,在CTF中少走弯路从而更快的提升自己。 一、流量分析篇 通常比赛中会提供一个包含流量数据的 PCAP 文件,有时候也会需要选手们先进行修复或重构传输文件后,再进行分析。 PCAP 这一块作为重点考察方向,复杂的地方在于数据包里充满着大量无关的流量信息,因此如何分类和过滤数据是参赛者需要完成的工作。 概括来讲在比赛中的流量分析有以下三个方向: 1、流量包修复 2、协议分析 3、数据提
FB客服
2018/04/17
8.3K1
如何在CTF中少走弯路(基础篇)
网络工程师的高端玩具:WireShark 从入门到精通,收藏!
抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle、wireshark,作为一个不是经常要抓包的人员,学会用Wireshark就够了,毕竟它是功能最全面使用者最多的抓包工具。
网络技术联盟站
2023/03/01
1.3K0
网络工程师的高端玩具:WireShark 从入门到精通,收藏!
Python黑帽编程1.5 使用Wireshark练习网络协议分析
1.5.0.1 本系列教程说明 本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作。由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好。教程同时提供图文和视频教程两种方式,供不同喜好的同学选择。 1.5.0.2 本节前言 在上一节,笔者罗列的学习网络编程应该了解或掌握的网络基础知识
用户1631416
2018/04/12
1.4K0
Python黑帽编程1.5  使用Wireshark练习网络协议分析
数据包分析基础
在数据包的分析中离不开的工具就是wireshark, 这里整理一下重要的几个功能:
后场技术
2020/12/14
1.3K0
数据包分析基础
wireshark过滤语法总结[通俗易懂]
抓包采用wireshark,提取特征时,要对session进行过滤,找到关键的stream,这里总结了wireshark过滤的基本语法,供自己以后参考。(脑子记不住东西)
全栈程序员站长
2022/09/14
5K0
最强linux抓包工具优劣势对比分析
注:ngrep可以用于网络流量的抓取和过滤,类似于grep命令对文件的过滤,ngrep对网络流量进行过滤和匹配。
IT运维技术圈
2023/09/07
9560
最强linux抓包工具优劣势对比分析
CTF流量分析之wireshark使用
在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索。
漏斗社区
2019/04/29
5.8K0
CTF流量分析之wireshark使用
终极抓包技巧大公开!网工圈必备的十大秘籍!
来源网络 抓包工具Wireshark大家都知道,它可以截获和分析网络数据封包,检测网络上的问题,比如网络延迟、数据丢失、拥堵等,以及评估网络性能。 当网络里发现恶意攻击、某人下载流量过大、设备互联丢包、协议交互失败等等情况时,通过Wireshark抓包定位问题根源,是最直接有效的手段。 虽然Wireshark功能强大,但是很多网工使用时一知半解,会碰到许多问题。 比如: 问题出现时间极不固定,甚至10天才出现一次,你会一直守着抓? 数据流量太大,才抓几秒钟就达到了几百兆的抓包文件,然后系统卡死要怎样操作? 报文抓到了,但是报文杂乱无章,该从何看起? …… 如果你也有以上问题,那这篇文章你一定要看。 01 过滤器捕获技巧 我们都知道,wireshark可以实现本地抓包,同时Wireshark也支持remote packet capture protocol(rpcapd)协议远程抓包,只要在远程主机上安装相应的rpcapd服务例程就可以实现在本地电脑执行wireshark 捕获远程电脑的流量了。 有些网工可能会出现这种情况,在某企业网发现外网用户telnet到出口设备,不定时出现回显不全,所以决定抓取telnet数据包分析。 用Wireshark捕获了接口所有数据包,2分钟后抓包的电脑死机了,由于流量很大,有用的数据包却一个都没有。 这时候,捕获过滤器只捕获特定的流量,或者不捕获某些流量而捕获其他所有的流量就显得很有必要。@网 络 工 程 师 俱 乐 部 使用过滤器的操作步骤如下: (1)依次打开“捕获”→“选项”,选择对应的抓包接口,“所选择接口的捕获过滤器”栏输入过滤表达式,如下图:
ICT系统集成阿祥
2024/12/03
5180
终极抓包技巧大公开!网工圈必备的十大秘籍!
CTF-流量分析总结
在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,选手通过该文件筛选和过滤其中无关的流量信息,根据关键流量信息找出flag或者相关线索,一般flag隐藏在某个数据包里面,或者需要从中提取一个文件出来等等,还有wifi的握手包,需要获取wifi密码等。
小简
2022/12/29
5.1K0
CTF-流量分析总结
我整理的Wireshark实战技巧,网络问题秒解决!
这时候,Wireshark 就成了我们的"火眼金睛",能够透视网络流量的每一个细节。
释然IT杂谈
2025/07/08
8370
我整理的Wireshark实战技巧,网络问题秒解决!
我整理的Wireshark实战技巧,网络问题秒解决!
这时候,Wireshark 就成了我们的"火眼金睛",能够透视网络流量的每一个细节。
ICT系统集成阿祥
2025/07/12
1900
我整理的Wireshark实战技巧,网络问题秒解决!
流量分析基础到实战
Wireshark的作者Gerald Combs,于1998年由于在校项目需求而开发,早期名为Ethereal。Wireshark是世界上最重要和最广泛使用的网络协议分析仪。
字节脉搏实验室
2020/05/12
1.7K0
流量分析基础到实战
wireshark流量分析实战
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
全栈程序员站长
2022/08/12
1.7K0
wireshark流量分析实战
网络流量中的旗帜狩猎:Wireshark CTF实战手册
在夺旗赛(CTF)竞赛中,数字取证挑战是最令人兴奋且回报丰厚的项目之一。它们不仅考验你的技术能力,还测试你的耐心、创造力和跳出框架思考的能力。
qife122
2025/07/28
1790
优雅解密HTTPS流量:开发者与安全工程师的进阶指南
HTTPS作为互联网安全的基石,通过TLS协议的三次握手建立了端到端的加密通道。在开发调试、安全攻防演练或流量分析等场景中,如何在不破坏加密体系完整性的前提下实现流量解密?本文将揭秘三种专业级解决方案,并探讨如何平衡安全与效率。
是山河呀
2025/04/19
3030
wireshark抓包使用教程
Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括:
全栈程序员站长
2022/10/04
4.2K0
wireshark抓包使用教程
CTF| 吃个鸡,一起破流量分析题吧!
流量分析题是CTF杂项类常见的一种考点,考察我们分析网络流量包的能力。一般flag隐藏在某个数据包里面,或者需要从中提取一个文件出来等等,还有wifi的握手包,需要获取wifi密码等。 一、Wireshark的使用姿势 1.1 过滤报文 wirkshark的过滤器和过滤规则能够帮助我们迅速定位到要分析的报文。下面列举几种比较常见的过滤数据包的语法,具体的还请百度。 1.过滤IP,如源IP或者目标 x.x.x.x ip.src eq x.x.x.x or ip.dst eq x.x.x.x 或者 ip.a
漏斗社区
2018/03/28
4.2K0
CTF| 吃个鸡,一起破流量分析题吧!
Wireshark网络分析从入门到实践
如果希望查看网卡的IP地址信息,就可以在工具栏上选择“捕获选项”,这样就可以打开如图1-3所示的Wireshark捕获窗口。
yeedomliu
2023/11/20
1.1K0
DataCon 的 DNS 恶意流量检查一题回顾
首先,第二题直接放弃了,算法对我来说很掉头发的,果断放弃了。毕竟现在不是答题时间了,下面的分析如有错误还请各位留言扶正,谢谢!
信安之路
2019/06/17
2.5K0
DataCon 的 DNS 恶意流量检查一题回顾
Wireshark 的抓包和分析,看这篇就够了!
WireShark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在网络封包和流量分析领域有着十分强大功能的工具,深受各类网络工程师和网络分析师的喜爱。
杰哥的IT之旅
2021/12/01
4.9K1
Wireshark 的抓包和分析,看这篇就够了!
推荐阅读
相关推荐
如何在CTF中少走弯路(基础篇)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验