2017-2018-2 20179204《网络攻防实践》安全工具研究

一、wireshark

笔记本电脑一台,安装parallels desktop虚拟机,配置win10系统。下载并安装wireshark,使用Wireshark捕获以太网数据,可以捕到自己的数据包;也可以去捕获同一局域网内,在知道对方IP地址的情况下,捕获到对方的数据包。

1.wireshark界面功能模块

  • 主窗口

打开wireshark 后的抓包主界面如图所示,其主窗口由如下部分组成:

  菜单栏:Wireshark的标准菜单栏。
  工具栏:常用功能快捷图标按钮。
  过滤工具栏:减少查看数据的复杂度。
  Packet List面板:显示每个数据帧的摘要。
  Packet Details面板:分析封包的详细信息。
  Packet Bytes面板:以十六进制和ASCII格式显示数据包的细节。
  状态栏:分组、已显示、已标记帧的数量,配置文件。
  • 菜单栏

  文件:包括打开、合并捕捉文件,保存、打印,导出捕捉文件的全部或部分。
  编辑:包括查找包,时间参考,标记一个多个包,设置预设参数。
  视图:控制捕捉数据的显示方式,包括颜色,字体缩放,将包显示在分离的窗口,展开或收缩详情面版的树状节点。
  跳转:包含到指定包的功能。
  捕获:控制抓包的对话框,包括接口,选项,开始、停止、重新开始和过滤器。
  分析:包含处理显示过滤,允许或禁止分析协议,配置用户指定解码和追踪TCP 流等功能。
  统计:包括的菜单项用户显示多个统计窗口,包括关于捕捉包的摘要,协议层次统计等。
  帮助:包含一些辅助用户的参考内容。如访问一些基本的帮助文件,支持的协议列表,用户手册。
  • 工具栏

工具栏按钮功能与下图分别进行对应说明:

  第一部分:启动捕获、停止捕获、重新捕获、接口列表;
  第二部分:打开文件、保存文件、关闭文件、重新加载文件;
  第三部分:查找包、向前查找、向后查找,查找指定的包、跳到第一个包、跳到最后一个包;
  第四部分:自动滚屏着色;
  第五部分:放大、缩小、普通大小、帮助。
  • 过滤工具栏
    过滤工具栏的过滤方式主要有以下四种:

过滤源IP、目的IP。在wireshark的过滤规则框Filter中输入过滤条件,如查找目的地址为192.168.101.8的包,则输入ip.dst==192.168.101.8;查找源地址为ip.src==1.1.1.1

端口过滤。如过滤80端口,在Filter中输入tcp.port==80,可以把源端口和目的端口为80的包都过滤出来,使用tcp.dstport==80只过滤目的端口为80的,tcp.srcport==80只过滤源端口为80的包;

协议过滤。直接在Filter框中直接输入协议名;

http模式过滤。如过滤get包,http.request.method=="GET",过滤post包,http.request.method=="POST"

连接符and的使用。过滤两种条件时,使用and连接,如过滤ip为192.168.101.8并且为http协议的,ip.src==192.168.101.8 and http

  • Packet List面板

面板用表格的形式显示了当前捕获文件中的所有数据包,该面板中共有七列,每列内容如下所示:

  No(Number)列:包的编号。该编号不会发生改变,即使使用了过滤也同样如此;
  Time列:包的时间戳。时间格式可以自己设置;
  Source和Destination列:显示包的源地址和目标地址;
  Protocol列:显示包的协议类型;
  Length列:显示包的长度;
  Info列:显示包的附加信息。

在该面板中,可以对面板中的列进行排序、调整列位置、隐藏列、显示列、重命名或删除列等操作。下面以例子的形式将分别介绍在该面板中可操作的功能。

  • Packet Details面板

面板分层次地显示了一个数据包中的内容,并且可以通过展开或收缩来显示这个数据包中所捕获到的全部内容。在Packet Details面板中,默认显示的数据的详细信息都是合并的。如果要查看,可以单击每行前面的小三角展开帧的会话。

  • Packet Bytes面板

该面板显示了一个数据包未经处理的原始样子,也就是其在链路上传播时的样子。

在该面板中的数据以十六进制和ASCII格式显示了帧的内容。当在Packet Details面板中选择任意一个字段后,在Packet Bytes面板中包含该字段的字节也高亮显示。

  • Wireshark状态栏介绍

状态栏是由两个按钮和三列组成的,状态栏中每部分的作用:

按钮一 专家信息按钮。该按钮的颜色是为了显示包含在专家信息窗口中最高水平的信息。专家信息窗口可以提醒用户,在捕获文件中的网络问题和数据包的注释

按钮二 捕获文件注释按钮。单击该按钮,可以添加、编辑或查看一个捕获文件的注释。该功能只可以在以.pcapng格式保存的捕获文件使用。

第一列(获取字段、捕获或捕获文件信息):当在捕获文件中选择某个字段时,在状态栏中将可以看到文件名和列大小。如果点击Packet Bytes面板中的一个字段,将在状态栏中会显示其字段名,并且Packet Details面板也在发生着变化。

第二列(包数):当打开一个捕获文件时,在状态栏中的第二列将显示该文件的总包数。显示了捕获的数据包数量、显示包数和加载时间。如果当前捕获文件中有包被标记,则状态栏中将会出现标记包数。

第三列(配置文件):表示当前使用的文件。在上图的状态中,表示正在使用Default 文件。文件可以创建,这样就可以自己定制Wireshark的环境。

2.使用wireshark捕获登陆数据

由于容易泄漏个人信息,这里主要是总结一下步骤和分析方法,抹掉网址和ip,截图较少。

使用Wireshark分析HTTP数据包,并截获账号密码。因为Http基本都是明码的,所以在两个ip端口之间传送的私密信息数据包很容易被截获,以下是分析实验,目的是截取用户在某网站登录的账号和密码。

  • 为了定向截获网络数据包的内容,首先需要明确数据包源地址和目的地址。源地址为本机的ip地址,使用cmd,输入“ipconfig”可以获取本机所有网络接口的详细信息。

  • 之后需要确定目标地址的ip,可以通过命令提示符的“ping”命令,获取网站的ip地址。

  • 得到了源地址和目标地址,接下来开始监控网络数据包。为了减少数据量,需要关闭所有的浏览器并清除浏览器记录等,然后开始对本机以太网进行监控。

  • 然后打开浏览器,输入网址,进行用户登录(当然wireshark也可以监听捕获他人的ip)。

  • 登录成功后,停止Wireshark对网络的监听,然后选择“Filter”,筛选“HTTP”协议内容。然后选择搜索按钮,输入搜索条件筛选“ip.srcxxx.xxx.xxx.xxx&&ip.dstxxx.xxx.xxx.xxx”, 查看所有的数据包,找到Info内容中含有“POST”“HTTP/1.1”字样的数据包,这个数据就是输入账号、密码后,本地IP向网站地址IP提交的包含个人信息的数据包,通过分析数据包的内容,便可以得到想要截获的账号、密码。

  • 找到需要的包后双击打开,在最后一项中,包含有用户输入的账号、密码,这是用户在网页输入账号密码并点击登录后,本机向服务器提交的请求,因为没有加密,所以容易获取,由此可见该网站有一定的安全漏洞。

3.分析数据包

选取在Wireshark中捕获的一个数据包。从该界面可以看出显示了五行信息,各行信息如下所示:

  Frame:物理层的数据帧概况。
  Ethernet II:数据链路层以太网帧头部信息。
  Internet Protocol Version 4:互联网层IP包头部信息。
  Transmission Control Protocol:传输层的数据段头部信息,此处是TCP协议。
  Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议。
  • 帧、包、段展开内容(以登陆成功页面为例)

a.物理层数据帧

  Frame 7: 376 bytes on wire (3008 bits), 376 bytes captured (7312 bits) on interface 0  7号帧,线路上传输376字节,实际捕获376字节。
  Interface id: 0  接口id                                                                          
  Encapsulation type: Ethernet (1)  封装类型                                                                  
  Arrival Time: 捕获日期和时间
  [Time shift for this packet: 0.000000000 seconds]
  Epoch Time: 1521005911.238411000 seconds
  [Time delta from previous captured frame: 0.000343000 seconds] 与前一帧的时间间隔
  Frame Number: 7  帧序号                                                                                   
  Frame Length: 376 bytes (3008 bits)  帧长度
  Capture Length: 376 bytes (3008 bits)    捕获长度
  [Frame is marked: False]    此帧是否做了标记:否
  [Frame is ignored: False]  此帧是否被忽略:否
  [Protocols in frame: eth:ethertype:ip:tcp:http:urlencoded-form]  帧内封装的协议层次结构                                                        
  [Coloring Rule Name: HTTP]  着色标记的协议名称
  [Coloring Rule String: http || tcp.port == 80]  着色规则显示的字符串

b.数据链路层以太网帧头部信息

  Ethernet II, Src: xxx, Dst: xxx
  Destination:xxx    目标MAC地址
  Source: xxx  源MAC地址
  Type: IP (0x0800)

c.互联网层IP包头部信息

  Internet Protocol Version 4, Src: xxx.xxx.xxx.xxx, Dst: 202.205.232.202
  Version: 4    互联网协议IPv4
  Header length: 20 bytes  IP包头部长度
  Differentiated Services Field: 0x00 (DSCP: cs0; ECN: Not-ECT) 差分服务字段
  Total Length: 362   IP包的总长度
  Identification: 0x6536 (25910)  标志字段
  Flags: 0x02 (Don't Fragment) 标记字段
  Fragment offset: 0  分的偏移量
  Time to live: 64  生存期TTL
  Protocol: TCP (6)   此包内封装的上层协议为TCP
  Header checksum: 0x0000 [validation disabled]  头部数据的校验和

d.传输层TCP数据段头部信息

  Transmission Control Protocol, Src Port:8080,Dst Port:51979, Seq: 1, Ack: 952, Len: 366
  Source port: 8080 源端口号
  Destination port:51979  目标端口号
  Sequence number: 1    (relative sequence number)   序列号(相对序列号)
  [Next sequence number: 367 (relative sequence number)]  下一个序列号
  Acknowledgment number: 952    (relative ack number)   确认序列号
  Header length: 32 bytes   头部长度
  Flags: 0x018 (PSH, ACK)  TCP标记字段
  Window size value: 65535  流量控制的窗口大小
  Checksum: 0x8265 [unverified]    TCP数据段的校验和

4.wireshark还可以捕获连接建立中三次握手、四次挥手的过程,这里不再赘述,操作过程参见csdn博客:[Wireshark抓包分析TCP 3次握手、4次挥手过程

](http://blog.csdn.net/yanxi252515237/article/details/51955675), 以及TLS协议报文解析

二、burpsuite

笔记本电脑一台,下载安装burpsuite free edition,软件界面如下:

Burpsuite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务:请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查。

1.软件功能

  • proxy—Burpsuite带有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包。
  • Spider–Burpsuite的蜘蛛功能是用来抓取Web应用程序的链接和内容等,它会自动提交登陆表单(通过用户自定义输入)的情况下。Burpsuite的蜘蛛可以爬行扫描出网站上所有的链接,通过对这些链接的详细扫描来发现Web应用程序的漏洞 。
  • Scanner–它是用来扫描Web应用程序漏洞的,在测试的过程中可能会出现一些误报,因为自动扫描器扫描的结果不可能完全100%准确。
  • Intruder–此功能可用于多种用途,如利用漏洞,Web应用程序模糊测试,进行暴力破解等。
  • Repeater–此功能用于根据不同的情况修改和重放相同的请求次数并进行分析。
  • Sequencer–此功能主要用来检查Web应用程序提供的会话令牌的随机性,并执行各种测试。
  • Decoder–此功能可用于解码数据找回原来的数据形式,或者进行编码和加密数据。
  • Comparer–此功能用来执行任意的两个请求,响应或任何其它形式的数据之间的比较。

2.工作流程

图片来源于一篇博客,我认为比较系统地描述了burpsuite软件的测试流程。

3.登陆信息重放实验

a.设置浏览器的代理服务器和端口为127.0.0.1:8080,注意保持一致。

  • proxy(代理)—opitions,其中running要勾选才可以监听。

  • 浏览器—工具—internet选项—局域网设置—代理服务器(设置代理就是把浏览器发的数据包通过burpsuite,被burpsuite拦截)


    b.打开飞牛网,进行用户名、密码登陆

  • 这时burpsuite已经成功拦截到登录信息。

    c.把不需要的请求“forward”掉,然后筛选请求地址。

  • 发现成功捕获到了登录数据,用户名(抹掉)和明文的密码。

4.篡改、转发请求测试

代理服务器和burpsuite的配置与3类似。

a.在淘宝中搜索nike,观察正常的搜索结果。

b.在burpsuite中点击proxy(代理)—opitions,其中running要勾选才可以监听。

c.在淘宝中再次搜索nike,发现burpsuite中已经截获到数据包。

d.把不需要的请求“forward”掉,然后筛选请求地址。

  • 最后筛选出了一个请求地址,将其中的搜索关键字由“nike”改为“vans”,并发回服务器,观察结果。

  • 结果是页面中的搜索项和搜索结果都变成了“vans”。

5.利用同样的原理进行操作,可以使登录页面的请求结果变成“用户名/密码错误”。

原文地址:https://www.cnblogs.com/20179204gege/p/8577017.html