ZAP HUNT Remix

제가 오랬동안 잘 써오던 도구가 있었습니다. 바로 HUNT인데요! 저 또한 분석하는 방법 중 Data Driven Testing을 선호하는 편이라 HUNT 스크립트를 정말 잘 쓰고 있었습니다.

그러던 중 HUNT Remix라고 하여 ZAP, Burpsuite 에서의 기존 스크립트 방식을 Addon 형태로 변경하는 작업이 있는걸 알게 되었고 저도 이제 HUNT 사용을 AdoOn 형태로 변경하였습니다.

오늘은 HUNT가 뭔지 간략하게 설명드리고, Remix 버전의 Addon을 설치하고 사용하는 방법에 대해 이야기드릴까 합니다.

HUNT+DDT

제가 2018년도에 한번 소개해드렸던 도구로 Jason Haddix 가 DEFCON 25에서 발표했던 내용을 위한 도구입니다. 바로 Data Driven Web Hacking 기법에 대한 이야기였는데, 간단히 요약하면 이런 내용입니다.

  • 통계적으로 취약점이 발생하는 파라미터는 비슷한 네이밍을 가지고 있음
  • 예를들면
    • SQLi는 sort, query, id 등의 파라미터에서 잘 발생함
    • SSRF는 url, file, host 등의 파라미터에서 잘 발생함
  • 이러한 원리를 기반으로 테스팅하는 방법을 Data Driven Testing이라고 부름

그래서 HUNT는 바로 이 Data Driven Testing 을 도와주는 도구로, 파라미터 명을 기반으로 가능성이 높은 취약점을 알려주는 도구입니다. 발표 당시 python 기반의 스크립트로 BurpSuite, ZAP에서 로드해서 사용하는 형태였었습니다.

Remix

이후에 저는 계속 스크립트 형태로 사용했었는데, 잘 찾아보니 Remix라고 하여 Burpsuite와 ZAP의 Addon으로 만드는 작업이 있었습니다. HUNTv2고, 현재는 완료되어 사용할 수 있는 상태입니다.

Build AddOn

공식 Repo에선 You can find the latest release (ZAP file) here. 라고 release 페이지에서 받으라고 되어있지만, 릴리즈 태그 등록 시 포함하지 않아 소스코드만 올라간 것 같습니다.

그래서 그냥 빌드해서 처리했습니다.

git clone https://github.com/bugcrowd/HUNT
cd HUNT/Remix/ZAPRemix/
./gradlew build

Build

빌드가 완료되면 아래 경로에 AddOn 파일이 생성됩니다.

  • build/zapAddOn/bin/ZAPRemix-alpha-2.2.1.zap

Troubleshooting

빌드 과정에서 gradle 관련 에러가 있었습니다.

java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

찾아보니 버전 이슈로 gradle/wrapper/gradle-wrapper.properties 파일을 열어 gradle 버전을 6.1.1에서 6.3 으로 변경 후 build 하여 해결했습니다.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

Load AddOn in ZAP

File > Load Add-on file 경로를 통해 빌드한 Addon을 로드할 수 있습니다.

Usage

HUNT는 기본적으로 Scope를 대상으로 동작하도록 구성되어 있습니다. Burpsuite에선 Scope 설정을 하시면 되고 ZAP에도 대상 도메인을 Context에 추가해주시면 Scope 설정이 완료됩니다.

이후에 페이지를 돌아다니면 PassiveScan으로 파라미터 명을 수집하고, 통계적으로 발생할 수 있는 항목들과 매핑해서 HUNT 탭에 보여주게 됩니다.

그리고 우클릭하여 Details를 보면 Attack에 대한 자세한 내용을 볼 수 있습니다.

References

  • https://www.hahwul.com/2018/04/18/bugcrowd-hunt-burp-extension/
  • https://github.com/bugcrowd/HUNT/tree/master/Remix
  • https://stackoverflow.com/questions/61289461/java-lang-noclassdeffounderror-could-not-initialize-class-org-codehaus-groovy-v
  • https://www.youtube.com/watch?v=0CU75vPfIS4