剑庭安
首页
黑客安全首页全部安全栏目 黑客技术黑客技术、渗透测试、漏洞利用工具与教程 安全软件安全工具、扫描器、检测与审计软件 病毒分析恶意软件分析、样本、逆向与沙箱 CTF思路CTF 题目、writeup、解题思路与工具 防护思路防御技术、加固、检测响应与蓝队 红蓝攻防红队攻击模拟、蓝队对抗、攻防演练 漏洞知识库漏洞、CVE、PoC、EXP 与安全研究
逆向|反编译
PHP源码PHP 网站源码、程序、系统 APP源码安卓/iOS APP 源码 ASP源码ASP 网站源码与程序 NET源码.NET 网站源码与系统 小程序源码微信/支付宝小程序源码 Dedecms风格模板Dedecms 织梦风格模板 Empirecms风格模板EmpireCMS 帝国风格模板 Discuz商业模板/插件Discuz 商业模板与插件 WordPress主题/插件WordPress 主题与插件 其它源码、模板其它各类源码与模板 游戏源码游戏源码与引擎项目 加密货币源码加密货币、区块链、钱包、USDT/比特币相关源码与工具 手游源码手机游戏源码、服务端、客户端与引擎项目 传奇源码热血传奇、传奇世界、复古传奇等客户端/服务端/引擎源码 页游源码网页游戏、H5 游戏、浏览器游戏源码 端游源码电脑单机游戏、PC 网游客户端/服务端源码
最新万能免驱动支持所有型号打印机下载程序 日历天气老黄历 · 每天同步真实日期与天气
站长工具站长工具 自助开通会员浏览该分类 其他资源qtziy SEO工具SEO工具 站群源码站群源码 泛程序泛程序 蜘蛛模板蜘蛛模板 蜘蛛池蜘蛛池 外链工具外链工具
搜索 自助开通会员🔓 破甲 API
登录 注册
首页 分类列表 黑客技术 evil-winrm - 用于黑客/pentesting…
evil-winrm - 用于黑客/pentesting的终极WinRM shell 黑客技术 点击放大
作者:admin 发布:2026-10-05

evil-winrm - 用于黑客/pentesting的终极WinRM shell

项目说明E [![]]() [![Ruby2.3-shield]]() [![Gem-]]() [![License-shield]]() [![Docker-shield]]()The ultimate WinRM shell for hacking/pentesting!BannerDescri…
资源可下载 免费下载 0 条讨论
会员资源
开通会员后即可下载全部资源。
登录后开通会员
会员方案
473浏览量
0讨论
2下载链接
可下载资源状态
内容可验证
更新 2026-10-05
人工审核发布
评论区答疑

e - The ultimate WinRM shell for hacking/pentesting

项目说明

E [![]]() [![Ruby2.3-shield]]() [![Gem-]]() [![License-shield]]() [![Docker-shield]]()


The ultimate WinRM shell for hacking/pentesting

!Banner

Description & Purpose


This shell is the ultimate WinRM shell for hacking/pentesting.

WinRM (Windows Remote Management) is the Microsoft implementation of WS-Management 协议. A standard SOAP based 协议
that allows hardware and operating systems from different to interoperate. Microsoft included it in their Operating
Systems in order to make life easier to system administrators.

This program can be used on any Microsoft Windows Servers with this feature enabled (usually at port 5985), of course only
if you ha and permissions to use it. So we can say that it could be used in a post-exploitation hacking/pentesting
phase. The purpose of this program is to provide nice and easy-to-use features for hacking. It can be used with legitimate
purposes by system administrators as well but the most of its features are focused on hacking/pentesting stuff.

It is based mainly in the WinRM Ruby library which changed its way to work since its 2.0. Now instead of using WinRM
协议, it is using PSRP (Powershell Remoting 协议) for initializing runspace pools as well as creating and processing pipelines.

Features


- Compatible to Linux and Windows 客户端 systems
- Load in memory Powershell scripts
- Load in memory dll files bypassing some AVs
- Load in memory C# (C Sharp) assemblies bypassing some AVs
- Load x64 payloads generated with awesome [donut] technique
- Dynamic AMSI Bypass to avoid A
- Pass-the-hash support
- Kerberos auth support including also ccache and kirbi files
- SSL and certificates support
- Upload and download files showing progress bar
- List remote machine services without pri
- Command History
- WinRM command completion
- Local files/directories completion
- Remote path (files/directories) completion (can be disabled optionally)
- Colorization on prompt and output messages (can be disabled optionally)
- Optional logging feature
- Docker support (prebuilt images a at [Dockerhub])
- Trap capturing to avoid accidental shell exit on Ctrl+C
- Customizable user-agent using legitimate Windows default one
- ETW (Event Tracing for Windows) bypass

Help

Requirements


Ruby 2.3 or higher is needed. Some ruby gems are needed as well: winrm >=2.3.7, winrm-fs >=1.3.2, stringio >=0.0.2, logger >= 1.4.3, fileutils >= 0.7.2, readline ~> 0.0.4, readline-ext ~> 0.2.0.
Depending of your installation method (4 a) the installation of them could be required to be done manually.

Another important requirement only used for Kerberos auth is to install the Kerberos package used for 网络 authentication.
For some Linux like Debian based (Kali, Parrot, etc.) it is called krb5-user. For BlackArch it is called krb5 and probably it could be called in a different way for other Linux distributions.

The remote path completion feature requires the native readline-ext binding, which is installed automatically as an E dependency. Some systems require additional de packages to compile it. Check the section below for more info.

Installation & Quick Start (4 methods)

Method 1. Installation directly as ruby gem (dependencies will be installed automatically on your system)


- Step 1. Install it (it will install automatically dependencies):
- Step 2. Ready. Just launch it!

Method 2. Git clone and install dependencies on your system manually


- Step 1. Install dependencies manually: sudo gem install winrm winrm-fs stringio logger fileutils readline readline-ext
- Step 2. Clone the repo: git clone
- Step 3. Ready. Just launch it!

Method 3. Using bundler (dependencies will not be installed on your system, just to use e)


- Step 1. Install bundler: gem install bundler
- Step 2. Clone the repo: git clone
- Step 3. Install dependencies with bundler: cd e && bundle install --path /bundle
- Step 4. Launch it with bundler:

Method 4. Using Docker


- Step 1. Launch docker container based on already built image:

Documentation

Clear text password


If you don't want to put the password in clear text, you can optionally avoid to set -p argument and the password will be prompted pre to be shown.

Ipv6


To use IPv6, the address must be added to /etc/hosts. Just put the already set name of the host after -i argument instead of an IP address.

Basic commands


- upload: local files can be auto-completed using tab key.
- usage: upload local_filename or upload local_filename destination_filename
- download:
- usage: download remote_filename or download remote_filename destination_filename

__Notes about paths (upload/download)__:
Relati are not allowed to use on download/upload. Use filenames on current directory or absolute path.
If you are using E in a docker en, bear in mind that all local paths should be at /data and be pretty sure that you mapped it as a in order to be able to access to downloaded files or to be able to upload files from your local host O.S.

- services: list all services showing if there your account has permissions over each one. No administrator permissions needed to use this feature.
- menu: load the In, Dll-Loader and Donut-Loader functions that we will explain below. When a ps1 is loaded all its functions will be shown up.
- clear or cls: clear the terminal screen. You can also use Ctrl+L keyboard shortcut to clear the screen.
- exit or quit: close the E session. You can also use the Ctrl+D keyboard shortcut.

Load powershell scripts


- To load a ps1 file you just have to type the name (auto-completion using tab allowed). The scripts must be in the path set at -s argument. Type menu again and see the loaded functions. Very large files can take a long time to be loaded.

Ad commands


  • In: allows .Net assemblies to be executed in memory. The name can be auto-completed using tab key. Arguments for the exe file can be passed comma separated. Example: In /opt/csharp/Binary.exe 'param1, param2, param3'. The executables must be in the path set at -e argument.
  • - Dll-Loader: allows loading dll libraries in memory, it is equi to: [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))

    The dll file can be hosted by smb, http or locally. Once it is loaded type menu, then it is possible to autocomplete all functions.

    - Donut-Loader: allows to inject x64 payloads generated with awesome [donut] technique. No need to encode the payload.bin, just generate and inject!

    You can use this [donut-maker] to generate the payload.bin if you don't use Windows.
    This script use a python module written by Marcello Salvati ([byt3bl33d3r]). It could be installed using pip: pip3 install donut-shellcode

    - Bypass-4MSI: patchs AMSI protection.

    Kerberos


    - First you have to sync date with the DC: rdate -n <dc_ip>

  • To generate ticket there are many ways:
  • * Using [ticketer.py] from impacket
    * Using [Rubeus] or [Mimikatz] to get kirbi tickets (automatic con to ccache is supported)

  • Add ticket file. There are 3 ways:
  • export KRB5CCNAME=/foo/.ccache

    cp ticket.ccache /tmp/krb5cc_0

    Use the -K parameter: e -i hostname -r DOMAIN.COM -K /path/to/ticket.ccache or e -i hostname -r DOMAIN.COM -K /path/to/ticket.kirbi

    When using -K, the tool will automatically:
    - Detect the ticket format (ccache or kirbi)
    - Convert kirbi tickets to ccache format if needed (requires ticket_con.py or impacket-ticketCon)
    - the file exists and is readable
    - Set the KRB5CCNAME en
    - Resolve IP addresses to FQDN for better Kerberos compatibility

    - Add realm to /etc/krb5.conf (for linux). Use of this format is important:

    - Check Kerberos tickets with klist
    - To remo use: kdestroy
    - For more information about Kerberos check this [cheatsheet]

    Remote path completion


    This feature requires the native readline-ext binding. E declares it as a dependency, so it is installed automatically when using RubyGems or Bundler. If the nati cannot be built, this feature will not work (a warning will be shown).

    *Ruby 3.3+ note:*
    ext/readline was removed from Ruby's 源码 in 3.3 (Feature #19616). Therefore, Method 1 below cannot be used with Ruby 3.3 or newer. On Debian-based systems, install the required de package before installing E or its dependencies:

    The readline-ext dependency makes require 'readline' load GNU Readline instead of reline, which lacks quoting_detection_proc, the method E checks for. The methods below target older Ruby and are kept for compatibility.

    #### Method 1 (compile the needed extension)

    Using this method you'll compile ruby with the needed readline feature but to use only the library without changing the default ruby on your system. Because of this, is the most recommended method.

    Let's suppose that you have in your Debian based system ruby 2.7.3:

    #### Method 2 (Install ruby to use it only for e using rbenv)

    Let's suppose that you want ruby 2.7.1 on a Debian based Linux and you are using zsh. This script will automatize it. You'll need to launch it from the same dir where e.rb and Gemfile is located (the e created dir after a git clone for example):

    Then you can safely launch e using the new installed ruby with the required readline support from any location.

    #### Method 3 (compile entire ruby)

    If you want to compile it yourself, you can follow these steps. Let's suppose that you want ruby 2.7.3:

    Depending of your system it will be installed at /opt/rubies/ruby-2.7.3 or maybe at ~/.rubies/ruby-2.7.3.

    Now just need to install e dependencies for that new installed ruby . The easiest way is to launch command /opt/rubies/ruby-2.7.3/bin/gem install e. The gem command used must be belonging to the new ruby installation.

    After that, you can launch safely your new installed ruby to use it on e: /opt/rubies/ruby-2.7.3/bin/ruby ./e.rb -h

    It is recommended to use this new installed ruby only to launch e. If you set it up as your default ruby for your system, bear in mind that it has no dependency gems installed. Some ruby based software like Metasploit or others could not start correctly due dependencies problems.

    Logging

    This feature will create files on your $HOME dir saving commands and the outputs of the WinRM sessions.

    Command History

    E maintains a persistent command history for each host and user combination. The history is stored in ~/.e/history/ directory with files named as {host}_{user}.hist.

    When you connect to a machine you' accessed, you can use the arrow keys (Up/Down) to na through your previous commands. The history is automatically sa each command execution and loaded when you reconnect to the same host with the same user.

    Known problems. OpenSSL errors

    Sometimes, you could face an error like this:

    The error is caused because the OpenSSL 3.0 retired some legacy functions like MD4 which are needed to run this 工具. There are different existing workarounds to deal with this situation:

    - Update your system to the latest. Likely, this problem was automatically fixed on latest Ruby that are using newer OpenSSL .
    - Compile your own Ruby using old OpenSSL 1.x instead of OpenSSL 3.0 or compile it using OpenSSL > 3.0 to avoid the problematic 3.0 .
    - The easiest one. Edit your /etc/ssl/openssl.cnf config file and be sure the config is like this:

    - As an alternative for the last workaround, if your system is using LibreSSL instead of OpenSSL or maybe you just don't want to modify your system config file. Create a simple file containing the abo. Any name can be used, for example e.conf. After that, export an en var to force the system to use it: export OPENSSL_CONF="/path/to/e.conf". And then launch the 工具, the error will disappear.

    Changelog:


    Changelog and project changes can be checked here: CHANGELOG.md

    Credits:


    Staff:

    - [Cybervaca], (founder). Twitter (X): []
    - [OscarAkaElvis], Twitter (X): []
    - [Jarilaos], Twitter (X): [@_Laox]
    - [arale61], Twitter (X): []

    Hat tip to:

    - [Vis0r] for his personal support.
    - [Alamot] for his original code.
    - [3] for his awesome dll loader.
    - [WinRb] All contributors of ruby library.
    - [TheWover] for his awesome donut tool.
    - [byt3bl33d3r] for his python library to create donut payloads.
    - [Sh11td0wn] for inspiration about new features.
    - [Borch] for his help adding logging feature.
    - [noraj] for his help in maintaining the 工具 across Ruby .
    - [Hackplayers] for giving a shelter on their github to this software.

    Disclaimer & License


    This script is licensed under LGPLv3+. Direct link to License.

    E should be used for authorized penetration testing and/or nonprofit educational purposes only.
    Any misuse of this software will not be the responsibility of the author or of any other collaborator.
    Use it at your own servers and/or with the ser's permission.

    <!-- Github URLs -->
    [Cybervaca]:
    [OscarAkaElvis]:
    [Jarilaos]:
    [arale61]:
    [Vis0r]:
    [Alamot]:
    [3]:
    [Borch]:
    [noraj]:
    [donut]:
    [donut-maker]:
    [byt3bl33d3r]:
    [WinRb]:
    [TheWover]:
    [Sh11td0wn]:
    [ticketer.py]:
    [ticket_con.py]:
    [Rubeus]:
    [Mimikatz]:
    [cheatsheet]:
    [Dockerhub]:
    [Hackplayers]:

    <!-- Twitter URLs -->
    []:
    []:
    [@_Laox]:
    []:

    <!-- Badges URLs -->
    []: "Latest "
    [Ruby2.3-shield]: "Ruby 2.3 or later"
    [License-shield]: "LGPL v3+"
    [Docker-shield]: "Docker CI master"
    [Gem-]: "Ruby gem"

    项目信息

    开发语言:Ruby

    Star 数:5537

    技术要点

    该项目属于黑客技术方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕The ultimate WinRM shell for hacking/pentesting展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。

    从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。

    使用与学习建议

    1. 下载源码压缩包,解压到本地环境。

    2. 根据项目类型准备对应的运行环境与依赖。

    3. 按照 README 中的步骤完成配置与部署。

    4. 在隔离的测试环境中运行验证,避免影响生产系统。

    免责声明

    本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。

    资源标题evil-winrm - 用于黑客/pentesting的终极WinRM shell
    所属分类黑客技术
    发布作者admin
    发布时间2026-10-05 22:03:02
    下载权限 免费下载
    附件数量2 个下载链接
    浏览次数473
    讨论数量0
    主题状态正常讨论中

    本资源免费,登录后即可在本页「下载链接」区域获取全部附件。

    请在评论区留言说明具体链接,或联系作者补档。楼主更新后本页会同步最新的下载地址。

    请先阅读正文中的授权说明;未注明的默认仅限站内学习交流,禁止直接搬运到其他站点二次售卖。
    还没有讨论,快来抢沙发~
    登录 后才能参与讨论
    下载链接
    会员才能下载
    登录后开通会员
    同分类推荐
    暂无同类资源
    免费登录即可下载
    查看会员
    放大预览

    © 2026 剑庭安 - 网站开发定制 SEO 优化蜘蛛池代做 在线看手相算命. 保留所有权利。

    Powered by 酷像SEOv3.0

    网站地图 Sitemap.xml
    首页 全部分类 黑客安全 逆向|反编译 精品源码 站长工具自助开通会员其他资源SEO工具站群源码泛程序蜘蛛模板蜘蛛池外链工具创意乐园 搜索 会员服务 登录 注册