
스캐닝 모듈을 이용한 Pentest/BugBounty 진행 관리
범위 제어, 범위 스캐너 및 진행 상황 추적기를 통해 버그 바운티 또는 침투 테스트 프로젝트를 더 쉽게 작업할 수 있습니다.
Positive Technologies의 Anatoly Ivanov
이 도구는 침투 테스트/버그바운티 작업을 보다 체계적으로 수행하고, 진행 상황과 일반적인 스캔 정보를 추적하도록 장려합니다.
다음을 실행할 수 있습니다:
작업 중인 범위에 대해 실행하고 데이터를 편리한 형태로 저장합니다. 프로젝트 데이터에 대한 유용한 필터링을 수행합니다. 예를 들어:
docker-compose를 통한 기본 설정은 docker와 docker-compose 종속성을 가진 모든 시스템에서 실행됩니다.
docker가 설치되어 있지 않다면
sudo apt install docker.io
docker가 설정되어 있다면, Ubuntu/Debian의 경우 간단히
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
git clone https://github.com/c0rvax/project-black
cd project-black
sudo docker-compose up
SQL 오류가 발생하면 docker-compose를 중지(Ctrl + C를 한 번 누르고 정상 종료될 때까지 기다림)한 후 docker-compose up을 실행하세요.
시간이 다소 걸릴 수 있지만, 그게 전부입니다! 다른 배포판에서도 매우 유사한 지침이 적용됩니다.
이제 http://localhost:5000으로 이동하여 자격 증명을 입력하세요. 자격 증명은 https://github.com/c0rvax/project-black/blob/master/config/config_docker.yml 파일의 application 아래에서 확인할 수 있습니다.
더 복잡한 설정이나 문제가 발생한 경우 위키를 참조하세요.
docker 컨테이너 중 리소스 사용량을 제한하는 것은 없습니다. 사용자가 직접 관리해야 합니다. 하지만 각 작업자에 대한 병렬 작업 수를 별도로 변경할 수 있습니다. 위키를 참조하세요.
설정 후 프로젝트를 생성하고 해당 페이지로 이동하세요.

이제 애플리케이션 내에서 수행할 수 있는 기본 단계를 따라가겠습니다.
hackerone.com과 모든 하위 도메인을 평가한다고 가정해 보겠습니다. 'add scope' 필드에 hackerone.com을 입력하고 'Add to scope'를 누르세요.

진입점이 추가되었습니다.
범위를 추가하는 다른 방법도 있습니다. 위키를 참조하세요.
모든 작업은 사용자로부터 매개변수를 읽을 수 있지만, 일부 옵션으로 실행해도 프로그램의 모든 가능한 출력을 구문 분석하기 어렵기 때문에 새로운 결과가 표시되지 않을 수 있습니다. 따라서 시작하려면 이 설명서의 옵션을 복제하여 작업해 보세요.
사용 가능한 옵션은 이 페이지에서 확인할 수 있습니다.
파란색 버튼 Launch task를 클릭하세요.

매개변수가 포함된 팝업이 나타납니다.

All_top_level_domains 체크 박스를 클릭하고 argv에 -ip를 입력한 후 'Fire!' 버튼을 클릭하는 것이 좋습니다.

그러면 amass -d hackerone.com -ip가 실행됩니다. 이 경우 도메인을 지정하지 않았습니다. All_top_level_domains 체크 박스는 데이터베이스에 저장된 범위를 찾는 것을 의미하기 때문입니다. 따라서 프로그램은 범위에 hackerone.com이 추가되었음을 확인하고 그에 대해 amass를 실행합니다.
완료되면 새 데이터가 자동으로 범위에 추가됩니다.
이제 IPs 탭으로 이동하세요. 이미 알고 있는 Launch task 버튼을 클릭하고 masscan을 선택하세요.
Top N ports 버튼을 사용하여 빠른 스캔을 실행하겠습니다. 그러면 argv 매개변수가 자동으로 완성됩니다. Fire!를 누르세요.

결과가 데이터베이스에서 자동으로 다운로드됩니다.

이제 Launch task를 클릭하고 nmap only open을 선택하세요. 그러면 데이터베이스에 있는 모든 열린 포트를 찾아 nmap만 실행합니다.
Banner를 클릭하고 Fire를 누르세요.

감지된 배너가 자동으로 나타납니다.

모든 IP와 모든 열린 포트(HTTP와 HTTPS 모두 시도)에 대해 dirsearch를 실행합니다.
IPs 탭에서 Launch task를 클릭하고 dirsearch를 선택하세요. 시도하려는 확장자를 입력하고 Fire!를 클릭하세요.
Hosts 탭에서 호스트(IP가 아님)에 대해 dirsearch를 실행할 수 있습니다.
포트가 없으면 dirsearch가 시작되지 않습니다. 따라서 먼저 nmap 또는 masscan을 실행하여 열린 포트를 발견했는지 확인하세요.
결과를 확인하는 방법은 일반적으로 세 가지가 있습니다:
이것은 두 개의 탭입니다. 동일한 방식으로 작동하므로 Hosts에 대해 설명하겠습니다.

호스트, 해당 포트 및 파일 목록을 볼 수 있습니다. 또한 해당 호스트에 대한 주석을 편집할 수 있습니다.
여기서 중요한 부분은 필터링 상자입니다.

위에 표시된 필드를 사용하여 다양한 필터를 집계할 수 있습니다. 원하는 필터를 입력하고(도우미가 있음) Shift + Enter를 누르세요.

특정 호스트 또는 IP에 대한 세부 정보를 볼 수도 있습니다. 안경 모양의 버튼을 누르세요.

해당 호스트의 모든 열린 포트에 대한 dirsearch 결과를 볼 수 있습니다.
Dirsearch list 버튼은 이 프로젝트에서 실행된 모든 dirsearch에 대해 발견된 모든 파일을 보여주는 새 창을 엽니다.
IPs와 Hosts의 Launch task는 다릅니다! IPs 페이지의 버튼은 현재 프로젝트 내의 모든 IP에 대해 실행되는 반면, Hosts 페이지의 버튼은 호스트에 대해 실행됩니다.
일부 호스트에 대해 작업을 실행하려면 다음을 수행해야 합니다:
예:

일부 필터가 적용되었습니다. 이제 dirsearch를 실행하면 사용된 필터에 해당하는 호스트에 대해 실행됩니다.