새소식

모의해킹/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

 

반응형

'모의해킹 > Android' 카테고리의 다른 글

Frida 표준 C 라이브러리 함수 후킹  (4) 2023.11.26
분할 APK(Split APKs) 병합  (1) 2023.03.12
JEB Frida Code Generator  (0) 2023.02.09
Contents

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

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