MSF 소개
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일 무료 버전을 사용할 수 있으나 국내에서는 사용 불가)