zoukankan      html  css  js  c++  java
  • 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.利用同样的原理进行操作,可以使登录页面的请求结果变成“用户名/密码错误”。

  • 相关阅读:
    java 实现敏感词(sensitive word)工具详解使用说明
    一键自动生成 java junit 测试代码神器 gen-test-plugin 入门介绍
    基于 asm 实现比 spring BeanUtils 性能更好的属性拷贝框架
    java 反射借助 asm 获取参数名称最优雅简单的方式
    xml-mapping xml 与 java 对象转换映射框架,像 XStream 一样优雅地读写xml
    从零开始手写 spring ioc 框架,深入学习 spring 源码
    java property 配置文件管理工具框架,避免写入 property 乱序
    从零开始手写 dubbo rpc 框架
    java bean 属性验证框架 valid
    vue安装及测试mockjs
  • 原文地址:https://www.cnblogs.com/20179204gege/p/8577017.html
Copyright © 2011-2022 走看看