Procedurile stocate sunt o colecție de instrucțiuni SQL pre-scrise stocate în SQLServer, dintre care cele mai periculoase proceduri extinse sunt xp_cmdshell, care pot executa orice instrucțiuni ale sistemului de operare, iar SA este contul de administrator al Microsoft SQLServer, cu cele mai înalte privilegii, poate executa proceduri stocate extinse și poate obține valori de returnare, cum ar fi execuția:
Șec Teacher.. xp_cmdshell 'net user test 1234 /add' și exec master: xp_cmdshell 'administratorii netgroup testează /add'
Astfel, un utilizator numit test, parola 1234 și privilegii de administrator sunt adăugate în sistemul celeilalte părți, așa cum este prezentat în Figura 1.
Acum ar trebui să înțelegi de ce primești parola SA și beneficiezi de cele mai înalte privilegii ale sistemului. Adesea, mulți administratori de rețea nu cunosc această situație și au câteva parole simple, cum ar fi 1234 și 4321, pentru utilizatorii lor SA, sau chiar nu setează deloc parole, astfel încât intrușii din rețea să poată scana ușor parola SA cu unele instrumente de hacking și apoi să controleze calculatorul.
Pe lângă xp_cmdshell, există și proceduri stocate care pot fi exploatate de intruși:
1. xp_regread (această procedură extinsă de stocare poate citi valoarea specificată în cheia specificată în registru), cum să o folosești (obține numele mașinii):
DECLARAȚIE@testvarchar (50) Maestru EXECUTIV... xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (această procedură extinsă de stocare poate scrie valoarea specificată în cheia specificată în registru) și cum să o folosești (scrie bbb în cheia HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
Maestru executiv... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Dacă utilizatorul administrator al calculatorului compromis poate naviga informațiile HKEY_LOCAL_MACHINE\SAM\SAM\ din registru, atunci cele două proceduri stocate xp_regread și xp_regwrite pot fi folosite pentru a clona utilizatorul administrator și a obține privilegii de administrator. xp_regdeletekey. xp_regdeletevalue va aduce și riscuri de securitate pentru sistem. 3. O serie de proceduri de stocare legate de OLE, această serie de proceduri de stocare are sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, utilizare:
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'--
Astfel, celălalt sistem adaugă un utilizator numit test și un utilizator cu parolă 1234, apoi execută:
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 '--
Test de utilizator, adăugat în grupul Administratori. Soluție: Oferă SA o parolă suficient de complexă încât să îngreuneze spargerea atacatorilor cibernetici. Pentru siguranță, trebuie să folosim și proceduri stocate în SQLS sp_addextendedproc sp_dropextendedproc analizatorul de interogări al lui Erver sp_dropextendedproc să ștergem proceduri stocate precum xp_cmdshell, apoi să folosim sp_addextendedproc recuperare când este nevoie. Trebuie menționat că ștergerea procedurilor stocate legate de OLE poate face ca unele funcții din Enterprise Manager să devină inutilizabile, iar autorul nu recomandă ștergerea lor aici.
Acum că știm cum să folosim SP_OACREATE, putem merge pe \WINNT \system32 pentru a găsi cmd.exe, net.exe și net1.exe trei fișiere și să ștergem toți utilizatorii care pot accesa ele în "Properties" - "Security", astfel încât să nu putem folosi SP_OACREATE pentru a crește numărul de utilizatori ai sistemului și putem adăuga utilizatori de acces când avem nevoie să accesăm aceste fișiere.
|