Я тут прозрел, что в скрипте движка сайта который использую, имеется бэкдор. Бэкдор заключается в том, что в некоторых случаях устанавливается удаленное соединение с каким-то хостом. Такой вывод сделал на основании того, что: 1) при одних и тех же исходных данных, главная страница сайта при отсутствующем подключении к интернету и при наличии подключения к интернету генерируется за разное время (при наличии подключения к интернету за 5 сек, а при отсутствии подключения к интернету за 0,05 сек). 2) при выполнении скрипта значок сетевого подключения сигнализирует, что передаются и принимаются данные. 3) исключено, что бэкдор это обращение браузера для скачивания данных с других хостов, т.к. в теле сгенерированной страницы, внешних ссылок нет, т.е. внешнее подключение осуществляется все таки php скриптом. Бэкдор этот замаскирован и в явном виде в скриптах нигде внешнего подключения не фигурирует. Бэкдор активируется при посещении сайта пользователями с определенных ip, но какой-либо базы ip в теле скрипта найти мне не удалось. Скрипт движка очень разветвленный, состоит их множества инклудов, которые в свою очередь содержат другие инклуды, содержит очень много обращений к файловой системе сайта на чтени/запись. В общем глазами битый час искал - не нашел, поэтому обращаюсь за помощью к коллективному разуму Помогите. Нужно найти место кода, где осуществляется это внешнее подключение, выяснить к какому хосту подключается скрипт, для чего он подключается и опасно ли для сайта это подключение.
Штаны Отключаешься от интернета, ставишь уровень ошибок на максимальный и проверяешь, где имеется внешнее подключение (если сообщение об ошибке не подавили - увидишь) Час искать backdoor - очень мало. Попробуй поискать в файлах, которые подключаются к главной странице. Разбирай код построчно.
Kreker Представляю. Тогда можно попытаться написать скрипт, который сканирует весь движок на наличие fsockopen/curl/file_get_contents/http/ftp и прочее-прочее. Опять же - это один из вариантов. Вообщем, поэтому не пользуюсь чужими наработками. Себе дороже выходит. Раньше 3.14здил отовсюду РНР скрипты и мнил себя чудо-прогером. Сейчас я пишу сам, и считаю себя обычным кодером. Основы HTTP и TCP/IP только начал изучать. Вот недавно задумался как функция random работает =)
Штаны Берёшь аутпост и смотришь, куда кто лезет. Потом ищешь в скрипте адрес, по которому идут обращения. Адрес, скорее всего, в скрипте хранится в виде base64. Ты бы сказал, что за скрипт - возможно кто-нить его знает, подскажет.
RomanBush http://visavi.net/ Elkaz Там некая формула, которая, видимо, сохраняет последний результат, т.е каждый раз вычисления начинаются со случайного числа. Все это округляется и получается простое число.
Elkaz Код (Text): PHPAPI long php_rand(TSRMLS_D) { long ret; if (!BG(rand_is_seeded)) { php_srand(GENERATE_SEED() TSRMLS_CC); } #ifdef ZTS ret = php_rand_r(&BG(rand_seed)); #else # if defined(HAVE_RANDOM) ret = random(); # elif defined(HAVE_LRAND48) ret = lrand48(); # else ret = rand(); # endif #endif return ret; } Код (Text): PHP_FUNCTION(rand) { long min; long max; long number; int argc = ZEND_NUM_ARGS(); if (argc != 0 && zend_parse_parameters(argc TSRMLS_CC, "ll", &min, &max) == FAILURE) return; number = php_rand(TSRMLS_C); if (argc == 2) { RAND_RANGE(number, min, max, PHP_RAND_MAX); } RETURN_LONG(number); } Код (Text): #define RAND_RANGE(__n, __min, __max, __tmax) \ (__n) = (__min) + (long) ((double) ( (double) (__max) - (__min) + 1.0) * ((__n) / ((__tmax) + 1.0))) В общем случае, по всей видимости, используется стандартный rand() из stdlib.h, а уже потом приведение числа к диапазону по формуле: Код (Text): n' = a + n(b-a+1)/(M+1)
еще есть leftdoor и rightdoor а так же top и bottom, но это все херня по сравнению с Windows хоть какими
Точно! Помню было в скрипте подавление ошибок с помощью @. Вот значить зачем… Когда доберусь домой автопоиском пробегу по файлам скрипта в поисках этого символа. У меня другой фраервол и он для РНР не показывает исходящие подключения А вообще, мне такая ситуация с бэкдорами офигенно не нравится. Мне на сайте скрипты с бэкдорами и даром не надо, пусть эти бэкдоры даже и безобидные, типа сборщиков статистики посещения: кто, когда, с какого ip… А все так красиво сделано: лицензионное соглашение, поддержка, обновление…доверяешь всему этому и … расплачиваешься. Несмотря на это, я все таки верю, что есть открытые проекты и без бэкдоров, которым достаточно ссылки на авторов. Надеюсь форум phpBB один из таких, т.к. скоро буду такой себе ставить и не хочу бэкдоровских сюрпризов в нем, т.к. мне, любителю без должного опыта, в скопище файлов phpBB бэкдоров точно не найти, даже если они там и будут. А Windows это солидная компания. Даже если в нем есть бэкдор и Билл Гейтс залезет через него ко мне в комп и все сотрет, с него за это можно лимончик другой зелени содрать
удали апач и пхп из правил фильтрации фаервола, запусти скрипт, если ты сам не обращаешься к другим сайтам, то ни апач, ни пхп не должны пернуть и фаервол промолчит. А разве в логах ничего не остается?
Слушай, давно тебе хотел сказать, что у меня свитерок, точно такой как у тебя, только чуток светлее Проснись и пой: Microsoft давно уже не компания, это корпорация Таким наскоком не получилось. Поиск выдал 147 файлов с расширением .php... Не могу так сделать. Я новый фраервол поставил, еще в его настройках не разбирался, а их там такая дофигища. А в логах ни Апача, ни сайта ничего нет, ни при включенном соединении, ни при выключенном Так что буду искать дальше. Уже, как мне кажется, зону поисков сузил. Использую функцию microtime()( спасибо за подсказку тов. S.t.A.M). Натыкал ее везде (на главной аж 24 шт.) т.к. куча инклудов. Теперь вижу на каких скриптах идет задержка. На первый взгляд ничего страшного не видно. Теперь нужно понять, что ее вызывает.
Я конечно дурак, но не настолько чтобы не найти из этой фигни выход Я на главной в теле скрипта принудительно прописал ip на котором тормозит, например: $_SERVER["REMOTE_ADDR"]='79.124.161.60'; Ха!
Вот видешь как быстро меняется мир... Микрософт был компанией а уже в Корпорация.. Вот и задумайся о нашей жизни =)
Nemo, ты еще огрызаешься? На, смотри на подпись внизу! http://www.microsoft.com/about/companyi ... fault.mspx (англ) http://support.microsoft.com/contactus/?ws=mscorp (рус)