[GUIDE] VOIP-/SIP-inloggegevens achterhalen met de Zyxel


Reputatie 6
Badge +2

UPDATE: Om teleurstellingen te voorkomen: deze eerste guide werkt niet meer. Klik hier voor de laatste versie en hier voor een kleine aanvulling voor als je niet de Zyxel hebt, maar wel een eigen router en/of managed switch.

UPDATE 2: De nieuwste versie van deze guide (zie de links hierboven) werkt inmiddels ook in combinatie met de Draytek Vigor 2132FVn. Hier vind je er meer over.

Zo nu en dan zie ik hier de vraag naar de VOIP-/SIP-gegevens voorbij komen en laait de discussie weer op of T-Mobile die zou moeten vrijgeven. Ook nu de concurrentie dat wel doet, lijkt men er hier niets voor te voelen. Daarom deze guide, zodat je, mits je in het bezit bent van de Zyxel VMG8825-T50, zelf je wachtwoord kunt achterhalen. De volgende gegevens heb je ook nodig en zijn al bekend:

  • Serveradres: voip.t-mobilethuis.nl
  • Poort: 5060 (UDP)
  • Gebruikersnaam: je klantnummer, gevolgd door “P005”, bijvoorbeeld: TMT12345P005

Dan nu het moeilijkste: het wachtwoord.

  • Ga naar het inlogscherm van de Zyxel (standaard 192.168.1.1) en log in met de gegevens achter op de router.
  • Ga naar het menu (rechtsboven) > Netwerkinstelling > DNS.
  • Ga naar Dynamische DNS.
  • Klik op Inschakelen en vul in de drie velden eronder wat willekeurige tekst in (om de instellingen in de config file te krijgen, hebben we later nodig).
  • Klik op Toepassen.
  • Ga nu weer naar het menu (rechtsboven) en vervolgens naar Onderhoud > Back-up/herstellen.
  • Klik op Back-up om de config file te downloaden.
  • Open dit bestand (Backup_Restore genaamd) in bijvoorbeeld Kladblok.
  • Zoek naar onderstaande passage (CTRL + F). Daar staat je gebruikersnaam (klantnummer + P005) en je versleutelde wachtwoord. Kopieer het hieronder onleesbaar gemaakte gedeelte.
  • Zoek nu in hetzelfde bestand naar onderstaande tekst. Je herkent de willekeurige tekst die je eerder hebt ingevuld.
  • Plak het versleutelde wachtwoord over het gecodeerde nepwachtwoord dat je eerder hebt ingevoerd.
  • Sla de wijzigingen op.
  • Ga terug naar het Back-up/herstellen-scherm van de Zyxel.
  • Klik op Bestand kiezen, zoek het Backup_Restore-bestand op je computer en klik op Upload.
  • De Zyxel start nu opnieuw op. (Geduld is een schone zaak.)
  • Uiteindelijk kom je weer op het inlogscherm. Log opnieuw in en ga weer naar het menu (rechtsboven) > Netwerkinstelling > DNS.
  • Klik nu op het oog rechts van het wachtwoordveld om het wachtwoord zichtbaar te maken.
  • Als het goed is, zie je nu een reeks van 12 willekeurige (hoofd-)letters en cijfers. Dit is je wachtwoord.

Als je zo ver gekomen bent, weet je ook wel wat je er nu zoal mee kunt doen. Bijvoorbeeld jezelf verlossen van de Zyxel en je eigen router gebruiken. Hoe dan ook, doe er je voordeel mee.

Overigens wordt je belgedrag niet op de Zyxel maar op de server bijgehouden, dus als je dacht nu gratis te kunnen bellen heb je het mis. :stuck_out_tongue_winking_eye:

TMTV 1 jaar geleden

Belofte maakt schuld. Hierbij poging drie om de voip-gegevens uit je router te halen. Zoals gezegd werkt deze guide voorlopig alleen met de Zyxel, maar misschien komen de Huawei en/of Draytek daar op een later moment bij. Deze guide is eigenlijk nog simpeler dan de vorige twee. Je hoeft niet eens in te loggen in de router. Een stukje code uitvoeren op je computer is genoeg. In deze guide ga ik uit van een (schone) Windows-installatie, omdat dat nu eenmaal de grootste doelgroep is, maar het werkt ook op macOS en Linux. Als je daarmee overweg kunt, weet je vast ook wel hoe je dit aan de praat moet krijgen ;-).

Omdat ik me goed voor kan stellen dat je niet zomaar een programmaatje van een vreemde op je computer wilt hebben (terecht!), zal ik kort uitleggen wat dit scriptje precies doet. Op het moment dat je je router voor het eerst (of na een fabrieksreset) aansluit, wordt er een aantal instellingen vanuit T-Mobile geladen. Eén van die instellingen is je voip-account. Dit programma simuleert als het ware dat opstartproces. Dat gaat buiten de firmware om, dus het maakt niet uit welke versie er op je Zyxel draait. Dit werkt alleen binnen je eigen netwerk en je kunt ook alleen je eigen gegevens achterhalen. Geen zorgen dus!

Met deze kennis gaan we beginnen. Allereerst heb je Python nodig. Dat kun je hier downloaden. Ik heb de code getest met de op het moment van schrijven meest recente versie (3.9.0), maar het zou ook met Python 2 moeten werken, als je die al geïnstalleerd hebt. Let bij de installatie op dat je het onderste vinkje aanzet:

Klik na het installeren voor de zekerheid op 'Disable path length limit'.

Ga nu naar https://pastebin.com/jCQdTNVm en klik op 'download' om mijn programmaatje te downloaden. Wie er verstand van heeft, kan ook eerst de code bekijken om zeker te weten dat het allemaal deugt. Ik moet erbij vermelden dat zelf een script schrijven wat buiten mijn comfortzone ligt, dus ik sta open voor verbeteringen.

Open nu CMD: druk op Windowstoets + R, typ cmd en druk op enter. Om het te laten werken, heb je nog een hulpprogramma nodig. Dat kun je installeren door dit te typen:

pip install requests

Wacht tot het installeren klaar is (en negeer een eventuele waarschuwing) en ga dan naar de map waar je het eerder gedownloade script hebt opgeslagen. Meestal is dat de map 'Downloads'. Ga daar als volgt naar toe:

cd "C:\Users\<gebruikersnaam>\Downloads"

Vervang <gebruikersnaam> natuurlijk door je eigen gebruikersnaam. Typ nu:

python voip.py

Als het goed is, zou dit het resultaat moeten zijn:

En zie daar: je gebruikersnaam en wachtwoord. Met deze gegevens (en het serveradres voip.t-mobilethuis.nl poort 5060 UDP) ben je vrij om een eigen router aan te sluiten en toch je oude telefoonlijn te gebruiken. Daarover zijn hier genoeg interessante topics te vinden. Je Zyxel kan nu de kast in, maar bewaar 'm wel. Als je ooit je abonnement opzegt, wil T-Mobile 'm graag terug. Als je toch de Zyxel wil blijven gebruiken, is dit een goed moment om hem even opnieuw op te starten. Door mijn scriptje is hij voor de klantenservice tijdelijk onbereikbaar geworden. Dat lost zich vanzelf op, maar je kunt hem ook even herstarten.

Tot slot nog een kleine waarschuwing: wees voorzichtig met je voip-gegevens! Als ze in verkeerde handen vallen, kan het boevengilde op jouw kosten bellen en dat gaat T-Mobile niet vergoeden.

Succes!

TMTV

Bekijk origineel

100 reacties

Reputatie 1

haha, kastje blijkt schaap in wolfskleren, amazon heeft gewoon een echte linksys opgestuurd, was in 2 minuten volledig ingesteld via het portel, en kan nu fluitend bellen… totaal kosten: 40,- (want de huistelefoon kwam voor een €10,- ook al van amazon)

 

dus al met al, zeer tevreden, dat python script werkte ook meteen de 1x, dus props voor iedereen die hier heeft bijgedragen het werkend te krijgen!

Reputatie 6
Badge +2

UPDATE: Door een aanpassing in de opstartinstellingen werkt de nieuwste versie van deze guide (klik hier) inmiddels ook in combinatie met de Draytek Vigor 2132FVn, waarvoor dank T-Mobile! Werkt het bij jou nog niet? Geef hem even een fabrieksreset. Dan worden de nieuwste instellingen opgehaald. Let op: met de 2130FVn (die rijp is voor Tussen Kunst & Kitsch, spoiler alert: het is kitsch :wink: ) werkt het helaas (nog) niet. Datzelfde geldt ook voor de Huawei HG659.

Reputatie 1

Kleine aanvulling op de meest recente voip-guide: je kunt hem ook gebruiken als je een eigen router met VLAN-ondersteuning wil gaan gebruiken en/of een managed switch hebt, maar van T-Mobile nog een van de Drayteks of de Huawei hebt. Download eerst het script en bijbehorende programma's. Daarvoor heb je natuurlijk internet nodig. Schakel daarna, dus net vóór het laatste commando (python voip.py), over naar VLAN 100. Hoe je dat precies moet doen, verschilt per router/switch. In het geval van een router kun je het beste VLAN 100 invullen aan de WAN-kant (waar je normaal gesproken dus VLAN 300 voor internet zou invullen). Als je een switch hebt, sluit deze dan direct op de media converter aan (of op de glasvezel als je er een met SFP-module hebt). Zet op de poort die je daarvoor gebruikt VLAN 100 tagged. Sluit vervolgens de computer waarop je het script uitvoert aan op een andere poort en zet hier VLAN 100 untagged op en PVID 100. In beide gevallen moet je op VLAN 100 een ip-adres in de 10.x.x.x-reeks krijgen. Dat kan tot een uur duren vanwege de lease-tijd. Voer tot slot het laatste commando uit.

Succes!

TMTV

Ik krijg “Geen gegevens gevonden” uit het script. De server 10.12.0.10:7547 is wel bereikbaar, maar er lijkt toch iets mis te gaan. Kan het zijn dat de methode om de SIP-gegevens met het Python script te achterhalen niet meer werkt?

Reputatie 7
Badge +19

@KarelKnutselaar

Het is iemand vandaag/gisteren nog gelukt om de SIP gegevens te achterhalen middels deze guide 😀.

Heb je ook de nieuwste versie van de guide gebruikt?

https://community.t-mobile.nl/vast-bellen-494/guide-voip-sip-inloggegevens-achterhalen-met-de-zyxel-323022/index2.html#post1587259

Reputatie 1

@KarelKnutselaar

Het is iemand vandaag/gisteren nog gelukt om de SIP gegevens te achterhalen middels deze guide 😀


Da’s op zich goed om te weten 😉 Ben nu wel benieuwd wat er dan bij mij mis gaat.

Ik gebruik de nieuwe guide op een OpenWrt router. Ik stel de VLAN voor de WAN in op pvid 100 i.p.v. 300. De router krijgt dan keurig een 10.x.x.x adres, en de configuratieserver op 10.12.0.10 is bereikbaar vanaf mijn PC (op de LAN van de router).

Heb nog een kleine debugpoging gedaan. Dit is de waarde van de variabele ‘d’ waar de gegevens in terecht zouden moeten komen:

In [2]: debugfile('/home/users/rudy/Downloads/voip.py', wdir='/home/users/rudy/Downloads')
> /home/users/rudy/Downloads/voip.py(1)<module>()
----> 1 import requests,os,binascii
2 url = 'http://10.12.0.10:7547'
3 xml1 = '''<soap:Envelope
4 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
5 xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"


ipdb> d.text
u'<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:cwmp="urn:dslforum-org:cwmp-1-0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><cwmp:ID soapenv:mustUnderstand="1" /></soapenv:Header><soapenv:Body><cwmp:SetParameterValues><ParameterList soapenc:arrayType="cwmp:ParameterValueStruct[1]"><ParameterValueStruct><Name>InternetGatewayDevice.DeviceInfo.ProvisioningCode</Name><Value xsi:type="xsd:string">TMNL</Value></ParameterValueStruct></ParameterList><ParameterKey>SetParameterValues</ParameterKey></cwmp:SetParameterValues></soapenv:Body></soapenv:Envelope>'

ipdb>

Ik weet niet hoe het eruit moet zien, maar het lijkt erg leeg.

Reputatie 7
Badge +19

@KarelKnutselaar

Het is iemand vandaag/gisteren nog gelukt om de SIP gegevens te achterhalen middels deze guide 😀.

Heb je ook de nieuwste versie van de guide gebruikt?

https://community.t-mobile.nl/vast-bellen-494/guide-voip-sip-inloggegevens-achterhalen-met-de-zyxel-323022/index2.html#post1587259

@KarelKnutselaar hiermee zou het in principe gewoon moeten werken.

Reputatie 1

@Waqqas 

Hartelijk dank voor je hulp zover! Heb jij misschien een idee wat er mis kan gaan? Ik heb m’n vorige post aangepast met wat extra details. Ik run het script op een Linux machine op de LAN van de OpenWRT router

Reputatie 7
Badge +19

.

Reputatie 6
Badge +2

@KarelKnutselaar Welke router heb je van T-Mobile gekregen? Zou je die eens kunnen aansluiten, op laten starten en dan inloggen om te kijken of de VOIP-gegevens daar wel correct worden geladen en of het bellen dan werkt? Op basis van de output hierboven denk ik dat daar iets misgaat. Dit stuk hoort pas verderop te komen, na de VOIP-gegevens, en zou je dus niet moeten zien. Het script stopt namelijk als de gegevens binnen zijn. Ben je misschien pas net klant? Dan kan het zijn dat er nog geen gegevens voor je zijn gemaakt en dus ook niet naar de router gestuurd kunnen worden.

Ik had gisteren inderdaad nog een tevreden klant en op het moment van schrijven werkt het nog steeds. Ik hoor graag de uitkomst van bovenstaande en dan zoeken we verder!

Reputatie 1

Nog even geprobeerd op een Windows machine met Python 3.10. Ook hier “Geen gegevens gevonden.”

Reputatie 1

@TMTV 

Fijn dat je meekijkt!

Ik heb een Zyxel T-50 modem. Dat staat op dit moment aangesloten achter de OpenWRT router, voor de VoIP support. Ik lus VLAN ID 300 door van de WAN van de OpenWRT router naar een van de LAN poorten. Daarop heb ik de WAN van de Zyxel aangesloten. De VoIP-aansluiting werkt in principe op deze manier, maar ik zou graag direct toegang hebben tot de SIP gegevens. Dan kan de Zyxel er helemaal uit.

Overigens heb ik de procedure ook geprobeerd met het Zyxel modem uitgeschakeld. Dat maakte echter geen verschil.

Reputatie 6
Badge +2

Zou je het eens andersom willen proberen, dus de OpenWRT-router ertussenuit halen en de Zyxel rechtstreeks aansluiten en daarmee je computer verbinden? Ik ben benieuwd wat er gebeurt als je dan het scriptje runt.

Reputatie 1

Dat zal ik doen, maar moet even wachten. Wordt volgende week denk ik. Ik kom bij je terug. Bedankt alvast in ieder geval!

Reputatie 1

Zou je het eens andersom willen proberen, dus de OpenWRT-router ertussenuit halen en de Zyxel rechtstreeks aansluiten en daarmee je computer verbinden? Ik ben benieuwd wat er gebeurt als je dan het scriptje runt.

Als ik de Zyxel gebruik werkt het script!! Ik krijg keurig een gebruikersnaam, die overeenkomt met mijn klantnummer, en een wachtwoord.

Helaas kan ik met deze gegevens niet registreren. Geprobeerd als trunk op een Asterisk server en als extention met MicroSip. bij beide krijg ik een authenticatiefout. Bij MicroSip ziet eruit zoals hieronder.

Heb je nog tips om dit verder te debuggen?

 

 

Reputatie 6
Badge +2

Fijn dat het gelukt is om de gegevens te achterhalen! Probeer bij ‘Domain’ eens voip.t-mobilethuis.nl in te vullen. Dan werkt het bij mij wel.

Reputatie 1

Ok, probleem opgelost. Het script gaf een karakter te weinig van het wachtwoord. Door de ruwe text van de reply gezocht, en alles werkt met het langere wachtwoord! Misschien het script baseren op regular expressions, tussen ‘>’ en ‘<’ karakters bijvoorbeeld? Ontzettend bedankt in ieder geval, naar deze informatie was ik al een tijdje op zoek!

Reputatie 6
Badge +2

Ik ben blij dat ik kon helpen en jij ook bedankt voor het debuggen van mijn scriptje! Ik dacht dat het wachtwoord altijd uit 12 tekens bestond, maar bij jou zijn het er dus 13? Dit is de eerste keer dat ik dit hoor, dus het lijkt erop dat ze dit pas net doen, misschien wel vanwege dit script... Sinds wanneer ben je klant? Ik heb 'm meteen aangepast en het lijkt te werken. Zou je hem nog eens willen downloaden (zelfde link) en runnen? Dan weet ik of alles klopt.

Nogmaals dank voor je alertheid!

Reputatie 1

Even geprobeerd, en nu werkt het script ook met het langere wachtwoord. Nogmaals hartelijk dank voor het script en je hulp!

Reputatie 1

Hoi, 

 

Als eerste, het scriptje werkt perfect op mijn MacBook. thanks. 

Ik heb alleen een vraagje: Ik heb 1 vaste telefoonnummers en zie er maar van 1 de inlog gegevens komen. Ook in de XML die terug komt zie ik deze niet terug komen. 

Iemand een idee hoe ik dit tweede nummer ook kan opvragen? (Kent iemand de structuur van communiceren?)

 

Erik-Jan

Reputatie 1

Ik heb het laatste gedeelte van voip.py aangepast met onderstaande code en krijg nu ook de lijngegevens van de tweede lijn…

 

x = requests.post(url, data=xml1)

y = (x.headers["Set-Cookie"][:-7])

header = {'Cookie': y, 'User-Agent': "Vigor TR-069 CPE", 'Content-Type': "text/xml; charset=utf-8", 'SOAPAction': ""}

z = requests.post(url, headers=header)

a = requests.post(url, data=xml2, headers=header)

b = requests.post(url, data=xml3, headers=header)

c = requests.post(url, data=xml2, headers=header)

d = requests.post(url, data=xml2, headers=header)

f = requests.post(url, data=xml2, headers=header)

g = requests.post(url, data=xml2, headers=header)

e = (d.text)

h = (g.text)

if "voip.t-mobilethuis.nl" in e:

        print ("Lijn 1: Gebruikersnaam: " + e[e.find("DisplayName")+47 : e.find("DisplayName")+59] + " Wachtwoord: " + e[e.find("Password")+44 : e.find("Password")+56])

else:

        print("Geen gegevens gevonden voor lijn 1.")

 

if "voip.t-mobilethuis.nl" in h:

        print ("Lijn 2: Gebruikersnaam: " + h[h.find("DisplayName")+47 : h.find("DisplayName")+59] + " Wachtwoord: " + h[h.find("Password")+44 : h.find("Password")+56])

else:

        print("Geen gegevens gevonden voor lijn 2.")

 

Reputatie 6
Badge +2

Hoi @erikjanRog,

Omdat ik zelf maar 1 telefoonlijn heb, wist ik niet precies hoe de communicatie eruit zou zien als er een tweede lijn is. Fijn dat je dat hebt uitgezocht! Vind je het goed als ik jouw code toevoeg aan het bestaande script? Dan zijn anderen met twee lijnen daar ook mee geholpen.

Bedankt!

Reputatie 1

Hej TMTV, 

Prima hoor, fijn als andere het ook kunnen gebruiken. Zie alleen dat het ww van lijn2 1 teken langer is. Heb de 56 in 57 gezet. 

Zal binnenkost kijken of ik het uitlezen van deXML kan aanpassen dat dit flex wordt. Even wat in Python verdiepen (ben zelf meer van perl en C)

Erik-jan

Reputatie 6
Badge +2

@erikjanRog Top! Ik zag dat je nog een oude versie van het script hebt gebruikt. Een paar dagen geleden was er ook al iemand iemand die een wachtwoord van 13 tekens had. Als dat een poging was van T-Mobile om dit scriptje buitenspel te zetten, is dat hopeloos mislukt 😉. Beide wijzigingen heb ik samengevoegd waardoor het nu ook voor mensen met een langer wachtwoord (ongeacht het aantal tekens) en/of een tweede lijn werkt. Zou je dat kunnen testen door het script opnieuw te downloaden (zelfde link)? Natuurlijk werkt het ook nog steeds voor mensen met een wachtwoord van 12 tekens en/of maar 1 telefoonlijn.

Reputatie 1

Ik heb m uitgeprobeerd en werkt perfect hoor @TMTV.

Zowel beide lijnen als het flex password. Toppie!

 

Dank je wel. 

Ik hoop ook dat er veel mensen plezier aan hebben.

 

Nieuwe klant bij T-Mobile; kon mijn gegevens snel & eenvoudig uitlezen met dit script. Dank!

 

Ik kan daarmee vervolgens succesvol inloggen (en bellen of gebeld worden) in Bria Mobile: VoIP Softphone, op of mijn iPhone of mijn iPad, maar niet (inloggen op) beide tegelijk… Dat wilde ik eigenlijk wel.

 

Het bedrijf achter deze VOIP software zegt dat zij dit niet beperken, maar waarschijnlijk de VOIP provider.

 

  1. Kun je hiermee inderdaad maar 1 extra “toestel” (naast het T-Mobile modem) registreren?
  2. Zijn er nog andere goede, betrouwbare, VOIP Apps voor iOS?

Reageer