跳转至

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查看命令详解

https://blog.csdn.net/qq_21808961/article/details/78532487