Daftar Isi:

Netcat dengan Python: 6 Langkah
Netcat dengan Python: 6 Langkah

Video: Netcat dengan Python: 6 Langkah

Video: Netcat dengan Python: 6 Langkah
Video: Tutorial Netcat Menggunakan Python Part 1 | Import Library & Execute Function 2024, Juli
Anonim
Netcat dengan Python
Netcat dengan Python

Apa itu netcat? Halaman manual untuk netcat mengatakan sebagai berikut: "utilitas nc (atau netcat) digunakan untuk apa saja di bawah matahari yang melibatkan soket domain TCP, UDP, atau UNIX. Ini dapat membuka koneksi TCP, mengirim paket UDP, mendengarkan secara sewenang-wenang Port TCP dan UDP, melakukan pemindaian port, dan menangani IPv4 dan IPv6. Tidak seperti telnet(1), skrip nc dengan baik, dan memisahkan pesan kesalahan ke kesalahan standar alih-alih mengirimkannya ke keluaran standar, seperti yang dilakukan telnet(1) dengan beberapa"

Intinya, netcat memungkinkan Anda untuk terhubung ke server lain menggunakan protokol TCP atau UDP. TCP adalah singkatan dari Transmission Control Protocol, dan berorientasi pada koneksi. UDP adalah singkatan dari Universal Datagram Protocol, dan tidak memiliki koneksi. TCP umumnya digunakan untuk aplikasi internet, sedangkan UDP digunakan untuk media streaming atau VPN.

Langkah 1: Bagaimana Kita Memulai?

Bagaimana Kita Memulai?
Bagaimana Kita Memulai?

Di atas adalah bagaimana netcat disebut. Anda dapat melihat bahwa ada dua argumen di akhir yang disebut "tujuan" dan "pelabuhan". Tujuan mengacu pada nama host atau alamat ip dari server yang kami coba sambungkan, sedangkan port mengacu pada port server yang kami coba sambungkan.

Langkah 2: Mari Mulai

Mari kita mulai
Mari kita mulai

Di atas adalah beberapa kode python awal. Seperti yang Anda lihat, kami ingin memproses argumen ke program dengan cara yang sama seperti utilitas sebenarnya. Nama host akan menjadi argumen pertama setelah nama yang dapat dieksekusi, sedangkan port akan menjadi argumen kedua setelah nama yang dapat dieksekusi di baris perintah.

Langkah 3: Membuat Koneksi

Membuat Koneksi
Membuat Koneksi

Mari kita buat fungsi netcat yang bisa kita gunakan. Apa yang pada dasarnya kita lakukan di sini adalah membuat soket dan menghubungkan ke server menggunakan parameter yang diberikan. Untuk perintah netcat, parameter saat ini adalah nama host dan port server yang kami coba sambungkan. Soket berisi parameter "socket. AF_INET" dan "socket. SOCK_STREAM" karena kita menggunakan koneksi TCP secara default untuk tutorial ini.

Langkah 4: Mari Kirim Beberapa Konten

Mari Kirim Beberapa Konten
Mari Kirim Beberapa Konten

Kami memperluas fungsi netcat kami untuk mengambil parameter ketiga, "konten." Ada banyak konten di sini jadi mari kita uraikan berdasarkan nomor baris.

Baris 14-16: kami mengirim semua konten melalui soket, kami menunggu sebentar, dan kemudian kami menutup soket untuk semua data keluar sehingga soket tahu tidak ada lagi data yang masuk.

Baris 18-26: kami membuat buffer untuk menyimpan respons server, dan saat soket menerima data, kami menambahkan hingga 1024 byte data ke hasilnya selama ada data untuk dibaca.

Baris 28-29: kami ingin koneksi netcat ini menjadi koneksi satu kali, jadi kami menyatakan koneksi ditutup dan kemudian menutup koneksi.

Baris 31: Ini adalah permintaan HTTP standar. Jika Anda menjalankan kode dengan argumen baris perintah "google.com" dan "80," maka Anda akan melihat respons HTTP yang tepat

Langkah 5: Mari Miliki Koneksi Terbuka

Mari Memiliki Koneksi Terbuka
Mari Memiliki Koneksi Terbuka

Kode di atas (yang terletak di bawah kode dari bagian sebelumnya) memungkinkan kita untuk menjalankan beberapa perintah netcat melalui koneksi pseudo-open. (Pada kenyataannya, setiap kali Anda menjalankan perintah, perintah itu membuka dan menutup koneksi TCP baru, sehingga tidak benar-benar meniru perilaku netcat, kami hanya melakukan ini untuk tujuan pembelajaran). Mari kita pecahkan ini baris demi baris juga:

Baris 31: Kami ingin membaca perintah tanpa batas untuk mempertahankan "interaktifitas"

Baris 32: Ini adalah buffer kami yang akan menyimpan konten permintaan kami

Baris 36-45: Kami akan membaca ke buffer sampai kami membaca baris kosong

Baris 48: kita cukup memanggil fungsi netcat kita dengan nama host, port, dan konten yang baru dibuat (yang dikodekan dengan benar)

Baris 50: jika isi buffer kita pernah berisi "Connection: Close" (menunjukkan bahwa kita ingin menutup koneksi), kita cukup keluar dari loop

Langkah 6: Kesimpulan

Di akhir tutorial ini Anda harus memiliki implementasi netcat yang berfungsi minimal. Saya akan menyerahkannya sebagai latihan kepada pengguna untuk mengimplementasikan fitur-fitur seperti:

1. mendukung protokol lain

2. memperbaiki kode untuk tidak menutup koneksi setiap kali

3. menambahkan flag yang sudah dimiliki netcat untuk mengubah perilakunya

Direkomendasikan: