티스토리 뷰

728x90
반응형

[CVE 취약점] Apache Tomecat RCE 취약점(CVE-2020-9484)


참조

https://github.com/frohoff/ysoserial

https://mp.weixin.qq.com/s/OGdHSwqydiDqe-BUkheTGg

https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35435

https://github.com/IdealDreamLast/CVE-2020-9484/


개요

Apache Tomcat에서 신규 취약점을 해결한 보안 업데이트 발표

취약한 버전을 사용 중인 서버의 담당자는 제조사의 홈페이지를 참고하여 최신 버전으로 업데이트 권고

  ※ Apache Tomcat : 오픈소스 기반 웹 어플리케이션 서버


Apache Tomcat에서 특정 조건*이 성립되는 경우, 공격자의 악성 요청 메시지가 역직렬화되어 발생하는 임의코드 실행 취약점(CVE-2020-9484) 

  * 특정조건

 1. 톰캣 서버의 PersistenceManager가 Filestore를 사용하도록 설정된 경우

 2. PersistenceManager의 sessionAttributeValueClassNameFilter 항목이 "null"로 설정되거나 공격자가 제공한 객체의 검증이 미흡한 경우

 3. 공격자가 톰캣 서버의 컨텐츠와 파일의 이름을 설정할 수 있는 경우

 4. 공격자가 FileStore에서 사용되는 저장 위치와 제어할 수 있는 파일의 상대 경로를 알고 있는 경우

  ※ 4가지 조건이 모두 성립해야 취약점에 영향 받음


영향 받는 제품 버전

Apache Tomcat 10점대 버전 : 10.0.0-M5(최신버전) 미만 버전

Apache Tomcat 9점대 버전 : 9.0.35(최신버전) 미만 버전

Apache Tomcat 8점대 버전 : 8.5.55(최신버전) 미만 버전

Apache Tomcat 7점대 버전 : 7.0.104(최신버전) 미만 버전


세부 사항

사용자가 지정한 접미사(.session)를 사용하여 파일을 업로드를 실행. org.apache.catalina.FileStore의 load 메소드(Session load (String id))를 인수 id 값에 포함 된 디렉토리 지정 문자 "../"를 제외하지 않는 것이 원인이 되어 원격코드가 실행된다.


취약점 분석

서버 환경 구축

Victim : Vmwate_Ubuntu 18.04.3 LTS, Apache-tocat 7.0.61


페이로드 생성

취약한 파일 업로드 기능을 통해 악의적인 직렬화 된 데이터 파일을 디렉토리에 업로드

접미부는 ".session" 이어야 함 (/tmp/test.session)

java -jar ysoserial-master-30099844c6-1jar CommonsCollections2 "touch /tmp/test" > /tmp.test.session 


페이로드 실행 요청

세션 ID에 "../" 포함되어 있는 것이 특징으로 해당 문자열의 탐지가 확인된 경우 의심스러운 파일의 업로드가 있는 지 확인이 필요하다.


Snort  

alert tcp any any -> any any (sid:1; gid:1; content:"../"; http_cookie; pcre:"/Cookie\:\s{0,}\JSESSIONID=(\x2E{2,}\x2F){1,}/"; msg:"Apache Tomcat RCE_CVE-2020-9484";)




728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today