안규 공부방

security > SQL공격의 주범 xp_cmdshell 죽이기

등록일 : 2017-06-30 15:27 조회수 : 93,412

MSSql에서 스토어드 프로시져를 통해 Command Shell 을 실행시킬수 있다. 
이걸 이용해 외부에서 디렉토리 접근등 해킹에 이용될수 있기 때문에 xp_cmdshell 의 사용을 중지시켜 해킹에 대비할수 있다. 

Stored procedure Purpose 
sp_ActiveDirectory_SCP Add, change, or delete Active Directory directory service objects  
sp_adddistpublisher Replication  
sp_adddistributiondb Replication  
sp_attachsubscription Replication  
sp_changedistpublisher Replication  
sp_copysubscription Replication  
sp_MScopysnapshot Replication  
sp_MScopyscriptfile Replication install 
sp_MSget_file_existence Replication install 
sp_MSremove_userscript Replication install 
sp_replicationoption Replication 
sp_vupgrade_replication Replication install 
sp_MSreplremoveuncdir Replication called from distribution database 
sp_MSdeletefoldercontents Replication called from distribution database 
sp_resolve_logins Log shipping  
Sp_set_local_time MSDB 
sp_msx_defect MultiServer administration 
sp_msx_enlist MultiServer administration 

위자료는 xp_cmdshell로 실행시킬수 있는 명령어들.. 

xp_cmdshell 해제법. 


exec sp_dropextendedproc 'xp_cmdshell' 


재등록 


exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll' 


혹시라도 다른 방식으로 서버가 해킹을 당할수도 있다. 
그럴경우 xp_cmdshell 을 재등록 할수 있기 때문에 xplog70.dll 파일을 삭제하는것도 좋은 방법이다. 

하지만 xplog70.dll 파일이 없을경우 

. Xp_sscanf 
. Xp_sprintf 
. Xp_msver 
. Xp_msver 
. Xp_enumgroups 
. Xp_logevent 
. Xp_loginconfig 

이 명령어들이 작동하지 않을수 있으므로 주의가 필요함. 

xplog70.dll을 삭제하고서 SQL Server Restart하면 더이상 sp_addextendedproc를 사용해서 등록할 수 없다. 

쿼리분석기에서 다시 sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'을 실행하면 정상적으로 실행되지만, 
xp_cmdshell 'dir' 와 같이 실행하면, 
ODBC: 메시지 0, 수준 16, 상태 1 
xplog70.dll DLL 또는 이 DLL이 참조하는 DLL 중 하나를 로드할 수 없습니다. 이유: 126(지정된 모듈을 찾을 수 없습니다.). 라는 메세지를 뿌리면서 실패하게 된다. 
 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.