Isi kandungan:

Netcat di Python: 6 Langkah
Netcat di Python: 6 Langkah

Video: Netcat di Python: 6 Langkah

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

Apa itu netcat? Halaman manual untuk netcat mengatakan yang berikut: "utiliti nc (atau netcat) digunakan untuk hampir semua perkara di bawah cahaya matahari yang melibatkan soket domain TCP, UDP, atau UNIX. Ia dapat membuka sambungan TCP, mengirim paket UDP, mendengar dengan sewenang-wenangnya. Pelabuhan TCP dan UDP, melakukan pengimbasan port, dan menangani kedua-dua IPv4 dan IPv6. Tidak seperti telnet (1), skrip nc dengan baik, dan memisahkan mesej ralat ke ralat standard dan bukannya menghantarnya ke output standard, seperti yang dilakukan telnet (1) dengan beberapa"

Pada dasarnya, netcat membolehkan anda menyambung ke pelayan lain menggunakan protokol TCP atau UDP. TCP bermaksud Transmission Control Protocol, dan berorientasikan sambungan. UDP bermaksud Universal Datagram Protocol, dan tidak berkaitan. TCP biasanya digunakan untuk aplikasi internet, sementara UDP digunakan untuk streaming media atau VPN.

Langkah 1: Bagaimana Kita Bermula?

Bagaimana Kita Bermula?
Bagaimana Kita Bermula?

Di atas adalah bagaimana netcat dipanggil. Anda dapat melihat bahawa terdapat dua argumen di hujung yang disebut "destinasi" dan "port." Destinasi merujuk kepada nama host atau alamat ip pelayan yang kami cuba sambungkan, sementara port merujuk pada port pelayan yang kami cuba sambungkan.

Langkah 2: Mari Bermula

Mari kita mulakan
Mari kita mulakan

Di atas adalah beberapa kod python permulaan. Seperti yang anda lihat, kami ingin memproses argumen ke program serupa dengan bagaimana utiliti sebenarnya. Nama host akan menjadi argumen pertama setelah nama yang dapat dilaksanakan, sementara port akan menjadi argumen kedua setelah nama yang dapat dilaksanakan di baris perintah.

Langkah 3: Membuat Sambungan

Membuat Sambungan
Membuat Sambungan

Mari buat fungsi netcat yang boleh kita gunakan. Apa yang pada dasarnya kita lakukan di sini adalah membuat soket dan menyambung ke pelayan menggunakan parameter yang diberikan. Untuk arahan netcat, parameter semasa adalah nama host dan port pelayan yang kami cuba sambungkan. Soket mengandungi parameter "socket. AF_INET" dan "socket. SOCK_STREAM" kerana kami lalai ke sambungan TCP untuk tutorial ini.

Langkah 4: Mari Hantar Sebilangan Kandungan

Mari Hantar Sebilangan Kandungan
Mari Hantar Sebilangan Kandungan

Kami memperluas fungsi netcat kami untuk mengambil parameter ketiga, "content." Terdapat banyak kandungan di sini jadi mari kita pecahkan mengikut nombor baris.

Baris 14-16: kami menghantar semua kandungan melalui soket, kami menunggu sebentar, dan kemudian kami menutup soket ke data keluar sehingga soket tahu tidak ada lagi data yang akan datang.

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

Talian 28-29: kami mahu sambungan netcat ini menjadi sambungan sekali sahaja, jadi kami menyatakan sambungan ditutup dan kemudian tutup sambungan.

Baris 31: Ini adalah permintaan HTTP standard. Sekiranya anda menjalankan kod dengan argumen baris perintah "google.com" dan "80", maka anda akan melihat respons HTTP yang tepat

Langkah 5: Mari Sambungkan Terbuka

Mari Bersambung
Mari Bersambung

Kod di atas (yang terletak di bawah kod dari bahagian sebelumnya) hanya membolehkan kita menjalankan perintah netcat multple melalui sambungan terbuka semu. (Pada hakikatnya, setiap kali anda menjalankan perintah, perintah itu terbuka dan kemudian menutup sambungan TCP baru, jadi ia tidak benar-benar meniru tingkah laku netcat, kami hanya melakukan ini untuk tujuan pembelajaran). Mari kita memecahkan garis demi garis ini juga:

Baris 31: Kami ingin membaca perintah selama-lamanya untuk mengekalkan "interaktiviti"

Baris 32: Ini adalah penyangga kami yang akan menyimpan kandungan permintaan kami

Baris 36-45: Kami akan membaca penyangga sehingga kami membaca baris kosong

Baris 48: kami hanya memanggil fungsi netcat kami dengan nama host, port, dan kandungan yang baru dibuat (yang dikodkan dengan betul)

Baris 50: jika kandungan penyangga kami pernah mengandungi "Sambungan: Tutup" (menunjukkan kami ingin menutup sambungan), kami hanya keluar dari gelung

Langkah 6: Kesimpulannya

Pada akhir tutorial ini, anda harus mempunyai pelaksanaan netcat yang minimum. Saya akan membiarkannya sebagai latihan kepada pengguna untuk melaksanakan ciri seperti:

1. menyokong protokol lain

2. memperbaiki kod agar tidak menutup sambungan setiap kali

3. menambahkan bendera yang sudah ada netcat untuk mengubah tingkah laku

Disyorkan: