卡巴斯基——Energetic Bear/Crouching Yeti APT分析報告
Energetic Bear/Crouching Yeti是至少從2010年以來就廣為人知的APT組織。該組織傾向於攻擊不同的公司,主要關注能源和工業部門。被Energetic Bear/Crouching Yeti襲擊的公司分布在全球範圍內,尤其集中在歐洲和美國。2016-2017年,土耳其公司遭受襲擊的數量大幅增加。
該組織的主要策略包括發送帶有惡意文檔的釣魚郵件以及感染各種伺服器。該組織使用一些受感染的伺服器作為輔助目的——託管工具和日誌。其他伺服器用於水坑攻擊,以達到該組織的主要目標。
該組織針對美國機構的近期活動在US-CERT諮詢中進行了討論,該諮詢(英國國家網路安全中心聯合提供)將該組織與俄羅斯政府聯繫起來。
Kaspersky Lab ICS CERT的這份報告介紹了已識別的伺服器的信息,這些伺服器已被該組織感染和使用。該報告還包括對2016年和2017年初Energetic Bear組織攻陷的幾家網路伺服器的分析結果。
一、受害者
下表顯示了各國受感染伺服器的分布(基於網站內容的語言和/或感染時租用伺服器的公司的來源),公司類型和每台伺服器在整體攻擊中的角色。威脅攻擊者襲擊的受害者不只限於工業公司。
表1. 感染的伺服器
二、水坑
所有的waterhole伺服器都會受到相同模式的感染:使用以下文件將鏈接注入網頁或JS文件:file:/IP/filename.png。
注入鏈接
該鏈接用於發起對圖像的請求,因此用戶通過SMB協議連接到遠程伺服器。在這種攻擊類型中,攻擊者的目的是從會話中提取以下數據:
·用戶IP
·用戶名
·域名
·用戶密碼的NTLM Hash
應該注意的是,使用該鏈接請求的圖像並非物理上位於遠程伺服器上。
三、掃描資源
在某些情況下,受影響的伺服器用於對其他資源進行攻擊。在分析被感染伺服器的過程中,許多網站和伺服器確認被攻擊者使用各種工具掃描,如nmap,dirsearch,sqlmap等(工具描述在下面提供)。
表2. 從受感染伺服器之一掃描的資源
表中的站點和伺服器似乎沒有任何共同之處。儘管掃描的伺服器不一定看起來像潛在的最終受害者,但攻擊者很可能會掃描不同的資源以找到可用於建立攻擊者工具的立足點並隨後開展攻擊的伺服器。
部分被掃描的網站可能是攻擊者感興趣的候選主水坑資源。
在某些情況下,掃描的域名託管在同一台伺服器上;有時攻擊者會瀏覽與給定IP匹配的可能域名列表。
在大多數情況下,未發現多次破壞特定目標的企圖,除Bump平台網站,航班跟蹤伺服器和土耳其連鎖酒店的伺服器。
四、使用的工具
(一)實用程序
在受感染伺服器上發現的實用程序是開源代碼並可在GitHub上公開獲得:
·Nmap – 一個用於分析網路並驗證其安全性的開源實用程序。
·Dirsearch — 一個簡單的命令行工具,用於對網站上的目錄和文件進行暴力攻擊(執行窮舉搜索)。
·Sqlmap — 一個開源滲透測試工具,它可以自動識別和利用SQL注入漏洞並接管資料庫伺服器。
·Sublist3r — 一個用Python編寫的工具,用於枚舉網站子域。該工具使用開源智能(OSINT)。Sublist3r支持許多不同的搜索引擎,例如Google,Yahoo,Bing,Baidu和Ask,以及Netcraft,Virustotal,ThreatCrowd,DNSdumpster和ReverseDNS等服務。該工具可幫助滲透測試人員收集關於他們正在研究的域的子域的信息。
·Wpscan — 一個使用黑箱原理的WordPress漏洞掃描程序,即無需訪問源代碼即可工作。它可以用來掃描遠程WordPress網站來尋找是否存在安全問題。
·Impacket — 一個用於處理SMBTrap所需的各種網路協議的工具集。
·SMBTrap — 一個用於記錄通過SMB協議接收數據(用戶IP地址,用戶名,域名,口令NTLM Hash)的工具。
·Commix — 一個用Python編寫的漏洞搜索、命令注入和利用工具。
·Subbrute – 可用於Python和Windows的子域枚舉工具,它使用公開名稱解析器作為代理,不會將流量發送到目標DNS伺服器。
·PHPMailer – 郵件發送工具
另外,在其中一台伺服器上找到一個名為ftpChecker.py的自定義Python腳本。該腳本旨在從傳入列表中檢查FTP主機。
(二)惡意php文件
在nginx文件夾下的不同目錄以及攻擊者在受感染的Web伺服器上創建的工作目錄中發現以下惡意PHP文件:
在上表中:
·Web shell是一個允許遠程管理機器的腳本。
·WSO是一個流行的Web shell和文件管理器(Orb Web Shell),它可以偽裝成包含隱藏登錄表單的錯誤頁面。它在GitHub上可用:https://github.com/wso-shell/WSO
發現的兩個PHP腳本ini.php和mysql.php包含一個與以下垃圾郵件腳本連接的WSO shell:
https://github.com/bediger4000/php-malware-analysis/tree/master/db-config.php
所有找到的腳本都被混淆了。
wso shell – error_log.php
去混淆後的wso shell – error_log.php
其中在伺服器上找到了一個有兩個不同名稱(proxy87.php和code29.php)的web shell被找到。它使用eval函數執行HTTP cookie或POST請求發送的命令:
Web shell – proxy87.php
去混淆後的web shell – proxy87.php
(三)修改sshd
在分析伺服器的過程中發現了一個帶有預裝後門的修改過的sshd。
例如,在GitHub上提供了一些與後門相似的用於sshd的後門程序:
https://github.com/jivoi/openssh-backdoor-kit
可以在任何具有二進位兼容性的操作系統上編譯。
由於在受感染的伺服器上用修改的sshd文件替換了原始sshd文件,攻擊者可以使用「主密碼」在遠程伺服器上獲得授權,同時留下最少痕迹(與通過ssh連接的普通用戶相比)。
另外,修改的sshd會記錄所有合法的ssh連接(不能使用"主密碼"連接),包括連接時間,帳戶名稱和密碼。該日誌已加密,位於/var/tmp/.pipe.sock。
解密位於/var/tmp/.pipe.sock的日誌
五、攻擊者在受感染伺服器上的活動
除了使用受感染伺服器掃描大量資源外,還識別出其他攻擊活動。
獲得訪問伺服器許可權後,攻擊者在不同的時間安裝了他們需要的工具。具體而言,在其中一台伺服器上標識了以下用於第三方安裝的命令:
·apt install traceroute
·apt-get install nmap
·apt-get install screen
·git clone https://github.com/sqlmapproject/sqlmap.git
此外,攻擊者安裝了需要的Python包和工具。
下圖顯示了一個月內對其中一台受感染伺服器進行非法登錄的次數。攻擊者在工作日檢查了smbtrap日誌文件。在大多數情況下,他們大概在每天的同一時間登錄到伺服器,可能是在早上:
非法登錄伺服器的時間(GMT+3)
另外,在分析過程中,確定了一個活動進程,該進程利用SQL注入並從其中一個受害者的資料庫中收集數據。
六、總結
受感染伺服器的分析結果和攻擊者在這些伺服器上的活動如下:
1.除極少數情況外,該組織的成員使用公開的工具。該組織使用公共可用的實用程序進行攻擊,使攻擊溯源的任務變得非常困難。
2.當攻擊者想要建立一個立足點以發展針對目標設施的進一步攻擊時,互聯網上任何有漏洞的伺服器都會引起攻擊者的興趣。
3.在觀察到的大多數情況下,該組織執行與搜索漏洞、獲得各種主機上的持久性以及竊取認證數據相關的任務。
4.受害者的多樣性可能表明攻擊者利益的多樣性。
5.在某種程度上可以肯定地說,該組織為其利益服務或從其外部的客戶處獲得訂單、執行初始數據收集、竊取認證數據並獲得適合攻擊的資源以便持續發展。
附錄I – IOC
文件名和路徑
工具*
/usr/lib/libng/ftpChecker.py
/usr/bin/nmap/
/usr/lib/libng/dirsearch/
/usr/share/python2.7/dirsearch/
/usr/lib/libng/SMBTrap/
/usr/lib/libng/commix/
/usr/lib/libng/subbrute-master/
/usr/share/python2.7/sqlmap/
/usr/lib/libng/sqlmap-dev/
/usr/lib/libng/wpscan/
/usr/share/python2.7/wpscan/
/usr/share/python2.7/Sublist3r/
*Note that these tools can also be used by other threat actors.
PHP文件:
/usr/share/python2.7/sma.php
/usr/share/python2.7/theme.php
/root/theme.php
/usr/lib/libng/media.php
日誌
/var/tmp/.pipe.sock
PHP文件hash
Yara規則
rule Backdoored_ssh
附錄II – Shell腳本來檢查伺服器上的工具
Debian
cd /tmpworkdir=428c5fcf495396df04a459e317b70ca2mkdir $workdircd $workdirfind / -type d -iname smbtrap > find-smbtrap.txt 2>/dev/nullfind / -type d -iname dirsearch > find-dirsearch.txt 2>/dev/nullfind / -type d -iname nmap > find-nmap.txt 2>/dev/nullfind / -type d -iname wpscan > find-wpscan.txt 2>/dev/nullfind / -type d -iname sublist3r > find-sublist3r.txt 2>/dev/nulldpkg -l | grep -E (impacket|pcapy|nmap) > dpkg-grep.txtcp /var/lib/dpkg/info/openssh-server.md5sums . #retrieve initial hash for sshdmd5sum /usr/sbin/sshd > sshd.md5sum #calculate actual hash for sshd
Centos
cd /tmpworkdir=428c5fcf495396df04a459e317b70ca2mkdir $workdircd $workdirfind / -type d -iname smbtrap > find-smbtrap.txt 2>/dev/nullfind / -type d -iname dirsearch > find-dirsearch.txt 2>/dev/nullfind / -type d -iname nmap > find-nmap.txt 2>/dev/nullfind / -type d -iname wpscan > find-wpscan.txt 2>/dev/nullfind / -type d -iname sublist3r > find-sublist3r.txt 2>/dev/nullrpm -qa | grep -E (impacket|pcapy|nmap) > rpm-grep.txtrpm -qa –dump | grep ssh > rpm-qa-dump.txt #retrieve initial hash for sshdsha256sum /usr/sbin/sshd > sshd.sha256sum #calculate actual sha256 hash for sshdmd5sum /usr/sbin/sshd > sshd.md5sum #calculate actual md5 hash for sshd
※如何使用Hex-Rays API有效解決問題
※解讀黑客如何通過電線從隔離計算機上竊取數據
TAG:嘶吼RoarTalk |