Enumerate usernames on a domain with no permissions

RidRelay is a python script to enumerate usernames on a domain where you have no permissions at all. It is a quick and easy way to get domain usernames while on an internal network.

RidRelay combines the SMB Relay attack, common lsarpc based queries and RID cycling to get a list of domain usernames. It takes these steps:

  1. Spins up an SMB server and waits for an incoming SMB connection
  2. The incoming credentials are relayed to a specified target, creating a connection with the context of the relayed user
  3. Queries are made down the SMB connection to the lsarpc pipe to get the list of domain usernames. This is done by cycling up to 50000 RIDs

(For best results, use with Responder)

Dependencies

  • Python 2.7 (sorry but impacket doesn’t play nice with 3 🙁 )
  • Impacket v0.9.17 or above

Installation

pipenv install –two
pipenv shell

# Optional: Run if installing impacket
git submodule update –init –recursive
cd submodules/impacket
python setup.py install
cd ../..

Usage

First, find a target host to relay to. The target must be a member of the domain and MUST have SMB Signin off. CrackMapExec can get this info for you very quick!

Start RidRelay pointing to the target:

python ridrelay.py -t 10.0.0.50

OR

Also output usernames to file

python ridrelay.py -t 10.0.0.50 -o path_to_output.txt

Highly Recommended: Start Responder to trick users to connecting to RidRelay.

Check out the script and project page on GitHub here.

Leave a Comment