본문 바로가기
IT/지식

버프스위트(BurpSuite) 공부1_설치, 설정

by FromZ 2022. 6. 24.
반응형

버프스위트는 웹 애플리케이션 진단도구다.

애플리케이션과 클라이언트 사이에서 HTTP 프록시 기능을 수행할 수 있다. 바로 이 기능으로 중간에서 응답과 요청 메시지를 분석&조작할 수 있다.

 

https://portswigger.net/

 

버전은 Enterprise, Professional, Community로 세 가지가 있다.

몇 가지 기능이 제한되어 있지만 무료로 사용할 수 있는 Community를 설치하자.

 

 

Go straight to downloads

 

 

OS를 선택할 수 있고 우측하단의 All releases로 이동하면 older version 리스트를 선택할 수 있다.

오늘은 기능만 살펴볼 생각이라 진짜 내 컴퓨터에 깔았다. 나중에 위험한 것을 실습할 때는 가상환경 위에 올려야할 것이다.

 

바로가기가 없어서 시작에서 검색했다. 우클릭 -> 파일 위치 열기

 

찾아서 바탕화면으로 옮긴 후 실행했다.

 

이것은 이용약관임ㅇㅇ

아무튼 버프스위트의 무구한 발전을 위해 너의 피드백을 전송할 거다. 동의?

동의했다.

호기심에 거절도 눌러봤는데 프로그램이 꺼졌다.

 

임시파일이 있다고 한다. 노트: 네가 또 다른 버프스위트 인스턴스를 돌리고 있다면 지우기ㄴㄴ

맞다. 예전에 스파이더 기능을 쓰겠다고 이걸 설치해서 실행해본 경험이 있다.

하지만 그때 그건 가상머신이었던 것 같은데. 이상하니까 안내된 경로로 이동해서 임시파일의 생성날짜를 보자.

 

오늘. 그것도 좀 전에 생성된 임시파일이다.


하나만 실행해서 기능만 살펴볼 생각이니까 임시파일은 Delete를 눌러서 처리했다.

 

진입했다. 근데 이거 UI가 엄청 많이 변했다. 완전히 처음 보는 것 같다.

일단 Next를 눌렀다.

 

 

Start Burp

 

이것들도 처음 본다. 아니, Start Burp를 했을 때 보일만한 UI가 아니다.

 

 

Learn 탭을 보고 있던 것이다.

 

User option -> Display에서 폰트를 14로 키우고 Dark로 스타일을 바꿨다.

 

한글이 있는 사이트에서 HTTP 메시지를 받았을 때 한글을 보려면 폰트를 한글로 바꿔야 한다고 한다.

 

Proxy -> Options -> Intercept Server Response -> Intercept response based on ther following rules 체크

Request에서는 기본적으로 체크가 되어 있는데 Response는 체크가 해제되어 있다. Response에서도 체크를 해야 서버에서 돌아오는 응답을 Intercept 할 수 있다.

기본적으로 서버와 클라이언트의 중간에 끼어서 요청과 응답을 볼 것이다.

이는 프록시 상태에서 작업을 수행하게 될 것이다. 따라서 뭔가를 해보려면 프록시 기능부터 활성화해야 한다.

전에 가상머신에서 할 때는 윈도우 익스플로러에서 프록시 설정을 했다.

이번엔 크롬에서 해볼 것이다.

 

로컬 환경에서 할 것이다. 윈도우 10에서는 저 버튼 하나로 프록시 서버 사용을 on/off 할 수 있게 되었다. 전에 비해 굉장히 편리해진 것 같다.

여기서 로컬이 아니라 이더넷이라는 표현을 썼는데, 이더넷은 LAN 환경의 대부분을 차지하는 네트워크 구성 방식이다. 그리고 LAN의 L이 Local이다.

 

8080을 쓰는 이유는 버프스위트의 Proxy Listener에 기본적으로 127.0.0.1:8080 으로 인터페이스가 지정되어 있기 때문이다.

근데 프록시 설정에서 예외된 포트 21300은 뭘까.

음성 통신 프로토콜이다. 괜히 건들기 무서우니까 기본으로 냅두자.

 

프록시 설정 on 상태에서 Intercept is on으로 전환하고 구글에 들어갔더니 이렇게 잡혔다.

gstatic.com은 뭔지도 모르고 요청한 적도 없는데 Host로 잡혀있다.

찾아보니 gstatic은 대역폭을 줄이고 사용자 추적을 하고 쿠키를 관리하는 구글 도메인이며, 이 사이트가 자주 보일 경우엔 컴퓨터가 감염되었을 가능성이 있고 예전에 하루살이처럼 금방 만들어지고 사라지는 악성코드 배포 사이트로도 악용되었다고 한다.

 

그리고 구글은 이렇게 잡혔다.

위쪽 url의 경고, 그리고 연결이 비공개로 설정되어 있지 않다는 문구를 보면 알 수 있다.

그래서 주의 요함을 클릭해봤더니 인증서가 유효하지 않다고 한다.

그럼 ssl 인증서가 불필요한 사이트라면? 된다는 말인가?

http를 사용하는 사이트를 아무거나 찾아봤다.

 

 

환경부가 http를 사용하고 있었다...

 

Intercept가 잘 된다. Host에도 주소가 제대로 찍혀있다.

 

https에서도 MITM을 수행하기 위해 검색하자 http://burp를 통해 받으면 된다고 한다. 그런데 이 주소로 접속이 안 된다. 방법이 바뀌었다는 걸까.

그래서 가장 최신의 글을 찾아보았다.

https://always-try.tistory.com/7

위 티스토리에 매우 잘 정리되어 있었다. 따라서 여기서부터는 글로 요약하겠다.

 

Proxy -> Options -> Import / export CA certificate -> (Export)Certificate in DER format -> Select file -> 인증서명.crt -> Save -> Next -> Close -> 내보낸 인증서를 실행 -> 인증서 설치 -> 로컬 컴퓨터 -> 다음 -> 모든 인증서를 다음 저장소에 저장 체크 -> 찾아보기 -> 신뢰할 수 있는 루트 인증 기관 선택 -> 확인 -> 다음 -> 마침

.crt 확장자는 인증서 포맷이다.

됐다. 다시 프록시를 설정하고 Intercept를 on했다.

https://www.google.com

ssl 인증서를 쓰고 있는 구글로 접속했다.

Host가 제대로 잡혔다! 근데 이거 왜 이러냐

 

원인은 두 가지.

1. 버프스위트에서 한글을 지원할 수 없는 Display 설정이 되어 있을 경우

-> 진작 굴림체로 바꿨는데, 많은 사이트에서 고딕을 추천하고 있다. 그런데 나는 어째선지 Change font 리스트에 고딕이 없다. 일단 굴림체로 냅두고 다음 해결법으로 넘어간다.

 

2. 인코딩 문제

-> 그래서 Character Sets에서 헤더를 보고 자동으로 잡는 방식 대신 Use a specific character set 옵션을 골라 UTF-8로 고정했다.

 

이제 글자가 안 깨진다.

스캐닝 기능까지 있는 OWASP-ZAP은 버프스위트부터 익힌 다음에 써보자.

 

 

반응형

댓글