일반사항

  • 점검내용 : 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

 

일반사항

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

 

  • 점검대상 및 판단기준
    • 대상 : 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

 

일반사항

  • 점검내용 : 불필요한 IIS 서비스 구동 여부 점검
  • 점검목적 : 불필요한 IIS 서비스가 구동 상태인지를 점검하여 제거하고, 해당 서비스가 취약점이 제거되지 않은 상태로 외부 위협에 노출되지 않도록 하기 위함
  • 보안위협 : IIS 서비스는 WEB, FTP 등의 서비스를 제공해주는 유용한 서비스이나 프로파 일링, 서비스 거부, 불법적인 접근, 임의의 코드실행, 정보 공개, 바이러스, 웜, 트로이목마 등의 위협에 노출될 수 있어 서비스 불필요 시 삭제하여야 함
  • 참고 : 일반적으로 불필요한 서비스가 시스템 내 구동되고 있는 경우에는 관리되지 않은 상 태로 방치되는 경우가 많아 보안 취약점이 그대로 노출되어 악의적인 공격의 대상이 될 수 있음
  • 점검대상 및 판단기준 
    • 대상 : Window NT, 2000, 2003, 2008, 2012, 2016, 2019
    • 판단기준
      • 양호 : IIS 서비스가 필요하지 않아 이용하지 않는 경우
      • 취약 : IIS 서비스를 필요하지 않지만 사용하는 경우

 

  • 점검 및 조치
    • Window NT, 2000, 2003, 2008, 2012, 2016, 2019
      • 시작> 실행> SERVICES.MSC> IISADMIN> 속성> "시작 유형"을 "사용 안 함" 설정 후 중지

스크립트

@echo off
chcp 437 >nul 2>&1

:W_10

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

:: FILE EXISTENCE CHECK
if NOT EXIST %OUTPUT_DIRECTORY% (mkdir %OUTPUT_DIRECTORY%)
echo. >> %DETAIL_FILE%
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 			> %DETAIL_FILE%
echo :: 							>> %DETAIL_FILE%
echo ::  [W-10] IIS Service Check 			>> %DETAIL_FILE% 
echo :: 							>> %DETAIL_FILE%
echo ::  Check IIS Service is running or not		>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  PASS : IIS is disabled				>> %DETAIL_FILE%
echo ::  Need Review : IIS is running				>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::  MADE By REDUCTO https://tutoreducto.tistory.com/	>> %DETAIL_FILE%
echo ::							>> %DETAIL_FILE%
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::			>> %DETAIL_FILE%
echo. 							>> %DETAIL_FILE%

net start | find /i "IISADMIN" >nul 2>&1
if %errorlevel% EQU 0 (
  set result=W-10 = Need Review
  echo IIS Service Detected, Really need iis? >> %DETAIL_FILE%
) else (
  set result=W-10 = PASS
  echo Hooooly Shit IIS Undetected >> %DETAIL_FILE%
)

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

:FINISH
pause >nul 2>&1

 

W_10.zip
0.00MB

 

 

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

  • INSPECT_OUTPUT.txt : W-10의 점검결과가 기록되어 있다.
  • W_10.txt : IIS Running 점검 결과가 기록되어 있다.

첨언

IIS는 Window에서 제공하는 웹서버 호스팅기능이다. 일반적으로 웹서버를 구동할때는 MS에게 미안하지만 IIS보다 다른 Vendor의 웹서버를 쓰지않을까 하는 생각이긴하다.

 

 

[KISA 주요정보통신기반시설] 취약점 가이드 목록

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

tutoreducto.tistory.com

 

+ Recent posts