Prosedur tersimpan adalah kumpulan pernyataan SQL yang telah ditulis sebelumnya yang disimpan di SQLServer, di antaranya prosedur tersimpan yang diperpanjang yang paling berbahaya adalah xp_cmdshell, yang dapat menjalankan instruksi sistem operasi apa pun, dan SA adalah akun administrator Microsoft SQLServer, dengan hak istimewa tertinggi, dapat menjalankan prosedur tersimpan yang diperpanjang, dan mendapatkan nilai pengembalian, seperti eksekusi:
master eksekutif .. xp_cmdshell 'Net User Test 1234 /add' dan Executive Master: xp_cmdshell 'Admin Grup Lokal Net Menguji /Add'
Dengan cara ini, pengujian bernama pengguna, kata sandi 1234, dan hak istimewa administrator ditambahkan ke sistem pihak lain, seperti yang ditunjukkan pada Gambar 1.
Sekarang Anda harus memahami mengapa Anda mendapatkan kata sandi SA dan mendapatkan hak istimewa tertinggi dari sistem. Seringkali banyak administrator jaringan yang tidak mengetahui situasi ini, dan memiliki beberapa kata sandi sederhana seperti 1234 dan 4321 untuk pengguna SA mereka, atau bahkan tidak mengatur kata sandi sama sekali, sehingga penyusup jaringan dapat dengan mudah memindai kata sandi SA dengan beberapa alat peretasan dan kemudian mengontrol komputer.
Selain xp_cmdshell, ada juga prosedur tersimpan yang dapat dieksploitasi oleh penyusup:
1. xp_regread (prosedur tersimpan yang diperluas ini dapat membaca nilai yang ditentukan dalam kunci yang ditentukan dalam registri), cara menggunakannya (dapatkan nama mesin):
MENYATAKAN@testvarchar(50) MASTER EKSEKUTIF .. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='sistem\controlset001\control\computername\computername', @value_name='nama komputer', @value=@test PILIH KELUARAN @test
2. xp_regwrite (prosedur tersimpan yang diperluas ini dapat menulis nilai yang ditentukan dalam kunci yang ditentukan dalam registri), dan cara menggunakannya (tulis bbb di kunci HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
Master EXEC .. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='PERANGKAT LUNAK\aaa', @value_name='aaaNilai', @type='REG_SZ', @value='bbb'
Jika pengguna administrator komputer yang disusupi dapat menelusuri informasi HKEY_LOCAL_MACHINE\SAM\SAM\ di registri, maka dua prosedur xp_regread dan xp_regwrite yang disimpan dapat digunakan untuk mengkloning pengguna administrator dan mendapatkan hak istimewa administrator. xp_regdeletekey. xp_regdeletevalue juga akan membawa risiko keamanan pada sistem. 3. Serangkaian prosedur penyimpanan terkait OLE, rangkaian prosedur penyimpanan ini memiliki sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, penggunaan:
DEKLARASIKAN @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'--
Dengan cara ini, sistem lain menambahkan pengujian bernama pengguna dan pengguna dengan kata sandi 1234, lalu menjalankan:
DEKLARASIKAN @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 '--
Pengujian pengguna, ditambahkan ke grup Administrator. Solusi: Berikan SA kata sandi yang cukup kompleks untuk menyulitkan penyerang dunia maya untuk memecahkan. Untuk keamanan, kita juga perlu menggunakan prosedur tersimpan di SQLS sp_addextendedproc sp_dropextendedproc penganalisis kueri erver sp_dropextendedproc menghapus prosedur tersimpan seperti xp_cmdshell, dan kemudian menggunakan pemulihan sp_addextendedproc saat diperlukan. Perlu dicatat bahwa menghapus prosedur tersimpan yang terkait dengan OLE dapat menyebabkan beberapa fungsi di Enterprise Manager tidak dapat digunakan, dan penulis tidak merekomendasikan untuk menghapusnya di sini.
Sekarang setelah kita tahu cara menggunakan SP_OACREATE, kita dapat pergi ke \WINNT \system32 untuk menemukan cmd.exe, net.exe dan net1.exe tiga file, dan menghapus semua pengguna yang dapat mengaksesnya di "Properti" - "Keamanan", sehingga kita tidak dapat menggunakan SP_OACREATE untuk meningkatkan jumlah pengguna sistem, dan kita dapat menambahkan pengguna akses saat kita perlu mengakses file-file ini.
|