metasploit-unleashed 튜토리얼 중 msfconsole 명령어 부분을 정리한 글입니다.
metasploit-unleashed 튜토리얼 중 msfconsole 명령어 부분을 정리한 글입니다.
back
만약 여러분이 특정 모듈 사용이 끝나면, 혹은 실수로 잘못된 모듈을 선택했다면, 여러분은 'back' 멸령어를 사용해 그 전 상황으로 돌아가실 수 있습니다. 하지만 모듈을 사용중인 상황에서 모듈을 바로 바꿀수 있기 때문에, 굳이 back 명령어를 사용하지 않으셔도 됩니다. 그리고 변수들은 전역으로 설정되어 있을때만 유지되고 그렇지 않은 경우엔 보존되지 않습니다.
msf auxiliary(ms09_001_write) > back msf >
check
check명령어는 실제로 exploit하는 대신 타겟이 여러분이 사용하려고 하는 공격에 취약한지 그렇지 않은지를 확인해 줍니다.
msf exploit(ms04_045_wins) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.114 yes The target address RPORT 42 yes The target port Exploit target: Id Name -- ---- 0 Windows 2000 English msf exploit(ms04_045_wins) > check [-] Check failed: The connection was refused by the remote host (192.168.1.114:42)
connect
이것은 SSL, 프록시, 피봇, 그리고 파일 전송을 지원하는 netcat의 작은 사본입니다. 'connect' 명령어와 IP 주소, 그리고 포트 넘버를 입력하시면, 여러분은 netcat과 telnet과 같이 다른 호스트 네트워크에 접속할 수 있습니다.
msf > connect 192.168.1.1 23 [*] Connected to 192.168.1.1:23 DD-WRT v24 std (c) 2008 NewMedia-NET GmbH Release: 07/27/08 (SVN revision: 10011) DD-WRT login:
사용가능한 다른 옵션은 -h 를 입력하시면 보실 수 있습니다.
msf > connect -h Usage: connect [options]Communicate with a host, similar to interacting via netcat, taking advantage of any configured session pivoting. OPTIONS: -C Try to use CRLF for EOL sequence. -P Specify source port. -S Specify source address. -c Specify which Comm to use. -h Help banner. -i Send the contents of a file. -p List of proxies to use. -s Connect with SSL. -u Switch to a UDP socket. -w Specify connect timeout. -z Just try to connect, then return. msf >
irb
'irb' 명령어를 실행하면 명령어를 사용할 수 있고, 메타스플로잇 스크립트를 만들 수 있는 루비 인터프리터 셀을 제공합니다. 이 기능은 프레임 워크의 내부를 이해하는데 매우 유용한 기능입니다.
msf > irb [*] Starting IRB shell... >> puts "Hello, metasploit!" Hello, metasploit! => nil >> Framework::Version => "4.2.0-dev" >> framework.modules.keys.length => 1579 >>
jobs
Jobs는 백그라운드에서 실행되고 있는 모듈을 말합니다. 'jobs' 명령어를 입력하시면 백그라운드에서 실행되고 있는 Job을 종료할 수 있습니다.
msf > jobs -h Usage: jobs [options] Active job manipulation and interaction. OPTIONS: -K Terminate all running jobs. -h Help banner. -iLists detailed information about a running job. -k Terminate the specified job name. -l List all running jobs. -v Print more detailed info. Use with -i and -l msf >
load
'load' 명령어는 메타스플로잇의 'plugin 디렉토리에서 플러그인을 로드합니다. 변수들은 다음의 'key=val'와 같은 형식으로 입력하시면 쉘에 넘겨줄 수 있습니다.
msf > load Usage: load[var=val var=val ...] Loads a plugin from the supplied path. If path is not absolute, fist looks in the user's plugin directory (/root/.msf4/plugins) then in the framework root plugin directory (/opt/framework/msf3/plugins). The optional var=val options are custom parameters that can be passed to plugins. msf > load pcap_log [*] PcapLog plugin loaded. [*] Successfully loaded plugin: pcap_log
loadpath
'loadpath' 명령어는 여러분의 페이로드, 제로 데이 스크립트, 인코더와 같은 외부 모듈을 로드해 메타스플로잇이 사용 할 수 있도록 합니다.
msf > loadpath /home/secret/modules
Loaded 0 modules.
unload
'loadpath'와는 반대로 'unload'는 로드한 플러그인과 확장 명령어들을 언로드 합니다.
msf > unload pcap_log
Unloading plugin pcap_log...unloaded.
resource
'resource' 명령어는 실행파일을 로드해 msfconsole에서 사용할 수 있도록 합니다.
msf > resource Usage: resource path1 [path2 ...] Run the commands stored in the supplied files. Resource files may also contain ruby code between tags. See also: makerc msf >
Karmetasploit과 같은 공격은 karma.rc 와 같은 리소스 파일을 사용합니다.
msf > resource karma.rc
[*] Processing karma.rc for ERB directives.
resource (karma.rc)> db_connect msf3:PASSWORD@127.0.0.1:7175/msf3
resource (karma.rc)> use auxiliary/server/browser_autopwn
...snip...
실행 파일을 msfconsole에 로드하면 파일 실행과 개발시간을 단축시켜주며 자동으로 여러가지 명령어를 실행할 수 있도록 도와줍니다. msfconsole의 콘솔환경에서 실행파일을 로드 하는 방법 외에, msfconsole을 실행할 때 '-r' 옵션을 사용해 로드하는 방법도 있습니다.
root@bt:~# echo version > version.rc
root@bt:~# msfconsole -r version.rc
_ _
/ \ / \ __ _ __ /_/ __
| |\ / | _____ \ \ ___ _____ | | / \ _ \ \
| | \/| | | ___\ |- -| /\ / __\ | -__/ | | | | || | |- -|
|_| | | | _|__ | |_ / -\ __\ \ | | | |_ \__/ | | | |_
|/ |____/ \___\/ /\ \___/ \/ \__| |_\ \___\
=[ metasploit v4.2.0-dev [core:4.2 api:1.0]
+ -- --=[ 775 exploits - 411 auxiliary - 120 post
+ -- --=[ 238 payloads - 27 encoders - 8 nops
=[ svn r14414 updated 6 days ago (2011.12.14)
[*] Processing version.rc for ERB directives.
resource (version.rc)> version
Framework: 4.2.0-dev.14161
Console : 4.2.0-dev.14065
msf >
route
"route" command in Metasploit allows you to route sockets through a session or 'comm', providing basic pivoting capabilities. To add a route, you pass the target subnet and network mask followed by the session (comm) number.
meterpreter > route -h Usage: route [-h] command [args] Display or modify the routing table on the remote machine. Supported commands: add [subnet] [netmask] [gateway] delete [subnet] [netmask] [gateway] list meterpreter >
meterpreter > route Network routes ============== Subnet Netmask Gateway ------ ------- ------- 0.0.0.0 0.0.0.0 172.16.1.254 127.0.0.0 255.0.0.0 127.0.0.1 172.16.1.0 255.255.255.0 172.16.1.100 172.16.1.100 255.255.255.255 127.0.0.1 172.16.255.255 255.255.255.255 172.16.1.100 224.0.0.0 240.0.0.0 172.16.1.100 255.255.255.255 255.255.255.255 172.16.1.100
info
'info'명령어는 특정 모듈의 옵션과 타겟, 그리고 기타 정보를 제공합니다. 여러분이 의도하지 않은 결과를 초래하는것을 원하지 않는다면, 모듈 사용전에 그 모듈의 정보를 확인하는 습관을 가집시다.
'info' 명령어는 다음과 같은 정보도 제공합니다:
- 작성자와 문서의 라이센스 정보
- Vulnerability references (ie: CVE, BID, etc)
- 모듈이 가지고 있는 페이로드 제한 정보
msf exploit(ms08_067_netapi) > info auxiliary/dos/windows/smb/ms09_001_write Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset Module: auxiliary/dos/windows/smb/ms09_001_write Version: 10394 License: Metasploit Framework License (BSD) Rank: Normal Provided by: j.v.vallejoBasic options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 445 yes Set the SMB service port Description: This module exploits a denial of service vulnerability in the SRV.SYS driver of the Windows operating system. This module has been tested successfully against Windows Vista. References: http://www.microsoft.com/technet/security/bulletin/MS09-001.mspx http://www.osvdb.org/48153 http://cve.mitre.org/cgi-bin/cvename.cgi?name=2008-4114 http://www.securityfocus.com/bid/31179
set
'set' 명령어는 현재 사용중인 모듈에서 이용하는 프레임 워크 옵션과 파라미터를 수정할 때 사용합니다.
msf auxiliary(ms09_001_write) > set RHOST 192.168.1.1 RHOST => 192.168.1.1 msf auxiliary(ms09_001_write) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.1 yes The target address RPORT 445 yes Set the SMB service port
메타스플로잇은 또한 여러분에게 인코더를 제공합니다. 여러분이 어떤 페이로드 인코딩 방식을 사용해야 할지 확실하지 않을때 이 인코더는 여러분에게 유용한 도움을 줄 것입니다.
msf exploit(ms08_067_netapi) > 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
unset
'unset' 명령어는 'set'명령어와 반대의 기능을 제공합니다. 'set'을 통해 수정했던 파라미터를 'unset'을 통해 제거하며, 'unset all' 명령어를 통해 수정된 모든 파라미터를 원래대로 바꿀 수 있습니다.
msf > set RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24 msf > set THREADS 50 THREADS => 50 msf > set Global ====== Name Value ---- ----- RHOSTS 192.168.1.0/24 THREADS 50 msf > unset THREADS Unsetting THREADS... msf > unset all Flushing datastore... msf > set Global ====== No entries in data store. msf >
sessions
'sessions' 명령어는 스폰된 세션을 나열하고, 사용하고, 정지시킬 때 사용합니다. 이런 세션은 쉘, Meterpreter 세션, VNC 등이 될 수 있습니다.
msf > sessions -h Usage: sessions [options] Active session manipulation and interaction. OPTIONS: -K Terminate all sessions -cRun a command on the session given with -i, or all -d Detach an interactive session -h Help banner -i Interact with the supplied session ID -k Terminate session -l List all active sessions -q Quiet mode -r Reset the ring buffer for the session given with -i, or all -s Run a script on the session given with -i, or all -u Upgrade a win32 shell to a meterpreter session -v List verbose fields
실행중인 세션을 활성화 하기 위해선 'sessions -l' 명령어를 입력합니다.
msf exploit(3proxy) > sessions -l Active sessions =============== Id Description Tunnel -- ----------- ------ 1 Command shell 192.168.1.101:33191 -> 192.168.1.104:4444
주어진 세셜을 사용하기 위해선, 'session -i' 뒤에 사용하고자 하는 세션 아이디 넘버를 입력합니다.
msf exploit(3proxy) > sessions -i 1 [*] Starting interaction with 1... C:\WINDOWS\system32>
참고 : http://www.offensive-security.com/metasploit-unleashed/Msfconsole
댓글 없음:
댓글 쓰기