在很多Linux平台的应急响应过程中,发现很多系统都有ssh后门。虽然ssh后门已经存在了10
多年,但是没有公开的信息来解释如何分析它们。所以大部分安全人员找不到ssh后门,不知道怎
么分析,导致ssh后门在系统中长期存在。ssh后门的常见功能是记录登录到主机的所有帐户登陆
密码,并添加通用登陆密码。有的会将账号密码传输到攻击者获得的服务器,攻击者可以利用后
门或者获得的登陆密码直接进入系统。比如你在无人之地,就会长期入侵目标系统,归属于Linu
xAPT攻击技术。这篇文章将解释分析ssh后门的两种方法和ssh后门对应的四个黑客团伙,为你
提供一些分析思路。别的sshwrapper后门和ssh软链接后门都非常简单,这篇文章就不多提了。
有兴趣可以自己做。
ssh通用登陆密码后门的实现原理。
ssh程序代码是openssh-server软件库中的可执行文件之一,归属于服务器程序。默认情况下,
它打开22个端口,向外界提供ssh服务。鉴于openssh-server是一个开源代码,所有人都能够更
改和重新编译其源代码,这为攻击者植入恶意代码块提供了技术上的可能性。因而,除了ssh程
序代码之外,openssh-client安装包中的ssh命令经常被攻击者篡改,用于窃取目标机器与别的
外部机器连接的账户登陆密码等信息。
它打开22个端口,向外界提供ssh服务。鉴于openssh-server是一个开源代码,所有人都能够更
改和重新编译其源代码,这为攻击者植入恶意代码块提供了技术上的可能性。因而,除了ssh程
序代码之外,openssh-client安装包中的ssh命令经常被攻击者篡改,用于窃取目标机器与别的
外部机器连接的账户登陆密码等信息。
1.通用登陆密码认证功能示例。以下是openssh-5.10p1在互联网中的1个后门代码。在登陆密码
认证文件auth-pastwpd.c中的auth_pastword函数中添加1个判断条件,如果登陆密码等于SECR
ETPW(这个值可以自己配置),那么返回secret_ok=1,表示登陆密码认证成功,那么下一步的
登陆密码判断过程就不进行了,相当于添加了1个通用登陆密码。ssh登陆密码后门主要有两种
检查方法,静态检查和动态检查。静态检查包括ssh程序代码完整性检查和可执行文件特征检查
。yara规则可以用来收集已知的ssh后门程序特征,然后可以扫描系统中的ssh可执行文件。被
篡改的ssh程序代码逆向分析比较麻烦,动态检查需要一些关于Linux系统调用的知识,适合ss
h加密和shell不能直接逆向分析的情况。
认证文件auth-pastwpd.c中的auth_pastword函数中添加1个判断条件,如果登陆密码等于SECR
ETPW(这个值可以自己配置),那么返回secret_ok=1,表示登陆密码认证成功,那么下一步的
登陆密码判断过程就不进行了,相当于添加了1个通用登陆密码。ssh登陆密码后门主要有两种
检查方法,静态检查和动态检查。静态检查包括ssh程序代码完整性检查和可执行文件特征检查
。yara规则可以用来收集已知的ssh后门程序特征,然后可以扫描系统中的ssh可执行文件。被
篡改的ssh程序代码逆向分析比较麻烦,动态检查需要一些关于Linux系统调用的知识,适合ss
h加密和shell不能直接逆向分析的情况。