새소식

모의해킹/Android

Android 7 Burp 인증서 자동 삽입 스크립트

  • -
반응형

Android 단말기의 HTTPS 패킷을 확인하기 위해서는 단말기에 Burp 인증서를 넣고 진행해야 하는데
넣을 일이 자주 있는건 아니지만서도 절차가 너무 귀찮다. Android 7 이상부터는 특히...

귀찮다. 진짜 귀찮다.

매번 핵캐트믈(hackcatml)님의 블로그를 참고해서 따라하는 편인데, 해당 절차들을 배치파일로 스크립트화 해봤다.

insert_cert.zip
2.94MB

우선 위의 압축파일을 다운받아 해제하고,
adb가 Android 단말기와 연결된 상태에서 cert.bat 을 실행하면 된다.

유효기간이 730일인 인증서를 생성하여
Android 단말기의 시스템 인증서 경로인 /system/etc/security/cacerts/ 에 자동으로 삽입하는 스크립트이다.

'ca.der'과 'server.key.pkc8.der' 은 Burp Suite에 수동으로 넣어야 한다.
경로: Burp Suite> Proxy> Options> Import/export CA certificate> Import> Certificate and private key in DER format


아래는 스크립트의 대략적인 내용이다.

이건 openssl.exe 을 통해 730일짜리 인증서를 생성하고, 생성된 인증서의 hash 값으로 파일명을 변경하는 부분.

%openssl% req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der -extensions v3_ca -subj '/C=KR/ST=Seoul/O=SECUWORM/OU=SECUWORM/CN=SECUWORM/' -config %openssl.cnf% 2>NUL %openssl% rsa -in server.key -inform pem -out server.key.der -outform der 2>NUL %openssl% pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt %openssl% x509 -inform DER -in ca.der -out ca.pem for /f "delims=" %%A IN ('%openssl% x509 -inform PEM -subject_hash_old -in ca.pem ^| head -1') do (set ssl_hash=%%A) rename ca.pem %ssl_hash%.0


연결된 Android 단말기의 시스템 인증서 경로인 '/system/etc/security/cacerts/' 에 인증서를 삽입하는 부분이다.

adb push %ssl_hash%.0 /sdcard adb shell "su -c 'mount -o rw,remount /system;mv /sdcard/%ssl_hash%.0 /system/etc/security/cacerts/;chmod 644 /system/etc/security/cacerts/%ssl_hash%.0'"


아래는 배치파일을 실행이 정상적으로 실행됐을때의 결과이다.

모든 동작 후, Android 기기 재부팅 및 인증서  파일을 Burp Suite에 Import 시켜달라는 메시지와 함께 스크립트가 종료된다.

스크립트 정상 실행 결과

스크립트 실행 후, 해당 경로에 파일 3개가 생성된다.
이 중 ca.der 과 server.key.pkcs8.der 은
Burp Suite> Proxy> Options> Import/export CA certificate>Import> Certificate and private key in DER format
위 경로에 각각 수동으로 Import 시켜야 한다.


단말기 내에 인증서가 정상적으로 삽입되는 것을 확인 가능했다.

단말기 재부팅 후에 '설정>보안' 메뉴에서 인증서 삽입이 정상적으로 이루어졌는지 확인해봐야 한다.


스크립트의 전체 내용

@echo off chcp 65001 echo ______                                      __       ____                      __       echo/\__  _\                                    /\ \__   /\  _`\                   /\ \__   echo\/_/\ \/      ___      ____     __    _ __  \ \ ,_\  \ \ \/\_\     __    _ __  \ \ ,_\   echo   \ \ \    /' _ `\   /',__\  /'__`\ /\`'__\ \ \ \/   \ \ \/_/_  /'__`\ /\`'__\ \ \ \/   echo    \_\ \__ /\ \/\ \ /\__, `\/\  __/ \ \ \/   \ \ \_   \ \ \L\ \/\  __/ \ \ \/   \ \ \_ echo    /\_____\\ \_\ \_\\/\____/\ \____\ \ \_\    \ \__\   \ \____/\ \____\ \ \_\    \ \__\ echo    \/_____/ \/_/\/_/ \/___/  \/____/  \/_/     \/__/    \/___/  \/____/  \/_/     \/__/ echo                                               by SECUWORM(https://secuworm.tistory.com) echo. echo. setlocal enabledelayedexpansion adb devices 1>NUL set openssl=.\file\openssl.exe set openssl.cnf=.\file\openssl.cnf %openssl% req -x509 -days 730 -nodes -newkey rsa:2048 -outform der -keyout server.key -out ca.der -extensions v3_ca -subj '/C=KR/ST=Seoul/O=SECUWORM/OU=SECUWORM/CN=SECUWORM/' -config %openssl.cnf% 2>NUL %openssl% rsa -in server.key -inform pem -out server.key.der -outform der 2>NUL %openssl% pkcs8 -topk8 -in server.key.der -inform der -out server.key.pkcs8.der -outform der -nocrypt %openssl% x509 -inform DER -in ca.der -out ca.pem for /f "delims=" %%A IN ('%openssl% x509 -inform PEM -subject_hash_old -in ca.pem ^| head -1') do (set ssl_hash=%%A) rename ca.pem %ssl_hash%.0 adb push %ssl_hash%.0 /sdcard adb shell "su -c 'mount -o rw,remount /system;mv /sdcard/%ssl_hash%.0 /system/etc/security/cacerts/;chmod 644 /system/etc/security/cacerts/%ssl_hash%.0'" del server.key del server.key.der echo. echo. echo [*] Android 기기를 재부팅 해주세요. echo. echo [*] 현재 경로에 생성된 'ca.der''server.key.pkc8.der' 은 Burp Suite의 아래 메뉴에 각각 넣어주세요. echo Burp Suite^> Proxy^> Options^> Import/export CA certificate echo ^>Import^> Certificate and private key in DER format echo. endlocal pause

 

 

오류가 발생한다면 아래 파일로 시도

insert_cert_v2.0.zip
2.94MB


Reference

https://hackcatml.tistory.com/37

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.