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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WLT3Serial — WebLogic T3 (및 T3S) 리스너를 위한 네이티브 Java 기반 역직렬화 익스플로잇. | Kitploit
도구/GitHubGitHub/bort-millipede/wlt3serial
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingArchived
GitHubbort-millipede/wlt3serial

WLT3Serial

WebLogic T3 (및 T3S) 리스너를 위한 네이티브 Java 기반 역직렬화 익스플로잇.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

WLT3Serial

WebLogic T3 (및 T3S) 리스너를 위한 네이티브 Java 기반 역직렬화 익스플로잇 (여기에 개요 설명: 여기). 타사 종속성 ysoserial 및 wlthint3client가 필요합니다.

JavaUnserializeExploits weblogic.py 및 loubia와 비교한 장점/단점

장점:

  • T3/T3S 통신을 Python 스크립트로 일회성 패킷 캡처를 사용하는 대신 Java로 네이티브하게 처리하므로 (대부분의 익스플로잇 방법에 대해) 모든 WebLogic 서버 버전에서 작동해야 합니다.
  • ysoserial을 통해 매 실행마다 직접 객체 페이로드를 생성하므로 (일회성 생성 페이로드 대신) 최신 ysoserial 버전의 모든 객체 페이로드 유형을 지원합니다.
  • 실행 중 발생하는 모든 예외를 구문 분석하고 (요청 시 표시) 이러한 예외를 기반으로 실행의 전체 결과를 명확하게 알려줍니다. 여기에는 익스플로잇이 성공한 것으로 보이는 경우, SSL/TLS 통신 실패, 대상 WebLogic 서버가 익스플로잇에 대해 패치된 것으로 보이는 경우 사용자에게 알리는 것이 포함됩니다.
  • 페이로드 전달을 위한 여러 가지 방법을 제공합니다 (JavaUnserialize weblogic.py/loubia 및 ysoserial.exploit.RMIRegistryExploit과 유사).

단점:

  • Oracle 라이선스 조건으로 인해 제가 배포할 수 없는 .jar 파일(wlthint3client.jar)에 의존하며, Oracle 사용자 이름/비밀번호로만 다운로드할 수 있습니다. 이로 인해 사용자가 Oracle에서 필요한 wlthint3client.jar 파일을 직접 얻어야 하는 "thin" 릴리스 jar만 배포할 수 있습니다.
  • JVM이 초기화 중에 클래스를 로드하는 방식의 문제로 인해 전체 올인원 실행 가능 WLT3Serial jar 파일(WLT3Serial-full-[VERSION].jar) 사용이 더 이상 지원되지 않습니다. 따라서 WLT3Serial은 전체 기능을 정상적으로 실행하기 위해 여러 파일(아래에 설명)이 필요합니다.

빌드

Oracle Java 7 또는 8이 필요합니다. 다른 Java 공급업체(OpenJDK 또는 IBM JRE 등)에서는 테스트되지 않았으므로 이러한 환경에 대한 지원을 보장하지 않습니다. Java 9 또는 10으로도 빌드할 수 있지만, 이에 대한 지원을 보장하지 않습니다.

WLT3Serial은 Gradle 빌드 자동화 시스템을 통해 빌드됩니다. 빌드에는 Gradle 4를 사용해야 합니다. 다른 버전은 일부 테스트되었습니다(개발 섹션 참조).

타사 종속성:

  • ysoserial - 객체 역직렬화 페이로드 생성용; v0.0.5 이상 필요 (사용자가 미리 제공하지 않으면 Gradle이 자동으로 다운로드합니다.)
  • wlthint3client - T3/T3S 연결 네이티브 처리용; 사용자가 직접 제공해야 함 (Oracle 라이선스 조건 때문): wls1036_dev.zip 파일( /wlserver/server/lib/wlthint3client.jar에 위치)의 일부로 다운로드 가능 (Oracle 사용자 이름/비밀번호 필요)하며, 이 페이지("Oracle WebLogic Server 10.3.6" 섹션의 "Mac OSX, Windows 및 Linux용 Zip 배포")에서 호스팅됩니다.

절차:

  1. WLT3Serial 저장소를 클론합니다. git clone https://github.com/Bort-Millipede/WLT3Serial.git
  2. 터미널을 열고 클론된 저장소로 이동합니다.
  3. 다음 명령어를 실행하여 사전 빌드 디렉토리를 생성합니다: gradle clean prepare
  4. 다운로드한 wlthint3client.jar 파일을 build/libs/ 디렉토리에 넣습니다.
  5. (선택사항) 선호하는 ysoserial 버전(v0.0.5 이상)을 사용하는 경우, ysoserial.jar 파일을 build/libs/ 디렉토리에 넣습니다.
  6. WLT3Serial jar 파일( build/libs/WLT3Serial-[VERSION].jar에 위치)을 빌드하려면 다음 명령어를 실행합니다: gradle build -x test

사용법

Oracle Java 7 또는 8이 필요합니다. 다른 Java 공급업체(OpenJDK 또는 IBM JRE 등)에서는 테스트되지 않았으므로 이러한 환경에 대한 지원을 보장하지 않습니다. Java 9 또는 10으로도 사용할 수 있지만, 이에 대한 지원을 보장하지 않습니다.

Property (기본값), Bind 또는 WLBind 익스플로잇 방법을 사용하는 경우, WLT3Serial은 다음과 같이 실행되어야 합니다 (java '-cp' 파라미터 값에 주의):

  • *nix에서: java -cp /path/to/ysoserial.jar:/path/to/wlthint3client.jar:/path/to/WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • Windows에서: java -cp \path\to\ysoserial.jar;\path\to\wlthint3client.jar;\path\to\WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

CustomClass 익스플로잇 방법을 사용하는 경우, WLT3Serial은 다음과 같이 실행되어야 합니다 (java '-cp' 파라미터 값에 주의):

  • *nix에서: java -cp /path/to/ysoserial.jar:/path/to/WLT3Serial-[VERSION].jar:/path/to/wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • Windows에서: java -cp \path\to\ysoserial.jar;\path\to\WLT3Serial-[VERSION].jar;\path\to\wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

다음은 내장 도움말 메뉴의 출력입니다:

root@kitploit:~
Usage: WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

Options:
	--help				print usage (you're lookin at it)

	--verbose			Verbose output (full thrown exception output; Disabled by default)

	--method=EXPLOIT_METHOD		Exploit Method for delivering generated ysoserial payload
		Exploit Methods:
			Property	Send ysoserial payload as connection environment property value (Default; via javax.naming.Context.lookup(), variation of ysoserial.exploit.RMIRegistryExploit)
			Bind		Send ysoserial payload as object to bind to name (via javax.naming.Context.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			WLBind		Send ysoserial payload as WebLogic RMI object to bind to name (via weblogic.rmi.Naming.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			CustomClass	Send ysoserial payload during T3/T3S connection initialization (via custom weblogic.rjvm.ClassTableEntry class, similar to JavaUnserializeExploits weblogic.py)

	--t3s[=PROTOCOL]		Use T3S (transport-encrypted) connection (Disabled by default)
		Protocols:
			TLSv1.2
			TLSv1.1
			TLSv1 (Default)
			SSLv3
			SSLv2 (SSLv2Hello handshake only, then fallback to SSLv3 for communication: this is an Oracle Java limitation, not a WLT3Serial limitation)


Available Payload Types (WebLogic is usually vulnerable to "CommonsCollectionsX" and "JRMPClientX" types):
	(available payloads listed here)

익스플로잇 방법 참고 사항

Property, Bind 및 WLBind 방법은 모두 매우 유사합니다. 대상 시스템이 이러한 방법 중 하나로 익스플로잇될 수 없다면, 다른 방법으로도 익스플로잇될 수 없을 가능성이 높습니다. CustomClass 방법은 다른 방법들과 완전히 다릅니다.

Property/Bind/WLBind 방법의 장점/단점:

  • 장점: 이러한 방법은 wlthint3client.jar 파일의 사용 가능한 WebLogic 클래스/메서드를 통해 익스플로잇을 시도하므로 T3/T3S 통신이 네이티브하게 처리되고, 사용자가 익스플로잇 가능성과 성공을 판단하는 데 도움이 되는 의미 있는 출력(예외, 스택 추적 등)이 생성됩니다.
  • 단점: 작성 시점 기준으로 Oracle은 이러한 방법을 사용하는 대부분(전부는 아니더라도)의 익스플로잇 방식을 패치했습니다.

CustomClass 방법의 장점/단점:

  • 장점: 이 방법은 위의 방법들과 다른 WebLogic 클래스로더(추가 취약 라이브러리가 포함됨)를 공격하므로 더 새로운 성공적인 익스플로잇 방식을 사용할 수 있습니다.
  • 단점: 이 방법이 페이로드를 대상 서버에 전달하는 방식(기본적으로 네이티브 T3/T3S 통신을 손상시킴)의 특성상 사용자가 익스플로잇 가능성과 성공을 판단하는 데 도움이 되는 의미 있는 출력(예외, 스택 추적 등)을 생성할 수 없습니다.

T3S 연결 참고 사항

사용자는 sslscan 또는 nmap ssl-enum-ciphers 스크립트로 대상 서비스를 스캔하여 지원되는 프로토콜을 확인하는 것이 좋습니다. 이렇게 하면 WLT3Serial 실행 시 --t3s 옵션을 세밀하게 조정할 수 있습니다.

개발

JavaUnserializeExploits weblogic.py 및 loubia 익스플로잇을 개선하기 위해 WLT3Serial은 WebLogic T3/T3S 서비스에 연결하기 위해 다음 리소스를 사용하여 Java로 개발되었습니다:

  • https://docs.oracle.com/cd/E21764_01/web.1111/e13717/wlthint3client.htm
  • https://docs.oracle.com/cd/E13222_01/wls/docs92/jndi/jndi.html
  • https://docs.oracle.com/cd/E11035_01/wls100/javadocs/weblogic/rmi/Naming.html
  • https://gist.github.com/fkrauthan/ac8624466a4dee4fd02f

T3 연결을 Java에서 네이티브하게 처리하고, 사용자에게 유용한 명령 출력을 제공하기 위한 적절한 오류 처리에 중점을 두었습니다.

WLT3Serial은 다음 소프트웨어 버전을 사용하여 개발되었습니다:

  • Oracle Java 8 Update 191
  • Oracle Java 7 Update 80 및 Oracle Java 7 Update 17
  • Gradle 4.10.2, 3.2 (일부 테스트), 2.10 (일부 테스트), 1.4 (일부 테스트)

개발 중 라이브 테스트는 다음 WebLogic Server 버전에 대해 수행되었습니다:

  • 10.3.6
  • 12.1.3
  • 12.2.1.1 (특정 페이로드 유형 및 익스플로잇 방법에만 취약)
  • 12.2.1.2 (특정 페이로드 유형 및 익스플로잇 방법에만 취약)
  • 12.2.1.3 (부분적으로 취약)

면책 조항

개발자는 이 소프트웨어를 무료로 제공하며 어떠한 보증도 하지 않으며, 이 소프트웨어를 사용하여 시스템에 발생한 모든 손해에 대해 책임을 지지 않습니다. 소프트웨어를 사용하는 동안 모든 지역, 주 및 연방 법률을 준수하는 것은 사용자의 책임입니다.

저작권

(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)

도구 다운로드