靶机:
https://www.vulnhub.com/entry/ripper-1,706/
Kali
IP地址:192.168.0.102
靶机
IP地址:192.168.0.103
VirtualBox
设置为桥接模式
难度:
- 低->中
目标:
- 取得 root 权限 + 2 Flag
涉及攻击方法:
- 主机发现
- 端口扫描
- Web信息收集
- 内部系统泄露
- 代码审计
- 备份文件泄密
- Webmin漏洞利用
- Metasploit
- CVE-2021-3493
主机发现
arp-scan -l
端口扫描和服务发现
nmap -p- 192.168.0.103
nmap -p22,80,10000 -sV 192.168.0.103
查看80端口,没有什么信息
80端口的Web服务的robots.txt
没有东西
那我们访问一下10000
端口的Web服务,发现WebMin
的登录界面。Webmin:Webmin是一个开源的、基于Web的服务器管理工具,可用于管理各种Unix和Linux系统。
查看10000
端口的robots.txt
文件,发现有一串Base64
echo "d2Ugc2NhbiBwaHAgY29kZXMgd2l0aCByaXBzCg==" | base64 -d
提示我们使用rips扫描php代码
rips
是一个php代码审计系统
在80端口下发现rips
服务http://192.168.0.103/rips/
官网:RIPS - free PHP security scanner using static code analysis
在path / file:
输入/var/www/
,对该目录进行代码审计
192.168.0.103/rips/windows/code.php?file=/var/www/html/rips/windows/code.php
可以进行文件读取,但是无法获取目标权限
发现一个secret.php
,里面有账号密码:ripper``Gamespeopleplay
尝试SSH登录ripper
账号成功
据错误提示,你需要从 known_hosts
文件中移除旧的主机密钥。你可以使用 ssh-keygen
命令来执行此操作:
ssh-keygen -f "/root/.ssh/known_hosts" -R "192.168.0.103"
这个命令会从 /root/.ssh/known_hosts
文件中移除与 192.168.0.103
相关的旧密钥。
尝试重新连接
现在,可以再次尝试通过 SSH 连接到远程主机:
获得第一个flag
提权-1(CVE-2021-3493):
漏洞利用代码地址:CVE-2021-3493/exploit.c at main · briskets/CVE-2021-3493 (github.com)
前面由于GCC
版本不一样导致exp
文件无法再靶机运行,所以换了个ubuntu18.04
的docker
镜像,用它的gcc
来生成exp
文件就可以用了
提权-2:
ls /home
发现另外一个用户cubes
cd
到该目录没发现可用的信息
find / -user cubes -type f -exec ls -la {} \; 2>/dev/null
/
:从根目录开始搜索。-user cubes
:查找所有所有者为cubes
的文件。-type f
:查找类型为文件(不是目录、链接等)的条目。-exec ls -la {} \;
:对找到的每一个文件执行ls -la
命令。{}
是find
命令找到的每个文件的占位符,\;
是-exec
选项的结束标识符。2>/dev/null
:将错误输出重定向到/dev/null
,以隐藏权限被拒绝的错误信息。
发现了secret.file
,获得一个密码Il00tpeople
直接用这个密码,切换成cubes
账号了
| grep -v "/proc"``| grep -v ".png"
使用grep
过滤掉包含/proc
.png
的行。
发现/var/webmin/backup/miniser.log
文件
vi /var/webmin/backup/miniser.log
查看该日志文件,发现账号密码admin``tokiohotel
使用该账号密码直接登录进来了
发现一个Command Shell
命令行可以直接是root
权限
searchsploit webmin
发现有RCE
漏洞
还可以使用msf
来操作
msfdb run
启动msf
search webmin
搜索webmin
use 2
,然后show options
看一下,发现都没用办法直接使用,因为前提是必须知道登录的账号和密码才行。
获得root
权限!打靶完毕!
学习记录:
- 对于渗透测试来说,熟练度是非常关键的能力。
- 如果仅仅从打靶这一个角度,一上来就使用CVE-2021-3493的POC,拿到root权限就完事了,但是仅仅是针对打靶环境而言是正确的,但如果是参加一个护网比赛、一个渗透测试比赛或者是一个授权的渗透测试项目的话,这种实战的、实际的工作场景的话,建议大家即便已经取得了root权限,那也同样需要去关注应用层可能存在的漏洞,它系统的控制区、系统的账号以及密码,我们要把所有的账号密码,所有的权限全都拿到,无论是应用层的权限,还是操作系统的权限,还是数据库的权限,还是任何中间层面的软件组件的权限,只要是有权限的部分都要拿,因为尤其像在护网比赛过程当中,你拿到任何一个系统的权限,都是有单独加分的。