GooOOoodbyestar

구글해킹

공부 ? 2010.10.03 댓글 내꿈은보신탕


검색 서비스는 우리들이 접할 수 있는 각종 포털 탈사이트(다음, 야후, 네이버, 엠파스등)에서도 제공해 준다. 하지만 대부분의 이러한 사이트들의 검색엔진은 포탈 사이트 내의 일부분으로 존재한다. 또 다른 검색엔진으로는 Google을 들 수가 있는데, Google은 전세계적으로 사용되고 있는 검색엔진이며, 검색 할 수 있는 범위와 검색의 결과가 매우 정확하다.

여기서 언급하고 있는 Google에 대해서 더 자세히 알아보자
.
Google
30억 페이지를 수집하고 있고 하루 2억번 이상의 검색결과를 제공하고 있는 세계 최대의 검색엔진 서비스이다. 또한, 메타태그나 키워드에만 의지하지 않고, 페이지 랭크(Page Rank)라고 하는 기법을 사용하여 웹페이지의 공정한 순위를 매김하고 있다. 특히 가장 중요한 부분으로서는 2003년 이후 검색엔진이 지능화 되면서 시스템의 주요 정보 및 민감한 데이터의 접근 경로까지 검색 결과를 제공하는데 있다
.

이러한 여러 기능 때문에 해커들은 Google을 이용하여 각종 중요 정보들을 검색하여, 해킹 대상을 검색 하거나, 기타 여러 정보들을 수집을 한다.
이외에 해커들이 해킹 도구를 Google로 사용하는 이유는 한 가지가 더 있다. 그 이유는 검색 시에 사용되어지는 옵션에 대한 기능적인 면을 들 수가 있는데, 이는 기본 검색 옵션 (link, inurl, intext ), 단어 검색 옵션(+, -, "", | )을 복합하여 사용함으로 중요 정보들을 쉽게 검색할 수 있다는 것이다.

ㄱㄱㄱㄱㄱ


옵션

예 제

내 용

intitle

Intitle : "Welcome"

제목 중 "Welcome" 문자가 포함된 페이지 검색

inurl

inurl : "admin"

URL admin이 포함된 페이지 검색

site

site : "coconut.co.kr"

coconut.co.kr 사이트에서 검색

filetype

filetype : "bak"

확장자가 bak으로 된 파일 검색

intext

intext : "coconut"

coconut 문자열이 포함된 페이지 검색


Google에 대하여 살펴 보는데 앞에서 기술한 내용으로 어떠한 정보들이 노출되어 질 수 있을까? 본격적으로 Google 을 이용하여 이루어지는 해킹 기법에 대해서 알아 보도록 하자.

우선 해킹에 사용할 수 있는 유용한 Google 검색 결과 페이지는 아래와 같다.

"잘못된 시스템 및 어플리케이션 설정으로 인한 에러 메시지", "중요 파일내의 세부적인 정보", "패스워드를 포함한 파일", "사용자 정보를 포함한 파일", "특정 권한을 획득하기 위한 참조 파일", "로그인 페이지", "네트워크 정보나 취약 데이터", "중요한 디렉터리 및 파일", "숨겨진 디렉터리", "백업 파일 및 임시 파일 ", "취약 서버 목록", "웹 서버 종류", "사회공학적 해킹 자료"

이런 정보들을 검색하여 해커들은 필요한 정보를 수집하게 되는데, 이 중 "사용자 정보를 포함한 파일"에 대해서 알아보도록 하자. "사용자 정보를 포함하고 있는 파일"은 많은 종류가 있다. 해커는 필요한 정보에 따라 검색하는 파일의 종류가 선택된다. 만일, 사용자들의 개인 정보가 필요하다고 가정하여 보자. 개인정보를 가장 정확하고 자세하게 담고 있는 파일 중에는 이력서가 있다. 그래서 해커들은 "이력서"라는 검색어를 이용하여 필요한 정보를 획득 할 수 있다. 흔히, 이력서는 각종 매개체(홈페이지, 메일등)를 통하여 정보가 전달되는데, 이 정보들이 웹 서버 자체에 남아 있는 경우가 있기 때문에 검색을 통하여 해당 파일이 노출된다.



이제 구글 검색 엔진을 이용하는 해킹이 어떻게 이루어 지는가를 알아 보자
크게 두 가지 정도로 분류해서 설명 하고자 하는데, Part 1은 구글 검색 엔진을 이용하여 여러 정보를 획득 할 수 있는 방법이고, Part 2는 취약점이 존재하는 사이트를 검색하여 실제로 공격을 수행하는 방법이다.

Part 1. 구글을 이용한 정보 획득
서버 기본 페이지 검색으로 인한 정보 획득

웹 서버(예 : Apache, IIS, iPanet 등)를 운영함에 있어서 기본적으로 설치되는 기본 페이지 및 샘플 페이
지들이 존재 하는데, 이러한 페이지들은 설치 되는 경로와 페이지 이름이 동일하여 공격자에게 웹 서버
에 대한 정보를 제공하게 된다. 이는 해당 웹 서버에 대한 취약점을 검색하거나, 웹 서버 설정 정보가 공
개되어 공격자는 이 정보를 바탕으로 하여 2차 공격을 시도한다.

옵션

기본 페이지 목록

Apache

Iindex.html.ca, index.html.el, index.html.ru.cp-1251,index.html.nn, index.

html.ru.ucs4, index.html.it,index.html.cz 등등 ·······

Microsoft -IIS

c:inetpubiissamples 디렉토리 파일c:inetpubiissamplessdk 디렉토

리 파일c:inetpubscripts 디렉토리 파일 등등 ·······



Apache 기본 페이지 < intitle:Test.Page.for.Apache>


IIS 기본 페이지 < inurl:posinfo.html intext:Web 게시정보 >

에러 페이지 검색으로 인한 정보 획득

웹 어플리케이션은, 보통 3-Tier(표현, 응용, 데이터) 구성으로 이루어진다. 3-Tier란 Presentation(표현), Application(응용), Data(저장/데이터)것을 말하며, 예로는 [표현-HTML], [응용-PHP],[데이터-MySQL]을 들수 있다.
하지만 이 3개의 Tier간 통신에서 문제가 발생하게 되면 에러 메시지를 보여주게 되는데, 이러한 에러 메시지를 검색하여 에러 메시지에 포함 되어 있는 중요 정보들을 획득 할 수 있다.


에러 페이지 < unexpected end of SQL command site:co.kr>



에러 페이지 <"Warning: mysql_connect()" site:co.kr>

백업 파일 검색으로 인한 정보 획득

관리자들은 데이터 관리를 위하여 기본적으로 백업 작업을 한다. 그러나 백업 작업을 수행하면서 관리
자의 실수나 관리 기술의 부족 등으로 인하여 백업파일들을 웹 디렉토리 내부에 파일을 생성하여 보관
하는 경우가 존재한다. 이러한 경우, 구글 검색엔진을 이용하여 백업 파일들을 노출할 수 있다. 특히 백
업을 위한 sql 쿼리 결과에는 사용자 테이블 정보 등과 같은 중요 정보가 포함되는 경우도 존재한다.


백업 페이지 < filetype:sql intext:passwd >

mysql 백업 파일을 검색하여 해당 내용을 획득한 것이다. mysql에서는 패스워드를 암호화 하여 저장을 하는데, 암호화된 패스워드 크랙 툴 등을 통하여 패스워드 획득이 가능하다

패스워드 파일 검색으로 인한 정보 획득

웹 서버는 Database와 통신을 하기 위해서 connect.inc와 같은 Database 접속 계정정보를 가지고 있는 파일을 사용한다. 이러한 파일을 흔히 DB config파일이라고 하는데, 이 파일은 웹 개발자가 어떻게 구현 하느냐에 따라 파일명 및 경로가 다르게 설정된다. 그러나, 이러한 DB config 파일 노출에 대한 위험성을 인식하지 못하고 파일명 및 경로를 쉽게 설정하여 공격자로부터 노출될 수 있다.


DB Config 정보 < filetype:inc inurl:connect >

대외비 문서의 검색으로 회사 정보 획득

기업에서는 외부에 알려져서는 안 되는 문서들을 "극비, 대외비"등 보안 등급을 지정하여 관리 한다.
구글 검색엔진을 이용하여 해당 정보를 검색 하게 되면, 회사에 대한 민감한 정보를 담고 있는 대외비
문서를 획득 할 수 있다.


대외비 문서 검색 < allintext:대외비 filetype:pdf >

디렉토리 나열 취약점(Directory Indexing)이 존재 하는 사이트 검색

디렉토리 나열 취약점은 웹 어플리케이션 취약점중의 하나로 웹 디렉토리에 있는 파일들이 보여지는 취약점이다. 이는 URL 웹 디렉토리 경로까지만 입력 하였을 경우 특정 페이지(index.html, default.html,main.html)의 내용이 보여지는 것이 아니라, 디렉토리에 있는 파일목록이 나열되는 것을 말한다.
이 취약점으로 인하여 웹 어플리케이션의 구조를 파악 할 수가 있으며, 디렉토리 나열 취약점이 존재하는 디렉토리에 기타 여러 가지 백업 파일이 존재 하고 있을 때는 소스 코드 및 중요한 정보들이 공격자에게 바로 노출이 되어질 수가 있다.



디렉토리 나열 취약점이 존재 하는 사이트를 검색하여 해당 사이트의 파일 목록을 획득 할 수가 있다.
획득한 파일 목록을 확인 하여 보면 DB 접속 정보를 가지고 있는 Config_sql.pm라는 파일과 그 경로를 알 수가 있으며, 공격자는 이 정보를 이용하여 해당 파일에 있는 정보(host, 계정, 패스워드, DB명)을 획득 할 수가 있다.

제로보드 4.1 pl 5 버전의 취약점이 존재하는 사이트 검색

제로보드 취약점 중 Include injection(또는 php Injection)의 취약점이 2005년 1월 10일에 발표 되었다.
이 취약점은 제로보드 4.1 pl 5 이전 버전에 존재하는 취약점으로 공격자로부터 WebShell 획득의 결과까지 유발할 수 있는 매우 위험한 취약점 중의 하나이다.
제로보드는 우리나라에 가장 많이 사용되고 쉽게 구현할 수 있는 공개 게시판으로, 다른 취약점에 비해보다 민감한 부분이며, 주로 초보 웹 관리자들이 많이 사용한다는 점에 그 문제의 심각성이 크게 대두될 수가 있다.
구글 검색 엔진을 이용하여 제로보드를 사용하는 사이트를 검색 후, 만일 취약한 버전이라고 확인되면공격자로부터 침해사고를 당할 수가 있다.


댓글