
Apache Axis1.4 원격 명령 실행 취약점 이용 도구 - CVE-2019-0227, 서비스명 및 Webshell 파일명 무작위화 지원.
Apache Axis1.4에는 원격 명령 실행 취약점(CVE-2019-0227)이 존재합니다. enableRemoteAdmin 속성이 true로 설정된 경우, 공격자는 AdminService 인터페이스를 통해 악성 서비스를 배포하여 대상 서버에서 임의의 시스템 명령을 실행할 수 있습니다.
영향받는 버전: Apache Axis ≤ 1.4
발생 조건: enableRemoteAdmin이 true로 설정됨
| 방법 | 스크립트 | 원리 | 파일 쓰기 여부 | 은밀성 |
|---|---|---|---|---|
| 방법 1: JSP Webshell | jsp-webshell/axis_exp.py | LogHandler를 통해 JSP Webshell 작성 | ✅ 파일 생성 | 낮음 |
| 방법 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 요청으로 명령을 실행합니다.
악성 서비스 배포 → LogHandler가 shell.jsp 작성 → 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
## 📝 하위 디렉터리 README (freemarker-exec/README.md)
Axis AdminService를 통해 freemarker.template.utility.Execute 클래스를 가리키는 서비스를 배포하고, 해당 클래스의 exec 메서드를 직접 호출하여 시스템 명령을 실행합니다. 파일을 전혀 작성하지 않습니다.
Execute 서비스 배포 → exec 메서드 직접 호출 → 명령 실행 결과가 SOAP 응답으로 반환
WEB-INF/lib/ 디렉터리에 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 인증 비밀번호 |
| 매개변수 | 설명 |
|---|
-u, --url | 대상 Axis 서비스 주소 |
-c, --command | 단일 명령 실행 |
-i, --interactive | 대화형 셸 모드 |
-U, --username | Basic 인증 사용자 이름 |
-P, --password | Basic 인증 비밀번호 |