1. 모의 해킹 대상 정하기
2. 정보 수집하기
수집할 정보는 두 가지로 나눠짐
- 웹 어플리케이션을 서비스하기 위한 호스트 환경(운영체제, 웹 서버, 웹 프레임워크)
- 웹 어플리케이션 자체에 대한 정보
3. 배너를 통한 정보 수집
간단하게 웹 서버와 관련된 정보 확인 = 응답 메시지의 서버 헤더 확인
서버 헤더: 아파치 웹 서버 버전 정보, 운영체제, PHP 버전 정보, OpenSSL의 정보 확인 가능
* X-Powered-By
* X-ASPNET-VERSION
이 두 개의 헤더도 호스트 환경의 불필요한 정보를 노출할 가능성이 있음
4. 기본 설치 파일을 통한 시스템 정보 수집
웹 애플리케이션을 운영하기 위한 웹 서버, 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일에 의해 노출될 수 있음
ex) PHP -> phpinfo.php라는 기본 설치 파일을 통해 시스템 정보가 노출될 수 있음
5. 웹 취약점 스캐닝
자동화된 프로그램을 이용해 웹사이트의 여러 가지 정보를 수집하고 이 정보들을 바탕으로 어떤 취약점이 있는지 알아내는 과정
- 서버 헤더 및 PHP, 아파치 버전 확인
- 보안 관련 헤더 설정 여부
- 허용된 메소드 목록 정보
- /icons/, /images/경로에서 디렉터리 인덱싱 발견
- phpMyAdmin 디렉터리 발견
6. 디렉터리 인덱싱
웹 서버의 잘못된 설정으로 웹 서버 디렉터리의 파일들이 노출되는 취약점
7. 웹 애플리케이션 매핑
웹 애플리케이션의 메뉴와 링크를 따라가며 어떤 URL과 파라미터들이 전송되는지, 구조를 파악하는 과정
-> 웹 애플리케이션이 어떤 기능을 가지고 있는지, 각 기능은 어떻게 동작하는지 파악 가능
7-1. 수동 매핑
직접 웹 어플리케이션에 접속하여 각 메뉴를 확인함 - burp suite의 site map을 통해 확인 가능(검정색 = 직접 브라우저를 통해 요청한 URL, 회색 = 버프 스위트가 응답 메시지에 포함된 링크를 분석해 알아낸 URL)
7-2. 크롤링
웹 애플리케이션 매핑 과정을 자동으로 수행 가능
- 크롤러가 처음 지정된 URL로 요청(이 URL은 크롤러를 처음 시작할 때 사용자가 지정하게 됨)
- 처음 요청에 의해 전송받은 응답 메시지를 분석하고, 응답에 포함된 링크를 각각 추가로 요청함
- 링크 요청에 의해 전송받은 응답 메시지를 다시 분석하고, 링크가 포함되어 있다면 또다시 해당 링크를 추가 요청
- 더 이상 링크를 찾을 수 없거나 에러메시지(400 | 500)가 응답될 때까지 반복
7-3. DirBuster
URL 목록 파일을 사용해 각 URL을 자동으로 입력해보는 방식으로 구조 파악
7-2가 찾을 수 없는 숨겨진 페이지를 찾을 수 있음
terminal에 dirbuster 입력 후 생성된 페이지에 Target URL 작성
Browse -> /usr/share/dirbuster/wordlists/directory-list-1.0.txt 클릭 후 start 클릭