Blog


버그바운티 클럽이 전해드리는 이야기를 확인하세요.



[해킹 도구를 소개합니다 #2] Subfinder: 하위도메인 열거 도구

이번 해도소 코너에서 우리가 소개해드릴 도구는 Subfinder 입니다.Subfinder는 Project Discovery라는 해커와 개발자의 업무 자동화에 필요한 오픈소스 소프트웨어를 개발하는 회사에서 만든 프로그램입니다. 이 도구는 해커가 테스트하려는 타겟 도메인의 잠재적인 하위 도메인을 찾아주는 하위 도메인 열거 도구입니다. 보통 하위 도메인 열거는 정찰, 정보 수집이라고 불리는 초기 단계에서 수행하는 작업으로 취약점을 찾을 수 있는 공격 표면을 확장하고 잠재적으로 취약한 엔드포인트를 발견할 수 있는 확률을 높여주므로 매우 중요한 작업입니다. 이에 우리는 하위 도메인 열거 도구 중 하나인 Subfinder를 소개하기로 결정했습니다. Subfinder 외에도 다양한 하위 도메인 열거 도구가 존재하며 다른 도구들은 Weapons에서 확인이 가능합니다. 설치Subfinder를 설치하기 위해서는 go1.14+가 필요하며 go를 설치하셨다고 가정합니다. Subfinder를 설치할 수 있는 방법은 다음과 같습니다.go를 통한 직접 설치go get -v github.com/projectdiscovery/subfinder/cmd/subfindertar 또는 zip 파일을 통한 설치https://github.com/projectdiscovery/subfinder/releases/ 로 이동하셔서 본인의 환경을 고려해 원하시는 버전을 검토합니다.다음 명령을 통해 Subfinder를 다운로드 받습니다. wget https://github.com/projectdiscovery/subfinder/releases/download/v2.4.8/subfinder_2.4.8_linux_amd64.tar.gztar -zxvf subfinder_2.4.8_linux_amd64.tar.gzmv subfinder /usr/bin/subfinder설치가 끝났다면 다음 명령으로 Subfinder를 실행해봅니다../subfinder아래와 같은 출력화면이 표시된다면 정상적으로 설치가 된 것입니다.출력 화면수동 소스 API 키 설정위의 설치 과정만으로도 Subfinder는 정상적으로 동작합니다. 하지만 Subfinder에서 지원하는 Binaryedge, Certspotter, Censys, Virustotal과 같은 수동 소스의 API 키를 설정해주시면 다양한 수동 소스를 통해 더욱 많은 하위도메인을 찾을 가능성이 높아집니다.수동 소스의 API 키를 설정하기 위해서 $HOME/.config/subfinder/config.yaml 파일을 열어 아래와 같은 내용을 찾습니다. binaryedge: []censys: []certspotter: []chaos: []dnsdb: []github: []intelx: []passivetotal: []recon: []robtex: []securitytrails: []shodan: []spyse: []threatbook: []urlscan: []virustotal: []zoomeye: []그리고 본인이 사용하고자하는 소스의 [ ] 안에 본인의 API 키를 입력합니다. 예를 들면 다음과 같습니다....생략...virustotal: [Enter_your_api_key_here]...생략...사용법단일 도메인 대상 하위 도메인 열거-d 옵션을 사용하면 테스트하고자 하는 타겟에 대해 하위 도메인을 열거할 수 있습니다. 이것은 가장 기본적이고 간단한 사용법입니다../subfinder -d target.com다음은 트위터를 대상으로 실행한 결과입니다. $ ./subfinder -d twitter.com               __    _____           __            _______  __/ /_  / __(_)___  ____/ /__  _____  / ___/ / / / __ \/ /_/ / __ \/ __  / _ \/ ___/ (__  ) /_/ / /_/ / __/ / / / / /_/ /  __/ /    /____/\__,_/_.___/_/ /_/_/ /_/\__,_/\___/_/ v2.4.8 projectdiscovery.ioUse with caution. You are responsible for your actionsDevelopers assume no liability and are not responsible for any misuse or damage.By using subfinder, you also agree to the terms of the APIs used.[INF] Enumerating subdomains for twitter.comcareers.twitter.commta47.e.twitter.comdeveloper-staging.twitter.combbmas.twitter.combrandhub.twitter.comapi-39-4-5-39-4-9.twitter.comema.twitter.com...중간 생략...vpn-lab.smfc.twitter.comaudubon.fra2.twitter.comgoldenglobes.twitter.com[INF] Found 1137 subdomains for twitter.com in 3 seconds 330 milliseconds다수의 도메인 대상 하위 도메인 열거만일 다수의 도메인을 대상으로 실행하고 싶다면 아래와 같이 도메인 리스트가 나열된 파일을 먼저 만드십시요. target1.comtarget2.comtarget3.com...위의 파일을 domains.txt 라는 이름으로 저장했다고 합시다. -dL 옵션을 사용하면 domains.txt 파일에 저장된 각 도메인을 대상으로 하위 도메인을 검색할 수 있습니다../subfinder -dL domains.txt 파일로 결과 저장다음과 같이 -o 옵션을 사용하여 검색 결과를 로컬PC에 파일로 저장할 수 있습니다../subfinder -d target.com -o result.txt수동으로 API 키 설정 파일 지정-config 옵션을 통해 설정 파일을 지정할 수 있습니다../subfinder -config ~/.config/subfinder/config.yaml -d target.com -o result.txt특정 수동 소스 제외 -exclude-sources 옵션을 사용해 검색 시 사용을 원하지 않는 수동 소스를 제외할 수 있습니다../subfinder -exclude-sources censys -d target.com화면에 하위도메인만 출력-silent 옵션을 통해 실행 시 기본으로 표시되는 Subfinder 로고나 알림성 메시지가 출력되지 않도록 할 수 있습니다. 출력에는 검색된 하위 도메인 내역만 표시됩니다../subfinder -silent -d target.com 이 외에도 도움말을 참고하시면 활용할 수 있는 더욱 많은 옵션이 있습니다../subfinder -h버그바운티 실무에서의 Subfinder 활용버그바운티 프로그램의 취약점 점검 대상이 와일드카드 도메인(*.target.com)인 경우에는 하위도메인을 찾아내는 일이 가장 우선되어야 합니다. 따라서 사실상 이 도구를 활용할 수 있는 방법은 보안연구원의 창의력에 달려 있습니다. 다음은 Subfinder 도구를 사용한 사례입니다. 명령에 사용된 다른 도구들은 별도로 설명하지 않습니다.라이브 호스트/도메인/자산 검색 (@YashGoti)subfinder -d http://tesla.com -silent | httpx -silent -follow-redirects -mc 200 | cut -d '/' -f3 | sort -uSubdomain Takerover(하위도메인 인수) 취약점 점검 (@hahwul)subfinder -d {target} >> domains ; assetfinder -subs-only {target} >> domains ; amass enum -norecursive -noalts -d {target} >> domains ; subjack -w domains -t 100 -timeout 30 -ssl -c ~/go/src/github.com/haccer/subjack/fingerprints.json -v 3 >> takeover ; 소개를 마치며지금까지 Subfinder라는 하위 도메인 열거 도구의 설치부터 기본적인 사용법에 대해 소개해드렸습니다. 다양한 하위 도메인 열거 도구가 존재하고 각 도구마다의 장단점이 있습니다. 반드시 Subfinder를 사용해야만 하위도메인을 찾을 수 있는 것은 아닙니다. 개인의 취향이나 선호도에 따라 subfinder가 아닌 다른 도구를 사용하셔도 무방합니다. 버그바운티에 참여하는 보안연구원 대부분은 하위 도메인 열거에 우수한 성능이 입증된 도구 몇 개를 선정해 함께 사용하곤 하며 Subfinder 역시 버그바운티 활동을 하는 많은 보안연구원들이 선택한 도구 중 하나입니다. Subfinder를 통해 빠르고 쉽게 하위 도메인을 찾길 바랍니다. Subfinder Github - https://github.com/projectdiscovery/subfinder
 2021-07-06 10:15 KST      2905

[해킹 도구를 소개합니다 #1] Dalfox: 매개변수 분석 및 XSS 스캐너

웹 애플리케이션 취약점 진단시 빠뜨릴 수 없는 취약점 중 하나는 XSS입니다. XSS는 매우 고전적인 취약점이지만 여전히 가장 빈번하게 발견되는 취약점이기도 합니다. "해킹 도구를 소개합니다"에서 첫번째로 소개드릴 도구는 XSS 식별을 위해 제작된 하훌(@Hahwul)님의 Dalfox입니다. 트위터에서 활발히 활동하는 버그바운티 헌터 중 우리나라(대한민국) 사람은 찾아보기 힘듭니다만 하훌님은 뛰어난 웹 해킹 실력을 보유한 우리나라의 버그바운티 헌터입니다. Dalfox 외에도 다른 도구를 제작하거나 토이 프로젝트를 통해 버그바운티 분야에 공헌하기도 하며 이미 버그바운티 분야에서 꽤나 유명인사가 되어 계시죠.  그의 설명에 따르면 Dalfox는 golang/DOM 파서를 기반으로 한 매개변수 분석 및 XSS 취약점을 스캔하기 위한 커맨드라인 도구입니다. Dalfox라는 이름에서 Dal은 말그대로 한국어로 '달'을 뜻하며, fox는 Find Of XSS의 머리글자입니다. Dalfox의 로고를 한번 보시면 도구의 이름을 감각적으로 잘 표현했다는 것을 볼 수 있습니다. (웹브라우저인 파이어폭스와 조금 비슷하다고 느끼는 것은 아마도 기분 탓일겁니다. :D )설치Ubuntu를 사용하는 경우에는 아래와 같이 단 한줄의 명령만 실행하면 설치할 수 있습니다.sudo snap install dalfox정상적으로 설치되면 아래와 같은 메세지를 볼 수 있습니다.설치가 제대로 되었는지 확인하기 위해 dalfox 명령을 실행해봅니다.dalfoxUbuntu 외에도 Mac OS에서도 설치하여 사용하실 수 있으며, 소스를 통한 설치도 가능합니다.사용법dalfox의 기본 사용법은 아래의 형식을 따릅니다.dalfox [mode] [flags] [data]dalfox는 상황에 따른 다양한 모드를 지원합니다. 현재 지원되는 모드는 아래 5개의 모드가 있습니다.URL 모드(싱글 타겟 모드)파이프라인 모드파일 모드(멀티 타겟 모드)SXSS 모드서버 모드(REST API)URL 모드 (싱글 타겟 모드)URL 모드는 단일 URL에 대한 분석 및 검사를 수행합니다.dalfox url http://testphp.vulnweb.com/listproducts.php아래의 실행 결과를 보시면 지정된 URL을 분석하여 XSS를 검출했음(검사 결과 마지막 부분)을 확인할 수 있습니다. 흥미로운 점은 dalfox에 내장된 데이터베이스 에러 메시지가 노출되는지 검사해주는 점입니다. 에러 메시지가 노출되는 엔드포인트를 통해 SQL 인젝션 공격 또한 시도해볼 수 있겠네요. 파이프라인 모드파이프라인 모드는 시스템 I/O로 입력을 받아 다수의 URL을 대상으로 검사를 수행할 수 있습니다.파이프라인 모드를 사용하면 다른 도구의 출력을 dalfox의 입력으로 사용하는 것이 가능합니다.echo 'urls.txt' | dalfox pipedwisiswant0의 깃허브에 정리해둔 유용한 버그바운티 Oneliner에도 dalfox를 파이프라인 모드로 사용한 사례가 있습니다. (아래 명령어의 뒷 부분)gospider -S targets_urls.txt -c 10 -d 5 --blacklist ".(jpg|jpeg|gif|css|tif|tiff|png|ttf|woff|woff2|ico|pdf|svg|txt)" --other-source | grep -e "code-200" | awk '{print $5}'| grep "=" | qsreplace -a | dalfox pipe | tee result.txt파일 모드 (멀티 타겟 모드)다수의 URL을 검사할 수 있다는 점에서 파이프라인 모드와 유사하지만 검사할 URL 목록을 가진 파일명을 입력으로 받습니다. dalfox file urls.txtBurp Suite이나 ZAProxy의 원시 요청 파일을 입력으로 사용해 검사를 수행할 수 있는 기능을 제공합니다.dalfox file req.raw --rawdataSXSS 모드SXSS 모드는 저장된 XSS(Stored XSS)를 스캔하기 위한 모드입니다. 기본 사용법은 아래와 같습니다. dalfox sxss {TARGET-URL} -d {POST-DATA} --trigger {VERIFY_URL}{TARGET_URL}에는 XSS 페이로드를 주입할 수 있는 URL을 입력하고 -d 옵션으로 POST 데이터를 지정할 수 있습니다. 그리고 --trigger 옵션을 사용해 주입된 XSS 페이로드가 실행되는지 검사할 URL을 지정하여 저장된 XSS에 취약한지 테스트할 수 있습니다. dalfox sxss http://example.com/update_profile -d name=foo --trigger "http://example.com/view_profile"서버 모드dalfox가 서버로서 동작하며 웹 요청을 사용해 스캔을 수행할 수 있는 모드입니다. 현재 Swagger를 지원합니다.dalfox server --host 0.0.0.0 --port 8090소개를 마치며지금까지 Dalfox의 매우 기초적인 사용법에 대해서만 간단히 소개해드렸습니다. Dalfox는 타겟 URL을 분석하여 XSS 및 SQL 인젝션, SSTI, Open Redirect 등의 기본적인 웹 취약점을 식별하기 위해 매우 유용하게 사용할 수 있는 도구입니다. 여기서 소개해드린 사용법 외에도 여러분의 XSS 사냥을 위한 다양한 옵션들이 제공됩니다. 하훌님의 Dalfox 웹사이트를 방문하여 더 자세한 내용을 확인해보세요.제가 아는 한 Dalfox의 제작자 하훌님은 이 도구에 남다른 애착을 갖고 기능을 개선하는 등 활발히 활동하고 있습니다. 훌륭하고 멋진 도구를 제작하여 무료로 공개해 준 그의 배려와 노력에 감사드리며, XSS를 찾기 위해 고생하고 계실 다른 헌터분들께dalfox가 조금이나마 도움이 되기를 바랍니다.
 2021-05-24 11:20 KST      2487