본문 바로가기
카테고리 없음

윈도우 취약점 진단 (Day 10)

by 쏘세지입술 2025. 1. 23.
반응형
W-16 서비스 관리 > IIS 링크 사용금지

 

심볼릭 링크, aliases, 바로가기 등의 사용을 허용하는 경우 취약하다.

 

스크립트 진단 방법은 2가지가 있다. 

첫번째는 %systemroot%\system32\inetsrv\app.cmd 를 이용하는것,

두번째는 'attrib' 명령어를 사용하는 것

 

첫번째 방법은 뭔가 복잡하다. appcmd.exe는 Windows Server에서 인터넷 정보 서비스(IIS, Internet Information Services)를 관리하기 위해 제공되는 명령줄 도구이다. 

 

명령어는 다음과 같다.

1. %systemroot%\system32\inetsrv\appcmd dlist sites /text:name > IIS 사이트 이름 정보를 가져온다.

2. %systemroot%\system32\inetsrv\appcmd list vdirs /app.name:"가져온 사이트 이름"/ /text:physicalPath > 가져온 IIS 사이트에서 기본설정 경로를 가져온다.

3. dir /s /b "2번에서 가져온 기본설정 경로" | findstr /i ".lnk$" > 해당 경로에서 lnk 확장자로 끝나는 파일이 존재하는지 확인한다.

 

명령어는 다음과 같다. 

attrib /s "웹서버 로컬경로"\*.lnk"

> 로컬 경로에서 lnk 확장자를 가지고 있는 파일 존재 유무를 확인하는데, "웹서버 로컬경로"를 수동으로 입력해주어야 하므로 자동으로 진단하려면 첫번째 방법 app.cmd를 활용하는게 좋을지도 모르겠다는 생각이 든다. 

 

무튼, 두가지 방법중 아무 방법으로 lnk 확장자 파일 존재 유무를 파악하면 된다. 


W-17 서비스 관리 > IIS 파일 업로드 및 다운로드 제한

 

maxAllowedContentLength (콘텐츠 용량)

maxRequestEntityAllowed (파일 업로드 용량)

bufferingLimit (파일 다운로드 용량)

 

상기 3가지를 확인하면 되는데 확인 하는 파일도 이전 항목들과 동일하다. 

%systemroot%\system32\inetsrv\config\ApplicationHost.config

 

만약 별도로 설정이 되어 있지 않다면, 디폴트 값이 양호 기준을 충족하므로 양호로 진단하면 된다.


W-18 서비스 관리 > IIS DB 연결 취약점 점검

 

점검 목적: DB 컨넥션 파일(global.asa)에 대한 접근을 제한하여 SQL 서버의 사용자명과 패스워드 같은 중요 정보의 노출을 차단하기 위함

 

확인해야 하는 2가지

 

1. asa /asax 스크립트 매핑 확인

 

[GUI]- 인터넷 정보 서비스(IIS) 관리자> 해당 웹 사이트> IIS> "처리기 매핑" 선택, 사용 항목에 *.asa / *.asax 제거

[CMD]- IIS 설정 파일(applicationHost.config 혹은 web.config)에서 <handler> section *.asa / *.asax 없는지 확인

 

2. asa / asax 파일 필터링 확인

 

[GUI]- 인터넷 정보 서비스(IIS) 관리자> 해당 웹 사이트> IIS> “요청 필터링” 선택, .asa /.asax 확장자가 false로 설정되어 있는지 확인

[CMD]- IIS 설정 파일(applicationHost.config 혹은 web.config)에서 <add fileExtension=".asa" allowed="false" />, <add fileExtension=".asax" allowed="false" /> 확인

 

※ 한가지 경우라도 설정이 되어 있지 않거나 해당 설정이 없을 시 양호하도고 판단됨


W-19 서비스 관리 > IIS 가상 디렉터리 삭제

 

IIS 7.0 이상 해당사항 없음!


W-20 서비스 관리 > IIS 데이터 파일 ACL 적용

 

점검목적: 웹 데이터 파일에 ACL을 부여함으로써 권한 없는 사용자로부터의 실행 및 읽기를 방지하고자 함

보안위협: 웹 데이터 파일에 ACL을 부여되지 않은 경우 권한 없는 사용자로부터의 읽기 및 실행이 가능

 

1. 각 사이트 루트 디렉터리를 검색해서 해당 폴더 권한에 'Everyone' 권한 확인한다.

2. 아래와 같은 파일들에 대한 불필요한 Everyone 권한 제거

 

CGI (.exe, .dll, .cmd, .pl) OR 스크립트 파일(.asp)


W-21 서비스 관리 > IIS 미사용 스크립트 매핑 제거

 

점검목적: 사용하지 않은 확장자 매핑을 제거하여 추가 공격의 위험을 제거하기 위함

보안위협: 미사용 확장자 매핑을 제거하지 않은 .htr .id .stm .shtm .shtml .printer .htw .ida .idq 확장자는 버퍼 오버플로우(Buffer Overflow) 공격 위험이 존재

 

※ 사용하지 않는 스크립트 매핑은 보안에 위협이 될 수 있으므로 개발자와 협의하여 불필요한 매핑인지 확인한 후 제거해야 함

※ .asp나 .shtm 과 같은 확장자들은 특정 DLL 파일과 매핑 되어 있어, 이러한 파일들에 대한 요청이 들어오면 해당 DLL에 의해 처리됨

 

★ 부연설명

 

1. 파일 확장자 (.asp, .shtm)

  • .asp: Active Server Pages 라는 서버에서 동적으로 처리되는 파일
  • .shtm: 서버에서 특정 작업을 처리하는 HTML 파일

2. 요청이 들어온다면?

  • 웹 브라우저에서 이런 파일을 요청하면, 웹 서버(IIS)가 요청을 처리해야 한다. 

3. DLL 이란?

  • DLL (동적 링크 라이브버리, Dynamic Link Library)은 프로그램의 동작을 도와주는 일종의 도구이다. 
  • .asp나 .shtm 파일은 혼자서 작업하지 않고, 이런 DLL 파일의 도움을 받아 처리됩니다. 

4. 파일과 DLL의 관계

  • IIS 서버는 확장자마다 적합한 DLL을 미리 정해둔다 > 이를 "매핑"이라고 한다.
  • 예를 들어:
    • .asp 파일 요청 -> asp.dll 이라는 파일이 이를 처리함
    • .shtm 파일 요청 -> ssinc.dll 이라는 파일이 이를 처리함

5. 결과

  • 누군가가 웹 서버에 .asp 파일을 요청한다면
    • IIS가 요청을 받고, "이건 .asp 파일이니까, asp.dll로 처리해야 해!"라고 판단
    • asp.dll이 요청을 처리하고, 결과를 사용자에게 돌려줌

다시 원래 항목으로 돌아가자면, applicationHost.config 파일 안에서 .htr .idc .stm .shtm .shtml .printer .htw .ida .idq 확장자 파일들을 검색한다. 만약, 해당 확장자 파일들이 존재한다면 취약, BUT 제거전에 담당자(개발자)와 협의가 필요하다!


W-22 서비스 관리 > IIS Exec 명령어 쉘 호출 진단

 

IIS 7.0 이상 해당 사항 없음


W-23 서비스 관리 > IIS webDAV 비활성화

 

점검목적: WebDAV 서비스를 비활성화 하여, IIS WebDAV에서 발견되는 다수의 인증 우회 취약점을 제거하고자 함

 

보안 위협

  • WebDAV가 활성화 되어 있는 경우, IIS에 악의적으로 작성된 HTTP 요청을 이용하여 인증을 우회함으로써 패스워드로 보호된 WebDAV의 자원에 접근(디렉터리 열람, 파일 다운로드 등)이 가능
  • WebDAV에 의해 호출된 일부 구성 요소에 매개 변수를 정확하게 점검하지 않는 결함이 존재하여, 이로 인해 버퍼 오버런이 발생 가능

WebDAV (Web Distributed Authoring and Versioning)

> 사용자가 원격 World Wide Web 서버를 이용하여 파일을 수정하거나 처리할 수 있도록 하는 HTTP의 확장 서비스. 웹상의 공동개발을 지원하기 위해, 원격지 사용자들간에 인터넷상에서 파일을 공동 편집하고 관리할 수 있도록 함

 

확인 방법 2가지

 

1. applicationHost.config 에서 'isapiCgiRestriction' section에서 webdav를 검색한다.

2. "HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters" 레지스트리 경로에서 "DisableWebDAV" 확인!

 

조치 방법은 아래와 같다. 하기 사진에 나와있는 ISAPI 및 CGI제한에서 제거하면 된다.

 


W-24 서비스 관리 > NetBIOS 바인딩 서비스 구동 점검

 

점검목적: NetBIOS와 TCP/IP 바인딩을 제거하여 TCP/IP를 거치게 되는 파일 공유서비스를 제공하지 못하게 하고, 인터넷에서의 공유자원에 대한 접근 시도를 방지하고자 함

 

보안위협: NetBIOS TCP/IP 바인딩이 활성화 되어 있을 경우, 공격자가 네트워크 공유자원을 사용할 우려 존재

 

조치 시 영향: TCP/IP을 거치게 되는 파일 공유 서비스가 제공되지 않음. 인터넷에서의 공유 자원에 대한 접근시도가 불가능함 (라우터를 거치지 않은 내부 네트워크에서는 가능함)

※ AD 또는 클러스터가 구동중이라면, 담당자와 협의가 필요함!

 

2가지 점검 방법이 존재한다.

 

1. ipconfig /all | findstr /i "netbios"

2. wmic nicconfig where tcpipnetbiosoptions

 

두번째 방법을 선택할 경우, tcpipnetbiosoptions 결과는 숫자로 나타날것이다. 

0: 기본값 (DHCP 서버의 Netbios 설정 사용)

1: Netbios 사용

2: Netbios 사용 안함


 

반응형

댓글