Background Information

vulnhub 地址:

https://www.vulnhub.com/entry/dc-1-1,292/

There are multiple ways of gaining root, however, I have included some flags which contain clues for beginners.

There are five flags in total, but the ultimate goal is to find and read the flag in root's home directory. You don't even need to be root to do this, however, you will require root privileges.

作者说一共有五个flag,有多种方法去提权,我们最终目标是去拿到/root的flag。总的来说,难度不高,适合新人练手。


知识点

CVE-2018-7600 Drupal核心远程代码执行漏洞

drupal配置文件和重置管理员密码

suid提权


Information Gathering

发现主机:192.168.190.147

渗透测试实战:DC-1 靶场入侵

渗透测试实战:DC-1 靶场入侵

用masscan快速扫描端口

渗透测试实战:DC-1 靶场入侵

再用nmap发现更多信息

渗透测试实战:DC-1 靶场入侵

渗透测试实战:DC-1 靶场入侵

80端口是drupal 7 服务

111 端口是 rpcbind服务

入侵靶机

寻找drupal 7的漏洞,18年有两个CVE

CVE-2018-7600 Drupal核心远程代码执行漏洞

CVE-2018-7602

在github找到POC脚本

Exploit for Drupal 7 <= 7.57 CVE-2018-7600

https://github.com/pimps/CVE-2018-7600

试了一下可以用,真舒服

渗透测试实战:DC-1 靶场入侵

接着反弹一个shell

渗透测试实战:DC-1 靶场入侵

查看drupal版本,因为CHANGELOG.txt被删掉了,可以看includes/bootstrap.inc

渗透测试实战:DC-1 靶场入侵

/var/www/ 下有个flag1.txt,提示我们去看配置文件

渗透测试实战:DC-1 靶场入侵

drupal的配置文件是 /sites/default/settings.php ,主要是数据库连接配置,我们发现了flag2以及数据库账号密码

渗透测试实战:DC-1 靶场入侵

我们登录mysql查看下用户,发现有admin和Fred两个用户

渗透测试实战:DC-1 靶场入侵

搜了一下drupal怎么存储用户密码,它是把密码和用户名或其它随机字符串组合在一起后使用 MD5 方式加密。

下面这篇文章介绍了一个重置密码的方法,Drupal 7 忘记密码后重置管理员密码 :

https://www.yuzhi100.com/article/drupal-7-chongzhi-guanliyuan-mima

用hashcat暴力**也是可以了,参考这篇:

https://klionsec.github.io/2017/04/26/use-hashcat-*****-hash/

但flag2都提示暴力**不是唯一的方法,那就怎么省事怎么来了

drupal自带的 password-hash.sh 加密 drupal

渗透测试实战:DC-1 靶场入侵

重置管理员密码为drupal
渗透测试实战:DC-1 靶场入侵

渗透测试实战:DC-1 靶场入侵

我们回到80端口,用admin:drupal登录上了

渗透测试实战:DC-1 靶场入侵

翻一翻后台,在content发现flag3

渗透测试实战:DC-1 靶场入侵

看一下flag3,要我们去查看shadow文件,看到perm 猜测是不是suid提权

渗透测试实战:DC-1 靶场入侵

渗透测试实战:DC-1 靶场入侵渗透测试实战:DC-1 靶场入侵

看起来没有什么特别的,继续翻翻目录,在home目录发现flag4

渗透测试实战:DC-1 靶场入侵


提权

运行一些脚本看能不能发现什么,再手动探测一下

https://github.com/NullArray/RootHelper(脚本下载器,滑稽)

https://github.com/rebootuser/LinEnum

渗透测试实战:DC-1 靶场入侵

给予执行权限后执行

渗透测试实战:DC-1 靶场入侵

发现

渗透测试实战:DC-1 靶场入侵

结合之前flag3的提示,查看find文档,有个-exec的参数执行命令,cat后面的{}表示find查找到的文件名

渗透测试实战:DC-1 靶场入侵

渗透测试实战:DC-1 靶场入侵

拿到密码的sha256,试试能不能**密码出来

渗透测试实战:DC-1 靶场入侵

join自带的密码本能**出了flag4用户的密码

渗透测试实战:DC-1 靶场入侵

然后我用rockyou密码本去跑了一下.....

在我的电脑疯狂咆哮的时候,我终于想到了既然我可以用root权限读取shadow,那也可以读取/root目录下的文件

渗透测试实战:DC-1 靶场入侵

既然都可以用root执行命令了,那就试试反弹shell,把命令写进shell.sh脚本,然后执行,成功获取root shell

渗透测试实战:DC-1 靶场入侵渗透测试实战:DC-1 靶场入侵

Thanks for reading.


参考链接:

http://topspeedsnail.com/John-the-Ripper-learn/

优化批量**shadow

【安全科普】Linux提权——利用可执行文件SUID

https://www.anquanke.com/post/id/104697

https://www.freebuf.com/sectool/121847.html

https://wangchujiang.com/linux-command/c/find.html

https://justcoding.iteye.com/blog/1407697

渗透测试实战:DC-1 靶场入侵

别忘了投稿哦

大家有好的技术原创文章

欢迎投稿至邮箱:[email protected] 

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哦

有才能的你快来投稿吧!

了解投稿详情点击重金悬赏 | 合天原创投稿等你来!

渗透测试实战:DC-1 靶场入侵

相关文章: