5. 안드로이드 앱 진단 실습 (3) 진단 환경 구성 3
[목차]
1. Nox 프록시 설정
2. Burp Suite 인증서 설치
3. InsecureBank와 연동 실험
[Nox 프록시 설정]
1. Nox 설정
Nox 메인 > Tools 폴더 > 설정
![](https://blog.kakaocdn.net/dn/bplf7g/btrFuT1DAKo/2WH89KynbkRylkGQISr801/img.png)
Wi-fi >
![](https://blog.kakaocdn.net/dn/qFW8O/btrFwutifL2/r1aU2C18KqmpxJbi6K1D60/img.png)
'WiredSSID' 항목 누르고 있다가
'네트워크 수정' 항목 선택 >
![](https://blog.kakaocdn.net/dn/9UEZ5/btrFt8ZxT5X/HVub2Q74SuoHFW3X6xM4s1/img.png)
고급 옵션 > 프록시 > 수동
![](https://blog.kakaocdn.net/dn/cqBh8n/btrFtPFYuqj/u0IrRl5V3DEoauWt9CFmBk/img.png)
자신의 HOST PC IP 확인 후 입력 (127.0.0.1은 안됨)
![](https://blog.kakaocdn.net/dn/w8siG/btrFxjE1Kc0/s6I56abUTmH0s3elnxHXz1/img.png)
2. 버프 설정
![](https://blog.kakaocdn.net/dn/bkLgpD/btrFwwdwrk1/r1vWBm5mnN1o1xl21D1PgK/img.png)
[버프 인증서 설치]
* 설치 전 주의사항
- 기존 방식인
(1) 버프 인증서를 받아(http://burp)
(2) 확장자명을 cacert.der에서 cacert.crt로 변경 후
(3) 드래그 앤 드롭(또는 adb를 통해)으로 Nox에 넣어
(4) Tool > 설정 > 보안 > SD 카드에서 설치
하는 방식으로는 인증서를 설치하는 경우
다음과 같이 인증서 자격증명이
![](https://blog.kakaocdn.net/dn/bjpREs/btrFuVLW5zX/mqH78ffy6cpNolfq16aqqK/img.png)
'사용자' 측에 생기는데
Android 7 버전 이상부터는
'사용자' 자격증명을 신뢰하지 않는다고 하여
인증서를 시스템 측에 설치해야 한다.
(1) 버프 인증서 내려받기
버프 기동 후
Proxy > Options > Provy Listners > Import / export CA certificate
하던지
![](https://blog.kakaocdn.net/dn/lQXkp/btrFwvlpJpH/aqSlbf26KGIZJspWULVMZ1/img.png)
브라우저에서 http://burp 직접 호출 후 내려받던지 택일
![](https://blog.kakaocdn.net/dn/BsvEW/btrFuoufbMi/vppelnu7BAkFGjfj4UJRqK/img.png)
(2) openssl 을 통한 변환작업
: 윈도우의 경우 openssl 바이너리를 별도로 설치 후 사용해야 함 (절차 생략)
http://slproweb.com/products/Win32OpenSSL.html
터미널을 열어 (1)에서 받은 버프 인증서 경로로 이동 후
아래 커맨드 입력
C:> openssl x509 -inform DER -in cacert.der -out cacert.pem
C:> openssl x509 -inform PEM -subject_hash_old -in cacert.pem
C:> move cacert.pem 9a5ba575.0
![](https://blog.kakaocdn.net/dn/lofCY/btrFvV5I6Iq/urwMyCTRii0WVucmwkXDUk/img.png)
위 과정은
der 파일을 pem 형식으로 변한 뒤 >
오래된 openssl 1.0.0 버전 이전에
사용된 알고리즘을 통해 인증서의
subject name hash 값을 추출하여 >
파일 명을 9a5ba575.0으로 변환시킨
작업인데
![](https://blog.kakaocdn.net/dn/b2vYAy/btrFvWpZ290/banXhkqxU45kGKDgKOopz1/img.png)
이렇게 변환시킨 이유는
Nox의 시스템 자격증명 폴더 내
설치되어 있는 인증서 형식이 바로
위와 같은 형식이기 때문
![](https://blog.kakaocdn.net/dn/H8S6i/btrFuTUPczt/0jMOdYlZRvzHQnW1kIkhmK/img.png)
(3) 인증서 설치
adb로 해당 인증서를 /sdcard/ 디렉터리에 푸시 해주고
![](https://blog.kakaocdn.net/dn/kB3Oj/btrFvXboEql/QqoW5RqvMAcmZrGaznQcU0/img.png)
쉘에 접속해 /sbcard/ 내 버프 인증서를
시스템 자격증명 폴더에 옮겨준 뒤 권한부여
![](https://blog.kakaocdn.net/dn/d1WYq5/btrFtOtvf5b/CynjJpOSxhc6Rp3Te7LFyK/img.png)
정상 설치 확인
![](https://blog.kakaocdn.net/dn/k5Cjs/btrFvVkiY7N/ZJCRe6YBmCYEKewNaDCKw0/img.png)
[InsecureBank와 연동 실험]
인시큐어뱅크 서버 앱 실행 후
로그인을 시도해 보면
![](https://blog.kakaocdn.net/dn/m9Scx/btrFunB8mi7/CSFdi6m7toqXCfmMdyVqsK/img.png)
정상적으로 프록시를 거치게 된다.
프록시 설정 정상 완료!
# 인시큐어뱅크의 경우
소스코드가 공개되어 있기 때문에
별도의 소스 추출 작업이나
추출한 dex 파일을
jar로 변환하는 작업이
생략되지만
실무에서
필연적으로 사용해야 하기 때문에
이후 추가 실습에 별도로 정리할 예정