[MSSQL] 확장저장프로시저 xp_cmdShell 제거
확장프로시저에 접근이 가능하다면 다음과 같은 구문으로 신규 계정을 생성할수 있다.
이와 같이 어드민 계정이 생성되면 그 이후에는 그 서버는 마음대로 주무를수 있게 된다.
xp_cmdshell 'net user hacker1 Akld5793/add'
go
xp_cmdshell 'net localgroup administrators hacker1 /add'
go
이를 방지하기 위해 제거 해버린다.
USE master
GO
IF OBJECT_ID('[dbo].[xp_cmdshell]') IS NOT NULL BEGIN
EXEC sp_dropextendedproc 'xp_cmdshell'
END
GO
EXEC sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
GO
USE master
GO
IF OBJECT_ID('[dbo].[xp_cmdshell]') IS NOT NULL BEGIN
EXEC sp_dropextendedproc 'xp_cmdshell'
END
GO
재설치
sp_dropextendedproc을 해도 해당 DLL이 메모리에 남아 있다.
다음 명령어로 동적 연결 라이브러리(DLL)를 메모리에서 내리면 기존 파일이 지워진다.
dbcc xp_cmdshell(free)
---
USE MASTER
EXEC SP_HELPTEXT XP_CMDSHELL
- 여기서 나타난 DLL 이름을 기억해 둡니다. 이것은 나중에 다시 등록할 때 필요함.
USE MASTER
EXEC SP_DROPEXTENDEDPROC ‘XP_CMDSHELL’
다시 등록시
USE MASTER
EXEC SP_ADDEXTENDEDPROC ‘XP_CMDSHELL’, ‘XPLOG70.DLL’ -- 앞에서 알아냈던 DLL
'컴퓨터 엔지니어 > DATABASE' 카테고리의 다른 글
mssql 2005 설치방법 (0) | 2008.06.18 |
---|---|
phpMyAdmin 설치사용법 (0) | 2007.11.15 |
xp_cmdshell 삭제 (0) | 2007.11.12 |
MS-SQL 데이터 파일을 이용한 데이터베이스 복원 (0) | 2007.10.24 |
MySQL root 패스워드 분실시 (0) | 2007.03.30 |