English
◀◁ 뒤로
취약점ID 25008
위험도 40
포트 1433
프로토콜 TCP
분류 DB
상세설명 확장 Stored Procedure인 xp_cmdshell은 사용자가 명령행 라인 프롬프트와 같이 MS SQL 서버에서 운영체제 명령들을 수행시킬 수 있게 해 준다.
비록 마이크로소프트사에서는 설치 시에 'sa' 계정에 대한 패스워드를 설정하도록 하고 있지만 많은 서버들이 취약한 채로 있다. MS SQL 설치 시에 "sa" 계정 패스워드를 설정하지 않거나 추측 가능하게 설치된다면 취약하다. 일단 취약한 서버가 발견된다면 원격지의 공격자는 MS-SQL의 Stored Procedure "xp_cmdshell"을 사용하여 임의의 명령을 수행시킬 수 있다.
Spida 혹은 CBlade와 같은 다양한 웜들은 패스워드를 가지지 않은 "sa" 계정들을 가진 Microsoft SQL 서버를 찾아 로그인을 시도한다. 일단 취약한 컴퓨터가 발견되면 웜들은 대상을 감염시키고 외부 호스트로 설정정보와 패스워드 정보를 보내며 새로운 대상을 찾아 스캐닝을 시작한다.

* 참고 사이트:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q322336
http://www.iss.net/security_center/static/7610.php
http://www.iss.net/security_center/static/9124.php
http://www.iss.net/security_center/alerts/advise118.php
http://www.kb.cert.org/vuls/id/635463
http://www.securiteam.com/windowsntfocus/5BP0L1P7PA.html
http://www.securiteam.com/tools/5GP081P75C.html
http://www.securiteam.com/windowsntfocus/5WP0N0K75U.html

* 영향을 받는 플랫폼:
Microsoft SQL Server Any version
Microsoft Data Engine (MSDE) Any version
해결책 만약 'sa' 계정이 패스워드를 가지고 있지 않다면 추측하기 어려운 것으로 설정하여야 한다. 패스워드를 설정하기 위해서는 SQL Query Window를 통하여 sp_password 라는 Stored Procedure를 사용할 수 있다. 예를들어, SA 패스워드를 NULL에서 "complexpwd"로 설정하기 위해서는 다음과 같이 할 수 있다:

exec sp_password NULL,'complexpwd','sa'

-- 그리고 --

Trace 파일로부터 xp_cmdshell을 통하여 수행된 명령을 조사한다. sa 계정만이 xp_cmdshell 문을 실행시킬 수 있도록 서버를 설정하거나 아예 xp_cmdshell를 제거한다.
관련 URL (CVE)
관련 URL (SecurityFocus)
관련 URL (ISS)