流量分析入门

流量分析入门前言个人一直对流量分析…正好看到了一些相关书籍资料,自己向前辈师傅们学习以后整理一些资料来总结一下互联网五层模型在计算机网络这门课中介绍了OSI模型及互联网五层模型:在我们使用抓包软件进行流量分析的时候,抓到的包往往含有数据链路层、网络层、传输层,应用层四个部分,其中一部分在传递到不同层面的时候会被丢弃。我们的wireshark抓的包工作在数据链路层,而burpsuite抓的http包则工作在应用层wireshark的用法打开wireshark,可以看到这是我们的一些接口,我现在用的是Wif

大家好,又见面了,我是你们的朋友全栈君。

前言

个人一直对CTF比赛中MISC中流量分析这一块感兴趣…但好像之前参加的培训没有涉及到。正好看到了一些相关书籍资料,自己向前辈们学习以后整理一些资料来总结一下(本人是个很菜…还没入门的pwn手)

互联网五层模型

在计算机网络这门课中介绍了OSI模型及互联网五层模型:
在我们使用抓包软件进行流量分析的时候,抓到的包往往含有数据链路层、网络层、传输层,应用层四个部分,其中一部分在传递到不同层面的时候会被丢弃。我们的wireshark抓的包工作在数据链路层,而burpsuite抓的http包则工作在应用层在这里插入图片描述

物理层

比如两台计算机直接相连(或者多台计算器用hub(集线器)连接)发挥作用就是物理层(线嘛)一台计算机通过网线发送,另一台或者几台就接收了

但是不够安全,可能会有信号冲突
所以平时我们一般将物理层的信号,调制成以太网格式,就可以在本地局域网中传输。局域网间就连接成互联网

数据链路层

用switch(交换机)相连的时候,采用的就是数据链路层上的协议,每一台计算机有对应的mac地址,当一个计算机要发送信息时,需要在以太帧头中指明发送方和接受方的地址,switch会在接受信号后根据地址转发至一个端口,就避免了信号冲突

网络层

当网络大,且复杂,且mac地址跟硬件绑定,如果更换设备又要重新配置网络,所以我们就要用到IP地址网络协议,IP地址和MAC地址通过ARP转换,路由器让计算机之间可以跨网段访问比如192.168.0.0和192.168.1.0,网关则是连接网段的接口,如192.168.0.1、192.168.1.1。一般会先检查是不是在本网段的IP,如果不是本网段,想要跨网段通信,先要发给路由器上面的网关,然后路由器再跟着IP地址转发
但事实上我们路由器集成了很多功能。。比如把有线转无线,还集成了hub,switch。。网关等等(有能力有时间了一定要拆一个hhh)

传输层

TCP

网络层完成了IP地址的传送,但是我们要确保数据传输的可靠性。TCP就是通过三次握手确保畅通,通过端口区分连接在这里插入图片描述
如图,这里SYN表示请求一个连接,SYN,ACK表示已经收到请求连接,详情看TCP的三次握手,四次挥手

UDP在这里插入图片描述

如图,QQ使用的应用层协议是OICQ,OICQ使用的传输层协议是UDP.

应用层

http请求等

wireshark的用法

基本用法

打开wireshark,可以看到
在这里插入图片描述
这是我们的一些接口,我现在用的是Wifi,现在看到我们wifi对应的就是wlan接口,而且我还装了一些虚拟机,这些就是虚拟机接口,当然也是虚拟的
USBcap就是USB的接口
访问一个网页
我们可以打开过滤器,搜索http这样就可以展示使用这个协议的一些在这里插入图片描述

我们访问了一个网站,根据上述方法可以找到这个网站的request请求,我们request请求后,这个网站的服务器会返回一个response包
response in frame意思是在985帧返回response,我们打开
在这里插入图片描述看到了这些信息,我们打开访问的网站F12在这里插入图片描述
我们看到这些信息,和我们返回包上的值差不多,说明我们成功抓包了
在过滤器输入以下指令:
在这里插入图片描述

我们在这个网站上,刷新一次,就会多出来一个帧在这里插入图片描述在这里插入图片描述

同样含有index.html我们发现在这个上面刷新不了在这里插入图片描述
而且发现,前一个在URL栏显示不安全,这个不刷新的上面是一个锁
因为上锁的这个采用的是https协议,前一个是http协议,https协议是一种加密的协议,请求网站的路径,内容都看不到在这里插入图片描述
如图,输入ssl我们可以看到如下,https我们可以理解为http+ssl/tls层,ssl/tls的强加密

导出

可以停止后,导出
也可以右键,追踪流,选择TCP,然后选择原始数据
保存后用010editor打开

题目

据前辈介绍,一半是把flag藏在数据包里面。在流量包里找

上课认真听了吗?

题目提示,是三种不同的流量在这里插入图片描述
在最下面。。。我找了半天。。254,我们再找其他的
找tcp contains“flag”在这里插入图片描述
是26
找http contains“flag”找不到???点击左上角放大镜,点字符串搜索flag{加个大括号试试在这里插入图片描述
是340
经组合,flag是flag{25434026}
也可以用默认端口查
比如tcp.port==80
也可以追踪流里面用flag去查

我是间谍

发现题目是一个exe文件,这可能是一个恶意文件,然后我们运行时会向别的IP发送数据
在虚拟机中运行(注意给的病毒啥的最好在虚拟机里运行),然后看是一个helloworld的程序
在这里插入图片描述
打开wireshark进行分析,搜索字符串flag{

得到flag:在这里插入图片描述

结语

这是一篇偏向入门的流量分析总结,后续随着做题肯定还会继续更深入地写,感谢各位前辈们的指点!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133255.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • css display属性的值及用法_css clear作用

    css display属性的值及用法_css clear作用display的所有属性{/*CSS1*/display:none;display:inline;display:block;display:list-item;/*CSS2.1*/display:inline-block;display:table;display:inline-table;display:table-cell;display:t…

    2022年10月28日
    0
  • 如何搭建谷歌离线地图服务[通俗易懂]

    如何搭建谷歌离线地图服务[通俗易懂]如何发布google离线地图及二次开发API发布时间:2018-01-17版权:相关教程:一键离线地图发布(工具下载)使用教程谷歌离线地图API接口文档及接口调用实例1.说明离线地图开发环境支持谷歌地图、百度地图、高德地图等等所有常用地图类型,支持在局域网内的地图部署、二次开发。2.实现第一步:下载安装离线地图开发环境BIEGMAP离线地图服务器…

    2022年9月16日
    0
  • Android启动模式之singleTask解析「建议收藏」

    Android启动模式之singleTask解析「建议收藏」在android应用程序中,最重要的组件之一Activity有4中启动模式,其中singleTask更加官方文档的描述很容易让人迷惑,其实原因在于,activity的启动方式除了受标签android:launchMode的影响之外,还会被启动参数所左右比如,intent的标志位FLAG_ACTIVITY_NEW_TASK,任务标签 android:taskAffinity。本文将对singleTa

    2022年6月26日
    156
  • MySQL慢查询日志分析详解[通俗易懂]

    MySQL慢查询日志分析详解[通俗易懂]MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢…

    2022年10月12日
    0
  • javascript返回上一步,后退的代码

    javascript返回上一步,后退的代码第一种方法:<ahref=”javascript:history.go(-1)”>返回上一步</a><ahref=”javascript:”οnclick=”history.back();”>返回上一页</a>第二种方法:<scriptlanguage=”javascript”>window.history.back(-1);</script>…

    2022年7月25日
    6
  • 关于 ioctl 的 FIONREAD 参数[通俗易懂]

    关于 ioctl 的 FIONREAD 参数[通俗易懂]ioctl是用来设置硬件控制寄存器,或者读取硬件状态寄存器的数值之类的。而read,write是把数据丢入缓冲区,硬件的驱动从缓冲区读取数据一个个发送或者把接收的数据送入缓冲区。 ioctl(keyFd,FIONREAD,&b)得到缓冲区里有多少字节要被读取,然后将字节数放入b里面。接下来就可以用read了。read(keyFd,&b,sizeof(b))清

    2022年7月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号