GLPI - Security Audit
GLPI (Gestionnaire Libre de Parc Informatique) is an open-source IT asset management and ticketing solution that can be vulnerable to various attacks. As a central component of man
Overview
GLPI (Gestionnaire Libre de Parc Informatique) is an open-source IT asset management and ticketing solution that can be vulnerable to various attacks. As a central component of many IT infrastructures, it's a frequent target for attackers, with numerous CVEs regularly published.
This guide is based on IT-Connect's article on GLPI security auditing by Mickael Dorigny.
Security Importance
GLPI represents a significant security risk for several reasons:
- Sensitive data storage: User tickets often contain technical information, login credentials, and sometimes passwords in plaintext
- IT infrastructure mapping: Provides attackers with a complete inventory of networks, servers, workstations, and installed software
- Authentication information: Contains sensitive configuration parameters including Active Directory credentials and email service authentication
- Large attack surface: Used by most IT users, making it an ideal vector for widespread attacks
GLPwnMe: GLPI Audit Tool
GLPwnMe is a Python-based security tool developed and maintained by Orange Cyberdefense teams. It offers various options for auditing and exploiting vulnerabilities in GLPI instances.
Installation
On a Linux system with Python and pipx:
# Install glpwnme via pipx
pipx install git+https://github.com/Orange-Cyberdefense/glpwnmebash
Basic Security Audit
Check for CVEs (unauthenticated)
# Run a complete safe scan
glpwnme -t http://glpi-address --check-allbash
This command performs:
- Version and operating system identification
- Installation directory detection
- Known CVE verification based on version
- Checks that can be performed without credentials
Default Credentials Check
# Check for default GLPI credentials
glpwnme -t http://glpi-address --run --exploit DEFAULT_PASSWORD_CHECKbash
This verifies if default accounts (glpi, tech, normal, post-only) are still active with their original passwords.
Authenticated Audit
# Perform an authenticated audit
glpwnme -t http://glpi-address --check-all -u username -p passwordbash
This approach detects vulnerabilities that require authentication to be exploited.
Comprehensive Audit (potentially intrusive)
# Without authentication
glpwnme -t http://glpi-address --check-all --no-opsec
# With admin account
glpwnme -t http://glpi-address --check-all -u username -p password --no-opsecbash
The --no-opsec option enables more thorough checks but may cause changes to the GLPI instance (file uploads, user creation, etc.).
Exploit Documentation
# Display documentation for an exploit
glpwnme -t http://glpi-address -e <EXPLOIT_NAME> --infosbash
Vulnerability Exploitation Example
# Exploit a vulnerability
glpwnme -t http://glpi-address --run -e CVE_XXXX_XXXXX -u username -p passwordbash
For example, CVE-2024-27937 allows any authenticated user to read any field in the GLPI database, including passwords and sensitive parameters.
Security Best Practices
To effectively secure your GLPI instance:
- Regular updates: Apply security patches promptly for GLPI, its plugins, and the host operating system
- HTTPS: Use TLS encryption for all communications
- Change default credentials: Modify all default accounts after deployment or updates
- Web Application Firewall: Deploy WAF protection to identify and block basic malicious requests
- Logging: Configure log forwarding to a SIEM/XDR for early detection
- Regular audits: Use GLPwnMe periodically to verify vulnerability absence
- Access restrictions: Limit administrative rights and review permissions regularly
- Data cleanup: Regularly purge old tickets and their attachments
- User awareness: Train users on security best practices, especially password strength and not sharing sensitive information in tickets