구글을 이용한 해킹 기법들은 어떠한 것들이 있는가?
지난 호에서 구글의 검색 기능을 이용하여 몇 가지 중요한 정보를 얻어내는 과정을 살펴 보았는데 "그렇다면 어떻게 해킹에 응용 될 수 있을까?" 라는 의문이 생길 것이다.
조금의 지식과 창의력만 가지고 있다면 누구나 구글 검색엔진을 이용하여 여러 정보들을 획득 할 수 있으며, 공격까지 할 수 있다.
이제 구글 검색 엔진을 이용하는 해킹이 어떻게 이루어 지는가를 알아 보자
크게 두 가지 정도로 분류해서 설명 하고자 하는데, 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:\inetpub\iissamples 디렉토리 파일c:\inetpub\iissamples\sdk 디렉토리 파일c:\inetpub\scripts 디렉토리 파일 등등 ·······
[ 그림 1 ] Apache 기본 페이지 < intitle:Test.Page.for.Apache>
[ 그림 2 ] IIS 기본 페이지 < inurl:posinfo.html intext:Web 게시정보 >
◆ 에러 페이지 검색으로 인한 정보 획득 웹 어플리케이션은, 보통 3 -Tier(표현, 응용, 데이터) 구성으로 이루어진다. 3-Tier란 Presentation(표현), Application(응용), Data(저장/데이터)것을 말하며, 예로는 [표현-HTML], [응용-PHP],[데이터- MySQL]을 들수 있다.
하지만 이 3개의 Tier간 통신에서 문제가 발생하게 되면 에러 메시지를 보여주게 되는데, 이러한 에러 메시지를 검색하여 에러 메시지에 포함 되어 있는 중요 정보들을 획득 할 수 있다.
[ 그림 3 ] 에러 페이지 < unexpected end of SQL command site:co.kr>
[ 그림 4 ] 에러 페이지 <"Warning: mysql_connect()" site:co.kr> 결과를 보면, 응용 계층과 데이터 계층 사이의 문제로 인해 에러 메시지가 나온다 특히 [그림3], [그림4]와 같은 에러 메시지는 DB 접속 정보( 호스트, 계정, 비밀번호, DB명) 파일의 이름과 경로를 보여주게 된다.
◆ 백업 파일 검색으로 인한 정보 획득 관리자들은 데이터 관리를 위하여 기본적으로 백업 작업을 한다. 그러나 백업 작업을 수행하면서 관리자의 실수나 관리 기술의 부족 등으로 인하여 백업파일들을 웹 디렉토리 내부에 파일을 생성하여 보관하는 경우가 존재한다. 이러한 경우, 구글 검색엔진을 이용하여 백업 파일들을 노출할 수 있다. 특히 백업을 위한 sql 쿼리 결과에는 사용자 테이블 정보 등과 같은 중요 정보가 포함되는 경우도 존재한다.
[ 그림 5 ] 백업 페이지 < filetype:sql intext:passwd > [그림5]는 mysql 백업 파일을 검색하여 해당 내용을 획득한 것이다. mysql에서는 패스워드를 암호화 하여 저장을 하는데, 암호화된 패스워드 크랙 툴 등을 통하여 패스워드 획득이 가능하다
◆ 패스워드 파일 검색으로 인한 정보 획득 웹 서버는 Database와 통신을 하기 위해서 connect.inc와 같은 Database 접속 계정정보를 가지고 있는 파일을 사용한다. 이러한 파일을 흔히 DB config파일이라고 하는데, 이 파일은 웹 개발자가 어떻게 구현하느냐에 따라 파일명 및 경로가 다르게 설정된다. 그러나, 이러한 DB config 파일 노출에 대한 위험성을 인식하지 못하고 파일명 및 경로를 쉽게 설정하여 공격자로부터 노출될 수 있다.
[ 그림 6 ] DB Config 정보 < filetype:inc inurl:connect >
◆ 대외비 문서의 검색으로 회사 정보 획득 기업에서는 외부에 알려져서는 안 되는 문서들을 "극비, 대외비"등 보안 등급을 지정하여 관리 한다. 구글 검색엔진을 이용하여 해당 정보를 검색 하게 되면, 회사에 대한 민감한 정보를 담고 있는 대외비 문서를 획득 할 수 있다.
[ 그림 7 ] 대외비 문서 검색 < allintext:대외비 filetype:pdf >
Part 2. 구글을 이용한 공격 수행 ◆ 디렉토리 나열 취약점(Directory Indexing)이 존재 하는 사이트 검색 디 렉토리 나열 취약점은 웹 어플리케이션 취약점중의 하나로 웹 디렉토리에 있는 파일들이 보여지는 취약점이다. 이는 U RL 웹 디렉토리 경로까지만 입력 하였을 경우 특정 페이지(index.html, default.html, main.html)의 내용이 보여지는 것이 아니라, 디렉토리에 있는 파일목록이 나열되는 것을 말한다.
이 취약점으로 인하여 웹 어플리케이션의 구조를 파악 할 수가 있으며, 디렉토리 나열 취약점이 존재하는 디렉토리에 기타 여러 가지 백업 파일이 존재 하고 있을 때는 소스 코드 및 중요한 정보들이 공격자에게 바로 노출이 되어질 수가 있다.
[ 그림 9 ] DB 정보 정보(호스트, 계정, 비밀번호등) 디 렉토리 나열 취약점이 존재 하는 사이트를 검색하여 해당 사이트의 파일 목록을 획득 할 수가 있다. 획득한 파일 목록을 확인 하여 보면 [그림9]와 같이 DB 접속 정보를 가지고 있는 Config_sql.pm라는 파일과 그 경로를 알 수가 있으며, 공격자는 이 정보를 이용하여 해당 파일에 있는 정보(host, 계정, 패스워드, DB명)을 획득 할 수가 있다.
◆ 제로보드 4.1 pl 5 버전의 취약점이 존재하는 사이트 검색 제로보드 취약점 중 Include injection(또는 php Injection)의 취약점이 2005년 1월 10일에 발표 되었다. 이 취약점은 제로보드 4.1 pl 5 이전 버전에 존재하는 취약점으로 공격자로부터 WebShell 획득의 결과까지 유발할 수 있는 매우 위험한 취약점 중의 하나이다.
제로보드는 우리나라에 가장 많이 사용되고 쉽게 구현할 수 있는 공개 게시판으로, 다른 취약점에 비해 보다 민감한 부분이며, 주로 초보 웹 관리자들이 많이 사용한다는 점에 그 문제의 심각성이 크게 대두 될 수가 잇다.
구글 검색 엔진을 이용하여 제로보드를 사용하는 사이트를 검색 후, 만일 취약한 버전이라고 확인되면 공격자로부터 침해사고를 당할 수가 있다.
[ 그림 11] WebShell 획득 제로보드를 이용하고 있는 사이트를 검색하여 제로보드 버전을 확인 하였다. 위와 같이 취약점이 존재하는 버전임이 확인 되면 [그림11]과 같이 WebShell을 획득할 수가 있다.
◆ phpMyAdmin 취약점이 존재 하는 사이트 존재 일반적으로 phpMyAdmin 툴은 APM(Apche, PHP, MySQL)과 연동 된 서버일경우 DB를 편리하게 관리 하기 위한 용도로 사용한다. 하지만 이 툴의 경우 웹에서 바로 관리할 수 있는 기능이 있어 관리자 외에도 phpMyAdmin 페이지에 대한 경로명만 알아도 누구나 접속 할 수 있는 문제점이 있다. 제로보드와 같이 현재는 패치가 되었지만 이전 버전의 경우에는 인증절차가 없어서 관리자 이외의 다른 사용자들도 접근이 가능하며, 직접 DB를 관리 할 수 있다.
[ 그림 12 ] PHPMyAdmin 취약점이 존재하는 사이트 검색 < inurl:main.php3 Welcome to phpMyAdmin >
지금까지 구글 검색엔진을 이용하여, 각종 정보 획득 및 시스템 공격이 가능한 방법들을 알아 보았다. 하지만 여기서 논의하고 있는 방법들은 구글을 이용한 많은 해킹 방법 중 일부라는 사실을 꼭 알아 두었으면 한다.
이 외에도 많은 검색어를 이용하여 공격할 수 있는 방법들이 GHDB(Google Hacking Databases)로서 소개되고 있다.(참조 : http://johnny.ihackstuff.com/ )
이 시리즈의 마지막 연재인 다음 호에서는 자신이 관리하는 시스템은 이러한 취약점이 존재하는지 분석하는 방법과 취약점이 존재 할 경우에는 어떠한 해결 방안이 존재하는지에 대해서 알아 보도록 하겠다.
저자 : 컨설팅사업부 이호선 컨설턴트( hosik@coconut.co.kr )
원문 : http://www.coconut.co.kr/secu/letter4_view.php?id=124&page=1&id_num=99&id_depth=99&part=44&no=24
댓글 없음:
댓글 쓰기