За последние 24 часа нас посетили 41313 программистов и 1813 роботов. Сейчас ищут 1178 программистов ...

Помогите найти бэкдор.

Тема в разделе "Прочее", создана пользователем Штаны, 11 фев 2008.

  1. Штаны

    Штаны Guest

    Я тут прозрел, что в скрипте движка сайта который использую, имеется бэкдор. Бэкдор заключается в том, что в некоторых случаях устанавливается удаленное соединение с каким-то хостом. Такой вывод сделал на основании того, что:
    1) при одних и тех же исходных данных, главная страница сайта при отсутствующем подключении к интернету и при наличии подключения к интернету генерируется за разное время (при наличии подключения к интернету за 5 сек, а при отсутствии подключения к интернету за 0,05 сек).
    2) при выполнении скрипта значок сетевого подключения сигнализирует, что передаются и принимаются данные.
    3) исключено, что бэкдор это обращение браузера для скачивания данных с других хостов, т.к. в теле сгенерированной страницы, внешних ссылок нет, т.е. внешнее подключение осуществляется все таки php скриптом.
    Бэкдор этот замаскирован и в явном виде в скриптах нигде внешнего подключения не фигурирует. Бэкдор активируется при посещении сайта пользователями с определенных ip, но какой-либо базы ip в теле скрипта найти мне не удалось. Скрипт движка очень разветвленный, состоит их множества инклудов, которые в свою очередь содержат другие инклуды, содержит очень много обращений к файловой системе сайта на чтени/запись. В общем глазами битый час искал - не нашел, поэтому обращаюсь за помощью к коллективному разуму :( Помогите. Нужно найти место кода, где осуществляется это внешнее подключение, выяснить к какому хосту подключается скрипт, для чего он подключается и опасно ли для сайта это подключение.
     
  2. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Штаны
    Отключаешься от интернета, ставишь уровень ошибок на максимальный и проверяешь, где имеется внешнее подключение (если сообщение об ошибке не подавили - увидишь)

    Час искать backdoor - очень мало.
    Попробуй поискать в файлах, которые подключаются к главной странице. Разбирай код построчно.
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Elkaz
    Смотрел его движок. Меня на пару страниц хватило.
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Kreker
    :) Представляю. Тогда можно попытаться написать скрипт, который сканирует весь движок на наличие fsockopen/curl/file_get_contents/http/ftp и прочее-прочее. Опять же - это один из вариантов.
    Вообщем, поэтому не пользуюсь чужими наработками. Себе дороже выходит.
    Раньше 3.14здил отовсюду РНР скрипты и мнил себя чудо-прогером. Сейчас я пишу сам, и считаю себя обычным кодером. :) Основы HTTP и TCP/IP только начал изучать. Вот недавно задумался как функция random работает =)
     
  5. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Штаны
    Берёшь аутпост и смотришь, куда кто лезет. Потом ищешь в скрипте адрес, по которому идут обращения. Адрес, скорее всего, в скрипте хранится в виде base64.
    Ты бы сказал, что за скрипт - возможно кто-нить его знает, подскажет.
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    RomanBush
    http://visavi.net/

    Elkaz
    Там некая формула, которая, видимо, сохраняет последний результат, т.е каждый раз вычисления начинаются со случайного числа. Все это округляется и получается простое число.
     
  7. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Elkaz
    Код (Text):
    1. PHPAPI long php_rand(TSRMLS_D)
    2. {
    3.     long ret;
    4.  
    5.     if (!BG(rand_is_seeded)) {
    6.         php_srand(GENERATE_SEED() TSRMLS_CC);
    7.     }
    8.  
    9. #ifdef ZTS
    10.     ret = php_rand_r(&BG(rand_seed));
    11. #else
    12. # if defined(HAVE_RANDOM)
    13.     ret = random();
    14. # elif defined(HAVE_LRAND48)
    15.     ret = lrand48();
    16. # else
    17.     ret = rand();
    18. # endif
    19. #endif
    20.  
    21.     return ret;
    22. }
    Код (Text):
    1. PHP_FUNCTION(rand)
    2. {
    3.     long min;
    4.     long max;
    5.     long number;
    6.     int  argc = ZEND_NUM_ARGS();
    7.  
    8.     if (argc != 0 && zend_parse_parameters(argc TSRMLS_CC, "ll", &min, &max) == FAILURE)
    9.         return;
    10.  
    11.     number = php_rand(TSRMLS_C);
    12.     if (argc == 2) {
    13.         RAND_RANGE(number, min, max, PHP_RAND_MAX);
    14.     }
    15.  
    16.     RETURN_LONG(number);
    17. }
    Код (Text):
    1. #define RAND_RANGE(__n, __min, __max, __tmax) \
    2.     (__n) = (__min) + (long) ((double) ( (double) (__max) - (__min) + 1.0) * ((__n) / ((__tmax) + 1.0)))
    В общем случае, по всей видимости, используется стандартный rand() из stdlib.h, а уже потом приведение числа к диапазону по формуле:
    Код (Text):
    1. n' = a + n(b-a+1)/(M+1)
     
  8. KombaInER

    KombaInER Активный пользователь

    С нами с:
    5 апр 2007
    Сообщения:
    221
    Симпатии:
    0
    Адрес:
    Днепр+Крым=Украина
    напиши свою цмс, ИМХО
     
  9. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Может это не бэкдор, а фронтдор?
     
  10. cf

    cf Активный пользователь

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    что это ?
     
  11. guest2013

    guest2013 Активный пользователь

    С нами с:
    19 ноя 2007
    Сообщения:
    109
    Симпатии:
    0
    Бэкдор - back door - задняя дверь
    Фронтдор - front door - передняя дверь
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    еще есть leftdoor и rightdoor а так же top и bottom, но это все херня по сравнению с Windows хоть какими
     
  13. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    :) backdoor - чёрный ход
     
  14. cf

    cf Активный пользователь

    С нами с:
    28 окт 2007
    Сообщения:
    225
    Симпатии:
    0
    Адрес:
    St. Petersburg, Russia
    нда.. ``фронтдор".. сильно
     
  15. Штаны

    Штаны Guest

    Точно! Помню было в скрипте подавление ошибок с помощью @. Вот значить зачем… Когда доберусь домой автопоиском пробегу по файлам скрипта в поисках этого символа.
    У меня другой фраервол и он для РНР не показывает исходящие подключения :(


    А вообще, мне такая ситуация с бэкдорами офигенно не нравится. Мне на сайте скрипты с бэкдорами и даром не надо, пусть эти бэкдоры даже и безобидные, типа сборщиков статистики посещения: кто, когда, с какого ip… А все так красиво сделано: лицензионное соглашение, поддержка, обновление…доверяешь всему этому и … расплачиваешься. Несмотря на это, я все таки верю, что есть открытые проекты и без бэкдоров, которым достаточно ссылки на авторов. Надеюсь форум phpBB один из таких, т.к. скоро буду такой себе ставить и не хочу бэкдоровских сюрпризов в нем, т.к. мне, любителю без должного опыта, в скопище файлов phpBB бэкдоров точно не найти, даже если они там и будут. А Windows это солидная компания. Даже если в нем есть бэкдор и Билл Гейтс залезет через него ко мне в комп и все сотрет, с него за это можно лимончик другой зелени содрать :)
     
  16. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    ЛОЛ :))) Это Бренд, а компания Microsoft ;)
     
  17. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Штаны
    В редакторе сделай замену @ na пустоту
     
  18. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    удали апач и пхп из правил фильтрации фаервола, запусти скрипт, если ты сам не обращаешься к другим сайтам, то ни апач, ни пхп не должны пернуть и фаервол промолчит.
    А разве в логах ничего не остается? :)
     
  19. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    antonn
    читер :) в логи нельзя подсматривать, пока есть другие варианты :)
     
  20. Штаны

    Штаны Guest

    Слушай, давно тебе хотел сказать, что у меня свитерок, точно такой как у тебя, только чуток светлее :)
    Проснись и пой: Microsoft давно уже не компания, это корпорация :)
    Таким наскоком не получилось. Поиск выдал 147 файлов с расширением .php...
    Не могу так сделать. Я новый фраервол поставил, еще в его настройках не разбирался, а их там такая дофигища. А в логах ни Апача, ни сайта ничего нет, ни при включенном соединении, ни при выключенном :(

    Так что буду искать дальше. Уже, как мне кажется, зону поисков сузил. Использую функцию microtime()( спасибо за подсказку тов. S.t.A.M). Натыкал ее везде (на главной аж 24 шт.) т.к. куча инклудов. Теперь вижу на каких скриптах идет задержка. На первый взгляд ничего страшного не видно. Теперь нужно понять, что ее вызывает.
     
  21. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Штаны
    Так это тем надо проверять, у кого тормозило. Мне, например :lol:
     
  22. Штаны

    Штаны Guest

    Я конечно дурак, но не настолько чтобы не найти из этой фигни выход :) Я на главной в теле скрипта принудительно прописал ip на котором тормозит, например: $_SERVER["REMOTE_ADDR"]='79.124.161.60';
    Ха! :)
     
  23. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Вот видешь как быстро меняется мир...
    Микрософт был компанией а уже в
    Корпорация..
    Вот и задумайся о нашей жизни =)
     
  24. Штаны

    Штаны Guest

  25. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Кто посмел??? Сам прибью ;))))

    Да знаю я про копирайты ;)