admin 管理员组

文章数量: 887021

《中华人民共和国刑法》 第二百八十六条 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。第二百八十六条之一网络服务提供者不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正,有下列情形之一的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金:(一)致使违法信息大量传播的;(二)致使用户信息泄露,造成严重后果的;(三)致使刑事案件证据灭失,情节严重的;(四)有其他严重情节的。单位犯前款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照前款的规定处罚。有前两款行为,同时构成其他犯罪的,依照处罚较重的规定定罪处罚。

本实验只用于测试,请勿用于违法行为!

1 实践计划

  首先对目标靶机所在无线接入点进行渗透,加入目标靶机所在局域网,然后使用ARP欺骗攻击,DNS劫持等进行局域网渗透。流程图如下图1-1所示:

图1-1 计划流程

2 作业前准备

2.1 硬件工具

  1. 一台手机用来开WPA/WPA2加密热点,模拟无线路由器
  2. 一台装有win10操作系统的PC
  3. 一张Linux免驱的AR9271无线网卡,用于无线渗透和无线接入。

2.2 软件工具

1.Aircrack-ng 1.6:是一个抓包工具,提供airodump-ng、airepaly-ng、aircrack-ng等三个工具,分别用于探测附近的无线信息详细信息,解除认证攻击和无线密文离线破解。
2.Dsniff 2.4:提供arpspoof工具进行arp欺骗攻击
3. Nmap 7.92:用于发现局域网存活的主机及其操作系统等信息
4. Driftnet 1.3.0:用于图片嗅探
5. Tomcat 10.0:提供Web服务用于DNS劫持
6. Ettercap 0.8.3.1:进行arp欺骗及DNS劫持
7. VMware workstation 16.0:虚拟机环境
8. Kali Linux 2022.2:懂的都懂。

3 原理

3.1 WPA/WPA2-PSK(WIFI)离线破解原理

  WPA是一种保护无线电脑网络(Wi-Fi)安全的系统,是继承了WEP基本原理而又解决了WEP 缺点的一种新技术。WEP是数据加密算法,它不是一个用户认证机制,而WPA用户认证是使用802.1x和扩展认证协议来实现的。WPA加密方式目前有四种认证方式:WPA、WPA-PSK、WPA2、WPA2-PSK。破解WPA 关键是要获取握手包。这个握手包叫4way-handshake 四次握手包。

图3-1 4way-handshake四次握手过程
  四次握手包中的2、3次握手要带MIC(message integrity code),MIC用于报文完整性校验。 MIC计算方法:
  1. 原始成对主钥PMK:
PMK = HMAC_SHA1(passphrase,SSID,SSID length,4096)   
  1. 单播秘钥PTK: (组播秘钥GTK:使用PTK衍生的KEK+KCK)
PTK=HMAC_SHA1(PMK,Authenticator address (AA), Supplicant address (SA),  ANonce, SNonce)  
// PTK包含3个部分,KCK(Key Confirmation Key),KEK(Key Encryption Key),TK(Temporal Key)。
// PTK的总长度根据加密方式不同而不同:
// 当加密方式是TKIP时,PTK长512位,按顺序分别为KCK占128位,KEK占128位,TK占256位。
// 当加密方式是CCMP时,PTK长384位,按顺序分别为KCK占128位,KEK占128位,TK占128位。

  1. 完整性校验MIC:
MIC=HMAC_MD5(KCK, 16, 802.1x data)  

  根据上面三条函数我们可以计算出MIC。

  MIC可以在握手包捕捉,我们不可以用MIC计算出密码,但是可以用密码计算出MIC,所以可以使用字典破解。

  字典攻击,就是把密码的可能性罗列起来组成一个密码字典。然后把字典里的密码和SSID,AP_MAC,STATION_MAC,SNonce,ANonce,802.1x data,这些信息元素。通过pdkdf2_SHA1,SHA1_PRF,HMAC_MD这些算法最后生成MIC。当在字典里找到一个密码他的MIC等于握手包中的MIC。这时字典破解成功。这就是我们要的那个密码。如果把字典里的所有密码都找遍了还有没有符合上述条件的。那么破解失败。

3.2 arp欺骗

  地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
  地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
  如下图3-1所示,攻击机在对靶机实行一次arp欺骗攻击,最终的结果就是靶机的流量都会经过攻击机,造成信息泄露或者断网的现象。

图3-2 arp欺骗示意图
## 3.3 DNS劫持   DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求局域网劫持, 攻击者通过伪装成网关, 劫持受害者的网络请求, 将网络请求拦截到指定的服务器,篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP,导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址,从而实现非法窃取用户信息或者破坏正常网络服务的目的。   如图3-2所示,攻击机正在实行一次DNS劫持攻击,靶机想访问的域名会被解析成错误的ip地址,从而不能正常访问想要访问的网站。

图3-3 DNS劫持示意图

4 无线网络密码破解

  想要进入目标局域网就要接入目标所在网络,但很多情况下,无线网络都需要身份验证后才可以使用,目前在无线局域网中广泛采用的加密技术是WEP 协议和WPA协议,Kali Linux下有Aircrack-ng这个工具可以破解WEP 协议和WPA协议的无线网络,所以我将使用Aircrack-ng去破解目标无线网络。

4.1 Aircrack-ng

  Aircrack- ng是一套完整的评估 WiFi 网络安全性的工具,是一个与802.11标准的无线网络分析有关的安全软件,主要功能有:网络侦测,数据包嗅探,WEP和WPA/WPA2-PSK破解。Aircrack-ng可以工作在任何支持监听模式的无线网卡上并嗅探802.11a,802.11b,802.11g的数据。它侧重于 WiFi 安全的不同领域:
  监控:数据包捕获并将数据导出到文本文件以供第三方工具进一步处理
  攻击:通过数据包注入进行重放攻击、取消身份验证、伪造接入点等
  测试:检查 WiFi 卡和驱动程序功能(捕获和注入)
  破解:WEP 和 WPA PSK(WPA 1 和 2)
  所有工具都是命令行,允许编写繁重的脚本。很多 GUI 都利用了这个特性。它主要适用于 Linux,但也适用于 Windows、macOS、FreeBSD、OpenBSD、NetBSD,以及 Solaris 甚至 eComStation 2。

4.2 查看当前系统中的无线网络接口(网卡)

  命令:

$ sudo airmon-ng  

  结果:

图4-1 airmon-ng
  由图4-1可知当前系统中存在一个无线网络接口(网卡),叫wlan0。

4.3 修改网卡MAC地址

  这一步是为了隐藏自己真是的MAC地址,防止被反侦察。
  步骤:

  1. 停止wlan0接口
$ sudo ifconfig wlan0 down  
  1. 修改mac地址
1.	$ sudo macchanger --mac  00:11:22:33:44:55 wlan0  

  结果如图所示:

图4-2 修改网卡mac地址

  结果输出显示了wlan0接口的永久MAC地址,当前的MAC地址和新的MAC地址。

  1. 重新启动wlan0
sudo ifconfig wlan0 up    
  1. 查看是否修改成功
cat /sys/class/net/wlan0/address   

  结果如图所示:

图4-3 修改网卡MAC地址

  可见是修改成功的。

4.4 网卡进入监听模式

$ sudo airmon-ng start wlan0  

  结果:

图4-4 网卡进入监听模式(失败)
  注意,图3-2所示,结果提示需要关闭两个进程wlan0才可以进入监听模式。   执行关闭进程命令: ``` sudo airmon-ng check kill ```   执行结果: ![图4-5 结束占用进程](https://img-blog.csdnimg/3fcb6e16273f441c9d34cdc46856b52a.png#pic_center)
图4-5 结束占用进程
  到这里,waln0已进入监听状态,并且名字变成了wlan0mon。

  退出监听模式命令:
···
$ sudo airmon-ng stop wlan0
···

4.5 扫描附近的无线网络

  命令:

sudo airodump-ng wlan0mon   

  结果:

图4-7 扫描结果

  如图3-7所示,终端上输出了附近所有可用的无线网络,当找到了目标无线网络时,直接Ctrl+C停止。

  从输出信息中可以看到很多参数:

  1. BSSID:为无线的IP地址。
  2. PWR:网卡报告的信号水平。
  3. Beacons:无线发出的通告编号。
  4. #Data:被捕获到的数据分组的数量,包括广播分组。
  5. #/s:过去10秒钟内每秒捕获数据分组的数量。
  6. CH:信道号(从Beacons中获取)。
  7. MB:无线所支持的最大速率。如果MB=11,它是802.11b;如果MB=22,它是802.11b+;如果更高就是802.11g。后面的点(高于54之后)表明支持短前导码。
  8. ENC:使用的加密算法体系。OPN表示无加密。WEP表示WEP或者更高WPA/WPA2,WEP(没有问号)表明静态或动态WEP。如果出现TKIP或CCMP,那么就是WPA/WPA2。
  9. CIPHER:检测到的加密算法,CCMP、WRAAP、TKIP、WEP、WEP104中的一个。典型的来说(不一定),TKIP与WPA结合使用,CCMP与WPA2结合使用。如果密钥索引值大于0,显示为WEP40。标准情况下,索引0-3是40bit,104bit应该是0。
  10. AUTH:使用的认证协议。常用的有MGT(WPA/WPA2使用独立的认证服务器,平时我们常说的802.1x,radius、eap等),SKA(WEP的共享密钥),PSK(WPA/WPA2的预共享密钥)或者OPN(WEP开放式)。
  11. ESSID:指所谓的SSID号。如果启用隐藏的SSID的话,它可以为空。这种情况下,airodump-ng试图从proberesponses和associationrequests中获取SSID。
  12. STATION:客户端的MAC地址,包括连上的和想要搜索无线来连接的客户端。如果客户端没有连接上,就在BSSID下显示“notassociated”。
  13. Rate:表示传输率。
  14. Lost:在过去10秒钟内丢失的数据分组,基于序列号检测。它意味着从客户端来的数据丢包,每个非管理帧中都有一个序列号字段,把刚接收到的那个帧中的序列号和前一个帧中的序列号一减就能知道丢了几个包。
  15. Frames:客户端发送的数据分组数量。
  16. Probe:被客户端查探的ESSID。如果客户端正试图连接一个无线,但是没有连接上,那么就显示在这里。

  由图3-7可发现渗透目标:

BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID   
82:79:B4:8A:58:66  -36     2770        0    0   6  360   WPA2 CCMP   PSK  TEST 

  (建议拿个记事本暂时记下来。)

  可知目标的加密方式时WPA2,这是我用手机开的热点,假装我现在不知道密码。

图4-8 热点信息

4.6 渗透目标

  aircrack-ng破解wifi密码需要抓握手包然后跑字典。

  1. 使用airodump-ng捕获指定BSSID的文件

  命令:

$ sudo airodump-ng -channel 6 -write ./Desktop/TEST --bssid XX:XX:XX:XX:58:66  
参数说明:  
    --bssid:XX:XX:XX:XX:58:66是接入点MAC地址。它用于过滤无关的流量。  
    --channel:6是airodump-ng嗅探的通道。  
	--write:TEST用于将所有数据存储在名为TEST的文件中。  
    wlan0mon:是监控模式下的接口名称。

  结果如下图所示:

图4-9 实时抓包
  由图3-9可知,TEST这个路由器有一个MAC地址为26:A5:E3:1F:CD:A1(我的手机)的设备正在连接(STATION栏是连接到接入点的设备),#Data一直在变化,表示有客户端正与无线发生数据交换。以上命令执行成功后,会在-w指定的路径生成一个名为TEST-01.cap的文件。
  1. 解除认证攻击

  (这种攻击可以无脑使对方断网。懂的都懂,但我们的目标是局域网渗透,断网没意思。)
  客户端重新尝试发起连接到WiFi网络时,会发送一个带有认证密码的数据包以便请求重新连入WiFi,这个包俗称为握手包。
  为了成功抓取到握手包,我们可以采用 aireplay-ng 来进行接触认证攻击强制让手机客户端与路由器断开,进行重新连接!
  这种攻击允许我们断开任何设备与范围内的任何网络的连接,即使网络具有加密或使用密钥。设备断开后重新连接路由器,我们就可以抓到握手包,破解WiFi密码需要抓到握手包然跑字典。

  打开另一个终端,命令:

$ sudo aireplay-ng -0 10 -a XX:XX:XX:XX:58:66 -c XX:XX:XX:XX:CD:A1 wlan0mon  
参数说明:  
    -0:解除认证攻击,后面跟的是次数,0表示一直攻击。除此之外还有-1伪造认证攻击,-2交互式注入攻击等  
    -a:设置无线路由器的MAC地址  
    -c:设置目的MAC地址(接入无线路由的设备的MAC地址) 

图4-10 解除认证攻击

  此时查看我的手机:

图4-11 手机情况
  (建议晚上舍友打游戏时候攻击他)   网络光速断开,只要不停止攻击再也连不上。尝试攻击几次我的手机后,(攻击几次就好了,我们的目的是抓取握手包)观察正在执行抓包的终端: ![图4-12 抓取到握手包](https://img-blog.csdnimg/41de805ccebe4b7e99d06b125b14bbdd.png#pic_center)
图4-12 抓取到握手包
  右上角出现了WAP handshake,证明抓到了握手包。下面可以进行密码破解了。
  1. 密码破解
      命令:
$ sudo aircrack-ng /home/kali/Desktop/TEST-01.cap -w /home/kali/Desktop/wordlist.txt   
参数说明:  
    TEST-01.cap是airodump-ng对路由器抓包抓到的数据  
    wordlist.txt是密码字典,理论上字典足够大,那么就有可能包含密码 

(几分钟后…)

  执行结果:

图4-13 密码破解成功
  如图3-13所示,我这个密码比较简单,一下就出来了。另外字典是使用字典生成器生成的(网上下载也行),其实就是可能密码的穷举。

  知道密码就可以进入目标所在局域网对目标进行渗透了。

  相同的操作,除了破解我自己的热点,我把舍友的热点也破了:

图4-14

苹果手机的热点加密方式居然是WPA3,但也是可以破解的。

图4-15

5 局域网arp欺骗

  成功连接到目标的局域网后,我们就可以进行一系列基于局域网的渗透操作。

5.1 发现目标IP

  查看本机IP地址:

$ ifconfig   

  结果:

图5-1
  如图5-1所示,kali的IP地址是192.168.165.211,接下来扫描192.168.165.0/24这个网段里面存在的主机。

  命令:

$ sudo nmap 192.168.165.0/24

  结果:

图5-2 扫描结果

  如图4-2所示,有四个主机存在于网段192.168.165.0/24,分别是192.168.165.140、192.168.165.124、192.168.165.187、192.168.165.211.
  其中192.168.165.211是kali;192.168.165.187是网关。其余两个未知,接下来进行操作系统探测,(其实根据端口也可以判断目标ip是什么设备)。

5.2 操作系统检测

  命令:

$ sudo nmap -O 192.168.165.124 192.168.165.140 

  结果:

图5-2

  由图4-3可知,192.168.165.124的操作系统大概率是是Windows10,而192.168.165.140则是未知,但是开放端口上的一个服务名称为iphone-sync,所以可以判定为iphone。
  接下来对192.168.165.124进行渗透。

5.3 Arp欺骗攻击

  arpspoof是一款进行arp欺骗的工具,攻击者可以通过它来毒化受害者arp缓存,将网关mac替换为攻击者mac,然后攻击者可截获受害者发送和收到的数据包,可获取受害者账户、密码等相关敏感信息。ARP欺骗,是让目标主机的流量经过主机的网卡,再从网关出去,而网关也会把原本流入目标机的流量经过我的电脑。Kali中自带了这个工具。

  Kali上新建一个终端,输入命令:

sudo arpspoof  -t 192.168.165.187 192.168.165.124 -i wlan0  

  再新建一个终端,输入命令:

sudo arpspoof -t 192.168.165.124 192.168.165.187 -i wlan0    

  结果如下图所示:

图5-4

  此时再看靶机:

图5-5

  如图4-5所示,受害者主机上不了网。再看看靶机arp表:

图5-6

  如图5-6所示,我们知道192.168.165.187是网关地址,他的MAC地址是C0-1C-30-1A-60-4D,卡里的ip地址是192.168.165.211,MAC地址也是C0-1C-30-1A-60-4D,所以受害者以为我们的kali是网关,从而导致上不了网。
  Kali上停止arpspoof后受害者即可恢复正常。

5.4 Driftnet嗅探图片

  1. 提前开启ip转发功能,防止断网被察觉:
sysctl -w net.ipv4.ip_forward=1  
  1. 开启arp欺骗攻击:
$ sudo arpspoof -t 192.168.165.161(靶机) 192.168.165.187(网关) -i wlan0  
  1. 打开drifnet进行图片嗅探:
$ sudo driftnet -i wlan0  
  1. 靶机访问7k7k

图5-7 7k7k

这时查看drifnet:

图5-8 图片嗅探
  这样我们就可以根据图片猜测靶机在访问什么网站,造成靶机信息泄露。   经测试,图片嗅探只可以嗅探http协议网站的图片,https的不可以嗅探,微信(微信是UDP)也不可以。

  这个工具成功率很低,只能嗅探http的。可能是我不会用。

6 DNS劫持

  DNS劫持又叫域名劫持,指攻击者利用其他攻击手段,篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP,导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址,从而实现非法窃取用户信息或者破坏正常网络服务的目的。
  进行DNS欺骗之前,要开启IP转发。

6.1 开启IP转发

$ sysctl -w net.ipv4.ip_forward=1    

6.2 开启tomcat服务器(只要是web服务器都行,不一定是tomcat)

  进入tomcat目录下的bin中打开startup.sh

6.3 修改DNS并设计页面

  1. 修改ettercap中的DNS文件
      命令:
$ sudo vim /etc/ettercap/etter.dns  

  最后一行添加以下内容:

图6-1 ettercap添加的内容

  * A 192.168.165.211*:代表DNS劫持后指定跳转的页面,例如*:改为www.qq,那么被劫持的对象访问了WWW.qq会跳转到192.168.165.161的tomcat页面上来。A 192.168.165.211指的是劫持后跳转的地址信息,记住本地的wlan0网卡地址。

  1. 设计index.html文件(简单显示个Hello world)
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>hello world</title>  
</head>  
<body>  
	    <h1>hello world</h1>  
</body>  
</html> 

  测试访问index.jsp:

http://localhost 

  效果如下图所示:

图6-2

6.4 启动ettercap图形界面

  1. 启动
      命令:
ettercap -G  
-G:表示图形界面

  结果如图:

图6-3
  1. 配置网卡

图6-4

  选完后点击右上角的勾。

  1. 扫描存活主机

图6-5

  如图6-5所示,点击右上角的三个点,依次点击Host->Scan for hosts->hosts list扫描网段内的主机数量,并列出。可发现存活的主机的mac和IP。

  1. 添加网关和被监听的主机

  选择192.168.165.161(被害者主机)后点击Add to Target1会出现:Host 192.168.165.161 Add to Target1
  如图所示:

图6-6
  然后在选择192.168.165.187网关后点击Add to Target2 出现:Host 192.168.165.187 Add to Target2

  如图所示:

图6-7
  1. 配置arp poisoning

  开启ARP毒化,选择远程嗅探连接和远程窃听,如下图所示:

图6-8
![图6-9](https://img-blog.csdnimg/a4d09506b90d4e8098c4be422810c370.png#pic_center)
图6-9
6. 配置插件,开始DNS劫持

  Plugins->Manage plugins,然后双击dns_spoof,会弹出Activating dns_spoof plugin… ,如下图所示:

图6-10
![图6-11](https://img-blog.csdnimg/e0c304ab432349d7b2475be6214777cd.png#pic_center)
图6-11
  1. 成功DNS劫持

  浏览器访问7k7k会变成预先设好的index.jsp如下图所示:

图6-12 浏览器访问7k7k
  访问qq: ![图6-13 浏览器访问qq](https://img-blog.csdnimg/1fc2c8e96362406fae1790addd95cb33.png#pic_center)
图6-13 浏览器访问qq

  ping 7k7k被解析为192.168.165.211,即kali的地址,如图6-11所示:

图6-14 Ping 7k7k
  DNS表是有缓存的,如果靶机DNS表有缓存到攻击的域名,那么DNS劫持也是不成功的,但是DNS缓存时间到了会更新。

7

本次测试就到这里了,如有不足之处请各位大哥做出指正。

本实验只用于测试,请勿用于违法行为!

《中华人民共和国刑法》 第二百八十六条 违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。第二百八十六条之一网络服务提供者不履行法律、行政法规规定的信息网络安全管理义务,经监管部门责令采取改正措施而拒不改正,有下列情形之一的,处三年以下有期徒刑、拘役或者管制,并处或者单处罚金:(一)致使违法信息大量传播的;(二)致使用户信息泄露,造成严重后果的;(三)致使刑事案件证据灭失,情节严重的;(四)有其他严重情节的。单位犯前款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照前款的规定处罚。有前两款行为,同时构成其他犯罪的,依照处罚较重的规定定罪处罚。

本文标签: 测试 kali