Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2020-25637-libvirt-double-free — Doppelte Freigabe | Kitploit
Tools/GitHubGitHub/brahmiboudjema/cve-2020-25637-libvirt-double-free
SchwachstellenanalyseExploitationDebuggerLernen & BildungBinary-ExploitationLabs & Praxis
GitHubbrahmiboudjema/cve-2020-25637-libvirt-double-free

CVE-2020-25637-libvirt-double-free

Doppelte Freigabe

Repository anzeigen
4vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

root@kitploit:~
 CVE-2020-25637 
                                    

root@kitploit:~
*** Beschreibung ***

Ein Problem mit doppelter Speicherfreigabe (double free) ist in der libvirt-API in Versionen vor 6.8.0 aufgetreten, die für die Abfrage von Informationen über die Netzwerkschnittstellen einer laufenden QEMU-Domäne zuständig ist. Diese Sicherheitslücke betrifft den Zugriffskontrolltreiber polkit. Insbesondere könnten Clients, die sich mit Lese-/Schreibberechtigung mit eingeschränkten ACL-Berechtigungen mit dem Socket verbinden, diese Schwachstelle ausnutzen, um den libvirt-Daemon zum Absturz zu bringen, was zu einem Denial-of-Service führt oder möglicherweise ihre Privilegien auf dem System erhöht. Die größte Bedrohung durch diese Schwachstelle betrifft die Vertraulichkeit und Integrität der Daten sowie die Verfügbarkeit des Systems.

Die größte Bedrohung durch diese Schwachstelle betrifft:

  • Vertraulichkeit
  • Datenintegrität
  • Systemverfügbarkeit.

Die Bewertungen der Schwachstelle:

  • moderate Schwachstelle von RedHat mit einem Durchschnittswert von 6.4

    • Angriffsvektor = Lokal
    • Komplexität = Niedrig
    • Authentifizierung = Keine
  • moderate Schwachstelle von NVD mit einem Durchschnittswert von 6.7

    • Angriffsvektor = Lokal
    • Komplexität = Hoch
    • Authentifizierung = Keine

root@kitploit:~
*** Verschiedene Tools und wichtige Voraussetzungen zur Ausnutzung dieser Schwachstelle ***
    

  1. Installation von qemu-kvm und libvirt:

Zunächst ist es notwendig, die Kompatibilität unseres Betriebssystems zu überprüfen. Dazu führen Sie diesen Befehl aus:

root@kitploit:~
 grep -E -c "vmx|svm" /proc/cpuinfo

Wenn der Befehl ok zurückgibt, können Sie mit der Installation fortfahren:

root@kitploit:~
sudo apt-get -y install qemu-kvm libvirt-bin virt-top outils-libguestfs virtinst bridge-utils

2) Installation von Vagrant:

Um Vagrant zu installieren, führen Sie diesen Befehl aus:

root@kitploit:~
sudo apt -y install vagrant

Sobald Sie Vagrant und KVM installiert haben, sollten Sie bereit sein, ein libvirt-Plugin zu installieren, um mit der Verwaltung von KVM-VMs mit Vagrant beginnen zu können.

root@kitploit:~
vagrant plugin install vagrant-libvirt

Sie können bestätigen, dass das Plugin installiert wurde

root@kitploit:~
vagrant plugin list

3) Vagrant-Box:

Es ist möglich, ein direkt von Vagrant bereitgestelltes Template zu verwenden. In unserem Fall verwenden wir ein Ubuntu 20.04-Image.

Um unser Image zur Vagrant-Box hinzuzufügen, führen Sie diesen Befehl aus:

root@kitploit:~
vagrant box add generic / ubuntu1804 --provider = libvirt

Um die Liste der lokal vorhandenen Boxen anzuzeigen:

root@kitploit:~
vagrant box list

4) Debugging

Zwei Debugging-Möglichkeiten

  • GDB: Falls das Tool in Ihrem Betriebssystem nicht verfügbar ist, führen Sie diesen Befehl aus:

    root@kitploit:~
    sudo apt-get install gdb
    
  • Valgrind: Falls das Tool in Ihrem Betriebssystem nicht verfügbar ist, führen Sie diesen Befehl aus:

    root@kitploit:~
    sudo apt-get install valgrind
    

root@kitploit:~
*** Code-Ausführung ***

Starten einer VM mit Vagrant:

root@kitploit:~
vagrant up

Zunächst die Bibliothek installieren:

root@kitploit:~
sudo apt-get install -y libvirt-dev

Kompilierung:

root@kitploit:~
gcc -g -Wall info1.c -o info1 -lvirt

Code-Ausführung:

root@kitploit:~
./info1 qemu:///system vagrant-vms_ubuntu-01

Ausführung mit Debugging:

root@kitploit:~
valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes --verbose --log-file=valgrind-out.txt ./info1 qemu:///system vagrant-vms_ubuntu-01

root@kitploit:~
*** Die Schwachstelle aktivieren ***

Bevor Sie die Schwachstelle aktivieren, ist es wichtig, die Funktionsweise der problematischen Funktion in libvirt zu verstehen.

Angenommen, ein Angreifer kann die Nutzung eines freigegebenen Speicherbereichs über qemuAgentGetInterfaces () von libvirt auslösen, insbesondere im Speicherbereich der Variable ifname, um einen Denial-of-Service zu verursachen und möglicherweise Code auszuführen.

  • Diese Funktion verarbeitet eine Liste der Schnittstellen einer laufenden Domäne mit ihren IP- und MAC-Adressen.
  • Anschließend gibt sie die Anzahl der Schnittstellen bei Erfolg zurück, andernfalls -1 bei einem Fehler.

Der erwartete Moment ist gekommen

Sobald die Vagrant-Datei gestartet ist, muss der Code info1.c in einer virtuellen Maschine ausgeführt werden, die selbst von Qemu/KVM gestartet wird. Also VMs in einer VM, d.h. den Code in der von Vagrant erstellten VM ausführen.


root@kitploit:~
*** Behebung dieser Schwachstelle ***

Es reicht aus, die Variable ifname in der Funktion qemuAgentGetInterfaces() von libvirt auf null zu setzen, d.h. die Variable ifname muss für jede Schnittstelle freigegeben werden.


root@kitploit:~
*** Demonstration ***

Sie finden eine einfache Demonstration des Problems (Double Free) in der PowerPoint-Datei.


root@kitploit:~
*** Wichtig ***

Das Projekt wurde aufgrund der Komplexität der Schwachstelle und der Hardware sowie des Zeitmangels nicht abgeschlossen.

Tool herunterladen