T1552.003: Bash History

Adversaries may search the bash command history on compromised systems for insecurely stored credentials. Bash keeps track of the commands users type on the command-line with the "history" utility. Once a user logs out, the history is flushed to the user’s .bash_history file. For each user, this file resides at the same location: ~/.bash_history. Typically, this file keeps track of the user’s last 500 commands. Users often type usernames and passwords on the command-line as parameters to programs, which then get saved to this file when they log out. Adversaries can abuse this by looking through the file for potential credentials.

Positive Technologies products that cover the technique

MaxPatrol SIEM knowledge base

unix_mitre_attck_cred_access: PT-CR-1691: Unix_History_File_Read: Unix OS files containing command history were read

Detection

IDDS0022Data source and componentFile: File AccessDescription

Monitoring when the user's .bash_history is read can help alert to suspicious activity.

IDDS0017Data source and componentCommand: Command ExecutionDescription

While users do typically rely on their history of commands, they often access this history through other utilities like "history" instead of commands like cat ~/.bash_history.

Mitigation

IDM1028NameOperating System ConfigurationDescription

There are multiple methods of preventing a user's command history from being flushed to their .bash_history file, including use of the following commands: set +o history and set -o history to start logging again; unset HISTFILE being added to a user's .bash_rc file; and ln -s /dev/null ~/.bash_history to write commands to /dev/nullinstead.