ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 모의해킹의 첫 번째 정보수집
    웹 해킹 2021. 3. 9. 17:36

    정보 수집은 모의해킹의 대상을 정하고 가장 처음 수행하게 되는 단계이다.

     

    정보 수집은 두 가지로 분류되는데, 웹 애플리케이션을 서비스하기 위한 호스트 환경에 대한 정보와 웹 어플리케이션 자체에 대한 정보로 나뉜다.

     

    서버의 응답을 통해 정보를 수집하는 방법을 배너 그래빙이라하는데, 이 방법은 응답 메시지의 서버 헤더를 살펴보는 방법이다. 웹 브라우저에서는 F12 -> Network에서 확인할 수 있다.

     

    위 그림과 같이 서버헤더를 확인할 수 있다.

     

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

     

    칼리 리눅스에 설치되어 있는 웹 스캐닝 프로그램 중 nikto라는 프로그램으로 정보를 쉽게 수집할 수 있다.

     

    위 그림과 같이 nikto를 활용할 수 있다.

     

    내 칼리 리눅스 IP 에 대해 스캐닝을 할 때, 화면이다.

     

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

     

    디렉터리의 기본 출력 파일을 설정하는 mod_dir 아파치 모듈이다.

     

    사용자가 디렉터리 경로를 요청할 때, 위 파일들이 존재하면 해당 파일을 출력하게 된다. 만약 존재하지 않는다면, 모든 디렉터리 파일들을 출력하는 문제점이 발생한다.

     

    그래서 위에서 nikto 명령어에서  indexing 이 있다고 발견된 디렉터리를 접속해보면 디렉터리 파일 목록이 출력되는 것을 확인할 수 있다.

     

    각종 문서와 파일들이 노출되고 다운로드도 가능하기 때문에 중요한 문서가 노출되면 큰 문제가 될 수 있다.

     

    또한 개인정보, 백업 파일이 노출될 수 있어서 관리자는 반드시 설정과 점검을 해야 한다.

     

    웹 어플리케이션 매핑은 지도를 그리듯, 웹 어플리케이션의 메뉴와 링크를 따라가면서 어떤 URL과 Parameter들이 전송되는지 웹 어플리케이션의 구조를 파악하는 과정이다. 이 과정을 통해 어떤 기능을 가지고 있는지, 어떻게 동작하는지 이해할 수 있고, 모의해킹의 공격 지점을 찾게 된다.

     

    수동 매핑은 직접 웹 어플리케이션에 접속하여 각 메뉴를 확인하는 과정이다.

    크롤링은 웹페이지의 링크를 분석하여 새로운 웹 페이지를 찾아내는 과정이다.

    크롤링은 크롤러라는 프로그램을 사용하는데, 동작 과정을 설명하겠다.

     

    - 크롤러가 처음 지정된 URL로 요청한다. 이 URL은 크롤러를 처음 시작할 때 사용자가 지정하게 되는데, 웹 로봇과 같은 robots.txt. 파일을 읽고 크롤링을 시작한다.

     

    - 처음 요청에 의해 전송받은 응답 메세지를 분석하고, 응답에 포함된 링크를 각각 추가로 요청한다.

     

    - 링크 요청에 의해 전송받은 응답 메세지를 다시 분석하고, 링크가 다시 포함되어 있으면 또다시 해당 링크를 추가 요청한다.

     

    - 더 이상 링크를 찾을 수 없거나 404, 500 등과 같은 에러 메세지가 응답될 때까지 반복한다.

    이렇게 함으로써 자동으로 웹사이트 내의 웹 페이지들을 찾아낼 수 있다.

     

    수동 매핑으로 사이트의 구조를 파악한 후에 스파이더를 통해 크롤링을 하면 효율적으로 매핑할 수 있다.

    숨겨진 페이지까지 찾으려면 Dirbuster를 이용하여 매핑을 할 수 있다.

     

    robots.txt는 검색엔진에서 이용된다는 걸 자주 봤을 것이다. 웹 로봇 역시 크롤러의 일종이다.

    웹 사이트 운영자는 robots.txt 파일을 가장 상위 디렉터리에 위치시켜, 웹 로봇에게 정보 수집을 허용 혹은 불허하는 명령을 내릴 수 있다.

    robots.txt. 파일 내에 User-agent 키워드를 이용하여 지정된 User-agent 요청 헤더를 전송하는 특정 로봇에게 명령을 내릴 수 있다. 특수문자 *를 지정하면 모든 로봇에게 명령을 내릴 수 있다. Disallow 키워드를 이용하여 수집을 차단할 수 있고, 수집을 허용할 때는 Allow를 이용한다.

     

    Disallow 키워드를 통해서 디렉터리의 존재 가능성을 알 수 있고 웹 애플리케이션 매핑을 보완해줄 수 있다. 그래서 robots.txt를 이용하여 보안 정책을 적용하면 안 된다.

     

    정보 수집 대응 방법

    불필요한 정보 노출 삭제

    - 서버 헤더에 제공되는 정보를 삭제하여 전송한다.

     

    스캐너 / 크롤러 차단

    - 스캐너나 크롤러와 같은 자동화된 프로그램으로부터 완전하게 방어하는 것은 불가능하지만 적절한 로깅과 모니터링을 통해 공격 시도를 탐지하고 차단할 수 있다.

     

    디렉터리 인덱싱 설정 제거

    - 디렉터리 인덱싱은 웹 서버의 설정을 변경하여 대응할 수 있다. 아파치의 경우 아파치 설정 파일의 indexes 옵션을 제거하여 디렉터리 인덱싱, 디렉터리 이동공격으로부터 보호할 수 있다.

     


    위 글은 화이트 해커를 위한 웹 해킹의 기술을 참고했습니다.

    댓글

Designed by Tistory.