Le stored procedure sono una raccolta di istruzioni SQL pre-scritte memorizzate in SQLServer, tra cui le stored procedure estese più pericolose sono xp_cmdshell, che possono eseguire qualsiasi istruzione del sistema operativo, e SA è l'account amministratore di Microsoft SQLServer, con i privilegi più alti, può eseguire stored procedure estese e ottenere valori di ritorno, come l'esecuzione:
Maestro esecutivo... xp_cmdshell 'net user test 1234 /add' e exec master: xp_cmdshell 'net localgroup administrators testano /add'
In questo modo, un utente chiamato test, la password 1234 e i privilegi amministratori vengono aggiunti al sistema dell'altra parte, come mostrato nella Figura 1.
Ora dovresti capire perché ottieni la password SA e i privilegi più alti del sistema. Spesso molti amministratori di rete non sono a conoscenza di questa situazione e hanno alcune semplici password come 1234 e 4321 per i loro utenti SA, o addirittura non impostano password, così che gli intrusi di rete possano facilmente scansionare la password SA con alcuni strumenti di hacking e poi controllare il computer.
Oltre a xp_cmdshell, esistono anche stored procedure che possono essere sfruttate dagli intrusi:
1. xp_regread (questa procedura di memoria estesa può leggere il valore specificato nella chiave specificata nel registro), come usarla (ottenere il nome della macchina):
DICHIARA@testvarchar(50) EXECUTIVE master.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername', @value_name='computername', @value=@test OUTPUT SELECT @test
2. xp_regwrite (questa stored procedure estesa può scrivere il valore specificato nella chiave specificata nel registro), e come usarla (scrivere bbb nella chiave HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
Maestro esecutivo... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Se l'utente amministratore del computer compromesso può consultare le informazioni HKEY_LOCAL_MACHINE\SAM\SAM\ nel registro, allora le due stored procedure xp_regread e xp_regwrite possono essere usate per clonare l'utente amministratore e ottenere i privilegi amministratore. xp_regdeletekey. xp_regdeletevalue comporterà anche rischi per la sicurezza del sistema. 3. Una serie di procedure di storage correlate all'OLE, questa serie di procedure di storage ha sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, utilizzo:
DECLARE @shell INT EXECUTE SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net user test 1234 /add'--
In questo modo, l'altro sistema aggiunge un utente chiamato test e un utente con password 1234, ed esegui:
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 utente, aggiunto al gruppo Amministratori. Soluzione: Dai a SA una password abbastanza complessa da rendere difficile per gli attaccanti informatici decifrarla. Per sicurezza, dobbiamo anche utilizzare stored procedure in SQLS sp_addextendedproc sp_dropextendedproc query analyzer di Erver sp_dropextendedproc eliminare stored procedure come xp_cmdshell, e poi utilizzare sp_addextendedproc recovery quando necessario. Va notato che eliminare stored procedure relative a OLE può rendere inutilizzabili alcune funzioni di Enterprise Manager, e l'autore non raccomanda di eliminarle qui.
Ora che sappiamo come usare SP_OACREATE, possiamo andare su \WINNT \system32 per trovare i file cmd.exe, net.exe e net1.exe tre file, ed eliminare tutti gli utenti che possono accedervi nelle "Proprietà" - "Sicurezza", così da non poter usare SP_OACREATE per aumentare il numero di utenti di sistema, e possiamo aggiungere utenti di accesso quando dobbiamo accedere a questi file.
|