Tallennetut proseduurit ovat kokoelma valmiiksi kirjoitettuja SQL-lauseita, jotka on tallennettu SQLServeriin, joista vaarallisimmat laajennetut tallennetut proseduurit ovat xp_cmdshell, jotka voivat suorittaa käyttöjärjestelmän käskyt, ja SA on Microsoft SQLServerin ylläpitäjätili, jolla on korkeimmat oikeudet, se voi suorittaa laajennettuja tallennettuja proseduureja ja saada palautusarvoja, kuten suorituksen:
Toimitusjohtaja.. xp_cmdshell 'net user test 1234 /add' ja exec master: xp_cmdshell 'net localgroup administrators test /add'
Näin käyttäjän nimi testi, salasana 1234 ja ylläpitäjäoikeudet lisätään toisen osapuolen järjestelmään, kuten kuvassa 1 on esitetty.
Nyt sinun pitäisi ymmärtää, miksi saat SA-salasanan ja miksi saat järjestelmän korkeimmat oikeudet. Usein monet verkon ylläpitäjät eivät tiedä tästä tilanteesta, ja heillä on yksinkertaisia salasanoja, kuten 1234 ja 4321, SA-käyttäjilleen, tai he eivät edes aseta salasanoja lainkaan, jotta verkkoon tunkeutuneet voivat helposti skannata SA-salasanan joillakin hakkerointityökaluilla ja hallita tietokonetta.
xp_cmdshell lisäksi on myös tallennettuja proseduuria, joita tunkeilijat voivat hyödyntää:
1. xp_regread (tämä laajennettu tallennettu proseduuri voi lukea rekisterissä määritetyssä avaimessa määritellyn arvon), miten sitä käytetään (saa koneen nimi):
JULISTAA@testvarchar(50) EXEC-mestari.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test TULOSTA SELECT @test
2. xp_regwrite (tämä laajennettu tallennettu proseduuri voi kirjoittaa rekisterissä määritetyssä avaimessa määritellyn arvon) ja miten sitä käytetään (kirjoita bbb avaimessa HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC-mestari.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Jos kompromissioidun tietokoneen ylläpitäjäkäyttäjä voi selata rekisterin HKEY_LOCAL_MACHINE\SAM\SAM\ tietoja, niin tallennettuja xp_regread ja xp_regwrite -toimintoja voidaan käyttää ylläpitäjäkäyttäjän kloonaamiseen ja ylläpitäjän oikeuksien saamiseen. xp_regdeletekey xp_regdeletevalue tuo myös turvallisuusriskejä järjestelmään. 3. Sarja OLE:hen liittyviä tallennusmenettelyjä, tällä tallennusmenettelyjen sarjalla on sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, käyttö:
DECLARARE @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'--
Näin toinen järjestelmä lisää käyttäjänimen testin ja käyttäjän, jonka salasana on 1234, ja suorittaa sitten:
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 '--
Käyttäjätesti, lisätty Ylläpitäjät-ryhmään. Ratkaisu: Anna SA:lle salasana, joka on tarpeeksi monimutkainen, jotta kyberhyökkääjien murtaminen on vaikeaa. Turvallisuuden vuoksi meidän täytyy myös käyttää tallennettuja proseduureja SQLS:ssä sp_addextendedproc sp_dropextendedproc Erver's query analyzerissa, sp_dropextendedproc poistaa tallennetut proseduurit, kuten xp_cmdshell, ja käyttää sp_addextendedproc palautusta tarpeen mukaan. On huomioitava, että tallennettujen OLE:hen liittyvien proseduurien poistaminen voi tehdä joistakin Enterprise Managerin toiminnoista käyttökelvottomia, eikä kirjoittaja suosittele niiden poistamista tästä.
Nyt kun tiedämme, miten SP_OACREATE käytetään, voimme mennä \WINNT \system32:een löytääksemme cmd.exe, net.exe ja net1.exe kolme tiedostoa, ja poistaa kaikki käyttäjät, jotka pääsevät niihin käsiksi "Ominaisuudet" - "Turvallisuus" -osiosta, jotta emme voi käyttää SP_OACREATE järjestelmän käyttäjien määrän kasvattamiseen, ja voimme lisätä pääsykäyttäjiä, kun tarvitsemme näitä tiedostoja.
|