클라우드 컴퓨팅이 필요하신가요? 지금 시작해보세요

2024년: 오래된 CVE, 새로운 표적 - ThinkPHP의 적극적인 악용

Akamai Wave Blue

에 의해 작성

Ron Mankivsky 그리고 Maxim Zavodchik

June 05, 2024

Akamai 블루 웨이브

에 의해 작성

Ron Mankivsky

론 맨키브스키는 Akamai의 선임 연구원입니다.

맥심 자보디크(Maxim Zavodchik)

에 의해 작성

Maxim Zavodchik

맥심 자보디크는 Akamai의 앱 & API 위협 리서치 담당 수석 관리자입니다.

Akamai 연구원들은 CVE-2018-20062 및 CVE-2019-9082에 취약한 ThinkPHP 애플리케이션을 표적으로 삼는 새로운 캠페인을 발견했습니다.
Akamai 연구원들은 CVE-2018-20062 및 CVE-2019-9082에 취약한 ThinkPHP 애플리케이션을 표적으로 삼는 새로운 캠페인을 발견했습니다.

편집 및 추가 설명: 트리샤 하워드(Tricia Howard)

핵심 요약

  • Akamai 연구원들은 CVE-2018-20062 및 CVE-2019-9082에 취약한 ThinkPHP 애플리케이션을 표적으로 삼는 새로운 캠페인을 발견했습니다. 이 캠페인은 중국어를 사용하는 사이버 위협 그룹에 의해 조율된 것으로 보입니다.

  • 제한된 수의 고객 및 기업을 대상으로 2023년 10월 초에 시작된 것으로 보이며, 최근에야 광범위하게 확산되었습니다.

  • 공격은 주로 홍콩에 위치한 "Zenlayer" 클라우드 공급업체(ASN 21859)에서 호스팅되는 서버와 관련된 다양한 IP 주소에서 시작되었습니다.

  • 이 악용은 초기 발판을 마련하기 위해 감염된 다른 ThinkPHP 서버에서 난독화된 코드를 추가로 가져오려고 시도합니다.

  • 공격자는 시스템을 성공적으로 악용한 후 서버에 대한 지속적인 접속을 유지하기 위해 Dama라는 중국어 웹 셸을 설치합니다.

  • 이후에는 피해자의 데이터 센터 내에서 추가로 확산하거나 공격 인프라에 서버를 사용하도록 유도할 수 있습니다.

서론

보안 업계에서 문제 있는 트렌드가 목격되고 있습니다. 공격자들은 알려진 취약점을 악용하고 있으며, 그 중 일부는 몇 년 전에 발견된 취약점을 악용해 성공을 거두고 있습니다. 대표적인 예가 ThinkPHP RCE(Remote Code Execution) 취약점 CVE-2018-20062 및 CVE-2019-9082입니다. CVE 이름에서 알 수 있듯이, 이 취약점은 적어도 2018년부터 발견되었지만 현재까지도 공격 활동이 계속되고 있습니다.

Akamai는 2023년 10월 17일에 이 공격의 징후를 처음 발견했습니다. 이런 취약점을 악용하는 일련의 제한된 프로브가 관찰되었지만 예상했던 방식은 아니었습니다. 페이로드는 자동화 툴 및 스캐너에서 볼 수 있는 일반적인 "개념 증명" 명령과 달리, 공격자가 제어하는 원격 서버에서 난독화된 셸을 설치하도록 피해 서버에 지시했습니다.

단 며칠간 활동한 캠페인 이후 제한된 프로브는 중단되었지만, 이는 시작에 불과한 것으로 보입니다. 2024년 4월 현재, 이와 비슷한 캠페인이 관찰되었으며 이번 캠페인은 이전보다 훨씬 더 큰 규모입니다.

이 블로그 게시물에서는 이 캠페인의 영향을 받은 사람들을 위한 CVE, 관찰된 악용 시도, 권장되는 방어 조치에 대해 간략히 설명합니다.

CVE 소개

ThinkPHP란 무엇일까요?

ThinkPHP는 주로 PHP 기반 웹 애플리케이션 개발에 사용되는 중국의 오픈소스 웹 애플리케이션 프레임워크입니다. MVC(Model-View-Controller) 아키텍처 패턴을 따라 웹 애플리케이션 구축 프로세스를 간소화하는 라이브러리, 구성요소, 툴 세트를 제공합니다.

CVE-2018-20062CVE-2019-9082 는 널리 사용되는 중국 ThinkPHP 프레임워크의 이전 버전에서 발견된 취약점입니다. 이 취약점은 NoneCMS 및 오픈 소스 BMS와 같이 이 프레임워크를 기반으로 하는 콘텐츠 관리 시스템에 영향을 미칩니다. 공격자는 이를 통해 피해자의 서버에서 원격으로 코드를 실행할 수 있습니다. 두 취약점 모두 다양한 ThinkPHP 구성요소를 대상으로 하는 일련의 악용 변종 중 하나로, 초기 공격 기법이 공개된 2018년부터 몇 년에 걸쳐 공개되었습니다.

관찰된 악용 시도

이 악용 시도( Akamai App & API Protector에서 탐지 및 기록)는 "CVE"를 사용해 중국에 위치한 감염된 서버로 보이는 곳에서 public.txt라는 파일을 다운로드하려고 시도합니다. 그러면 새로운 악성 파일이 "라우터"의 철자가 틀린 것으로 추정되는 "roeter.php"라는 이름으로 피해자의 시스템에 저장됩니다(그림 1).

그러면 새로운 악성 파일이 “라우터”의 철자가 틀린 것으로 추정되는 “roeter.php”라는 이름으로 피해자의 시스템에 저장됩니다(그림 1). 그림 1: App & API Protector가 ThinkPHP CVE 악용 시도를 탐지했음을 보고

다운로드된 텍스트 파일에는 원격 서버 제어를 위한 서버 측 백도어 스크립트인 웹 셸의 난독화된 버전이 포함되어 있습니다. 웹 셸 코드는 난독화, 특히 하나의 긴 HEX 문자열을 생성하는 기본 ROT13 변환을 사용합니다(그림 2). 공격자들은 흥미롭게도 웹 셸 접속을 위해 매우 간단한 비밀번호인 "admin"을 선택했습니다.

다운로드된 텍스트 파일에는 원격 서버 제어를 위한 서버 측 백도어 스크립트인 웹 셸의 난독화된 버전이 포함되어 있습니다. 웹 셸 코드는 난독화, 특히 하나의 긴 HEX 문자열을 생성하는 기본 ROT13 변환을 사용합니다(그림 2). 그림 2: 난독화된 웹 셸 콘텐츠

이 공격은 주로 홍콩에 위치한 Zenlayer 클라우드 공급업체(ASN 21859)에서 호스팅되는 서버와 관련된 다양한 IP 주소에서 시작되었습니다. 백도어 코드를 호스팅하는 서버를 간단히 검사한 결과 이 서버도 동일한 웹 셸에 감염된 것으로 나타났습니다(그림 3).

이 공격은 주로 홍콩에 위치한 Zenlayer 클라우드 공급업체(ASN 21859)에서 호스팅되는 서버와 관련된 다양한 IP 주소에서 시작되었습니다. 백도어 코드를 호스팅하는 서버를 간단히 검사한 결과 이 서버도 동일한 웹 셸에 감염된 것으로 나타났습니다(그림 3). 그림 3: 악성 콘텐츠를 호스팅하는 감염된 서버에 동일한 웹 셸이 배포됩니다.

이는 해당 서버가 공격자의 인프라에 있는 또 다른 노드일 수 있음을 시사합니다. 이러한 접근 방식은 운영 비용을 절감하고, 무엇보다도 귀속을 모호하게 해 사법 기관이 정상적인 기업의 프로덕션 서버를 ISP에 종료하도록 간단히 요청할 수 없기 때문에 서버를 중단하기가 더 어렵습니다.

Dama 웹 셸

파일 시스템 탐색과 같은 고급 기능의 데모를 제공하는 웹 셸로 파일 편집, 삭제, 난독화를 위한 타임스탬프 수정과 같은 작업을 지원합니다. 서유럽과 동유럽 공격자들이 영어로 된 웹 셸(예: WSO-NG 웹 셸)을 사용하는 것은 흔하지만, 이 공격은 사용자 인터페이스의 오리진이 중국이라는 점이 눈에 띕니다(그림 4).

서유럽과 동유럽 위협 공격자들이 영어로 된 웹 셸(예: WSO-NG 웹 셸)을 사용하는 것은 흔하지만, 이 웹 셸은 사용자 인터페이스의 오리진이 중국이라는 점이 눈에 띕니다(그림 4). 그림 4: Dama라고도 알려진 웹 셸 사용자 인터페이스는 중국어 번체로 되어 있습니다.

Dama는 앞서 언급한 고급 메커니즘 외에도 서버로의 파일 업로드를 용이하게 하고, 정확한 OS 버전과 PHP 정보를 비롯한 중요한 기술 시스템 데이터를 수집해 관련 권한 상승 악용을 탐지하는 데 도움을 줍니다(그림 5).

Dama는 서버로의 파일 업로드를 지원하고 중요한 기술 시스템 데이터를 수집합니다 그림 5: 로컬 감염된 데이터베이스와의 상호 작용과 같은 고급 Dama 웹 셸 기능

뿐만 아니라, 악용 후 기능에는 네트워크 포트 스캔과 기존 데이터베이스 및 서버 데이터에 대한 접속이 포함됩니다. 또한 웹 셸은 비활성화된 민감한 PHP 기능을 우회해 PHP 샌드박스를 탈출하고 서버에서 셸 명령을 실행하는 등다양한 권한 에스컬레이션 방법을 제공합니다.

Windows 작업 스케줄러를 활용해 WMI를 재구성하고 높은 권한의 사용자를 추가할 수도 있습니다. 직접 코드 실행을 위한 PHP 인터프리터가 탑재되어 있지만, 광범위한 기능에 비해 OS 셸 명령을 직접 실행하기 위한 CLI(Command-Line Interface)에 대한 지원은 눈에 띄게 부족합니다.

App & API Protector를 통한 방어

ThinkPHP를 최신 버전인 8.0으로 업그레이드할 것을 적극 권장합니다.

이러한 CVE에 취약한 자산을 모두 식별하기는 어렵고 패치 자체가 실현 가능한 옵션이 아닐 수 있기 때문에, 적응형 보안 엔진이 포함된 App & API Protector 를 구축해 ThinkPHP CVE와 관련된 리스크를 줄일 것을 강력히 권장합니다. 

기존에 Adaptive Security Engine을 사용 중인 경우, 웹 플랫폼 공격 그룹 작업을 “거부”로 설정해 보호 기능을 강화하면 리스크를 쉽게 해결할 수 있습니다. 또는 개별 룰 3000189(“ThinkPHP RCE(CVE-2018-20062)”)을 “거부”로 설정할 수도 있습니다.

요약

이 웹 셸은 알려진 지 오래되었음에도 불구하고 공격자들이 계속해서 표적으로 삼아 악용하고 있으며, 눈에 띄는 성공을 거두고 있습니다.  이는 취약한 자산을 식별하고 효과적인 패치 관리 프로세스를 유지하는 데 있어 기업이 직면한 지속적인 과제를 잘 보여줍니다. 

중국어를 사용하는 공격자가 일으킨 최근 공격은 공격자들이 고급 피해자 제어를 위해 설계된 완전한 웹 셸을 사용하는 지속적인 트렌드를 보여줍니다. 흥미롭게도 공격의 표적이 된 모든 고객이 ThinkPHP를 사용하고 있지는 않았는데, 이는 공격자들이 광범위한 시스템을 무차별 표적으로 삼고 있을 수 있음을 시사합니다. 

최근 확산되고 있는 공격의 일부 측면은 매우 정교한(예: 기술의 난독화 제어) 반면, 다른 측면은 거의 우연적(예: CLI 미지원)이라는 점도 흥미롭습니다. 이 격차는 기술이 점점 더 발전하면서 계속 커질 가능성이 높습니다. 기술이 발전했다고 해서 배후에 있는 공격자도 반드시 발전한다는 법은 없기 때문입니다. 하지만 그렇다고 해서 Dama 웹 셸의 제작자가 정교하지 않다는 뜻은 아니며, 이는 업계 전반이 어떻게 변화하고 있는지에 대한 설명일 뿐입니다. 

Akamai 고객들은 이러한 공격 시도로부터 보호되었기 때문에 공격자의 궁극적인 의도를 명확히 파악할 수는 없습니다. 그러나 Akamai의 경험에 따르면, 이들의 목표는 피해자의 시스템을 공격 인프라에 통합해 추가 공격을 시작하거나, 강력한 DDoS(Distributed Denial-of-Service) 또는 암호화 봇넷 네트워크에 서버를 모집하거나, 랜섬웨어 또는 갈취 계획을 수행하거나, 기업에 대한 정보를 수집하기 위해 측면 이동을 수행하는 것일 수 있습니다. 

관심 유지

Akamai 보안 인텔리전스 그룹은 Dama 웹 셸과 같은 위협을 지속적으로 모니터링 및 방어하고 그 결과를 커뮤니티 전체에 공개할 예정입니다. 실시간 업데이트를 받으려면 X(이전의 Twitter)에서 Akamai를 팔로우하시기 바랍니다.



Akamai Wave Blue

에 의해 작성

Ron Mankivsky 그리고 Maxim Zavodchik

June 05, 2024

Akamai 블루 웨이브

에 의해 작성

Ron Mankivsky

론 맨키브스키는 Akamai의 선임 연구원입니다.

맥심 자보디크(Maxim Zavodchik)

에 의해 작성

Maxim Zavodchik

맥심 자보디크는 Akamai의 앱 & API 위협 리서치 담당 수석 관리자입니다.