모의해킹&웹취약점진단/주•통기반 웹 취약점 점검

09. 정보 누출

sheow13 2023. 12. 1. 09:36
728x90

 개요

- 웹 어플리케이션의 민감한 정보가 개발자의 부주의로 인해 노출되는 것으로 중요 정보(관리자 계정 및 테스트 계정 등)가 노출되거나 에러 발생 시 과도한 정보(애플리케이션 정보, DB 정보, 웹 서버 구성 정보 등)가 노출될 경우 공격자들의 2차 공격을 위한 정보로 활용될 수 있는 취약점

- 웹 취약점 진단 과정에서 소스 코드 및 점검 도구를 통해 중요 정보 또는 에러 메시지 내 정보 누출 여부를 파악

 

정보 누출 체크리스트

에러 페이지 내 버전 정보 또는 실제 경로 노출 여부 확인

 

웹 이용에 필요한 메소드(GET, POST)를 제외한 다른 메소드 사용 가능 여부 확인

 

홈페이지 내 주민등록번호, 연락처 등 민감한 정보가 노출되는지 여부 확인

 

소스 코드 또는 점검 페이지 내 인프라 정보 노출 여부 확인

 

소스 코드 내 계정 정보 또는 관리자 페이지 노출 여부 확인

 

실습 전 사전 지식

WebDAV 취약점(불필요한 메소드 사용)

- HTTP 프로토콜의 확장 기능으로 웹 서버에 저장된 문서와 파일을 편집하고 관리할 수 있도록 만든 HTTP 확장 서비스로, 올바른 보안설정이 되어 있지 않거나 보안상 취약한 메소드를 활성화 했을 경우 악성 파일 업로드, 중요 파일 삭제 등을 할 수 있는 취약점

- 주요정보통신기반시설 웹 취약점 진단 기준으로  9.정보 누출 항목에 해당

 

WebDAV 취약점 실습 환경

- Kali Linux

- Bee Box

 

WebDAV 취약점 실습 환경 1

Step 1) WebDAV 취약점 실습을 위하여 Beebox로 접근 후 Insecure WebDAV Configuration으로 이동. 하기에 기재된 'WebDAV' 클릭 시 디렉토리 인덱싱 취약점이 있는 페이지로 리다이렉트 확인 

 

 

Step 2) 취약점 여부를 확인하기 위하여 nikto를 사용하여 스캔해본 결과, 다수의 메소드가 사용가능 한것을 확인. 웹 프록시인 burp suite를 사용하여 악성 파일 업로드 등이 가능한 PUT 메소드를 통해 파일 업로드 시도 시 정상적으로 업로드 됨을 확인.

[nikto를 통해 다수의 메소드 사용 확인]

 

[PUT 메소드를 사용하여 테스트 파일 업로드 시도]

 

[테스트 파일 업로드 확인]

 

Step 3) 칼리 리눅스에서 제공하는 웹쉘 복사 후 PUT 메소드 사용하여 파일 업로드 진행 후 웹쉘 실행 시 정상 동작 확인. 

 

[Kali Linux에서 제공하는 웹쉘 복사]

 

[PUT 메소드를 통해 웹쉘 업로드]

 

[웹쉘 정상 동작 확인]

 

[생성한 웹쉘 클릭]
[웹쉘 정상 동작 확인]

 

 

WebDAV 취약점 실습 환경 2

Step 1) WebDAV 취약점 실습을 위하여 Beebox로 접근 후 Insecure WebDAV Configuration으로 이동. 하기에 기재된 'WebDAV' 클릭 시 디렉토리 인덱싱 취약점이 있는 페이지로 리다이렉트 확인

 

 

Step 2) curl 명령어를 통해 사용가능한 메소드 확인 시, 다수의 메소드 사용 가능함을 확인. 

[curl 명령어를 통해 허용된 메소드 확인]
[curl 명령어를 통해 PUT메소드를 사용하여 웹쉘 업로드]

 

[웹쉘 업로드 확인 및 정상 동작 확인]

 

 

■ 정보 누출 점검 방법

수동 점검

- 웹 소스 코드 내 중요 정보(ex, 주민등록번호, 계정 정보) 또는 관리자 페이지 경로 등이 노출되는 지 여부를 확인

 

자동화 도구를 통한 점검

- 자동화 도구(Ex, Burp Suite Pro, Acunetix )를 사용하여 정보를 수집

- 아래 예시는 Kali linux에서 제공하는 nmap 도구를 예시로 들었으며, 자세한 사항은 하기 링크 참조

 

 

대응 방안

1. GET, POST를 제외한 불필요한 메소드 제한 설정

  Apache

    - Apache 설정 파일인 "httpd.conf"에서 LimitExcept 지시자를 활용하여 GET, POST 메소드를 제외한 불필요한 메소드          사용 제한

더보기

<Directory />                                                    // 메소드 제한을 설정할 Directory 설정
           <LimitExcept GET POST>
                           Order deny,allow                   // GET, POST 메소드 허용 설정
                           Deny from all                        // GET, POST 메소드 이외 모든 메소드 사용 제한 설정
            < /LimitExcept>
</Directory>

 

IIS

  - “IIS 관리자 접속 Feature View에서 요청 필터링 클릭 동사 거부클릭 후 제한할 메소드 입력

 

 

2. 웹 서버 보안 설정을 통해 서버 버전 노출 방지

   Apache

- Apache 설정 파일인 “httpd.conf”에서 ‘ServerTokens’ 값을 ‘Prod’로 설정 및 ‘ServerSignature’ 값을 ‘Off’로 설정해, Apache 버전 정보를 숨겨 외부로 노출되는 것을 차단

더보기

$ sudo vim /etc/httpd/conf/httpd.conf
...
ServerTokens Prod         // ‘Prod’ : 웹 서버 이름만 응답
ServerSignature Off       // Apache 버전 정보 웹 브라우저 노출 미설정
...

 

   IIS

- “IIS 관리자접속 “URL 재작성클릭 규칙 추가클릭 아웃바운드 규칙에서 빈 규칙클릭 후 버전 정보를 제외한 웹 서버 입력

 

 

 

3. HTTP 응답 에러 코드 페이지에 대해 별도의 오류(에러) 페이지로 Redirect되도록 설정

   Apache

- Apache 설정 파일인 “httpd.conf”에서 서버 응답코드 별 별도 생성한 에러 페이지로 redirect 되도록 설정

더보기

ErrorpageDocument 404 /404.html      // 웹 서버내 미리 생성한 페이지로 전환
ErrorpageDocument 403 /403.html
ErrorpageDocument 500 /500.html

 

   IIS

- “IIS 관리자접속 Feature View에서 오류 페이지클릭 추가클릭 후 별도로 생성한, Redirect할 오류(에러) 페이지 추가