1. 디폴트 계정/패스워드 제거 및 변경
가. MSSQL서버 인증방법
MS-SQL서버는 사용자를 인증하기 위하여 디폴트 인증 모드인 ‘윈도우 인증 모드’와 윈도우 인증과 SQL서버인증을 모두 사용할 수 있는 ‘혼합 인증 모드’ 두 가지를 지원한다.
‘윈도우 인증 모드’는 MS-SQL서버의 인증을 위해 윈도우OS에서 사용하는 계정을 이용하는 모드로 별도의 ID, Password가 필요하지 않고 윈도우에서 지원하는 암호정책, 계정잠금정책, 감사정책 등을 그대로 사용할 수 있어 SQL서버 자체 인증보다 강화된 보안 정책 설정이 가능하다. 또한 해당 계정정책에 따른 감사로그의 생성이 가능하여 추후 침해사고 발생시 좀 더 효과적인 분석이 가능하다. 따라서 ‘윈도우 인증 모드’로 설정하여 사용하는 것이 좋다.
‘혼합인증모드’는 ‘윈도우 인증 모드’와 ‘SQL 인증’을 동시에 지원하는 모드로 ‘SQL 인증’은 MS-SQL 어플리케이션에서 생성한 계정을 이용하여 로그인 하는 방법으로 윈도우즈에 로그인 하지 않고서도 별도의 클라이언트 프로그램을 이용하여 접속이 가능한 방법이다. 이는 리눅스와 같은 이 기종의 OS에서도 접속이 가능하고 사용하기가 편리하여 프로젝트 개발단계에서 많이 사용한다.
Cf). sa 계정의 DB가 삭제되어 로그인이 안된다면?
sa 로그인 계정의 기본 데이터베이스가 LAIGO 로 설정되어 있으며 Windows 인증 계정이 허용되어 있지 않아 데이터베이스에 로그인 할 수 없는 상태이며 로그인을 시도할 경우 아래와 같은 오류가 발생합니다.
서버에 연결할 수 없습니다.LAIGO-DBMS:
서버: 메시지 4064, 수준 16, 상태 1
[Microsoft][ODBC SQL Server Driver][SQL Server]사용자 기본 데이터베이스를 열 수 없습니다. 로그인이 실패했습니다.
sa 기본 데이터베이스를 master 로 변경하여 데이터베이스에 로그인 할 수 있도록 설정
C:\Program Files\Microsoft SQL Server\80\Tools\Binn> osql -S . -U sa -P P@$$w0rd -d master
1> sp_defaultdb 'sa','master'
2> go
참고: http://blog.danggun.net/807, http://laigo.tistory.com/407
나. 계정
SQL 서버를 설치시 디폴트로 SA계정은 Blank 패스워드를 생성 -> 패스워드를 복잡한 패스워드로 변경
sa외 응용시스템 계정의 경우 [암호 정책 강제 적용]을 체크하여 패스워드 정책 적용
참고 : http://v3.kcu.or.kr/secu_info_view.asp?list=/secu_info_list.asp&seq=9741&pageno=34&v_num=525
2. 설치 시 생성되는 불필요 파일 삭제
SQL Server 설치 또는 서비스팩 설치 시 생성된 파일 중에는 텍스트로 된 패스워드 및 기타 중요한 구성정보가 포함된 로그 파일이 포함될 수 있다.
C:\Program Files\Microsoft SQL Server\MSSQL\Install\sqlstp.log, sqlop.log, setup.iss
3. 취약한 프로시저 사용확인
- xp_cmdhshell : 윈도우의 cmd와 같이 command를 실행시킬 수 있는 확장 프로시저
설정확인 : 값이 0 이면 비활성화, 1이면 활성화
SELECT * FROM sys.configurations WHERE name = 'xp_cmdshell'
쿼리에서 확인 방법
exec xp_cmdshell 'dir';
참고 : 활성화 시 문제점 : http://ddoung2.tistory.com/59
- xp_subdirs, xp_dirtree : 디렉토리의 서브디렉토리 리스트를 돌려준다
exec xp_subdirs "C:\"
exec xp_dirtree "C:\"
참고 : http://ddoung2.tistory.com/57
- xp_regread : 레지스트리 값을 읽어 올 수 있음
SQL Injection 취약점을 이용하여 아래 쿼리를 추가로 전달 시 에러메세지를 통해 값을 읽을 수 있음
declare @out binary(8)
exec xp_regread
@rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\ORL\WinVNC3\Default',
@value_name='Password',
@value = @out output
select cast(@out as bigint) as x into TEMP
참고 : http://egloos.zum.com/totoriver/v/3236939
4. DBA 권한 확인
sysadmin 그룹 확인 : 아래 쿼리 실행
Exec sp_helpsrvrolemember 'sysadmin'
또는 SQL Server Management Studio 개체 탐색기에서 계정클릭 후 Properties 확인
참고 : http://tempdb.tistory.com/52
5. 디폴트 포트(1433) 변경
포트설정 확인 방법 : SQL Server Configuration Manager > SQL Server 네트워크 구성 > MSSQLSERVER에 대한 프로토콜
TCP/IP에서 TCP포트 확인
포트변경후 SQL Server 서비스 재시작 필요
'IT Tech > Infra, 컴퓨터구조' 카테고리의 다른 글
오라클 접속 스크립트 만들기 (0) | 2015.12.28 |
---|---|
metasploitable 이미지 (0) | 2015.12.23 |
Suse 리눅스 다운로드 (0) | 2015.12.21 |
CentOS 다운로드 (0) | 2015.12.21 |
서버 : 접근통제 (0) | 2015.11.22 |