Evil-WinRM 使用教程
1. 项目的目录结构及介绍
Evil-WinRM 是一个用于与 Windows 远程管理(WinRM)服务交互的工具。以下是其基本的目录结构和各部分介绍:
evil-winrm/
├── lib/
│ ├── shell.rb
│ ├── winrm.rb
│ └── ...
├── scripts/
│ ├── Invoke-Mimikatz.ps1
│ ├── Invoke-PowerShellTcp.ps1
│ └── ...
├── evil-winrm.rb
├── Gemfile
├── LICENSE
└── README.md
- lib/: 包含 Evil-WinRM 的核心库文件,如
shell.rb
和winrm.rb
,这些文件负责与 WinRM 服务的交互。 - scripts/: 包含一些常用的 PowerShell 脚本,如
Invoke-Mimikatz.ps1
和Invoke-PowerShellTcp.ps1
,这些脚本可以用于执行各种任务。 - evil-winrm.rb: 项目的启动文件,负责启动 Evil-WinRM 工具。
- Gemfile: 定义了项目依赖的 Ruby 库。
- LICENSE: 项目的许可证文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
evil-winrm.rb
是 Evil-WinRM 的启动文件。它负责初始化并启动与 WinRM 服务的交互。以下是其基本结构和功能:
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler/setup'
Bundler.require(:default)
require_relative 'lib/shell'
require_relative 'lib/winrm'
# 初始化 WinRM 连接
winrm = WinRM::Connection.new(
endpoint: "http://#{options[:ip]}:5985/wsman",
user: options[:user],
password: options[:password]
)
# 启动 Shell
shell = Shell.new(winrm)
shell.interact
- 初始化 WinRM 连接: 通过指定目标 IP、用户名和密码来初始化与 WinRM 服务的连接。
- 启动 Shell: 创建一个交互式 Shell 对象,并启动交互式会话。
3. 项目的配置文件介绍
Evil-WinRM 没有显式的配置文件,其配置主要通过命令行参数进行。以下是一些常用的命令行参数:
- -i: 指定目标系统的 IP 地址。
- -u: 指定目标系统的用户名。
- -p: 指定目标系统的密码。
- -H: 使用 NTLM 哈希进行登录。
- -S: 启用 SSL 加密连接。
- -s: 加载并执行指定的 PowerShell 脚本。
例如:
./evil-winrm.rb -i 192.168.1.19 -u administrator -p Ignite@987
以上命令将使用指定的 IP、用户名和密码连接到目标系统的 WinRM 服务。
通过这些参数,用户可以根据需要灵活配置 Evil-WinRM 的行为。