Kazalo:

Netcat v Pythonu: 6 korakov
Netcat v Pythonu: 6 korakov

Video: Netcat v Pythonu: 6 korakov

Video: Netcat v Pythonu: 6 korakov
Video: Netcat - 6. CMD d'un windows dans son linux | tutos fr 2024, November
Anonim
Netcat v Pythonu
Netcat v Pythonu

Kaj je netcat? Na ročni strani za netcat je zapisano naslednje: "Pripomoček nc (ali netcat) se uporablja za skoraj vse, kar je pod soncem, vključno z vtičnicami domene TCP, UDP ali UNIX. Odpre lahko povezave TCP, pošlje pakete UDP, posluša poljubno Vrata TCP in UDP, skeniranje vrat in obravnavanje IPv4 in IPv6. Za razliko od telneta (1), nc skripti lepo ločijo sporočila o napakah na standardno napako, namesto da jih pošiljajo na standardni izhod, kot to počne telnet (1) z nekaterimi"

V bistvu vam netcat omogoča povezavo z drugimi strežniki s protokolom TCP ali UDP. TCP pomeni protokol za nadzor prenosa in je usmerjen v povezavo. UDP pomeni Universal Datagram Protocol in je brez povezave. TCP se običajno uporablja za internetne aplikacije, UDP pa za pretakanje medijev ali VPN.

1. korak: Kako začnemo?

Kako začnemo?
Kako začnemo?

Zgoraj je, kako se imenuje netcat. Vidite lahko, da sta na koncu dva argumenta, imenovana "destinacija" in "vrata". Cilj se nanaša na ime gostitelja ali naslov IP strežnika, s katerim se poskušamo povezati, vrata pa na vrata strežnika, s katerim se želimo povezati.

2. korak: Začnimo

Začnimo
Začnimo

Zgoraj je nekaj začetne kode python. Kot lahko vidite, želimo argumente programa obdelati podobno, kot to počne dejanski pripomoček. Ime gostitelja bo prvi argument za imenom izvedljive datoteke, vrata pa bodo drugi argument za imenom izvedljive datoteke v ukazni vrstici.

3. korak: Ustvarjanje povezave

Ustvarjanje povezave
Ustvarjanje povezave

Ustvarimo funkcijo netcat, ki jo lahko uporabimo. V bistvu tukaj ustvarjamo vtičnico in se povezujemo s strežnikom z uporabo navedenih parametrov. Za ukaz netcat so trenutni parametri ime gostitelja in vrata strežnika, s katerim se poskušamo povezati. Vtičnica vsebuje parametre "socket. AF_INET" in "socket. SOCK_STREAM", ker za to vadnico privzeto uporabljamo povezavo TCP.

4. korak: Pošljite nekaj vsebine

Pošljimo nekaj vsebine
Pošljimo nekaj vsebine

Našo funkcijo netcat smo razširili na tretji parameter, "vsebino". Tukaj je veliko vsebine, zato jo razčlenimo po številki vrstice.

Vrstica 14-16: pošljemo vso vsebino prek vtičnice, počakamo nekaj časa in nato zapremo vtičnico za vse odhodne podatke, tako da vtičnica ve, da ne prihajajo več podatki.

Vrstica 18-26: ustvarimo vmesnik za shranjevanje odziva strežnika in medtem ko vtičnica sprejema podatke, rezultatu dodamo do 1024 bajtov podatkov, dokler so podatki za branje.

Vrstica 28-29: želimo, da je ta povezava netcat enkratna, zato razglasimo povezavo zaprto in nato povezavo zapremo.

Vrstica 31: To je standardna zahteva HTTP. Če zaženete kodo z argumenti ukazne vrstice »google.com« in »80«, boste videli ustrezen odgovor

5. korak: omogočimo odprto povezavo

Omogočimo odprto povezavo
Omogočimo odprto povezavo

Zgornja koda (ki se nahaja pod kodo iz prejšnjega razdelka) nam preprosto omogoča izvajanje več ukazov netcat prek psevdoodprte povezave. (V resnici se vsakič, ko zaženete ukaz, odpre in nato zapre nova povezava TCP, zato resnično ne posnema vedenja omrežja netcat, to preprosto počnemo v učne namene). Razčlenimo tudi to črto za vrstico:

Vrstica 31: ukaze želimo brati v nedogled, da ohranimo "interaktivnost"

Vrstica 32: To je naš vmesni pomnilnik, ki bo shranil vsebino naše zahteve

Vrstica 36-45: Beremo v vmesni pomnilnik, dokler ne preberemo prazne vrstice

Vrstica 48: preprosto pokličemo našo funkcijo netcat z imenom gostitelja, vrati in novo ustvarjeno vsebino (ki je pravilno kodirana)

Vrstica 50: če vsebina našega medpomnilnika kdaj vsebuje "Povezava: Zapri" (kar pomeni, da želimo prekiniti povezavo), preprosto prekinimo zanko

6. korak: Zaključek

Na koncu te vadnice bi morali imeti minimalno delujočo implementacijo netcat. Izvajanje funkcij, kot so:

1. podpira druge protokole

2. določite kodo, da povezave ne zapre vedno

3. dodajanje zastavic, ki jih mora netcat že spremeniti

Priporočena: