1. 취약점 [1]
- 공격자가 조작된 XML 페이로드를 전송하여 원격 코드 실행을 실행하는 취약점
- XMLDecoder를 이용한 역직렬화 과정에서 취약점이 발생
① 영향받는 버전
- WebLogic Server 10.3.6.0.0
- WebLogic Server 12.1.3.0.0
- WebLogic Server 12.2.1.1.0
- WebLogic Server 12.2.1.2.0
② 관련 URL
- /wls-wsat/CoordinatorPortType
- /wls-wsat/CoordinatorPortType11
- /wls-wsat/ParticipantPortType
- /wls-wsat/ParticipantPortType11
- /wls-wsat/RegistrationPortTypeRPC
- /wls-wsat/RegistrationPortTypeRPC11
- /wls-wsat/RegistrationRequesterPortType
- /wls-wsat/RegistrationRequesterPortType11
2. 실습
Attacker 환경
- Kali Linux
Victim 환경
- CentOS 7 x64
- WebLogic Server 10.3.6.0.0
- Java: JDK1.7.0_80
- WebLogic Server 10.3.6.0.0 설치 및 구동 [2][3]
> JDK8로 설치를 진행하였는데, 도메인 생성 과정 중 도메인 생성 실패 오류 발생
> 구글링 결과 JDK8과 WebLogic 10.3.6.0은 호환이 되지 않아 발생하는 문제로, JDK7을 이용함
**** Domain Creation Failed! java.lang.SecurityException: The provider self-integrity check failed. ****
- registry.xml 파일에서 Weblogic 버전을 확인할 수 있음
> 버전 확인 방법
① java weblogic.version 명령 이용
② config.xml 파일 상단 <domain-version> 태그 확인 / 명령어: cd ${DOMAIN_HOME}/config
③ registry.xml 파일에서 version 확인 / 명령어: cd ${MW_HOME};cat registry.xml
④ WebLogic Admin Console 좌측 하단 확인 또는 [로그인] > [환경] > [서버] > [서버이름] > [모니터링] > [일반] 확인
- 구동 후 외부에서 정상 접근 확인
- 공개된 PoC를 통해 스캔 결과 취약점에 영향 받음_[+]표시_을 확인 [4]
- /wls-wsat/CoordinatorPortType11 URL에 shell.jsp 업로드 성공
> 비밀번호(password 매개변수_값 secfree)와 임의의 명령(command 매개변수)을 사용자로부터 입력받아 실행한 결과를 반환하는 웹쉘로 확인됨
- 공격자는 조건을 만족한 URL을 통해 임의의 명령을 실행 및 결과를 확인할 수 있음
> 조건 1: 비밀번호(password)는 secfree
> 조건 2: 임의의 명령(command) 전달
3. 8220 Gang [5]
- 2017년부터 활동한 해킹그룹으로 암호화폐 채굴을 목적으로 활동
> C2와 통신을 위해 8220 포트를 사용하여 파생된 이름
> Tsunami 멀웨어, XMRIG 크립토마이너, Masscan, Spirit 등을 공격에 이용
- 최근 CVE-2017-3506 또는 lwp-download를 사용하는 사례가 확인
> lwp-download: URL에서 파일을 다운로드하는 리눅스 유틸리티
- 8220 Gang 해킹그룹이 CVE-2017-3506를 이용하는 과정 및 파일은 다음과 같음
① wls-wsat/CoordinatorPortType URL을 이용해 취약한 서버에 진입
② PowerShell 스크립트로 드로퍼 다운로드
③ 드로퍼를 이용해 최종적으로 암호화폐 채굴기 다운로드 및 설치
> 공격에 사용된 스크립트와 바이너리 파일은 Base64 인코딩과 난독화가 적용
> 피해자가 인지하지 못하도록 숨겨진 창으로 명령 실행
> AMSI 감지 비활성화 수행
※ AMSI(Antimalware Scan Interface): 응용 프로그램 및 서비스와 시스템에 있는 모든 맬웨어 방지 제품이 통합할 수 있도록 하는 다목적 인터페이스 표준
> 공격에 사용된 파일
파일명 | 설명 |
bypass.ps1 | - CVE-2017-3506을 이용해 다운로드 - Base64로 인코딩 된 PowerShell 스크립트 > AMSI 비활성화 및 Winscp-setup-1867.exe 생성 |
Winscp-setup-1867.exe | - %TEMP%Winscp-setup-1867.exe 경로로 생성 - Ebvjmba.dat 다운로드 |
Ebvjmba.dat | - dll 파일 다운 |
dll 파일 | - MS 빌드 프로세스에 주입되는 암호화된 리소스 파일 - 9090, 9091, 9092/TCP를 사용해 C2 서버와 통신 및 암호화폐 채굴기 다운 |
4. 대응방안
① 벤더사 제공 패치 및 업데이트 적용 [6]
② wls-wsat 미사용 시 삭제
> rm -rf /app/wls1036/wlserver_10.3/server/lib/wls-wsat.war
> rm -rf /app/wls1036/domains/domain/servers/portal/tmp/_WL_internal/wls-wsat
> rm -rf /app/wls1036/domains/domain/servers/portal/tmp/.internal/wls-wsat.war
> rm -rf /app/wls1036/domains/domain/servers/admin/tmp/_WL_internal/wls-wsat
> rm -rf /app/wls1036/domains/domain/servers/admin/tmp/.internal/wls-wsat.war
③ wls-wsat 컴포넌트 비활성화 옵션 추가
> $DOMAIN_HOME/bin/setDomainEnv.sh 파일 수정 [7]
④ WAF에서 wls-wsat 하위 URL(/wls-wsat/*) 차단
> /wls-wsat/CoordinatorPortType
> /wls-wsat/CoordinatorPortType11
> /wls-wsat/ParticipantPortType
> /wls-wsat/ParticipantPortType11
> /wls-wsat/RegistrationPortTypeRPC
> /wls-wsat/RegistrationPortTypeRPC11
> /wls-wsat/RegistrationRequesterPortType
> /wls-wsat/RegistrationRequesterPortType11
⑤ 침해지표 모니터링 [5]
참고
[1] https://nvd.nist.gov/vuln/detail/CVE-2017-3506
[2] http://1004lucifer.blogspot.com/2018/08/weblogic-linux-103-1211.html
[3] http://1004lucifer.blogspot.com/2018/08/weblogiclinux-103-1211.html
[4] https://github.com/Al1ex/CVE-2017-3506
[5] https://www.trendmicro.com/en_us/research/23/e/8220-gang-evolution-new-strategies-adapted.html
[6] https://www.oracle.com/security-alerts/cpuapr2017.html
[7] http://1004lucifer.blogspot.com/2018/12/weblogic-cve-2017-10271.html
'취약점 > RCE' 카테고리의 다른 글
regreSSHion (CVE-2024-6387) (0) | 2024.07.12 |
---|---|
Apache ActiveMQ RCE (CVE-2023-46604) (1) | 2023.12.26 |
Microsoft Message Queuing RCE (CVE-2023-21554) (0) | 2023.04.16 |
WinVerifyTrust 서명 유효성 검사 취약성 (CVE-2013-3900) (0) | 2023.04.06 |
Fortra GoAnywhere MFT RCE (CVE-2023-0669) (0) | 2023.02.27 |