Kenapa aku bengang tahap gaban bila sistem tak encryptkan kata laluan pengguna


Baru baru ni aku boring, duduk dalam pejabat sambil merenung carta InBody yang baru aku cetak di gim FSR. Mesin InBody mencadangkan aku buang 23 Kg lebih lemak untuk lebih fit, haih … Jadi untuk kekal aktif, aku pun lancarkan terminal untuk mencari jika ada sistem di dalam UiTM ini yang boleh aku explore.

Dan aku jumpa satu sistem, digunakan untuk tujuan clock in/clock out. Menarik, tidak perlu kad perakam, tidak perlu cap jari, hanya perlu login ke dalam sistem dan klik pautan sama ada kita ingin daftar masuk atau daftar keluar. Bukanlah sesuatu yang baru, tetapi the fact that users are trusted with this kind of system deserves a credit. Jadi selepas mencuba beberapa vulnerability, aku dapati sistem ini ada kelemahan SQL Injection. Fine … ini bukan yang pertama, malah ada beberapa lagi sistem di UiTM yang mempunyai kelemahan yang sama, lagi pun sistem ini tidak mempunyai sensitif data, it should be ok.

Lalu aku pun cuba dig in further kedalam pengkalan data untuk melihat table-table yang ada untuk paham sistem ini dengan lebih lanjut. Dan aku rasa bengang bila melihat sistem ini menyimpan kata laluan pengguna dalam bentuk clear-text. Wah … ini adalah satu kesalahan besar. Sungguh besar dan dasyat sehingga aku sanggup luangkan masa untuk tulis entri ini, dah la dah setahun aku tak update blog ini, menyusahkan betul. Ha ha ha …

Kenapa? Kenapa ianya satu kesalahan yang besar?

Sebab mengikut kajian, rata-rata pengguna akan menggunakan kata laluan yang sama bagi semua sistem. Jadi tak kiralah emel ke, sistem perakam waktu ke, sistem perbankkan ke, sistem untuk beli produk Kak Ton ke, kebanyakkan pengguna, akan menggunakan kata laluan yang sama. Maknanya, kalau ada penceroboh yang berjaya masuk kedalam sistem ini, dia boleh cuba untuk login kedalam akaun facebook mangsa atau emel mangsa dan hijack akaun tersebut. Tak ke naya?

Jadi it is important to stress that ianya adalah tanggungjawab pembina sistem, untuk memastikan keselamatan kata laluan ini.

Ala, ni sistem bodoh je, patutnya pengguna pakai la kata laluan yang main main, macam abc123 ke, password ke, 5hariMC ke” kata programmer yang mungkin dilihat dari saiz pipinya tidak pernah merasa kasut size 8.

Tolong buang mentaliti ini yer sebab wahai programmer, tidakkah anda sedar bahawasanya anda juga menggunakan sistem yang lain, tidakkan anda mahu sistem tersebut menjaga keselamatan kata laluan anda?

Mari kita lihat bencana yang boleh berlaku akibat tidak menyahkodkan kata laluan pengguna. Walkthrough ini akan memberi gambaran apa yang boleh dilakukan oleh pencoroboh jika mendapati kata laluan tidak di encrypt. Dan kita boleh lihat bagaimana kecuaian programmer ini memakan dirinya sendiri. Ayoh!

 

Data-data pengguna di dalam sistem

Langkah pertama ialah mendapatkan data dengan menggunakan SQL injection daripada table users untuk melihat katanama dan katalaluan pengguna sistem. Kita dapat lihat di sini, ada satu akaun didalam table users yang mempunyai role sebagai superadmin, wah! Lebih menarik lagi, kata laluannya boleh di baca. Jadi sekarang kita boleh login ke dalam sistem dengan menggunakan kata laluan tersebut dan menjadi admin sistem. Hooray!

Laa tu jer? Tak menarik langsung …

Sabar anak muda, di bulan yang mulia ini cuba kawal sifat ketidaksabaran mu itu. Betul, kalau setakat boleh login sebagai admin apakah faedahnya? Sedangkan kita sudah ada full access kepada pengkalan data bukan? Itu umpama Gaban yang diberikan tempat menyalin pakaian sedangkan kita sedia maklum Gaban boleh menukar pakaian dalam masa 0.05 saat, terlalu pantas untuk dilihat sehingga perlu diperlahankan. Hahaha …

So next step kita cuba port scan server tersebut untuk lihat apa service yang available.

 

Senarai servis yang berjalan di server

 

Jadi kita dapat lihat server ini menjalankan berbagai servis, dan aku berani jamin, kebanyakkan servis ini menggunakan kata laluan admin yang sama. Mari kita cuba servis SSH (By the way, SSH adalah satu servis yang membenarkan kita untuk masuk kedalam server dan jalankan arahan), mungkin tak kita boleh login sebagai root dan menggunakan password admin yang sama? Mari kita lihat.

 

Betul tak? 1 Password for all.

 

Nah, server sudah dimiliki sepenuhnya oleh penceroboh. Sekarang ini penceroboh boleh melakukan apa saja terhadap sistem, kebiasannya mereka akan memasang backdoor supaya mereka boleh masuk lagi ke dalam server walaupun password sudah diubah. Dan satu-satunya jalan untuk pastikan tiada backdoor adalah dengan reinstall OS yang baru. Sad …

Tetapi, itu juga mungkin tidak akan menyelesaikan apa-apa, kerana kita perlu ingat. Pencoroboh boleh meletakkan apa yang dinamakan web-shell didalam sistem yang telah dibangunkan. Jadi walaupun server admin install OS yang baru, tapi bila mereka letak semula sistem yang lama, maka penceroboh masih boleh mengawal server dengan menggunakan web shell yang telah ditanam. Melainkan admin, cari sampai dapat fail fail backdoor yang telah ditanam dan monitor sebarang aktiviti masuk ke dalam server.

Letih bukan? Bukankah lebih mudah jika kata laluan tadi sudah di encrypt pada peringkat awal.

Tapi abam, saya tak pandai lah nak run command, caner?

Aaa … betul jugak kan, kan lebih mudah kalau boleh akses server melalui GUI dan navigate macam kita duduk depan server itu sendiri. Cuba tengok keputusan yang kita dapat semasa buat port scan tadi, nampak tak dekat situ ada satu servis nama dia VNC. Ha .. itu maknanya kita boleh akses menggunakan GUI. Macam mana? Macam ni.

 

Langkah 1: Connect ke server menggunakan VNC Client

 

Lancarkan VNC client pada komputer anda, jika pada Mac OS, ianya memang sudah tersedia dengan VNC client.

 

Langkah 2: Masukkan password, hopefully password yang sama digunakan.

 

Paparan untuk memasukkan kata laluan akan ditunjukkan, jika tekaan kita betul, password untuk servis VNC ini juga akan menggunakan password admin yang sama.

 

Langkah 3: Enjoy!

 

Wahaha, terus terpapar desktop server tersebut dihadapan kita. Kita boleh explore server tersebut seperti ianya macam PC kita sendiri. Best tak?

Jadi seperti yang dapat kita lihat, ianya amatlah berbahaya jika kata laluan ini tidak dijaga dengan betul. Ini belum lagi kita cuba untuk akses email atau facebook admin tersebut. Kebarangkalian kata laluannya adalah sama amat tinggi, seperti yang kita telah lihat di atas. 1 password digunakan untuk semua servis. Risiko yang sama juga terdedah kepada pengguna sistem yang lain dimana penceroboh boleh menggunakan katalaluan yang ada untuk cuba akses akaun user tersebut di sistem yang lain.

Diharap entri ini dapat mengingatkan kita semua supaya bertanggungjawab ketika membina sistem dan jangan ambil jalan mudah. Hargailah kepercayaan yang telah diberikan kepada kita. Terutamanya kepada pelajar-pelajar yang akan graduasi, pastikan anda tidak melakukan kesalahan yang sama …

Sehingga entri yang lain …

  1. #1 by popi on August 3, 2013 - 1:36 am

    thanks sifu. akan ku cuba perkara ini di sistem company yg lebih besar untuk menakluk sistem mereka ( kalau jahat ) nasib baik anak didik sir, so terpaksalah jadi alim dan baik

  2. #2 by akmal on August 3, 2013 - 4:31 pm

    hah! 😀

  3. #3 by tengkorak on August 13, 2013 - 11:35 am

    popi :

    thanks sifu. akan ku cuba perkara ini di sistem company yg lebih besar untuk menakluk sistem mereka ( kalau jahat ) nasib baik anak didik sir, so terpaksalah jadi alim dan baik

    Hahaha … peringatan, guna untuk test pada sistem sendiri yer, bukan untuk menakluk sistem orang lain.

  4. #4 by Cara cara on October 7, 2013 - 1:12 am

    thanks atas ilmunya,sangat bermanfaat buat saya

  5. #5 by eB on February 5, 2014 - 1:23 pm

    thanks, sgt bermanfaat. boleh tolong wat n3 psl camner nak blog hackers x? (“,)

  6. #6 by tengkorak on February 6, 2014 - 11:23 am

    Sama2 …

    Tak berapa paham dengan maksud nak blog hackers?

    Nak blog ke block?

  7. #7 by zulhairiseman on September 28, 2015 - 2:12 pm

    hi.. berabuk habis nampkanya blog ni.. bila nak ada entri barunya…? 🙂

(will not be published)