会有好几篇,这个只是第一篇,总结下我的流量分析方向的学习吧
流量分析学习之路–入门篇
前言
打了也有快一年的ctf了,我是个菜鸡密码手,但是很多比赛没有密码,所以学点其他技能,那就流量分析吧,回顾一下自己流量分析学习之路,应该会总结好几篇(放在一篇里太长了,要加很多题目示例),个人觉得会很详细的,会从基础讲起
计算机网络
计算机网络主要会被化成两个模型一个是TCP/IP五层模型一个是OSI七层模型
TCP/IP五层模型
TCP/IP五层模型从上到下主要分位应用层,传输层,网络层,数据链路层,物理层
应用层
http(超文本传输协议),ftp(文件传输协议),telnet(远程登录),dns(域名系统)等我们常见的这些协议都是属于应用层
传输层
TCP(传输控制协议),UDP(开放系统互连)
TCP
TCP连接的建立时,双方需要经过三次握手,而断开连接时,双方需要经过四次分手,如果想要详细了解看下面这位大佬的文章这里不多赘述
https://blog.csdn.net/crazymakercircle/article/details/114527369
UDP
UDP的包头如下:
详细了解的话参考这篇文章:https://blog.csdn.net/hansionz/article/details/86435127
网络层
网络层涉及硬件、软件:路由器(有内置软件)、三层交换机。路由器将局域网和广域网相连,实现不同网络间的通信,根据路由选择协议(Routing Protocol)提供的功能,它可以自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
一般我们比较常见的有IP(Internet协议),ICMP(nternet控制信息协议),ARP(址解析协议),RARP(反向地址解析协议)。
数据链路层
用交换机相连的时候,采用的就是数据链路层上的协议,每一台计算机有对应的mac地址,当一个计算机要发送信息时,需要在以太帧头中指明发送方和接受方的地址,switch会在接受信号后根据地址转发至一个端口以此避免了信号冲突
涉及硬件:网桥、网卡、以太网交换机
物理层
两台计算机直接连接,或者多个计算机用集线器连接起来,简单来说就是线,连网线。
设备:电缆、双绞线、无线网(电磁微波)、中继器、集线器。
功能:实现0、1信号的传输。这些0、1信号就是计算机能够识别的数据
OSI七层模型
OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
OSI模型相比于TCP/IP模型多了表示层和会话层,自上而下为应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
表示层
显而易见,表示层就是将应用层的信息表示出来,让对端设备能够正确识别,它主要关注传输信息的语义和语法,譬如一幅图像可以表示为JPEG格式,也可以表示为PNG格式,如果对方程序不识别本方的表示方法,就无法正确显示这副图片。
会话层
会话层就是对话窗口,不过它是向表示层或会话用户提供会话服务。例如,某个用户登录到一个远程系统与之交换信息,会话层控制哪一方有权发送信息,哪一方必须接收信息,其实是一种同步机制。
wireshark
WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程中各种问题定位。本文主要内容包括:
1、Wireshark软件下载和安装以及Wireshark主界面介绍。
2、WireShark简单抓包示例。通过该例子学会怎么抓包以及如何简单查看分析数据包内容。
3、Wireshark过滤器使用。通过过滤器可以筛选出想要分析的内容。包括按照协议过滤、端口和主机名过滤、数据包内容过滤。
wireshark安装教程
不过多赘述
下载安装看以下链接:https://blog.csdn.net/liuhyusb/article/details/129586841
使用教程
不过多赘述看以下教程
https://blog.csdn.net/zzwwhhpp/article/details/113077747
题目
不多说直接开始实战,从基础开始
webshell流量分析
[陇剑杯 2021]签到
题目描述
此时正在进行的可能是__________协议的网络攻击。(如有字母请全部使用小写,填写样例:http、dns、ftp)。
解题思路
打开附件分析题目,首先看到NBNS协议,这个协议其实就是发了一个广播包,在下面的arp协议中去寻找目标ip的mac地址,SSDP(Simple Service Discovery Protocol)
简单服务发现协议,用于发现局域网里面的设备和服务。
发现服务之后然后开始进行连接
对于这道题目因为是webshell流量所以我们要注意http流量,我们首先可以筛选以下http流量,然后我们可以发现很多带有200和403状态的http流量,显而易见这个题目攻击者是对http层面进行了攻击
所以答案就是http
[陇剑杯 2021]jwt(问1)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
该网站使用了______认证方式。
jwt认证流程
前端通过Web表单将自己的用户名和密码发送到后端的接口。该过程一般是HTTP的POST请求。建议的方式是通过SSL加密的传输(https协议),从而避免敏感信息被嗅探。
后端核对用户名和密码成功后,将用户的id等其他信息作为JWT Payload(负载),将其与头部分别进行Base64编码拼接后签名,形成一个JWT(Token)。
后端将JWT字符串作为登录成功的返回结果返回给前端。前端可以将返回的结果保存在localStorage(浏览器本地缓存)或sessionStorage(session缓存)上,退出登录时前端删除保存的JWT即可。
前端在每次请求时将JWT放入HTTP的Header中的Authorization位。(解决XSS和XSRF问题)HEADER
后端检查是否存在,如存在验证JWT的有效性。例如,检查签名是否正确﹔检查Token是否过期;检查Token的接收方是否是自己(可选)
验证通过后后端使用JWT中包含的用户信息进行其他逻辑操作,返回相应结果。
主要特征就是token,所以当我们追踪http流之后会发现明显的jwt认证特征的流量
解题思路
所以显而易见答案是jwt,其实从这个题目名都能知道
[陇剑杯 2021]jwt(问2)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客绕过验证使用的jwt中,id和username是______。(中间使用#号隔开,例如1#admin)。
解题思路
去找黑攻击的流量使用的jwt中的id和username,那么我们首先要做的是过滤出post流量,因为这个是jwt认证的特征,然后我们可以去找黑客执行命令前的一个流量包,可以发现前面command命令都是whoami去查看用户名,然后在第99帧流量发现了echo执行命令
然后将token进行base64解码(可以直接找到cokie的value然后显示分组字节然后base64解码)就发现id和username了,id=10087,username=admin
这道题就解决了
[陇剑杯 2021]jwt(问3)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客获取webshell之后,权限是______?。
解题思路
继续去看97号流量,因为在这里面黑客成功绕过并且取得权限,所以我们去追踪tcp流然后我们就找到了是root权限
这道题完成取得的权限是root
[陇剑杯 2021]jwt(问4)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客上传的恶意文件文件名是_____________。(请提交带有文件后缀的文件名,例如x.txt)。
解题思路
我们获得了权限那我们可以继续去看一下黑客进行了什么操作,我们可以看到在101帧和103帧有一串base64解码看到是一个.c文件,非常可疑,这个有可能就是post传入的文件
但是我们并不知道文件名,这时候继续向下看我们会看到执行了ls命令显示出1.c文件,然后在107帧我们追踪TCP流发现文件一样说明这个1.c就是黑客上传的文件名
然后显而易见文件就是1.c
[陇剑杯 2021]jwt(问5)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客在服务器上编译的恶意so文件,文件名是_____________。(请提交带有文件后缀的文件名,例如x.so)。
解题思路
继续去看下面的流量,显而易见他对looter.so文件进行了copy,将其从tmp复制到/lib/x86_64-linux-gnu/security/里面,然后看了一下/lib/x86_64-linux-gnu/security/目录下的文件成功被复制到目录下
继续向下审流量,在129帧流量里面我们可以看到echo “auth optional looter.so”>>/etc/pam.d/common-auth,这个操作是将auth optional looter.so写入到aommon-auth文件尾。
/etc/pam.d/common-auth:这是Linux系统中PAM(Pluggable Authentication Modules)配置文件的路径。PAM是Linux系统中用于集中认证的框架,它允许多种认证机制(如密码、指纹等)被统一管理和使用。
auth optional looter.so这个命令是将looter.so配置为optional,这个意味着即使在looter.so模块在认证错误或者没能执行仍能继续认证,可以让用户可以继续登录。
所以我们可以知道编辑的恶意so文件是looter.so
[陇剑杯 2021]jwt(问6)
题目描述
昨天,单位流量系统捕获了黑客攻击流量,请您分析流量后进行回答:
黑客在服务器上修改了一个配置文件,文件的绝对路径为_____________。(请确认绝对路径后再提交)。
解题思路
不多赘述,如果好好看了的话在jwt(问6)就已经得到答案,答案为:/etc/pam.d/common-auth
答案/etc/pam.d/common-auth