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
댓글 없음:
댓글 쓰기