정보보안-이론/KISA주요정보통신기반시설 취약점가이드

[KISA 주요정보통신기반시설] W-11 IIS 디렉토리 검색 비활성화

일반사항

  • 점검내용 : 웹서버 디렉토리 리스팅 차단 설정 여부 점검
  • 점검목적 : 웹서버 특정 폴더에 대한 디렉토리 리스팅 취약점을 제거하여, 불필요한 파일 정보 노출을 차단하기 위함
  • 보안위협 : 웹서버에 디렉토리 리스팅이 제거되지 않은 경우 외부에서 디렉토리 내에 보유하고 있는 모든 파일 목록 확인 및 파일에 대한 접근이 가능하여 주요 정보의 유출의 가능성이 있음
  • 참고 : 디렉토리 리스팅 취약점: 디렉토리에 대한 요청 시 기본 페이지가 호출되어 사용자에게 전송하지만, 기본 페이지가 존재하지 않는 경우 디렉토리 내에 존재하는 모든 파일의 목록을 보여주는 취약점

 

  • 점검대상 및 판단기준
    • 대상 : Window NT, 2000, 2003, 2008, 2012, 2016, 2019
      • 양호 : "디렉토리 검색" 체크하지 않음
      • 취약 : "디렉토리 검색" 체크함

 

  • 점검 및 조치
    • Window NT
      • 시작> 실행> INETMGR> 웹 사이트> 속성> 홈 디렉토리
      •  "디렉토리 검색" 체크 해제
    • Windows 2008(IIS 7.0), 2012(IIS 8.0), 2016(IIS 10.0), 2019(IIS 10.0)
      • 제어판> 관리도구> 인터넷 정보 서비스(IIS) 관리> 해당 웹 사이트> IIS> "디렉토리검색" 선택 후 "사용 안 함" 선택

스크립트

@echo off
chcp 437 >nul 2>&1

:W_11

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%

set OUTPUT_DIRECTORY=C:\INSPECT\%YEAR%_%MONTH%_%DAY%_INSPECTION\
set OUTPUT_FILE=%OUTPUT_DIRECTORY%INSPECTION_OUTPUT.txt
set DETAIL_FILE=%OUTPUT_DIRECTORY%W_11.txt

:: FILE EXISTENCE CHECK
if NOT EXIST %OUTPUT_DIRECTORY% (mkdir %OUTPUT_DIRECTORY%)
echo. >> %DETAIL_FILE%
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 			> %DETAIL_FILE%
echo :: 							>> %DETAIL_FILE%
echo ::  [W-11] IIS Directory Traversal 			>> %DETAIL_FILE% 
echo :: 							>> %DETAIL_FILE%
echo ::  Check whether IIS Directory Traversal Feature		>> %DETAIL_FILE%
echo ::  is unchecked ot not					>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  PASS : IIS Directory Traversal is Unchecked		>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  MADE By REDUCTO https://tutoreducto.tistory.com/	>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::			>> %DETAIL_FILE%
echo. 							>> %DETAIL_FILE%

cd %systemroot%\System32\inetsrc\ >nul 2>&1
appcmd.exe list config | find /i "directoryBrowse enabled' | find /i "false" >nul 2>&1

if %errorlevel% EQU 0 (
  set result=W-11 = PASS
  echo IIS Directory Traversal Disabled >> %DETAIL_FILE%
) else (
  set result=W-11 = FAIL
  echo IIS Directory Traversal Enabled >> %DETAIL_FILE%
)

echo %result%
echo %result% >> %OUTPUT_FILE%

:FINISH
pause >nul 2>&1

 

 

W_11.zip
0.00MB

 

 

 

파일의 검사결과는 C:\INSPECT아래 오늘날짜로 이루어진 폴더에 들어가 있다.

  • INPSECT_OUTPUT.txt : W-11의 검사결과가 PASS / FAIL로 작성되어있다.
  • W_11.txt : 디렉터리 리스팅 설정의 설정현황이 들어가 있다.

첨언

만약 W-10에서 IIS가 돌아가지 않는 상황이라면 미안하지만 W-11은 FAIL로 나온다. 상황을 보고 IIS가 돌아가는 환경에서 사용하자(음. 맞다 코드로 넣으면 되는데 귀찮다.)

 

여담으로 디렉토리 리스팅은 치명적이다. 비단 IIS에서 뿐만인아니라 다른 서버군에서도 uri를 표현하는 방법은 동일하기에, 주의깊게 관심을 가져야할 취약점이다.

 

 

[KISA 주요정보통신기반시설] 취약점 분석 스크립트 올리기

KISA에서 배포하는 기술적 취약점 분석 평가 방법상세가이드라는 가이드가 있다. OS별로, 서버/클라이언트별로 세부항목으로 관리해야하는 기본적인 정보보안 기법이 기재되어있는데, 최근에 사

tutoreducto.tistory.com