간만에 새로운 프록시 툴 설치법을 가지고 왔다. 기능은 BurpSuite와 동일한데, mitmproxy는 커맨드라인 기반으로 동작한다.

최근에 이직을 했는데, 이직을 한 회사에서는 Macbook Pro를 지급 해 줬다. 물론 Macbook Pro에서도 BurpSuite는 동작하지만, mitmproxy도 많이 사용한다 해서 설치 해 보았다. 사이트는 여기이다. 윈도우는 위 사이트에 들어가 설치 파일을 다운받아야 하지만, 맥북에서는 terminal을 열어서 아래 명령어를 입력하면 설치할 수 있다.

1
$ brew install mitmproxy

설치 후 버전을 확인 해 보면 아래와 같다.

SSL 통신도 잡아보기 위해서는 인증서를 설치해야 한다. 인증서는 mitmproxy를 실행시킨 후 http://mtim.it로 이동하여 다운받을 수 있다.

해당 페이지에서 각 환경에 맞는 인증서를 설치하면 되는데, 나는 맥북이므로 macOS 인증서를 다운받았다.


아이폰의 패킷을 잡아보기 위해서는 아래의 iOS 인증서를 다운받고, 나머지는 이 전에 올려둔 글과 같이 인증서와 프록시를 세팅하면 된다.

[iOS] 아이폰 BurpSuite 및 Frida 사용 세팅하기


이 후, command + space를 눌러 키체인을 검색하면 아래와 같은 창에서 방금 다운받은 mitmproxy 인증서를 확인할 수 있다.

해당 인증서를 더블클릭 후 상단의 신뢰를 눌러보면 아마 아래와 같이 설정되어 있을 것이다.

해당 값을 아래와 같이 항상 신뢰로 변경 해 준 후 창을 닫는다.

다시 키체인으로 돌아 가 보면 아까와는 다르게 인증서에 파란색 표시가 되어있는 것을 알 수 있다.

아마 대부분은 여기까지 해서 인증서를 설치한 후 터미널에서 확인 할 경우 mitmproxy, 웹에서 GUI 형태로 확인 할 경우 mitmweb을 입력하면 패킷들을 잡아볼 수 있을 것이다. 그런데, 내 경우에는 왜 때문인지 502 Bad Gateway와 함께 아래와 같은 인증서 오류가 발생했다.

ERR_CERT_AUTHORITY_INVALID

Certificate verification error for UR:: self signed certificate in certificate chain

이 경우, 명령어 실행 시 --ssl-insecure 옵션을 주면 정상적으로 실행할 수 있다.

(잡힌 패킷 내 URL은 혹시 몰라서 모두 지워진 상태이다!)

# mitmproxy --ssl-insecure

mitmproxy 실행 시 아래와 같이 패킷을 잡을 수 있으며 >> 표시가 있는 곳에서 Enter를 누를 경우 해당 패킷의 세부 사항을 확인할 수 있다.

패킷 선택 시 Request, Response, Detail을 확인할 수 있으며, 각 탭은 화살표를 통해 이동할 수 있다.

아래는 mitmweb을 통해 웹에서 확인 한 모습이다. 마우스를 이용하여 세부 내용을 확인할 수 있다.

처음에는 좀 적응이 안되겠지만, 쓰다보니 좋은 툴인 것 같아서 앞으로 애용하게 될 것 같다! ㅎㅎ