欢迎光临
我们一直在努力

evil-winrm 与 evil-winrm-py 使用指南

evil-winrm 和 evil-winrm-py 是当今渗透测试(特别是 Windows 内网/Active Directory 环境)中最受欢迎的 WinRM 交互式 Shell 工具之一。它们主要用于在获取有效凭证(明文密码、NTLM hash、Kerberos ticket 等)后,快速建立到目标 Windows 主机的 PowerShell Remoting 会话,实现命令执行、文件传输、提权探索等操作。

本文将详细介绍这两个工具的背景、功能、安装、使用方式、认证机制(特别聚焦 Kerberos 支持)、优缺点对比以及实际渗透测试场景中的应用。


一、WinRM 协议基础知识

WinRM(Windows Remote Management)是微软实现的 WS-Management 协议(基于 SOAP 的 Web 服务标准),默认监听端口:

  • HTTP → 5985
  • HTTPS → 5986

从 Windows Vista / Server 2008 开始默认集成,后来演变为 PowerShell Remoting(PSRP – PowerShell Remoting Protocol)的底层传输通道。

WinRM 的常见认证方式包括:

  • Basic / Negotiate(NTLM/Kerberos)
  • Kerberos(域环境首选)
  • NTLM / Pass-the-Hash
  • Certificate
  • CredSSP(较少用)

在渗透测试中,WinRM 是继 RDP、SMB、WMI 之后最常用的横向移动/后渗透通道之一,尤其在域环境中,凭据获取后几乎必用 WinRM Shell。

二、evil-winrm(原版 Ruby 实现)

项目地址:https://github.com/Hackplayers/evil-winrm
当前主流版本(2025-2026):v3.7 ~ v3.9
语言:Ruby
星数:约 5.3k+(长期霸榜 WinRM 工具)

主要功能亮点
  • 高度定制化的交互式 PowerShell 会话
  • 支持多种认证方式:
    • 明文密码 -p
    • NTLM hash(Pass-the-Hash)-H
    • Kerberos(需配置 realm + ccache)
    • 证书认证(公钥/私钥)
    • SSL 支持 -S
  • 文件上传/下载(upload / download 命令)
  • 本地脚本自动加载(-s 指定目录,自动 source *.ps1)
  • 可执行文件自动加载(-e 指定 exes 目录)
  • 日志记录 -l logfile
  • 无文件内存加载 PowerShell 脚本(menu → powershell 模块)
  • 支持自定义 User-Agent -a
  • 支持代理 -x
  • Docker 一键使用(官方提供镜像)
典型使用示例

# 最常用 – 明文登录
evil-winrm -i 10.10.110.45 -u administrator -p 'P@ssw0rd!'

# PTH(Pass-the-Hash)
evil-winrm -i 192.168.10.10 -u administrator -H 'aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0'

# Kerberos(需先获取 TGT 并设置 KRB5CCNAME)
export KRB5CCNAME=./admin.ccache
evil-winrm -i dc01.lab.local -r lab.local –spn WSMAN/dc01.lab.local

# HTTPS + 自签证书跳过验证
evil-winrm -i 10.0.0.5 -u admin -p pass -S –insecure

# 加载本地脚本目录
evil-winrm -i 10.10.10.10 -u user -p pass -s /home/kali/payloads/

Kerberos 支持情况

evil-winrm 的 Kerberos 支持相对传统,需要手动配置 /etc/krb5.conf,并使用 export KRB5CCNAME=xxx.ccache。常用流程:

  • 获取 TGT(impacket-getTGT、Rubeus、netexec 等)
  • 配置 krb5.conf(添加 domain realm)
  • 指定 -r REALM 和可选 –spn WSMAN/hostname
  • 连接
  • 缺点:配置繁琐,容易出错(尤其是 realm、SPN 前缀不匹配时),部分旧版本对非标准 SPN 支持不好。

    三、evil-winrm-py(Python 重写版)

    项目地址:https://github.com/adityatelange/evil-winrm-py
    当前主流版本(2025-2026):v1.4 ~ v1.5
    语言:Python
    定位:evil-winrm 的现代替代品,尤其针对 Kerberos 和环境兼容性优化

    为什么出现 evil-winrm-py?

    原版 evil-winrm(Ruby)存在以下痛点:

    • Ruby 环境依赖复杂(bundler、gem 版本冲突常见)
    • Kali/Parrot 等发行版经常出现 gem lock 版本过旧问题
    • Kerberos 配置麻烦,稳定性一般
    • 响应速度稍慢(部分用户实测慢 15-30%)
    • 对新版 Windows / PSRemoting 策略兼容性偶有 bug

    evil-winrm-py 因此诞生,目标是:

    • 用纯 Python 重写,pip 安装更友好
    • 响应更快(用户反馈约快 20%)
    • 更好的 Kerberos 支持(原生支持密码直接请求票据、ccache、自定义 SPN/realm)
    • 彩色输出、命令历史记录更友好
    • 活跃维护(2025-2026 仍在快速迭代)
    安装方式

    # 普通安装(无 Kerberos)
    pip install evil-winrm-py

    # 推荐 – 带 Kerberos 支持(会编译 python-kerberos,可能需要几分钟)
    pip install evil-winrm-py[kerberos]

    # 更推荐 – 使用 pipx 隔离环境
    pipx install evil-winrm-py[kerberos]

    Arch Linux、Kali 2025+ 已将 evil-winrm-py 纳入官方仓库。

    主要功能与 evil-winrm 对比
    功能evil-winrm (Ruby)evil-winrm-py (Python)备注
    语言 Ruby Python Python 环境更普遍
    响应速度 一般 更快(实测 15-25%) pywinrm 底层优化
    Kerberos 支持 需要手动配置 krb5.conf 原生支持密码直取票、ccache、SPN py 版明显更友好
    PTH / PtH 支持 支持 两者一致
    证书认证 支持 支持 两者一致
    文件上传/下载 upload / download 同名命令 功能一致
    脚本自动加载 -s / -e 暂无完全等价(计划中) 原版更强
    日志记录 -l 支持 –log 类似
    彩色输出 & 历史 基本 更好(prompt_toolkit) py 版体验更好
    Docker 支持 官方镜像 暂无官方镜像 原版胜出
    社区活跃度(2026) 仍活跃但更新变慢 快速迭代 py 版更推荐新手
    典型使用示例(evil-winrm-py)

    # 普通 NTLM
    evil-winrm-py -i 10.80.80.2 -u john.doe -p 'P@ssw0rd123!'

    # PTH
    evil-winrm-py -i 192.168.88.10 -u administrator -H 'aad3b…31d6cfe0d16ae931b73c59d7e0c089c0'

    # Kerberos – 密码直接请求票据(最方便!)
    evil-winrm-py -i dc01.lab.local -u administrator -p 'Password123!' –kerberos

    # 使用已有 ccache
    KRB5CCNAME=./admin.ccache evil-winrm-py -i dc01.lab.local –kerberos

    # 指定 realm / SPN 前缀(非标准环境)
    evil-winrm-py -i dc01 -u user -p pass –kerberos –realm LAB.LOCAL –spn-prefix WSMAN

    可以看到,evil-winrm-py 的 Kerberos 使用体验远超原版,很多场景下无需手动配置 krb5.conf,也无需 export ccache 环境变量。

    四、实际渗透测试场景对比

    场景1:普通工作组/本地管理员凭证

    两者几乎无差别,原版 evil-winrm 因内置脚本加载功能略胜一筹。

    场景2:域环境 PTH

    两者均支持,evil-winrm-py 响应更快,推荐使用。

    场景3:Kerberos 环境(无明文、无 hash,只有 TGT/TGS)

    evil-winrm-py 完胜。原版需要复杂配置,py 版可直接使用 ccache 或密码请求票据。

    场景4:Red Team 长驻/稳定性要求高

    目前(2026)多数团队已转向 evil-winrm-py 或其他替代品(如 Devious-WinRM、netexec winrm 模块等)。

    场景5:CTF / HackTheBox / TryHackMe

    evil-winrm-py 因安装简单、Kerberos 友好,已成为 2025-2026 年主流选择。

    赞(0)
    未经允许不得转载:171主机测评 » evil-winrm 与 evil-winrm-py 使用指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址