'webdav'에 해당되는 글 4건

  1. 2017.03.24 IIS 6.0 WebDAV 서비스 원격 코드 실행 취약점 주의
  2. 2010.09.01 DLL 검색 경로 알고리즘 제어 (CWDIllegalInDllSearch) (1)
  3. 2010.08.26 DLL 하이재킹 취약점으로 인한 악성코드 감염 주의
2017.03.24 17:34

IIS 6.0 WebDAV 서비스 원격 코드 실행 취약점 주의

□ 개요

 o Microsoft社의 Windows Server 2003 R2 (IIS 6.0)에서 사용되는 WebDAV 서비스에서 버퍼 오버플로우 취약점이 발견 [1]
 o 공격자는 해당 취약점을 악용하여 원격 코드 실행 등의 피해를 발생시킬 수 있으므로 대응 방안에 따른 조치 권고


□ 내용
 o WebDAV 서비스의 ScStoragePathFromUrl 함수에서 발생하는 버퍼 오버플로우 취약점(CVE-2017-7269)
 
□ 영향을 받는 제품 및 버전
  o Windows Server 2003 R2 IIS 6.0 버전의 WebDAV 서비스
 
□ 대응 방안
 o 서버 내 WebDAV 서비스 비활성화
 o WebDAV 서비스를 비활성화 할 수 없는 경우, 운영체제 및 IIS 버전 업그레이드 권고
    ※ Windows Server 2003 R2 버전은 더 이상 보안 업데이트를 지원하지 않음

 
□ 기타 문의사항
 o WebDAV : HTTP 프로토콜의 확장으로, 월드 와이드 웹 서버에 저장된 문서와 파일을 편집하고 관리하는 사용자들 사이에

    협업을 용이하게 해주는 서비스
 
□ 기타 문의사항
 o 한국인터넷진흥원 인터넷침해대응센터: 국번없이 118
 
[참고사이트]
 [1] https://github.com/edwardz246003/IIS_exploit


Trackback 0 Comment 0
2010.09.01 17:08

DLL 검색 경로 알고리즘 제어 (CWDIllegalInDllSearch)

CWDIllegalInDllSearch 레지스트리 키 작동 방식

응용 프로그램이 정규화된 경로를 지정하지 않은 상태로 DLL을 동적으로 로드하면 Windows는 잘 정의된 디렉터리 집합을 검색하여 이 DLL을 찾으려고 합니다. 이러한 디렉터리 집합을 DLL 검색 경로라고 합니다. Windows는 디렉터리에서 DLL을 찾는 즉시 해당 DLL을 로드합니다. Windows는 DLL 검색 순서의 어떤 디렉터리에서도 해당 DLL을 찾지 못하면 DLL 로드 작업 실패 결과를 반환합니다.


LoadLibrary 함수 및 LoadLibraryEx 함수는 DLL을 동적으로 로드하는 데 사용됩니다. 다음은 이러한 두 함수의 DLL 검색 순서입니다.
  1. 응용 프로그램이 로드되는 디렉터리
  2. 시스템 디렉터리
  3. 16비트 시스템 디렉터리
  4. Windows 디렉터리
  5. CWD(현재 작업 디렉터리)
  6. PATH 환경 변수에 나열되는 디렉터리
새로 도입된 CWDIllegalInDllSearch 레지스트리 키를 사용하여 컴퓨터 관리자는 LoadLibraryLoadLibraryEx에 사용되는 DLL 검색 경로 알고리즘의 동작을 수정할 수 있습니다. 이 레지스트리 키를 사용하면 특정 종류의 디렉터리를 건너뛸 수 있습니다.

CWDIllegalInDllSearch 레지스트리 키는 다음 경로에 추가될 수 있습니다.
  • 컴퓨터의 모든 디렉터리에 대해 이 레지스트리 키를 사용하려면:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  • 컴퓨터의 지정된 응용 프로그램에 대해 이 레지스트리 키를 사용하려면:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<application binary name>
    CWDIllegalInDllSearch 레지스트리 키 값은 LoadLibraryLoadLibraryEx의 동작을 다음과 같이 변경합니다.

시나리오 1: 응용 프로그램이 C:\Program Files 와 같은 로컬 폴더에서 시작되는 경우

CWDIllegalInDllSearch LoadLibrary 및 LoadLibraryEx에서 DLL 검색 경로의 동작
0xFFFFFFFF 기본 DLL 검색 순서에서 현재 작업 디렉터리 제거
0 앞서 언급한 기본 DLL 검색 경로 사용
1 현재 작업 디렉터리가 WebDAV 폴더로 설정된 경우 현재 작업 디렉터리에서의 DLL 로드 차단
2 현재 작업 디렉터리가 원격 폴더로 설정된 경우 현재 작업 디렉터리에서의 DLL 로드 차단
키 또는 다른 값 없음 앞서 언급한 기본 DLL 검색 경로 사용

시나리오 2: 응용 프로그램이 \\remote\shareremote\share 와 같은 원격 폴더에서 시작되는 경우

CWDIllegalInDllSearch LoadLibrary 및 LoadLibraryEx에서 DLL 검색 경로의 동작
0xFFFFFFFF 기본 DLL 검색 순서에서 현재 작업 디렉터리 제거
0 앞서 언급한 기본 DLL 검색 경로 사용
1 현재 작업 디렉터리가 WebDAV 폴더로 설정된 경우 현재 작업 디렉터리에서의 DLL 로드 차단
2 현재 작업 디렉터리가 원격 폴더로 설정된 경우 현재 작업 디렉터리에서의 DLL 로드 허용 WebDAV 공유에서 로드된 DLL은 CWD가 WebDAV 공유로 설정된 경우 차단되는 점을 참고하십시오.
키 또는 다른 값 없음 앞서 언급한 기본 DLL 검색 경로 사용

시나리오 3: 응용 프로그램이 http://remote/share 와 같은 WebDav 폴더에서 시작되는 경우

CWDIllegalInDllSearch LoadLibrary 및 LoadLibraryEx에서 DLL 검색 경로의 동작
0xFFFFFFFF 기본 DLL 검색 순서에서 현재 작업 디렉터리 제거
키 또는 다른 값 없음 앞서 언급한 기본 DLL 검색 경로 사용

예제

예제 1: 로컬 컴퓨터에 설치되어 있는 모든 응용 프로그램에 대한 WebDAV 공유에서 DLL을 로드할 수 없게 설정하는 방법

  1. 컴퓨터에 관리자로 로그온합니다.
  2. 레지스트리 편집기를 엽니다.
  3. 다음 레지스트리 하위 키를 찾아서 클릭합니다.
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  4. 세션 관리자를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 DWORD 값을 클릭합니다.
  5. CWDIllegalInDllSearch를 입력한 후수정을 클릭합니다.
  6. 값 데이터 상자에서 1을 입력한 다음 확인을 클릭합니다.

예제 2: 로컬 컴퓨터에 설치되어 있는 특정 응용 프로그램에 대해서만 WebDAV 공유에서 DLL을 로드할 수 없게 설정하는 방법

  1. 컴퓨터에 관리자로 로그온합니다.
  2. 레지스트리 편집기를 엽니다.
  3. 다음 레지스트리 하위 키를 찾아서 클릭합니다.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<application binary name>
  4. 응용 프로그램 바이너리 이름을 갖는 키가 없는 경우 만들어야 합니다.
  5. <응용 프로그램 바이너리 이름>을 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 DWORD 값을 클릭합니다.
  6. CWDIllegalInDllSearch를 입력한 후수정을 클릭합니다.
  7. 값 데이터 상자에서 1을 입력한 다음 확인을 클릭합니다.

예제 3: 로컬 컴퓨터에 설치되어 있는 특정 응용 프로그램에 대해서만 원격(SMB) 공유에서 DLL을 로드할 수 없게 설정하는 방법

  1. 컴퓨터에 관리자로 로그온합니다.
  2. 레지스트리 편집기를 엽니다.
  3. 다음 레지스트리 하위 키를 찾아서 클릭합니다.
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\<application binary name>
  4. 응용 프로그램 바이너리 이름을 갖는 키가 없는 경우 만들어야 합니다.
  5. <응용 프로그램 바이너리 이름>을 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 DWORD 값을 클릭합니다.
  6. CWDIllegalInDllSearch를 입력한 후수정을 클릭합니다.
  7. 값 데이터 상자에서 2을 입력한 다음 확인을 클릭합니다.

Microsoft 다운로드 센터에서 다음 파일을 다운로드할 수 있습니다.

Windows XP용 업데이트


다운로드
지금 패키지 다운로드

Windows XP x64 Edition용 업데이트


다운로드
지금 패키지 다운로드

Windows Server 2003용 업데이트


다운로드
지금 패키지 다운로드

Windows Server 2003 x64 Edition용 업데이트


다운로드
지금 패키지 다운로드

Itanium 기반 시스템용 Windows Server 2003 업데이트


다운로드
지금 패키지 다운로드

Windows Vista용 업데이트


다운로드
지금 패키지 다운로드

x64 기반 시스템용 Windows Vista 업데이트


다운로드
지금 패키지 다운로드

Windows Server 2008용 업데이트


다운로드
지금 패키지 다운로드

Windows Server 2008 x64 Edition용 업데이트


다운로드
지금 패키지 다운로드

Itanium 기반 시스템용 Windows Server 2008 업데이트


다운로드
지금 패키지 다운로드

Windows 7용 업데이트


다운로드
지금 패키지 다운로드

x64 기반 시스템용 Windows 7 업데이트


다운로드
지금 패키지 다운로드

Itanium 기반 시스템용 Windows Server 2008 R2 업데이트


다운로드
지금 패키지 다운로드

Windows Server 2008 R2 x64 Edition용 업데이트


다운로드
지금 패키지 다운로드


출처 : support.microsoft.com

Trackback 1 Comment 1
  1. Favicon of https://blog.pages.kr 날으는물고기 2010.09.01 17:20 신고 address edit & del reply

    주의하실 점은, 이 툴은 보안 취약점을 완전히 없애주는 것이 아니고, 공격 경로 중 하나를 차단하기 위한 임시 방편입니다. 레지스트리 키 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager의 DWORD 형식 CWDIllegalInDLLSearch 값을 설정해 주는 것이니 다시 원래대로 되돌리려면 이 값을 0으로 해 주시면 됩니다.

2010.08.26 11:55

DLL 하이재킹 취약점으로 인한 악성코드 감염 주의

□ 개요

   o 일부 응용프로그램에서 로드하는 라이브러리 파일의 경로를 부적절하게 검증함으로 인해 
     원격코드실행 취약점이 발생 [1, 3, 4, 5, 10]
   o 공격자는 취약한 프로그램을 사용하는 파일을 USB 이동저장매체, 압축 해제된 파일, WebDav, 
     원격 네트워크 공유 등을 통해 열도록 유도하여, 동일한 경로의 악의적인 라이브러리 파일이
     로드되어 실행되게 함으로써 악성코드를 유포할 수 있음 [1, 6, 7]
   o 취약점을 공격하는 개념증명코드가 공개되었고 다수의 응용프로그램이 취약할 것으로 
     추정[2, 5]되므로, 개발자의 취약점 점검 조치 및 사용자의 각별한 주의가 요구됨

□ 해당 시스템
   o 영향 받는 소프트웨어 [1, 5]
     - 외부 라이브러리를 안전하지 않은 방식으로 로드하는 응용프로그램
       ※ LoadLibrary() 및 LoadLibraryEx()에서 라이브러리 파일의 절대 경로를 인자로 전달하지 
          않은 경우 취약점이 발생할 수 있음

□ 권장 조치 방안
   o 해당 취약점은 취약한 응용프로그램을 개발한 제작사에서 보안 업데이트를 발표해야할
     사안으로, 응용프로그램 개발자는 다음과 같은 조치를 권장함
     - 응용프로그램이 취약한지 여부를 "DLL Hijacking Audit Tool[11]"로 판단
     - Microsoft의 MSDN 사이트에서 DLL 검색 순서[8] 및 DLL 보안[9]에 관한 문서를 참고하고,
       외부 라이브러리를 안전하게 로드할 수 있도록 해당 취약점을 패치
   o 일반 사용자는 취약점을 통한 공격을 완화시키기 위해 다음과 같은 설정 적용
     - Microsoft 기술자료 2264107[12]를 참고하여 WebDAV와 원격 네트워크 공유로부터
       라이브러리가 로딩되지 않도록 설정
     - WebClient 서비스를 비활성화
       * 시작 → 실행 → services.msc 입력 후 확인 → WebClient 서비스 속성 → 시작 유형을
         "사용 안 함"으로 설정 및 서비스 중지 선택 후 확인
     - 방화벽에서 TCP 139, 145 포트 차단
       ※ WebClient에 종속적이거나 해당 포트를 사용하는 윈도우 서비스나 응용프로그램을 사용하는
           시스템은, 기능상 장애가 발생할 수 있음
   o 취약점에 의한 피해를 줄이기 위하여 사용자는 다음과 같은 사항을 준수해야함
     - 파일공유 기능 등을 사용하지 않으면 비활성화하고 개인방화벽을 반드시 사용
     - 사용하고 있는 백신프로그램의 최신 업데이트를 유지하고, 실시간 감시기능을 활성화
     - 신뢰되지 않는 웹 사이트의 방문 자제
     - 출처가 불분명한 이메일의 링크 클릭하거나 첨부파일 열어보기 자제


□ 용어 정리
   o DLL(Dynamic Link Library, 동적 연결 라이브러리): 동시에 하나 이상의 프로그램에서 사용될
     수 있는 코드와 데이터를 포함한 라이브러리로, DLL을 사용하면 프로그램을 분리된 구성 요소로 
     모듈화하여 작성할 수 있음
   o WebDAV(Web Distributed Authoring and Versioning): 웹 기반으로 파일의 생성, 복사,
     이동 및 삭제와 같은 기능이 수행되는 방식을 정의하는 HTTP 확장
     
□ 기타 문의사항
   o 한국인터넷진흥원 인터넷침해대응센터: 국번없이 118

□ 참고사이트
   [1] http://www.microsoft.com/technet/security/advisory/2269637.mspx
   [2] http://www.theregister.co.uk/2010/08/20/windows_code_execution_vuln/
   [3] http://isc.sans.edu/diary.html?storyid=9445
   [4] http://acrossecurity.blogspot.com/2010/08/binary-planting-update-day-6.html
   [5] http://www.acrossecurity.com/advisories.htm
   [6] http://blog.metasploit.com/2010/08/exploiting-dll-hijacking-flaws.html
   [7] http://blog.rapid7.com/?p=5325
   [8] http://msdn.microsoft.com/en-us/library/ms682586(VS.85).aspx
   [9] http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspx
   [10] http://blog.zoller.lu/2010/08/cve-2010-xn-loadlibrarygetprocaddress.html
   [11] https://www.metasploit.com/redmine/projects/framework/repository/raw/external/
source/DLLHijackAuditKit.zip

   [12] http://support.microsoft.com/kb/2264107


Trackback 0 Comment 0