Hacking Study/Web Hacking

정보 수집과 대응 방법

_Metamong 2024. 5. 23. 14:24

배너를 통한 정보 수집

 서버의 응답을 통해 정보를 수집하는 방법을 배너 그래빙(banner grabbing)이라고 한다. 응답 헤더의 정보는 웹 브라우저에서 제공하는 개발자 도구(단축기 F12)를 이용하여 쉽게 확인할 수 있다.

개발자도구를 이용한 응답 헤더 확인

 

버프 스위트 히스토리 기능을 통한 응답 헤더 확인

 

 

 

 

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

웹 어플리케이션을 운영하기 위한 웹 서버와 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일로 인해 호스트 환경에 대한 정보가 노출되는 경우가 있다. 

phpinfo.php 를 통한 정보 노출

 

 

 

웹 취약점 스캐닝

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

nikto 웹 취약점 스캐너 옵션

서버 헤더 및 PHP, 아파치 등의 버전이 오래 되었다.

 

 디렉터리 인덱싱

웹 서버의 잘못된 설정으로 웹 서버 디렉터리의 파일들이 노출되는 취약점이다. 디렉터리의 목록이 출력될 때 종요한 문서나 파일들이 원하지 않게 노출될 수 있다.

디렉터리 인덱싱

 

디렉터리 인덱싱 - documents 디렉터리
디렉터리 리스팅 - passwords 디렉터리

accounts.txt 나 heroes.xml 파일은 사용자 관련 정보를 포함하고 있기 때문에 절대 노출되어서는 안되는 파일들이다.

 

 

 

웹 애플리케이션 매핑

 웹 애플리케이션의 메뉴와 링크를 따라가면서 어떤 URL과 파라미터들이 전송되는지 웹 애플리케이션의 구조를 파악하는 과정이다. 이 과정을 통해 웹 애플리케이션이 어떤 기능을 가지고 있는지, 각 기능은 어떻게 동작하는지 쉽게 이해할 수 있다.

 

 

①수동매핑

직접 웹 애플리케이션에 접속하여 각 메뉴를 확인하는 과정이다.

웹 애플리케이션 매핑 결과를 사이트 맵 기능에서 확인할 수 있다.

 

 

 

②크롤링(crawling)

 매핑 과정을 자동으로 수행할 수 있다. 버프스위트 크롤링 기능을 활용하면 더 효과적인 보안 테스트 수행할 수 있는데 유료다. ('Target' 탭으로 이동 -> 스코프에 크롤링할 URL 추가 -> 'Dashboard' 탭으로 이동하여 New scan 시작)

 

 

 

③ DirBuster

 URL 목록 파일을 사용하여 각 URL을 자동으로 입력해보는 방식으로 웹 애플리케이션의 구조를 파악한다. 목록 파일을 사용하여 정보를 찾는 기법을 브루트 포스 공격이라고 하는데, 주로 사용자의 패스워드를 찾는데 사용하는 기법이다.

DirBuster 실행 화면

 

 

 

④ robots.txt

 구글과 네이버 같은 검색 엔진은 대부분 웹 로봇을 이용하여 웹사이트의 정보를 수집한다. 웹 로봇 역시 크롤러의 일종이다. 

bWAPP robots.txt 파일

 

 

 

정보 수집 대응 방법

① 불필요한 정보 노출 삭제 :  반드시 필요한 경우 아니라면 서버 헤더에 제공되는 정보를 삭제하여 전송하는 것이 좋다. 

 

② 스캐너/크롤러 차단 : 자동화된 프로그램으로부터 완전하게 방어하는 것은 불가능하지만 적절한 로깅과 모니터링을 통해 어느 정도 공격 시도를 탐지하고 차단할 수 있다. 공격이 의심되는 경우 IP 주소를 확인하여 차단하거나, user-agent 헤더의 값을 이용하여 차단할 수 있다.

 

③ 디렉터리 인덱싱 설정 제거 : 웹 서버의 설정을 변경하여 대응할 수 있다. 아파치의 경우 아파치 설정 파일의 Indexes 옵션을 제거하여 디렉터리 인덱싱으로부터 보호할 수 있다.

아파치 디렉터리 인덱싱 관련 설정