T1087-001-linux-本地账户发现
来自ATT&CK的描述
攻击者可能会尝试获取本地系统帐户的列表。此信息可以帮助攻击者确定系统上存在哪些本地帐户,以帮助后续行为。
命令如net user和net localgroup的的净效用和id和groups在Mac OS和Linux可以列出本地用户和组。在Linux上,也可以通过使用/etc/passwd文件来枚举本地用户。
在Linux上,可以通过使用/etc/passwd世界可读的文件来枚举本地用户。在mac中,除文件外,此相同文件仅用于单用户模式/etc/master.passwd。此外,可以通过groups和id命令枚举组。
测试案例
枚举所有账户:cat /etc/passwd
查看sudoers文件:cat /etc/sudoers
查看UID为0的帐户:username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username
显示用户帐户是否有远程记录器:lastlog
枚举用户和组:groups 或者 id
检测日志
bash历史记录
测试复现
枚举所有账户:cat /etc/passwd
查看sudoers文件:cat /etc/sudoers (需要root权限)
查看UID为0的帐户:username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username
显示用户帐户是否有远程记录器:lastlog
枚举用户和组:groups(需要root权限) 或者 id
测试留痕
root@icbc:~/Desktop$ history
385 cat /etc/passwd
386 cat /etc/sudoers
387 username=$(echo $HOME | awk -F'/' '{print $3}') && lsof -u $username
388 lastlog
389 groups
390 id
391 history
检测规则/思路
splunk规则
index=linux sourcetype=bash_history cat /etc/passwd | table host,user_name,bash_command
index=linux sourcetype=bash_history cat /etc/sudoers | table host,user_name,bash_command
index=linux sourcetype=bash_history "lsof -u *" | table host,user_name,bash_command
index=linux sourcetype=bash_history lastlog | table host,user_name,bash_command
index=linux sourcetype=bash_history group OR id | table host,user_name,bash_command
建议
值得注意的是:应该结合上下文中查看研判,而不是单独依靠关键词检测,因为系统管理员经常使用这些命令进行合法操作。
参考推荐
MITRE-ATT&CK-T1087-001
https://attack.mitre.org/techniques/T1087/001
linux UID详解
https://blog.csdn.net/jthivan/article/details/50530955
linux ID查看命令详解