Vulnerability Assessment/Web Application

웹 서버 정보 확인 (Web server fingerprinting)

DarkSoul.Story 2016. 7. 2. 16:25
반응형



 Steps. 

 1. 개요

 2. 테스트 방법

 


1. 개요


웹 서버 핑거프린팅 (Web server fingerprinting)는 침투테스트에서 중요한 작업이다. 실행중인 웹 서버의 버전 및 종류를 알고 있으면, 알려진 취약점을 선택하여 적절한 공격을 진행 할 수 있다. Web 서버의 종류를 안다는 것은 테스트 프로세스에 도움이 되며 테스트 과정을 변경할 수 있다.


웹 서버의 소프트웨어의 각 버전을 확인하는 방법은 특정 명령을 전송하여, 명령에 의한 응답값을 분석하여 도출 할 수 있다. 하지만 특정 명령을 전송하였을 때, 동일한 반응을 하지 않는다. 그렇기 때문에 여러 명령을 전송하여 응답값을 비교하여 정확도를 높여야 한다.


2. 테스트 방법


웹 서버를 식별하는 간단하고 가장 기본적인 형태는 HTTP 응답 헤더에서 서버 필드를 확인하는 것이다. 여기서는 netcat을 이용하여 테스트를 진행한다.


아래는 HTTP Request에 대한 HTTP Response 결과이다. 



여기서 웹 서버의 버전을 어떻게 확인할 것인가? HTTP Response 헤더에서 Server 필드를 확인하면 된다. Server 필드를 확인하였을 때 확인한 웹 서버는 Ubuntu에서 동작하고 있으며, Apache 2.2.8 버전으로 추측된다. 다른 HTTP Response 헤더를 살펴보자.



위 HTTP Response 헤더의 Server 필드를 확인해보자. 웹 서버는 Windows에서 동작하고 있으며, IIS 8.0 버전으로 추측된다.


그러나,이 테스트 방법은 정확도가 제한된다. 웹 사이트가 모호하거나 서버의 배너 문자열을 수정할 수있는 몇 가지 방법이 있다. 예를 들어, 아래와 같이 서버 필드의 내용을 수정되었다고 가정해보자.

403 HTTP/1.1 Forbidden Date: Mon, 16 Jun 2016 02:41: 27 GMT Server: Unknownr/1.0 Connection: close Content-Type: text/HTML

이 경우, Server 필드의 내용이 임의로 수정되어, 테스터는 이러한 정보를 기반으로 실행되고 있는 웹 서버의 종류를 알 수 없게 된다.


수동으로 웹 서버의 헤더를 분석하는 방법도 있지만, httprint와 같은 자동화된 도구를 사용할 수있다. 



Reference : OWASP (https://www.owasp.org)

반응형