공부/Metasploit

MSF 소개

김대욱대욱 2018. 10. 30. 00:22

MSF소개

 - Metasploit Framework는 오픈소스 커뮤니티와 Rapid7의 합작품으로 보안 및 IT 전문가들이 보안 문제를 식별하고,

   취약점을 완화하며, 전문가 수준의 보안 평가기능을 제공한다. 

   세부 기능으로는 지능형 공격, 패스워드 감사, 웹 어플리케이션 스캐닝, 사회 공학 등이 있다.

 - HD Moore가 개발(Perl + C -> Ruby) + Rapid

 - 보안 테스팅을 위한 일종의 통합 체계로 모듈화 된 구조를 가지고 있음 


 - Framework란?

   소프트웨어 설계와 구현을 재사용 가능하도록 해주는 뼈대

   구체적이며 확장 가능한 기반 코드를 가지고, 설계자의 의도에 따르는 여러 디자인 패턴 집합으로 구성


 - 용어 정의

   익스플로잇(exploit): 시스템, 애플리케이션, 서비스 등의 취약점을 공격하는 방법

   익스플로이테이션(exploitaion): 익스플로잇을 하는 행위

   후속 공격(post exploitation): 익스플로잇이 성공한 후 수행하는 공격

   취약점(vulnerability): 시스템 또는 소프트웨어에 존재하는 결함

   페이로드(payload): 쉘코드, 최종 공격 목적코드

   모듈(module): 루비에서 말하는 모듈 / MSF에서 사용하는 모듈

   리스너(listener): 연결 요청을 기다릴 수 있도록 해 주는 기능

   세션(session): MSF와 공격 대상 시스템 사이에 맺은 연결 채널

   제로데이(Zero-Day): 아직 알려 지지 않은 새로운 취약점

   Poc(Proof of Concept): 취약점을 증명하기 위해 만들어 진 증명 코드


MSF 구조 및 동작 원리

 - 인터페이스 : 사용자와 상호작용하기 위한 사용자 인터페이스

 

 - 모듈 : 모듈화된 기능을 정의한 부분(기능-운영체제-서비스)

    -> Exploit: 시스템 및 응용 프로그램의 취약점을 이용하는 공격 코드 모음

    -> Auxiliary: 페이로드를 필요로 하지 않는 공격 또는 정보 수집을 목적으로 하는 코드모음

    -> Post: 익스플로잇 성공 후 대상 시스템에 대한 추가 공격을 위한 코드 모음

   

   위 3개 모듈의 보조기능 역할

   -> Payload: 익스플로잇 성공 후 대상 시스템에 대한 추가 공격을 위한 코드 모음

     * Singles: 단 하나의 기능을 가지거나 사전 단계 없이 직접 쉘 획득에 참여하는 페이로드

     * Stagers: 공격자와 대상 시스템을 연결 후 2단계 페이로드를 불러오는 역할을 하는 페이로드

     * Stages: stager 페이로드가 로드해 주는 2단계 페이로드

    -> NOPS: 오직 레지스터 및 프로세서 플래그 상태 변화에만 영향을 미치는 무의미한 명령어들을 만들어 내는 코드 모음, 안티바이러스  

                 및 침입 탐지 제품의 우회를 위해 사용


 - 라이브러리: 메타스플로잇의 뼈대역할을 하는 핵심 라이브러리들의 모음

    -> REX(Ruby Extension Library)

     루비 확장 라이브러리

     프레임워크에 필요한 클래스와 모듈을 제공하는 역할

     하위에 위치한 모든 패키지들의 상위 클래스처럼 동장

     핵심 클래스: 범용 클래스, 스레드 안정성 및 동기화, 스레드 팩토리, 인코딩, 아키텍처,

     서브시스템, 어셈블리, 서비스, 로깅, 입출력, 소켓, 프로토콜, 호환성, 익스플로이테이션


    -> Framework Core

     모듈과 플러그인에 인터페이스를 제공하기 위한 클래스 모음

     렉스 라이브러리에서 정의한 기능을 토대로 구성

     핵심 클래스: 범용 클래스, 프레임워크 문맥, DB관리자, 이벤트 관리, 프레임워크 관리,

     프레임워크 옵션, 익스플로잇 드라이버


    -> Framework Base

     프레임워크에서 사용하는 세션을 구현

     코어의 작업 관리를 위한 래퍼 인터페이스 제공

     핵심 클래스: 구성 설정, 심플 프래임워크, 세션, 시리얼화, 지속형 저장 공간, 유틸리티

 

 - 기타: 프레임워크 플러그인, 보조 도구 등을 포함

 

디렉터리 구조 및 역할

 - data: MSF에서 사용하는 데이터 파일들 모음

 - lib: 핵심 라이브러리 파일들을 포함(rex, core, base)

 - modules: MSF 모듈 파일들이 위치한 공간

 - plugins: 실시간 로드가 가능한 플러그인 코드 모음

 - scripts: 미터프리터를 포함한 스크립트 파일 모음

 - tools: 모의해킹 과정에 도움을 주는 다양한 유틸리티 모음

 - vendor: 루비 관련 파일

 

인터페이스 소개

 - msfconsole

    -> 커뮤니티 버전의 유일한 인터페이스. GUI는 아미티지만 남은 상황

    -> 콘솔 기반 인터페이스로, 메타스플로잇의 대부분 기능을 지원함 (리포트 및 시각화는 조금 떨어짐)


 - Metasploit Pro

    -> 유료 버전에 제공되는 인터페이스 (14일 무료 버전을 사용할 수 있으나 국내에서는 사용 불가)