IIS 물결표 취약점 수정

IIS 물결표 취약점 수정

우리의 IIS 서버(IIS 7.5, Server 2008 R2) 중 하나가 다음과 같은 공격에 "취약"한 것으로 보입니다.물결표 짧은 파일 이름 공개문제.

그러나 실제로 문제를 해결하는 데 어려움을 겪고 있습니다. 지금까지 나는

  • 8.3 파일 이름을 비활성화하고, 웹 서버를 중지하고, 사이트 디렉터리를 다시 만들고 서비스를 다시 시작했습니다.

  • URL의 물결표에 대한 필터 규칙을 추가했습니다.

여기에 이미지 설명을 입력하세요

  • ANYWHERE 물결표에 대한 필터 규칙을 추가했습니다.

여기에 이미지 설명을 입력하세요

  • IISRESET몇 번

  • web.config관련 필터 규칙이 추가되었는지 확인

.. 하지만 여전히 내 사이트가시험:

java -jar ~/temp/IIS-ShortName-Scanner-master/IIS_shortname_scanner.jar http://www.example.com

[...SNIP...]

Testing request method: "TRACE" with magic part: "/webresource.axd" ...
Testing request method: "DEBUG" with magic part: "" ...
Testing request method: "OPTIONS" with magic part: "" ...
Testing request method: "GET" with magic part: "" ...
Reliable request method was found = GET
Reliable magic part was found = 
144 requests have been sent to the server:

<<< The target website is vulnerable! >>>

이 문제를 해결하려면 또 어떻게 해야 합니까?

편집하다:다음은 DIR /x8.3 파일 이름이 표시되지 않는 것으로 보입니다.

여기에 이미지 설명을 입력하세요

사이트의 앱 풀은 다음과 같습니다(서버의 다른 모든 사이트는 동일함).

여기에 이미지 설명을 입력하세요

편집2: 8.3 파일 이름이 남아 있지 않은지 확인합니다.

여기에 이미지 설명을 입력하세요

답변1

다음을 사용하여 기존의 짧은 파일 이름을 검색해 보십시오 fsutil.

  • fsutil 8dot3name scan /s /v E:\inetpub\wwwroot

그리고 발견되면 제거하십시오.

  • fsutil 8dot3name strip /s /v E:\inetpub\wwwroot

또한 빈 매직 부분이 있는 로그를 보면(magic part: "" 이것이 POC의 버그일 수 있는지 궁금합니다. 이 줄은구성.xml뒤에 추가 쉼표가 있는 것 같습니다 /webresource.axd.

<entry> key="magicFinalPartList">
 <![CDATA[\a.aspx,\a.asp,/a.aspx,/a.asp,/a.shtml,/a.asmx‌​,/a.ashx,/a.config,/a.php,/a.jpg,/webresource.axd,,/a.xxx]]>
</entry>

개발자에게 물어봤습니다. 이에 대해 트위터를 통해 그는 이렇게 답했습니다.

확장이 필요하지 않은 드문 경우입니다. 그러나 최근에는 이로 인해 더 많은 문제가 발생했습니다! 지금 제거하겠습니다.

구성 파일에서 제거했습니다. 이번이 2번째 불만이었으니 변화가 필요한 시점이었습니다.

이제 안전하신 것 같습니다 :)

답변2

또한 "참고: NtfsDisable8dot3NameCreation 레지스트리 항목 변경은 변경 후에 생성된 파일, 폴더 및 프로필에만 영향을 미칩니다. 이미 존재하는 파일은 영향을 받지 않습니다. "

참고: 8.3 파일 이름 생성을 비활성화하면 Windows에서 파일 성능이 향상되지만 일부 응용 프로그램(16비트, 32비트 또는 64비트)은 파일 이름이 긴 파일 및 디렉터리를 찾지 못할 수 있습니다.

답변3

불행하게도 이 문제를 실제로 처리하는 유일한 방법은 Windows 버전에 따라 8.3 이름을 생성하는 기능을 비활성화하는 성가신 일련의 회전입니다.

사용 중인 Windows 버전의 경우:

모든 NTFS 파티션에서 8.3 이름 생성을 비활성화하려면 관리자 권한 명령 프롬프트에서 fsutil.exebehavior setdisable8dot3 1을 입력한 다음 Enter 키를 누릅니다.

원천: http://support.microsoft.com/kb/121007

답변4

새로 배포할 때마다 제거할 수 없기 때문에 가장 좋은 솔루션은 다음과 같습니다.

아래 링크를 통해 사이트의 취약점을 테스트/스캔합니다. (java를 설치하고 테스트/스캔 명령을 실행하세요.)

사이트를 검사하는 명령:

java -jar iis_shortname_scanner.jar 2 20 https://example.com/

기존의 짧은 파일 이름을 검색합니다.

fsutil 8dot3name scan /s /v c:\inetpub\wwwroot

8dot3 이름 생성이 비활성화되어 있는지 또는 활성화되어 있는지 확인하십시오.

fsutil 8dot3name query C:\Release\SiteRootDocumentPath

8dot3 이름 생성이 활성화된 경우 아래 명령을 사용하여 비활성화하십시오.

fsutil 8dot3name set C:\Release\SiteRootDocumentPath 1

8dot3name 속성은 지정된 볼륨에 대해 8dot3 이름 생성을 활성화하도록 설정되거나(0) 지정된 볼륨에서 8dot3 이름 생성을 비활성화하도록 설정됩니다(1).

사이트의 실제(SiteRootDocument) 경로에 코드를 재배포하더라도 짧은 이름의 파일이 생성되지 않습니다.

스캔이 통과됩니다 :)

관련 정보