Friday, March 26, 2010

History hacking dunia TelNet

Sejarah Perhackingan Dunia Telnet

Bab ini menguji serangan yang dilakukan selama bertahun-tahun dalam penggunaan layanan Telnet. Pengujian dimulai dengan sekelumit sejarah. Protokol Telnet pertama kali diperkenalkan oleh Postel di tahun 1980. Dalam RFC 764, sebagaimana dituliskan oleh seseorang bernama Postel:
Tujuan dari protokol Telnet adalah untuk berfungsi secara umum, dua arah, fasilitas komunikasi yang berorientasi 8 bit. Tujuan utamanya adalah untuk mengijinkan metode standar dari perangkat terminal antar-muka dan pengolahan berorientasi terminal yang satu dengan yang lainnya. Visinya bahwa protokol tersebut dapat juga digunakan sebagai komunikasi antar terminal (“linking”) dan komunikasi antar proses (komputasi terdistribusi).

———————————————————————————
Referensi Silang : RFC 764 dapat ditemukan pada http://sunsite.auc.dk/RFC/rfc/rfc764.html
———————————————————————————-
Telnet
Sebagaimana yang saya sebutkan pada ulasan “Penjelasan TCP/IP”, Telnet tergolong unik yang dirancang dengan mengecualikan pencatatan rlogin. Telnet dirancang untuk memungkinkan seorang user log in ke mesin lain dan mengeksekusi perintah disana. Telnet (seperti halnya rlogin) bekerja
seperti halnya antara anda pada konsol mesin remote tersebut, seolah-olah anda secara fisik berada di depan mesin remote tersebut, menyalakan, dan mulai bekerja.
————————————————————————————————————
CATATAN: Pengguna PC bisa membayangkan hal yang sama dengan software PCAnywhere atau CloseUp. Program ini memungkinkan anda login secara remote ke PC lainnya dan mengeksekusi perintah pada C: prompt mesin remote tersebut (atau bahkan mengeksekusi perintah pada Windows, menyediakan anda koneksi berkecepatan tinggi untuk mengirimkan data grafis melalui kabel).
———————————————————————————————————–
Virtual Terminal
Keajaiban dibalik Telnet berupa pemalsuan suatu koneksi terminal ASCII diantara dua mesin yang berjauhan satu dengan yang lainnya. Hal ini bisa terjadi dengan menggunakan sebuah virtual terminal sebagaimana yang dijelaskan oleh Postel (dikutip dari RFC 854 )
Saat suatu koneksi telnet pertama kali terjadi, setiap ujungnya menganggap asli dan terhenti pada sebuah “Network Virtual Terminal” atau NVT. Sebuah NVT merupakan perangkat imajiner yang menyediakan sebuah standar, network-wide, perantara yang menggambarkan suatu terminal sebenarnya… Network Virtual Terminal (NVT) merupakan perangkat karakter dua arah. NVT memiliki sebuah printer dan keyboard. Printer tersebut merespon data yang masuk dan keyboard menghasilkan data keluaran yang dikirim melalui koneksi Telnet tersebut dan, jika “echo” merupakan hal yang diinginkan, sama halnya dengan printer NVT. Echo tidak diharapkan untuk melintasi jaringan tersebut (meski, opsi tersebut ada untuk mengaktifkan suatu mode operasi “remote” echo, tidak diperlukan host (untuk mengimplementasikan opsi ini). Code tersebut di set berupa 7-bit USASCII dalam suatu 8-bit, kecuali jika telah dimodifikasi. Konversi kode apapun dan pertimbangan waktu merupakan masalah lokal dan tidak berpengaruh pada NVT tersebut.
—————————————————————————————————————
Referensi Silang: Baca RFC 854 pada http://sunsite.auc.dk/RFC/rfc/rfc854.html
—————————————————————————————————————
Sebuah virtual terminal sama halnya dengan (atau mirip dengan) koneksi kabel serial antara dua mesin. Sebagai contoh, anda dapat mensimulasikan sesuatu yang mirip dengannya ke sebuah sesi Telnet dengan tanpa uncommenting instruksi respawn pada file inittab di sistem Linux (dan sebagian besar sistem UNIX) atau dengan mendiskoneksikan keyboard dan monitor pada sebuah SPARC dan menghubungkan terminal VT200 kedalam serial A atau B. Pertama, sebuah login: prompt akan ditampilkan. Yang kedua, seluruh pesan proses boot merupakan echo ke terminal yang terhubung dan berakhir, sebuah boot prompt ditampilkan (atau mungkin, jika disk drive SCSI ditentukan sebagai boot device pada PROM, mesin tersebut akan melakukan boot dan menampilkan login: prompt).
Oleh karena itu, koneksi berbasis Telnet merupakan apa yang disebut dengan koneksi bare-bone. Anda dapat memperhatikan bahwa jika anda menggunakan terminal VT220 sebagai puncak pada SPARC anda, saat terjadi proses boot, logo Sun yang keren tersebut tidak akan tercetak berwarna, tidak ada tampilan grafis yang bagus yang terlihat. Telnet dan sesi terminal benar-benar berbasiskan teks. Sebagai tambahan, koneksi telnet tidak memiliki fasilitas untuk menginterpretasikan bahasa berorientasi-tampilan seperti HTML tanpa bantuan sebuah browser berbasis teks seperti Lynx. Oleh sebab itu, memanggil suatu halaman Web melalui Telnet tidak akan menampilkan gambar atau teks yang berbentuk indah; hanya merupakan source dokumen tersebut (terkecuali bisa, anda login via telnet dan kemudian menggunakan Lynx).
—————————————————————————————————————
NOTE: Lynx benar-benar merupakan browser HTML berbasis terminal yang digunakan dengan shell-account atau koneksi TCP/IP berbasis DOS. Hanya dengan inilah cara satu-satunya untuk mengakses World Wide Web.
—————————————————————————————————————
Sejarah Keamanan Telnet
Telnet memiliki sejumlah security advisories yang banyak. Masalah keamanan Telnet yang muncul sangat banyak, sebagian besar celah keamanan umumnya pada kesalahan pemrograman. Bagaimanapun juga, kesalahan pemrograman bukan satu-satunya alasan mengapa Telnet ada dalam advisories. Pada bulan Agustus 1989, sebagai contoh, masalah tersebut berupa Trojan, sebagaimana yang disebutkan pada CERT advisory “Telnet Break-in Warning” :
Banyak komputer yang terhubung ke Internet saat ini mengalami aktifitas sistem yang tidak terotorisasi. Penyelidikan menunjukkan bahwa aktifitas tersebut terjadi selama beberapa bulan dan meluas. Beberapa komputer UNIX yang memiliki program “Telnet” terpaksa diganti dengan versi “Telnet” yang melog sesi outgoing login (termasuk username dan password untuk sistem remote). Terlihat bahwa akses tersebut telah menguasai berbagai mesin yang terlihat dalam beberapa sesi log-nya.
————————————————————————————————————–
Referensi Silang: Untuk melihat CERT advisory ini silakan kunjungi ftp://ftp.uwsg.indiana.edu/pub/security/cert/cert_advisories/CA-89:03.telnet.breakin.warning
—————————————————————————————————————
Serangan yang terjadi terlebih dahulu dinyatakan oleh DDN Security Coordination Center (September 1989), jadi sekelumit dokumentasi mengenai apakah hal tersebut berpengaruh pada komputer pemerintah. Selain itu, meskipun usaha CERT merupakan apresiasi dan penting bagi keamanan Internet, Advisory DDN juga berisikan analisa teknis tentang penanganan masalah tersebut.
Pada bulan Maret, 1991, telnetd daemon pada distribusi Sun ditemukan memiliki celah keamanan. Sebagaimana yang tertulis pada CERT advisory “Sun OS in .telnetd Vulnerability”.
The Computer Emergency Response Team/Coordination Center (CERT/CC) telah memperoleh informasi dari Sun Microsystem, Inc. berkenaan dengan celah keamanan yang mempengaruhi SunOS versi 4.1 dan 4.1.1 pada in.telnetd pada seluruh arsitektur Sun 3 dan 4. Celah keamanan ini juga mempengaruhi SunOS versi 4.0.3 pada in.telnetd dan in.rlogind pada seluruh arsitektur Sun 3 dan 4. Sepanjang pengetahuan kami, celah keamanan tidak ada pada SunOS versi 4.1 dan 4.1.1 pada in.rlogind. Celah keamanan telah diperbaiki oleh Sun Microsystems, Inc.
—————————————————————————————————————
Referensi Silang: Untuk melihat CERT advisory ini ada dapat mengujungi ftp://info.cert.org/pub/cert_advisories/CA-91%3A02a.SunOS.telnetd.vulnerability
—————————————————————————————————————
—————————————————————————————————————
TIP: Jika anda membeli Sun 3/60 melalui Internet, dan anda bisa mendapatkan patch tersebut, yang disertakan advisory sebelumnya.
—————————————————————————————————————
Berbulan-bulan kemudian, telah ditetapkan bahwa sebuah aplikasi yang dikhususkan LAT/Telnet dikembangkan oleh Digital Corporation telah terjadi pelanggaran keamanan. Sebagaimana yang disebutkan pada CERT advisory-nya “ULTRIK LAT/Telnet Gateway Vulnerability”:
Pelanggaran keamanan terjadi pada sistem ULTRIX 4.1 dan 4.2 yang dijalankan software LAT/Telnet Gateway yang memungkinkan akses privilese yang tidak sah… siapapun yang mengakses suatu terminal atau modem yang terhubung pada LAT server yang dijalankan LAT/Telnet service, bisa mendapatkan root privilese yang tidak sah.
—————————————————————————————————————
Referensi Silang: Untuk melihat CERT advisory ini silakan kunjungi: ftp://info.cert.org/pub/cert_advisories/CA-91%3A11.Ultrix.LAT-Telnet.gateway.vulnerability
—————————————————————————————————————
Masalah Telnet pertama kali yang beredar di kalangan orang-orang awam yang terhubung ke suatu distribusi dari client NCSA Telnet melalui mesin PC dan MacIntosh. Jadi tidak terjadi kesalahpahaman disini, ini berupa sebuah client aplikasi Telnet yang menyertakan sebuah FTP server didalamnya. Celah tersebut meluas terutama dari user yang kurang memahami bagaimana aplikasi tersebut bekerja. Sebagaimana yang dijelaskan oleh orang-orang DDN:
Konfigurasi default dari NCSA Telnet pada MacIntosh dan PC memiliki masalah keamanan serius dalam pengimplementasian sebuah FTP server… Siapapun pengguna Internet dapat terhubung melalui FTP ke suatu PC atau MacIntosh yang menjalankan konfigurasi default NCSA Telnet dan mendapatkan akses baca dan tulis yang tidak absah ke berbagai file, termasuk file-file sistem.
Masalah tersebut terkait dengan sebuah file opsi konfigurasi yang memungkinkan seseorang meng-enable atau mendisable-kan FTP server. Kebanyakan user beranggapan bahwa jika pernyataan enable server tersebut tidak ada, maka server tersebut tidak bekerja. Hal ini merupakan kesalahan. Dengan menghilangkan baris tersebut (atau menambahkan opsi baris ftp=yes), maka Anda mengijinkan seseorang yang tidak diinginkan mengakses baca-tulis pada hard disk anda.
Saya mengharapkan hal ini akan menjelaskan argumentasi yang menganggap apakah seorang pengguna PC dapat diserang dari luar. Masalah ini menjadi diskusi hangat di Usenet. NCSA Telnet hanya membuat celaka seseorang pada beberapa situasi dimana seorang pengguna PC atau Mac dapat diserang dari luar. Jadi tergantung pada situasinya, rata-rata pengguna komputer dirumah dapat menjadi korban serangan dari luar. Orang tersebut dapat membaca, menghapus file anda dan seterusnya.
Apa yang lebih menarik adalah bahwa hingga hari ini, mereka yang menggunakan aplikasi NCSA telnet memiliki beberapa resiko, bahkan jika mereka hanya mengijinkan akses ke FTP server pada seseorang yang terotorisasi. Jika seorang cracker mendapatkan dari korbannya suatu username dan password yang valid (dan cracker tersebut juga merupakan seorang user yang terotorisasi), cracker tersebut bisa saja mendapatkan file FTPPASS. File ini merupakan suatu file otentikasi dimana username dan password para user tersimpan. Password yang terenkripsi dalam file ini mudah sekali dicrack.
Username pada file ini tidak tersimpan dalam bentuk terenkripsi (hanya beberapa program mengenkripsi usernamenya). Password tersebut terenkripsi, namun skema enkripsinya memiliki implementasi yang kurang baik. Sebagai contoh, jika password tersebut kurang dari 6 karakter, maka hanya perlu beberapa detik untuk mengcrack. Kenyataannya, seseorang dengan mudahnya dapat mengcrack password tersebut hanya dengan 14 baris program BASIC.
————————————————————————————————————-
Referensi Silang: program BASIC untuk mengcrack passwords dapat dijumpai di http://www.musa.it/gorgo/txt/NCSATelnetHack.txt.
————————————————————————————————————-
Jika anda seorang pengguna PC atau MAC yang menggunakan NCSA Telnet (dengan FTP server), jangan ijinkan seluruh akses FTP ke semua orang yang tidak anda percayai. Jika anda mengabaikan peringatan ini, mungkin anda telah di crack. Bayangkan suatu skenario dimana seseorang pada suatu jaringan yang menggunakan NCSA Telnet. Bahkan jika sisa jaringan tersebut tergolong aman, hal ini akan menyerang keamanan bagian tersebut. Terlebih lagi, aplikasi tersebut tidak menampilkan log (dalam keadaan normal) dan oleh karena itu, tidak meninggalkan jejak. Jaringan apapun yang menjalankan aplikasi ini dapat diserang, dilumpuhkan dan dirusak, dan tak seorangpun dapat mengidentifikasi penyerangnya.
Kebanyakan celah keamanan Telnet telah penah ditemukan, yang berkenaan dengan opsi yang melalui environmet variable. Buletin DDN telah mempostingnya pada tanggal 20 November 1995:
Suatu celah keamanan yang terdapat dalam beberapa versi Telnet daemon yang mendukung RFC 1408 atau 1572, yang keduanya berjudul “Telnet Environment Option”, yang dijalankan pada sistem tersebut juga mendukung shared object libraries…Local dan remote user dengan atau tanpa local account bisa mendapatkan root access ke sistem target.
Sebagian situs yang memiliki celah keamanan ini. Agar memahami masalahnya, anda harus memahami istilah environment. Dalam bahasa UNIX, umumnya merujuk ke lingkungan shell tersebut (adalah bahwa, shell apa yang mungkin anda gunakan sebagai default, apa terminal emulation yang anda gunakan dan seterusnya).
————————————————————————————————————
CATATAN: Pengguna DOS/Windows dapat dengan mudahnya memahami pemikiran ini pada file AUTOEXEC.BAT dan CONFIG.SYS. Sebagai contoh, variabel yang dibuat menggunakan perintah SET, seperti pada SET PATH=C:\;C:\WINDOWS; (PATH environment variable merupakan salah satu dari beberapa yang dapat dispesifikasikan dalam DOS environment). Pernyataan ini yang menentukan apakah lingkungan pemrograman anda akan seperti saat anda memboot-nya ke dalam mode perintah. Beberapa environment variable umum yang bisa diset dengan cara ini merupakan shell yang anda gunakan, path, time zone dan seterusnya.
————————————————————————————————————–
Perubahan Environment
Pada UNIX, anda dapat menampilkan atau mengubah environment tersebut dengan menggunakan salah satu perintah setenv atau printenv. Berikut ini contoh yang mungkin terdapat pada sebuah instruksi:
> setenv
ignoreeof=10
HOSTNAME=samshacker.samshack.net
LOGNAME=tr
MINICOM=-c on
MAIL=/spool/mail/samshack
TERM=ansi
HOSTTYPE=i386-linux
PATH=/usr/local/bin:/bin:/usr/bin:.:/sbin:/usr/sbin:.
HOME=/usr/local/etc/web-clients/samshacker/./
SHELL=/bin/bash
LS_OPTIONS=–8bit –color=tty -F -T 0
PS1=\h:\w\$
PS2=>
TAPE=/dev/nftape
MANPATH=/usr/local/man:/usr/man/preformat:/usr/man:/usr/X11/man:/usr/openwin/man
LESS=-MM
OSTYPE=Linux
OPENWINHOME=/usr/openwin
SHLVL=2
BASH=/bin/bash
LS_COLORS=
_=/bin/csh
PWD=/usr/local/etc/web-clients/samshacker/./
USER=tr
HOST=samshack
Listing tersebut merupakan output yang sangat ekstensif dari perintah pada mesin yang memiliki sebuah virtual domain. Sebuah versi yang lebih mudah diatur (dan lebih mudah dicerna) dapat diambil dari shell mesin yang sebenarnya. Berikut ini outputnya:
samshacker% /usr/ucb/printenv
HOME=/home/hacker
HZ=100
LOGNAME=hacker
MAIL=/var/mail/hacker
PATH=/usr/bin:
SHELL=/sbin/sh
TERM=ansi
TZ=US/Pacific
PWD=/home/hacker
USER=hacker
Output ini berasal dari SPARCstation 10 dimana saya mengeset sebuah shell account tiruan (output pertama berasal dari sistem Linux). Hal ini merupakan environment yang ideal. Pernyataan PATH (baris 6) merujuk hanya ke /usr/bin. Dalam prakteknya, hal ini tentu saja tidak berguna karena terdapat banyak berkas biner pada sistem UNIX yang kesemuanya ditempatkan pada /usr/bin. Sebagai contoh, berbagai macam biner ditempatkan dalam /usr/sbin, /usr/bin/X11, dan seterusnya. Anda dapat melihat, sebagai contoh, bahwa even perintah yang diberikan (setenv) dilakukan dengan menggunakan pernyataan path mutlak (/usr/ucb/setenv). Dalam prakteknya, saya telah (selama lebih dari sehari) menetapkan path yang lebih panjang, yang merujuk ke halaman utama, biner, dan mungkin termasuk berbagai direktori.
—————————————————————————————————————
CATATAN: Pernyataan PATH pada UNIX bekerja hampir sama dengan DOS. Direktori yang anda peruntukkan untuk berada dalam path harus diartikulasi pada baris pernyataan PATH dan dipisahkan oleh tanda titik dua (sebagai ganti dari titik koma). Dengan artikulasi ini pada baris PATH, anda memberikan user akses ke perintah dalam direktori ini (tidak masalah berada pada direktori yang mana user tersebut berada).
—————————————————————————————————————
Terminal Emulation
Variable lain yang ditetapkan dalam pernyataan pemrosesan termasuk HOME, MAIL, SHELL dan TERM. TERM, salah satu dari variabel yang sangat penting, yang mengekspresikan jenis terminal emulation yang akan anda gunakan. Kerena tidak seluruh pembaca mengetahui apakah terminal emulation tersebut, saya akan menjelaskannya dengan ringkas.
Bertahun-tahun yang lalu, sebagian besar server yang berupa mainframe. Pada saat itu, user tidak memiliki PC yang powerful yang dihubungkan ke mainframe tersebut; mereka memiliki terminal, yang (biasanya) berupa kotak tanpa hard disk. Disini terdapat layar yang dihubungkan ke keyboard. Dibalik terminal terdapat konektor serial, yang mungkin memiliki metode koneksi yang berbeda. Salah satu metode yang terkenal saat itu adalah koneksi serial bare-bone (kami membicarakan bentuk primitifnya disini: yakni sebuah interface serial-to-serial langsung). Terminal jenis lain mungkin mendukung opsi kabel seperti koneksi Ethernet.
Pada berbagai peristiwa, terminal ini memiliki fungsi yang sedikit (setidaknya jika dibandingkan dengan PC pada umumnya). Berisikan mainboard seperti sebuah terminal yang memiliki sebagian kecil memory dan firmware (software hardware di dalam board itu sendiri). Firmware akan memastikan user tersebut beberapa opsi. Sebagai contoh, seseroang dapat mengatur kecepatan dan jenis koneksi, yang diperlukan untuk local echo dan seterusnya. Terkadang, terdapat opsi-opsi yang diatur pada jenis printer yang mungkin digunakan atau bahkan port apakah yang digunakan dgunakan untuk mengirim data.
————————————————————————————————————-
TIP: Sebagaimana halnya terminal yang masih dijual pada Usenet Newsgroup teretntu. Jika anda mahasiswa dengan dana cekak dan anda memiliki koneksi Ethernet atau koneksi serial pada server kampus anda, dan jika server account tersebut merupakan sebuah shell account, menerima suatu terminal. Maka hanya dengan $25-40, anda dapat memperoleh akses internet berkecepatan tinggi. Sebenarnya, anda tidak bisa secara umum menyimpan material ke dalam sebuah disk, namun anda dapat mencetak apa yang terjadi pada layar saat itu. Anda tidak akan percaya betapa cepatnya layar tersebut diupdate. Situasi yang benar-benar ideal untuk Internet Relay Chat (IRC). Box ini tergolong kecil, murah dan handal.
—————————————————————————————————————
Dua terminal yang terkenal adalah Tektronix 4020 dan VT100 (juga IBM 3270, yang sedikit berbeda). Masing-masing memiliki pengaturan jumlah karakter perbaris dan baris per layar yang dapat ditampilkan. Dalam kenyataannya, kebanyakan terminal biasanya memiliki dua setting. Agar terminal menjadi lebih disukai, seseorang juga dapat menentukan kolom dan grafis (Tektronix telah berorientasi grafis).
Karena terminal ini menjadi metode standar koneksi ke mainframe, mereka juga memasuki dunia UNIX. Sebagaimana halnya, seluruh sistem operasi UNIX memiliki keyboard dan screen mapping (pemetaan layar). Maaping merupakan gambaran dari layar dan setting keyboard (sebagai contoh, berapa banyak baris dan kolom per layar, atau yang lebih penting, Kombinasi Ctrl + Key apa yang menggambarkan karakter khusus). Hal ini diperlukan karena terminal tertentu menggunakan lebih dari key yang diberikan pada standar keyboard PC atau Mac. Terlebih pada keyboard typewriter dengan tombol F function, yang disana mungkin berupa tombol P yang menampilkan tindakan khusus, termasuk aktivasi menu dan navigasi kursor layar pada database. Untuk menampilkan hal yang sama pada keyboard PC, Mac atau beberapa UNIX keyboard, kombinasi tombol Ctrl+Esc telah ditentukan sama dengan tombol P. Penandaan tombol ini dikenal dengan key binding, yagn merupakan pernyataan yang dibuat dalam kode program yang menentukan apa yang terjadi jika hal ini atau kombinasi tombol tersebut di eksekusi. Key binding merupakan hal terpenting dalam pemrograman, khususnya bahasa C dimana anda memberikan seuatu interface semi-grafis (sebagai contoh, dimana anda menggunakan library TurboVision-nya Borland yang terkenal itu untuk membuat drop-down menu pada suatu aplikasi DOS).
Seseorang dapat secara umum menentukan key binding dalam sebuah program (setidaknya, menuliskannya dengan baik). Yang memberikan pengguna kendali application-level terhadap tombol mana yang melakukan apa. Sebagai contoh, mungkin user tersebut dapat menentukan binding dari tombol Ctrl + F untuk menampilkan berbagai jenis fungsi. Beberapa aplikasi tertentu menanyakan pengguna untuk melakukan hal tersebut sebelum menjalankan program tersebut untuk pertama kalinya. Terdapat lebih dari satu program—sebuah freeware editor untuk UNIX, yang ditulis dalam bahasa Jerman—yang memungkinkan anda untuk memetakan kembali keyboard secara lengkap.
Dalam UNIX, terminal mapping pada umumnya tersimpan dalam file yang disebut termcap. Library termcap, menurut laporan diperkenalkan dengan Berkeley UNIX, yang merupakan tambahan penting dalam sistem tersebut. Tanpa hal itu, banyak mesin yang tidak akan berkomunikasi dengan baik satu sama lainnya. Sebagai contoh, jika anda melakukan suatu fresh install pada sistem operasi Linux dan tidak melakukan apapun untuk menggunakan variabel TERM, yang akan diset ke Linux. Jika anda kemudian melakukan Telnet ke sebuah SPARCstation (atau mesin lain yang juga memiliki konfigurasi TERM default), maka anda tidak mampu membersihkan layar dengan perintah clear. Hal ini dikarenakan dua setting terminal emulation tidak kompatibel. Lebih jauhlagi, jika anda mencoba menjalankan sebuah program seperti PINE—yang mengandalkan kompatibilitas jenis terminal—maka program tersebut akan mengalami error, yang menandakan bahwa terminal tersebut tidak di dukung. (sistem SysV secara tradisional mengunakan terminfo sebagai lawan dari termcap).
————————————————————————————————————-
PERINGATAN: Kebanyakan distribusi UNIX memiliki daftar lengkap termcap, yang terkadang berisikan ratusan terminal emulation. Jika anda orang baru di UNIX dan mencoba-coba dengan ide untuk menggunakan entri termcap anda, agar sangat berhati-hati. Anda mungkin mengalami keanehan. Dalam beberapa kasus, apa yang terlihat seperti teks yang berbentuk indah mungkin malah terlihat aneh, terlipat, kata-kata yang tidak beraturan dan benar-benar tidak dapat terbaca. Pelajari halaman petunjuk sebelum “bermain-main” dengan file termcap anda.
————————————————————————————————————-
Kebanyakan environment variable yang berbeda dapat diset. Variable ini bisa berpengaruh kuat bagaimana sebuah remote machine akan menerima, memproses dan mendukung koneksi remote telnet anda. Oleh karena itu, Protokol Telnet telah dirancang untuk memungkinkan melalui environment variable tertentu pada saat koneksi. Sebagaimana yang dijelaskan dalam RFC 1408:
Kebanyakan sistem operasi memiliki informasi startup dan environment variable yang berisikan informasi yang semestinya diperluas untuk remote machine saat koneksi Telnet terjadi. Lebih daripada itu membuat sebuah opsi Telnet setiap kali seseorang datang dengan beberapa informasi baru yang perlu mereka sebarluaskan melalui suatu sesi Telnet, tanpa perlu mengetahui sesi Telnet itu sendiri, opsi generic information ini dapat digunakan.
————————————————————————————————————–
Referensi Silang: Untuk melihat RFC 1408, silakan kunjungi http://sunsite.auc.dk/RFC/rfc/rfc1408.html
————————————————————————————————————–
Celah keamanan Telnet yang ada saat ini berlandaskan kemampuan suatu Telnet server untuk menerima, merespon, dan otorisasi yang dilakukan pada environment variable ini. Karena opsi ini telah menjadi keharusan dalam sistem UNIX, sebagian besar platform memiliki celah keamanan terhadap serangan ini.
Celah keamanan ini lebih umum daripada yang diharapkan. Dalam sebuah laporan yang mengherankan, sebuah perusahaan bernama Novatech, telah memposting hasil dari audit keamanan jaringan terhadap 13 host. Didalamnya, ditemukan celah keamanan Telnet sebanyak 138 buah. Hal yang luarbiasa adalah bahwa site tersebut telah di perkirakan memiliki rekening kesehatan, lengkap dengan firewallnya. Berikut ini kutipan dari laporan audit Novatech:
Ini merupakan satu salinan dari laporan sebenarnya dengan definisi dan kemungkinan yang terjadi dari masalah yang sebenarnya. Jaringan milik negara yang terinstall firewall telah diperiksa oleh CERT. sebagaimana yang bisa anda lihat disana terdapat masalah kecil dan sejumlah besar hal lainnya. Ini bukanlah kesalahan administrasi sistem namun suatu kekacauan sistem yang berubah dan perlu perhatian serius dan minimnya pengetahuan tentang bagaimana para intruder mendapatkan akses. Kami mampu memeriksa sistem anda dan menemukan hampir 390 bentuk celah keamanan berlainan yang memiliki jenis akses internet saja.
—————————————————————————————————————
Referensi Silang: Bagi siapa saja yang bersikap “wait and see” mengenai keamanan, saya sarankan agar anda segera mengunjungi situs ini segera dan melihat hasilnya. Benar-benar mengherankan. Lihat hasilnya pada audit pada http://www.novatech.net.au/sample.htm.
—————————————————————————————————————
Baris yang menguak celah keamanan opsi Telnet environment terbaca sebagai berikut:
Dynamic Linker Telnet Vulnerability [High Risk]2
Baris ini melaporkan bahwa sebuah celah keamanan Telnet yang tergolong beresiko tinggi ditemukan (dalam audit sebelumnya, celah keamanan ini ditemukan pada dua host dengan subnet yang sama). [High Risk] 2 merujuk ke tingkat resiko yang digambarkannya. Secara ekstrim, celah keamanan beresiko tinggi. Perlu diingat, celah ini ditemukan pada host yang dilindungi firewall!
Untuk memahami metode tersebut, anda harus benar-benar memahami opsi apa yang bisa dilalui dari client ke server. Seseorang dalam hal ini melaluinya dari sebuah custom libc.
————————————————————————————————————–
CATATAN: libc merupakan standar C library. Sebuah distribusi penuh dari libc pada umumnya berisikan header dan include file yang digunakan dalam pemrograman C. Semua yang berbau UNIX memiliki (atau setidaknya memiliki) library yang terinstall didalamnya. libc diperlukan untuk kompilasi program yang ditulis dalam bahasa pemrograman C.
—————————————————————————————————————
Sam Hartman dari MIT menuliskan dalam artikelnya “Telnet Vulnerability: Shared Libraries”:
Masalahnya adalah bahwa telnetd memperbolehkan client melewati LD_LIBRARY_PATH, LD_PRELOAD dan opsi linker run-time lainnya ke dalam environment proses dari proses yang menjalankan login.
—————————————————————————————————————
Referensi Silang: Artikel Hartman dapat ditemukan di web t http://geek-girl.com/bugtraq/1995_4/0032.html.
—————————————————————————————————————
Dengan melalui opsi LD_LIBRARY_PATH environment ke server, sang cracker bisa menambahkannya untuk mencari path sebuah custom direktori (dan seterusnya custom library). Hal ini dapat mengubah proses dynamic linking, terutama memperbesar peluang melumpuhkan root.
—————————————————————————————————————
CATATAN: Hartman menuliskan bahwa jika target tersebut menggunakan Kerberos-aware telnetd, hanya user dengan account yang valid pada remote machine yang dapat mengimplementasikan serangan tersebut. Perkiraan saya, biar bagaimanapun, sebagian besar mesin di luar sana tidak menggunakan apa yang dimaksud dengan keamanan Telnet.
—————————————————————————————————————
Satu catatan menarik mengenai celah ini: Dinyatakan bahwa seseorang dapat mengidentifikasi sesi Telnet dimana environment variable telah dilalui dengan mengeksekusi instrusi ps. Seseorang (Larry Doolittle) menyatakan bahwa klon UNIX tertentu (terutama Linux), dapat memiliki root ke pemrosesan ID tersebut. Menanggapi laporan Hartman, Doolittle menyarankan:
Kernel Linux saat ini tidak mengijinkan akses ke environment string melalui ps, terkecuali pada usernya sendiri. Itulah, /proc/*/environ is protected 400. Hal ini bisa mempengaruhi orang-orang yang membaca instruksi anda, saat mereka melihat environment pada proses mereka sendiri tapi bukan root. Untuk memverifikasi environment string dari login, anda harus menjalankan ps sebagai root.
————————————————————————————————————-
Referensi Silang: Artikel Larry Doolittle dapat ditemukan di http://geek-girl.com/bugtraq/1995_4/0042.html
————————————————————————————————————-
Berikut ini patch untuk berbagai distribusi telnetd:
· DEC. (OSF/1):
ftp://ftp.service.digital.com/public/osf/v3.2c/ssrt0367_c032
· Versi terkompress tersedia pada
ftp://ftp.ox.ac.uk/pub/comp/security/software/patches/telnetd/
· Linux:
ftp://ftp.ox.ac.uk/pub/comp/security/software/patches/telnetd/linux/telnetd
· Red Hat:
http://www.io.com/~ftp/mirror/linux/redhat/redhat/updates/i386/NetKit-B-0.09-1.1.i386.rpm
· SGI (IRIX):
ftp://sgigate.sgi.com/security/
————————————————————————————————————-
CATATAN: Meskipun patch telah diterbitkan untuk mengatasi masalah ini, beberapa modul dan program yang terhubung ke Telnet bisa terpengaruh. Akhir Februari 1997, in.telnetsnoopd dilaporkan sebagai celah keamanan pada LD_PRELOAD melalui beberapa platform, termasuk Linux. Patch untuk mengatasi masalah ini dapat diupload pada ftp://sunsite.unc.edu.
—————————————————————————————————————
Variasi Telnet bukanlah protokol keamanan satu-satunya. Seseorang bisa dengan mudahnya memata-matai sesi Telnet. Kenyataannya, terdapat sebuah utility, bernama ttysnoop, yang dirancang untuk tujuan ini. Sebagaimana yang digambarkan oleh penulisnya, Carl Declerck:
[ttynsoop] memungkinkan anda untuk memata-matai login tty melalui tty-device atau pseudo-tty yang lain. Snoop-tty menjadi sebuah “klon” dari tty yang asli, mengarahkan input dan output dari/untuknya.
————————————————————————————————————–
Referensi Silang: README Declerk pada utility ttysnoop 0.12 (alpha) dapat ditemukan pada web http://ion.apana.org.au/pub/linux/sources/admin/ttysnoop-0.12.README
————————————————————————————————————–
————————————————————————————————————–
CATATAN: ttysnoop bukanlah snooper Telnet satu-satunya, ia juga mengintai pada tty, bukan pada protokol Telnet. Sebuah network sniffer seperti sniffit juga dapat digunakan (dan mungkin lebih sesuai) untukmengintai protokol Telnet.
————————————————————————————————————–
Sesi Telnet juga tergolong sensitif. Satu alasan untuk hal ini adalah bahwa sesi ini seringkali terkonduksi dalam pola island-hopping. Yakni, user dapat melakukan Telnet ke satu jaringan untuk mengatur halaman webnya; dari sana, user tersebut dapat melakukan Telnet ke mesin lain, dan mesin lainnya lagi, begitu seterusnya. Jika seorang cracker dapat mengintai pada sesi tersebut, dia dapat memperoleh login ID dan password ke sistem lainnya.
Masih Efektifkah Serangan ini?
Tentu saja! Hal ini terutama disebabkan minimnya pengetahuan. Serangan opsi environment ini sebagaimana digambarkan sebelumnya cukup efektif pada sebagian sistem pada saat ini. Hal ini bahkan cukup memberikan indikasi mengenai serangan yang terdapat di Internet.
Telnet sebagai Senjata Ampuh
Telnet merupakan sebuah protokol yang menarik. Sebagaimana yang dijelaskan sebelumnya, seseorang dapat mempelajari banyak hal dengan menggunakan Telnet. Sebagai contoh, anda dapat melihat versi apa dari sistem operasi yang dijalankan. Sebagian besar distribusi UNIX melaporkan informasi ini pada koneksi. Hal ini dilaporkan oleh pihak otoritas yang menyatakan bahwa berbagai scanner yang memanfaatkan isu ini pada koneksinya untuk mengidentifikasi jenis sistem (salah satu scanner bernama SATAN) . Sistem operasi pada umumnya dapat ditentukan dengan menyerang berbagai port ini:
· Port 21: FTP
· Port 23: Telnet (Default)
· Port 25: Mail
· Port 70: Gopher
· Port 80: HTTP
————————————————————————————————————
CATATAN: Meski saya hanya mendaftarkan lima port saja, seseorang bisa saja menghubungkan diri ke sebagian besar port TCP/IP dengan memanfaat suatu sesi Telnet. Beberapa port ini dinyatakan dalam keadaan passive saat koneksi active, dan user tersebut akan melihat tidak ada yang terjadi dalam hal ini. Begitu juga port 80 (HTTP). Anda dapat melakukan valid request dengan sempurna pada port 80 dengan menggunakan Telnet dan jika request tersebut valid, port 80 akan meresponnya. (Request yang tidak diperlukan menjadi valid. Masalah ini akibat kesalahan instruksi GET yang menyebabkan terjadinya respon langsung dari web server jika request tersebut gagal dibuat.)
—————————————————————————————————————
Dalam papernya yang terkenal, “Improving the Security of Your Site by Breaking Into It,” (Memperbaiki Keamanan Situs Anda dengan Membobolnya” Dan Farmer dan Wietse Venema menunjukkan port yang dapat diserang. Khususnya, mereka mengalamatkan masalah tersebut pada port 6000:
X windows biasanya ada pada port 6000… jika tidak dilindungi dengan baik (melalui keajaiban cookie atau mekanisme xhost), window yang ditampilkan dapat ditangkap atau di intai, ketukan keyboard user dapat disadap, program dapat dijalankan secara remote dan sebagainya. Selain itu, jika target tersebut menjalankan X dan menerima Telnet ke port 6000, yang dapat digunakan untuk serangan Denial of Service, yang akan mengakibatkan sistem window korban akan “lumpuh” untuk jangka pendek.
————————————————————————————————————–
Referensi Silang: “Improving the Security of Your Site by Breaking Into It” dapat ditemukan pada situs http://stos-www.cit.cornell.edu/Mark_html/Satan_html/docs/admin_guide_to_cracking.html
————————————————————————————————————–
Dalam paper yang ditulis oleh Farmer dan Venema terdapat banyak serangan yang diimplementasikan dengan Telnet itu sendiri atau dengan bantuan program lain. Salah satu serangan yang dimaksudkan adalah sebuah X terminal:
X Terminal secara umum merupakan client tanpa disk. Yakni, mesin yang memiliki kebutuhan hardware dan software minimum agar terhubung pada sebuah X server. Hal ini sangat umum digunakan pada lingkungan universitas dan memiliki layar 17” atau 19”, sebuah base, keyboard dan mouse. Terminal biasanya mendukung RAM minimal 4 MB namun dapat ditingkatkan hingga 128 MB. X Terminal, juga memiliki client software yang memungkinkan mereka terhubung ke server. Pada dasarnya, koneksinya melalui Fast Ehternet, pengabelan dibalik terminal tersebut. X Terminal menyediakan konektivitas berkecepatan tinggi ke X Server, dilengkapi dengan kekuatan grafis yang tinggi. Mesin ini dijual di Internet dan menjadikan terminal tambahan bagi pengguna rumahan. (terutama sekali untuk pelatihan).
Teknik X terminal Farmer-Venema menggunakan kombinasi rsh dan Telnet untuk membuat serangan yang terkoordinasi. Teknik tersebut meliputi pengaturan beberapa perintah. Cracker menggunakan rsh untuk terhubung ke X terminal dan memanggil program client Telnet yang dimiliki X terminal. Kemudian, outputnya diarahkan ke terminal lokal milik cracker melalui spesifikasi opsi DISPLAY atau variable.
Hal menarik lainnya adalah Telnet dapat digunakan untuk menentukan dengan cepat apakah target tersebut merupakan real atau virtual domain (hal ini dapat dilakukan melalui metode yang lainnya, namun tak seorangpun melakukan fungsi ini dengan cepat). Hal ini dilakukan seorang cracker dengan menentukan secara tepat mesin mesin yang mana yang harus di crack untuk menjangkau resource anda atau ekstrimnya dia mesin yang mana yang harus dilakukan crack.
Pada situasi normal, sebuah real domain merupakan domain yang telah didaftarkan pada InterNIC dan juga memiliki dedicated server. Terkadang dalam kekosongan tersebut terdapat box yang memiliki IP address permanen, dan box tersebut terlampir secara permanen ke Internet via modem 28.8Kbps, ISDN, modem 56Kbps, frame relay, T1, T3, ATM atau mungkin, jika pemiliknya ingin menghemat biaya dengan SONET. Dengan begitu, saat anda melakukan Telnet ke situs sebenarnya, anda menjangkau mesin tersebut dan bukan yang lainnya.
Virtual domains, bisa dikatakan adalah direktori pada real server, alias ke domain name tertentu. Itulah sebabnya, anda membayar ISP untuk meregister domain name anda dna membuat direktori pada disk real server tersebut. Oleh sebab itu, saat user mengetik pada browser mereka ke www.nama-perusahaan.com, mereka melalui server ISP tersebut. Kemudian server ISP mengarahkan permintaan koneksi ke direktori anda ke server. Skema virtual domain sangat populer pada beberapa hal, termasuk biaya. Menghemat kesulitan perusahaan anda untuk membuat sebuah real server dan oleh karena itu memangkas biaya-biaya seperti:
· Hardware
· Software
· Pemeliharaan 24-jam
· Technical Support
Pada dasarnya, anda membayar biaya one-time (dan biaya bulanan sesudahnya) kemudian ISP menangani segala sesuatunya. Bagi cracker, hal ini sangatlah penting. Sebagai contoh, jika cracker melakukan crack domain anda—tanpa peduli apakah mesin anda merupakan server sebenarnya—kemungkinan besar mengalami kesulitan. Mereka menganggap bahwa mereka mengcrack sejumlah mesin kecil di dalam kantor, namun yang sebenarnya mereka melakukan serangan yang hebat, pada sebuah network provider terkemuka.
Telnet dengan cepat membongkar identitas server anda. Saat seorang cracker melakukan koneksi Telnet ke www.domain-anda.com (dan saat terhubung, melihat nama mesin sebagai sebuah node pada suatu jaringan yang besar), dia segera mengetahui bahwa address anda merupakan sebuah virtual domain.
Terlebih lagi, Telnet dapat digunakan untuk tujuan jahat. Seseorang dapat melakukan serangan brute-force. Saya tidak yakin mengapa serangan brute-force begitu populer diantara cracker muda; hampir seluruh server melakukan bentuk logging saat ini. Meski demikian, teknik tersebut terus bertahan hingga tahun 1990-an. Serangan ini umumnya dibuat dengan menggunakan Telnet client yang memiliki bahasa scripting built-in sendiri. Salah satu aplikasinya adalah Tera Term.
Tera Term merupakan sebuah bahasa yang memungkinkan anda mengotamasi sesi Telnet. Bahasa ini dapat digunakan untuk membangun script yang dapat menentukan username yang valid pada sistem yang menolak untuk memberikan informasi pada finger atau sendmail-expn queries. Versi Telnet yang membongkar informasi ini melalui berbagai cara. Sebagai contoh, jika username palsu diberikan koneksi akan terputus. Namun, jika username valid diberikan, sebuah login: prompt baru akan ditampilkan kembali.
—————————————————————————————————————
Referensi Silang: Tera Term dapat ditemukan pada web http://tucows.phx.cox.com/files/ttermv13.zip
—————————————————————————————————————
Dengan demikian, Telnet merupakan tool yang hebat yang dengna cepat menentukan apakah port tertentu terbuka atau pakah server tersebut menjalankan service tertentu. Telnet juga dapat digunakan sebagai senjata pada serangan Denial-of-Service. Sebagai contoh, mengirimkan data sampah ke port tertentu pada NT Web server yang menjalankan IIS dapat menyebabkan processor korban meningkat hingga 100%. Pembuatan sesi Telnet pada port lain di NT Web server dapat menyebabkan masin tersebut mengalami hang atau crash. Hal ini tentunya terjadi saat melakukan koneksi Telnet request ke port 135.
————————————————————————————————————–
Referensi Silang: Fix untuk masalah ini, telah dikeluarkan oleh Microsoft, dan dapat ditemukan di ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt40/hotfixes-postS
————————————————————————————————————-
Seseorang juga bisa menyebabkan crash pada MS Internet Information Server dengan melakukan Telnet ke port 80 dan membuat GET…/… request. Sebagaimana yang dilaporkan, bagaimanapunjuga, msalah tersebut telah diatasi oleh Microsoft Windows NT SP 2. Jika anda tidak memiliki patch/service pack tersebut, segera dapatkan. Sebuah percobaan bagus untuk hal ini dan masalah lainnya dapat ditemukan pada bahasan Denial of Service, yang diposting oleh Chris Klaus dari Internet Security Systems, didalamnya, Klaus menuliskan:
Layanan file sharing jika ada dna dapat diakses oleh siapa saja dapat menyebabkan crash mesin NT dan harus boot ulang. Teknik ini menggunakan dot.. dot bug pada mesin Windows 95 sangat potensial yang memungkinkan siapa saja untuk mendapatkan akses ke seluruh hard drive… solusi: celah keamanan didokumentasikan pada artikel Microsoft Knowledge Base nomor Q140818 revisi terakhir tertanggal March 15, 1996. Resolusi untuk menginstal service pack terakhir pada Windows NT versi 3.51. Service Pack terakhir yang dikemas untuk patch tersebut ada dalam service pack 4.
—————————————————————————————————————
Referensi Silang: Kunjungi posting mengenai Denial of Service Info di http://geek-girl.com/bugtraq/1996_2/0052.html
—————————————————————————————————————
—————————————————————————————————————
CATATAN: Celah keamanan ini hanya ada dalam Internet Information Server 2.0 World Wide Web server (HTTP). Versi terakhir IIS dinyatakan telah aman.
—————————————————————————————————————
Terakhir, Telnet sering digunakan untuk membuat fakemail dan fakenews. Para Spammer sering menggunakan opsi ini sebagai ganti dari aktifitas reguler memposting pesan ke Usenet. Terdapat opsi tertentu yang dapat mengatur cara ini yang memungkinkan para spammer menghindari setidaknya beberapa pelindung yang dibuat oleh Spam-Killing robot pada jaringan Usenet.
Kesimpulan
Telnet merupakan protokol yang serbaguna, yang dengan beberapa cara, dapat di buat “secure”. (saya pribadi menyukai SSH sebagai gantinya, untuk pencegahan terhadap sesi Telnet yang di snoop). Dengan demikian, Telnet tidaklah selalu aman di luar sistem tersebut. Jika anda menggunakan software lama (sebelum 1997), periksa lagi apakah memiliki patch yang telah terinstall.
Telnet juga dapat digunakan dalam berbagai cara untuk menyerang atau dengan kata lain mendapatkan ifnormasi dari sebuah remote host (telah dibahas dalam artikel ini). Cukup banyak terdapat teknik serangan Telnet yang terjadi. Jika anda menjalankan sebuah jaringan dan mengaturnya utnuk memberikan user anda akses Telnet, berhati-hatilah. Khususnya bila pada Telnet server yang baru. Server baru ini mungkin saja memiliki bug yang masih belum diketahui. Dan karena Telnet begitu interaktif dan memberikan user begitu banyak kekuasaan untuk mengeksekusi perintah pada mesin remote, banyak celah keamanan pada distribusi Telnet merupakan hal yang kritis. Begitu juga pada FTP atau HTTP yang mungkin bisa lebih buruk lagi.

No comments:

Post a Comment