Pytonorm

Python för hacking, bygg en portskanner

Python för hacking, bygg en portskanner

Python för hacking: Bygg en portavläsare i 13 rader med Python

Att bli en penetrationstestare är inte bara att kunna utnyttja vissa mål direkt.  Att använda andras pentest-verktyg gör inte någon till en bra hackare. Egentligen är de som har beroende av att förlita sig på verktyg vanligtvis stämplade som skriptkiddies. Varje expertfält måste ha nivåer, det kallas också en process, inte minst är hackingområdet. Som följande populära citat säger, "Inga legender föddes, legender görs". Det handlar inte om ens talang utan om skickligheten.

I följande artikel kommer vi att lära oss om implementeringen av ett programmeringsspråk inom hackingområdet. Vem känner inte till Pythons programmeringsspråk? Ja, naturligtvis vet du redan. Python skapas för allmänna ändamål, till exempel utveckling av skrivbordsapplikationer med dess GUI, webbutveckling och inklusive hacking eller penetrationstestning. Python har en aktiv gemenskap (som vissa av dem är galen, a.k.en fanatiker) och python har också rikt biblioteksmoduler.

Python har också blivit mitt favoritprogrammeringsspråk sedan jag kände till området för penetrationstestning. Jag älskar inte bara det för givet. Av någon anledning är emellertid python ett mindre komplext och mer effektivt programmeringsspråk. Vad jag menar med det är att det är nästan nära mänskligt språk, är det inte det? Ur en nybörjarsynvinkel som min är Pythons läsbarhetsgrad galen.

Okej, tillräckligt för att överdriva python. Nu kommer jag att förklara poängen med denna artikel. Här kommer vi att lära oss att skapa en enkel portavläsare med noggrannhet med endast 13 rader. (jag gillar 13). Här kommer vi inte att slå "port scanner king" NMap, istället är syftet med detta att förstå hur ett verktyg fungerar på ett sådant sätt att producera det vi vill, i det här fallet för att se om portarna på ett mål är öppna eller inte. Å andra sidan finns det andra fördelar, dvs.e. när vi vid något tillfälle står inför ett tillstånd där när vi vill göra portskanning av routern som inte kan ansluta till Internet och vi inte har några verktyg. Det blir förstås lättare om vi kan göra hamnskannern själv. Citat från ovanstående offert. Jag lade till, "Hackare använder inte verktyg, de skapar verktyg"

Låt oss göra det med övning, öppna din favorittextredigerare. Slösa inte din tid med att använda en högpresterande IDE för att göra enkla skript. Var bara effektiv. Jag föredrar Gedit snarare än den förbyggda Kali Linux-textredigeraren Leafpad. På grund av en anledning stöder Gedit färgmarkering för olika programmeringsspråk. Skriv följande text i din textredigerare.

importuttag
strumpa = uttag.uttag (uttag.AF_INET, uttag.SOCK_STREAM)

I rad 1 måste vi importera moduluttag för att kunna använda funktionen socket (). I rad 2 skapar vi ett sockelobjekt med syntaxen:

uttag.uttag (socket_family, socket_kind)

Socket_family kan vara: AF_INET, AF_INET6, AF_UNIX, AF_NETLINK, AF_TIPC, AF_BLUETOOTH och AF_ALG.

Socket_kind alternativen är SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, etc. Vi använder SOCK_STREAM eftersom vi kommer att kommunicera via TCP-protokollet.

För att ta reda på mer om uttagsmodulen, besök den officiella dokumentationen för uttaget på https: // docs.pytonorm.org / 3 / bibliotek / uttag.html

Låt oss fortsätta programmet med följande rader:
https: // analys.Google.com / analytics / web / # realtime / rt-content / a2559550w156331077p157923904 /

target = input (“[+] Ange mål-IP:“)

Vi ber användaren att ange en mål-IP, eftersom vi använder AF_INET för att skapa uttag.

def-skanner (port):
Prova:
strumpa.anslut ((mål, port))
återvänd True
bortsett från:
återvänd Falskt

I nästa rader ovan definierar vi scanner() fungera. I scanner() vi använder Prova syntax för att säkerställa att vi inte kastar något fel om det uppstod problem. Vi försöker skapa en anslutning för att rikta IP och dess port. Portvariabel skickas till funktionen som visas nedan.

för portNumber inom intervallet (1100):
skriv ut ("Scanning port", portNumber)
om skanner (portNumber):
skriv ut ('[*] Port', portNumber, '/ tcp', 'is open')

Detta för loop ovan, är att iterera genom en serie portar som vi ska skanna. Syntaxen för räckvidd() funktionen är, intervall (börja från x, stopp före x). Så i rad 10 kommer vi att skanna 100 portar, vilket är port 1 till 99. Vi använder ett utskriftsmetodsamtal för att berätta vilken port som nu faktiskt skannas. Sedan returnerar vi boolesk typ, sant eller falskt. Det kallar vårt scanner() funktion som försöker skapa en anslutning till den medföljande porten; om det är returnerar Falsk (försöket att ansluta misslyckades).  Om det återkommer Sann (anslutningsframgång) och gå sedan till nästa rad. Som visar ett meddelande som indikerar att denna viss port är Öppna. Denna loop slutar när vi skannade port 99.

Så för att avsluta bör vår 13-rads portskanner med kod se ut så här:

Okej nu är det dags att testa det, låt oss se hur det fungerar. Spara det som scanner.py. Om vi ​​ska söka efter våra egna routeröppnade portar i intervallet mellan 1 och 99. Lita på mig, det här kommer inte att vara snyggt att jämföra med NMap, fokusera bara på vårt mål som jag nämnde ovan.

Mål-IP: 192.168.1.1

Syntaxen att ropa ut scanner.py är:

~ # python3-skanner.py

Eftersom vi inte ställde in vår skriptmiljö i första raden måste vi därför ringa Python-tolk, jag använde python3 snarare än dess lägre version.

Och den icke-snygga produktionen ska se ut så här:

SAMMANFATTNINGSVIS

Ja, vi lyckas bygga en enkel portskanner från grunden med python bara i 13 rader. Vi lyckas nå vårt mål och nu vet vi hur saker och ting fungerar?. Även jag sa inte till dig om det finns en kille som skapade NMap-python-modul, skulle du inte bli förvånad. Den här modulen kan i princip köra NMap-kommandot med hjälp av python-programmeringsspråk.

Åh ja, om du undrar var är hackingen med att bara göra portavsökning? Hmm ... Tja, vad riktar ett hacker sig till om de inte har någon aning om själva målet. Kommer du ihåg Penetration Testing Phases or Cycles? Om inte, kan du behöva läsa artikeln här:

https: // linuxhint.com / kali-linux-tutorial /

Mus Topp 5 Ergonomiska datormusprodukter för Linux
Topp 5 Ergonomiska datormusprodukter för Linux
Ger långvarig datoranvändning smärta i handleden eller fingrarna? Lider du av styva leder och måste ständigt skaka hand? Känner du en brännande smärta...
Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...
Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...