Anda di halaman 1dari 47

SECURITY VULNERABILITY

REPORT

Target: Server Kioptrix4


Type: Linux 2.6
by: Alexander Lumban Tobing

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 1 dari 47

DAFTAR ISI
PENDAHULUAN
PENGUMPULAN INFORMASI
A. Mempersiapkan Backtrack
B. Mencari dan memetakan semua host
C. Informasi seputar server target
PENDETEKSIAN SERVICE
A. Mencari tahu daftar service menggunakan nmap
B. Hasil kesimpulan dari pendeteksian service
PENCARIAN KELEMAHAN
A. Mencari celah keamanan menggunakan Mozilla Firefox
B. Mencari celah keamanan menggunakan OWASP Dir Buster
MELAKUKAN EKSPLOITASI
A. Melakukan eksploitasi menggunakan SQL Inject Me
B. Melakukan eksploitasi menggunakan SSH
MENINGKATKAN HAK AKSES
A. Keluar dari limited shell
B. Mencari proses yang dijalankan oleh root
C. Mengambil alih akun akses mysqld
D. Login sebagai service mysqld
E. Memodifikasi file /etc/passwd
F. Bukti bahwa kita adalah root
MENCIPTAKAN PINTU BELAKANG
A. Membuat user biasa sebagai pintu belakang
B. Membuat sebuah user dengan akses root sebagai pintu belakang
MENGHAPUS JEJAK
A. Mengembalikan hak akses user john
B. Menghapus seluruh file log service
1. Menghapus log service apache2
2. Menghapus log service ssh
3. Menghapus log service daemon
4. Menghapus log service syslog
PENUTUP

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 2 dari 47

PENDAHULUAN
Dokumen ini adalah dokumen yang berisi mengenai laporan celah keamanan yang berhasil
ditemukan pada sebuah server Kioptrix4 Linux 2.6. Pada dokumen ini juga dibahas mengenai
teknik yang digunakan untuk memanfaatkan celah keamanan tersebut.
Adapun peralatan yang dibutuhkan dalam melakukan pencarian celah keamanan ini, adalah
sebagai berikut:
1. Sistem Operasi attacker, yaitu: Backtrack 5 R3
(dapat diperoleh di: ftp\\172.21.1.10\File
sharing\ABS@CyberDefense\BT5_R3\BT5R3-GNOME-32.iso)
2. Sistem Operasi target, yaitu: Kioptrix4 Linux 2.6
(dapat diperoleh di: https://if11022.nm.del.ac.id/files/Server%20Kioptrix.vmdk)
3. Aplikasi Virtual Machine, seperti: VMWare 9.0
(dapat diperoleh di: ftp\\172.21.1.10\File
sharing\ABS@CyberDefense\VMware.Workstation.v9\setup.exe)
Persiapan yang dilakukan adalah:
1. Menginstall VMWare terlebih dahulu.
2. Menciptakan sebuah Virtual Machine dengan menggunakan BT5R3-GNOME-32.iso
sebagai sistem operasinya.
3. Menciptakan sebuah Virtual Machine dengan menggunakan Server Kioptrix.vmdk
sebagai sistem Virtual Machine yang telah ada.
4. Konfigurasi jaringan untuk Virtual Machine Backtrack dan Kioptrix adalah NAT.
Adapun tahapan teknik yang dilakukan untuk dapat mengambil alih akses ke sistem target
adalah sebagai berikut:
1. PENGUMPULAN INFORMASI
2. PENDETEKSIAN SERVICE
3. PENCARIAN KELEMAHAN
4. MELAKUKAN EKSPLOITASI
5. MENINGKATKAN HAK AKSES
6. MENCIPTAKAN PINTU BELAKANG
7. MENGHAPUS JEJAK

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 3 dari 47

PENGUMPULAN
INFORMASI
A. Mempersiapkan Backtrack
Melakukan cek koneksi Backtrack dengan cara mengecek konfigurasi jaringan, berikut
adalah langkah-langkahnya:
1. Buka terminal Backtrack
2. Ketik ifconfig
Hasilnya adalah berikut:

Dari gambar diatas, dapat kita simbulkan bahwa IP Address dari Backtrack kita
adalah: 192.168.36.163

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 4 dari 47

B. Mencari dan memetakan semua host


Mencari dan memetakan semua host yang terkoneksi dengan jaringan yang sama
dengan jaringan Backtrack kita, berikut adalah langkah-langkahnya:
1. Buka terminal Backtrack
2. Ketik netdiscover i eth3 r 192.168.36.163, seperti pada gambar berikut:

Tunggu hingga proses pencarian selasai dilakukan.


Keterangan: tools netdiscover dipilih karena tools ini dapat mencari dan memetakan
semua host yang berada satu jaringan dengan jaringan Backtrack. Pilihan -i eth3
dipilih karena network interface yang aktif pada Backtrack adalah interface eth3.
Pilihan r 192.168.36.163 dipilih agar dapat mencari semua host yang dapat dicapai
oleh IP Backtrack itu sendiri.
Berikut adalah hasil pencarian bila selesai dilakukan:

Dari gambar diatas, dapat kita simpulkan bahwa jumlah host yang dapat dicapai oleh
Backtrack adalah tiga host. Dikarenakan, 192.168.36.2 dan 192.168.36.254 adalah IP
Address yang diciptakan sendiri oleh aplikasi Virtual Machine, maka dapat dipastikan
bahwa IP Address server target adalah: 192.168.36.209

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 5 dari 47

C. Informasi seputar server target


Informasi sementara yang kita dapatkan mengenai server target adalah bahwa server
target memiliki IP Address 192.168.36.209. Berikut adalah tampilan server target:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 6 dari 47

PENDETEKSIAN SERVICE
A. Mencari tahu daftar service menggunakan nmap
Untuk mencari tahu daftar service yang berjalan pada server target, kita dapat
menggunakan nmap, berikut adalah langkah-langkahnya:
1. Buka terminal Backtrack
2. Ketik nmap sS PN A 192.168.36.209
Hasilnya adalah berikut:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 7 dari 47

B. Hasil kesimpulan dari pendeteksian service


Berikut adalah hasil kesimpulan dari pendeteksian service.
1. Pada service ssh (port 22)

Kesimpulan:
1. User default pada saat melakukan ssh adalah user: root.
2. Key fingerprint pada server adalah jenis RSA.
Berdasarkan http://en.wikipedia.org/wiki/RSA_problem, key fingerprint RSA
dapat dengan mudah diexploitasi meskipun tidak melakukan kalkulasi
matematika secara kompleks.

2. Pada service http (port 80)

Kesimpulan:
1. Web server tidak mendukung layanan HTTPS.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 8 dari 47

PENCARIAN KELEMAHAN
A. Mencari celah keamanan menggunakan Mozilla Firefox
Dikarenakan port 80 terbuka, maka ada baiknya kita coba menemukan celah keamanan
dari segi service HTTP (port 80). Berikut adalah langkah-langkahnya:
1. Buka browser Mozilla Firefox
2. Ketik di address bar: 192.168.36.209 => IP Address target
3. Cobalah login dengan informasi seperti gambar berikut:
- Username : admin
- Password : admin

4. Klik tombol Login.


5. Dikarenakan username dan password adalah salah, maka muncul pesan seperti pada
gambar berikut:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 9 dari 47

Dari gambar diatas, dapat kita simpulkan bahwa:


1. Method yang digunakan aplikasi adalah method POST.
2. Informasi untuk inputan username, disimpan pada variabel myusername.
3. Informasi untuk inputan password, disimpan pada variabel mypassword.
4. Semua inputan user akan dikirim ke file checklogin.php
6. Sekarang, kita coba lagi login dengan informasi seperti gambar berikut:
- Username : admin
- Password :

7. Ternyata, server memberi pesan kesalahan berikut:

Oppsss Ternyata server memiliki celah keamanan dari segi SQL Injection.
SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 10 dari 47

8. Sekarang, kita coba lagi login dengan informasi seperti gambar berikut:
- Username :
- Password : admin

9. Ternyata, server memberi pesan kesalahan berikut:

Dari hasil coba-coba tadi, dapat kita simpulkan bahwa ternyata inputan untuk
username tidak dapat diexploitasi dengan menggunakan SQL Injection. Namun,
kabar baiknya, inputan untuk password tenyata dapat diexploitasi dengan
menggunakan SQL Injection. Sehingga yang tadinya kita harus mengetahui username
dan password yang valid untuk dapat login, kini kita hanya perlu mengetahui
username yang valid, dan kita tidak perlu mengetahui password yang valid.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 11 dari 47

B. Mencari celah keamanan menggunakan OWASP Dir Buster


Untuk menemukan informasi mengenai user yang valid dari sistem, kita dapat
menggunakan tools yang disebut sebagai fuzzers. Fuzzers adalah tools yang dapat
menebak dan menyusun daftar struktur direktori dari sebuah server target.
Dikarenakan server memiliki aplikasi web server, maka kita harus menggunakan fuzzers
yang dapat memiliki fitur sebagai Web Application Fuzzers, salah satunya adalah
OWASP Dir Buster. Berikut adalah langkah-langkah untuk menggunakan OWASP Dir
Buster:
1. Klik Applications pada Taskbar.
2. Sorot BackTrack
3. Sorot Vulnerability Assessment
4. Sorot Web Application Assessment
5. Sorot Web Application Fuzzers
6. Klik dirbuster

7. Berikut adalah tampilan OWASP Dir Buster:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 12 dari 47

8. Settinglah konfigurasi OWASP Dir Buster, dengan informasi seperti pada gambar
berikut:

Keterangan:
- Target URL
:
http://192.168.36.209:80/
Target URL adalah informasi mengenai URL target yang ingin
di-bruteforce menggunakan fuzzers, dalam hal ini adalah server Kioptrix4.
- Work Method
:
Auto Switch (HEAD and GET)
Work Method adalah informasi mengenai jenis method yang ingin
digunakan, dalam kasus ini kita gunakan yang Auto saja.
- Number of Threads
:
10 Threads
Number of Threads adalah informasi seberapa banyak threads yang akan
digunakan selama bekerja. Semakin banyak threads yang kita berikan,
maka akan semakin cepat proses kerja, namun akan menyebabkan
Backtrack kita menjadi sedikit terasa melambat.
- Select scanning type
: Pure Brute Force
Select scanning type adalah informasi jenis pencarian yang akan
dilakukan, apakah pencarian berdasarkan daftar yang telah dipersiapkan
(bruteforce based dictionary) ataukah benar-benar menggunakan bruteforce
(pure bruteforce).
9. Lalu klik tombol Start, maka proses pencarian akan segera dimulai.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 13 dari 47

10. Berikut adalah laporan yang diberikan:

Dari laporan di atas, dapat kita simpulkan bahwa terdapat dua nama orang, yaitu
john dan robert. Kemungkinan besar mereka adalah user yang valid pada web
server.
11. Untuk membuktikan apakah mereka adalah user yang valid atau tidak, maka kita
kembali membuka browser Mozilla Firefox, lalu mengakses
http://192.168.36.209:80/john, hasilnya adalah sebagai berikut:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 14 dari 47

12. Sekarang coba kita klik file john.php, namun hasilnya kita malah dialihkan ke
halaman depan web, yaitu: http://192.168.36.209.
Maka dapt kita simpulkan bahwa kita mengakses
http://192.168.36.209/john/john.php namun belum login, maka kita akan segera
dialihkan ke http://192.168.36.209 dan dipaksa untuk login terlebih dahulu.
Untuk mencoba apakah user robert adalah valid pada server, kita dapat
menggunakan langkah-langkah yang sama seperti untuk mencoba user john.
Sekarang coba kita mengakses http://192.168.36.209/robert/ robert.php ternyata
kita juga akan segera dialihkan ke http://192.168.36.209 dan dipaksa untuk login
terlebih dahulu.
Dari sejumlah percobaan yang telah kita lakukan, dapat kita simpulkan bahwa
terdapat dua user untuk server dari segi web aplikasinya, yaitu john dan robert.
Namun masalahnya, kita belum mengetahui password untuk mereka berdua
sehingga kita tidak dapat login ke dalam sistem. Namun beruntungnya, inputan
untuk menerima password pada web aplikasi ternyata memiliki kelemahan SQL
Inject, sehingga kita dapat login ke dalam sistem cukup dengan mengetahui
username yang valid saja.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 15 dari 47

MELAKUKAN EKSPLOITASI
A. Melakukan eksploitasi menggunakan SQL Inject Me
Ada banyak tools yang dapat melakukan eksploitasi terhadap celah keamanan dari segi
SQL Injection, salah satunya adalah SQL Inject Me, salah satu add-ons bawaan browser
OWASP Mantra di Backtrack.
Berikut adalah langkah-langkah untuk menggunakan SQL Inject Me:
1. Buka terminal Backtrack
2. Ketik cd /pentest/web/mantra
3. Ketik ./mantra
4. Kemudian akan muncul sebuah browser dengan tampilan berikut:

5.
6.
7.
8.
9.

Tekan tombol F10, untuk menampilkan menubar.


Klik menu Tools.
Sorot pada Application Auditing,
Sorot pada SQL Inject Me ,
Klik Open SQL Inject Me Sidebar

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 16 dari 47

Gambar untuk memanggil SQL Inject Me.

10. Maka akan muncul sebuah sidebar seperti gambar berikut:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 17 dari 47

11. Kemudian lengkapilah informasi yang diminta pada SQL Inject Me.

Pada kolom myusername, silahkan ketik john.


Pada kolom mypassword, silahkan berikan tanda centang.
Pada list kolom di sebelah tombol Execute, pilihlah Run all test.

12. Klik tombol Execute, dan tunggulah proses pencarian.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 18 dari 47

13. Berikut adalah laporan bila proses telah selesai:

Berikut adalah detail laporan:

Kesimpulan:
- Dari 14620 percobaan, ditemukan 3 percobaan yang kemungkinan memiliki
celah.
- Ketiga percobaan itu adalah:
o Tested value: %31%27%20%4F%52%20%27%31%27%3D%27%31
o Tested value: ' OR username IS NOT NULL OR username = '
o Tested value: 1' OR '1'='1
Ketiga value ini dapat berpotensi menciptakan efek SQL Injection untuk inputan
password pada variabel inputan mypassword.
SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 19 dari 47

14. Sekarang, kita akan coba melakukan login menggunakan sejumlah infomasi login.
PERCOBAAN 1
Sekarang mari kita coba login dengan informasi berikut:
- Username
: john
- Password
: %31%27%20%4F%52%20%27%31%27%3D%27%31
Hasilnya adalah:

Wah,.. tenyata percobaan SQL Injection yang ini, tidak dapat mengekspolit
server.
PERCOBAAN 2
Sekarang mari kita coba login dengan informasi berikut:
- Username
: john
- Password
: ' OR username IS NOT NULL OR username = '
Hasilnya adalah:

Wow Sistem telah menganggap kita telah login dengan user john walaupun
tanpa password.
PERCOBAAN 3
Sekarang mari kita coba login dengan informasi berikut:
- Username
: john
- Password
: 1' OR '1'='1

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 20 dari 47

Hasilnya adalah:

Sama seperti percobaan kedua, sistem telah menganggap kita telah login
menggunakan user dan password yang valid dari user john.
PERCOBAAN 4
Percobaan keempat ini adalah percobaan terakhir untuk mencoba login sebagai
john. Berdasarkan hasil dari percobaan pertama sampai percobaan ketiga,
sekarang mari kita coba login dengan informasi berikut:
- Username
: john
- Password
: MyNameIsJohn
Hasilnya adalah:

Yupp.. Ternyata memang akun yang valid untuk user john adalah:
- Username
: john
- Password
: MyNameIsJohn

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 21 dari 47

Percobaan kali ini adalah untuk mencoba login sebagai user robert.
PERCOBAAN 1
Sekarang mari kita coba login dengan informasi berikut:
- Username
: robert
- Password
: %31%27%20%4F%52%20%27%31%27%3D%27%31
Hasilnya adalah:

Wah,.. tenyata percobaan SQL Injection yang ini, tidak dapat mengekspolit
server.
PERCOBAAN 2
Sekarang mari kita coba login dengan informasi berikut:
- Username
: robert
- Password
: ' OR username IS NOT NULL OR username = '
Hasilnya adalah:

Wow Sistem telah menganggap kita telah login dengan user robert walaupun
tanpa password.
PERCOBAAN 3
Sekarang mari kita coba login dengan informasi berikut:
- Username
: robert
- Password
: 1' OR '1'='1

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 22 dari 47

Hasilnya adalah:

Sama seperti percobaan kedua, sistem telah menganggap kita telah login
menggunakan user dan password yang valid dari user robert.
PERCOBAAN 4
Percobaan keempat ini adalah percobaan terakhir untuk mencoba login sebagai
john. Berdasarkan hasil dari percobaan pertama sampai percobaan ketiga,
sekarang mari kita coba login dengan informasi berikut:
- Username
: robert
- Password
: ADGAdsafdfwt4gadfga==
Hasilnya adalah:

Yupp.. Ternyata memang akun yang valid untuk user robert adalah:
- Username
: robert
- Password
: ADGAdsafdfwt4gadfga==

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 23 dari 47

B. Melakukan eksploitasi menggunakan SSH


Dikarenakan kita telah mendapatkan dua buah akun yang valid, dan juga karena service
ssh (port 22) terbuka, maka tidak ada salahnya kita melakukan percobaan untuk login
menggunakan ssh.
Berikut adalah langkah-langkah untuk melakukan ssh.
1. Buka terminal Backtrack
2. Ketik ssh john@192.168.36.209
3. Lalu ketikkan MyNameIsJohn
4. Akan muncul tampilan berikut:

Selamat, ternyata kita dapat login ke sistem sebagai john menggunakan ssh.
Tambahan:
Kita juga dapat login ke sistem sebagai robert menggunakan ssh, dengan cara:
1. Buka terminal Backtrack
2. Ketik ssh robert@192.168.36.209
3. Lalu ketikkan ADGAdsafdfwt4gadfga==
4. Akan muncul tampilan berikut:

5. Oke sekarang kita telah login. Namun ternyata user ini telah dibatasi hak-hak
aksesnya, sehingga hanya dapat menjalankan beberapa perintah saja.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 24 dari 47

Untuk melihat perintah apa saja yang dapat dijalankan oleh user ini, maka cukup
ketikkan ? atau help, seperti pada gambar berikut:

Jadi, selain dari delapan (8) perintah tersebut, sistem tidak akan melaksanakan
perintah tersebut. Sebagai contoh, bila user mengetikkan perintah passwd, whoami,
dan pwd, akan muncul pesan sebagai berikut:

Sekarang, mari kita coba perintah untuk pindah ke direktori paling atas (/), dengan
sintaks cd /, namun ternyata muncul pesan kesalahan berikut:

Gawat Ternyata sintax untuk pergi ke direktori paling atas tersebut dianggap
terlarang oleh sistem, dan sayangnya user tidak akan diberi peringatan lagi, apabila
user melakukan sintax terlarang lagi.
Pada saat kita mengetikkan sintax terlarang lagi (dalam hal ini adalah cd / lagi), user
langsung dikeluarkan dari sistem.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 25 dari 47

MENINGKATKAN
HAK AKSES
A. Keluar dari limited shell
User john dan user robert telah terdaftar sebagai user biasa dan memiliki hak akses
sebagai limited shell, sehingga hanya dapat menjalankan beberapa perintah saja.
Salah satu cara agar dapat keluar dari pembatasan oleh limited shell adalah dengan
cara mengetik perintah echo os.system('/bin/bash') pada terminal user yang sedang
login (dalam contoh ini adalah: user john), seperti yang ditunjukkan pada gambar
berikut:

Hore. Kini user john tidak berada dalam kondisi akses sebagai limited shell. Kini user
telah dapat menjalankan semua perintah pada sistem server.
Tabel perbedaan user tanpa limited shell (john) dengan user dengan limited shell
(robert), adalah sebagai berikut:
Perintah
id

User tanpa limited shell (john)

User dengan limited shell (robert)

uname a

whoami

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 26 dari 47

B. Mencari proses yang dijalankan oleh root


Untuk menjadi root, kita harus menemukan proses-proses apa saja yang berjalan
dengan akses sebagai root. Untuk menemukan proses tersebut, ketiklah perintah
ps aux | grep root pada terminal ssh user john, sehingga hasilnya adalah berikut:

Mari kita fokuskan pada bagian yang ditunjukkan oleh gambar ini:

Pada gambar di atas terdapat tiga (3) line terminal yang ditandai. Ketiga perintah itu
dijalankan dengan hak akses sebagai root. Ketiga perintah itu adalah:
1. /bin/sh /usr/bin/mysqld_safe
2. /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=root --pidfile=/var/run/mysqld/mysqld.
3. logger -p daemon.err -t mysqld_safe -i -t mysqld
Dari ketiga peririntah itu, kita simpulkan bahwa perintah untuk service (layanan)
mysqld, ternyata dijalankan dengan hak akses sebagai root.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 27 dari 47

C. Mengambil alih akun akses mysqld


Dikarenakan mysqld dijalankan dengan hak akses sebagai root, jadi jika kita mengambil
alih akses mysqld, maka setiap perintah yang kita berikan kepada mysqld akan
dijalankan dan diproses dengan hak akses sebagai root juga.
Sebelumnya, tadi kita telah mengetahui bahwa setiap inputan user pada web aplikasi
akan diproses oleh file checklogin.php. Oleh sebab itu, kita perlu melihat isi file
tersebut. Untuk melihat isi file tersebut, pada terminal user john, ketik
cat /var/www/checklogin.php, sehingga akan menampilkan isi seperti pada gambar
berikut:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 28 dari 47

Dari gambar berikut, mari kita fokus pada dua baris terminal yang telah ditandai:

Hahaahh Ternyata, akun untuk akses pada service mysqld adalah:


- Username
: root
- Password
:
Waduh, ternyata passwordnya adalah kosong

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 29 dari 47

D. Login sebagai service mysqld


Seperti yang telah kita ketahui sebelunya bahwa service mysqld berjalan dengan akses
sebagai root. Itu artinya, setiap perintah yang dijalankan oleh mysqld akan dijalankan
oleh sistem dengan hak akses root. Berikut adalah langkah-langkah untuk melakukan
login ke sistem menggunakan akun service mysqld:
1. Pada terminal user john, ketik mysql -h localhost -u root, seperti gambar berikut:

2. Kini kita telah berhasil login sebagai service mysqld, tanpa meminta password,
karena password untuk akun adalah kosong/tidak ada.

3. Unttuk mengetahui hak-hak apa saja yang dapat dilakukan oleh user yang sekarang
sedang login (yaitu user mysqld), silahkan ketikkan: show grants

Dari gambar diatas, kita simpulkan bahwa hak akses kita adalah sebagai root pada
server sistem (localhost).

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 30 dari 47

E. Memodifikasi file /etc/passwd


Seluruh informasi akun pada server disimpan konfigurasinya pada file /etc/passwd.
Oleh sebab itu kita akan mencoba melakukan pemodifiasian pada file tersebut, berikut
adalah langkah-langkahnya:
1. Pada terminal ketik perintah: ls l /etc/passwd

2. Output dari perintah tersebut adalah berikut:

Kesimpulan:
- File tersebut diciptakan oleh username root, dan root punya hak akses untuk
membaca dan menulis.
- File tersebut dapat diakses oleh usergroup root, dengan hak akses hanya
untuk membaca saja.
- File tersebut dapat diakses oleh siapapun, selain username root dan
usergroup root, dengan hak akses hanya untuk membaca saja.
Sehingga bisa disimpulkan bahwa konfigurasi untuk chmod file tersebut adalah 644,
dengan keterangan:
- 6 => (r)ead = 4 + (w)rite =2
=> untuk username root
- 4 => (r)ead = 4
=> untuk usergroup root
- 4 => (r)ead = 4
=> untuk user selain username root dan
usergroup root
3. Ketik perintah cat /etc/passwd

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 31 dari 47

4. Perhatikan baris ini lebih seksama:


Ini adalah baris untuk settingan user root:

Ini adalah baris untuk settingan user john dan robert:

Keterangan:
- root : x :
0 :
0 : root : /root
: /bin/bash
- john : x : 1001 : 1001 : ,,,
: /home/john
: /bin/kshell
- robert : x : 1002 : 1002 : ,,,
: /home/robert : /bin/kshell

(1) : (2) : (3) :


(4) : (5) :
(6)
:
(7)
Informasi:
(1) adalah nama user yang telah terdaftar pada sistem
(2) adalah jenis password, tanda x artinyapassword disimpan di /etc/shadow
(3) adalah nomor username pada sistem (UserID)
(4) adalah nomor usergroup pada sistem (GroupID)
(5) adalah informasi tambahan/keterangan pelengkap terhadap nama user
(6) adalah lokasi home directory user tersebut
(7) adalah lokasi shell yang digunakan
Nah, dari ketiga baris tersebut dapat kita simpulkan bahwa yang menjadikan user
root adalah spesial dan berbeda dari user john dan robert adalah informasi nomor
(3), (4), dan (7). Oleh sebab itu, kita akan mencoba mengganti hak user john agar
dapat memiliki hak setara dengan root. Namun, masalahnya hanya user root yang
memiliki hak untuk menulis. Bagaimana caranya agar user john dapat menulis file
tersebut? Oppps,.. jangan lupa, kalau ternyata kita telah menguasai akun akses
service mysqld, yang dapat menjalankan semua perintah setara dengan hak akses
root. Jadi, kita dapat memerintahkan service mysqld untuk mengganti hak akses dari
konfigurasi file ini, agar user john memiliki akses untuk menulis file tersebut.
5. Loginlah pada mysqld, dan ketiklah perintah berikut: select sys_exec( chmod 777
/etc/passwd); . Perintah tersebut bertujuan untuk menge-set nilai hak akses untuk
file /etc/passwd agar menjadi 777.
Sehingga hasilnya adalah:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 32 dari 47

Berhasil. Dari gambar di atas, dapat kita simpulkan bahwa nilai hak akses untuk file
tersebut adalah 777.
6. Sekarang keluarlah dari mysqld, dan ketiklah kembali: ls l /etc/passwd, sehingga
hasilnya adalah:

Kini, semua user pada sistem (termasuk user john) memiliki hak akses penuh untuk
file itu.
7. Kemudian ketik perintah vim /etc/passwd, untuk mengedit isi file itu, dan ubahlah
baris john:x:1001:1001:,,,:/home/john:/bin/kshell
menjadi john:x:0:0:,,,:/home/john:/bin/bash

menjadi

8. Kemudian, pada jendela kernel ssh user john, ketik perintah whoami.
Hasilnya adalah:

9. Kemudian, pada jendela kernel ssh user john, ketik perintah id.

10. Sepertinya, sistem masih belum menganggap bahwa user john memiliki hak akses
sebagai root, oleh sebab itu, sebaiknya kita logout dulu dari jendela ssh user john.
Untuk keluar dari mode unlimited shell, ketik perintah exit, sehingga hasilnya adalah:

Kini user john telah masuk ke mode limited shell, dan untuk keluar dari jendela ssh,
silahkan ketik perintah exit.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 33 dari 47

11. Setelah kita menutup koneksi ssh kita, mari kita buka kembali koneksi ssh.
12. Loginlah menggunakan username john, dan password MyNameIsJohn, maka
hasilnya adalah:

Violaa Kita berhasil login sebagai root. Untuk membuktikan bahwa kita adalah
root, kita ketik perintah whoami dan id, hasilnya adalah:

Haaa.. kini pada server ini telah terdapat dua user dengan usergroup sebagai root,
user yang pertama bernama root, dan user yang kedua bernama john. Dengan kata
lain, sekarang user john sudah sebanding dengan root, dan memiliki hak penuh
terhadap sistem.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 34 dari 47

F. Bukti bahwa kita adalah root


Dikarenakan server ini memang didesain untuk dijadikan bahan pembelajaran untuk
para pemula (seperti saya) agar mendalami pengetahuan seputar keamanan sistem,
maka tim pengembang dari server ini telah menyiapkan sebuah pesan wasiat bagi para
attacker yang berhasil menjadi root. Untuk melihat pesannya, silahkan ketik perintah:
cat /root/congrats.txt

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 35 dari 47

MENCIPTAKAN
PINTU BELAKANG
A. Membuat user biasa sebagai pintu belakang
Karena kita tidak ingin user root mencurigai user john yang memiliki hak akses sebagai
root, maka kita akan membuat sebuah user baru yang memiliki hak akses sebagai user
biasa (setara dengan user robert). User biasa yang akan kita buat haruslah tidak
menimbulkan kecurigaan. Dalam hal ini, kita akan menciptakan user alex, karena root
akan menganggap bahwa user alex ini adalah pegawai yang valid yang bekerja pada
LigGoat Employee.
Langkah-langkah membuat user baru adalah:
1. Pada jendela ssh sebagai root, ketik useradd alex. Sintax itu untuk menciptakan
sebuah user baru dengan username alex, dengan password adalah kosong, seperti
pada gambar berikut:

2. Bukti bahwa user alex telah tercipta, silahkan ketik perintah cat /etc/passwd,
sehingga hasilnya adalah:

3. Oke, user alex telah tercipta. Namun lokasi shell yang digunakan adalah di /bin/sh.
Seharusnya, user dengan tingkat akses setara dengan john dan robert adalah
memiliki lokasi shell yang digunakan berada di /bin/kshell. Oleh sebab itu kita akan
mengubah isi file tersebut, dan mengganti lokasi shell untuk user alex, dengan cara
mengetikkan perintah vim /etc/passwd.
Gambar:

menjadi

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 36 dari 47

4. Kini user alex telah berada dalam kondisi akses sebagai limited shell, sehingga user
root tidak akan curiga pada user alex yang telah kita ciptakan barusan.
Bukti bahwa user alex berada dalam kondisi akses sebagai limited shell:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 37 dari 47

B. Membuat sebuah user dengan akses root sebagai pintu belakang


Sebenarnya, cukup dengan menambahkan user biasa saja (user alex), kita sudah bisa
kembali mengambil alih akses root. Namun, untuk berjaga-jaga, apabila user alex telah
dihapus karena ketahuan, kita harus punya rencana cadangan untuk jalan masuk dari
pintu belakang.
Tampilan saat user alex ingin mengambil hak akses sebagai root:

Dari gambar di atas, dapat kita simpulkan bahwa:


- User alex dapat keluar dari mode limited shell.
- User alex tidak dapat melakukan switch user menjadi root, karena tidak
mengetahui password untuk user root.
- User alex dapat melakukan switch user menjadi john (yang memiliki hak
setara root), karena telah mengetahui password untuk user john.

User setara root yang akan kita buat juga haruslah tidak menimbulkan kecurigaan.
Dalam hal ini, kita akan menciptakan user syskioptrix, karena root akan menganggap
bahwa user syskioptrix ini adalah sebuah service yang berjalan untuk melakukan
penyimpanan file log pada server.
Langkah-langkah membuat user baru adalah:
1. Pada jendela ssh sebagai root, ketik useradd syskioptrix. Sintax itu untuk
menciptakan sebuah user baru dengan username syskioptrix, dengan password
adalah kosong, seperti pada gambar berikut:

2. Bukti bahwa user syskioptrix telah tercipta, silahkan ketik perintah cat /etc/passwd,
sehingga hasilnya adalah:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 38 dari 47

3. Oke, user syskioptrix telah tercipta. Namun lokasi shell yang digunakan adalah di
/bin/sh. Seharusnya, user dengan tingkat akses setara dengan root adalah memiliki
lokasi shell yang digunakan berada di /bin/bash. Oleh sebab itu kita akan mengubah
isi file tersebut, dan mengganti lokasi shell untuk user syskioptrix, dengan cara
mengetikkan perintah vim /etc/passwd. Dan agar mempersulit user root dalam
menemukan user syskioptrix ini, maka kita akan menjadikan informasi user
syskioptrix berada pada baris kedua, tepat berada di bawah baris informasi untuk
user root.
Gambar:

menjadi

4. Selamat. Kini user syskioptrix telah berada dalam kondisi akses sebagai root.
Tambahan: Sengaja user alex dan syskioptrix tidak diberikan password, agar tidak memberikan
kecurigaan user root, dan untuk mempermudah kita login kembali ke dalam server tanpa
melakukan autentikasi.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 39 dari 47

MENGHAPUS JEJAK
A. Mengembalikan hak akses user john
Sekarang user john telah menjadi root. Namun, bila hal itu tetap kita biarkan
berkelanjutan, maka user root yang sebenarnya akan merasa curiga dan hal itu bisa jadi
merupakan akhir dari karir kita dalam hal pengambilalihan server.
Berikut adalah langkah-langkah untuk mengembalikan hak akses user john:
1. Sebagai root, ubah kembali informasi konfigurasi user john pada /etc/passwd

menjadi

2. Sebagai root, ubah kembali hak akses file /etc/passwd.

menjadi

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 40 dari 47

B. Menghapus seluruh file log service


Kita harus menghapus seluruh isi file log service agar semakin menhilangkan jejak kita,
bahwa kita pernah masuk sebagai root. Seluruh file log berada pada direktori /var/log,
sehingga isinya adalah sebagai berikut:

Dari gambar di atas, kita dapat simpulkan betapa beruntungnya kita telah mendapatkan
hak akses root, sehingga kita dapat dengan leluasa melakukan apa saja pada sistem.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 41 dari 47

Dalam hal ini, log service yang akan kita hapus adalah log service apache2, ssh, daemon,
dan syslog.
1. Menghapus log service apache2
Untuk menghapus log service apache2, berikut adalah langkah-langkahnya:
1. Masuk ke direktori apache2, sehingga isinya adalah:

Bukti bahwa hasil exploitasi kita melalui service apache2 telah tersimpan pada
log service, silahkan ketik perintah untuk membaca isi file access.log.1, maka
hasilnya adalah:

Pada baris yang telah saya tandai, dapat kita lihat bahwa itu adalah isi salah satu
karakter yang dapat memicu teknik SQL Injection.
Ini adalah bukti bahwa kita telah melakukan SQL Injection secara bruteforce
menggunakan SQL Injection Me:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 42 dari 47

Ini bukti bahwa kita telah melakukan tools nmap terhadap target:

Ini bukti bahwa IP Address kita tercatat pada log apache2:

2. Sebaiknya, kita jangan menghapus file tersebut. Kita cukup menimpa ulang
semua file dengan karakter kosong, dengan mengetikkan perintah
echo> [nama file yang ingin kita timpa].

Sehingga, bila kita ketik ls -l, hasilnya adalah:

Ok. Seluruh file log untuk service apache2 telah berhasil kita amankan. Sekarang
kita akan mencoba hal yang sama untuk file log service yang lain.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 43 dari 47

2. Menghapus log service ssh


Untuk menghapus log service ssh, berikut adalah langkah-langkahnya:
1. File log ssh disimpan pada file /var/log/auth.log
Untuk melihat ada atau tidaknya IP Address kita tercatat pada log tersebut,
silahkan ketik perintah: cat /var/log/auth.log | grep 192.168.36.163, sehingga
isinya adalah:

2. Kita akan menimpa file tersebut dengan karakter kosong, dengan perintah
echo>/var/log/auth.log, sehingga hasilnya adalah:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 44 dari 47

3. Menghapus log service daemon


Untuk menghapus log service daemon, berikut adalah langkah-langkahnya:
1. File log daemon disimpan pada file /var/log/daemon.log
Untuk melihat ada atau tidaknya IP Address kita tercatat pada log tersebut,
silahkan ketik perintah: cat /var/log/daemon.log | grep 192.168.36.163,
sehingga isinya adalah:

2. Kita akan menimpa file tersebut dengan karakter kosong, dengan perintah
echo>/var/log/ daemon.log, sehingga hasilnya adalah:

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 45 dari 47

4. Menghapus log service syslog


Untuk menghapus log service syslog, berikut adalah langkah-langkahnya:
1. File log syslog disimpan pada file /var/log/ syslog.log dan /var/log/ syslog.log.0
Untuk melihat ada atau tidaknya IP Address kita tercatat pada log tersebut,
silahkan ketik perintah: cat /var/log/syslog.log | grep 192.168.36.163 juga cat
/var/log/syslog.log.0 | grep 192.168.36.163, sehingga isinya adalah:

2. Kita akan menimpa file tersebut dengan karakter kosong, dengan perintah
echo>/var/log/syslog.log.0, sehingga hasilnya adalah:

Kesimpulan:
Dikarenakan kita telah menghapus seluruh log file yang kita temukan, hal tersebut dapat
memperkecil kemungkinan bahwa root dapat menemukan jejak kita.
Tambahan:
Setelah semua kegiatan dalam tutorial ini telah kita lakukan, hal terakhir yang perlu kita lakukan
adalah melakukan logout dari layanan ssh sebagai root.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 46 dari 47

PENUTUP
Demikianlah tutorial yang tak seberapa ini, saya susun. Trima kasih.

SecurityVulnerabilityReport
Del Cyber Army Club

ALEX

18 Desember 2013
halaman: 47 dari 47