choideu 2022. 10. 17. 22:15

1. 모의 해킹 대상 정하기

 

2. 정보 수집하기

수집할 정보는 두 가지로 나눠짐

- 웹 어플리케이션을 서비스하기 위한 호스트 환경(운영체제, 웹 서버, 웹 프레임워크)

- 웹 어플리케이션 자체에 대한 정보

 

3. 배너를 통한 정보 수집

간단하게 웹 서버와 관련된 정보 확인 = 응답 메시지의 서버 헤더 확인

Burp suite로 확인한 결과(1)
F12의 개발자 도구, network를 통해 확인한 결과(2)

서버 헤더: 아파치 웹 서버 버전 정보, 운영체제, PHP 버전 정보, OpenSSL의 정보 확인 가능

* X-Powered-By

* X-ASPNET-VERSION

이 두 개의 헤더도 호스트 환경의 불필요한 정보를 노출할 가능성이 있음

 

4. 기본 설치 파일을 통한 시스템 정보 수집

웹 애플리케이션을 운영하기 위한 웹 서버, 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일에 의해 노출될 수 있음

ex) PHP -> phpinfo.php라는 기본 설치 파일을 통해 시스템 정보가 노출될 수 있음

phpinfo.php

5. 웹 취약점 스캐닝

자동화된 프로그램을 이용해 웹사이트의 여러 가지 정보를 수집하고 이 정보들을 바탕으로 어떤 취약점이 있는지 알아내는 과정

Vnlnerability Analysis -> nikto
사용법
결과

  • 서버 헤더 및 PHP, 아파치 버전 확인
  • 보안 관련 헤더 설정 여부
  • 허용된 메소드 목록 정보
  • /icons/, /images/경로에서 디렉터리 인덱싱 발견
  • phpMyAdmin 디렉터리 발견

 

6. 디렉터리 인덱싱

웹 서버의 잘못된 설정으로 웹 서버 디렉터리의 파일들이 노출되는 취약점 

중요 파일 노출

 

7. 웹 애플리케이션 매핑

웹 애플리케이션의 메뉴와 링크를 따라가며 어떤 URL과 파라미터들이 전송되는지, 구조를 파악하는 과정

-> 웹 애플리케이션이 어떤 기능을 가지고 있는지, 각 기능은 어떻게 동작하는지 파악 가능

 

7-1. 수동 매핑

직접 웹 어플리케이션에 접속하여 각 메뉴를 확인함 - burp suite의 site map을 통해 확인 가능(검정색 = 직접 브라우저를 통해 요청한 URL, 회색 = 버프 스위트가 응답 메시지에 포함된 링크를 분석해 알아낸 URL)

7-2. 크롤링

웹 애플리케이션 매핑 과정을 자동으로 수행 가능 

  1. 크롤러가 처음 지정된 URL로 요청(이 URL은 크롤러를 처음 시작할 때 사용자가 지정하게 됨)
  2. 처음 요청에 의해 전송받은 응답 메시지를 분석하고, 응답에 포함된 링크를 각각 추가로 요청함
  3. 링크 요청에 의해 전송받은 응답 메시지를 다시 분석하고, 링크가 포함되어 있다면 또다시 해당 링크를 추가 요청
  4. 더 이상 링크를 찾을 수 없거나 에러메시지(400 | 500)가 응답될 때까지 반복

7-3. DirBuster

URL 목록 파일을 사용해 각 URL을 자동으로 입력해보는 방식으로 구조 파악

7-2가 찾을 수 없는 숨겨진 페이지를 찾을 수 있음

terminal에 dirbuster 입력 후 생성된 페이지에 Target URL 작성

Browse -> /usr/share/dirbuster/wordlists/directory-list-1.0.txt 클릭 후 start 클릭

결과