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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2018-1335 — CENG 325 - 정보 보안 및 프라이버시 원리 | Kitploit
도구/GitHubGitHub/canumay/cve-2018-1335
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & Education
GitHubcanumay/cve-2018-1335

cve-2018-1335

CENG 325 - 정보 보안 및 프라이버시 원리

저장소 보기
15년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

앙카라 일디림 베야지트 대학교 컴퓨터공학과

CENG 325 - 정보보안 및 프라이버시 원리

CENG201 OOP 프로젝트

그룹 멤버

@canumay @aslihann @ezgigucuyener @mburakdonmez

참고 자료

NVD - CVE-2018-1335

Exploit DB - Apache Tika-server < 1.18 - 명령 주입

Rhino Security Labs - CVE-2018-1335 악용: Apache Tika의 명령 주입

Metasploit

면책 조항

익스플로잇 코드는 사이버 보안 연구원 David Yesland @Daveysec이 작성했으며 교육 목적으로만 사용해야 합니다.

마일스톤 1 – 취약점 연구

a. 취약점 간략 설명

  • 유형: 명령 주입
  • 영향 요소: CVSS 영향 메트릭 기준 취약점의 영향 점수는 5.9입니다. 기밀성, 무결성, 가용성 모두 높음입니다.
  • 심각도 점수: CVSS 기본 점수 메트릭 기준 취약점의 심각도 점수는 8.1입니다. (CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • 취약한 애플리케이션의 영향을 받는 버전: Apache Tika 버전 1.7 ~ 1.17
  • 취약점 유형이 의미하는 바
    • 취약점 유형을 소개하고 다른 유형의 취약점과 다른 점을 논의하시오 취약점 유형은 명령 주입입니다. 취약한 애플리케이션이 사용자 데이터를 시스템 셸에 전달할 때 적절한 검증 없이 전달하여 악성 코드가 실행될 수 있기 때문입니다. 이 취약점을 코드 주입과 비교하면 몇 가지 차이점을 확인할 수 있습니다. 예를 들어, 코드 주입은 공격자가 애플리케이션에 의해 실행되는 자신의 코드를 사용할 수 있게 합니다. 그러나 명령 주입에서는 공격자가 애플리케이션의 기능을 수정하여 사용자가 시스템 명령을 실행할 수 있게 합니다.

b. 취약점 악용 방법

  • 취약점 트리거 후 실행할 수 있는 공격 유형: 취약점을 트리거한 후 쉽게 리버스 셸을 만들 수 있으며, 해당 셸을 통해 Apache Tika 서버를 실행하는 사용자에게 허용된 모든 명령을 실행할 수 있습니다.

  • 공격자가 취약점을 사용하여 취약한 시스템을 어떻게 악용하는가: 먼저 공격자는 서버가 취약한 버전의 Apache Tika 서버를 실행 중인지 확인해야 합니다. 그런 다음 공격자는 악성 HTTP 헤더와 Jscript 코드를 생성한 후, 취약한 HTTP 엔드포인트에 PUT 요청을 보내 Apache Tika 서버가 자체 기능을 사용하여 악성 코드를 실행하도록 합니다.

  • 취약점이 익스플로잇 킷에서 사용되는가: 예, 이 취약점은 Metasploit 익스플로잇 킷에서 사용 가능합니다.

마일스톤 2 – 익스플로잇 코드

a. 취약점을 악용하는 익스플로잇 코드를 찾거나 제작하시오

b. 취약한 코드 부분을 강조하고 왜 취약한지 설명하시오

Apache Tika 서버는 이미지에 OCR을 실행하기 위해 사용자가 요청에 제공한 값을 사용하여 실행할 명령을 구성합니다. 이를 통해 사용자가 명령을 조작하고 악성 코드를 실행할 수 있습니다. 이 경우 config.getTesseractPath()는 X-Tika-OCRTesseractPath 헤더를 가져와 명령의 앞부분에 추가합니다. 비록 사용자가 제공한 경로 끝에 tesseract.exe 문자열이 추가되지만, 사용자는 자신의 경로를 "(큰따옴표)로 감싸서 뒤따르는 tesseract.exe 문자열을 무시할 수 있습니다. 이를 통해 사용자는 서버에서 모든 실행 파일을 실행할 수 있습니다.

구성된 명령:

root@kitploit:~
"calc.exe"tesseract.exe C:\Users\Test\AppData\Local\Temp\apache-tika3299124493942985299.tmp C:\Users\Test\AppData\Local\Temp\apache-tika7317860646082338953.tmp -l eng -psm 1 txt -c preserve_interword_spaces=0

Windows에 내장된 CScript.exe는 스크립트 파일 이름을 인수로 받아 실행하고 다른 인수는 무시하는 스크립트 언어입니다. cscript용으로 작성된 스크립트를 제공하면 서버에서 실행할 수 있습니다. Apache Tika 서버는 본문에 제공된 이미지를 임시 파일로 저장하여 OCR을 실행하므로, 이미지 바이너리 대신 문자열을 직접 보내면 해당 문자열이 바이너리인 것처럼 저장됩니다. 그러나 Tika 서버는 jp2 파일 형식을 제외하고는 바이너리가 이미지인지 확인하며, jp2의 경우 직접 저장됩니다. 이 파일은 cscript 실행 파일의 인수로 전달됩니다. 하지만 파일 확장자는 여전히 .tmp이지만, 실제로는 .JScript 또는 .vbs가 필요합니다. 이 문제를 해결하기 위해 cscript에게 파일 확장자에 관계없이 JScript를 실행하도록 지시할 수 있습니다. Tika 서버는 또한 사용자가 X-Tika-OCRLanguage 헤더로 보낸 config.getPageSetMode() 값을 명령에 전달합니다. 이 값을 //E:Jscript 문자열로 변경하면 cscript가 파일 확장자에 관계없이 스크립트를 JScript로 실행합니다. 마지막으로 본문에 제공된 문자열은 실행될 페이로드가 되며, 이를 통해 시스템 셸에 완전히 액세스할 수 있는 다른 콘솔을 호출할 수도 있습니다.

최종 구성 명령:

root@kitploit:~
"cscript.exe"tesseract.exe C:\Users\Test\AppData\Local\Temp\apache-tika3299124493942985299.tmp C:\Users\Test\AppData\Local\Temp\apache-tika7317860646082338953.tmp -l //E:Jscript -psm 1 txt -c preserve_interword_spaces=0

JScript에서 셸을 호출하는 간단한 페이로드:

root@kitploit:~
var oShell = WScript.CreateObject("WScript.Shell");
var oExec = oShell.Exec('cmd /c calc.exe');

마일스톤 3 – 실행

a. 찾거나 제작한 익스플로잇 코드를 실행하시오:

대상 가상 머신 내에서 Apache Tika Server 1.17이 실행 중입니다.

호스트 머신에서 IP "192.168.233.167"로 서버에 접근할 수 있습니다.

그런 다음 페이로드 "calc.exe"와 함께 제작된 익스플로잇 코드를 실행하여 대상 머신 내에서 계산기를 실행했으며, 이를 통해 대상 머신 내에서 모든 악성 코드를 실행할 수 있는 능력이 있음을 보여줍니다. 또한 리버스 셸의 힘으로 대상 머신에서 대화형 셸 세션을 생성할 수도 있습니다.

b. 익스플로잇 코드 실행 결과는 무엇인가:

위에서 설명한 대로 이 익스플로잇을 사용하여 기본적으로 대상 머신 내에서 계산기 프로그램을 실행하지만, 원격 코드 실행 능력을 사용하여 Apache Tika Server를 실행하는 사용자의 권한으로 대상 머신에서 원하는 모든 작업을 수행할 수 있습니다. 예를 들어, 사용자 파일에 접근하고, 사용자 활동을 모니터링하며, 웹캠이 있는 경우 스크린샷을 찍거나 사진을 촬영할 수도 있습니다.

c. 취약점이 실제로 존재한다는 것을 어떻게 알 수 있는가:

이 취약점은 NIST와 같은 신뢰할 수 있는 출처에 의해 이미 보고되었으며, Apache 자체에서 확인되고 패치되었습니다. 그러나 이를 증명하기 위해 metasploit을 사용하여 또 다른 PoC를 수행할 수 있습니다.

먼저 설치된 버전이 취약한 버전임을 확인했습니다.

버전을 확인한 후, 올바른 IP와 포트로 metasploit 세션을 구성하고 "check" 명령을 실행하여 대상이 취약한지 확인할 수 있습니다.

마지막으로 "exploit" 명령을 실행하여 익스플로잇을 시작하고 셸에서 "dir"을 입력하여 셸이 활성화되었는지 확인할 수 있습니다. 여기서 유일한 제한은 Apache Tika 서버를 실행하는 사용자의 권한입니다.

도구 다운로드