Darkleech木馬升級:可能是最精良的apache后門
近日,Sucuri和ESET公司聯(lián)合研究,發(fā)現近期Blackhole在攻擊中使用了一種“精良”的apache后門—— Linux/Cdorked.A。
Linux/Cdorked.A后門除了修改了守護進程“httpd”外,不會在硬盤中留下任何線索,所有有關后門的信息都存放在服務器的共享內存中。攻擊者會通過HTTP請求來發(fā)送后門的配置信息,不但會經過混淆處理,而且不會被常規(guī)的apache日志記錄,從而減少被傳統(tǒng)監(jiān)控工具發(fā)現的可能。而配置文件信息也是存放在內存中,這意味著后門的C&C服務器信息不可見,使得取證分析更加復雜。
當訪問被攻陷的的web服務器時,它不是簡單的就被重定向到惡意網站,還會設置一個cookie,從而第二次訪問的時候不會再重定向到惡意網站。以此減少被懷疑的風險。而且cookie對管理頁面進行特別設置,不感染管理頁面,后門會檢查訪問者的referrer字段,這個技術手段跟Darkleech apache后門很類似,而事實上正是Sucuri和ESET持續(xù)跟蹤Darkleech木馬時發(fā)現了它有了新的這個變化。
兩個安全公司在最近幾個月里,發(fā)現了一些基于cPanel的受感染服務器上,惡意軟件手法不再是增加模塊,或者修改apache配置文件,而是開始替換Apache的守護進程文件httpd,此前安全公司Sucuri曾經建議使用“rpm -Va”、“rpm -qf”或“dpkg -S”來檢查Apache的模塊是否被修改了。然而cPanel把apache安裝在/usr/local/apache上,不可以用上面提到的包管理工具命令來進行檢查Apache二進制文件httpd是否被修改了。Sucuri公司跟蹤到此類型攻擊,把被修改的httpd提交給了ESET進行分析。下面請看詳細的分析。
共享內存存儲木馬有關信息:
分析被修改的httpd發(fā)現,它會創(chuàng)建大約6M的共享內存,以此來存放配置信息,這個共享內存不但可以被所有Apache的子進程使用,而且設計者沒有做限制,任何其他進程都可以訪問到。如下圖所示:
通過HTTP請求控制木馬:
攻擊者有兩種方法控制被植入后門的服務器。一個是通過反向連接的shell,一個是通過特殊的命令。兩個方法都是通過HTTP請求來觸發(fā)。
通過特殊的HTTP GET請求,就可以觸發(fā)部署了反向連接后門的http服務器。請求是一個特制的地址,包括查詢特定格式的字符串,包括hostname和端口。而請求者的ip是用于解密請求字符串的key(一個4byte的XOR key)。另外,在http頭信息里X-Real-IP或X-Forwarded-For字段內的ip地址會覆蓋作為異或key(XOR key)的客戶端IP地址。因此研究人員可以偽造一個 X-Real-IP頭信息,作為解密的key如 “\x00\x00\x00\x00” key 。最后,所有請求查詢的字符串都會經過hex編碼才發(fā)送給感染木馬的web服務器。
而由于httpd被hook了,所以這個被修改過的apache是不會把這種請求記錄到log文件中。
重定向:
當用戶訪問受感染的web服務器,被重定向的時候,服務器的惡意軟件會在返回的重定向內容中加入經過base64編碼的信息,比如原始訪問的URL,原始請求是否來自javascript等,服務器(正在存放惡意內容的服務器)以此判斷可提供相應的payload。例如:
Location: hxxp://dcb84fc82e1f7b01. xxxxxxgsm.be/index.php?j=anM9MSZudmNiaW11Zj1jY3
Zja3FqdSZ0aW1lPTEzMDQxNjE4MjctMzYwNDUzNjUwJnNyYz0yMzImc3VybD13d3cuaW5mZWN0ZWRzZXJ2
ZXIuY29tJnNwb3J0PTgwJmtleT0xM0Q5MDk1MCZzdXJpPS9mb3J1bS93Y2YvanMvM3JkUGFydHkvcHJvdG
9hY3Vsb3VzLjEuOC4yLm1pbi5qcw==
經過解碼后:
js=1&nvcbimuf=ccvckqju&time=1304161827-360453650&src=232&surl=www.infectedserver
.com&sport=80&key=13D90950&suri=/forum/wcf/js/3rdParty/protoaculous.1.8.2.min.js
其中surl參數顯示來自哪個受感染的主機。suri顯示原始的請求來源。
Sucuri公司的分析發(fā)現會被重定向到一些色情網站,有一些則重定向到Blackhole Exploit Kit。
設置cookie:
當重定向后,就會給來訪的客戶端設置一個cookie,以保證不會再被重定向。而疑似為管理頁面的請求也會設置cookie,不會被重定向。木馬會檢查URL,server name,referer,如果有關管理的字符串,就不會發(fā)送惡意內容到管理者的website。這些字符串包括:‘*adm*’, ‘*webmaster*’, ‘*submit*’, ‘*stat*’, ‘*mrtg*’, ‘*webmin*’, ‘*cpanel*’, ‘*memb*’, ‘*bucks*’, ‘*bill*’, ‘*host*’, ‘*secur*’, ‘*support*’。如下圖所示:
應對:
ESET寫了個腳本,讓系統(tǒng)管理員可以檢查共享內存的內容,以及把內容導出到一個文件中。因為病毒作者沒有限制共享內存的訪問,任何進程都可對木馬創(chuàng)建的那段共享內存進行訪問。
Sucuri則建議檢查httpd的所在目錄是否存在“open_tty”。
# grep -r open_tty /usr/local/apache/
如果在apache二進制文件中發(fā)現了open_tty則很可能已經收感染,因為原始的apache二進制文件不會調用open_tty。
目前調查仍未能清楚這些web服務器是如何被入侵的。有可能是SSH暴力破解。