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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-0073 — Android adbd 무선 디버깅 TLS 인증 우회에 대한 개념 증명 익스플로잇으로, EC/RSA 키 유형 불일치를 이용해 인증 없이 원격 셸을 획득합니다. | Kitploit
도구/GitHubGitHub/umarrehmansiddiqui/cve-2026-0073
Android SecurityVulnerability AnalysisExploitationWeb Application ExploitationCryptographyMobile SecurityAuthenticationRemote Access Tool
GitHubumarrehmansiddiqui/cve-2026-0073

CVE-2026-0073

Android adbd 무선 디버깅 TLS 인증 우회에 대한 개념 증명 익스플로잇으로, EC/RSA 키 유형 불일치를 이용해 인증 없이 원격 셸을 획득합니다.

저장소 보기
1일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-0073: Android 무선 디버깅(adbd) 인증 우회

면책 조항: 이 개념 증명(PoC)은 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 모든 기기 또는 네트워크를 대상으로 테스트하기 전에 반드시 명시적인 허가를 받았는지 확인하십시오.

📖 취약점 이해하기 (초보자 친화적)

Android 기기에는 무선 디버깅(Wireless Debugging) 이라는 기능이 있으며, 이를 통해 개발자는 USB 케이블 없이 Wi-Fi를 통해 기기에 연결할 수 있습니다. 이 연결을 안전하게 유지하기 위해 기기는 TLS 암호화를 사용하며, 연결하는 컴퓨터가 암호화 키를 사용하여 자신의 신원을 증명하도록 요구합니다.

결함은 어디에 있는가? 컴퓨터가 연결하면 Android 데몬(adbd)은 컴퓨터의 키가 이전에 승인된 키와 일치하는지 확인합니다. 이를 위해 세 가지 숫자 중 하나를 반환하는 내장 수학 함수(EVP_PKEY_cmp)를 사용합니다:

  • 1은 "키가 완벽하게 일치한다"는 의미입니다.
  • 0은 "키가 일치하지 않는다"는 의미입니다.
  • -1은 "오류: 키가 완전히 다른 유형이다(예: RSA 키와 EC 키 비교)"라는 의미입니다.

버그: 프로그래머는 간단한 검사를 작성했습니다: if (result) { grant_access(); }. 프로그래밍에서 1과 -1은 모두 "참(True)"으로 간주됩니다. 따라서 공격자가 의도적으로 완전히 다른 유형의 키(예: 예상되는 RSA 키 대신 타원 곡선 키)를 보내면 함수는 -1(오류)을 반환합니다. 버그가 있는 코드는 -1을 보고 "참"을 의미한다고 가정하여 어쨌든 전체 접근 권한을 부여합니다.

결과: 동일한 Wi-Fi 네트워크에 있는 공격자는 인증을 완전히 우회하고 원래 페어링 키 없이, 그리고 사용자에게 승인 프롬프트가 표시되지 않은 채로 기기에 대한 원격 셸을 획득할 수 있습니다.


⚠️ 사전 요구 사항

이 익스플로잇이 작동하려면 대상 Android 기기가 두 가지 조건을 충족해야 합니다:

  1. 개발자 옵션에서 무선 디버깅이 활성화되어 있어야 합니다.
  2. 기기가 이전에 하나 이상의 컴퓨터와 페어링된 적이 있어야 합니다. (이 익스플로잇은 기기의 키스토어에 기존 RSA 키가 있어 유형 불일치 버그를 트리거하는 데 의존합니다).

공격자 머신 요구 사항

이 스크립트는 즉석에서 임시 인증서를 생성하기 위해 Python 3와 cryptography 라이브러리가 필요합니다.

apt(Debian/Ubuntu/Kali) 또는 pip를 사용하여 필요한 라이브러리를 설치할 수 있습니다:

apt 사용 (Linux 권장):

sudo apt update
sudo apt install python3-cryptography

pip 사용 (크로스 플랫폼):

pip3 install cryptography

🔍 대상 포트 찾기

USB 디버깅과 달리, Android는 기기가 재부팅되거나 Wi-Fi 네트워크가 변경될 때마다 무선 디버깅을 위해 무작위의 높은 번호의 포트를 할당합니다.

현재 포트를 모르는 경우 nmap을 사용하여 쉽게 스캔할 수 있습니다. 무선 디버깅 포트는 일반적으로 30000에서 50000 사이에 있습니다.

다음 명령을 실행하되, <hostname>을 대상 기기의 IP 주소로 바꾸십시오:

nmap -Pn -p T:30000-50000 <hostname>

출력 읽는 방법: open으로 표시되는 포트를 찾으세요. 예를 들어:

PORT      STATE SERVICE
41234/tcp open  unknown

이 예제에서 41234는 다음 단계에서 사용할 포트입니다.


🚀 사용법

대상 호스트 이름/IP와 올바른 포트를 확보했다면 익스플로잇을 실행할 수 있습니다.

1. 대화형 셸

완전한 대화형 원격 셸을 열려면(SSH와 유사):

python3 adb_bypass.py <hostname> <port>

예시:

python3 adb_bypass.py 192.168.1.50 41234

연결되면 shell 사용자 프롬프트로 진입합니다. Ctrl+C를 눌러 종료하세요.

2. 단일 명령 실행

대화형 셸에 들어가지 않고 특정 명령을 실행하여 출력만 확인하려면 --cmd 플래그를 사용하세요:

python3 adb_bypass.py <hostname> <port> --cmd "id"

3. 상세 모드

디버깅 또는 연구 목적으로 기반 네트워크 트래픽과 핸드셰이크 세부 정보를 확인하려면 -v 플래그를 추가하세요:

python3 adb_bypass.py <hostname> <port> -v

🛠️ 작동 방식 (기술 요약)

  1. 평문 협상: 스크립트는 대상의 TCP 포트에 연결하고 초기 CNXN 및 STLS 패킷을 교환하여 TLS 업그레이드에 합의합니다.
  2. 임시 인증서 생성: cryptography 라이브러리를 사용하여 스크립트는 임시 EC P-256 개인 키와 자체 서명된 X.509 인증서를 메모리에서 생성합니다.
  3. TLS 1.3 업그레이드: 스크립트는 소켓을 TLS 1.3으로 업그레이드하고 EC 인증서를 Android 기기에 제시합니다.
  4. 취약점 트리거: 기기는 EC 인증서를 저장된 RSA 키와 비교하려고 시도합니다. EVP_PKEY_cmp가 -1을 반환하고, if (cmp) 검사가 true로 평가되며, 기기는 연결을 인가된 것으로 표시합니다.
  5. TLS 이후 익스플로잇: 스크립트는 TLS 이후 핸드셰이크 패킷을 소진하고 즉시 큰 delayed_ack 윈도를 사용하여 shell: 스트림을 열어, 인증되지 않은 원격 셸을 획득합니다.

도구 다운로드