BurpKit - Awesome Burp suite Extender(Burp에서 개발자 도구를 사용하자!)

올해 초 쯤인가요? Payload 관련해서 공유 받은 내용이 있었는데, 알고보니.. 쓸만한 툴을 팍팍 찍어내고 계신 CrowdShield의 1N3의 Git이였습니다. 이중에서 하위 플러그인 디렉토리를 통해 Burp suite 확장기능을 추가로 배포하고 있는데요. 오늘은 그 중 하나인 Burp Kit에 대한 내용으로 글 작성해봅니다.

https://github.com/1N3/IntruderPayloads/tree/master/Plugins

Burp kit?

처음에 확장기능을 로드해보고 감이 왔었느데, 개발자 도구가 Burp 안으로 들어갔다라는 느낌을 받았었습니다. 물론 그떈 실제로 사용해본 상태가 아니였기 떄문에 느낌적인 느낌이였는데요. 최근에 깨작꺠작 써보니.. 그 느낌이 잘 맞았었네요.

Burp kit는 Burp suite 안에서 웹 페이지 렌더링과 JS Debugger, Console 등 웹 브라우저에서 개뱔쟈 도구를 사용할 수 있도록 지원해줍니다. 그러다 보니 Burp 화면에서 바로 Javascript에 대한 테스팅, 디버깅이 가능하여 분석하는데 있어 편리합니다.

Download & Install

우선 아래 Git 주소에서 BurpKit-1.02-pre.jar 확장기능 파일을 받아줍니다. 아래 Direct link 부분으로 raw 파일을 바로 받으셔도 됩니다.

Link https://github.com/1N3/IntruderPayloads/tree/master/Plugins

Direct link https://github.com/1N3/IntruderPayloads/raw/master/Plugins/BurpKit-1.02-pre.jar

다른 확장기능 로드하는 것과 똑같이 Burp > Extender > Add > jar 파일 로드하여 적용이 끝납니다.

How to use?

확장기능을 로드하면 Burpkitty, Burpscript IDE 라는 탭이 2개 생깁니다. 첨에 여기서 무언가를 할 수 있을거란 생각에 이리저리 굴려봤지만 잘 동작하지 않아서 좀 그랬었죠… 아마 기능 구현에 약간의 오류가 있지 않았을까 싶습니다.

위 부분 제외하고 사용법에 대해 이야기드리면, repeater와 proxy history 페이지 같은 MessageEditor 부분에서 사용이 가능합니다. (MessageEditor는 Burp에서 API로 제공하는 IMessageEditor 컴포넌트, 컨트롤러 사용 부분으로 대다수 확장기능들과 기본적인 기능들 중 Request/Response 를 볼 수 있는 부분들 모두 해당되는 구간입니다)

이런 영역들이 IMessageEditor 부분입니다.

확장 기능 설치 이후에 MessageEditor를 보면 BurpKit 탭이 추가되어 있습니다.

원랜 없지만 새로 생김! 확장 기능 개발할떄도 MessageEditor 쪽 추가하면 저렇게 추가됨

들어가보면 Javascript console, XSS Tracker, Page Resources, Network, BurpScript IDE탭이 존재합니다.

Javascript console

웹 브라우저에서 사용하는 console과 동일합니다. 로드된 페이지의 Object에 대해 체크할 수도 있고 Javascript 자체에 대해서 테스트할 수도 있습니다. 추가로.. 개발자도구~IDE에서 지원하는 것과 같이 자동 완성 기능도 제공합니다.

XSS Tracker

XSS Tracker는 input<->output 간 테스트를 위해 사용하는 탭입니다. Taint 라는 값을 Request에 삽입하고 이를 추적해 XSS의 흐름(?)을 보는 기능으로 생각됩니다. 개인적으로 안쓰는 부분이라 정확하진 않습니다. 그냥 제 생각일뿐…

우클릭은 캡쳐가 안되요..

Page Resources

해당 페이지에서 추가로 로드한 페이지나 링크들을 나열해줍니다. Network 탭과 비슷하지만, 실제로 불러오지 않아지만 HTML&Javascript 단에서 불러올 가능성이 있으면 열어줍니다. (예를들면 동적 페이지로 로드, display:none 처리로 객체 생성 안된경우)

Network

브라우저 개발자 도구의 Network 탭과 동일합니다. 페이지 요청 시 발생하는 Request/Response에 대한 정보를 담고있습니다.

BurpScript IDE

마지막으로 스크립트 코딩, 페이지 삽입을 위한 IDE(? 라고 하기엔 좀 기능이 적지만..)입니다. 개인적으로 약간 아쉬움이 남는 기능인데, 전 처음에 Java단 코드 즉 Burp 자체를 제어하는 코드를 작성하고 적용하는 부분이라고 생각했지만 Javascript 코드만 처리할 수 있습니다. (만약 Java단 제어가 되는거였다면 저기서 동적으로 확장기능 만들면 참 편리할듯.. 매번 Load/Unload 하기 넘 귀찮음, 느리고..)

Javascript 단 테스팅 코드를 미리 작성하고 저장해뒀다가 필요할 때 바로 눌러서 돌려볼 수 있습니다. 물론 이 기능 자체도 쓸만하긴합니다. (예전에 Fiddler로 확장기능 만들던게 생각나네요. 그건 Js 기반이였는데)

Conclusion

최근에 봤었던 확장기능중에 개인적으로 손에꼽는 쓸만함입니다. 어차피 Active scan과 Passive scan으로 뻔한건 잡히니 우리는 장인 정신으로 자동화 도구가 보지 못하는 부분들을 봐줘야하는데, 이를 도와주는 확장 기능이란 것 자체가 분석가, 엔지니어 입장에선 아주 맘에드네요. :)