본문 바로가기
인프라 진단/전자금융기반시설(서버) - IIS

SRV-013 (IIS) Anonymous 계정의 FTP 서비스 접속 제한 미비

by 49 BLOCK 2024. 1. 5.

notice

SRV-013 (IIS) Anonymous 계정의 FTP 서비스 접속 제한 미비

【 상세설명 】
FTP 서비스는 파일을 전송하기 위한 프로토콜을 기반으로 하는 서비스로, 임의의 사용자가 FTP 서비스를 이용할 수 있는 익명(Anonymous) FTP 기능이 활성화된 경우 악의적인 사용자도 손쉽게 접근이 가능하므로 해당 기능의 허용 여부를 점검

【 판단기준 】
- 양호 : FTP 서비스 미사용 또는 Anonymous 설정 비활성화
- 취약 : Anonymous FTP 설정 활성화

【 판단방법 】
  1. FTP 서비스 구동 확인
      ※ 『시작 유형」 "사용 안 함" 설정 후 『서비스 상태」 "중지" 설정 확인
  2. "익명 연결 허용" 체크 해제 또는 "익명 인증" 모드 "사용 안 함" 설정 확인
      ※ "metabase.xml" 파일 경로 : %systemroot%\system32\inetsrv\MetaBase.xml
      ※ "applicationhost.config" 파일 경로 : %systemroot%\system32\inetsrv\config\applicationHost.config
      ※ "metabase.xml" : <IIsFtpService Location ="/LM/MSFTPSVC" ... > </IIsFtpService> 에서 AllowAnonymous="FALSE" 설정 확인
      ※ "applicationhost.config" : <ftpserver><security><authentication> 에서 <anonymousAuthentication enabled="false" /> 설정 확인
  3. 접근이 가능한 경우 실제 FTP 접속 시도 (ftp -A 0.0.0.0)

  ■ Windows 2003
      ① 시작 > 실행 > services.msc > 서비스 > FTP Publishing Service
      ② 『시작 유형」 및 『서비스 상태」 설정 확인
또는
        cmd > sc query MSFTPSVC 
            SERVICE_NAME: MSFTPSVC 
                    TYPE               : 30  WIN32_SHARE_PROCESS
                    STATE              : 4  RUNNING 
                                            (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
                    WIN32_EXIT_CODE    : 0  (0x0)
                    SERVICE_EXIT_CODE  : 0  (0x0)
                    CHECKPOINT         : 0x0
                    WAIT_HINT          : 0x0
        cmd > netstat -an | findstr :21 
            TCP    0.0.0.0:21           0.0.0.0:0           LISTENING
            TCP    [::]:21                [::]:0                 LISTENING

      [IIS 6.0] : "metabase.xml"
      ③ 시작 > 실행 > inetmgr > 인터넷 정보 서비스(IIS) 관리 > FTP 사이트 > 해당 FTP 사이트 > 속성 > "보안 계정" 탭
      ④ "익명 연결 허용" 체크 해제 확인
  또는
        <IIsFtpServer 
            AllowAnonymous="FALSE"
            ...
        >
        </IIsFtpServer>

      ⑤ cmd > ftp -A 127.0.0.1
          Connected to 127.0.0.1
          220 Microsoft FTP Service
          200 OPTS UTF8 command successful - UTF8 encoding now ON.
          331 Anonymous access allowed, send identity (e-mail name) as password
          230 User logged in.
          Anonymous login succeeded for username@Host_name
          ftp>

  ■ Windows 2008
      ① 시작 > 실행 > services.msc > 서비스 > FTP Publishing Service
      ② 『시작 유형」 및 『서비스 상태」 설정 확인
또는
        cmd > sc query FTPSVC 
            SERVICE_NAME: FTPSVC 
                    TYPE               : 30  WIN32  
                    STATE              : 4  RUNNING 
                                            (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
                    WIN32_EXIT_CODE    : 0  (0x0)
                    SERVICE_EXIT_CODE  : 0  (0x0)
                    CHECKPOINT         : 0x0
                    WAIT_HINT          : 0x0
        cmd > netstat -an | findstr :21
            TCP    0.0.0.0:21           0.0.0.0:0           LISTENING
            TCP    [::]:21                [::]:0                 LISTENING

      [IIS 7.0] : "applicationhost.config"
      ③ 시작 > 실행 > inetmgr > 인터넷 정보 서비스(IIS) 관리 > FTP 사이트 > 해당 FTP 사이트 > 속성 > "보안 계정" 탭
      ④ "익명 인증" 모드 "사용 안 함" 설정 확인
  또는
        <ftpserver>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                </authentication>
            </security>
        </ftpserver>

      ⑤ cmd > ftp -A 127.0.0.1
          Connected to 127.0.0.1
          220 Microsoft FTP Service
          200 OPTS UTF8 command successful - UTF8 encoding now ON.
          331 Anonymous access allowed, send identity (e-mail name) as password
          230 User logged in.
          Anonymous login succeeded for username@Host_name
          ftp>

  ■ Windows 2008 R2, 2012, 2012 R2, 2016, 2019, 2022
      ① 시작 > 실행 > services.msc > 서비스 > Microsoft FTP Service
      ② 『시작 유형」 및 『서비스 상태」 설정 확인
또는
        cmd > sc query FTPSVC 
            SERVICE_NAME: FTPSVC 
                    TYPE               : 30  WIN32  
                    STATE              : 4  RUNNING 
                                            (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
                    WIN32_EXIT_CODE    : 0  (0x0)
                    SERVICE_EXIT_CODE  : 0  (0x0)
                    CHECKPOINT         : 0x0
                    WAIT_HINT          : 0x0
        cmd > netstat -an | findstr :21
            TCP    0.0.0.0:21           0.0.0.0:0           LISTENING
            TCP    [::]:21                [::]:0                 LISTENING

      [IIS 7.0, IIS 8.0, IIS 10.0] : "applicationhost.config"
      ③ 시작 > 실행 > inetmgr > 인터넷 정보 서비스(IIS) 관리 > FTP 사이트 > 해당 FTP 사이트 > 속성 > "보안 계정" 탭
      ④ "익명 인증" 모드 "사용 안 함" 설정 확인
  또는
        <ftpserver>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                </authentication>
            </security>
        </ftpserver>

      ⑤ cmd > ftp -A 127.0.0.1
          Connected to 127.0.0.1
          220 Microsoft FTP Service
          200 OPTS UTF8 command successful - UTF8 encoding now ON.
          331 Anonymous access allowed, send identity (e-mail name) as password
          230 User logged in.
          Anonymous login succeeded for username@Host_name
          ftp>

【 조치방법 】
  1. "익명 연결 허용" 체크 해제 또는 "익명 인증" 모드 "사용 안 함" 설정
      ※ "metabase.xml" : <IIsFtpService Location ="/LM/MSFTPSVC" ... > </IIsFtpService> 에서 AllowAnonymous="FALSE" 설정
      ※ "applicationhost.config" : <ftpserver><security><authentication> 에서 <anonymousAuthentication enabled="false" /> 설정

  2024-01-13 : (조치과정 삭제)