Innholdsfortegnelse:

Netcat i Python: 6 trinn
Netcat i Python: 6 trinn

Video: Netcat i Python: 6 trinn

Video: Netcat i Python: 6 trinn
Video: Обход аутентификации веб-приложений | TryHackMe Road 2024, November
Anonim
Netcat i Python
Netcat i Python

Hva er netcat? Den manuelle siden for netcat sier følgende: "verktøyet nc (eller netcat) brukes til omtrent alt under solen som involverer TCP-, UDP- eller UNIX-domenekontakter. Det kan åpne TCP-tilkoblinger, sende UDP-pakker, lytte på vilkårlig TCP- og UDP -porter, gjør portskanning og håndterer både IPv4 og IPv6. I motsetning til telnet (1), skaper nc -skript pent, og skiller feilmeldinger til standardfeil i stedet for å sende dem til standardutgang, slik telnet (1) gjør med noen"

I hovedsak lar netcat deg koble til andre servere ved hjelp av TCP- eller UDP -protokollen. TCP står for Transmission Control Protocol, og er tilkoblingsorientert. UDP står for Universal Datagram Protocol, og er uten tilkobling. TCP brukes ofte for internettprogrammer, mens UDP brukes for mediestreaming eller VPN -er.

Trinn 1: Hvordan begynner vi?

Hvordan begynner vi?
Hvordan begynner vi?

Over er hvordan netcat kalles. Du kan se at det er to argumenter på slutten som kalles "destinasjon" og "port". Destinasjonen refererer til et vertsnavn eller ip -adresse til serveren vi prøver å koble til, mens porten refererer til porten til serveren vi prøver å koble til.

Trinn 2: La oss begynne

La oss begynne
La oss begynne

Over er en begynnende pythonkode. Som du kan se, ønsker vi å behandle argumentene til programmet på samme måte som det faktiske verktøyet gjør. Vertsnavnet vil være det første argumentet etter kjørbarhetens navn, mens porten vil være det andre argumentet etter kjørbart navn på kommandolinjen.

Trinn 3: Opprette en tilkobling

Opprette en tilkobling
Opprette en tilkobling

La oss lage en netcat -funksjon vi kan bruke. Det vi i utgangspunktet gjør her, er å opprette en sokkel og koble til serveren ved hjelp av de angitte parameterne. For netcat -kommandoen er gjeldende parametere vertsnavnet og porten til serveren vi prøver å koble til. Stikkontakten inneholder parameterne "socket. AF_INET" og "socket. SOCK_STREAM" fordi vi som standard bruker en TCP -tilkobling for denne opplæringen.

Trinn 4: La oss sende noe innhold

La oss sende noe innhold
La oss sende noe innhold

Vi utvidet vår netcat -funksjon til å ta en tredje parameter, "innhold". Det er mye innhold her, så la oss dele det etter linjenummer.

Linje 14-16: vi sender alt innholdet over kontakten, vi venter litt, og så lukker vi kontakten for alle utgående data slik at kontakten vet at det ikke kommer flere data.

Linje 18-26: vi oppretter en buffer for å lagre serverresponsen, og mens kontakten mottar data, legger vi opp til 1024 byte med data til resultatet så lenge det er data å lese.

Linje 28-29: vi vil at denne nettcat-tilkoblingen skal være en engangstilkobling, så vi erklærer forbindelsen for stengt og lukker deretter forbindelsen.

Linje 31: Dette er en standard HTTP -forespørsel. Hvis du kjører koden med kommandolinjeargumentene "google.com" og "80", vil du se et skikkelig HTTP -svar

Trinn 5: La oss ha en åpen forbindelse

La oss ha en åpen forbindelse
La oss ha en åpen forbindelse

Koden ovenfor (som ligger under koden fra forrige seksjon) lar oss ganske enkelt kjøre flere netcat-kommandoer over en pseudo-åpen forbindelse. (I virkeligheten, hver gang du kjører en kommando, åpnes den og lukker deretter en ny TCP -tilkobling, så det etterligner ikke virkeligheten til netcat, vi gjør dette ganske enkelt for læringsformål). La oss også bryte ned denne linjen for linje:

Linje 31: Vi ønsker å lese kommandoer på ubestemt tid for å opprettholde "interaktivitet"

Linje 32: Dette er vår buffer som lagrer innholdet i forespørselen vår

Linje 36-45: Vi leser inn i bufferen til vi leser en tom linje

Linje 48: vi kaller ganske enkelt vår netcat -funksjon med vertsnavn, port og nyopprettet innhold (som er riktig kodet)

Linje 50: hvis innholdet i bufferen vår noen gang inneholder "Tilkobling: Lukk" (indikerer at vi ønsker å lukke tilkoblingen), bryter vi ganske enkelt ut av løkken

Trinn 6: Konklusjon

På slutten av denne opplæringen bør du ha en minimal fungerende netcat -implementering. Jeg vil overlate det som en øvelse for brukeren å implementere funksjoner som:

1. støtte andre protokoller

2. fikse koden for ikke å stenge tilkoblingen hver gang

3. legge til flagg som netcat allerede må endre oppførselen

Anbefalt: