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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
frida-interception-and-unpinning — 모바일 애플리케이션을 런타임에 재작성하여 모든 HTTPS 트래픽을 직접 MitM하는 Frida 스크립트 | Kitploit
도구/GitHubGitHub/httptoolkit/frida-interception-and-unpinning
Android SecurityiOS SecurityWeb Proxies & InterceptionMobile App PentestingReverse EngineeringPenetration TestingMobile SecurityAndroid Security #13위

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubhttptoolkit/frida-interception-and-unpinning

frida-interception-and-unpinning

모바일 애플리케이션을 런타임에 재작성하여 모든 HTTPS 트래픽을 직접 MitM하는 Frida 스크립트

저장소 보기웹사이트
2.3k2945315일 전Kitploit 검토 완료

Frida 모바일 가로채기 스크립트 Funded by NLnet - NGI Zero Entrust

HTTP Toolkit의 일부: HTTP(S)를 구축, 테스트 및 디버깅하기 위한 강력한 도구

이 저장소에는 모바일 기기에서 완전 자동화된 HTTPS MitM 가로채기에 필요한 모든 작업을 수행하도록 설계된 Frida 스크립트가 포함되어 있습니다.

이 스크립트 세트는 Android 및 iOS에서 HTTP(S) 트래픽의 MitM 가로채기를 위해 모두 함께 사용하여, 가로채기 처리, 인증서 신뢰 관리, 인증서 고정 및 투명성 검사 비활성화를 수행할 수 있습니다. 또는 특정 기능만 후킹하도록 개별적으로 사용하거나 수정할 수도 있습니다.

스크립트는 다음을 자동으로 처리할 수 있습니다:

  • 트래픽을 HTTP(S) 프록시로 리디렉션 - 시스템 설정을 수정하고 모든 소켓 연결을 직접 리디렉션합니다.
  • 지정된 CA 인증서를 시스템 신뢰 저장소에 주입하여 기본적으로 연결에서 신뢰되도록 합니다.
  • 알려진 많은 (전부?) 인증서 고정 및 인증서 투명성 도구를 패치하여, 적극적으로 차단되는 경우에도 사용자의 CA 인증서로 가로챌 수 있게 합니다.
  • Android에서는 폴백으로: 남아 있는 고정 실패를 자동 감지하여 난독화된 인증서 고정을 자동 패치하려고 시도합니다 (완전히 난독화된 앱에서는 첫 번째 요청이 실패할 수 있지만, 이후 모든 요청이 올바르게 작동하도록 추가 패치가 트리거됩니다).
  • 많은 일반적인 루트 및 탈옥 탐지를 비활성화합니다.
  • 가로채기에 불편할 수 있는 대부분의 HTTP/3 연결(포트 443으로 가는 모든 UDP)을 차단하여, 앱이 HTTP/2 또는 HTTP/1로 폴백하도록 보장합니다.

Android 시작 가이드

  1. MitM 프록시(예: HTTP Toolkit)를 시작하고, ADB에 연결된 루팅된 Android 기기 또는 에뮬레이터를 설정하세요.
  2. MitM 프록시의 포트(예: 8000)와 PEM 형식의 CA 인증서를 찾으세요.
    • CA 인증서는 -----BEGIN CERTIFICATE-----로 시작해야 합니다. 텍스트 편집기로 열어 이 내용을 확인하고 추출할 수 있습니다.
    • HTTP Toolkit에서 두 세부 정보 모두 인터셉트 페이지의 'Anything' 옵션에서 찾을 수 있습니다.
  3. config.js를 열고 다음 세부 정보를 추가하세요:
    • CERT_PEM: PEM 형식의 CA 인증서.
    • PROXY_PORT: 프록시의 포트
    • PROXY_HOST: 기기 관점에서 본 프록시 주소 (또는 adb reverse tcp:$PORT tcp:$PORT를 사용하여 ADB를 통해 포트를 전달하고 호스트로 127.0.0.1 사용)
  4. 기기에 Frida를 설치하고 시작하세요.
    • 여기서의 단계는 특정 기기 및 구성에 따라 다를 수 있습니다.
    • 예: github.com/frida/frida에서 관련 frida-server를 다운로드하고, 압축을 풀고, adb push로 기기에 넣은 후 다음 4개 명령으로 실행하세요: adb shell, su, chmod +x /.../frida-server, /.../frida-server.
    • 문제가 있으면 명령을 실행하기 전에 기기가 켜져 있고 연결되어 있는지(adb devices 사용) 확인하세요. Frida는 루팅된 기기에서 위 예의 su가 제공하는 것처럼 기기에서 root로만 실행됩니다. su 또는 유사한 명령 실행 후 root인지 확인하려면 셸에서 whoami를 실행했을 때 root가 출력되는지 확인하세요.
  5. 관심 있는 앱의 패키지 ID를 찾으세요 (빠른 테스트를 위해 github.com/httptoolkit/android-ssl-pinning-demo를 사용해 보세요 - 패키지 ID는 tech.httptoolkit.pinning_demo입니다)
  6. Frida를 사용하여 스크립트(config.js부터 시작)를 주입한 상태로 관심 있는 앱을 실행하세요. 사용할 스크립트는 자유지만, Android에서는 다음 명령이 좋은 출발점입니다:
    frida -U \
        -l ./config.js \
        -l ./native-connect-hook.js \
        -l ./native-tls-hook.js \
        -l ./android/android-proxy-override.js \
        -l ./android/android-system-certificate-injection.js \
        -l ./android/android-certificate-unpinning.js \
        -l ./android/android-certificate-unpinning-fallback.js \
        -l ./android/android-disable-root-detection.js \
        -f $PACKAGE_ID
    
  7. 관심 있는 모든 트래픽을 탐색, 검사 및 수정하세요! 문제가 있으면 이슈를 열어 이 스크립트를 더욱 개선하는 데 도움을 주세요.

iOS 시작 가이드

  1. MitM 프록시(예: HTTP Toolkit)를 시작하고, 컴퓨터에 연결된 탈옥된 iOS 기기를 설정하세요.
  2. MitM 프록시의 포트(예: 8000)와 PEM 형식의 CA 인증서를 찾으세요.
    • CA 인증서는 -----BEGIN CERTIFICATE-----로 시작해야 합니다. 텍스트 편집기로 열어 이 내용을 확인하고 추출할 수 있습니다.
    • HTTP Toolkit에서 두 세부 정보 모두 인터셉트 페이지의 'Anything' 옵션에서 찾을 수 있습니다.
  3. config.js를 열고 다음 세부 정보를 추가하세요:
    • CERT_PEM: PEM 형식의 CA 인증서.
    • PROXY_PORT: 프록시의 포트
    • PROXY_HOST: 기기 관점에서 본 프록시 주소
  4. 기기에 Frida를 설치하고 시작하세요.
    • 여기서의 단계는 특정 기기 및 구성에 따라 다를 수 있지만, 일반적으로 Cydia/Sileo 등에서 https://build.frida.re를 패키지 소스로 사용하여 설치할 수 있습니다.
    • 컴퓨터에서 frida-ps -Uai를 실행하여 제대로 작동하는지 확인하세요.
  5. frida-ps -Uai를 통해 관심 있는 앱의 ID를 찾으세요 (빠른 테스트를 위해 github.com/httptoolkit/ios-ssl-pinning-demo를 사용해 보세요 - ID는 com.httptoolkit.ios-pinning-demo입니다)
  6. Frida를 사용하여 스크립트(config.js부터 시작)를 주입한 상태로 관심 있는 앱을 실행하세요. 사용할 스크립트는 자유지만, iOS에서는 다음 명령이 좋은 출발점입니다:
    frida -U \
        -l ./config.js \
        -l ./ios/ios-connect-hook.js \
        -l ./ios/ios-disable-detection.js \
        -l ./native-tls-hook.js \
        -l ./native-connect-hook.js \
        -f $APP_ID
    
  7. 관심 있는 모든 트래픽을 탐색, 검사 및 수정하세요! 문제가 있으면 이슈를 열어 이 스크립트를 더욱 개선하는 데 도움을 주세요.

스크립트

위 명령은 관련 스크립트를 모두 사용하지만, 일반적으로 원하는 하위 집합을 사용할 수 있습니다. 다만 거의 모든 경우 첫 번째 스크립트로 config.js를 포함해야 합니다 (이 스크립트는 다른 스크립트에서 사용하는 일부 변수를 정의합니다).

예를 들어 Android에서 프록시 및 인증서 구성을 다른 곳에서 처리하고 난독화 폴백 없이 인증서 고정 해제만 수행하려면 다음을 실행할 수 있습니다:

frida -U \
    -l ./config.js \
    -l ./android/android-certificate-unpinning.js
    -f $PACKAGE_ID

각 스크립트는 상단의 큰 주석 섹션에서 수행하는 작업과 작동 방식을 자세히 설명합니다. 스크립트는 다음과 같습니다:

  • config.js

    이 스크립트는 다른 스크립트에서 사용하는 변수를 정의합니다:

도구 다운로드