2012년 8월 14일 화요일

Metasploit unleashed - Msfconsole 명령어 [3]



metasploit-unleashed 튜토리얼 중 msfconsole 명령어 부분을 정리한 글입니다.



search

msfconsole은 강력한 검색 기능을 포함하고 있습니다. 만약 여러분이 찾고 있는 것이 있다면 'search' 명령어를 사용할 수 있습니다. 아래에 예시는 MS 취약점인 MS09-011를 찾는 경우입니다. msfconsole은 여러분이 검색하진 스트링을 모듈 이름, 설명, 레퍼런스 등에서 찾습니다. 메타스플로잇 모듈은 '-' 대신 '_'을 사용하니 'search' 명령어를 사용할 때 참고하시기 바랍니다.
msf > search ms09-001

Matching Modules
================

   Name                                      Disclosure Date  Rank    Description
   ----                                      ---------------  ----    -----------
   auxiliary/dos/windows/smb/ms09_001_write                   normal  Microsoft SRV.SYS WriteAndX Invalid DataOffset

help

여러분은 'help search' 명령어를 통해 더 정확한 검색을 위한 옵션을 볼 수 있습니다.
msf > help search
Usage: search [keywords]

Keywords:
  name      :  Modules with a matching descriptive name
  path      :  Modules with a matching path or reference name
  platform  :  Modules affecting this platform
  type      :  Modules of a specific type (exploit, auxiliary, or post)
  app       :  Modules that are client or server attacks
  author    :  Modules written by this author
  cve       :  Modules with a matching CVE ID
  bid       :  Modules with a matching Bugtraq ID
  osvdb     :  Modules with a matching OSVDB ID

Examples:
  search cve:2009 type:exploit app:client

msf > 

name

이름을 검색하시려면 search 뒤에 name: 을 입력하시면 됩니다.
msf > search name:illustrator

Matching Modules
================

   Name                                                  Disclosure Date  Rank   Description
   ----                                                  ---------------  ----   -----------
   exploit/windows/fileformat/adobe_illustrator_v14_eps  2009-12-03       great  Adobe Illustrator CS4 v14.0.0


msf > 

path

경로를검색하시려면 search 뒤에 path: 를 입력하시면 됩니다.
msf > search path:scada

Matching Modules
================

   Name                                                 Disclosure Date  Rank     Description
   ----                                                 ---------------  ----     -----------
   auxiliary/admin/scada/igss_exec_17                   2011-03-21       normal   Interactive Graphical SCADA System Remote Command Injection
   exploit/windows/scada/citect_scada_odbc              2008-06-11       normal   CitectSCADA/CitectFacilities ODBC Buffer Overflow
...snip...

platform

플랫폼란에서 검색하시려면 search 뒤에 platform: 을 입력하시면 됩니다.
msf > search platform:aix

Matching Modules
================

   Name                                  Disclosure Date  Rank    Description
   ----                                  ---------------  ----    -----------
   payload/aix/ppc/shell_bind_tcp                         normal  AIX Command Shell, Bind TCP Inline
   payload/aix/ppc/shell_find_port                        normal  AIX Command Shell, Find Port Inline
   payload/aix/ppc/shell_interact                         normal  AIX execve shell for inetd
...snip...

type

모듈이나 보조모듈을 검색하시려면 search 뒤에 type: 을 입력하시면 됩니다.
msf > search type:post

Matching Modules
================

   Name                                                Disclosure Date  Rank    Description
   ----                                                ---------------  ----    -----------
   post/linux/gather/checkvm                                            normal  Linux Gather Virtual Environment Detection
   post/linux/gather/enum_cron                                          normal  Linux Cron Job Enumeration
   post/linux/gather/enum_linux                                         normal  Linux Gather System Information
...snip...

author

저자의 이름을 검색하시려면 search 뒤에 author: 을 입력하시면 됩니다.
msf > search author:dookie

Matching Modules
================

   Name                                                       Disclosure Date  Rank     Description
   ----                                                       ---------------  ----     -----------
   exploit/osx/http/evocam_webserver                          2010-06-01       average  MacOS X EvoCam HTTP GET Buffer Overflow
   exploit/osx/misc/ufo_ai                                    2009-10-28       average  UFO: Alien Invasion IRC Client Buffer Overflow Exploit
   exploit/windows/browser/amaya_bdo                          2009-01-28       normal   Amaya Browser v11.0 bdo tag overflow
...snip...

multiple

여러가지 범위에서 검색하시려면 search 뒤에 여러개의 옵션을 차례로 입력하시면 됩니다.
msf > search cve:2011 author:jduck platform:linux

Matching Modules
================

   Name                                         Disclosure Date  Rank     Description
   ----                                         ---------------  ----     -----------
   exploit/linux/misc/netsupport_manager_agent  2011-01-08       average  NetSupport Manager Agent Remote Buffer Overflow


show

msfconsole 프롬프트 환경에서 show를 입력하시면 메타스플로잇의 모든 모듈을 보실 수 있습니다.
msf > show

Encoders
========

   Name                    Disclosure Date  Rank       Description
   ----                    ---------------  ----       -----------
   cmd/generic_sh                           good       Generic Shell Variable Substitution Command Encoder
   cmd/ifs                                  low        Generic ${IFS} Substitution Command Encoder
   cmd/printf_php_mq                        manual     printf(1) via PHP magic_quotes Utility Command Encoder
...snip...

show 명령어를 사용하는 방법에는 여러가지가 있지만, 여러분은 'show auxiliary', 'show exploits', 'show payloads', 'show encoders', 그리고 'show nops' 와 같은 명령어를 자주 사용하실 겁니다.


auxiliary

'show auxiliary' 명령어를 실행하면 메타스플로잇의 모든 보조 모듈을 보여줄 것입니다. 참고로 보조 모듈은 스케너, DoS 모듈, fuzzer 등을 포함합니다.
msf > show auxiliary
Auxiliary
=========

   Name                                                  Disclosure Date  Rank    Description
   ----                                                  ---------------  ----    -----------
   admin/2wire/xslt_password_reset                       2007-08-15       normal  2Wire Cross-Site Request Forgery Password Reset Vulnerability
   admin/backupexec/dump                                                  normal  Veritas Backup Exec Windows Remote File Access
   admin/backupexec/registry                                              normal  Veritas Backup Exec Server Registry Access
...snip...

exploits

'show exploits'는 메타스플로잇의 가장 핵심 부분이며 여러분이 가장 많이 사용하시고 관심을 가지실 명령어일 것입니다. 'show exploits'을 실행하시면 프레임워크가 가지고 있는 모든 exploit을 나열 합니다.
msf > show exploits

Exploits
========

   Name                                                           Disclosure Date  Rank       Description
   ----                                                           ---------------  ----       -----------
   aix/rpc_cmsd_opcode21                                          2009-10-07       great      AIX Calendar Manager Service Daemon (rpc.cmsd) Opcode 21 Buffer Overflow
   aix/rpc_ttdbserverd_realpath                                   2009-06-17       great      ToolTalk rpc.ttdbserverd _tt_internal_realpath Buffer Overflow (AIX)
   bsdi/softcart/mercantec_softcart                               2004-08-19       great      Mercantec SoftCart CGI Overflow
...snip...

payloads

'show payloads'는 메타스플로잇에서 사용 가능한 모든 플랫폼의 payload를 나열해 줍니다.
msf > show payloads

Payloads
========

   Name                                             Disclosure Date  Rank    Description
   ----                                             ---------------  ----    -----------
   aix/ppc/shell_bind_tcp                                            normal  AIX Command Shell, Bind TCP Inline
   aix/ppc/shell_find_port                                           normal  AIX Command Shell, Find Port Inline
   aix/ppc/shell_interact                                            normal  AIX execve shell for inetd
...snip...

payloads
여러분이 특정 exploit을 사용하고 있는 경우 'show payload' 명령어는 여러분이 선택하신 exploit에서 사용할 수 있는 payload만 나열할 것입니다. 예를들어, 윈도우 exploit에서는 리눅스 payload들은 보이지 않을 것 입니다.
msf  exploit(ms08_067_netapi) > show payloads

Compatible Payloads
===================

   Name                                             Disclosure Date  Rank    Description
   ----                                             ---------------  ----    -----------
   generic/custom                                                    normal  Custom Payload
   generic/debug_trap                                                normal  Generic x86 Debug Trap
   generic/shell_bind_tcp                                            normal  Generic Command Shell, Bind TCP Inline
...snip...

options
만약 여러분이 모듈을 선택하셨으면, 'show options' 명령어를 통해 여러분이 설정해야할 세팅 값들을 보실 수 있습니다. Setting 란에 yes 라고 되어 있는 부분은 여러분이 모듈을 사용하기 위해선 반드시 입력하거나 수정해야 할 부분입니다.
msf exploit(ms08_067_netapi) > show options

Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST                     yes       The target address
   RPORT    445              yes       Set the SMB service port
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)


Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting

targets
여러분이 사용하시려는 exploit이 어떤 운영체제에서 사용할 수 있는지가 궁금하시면, 모듈을 선택하신 후 'show target' 명령어를 사용하시기 바랍니다.
msf  exploit(ms08_067_netapi) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Automatic Targeting
   1   Windows 2000 Universal
   10  Windows 2003 SP1 Japanese (NO NX)
   11  Windows 2003 SP2 English (NO NX)
   12  Windows 2003 SP2 English (NX)
...snip...

advanced
만약 여러분이 exploit을 좀 더 수정하고 싶을 때, 'show advanced' 명령어를 입력하시면 고급 설정들을 보실 수 있습니다.
msf exploit(ms08_067_netapi) > show advanced

Module advanced options:

   Name           : CHOST
   Current Setting:
   Description    : The local client address

   Name           : CPORT
   Current Setting:
   Description    : The local client port

...snip...

encoders

'show encoders' 명령어는 메타스플로잇에서 사용할 수 있는 인코더를 나열할 것입니다.
msf > show encoders
Compatible Encoders
===================

   Name                    Disclosure Date  Rank       Description
   ----                    ---------------  ----       -----------
   cmd/generic_sh                           good       Generic Shell Variable Substitution Command Encoder
   cmd/ifs                                  low        Generic ${IFS} Substitution Command Encoder
   cmd/printf_php_mq                        manual     printf(1) via PHP magic_quotes Utility Command Encoder
   generic/none                             normal     The "none" Encoder
   mipsbe/longxor                           normal     XOR Encoder
   mipsle/longxor                           normal     XOR Encoder
   php/base64                               great      PHP Base64 encoder
   ppc/longxor                              normal     PPC LongXOR Encoder
   ppc/longxor_tag                          normal     PPC LongXOR Encoder
   sparc/longxor_tag                        normal     SPARC DWORD XOR Encoder
   x64/xor                                  normal     XOR Encoder
   x86/alpha_mixed                          low        Alpha2 Alphanumeric Mixedcase Encoder
   x86/alpha_upper                          low        Alpha2 Alphanumeric Uppercase Encoder
   x86/avoid_utf8_tolower                   manual     Avoid UTF8/tolower
   x86/call4_dword_xor                      normal     Call+4 Dword XOR Encoder
   x86/context_cpuid                        manual     CPUID-based Context Keyed Payload Encoder
   x86/context_stat                         manual     stat(2)-based Context Keyed Payload Encoder
   x86/context_time                         manual     time(2)-based Context Keyed Payload Encoder
   x86/countdown                            normal     Single-byte XOR Countdown Encoder
   x86/fnstenv_mov                          normal     Variable-length Fnstenv/mov Dword XOR Encoder
   x86/jmp_call_additive                    normal     Jump/Call XOR Additive Feedback Encoder
   x86/nonalpha                             low        Non-Alpha Encoder
   x86/nonupper                             low        Non-Upper Encoder
   x86/shikata_ga_nai                       excellent  Polymorphic XOR Additive Feedback Encoder
   x86/single_static_bit                    manual     Single Static Bit
   x86/unicode_mixed                        manual     Alpha2 Alphanumeric Unicode Mixedcase Encoder
   x86/unicode_upper                        manual     Alpha2 Alphanumeric Unicode Uppercase Encoder

nops

마지막으로 'show nops' 명령어는 메타스플로잇이 제공하는 NOP Generators 를 보여줄 것입니다.
msf > show nops
NOP Generators
==============

   Name             Disclosure Date  Rank    Description
   ----             ---------------  ----    -----------
   armle/simple                      normal  Simple
   php/generic                       normal  PHP Nop Generator
   ppc/simple                        normal  Simple
   sparc/random                      normal  SPARC NOP generator
   tty/generic                       normal  TTY Nop Generator
   x64/simple                        normal  Simple
   x86/opty2                         normal  Opty2
   x86/single_byte                   normal  Single Byte

setg

모의 침투중에 여러번 변수 지정을 해 주는것 대신에, 여러분은 'setg' 명령어를 통해 msfconsole에서 전역 변수를 설정하실 수 있습니다. 전역변수가 설정되고 나면 여러분은 그 변수를 어떤 공격이나 모듈에서도 사용하실 수 있습니다. 또한 여러분은 다음번 msfconsole 실행에서도 이 전역 변수를 사용하실 수 있습니다. 하지만 여러분이 전역 변수를 설정하신 것을 잊지 않기 위해선, 반드시 공격을 수행하기 전에 옵션을 확인하는 과정을 잊지 마시기 바랍니다. 반대로 'unsetg' 명령어를 통해서 여러분이 설정하신 전역변수를 제거할 수 있습니다. 아래의 예시의 경우 모든 변수를 대문자로 사용하고 있지만, 메타스플로잇은 대문자와 소문자를 구분하지 않으므로 굳이 대문자를 사용하실 필요는 없습니다.
msf > setg LHOST 192.168.1.101
LHOST => 192.168.1.101
msf > setg RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf > setg RHOST 192.168.1.136
RHOST => 192.168.1.136

모든 변수를 설정하시고 나서 'save' 명령어를 입력하시면 여러분이 지정한 환경과 설정들이 모두 저장 됩니다. 이후 msfconsole을 실행할 때 마다 저장된 설정을 사용하실 수 있습니다.

msf > save
Saved configuration to: /root/.msf3/config
msf >

use

여러분이 특정 모듈을 사용하기로 결심했다면 'use' 명령어를 사용해 그 모듈을 선택하시기 바랍니다. 'use' 명령어는 여러분이 특정 모듈을 사용할 수 있는 환경을 제공하며, 이 환경에서만 제공하는 명령어를 사용할 수 있도록 합니다. 아래의 예시는 전역변수들이 이미 설정되어 있는 경우의 msfconsole을 보여줍니다.
msf > use dos/windows/smb/ms09_001_write
msf auxiliary(ms09_001_write) > show options

Module options:

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   RHOST                   yes       The target address
   RPORT  445              yes       Set the SMB service port

msf auxiliary(ms09_001_write) >



참고 : http://www.offensive-security.com/metasploit-unleashed/Msfconsole



댓글 없음:

댓글 쓰기