
Apache Axis1.4 инструмент эксплуатации уязвимости удаленного выполнения команд - CVE-2019-0227, поддерживает рандомизацию имен служб и имен файлов веб-оболочки
В Apache Axis1.4 существует уязвимость удаленного выполнения команд (CVE-2019-0227). Когда свойство enableRemoteAdmin установлено в true, злоумышленник может развернуть вредоносный сервис через интерфейс AdminService, что позволяет выполнять произвольные системные команды на целевом сервере.
Затронутые версии: Apache Axis ≤ 1.4
Условие эксплуатации: enableRemoteAdmin установлено в true
| Способ | Скрипт | Принцип | Создание файла | Скрытность |
|---|
| Способ 1: JSP Webshell | jsp-webshell/axis_exp.py | Запись JSP Webshell через LogHandler | ✅ Создает файл | Низкая |
| Способ 2: Freemarker прямое выполнение | freemarker-exec/axis_freemarker_exp.py | Прямой вызов класса Freemarker Execute для выполнения команд | ❌ Не создает файл | Высокая |
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
Данный инструмент предназначен только для исследований безопасности и авторизованного тестирования. Несанкционированное использование данного инструмента для атак на целевые системы является незаконным. Пользователь несет всю юридическую ответственность.
MIT License
## 📝 README подкаталога (jsp-webshell/README.md)
Через Axis AdminService развертывается вредоносный сервис, с помощью LogHandler записывается JSP Webshell, затем через GET-запрос выполняются команды.
Развертывание вредоносного сервиса → Запись shell.jsp через LogHandler → Выполнение команды через GET-запрос
# Выполнение одной команды
python3 axis_exp.py -u http://localhost:8080/axis/ -c "whoami"
# Интерактивная оболочка
python3 axis_exp.py -u http://localhost:8080/axis/ -i
# С аутентификацией
python3 axis_exp.py -u http://localhost:8080/axis/ -U admin -P admin -i
| Параметр | Описание |
|---|---|
-u, --url | Адрес целевого Axis сервиса |
-c, --command | Выполнить одну команду |
-i, --interactive | Режим интерактивной оболочки |
-U, --username | Имя пользователя для Basic-аутентификации |
-P, --password | Пароль для Basic-аутентификации |
## 📝 README подкаталога (freemarker-exec/README.md)
Через Axis AdminService развертывается сервис, указывающий на класс freemarker.template.utility.Execute, и напрямую вызывается его метод exec для выполнения системных команд, без записи каких-либо файлов.
Развертывание сервиса Execute → Прямой вызов метода exec → Результат выполнения команды возвращается через SOAP-ответ
WEB-INF/lib/ целевой Axis среды должен присутствовать freemarker.jar (по умолчанию присутствует в Axis 1.4)# Выполнение одной команды
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -c "whoami"
# Интерактивная оболочка
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -i
# С аутентификацией
python3 axis_freemarker_exp.py -u http://localhost:8080/axis/ -U admin -P admin -i
| Параметр | Описание |
|---|---|
-u, --url | Адрес целевого Axis сервиса |
-c, --command | Выполнить одну команду |
-i, --interactive | Режим интерактивной оболочки |
-U, --username | Имя пользователя для Basic-аутентификации |
-P, --password | Пароль для Basic-аутентификации |