目录
内网杀软探测与应对实战方案
一、总体思路
二、探测阶段——杀软工具与手法
2.1 进程与服务检测
2.2 注册表与文件系统检测
2.3 Nmap 与 NSE 脚本扫描
三、处理阶段——探测到杀软后的应对措施
3.1 分析评估
3.2 应对策略
四、判断与验证——注入 webshell 后如何使用 tasklist/svc 检查
4.1 使用 tasklist/svc 命令
4.2 使用 svc 命令查看服务状态
4.3 实际工作场景示例
五、总结
内网杀软探测与应对实战方案
一、总体思路
-
信息收集与杀软探测
- 对内网主机进行全面扫描,确认是否安装杀毒软件(AV)、端点检测工具(EDR)等安全产品。
- 利用多种工具(如 WMIC、tasklist、注册表查询、Nmap NSE 脚本等)收集目标主机上运行的进程、服务和软件信息,从而判断是否存在杀软及其版本、运行状态。
-
分析与应对
- 根据检测结果,评估杀软对后续操作(如上传工具、执行提权、反弹 shell 等)的干扰风险。
- 制定绕过方案:采用内存执行、代码混淆、反射 DLL 注入等技术,降低在磁盘生成可疑文件的风险,并尝试绕过杀软扫描。
-
后续操作与判断
- 在注入 webshell 后,利用 tasklist 和 svc 命令检查目标主机上运行的进程与服务,判断杀软是否仍在运行或是否对后续操作产生影响。
- 根据检测到的杀软服务(例如 Windows Defender 的 MsMpEng.exe、第三方杀软进程如 McAfeeSvc.exe、AVP.exe 等),决定后续是否需要进一步绕过或禁用部分安全功能(在合法测试中模拟情景)。
二、探测阶段——杀软工具与手法
2.1 进程与服务检测
-
使用 tasklist 命令:
在获得初步反弹 shell 后,执行:tasklist /svc
该命令会列出所有进程及其对应的服务。观察输出中是否有杀软常见进程,例如:
- Windows Defender:MsMpEng.exe
- McAfee:McAfeeSvc.exe、McUICnt.exe
- Kaspersky:AVP.exe
- Symantec:SymDaemon.exe
- Trend Micro:TmCCSrv.exe
-
使用 WMIC 查询:
通过 WMIC 获取安装的软件列表:wmic product get name,version | findstr /I "Defender McAfee Kaspersky Symantec"
或通过远程方式查询目标机器的信息:
wmic /node:"<目标IP>" product where "name like '%Defender%'" get name,version
2.2 注册表与文件系统检测
-
注册表查询:
利用 reg query 命令查询常见杀软的安装信息:reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s | findstr /I "Defender McAfee Kaspersky"
同时检查 64 位系统下的 WOW6432Node 分支。
-
文件查找:
检查常见杀软安装目录下是否存在特定文件。例如 Windows Defender 的配置文件、McAfee 的更新日志文件等。
2.3 Nmap 与 NSE 脚本扫描
- 利用 Nmap:
使用带有杀软特定 NSE 脚本的 Nmap 扫描,可以识别一些常见杀毒软件对外开放的管理接口或更新服务。例如:
部分 NSE 脚本可能会返回关于安全产品的 Banner 信息。nmap -sV --script http-title,ssl-cert -p 80,443 <目标IP>
三、处理阶段——探测到杀软后的应对措施
3.1 分析评估
- 确定杀软类型与版本:
根据 tasklist、WMIC、注册表等信息,确定目标主机上运行的杀软产品及其版本、实时保护状态。 - 评估干扰风险:
判断杀软是否启用了实时监控、文件扫描、行为检测等机制。如果杀软检测严格,上传文件、执行新程序、反弹 shell 等操作可能被拦截或清除。
3.2 应对策略
-
内存执行技术:
- 尽量使用内存中执行的方法,如 PowerShell 反弹 shell、反射式 DLL 注入等,避免在磁盘上生成可疑文件。
- 例如利用 PowerShell Base64 编码命令执行:
powershell -EncodedCommand <Base64字符串>
-
代码混淆与加密:
- 对上传的 Payload 进行代码混淆,或利用自定义解密器在内存中解密并执行,降低 AV 签名检测风险。
-
调整执行时机与间隔:
- 避免在杀软高负载或实时扫描期间执行高风险操作,适当延时执行。
-
禁用/绕过策略(在合法测试场景中):
- 在获取更高权限后,如果目标环境允许测试,可以尝试临时停止杀软服务:
但此操作需谨慎使用,因会留下明显痕迹。net stop "Windows Defender Service"
- 在获取更高权限后,如果目标环境允许测试,可以尝试临时停止杀软服务:
四、判断与验证——注入 webshell 后如何使用 tasklist/svc 检查
4.1 使用 tasklist/svc 命令
- 执行命令:
在已注入 webshell 后,执行以下命令检查目标主机的进程列表和服务关联:tasklist /svc
- 判断依据:
- 查看杀软进程: 如发现 MsMpEng.exe(Windows Defender)、AVP.exe(Kaspersky)、McAfeeSvc.exe 等是否正在运行。
- 观察服务状态: 确认杀软相关服务是否处于启动状态,以及是否对新上传的可疑文件进行扫描。
- 对比时间戳与 CPU 占用: 如果刚刚执行了文件上传或反弹 shell命令,观察这些进程是否突然出现异常的 CPU 占用或日志记录,可能表明杀软干预了操作。
4.2 使用 svc 命令查看服务状态
- 查看服务:
通过 Windows 的 svc 命令或 SC 命令,可以列出当前正在运行的服务:sc query type= service state= all | findstr /I "Defender McAfee Kaspersky"
- 通过该命令判断目标主机杀软服务的运行状态(如 RUNNING、STOPPED 等)。
4.3 实际工作场景示例
案例描述:
在一次内网渗透测试中,测试人员通过注入 webshell 进入目标主机后,首先执行 tasklist /svc
命令,发现系统中运行着 “MsMpEng.exe” 和 “DefenderUpdateService” 服务,表明 Windows Defender 正在启用实时保护。
为避免操作被杀软干扰,测试人员进一步采用 PowerShell 内存执行技术上传了混淆后的反弹 shell Payload,并利用 Base64 编码命令执行,从而成功在内存中执行 Payload。
同时,利用 sc query
命令确认 Windows Defender 服务状态为 RUNNING,但由于内存中执行的方式未在磁盘留下文件,成功规避了杀软的文件扫描。
随后,测试人员通过对比任务列表和服务状态,判断目标主机杀软对当前操作的干扰较小,从而继续进行后续的提权和横向移动。
4.4 判断进程是否为杀软工具
- 想要这个本地化部署判断杀毒软件得工具,私聊我。
五、总结
-
探测阶段:
- 通过 tasklist、WMIC、注册表查询、Nmap NSE 脚本等手段,全面识别目标内网主机上安装的杀软及其运行状态。
-
处理阶段:
- 根据检测结果,评估杀软对后续上传、反弹 shell、提权操作的影响。
- 采用内存执行、代码混淆、延时执行等策略来绕过杀软检测,并在合法测试范围内(或在红队演练中)视情况暂时禁用部分服务。
-
判断验证:
- 在注入 webshell 后,通过 tasklist /svc 和 sc query 命令检查关键杀软进程和服务的状态,判断是否存在干扰,并确认操作是否成功执行。