Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
evil-winrm-py — 使用 WinRM 协议在远程 Windows 机器上交互式执行命令(只是更快) | Kitploit
工具/GitHubGitHub/adityatelange/evil-winrm-py
密码攻击横向移动脚本与自动化后渗透利用渗透测试命令与控制身份验证红队远程访问工具Payload 开发
GitHubadityatelange/evil-winrm-py

evil-winrm-py

400381913天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

使用 WinRM 协议在远程 Windows 机器上交互式执行命令(只是更快)

查看仓库网站
ewp-logo

evil-winrm-py

PyPI version Python License PyPI Downloads Github Wiki

evil-winrm-py 是一个基于 Python 的工具,用于通过 WinRM(Windows 远程管理)协议在远程 Windows 机器上执行命令。它提供了一个交互式 shell,具有增强功能,如带进度和校验和验证的文件上传/下载、本地/远程路径和 PowerShell cmdlet 的 Tab 补全、加载和运行 PowerShell 脚本、DLL 和 EXE 的内存执行、命令历史记录以及彩色输出。它还可以作为 MCP 服务器运行,将 WinRM 会话作为工具暴露给兼容 MCP 的客户端。它支持多种身份验证方法,包括 NTLM、Pass-the-Hash、证书和 Kerberos。跳转到安装

[!NOTE] 此工具严格设计用于教育、道德用途和授权的渗透测试。在访问任何系统之前,请始终确保您拥有明确授权。未经授权的访问或滥用此工具既违法又不道德。

动机

原始的 evil-winrm 是用 Ruby 编写的,这对某些用户来说可能是一个障碍。用 Python 重写它使其更易于访问和使用,同时也允许我们利用 Python 丰富的生态系统来增加功能和灵活性。

我还想更多地了解 winrm 及其内部原理,因此这个项目也将作为我的学习经历。

功能

  • 通过交互式 shell 在远程 Windows 机器上执行命令。
  • 从远程主机下载文件到本地机器。
  • 从本地机器上传文件到远程主机。
  • 文件传输的进度条,带有速度和预计时间。
  • 稳定可靠的文件传输,包括对大型文件的支持,并带有 MD5 校验和验证。
  • 使用 Tab 补全自动补全本地和远程文件路径(即使路径中包含空格)。
  • 使用 Tab 补全自动补全 PowerShell cmdlet/辅助函数。
  • 将本地脚本中的 PowerShell 函数加载到交互式 shell 中。
  • 在远程主机上运行本地 PowerShell 脚本。
  • 将本地 DLL(内存中)作为 PowerShell 模块加载到远程主机上。
  • 在远程主机上上传并执行(内存中)本地 EXE。
  • 列出远程主机上正在运行的服务(系统服务除外)。
  • 可选的 MCP 服务器模式,将 WinRM 登录/执行/注销作为工具暴露给 MCP 客户端,并支持多个并发会话。🆕
  • 启用日志记录和调试,以获得更好的可追溯性。
  • 使用 上/下 箭头键浏览命令历史记录。
  • 显示彩色输出以提高可读性。
  • 轻量级且基于 Python,易于使用。
  • 支持键盘中断(Ctrl+C / Ctrl+D),以优雅地终止长时间运行的命令。

包括对以下内容的支持:

  • NTLM 身份验证。
  • Pass-the-Hash 身份验证。
  • 证书身份验证。
  • 带有自定义 SPN 前缀和主机名选项的 Kerberos 身份验证。
  • 使用 SSL 保护与远程主机的通信。
  • 自定义 WSMan URI。
  • 为 WinRM 客户端自定义用户代理。
  • 连接到 Just Enough Administration (JEA) 会话配置。🆕

详细文档可在 docs 目录中找到。

安装

在 Linux 上安装 Kerberos 先决条件

sudo apt install gcc python3-dev libkrb5-dev krb5-pkinit
# Optional: krb5-user

安装 evil-winrm-py

您可以使用 uv/pipx 代替 pip 来安装 evil-winrm-py。uv/pipx 是一种在隔离环境中安装和运行 Python 应用程序的工具,通过将工具的依赖项与系统的 Python 包分开,有助于防止依赖冲突。

查看 安装指南 了解更多详情。

pip install evil-winrm-py
# for optional dependencies use any one of the following commands:
pip install evil-winrm-py[kerberos] # for kerberos support on Linux
pip install evil-winrm-py[mcp] # for mcp support
pip install evil-winrm-py[kerberos,mcp] # to install both optional dependencies

# Note: building gssapi and krb5 packages may take some time, so be patient.

或者,如果您想使用主分支的最新提交进行安装,可以通过克隆仓库并使用 pip/uv/pipx 安装:

git clone https://github.com/adityatelange/evil-winrm-py
cd evil-winrm-py
pip install .
# or use: pip install .[kerberos,mcp] to install both optional dependencies

更新

pip install --upgrade evil-winrm-py

卸载

pip uninstall evil-winrm-py

在 Unix 发行版上的可用性

Packaging status

对于上述发行版,您可以直接从它们的包管理器安装 evil-winrm-py。感谢包维护者在各自发行版中打包和维护 evil-winrm-py。

用法

有关如何使用 evil-winrm-py 的详细信息,请参阅 使用指南。

usage: evil-winrm-py [-h] [-i IP] [-u USER] [-p PASSWORD] [-H HASH] [-c CONFIGURATION_NAME]
                     [--priv-key-pem PRIV_KEY_PEM] [--cert-pem CERT_PEM] [--uri URI] [--ua UA]
                     [--port PORT] [--spn-prefix SPN_PREFIX] [--spn-hostname SPN_HOSTNAME] [-k]
                     [--no-pass] [--ssl] [--log] [--debug] [--no-colors] [--version] [--mcp]
                     [--mcp-port MCP_PORT] [--mcp-host MCP_HOST]

options:
  -h, --help            show this help message and exit
  -i IP, --ip IP        remote host IP or hostname
  -u USER, --user USER  username
  -p PASSWORD, --password PASSWORD
                        password
  -H HASH, --hash HASH  nthash
  -c CONFIGURATION_NAME, --configuration-name CONFIGURATION_NAME
                        session configuration (JEA endpoint) to connect to (default: Microsoft.PowerShell)
  --priv-key-pem PRIV_KEY_PEM
                        local path to private key PEM file
  --cert-pem CERT_PEM   local path to certificate PEM file
  --uri URI             wsman URI (default: /wsman)
  --ua UA               user agent for the WinRM client (default: "Microsoft WinRM Client")
  --port PORT           remote host port (default 5985)
  --spn-prefix SPN_PREFIX
                        specify spn prefix
  --spn-hostname SPN_HOSTNAME
                        specify spn hostname
  -k, --kerberos        use kerberos authentication
  --no-pass             do not prompt for password
  --ssl                 use ssl
  --log                 log session to file
  --debug               enable debug logging
  --no-colors           disable colors
  --version             show version
  --mcp                 start MCP server in streamable HTTP mode
  --mcp-port MCP_PORT   port for MCP streamable HTTP mode (default 8000)
  --mcp-host MCP_HOST   host for MCP streamable HTTP mode (default 127.0.0.1)

For more information about this project, visit https://github.com/adityatelange/evil-winrm-py
For user guide, visit https://github.com/adityatelange/evil-winrm-py/blob/main/docs/usage.md

示例:

evil-winrm-py -i 192.168.1.100 -u Administrator -p P@ssw0rd --ssl

菜单命令(在 evil-winrm-py shell 内)

Menu:
[+] services                                                - Show the running services (except system services)
[+] upload <local_path> <remote_path>                       - Upload a file
[+] download <remote_path> <local_path>                     - Download a file
[+] loadps <local_path>.ps1                                 - Load PowerShell functions from a local script
[+] runps <local_path>.ps1                                  - Run a local PowerShell script on the remote host
[+] loaddll <local_path>.dll                                - Load a local DLL (in-memory) as a module on the remote host
[+] runexe <local_path>.exe [args]                          - Upload and execute (in-memory) a local EXE on the remote host
[+] menu                                                    - Show this menu
[+] clear, cls                                              - Clear the screen
[+] exit                                                    - Exit the shell
Note: Use absolute paths for upload/download for reliability.

MCP 服务器模式

安装 mcp 附加组件后,您可以将 evil-winrm-py 作为 MCP 服务器运行,通过可流式 HTTP 将 WinRM 登录/执行/注销作为工具暴露给兼容 MCP 的客户端(例如 Claude、其他 AI 代理)。它通过 session_id 支持多个并发 WinRM 会话。

evil-winrm-py --mcp
# or customize the address:
evil-winrm-py --mcp --mcp-host 0.0.0.0 --mcp-port 8000

[!WARNING] 由于 MCP 服务器模式允许通过 MCP 工具在 Windows 主机上远程执行命令,因此请仅在受信任的网络上向受信任的 MCP 客户端公开它。

致谢

  • 原始 evil-winrm 项目 - https://github.com/Hackplayers/evil-winrm
  • 用于 Python 的 PowerShell Remoting Protocol - https://github.com/jborean93/pypsrp
  • Prompt Toolkit - https://github.com/prompt-toolkit/python-prompt-toolkit
  • tqdm - https://github.com/tqdm/tqdm
  • 感谢 Github Coplilot 和 Google Gemini 提供的代码建议和改进。
下载工具