안드로이드 앱 진단 설정(NOX)
앱 진단을 위해 설정 작업을 하겠음
안드로이드 7.0 버전 이상부터는 http://burp/ 혹은 burp suite 에서 인증서를 추출하여 기기에 인증서를 설치하고, 버프로 패킷을 잡을 시 SSL connection failed 경고 메세지가 뜨면서 패킷이 잡히지 않는다. 그 이유는 안드로이드 7.0 버전 이상부터 인증서 저장 위치가 시스템/ 사용자 권한으로 분리되면서 시스템 위치에 인증서가 설치 되어야 하는데, 기존의 방식은 사용자 위치에 인증서가 설치되기 때문에 버프에서 패킷이 잡히지 않는다는 것을 알게되었다.
기간이 제한된 암호화 키를 만들지 않을 시
준비물
1. Nox
2. Openssl
3. Burp
실습
1. Nox 설치(https://kr.bignox.com/)
위치 : C:\Program Files (x86)\Nox, 설치 후 루팅을 해줘야한다.
2. Openssl 설치(https://slproweb.com/products/Win32OpenSSL.html)
위치 : C:\Program Files\OpenSSL-Win64에 설치 완료, 최신버전으로 받고 exe, msi 받고 싶은거 받으면 된다.
3. 360일 만료기간 및 RSA 암호화 알고리즘을 이용하여 private.key 개인키를 생성합니다. {CMD 창}
openssl req -x509 -days 360 -nodes -newkey rsa:2048 -outform der -keyout private.key -out ca.der
생성 시 입력해야하는 정보는 알아서 잘 작성할것
3-1. 개인키를 der로 변환 후 pkcs8 포맷으로 변환
openssl rsa -in private.key -inform pem -out private.key.der -outform der
openssl pkcs8 -topk8 -in private.key.der -inform der -out private.key.pkcs8.der -outform der -nocrypt
위치 : C:\Windows\System32\cmd.exe\cmd
4. Burp 인증서 작업
proxy - Options - import / export CA certificate - import(Certificate and private key in DER format) - next
CA import - ca.der, private key - private.key.pkcs8.der -next
proxy - Options - import / export CA certificate - Export(Certificate in DER format) - next
위치 : C:\Program Files\OpenSSL-Win64\bin
파일이름 : testburp.der - Save 클릭
5. Burp 인증서 파일 형식 변환 및 변환한 파일의 해쉬함수 추출
openssl x509 -inform DER -in testburp.der -out testburp.pem
openssl x509 -inform PEM -subject_hash_old -in testburp.pem
6. testburp.pem의 파일이름 변경
파일이름 : testburp.pem - > b4e70b2b.0 (Nox의 시스템 자격증명 폴더 내 인증서와 형식을 맞춰준다.)
7. Nox_adb 사용
위치 : C:\Program Files (x86)\Nox\bin
cmd에서 실행하려고 하면 안될것이다. 환경변수 설정을 해야한다.
제어판 - 시스템 - 고급 시스템 설정 - 환경 변수 - 시스템 변수(Path) - 편집 - C:\Program Files (x86)\Nox\bin 추가 후 확인
만약 nox_adb가 안된다면 nox가 켜주자.
8. 인증서 이동, 권한부여, 마운트 작업
adb push b4e70b2b.0 /sdcard/
adb shell
mount -o rw,remount,rw /system
mv /sdcard/b4e70b2b.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/b4e70b2b.0
mount -o ro,remount,ro /system
인증서를 /sdcard/ 폴더로 옮기고 쉘 실행후 인증서를 nox 자격증명 폴더로 이동 후 권한을 부여하고
재접속해도 해당작업이 남아있게 마운트 해준다.
9. 인증서 확인
Tools - 설정 - 보안 - 신뢰할 수 있는 자격증명 - 인증서(testburp) 확인
10. nox 프록시 설정
Tools - 설정 - Wi-Fi - WireSSID(꾹~ 누르기) - 네트워크 수정 - 고급옵션 클릭 - 프록시 클릭 - 수동 클릭
프록시 호스트 이름 : Host IP , 프록시 포트 : Burp와 알아서 잘 맞춰주세요(ex : 8888)
11. burp Proxy Listeners 설정
Add - all interfaces - port : 8888 설정
Nox에서 브라우저를 기동했을때 burp 잡히는지 확인하기 위해 target scope 체크해제
12. 브라우저 기동 후 burp 잡히는지 확인
intercept on - 브라우저 열기 - 내용 확인