상세 컨텐츠

본문 제목

WordPress 플러그인 Easy WP SMTP, 제로 데이 취약점 발견

국내외 보안동향

by 알약(Alyac) 2019. 3. 25. 11:53

본문

WordPress plugin zero day exploited in the wild


해커들이 최근 패치된 WordPress 플러그인 Easy WP SMTP의 제로 데이 취약점을 계속 악용하고 있는 것으로 밝혀졌습니다.


이 취약점을 악용하면 공격자는 일반 사용자 계정에서 사이트의 관리 계정으로 권한을 부여할 수 있습니다.


이 제로데이 취약점은 3월 15일 Easy WP SMTP 1.3.9 버전에서 처음 악용되었고 워드프레스는 3월 17일 1.3.9.0 버전에 대한 업데이트를 발표했습니다. 


그리고 아직 시스템을 업데이트하지 않은 WordPress Premium을 이용하는 사용자들을 위해 방화벽 규칙을 발표했습니다.


무료 사용자들은 30일 이후 방화벽에 접속할 수 있지만, 최신 버전의 Easy WP SMTP 플러그인을 다운로드하면 바로 해당 취약점을 예방할 수 있습니다.


30만 개의 사이트에 설치된 이 플러그인은 사용자가 발신 전자 메일에 대한 SMTP 연결을 구성할 수 있도록 도와줍니다.


WordPress 팀은 1.3.9 버전에서 Easy WP SMTP에 추가된 Import/Export 기능에 취약점의 원인이 있다고 보고했습니다.


워드펜스(Wordfence)의 분석가들은 현재 해당 제로 데이 취약점을 이용하여 악성 캠페인을 하고 있는 두 집단을 추적하고 있습니다. 


Import/Export 기능에서 액세스 제어 부족


이 제로데이 취약점의 원인은 버전 1.3.9에서 Easy WP SMTP에 추가된 Import/Export 기능 때문입니다.


새로운 코드에는 admin-aax.php 및 admin-post.php와 같은 wp-admin/ 스크립트에서 실행되는 admin_init 후크가 있는데, 이 후크가 작동하면 플러그인은 POST 파라미터 swpsmtp_import_settings의 존재를 확인합니다. 


<이미지 출처: https://www.wordfence.com/blog/2019/03/hackers-abusing-recently-patched-vulnerability-in-easy-wp-smtp-plugin/>


이 매개 변수를 1로 설정하면 가져오기(import)가 수행되고 있다고 가정하고, swpsmtp_import_settings_file로 파일 업로드를 확인합니다. 


업로드된 파일의 내용은 초기화되지 않았으며, update_option은 각 지정된 키와 변수값 쌍에서 실행됩니다.


이 과정에서 여러 가지 문제가 발생합니다.


첫째, 가장 중요한 것은 이 프로세스 실행 중에 기능 검사가 수행되지 않기 때문에 공격자는 이 결함을 이용하기 위한 특별한 권한이 필요하지 않다는 것입니다.


둘째, 전용 AJAX 작업, REST 엔드포인트 또는 대시보드 페이지에서 실행되는 대신에, importer는 모든 admin_init 호출로 가져오기(import)를 검색합니다.


이것은 로그아웃된 세션에서도 동작이 이루어지기 때문에 인증되지 않은 사용자도 코드를 실행할 수 있다는 것을 의미합니다. 


그다음 입력받은 값을 unserialize()으로 전달하여 개체 주입(Object Injection) 취약점을 발생시킵니다.


※ PHP Object Injection


공격자가 상황에 따라 코드 인젝션, SQL 인젝션, 경로 탐색 취약점 및 애플리케이션 서비스 거부와 같은 다양한 종류로 활용 가능한 공격 방법


마지막으로 사용자가 제공한 옵션은 플러그인별 옵션으로 업데이트되는 것이 아니라 그냥 업데이트됩니다. 


이를 통해 공격자는 사이트의 wp_options 테이블에서 원하는 값을 변경할 수 있습니다.


취약한 사이트를 공격하는 공격 캠페인


보안 전문가들은 이 취약점과 관련된 공격자들의 활동을 추적하고 있습니다.


해당 악성 캠페인은 NinTechNet에서 공개한 취약점 게시글에 자세히 설명되어 있으며, PoC(Proof of Concept)에 설명된 바와 같이 초기 공격을 시작합니다. 


공격자는 default_role을 administrator로 변경하고 users_can_register를 활성화하여 사용자가 관리자 계정을 등록할 수 있도록 만듭니다. 


악성 캠페인들 중 첫 번째 캠페인은 이 시점 이후 악성 행위를 멈춥니다. 


그 이유는 이 단계가 해당 악성 캠페인의 프로세스의 유일한 자동화된 단계였기 때문이며, 나중에 만들어 놓은 악성 관리자 계정을 사용할 것으로 추정됩니다.


또 다른 캠페인은 사이트를 방문했을 때, 악의적인 리다이렉션을 유발하기 위해 피해자 사이트 ULR과 홈 옵션을 변경합니다.


그다음, "index" 문자열이 있는 악의적인 <script > 태그를 취약점에 영향받는 사이트의 모든 PHP 파일에 주입합니다. 


이러한 악의적 행위는 index.php 파일에 영향을 미치며, Yoast's SEO 플러그인 안의 class-link-reindex-post-service.php와 같은 파일에도 영향을 미칩니다.



두 번째 악성 캠페인의 경우 옵션 값과 스크립트 삽입 공격에 사용되는 두 도메인을 확인해야 합니다. 

- setforconfigple.com

- getmyfreetraffic.com 


사용자가 해당 도메인에 접근하는 경우 접근한 사용자를 추적하고 리디렉션할 위치를 결정하기 위해 리다이렉션 사이트에서 쿠키 정보를 확인하고 그 정보를 사용자에게 할당합니다.


가장 일반적인 리다이렉션 페이지는 사용자 컴퓨터가 제우스 바이러스의 영향을 받을 수 있다는 경고 메시지의 기술 지원 사기 사이트입니다.


특히, 위의 두 도메인은 동일한 호스트 IP 주소로 확인되며, 다음 악성 도메인을 호스팅합니다.

- somelandingpage.com

- setforspecialdomain.com


WordPress의 Easy WP SMTP 플러그인 사용하는 사용자들은 취약점 예방을 위해 아래 사이트에서 최신 버전으로 업그레이드 해 주어야 합니다.


Easy WP SMTP 최신버전 바로가기



출처:

https://www.scmagazine.com/home/security-news/vulnerabilities/wordpress-plugin-zero-day-exploited-in-the-wild/

https://www.wordfence.com/blog/2019/03/hackers-abusing-recently-patched-vulnerability-in-easy-wp-smtp-plugin/

https://blog.nintechnet.com/critical-0day-vulnerability-fixed-in-wordpress-easy-wp-smtp-plugin/

관련글 더보기

댓글 영역