Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Chrome-App-Bound-Encryption-Decryption — 직접적인 Syscall 기반 Reflective Process Hollowing을 통해 Chromium의 App-Bound Encryption을 우회합니다. Chrome, Edge, Brave 및 Avast에서 쿠키, 비밀번호, 결제 수단 및 토큰을 추출합니다 - 파일리스(fileless), 사용자 모드(user-mode), 관리자 권한 불필요. | Kitploit
도구/GitHubGitHub/xaitax/chrome-app-bound-encryption-decryption
Encryption/Decryption ToolsPassword AttacksExploitationData ExfiltrationInformation GatheringPost-ExploitationCryptographyRed Teaming

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
xaitax/chrome-app-bound-encryption-decryption

Chrome-App-Bound-Encryption-Decryption

직접적인 Syscall 기반 Reflective Process Hollowing을 통해 Chromium의 App-Bound Encryption을 우회합니다. Chrome, Edge, Brave 및 Avast에서 쿠키, 비밀번호, 결제 수단 및 토큰을 추출합니다 - 파일리스(fileless), 사용자 모드(user-mode), 관리자 권한 불필요.

저장소 보기웹사이트
1.7k292317개월 전Kitploit 검토 완료

ChromElevator (Chrome App-Bound Encryption Decryption)

🚀 개요

Build Status License Platform Languages Ask DeepWiki

Chromium의 **App-Bound Encryption(ABE)**을 완전히 인메모리로 우회하는 것을 입증하는 사후 침투 도구입니다. 이 프로젝트는 Direct Syscall 기반 Reflective Process Hollowing을 활용하여 정상적인 브라우저 프로세스를 일시 중단된 상태로 실행하고, 그 정체성과 보안 컨텍스트를 가로채기 위해 페이로드를 은밀하게 주입합니다. 이 Living-off-the-Land(LOTL) 기법은 브라우저 자체의 보안 모델을 무력화합니다. 파일리스 방식 덕분에 이 도구는 메모리에서만 완전히 작동하며, 사용자 영역 API 후킹을 우회하여 최신 Chromium 브라우저에서 민감한 사용자 데이터(쿠키, 비밀번호, 결제 정보)를 복호화하고 유출할 수 있습니다.

이 연구가 가치 있다고 생각하신다면 커피 한 잔을 사주시면 감사하겠습니다:
ko-fi

🛡️ 핵심 기술 기반

이 도구의 효과는 현대적이고 회피에 초점을 맞춘 기법들의 조합에서 비롯됩니다:

  • Direct Syscall 기반 회피: 표준 WinAPI 함수에 대한 EDR/AV 사용자 영역 후킹을 우회하기 위해 커널 함수를 직접 호출합니다. 엔진은 Hell's Gate 기법과 해시 기반 함수 매칭을 사용하여 런타임에 syscall 번호를 동적으로 해석합니다(바이너리에 평문 syscall 이름이 없음).

  • Direct Syscall 기반 프로세스 할로잉: 은밀한 프로세스 생성 및 주입 기법입니다. 트래픽이 많고 감시 가능성이 높은 프로세스에 주입하는 대신, 일시 중단된 상태의 새 호스트 프로세스를 생성합니다. 모든 메모리 조작이 프로세스가 정상적으로 실행되기 전에 발생하므로 탐지 가능성이 크게 줄어듭니다.

  • 파일리스 인메모리 페이로드: 페이로드 DLL은 대상 머신의 디스크에 기록되지 않습니다. 컴파일 타임 파생 키를 사용하는 ChaCha20 암호화 컴파일 타임 바이트 배열로 내장되어, 메모리에서 복호화된 후 리플렉티브하게 로드되어 포렌식 발자국을 최소화하고 정적 파일 기반 스캐너를 우회합니다.

  • Reflective DLL Injection(RDI): LoadLibrary를 사용하지 않고 메인 페이로드를 주입하는 은밀한 프로세스 주입 방법으로, 모듈 로드를 모니터링하는 탐지 메커니즘을 회피합니다. 자체 포함형 부트스트랩 로더는 PE 섹션을 매핑하고, 리로케이션을 수행하며, 메모리에서 임포트를 해석합니다.

  • 대상 컨텍스트 COM 호출: App-Bound Encryption을 무력화하는 핵심 요소입니다. 신뢰할 수 있는 브라우저 프로세스 내부에서 코드를 실행함으로써 해당 프로세스의 정체성과 보안 컨텍스트를 상속받아, ABE COM 서버에 정당한 호출처럼 보이는 요청을 보내고 경로 검증 보안 검사를 통과할 수 있습니다.

⚙️ 기능

핵심 기능

  • 🔓 쿠키, 비밀번호, 결제 수단, IBAN, Google OAuth 토큰의 전체 사용자 모드 복호화.
  • 📁 모든 사용자 프로필(Default, Profile 1 등)을 탐지하고 처리.
  • 📝 추출된 모든 데이터를 프로필별로 정리된 구조화된 JSON 파일로 내보내기.
  • 🔍 시스템 정보를 포함한 포괄적인 브라우저 핑거프린팅.

은밀성 및 회피

  • 🛡️ 파일리스 페이로드 전달: 암호화된 내장 페이로드의 인메모리 복호화 및 주입.
  • 🛡️ Direct Syscall 엔진: 모든 프로세스 작업에 대해 후킹된 사용자 영역 API를 회피하여 일반적인 엔드포인트 방어를 우회.
  • 🛡️ 해시 기반 Syscall 해석: 바이너리에 평문 Nt*/Zw* 함수 이름 없음 — 컴파일 타임 DJB2 해시 사용.
  • 🛡️ 컴파일 타임 키 파생: 빌드 메타데이터에서 파생된 암호화 키 — 빌드마다 고유.
  • 🛡️ PE 헤더 파괴: 주입 후 PE 헤더를 의사 난수 데이터로 덮어써 메모리 스캐너를 회피.
  • 🛡️ IPC 위장: 정상적인 브라우저 IPC 트래픽과 유사한 브라우저별 명명된 파이프 패턴.
  • 🤫 프로세스 할로잉: 페이로드를 위한 무해한 일시 중단 호스트 프로세스를 생성하여 감시 대상 프로세스에 대한 주입을 방지.
  • 👻 Reflective DLL Injection: 의심스러운 LoadLibrary 호출 없이 페이로드를 은밀하게 로드.
  • 🔒 비침습적 파일 잠금 우회: syscall 기반 핸들 복제를 사용하여 브라우저 프로세스를 종료하지 않고 잠긴 SQLite 데이터베이스에 접근. 전체 프로세스 종료를 위한 선택적 --kill 플래그 제공.
  • 💼 관리자 권한 불필요: 사용자 보안 컨텍스트 내에서 완전히 작동.

호환성 및 사용성

  • 🌐 Google Chrome, Brave, Edge, Avast Secure Browser에서 작동.
  • 💻 x64 및 ARM64 아키텍처를 기본 지원.
  • 🚀 독립 실행: 페이로드를 호스팅할 새 브라우저 프로세스를 자동으로 생성하며, 사전 실행 중인 인스턴스가 필요 없음.
  • 📁 추출 데이터의 출력 디렉터리를 사용자 지정 가능.
image

📦 지원 및 테스트된 버전

브라우저테스트된 버전 (x64 & ARM64)
Google Chrome144.0.7559.133
Google Chrome Beta145.0.7632.18
Brave1.86.148 (144.1.86.148)
Microsoft Edge145.0.3800.36
Avast Secure Browser143.0.33371.147

참고: Chrome/Brave/Edge 144+는 새로운 IElevator2 COM 인터페이스를 사용합니다. 이 도구는 가능한 경우 IElevator2를 자동으로 사용하고, 이전 버전에서는 IElevator로 대체합니다. Avast Secure Browser는 확장된 vtable(12개 메서드, 오프셋 104의 DecryptData)을 가진 사용자 지정 IElevatorChrome 인터페이스를 사용합니다.

🔍 기능 지원 매트릭스

이 매트릭스는 지원되는 각 브라우저의 추출 기능을 설명합니다.

기능Google ChromeMicrosoft EdgeBraveAvast Secure Browser
쿠키✅ ABE✅ ABE✅ ABE✅ ABE
비밀번호✅ ABE✅ ABE✅ ABE✅ ABE
결제 수단✅ ABE✅ ABE✅ ABE✅ ABE
IBAN✅ ABE❌ N/A✅ ABE✅ ABE
인증 토큰✅ Google❌ N/A❌ N/A❌ N/A

🔬 기술 워크플로

이 도구의 실행은 은밀성과 효율성에 중점을 두며, Direct Syscall 기반 Reflective Hollowing 프로세스를 중심으로 구축되었습니다. 이 접근 방식은 상위 수준 API 호출을 거의 수행하지 않고, 페이로드가 정상적이고 새로 생성된 브라우저 프로세스 내에서 작동하도록 보장합니다.

1단계: 인젝터 (chromelevator.exe)

  1. 사전 점검 및 초기화: 인젝터는 직접 syscall 엔진을 초기화하여 ntdll.dll을 동적으로 파싱하고, 해시 기반 매칭을 사용하여 syscall 번호(SSN)를 해석하고 커널 전환 가젯(syscall/ret 또는 svc/ret)을 찾습니다. --kill 플래그가 지정된 경우 NtGetNextProcess 및 NtTerminateProcess syscall을 사용하여 대상 브라우저의 실행 중인 모든 인스턴스를 종료하고 SQLite 데이터베이스의 파일 잠금을 해제합니다.
  2. 페이로드 준비: 컴파일 타임 파생 키가 있는 ChaCha20 암호화 컴파일 타임 바이트 배열로 내장된 핵심 페이로드 DLL은 완전히 메모리 내에서 복호화됩니다.
  3. 프로세스 할로잉: 기존 프로세스를 대상으로 하는 대신 인젝터는 CreateProcessW를 사용하여 CREATE_SUSPENDED 상태로 대상 브라우저의 새 인스턴스를 생성합니다. 이 깨끗하고 일시 중단된 프로세스가 페이로드의 호스트 역할을 합니다.
  4. Syscall을 통한 Reflective 주입: 직접 syscall 엔진을 사용하여 인젝터는 일시 중단된 프로세스에 대해 일련의 은밀한 작업을 수행합니다:
    • NtAllocateVirtualMemory(직접 syscall)를 사용하여 메모리를 할당합니다.
    • NtWriteVirtualMemory로 할당된 공간에 복호화된 페이로드 DLL을 기록합니다.
    • NtProtectVirtualMemory(직접 syscall)를 사용하여 메모리 영역의 권한을 실행 가능으로 변경합니다.
    • 통신을 위한 명명된 파이프를 생성하고 파이프 이름을 대상 프로세스의 메모리에 기록합니다.
  5. 실행 및 제어: NtCreateThreadEx를 사용하여 대상 프로세스에 새 스레드가 생성됩니다. 스레드 시작 주소는 페이로드의 Bootstrap 내보내기를 직접 가리키며, 인자로 원격 파이프 이름의 주소가 전달됩니다. 브라우저의 원래 메인 스레드는 일시 중단된 상태로 유지되며 다시 실행되지 않습니다. 그런 다음 인젝터는 페이로드가 파이프로 다시 연결될 때까지 대기합니다.

2단계: 주입된 페이로드 (인메모리)

  1. 부트스트래핑: Bootstrap reflective 로더가 실행되어 향상된 은밀성을 갖춘 사용자 정의 인메모리 PE 로더 역할을 합니다:
    • NtAllocateVirtualMemory에 대한 직접 syscall을 사용하여 페이로드를 위한 새 메모리를 할당합니다(후킹된 VirtualAlloc 우회).
    • DLL의 섹션을 올바르게 매핑하고 베이스 리로케이션을 수행합니다.
    • PEB를 파싱하고 함수 이름을 해싱하여 Import Address Table(IAT)을 해석합니다.
    • 직접 syscall인 NtProtectVirtualMemory를 사용하여 섹션 권한을 설정합니다.
    • DOS/NT 헤더를 의사 난수 데이터로 덮어써 PE 헤더를 파괴하고 메모리에서 MZ 시그니처를 제거합니다.
    • 마지막으로 페이로드의 DllMain을 호출합니다.
  2. 연결 및 설정: DllMain은 새 스레드를 생성하고 즉시 인젝터가 전달한 명명된 파이프 핸들에 연결합니다. 인젝터가 보낸 출력 경로를 포함한 구성을 읽습니다. 이후의 모든 로그와 상태 업데이트는 이 파이프를 통해 다시 전달됩니다.
  3. 대상 컨텍스트 COM 하이재킹: 이제 브라우저 프로세스 내에서 네이티브하게 실행되는 페이로드는 브라우저의 내부 COM 서버(Chrome/Brave 144+의 경우 IElevator2, 이전 버전의 경우 IElevator, Edge의 경우 IEdgeElevatorFinal, Avast Secure Browser의 경우 IAvastElevator)를 인스턴스화합니다. 호출이 신뢰할 수 있는 프로세스 경로에서 발생하므로 서버의 모든 보안 검사가 통과됩니다.
  4. 마스터 키 복호화: 페이로드는 Local State 파일에서 읽은 app_bound_encrypted_key를 제공하면서 COM 인터페이스에서 DecryptData 메서드를 호출합니다. COM 서버는 키를 복호화하고 평문 AES-256 마스터 키를 페이로드에 반환합니다.
  5. 데이터 유출: AES 키를 확보한 페이로드는 모든 사용자 프로필(Default, Profile 1 등)을 열거합니다. 각 프로필에 대해 관련 SQLite 데이터베이스(Cookies, Login Data, Web Data)를 쿼리하고 AES-256-GCM을 사용하여 데이터 블롭을 복호화한 후 비밀을 JSON으로 형식화합니다. 결과는 인젝터가 지정한 출력 디렉터리에 직접 기록됩니다.
  6. 종료: 모든 프로필을 처리한 후 페이로드는 파이프를 통해 인젝터에 완료 신호를 보내고 FreeLibraryAndExitThread를 호출하여 정리합니다. 인젝터는 신호를 수신하면 NtTerminateProcess로 부모 호스트 프로세스를 종료합니다.

🔧 빌드 지침

이 프로젝트는 모든 컴파일 및 페이로드 임베딩을 자동으로 처리하는 간단하고 견고한 빌드 스크립트를 사용합니다.

  1. 이 저장소를 클론합니다.

  2. VS용 개발자 명령 프롬프트(또는 MSVC를 지원하는 모든 셸)를 엽니다.

  3. 프로젝트 루트에서 빌드 스크립트 make.bat를 실행합니다.

도구 다운로드