het internet

U kunt dus ontsnappen aan captive portals en firewalls met dns2tcp

Normaal gesproken is de Wi-Fi-netwerken publiek ont gevangen portalen om te authenticeren, als we ons niet authenticeren tegen deze captive portals, hebben we geen toegang tot internet. Als we ons in een openbare plaats, cafetaria, hotel, restaurant of een andere plaats met openbare Wi-Fi-connectiviteit bevinden, is het zeer waarschijnlijk dat er captive portals bestaan. Deze portals vragen u meestal om persoonlijke informatie zoals volledige naam, e-mailadres, leeftijd, onder andere, afhankelijk van waar dit netwerk thuishoort. Als u de Captive Portal negeert of het verificatievenster sluit, heeft u geen toegang tot internet, zelfs niet als u een lokale verbinding hebt. Vandaag laten we u in RedesZone de dns2tcp-tool, waardoor we kunnen ontsnappen aan dit soort captive portals en een onbeperkte internetverbinding hebben

Het is de moeite waard eraan te denken dat de DNS-protocol voert de gewenste domeinnaamomzettingsfunctie uit. Dit is erg handig, want als het niet zou bestaan, zouden we in de adresbalk van onze browser nog steeds de IP-adressen moeten noteren, wat praktisch onmogelijk te onderhouden is. In deze gids zullen we specifiek praten over DNS-tunnels die ons zullen helpen toegangsbeperkingen zoals firewalls en captive portals te omzeilen.

Het is echter mogelijk om dit type tunnels te starten omdat de netwerkbeheerder niet de juiste configuratieparameters heeft gemaakt om het te blokkeren. Een handige manier om erachter te komen of we de DNS-tunnel kunnen doen, is door de opdrachtregel in te voeren en het volgende uit te voeren:

nslookup www.google.com

Druk op "Enter" en de gegevens zullen verschijnen zoals in de gedeelde opname. Als dat het geval is, kunt u de DNS-tunnel starten. Het eerste dat we nodig hebben, is een tool genaamd dns2tcp , wordt deze tool gebruikt om DNS-verbindingen tot stand te brengen. Dit zal ons precies helpen om een ​​captive portal te omzeilen die op openbare netwerken is geconfigureerd.

De belangrijkste voorwaarde om de tool goed te laten werken, is dat UDP-poort 53 wordt geactiveerd door de firewall, anders werkt het niet en kunnen we niet ontsnappen aan het captive-portaal of de firewall. Vervolgens zullen we het werkdiagram demonstreren om beter te begrijpen hoe de barrière van de captive portal wordt omzeild:

  • Wanneer de dns2tcp-client start, wordt de beveiligde SSH-bron aangevraagd via poort 2222 met behulp van het TCP-transportprotocol. Al het gegenereerde TCP-verkeer wordt gemaskeerd en heeft de vorm van: valse DNS-query's .
  • Vervolgens wordt een SOCKS-proxy geopend via poort 1080.
  • Deze valse DNS-verzoeken worden verzonden naar de dns2tcp-server, die ze ontmaskert en erin slaagt ze naar de oorspronkelijke bestemming te sturen.
  • Wanneer de bestemming op het verzoek reageert, gaat dit antwoord eerst via de dns2tcp-server om te worden ingekapseld in een nep DNS-antwoord .
  • Het gemaskeerde antwoord wordt doorgegeven aan de dns2tcp-client die het uitpakt en uiteindelijk doorgeeft aan de gebruiker

Het einde van dit schema is dat de gebruiker toegang heeft tot alle websites die hij wil.

Ubuntu starten, installeren en configureren op AWS

Als we dit in de praktijk willen brengen, hebben we een server nodig waarop de dns2tcp-tool is geïnstalleerd en een eigen domein dat moet verwijzen naar het openbare IP-adres van de server (ook dns2tcp). We kunnen een extra computer gebruiken die we hebben of meer functionele en economische middelen gebruiken, zoals een Raspberry Pi. Voor de laatste zouden we de Linux-distributie kunnen installeren die we willen, zoals Raspbian onder andere.

Kiezen voor extra hardware brengt echter een extra kosten met zich mee. We kunnen dus kiezen voor gratis alternatieven zoals: Amazon Web Services . In deze tutorial gaan we ons concentreren op het belangrijkste onderdeel van het maken van de DNS-tunnel: de server waar dns2tcp wordt gehost. Als we dat niet hebben, is er geen manier om te beginnen.

Het eerste dat u moet doen, is toegang krijgen tot de portal AWS en maak een gratis account aan. U krijgt een jaar lang toegang tot verschillende oplossingen zonder een abonnement te betalen. Een belangrijk detail is dat je in een van de stappen je creditcardgegevens moet invullen, maar maak je geen zorgen, er zijn geen kosten aan verbonden. Ga dan naar Mijn account  en selecteer de optie AWS-beheerconsole .

Van de meerdere opties die u zult zien, kiest u de eerste, namelijk: EC2. Dat spreekt vanzelf EC2 wordt beheerd door gevallen . Deze instanties zijn als containers waarin de virtuele machines die we maken worden gehost. Dit kunnen verschillende versies van Windows Server of Linux-servers zijn. Als u meer wilt weten, raden we u aan de talloze virtualisatie-opties te verkennen.

Dit brengt ons bij het speciale EC2-servicedashboard en we gaan verder met: Gevallen .

Laten we naar de blauwe knop gaan Start de instantie

We hebben nu een creatiewizard voor onze instantie . Dit is de instantie die onze gevirtualiseerde server zal bevatten, die op zijn beurt de dns2tcp-tool zal hosten.

In dit geval kiezen we a ubuntu-server en het maakt ons niet zoveel uit welke versie we moeten gebruiken. Aangezien we alleen aan het testen zijn. Dan klikken we op de blauwe knop Kiezen .

We kiezen de optie die kan worden gebruikt met het gratis abonnement (degene met het label komt in aanmerking voor het gratis niveau) .

Later zullen enkele stappen verschijnen waar we deze keer geen aandacht aan hoeven te besteden. We gaan echter verder met stap 6 (Beveiligingsgroepen)  en voeg een nieuwe regel toe die het maken van DNS-tunnels mogelijk maakt: het protocol DNS (UDP)

Zodra we deze optie hebben gekozen, geeft het automatisch het poortnummer aan, dat is 53. Waar het als Bron staat, kunnen we de optie Aangepast aangeven en ernaast plaatsen we het IP 0.0.0.0/0 . klik vervolgens op Controleer en start .

Er verschijnt een laatste beoordelingsstap en u moet op . klikken Lanceren . Zoals we hieronder zullen zien, is dit niet echt de laatste stap. Wat we nu gaan doen is genereren het paar sleutels (bestaande uit een openbare sleutel en een privésleutel) waarmee we veilig verbinding kunnen maken met onze instantie die we zojuist hebben gemaakt.

In deze stap moet u de optie selecteren: Een nieuw sleutelpaar maken  zodat we ons een nieuw sleutelpaar kunnen bezorgen. Waar staat geschreven? Naam sleutelpaar , geven we de naam aan van het paar dat we willen. We raden u aan een naam te gebruiken waarmee we het bestand gemakkelijk kunnen herkennen wanneer we ernaar zoeken. Iets heel belangrijks dat het aangeeft, is dat het bestand maar één keer wordt gegenereerd, dus het is erg handig om het op een veilige locatie op de computer op te slaan die we kunnen onthouden. Dan klikken we op Download het sleutelpaar  om het bestand te downloaden en instanties starten instance

Na een paar minuten zult u verifiëren dat de status van de nieuw gemaakte instantie klaar is om te worden gestart en daarom toegang heeft tot onze gevirtualiseerde server. Wat rood is gemarkeerd, zal u waarschuwen als u uw instantie nu kunt starten. Als het lijkt op het voorbeeldscherm, kunt u aan de slag. U moet de door u gemaakte instantie selecteren en op de knop . klikken Connector .

Er verschijnt een venster met opties om verbinding te maken met uw instantie. In dit geval laten we zien hoe u verbinding kunt maken via een SSH-client. Daarom hebben we een programma nodig met de naam PuTTY .

Installeer PuTTY in seconden

Om verbinding te maken met onze Ubuntu-server die we hebben gemaakt via de AWS-instantie, hebben we dit programma nodig. Meer precies twee, stopverf et Stopverf Gen . Toegang tot dit pandrecht en zoek naar beide programma's, ze zijn vrij licht van gewicht en vereisen niet al te veel installatiestappen.

Laten we verder gaan PuTTY Gen , zal deze tool ons helpen het sleutelpaarbestand te converteren dat we hebben gedownload toen we klaar waren met het maken van onze instantie in AWS. Om wat context te krijgen over waarom we dit doen, is dat PuTTY sleutelpaarbestanden in het formaat ondersteunt .ppk , zodra de conversie is voltooid, helpt dit bestand ons om via SSH verbinding te maken met onze virtuele Ubuntu-server.

In Parameters , kiezen we het RSA-coderingsalgoritme dat wordt gebruikt voor SSH-2. Tegenwoordig wordt echter geadviseerd om SSH-sleutels te maken met Ed25519 of met ECDSA omdat deze het veiligst zijn. Dan in Laden , we zullen het bestand vinden .pem  die we eerder in AWS hadden gemaakt.

Wanneer we het bestand willen openen, zorg er dan voor dat het mogelijk is om alle bestanden te bekijken en vermijd dus de problemen om het te vinden. Je opent het en binnen enkele seconden zie je een melding dat het succesvol is geïmporteerd:

Klik op OK  , dan klik je op de knop Bewaar de privésleutel  omdat dit de sleutel is waarmee u zich kunt verifiëren en verbinding kunt maken met uw Ubuntu-server. U krijgt een waarschuwing, maar u kunt op . klikken ja zonder op te hoeven drukken, geeft u het bestand een naam en slaat u het op.

Verbinding maken met onze gevirtualiseerde server met PuTTY

Laten we nu naar het PuTTY-programma zoeken en we zullen een venster als dit hebben

Zoals we hebben opgemerkt, zullen we verbinding maken via het SSH-protocol. Wat we moeten doen om te voorkomen dat we de volgende stap keer op keer herhalen, is: corrigeer ons bestand privésleutel gegenereerd met PuTTY Gen zodat we met succes verbinding kunnen maken wanneer we maar willen.

We zijn op zoek naar de alinea SSH  gevonden in Categorie en Auth  en waar hij is ecrit Privésleutelbestand voor authenticatie  verhoogde ons bestand .ppk net geworden PuTTY Gen . We gaan terug naar AWS en zoeken de instantie die we zojuist hebben gemaakt, selecteren deze en klikken op Verbinden . Het venster dat we hierboven zagen verschijnt opnieuw en we kopiëren de informatie vermeld in de étape 4 , wat onze openbare DNS is.

We gaan naar PuTTY en naar de sectie Sessie , in het veld hostname we zetten het volgende:

nombredeusuario@DNSpublico

Terwijl we een Ubuntu-server virtualiseren, schrijven we gewoon:  ubuntu in kleine letters gevolgd door  en de openbare DNS die we eerder hebben gekopieerd, zonder spaties

ubuntu@dnspublico-ABC-123-dEf

We behouden het poortnummer 22 , in opgenomen sessies, we geven een willekeurige naam om onze verbinding met de Ubuntu-server op te slaan, we klikken op Enregistrer om het op te slaan, dan aan Openen .

Aangezien dit de eerste keer is, verschijnt er een waarschuwing en moet u op . klikken ja :

En voila, wacht een paar seconden totdat de verbinding is gestart en we zullen een venster als dit zien. We hebben toegang tot onze gevirtualiseerde Ubuntu-server!

Zodra we de VM in AWS hebben gemaakt en verbinding hebben via SSH, hoeven we alleen de dns2tcp-tool zelf te gebruiken.

Installatie en configuratie van dns2tcp op Ubuntu

Het eerste wat we moeten doen op onze ubuntu-server is om de dns2tcp-tool te installeren:

sudo apt install dns2tcp

Eenmaal geïnstalleerd, zowel op de client als op de server, zullen we enkele kleine aanpassingen moeten maken.

De dns2tcp-server configureren en starten

We zullen een korte configuratie moeten uitvoeren door het configuratiebestand in /etc/dns2tcp.conf te bewerken en het volgende te bevatten:

root@debian-vm:/home/bron# cat /etc/dns2tcpd.conf
listen = 127.0.0.1
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = your.domain.tld
resources = ssh:127.0.0.1:22 , smtp:127.0.0.1:25
root@debian-vm:/home/bron#

We moeten het als volgt bewerken:


listen = 0.0.0.0
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
chroot = /tmp
domain = EL_DOMINIO_DE_AWS
key= redeszone
resources = ssh:127.0.0.1:22 , smtp:127.0.0.1:25
root@debian-vm:/home/bron#

Het veld "sleutel" is optioneel, maar het wordt aanbevolen om authenticatie te gebruiken om te voorkomen dat iemand verbinding maakt. We moeten het als volgt uitvoeren:

root@debian-vm:/home/bron# sudo dns2tcpd -F -d 3 -f /etc/dns2tcpd.conf
18:52:08 : Debug options.c:97 Add resource ssh:127.0.0.1 port 22
18:52:08 : Debug options.c:97 Add resource smtp:127.0.0.1 port 25
18:52:08 : Debug socket.c:55 Listening on 0.0.0.0:53 for domain your.domain.tld
Starting Server v0.5.2...
18:52:08 : Debug main.c:132 Chroot to /tmp
16:52:08 : Debug main.c:142 Change to user nobody

Als we klaar zijn, hoeven we alleen maar contact te maken met onze klant.

Clientconfiguratie om verbinding te maken via dns2tcp

De eenvoudigste manier om verbinding te maken is door een opdrachtregel uit te voeren die alles heeft wat je nodig hebt, dan kun je in detail zien welke ons moet verbinden en automatisch de socket voor SSH op poort 2222 maken.

dns2tcpc -z EL_DOMINIO_DE_AWS -k redeszone -r ssh -l 2222

Nu kunnen we de verbinding met SSH op de volgende manier tot stand brengen en de communicatie wordt versleuteld en geverifieerd:

ssh [email protected] -p 2222 -D 8080

Ten slotte zullen we de PROXY SOCKS in onze browser moeten configureren, bijvoorbeeld in Firefox, het zou als volgt zijn:

Op deze manier kun je captive portals omzeilen en het is mogelijk dat firewalls dat ook doen, zolang ze geen specifieke blokkades hebben die voorkomen dat deze techniek wordt uitgevoerd.

Vergelijkbare items

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

Terug naar boven knop