칼리리눅스에서 msfconsole 명령어를 실행하는 방법은 콘솔 창에서 단일 명령어를 실행하는 방법과 데이터베이스(DB)와 연동해서 실행하는 방법이 존재한다.


단일 명령어를 실행은 모든 모듈이 독립적으로 실행되는 것이고, 데이터베이스와 연동해서 실행은 데이터베이스의 기능과 msfconsole을 연동한 후 msfconsole이 실행되는 것이다.


특히, 데이터베이스와 연동해서 실행하게 되면 msfconsole에서 수행한 모든 과정을 데이터베이스(PostgreSQL)에 기록 및 관리하기 편하다.


구분 실행
msfconsole 단일 실행 # msfconsole
데이터베이스 연동 실행 # service postgresql start; msfdb init; msfconsole

msfconsole에서 자주 사용하는 명령어

msfconsole에서 자주 사용하는 명령어는 search, use, info, set, exploit, run, sessions, jobs이다. 이외의 다양한 명령어를 지원하며 help 명령어로 확인할 수 있다.


search [특정 문자열]

○ 취약점 모듈 정보 검색

○ msf> search browser를 입력하면 Browser와 관련된 공격할 수 있는 모든 모듈 정보 출력


use [모듈의 절대경로]

○ 취약점 공격을 수행할 모듈 선택

○ msf> use exploit/windows/browser/ms14_064_ole_code_execution을 입력하면 쉘이 msfexploit(ms14_064_ole_code_execution)으로 변경


info [모듈의 절대경로]

○ 특정 모듈의 설명, 취약점 정보, 옵션 정보, CVE 정보 확인

○ msf> info exploit/windows/browser/ms14_064_ole_code_execution을 입력하면 해당 모듈의 정보를 출력


show options

○ 선택된 모듈을 이용해 취약점 공격을 하기 전 반드시 선택하는 옵션, 확장된 옵션 정보

○ msf exploit(ms14_064_ole_code_execution)> show options


show targets

○ 선택된 모듈이 취약점 공격을 수행하기 위한 시스템 대상

○ msf exploit(ms14_064_ole_code_execution)> show targets


set [이름 값]

○ show options, show targets에서 확인한 옵션에서 특정 변수의 값을 설정

○ msf exploit(ms14_064_ole_code_execution)> set TRYUAC true


exploit

○ 옵션까지 설정 후 실질적으로 공격을 수행

○ 모듈의 절대경로를 보면 exploit으로 시작되는 모듈은 exploit 명령어를 실행하고, auxiliary 모듈은 run으로 실행

○ msf exploit(ms14_064_ole_code_execution) exploit


msfconsole 활용

msfconsole을 데이터베이스와 연동해서 실행하면 모듈을 검색하기 전 모든 모듈이 로드된 상태이므로 더 빠르게 검색이 가능하다.


실행하는 방법은 postgresql 서비스를 시작하고, 데이터베이스를 초기화를 한 후 msfconsole을 실행하면 된다.


○ service postgresql start; msfdb init; msfconsole



search 명령어로 freeftpd를 검색하면 /usr/share/metasploit-framework/modules 디렉토리에 존재하는 freeftpd 파일을 검색한다. freeftpd 서비스를 공격할 수 있는 모듈이 총 3개 출력된다.


○ search freeftpd



구분 설명
Name 모듈의 전체 경로
Disclosure Date 모듈이 출시된 날짜
Rank 모듈의 공격 성공률 (excellent, good이 공격 성공률이 높다)
Description 모듈의 설명

use 명령어로 freeftpd_pass 모듈의 전체 경로를 입력하면 쉘이 msf>에서 msf exploit()>으로 변경된다.


○ use exploit/windows/ftp/freeftpd_pass



info 명령어를 입력하면 선택한 모듈(freeftpd_pass)의 이름, 모듈 경로, 공격 대상 시스템, 출시 날짜, 저자, 옵션, 설명 등의 상세한 정보가 출력된다.


○ info



show options을 입력하면 취약점 공격을 수행하는데 필요한 옵션 정보가 출력된다. Required가 'yes'이면 반드시 옵션을 설정해야 되고, 'no'이면 옵션을 설정하지 않아도 된다.


하지만, Required가 'yes'인데 Current Setting가 'NULL'이면 반드시 옵션을 설정해야 한다. 또한, 현재 target은 기본적으로 1개가 자동으로 설정되어 있으므로 따로 설정하지 않아도 된다.


○ show options



show advanced 명령어를 입력하면 show options에서 보여주는 옵션 외 확장된 옵션을 보여준다.


○ show advanced



옵션에서 Required가 'yes'이고, Current Setting가 'NULL'인 옵션을 설정한다. set 명령어로 원격 호스트의 아이피를 설정한다.


○ set rhost 10.10.10.6



exploit 명령어를 입력하면 설정한 옵션을 기반으로 대상 시스템의 취약 유무를 판단한다. 이후 취약한 대상이라고 판단하면 페이로드를 전송해 칼리리눅스와 세션을 맺는다.


하지만, 세션이 맺어지지 않는 경우가 존재하는데, 이는 대상 시스템에 freeftpd 서비스가 동작하지 않거나 모듈 옵션의 설정이 잘못되어 있는 경우 발생한다.


○ exploit -j



▶ Metasploit meterpreter 기능 및 사용법

▶ Metasploit msfvenom 기능 및 사용법

▶ Metasploit(msfvenom) 쉘코드 디코딩

▶ CVE-2014-6332 취약점 분석 (Internet Explorer)

  • 카카오톡-공유
  • 네이버-블로그-공유
  • 네이버-밴드-공유
  • 페이스북-공유
  • 트위터-공유
  • 카카오스토리-공유