
AirDroid 애플리케이션을 통해 원격으로 기기의 모든 정보를 탈취하는 데 이상적인 프로그램. [CVE-2019-9599] (https://www.exploit-db.com/exploits/46337)
Video PoC Exploit: https://www.youtube.com/watch?v=0QDM224_6DM
CVE: https://nvd.nist.gov/vuln/detail/CVE-2019-9599
Exploit-db: https://www.exploit-db.com/exploits/46337
AirDroid는 특히 브라우저를 통해 컴퓨터를 원격으로 제어하는 데 가장 잘 알려지고 널리 사용되는 도구 중 하나입니다.
서비스를 제공하는 기기를 제어하고 관리하려면 클라이언트의 사전 수락 단계가 필요하며, 아래와 같은 'Message Box'가 표시됩니다:
연결이 수락되면 세션 담당자는 브라우저에서 기기를 관리할 수 있으며, 그 외에도 다음과 같은 작업을 수행할 수 있습니다:
클라이언트 측 검증을 우회하는 PoC를 공유하지는 않지만, 연결이 수락된 후 특권 정보를 추출하기 위한 몇 가지 유틸리티 스크립트를 공유했습니다.
또한 'airdroid_dos.sh' 및 'airdroid_fast_dos.sh' 스크립트를 공유했습니다. 이 스크립트는 'Remote DoS Application & System Crash' 유형의 작업을 수행하여, 이를 통해 서비스를 원격으로 손상시키고 모바일 기기가 작동 불능 상태가 될 때까지 모든 메모리를 채워 기기를 멈추게 합니다:
'AirDroidPwner.py' 스크립트를 실행하는 것으로 시작합니다. AirDroid 서비스가 실행 중인 많은 기기를 찾으려면 Shodan KEY를 제공해야 합니다:
# Usa tu API KEY de Shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
실행은 다음과 같이 수행합니다:
python AirDroidPwner.py
보시다시피 매우 복잡합니다. 실행 후, 먼저 Shodan API를 통해 Shodan이 수행된 검색(이 경우 AirDroid 서비스, 포트 8888)에 대해 인덱싱한 모든 IP가 배열에 저장됩니다.
발견되면, 발견된 Host에 실제로 서비스가 활성화되어 있는지 확인하기 위한 검증 프로세스가 수행되며, 이를 위해 간단한 요청 후 서버 측 응답이 반환하는 상태 코드를 확인합니다.
활성 Host에 해당하는 요소로 새 배열을 얻은 후, 이들은 'ips'라는 이름의 파일로 내보내집니다. 현재 다음과 같은 작동 모드가 있습니다:
연결이 수락된 후(요청이 Host에 전송되며 그중 하나가 수락하기를 기다리는 것입니다 [안타깝게도 많은 Host가 수락하는 것을 보게 될 것입니다...]), 세션 식별자는 7bb 매개변수에 저장되며, 이후 이 매개변수를 통해 쿼리가 관리됩니다:
def get_identifier(r_json):
identifier_session = r_json["7bb"]
return identifier_session
클라이언트가 연결을 수락하지 않는 경우, 해당 항목은 거부된 연결 벡터에 저장되어 이후 다음 유형의 공격을 시작합니다(공격자가 <y/n>으로 선택할 수 있음):
여기서 'Message Box'를 사용하여, 수정 가능한 반복 횟수(기본값 10)의 메인 루프와 함께 피해자에 대해 스레드로 3,000개의 요청을 수행하는 하위 루프를 통해 기기의 RAM 메모리를 가득 채워, 애플리케이션의 원격 서비스 거부뿐만 아니라 기기가 완전히 작동 불능 상태가 되어 시스템 재시작을 강제하는 Remote System Crash를 유발합니다.
이 취약점은 최신 버전의 AirDroid뿐만 아니라 그 이전의 모든 버전에도 영향을 미칩니다.
피해자가 연결을 수락하는 경우, 현재 도구에 구현된 작업은 다음과 같습니다:
추가로 'airdroid_dos.sh' 및 'airdroid_fast_dos.sh' 스크립트도 실행할 수 있습니다. 두 스크립트의 주요 차이점은 두 번째 스크립트는 곧바로 공격을 수행하는 반면, 첫 번째 스크립트는 Host에 활성 서비스가 있는지 확인하는 간단한 초기 점검 등을 수행한다는 것입니다 (더 상업적인 측면).
웹 브라우저에서 액세스를 관리하려는 경우, 'AirDroidPwner.py' 스크립트를 실행하고 'ips' 파일에 IP 목록을 내보낸 후 'web_browser.py' 스크립트를 실행하여 브라우저에서 모든 활성 서비스를 열 수 있습니다.
작업: