CVE-2020-1938 취약점이란?
구분 | 설명 |
기본 정보 | |
공개 날짜 | Apache Tomcat에서 2020.02.24 발표 |
CVE-2020-1938 Tomcat 취약점을 점검할 수 있는 도구로 Xray Tool 활용 (Ghost CAT 취약점 도구인 Xray)
(허가 되지 않은 점검도구 활용 스캔은 법적 문제 소지가 있으니 주의!)
[데모 환경]
사용 환경 : Kali Linux
Tool 버전 : Xray v 0.19.2
[설치]
1. 웹 브라우저에서 zip 파일 다운로드
"https://github.com/chaitin/xray/releases" 에서 점검 PC OS에 맞는 zip 파일 다운로드
2. zip 파일 압축 해제
# unzip xray_linux_386.zip -d ./
# unzip [다운받은 zip 파일] -d ./[압축해제 경로]
[사용법]
1. xray_linux_386 바이너리 실행
사용 방법 확인 가능 및 내부 프로그램 콘솔로 진입
# ./xray_linux_386
>
2. 주요 Command 설명
servicescan : CVE-2020-1938 Tomcat AJP 취약점 점검 기능
webscan : 기타 WEB, WAS, CMS 등 CVE 취약점 점검 기능
3. 내부 프로그램 콘솔에서 명령어 사용하여 점검 수행 가능
> servicescan -target [점검대상 IP:Port]
(허가 되지 않은 점검도구 활용 스캔은 법적 문제 소지가 있으니 주의!)
[데모 절차]
1. CVE-2020-1938 Tomcat AJP 취약점 스캔 진행 (servicescan 도구 사용)
- 내부 프로그램에 진입하지 않고 OS 커널의 Shell 에서 점검 수행
# ./xray_linux_386 servicescan --target [점검대상 IP:Port]
- Port 번호는 AJP 기본 Port 번호인 8009로 설정
- IP 대신 도메인 URL 주소를 넣어도 가능
결과 : 취약한 경우, 빨간 글씨로 Vuln 취약점 정보가 노출됨
취약하지 않은 경우, Vuln 정보 노출되지 않고 종료됨
참고 : 데모 점검 대상 서버를 nmap을 통해 포트 스캔해보면, AJP 서비스가 8009번 포트로 열려있는 것을 확인 가능
# nmap -sS [점검대상 IP]
참고 : 개인적 의견으로 Web(Apache 등)을 DMZ망에 구축하고 WAS(Tomcat)를 내부망에 구축했다면, 외부에서는 Web 도메인으로 접근 시에 AJP 포트인 8009번이 열려있지 않아 성공시키는 데 한계가 있는것 같습니다.
2. 추가 점검으로 기타 CVE 및 취약점 스캔 진행 (webscan 도구 활용)
# ./xray_linux_386_webscan -url [점검대상 IP 또는 URL]
config file이 로딩되면서 점검 수행 내역을 확인 할수 있음
점검 수행 내역 : WEB 서버, WAS(tomcat, jboss, weblogic), CMS(Drupal, Joomla, Wordpress), DB, FrameWork 등
결과 : 취약한 경우, 빨간 글씨로 Vuln 취약점 정보가 노출됨
취약하지 않은 경우, Vuln 정보 노출되지 않고 종료됨
- 타겟에 대한 request 패킷 전송 수와 전송 지연 시간, 전송 실패율이 나타남
실패율에 따라 관제나 보안장비 및 기타 이슈로 점검 수행이 원활히 되지 않음을 예상할 수 있음
[주관적인 한줄 평] : 물론 미탐/오탐 여부 분석이 필요하지만, CVE 점검 보조 도구로써 활용 가능할 것 같습니다.
(허가 되지 않은 점검도구 활용 스캔은 법적 문제 소지가 있으니 주의!)
[기타] webscan 데모 시 발견된 취약점 분석
옆 길로 세버렸네요.. 위에 xray webscan 도구 결과로 빨간 글씨의 Vuln 정보에 나온 취약점들을 가볍게 조사해봤습니다.
1. CVE-2012-1823 : PHP CGI Remote Code Execution (PHP CGI 코드 원격 실행 취약점)
- 취약점 확인 방법
아래 스크린 이미지와 같이 URI 뒤에 "-s" 옵션을 입력 시도
http://[점검 대상 도메인 또는 IP주소]/phpMyAdmin/index.php?-s
취약한 경우, 소스코드가 하이라이트 되어 출력됨
2. php Admin(관리자) 페이지 노출 취약점
http://[점검 대상 도메인 또는 IP주소]/phpMyAdmin/index.php
phpMyAdmin이라는 php 관리자 페이지가 노출됨
위험성 : 관리자 페이지가 외부에 노출될 경우 공격자들이 Brute Force 통해 관리자 권한 탈취할 위험성 존재
해결 방안 : 관리자 페이지는 내부망에서 운영하거나 부득이하게 외부망에서 사용하는 경우, IP기반 또는 타 방법의 접근제어 적용
추가 Comment : 해당 경우는 Default 관리자 페이지로 캡처나 OTP 등 추가 확인 절차 기능이 없어 더 취약할 수 있으며, Default 계정 정보를 수정하지 않았다면 쉽게 접속 가능하여 문제가 큼
3. php 프레임워크에 대한 정보 노출 취약점
http://[점검 대상 도메인 또는 IP주소]/phpinfo.php
기본 정보가 노출되는 페이지가 존재하여, php의 각종 정보들이 노출되어짐
노출된 정보는 해킹의 기반 자료로 쓰일 수 있어 노출을 방지 필요
예시 - 버전정보 노출시 CVE 공격 코드가 먹힐 만한 버전이라면 해당 CVE 공격 시도 가능
따라서, 정보가 노출되지 않도록 정보 제공 페이지는 삭제하는 것이 나음
노출되는 정보 : PHP의 시스템 정보, 빌드 날짜, 서버 API 정보, 가상 디렉토리 지원 여부, 설정 파일 경로, 로딩 설정 파일 등 여러 정보 노출
(허가 되지 않은 점검도구 활용 스캔은 법적 문제 소지가 있으니 주의!)
[기타] CVE-2020-1938 크로스 점검
도구로 CVE 점검을 할 경우, 도구의 소스코드를 전체 분석하지 않는 한 어떤 로직으로 동작하는지 전부 파악할 수 없어 신뢰성이 떨어집니다. 소스코드가 공개된 경우가 많아 분석하면 좋겠지만 시간상 여유나 역량 부족 등의 이유로 분석할 수 없을 때는 타 도구를 활용하여 크로스 점검하는 것도 한가지 방법입니다.
따라서, CVE-2020-1938 점검 도구로 보이는 하나의 Github에서 제공되는 도구(간단한 코드 수준) 추가 사용해봤습니다.
설치 경로 : https://github.com/hypn0s/AJPy
도구 설명 : WAS 유형, 버전 점검 도구 + CVE-2020-1938 점검 도구
1. WAS 유형, 버전 점검
# python tomcat.py version [점검 대상 IP주소 또는 도메인 URL]
결과 : WAS 정보(유형 및 버전)이 출력됨 (취약한 서버의 경우 테스트)
2. CVE-2020-1938 취약점 점검 (xray 도구의 Cross Check 의미로)
# python tomcat.py read_file --webapp=manager /WEB-INF/web.xml [점검 대상 IP주소 또는 도메인 URL]
설명 : webapp 파일(web.xml) 읽기 시도
결과 : 취약한 경우, web.xml 파일 내용이 출력됨
# python tomcat.py read_file --webapp=ROOT/ /WEB-INF/classes/application.xml [점검 대상 IP주소 또는 도메인 URL]
설명 : webapp 파일(application.xml) 읽기 시도
결과 : 취약한 경우, application.xml 파일 내용이 출력됨
취약하지 않은 경우(점검이 실패할 경우)
점검 실행해도 끝나지를 않아, 인터럽트 발생 시켜 Traceback 출력 내용 확인해보면,
멈춘 시점 : 점검 대상의 host와 port 지정한 후에 socket 연결할 때 연결이 되지 않는 문제가 보임
멈춘 이유 : AJP의 경우 8009 포트가 열려있어야 점검 가능한데, 해당 점검 대상에 8009 포트가 닫혀있어 점검이 멈춤
(포트가 닫혀 있거나, 또는 특수한 경우 보안 장비 차단일 수도 있음)
여기까지 확인했습니다.. 읽어주셔서 감사합니다~
[IoT 기기 진단] UART 디버깅 포트 점검 (시나리오) (1) | 2020.08.13 |
---|---|
[IoT 기기 진단] UART 디버깅 포트 점검 (소개) (0) | 2020.08.13 |
[OpenVAS] 오픈소스 취약점 진단 시스템 : 오픈바스 (1) | 2020.03.04 |
[Clusterd] Python 기반 WAS 서버 취약점(유형 및 버전) 진단 도구 (0) | 2020.03.03 |
[Jok3r] 통합적 취약점 점검 도구 : 조커 (0) | 2020.02.25 |
댓글 영역