前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >流量分析基础到实战

流量分析基础到实战

作者头像
字节脉搏实验室
发布2020-05-12 14:48:44
1.4K0
发布2020-05-12 14:48:44
举报

文章源自【字节脉搏社区】

作者-小寺

扫描下方二维码进入社区:

0x00 抓包工具的介绍

Wireshark的作者Gerald Combs,于1998年由于在校项目需求而开发,早期名为Ethereal。Wireshark是世界上最重要和最广泛使用的网络协议分析仪。

优点:

1.支持多平台(Kali Linux自带该工具)

2.开源免费

3.界面友好

4.对新手友好

缺点:

1.当采集的数据包很大的时候,相应速度较慢

2.生成分析图表不够直观

0x01安装Wireshark

1.官方下载链接:

https://www.wireshark.org/#download

(上图中文是使用了Chrome自带的谷歌翻译)

2.选择你的操作系统并下载安装

步骤:

①下载完毕后,直接运行,弹出安装界面

②选择安装路径

③无脑按Next

④安装完毕

安装参考链接:

https://jingyan.baidu.com/article/6181c3e0d81551152ef153eb.html

0x02 安装的注意事项

刚开始学习的时候,wireshark安装有时候挺头疼的,如果你是Win10用户,有一定几率会出现安装报错,或者进入到界面的时候显示“没有找到接口“。如果没有上述情况,请跳过0x02

修复方法(请按顺序排查):

1.npf没有启动

方法:管理员身份打开CMD输入net start npf

参考链接:

https://blog.51cto.com/12078224/2390095

2.安装了npcap但是依然不显示接口

方法:更换为Win10pcap

参考链接:

https://www.cnblogs.com/pangya/p/9881175.html

3.更新网卡驱动

方法:使用360驱动大师等更新网卡驱动

参考链接:

https://blog.csdn.net/kanamisama0/article/details/78558585

4.终极方法:

直接使用虚拟机Kali Linux自带的Wireshark或在虚拟机linux上安装wireshark

0x03 使用介绍

一.使用步骤

运行wireshark,快速执行一次抓包分三步骤:

①选择本地网卡(可以是无线网卡)

②输入捕获过滤器的表达式

③点击开始抓包

④输入应用显示过滤器的表达式

二、什么是捕获过滤器?

你可能会有点疑惑,第二步的捕获过滤器是什么东西?

Q:什么是捕获过滤器?

A:在抓包前先设置好条件,只抓取想要的部分,

避免产生过大数据。

ps:这个功能相当于使用电子图书馆的检索功能;假如我只想看中国近代文学,只要在筛选条件中输入“中国近代文学“,这样子就只会列出想要的书籍。

常见的表达式如:

筛选IP如:host 192.168.31.100

筛选端口如:port 80

筛选协议如:icmp

你在捕获筛选器填了什么,在后面的捕获中就只会捕获符合条件的流量!

选择好网卡,输入完过滤器后,点击左上角的开始捕获图标就可以开始抓包了!

三、什么是应用显示过滤器

刚进去的时候会遇到特别多的数据,不要害怕,这都是来自其他网络应用程序的数据包,他有可能是QQ,微信,某个刚刚访问的页面等等的流量,所有在局域网内经过的流量都被Wireshark捕抓了下来。

“那么这么多的流量,应该怎么只显示我想要的呢?”

作业一:捕获ICMP流量数据包

内容:使用终端Ping路由器网关地址,然后使用应用显示过滤器筛选出ICMP的流量

一、打开终端,用Ping命令ping网关地址(路由器的IP地址)

二、在应用显示过滤器输入表达式

应用显示捕获器输入表达式:ICMP

此时就从整个捕获到的数据中,筛选出了ICMP的数据包了,再也没有其他数据表的干扰着我们分析

注意:我们在终端ping命令后门添加了-c参数,指定了只发两个请求包

在wireshark里显示4个包的原因是因为:“正常情况下,如果这是一个在线的设备,发送了一个ICMP请求包过去,对方就会返回一个回响包”

你会注意到:

第一行的Source是本机IP,Destination是路由器IP,说明这是一个请求包

第二行的Source是路由器IP,Destination是本机IP,说明这是一个回响包

三、进阶玩法

概要:ftp的设计是一个建立在互相信任的平台,这个协议采用了明文的方式传输数据,包括用户名和口令!接下来的实验是证明,为什么FTP协议不安全

作业二:报告司令!抓住一个明文口令

内容:通过wireshark捕获两个客户端和服务端之间的FTP协议通信的流量,分析数据包中的明文用户名和密码

(一).搭建一个FTP Server服务

在Windows环境中,强烈安利一个迷你的Ftp服务端软件Slyar FTPserver,这是一款很久以前的小工具,在传送小文件的场景下,非常实用!

地址:

http://www.slyar.com/blog/slyar-ftpserver.html

在Linux环境中,推荐使用vsftpd

Centos下安装Vsftpd的命令:

1.安装vsftpd

[root@localhost ~]# yum -y install vsftpd

2.启动vsftpd

[root@localhost ~]# service vsftpd start

3.添加一个普通用户

[root@localhost ~]# useradd test

4.修改密码

[root@localhost ~]# passwd test

(二)查看服务端和客户端的IP地址

Windows在CMD输入ipconfig,Linux在终端输入ifconfig

客户端

服务端

以我这边作为例子,一台Kali是FTP客户端,另一台Centos是FTP服务端

服务端的IP为:192.168.31.144

客户端的IP为:192.168.31.112

(PS:如果在虚拟机的实验,请确保是在同一网段)

(三)wireshark抓包

1.打开Wireshark,选择本地网卡,设置捕获过滤器为空,点击左上角图标开始捕获

2.开始抓包

在应用显示过滤器中输入

ip.host==192.168.31.144 && ip.host==192.168.31.112 && ftp,然后回车

这里的ip.host==ip地址表示筛选出该ip地址的流量,&&代表and匹配多条件的意思,ftp代表只匹配FTP协议的流量

3.在客户端输入ftp 192.168.31.144 (windows在cmd下的操作也是相同命令)

(四)wireshark数据包分析

1.先点击左上角第二个红色按钮停止抓包

2.我们可以看到下面列表中的几条数据,就是我们刚刚在使用ftp的流量,对其中任意一条右键—>追踪流—>TCP流

我们在TCP流中可以看到,你刚刚输入的全部信息,都将是明文信息,所以Ftp协议是一个非常不安全的协议,无论是明文用户名和口令或者文件内容

实验结束

总结:

1.捕获过滤器和应用显示过滤器的区别:

捕获过滤器:数据经过的第一层过滤器,主要作用防止产生过大的数据包文件

应用显示过滤器:数据经过的第二层过滤器,主要作用精准找到所需记录

2.ftp实验证明不安全的,那有其他替代协议吗?

答:有的,如:FTPS (FTP over SSL),就是ftp的传输上加了SSL证书来加密传输的数据,还有SFTP(SSH文件传输协议)

四、案例分析

某学校有一个内网后台管理系统,小A和小B是在同一个办公室内,小A负责每日的内网的维护,所以每天都会固定在一个时间登录后台管理系统,进行日常工作

一天小B突发奇想也想登录进后台看看有什么东西,但是没有账号和密码,但是他知道小A会在每天9点钟的时候登录后台,小B想使用wireshark来抓取局域网的流量包,然后从中分析出小A的登录密码。

第二天的八点半钟,小A来到了办公室,打开了电脑,打开了wireshark,他选定好网卡后,尝试着捕获数据包。

但是他发现了个问题,整个楼层都是使用同一个网段的(如:192.168.0.0/24),捕获到的数据非常非常的多,自己的电脑性能并不好,捕获起来一卡一卡的,他会使用什么方法减少数据量呢?

答:使用捕获过滤器

在捕获过滤器输入src host 192.168.0.105 or dst host 192.168.0.105

(其中192.168.80.130为小A的IP地址,注意此处用了or)

此时的流量就只限定于捕获有关小A电脑发出的数据包和接受的数据包。

到了9点钟,小A此时准时打开后台管理页面,流畅的输入了密码,小B看到后嘴角一笑,知道上钩了,就点击了左上角的红色终止按钮,结束了抓包,开始了分析流程。

首先第一步,如果是一个登陆页面,那么一般登陆流程的是通过发送POST包给服务器做校验,服务器在返回状态码的形式来重定向到新的页面。

所以,小B在显示过滤器里输入了http.request.method == POST,这个代表着只筛选出http的带有post请求的数据包出来。

在这么多项中,就有账号和密码藏在这些数据包里面,小B是一个聪明的人,他使用了Ctrl+F查找功能——查找更加详细的字段,一般密码的字段是password或者passwd,所以小B在查找输入框内选中了“分组详情”,“字符串”,不区分大小写,试图更准确的查找需要的数据。

可以发现的确在数据包出现了password的字段,小B右键了这一行追踪流—HTTP流

可以看到,在这个POST请求里,包含了小A输入的用户名,密码等信息,成功拿到了口令!

实验结束

总结:

问:对于在局域网可以捕获明文口令这一情况,服务端有什么简单的解决办法?

答:1.采用md5加密(可加盐)来加密用户口令和密码2.添加其他的验证方式3.开启HTTPS加密

如果觉得写的文章还ok,请给一个三连,关注公众号,转发和点击再看,非常谢谢

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 字节脉搏实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档