pOCを使用したvCenter6.5-7.0 RCE脆弱性の再現(CVE-2021-21972)

目次

1.脆弱性の紹介

2.影響の範囲

3.脆弱性の再発

4.バグ修正

V.脆弱性POC


1.脆弱性の紹介

       vSphereは、ESXiやvCenter Serverなどの一連のソフトウェアを含む、VMwareが立ち上げた仮想化プラットフォームスイートです。その中でも、vCenter ServerはESXiのコントロールセンターであり、データセンター内のすべてのvSphereホストと仮想マシンを単一のコントロールポイントから均一に管理できます。

       2021年2月24日、一部のプラットフォームは、VMwareがvCenter Serverセキュリティアップデートを正式にリリースしたことを検出しました。これにより、vCenter ServerプラグインvRealizeOperations(vROps)のvCenterClient(HTML5)のリモートコード実行の脆弱性(CVE-2021-21972)が修正されます。vSphere Client(HTML5)には、vCenterServerプラグインにリモートでコードが実行される脆弱性があります。不正な攻撃者は、ポート443を開くサーバーを介して、慎重に作成されたリクエストをvCenter Serverに送信し、Webシェルに書き込み、サーバーを制御する可能性があります。

2.影響の範囲

  • vmware:vcenter_server7.0バージョン7.0U1cより前
  • U3lより前のvmware:vcenter_server6.7バージョン
  • U3nより前のvmware:vcenter_server6.5バージョン

3.脆弱性の再発

1.脆弱性環境の構築

環境は非常に複雑なので、ここには誰もいません。https//www.o2oxy.cn/3127.htmlを参照してください (詳細に書かれていますが、インストール中にはまだ多くの問題があります)

起動後の環境は以下のようになります

2.脆弱性の悪用

脆弱性のアドレスは次のとおりです。

https:// ip / ui / vropspluginui / rest / services / updateova

アクセス、405を返す場合は、抜け穴があることを意味します

fofa title = "+ ID_VC_Welcome +"

4.バグ修正

安全なバージョンにアップグレードする

  • vCenter Server7.0バージョンから7.0.U1cにアップグレードします
  • vCenter Server6.7バージョンから6.7.U3lにアップグレードします
  • vCenter Server6.5から6.5U3nへのアップグレード

V.脆弱性POC

import requests
from requests.packages import urllib3
urllib3.disable_warnings()
import argparse
import os
def url():
		parser = argparse.ArgumentParser(description='vCenter 6.5-7.0 RCE 漏洞复现(CVE-2021-21972)POC')
		parser.add_argument('target_url',type=str,help='The target address,example: https://192.168.140.153:4445')
		args = parser.parse_args() 
		global url
		url = args.target_url
		if url.startswith('http://') or url.startswith('https://'):
			pass
		else:
			print('[-]Please include http:// or https:// in the URL!!')
			os._exit(0)
		if url.endswith('/'):
			url = url[:-1]
		print('[+]author:chenchen')
		print("[-]目标地址:",url)
		print("[-]正在执行漏洞检测...")
		return url
def poc():
	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',
		"Content-Type":"application/x-www-form-urlencoded"
	}
	url_v = url + '/ui/vropspluginui/rest/services/updateova'
	try:
		code = requests.get(url=url_v,headers=headers,timeout=4,verify=False).status_code
		print('status_code:',code)
		if code == 405:
			print('[+]漏洞存在')
		else:
			print('[-]漏洞不存在')
	except:
		print('[-]发生错误')
if __name__ == '__main__':
	url()
	poc()

          -心、住む場所がなければ、どこにでもさまよう

 

おすすめ

転載: blog.csdn.net/qq_44159028/article/details/114659086