본문 바로가기

Study records/Web hacking

정보 수집과 대응 방법

배너를 통한 정보 수집

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

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

 

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

 

 

 

 

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

종종 웹 어플리케이션을 운영하기 위한 웹 서버와 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일로 인해 호스트 환경에 대한 정보가 노출되는 경우가 있다. 예로 PHP 언어로 개발된 경우, phpinfo.php라는 기본 설치 파일을 통해 PHP 환경에 대한 정보, 환경 변수, 그 밖의 다양한 호스트 관련 정보가 노출될 수 있다.

phpinfo.php 를 통한 정보 노출

 

 

 

웹 취약점 스캐닝

웹 취약점 스캐닝이란 자동화된 프로그램을 이용하여 웹사이트의 여러 가지 정보를 수집하고 이 정보들을 바탕으로 어떤 취약점이 있는지 알아내는 과정이다. (모의해킹과정에서는 많은 트래픽이 유발하므로 반드시 담당자의 허가를 받고 진행해야한다)

nikto 웹 취약점 스캐너 옵션

서버 헤더 및 PHP, 아파치 등의 버전이 오래 되었다. 모의해킹을 수행하는 과정에서 오래된 버전을 사용하는 소프트웨어에는 이미 알려진 취약점들이 존재할 수 있는데 이 취약점을 활용하여 쉽게 공격을 성공할 수 있는 경우도 있다.

 

 디렉터리 인덱싱

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

디렉터리 인덱싱

 

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

accounts.txt 나 heroes.xml 파일은 사용자 관련 정보를 포함하고 있기 때문에 절대 노출되어서는 안되는 파일들이다. 그 밖에 web.config.bak, wp-config.bak 파일과 같은 백업 파일을 통해서도 중요한 정보들이 노출될 수 있다.

 

 

 

웹 애플리케이션 매핑

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

 

 

①수동매핑

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

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

 

 

 

②크롤링(crawling)

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

 

 

 

③ DirBuster

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

DirBuster 실행 화면

 

 

 

④ robots.txt

 구글과 네이버 같은 검색 엔진은 대부분 웹 로봇을 이용하여 웹사이트의 정보를 수집한다. 웹 로봇 역시 크롤러의 일종이다. 웹사이트 운영자는 robots.txt 파일을 웹사이트의 가장 상위 디렉터리에 위치시켜 웹 로봇에게 해당 웹사이트의 정보 수집을 허용하거나 불허하는 명령을 내릴 수 있다. 검색 엔진 등이 사용하는 합법적인 로봇은 일반적으로 robots.txt의 내용을 준수하여 수집을 진행하지만 악의적으로 제작된 로봇은 이 내용을 무시하고 Disallow 키워드로 차단한 내용을 정보 수집에 오히려 활용하기도 한다.

bWAPP robots.txt 파일

 

 

 

 

 

정보 수집 대응 방법

① 불필요한 정보 노출 삭제 :  반드시 필요한 경우 아니라면 서버 헤더에 제공되는 정보를 삭제하여 전송하는 것이 좋다. 웹 서버 및 웹 프레임워크 중에는 자체적으로 헤더를 삭제하는 기능을 제공하는 경우가 있다.  웹 방화벽과 같은 보안 장비를 이용하여 일괄적으로 헤더를 삭제하는 것도 가능하다.

 

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

 

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

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

 

'Study records > Web hacking' 카테고리의 다른 글

[Beebox] HTML 인젝션  (0) 2024.06.20
크로스 사이트 스크립팅 공격  (1) 2024.05.25
커맨드 인젝션 공격  (0) 2024.05.25
SQL 인젝션 공격  (1) 2024.05.24
취약한 인증 공격  (0) 2024.05.24