9 ноября 2011 г.
9 ноября 2011 г.
Идеально защищенных сайтов не бывает, и иногда случается так, что ваш сайт может стать жертвой злоумышленников.
Одной из неприятностей может стать присутствие так называемого шелла (shell — оболочка) на сервере Вашего сайта. Шеллы представляют собой зловредные скрипты, которые каким-то образом оказались на сервере и могут запускаться на исполнение. В этом случае плохой человек может получить некоторые возможности, например, изменение файлов, загрузка собственных скриптов и соответственно возможность их исполнения, отправка спама и прочее, и прочее. Случается это по разным причинам, но как правило вследствие «дырявости» (читай «уязвимости») CMS или хостинга.
Итак, если у вашего хостинга есть возможность доступа по SSH, то есть способ, который заключается в простом поиске вредоносных скриптов. Запускаем SSH-клиент, например, putty, авторизуемся.
Опишу несколько простых примеров, от которых потом можно отталкиваться.
Поиск текста «eval» во всех файлах с расширением .php с заданной директории:
find /dir/to/find/ -type f -iname "*.php" -exec grep -Him1 'eval' {} ;
Поиск «eval» среди файлов, у которых выставлены права 777
find /dir/to/find/ -perm 2 -type f -iname "*.php" -exec grep -Him1 'eval' {} ;
Простой поиск php-скриптов в заданной папке
find /dir/to/find/ -perm 2 -type f -iname "*.php"
Поиск .php файлов, созданных или измененных за последние 7 дней, мне всегда помогала именно она:
find /dir/to/find/ -type f -iname "*.php" -mtime -7
Далее пробегаемся по списку файлов, смотрим их содержимое и, если найден shell удаляем его.
Не стоит пренебрегать безопасностью своего сайта. Удачи.
Автор: Артур Минимулин ⚫ 9 ноября 2011 г. ⚫ Тэги: Хостинг, Безопасность
Как найти php backdoor на сайте? После поиска зловреда на сайте заказчика решил систематизировать свои знания по этому вопросу.
Самый короткий пример позволяющий исполнить произвольный php код удаленно:
eval($_REQUEST[‘phpshell’]); |
1. Поискать на сайте «опасные» функции:
а) eval() — исполняем php код
б) passthru(), exec() и им подобные — испололняем команду ОС
в) fopen(), chmod(), touch(), … — функции для работы с файловой системой
Для того чтобы искать, понадобится шелл доступ и некоторые знания *nix комманд. Пример, как найти в текущей директории рекурсивно все *.php файлы содержащие функцию eval()
find ./ —name «*.php» —print | xargs grep «eval(« |
Пример, как найти последние измененные файлы за неделю:
find ./ —mtime —7 —name «*.php» —prune —print |
find — великолепная утилита для поиска в никсах, но синтаксис сложно запомнить, для ленивых есть отличный онлайн find помощник .
2. Проверить .htaccess файлы на наличие чего нибудь подозрительного. Например можно засунуть php код в *.html так
RewriteEngine on RewriteRule ^(.*).html $1.php |
Или даже в css и jpg, чтоб никто не догадался!
AddHandler application/x—httpd—php .php .css .jpg |
3. Анализируем логи. Если известно примерное время, после которого замечен бэкдор, то можно поискать подозрительное в логах. Хотя на сайте с высокой посещаемостью это будет нелегко.
Пример:
«GET /path/footer.inc.php?act=edit&file=<span style=»background—color:#ffff00;»>/home/account/public_html/.htaccess</span> HTTP/1.1″ 200 4795 «http://website/path/footer.inc.php?act=filemanager» «Mozilla/5.0…» |
Многие наивно думают, что не используя самописные скрипты — застрахованы от зловредов. Это не так. Шелл-код нередко встречается и в CMS и форумах. Обычно этим грешат нулленые версии. А иногда и в плагинах.
Ну и наконец полезные ссылки по теме:
Бэкдоры: PhpRemoteView , r57shell
NeoPI скрипт на Питоне для поиска «опасного» кода
Статья на securitylab.ru
В своих прошлых статьях я нередко упоминал об различного рода уявимостях на сайтах. Это «Уязвимость в AdsManager на практике» и «Пример уязвимости в JCE», а также более обобщенно в других материалах. Для тех, кто не знает чем бекдор отличается от XSS я посвящу уже следующую статью «Описание распространненых уязвимостей».
Здесь я уделю внимание поиску дыр на сайте, а также некоторым советам, как их залатать от дальнейшего проникновения вирусов.
В первую очередь проверьте версию устанавленных CMS, а также обязательно установленных компонентов и плагинов, зачастую уже давно вышло обновление безопасности, которое залатает очередную брешь. Именно поэтому важно поддерживать программное обеспечение в актуальном состоянии — это не только новая функциональность и возможности, а важный аспект безопасности и залог здоровья сайта.
Как найти уязвимость по логам?
Допустим,что вирус уже проник на сайт. Мы успешно (наверно) удалили все вирусы с сайта и задумались над защитой от дальнейшего вторжения. Здесь могут помочь мои советы из статьи «Как защитить сайт от попадания вирусов». Многие владельцы веб-страниц хотят знать, как вирус попал на сайт и как предотвратить заражение в дальнейшем. В таком случае требуется более детальный анализ появления вирусов на сайте. И я расскажу простой метод поиска уязвимости, который поможет даже начинающему веб-мастеру.
Итак, для начала нам надо найти логи сервера. По умолчанию они находятся в отдельной папке logs выше директории сайта. Чаще всего имеют имена файлов access_log и error_log. Что делать, если не смогли найти их?
— Вариант первый, они у вас могут быть не включены в настройках сервера, поэтому стоит включить генерацию отчетов.
— Вариант второй, запросить логи у техподдержки, они подскажут, как вам поступить дальше.
Ищем шеллы на сайте!
Будем считать, что мы нашли необходимые файлы. Теперь нам надо найти шелл на сайте, именно сам исполняемый файл, а не системные файлы со вставками вредоносного кода. Мы смотрим на дату последнего изменения данного файла, и именно за эту дату стоит открыть файл access_log в удобном текстовом редакторе. Далее воспользуемсся поиском и введем имя нашего вредоносного файла. Находим упоминание в логе и смотрим за происшествиями, которые произошли до запуска исполняемого файла, особенно с того же айпи.
Если хорошо вчитаться в логи, то можно воспроизвести моменты атаки и таким образом найти уязвимый код или действия, повлекшие взлом на сайте. К примеру, часто бывает, что взламывают админку тупым перебором паролей, а всё из-за того, что стоит примитивный пароль «12345».
Таким образом мы узнаем, через какой компонент или файл вирус проник на сайт, а также если постараемся, то заделаем брешь на сайте. Если это какой-нибудь известный плагин, то решение проблемы можно поискать в интернете, если же малоивестный или самописный, редактировать и анализировать придется вручную, или же обратиться к профессионалам безопасности.
Проникновение вирусов через POST запросы
Наверное главным недостатком логов будет проблемность обнаружить данные, передаваемые через POST. Многие вирусы стали достаточно хитрыми и маскируются под модули и плагины системы управления сайтом. Как результат, в логах обычные обращение к страницам, будь то главная или внутренние ссылки. В таких случаях необходимо устанавливать на сервер дополнительные модули захвата пост-данных, либо переключать логирование в уровни trace. При этом будьте готовы, что файлы логов станут занимать ну очень много места! При таком анализе и дешифровке кода можно восстановить полную ситуацию взлома на сайте. Однако многие хостинги с неохотой идут на уступки в выдаче необхрдимых логов. Поэтому этот вариант больше подходит для выделенных серверов.
В некоторых случаях бывают полезны не только данные апача, но и обращения по фтп, к базе данных, логирование на сайте или в панеле управления хостингом. В конечном итоге можно определить причину, если время не было утеряно ( а делать это надо оперативно, сразу после взлома).
Поиск уязвимостей аудитом безопасности
А что если мы собираемся обезопасить наш сайт заранее, а не ждать, пока вирусы проникнут на вебсайт.
Тут два пути поиска потенциальных дыр на сайте. Первый из них анализ файлов и кода, а также компонентов и модулей. В первую очередь стоит проверять проверки загрузки файлов на сайт, а также фильтрацию всех входных данных. Это очень трудоемкое занятие, и явно не подходит рядовому пользователю. Тут могут справиться только настоящие асы.
Второй вариант подразумевает отсутствие доступов к сайту, и мы будем пытаться всеми методами взломать сайт. Тут можно воспользоваться сканерами уязвимостей. В итоге если мы обнаружим потенциальное место для взлома, тогда сможем задуматься об устранении дыры в сайте.
Однако даже все эти методы не дают 100% гарантии отсутствия уязвимостей. И чем больше объем функционала сайта, тем больше потенциальных вариантов уязвимостей. Даже программным методом перебор всех уязвимостей может занять от нескольких суток до месяцев.
Поэтому еще при разработке сайта стоит задумываться о его безопасности, чтобы потом не любоваться результатами хакеров.
Как найти шелл на своем сайте.
- on Янв 12, 2012
-
in
Безопасность
В свое время экспериментировал с движком DLE, и так как это были эксперименты использовал «null» версию этого движка, ну и как следствие использования неофициальных версий постоянная борьба с шеллами и уязвимостями, которые появлялись не только по недоработке разработчиков, но и с легкой руки нуллеров.
Вот некоторые из моих потугов по этому поводу:
Как сломать сайт на DLE
Уязвимости и взлом сайтов DLE
Как найти шелл(shell) на DLE ?
Взлом Сайтов DLE (критическая уязвимость, дыра) Как защититься от взлома?
Недавно нашел еще один способ Как найти шелл или другие уязвимости на своем сайте (не только на ДЛЕ). Помогла мне :
Искалка хакерских скриптов на вашем хостинге [update]
(разработчик Григорий, автор блога greg.su)
Маленькая тузла ai-bolit указала на шелл, который я искал около года.
я хотел было скопировать скрипт шелла к себе на комп, ради исследования, но бдительный nod32 так и не дал мне это сделать. он упорно удалял и предупреждал все попытки скопировать файл. каждый раз предупреждая меня что это троянская программа PHP. Rst.ak
Вот что умеет ai-bolit.php умеет
- искать ~40 разновидностей шеллов и дамперов
- определять зараженные index.php/index.html файлы IFRAME вирусами
- выдавать список директорий, открытых на запись скриптам
Порядок действий:
1. копируем ai-bolit.php в корень сайта
2. запускаем http://site.ru/ai-bolit.php
Результат примерно такой:
(скрин с оф. сайта)
Чаще всего шеллы используют, чтобы незаметно красть трафик или чтобы проставить на сайте ссылки например такие : установка монтаж кондиционеров в москве — для продвижения сайтов или дорвеев. До сих пор ссылочное продвижение является основой seo.
- Об авторе
- Недавние публикации
Работаю в интернете с 2008 года над своими и клиентскими проектами.
Работал инженером-теплоэнергетиком, когда понял, что мое призвание интернет. После чего сразу уволился и завел этот блог (блогу уже 12 лет).
Прошел путь заработка в интернете от бонусхантинга до профессионального интернет-маркетолога.
Сейчас работаю исключительно в интернете, занимаюсь арбтражом трафика, путешествую, веду блог.
Мой телеграмм для связи @sergcv
Итак затронем такую неприятную для любого владельца сайта тему как взлом его детища. Согласитесь, что нет ничего неприятнее, чем если твой ресурс взломали и сделали с ним черт знает что. Трафик упал, яндекс и гугл выкинули из индекса и стало понятно, что творится что-то неладное.
В таком случае нужно задуматься о безопасности Вашего ресурса и Вашего рабочего места или домашнего компьютера. В первую очередь, конечно, нужно подумать, что какие то проблемы есть на вашем ПК. Подумайте об антивирусах и установите наиболее подходящий и надоедливый). Лидирующие позиции на рынке все также занимают Kaspersky, Dr.web и Comodo. У Kaspersky есть полугодовая триальная версия, которая разрабатывалась совместно с Yandex, а Comodo вообще бесплатен для домашнего использования. Хорошо, с этим разобрались — выловили кучку троянов. Также хорошим тоном является работа на компьютере из под пользователя, так как большинство вирусов работают с правами текущего пользователя, зашедшего в систему. Если у пользователя ограниченные права, то вирус банально не сможет исполнить своих задач.
Теперь подумаем о безопасности вашего сайта. Вы определили, что был взлом. Первое, что нужно сделать это проверить файл htaccess на наличие сторонних редиректов. Если таковые присутствую, то можно сразу говорить — поздравляю — Вас взломали.
Обратимся к теории как производится большинство взломов в рунете. В последнее время прошли замечательные времена суперхакеров и взлом сайта производится банальным перебором пароля. Отсюда следующая рекомендация — меняйте пароль на админку на сложный. Рекомендации Microsofta — пароль должен быть не менее 8 символов, содержать большие и маленькие буквы и цифры и желательно еще псевдознаки типа !, ;, $, #.
Сразу смените пароль.
Дальнейшей рекомендацией является обновление плагинов сайта до актуальных версий, ведь ни для кого не секрет, что большинство CMS довольно хорошо защищены, а для взлома доступны именно плагины, которые пишутся энтузиастами, которые частенько пренебрегают безопасностью.
И как завершающий этап — это поиск shell. По существу shell- это та дырка, через которую и залили на сайт либо деструктивные коды, либо файлы другого сайта. Шеллов написано великое множество, но самым популярным является WSO. Оговорюсь, что как только злоумышленник зальет шелл на сайт, он получает к нему полный доступ, а если вы владелец целого сервера, то доступ ко всему серверу.
Для поиска шеллов существуют несколько утилит три из которых и хотелось бы выложить для общего пользования. Это ai-bolit, shellfinder и varvara.
Shellfinder самый быстрый с минимумом настроек, Varvara можно использовать предварительно, например, скачав WSO, и используя кусок кода, а Ai-bolit имеет свою группу разработки, является довольно массивным при работе, но имеет замечательные рекомендации и результаты. http://www.revisium.com/ai/
Скачать их пачкой можно по ссылке http://yadi.sk/d/Ed1KS_4PBZxSD
Желаю удачной борьбы с вирусами на Ваших сайтах!