Säkerhetsbrister hos Net at Once Sweden, på Inteno FG500 och hur åtgärda dem genom att återställa administratörs-lösenordet

Netatonce har stängt ned min internet-anslutning pga. att jag skrivit detta, du kan läsa mer på http://nao.vindevag.com/. De har efter fyra år fortfarande inte åtgärdat säkerhetsbristerna.

Inledning

När Netatonce skickar ut inställningarna för ip-telefoni och ip-tv ändrar de administratörslösenordet så att den enkilde kunden inte har full tillgång till sin egen utrustning. Efter det går det enbart att logga in med user/user, vad som är otrevligt med detta är att det inte längre går att byta lösenord för användare user. Detta betyder att vem som helst som har tillgång till det trådlösa nätverket kan få ut den enskilde abonnentens krypterings-nyckel, med tillgång till den går det att dekryptera den enskildes konfigurationsfil som kan laddas ner från Netatonce's hemsida. De uppgifter som där är känsliga är inloggningsuppgifterna för ip-telefoni, med tillgång till dem kan en utomstående kapa telefonin och ringa på personens bekostnad. Det är rätt vanligt att man låter ens gäster använda sitt trådlösa nät, men med Netatonce nuvarande säkerhetspolicy innebär det att man ger vederbörande full tillgång till sin nätverks-utrustning och inloggningsuppgifter för ip-telefoni.

Netatonce's säkerhetstänkande går i dagsläget ut på att hindra den enskilde kunden att förfoga över sin egen utrustning samt att minimera sin egen administration. Det är katastrofalt illa att de väljer att sätta samma default lösenord för samtliga kunder (jag gissar av detta att de även satt samma admin-lösenord för samtliga kunder). Funktionaliteten på Inteno FG500 blir dessutom starkt begränsad utan tillgång till administratörslösenordet.

För NAO kunder är det ett gigantiskt säkerhetshål att den enskilde kunden inte kan ändra sitt personliga lösenord och därmed har samtliga login user / user, detta öppnar för DNS-kapning, något som har varnats för i över tio år.

Om ni har ip-telefoni hos Netatonce, ändra samtliga lösenord eller begär att få en kostnadsspärr på telefonin.

Jag såg denna artikel som beskriver problemen med att routrar från Inteno har alla samma lösenord, och detta går inte att ändra. Ownit är fiberleverantör och skickar ut Inteno FG500 till sina kunder, det står inte i artikeln.

Ownit Deploys Wifi Routers With Security Hole Across Sweden

Dagens Nyheter skrev hösten 2014 att Bredbandsbolaget hade samma säkerhetshål avseende DNS-kapning, då alla routrar hade samma lösenord. De åtgärdade problemet, vilket NetatOnce fortfarande inte gjort. I fallet med Bredbandsbolaget var dock inte kunden förhindrad mot att själv byta lösenord, en medveten kund kunde själv göra det, NAO har ju som sagt aktivt hindrat kunder från det, så alla har user/user.

http://www.dn.se/ekonomi/vanliga-modem-latta-att-kapa/
http://www.dn.se/nyheter/sverige/100-000-kan-annu-ha-osakra-modem/

F-Secure har nyligen publicerat information om allvarliga säkerhetsbrister i Inteno's produkter. Inteno använder i princip samma mjukvara i samtliga sina produkter, så säkerhetsproblemen bör finnas i samtliga av deras produkter. Det är intressant att notera att Inteno tycker att detta är operatörernas problem att åtgärda. Med tanke på att Netatonce inte har haft kompetens att åtgärda ett så allvarligt fel som DNS-kapning får nog användarna vara leva med dessa säkerhetsproblem och hoppas att just de inte blir drabbade av intrång.
F-Secure's press release:

https://sintonen.fi/advisories/inteno-cwmp-certificate-validation-vulnerability.txt

Tidningar som skriver om detta:
http://www.infosecurity-magazine.com/news/inteno-router-flaw-remote-hackers/
http://techworld.idg.se/2.2524/1.664727/allvarligt-fel-router-inteno
http://www.expressen.se/dinapengar/tech-1/f-secure-varnar-for-internetrouters/
https://security-online.net/do-not-use-inteno-router/

F-Secure skriver i sin press-release hur slutanvändaren kan åtgärda detta. Det kräver att logga in med administratörsrättigheter, något NetAtOnce försöker hindra användarna från.

Fiberstandard

Med anledning av ovanstående har jag personligen valt att köpa egen utrustning som jag har full kontroll över. Det finns inget som kräver att man anväder Inteno'n, det enda som behövs är en fiberkonverter för 1000Base-BX-U 1310TX/1550RX och en switch eller router som hanterar vlan, IPTV ligger på vlan 2705. Om man inte använder IPTV fungerar vilken router som helst, mao. så är vanlig Internet otaggad.
Vad jag läst mig till är 1000Base-BX-U 10km 1310TX/1550RX standard på alla FTTH och FTTB installationer i Sverige. Då endast en fiber används betyder det att i andra ändan (noden) sitter det 1000Base-BX-D 10km 1550TX/1310RX.
Det normala i alla FTTH/FTTB är att vanligt Internet är otaggat, men iptv och telefoni kan ligga på taggade vlan. Hos NAO ligger telefoni på vanliga Internet, men hos Telia ligger det på ett eget vlan. Det är helt operatörsbundet på vilket vlan olika tjänster ligger.

Följande SFP kan köpas från http://www.direktronik.se/ (djuplänkar funkar inte med deras site).

Art.nr 33-4136 alt. 33-2385 WDM Singlemode, 1.25Gbps, 1310TX/1550RX (1000Base-BX-U) 

Den har dock LC-anslutning, men fiber-anslutning i hem har vandligtvis har SC. Det behövs då en LC-SC fiperpatch och en SC-SC skarv. De har SFP med SC-anslutning, men de är så pass mycket dyrare att det lönar sig att köpa en LC-SC patch-kabel. Köper man till ett vägg-uttag för montering av inkommande SC-anslutning blir det dessutom snyggare.

Art.nr. 17-0406 1m simplex, Yd 3.0mm, gul
Art.nr. 17-2660 SC/SC, UPC, singlemode (blå), simplex
Art.nr. 04-4345 Dubbeluttag för infälld eldosa och utanpåliggande montage

The Fiber Store har sfp'er för ca $10 och billigt kablage, en patch för $3 och 50m för $13. De skeppar till hela världen från Kina eller Washington (state, dvs. västkusten), gissningsvis är det rätt lång leveranstid.
Jag har verifierat följande artiklar.

Art.nr. 29892 Generic Compatible 1000BASE-BX SFP 1310nm-TX/1550nm-RX 10km DOM Transceiver
Art.nr. 42743 1M LC UPC to SC UPC Simplex 2.0mm OFNP SMF Fiber Patch Cable
Art.nr. 48488 SC/UPC to SC/UPC Simplex Single-mode Plastic Fiber Optic Adapter , 0.2dB IL

En billig mediaomvandlare med SFP-port (fiberkonverter) är TP-Link MC220L. Observera att den måste kopplas till en Gigabit switch/router, fiber är inte bakåtkompatibel avseende hastighet och en fiberkonverter/mediaomvandlare är inte en switch, den omvandlar bara fotoner till elektroner.
Sedan finns ett flertal switchar hos Dustin med SFP-portar och VLAN-stöd, t.ex. Netgear ProSafe GS110TP eller Dlink DGS-1210-28. Med en switch med vlan-stöd kan du konfigurera fiberporten, samt en tp-port till din router på ett separat vlan och ha resten av portarna på ett annat vlan för det interna nätet; det är en mer ekonomisk och praktisk lösning. En switch kan dessutom hantera olika ethernet-hastigheter, så det går då att koppla in en 100mbit router.

Nätdata för fibernätet

Netatonce offert till Fiberföreningar 2014

Så här såg NAO's offert ut till fiberföreningar 2014.

DNS kapning

Nedan är kod skriven i bash med curl som gör en DNS hijacking genom att ofarligt byta till Google's publika DNS-tjänst, 8.8.8.8 och 8.8.4.4, vilket går att göra med login user / user. Om admin-lösenord används, stängs även ACL av så att det går att utifrån ansluta till routern.

En angripare kan förvissa sig om att det rör sig om Inteno-utrustning genom att kolla om routerns mac-adress börjar på 44:D4:37 eller 00:22:07, vilket är tilldelat Inteno.
Vederbörande kan förvissa sig om att det rör en Netatonce-kund genom att kolla om ip-numret tillhör Netatonce.
För alla kunder ger ett gethostbyaddr() ett domännamn i stil med user89.85-195-10.netatonce.net, eller slå upp AS35706 för att se vilka ip-nr Netatonce har blivit tilldelade.

Koden är onödigt pratsam av pedagogiska skäl, det behövs bara tre http-anrop för att göra detta. Jag valde att skriva denna proof-of-koncept i bash, då det är rätt orimligt att göra en remote exploit i bash. Däremot går det lätt att verifiera att koden fungerar.

Jag har i fyra års tid skrivit om de sårbarheter som finns hos Södra Kinds Fiber och hos Netatonce Sweden AB, min avsikt är att tidigare nämda åtgärdar problemen och skyddar sina kunder, inte att informationen används i en phishing-attack mot Netatonce 50.000 kunder.


1. Få ut krypteringsnyckeln

Första steget är att få ut din unika krypteringsnyckel. Detta gör du genom att logga in på Inteno'n med user/user.

http://192.168.1.1/

Gå sedan in på

http://192.168.1.1/xmlprov.html

Kopiera värdena som finns under 'Use URL' och '3DES Key'. Det första värdet är sökvägen för din konfigurationsfil och ser ut i stil med:

voipprov.netatonce.net,/123456789ABC.enc

Nummret är din mac-adress. Om det står:

voipprov.netatonce.net,/$MAC$.enc

Har din Inteno inte hämtat hem den senaste konfigurationen.

3DES-nyckeln är 16 alfanumeriska tecken.

Detta fungerar i dagsläget med nuvarande programvara, om det i framtiden slutar fungera blir man tvungen att göra en fabriksåterställning av Inteno'n. Detta görs genom att hålla knappen RESET intryckt i 10s. Inteno'n återgår då till grundinställningarna och det går att logga in med admin/admin. Det kommer inom nån dag att ladda ner inställningarna från Netatonce, har man otur gör den det så snabbt att man inte hinner logga in innan lösenordet ändras, det kan då krävas flera fabriksåterställningar eller att man kopplar ur fiberkabeln.

1.1 Update 2016-04-30

Med nuvarande firmware fungerar det inte längre att gå in på http://192.168.1.1/xmlprov.html med login user/user.
Dessutom har Netatonce hårdkodat i firmware att en hårdvarureset ger admin-lösenord uKwu4ptq9vWbZtVp

Net at Once kollar logfilen för deras web-server, försök INTE ladda ner filen utan att ändra user-agent. Samma sak gäller att ladda ner någon annans config-fil, dvs. en fil som inte hör till aktuellt ip-nummer/anslutning. Det går att ladda ner någon annans fil, men de ser det och du riskerar få problem med dem.

Om din Inteno är bryggad (ja det går trots att NAO säger att det inte går) har den ett annat ip-nr än den dator du använder, samma sak gäller om du har en renodlad tjänstedelare/fiberswitch t.ex. Inteno XG6848; försök då inte ladda ner konfigurationsfilen från din anslutning. Det går som sagt, men de ser vad du gör och det är uppenbart att det inte är Inteno-utrustningen som laddar ner.

Jag har inte varit kund hos NAO på över två år, jag skrev denna guide i februari 2014 efter de stängt ner min anslutning. Uppgifterna här baseras på att nuvarande kunder hos NAO har skickat mig filer samt verifierat att mitt tillvägagångsätt fungerar. Med tanke på NAO's förhållande till sina kunder vill dessa förbli anonyma, något jag givetvis respekterar.

Jag skriver här om hur Netatonce stängde ner min anslutning för två år sedan då jag skrivit på Sweclockers och Flashback om hur Inteno FG500 fungerade och vilka säkerhetsbrister den har. Fallet ligger nu hos Borås Tingsrätt.

http://nao.vindevag.com/

Update 2016-05-16

Netatonce har de senaste månaderna ändrat admin-lösenord på din router.
Jag har nu fått bekräftat från flera av Netatonce kunder, som alla ligger på olika nät, att administratörslösenordet är:

U2OFFrch4C

Det betyder att Netatonce fortfarande kör samma administratörslösenord för samtliga kunder och att samtliga kunder har login user/user (som fortfarande inte går att andra), vilket gör att hela deras kundbas är öppen för dns-kapning.

Tidigare har NAO haft följande admin-lösenord:

rMrMmFrMrM41nT00

uKwu4ptq9vWbZtVp Detta är nu också default-lösenord i firmware (20150130), som gäller vid hårdvaru-reset.


2. Ladda ner konfigurationsfilen

Konfigurationsfilen kan laddas ner från Netatonce från deras server voipprov.netatonce.net. Sökvägen är //$MAC-ADRESS-MED_VERSALER.enc, tex:

http://voipprov.netatonce.net//123456789ABC.enc

Det går att ladda ner konfigurationsfilen för vilken kund som helst, men bara inifrån Netatonce's nät. I dagsläget bryr sig deras server inte om vilken http-user-agent som används, detta kan ändras i framtiden. Jag har tittat på programvaran i Inteno FG500 och den använder följande:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)

Det kan mao i framtiden krävs att man laddar ner konfigurationsfilen med ovan nämnda user-agent. Detta kan tex göras med wget enligt:

wget http://voipprov.netatonce.net//123456789ABC.enc -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"

Eller genom att ändra user-agent i webläsaren.

2.1. Ladda ner firmware

En kort guide för att komma igång med att undersöka firmware, det är dock inte nödvändigt för att gå vidare, utan för den som vill gräva djupare.

Undersöka firmware på Intenoprodukter

3. Dekryptera konfigurationsfilen

Använd följande online-formulär för att dekryptera filen.

Sidan är publicerad under Open Source, du kan ladda ner källkoden för dekryptering och köra den på din egen server. Längst ner på sidan finns en länk för att ladda ner källkod. Du är fri att sprida källkoden, så länge du lever upp till kraven för Creative Commons Attribution 4.0 International license.
Sprid gärna källkoden, jag har ett rättsfall med Net at Once Sweden AB, och de vill inta ha detta offentligt.

4. Få fram administratörslösenord

Öppna den dekrypterade konfigurationsfilen i en text-editor, sök efter AdminPassword. Lösenordet står mellan taggarna kodat i base64, kopiera det och och gå in på sidan

http://www.base64decode.org/

klistra in det krypterade lösenordet och tryck DECODE. Lösenordet kommer nu fram dekrypterat, sista tecknet som är en romb med frågetecken ingår inte i lösenordet.

4. Få fram lösenord för ip-telefoni

En av fördelarna med ip-telefoni är att man kan använda den varsomhelst där det finns Internetanslutning, tex. i mobiltelefonen eller jobbdatorn. Personligen tycker jag det är väldigt bekvämt att kunna använda mitt 031-nummer när jag ringer till folk i Sverige (jag bor i San Francisco och att ringa från mobilen kostar runt 20kr per minut).

Öppna den dekrypterade konfigurationsfilen och sök efter AuthPassword, det är lösenordet, raden ovanför skall innehålla AuthUserName, det är ditt användarnamn, vilket bör vara samma som ditt telefonnummer. Om du har två telefonabonnemang kan du få två träffar. Lösenordet kan vara kodat i base64 och avkodas i så fall på samma sätt som administratörslösenordet, det är något jag inte vet.

5. Logga in och byt lösenord

Logga in på Inteno'n med admin och administratörslösenordet.

http://192.168.1.1/

Gå till Management / Access Control / Passwords och ändra lösenorden för user/user, support/support och admin.

Om du vill förhindra att Netatonce återigen ändrar ditt lösenord, gå till Management / Settings / Provisioning och bocka ur rutan Enable Provisioning, tryck Save.



(cc) Daniel Vindevåg 2014-2017,
daniel-at-vindevag-dot-com
Creative CommonsLicense
This work is licensed under a Creative Commons Attribut\ ion 4.0 International License.