VulnHub靶机MoneyBox复现
借鉴文章:
安装靶机
靶机网址:https://www.vulnhub.com/entry/moneybox-1,653/
VirtualBox网址:https://www.virtualbox.org/wiki/Downloads
如果出现以下报错

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

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

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

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

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

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

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

首先获取kali的网卡信息
1 | |

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

看到这个机器开了ftp和ssh,就可以知道是靶机
使用arp扫描
1 | |

使用netdiscover
1 | |

1 | |
得到靶机和kali的IP
1 | |
深入探测
使用nmap进行深入探测
1 | |
1 | |

靶机开放了三个端口:
21:是ftp服务,允许匿名登录,还有一张trytofind.jpg图片
22:是ssh服务有一些key
80:是http服务存在一个网页Title:MoneyBox
FTP服务探测
尝试进行匿名登录FTP服务
1 | |
1 | |

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

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

看到图片想到CTF的图片隐写,使用steghide工具查看图片详细信息
steghide安装方法
1 | |
查看图片信息
1 | |

发现需要密码,接下来需要找密码
HTTP服务探测
直接访问目标靶机的IP
1 | |

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

那就直接用dirsearch扫描目录
1 | |

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

还是先查看源码

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

继续看源码

得到密码
1 | |
重新再去看看图片
1 | |

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

查看文件内容
1 | |

AI翻译一下
1 | |
SSH服务探测
使用hydra爆破密码
在data.txt文件中得到的用户名renu就是ssh服务的,因为就剩这一个服务了
提示密码太弱,使用hydra工具对ssh服务进行弱口令爆破
在kali的/usr/share/wordlists/目录下有一个字典

将其解压缩

1 | |

得到密码是
1 | |
SSH远程登录
直接ssh远程登录
1 | |

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

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

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

返回上一级目录看看

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

1 | |
切换为lily用户
查看一下历史命令
1 | |

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

同时,如果
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 | |

可以发现两个是一模一样,那么renu用户可以通过SSH公钥验证的方式登陆到本机的lily的账户上
尝试直接su到lily用户,但是需要密码

1 | |

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

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

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

发现可以使用perl命令
参考提权网站:https://gtfobins.github.io/gtfobins/perl/

可以直接提权,也可以反弹shell
反弹shell
在kali监听2333端口
1 | |

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


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

1 | |
直接用perl提权
1 | |

1 | |