1. 개요

- 최근 국내 WebLogic 서버를 공격 및 장악해 z0Miner 악성코드를 유포하는 정황이 포착

- 정보 탈취 또는 랜섬웨어를 설치할 수 있어 웹로직 서비스 점검 필요

 

2. 주요 내용 [1]

2.1 z0Miner [2]

- 2020년 Tecnet 보안팀에 의해 처음으로 소개된 마이너 악성코드 (암호 화폐 채굴 봇넷)

- 국내외 보안이 취약한 서버인 Atlassian Confluence, Apache ActiveMQ, Log4J 등을 대상으로 마이너 악성코드를 유포

- CVE-2020-14882, CVE-2020-14883을 악용해 WebLogic 서버 공격

구분 설명
CVE-2020-14882 [3] - 특수하게 조작된 GET 요청을 통해 인증을 우회하여 관리자 콘솔 접근할 수 있는 취약점 [4][5]
Exploit: hxxp://IP:7001/console/css/%252e%252e%252fconsole.portal
- 영향받는 버전: WebLogic 서버 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0 버전
- CVSS: 9.8
CVE-2020-14883 [6] - 인증 우회(CVE-2020-14882)에 성공한 후 MVEL 표현식을 이용해 원격 명령을 실행할 수 있는 취약점 [7][8]
- Exploit: com[.]tangosol[.]coherence[.]mvel2[.]sh[.]ShellSession 클래스 악용
- 영향받는 버전: WebLogic 서버 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0 버전
- CVSS: 7.2

 

2.2 악성코드 배포

- 취약한 WebLogic 서버를 장악한 뒤 악성코드를 배포하는 다운로드 서버로 악용

> Miner 및 네트워크 도구, 공격에 필요한 스크립트 등

> 악용된 서버는 모두 서버 정보와 Tomcat의 구체적인 버전을 노출

[사진 1] 서버 정보 노출

 

악성코드 설명
WebShell - CVE-2020-14882를 악용해 JSP 웹쉘을 업로드하여 지속성 유지 및 시스템 제어
- 백신 탐지를 피하기위해 여러 종류의 웹쉘을 업로드

① JSP File Browser
> 커스터마이징된 JSP File Browser v1.2 웹쉘
> Password는 “zubin@666″ 하드코딩

② Shack2
> OS 정보 등 컴퓨터 정보 출력, 파일 매니저, 명령어 수행 기능을 제공 [9]

③ Behinder
> 과거부터 사용되어 많이 알려진 웹쉘 [10]
FRP(Fast Reverse Proxy) - RDP(Remote Desktop Protocol) 통신하기 위해 사용한 Proxy 도구
- 기본적인 형태의 FRPC와 커스터마이징한 FRPC를 사용
> 기존 FRPC: *.INI 형태의 설정 파일을 불러 읽어와 접속을 시도
> 커스텀 FRPC: 프로그램 내부에 설정 데이터를 가지고 있어 별도의 파일 없이 실행
※ 직접 통신할 수 없는 인트라넷 PC에 외부에서 접근 가능하도록 중계기를 둬 구성하는 오픈소스 도구 [11]
Netcat - 파일명 "userinit.exe"로 Netcat을 다운로드 받아 실행
- 하드코딩된 IP:Port에 연결을 시도하며, 연결 시 cmd를 실행하는 명령으로 구성
AnyDesk - 공식 홈페이지를 접속하여 AnyDesk를 다운로드하여 탐지 회피
- 시스템 장악 후 원격에서 화면 제어 목적
Miner(XMRig) - Windows XMRig는 6.18.0 버전, Linux의 경우 XMRig는 6.18.1 버전 유포
- 지속성 유지를 위해 스케줄러를 등록해 특정 주소로부터 파워쉘 스크립트를 읽어 실행
- ‘javae.exe’ 이라는 이름으로 채굴을 수행

 

3. 대응방안

① 웹로직 서버 최신 버전 유지

② 관리되지 않는 포트 및 서버 점검

③ 백신 등 안티바이러스 S/W 최신 버전 유지

④ 침해지표 등록 및 모니터링

 

4. 참고

[1] https://asec.ahnlab.com/ko/62166/
[2] https://s.tencent.com/research/report/1170.html
[3] https://nvd.nist.gov/vuln/detail/CVE-2020-14882
[4] https://testbnull.medium.com/weblogic-rce-by-only-one-get-request-cve-2020-14882-analysis-6e4b09981dbf
[5] https://attackerkb.com/topics/sb4F8UT5zu/cve-2020-14882-unauthenticated-rce-in-console-component-of-oracle-weblogic-server/rapid7-analysis
[6] https://nvd.nist.gov/vuln/detail/CVE-2020-14883
[7] https://pentest-tools.com/vulnerabilities-exploits/oracle-weblogic-remote-command-execution_123
[8] https://pentest-tools.com/blog/detect-exploit-oracle-weblogic-rce-2020
[9] https://github.com/theralfbrown/WebShell-2/blob/master/jsp/SJavaWebManageV1.4.jsp
[10] https://github.com/NS-Sp4ce/CVE-2021-21972/blob/main/payload/Linux/shell.jsp

[11] https://github.com/fatedier/frp

[12] https://www.boannews.com/media/view.asp?idx=127363&page=4&kind=1

1. 취약점 [1]

[사진 1] https://nvd.nist.gov/vuln/detail/CVE-2017-3506

- 공격자가 조작된 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 좌측 하단 확인 또는 [로그인] > [환경] > [서버] > [서버이름] > [모니터링] > [일반] 확인

[사진 2] 버전 확인

 

- 구동 후 외부에서 정상 접근 확인

[사진 3] 서버 구동(위) 및 정상 접근 확인(아래)

 

- 공개된 PoC를 통해 스캔 결과 취약점에 영향 받음_[+]표시_을 확인 [4]

[사진 4] 취약점 스캔 결과(위) 및 관련 패킷(아래)

 

- /wls-wsat/CoordinatorPortType11 URL에 shell.jsp 업로드 성공

> 비밀번호(password 매개변수_값 secfree)와 임의의 명령(command 매개변수)을 사용자로부터 입력받아 실행한 결과를 반환하는 웹쉘로 확인됨

[사진 5] shell.jsp 업로드 성공(위) 및 관련 패킷(아래)

 

- 공격자는 조건을 만족한 URL을 통해 임의의 명령을 실행 및 결과를 확인할 수 있음

> 조건 1: 비밀번호(password)는 secfree 

> 조건 2: 임의의 명령(command) 전달

[사진 6] 명령 실행 결과 반환

 

[사진 7] 관련 패킷 캡쳐

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

+ Recent posts