Managed hosting door True
Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Website hacking!

 

Expert

Erik Westhovens
CTO, DinamiQs. Expert van voor het topic .

In 2006 had ik enkele websites draaien onder PHP 4 met daarop Joomla. Joomla is een gratis te gebruiken CMS website, met ontzettend veel add-on functionaliteit waarmee je bijna alles kunt doen wat je wilt. Tot mijn verbazing werd ik regelmatig geconfronteerd met het feit dat er 1 of andere boodschap op de website stond dat mijn site gehackt was door een radicale groepering. Om er achter te komen hoe dit kon, en wie dit deed ben ik gestart met het plaatsen van additionele code op de site waarmee ik gegevens kon achterhalen die vervolgens achtergelaten werden als een tekst bericht in en secure plaats op de site.

In de code stond een verwijzing naar een directory die beschermd werd met een .HTaccess bestand. De code maakte een log file aan met daarin de volgende gegevens: IP-adres van de bezoeker, tijdstip geverifieerd aan de servertijd, tijdstip geverifieerd aan de cliënt tijd en eerst bezochte pagina.

Met behulp van het IP adres en het verschil in de twee opgeslagen tijden kon ik de locatie van de bezoeker snel achterhalen, en met de waarde eerstbezochte pagina kon ik achterhalen wanneer de site gehackt werd. Zodra de eerstbezochte pagina vervangen werd van index.php naar index.html wist ik dat de site er niet meer was.

Echter zag ik in de diverse logs van de websites dat de index.php niet veranderde van index.php naar index.html, maar dat deze werd vervangen van index.php naar een andere pagina. De daarop volgende pagina was dan inderdaad index.html.

Door het achterhalen van de locatie van de “hacker” kwam ik er achter dat deze zich in Nederland bevond. Door een lookup te doen op het IP adres kon ik vervolgens achterhalen welke internet provider hier achter zat.

Ik had nu dus een locatie en een IP-adres. De verandering op de website voorafgaand aan het daadwerkelijk omzetten van de index werd vooraf gegaan aan een MySQL injection script. Iets waar Joomla wel gevoelig voor is.

Graag wou ik erachter komen hoe deze SQL injection mogelijk was, omdat je daar een wachtwoord voor nodig hebt. Het wachtwoord maakt gebruik van MD5 technologie, waardoor wachtwoorden veranderen in een “onleesbaar” 32 karakters tellende HASH. De volgende stap was dus mijn websites beschermen, maar ook om de aanvaller te laten weten dat ik hem door had. Daar moest ik dus even goed over nadenken.

Toen kwam ik op het volgende idee. Ik maakte een duplicaat van de website, en gaf het IP-adres wat ik in de diverse logs had gevonden op in het .HTacces bestand. Door daar dan met behulp van een PHP script een reroutering plaats te laten vinden werd de “hacker” iedere keer dat hij op mijn websites iets probeerde doorgeleid naar een kopie van de website met daarachter een andere database, en kon ik veilig extra code meesturen. Die extra code creëerde een cookie op de pc van de aanvaller wat ik vervolgens op al mijn sites kon uitlezen. De aanvaller liet vervolgens een behoorlijke berg gegevens achter, en aan de hand daarvan kon ik achter heel veel informatie komen.

Uiteindelijk bleek het om een 16 jarige scholier te gaan die onder de zogenaamde groep Scriptkiddies valt. Scriptkiddies zijn meestal jongeren die op internet speuren naar scriptjes waarmee ze behoorlijk wat narigheid uithalen. Maar hoe is dit nu mogelijk en wat kun je eraan doen?

Het wordt mogelijk gemaakt door het feit dat het wachtwoord, weliswaar als “Hash” code, gewoon op de pagina’s staat. Door vervolgens op de website “view source” te klikken in het internet Explorer wordt de “HASH” code zichtbaar, en deze kan op diverse websites getest worden met behulp van de zogenaamde Rainbow techniek. De Rainbow techniek gaat uit van een database van meer dan 50.000.000 bekende woorden, een zogenaamde Dictionary, en de dus bekende 50.000.000 HASH codes. Deze database groeit dagelijks.

De resterende informatie zoals hostname van de server, meestal localhost, en de databasenaam staan gewoon in de code, en is dus als platte tekst leesbaar. Met behulp van de hostname, databasenaam en het gedecrypte wachtwoord kun je willekeurige SQL injections doen, en kun je dus een eigen admin account aanmaken met bijhorend wachtwoord. Vervolgens log je in op de site, als administrator, en kun je doen en laten wat je wilt.

Je kunt hier op diverse manieren wat aan doen, en de door mij gebruikte methode is nu dat ik een dubbele check uitvoer. Alle wachtwoorden worden met MD5 technologie omgezet in een HASH, en deze HAH word vervolgens met een dubbelcheck procedure nogmaals omgezet in een HASH. Deze tweede HASH staat in mijn PHP code, en is dus niet bekend in de zogenaamde Dictionary. Het kost wat tijd om dit in te bouwen, maar het levert wel een sterke beveiliging op, en sindsdien is geen enkele van mijn websites meer gehackt.

De hacker zelf aanpakken kan niet op basis van oog om oog, tand om tand, en aangifte doen heeft in de meeste gevallen ook geen zin. Simpelweg omdat de wet er niet duidelijk in is, en de politie niet weet wat ze met de aangifte moeten doen.

Meer dan een jaar na dit gebeuren vond ik een artikel op een nieuwssite waarin bekend gemaakt werd dat je HASH code kunt googlen. Met vermelding van een website.

Bij deze site geef je een eigen website wachtwoord op. (Let op de disclaimer onder aan de pagina) Druk op de knop GO, en je searchstring word gegenereerd. Kopieer de searchstring naar je browser, en je ziet meteen of je wachtwoord bekend is.

Password en wachtwoord leveren veel hits op, en je merkt dan ook meteen op dat heel veel websites als admin wachtwoord 1 van deze twee gebruiken. Ik voorspel dat we de komende tijd veel sites tegen gaan komen met de boodschap: Gehackt.

Een voorbeeld van een hack als bovenstaand beschreven is www.mil.be. Deze website is van het Belgische ministerie van defensie, en liet na de hack de onderstaande afbeelding zien:

Site

Dit artikel is afkomstig van Computable.nl (https://www.computable.nl/artikel/2495052). © Jaarbeurs IT Media.

?


Lees meer over


 

Reacties

Hallo Erik,Leuk artikel, maar hoe heb je dit technisch nou voor elkaar gekregen? Je beschrijft nu wel wat je doet in zinnen als:"additionele code op de site waarmee ik gegevens kon achterhalen die vervolgens achtergelaten werden ", maar wat is dan de code die je daarvoor gebruikt hebt? Zo kunnen andere mensen wellicht ook hun websites beveiligen. Denny

Hoi Erik,De techniek die je beschrijft om het standaard MD5 wachtwoord (die inderdaad makkelijk via een Rainbow table opgezocht kan worden) extra te beveiligen heet "salting". Vanaf Joomla! versie 1.0.13 (en ook de nieuwste 1.5) is MD5 salting standaard toegevoegd, terwijl deze techniek ook bij andere PHP pakketten wordt gebruikt (Gallery, Drupal). Dankzij dat salt moet een hacker puur voor jouw website een nieuwe Rainbow table genereren - een beetje een Rainbow table is toch wel 100Gb groot, en dat kost weken om aan te maken.In mijn mening wordt het gros van de gehackte PHP applicaties juist gehackt door nalatigheid: Er wordt gebruik gemaakt van verouderde software, die alleen maar geupdate moet worden om de lekken te dichten. Ongeacht of er nu salting wordt toegepast of niet, het probleem blijft dat een deel van de gebruikte applicatie blijkbaar gevoelig is voor SQL injection. Juist dat gat zou eigenlijk gedicht moeten worden. In PHP code is dit vrij simpel door een _GET variabele waarin alleen een getal wordt verwacht ook daadwerkelijk te casten (int) naar een getal. Andere methodes zijn het toevoegen van slashes (mysql_real_escape_string()). Zo lang dat niet wordt gedaan, kan een hacker nog steeds rare dingen doen zoals een nieuwe administrator-account voor zichzelf aanmaken.Jisse

Jisse,Je hebt helemaal gelijk. Salting is toegevoegd in Joomla 1.0.13 en ook al in 1.5. Echter draaien nog veel websites met Joomla 1.0.12, of met andere CMS boards. PHPNuke heeft helemaal nog geen Salting technologie. Het gaat erg ver om alle methodes voor Salting maar ook voor andere soorten van beveiliging in een artikel samen te vatten en te publiceren. In Joomla maar ook in andere CMS systemen, en zelfs in ASP sites zijn erg veel add-ons te plaatsen en de 1 is beter dan de ander.Op de Joomla sites is vaak al veel terug te vinden in forums. Bedrijven die gebruik maken van CMS systemen doen er goed aan om hun webservers goed te beveiligen. Zeker als een webserver data kan ophalen of versturen naar een database die buiten het DMZ is geplaatst.Een goe toepasbare technologie om je DMZ te beschermen is het plaatsen, configureren en gebruiken van een Altiris Security Expressions server. Met behulp van deze server kun je alle servers scannen met behulp van een ruleset. Maar je kunt ook je eigen ruleset maken en importeren. Een rule om je server te controleren op SQL injections is snel gemaakt en te gebruiken.Met vriendelijke groetErik Westhovens

Hallo
Ik ben ook slachtoffer hieraan. Ik ben zelf artiest
dj cold en ik heb wat vrienden die jaloers waren en die hebben weer wat vrienden in die kiddies groups enz.,
maar ik weet dat het in friesland is gebeurd. Die twee vrienden kunnen mij aan die gast helpen,
maar kan ik hiermee ook naar de politie toe ???
En kun je me de php geven van het achterhalen enzovoort ervan???

Vacatures

Stuur door

Stuur dit artikel door

Je naam ontbreekt
Je e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×