Metasploit 기능 분석

취약점 분석/2009년 이후 2010. 1. 3. 19:00 Posted by TEAMCR@K

 
Metasploit 기능 분석
by aramlee@a3security.com(A.K.A InPure)
& bdr@a3security.com(A.K.A DearTom)

I. Metasploit 소개

1. 개  요
Metasploit은 취약점 점검에 편리하도록 익스플로잇을 모아놓은 ruby기반(version 3 이상, 그 이하 버전은 perl 기반)의 오픈소스 프레임워크로, 취약점에 대한 깊이 있는 지식이 없어도 간단하고 쉽게 취약점 점검이 가능합니다.
최근 Metasploit 3.3.3 버전이 발표되었으며(2009.12.23), 최신 버전에서는 다음과 같은 기능이 추가되었습니다.
- 모든 익스플로잇에 해당 익스프로잇을 기본 설정으로 하여 타겟에 실행하였을 경우 위험도를 포함하고 있습니다.
- 검색 명령어에 -r옵션으로 위험도가 가장 작은 모듈을 검색할 수 있습니다. (db_autopwn과 nexpose_scan 에서는 –R 옵션을 사용합니다.)
- The sessions command can now run a single command (-c) or a script (-s) on all open sessions at once.
- Win32 EXE파일이 88k에서 37k로 더 작아졌습니다.

2. 지원하는 운영체제
32bit MS Windows, UNIX(Linux)를 지원합니다.

3. 설치

Metasploit 3.3.3(WIN32)은 아래 URL에서 다운로드합니다.
http://spool.metasploit.com/releases/framework-3.3.3.exe
 

  
설치가 완료되면 시작메뉴 > 모든 프로그램 > Metasploit3의 하위메뉴에서 프로그램을 실행합니다.


4. 인터페이스 소개
1) Metasploit3 GUI (WIN32 3.2-release)
Metasploit3 GUI는 3.2 release버전까지 지원되었습니다. GUI는 로컬에서 응용프로그램으로 동작하며, 몇 번의 버튼 클릭만으로 취약점 점검이 가능합니다.
다음은 Metasploit3 GUI를 실행한 화면입니다.
                                                          [그림 1] Metasploit3 GUI 실행 화면


메인 화면의 메뉴 아래의 검색어 입력란에 특정문자열을 입력한 후 찾기를 클릭하면 관련된 모듈을 검색합니다.
다음은 oracle로 검색하여 그 결과를 캡쳐한 화면입니다.
                                                                      [그림 2] 모듈 검색

검색된 모듈에서 필요한 익스플로잇을 선택하면 아래 창에 설명이 출력되며 이 상태에서 더블클릭을 하거나 우클릭을 하여 실행합니다. 다음 화면은 익스플로잇을 선택한 후 우클릭을 한 화면입니다.
                                                                     [그림 3] 익스플로잇 실행

2) Metasploit3 Web
Metasploit3 Web은 웹 인터페이스로 실행하면 로컬의 55555포트로 동작하며 GUI와 같이 사용이 편리합니다.
다음은 Metasploit3 Web을 실행한 화면입니다.
                                                        [그림 4] Metasploit Web 실행 화면

① Exploits
익스프로잇을 검색하는 메뉴입니다.
                                                              [그림 5] Exploit 검색 초기 화면

                                                                   [그림 6] Exploit 검색 화면

검색결과 중 맨 위의 Apache Win32 Chunked Encoding을 클릭하면 익스플로잇 설명과 타겟을 선택 가능한 창이 열립니다.
                                                                [그림 7] Exploit 설명 및 타겟 설정

익스플로잇에 필요한 정보를 모두 설정한 후Launch Exploit 버튼을 클릭하여 익스플로잇을 실행합니다.

② Auxiliaries
Auxiliaries 모듈을 검색하는 메뉴입니다.
                                                             [그림 8] Auxiliaries 검색

Exploit과 같은 방법으로 검색한 결과에서 특정 모듈을 클릭한 후 모듈 실행에 필요한 정보를 입력하고 Launch Auxiliary 버튼을 클릭합니다.
③ Payloads
Payload를 검색하는 메뉴입니다.
                                                              [그림 9] Payload 검색

Exploit, Auxiliary과 같은 방법으로 검색한 결과에서 특정 모듈을 클릭한 후 모듈 실행에 필요한 정보를 입력하고 Generate 버튼을 클릭합니다.
④ Console
Metasploit의 콘솔창을 여는 메뉴입니다.
                                                                    [그림 10] Console 열기

⑤ Sessions
익스플로잇을 실행하여 생성한 세션 정보를 확인하는 메뉴입니다.
세션 유무에 따라 다음과 같은 화면을 볼 수 있습니다.
                                                              [그림 11] 세션 정보가 없는 경우

                                                            [그림 12] 세션 정보가 있는 경우

⑥ Options
Skin을 변경하는 메뉴입니다.
                                                                          [그림 13] Options

⑦ About
Metasploit Framework Web Console 정보를 확인하는 메뉴입니다.
                                                                          [그림 14] About

3) Metasploit3 Console
Metasploit3을 Console창에서 사용하며, 사용할 모듈의 이름을 정확히 알고 있어야 합니다. 다음은 Console창을 실행한 화면입니다.
                                                   [그림 15] Metasploit Console 실행 화면

5. 사용법
① 모듈 로드
공격에 필요한 모듈을 로드합니다.

② PAYLOAD
공격 후 취할 행동을 결정합니다. (REVERSE 연결 등)

③ 타겟 등 모듈을 실행하는 데 필요한 옵션 입력
Info를 입력하여 모듈을 실행하는 데 필요한 옵션 정보를 확인할 수 있습니다.
옵션을 입력할 때에는 모듈명>set 옵션명 옵션값 을 입력합니다.

④ 실행
Run 또는 exploit 명령을 입력하여 실행합니다.

 
II.  Metasploit 활용방안
** 상세한 공격 내용이 포함되어 있어 악용할 우려가 있으므로 중략하였습니다. **

1. 활용방안

Metasploit 3.3.3 기준(Last updated 2009.12.23)으로 468개의 익스플로잇, 192개의 페이로드, 22개의 인코더, 8개의 NOP, 221개의 AUX가 존재하여 다양한 환경을 구성하여 취약점 점검이 가능합니다. 업데이트도 꾸준히 이루어져 최신 취약점도 점검할 수 있습니다. 이 장에서는 취약점 점검에 필요한 모듈을 추가하는 방법과 업데이트 방법에 대해서 기술하였습니다.

1) Metasploit 구조
Metasploit은 다음과 같은 구조로 되어 있습니다.


UI를 수정하고자 할 때에는 /data/mfweb에서, Module은 /modules에서, 프레임워크의 기능을 확장하고자 할 경우에는 /plugins 에서 변경합니다.

2) Modules
Module은 다음과 같이 다섯가지로 구분합니다. 모듈 파일의 경로는 (설치시 기본 경로 기준) C:\Program Files\Metasploit\Framework3\msf3\modules에 존재합니다.
‘⑤ Auxiliary’는 3.0이상부터 추가된 모듈입니다.

① Payload
익스플로잇이 성공한 후에 타겟 머신에 실행할 코드입니다..
사용하기 위해서는 익스프로잇을 로딩한 후 다음과 같이 입력합니다.

② Exploit
취약점을 이용하여 프레임워크가 임의의 코드를 실행할 수 있게 합니다.
다음과 같이 입력하여 익스플로잇을 사용합니다.

③ Encoder
인코딩하는 모듈로 플랫폼에 따른 다양한 인코딩방식을 지원합니다..

④ Nop
실제로 레지스터 상태나 프로세서 플래그에 영향을 미치지 않으면서 실행을 계속하는 인스트럭션을 생성합니다.

⑤ Auxiliary
익스플로잇으로 분류하기 애매한 모듈. 페이로드나 타겟을 사용하지 않는 스캔, DoS, Directory Inexing 등이 포함되어 있습니다.

3) Update
최신 취약점을 점검하기 위해서 Update를 하여 최신 버전으로 유지해야 합니다.
업데이트는 아래와 같은 방법으로 실행합니다.
시작 > 모든 프로그램 > Metasploit > Online Update
                                                                [그림 17] Metasploit Update

다음은 Update를 실행한 화면입니다.
                                                      [그림 18] Metasploit Update 실행 화면

III.  참고 사이트
- Metasploit 공식 홈페이지는 다음과 같습니다.
- Metasploit 공식 홈페이지 http://www.metasploit.com
- Metasploit 공식 블로그 http://blog.metasploit.com

- Metasploit에 관한 정보는 다음의 문서를 참고하였습니다.
- Metasploit3 아키텍처 분석 by xeraph@nchovy.kr
- BHUSA09-Gates-OracleMetasploit-PAPER by Chris Gates & Mario Ceballos
- BHUSA09-Gates-OracleMetasploit-SLIDES from BLACKHAT 2009
- How_2_use_metasploit_3.0 by rich4rd
- Metasploit_Framework_3 by bluearth in N@R
- Metasploit_Framework_Web_Interface_Tutorial by www.learnsecurityonline.com
- Metasploit_advance_bear_NR by bluearth in N@R
- Metasploit_basic_bear_NR by bluearth in N@R

※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.