Satura rādītājs:

Netcat Python: 6 soļi
Netcat Python: 6 soļi

Video: Netcat Python: 6 soļi

Video: Netcat Python: 6 soļi
Video: Netcat - Режим сканирование портов 2024, Jūlijs
Anonim
Netcat Python
Netcat Python

Kas ir netcat? Netcat rokasgrāmatas lapā ir teikts: "lietderība nc (vai netcat) tiek izmantota gandrīz visam zem saules, kas saistīta ar TCP, UDP vai UNIX domēna ligzdām. Tā var atvērt TCP savienojumus, nosūtīt UDP paketes, klausīties patvaļīgi TCP un UDP porti, veic portu skenēšanu un tiek galā gan ar IPv4, gan IPv6. Atšķirībā no telnet (1), nc labi skripta un atdala kļūdu ziņojumus uz standarta kļūdu, nevis nosūta tos uz standarta izvadi, kā to dara telnet (1)"

Būtībā netcat ļauj izveidot savienojumu ar citiem serveriem, izmantojot TCP vai UDP protokolu. TCP apzīmē pārraides kontroles protokolu un ir orientēts uz savienojumu. UDP apzīmē Universal Datagram Protocol un ir bez savienojuma. TCP parasti izmanto interneta lietojumprogrammām, bet UDP - multivides straumēšanai vai VPN.

1. darbība. Kā mēs sākam?

Kā mēs sākam?
Kā mēs sākam?

Iepriekš ir norādīts, kā sauc netcat. Jūs varat redzēt, ka beigās ir divi argumenti ar nosaukumu "galamērķis" un "osta". Galamērķis attiecas uz tā servera saimniekdatora nosaukumu vai IP adresi, ar kuru mēģinām izveidot savienojumu, savukārt ports attiecas uz servera portu, ar kuru mēģinām izveidot savienojumu.

2. darbība: sāksim

Sāksim
Sāksim

Iepriekš ir daži sākuma python kodi. Kā redzat, mēs vēlamies apstrādāt programmas argumentus līdzīgi kā faktiskā lietderība. Resursdatora nosaukums būs pirmais arguments pēc izpildāmā faila nosaukuma, bet ports būs otrais arguments pēc izpildāmā faila nosaukuma komandrindā.

3. darbība. Savienojuma izveide

Savienojuma izveide
Savienojuma izveide

Izveidosim netcat funkciju, kuru varam izmantot. Tas, ko mēs šeit galvenokārt darām, ir kontaktligzdas izveidošana un savienošanās ar serveri, izmantojot norādītos parametrus. Komandai netcat pašreizējie parametri ir servera resursdatora nosaukums un ports, ar kuru mēs mēģinām izveidot savienojumu. Ligzdā ir parametri "socket. AF_INET" un "socket. SOCK_STREAM", jo šajā apmācībā mēs noklusējuma režīmā izmantojam TCP savienojumu.

4. darbība: ļauj nosūtīt kādu saturu

Ļauj nosūtīt kādu saturu
Ļauj nosūtīt kādu saturu

Mēs paplašinājām savu netcat funkciju, lai ņemtu trešo parametru - "saturs". Šeit ir daudz satura, tāpēc sadalīsim to pēc rindas numura.

14-16. Rindiņa: mēs visu saturu nosūtām caur kontaktligzdu, mēs nedaudz pagaidām un pēc tam aizveram ligzdu visiem izejošajiem datiem, lai kontaktligzda zinātu, ka vairs netiek saņemti dati.

18.-26. Rinda: mēs izveidojam buferi servera atbildes saglabāšanai, un, kamēr ligzda saņem datus, mēs rezultātam pievienojam līdz 1024 baitiem datu, kamēr ir lasāmie dati.

28.-29. Rinda: mēs vēlamies, lai šis netcat savienojums būtu vienreizējs savienojums, tāpēc mēs paziņojam, ka savienojums ir slēgts, un pēc tam slēdzam savienojumu.

31. rinda: šis ir standarta HTTP pieprasījums. Ja jūs izpildāt kodu ar komandrindas argumentiem "google.com" un "80", jūs redzēsit pareizu HTTP atbildi

5. darbība: ļauj izveidot atvērtu savienojumu

Ļauj izveidot atvērtu savienojumu
Ļauj izveidot atvērtu savienojumu

Iepriekš minētais kods (kas atrodas zem koda no iepriekšējās sadaļas) vienkārši ļauj mums izpildīt vairākas netcat komandas pseidoatvērtā savienojumā. (Patiesībā katru reizi, kad palaižat komandu, tā tiek atvērta un pēc tam aizvērta jauna TCP savienojuma, tāpēc tā patiesi neatdarina netcat uzvedību, mēs to vienkārši darām mācību nolūkos). Sadalīsim arī šo rindu pa rindām:

31. rinda: mēs vēlamies lasīt komandas bezgalīgi, lai saglabātu "interaktivitāti"

32. rinda: tas ir mūsu buferis, kurā tiks saglabāts mūsu pieprasījuma saturs

36.-45. Rinda: mēs lasīsim buferī, līdz lasīsim tukšu rindu

48. rinda: mēs vienkārši izsaucam savu funkciju netcat ar resursdatora nosaukumu, portu un jaunizveidotu saturu (kas ir pareizi kodēts)

50. rinda: ja mūsu bufera saturs kādreiz satur “Connection: Close” (norādot, ka vēlamies slēgt savienojumu), mēs vienkārši izkļūstam no cilpas

6. darbība. Secinājums

Šīs apmācības beigās jums vajadzētu būt minimālai netcat ieviešanai. Es atstāšu lietotājam uzdevumu īstenot tādas funkcijas kā:

1. citu protokolu atbalstīšana

2. nosakot kodu, lai katru reizi netiktu pārtraukts savienojums

3. pievienojot karodziņus, ka netcat jau ir jāmaina uzvedība

Ieteicams: