Exploit in router-software DD-WRT gevonden

De alternatieve, op Linux gebaseerde DD-WRT-firmware, die voor draadloze routers van onder andere Linksys beschikbaar is, blijkt een ernstig lek te bevatten. Een aanvaller kan de kwetsbaarheid misbruiken om root-rechten te verkrijgen.

De DD-WRT-firmware was tot voor kort gebaseerd op de firmware die Linksys met zijn routers meeleverde. Aangezien deze firmware op Linux gebaseerd was, moest Linksys de broncode ervan vrijgeven, die vervolgens door een levendige community werd aangepast tot DD-WRT. Met de goeddeels herschreven firmwareversie v23 is echter grotendeels van de Linksys-erfenis afgestapt. In v24 sp1 van de firmware blijkt echter een kwetsbaarheid schuil te gaan die eenvoudig misbruikt kan worden.

Het belangrijkste probleem met de nieuwste firmwareversie is dat de httpd geen metakarakters onderscheidt, waardoor commando's aan de daemon doorgegeven kunnen worden, en dat die commando's ook zonder fatsoenlijke gebruikersauthenticatie worden uitgevoerd. Die worden verergerd door het feit dat de httpd als root wordt gedraaid: middels een simpel commando in de webinterface kan zelfs een niet-ingelogde gebruiker zo root-rechten krijgen. Overigens dient de router wel naar externe commando's te luisteren. Standaard is dat niet het geval, maar dat kan met een tweede hack alsnog worden afgedwongen.

Door Willem de Moor

Redacteur

21-07-2009 • 19:31

57

Submitter: Xblast

Reacties (57)

57
51
33
4
0
0
Wijzig sortering
Als je de nieuwste build wil (12533), die kan je hier ophalen:

http://www.dd-wrt.com/dd-...preSP2%2F07-21-09-r12533/

SP2 is het nog steeds niet, ondanks dat hij dat al wel roept ;)

Hier is de betreffende bug uitgehaald.

SVN kan je volgen op: http://svn.dd-wrt.com:8000/dd-wrt/timeline
Ondertussen is er een melding op de 1e pagina van de dd-wrt site. Met een firewall rule die het zou afblokken.

http://www.dd-wrt.com/dd-wrtv3/index.php
DD-WRT httpd vulnerability (milw0rm.com report)

As reported at www.miw0rm.com there is a vulnerability in the http-server for the DD-WRT management GUI that can be used for execution of an exploit to gain control over the router.

Note: The exploit can only be used from outside your network over the internet if you have enabled remote Web GUI management in the Administration tab. As immediate action please disable the remote Web GUI management.

We have fixed the issue and generated new builds of the latest DD-WRT version. You can temporarily download the these files from here until we did update the router database.

The exploit also could be stopped, using a firewall rule.

Go to your router, "Administration", "Commands" and enter the follwing text:

iptables -I INPUT -p tcp -m tcp -m webstr --url cgi-bin -j REJECT --reject-with tcp-reset

and press "Save Firewall", then reboot your router.

This rule blocks any try to access sth that has "cgi-bin" in the url.

You can proove, that the rule works by entering: http://192.168.1.1/cgi-bin/;reboot in your browser. That should give a "Connection was reset" (Firefox).

Important Note: this does not work, if https managment is turned on.

You need to turn of https managment. If you don't want to do that, PLEASE UPDATE.
je zal nog altijd eerst via wpa2 verbinding moeten maken alvorens men (van buitenaf) verbinding kan maken met de webinterface..
Orion84 Admin General Chat / Wonen & Mobiliteit @densoN22 juli 2009 10:22
Hoe dat dan? Van buitenaf == via het internet, dus gewoon http://iemands.publieke.ip.adres/kwaadaardige_code

En met een worm valt dat prachtig te automatiseren.

Alleen werkt dat dus alleen als de webinterface van de router ook openstaat naar buiten toe, wat standaard niet zo is, maar mogelijk door een boel mensen wel wordt gebruikt.

Als je de webinterface die luistert op het interne netwerk wilt gebruiken als ingang, dan moet je inderdaad eerst een netwerkverbinding hebben. Wat in het geval van WPA2 niet al te eenvoudig is inderdaad. Maar dan is het natuurlijk de vraag hoeveel mensen WPA2 draaien. Als je wat oudere clients in je netwerk hebt is WPA2 namelijk geen optie.

Maar in dat geval is het waarschijnlijk sowieso makkelijker om, zoals al meermalen is uitgelegd, een gebruiker die met het interne netwerk verbonden is zo ver te krijgen om op een linkje met daarin de kwaadaardige code te klikken.
Als iemand een website bezoekt waarin een (hidden) link naar de router staat dan heb je geen wpa of wpa2 verbinding nodig/ Ook met Javascript kun je een boel doen.
Anoniem: 294537 21 juli 2009 19:43
Best wel grappig dat net wat veel Linux gebruikers net een voordeel vinden hier als een nadeel uitkomt.

"Het is open-source dus het is veiliger want hierdoor worden fouten rapper opgespoord en iedereen kan het aanpassen." Idd, maar hier zie je dus dat als het open-source is en er een hoop mensen aan werken het niet altijd veiliger is, en door het open-source karakter kunnen er net rapper fouten misbruikt worden...

Best wel een slechte ontwikkeling... kan je opeens niet meer op internet... wie zou nu verwachten dat de oorzaak bij een router zou kunnen liggen..
cyf3r, het is me dan ook direct duidelijk dat jij nog nooit met linux hebt gewerkt. Je hebt echt geen idee wat je schrijft. ;)

Sowieso wordt dit nog niet eens op grote schaal misbruikt, en de mensen welke graag DD-WRT gebruiken die weten wss wel dat ze moeten patchen.

offtopic:
Ik gebruik zelf liever OpenWRT voor de hacks/mods. En Tomato op mijn routers.

[Reactie gewijzigd door Anoniem: 37691 op 22 juli 2024 21:00]

cyf3r probeert duidelijk te maken dat in dit geval deze exploit is ontdekt omdat de source code publiekelijk beschikbaar is. Een hoop open source aanhangers claimen dat dit juist goed is, omdat op deze manier ook de good guys deze exploits kunnen ontdekken en fixen. Maar ook de bad guys kunnen dit, en omdat ze de source code hebben gaat dit vele malen sneller. Dat is best wel een risico.

Vergeet niet dat de bad guy niemand zal inlichten van zijn ontdekking, of uberhaupt een fix er voor te maken.. Leuk dat mensen die deze software gebruiken weten hoe ze kunnen updaten, maar wat heb je daaraan als je niet eens weet dat er wat aan de hand is? Sterker nog, hou jij elke bugtraq in de gaten om te kijken over exlpoits zijn ontdekt of gefixed?
Tegen die tijd is het misschien al te laat.

Natuurlijk zitten er in closed source applicaties ook bugs en exploits, maar die zijn wel een stuk moeilijker te vinden. Dus feitelijk maakt het allemaal niets uit.
Dat risico is echter niet veel anders als bij closed source. Het punt zit hem namelijk in het feit dat software altijd wel bugs bevat. Iedereen die er ook maar iets van af weet (zelfs gebruikers!) weten dat ook. Dat hele closed of open source gebeuren maakt daarom ook bar weinig uit, men weet dat er bugs zijn en gaan er dan ook actief naar op zoek. Kijk maar eens naar de trackrecords van Windows en Internet Explorer. Op OS en browser gebied zijn dit volgens mij de 2 systemen met zo'n beetje de meeste security bugs t.o.v. de concurrentie en beiden zijn closed source.

Bugs vinden in source code gaat niet zo heel erg makkelijk. Het is niet een kwestie van ff de source lezen en daarna direct aanwijzen waar de bug zit. Als dat zo was dan zouden er niet bugs worden ontdekt die soms wel jaren ongemerkt voorbij zijn gegaan. Op UNIX gebied (daar bedoel ik overigens niet alleen UNIX mee, ook de UNIX gerelateerde systemen) zijn er hier toch een aantal van geweest. Bughunten is iets wat je doet door de dingen aan tests te onderwerpen en te kijken wat eruit komt. Die source code is dan misschien iets wat je wat verder kan helpen maar het maakt het niet meteen een peuleschilletje van zoals het een beetje uit jouw reactie blijkt. Bugs opsnorren is nog best een lastige taak. Er zijn niet voor niets diverse tests die men op een stuk software afvuurt en wat inmiddels een heel eigen beroep is geworden (kijk maar eens naar de eisen om als tester aan het werk te mogen gaan of welke cursussen je bij de belastingdienst nog moet volgen om daar als junior tester aan de slag te mogen gaan).

Overigens kan een bad guy ook prima anderen in zijn scene inlichten over die bug. Soms kan een collectieve aanval leuker zijn dan eentje in je uppie. Natuurlijk ligt het e.e.a. ook aan de doelen je die je voor ogen hebt als bad guy zijnde (1 usertje jennen of botnets maken of iets anders).
De doelgroep die een alternatieve firmware op zijn/haar router zet, weet in de regel iets meer van hun netwerkje af dan een "normale gebruiker" en zal na een tijdje troubleshooten de router wel als schuldige aan kunnen wijzen.

Deze exploit bewijst inderdaad wel dat open source niet gegarandeerd veiliger is dan closed source sofware.

[Reactie gewijzigd door Anoniem: 187361 op 22 juli 2024 21:00]

Er wordt op veiligheidsgebied in de zin van meer/minder veilig weinig tot niets bewezen. In dit geval wordt er juist aangetoond dat bij het ontdekken van zo'n exploit er in no time een fix is. Sja, closed source kan dit ook wel. Het punt is alleen dat de kans hierop bij open source wat groter is gezien het open karakter. Datzelfde open karakter zie je ook weer terug wanneer men zo'n exploit ontdekt: de communicatie en alles er omheen is ook heel erg open. Bij closed source is dit laatste vaker ook een stuk geslotener omdat het dan ook eerder gaat om commerciële partijen die commerciële belangen hebben. In de open source wereld gelden die commerciële belangen niet zo (ze zijn er wel maar in de minderheid en veelal op andere gebieden, bijv. de support om de software heen). Commerciële partijen hebben meer belang bij een geslotener discussie wegens de commerciële belangen: simpelweg vertaald houdt dit in dat ze bang zijn dat klanten bij een te open discussie massaal afhaken en de verkopen inzakken. Als je voortbestaan daar van afhangt is dat een erg grote angst die dan de overhand neemt.

Uiteraard zijn er aan beide kanten (open/closed source, commercieel/niet-commercieel) natuurlijk uitzonderingsgevallen.

Overigens kan men de fix verkrijgen door de svn versie te pakken indien men hier erg veel belang aan hecht. Als er andere belangen spelen kan men er voor kiezen om op de stable release met het risico van een uitbuiting van de exploit te blijven zitten. Die keuze is nu aan de beheerder van het apparaat wat dd-wrt draait (zoals dat eigenlijk altijd het geval is) :)
Wat echter wel beschamend is, is het feit dat het httpd proces als root wordt gedraaid. Dat druist tegen iedere security guide van wie dan ook in, die raden deze manier van werken juist af. Dat is echter geen open source probleem maar een design flaw van dd-wrt zelf.

[Reactie gewijzigd door ppl op 22 juli 2024 21:00]

daarom ook denk ik dat dit een ddwrt probleem is...

Open WRT draait iig onder een eigen HTTPd user... en de lua scripts draaien mogelijk wel onder de rootuser... - maar pas nadat je zelf bent ingelogt, en alleen zolang je sessie niet verloopt..
In dit geval wordt er juist aangetoond dat bij het ontdekken van zo'n exploit er in no time een fix is
En hoeveel nieuwe problemen introduceert die fix?
Welke tests zijn er allemaal uitgevoerd?

Dat is het punt waar altijd aan voorbij gelopen word.

Microsoft maakt ook heel snel fixes. (heb bij hun ook binnen een dag een fix gehad voor een probleem) maar die maken ze dan nog niet publiek beschikbaar omdat het eerst verrekte goed getest moet worden. (vooral in zoiets groots als een OS)

Eerst wordt het dus intern getest.
Dan krijg de klant waarvoor de fix gemaakt is 'm.
Dan gaat het door een nog veel groter testtraject.
Klanten met een duur support contract 'm krijgen 'm dan als ze exact hetzelfde probleem hebben, en ze het echt hard nodig hebben. Uiteraard in zeer nauwe samenwerking met MS voor het geval de fix problemen veroorzaakt.
Als dan alle testtrajecten doorlopen zijn, dan wordt de fix pas publiek beschikbaar gesteld.

Vanzelfsprekend kan je dat traject niet in 1 dag doorlopen.
Dat is allemaal geen rocket science en behoorlijk logisch!
en dit zie je dan ook direct terug in de stabiliteit van Microsoft systemen..... :P

Ik zeg, doe mij maar geen test-cyclus... mijn Debian Sid/Unstable werkt beduidend stabieler dan alle Windows versies die ik tot nog toe gebruikt heb....
Orion84 Admin General Chat / Wonen & Mobiliteit @Anoniem: 29453721 juli 2009 20:08
Alsof dit de eerste keer is dat huis-tuin-en-keuken-routers het doelwit zijn van aanvallen? Zie bijvoorbeeld ook: nieuws: Botnetworm infecteert modems en routers
En dat was echt niet alleen gericht op alternatieve firmware die door een of andere community ontwikkeld is, maar ook de af-fabriek firmware. Weliswaar ook Linux en het open source karakter maakt het vinden van zwakheden misschien wat makkelijker, maar ook met een beperkt ontwikkelteam van de fabrikant zelf ben je niet zeker van je zaak.

En wat betreft je laatste opmerking: de kans dat de aanvaller jouw verbinding om zeep helpt is denk ik niet bijster groot, dat is namelijk wel zo'n beetje het meest opvallende (en dus stomme) wat hij kan doen. De kans dat jij namelijk de router reboot (en daarmee al dan niet tijdelijk het probleem oplost) is dan toch best wel groot. Want zeg nou zelf, als al je machines niet meer online kunnen is je router toch de eerste plek waar je gaat kijken? De mensen die DD-WRT draaien zijn over het algemeen waarschijnlijk ook niet de minst ervaren gebruikers.

Hoe dan ook, wel een ontzettend kwalijke en slordige fout. Op zo'n manier untrusted input klakkeloos uit laten voeren door een proces dat onder root draait is niet iets waar je als programmeur trots op kan zijn :X :X
Ach, smaken verschillen.

Zelf heb ik een voorkeur voor Linux-routers vanwege de ip-filters. Ook het open source vind ik een voordeel, omdat de firmware aan te passen is. Voor mijn smaak heeft een router waarvoor DD-WRT geschreven is te weinig geheugen om lekker te kunnen werken. Meer geheugen betekent ook meer ruimte voor een goede webserver of gewoon ssh en een fatsoenlijke security structuur.

Een router als DD-WRT zou ik overigens van buitenaf dichtzetten. Volgens mij is dat ook standaard. En dat is algemeen toepasbaar voor routers. Daarmee is dit lek (en de eerdere root-inlog-exploit) slechts via een omweg bruikbaar.

Een admin of hardwareleverancier die dat niet weet levert mij geen router.

Om die reden is het verbazend dat tegenwoordig ADSL-modems soms wel van buitenaf geconfigureerd kunnen worden. "Service" heet dat geloof ik...
Uhm, in een reactie van Tomsworld staat dat dit probleem al is gefixed in svn, het probleem is dus zeker snel opgelost, en software zonder bugs en beveiligingslekken bestaat niet, dit probleem is nu meteen gefixed toen het naar buiten is gekomen, dus ja, zeker een voordeel van open source. Als dit in software van bijv. MS had gezeten, werd deze exploit geheim gehouden en zou er misschien na een paar weken een security update komen, als ze de exploit al serieus genoeg nemen.

Even terug naar het artikel van gisteren over de exploit in de linux kernel. Linus Torvalds zegt, onzin, niet mijn probleem, maar toch zijn er anderen die het fixen, als je binnen een groot bedrijf werkt, en je manager zegt, onzin, niet mijn probleem, word de bug nooit opgelost (of heeft een veel lagere prioriteit waardoor het oplossen langer duurt)
De grootste vraag is nu wanneer ze een globale new release doen. Want zelfs mag dd-wrt meer iets voor de tweakers zijn. De meesten nemen een stable versie die zijn altijd ok.

De enige reden waarom ik een svn versie draai is omdat ze volop bezig zijn mijn router wrt610n te gaan ondersteunen en er nog veel stabiliteitsproblemen zijn.

Misschien releasen ze een SP2 als ze het ernstig genoeg vinden.
Anoniem: 37691 @RobertMe21 juli 2009 20:30
Als dit in software van bijv. MS had gezeten, werd deze exploit geheim gehouden en zou er misschien na een paar weken een security update komen, als ze de exploit al serieus genoeg nemen.
En als Microsoft het niet serieus genoeg neemt (of denken dat andere het niet gaan misbruiken) dan kunnen ze goed maanden niet patchen. Terwijl dit lek wel bekend is gemaakt aan Microsoft door de vinder van het lek. Microsoft had een paar jaar geleden een "gemiddelde patchsnelheid" van 134.5 dagen, hoe dat de dag van vandaag is durf ik niet te zeggen.
Uhm ?

Routing and Remote Access? ISA Server?

Staat ook vaak genoeg gewoon open met een publiek IP? Zou gewoon genoeg moeten zijn maar als er een lek inzit..
Waarom zou het niet bij een router kunnen liggen? Daar is goede troubleshooting de uitkomst, kom je er snel achter dat het wel je router moet zijn.
Het voordeel is dat het nu wel snel kan gefixed worden (nog beter, er is al een fix).

Was het van MS dan zouden ze het ontkennen omdat er maar één youtube fimpje van bestaat en bij Apple zouden ze beweren dat het een feature is.

Persoonlijk gebruik ik linux omdat het verdomd stabiel is ;-)
Best wel een slechte ontwikkeling... kan je opeens niet meer op internet... wie zou nu verwachten dat de oorzaak bij een router zou kunnen liggen..

Zou misschien wel eerste ding zijn waar ik naar kijk moest ik plots geen internet meer hebben.
Anoniem: 149075 21 juli 2009 19:37
Vraag is of dit dan ook van toepassing is op Tomato bijvoorbeeld !
Met de goeddeels herschreven firmwareversie v23 is echter grotendeels van de Linksys-erfenis afgestapt. In v24 sp1 van de firmware blijkt echter een kwetsbaarheid schuil te gaan die eenvoudig misbruikt kan worden.
Lijkt me dus niet.
Tomato is een andere firmware voor dit soort routers, gebaseerd op HyperWRT. Het heeft dus eigenlijk weinig met dit geval te maken en je kan dan ook weinig zeggen hierover. Maar waarschijnlijk is deze kwetsbaarheid niet in Tomato aanwezig.
Dus dit betekent dat de router vanuit het internet gehackt kan worden, of alleen vanaf binnen een netwerk?
Als ik het artikel lees, zou ik inderdaad zeggen dat deze vanaf het internet gehackt kan worden.
Orion84 Admin General Chat / Wonen & Mobiliteit @Devil77721 juli 2009 20:25
Dat ligt er aan of de externe beheer interface open staat of niet. Als die open staat kan het vanaf buiten, als die niet open staat kan het alleen vanaf binnen. Maar het is natuurlijk niet bijster ingewikkeld om een onwetende gebruiker op een slinkse manier op een linkje te laten klikken wat de aanval van binnenuit uitvoert (want meer dan het juiste linkje openen is het in feite niet).

Zie ook het verhaal over Cross Site Request Forgery waarnaar verwezen word in het artikel en de post op het dd-wrt forum :)
Misschien overbodige opmerking, maar:
Dit kan alleen als je WebInterface aan de buitenkant openstaat, of de hacker aan de "binnenkant" van je netwerk zit.

Om deze hack uit te voeren (en ook de andere hack die gerefereerd wordt) moet je de HTTP port kunnen benaderen. Bij installaties waar DD-WRT als router wordt gebruikt staat die gewoonlijk dicht aan de buitenkant.

Dan zul je dus als Hacker eerst WPA(2) moeten hacken voor je uberhaupt kunt proberen de webinterface te kraken.

[Reactie gewijzigd door Bjornski op 22 juli 2024 21:00]

Orion84 Admin General Chat / Wonen & Mobiliteit @Bjornski21 juli 2009 20:29
Of dus zoals al wordt opgemerkt een gebruiker die op het interne netwerk zit op de een of andere manier zo ver krijgen dat hij de URL bezoekt met daarin de kwaadaardige code. En een gebruiker op een linkje laten klikken is niet zo heel erg moeilijk, al zal het gezien de doelgroep van DD-WRT misschien wat lastiger zijn als bij de gemiddelde onwetende internetter.
En je moet het ip-adres/hostname van de router gokken/weten.
Of een site zoals tinyurl gebruiken.
Zal dit ook het geval zijn met de nieuwe v24 sp2 (beta), of alleen de sp1 versie? :?
Als sp2 al uitgebracht is: geen idee, maar waarschijnlijk wel.
Als sp2 nog uitgebracht moet worden: waarschijnlijk brengen ze die pas uit nadat dit gefixt is.
Volgens de uitleg van DD-WRT werkt het alleen als je de beheerinterface open zet en een zwak wachtwoord gebruikt.

Wie een zwak wachtwoord op zijn router zet is al erg dom bezig. Via de beheerinterface kun je gewoon linux-commando's uitvoeren, als je dat niet goed afschermd dan ligt de fout veel meer bij de beheerder dan bij de router.

"To succeed the worm requires a router whith management access enabled at the WAN port (Web / SSH / Telnet) at the standard(!) TCP/IP ports for the services and a weak administrator password."

Zie de uitleg van DD-WRT zelf.
Anoniem: 32925 @edwinjm22 juli 2009 01:43
Dat gaat over totaal iets anders.
Dit zou volgens het dd-wrt forum gefixed zijn in svn.

http://svn.dd-wrt.com:8000/dd-wrt/changeset/12532

Op dit item kan niet meer gereageerd worden.