文章目录

  • 1、流量包修复
  • 2、协议分析
    • 2.1 wireshark基本操作
    • 2.2 一些例题(各种协议)
  • 3、数据提取

1、流量包修复

这个方向的考点较少

  • 当我们用 wireshark 打开流量包时,如果遇到报错,可以试着修复一下再去开。
  • pcapfix在线修复工具:http://f00l.de/hacking/pcapfix.php
    pcapfix的离线版本:https://github.com/Rup0rt/pcapfix/tree/devel

2、协议分析

总体把握:协议分级+端点统计
过滤筛选:过滤语法+Host,Protocol,contains,特征值
发现异常:特殊字符串+协议某字段+flag 位于服务器中

2.1 wireshark基本操作

根据总体信息迅速把握流量包总体特征, 搞清楚 做什么?

1、捕获过滤器
在捕获里设置2、显示过滤器(语法)
(1)IP过滤:如ip.addr == 192.168.76.26 and icmp , ip.src ==192.168.104.10, ip.dst==192.168.104.10,
(2)协议过滤:如TCP, 注意http和icmp要小写
(3)端口过滤:如 tcp.port == 80 || udp.port == 80
(4)逻辑运算符:如 &&  ||  !
(5)方法过滤:http.request.method==GET ,注意GET要大写
(6)数据包内容过滤:data contains "abcd"
PS:Info列是wireshark组织的说明列并不一定是该数据包中的原始内容3、分组窗口(协议分析)
选定的数据包的分协议层展示(存在底色的是因为wireshark开启校验和验证而该层协议校验和又不正确所致)
以IP层为例:每一行就对应该层协议的一个字段;中括号行是前一字段的说明。
(1)Frame: 物理层的数据帧概况
(2)Ethernet II: 数据链路层以太网帧头部信息
(3)Internet Protocol Version 4: 互联网层IP包头部信息
(4)Transmission Control Protocol: 传输层T的数据段头部信息,此处是TCP
(5)Hypertext Transfer Protocol: 应用层的信息,此处是HTTP协议4、二进制源数据
最后一个窗口是选定的数据包的2进制源数据。
左侧是十六进制表示右侧是ASCII码表示。另外在中间窗口中选中某层或某字段,该窗口对应位置也会被高亮。5、统计分析
(1)Protocol History(协议分级):捕捉文件包含的所有协议的树状分支,可以为分析数据包的主要方向提供依据
(2)Conversation(对话):发生于一特定端点的 IP 间的所有流量。 查看收发大量数据流的 IP 地址。如果是你知道的服务器(你记得服务器的地址或地址范围),那问题就解决了;但也有可能只是某台设备正在扫描网络,或仅是一台产生过多数据的 PC。 - 查看扫描模式(scan pattern)。这可能是一次正常的扫描,如 SNMP 软件发送 ping 报文以查找网络,但通常扫描都不是好事情
(3)EndPoints(端点):列出了 Wireshark 发现的所有 endpoints 上的统计信息
(4)HTTP请求:好用的统计HTTP信息

2.2 一些例题(各种协议)

HTTP

江苏省领航杯 - 2017:hack
总体观察可以得出:  以HTTP和192.168.173.134为主
详细观察:这是一个在sql注入-盲注时产生的流量包
flag 的方向: 提取出所有的 url 后, 用python辅助得到盲注结果
提取 url: tshark -r hack.pcap -T fields -e http.request.full_uri|tr -s '\n'|grep flag > log

HTTPS
HTTPs = HTTP + SSL / TLS. 服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据

hack-dat-kiwi-ctf-2015:ssl-sniff-2
打开流量包发现是 SSL 加密过的数据, 导入题目提供的server.key.insecure, 即可解密

FTP
默认情况下 FTP 协议使用 TCP 端口中的 20 和 21 这两个端口,其中 20 用于传输数据, 21 用于传输控制信息。
但是,如果采用主动模式,那么数据传输端口就是 20 ;
如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

DNS
DNS 通常为 UDP 协议。 查询包只有头部和问题两个部分, DNS 收到查询包后,根据查询到的信息追加回答信息、授权机构、额外资源记录,并且修改了包头的相关标识再返回给客户端

BSides San Francisco CTF 2017 : dnscap.pcap
发现全部为 DNS 协议, 查询名为大量字符串([\w\.]+)\.skullseclabs\.org
通过 tshark -r dnscap.pcap -T fields -e dns.qry.name > hex提取后,利用 python 转码:
import re
find = ""
with open('hex','rb') as f:for i in f:text = re.findall(r'([\w\.]+)\.skull',i)if text:find += text[0].replace('.','')
print find
发现几条关键信息:
根据发现的 dnscat, 在qry.name中去除其余字段, 只留下 data 快, 从而合并数据, 再从 16 进制中检索89504e.....6082提取png, 得到 flag

WIFI
802.11 是现今无线局域网通用的标准, 常见认证方式有
不启用安全‍‍, WEP‍‍, WPA/WPA2-PSK(预共享密钥)‍‍, PA/WPA2 802.1X (radius 认证)
Deauth 攻击:因为WIFI管理数据帧没有被加密,导致攻击者可以伪造管理帧,从而让攻击者可以任意发送“取消认证”数据包来强行切断AP与客户端的连接。用户体验到的状态就是连接不上对于的WIFI了。(路由器支持802.11w协议可以加密管理帧)

实验吧: shipin.cap
从大量的Deauth 攻击基本可以判断是一个破解 wifi 时的流量攻击
同时也成功发现了握手包信息, 接下来跑密码
linux : aircrack 套件
windows : wifipr ,速度比 esaw 快得到密码88888888在 wireshark 中Edit -> Preferences -> Protocols -> IEEE802.11 -> Edit以key:SSID形式填入即可解密 wifi 包看到明文流量

USB
鼠标协议:每一个数据包的数据区有四个字节,第一个字节代表按键,当取 0x00 时,代表没有按键、为 0x01 时,代表按左键,为 0x02 时,代表当前按键为右键。
第二个字节可以看成是一个 signed byte 类型,其最高位为符号位,当这个值为正时,代表鼠标水平右移多少像素,为负时,代表水平左移多少像素。
第三个字节与第二字节类似,代表垂直上下移动的偏移。
键盘协议:键盘数据包的数据长度为 8 个字节,击键信息集中在第 3 个字节。根据 data 值与具体键位的对应关系可以参考ctf-wiki. 可从数据包恢复出键盘的案件信息

USB 协议的数据部分在 Leftover Capture Data 域之中在 Mac 和 Linux 下可以用 tshark 命令可以将 leftover capture data 单独提取出来,命令如下:
tshark -r example.pcap -T fields -e usb.capdata //如果想导入usbdata.txt文件中,后面加上参数:>usbdata.txtWindows 下装了 wireshark 的环境下,在 wireshark目录下有个 tshark.exe
tshark.exe -r example.pcap -T fields -e usb.capdata //如果想导入usbdata.txt文件中,后面加上参数:>usbdata.txt命令语法参考:
https://www.wireshark.org/docs/man-pages/tshark.html

3、数据提取

数据提取:字符串取+文件提取

这一块是流量包中另一个重点, 通过对协议分析, 找到了题目的关键点, 如何提取数据成了接下来的关键问题。

wireshark

  • 自动分析:file -> export objects -> http
  • 手动分析:file->export selected Packet Bytes

tshark(wireshark命令行版)

  • 命令tshark -r **.pcap –Y ** -T fields –e ** | **** > data
    通过-Y过滤器 (与 wireshark 一致), 然后用-T filds -e配合指定显示的数据段 (比如 usb.capdata)
    -e后的参数不确定可以由 wireshark 右击需要的数据选中后得到
  • 一个例子:
    鼠标协议中数据提取
    tshark -r capture.pcapng -T fields -e usb.capdata > data2.txt
  • 一个例子
    采用 tshark 进行提取,提取 dns 中的数据, 筛选具体报文形式\w{4,}.asis.io
    tshark -r forensic_175_d78a42edc01c9104653776f16813d9e5 -T fields -e dns.qry.name -e dns.flags|grep 8180|awk '{if ($1~/\w{4,}.asis.io/) print $1}'|awk -F '.' '{print $1}'|tr -d '\n' > png
//打印http协议流相关信息
tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'注释:-s: 只抓取前512字节;-i: 捕获eth0网卡;-n: 禁止网络对象名称解析;-f: 只捕获协议为tcp,目的端口为80;-R: 过滤出http.host和http.request.uri;-T,-e: 指的是打印这两个字段;-I: 输出到命令行界面; //实时打印当前mysql查询语句
tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query注释:-R: 过滤出mysql的查询语句;//导出smpp协议header和value的例子
tshark -r test.cap -R '(smpp.command_id==0x80000004) and (smpp.command_status==0x0)' -e smpp.message_id -e frame.time -T fields -E header=y >test.txt注释:    -r: 读取本地文件,可以先抓包存下来之后再进行分析;    -R: smpp...可以在wireshark的过滤表达式里面找到,后面会详细介绍;    -E: 当-T字段指定时,设置输出选项,header=y意思是头部要打印;    -e: 当-T字段指定时,设置输出哪些字段;     >: 重定向;//统计http状态
tshark -n -q -z http,stat, -z http,tree   注释:    -q: 只在结束捕获时输出数据,针对于统计类的命令非常有用;    -z: 各类统计选项,具体的参考文档,后面会介绍,可以使用tshark -z help命令来查看所有支持的字段;http,stat: 计算HTTP统计信息,显示的值是HTTP状态代码和HTTP请求方法。       http,tree: 计算HTTP包分布。 显示的值是HTTP请求模式和HTTP状态代码。//抓取500个包提取访问的网址打印出来
tshark -s 0 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l -c 500注释:     -f: 抓包前过滤;    -R: 抓包后过滤;    -l: 在打印结果之前清空缓存;    -c: 在抓500个包之后结束;//显示ssl data数据
tshark -n -t a -R ssl -T fields -e "ip.src" -e "ssl.app_data"//读取指定报文,按照ssl过滤显示内容
tshark -r temp.cap -R "ssl" -V -T text  注释:     -T text: 格式化输出,默认就是text;    -V: 增加包的输出;//-q 过滤tcp流13,获取data内容
tshark -r temp.cap -z "follow,tcp,ascii,13"//按照指定格式显示-e
tshark -r temp.cap -R ssl -Tfields -e "ip.src" -e tcp.srcport -e ip.dst -e tcp.dstport//输出数据
tshark -r vmx.cap -q -n -t ad -z follow,tcp,ascii,10.1.8.130:56087,10.195.4.41:446 | more注释:    -t ad: 输出格式化时间戳;//过滤包的时间和rtp.seq
tshark  -i eth0 -f "udp port 5004"  -T fields -e frame.time_epoch -e rtp.seq -o rtp.heuristic_rtp:true 1>test.txt  注释:    -o: 覆盖属性文件设置的一些值;//提取各协议数据部分
tshark -r H:/httpsession.pcap -q -n -t ad -z follow,tcp,ascii,71.6.167.142:27017,101.201.42.120:59381 | more

MISC:流量包取证(pcap文件修复、协议分析、数据提取)相关推荐

  1. 从pcap文件中解析网络数据包

    pcap文件解析 1:pcap文件格式 2:从pcap文件中读取以太网数据包 3:c语言代码实现 4 参考链接: 1:pcap文件格式 pcap文件主要包含了三个部分,pcap文件头,数据包头,数据包 ...

  2. 钉钉小程序可以上传文件_怎样禁止钉钉外发文件?钉钉文件传输协议分析

    钉钉(DingTalk)是中国领先的智能移动办公平台,用于商务沟通和工作协同.越来越多企业采用钉钉来进行办公自动化,但是由此带来的信息安全问题也不能忽视.钉钉软件可以很容易的上传附件.外发和接收文件, ...

  3. 网刃杯复现misc+流量包

    签到 cipher.txt U2FsdGVkX1+WTSHujcCjvHj/gcwL0C7u37XtW4idGcpci3H913I= U2F那些,考虑为aes,des啥的 发现flag.txt是零宽度 ...

  4. wireshark提取流量包中的文件_[技术]Wireshark抓取的数据包提取文件

    0x00 简介 本期主要会教大家如何从流量中还原出来文件.下面我将会用多种办法来讲解. 使用系统:Kali Linux 0x01 tcpxtract工具网络流量提取文件(方法1) Kali Linux ...

  5. wireshark提取流量包中的文件_返璞归真——流量中提取文件的五种方法

    0×00  简介 本期主要会教大家如何从流量中还原出来文件.下面我将会用5种办法来讲解. 0×01  网络流量提取文件(方法1) 1.  安装依赖 Default yum install -y lib ...

  6. wireshark读写pcap文件_PCAP-file-analysis 利用wireshark捕获tcp ip数据包和pcap文件分析 - 下载 - 搜珍网...

    reademe.txt 实验报告-终版.doc 实验数据/ 实验数据/arp.pcap 实验数据/DHCP.pcap 实验数据/Diagram1.dia 实验数据/Diagram1.png 实验数据/ ...

  7. 2021-09-28 网安实验-取证分析-Pcap流量包取证

    相关知识 关于wireshark Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用W ...

  8. wireshark提取流量包中的文件_从Wireshark监听的数据中提取需要的数据

    最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处 ...

  9. CTF——MISC——流量分析

    目录 一.流量包修复 二.协议分析 三.数据提取 例题: 1,题目:Cephalopod(图片提取) 2,题目:特殊后门(icmp协议信息传输) 3,题目:手机热点(蓝牙传输协议obex,数据提取) ...

最新文章

  1. 计算机程序设计员_第二届北京大工匠计算机程序设计员、网络与信息安全管理员挑战赛:一场互联网“战场”的巅峰对决...
  2. [转]js escape,encodeURI,encodeURIComponent
  3. Yii2.0 数据库更新update
  4. 路由表及路由的选择算法
  5. 【作品】超级玛丽射击版
  6. 用户登录python_python用户登录系统
  7. Java render用法_SpringMVC ModelAndView的用法使用详解
  8. Tensorflow图像编码处理
  9. UIKit Dynamic主题学习笔记
  10. MySql递归查询上级,下级
  11. 计算机ip 地址异常,电脑显示IP地址错误怎么办|电脑无法上网提示IP地址错误的解决方法...
  12. 计算机系最好的985大学排名,2017年全国“985”大学排名及王牌专业全解析
  13. wso2 mysql_WSO2
  14. C程序设计语言思维导图
  15. Bootstrap 新手学习手册---环境部署与网格系统
  16. 头脑王者服务器维护,头脑王者请求超时怎么解决 头脑王者查询服务器失败怎么回事...
  17. C++ | 数据结构 | 图结构的讲解与模拟实现 | DFS与BFS的实现
  18. 苹果EMS物流管理系统
  19. 彻底搞懂javascript中的replace函数
  20. 电源模块中滤波电容的作用

热门文章

  1. [luogu] P4981 父子 Cayley定理
  2. 【ZED】从零开始使用ZED相机(二):打开相机+捕获图像
  3. 从一路高歌到遭多国“封杀”,ChatGPT未来将是什么样子?
  4. 京东JData(一)
  5. 《了不起的盖茨比》有感
  6. 你的薪资是由谁决定的?
  7. Hdu 2027 getchar用法
  8. 集群服务器session同步
  9. 树莓派的linux可以编程吗,解答树莓派上用什么编程
  10. SCCP:信令连接控制协议--网络大典