image

Systeembeheerders onderschatten SQL-injectie

dinsdag 12 mei 2009, 09:38 door Redactie, 9 reacties

SQL-injectie is dé manier bij uitstek voor aanvallers om toegang tot de gehele infrastructuur te krijgen, toch onderschatten systeem- en databasebeheerders het probleem, aldus Harlan Carvey van IBM's Internet Security Systems. "Wat veel databasebeheerders niet begrijpen, is dat SQL-injectie een aanvaller niet alleen gegevens in de database van de webapplicatie laat manipuleren, het kan ook directe toegang tot het besturingssysteem bieden waarop de database draait." Via features zoals xp_cmdshell in Microsoft SQL Server is het mogelijk om DOS shell commando's op het onderliggende besturingssysteem uit te voeren met dezelfde rechten als de database, en in de meeste gevallen gaat het dan om systeemrechten waardoor een aanvaller volledige controle kan krijgen.

Carvey merkt op dat aanvallers eerst "dir" en "type" commando's uitvoeren om de inhoud van een lokale schijf te bepalen en vervolgens via "ipconfig" en "ping" de netwerkverbinding controleren. Via het "net" commando kan de aanvaller dan een gebruiker aan het systeem of domein toevoegen en andere systemen binnen het netwerk vinden die een SQL-server of MSDE draaien.

FTP client
Ook het infecteren van systemen met malware is via SQL-injectie vrij eenvoudig, wat ook geldt voor het draaien van een FTP server op een gehackte machine. "Sommige systeembeheerders weten niet dat er standaard een FTP client op Windows systemen draait of zijn niet bekend met wat een FTP script is of hoe het eruit ziet." Het probleem gaat volgens Carvey verder dan het plunderen van gevoelige gegevens uit databases. Aangezien de machines zich vaak diep binnen het netwerk bevinden, kan een aanvaller uiteindelijk ook de rest van de infrastructuur verkennen en aanvallen.

Reacties (9)
12-05-2009, 09:41 door Anoniem
Via features zoals xp_cmdshell in Microsoft SQL Server is het mogelijk om DOS shell commando's op het onderliggende besturingssysteem uit te voeren ...

Prachtig dat MS software...
12-05-2009, 09:53 door micmast
Dit is niet echt nieuw, het xp_cmdshell kan al gebruikt worden sinds windows MSSQL 2000. En dit beperkt zich niet enkel tot Microsoft's SQL oplossing, maar ook mysql en andere hebben functies op files te uploaden/downloaden en dergelijke. ik heb me wel altijd afgevraagd waarom een SQL server dergelijke functies nodig heeft.
12-05-2009, 10:00 door Anoniem
Heb niet heel veel kennis van SQL injecties op windows machines, maar moet je niet van goede huize komen om een windows 2k3 of 2k8 te SQL injecten? Of gaan deze mannen fysiek de servers te lijf, laptop > wall-outlet en kijken waar je terecht komt?
12-05-2009, 10:46 door SirDice
Door Anoniem: Heb niet heel veel kennis van SQL injecties op windows machines, maar moet je niet van goede huize komen om een windows 2k3 of 2k8 te SQL injecten? Of gaan deze mannen fysiek de servers te lijf, laptop > wall-outlet en kijken waar je terecht komt?
Nee, gewoon brakke code die gebruik maakt van die SQL server. Input validatie wordt nog steeds niet of slecht gedaan. Koppel dat aan een SQL server die op een domain admin account o.i.d. draait (omdat er anders iets niet werkt en ze niet begrijpen hoe dat op te lossen) en je hebt het recept voor een kleine ramp.

Overigens is xp_cmdshell al sinds jaar en dag uit te schakelen en is zelfs in z'n geheel te verwijderen. Vergeet ook xp_regread en xp_regwrite niet.
12-05-2009, 10:53 door Anoniem
Door SirDice:
Door Anoniem: Heb niet heel veel kennis van SQL injecties op windows machines, maar moet je niet van goede huize komen om een windows 2k3 of 2k8 te SQL injecten? Of gaan deze mannen fysiek de servers te lijf, laptop > wall-outlet en kijken waar je terecht komt?
Nee, gewoon brakke code die gebruik maakt van die SQL server. Input validatie wordt nog steeds niet of slecht gedaan. Koppel dat aan een SQL server die op een domain admin account o.i.d. draait (omdat er anders iets niet werkt en ze niet begrijpen hoe dat op te lossen) en je hebt het recept voor een kleine ramp.

Overigens is xp_cmdshell al sinds jaar en dag uit te schakelen en is zelfs in z'n geheel te verwijderen. Vergeet ook xp_regread en xp_regwrite niet.

Rotte *.aspx of *.php dus bijv.? Thx voor de uitleg ;)
12-05-2009, 11:48 door micmast
Door SirDice:
Overigens is xp_cmdshell al sinds jaar en dag uit te schakelen en is zelfs in z'n geheel te verwijderen. Vergeet ook xp_regread en xp_regwrite niet.

Bij default vanaf 2005 staat xp_cmdshell ook uitgeschakelt, maar is zeer snel terug in te schakelen.

Een andere fout is dat mensen teveel rechten geven aan gebruikers, als je op een goede manier rekening houdt met rechten (maw sqladmin, read only, write op specifieke tables,...) dan kan dit soort dingen al een deel beperken. Nooit helemaal natuurlijk, maar al wel een groot stuk.
12-05-2009, 11:55 door Anoniem
En komt Harlan morgen met het nieuws dat systeembeheerders XSS onderschatten, en overmorgen met het nieuws dat beheerders remote code execution is onderschat? Wat hij vergeet te vertellen is dat het onderschatten niet ligt bij vorm waarin het kwaad kan optreden, maar wat de oorzaak daarvan is. Wat men onderschat zijn de gevolgen van het ontbreken of ontoereikende invoervalidatie!
12-05-2009, 17:17 door SirDice
Door micmast:
Een andere fout is dat mensen teveel rechten geven aan gebruikers, als je op een goede manier rekening houdt met rechten (maw sqladmin, read only, write op specifieke tables,...) dan kan dit soort dingen al een deel beperken. Nooit helemaal natuurlijk, maar al wel een groot stuk.
Absoluut. Die fout wordt overigens niet alleen met MS-SQL gemaakt. Op MySQL wordt heel vaak voor het gemak maar even GRANT ALL gedaan, als ze uberhaubt al een extra account aanmaken.
14-05-2009, 20:55 door Anoniem
Door Anoniem:
Via features zoals xp_cmdshell in Microsoft SQL Server is het mogelijk om DOS shell commando's op het onderliggende besturingssysteem uit te voeren ...

Prachtig dat MS software...


Het heeft niets met MS te maken en ook niet met Windows Servers. Lees maar eens:

http://www.net-security.org/dl/insecure/INSECURE-Mag-18.pdf

Staat een leuk stuk ik over Web Application Security.

Het betreft alle platformen, Windows en *nix. Gaat gewoon erom dat je de webapplicatie kan manipuleren en daarmee SQL statements aan kan passen en de onderliggende database kunt manipuleren.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.