- 메타스폴로잇 ( Metasploit, Meta Exploit Framework )
공개된 공격 코드의 불필요한 부분을 정리하고 검증하는데 많은 시간이 소비 되기 때문에 익스플로잇의 제작과 개발을 좀더 유연하고 유지 보수가 가능하도록 만들기 위해 프레임워크를 개발했다.
펄( perl ) 기반의 메타스플로잇은 루비 언어로 완전히 재작성한 후 2007년에 메타스플로잇 3.0을 공개했다. 지금까지 루비로 작성된 가장 복잡한 프로젝트 중 하나이다.
[참고] 루비( Ruby )
마츠모토 유키히로가 개발한 동적 객체 지향 스크립트 프로그래밍 언어
루비는 스트레스가 없는 쉬운 프로그래밍이고, 우리의 삶을 반영해야 하며, 프로그램 언어는 인간 중심으로 설계되어야 한다.
- 메타스플로잇 프레임워크 ( Metasploit Framework ) 특징
취약점 진단 통합 프레임워크
MSF ( Metasploit Framework )는 오픈 소스 도구로
- 공격 코드(exploit)
- 페이로드(payload)
- 인코더(encoder)
- 정찰 도구
- 보안
테스팅등을 제공하는 일종의 체계이다.
초기버전은 단순한 공격 코드의 집합이였다면
현재 버전은 광범위한 영역의 정보 탐색, 공격, 사전 침투에 관련된 보안 툴의 설계와 개발 능력을 제공한다.
MSF(Meta Exploit Framework)는 새로운 공격 코드, 페이로드, 정보 탐색 도구들을 개발 할 수 있는 환경을 제공하는 최초이자 최고의 기반 프로그램이다.
MSF는 새로운 보안 테스팅 기술의 개발과 보안 리서치를 가능하게 하는 도구, 관련 유틸리티들을 직접 설계할 수 있는 기반을 제공한다.
( 칼리 리눅스에는 커뮤니티 버전이 포함되어 있다. )
- 칼리리눅스에서 커뮤니티 웹서비스 접근하기
[참고] 서비스 start
# service ssh restart
# update-rc.d ssh enable
# update-rc,d postgresql enable
# update-rc.d metasploit enable
[참고] KaliLinux 2.0 버전에서 MSF 처계와 DB 초기화 작업
# msfdb init /* 초기에 한번만 작업하면 된다. */
# service postgresql start
# msfconsole
msf > db_status
- 라이브러리 종류
메타스폴로잇은 프레임워크의 주요 기능을 구현하기 위해 다양한 라이브러리를 사용한다. 이런 라이브러리는 사전 작업, 정의된 업무, 공격 기술, 함수의 집합으로, 프레임워크의 많은 모듈에서 활용된다.
- 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
- 모듈 ( Modules ) 종류
- Exploits
Defined as modules that use payloads
An exploit without a payload is an Auxiliary module
- 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.
- 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가지 정도로 분류되어 있다.
'Security > 정보 수집' 카테고리의 다른 글
zenmap을 통해 포트스캔된 정보를 metasploit에서 읽어 들이기 (0) | 2017.11.09 |
---|---|
메타스플로잇 사용법 ( msfconsole ) (0) | 2017.11.09 |
스캐닝 ( SCAN ) (0) | 2017.11.03 |
말테고 ( maltego ) (0) | 2017.11.03 |
DNS 서버를 사용하여 정보 수집 (0) | 2017.11.03 |