Burpsuite는 웹 사이트 및 애플리케이션을 대상으로 모의 침투 테스트(Penetration Test)를 수행하기 위해 만들어진 도구입니다. 웹 페이지 방문 중에 발생하는 HTTP 요청/응답을 검사하거나, 파라미터 변조, Brute-force 공격을 가하는 등의 복합적인 기능을 제공합니다.
특히나 웹 프록시(Web Proxy) 역할에 초첨이 맞춰져 있어, 웹 서버와 클라이언트(브라우저)간의 교환되는 메시지를 가로채어 다양한 조작이 가능합니다.
Burpsuite 실행
Kali Linux가 설치된 PC(또는 VM)이 있다면, Burpsuite 도구를 쉽게 이용해볼 수 있습니다.
Burpsuite 초기 실행은 Temporary project in memory → Next → Use Burp defaults → Start Burp 순으로 진행합니다.
처음 맞이하는 화면은 아래와 같을 겁니다.
Proxy 설정
우선 PC에서 사용할 브라우저(ex., Firefox)를 프록시로 설정할 것입니다. 이를 위해 좌측 상단 Proxy 탭을 클릭하고, Intercept is off
상태인지 먼저 확인합니다(아닐 시, 버튼을 클릭하여 전환).
바로 아래 Proxy settings 탭을 클릭하여 Proxy Listeners 항목의 네트워크 인터페이스 주소가 127.0.0.1:8080
값으로 지정되어 있는지 확인합니다. 칸이 비어있는 상태라면 좌측의 Add 버튼을 눌러 Proxy 정보를 추가할 수 있습니다.
이제 브라우저를 실행해봅니다. Firefox를 기준으로 우측 상단 설정 버튼(≡
모양 아이콘) → Settings → General → Network Settings 항목으로 진입합니다.
아래 설정들을 완료하고 OK 버튼을 클릭합니다.
- Manual proxy configuration 선택
- HTTP Proxy: 127.0.0.1
- Port: 8080
- Also use this proxy for FTP and HTTPS 체크 박스 활성화
이제 예시로 아래 사이트에 접속을 해볼텐데요.
https://uniqueyoungfreshchart.neverssl.com/online/
Burpsuite 도구로 돌아와 상단 Target 탭을 클릭하면 앞서 방문한 사이트가 리스트에 올라와 있습니다.
HTTPS 인증서 설정
반면 구글이나, 유튜브, 네이버와 같은 사이트를 접속하려고 하면 다음과 같은 경고창이 반겨줄 것입니다. 대게 우리가 사용하는 웹 사이트는 앞의 예시와는 다르게 그냥 HTTP가 아니라 HTTPS로 운영되기에 인증서가 없으면 페이지 접속이 불가능합니다.
인증서의 유무와 신뢰성은 브라우저에서 검증합니다. Burpsuite에서 제공하는 인증서 파일만 던져줘도 이 부분은 간단히 넘어갈 수 있습니다.
브라우저에서 주소 http://burp
로 입력하고 들어가 우측 CA Certificate 버튼을 클릭하여 cacert.der
라는 파일을 다운로드 받습니다.
http://burp
다시 브라우저 우측 상단 설정 버튼(≡
모양 아이콘) → Settings → Privacy & Security → Certificates → View Certificates 버튼을 클릭하고,
Authorities 탭에서 아래 Import 버튼 클릭 → 아까 다운로드 받은 cacert.der
파일을 선택합니다.
Trust this CA to identify websites 및 Trust this CA to identify email users 체크 박스도 모두 활성화해줍시다.
OK 버튼을 눌러 설정을 완료하고 다시 주소창에 구글 주소를 입력해봅니다. 이제는 원하던 페이지가 나타날 것입니다. 또, Burpsuite 주소 리스트에도 구글 URL 검색 기록이 정상적으로 표시되어 있음을 확인 가능합니다.
https://www.google.co.kr
이로서 기본적인 설정은 마무리되었습니다. 다음 포스트에서는 Proxy를 이용해 본격적으로 웹사이트 요청을 가로채고 변조하는 실습을 다룰 예정입니다.