>  기사  >  주제  >  IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

coldplay.xixi
coldplay.xixi앞으로
2021-04-16 17:13:186836검색

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

1. IIS란 무엇입니까

인터넷 정보 서비스(IIS, 이전에 인터넷 정보 서버로 알려짐) 인터넷 정보 서비스는 Microsoft에서 제공하는 확장 가능한 웹 서버로, HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP, NNTP 등 처음에는 Windows NT 시리즈에서 사용되었으며 나중에 Windows 2000, Windows XP Professional, Windows Server 2003 및 후속 버전에 내장되었지만 Windows XP Home 버전에는 IIS가 없습니다. IIS는 현재 Windows 시스템에서만 사용할 수 있으며 다른 운영 체제에서는 사용할 수 없습니다.

2017년 2월 Netcraft의 데이터에 따르면 IIS는 "가장 바쁜 수백만 개의 웹 사이트" 중 10.19%의 시장 점유율을 기록하여 Apache 41.41% 및 Nginx 28.34%에 이어 세계에서 세 번째로 큰 웹 서버가 되었습니다. 현재 널리 사용되는 Windows 버전에는 IIS 서비스가 기본적으로 설치되어 있지만 동시에 IIS의 보안은 업계에서 비판을 받고 있습니다. IIS에 고위험 취약점이 나타나면 위협은 매우 심각해질 것입니다.

권장(무료): iis

IIS 취약점을 다루기 전에 먼저 다양한 Windows 시스템에 기본으로 내장된 IIS 버전을 이해하여 IIS 취약점의 영향 범위를 더 잘 이해하고 구별해 보겠습니다.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개 그림 1 각 Windows 버전의 기본 IIS 버전

2. IIS 취약점 백과사전

Qianlimu Lab은 지난 15년 동안 IIS 관련 취약점을 수집했으며 총 39개의 중간 및 고위험 취약점이 있습니다. 15년 만에 발생한 취약점(MS15-034) HTTP.sys 원격 코드 실행 취약점과 2016년(MS16-016) WebDAV 권한 상승 취약점이 특히 널리 퍼져 있습니다.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

그림 2 지난 15년 동안 발생한 IIS 취약점의 전체 목록

지난 10년 동안 위의 IIS 취약점을 읽은 후 이 기사의 주인공인 "IIS를 왜 보지 못하셨나요?"라고 물으실 수도 있습니다. 짧은 파일 취약점"? ! IIS 취약점 계열을 이해하기 전에 먼저 IIS 짧은 파일을 통해 Windows에서 IIS의 일부 기능에 대해 알아봅니다.

3. IIS 짧은 파일

1. IIS 짧은 파일 취약점의 근원

Microsoft IIS 짧은 파일/폴더 이름 정보 유출은 2010년 8월 취약점 연구팀의 Soroush Dalili에 의해 처음 발견되었습니다. 1이며, 공급업체(Microsoft Corporation)에 2010년 8월 3일에 통보되었습니다. Microsoft는 2010년 12월 1일과 2011년 1월 4일에 다음 버전이 수정될 것이라고 응답했습니다. 2012년 6월 29일에 이 취약점이 공개되었습니다(중간 위험).

이 취약점은 실제로 HTTP 요청의 이전 DOS 8.3 이름 규칙(SFN) 물결표(~) 물결표로 인해 발생합니다. 이를 통해 원격 공격자는 웹 루트(액세스할 수 없어야 함) 아래의 파일 및 폴더 이름을 노출할 수 있습니다. 공격자는 일반적으로 외부에서 직접 접근하기 어려운 중요한 파일을 찾아내고, 애플리케이션 인프라에 대한 정보를 얻을 수 있습니다.

Microsoft IIS 물결표로 인한 정보 유출은 전 세계 네트워크에서 가장 흔한 중간 위험 취약점입니다. 이 문제는 적어도 1990년부터 존재해 왔지만 감지하기 어렵거나 해결하기 어렵거나 완전히 무시하기 쉬운 것으로 입증되었습니다. S2.

IIS 짧은 파일 취약점 범위 및 피해

2.1 영향을 받는 버전:

IIS 1.0, Windows NT 3.51
IIS 3.0, Windows NT 4.0 서비스 팩 2

IIS 4.0, Windows NT 4.0 옵션 팩
IIS 5.0 , Windows 2000
IIS 5.1, Windows XP Professional 및 Windows XP Media Center Edition
IIS 6.0, Windows Server 2003 및 Windows XP Professional x64 Edition
IIS 7.0, Windows Server 2008 및 Windows Vista
IIS 7.5, Windows 7(원격 활성화 또는 web.config 없음)

IIS 7.5, Windows 2008(클래식 파이프라인 모드)

참고: .Net Framework 4를 사용할 때 IIS는 영향을 받지 않습니다.

(위 데이터 소스:
https: //www.securityfocus .com/archive/1/523424)

위의 영향을 받는 범위는 주로 HTTP GET 방식에 대한 것이며 동시에 ASP.NET 응용 프로그램 설치가 필요한 것으로 확인되었습니다. 이 취약점의 발견자는 2014년에 다시 공개했습니다. IIS 7.5(Windows 2008 R2) 및 IIS 8.0(Windows 2012)을 테스트하는 동안 GET 메서드 대신 OPTIONS를 사용할 때 요청에 짧은 파일 이름이 존재하는 경우 IIS A 다른 오류 메시지가 반환됩니다. 공격자는 이 기능을 이용하여 최신 IIS 버전에서 짧은 파일 이름을 기반으로 파일 또는 디렉터리 검색을 구현할 수 있습니다.

현재 IIS는 DEBUG, OPTIONS, GET, POST, HEAD 및 TRACE의 6가지 HTTP 방법을 지원합니다. Qianlimu 연구소에서 IIS 8.0, IIS 8.5 및 IIS의 짧은 파일 이름이 확인되었습니다. 10.0을 모두 사용할 수 있습니다. OPTIONS 및 TRACE 방법을 통해 추측이 성공했습니다. 따라서 위의 영향을 받는 버전은 다음 버전과 함께 추가되어야 합니다:

IIS 8.0, Windows 8, Windows Server 2012

IIS 8.5, Windows 8.1, Windows Server 2012 R2

IIS 10.0, Windows 10, Windows Server 2016

IIS의 모든 버전에서 짧은 파일명 유출 문제가 있는 것을 볼 수 있는데, 마이크로소프트는 이 문제를 무시한 것 같습니다. IIS 짧은 파일 취약점은 보안 업데이트 표준을 충족하지 않으며 다음 논리 버전에서 언제 해결될지 결정해야 한다는 취약점 발견자에 대한 Microsoft의 답변을 보면 알 수 있습니다.

2.2 취약점 위험:

2.2.1 "~" 문자를 사용하여 짧은 파일/폴더 이름을 추측하고 노출합니다(주요 위험).

Windows는 8.3에서 MS-DOS와 호환되는(짧은) 파일 이름 생성을 지원합니다. format - MS-DOS 또는 16비트 Windows 기반 프로그램이 이러한 파일에 액세스할 수 있도록 합니다. cmd 아래에 IIS 웹 사이트 루트 디렉터리 C:inetpubwwwroot를 입력하고 "dir /x"를 입력하여 짧은 파일 이름의 효과를 확인합니다.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

그림 3 IIS 짧은 파일 이름

위 그림은 기본 IIS 10.0 빌드입니다. Windows 10에서는 사이트 루트 디렉터리에 iisstart.htm과 iisstart.png가 웹 사이트의 기본 파일입니다. 파일 이름 접두어 문자 길이가 9자를 넘지 않아 짧은 파일 이름이 없습니다. IIS10test.html은 수동으로 추가한 웹사이트 파일입니다. 파일 이름 접두사 문자 길이는 9자에 달하며 해당 짧은 파일 이름은 IIS10T~1.HTM입니다. 이 기능에 따르면 짧은 파일 이름에 접근하여 해당 파일에 간접적으로 접근할 수 있습니다.

짧은 파일 이름의 길이는 고정되어 있으므로(xxxxxx~xxxx) 공격자는 짧은 파일 이름을 직접 무차별 대입하여 해당 파일에 접근할 수 있습니다.

예를 들어 데이터베이스 백업 파일 backup_20180101.sql이 있고 해당 짧은 파일 이름은 backup~1.sql입니다. 따라서 공격자는 전체 파일명을 크랙하지 않고 무차별 대입 크래킹으로 backup~1.sql 파일을 다운로드할 수 있다.

IIS 짧은 파일 이름은 다음과 같은 특징을 갖습니다.

1. 처음 6자만 직접 표시되고 그 이후의 문자는 ~1로 참조됩니다. 유사한 파일 이름을 가진 파일이 여러 개 있는 경우에도 숫자 1이 증가할 수 있습니다(이름의 처음 6자리가 동일해야 하며, 접미사 이름의 처음 3자리가 동일해야 함).

2. 이름의 최대 길이는 3자리이며, 3자를 초과하는 긴 파일은 짧은 파일 이름을 생성합니다.

3. 긴 파일 이름에는 다음이 포함됩니다. 여러 ".", 파일 이름의 마지막 "."는 짧은 파일 이름으로 사용됩니다. 파일 이름 접미사

5. 긴 파일 이름 접두사/폴더 이름의 문자 길이는 0- 9 및 Aa-Zz이며 짧은 파일 이름을 생성하려면 9자 이상이 필요합니다. 공백이나 기타 특수 문자가 포함되어 있으면 길이에 관계없이 짧은 파일이 생성됩니다.

GET을 사용할 수 있습니다. .net이 활성화된 IIS에서 짧은 파일 이름을 무작위로 열거하는 방법입니다. 그 이유는 공격자가 IIS에 요청을 보내기 위해 와일드카드 "*"를 사용하기 때문입니다. 파일 경로에 "~" 요청이 포함되어 있을 때. , 해당 응답이 다릅니다. 즉, 반환된 HTTP 상태 코드와 오류 메시지가 다릅니다. 이 기능을 기반으로 HTTP 응답에 따라 사용 가능한 파일과 사용할 수 없는 파일을 구분할 수 있습니다. 아래 그림과 같이 IIS 버전별로 반환되는 정보의 차이:

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개그림 4 IIS 5.0 ~ IIS 7. 합법 및 불법 IIS 짧은 파일 추측 응답 정보를 보여줍니다.

액세스 존재하는 생성된 짧은 파일 이름은 404를 반환합니다. 존재하지 않는 생성된 짧은 파일 이름에 액세스하면 400이 반환됩니다.

그림 5 IIS를 사용하여 상태 코드를 추측하는 프로세스

위 방법은 다음을 사용하는 것입니다. 낮은 버전의 IIS + ASP.NET 환경에서 GET 메서드를 사용하여 짧은 파일 이름이 추측될 때까지 반복적으로 추측합니다.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개그러나 Qianlimu 연구소는 실제 환경에서 IIS 상위 버전(예: IIS 8.0/IIS 8.5/IIS 10.0)에서는 asp.net이 설치되어 있지 않더라도

OPTIONS 및 TRACE를 통해 성공적으로 추측할 수 있음을 확인했습니다. 방법

. 이 두 메서드에서 반환되는 HTTP 상태 코드 유형은 위 스크린샷과 약간 다르지만 이를 사용하는 또 다른 방법입니다.

2.2.2 .Net Framework 서비스 거부 공격(측면 위험)

Sorush Dalili의 연구에 따르면 공격자가 폴더 이름에 불법 .Net 파일 요청을 보내면 .NeFramework는 모든 루트 디렉터리를 재귀적으로 검색하여 리소스를 소비합니다. 웹 사이트 리소스 및 DOS 문제를 유발합니다. Microsoft는 이 위험 요소가 복구 가능한 DOS이며 후속 SP 버전에서 수정될 것이라고 생각하므로 여기서는 논의하지 않습니다. 3.

IIS 짧은 파일 취약점 재현 및 악용

                                IIS 짧은 파일 취약점 재현 

3.1.1 취약점 환경 구축  Win 10 기반의 기본 IIS 10.0 설치(APS는 설치되어 있지 않습니다. NET)

IIS 짧은 파일 취약점 스캔 Java 프로그램(Java 환경 변수 구성 필요)

3.1.2 취약점 환경 디버깅 준비

IIS가 성공적으로 설치되면 C 드라이브 디렉터리에 intpub 디렉터리가 기본적으로 생성되며, 웹사이트의 루트 디렉터리 C:inetpubwwwroot에 위치하며 루트 디렉터리에 짧은 파일 이름이 있는지 확인하세요.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

위 그림에서 볼 수 있듯이 기본 IIS 10.0 웹 사이트 루트 디렉터리에는 짧은 파일 이름이 없고 기본 htm 및 png 파일만 있으며 이름 길이가 짧은 파일 생성 요구 사항을 충족하지 않습니다. 다음은 IIS 짧은 파일 스캐너를 사용하여 짧은 파일 정보 유출 취약점이 있는지 탐지합니다.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

3.1.3 취약점 환경 재현

웹사이트 "IIS10test.html"의 긴 파일 이름을 수동으로 생성하고, 그리고 해당 짧은 파일 이름 "IIS10T~1.HTM"을 자동으로 생성합니다

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

IIS 짧은 파일 스캐너를 사용하여 다시 스캔한 결과, 스캔 결과 짧은 파일 취약점이 발견되었으며 이를 통해 짧은 파일 이름을 성공적으로 추측했습니다. HTTP OPTIONS 방법: IIS10T.HTM​​​

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

취약점 스캐너를 수정하고 OPTIONS 방법에 주의를 기울여 성공적으로 추측할 수 있는 다른 HTTP 방법이 있는지 확인해보세요.

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

확인 결과 OPTIONS 메서드 외에도 HTTP TRACE 메서드도 짧은 파일 이름을 성공적으로 추측할 수 있는 것으로 나타났습니다.

3.1.4 IIS 취약점 OPTIONS 및 TRACE 메서드 추측 분석

OPTIONS 메서드 추측 분석

위의 OPTIONS 메서드는 짧은 파일 이름을 추측하기 위해 196번 요청했으므로 추측 성공은 404, 추측 실패는 200을 반환합니다. 실패한 조합이 많으므로 다음에서는 404 추측 성공 요청이 OPTIONS 메서드를 통해 짧은 파일 이름 IIS10T.HTM을 얻는 방법을 주로 분석합니다. 아래와 같이:

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

TRACE 메소드 추측 분석

TRACE 메소드를 통해 추측하는 과정은 기본적으로 위와 동일하지만, HTTP 메소드가 추측에 실패했을 때 반환되는 상태 코드가 200이 아니지만, 501(실행되지 않음).

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개3.2IIS 짧은 파일 취약점Exploit

1. 파일의 전체 이름을 추측하는 심층 폭발

IIS 짧은 파일을 통해 추측한 짧은 파일 이름 취약점, 계속해서 전체 이름을 추측해야 합니다. IIS에서 액세스할 수 있습니다. 즉, IIS는 보안상의 이유로 짧은 파일 이름 액세스를 지원하지 않습니다. Soroush Dalili가 제공한 파일의 전체 이름을 추측하는 방법은 다음과 같습니다.

1) 대상 웹사이트 또는 동일한 유형의 웹사이트를 크롤링하여 사전 라이브러리를 크롤링하고 구축한 후 얻은 짧은 파일 이름을 사용합니다. 나머지 문자를 추측하려면

2) fuzzdb(애플리케이션 퍼징 데이터베이스)를 사용하여 추측하세요.

3) OWASP의 dirbuster(경로 및 웹 페이지 무차별 대입 크래킹 도구)와 결합됩니다.

Github의 한 연구원은 Python을 사용하여 위 방법을 구현했으며, IIS 짧은 파일 취약점을 활용하여 웹사이트 백엔드의 사용자 이름과 비밀번호를 얻었습니다.

참고: 연구 보고서 주소: https://webbreacher.com/2014/10/23/tilde-enumeration/ (권장)

python 프로그램 다운로드: https://github.com/WebBreacher/tilde_enum (권장)

2. 짧은 파일 기능을 지원하는 소프트웨어(Apache, WordPress)와 결합

Acunetix 연구에 따르면 Apache가 Windows에서 실행될 때 긴 파일이 생성되면 긴 파일을 추측할 필요가 없으며, 짧은 파일은 파일을 직접 다운로드할 수 있습니다. 예를 들어, backup_20180101.sql이라는 긴 파일에는 BACKUP~1.SQL이라는 짧은 파일이 있습니다. 공격자는 해당 파일에 직접 접근하여 다운로드하기 위해 BACKUP~1.SQL만 제출하면 됩니다.

또한 일부 학자들은 워드프레스 백업 플러그인을 설치한 후 짧은 파일명을 통해 워드프레스 블로그의 백업 파일에 성공적으로 접근했다는 사실을 보여주었습니다.

3. 기본 및 Windows 인증 우회

Sorush Dalilide의 연구에서는 특정 IIS 서버 구성에서 기본 및 Windows 인증을 우회할 수 있으며 인증 디렉터리의 파일을 추측할 수 있다고 언급했습니다. 예를 들어 인증이 활성화된 디렉터리의 파일에 액세스해야 하는 경우(예: 이 디렉터리는 "AuthNeeded") 다음 방법으로 액세스할 수 있습니다.

/AuthNeeded::$Index_Allocation/*~1*/ .aspx 또는

/AuthNeeded :$I30:$Index_Allocation/*~1*/.aspx

4. IIS 짧은 파일 취약점의 제한 사항

이 취약점에는 다음과 같은 제한 사항이 있습니다.

1) 이 취약점은 처음 6자를 판별하십시오. 다음 문자가 너무 길거나 특수 문자가 포함되어 있으면 추측하기 어렵습니다.

2) 파일 이름 자체가 너무 짧으면(짧은 파일 이름 없음) 추측도 불가능합니다.

3) 파일 이름의 처음 6자리에 공백이 포함된 경우 8.3 형식의 짧은 파일 이름이 보완되어 실제 파일 이름과 일치하지 않습니다.

4) 폴더이름의 처음 6글자가 "."로 점으로 표시되어 있으면 스캐너는 폴더가 아닌 파일로 인식하여 결국 잘못된 경보가 표시됩니다. 5) 중국어 파일 이름은 지원되지 않습니다. 중국어 파일과 중국어 폴더는 포함됩니다. 한자 1자는 영어 2자와 동일하므로 4자 이상의 한자는 짧은 파일 이름을 생성하지만 IIS는 중국어 추측을 지원하지 않습니다.

5. IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개IIS 짧은 파일 취약점 솔루션

IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개

5.1 범용 취약점 수정 솔루션

1) CMD는 NTFS 8.3 파일 형식에 대한 지원을 끕니다.예: (1은 해제, 0은 설정을 의미)

Windows Server 2008 R2:

짧은 파일 이름 기능 활성화 여부 쿼리:

fsutil

8

dot3name query이 기능 끄기: fsutil 8dot3name 1세트

Windows Server 2003:

이 기능을 끄세요: fsutil Behavior set 비활성화8dot3 1

shutdown 명령은 시스템에 따라 약간 다릅니다. 이 기능은 기본적으로 활성화되어 있으며 대부분의 사용자에게는 활성화할 필요가 없습니다. .

2) 짧은 파일 이름 기능을 비활성화하도록 레지스트리를 수정합니다. 단축키 Win+R을 눌러 명령 창을 열고, regedit를 입력하여 레지스트리 창을 엽니다.

경로 찾기:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem, NtfsDisable8dot3NameCreation 값을 다음으로 설정 1, 1은 짧은 파일 이름 형식을 생성하지 않음을 의미합니다.

수정이 완료된 후 시스템을 다시 시작해야 적용됩니다.

참고: 이 방법은 NTFS8.3 형식의 파일 이름 생성만 금지할 수 있습니다. 기존 파일 이름은 제거할 수 없으며 다시 시작해야 합니다.

다음 두 가지 방법은 GET 방법을 완화하는 데에만 적합하며 다른 방법은 여전히 ​​추측할 수 있습니다.

3) 웹 서비스 확장 끄기 - ASP.NET

4) netFramework를 버전 4.0 이상으로 업그레이드

위 내용은 IIS 짧은 파일 이름 유출 취약점에 대한 수정 사항 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제