본문 바로가기

Learning/└◆Metasploit

metasploit 01 개요

메타스플로잇 프레임워크(Metasploit Framework)

취약점진단 통합 프레임워크

Nessus와 의 차이점

Nessus는 점검하는 코드, 취약점 스캐너 이다.

MSF(Metasploit Framework) 오픈 소스 도구이며

공격 코드(exploit)

페이로드(pay load)

인코더(encoder)

정찰 도구

보안 테스팅

등을 제공하는 일종의 체계 (루비 언어 기반)

광범위한 영역의 정보 탐색, 공격, 사전 침투에 관련된 보안 툴의 설계와 개발 능력 제공

MSF(Meta Exploit Framework)는 새로운 공격 코드, 페이로드, 정보 탐색 도구들을 개발 할 수 있는

환경을 제공하는 최초이자 최고의 기반 프로그램이다.

MSF는 새로운 보안 테스팅 기술의 개발과 보안 리서치를 가능하게 하는 도구,

관련 유틸리티들을 직접 설계할 수 있는 기반을 제공한다.

유닉스(UNIX), 리눅스(LINUX), 윈도우(WINDOWS), (MAC) 환경을 지원한다.

메타 익스플로잇은- (유료) 프로(MSF pro) 버전과- (무료) 커뮤니티(MSF community) 버전을 제공하고 있다.

칼리리눅스에서는 커뮤니티 버전이 포함되어 있다.

 

칼리 리눅스에서 커뮤니티 웹 서비스 접근하기

 

 

@KaliLinux

# msfdb

Manage a metasploit framework database

 

  msfdb init        # initialize the database
  msfdb reinit     # delete and reinitialize the database
  msfdb delete    # delete database and stop using it
  msfdb start      # start the database
  msfdb stop      # stop the database 

 

# msfdb init

# cat /usr/share/metasploit-framework/config/database.yml

 

 

db기동 및 확인

# netstat -an | grep :5432

# service postgresql status

 

# service postgresql start

 

 

msfconsole 기동

# msfconsole

 

msf > db_status

명령어 및 출력 결과가 db에 저장 될 것

postgresql connected to msf

 

확인

# update-rc.d postgresql enable

# update-rc.d --status-all

 

메타스플로잇 구성 요소

 

 

(1) 라이브러리(Libraries) 종류

 

메타스플로잇은 프레임워크의 주요 기능을 구현하기 위해 다양한 라이브러리를 사용한다.

이런 라이브러리는 사전 작업, 정의된 업무, 공격 기술, 함수의 집합으로, 프레임워크의 많은 모듈에서 활용된다.

 

Rex(Ruby EXtension) 라이브러리 묶음

The basic library for most tasks

Handles sockets, protocols, text transformations, and others

SSL, SMB, HTTP, XOR, Base64, Unicode

 

루비확장(Rex, Ruby Extension) 라이브러리는 메타스플로잇의 필수다.

Rex의 일부 컴포넌트는 클라이언트와 서버 프로토콜을 구현한 소켓 시스템, 로깅 시스템, 공격에 활용되는 클래스 등

많은 유용한 클래스를 포함하고 있다. Rex 자체는 루비에서 기본적으로 설치되는 것과 달리 의존적이지 않게 설계되었다.

 

Msf::Core

Provides the 'basic' API

Defines the Metasploit Framework

 

Msf::Base

Provides the 'friendly' API

Provides simplified APIs for use in the Framework

 

 

(2) 모듈(Modules) 종류

 

Exploits Defined as modules that use payloads

An exploit without a payload is an Auxiliary module

Nessus : 취약성을 점검할 때 쓰는 코드

Exploits : 취약성을 공격할 때 쓰는 코드

 

Payloads, Encoders, Nops

Payloads consist of code that runs remotely

Encoders ensure that payloads make it to their destination

Nops keep the payload sizes consistent.

Payloads : 취약성을 공격 후 추가적으로 프로그램등을 덧붙히는 것

Encoders : 데이터를 상대방에게 메일 방식으로 전송할 때 눈으로 보이지 않는 출력 값(Ctrl,Space,Esc등)을

눈에 보이는 값으로 변환시키는 과정 (ex.Ctrl -> AA라고 규약) 호환관계 때문에 사용(한국어는 글자당 2byte가 필요, ASCII값과 다름)

Decoders는 반대 과정

Metasploit Modules에서 Encoders는 payloads 과정에서 바이러스등을 잡아내지 않게

인코딩 하여 코드를 변형시켜 디텍션을 방지하는 용도 (IPS,바이러스웜,탐지,차단 우회)

Nops : 아무런 동작을 하지 않는다.(바이러스 프로그램 첨부파일을 인식하지 못하도록 코드를 잘라서 크게 늘린다.) 

디텍션 할 때 프로그램의 파일 전체를 보지 않고 상단에 중요한 정보만을 보고 판단하기 때문에 코드를 길게 늘려서 걸리지 않게 하기 위함 

 

(2-1) 중요 모듈에 대한 설명(공격용 코드)

 

MSFpaylocad

다른 프래임워크의 많은 익스플로잇과 실행가능한 파일, 쉘코드등을 만들 수 있게 도와준다.

쉘코드는 C, 루비(Ruby), 자바스크립트(JavaScript), 비주얼베이직(Visual Baic)등으로 만들수 있다.) 파이썬(Python) 기반의 프로그램 검증이 필요하면 C 스타일로 작성하면 좋다.) 브라우저 익스플로잇을 만들려면 자바스크립트 형식으로 만들면 좋다.

보통 명령어 수행시 도움말을 보고 싶다면 # msfpayload -h 수행하면 된다.

또는 msfcli 명령어의 옵션을 자세히 보고 싶다면 명령의 마지막 부분에 '0'이라고 입력하면 된다.# msfpayload windows/shell_reverse_tcp 0

 

MSFencode

메타스플로잇 개발자들은 인코딩을 통해 안티바이러스나 IDS, bad characters를 회피할 수 있게 해준다.() @ cleartext : 표시할 때 설명이 필요 없는 텍스트, 즉 암호화 되지 않음 평문

보통 명령어 수행시 도움말을 보고 싶다면# msfencode -h

 

Auxiliary(조력자, 보조)

익스플로잇의 집합체(엄밀히 말해서 auxiliary는 익스플로잇이 포함되어 있지 않다.)이다.

18가지 정도로 분류되어 있다.

 

 

(3) 인터페이스의 종류

 

msfconsole

가장 유연하고, 풍부한 문자와 지원이 잘되는 도구하는 이유로 메타스플로잇 프레임워크 가운데 가장 많이 이용하고 있다.

msfconsole을 이용하여 공격을 수행하고, 보조 모듈을 로딩하며, enumeration 실행, 리스너 생성, 또는 전체 네트워크에 대해 방대한 공격을 수행할 수 있다.

 

msfcli

msfconsolemsfcli 차이점(대화형 모드 ) msfconsole(비대화형 모드) msfcli

콘솔 기반 도구를 가지고 스크립트에 기초한것이다. , 프레임워크에 각 인터프리터를 제공하지 않고, 커맨드라인 인터페이스에서 직접 실행된 다른 도구에서 나온 결과를 msfcli에 다시 전달하고, msfcli의 결과를 다른 커맨드라인 도구에 전달한다.

또한 msfcli는 공격과 보조 모듈을 실행할 수 있으며, 프레임워크에서 모듈과 개발된 새로운 공격 코드를 테스트할 때 훨씬 편리하다.

 

msfgui 더이상 개발 되지 않음

라파엘 머지(Raphael Mudge)가 개발한 완벽한 대화형 GUI 인터페이스이다.

쉽고, 기능이 많으며, 무료로 사용할 수 있다.

 

msfweb

메타스플로잇 웹 인터페이스이다.

 

Armitage

msfgui 툴과 비슷한 툴이다.