
patch-manager
Ubuntu CVE-2019-14287 Patch Manager ist ein GUI-basiertes Laborwerkzeug zum Prüfen, Abschwächen und Verifizieren des Schutzes gegen CVE-2019-14287, eine Sudo-Sicherheitslücke zur Privilegieneskalation.
Dieses Projekt wurde für eine Ubuntu-19.04-amd64-Laborumgebung entwickelt.
CVE-2019-14287 betrifft ältere sudo-Versionen. Die Sicherheitslücke erlaubt es einem Benutzer mit einer sudoers-Regel, die root ausschließt, die Einschränkung mithilfe einer manipulierten numerischen Benutzer-ID wie -1 oder 4294967295 zu umgehen.
Beispiel für eine riskante sudoers-Regel:
someuser ALL=(ALL, !root) /usr/bin/vim
In verwundbaren sudo-Versionen könnte dies ausgenutzt werden mit:
sudo -u#-1 id -u
sudo -u#4294967295 id -u
Wenn die Ausgabe 0 ist, wurde der Befehl als root ausgeführt.
Die Anwendung bietet zwei Schutzebenen:
Echter sudo-Paketpatch
Das Werkzeug kann den offiziellen Paket-Upgrade-Befehl ausführen, um sudo zu aktualisieren.
Entschärfung der sudoers-Konfiguration
Das Werkzeug durchsucht sudoers-Dateien und deaktiviert riskante Regeln, die !root oder !#0 enthalten.
/etc/sudoers durchsuchen/etc/sudoers.d/* durchsuchen!root! root!#0! #0visudo -cf validierenubuntu-cve-2019-14287-patch-manager/
├── app.py
├── scripts/
│ ├── check_system.sh
│ ├── apply_real_sudo_patch.sh
│ └── verify_patch.sh
├── assets/
├── README.md
├── .gitignore
├── logs/ generated at runtime
├── backups/ generated at runtime
├── package/ generated during .deb build
└── dist/ generated .deb output
Abhängigkeiten installieren:
sudo apt update
sudo apt install -y python3 python3-tk sudo
Wechseln Sie in den Projektordner:
cd ~/projects/ubuntu-cve-2019-14287-patch-manager
Führen Sie die Anwendung aus:
sudo python3 app.py
Die Anwendung muss als root ausgeführt werden, da sie Zugriff auf Folgendes benötigt:
/etc/sudoers
/etc/sudoers.d/*
Aus dem Projektwurzelverzeichnis:
mkdir -p package/DEBIAN
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager
mkdir -p package/usr/local/bin
mkdir -p dist
Anwendungsdateien kopieren:
cp app.py package/usr/share/ubuntu-cve-2019-14287-patch-manager/
cp -r scripts package/usr/share/ubuntu-cve-2019-14287-patch-manager/
cp -r assets package/usr/share/ubuntu-cve-2019-14287-patch-manager/
Laufzeitordner erstellen:
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager/logs
mkdir -p package/usr/share/ubuntu-cve-2019-14287-patch-manager/backups
Starter erstellen:
cat > package/usr/local/bin/ubuntu-cve-2019-14287-patch-manager <<'LAUNCHER'
#!/bin/bash
cd /usr/share/ubuntu-cve-2019-14287-patch-manager
exec python3 app.py
LAUNCHER
chmod +x package/usr/local/bin/ubuntu-cve-2019-14287-patch-manager
Debian-Control-Datei erstellen:
cat > package/DEBIAN/control <<'CONTROL'
Package: ubuntu-cve-2019-14287-patch-manager
Version: 1.0.0
Section: utils
Priority: optional
Architecture: all
Depends: python3, python3-tk, sudo
Maintainer: Hivin Manju Sri <[email protected]>
Description: GUI patch manager for CVE-2019-14287 sudo vulnerability
A lab GUI tool for checking sudo version, applying the sudo package patch,
scanning sudoers files for risky !root or !#0 rules, disabling selected risky
rules safely, and verifying CVE-2019-14287 protection.
CONTROL
Bauen:
chmod 755 package/DEBIAN
chmod 644 package/DEBIAN/control
dpkg-deb --build package dist/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
Installieren:
sudo dpkg -i dist/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
sudo apt --fix-broken install -y
Nach der Installation ausführen:
sudo ubuntu-cve-2019-14287-patch-manager
Check SystemApply Real Sudo PatchScan Sudoers RulesDisable Selected Risky RulesVerify ProtectionDie Anwendung erkennt jede aktive sudoers-Zeile, die Folgendes enthält:
!root
! root
!#0
! #0
Sie ist nicht von einem festen Benutzernamen oder Befehlspfad abhängig.
Beispiel für riskante Regeln:
testone ALL=(ALL, !root) /usr/bin/vim
john ALL=(ALL,!root) /bin/bash
admin ALL=(ALL, !#0) /usr/bin/python3
%developers ALL=(ALL,!#0) /any/path
Wenn deaktiviert, wird eine riskante Regel zu:
# DISABLED by Ubuntu CVE-2019-14287 Patch Manager: john ALL=(ALL,!#0) /bin/bash
Die Anwendung verifiziert den Schutz mithilfe von:
sudo -u#-1 id -u
sudo -u#4294967295 id -u
Geschütztes Ergebnis:
Die Befehle schlagen fehl oder geben nicht die UID 0 zurück.
Verwundbares Ergebnis:
0
Dieses Werkzeug ist für den Labor- und Bildungsbereich gedacht.
Für Produktionssysteme:
(ALL, !root).visudo.cd ~/projects/ubuntu-cve-2019-14287-patch-manager
cat >> README.md <<'EOF'
Ubuntu 19.04 hat das Lebensende erreicht, daher stellen die Standard-Paketquellen möglicherweise keine erforderlichen Abhängigkeiten wie python3-tk mehr bereit. Wenn der Installer mit einem ähnlichen Fehler wie dem folgenden fehlschlägt:
Depends: python3-tk but it is not installable
Unable to correct problems, you have held broken packages
verwenden Sie die folgenden Wiederherstellungsschritte.
sudo dpkg --remove ubuntu-cve-2019-14287-patch-manager 2>/dev/null || true
sudo apt --fix-broken install -y
sudo dpkg --configure -a
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date +%F_%H-%M-%S)
sudo sed -i -E 's|http://([a-z]{2}\.)?archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list
sudo sed -i -E 's|http://security.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list
sudo apt update
sudo apt install -y python3-tk
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo apt install -y ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
Falls apt install die lokale .deb-Datei unter Ubuntu 19.04 nicht akzeptiert, verwenden Sie:
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo dpkg -i ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb && sudo apt --fix-broken install -y
sudo ubuntu-cve-2019-14287-patch-manager
Diese Änderung der Repositorien ist hauptsächlich für alte Ubuntu-19.04-Labormaschinen erforderlich. Verwenden Sie für Produktionssysteme eine derzeit unterstützte Ubuntu-Version, anstatt sich auf Repositorien am Ende ihrer Lebensdauer zu verlassen.
Nach dem Hochladen der .deb-Datei in den neuesten GitHub-Release können Benutzer die Anwendung mit diesem Befehl installieren:
wget -O ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb "https://github.com/HivinManjuSri/ubuntu-cve-2019-14287-patch-manager/releases/latest/download/ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb" && sudo apt install -y ./ubuntu-cve-2019-14287-patch-manager_1.0.0_all.deb
Hivin Manju Sri