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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2015-8522.RCE — Tivoli FastBack Server (6.1.4)는 스택 기반 버퍼 오버플로우에 취약하여, 위협 행위자가 원격 TCP 연결을 통해 임의 코드 실행(ACE)을 달성할 수 있습니다. 이 리포지토리에 제공된 PoC는 이 취약점을 이용하여 리버스 셸을 구축합니다. | Kitploit
도구/GitHubGitHub/damariion/cve-2015-8522.rce
Exploit FrameworksVulnerability AnalysisExploitationReverse EngineeringShellcodePost-ExploitationPenetration TestingRemote Access ToolShellcode GenerationPayload DevelopmentBinary ExploitationArchived
4개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubdamariion/cve-2015-8522.rce

CVE-2015-8522.RCE

Tivoli FastBack Server (6.1.4)는 스택 기반 버퍼 오버플로우에 취약하여, 위협 행위자가 원격 TCP 연결을 통해 임의 코드 실행(ACE)을 달성할 수 있습니다. 이 리포지토리에 제공된 PoC는 이 취약점을 이용하여 리버스 셸을 구축합니다.

저장소 보기웹사이트

CVE-2015-8522

IBM Tivoli FastBack Server (6.1.4) 애플리케이션은 스택 기반 버퍼 오버플로우 취약점이 존재하여, 위협 행위자가 원격 TCP 연결을 통해 임의 코드 실행(ACE)을 달성할 수 있습니다. 이 저장소에서 제공하는 PoC는 이 취약점을 활용하여 대상에서 CMD.exe를 실행하고, 들어오는 연결을 처리하여 리버스 셸을 구축합니다.

예시

OS BUILD ARCH

[!NOTE] 이 PoC는 이전에 공개된 PoC를 기반으로 하며, ASLR 우회 기능이 추가되었고, 일반적인 소프트웨어 공학 패러다임을 따르는 개선된 아키텍처로 확장되었습니다. 권장되는 다중 파일 구조가 모든 경우에 적합하지 않을 수 있으므로, 단일 파일 버전의 익스플로잇이 assets/single.py에 제공됩니다.

취약점

통신

PoC는 TCP 포트 11460을 통해 취약한 애플리케이션과 통신합니다. 이 포트로 전송되는 데이터는 아래에 정의된 구조를 따라야 합니다.

root@kitploit:~
0x00000123 0x00000000 0x00000000 0x00000000
0x00000ABC 0x00000AAA 0x00000111 0x00000BBB
0x00000222 0x00000CCC 0x00000333 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000

<buffer 1> ...
<buffer 2> ...
<buffer 3> ...

악용

위에서 언급한 패킷 구조를 사용하여 PoC는 명령 코드 0x534로 식별되는 _FXCLI_SetConfFileChunk 함수를 호출합니다. 여기에서 실행은 sscanf 호출로 이어지며, 이 함수의 인수는 적절한 검증 없이 버퍼 (1)에서 읽어옵니다. 정확히 0x118 바이트 블록을 제공하면 eip 포인터는 마지막 4바이트에 있는 값으로 덮어쓰여집니다.

우회 기법

주소 공간 레이아웃 무작위화 (ASLR)

ASLR을 우회하기 위해, PoC는 위에서 언급한 네트워크 패킷을 명령 코드 0x2000과 함께 전송하여 FXCLI_DebugDispatch 함수를 호출합니다. 이 함수는 첫 번째 버퍼를 읽어 특정 기능을 수행하며, 그 중 일부는 아래에 나열되어 있습니다.

  • DumpMemoryPools
  • ReadRepositorySectors
  • SymbolOperation

PoC는 SymbolOperation 기능을 사용하여 임의의 심볼을 입력하면 그 기본 주소를 반환합니다. 이를 통해 N98E_CRYPTO_get_new_lockid의 주소가 확인되고, 그 오프셋 (0x14E0)이 차감됩니다. 이로써 최종적으로 libeay32IBM019.dll의 기본 주소가 산출되며, 이는 다음 우회 단계에서 광범위하게 사용됩니다.

ROP를 구성하기 전에, 기본 주소에 잠재적인 문제 문자가 있는지 확인합니다. 만약 이러한 문자가 존재하면, 버퍼를 오버플로우하여 eip를 의미 없는 값인 0x90909090으로 덮어써서 취약한 애플리케이션을 다시 시작합니다. 그 후 애플리케이션이 다시 온라인 상태가 될 때까지 프로브하고 사이클을 반복합니다.

데이터 실행 방지 (DEP/NX)

이전 우회 단계에서 획득한 기본 주소를 사용하여 ROP 체인이 구축됩니다. 이 ROP 체인은 WriteProcessMemory를 호출하고, "invite" 내용을 libeay32IBM019.dll의 .text 섹션에 있는 코드 케이브로 복사합니다.

ROP 체인이 구성되면, (확인된) 모든 내용이 다시 한번 잠재적인 문제 문자에 대해 검사됩니다. 만약 문제 문자가 있으면, 이전 우회 단계에서와 같은 방식으로 애플리케이션이 다시 시작되고 사이클이 다시 시작됩니다.

[!NOTE] 우회 단계 중 무한 루프를 방지하기 위해, PoC는 최대 10분 동안 우회를 재시도하도록 구성되어 있습니다. 이 시간 이후에는 시간 초과에 도달하여 익스플로잇이 종료됩니다.

사후 익스플로잇

익스플로잇 완화 조치가 우회된 후, 일반적인 ACE가 이미 달성됩니다. 이 ACE는 특정 셸코드를 실행하는 데 사용되며, 셸코드는 CreateProcessA를 사용하여 CMD.exe 프로세스를 생성합니다. 이 호출의 인수는 모든 파이프(STDIN, STDOUT, STDERR)를 로컬호스트에 연결된 소켓 연결로 리디렉션하도록 설정됩니다.

동시에, PoC는 로컬호스트에서 리스너를 시작하여 원격 호스트로부터의 인바운드 요청을 잡고, 생성된 CMD.exe 프로세스와 상호작용하기 위한 매우 기본적인 CLI 인터페이스를 시작합니다.

시각화

root@kitploit:~
graph

    a("Start")
    b("Buffer overflow: crash")
    c("Buffer overflow: hijack")

    subgraph sa["ASLR Bypass"]

        a1["Resolve API with 'SymbolOperation'"]
        a2["Subtract offset (0x14E0)"]
        a3{"Base contains bad-chars?"}

        a1 -->| N98E_CRYPTO_get_new_lockid | a2
        a2 -->| libeay32IBM019.dll | a3

    end
    
    subgraph sb["DEP Bypass"]

        b1["Construct ROP"]
        b2{"ROP contains bad-chars?"}

        b3["Locate shellcode"]
        b4["Locate code-cave"]
        b5["Invoke WriteProcessMemory"]
        b6["Return to shellcode"]

        b1 --> b2
        b2 -->| no | b3
        b3 --> b4
        b4 --> b5
        b5 --> b6

    end

    subgraph sc["Reverse Shell"]
    
        c1["(Remote) connect to localhost"]
        c2["(Local) listen on available port"]
        c3["(Local) accept connection"]
        c4["(Local) loop over CMDs"]
    
        c1 --> c2
        c2 --> c3
        c3 --> c4

    end

    a3 -->| no  | sb
    
    b2 -->| yes | b
    a3 -->| yes | b
    
    a --> sa
    b --> a
    b6 --> c --> sc

도구 다운로드
필드설명대상
123크기패킷
ABC명령 코드함수
AAA, 111오프셋, 크기버퍼 (1)
BBB, 222오프셋, 크기버퍼 (2)
CCC, 333오프셋, 크기버퍼 (3)