This project was originally written to learn Golang and explore the different ways I've encountered when pentesting to enumerate or brute force users and write them together. If you have any errors, feel free to create an issue and I'll do my best to fix them or improve the tools.
Nothing new but existing techniques are brought together in one tool.
The screenshot below are not up-to-date and the command line have changed
The recommended module is o365 for user enumeration and passwords bruteforce / spray . Additional information can be retrieved to avoid account lockout, to know that the password is good but expired, MFA enabled,...
This module should be used to retrieve a list of email addresses before validating them through a user enumeration module. The company will be searched on Linkedin and all people working at these companies will be returned in the specified format.
Note that no profile will be viewed and therefore the user will not receive any notification.
The Linkedin's session cookie li_at
is required.
This module should be used to retrieve a list of email addresses before validating them through a user enumeration module.
The company name will be searched on Google and Bing with a dork to find people working in the company (site:linkedin.com/in+"%s"
). The results title will be parsed to output email addresses in the specified format.
The Azure module is only available to enumerate the users of a tenant. The authentication request will be made on https://autologon.microsoftazuread-sso.com
, a detailed response shows if the account does not exist, a MFA is required, if the account is locked, ...
The ADFS module is only available to bruteforce or spray a password. The authentication request is sent to https://<target>/adfs/ls/idpinitiatedsignon.aspx?client-request-id=<randomGUID>&pullStatus=0
. An error message can informs the user if the password is expired
This module allows to enumerate users and bruteforce / spray passwords.
Several modes are available: office, oauth2 and onedrive (not implemented yet). The office mode is recommended as no authentication is made. Oauth2 can retrieve additional information through AADSTS error code (MFA enable, locked account, disabled account)
As for the user enumeration, two modes are available: oauth2 and autodiscover (not implemented yet). The Oauth2 is the recommended mode, it allows to get much information thanks to the AADSTS error code.
This module allows to enumerate users and bruteforce / spray passwords. Currently NTLM and basic authentication is supported
Enumeration is made with authentication requests. Authentication for a non-existent user will take longer than for a valid user. At first, the average response time for an invalid user will be calculated and then the response time for each authentication request will be compared.
Please note that no account locking mechanism can be implemented because no information about it is returned.
This modules allows to enumeration users through the search features.
By default, an organization is reachable from another organization. Information can be retrieved such as first name, last name, presence status, out of office message,.... If no message is sent, the targeted user will not know that they have been searched. This can be useful to stealthily validate a list of target email addresses, detect out of office users,...
SMTP servers can be vulnerable to a user enumeration weakness. Three differents techniques allows the user enumeration. The keyword RCPT TO, VRFY and EXPN. This module find the MX for the specified domain and by default will test the three methods to find valid users.
- https://github.com/busterb/msmailprobe
- https://github.com/0xZDH/o365spray/
- https://github.com/xFreed0m/ADFSpray/
- https://github.com/m8r0wn/CrossLinked
- https://github.com/cytopia/smtp-user-enum
- https://github.com/ropnop/kerbrute
- https://github.com/leechristensen/tgscrack
- https://github.com/ropnop/go-windapsearch
- https://github.com/go-ldap/ldap
- https://github.com/hirochachacha/go-smb2
- https://github.com/jcmturner/gokrb5
- ... and a lot more