1.流量分析是什么?
网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。
2.常见的流量包协议
TCP ; UDP ; HTTP ; HTTPS ; FTP ; SMB 等
TCP / UDP传输机制
TCP协议传输先向你发送三次握手建立链接,中途中断会停止发送保证数完整
这里SYN表示请求一个连接,SYN,ACK表示已经收到请求连接。
UDP协议传输就直接传输,哪怕你中途断开也不会影响它继续传输
HTTP/HTTPS协议
超文本传输协议 ( HTTP) 是一种无状态应用层协议HTTP 支持在客户端和服务器之间以明文形式传输数据。客户端将向服务器发送 HTTP 请求,请求资源。建立会话,服务器响应请求的媒体(HTML、图像、超链接、视频)。HTTP 在正常操作期间通过 TCP 使用端口 80 或 8000。在特殊情况下,它可以修改为使用备用端口,有时甚至可以使用 UDP。
HTTP Secure ( HTTPS) 是对 HTTP 协议的修改,目的是利用 TLS / SSL 与较旧的应用程序一起使用以确保数据安全。TLS 被用作加密机制来保护客户端和服务器之间的通信。TLS 可以将常规 HTTP 流量包装在 TLS 中,这意味着我们可以加密我们的整个对话,而不仅仅是发送或请求明文数据。在 TLS 机制到位之前,我们很容易受到中间人攻击和其他类型的侦察或劫持,这意味着如果与客户端或服务器位于同一局域网中的任何人正在监听数据包,那他们都可以查看 Web 流量。我们现在可以提高浏览器的安全性,使每个人都可以加密他们的搜索请求、会话或数据传输、银行交易等。它的基础是 HTTP,但 HTTPS 使用端口 443 和 8443 而不是标准端口 80。这是客户端向服务器发送它希望建立安全连接的信号。
FTP
文件传输协议 ( FTP) 是一种应用层协议,可在计算设备之间实现快速数据传输。可以从命令行、Web 浏览器或FileZilla 等图形化客户端使用 FTP。FTP的使用方法也简单当我和朋友在一个WiFi下面(也就是局域网)需要传输东西给他这时候没有别的传输介质就可以用FTP传输FTP 通过 TCP 使用端口 20 和 21。端口 20 用于数据传输,而端口 21 用于发出控制 FTP 会话的命令,并且FTP 支持用户身份验证以及匿名访问。在一些断网的比赛环境这种方法还是用的多
SMB
服务器消息块 ( SMB) 是一种在 Windows 企业环境中最常见的协议之一,它是一种面向连接的协议,支持在主机之间共享资源。SMB协议需要对用户进行身份验证,以确保用户具有使用该资源或执行操作的正确权限。以前,SMB 在 UDP 137 和 138 端口上使用 NetBIOS 作为其传输机制。现在 SMB 支持在端口 445 上直接进行 TCP 传输,NetBIOS在 TCP 端口 139 上。SMB 使我们能够轻松方便地访问打印机、共享驱动器、身份验证服务器等资源。因此,SMB 对攻击者也非常有吸引力。与其他使用 TCP 作为传输机制的应用程序一样,它执行标准的三次握手,并且确认接收到的数据包。
3.抓包工具
a. wireshark
WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息。这个是英文界面对新手来说可能不太友好但是现在这个软件可以打中文补丁个人比较推荐
b. 科来网络分析系统
科来网络分析系统是网络故障分析、数字安全取证、协议分析学习等使用场景的“利器”。它无需复杂的部署工作,当您有网络流量分析的需求时,可直接安装在您的随行电脑中使用,无论是固定节点使用,还是临检需求,都可以灵活、高效的帮助用户解决网络性能与安全方面的实际问题。中文面板初学者可以用,我刚入坑的时候就是用的这个
4.案例
基础大概就是这些工具安装好就可以试着去分析一些流量包我这里也是有一些流量分析的题目,现在过一遍
L1-1 流量分析
流量包描述:
某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻击了,于是他赶紧把服务器的网线拔了并调取了那段时间的流量,然后慌忙的找到你,求求你救救安服仔吧
1、通过分析数据包L1-1.pcapng找出恶意用户的IP地 址,并将恶意用户的IP地址作为FLAG(形式:[IP地址])提交:
打开文件看见http的流量包比较多可以过滤一些http的流量包
过滤之后看见172.16.1.102 在对172.16.1.101进行sql注入所以攻击者ip就出来了
FLAG:[172.16.1.102]
2.继续查看数据包文件L1-1.pacapng,分析出恶意用户扫描了哪些端口,并将全部的端口作为 FLAG(形式:[端口名1,端口名2,端口名3…,端口名n])从低到高提交:
用命令过滤一下端口
这个命令的意思是过滤TCP的流量包从里面抓取带SYN的流量包筛选出所有源地址为 172.16.1.102 的 IP 数据包。现在的扫描器一般都是用的TCP扫描所以用这个就可以把TCP的扫描流量过滤出来
tcp.connection.syn and ip.src == 172.16.1.102 |
FLAG:[20,23,80,445,3389,5007]
3.继续查看数据包文件L1-1.pacapng分析出恶意用户最终获得的用户名是什么,并将用户名作为 FLAG(形式:[用户名])提交:
要在一个巨大的流量包里面找到一个用户名要先分析http流量的提交方式http的提交方式还是带用户名的那肯定就是有表单了,直接过滤POST关键字账号密码就出来了
http.request.method == "POST" |
FLAG:[lancelot]
4.继续查看数据包文件L1-1.pacapng分析出恶意用户最终获得的密码是什么,并将密码作为 FLAG(形式:[密码])提交:
上面一个题那个流量包里有账号和密码
FLAG:[12369874]
5.继续查看数据包文件L1-1.pacapng分析出恶意用户连接一句话木马的密码是什么,并将一句话 密码作为FLAG(形式:[一句话密码])提交:
这里说一下一句话木马 一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此
常见的一句话木马
php的一句话木马:<?php @eval($_POST['pass']);?> asp的一句话是: <%eval request ("pass")%> aspx的一句话是: <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%> |
这里还是查POST表单因为一句话木马也是要靠表单上传上去的
FLAG:[alpha]
6.继续查看数据包文件L1-1.pacapng分析出恶意用户下载了什么文件,并将文件名及后缀作为 FLAG(形式:[文件名.后缀名])提交:
看它的POST流量里面最后一个里面看到了下载的文件
FLAG:[flag.zip]
7.继续查看数据包文件L1-1.pacapng将恶意用户下载的文件里面的内容作为FLAG(形式:[文件 内容])提交:
现在要把最后下载的文件从流量包里分离出来,要去找到这个POST流量包的响应包右击流量包追踪流追踪http的流量
追踪HTTP流这一段对话里面POST的下载请求,下面那个回复200是状态码,表示同意,最下面的是下载请求要下载的内容
现在要把这个流量包分离出来追踪流还原原始数据另存为导出这个流量
导出来之后重命名和上面下载的文件名格式一样会发现解压需要密码但是我们没有密码准备用别的方法我们直接打开kali用隐写分离神器Binwalk强行把文件提取出来拿到flag的值
FLAG:[flag{Manners maketh man}]
今天的分享就到这里如果有不懂的可以评论在下面看到了会重点讲一下