Hur man attackerar öppna hamnar och vad cyberkriminella kan göra

Vi är säkra på att ni alla någonsin har varit tvungna att "öppna en port", eller snarare, "port vidarebefordra" på routern, eftersom alla datorer i det lokala nätverket ligger bakom NAT. För att kunna komma åt dessa enheter som finns i det lokala nätverket från Internet måste vi "öppna en port" eller göra "Port vidarebefordran" på routern, annars kommer vi inte att kunna komma åt den här tjänsten från Internet ( SSH-server, FTP-server, OpenVPN-server etc.) I dag i den här artikeln ska vi förklara vad det betyder för en port att vara öppen, hur de kan angripa öppna portar och vad de kan göra.

Hur man attackerar öppna hamnar och vad cyberkriminella kan göra

Vad betyder det för en port att vara "öppen"?

Kommunikation på transportlagernivå, som huvudsakligen använder TCP- och UDP-protokoll, använder sig av det som kallas ”Internetuttag”. Detta uttag utgör en mekanism genom vilken två processer (applikationer, till exempel) kan utbyta data via det lokala nätverket eller via Internet. Alla dataflöden som använder TCP eller UDP kräver minst följande information:

  • Källa IP
  • Ursprungshamn
  • Destination IP
  • destinationshamn

I ett lokalt nätverk, på ett helt automatiskt och transparent sätt, öppnas och stängs portarna kontinuerligt av olika processer för att kunna kommunicera med andra datorer. För att två processer ska kommunicera är det nödvändigt att en process kan "lokalisera" den andra för att få tjänster eller tillhandahålla tjänster till dig.

esquema del 3-vägs handskakning

När vi definierar att en "port är öppen" kan den vara i två mycket olika scenarier:

  • En öppen port på en lokal dator till exempel på vår dator eller på en lokal server. I princip bör alla portar vara stängda eftersom brandväggen normalt är konfigurerad restriktivt (allt blockerat utom vad som är specifikt tillåtet).
  • En öppen port i routerns NAT . Normalt har vi inte någon "öppen" port i routern, eller snarare har vi inte någon "port till någon dator" i "Virtual Server" eller "Port Forwarding". Som standard i vilken router som helst är denna tabell tom, men vi kan registrera olika regler för att öppna portar till olika datorer.

När behöver vi öppna portar lokalt?

Om vår lokala dator fungerar som en ”något” -server, till exempel en FTP-server, en webbserver, en SSH-server, en VPN server, en databasserver och mycket mer måste vi ha en port eller flera portar öppna på den. brandvägg så att de olika datorerna i det lokala nätverket eller Internet kan komma åt våra tjänster, annars kommer de inte att kunna komma åt eftersom brandväggen blockerar denna kommunikation och anslutningar kommer inte att upprättas.

Normalt i en hemmiljö, om vi ställer in fönster 10 eller a Linux-baserat operativsystem som "Privat nätverk" eller "Hemnätverk", brandväggen är inaktiverad och alla inkommande anslutningar tillåts. Men om vi har det som "Offentligt nätverk" kommer brandväggen att aktiveras och kommer att blockera alla inkommande anslutningar som vi inte tidigare har gjort utgående, därför står vi inför en "begränsande" brandvägg.

När behöver vi öppna portar i routerns NAT?

Om vi ​​har en dator i det lokala nätverket som fungerar som en server «för något», som i föregående fall, och vi vill att dessa tjänster ska vara tillgängliga från Internet, kommer det att bli nödvändigt att göra en «port vidarebefordran» eller också känd som «öppna hamnar». På det här sättet, om någon öppnar ett uttag med den offentliga IP-adressen och en motsvarande extern port, kommer dataflödet automatiskt att vidarebefordras till den dator som vi har "öppnat portarna" för.

En router har som standard inga regler för att vidarebefordra port, vi måste göra det specifikt. Dessutom är en mycket viktig detalj att om din operatör har CG-NAT, även om du öppnar en port på routern externt, kommer du inte att kunna göra något för att komma åt de interna resurserna i det lokala nätverket.

Hur attackerar du en hamn?

Du kan inte riktigt "attackera" en port, det som attackeras är tjänsten bakom den "porten" som lyssnar på att acceptera inkommande anslutningar. Till exempel, om vi har port 5555 öppen och en FTP-server är konfigurerad här, vad vi kommer att göra är att attackera FTP-tjänsten, men inte porten. Hamnen är fortfarande en "dörr" till informationen. Det som verkligen attackeras är tjänsterna bakom dessa hamnar.

Termen att attackera en port används ofta, när det verkligen borde sägas "gör en portavsökning" för att kontrollera vilka portar som är öppna på en viss dator, för att senare attackera tjänsterna bakom denna specifika tjänst. För att göra en portavsökning finns det många metoder, men utan tvekan är det bästa vi kan använda att utföra en genomsökning med Nmap, det viktigaste programmet för upptäckt och portavsökning, dessutom skulle det också möjliggöra dess utnyttjande av NSE som är ett tillägg till Nmap med möjlighet att knäcka olika tjänster och utnyttja kända sårbarheter.

Nmap är ett mycket lättanvänt program, installera det bara på vilket Linux-baserat operativsystem som helst för att starta driften, det finns i de officiella förvaren för varje distribution, kör därför bara följande kommando:

sudo apt install nmap

När vi väl är installerade måste vi utföra det specifika kommandot för att se om en port är öppen, filtrerad eller stängd:

nmap -p PUERTO IP

Vi kan också skanna en rad portar enligt följande:

nmap -p PUERTOINICIAL-PUERTOFINAL IP

Om vi ​​till exempel har en webbserver med HTTP och HTTPS igång, är det helt normalt att vi har portarna 80 och 443 öppna, så här:

Det är enkelt att kontrollera öppna, filtrerade eller stängda portar med Nmap, men vi rekommenderar att du läser hela Nmap-wiki där vi har detaljerade steg-för-steg-manualer för de olika typerna av portskanning som vi har tillgängliga.

Vad kan en cyberkriminell göra med en port som är öppen?

När vi har en öppen hamn kan det finnas flera fall kring vad en cyberbrottsling kan eller inte kan göra. Om vi ​​har en öppen port, men det finns ingen tjänst bakom den som lyssnar, kommer den inte att kunna göra någonting alls, men det öppna portnumret kan "sparas" om vi sätter en tjänst att lyssna i framtiden .

Om vi ​​har en öppen port och det finns en tjänst bakom att lyssna kan den utföra många åtgärder:

  • Använd ett legitimt sätt att kontrollera dess funktion
  • Om tjänsten kräver autentisering kan den utföra en ordbok eller brute force-attack för att komma åt tjänsten.
  • Utför en denial of service-attack för att få tjänsten att sluta fungera ordentligt och sluta tillhandahålla service.
  • Att utnyttja en säkerhetsproblem i tjänsten, antingen för att olagligt få tillgång till tjänstens resurser, för att komma in i systemet och till och med för att eskalera behörigheter och ta full kontroll över servern.

Som du kan se, med en öppen port och en tjänst som kör bakom den, kan en cyberkriminell utföra många skadliga åtgärder, därför är det mycket viktigt att skydda tjänsterna bakom denna port, för att skydda dem, det är tillrådligt att utföra följande åtgärder :

  • Konfigurera brandväggen korrekt så att den endast tillåter dem som verkligen behöver den, till exempel kan du filtrera efter länder.
  • För att mildra DoS-attacker kan du konfigurera brandväggsregler för att neka för många samtidiga anslutningar till samma käll-IP.
  • Du kan installera ett program som fail2ban för att upptäcka flera inloggningsförsök och sedan be brandväggen att blockera källans IP.
  • Förhärdning av tjänsten som lyssnar, vare sig det är en SSH-server, FTP eller webbserver, det finns alltid avancerade inställningar i dessa tjänster för att skydda dem ännu mer.
  • Härda operativsystemet som är värd för tjänsten, definiera robusta autentiseringspolicyer, uppdatera systemet och till och med använda avancerade system som SELinux bland andra.

Det finns många säkerhetsåtgärder som vi kan tillämpa på ett system och en tjänst för att vara säkrare, men du måste komma ihåg att 100% säkerhet inte finns, därför måste du vara beredd på en händelse och kunna återställa systemet.