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

[KISA 주요정보통신기반시설] W-12 IIS CGI 실행 제한

일반사항

  • 점검내용 : IIS CGI 실행 제한 설정 여부 점검
  • 점검목적 : CGI 스크립트를 정해진 디렉토리에서만 실행되도록 하여 악의적인 파일의 업로드 및 실행을 방지하기 위함
  • 보안위협 : 게시판이나 자료실과 같이 업로드 되는 파일이 저장되는 디렉토리에 CGI 스크립트가 실행 가능한 경우 악의적인 파일을 업로드하고 이를 실행하여 시스템의 중요 정보가 노출될 수 있으며 침해사고의 경로로 이용될 수 있음.
  • 참고
    • CGI(Common Gateway Interface): 사용자가 서버로 보낸 데이터를 서버에서 작동중인데이터처리프로그램에 전달하고, 여기에서 처리된 데이터를 다시 서버로 되돌려 보내는 등의 일을 하는 프로그램
    • 일반적으로 기본 CGI 디렉토리(C:\inetpub\scripts)는 사용하지 않음

 

  • 점검대상 및 판단기준 
    • 대상 : Window NT, 2000, 2003, 2008, 2012, 2016, 2019
    • 판단기준
      • 양호 : 해당 디렉토리 Everyone에 모든 권한, 수정 권한, 쓰기 권한이 부여되지 않은 경우
      • 취약 : 해당 디렉토리 Everyone에 모든 권한, 수정 권한, 쓰기 권한이 부여되어 있는 경우

 

  • 점검 및 조치
    • Windows 2000(IIS 5.0), 2003(IIS 6.0), 2008(IIS 7.0), 2012(IIS 8.0), 2016(IIS 10.0), 2019(IIS 10.0)
      • 탐색기> 해당 디렉토리> 속성> 보안 (기본 CGI 디렉토리 위치 C:\inetpub\scripts)
      • Everyone 의 모든 권한, 수정 권한, 쓰기 권한 제거

스크립트

@echo off
chcp 437 >nul 2>&1

:W_12

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_12.txt

:: FILE EXISTENCE CHECK
if NOT EXIST %OUTPUT_DIRECTORY% (mkdir %OUTPUT_DIRECTORY%)
echo. >> %DETAIL_FILE%
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 			> %DETAIL_FILE%
echo :: 							>> %DETAIL_FILE%
echo ::  [W-12] IIS CGI Runnable Check 			>> %DETAIL_FILE% 
echo :: 							>> %DETAIL_FILE%
echo ::  Check IIS's Scripts folders to restrict CGI from EVERYONE	>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  PASS : Script folders not EXIST or EVERYONE 		>> %DETAIL_FILE%
echo ::           AUTHORITY is not EXIST			>> %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 C:\inetpub\scripts >nul 2>&1

set result=W-12 = PASS

if %errorlevel% EQU 1 (goto W_12_FINISH)
cd C:\inetpub >nul 2>&1
icacls scripts | find /i "EVERYONE" >nul 2>&1

if %errorlevel% EQU 0 (
  set result=W-12 = FAIL
  echo IIS Scripts is allow Everyone >> %DETAIL_FILE%
) else (
  echo IIS Scripts is restrict Everyone >> %DETAIL_FILE%
)

:W_12_FINISH

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

:FINISH
pause >nul 2>&1

 

W_12.zip
0.00MB

 

 

 

 

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

  • INPSECT_OUTPUT.txt : W-12의 검사결과가 기록되어 있다. 다른 점검항목의 결과또한 INSPECT_OUTPUT에 기록되어 있다.
  • W_12.txt : W-12의 검사결과가 기록되어 있다.

첨언

뭔말이 필요할까 Remote Shell 기초기법중 기초기법이다. CGI를 웹서버에서 open한다는것은 어마어마한 위협이다. 

 

 

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

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

tutoreducto.tistory.com