Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2017-3066] Adobe ColdFusion 역직렬화 취약점
작성일 2018-03-22 조회 1274

 


개요
Adobe ColdFusion에 역직렬화를 통한 원격코드 실행 취약점이 존재한다.

 

해당 취약점은 Adobe Coldfusion 에서 클래스에 대해 화이트리스트 처리 방식을 이용하지 않아 발생한다.
따라서 Adobe ColdFusion의 클래스 경로에 있는 모든 클래스를 서버로 보내고 직렬화 해제가 가능하게 된다. 
ObjectInputStream.readObject() 클래스를 이용하여 역직렬화가 가능하다.

 

공격 성공 시, 임의의 코드를 실행할 수 있다.

 

[애플리케이션 설명]
*Adobe ColdFusion
Adobe ColdFusion은 1995년 JJ Allaire가 개발한 상용 웹 애플리케이션 개발 플랫폼이다. ColdFusion은 원래 HTML 페이지를 데이터베이스에 쉽게 연결하도록 설계되었다. 버전 2(1996)에 따라 완전한 스크립팅 언어 외에도 IDE가 포함된 완전한 플랫폼이 되었다.

 


확인 내역
ADOBE ColdFusion 에서는 AMF 프로토콜을 이용하여 직렬화가 가능합니다.

 

AMF 는 다수의 언어를 지원(ColdFusion, Haxe, Java, PHP, Perl 외 다수) 하며
그 중 JAVA 의 경우 Adobe ColdFusion 을 이용하는 Adobe BlazeDB(Apache BlazeDS) 가 존재합니다.

 

[그림1. AMF 가 지원하는 언어 목록, 출처 : wikipedia]

 

[그림2. AMF3 식별자, 출처 : wikipedia]

 

취약점은 Adobe Coldfusion 에서 클래스에 대해 화이트리스트 처리 방식을 이용하지 않아 모든 클래스를 서버로 보내고 직렬화 해제가 가능하여 발생하게 됩니다.

 

초기에 공개된 POC의 경우 취약점을 악용하기 위해
AMF3 역직렬화 변환 중에 역접속 TCP 연결 요청하는 JRE 클래스(sun.rmi.server.UnicastRef)를 이용 하였습니다.

 

역접속을 확인하게 되면 Client 에서 페이로드를 추가로 전송해야 하는 방식이었습니다.

 

1. Client 쪽에 JRMP Listener 실행(ysoserial을 이용)
1_1). Client 에서 Server 쪽으로 sun.rmi.server.UnicastRef2 을 이용한 공격
2. Server 에서 AMF3 역직렬화 시도
2_1) Server -> Client 쪽으로 역접속
3. Client(JRMP Listener) 에서 Server 쪽으로 추가 페이로드 전달

* ysoserial : 역직렬화 가젯을 가지고 있는 공개된 도구

 

[그림3. 공개된 POC]

 

[그림4. 발생 패킷]

 


이 후에 2 단계를 이용한 방식이 아닌 직접적인 트리거가 가능한 POC를 codewhitesec 에서 공개 하였습니다.
- 취약한 클래스와 ysoserial 를 이용

 

취약한 클래스를 찾은 방식은 개체 역직렬화 에서 주로 악용되는 ReadObject() 를 확인 하였습니다.

 

해당 함수를 이용하는 org.apache.axis2.util.MetaDataEntry 를 찾았고, 해당 클래스를 이용하여 악용하는 POC 를 만들었습니다.

 

[그림5. ReadObject 함수 확인, 출처 : codewhitesec.blogspot.kr]

 

공개된 POC 의 경우 공유된 jar 파일을 이용, amf 파일을 생성하여 서버로 전송하면 취약점이 트리거 됩니다.

 

[그림6. calc.exe 를 실행하는 POC 생성]

 

[그림7. 발생 패킷]

 

 

대응 방안

1. 최신 버전으로 업데이트
해당 벤더사에서 발표한 보안 권고문을 참고하여 최신의 버전으로 업데이트 합니다.
http://www.apache.org/dist/flex/BlazeDS/4.7.3/RELEASE_NOTES
https://helpx.adobe.com/security/products/coldfusion/apsb17-14.html

 
2. 당사 Sniper 에서는 아래의 패턴으로 대응 가능하다.

[IPS 패턴블럭]
[4152] Adobe Coldfusion BlazeDS Java Object Deserialization RCE
[4153] Adobe Coldfusion BlazeDS Java Object Deserialization RCE.A

 

[UTM]
[805374469] Adobe Coldfusion BlazeDS Java Object Deserialization RCE
[805374470] Adobe Coldfusion BlazeDS Java Object Deserialization RCE.A

 

[APTX]
[3391] Adobe Coldfusion BlazeDS Java Object Deserialization RCE
[3392] Adobe Coldfusion BlazeDS Java Object Deserialization RCE.A

 


참고

https://codewhitesec.blogspot.kr/2018/03/exploiting-adobe-coldfusion.html
https://github.com/codewhitesec/ColdFusionPwn/releases
https://www.exploit-db.com/exploits/43993/
https://en.wikipedia.org/wiki/Action_Message_Format
http://codewhitesec.blogspot.kr/2017/04/amf.html

 

 

첨부파일 첨부파일이 없습니다.
태그   CVE-2017-3066  Adobe ColdFusion  BlazeDS  AMF3