sh00t — 보안 테스트는 단순히 우클릭 > 스캔처럼 간단하지 않습니다. 지저분하고 어려운 게임입니다. 단 하나의 테스트를 놓쳐서 나중에 후회한다면 어떨까요? Sh00t은 버그 헌터의 삶을 이해하고 수동 보안 테스트를 강조하는 고도로 사용자 정의 가능한 지능형 플랫폼입니다. | Kitploit
Django 전문가이고 모든 것을 직접 설정하고 싶나요? 또한 준비되어 있습니다: 수동 설치
Windows Home과 같이 Hyper-V가 없는 머신을 사용하시나요? Docker Toolbox와 Docker Quickstart Terminal을 사용할 수 있습니다. Sh00t는 도커의 기본 IP인 http://YOUR_DOCKER_IP:8000/에서 실행됩니다. IP 주소는 Quickstart Terminal 시작 시 표시됩니다. docker-machine ls와 docker-machine ip MACHINE_NAME으로도 확인할 수 있습니다.
기존 설정에서 Docker 버전의 Sh00t로 데이터 손실 없이 이동하려면, 수동으로 Docker 컨테이너 내 /root/sh00/db/db.sqlite3 파일을 이전 Sh00t 설정 파일로 교체해야 합니다.
나중에 Sh00t 사용하기:
컨테이너 시작: docker start sh00t
선호하는 브라우저에서 http://YOUR_IP:8000/에 접속
비밀번호를 변경하지 않았다면 sh00t / sh00t로 로그인
필요하면 컨테이너 중지: docker stop sh00t
반복하세요!
참고: 항상 docker start와 docker stop을 사용하세요. 컨테이너나 볼륨을 제거하면 데이터가 손실될 수 있습니다.
업그레이드
새로운 기능과 버그 수정을 활용하려면 Sh00t를 최신 상태로 유지하는 것이 중요합니다.
기존 컨테이너 제거: docker container rm -f sh00t
걱정하지 마세요, Docker 볼륨을 제거하지 않는 한 데이터는 안전합니다.
최신 Docker 이미지 가져오기: docker pull pavanw3b/sh00t:latest
최신 코드로 새 컨테이너를 시작하되 기존 데이터 유지: docker run -d -p 8000:8000 --name sh00t -v sh00t:/root/sh00t/db pavanw3b/sh00t:latest
제거
모든 Sh00t 이미지, 컨테이너, 볼륨을 삭제하려면 다음 명령어를 실행할 수 있습니다. 참고: 이 작업은 되돌릴 수 없습니다.
이미지 제거: docker rmi pavanw3b/sh00t:latest
컨테이너 제거: docker rm sh00t
볼륨 제거: docker volume rm sh00t:/root/sh00t/db
문제 해결:
Sh00t는 Python으로 작성되었고 Django 웹 프레임워크로 구동됩니다. 오류가 발생하면 대부분 오류 메시지를 구글링하면 해결할 수 있습니다. 확실하지 않은 경우 GitHub에 새 이슈를 등록해 주세요.
용어 사전:
Flag: Flag는 Sh00t가 조준하는 대상입니다. 테스트해야 할 테스트 케이스입니다. Flag는 선택한 테스트 방법론에 따라 자동으로 생성됩니다. 버그가 발견될 수도 있고 아닐 수도 있습니다. 목표는 조준해서 쏘는(Sh00t) 것입니다. Flag에는 테스트를 위한 상세 단계가 포함됩니다. 버그가 확인되면 Sh0t라고 합니다.
Sh0t: Sh0t는 버그입니다. 일반적으로 Sh0t에는 버그의 기술적 설명, 영향을 받는 파일/URL, 재현 단계 및 수정 권장 사항이 포함됩니다. Sh0t의 대부분 내용은 원클릭으로 생성되며, 영향을 받는 매개변수, 단계 등 동적 콘텐츠만 변경하면 됩니다. Sh0t는 Assessment에 속할 수 있습니다.
Assessment: Assessment는 테스트 평가입니다. 애플리케이션 평가, 프로그램 평가 등 사용자가 원하는 방식으로 관리할 수 있습니다. 프로젝트의 일부입니다.
Project: Project는 Assessment를 포함합니다. Project는 작업을 논리적으로 구분하는 단위입니다. 다른 업무, 버그 바운티 등 사용자가 결정할 수 있습니다.
Template: Template은 버그 템플릿입니다. Sh0t와 함께 사용됩니다. 새로운 버그를 등록할 때 복사-붙여넣기 작업을 대체합니다. 모든 버그에 대한 Template을 생성하고, 실제 버그 리포트에서 변경될 변수(URL, 영향 영역 등)는 그대로 두면 Template이 Sh0t에 로드될 때 대체됩니다.
Case Master: Case Master는 테스트 케이스 집합입니다. 대상에 대해 수행할 개별 테스트입니다. 테스트 케이스를 구성하면 테스트 관리에 도움이 되고 Assessment에서 필요한 모든 것을 다룰 수 있습니다. 모든 해커는 자신만의 테스트 케이스를 가질 것입니다. 짧고 따라하기 쉽게 유지하세요. Sh00t에서 테스트 케이스의 완전한 목록을 유지하는 것이 Sh00t 사용에서 가장 중요한 부분입니다. 테스트 케이스는 새 Assessment를 시작할 때 테스트해야 할 Flag가 됩니다.
Module Master: Module은 테스트의 논리적 부분입니다. 예를 들어, 사용자 및 세션 관리는 Module의 한 예입니다. Module은 테스트의 카테고리와 유사합니다.
Methodology Master: Methodology는 테스트 접근 방식입니다. OWASP Testing Guide V4와 Web Application Hacker Handbook(WAHH)은 예시 Methodology이며 Sh00t에 기본으로 포함되어 있습니다. 자신만의 Methodology, Module 및 테스트 케이스를 만들 수 있습니다. 공식 업무와 개인 버그 바운티에 대해 서로 다른 Methodology를 가질 수 있습니다. Methodology는 이를 구분하는 데 도움이 됩니다.
어떻게 작동하나요?
새 Assessment를 만드는 것부터 시작합니다. 테스트할 방법론을 선택하세요. 현재 330개의 테스트 케이스가 86개의 Flag로 그룹화되어 있으며, 이는 13개의 Module에 속하며 "Web Application Hacker's Handbook" 테스트 방법론을 참고하여 만들어졌습니다. Module과 Flag는 직접 선택 및 사용자 정의할 수 있습니다. Flag와 함께 Assessment가 생성되면 테스터는 수동으로 또는 스캐너, 도구 등을 사용한 반자동 방식으로 테스트하고 완료 시 "Done"으로 표시합니다. Assessment를 수행하는 동안 애플리케이션의 특정 시나리오에 맞는 사용자 정의 테스트 케이스를 자주 발견하게 됩니다. 새로운 Flag는 언제든지 쉽게 만들 수 있습니다.
Flag가 유효한 버그로 확인되면 Sh0t를 생성할 수 있습니다. 가장 적합한 버그 템플릿을 선택하면 Sh00t가 선택한 템플릿을 기반으로 버그 리포트를 자동으로 채워줍니다.
누가 Sh00t를 사용할 수 있나요?
애플리케이션 보안 엔지니어: 침투 테스트 및 취약점 평가
버그 바운티 헌터
독립 보안 연구원
수정하는 블루 팀, 개발자
해킹하고 싶은 모든 사람
스크린샷:
대시보드:
Flag 작업 중:
전체 화면 편집:
새 Assessment 생성 시 방법론 및 테스트 케이스 선택:
템플릿으로 미리 채워진 버그 등록:
설정:
구현 세부 사항:
언어: Python 3
프레임워크: Django 웹 프레임워크
의존성: Django REST Framework, django-tables2: /requirements.txt에서 관리