Mündəricat:

Pythonda Netcat: 6 addım
Pythonda Netcat: 6 addım

Video: Pythonda Netcat: 6 addım

Video: Pythonda Netcat: 6 addım
Video: Лекция 6. Взаимодействие с сетью 2024, Noyabr
Anonim
Pythonda Netcat
Pythonda Netcat

Netcat nədir? Netcat üçün dərslik səhifəsində belə deyilir: "nc (və ya netcat) yardım proqramı, günəş altında TCP, UDP və ya UNIX-domen yuvalarını əhatə edən hər hansı bir şey üçün istifadə olunur. TCP əlaqələrini aça, UDP paketləri göndərə və ixtiyari olaraq dinləyə bilər. TCP və UDP portları, liman taraması aparın və həm IPv4, həm də IPv6 ilə məşğul olun. Telnet (1) -dən fərqli olaraq, nc skriptləri gözəl və səhv mesajlarını standart çıxışa göndərmək əvəzinə standart xətaya ayırır."

Əslində, netcat, TCP və ya UDP protokolundan istifadə edərək digər serverlərə qoşulmağa imkan verir. TCP, Transmissiya Nəzarət Protokolu deməkdir və əlaqə yönümlüdür. UDP Universal Datagram Protokolu deməkdir və əlaqəsizdir. TCP ümumiyyətlə internet tətbiqləri üçün, UDP isə media axını və ya VPN üçün istifadə olunur.

Addım 1: Necə Başlayırıq?

Necə Başlayırıq?
Necə Başlayırıq?

Yuxarıda netcat necə adlandırılır. Sonda "təyinat" və "liman" adlanan iki arqument olduğunu görə bilərsiniz. Təyinat, qoşulmağa çalışdığımız serverin bir ana adına və ya ip ünvanına, port isə qoşulmağa çalışdığımız serverin limanına aiddir.

Addım 2: Başlayaq

Başlayaq
Başlayaq

Yuxarıda bir başlanğıc python kodu var. Gördüyünüz kimi, proqramdakı arqumentləri həqiqi yardım proqramına bənzər şəkildə işlətmək istəyirik. Host adı, icra edilə bilən addan sonra ilk arqument olacaq, port isə əmr satırında yürütülebilir adından sonra ikinci arqument olacaq.

Addım 3: Bir əlaqə yaratmaq

Bir Bağlantı Yaratmaq
Bir Bağlantı Yaratmaq

İstifadə edə biləcəyimiz bir netcat funksiyası yaradaq. Əsasən burada etdiyimiz şey, bir yuva yaratmaq və verilən parametrləri istifadə edərək serverə qoşulmaqdır. Netcat əmri üçün, mövcud parametrlər, qoşulmağa çalışdığımız serverin ana adı və portudur. Soketdə "socket. AF_INET" və "socket. SOCK_STREAM" parametrləri var, çünki bu dərslik üçün TCP bağlantısı yoxdur.

Addım 4: Bəzi məzmun göndərək

Biraz Məzmun Göndərək
Biraz Məzmun Göndərək

Netcat funksiyamızı üçüncü bir parametr olan "məzmun" olaraq genişləndirdik. Burada çoxlu məzmun var, gəlin onu xətt nömrəsinə görə bölək.

Xətt 14-16: bütün məzmunu yuvanın üstünə göndəririk, bir az gözlədikdən sonra yuvanı başqa bir məlumatın gəlmədiyini bilmək üçün gedən məlumatlara bağlayırıq.

Satır 18-26: server cavabını saxlamaq üçün bir tampon yaradırıq və yuva məlumat alarkən, oxumaq üçün məlumatlar olduğu müddətcə nəticəyə 1024 bayta qədər məlumat əlavə edirik.

Satır 28-29: bu netcat bağlantısının birdəfəlik bir əlaqə olmasını istəyirik, buna görə əlaqəni bağlı elan edirik və sonra əlaqəni bağlayırıq.

Satır 31: Bu standart bir HTTP tələbidir. Kodu "google.com" və "80" əmr satırı arqumentləri ilə işləsəniz, uyğun bir HTTP cavabını görəcəksiniz.

Addım 5: Açıq Bir Bağlantı Olsun

Açıq Bağlantı Olsun
Açıq Bağlantı Olsun

Yuxarıdakı kod (əvvəlki hissədəki kodun altında yerləşir) sadəcə çoxlu netcat əmrlərini yalançı bir əlaqə üzərində işləməyimizə imkan verir. (Əslində, hər dəfə bir əmri işlədərkən yeni bir TCP bağlantısını açır və bağlayır, buna görə də netcat davranışını həqiqətən təqlid etmir, sadəcə öyrənmə məqsədləri üçün edirik). Gəlin bu sətirləri sətir -sətir bölək:

Satır 31: "İnteraktivliyi" qorumaq üçün əmrləri sonsuza qədər oxumaq istəyirik.

Satır 32: Bu, sorğumuzun məzmununu saxlayacaq tamponumuzdur

Satır 36-45: Boş bir sətir oxuyana qədər tamponda oxuyacağıq

Satır 48: sadəcə netcat funksiyamıza host adı, port və yeni yaradılmış məzmun (düzgün kodlanmış) ilə zəng edirik.

50 -ci sətir: tamponumuzun məzmununda heç vaxt "Bağlantı: Bağla" varsa (əlaqəni bağlamaq istədiyimizi bildirir), sadəcə döngədən çıxırıq.

Addım 6: Nəticə

Bu təlimatın sonunda minimum işləyən netcat tətbiqinə sahib olmalısınız. İstifadəçiyə aşağıdakı kimi xüsusiyyətləri tətbiq etməyi tapşıracağam:

1. digər protokolları dəstəkləyir

2. hər dəfə əlaqəni bağlamamaq üçün kodu düzəltmək

3. netcat -ın artıq davranışı dəyişdirməli olduğu bayraqları əlavə etmək

Tövsiyə: