文章源自【字节脉搏社区】
作者-小寺
扫描下方二维码进入社区:
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,请给一个三连,关注公众号,转发和点击再看,非常谢谢!