디폴트 페이지 노출 이란, 시스템이 활성화된 상태로 공격 표면에 방치된 기본 설정 페이지를 뜻한다. 모든 시스템은 설치하고 맨 처음 가동되는 디폴트 페이지가 존재한다. 디폴트 페이지에서는 초기 시스템을 세팅하거나 여러 가지 설정 작업이 가능하다.

해커가 디폴트 페이지 노출 취약점을 찾는 방법

공격 표면에는 생각보다 많은 시스템들이 디폴트 상태로 아무 설정도 하지 않고 방치된 채 존재하고 있다. 이러한 디폴트 페이지에는 해커들이 좋아하는 정보들이 매우 많으며, 다수의 보안 위협이 이러한 디폴트 페이지로부터 발생한다.

우선, 해커가 노출된 디폴트 페이지를 통해서 타겟의 인프라 정보를 탐색하고 분석하는 과정을 알아보고자 한다. 디폴트 페이지는 설치 시 기본적으로 보여지는 페이지와 에러 발생 시 메시지가 보여지는 페이지가 있다. Criminal IP (https://www.criminalip.io) 검색엔진에서 클라우드 서비스와 관련된 다양한 디폴트 페이지를  몇 가지 검색 필터를 통해서 찾아낼 수 있다.
시스템을 조금이라도 운영한 경험이 있다면, 어플리케이션에 대한 정보 없이 기본 상식 만으로 디폴트 페이지를 찾을 수 있다. 기본적으로  CIP의 Asset Search (https://www.criminalip.io/asset) 에서 관리자 페이지 혹은 디폴트 페이지에 있을 법 한 키워드인 ‘System Information’ 로 검색할 수 있다. 공개된 웹 서버만 검색하려면 ‘System Information’ 키워드와 함께 서버 상태 코드가 200인 경우만 필터링 해 검색할 수도 있다. 추가로 각 나라 별 코드(Country Code)와 특정 서비스 port 번호를 결합하면 더욱 흥미로운 검색 결과가 나온다.

https://www.criminalip.io/asset/search?query=%22System%20Information%22%20status_code:%22200%22

“System Information” status_code:”200″

Criminal IP에 System Information 키워드 검색으로 디폴트 페이지 노출 취약점 검색한 결과

Criminal IP에 System Information 키워드 검색으로 디폴트 페이지 노출 취약점 검색한 결과

HTML Title 제목에 ‘System Information’ 이라는 문자열을 가진 웹 서버를 탐지했다. 해당 사이트는 Site Information, FileSystem Spec, Sytem Uptime 등의 정보를 보여주고 있으며, 시스템의 기본 환경에 대한 정보를 열람할 수 있다. 

Criminal IP로 찾아낸 System Information 문자열이 포함된 웹 서버의 디폴트 페이지. 시스템 기본 환경 정보를 열람할 수 있다.

Criminal IP로 찾아낸 System Information 문자열이 포함된 웹 서버의 디폴트 페이지. 시스템 기본 환경 정보를 열람할 수 있다.

웹 서버의 디폴트 페이지 노출 검색 키워드

“System Information” 과 함께 디폴트 페이지에서 발견할 수 있는 키워드는 “Status” 이다. 아래 이미지처럼HTML Title이 ‘Status’인 사이트를 검색해보면 다양한 사이트가 검색된다. 그 중 발견한 아래 스크린샷의 사이트는 무선 WiFi 디바이스 장비의 디폴트 페이지이자, 관리자 페이지로 추정된다. 

https://www.criminalip.io/asset/search?query=title:%22Status%22%20status_code:200

디폴트 페이지 노출 취약점을 찾기 위해 Title이 "Status"인 웹 서버를 검색한 결과

디폴트 페이지 노출 취약점을 찾기 위해 Title이 “Status”인 웹 서버를 검색한 결과

해당 디폴트 페이지 웹 서버에 접속해 보니 로그인 인증도 필요 없이 시스템 접근이 가능했다. 이 웹 서버는 가정 및 기업용 데이터, 비디오 및 전화 통신 시스템을 제공하는 미국 통신 장비 회사 Arris International Limited 무선 WiFi 장비 디폴트 페이지였다. 이는 공격 표면에 디폴트 페이지가 노출된 것으로, 장비의 모든 행위를 컨트롤할 수 있는 보안 위협이 있다.

Criminal IP 검색으로 찾아낸 Arris International Limitied의 무선 Wifi 장비 디폴트 페이지 노출 취약점

Criminal IP 검색으로 찾아낸 Arris International Limitied의 무선 Wifi 장비 디폴트 페이지 노출 취약점

Criminal IP 검색으로 찾아낸 Arris International Limitied의 무선 Wifi 장비 디폴트 페이지 노출 취약점

Criminal IP 검색으로 찾아낸 Arris International Limitied의 무선 Wifi 장비 디폴트 페이지 노출 취약점

여기에 디폴트 페이지를 검색하기 좋은 다른 키워드를 추가하면 더 정교한 검색이 가능해진다. 예를 들어 “Status” 앞에 “Panel” 이라는 키워드를 추가하여 검색 범위를 좁히면 WiFi 또는 LTE 디바이스 장비로 예상되는 시스템의 디폴트 페이지를 찾을 수 있다. 

https://www.criminalip.io/asset/search?query=title:%22Panel%20Status%22

Criminal IP에 title:"Panel Status" 쿼리로 검색한 결과

Criminal IP에 title:”Panel Status” 쿼리로 검색한 결과

Criminal IP에 title:"Panel Status" 쿼리로 검색한 결과 중 디바이스 장비로 예상되는 디폴트 페이지 노출 웹 서버

Criminal IP에 title:”Panel Status” 쿼리로 검색한 결과 중 디바이스 장비로 예상되는 디폴트 페이지 노출 웹 서버

공격 표면이 될 수 있는 시스템 에러 페이지

에러 페이지는 시스템에 에러가 발생하면 출력 되는 페이지이다. 시스템 마다 고유한 에러 페이지가 존재하기 때문에, 고유 에러 페이지의 특징으로 원하는 시스템의 주요 정보를 획득할 수도 있다. 디폴트 페이지를 찾는 방식과 방법은 유사하다. 예시로 ASP.NET 웹 어플리케이션의 에러 페이지를 검색해 보았다. Criminal IP Asset Search에 ASP.NET 에 항상 등장하는 에러 문자열인 “Object reference not set to an instance of an object” 를 입력한다. 

https://www.criminalip.io/asset/search?query=%20Object%20reference%20not%20set%20to%20an%20instance%20of%20an%20object

Criminal IP Asset Search에 ASP.NET 시스템 에러 페이지 문구를 입력한 결과

Criminal IP Asset Search에 ASP.NET 시스템 에러 페이지 문구를 입력한 결과

검색된 에러 페이지를 보면, 에러가 있는 소스코드 일부가 노출되고 있으며, 에러 시점에 대한 Stack Trace에서는 웹 어플리케이션 정보를 획득할 수 있다.

에러 페이지에 노출된 소스코드 일부와 Stack Trace 내의 웹 어플리케이션 정보

에러 페이지에 노출된 소스코드 일부와 Stack Trace 내의 웹 어플리케이션 정보

에러 페이지에 노출된 소스코드 일부와 Stack Trace 내의 웹 어플리케이션 정보

에러 페이지에 노출된 소스코드 일부와 Stack Trace 내의 웹 어플리케이션 정보

클라우드에 방치된 디폴트 페이지

클라우드 서버에도 디폴트 페이지  노출 취약점이 방치되어 있는 경우가 많다. 파이어베이스 클라우드 메시징(Firebase Cloud Messaging – FCM) 은  구글이 무료로 제공하는 메시지 전송 푸시 서버로, 사용자의 디바이스에 설치된 앱 단위로 메시지를 전송할 수 있는 서비스이다. Criminal IP Asset Search (https://www.criminalip.io/asset) 에서 HTML Title 에 “Firebase Cloud Messaging” 키워드가 있는 웹 서버를 검색 해보자.

https://www.criminalip.io/asset/search?query=title:Firebase%20Cloud%20Messaging

Criminal IP Asset Search에 "title:Firebase Cloud Messaging" 쿼리로 검색한 결과

Criminal IP Asset Search에 “title:Firebase Cloud Messaging” 쿼리로 검색한 결과

Firebase Cloud Messaging 시스템의 디폴트 페이지 노출 사례

Firebase Cloud Messaging 시스템의 디폴트 페이지 노출 사례

위와 같이 FCM의 디폴트 페이지가 노출되는 것을 탐지할 수 있다. 또한, 간혹 이 페이지에 Instance ID Token 정보가 포함된 경우도 있는데 이 Token 값은 앱 ID 값으로 추정된다. Token 값 또는 API 키 유출은 단순 디폴트 페이지 노출 이상의 심각한 해킹 피해를 입을 수 있다. 관련하여 자세한 내용은 “API Key 하나로 발생될 수 있는 개인 정보 유출 그리고 조작”에서 설명한 바 있다.

다음 글에는  “AWS에 방치된 디폴트 페이지의 보안위협” 을 이어서 다룰 예정이다.


데이터 출처 : Criminal IP (https://www.criminalip.io)

관련 글 :