Как найти shell на сайте

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/xhttpdphp .php .css .jpg

3. Анализируем логи. Если известно примерное время, после которого замечен бэкдор, то можно поискать подозрительное в логах. Хотя на сайте с высокой посещаемостью это будет нелегко.
Пример:

“GET /path/footer.inc.php?act=edit&file=<span style=”backgroundcolor:#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
 

Как найти шелл на своем сайте.

  • 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

Finding Php Shell Scripts In Your Website

Php Shell Scripts

Intro

PHP vulnerabilities are the norm, there is not much that can be done to prevent uploads of malicious files on a PHP site when there are world writable directories especially when your website is using a well known opensource community driven software product to power your website.

PHP shell code can usually be found in many websites around the web especially when the administrator does not know much about how to clean out the backdoors after a hack has been done.

Method 01: by Stephen@governmentsecurity:

Here is a simple bash shell script that will search your public_html (DocomentRoot) directories for common file names as well as search all files for common methods used for shell scripts using the fastest possible method with a large number of files. It will dump the results to a file called “php_backdoors” which you can examine to determine what is and what is not a false positive.

To use this shell script just paste this into a file called checker.sh (and gives it an excustion permission #chmod +x checker.sh) in the directory before your public_html folder, then run it with the

following command:

sh checker.sh
#!/bin/bash


cd public_html/


find . -type f ( -iname "1.*" -o -iname "sh.php" ) -print0 >> ../php_backdoors




find . -type f ( -iname "*.php" -o -iname "*.inc" ) -print0 | xargs -0 -r grep -REn 
'(c99|r57|exif_read_data|extract|passthru|shell_exec|base64_decode|fopen|fclose|eval|Refresh|refresh|justrulz)' >> ../php_backdoors

Method 02: by andrej@Metasploit Notepad

Becuase of Backdoor scripts often need to use PHP commands that most legitimate scripts don’t, so you can search the files in your site for those commands. There are search utility programs you can use

for finding text in files:

  • passthru
  • shell_exec
  • system
  • phpinfo
  • base64_decode
  • edoced_46esab
  • chmod
  • mkdir
  • „ (backticks with an operating system command between them)
  • fopen
  • fclose
  • readfile

On a Linux server, the grep program is already installed as part of the operating system. The only problem is figuring out how to launch it.

If you have command line access to your server (SSH), there’s no problem. You can run it from the command line and have the results displayed to you.

Sample text searches for suspicious PHP code.

Do the search once for each of the suggested PHP keywords listed above.

grep -Rn "mkdir *(" public_html/

OR

grep -RPn "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile) *(" public_html/

Method 03: Using PHP Shell Scanner by k2patel@Daily Linux/Unix

#!/usr/bin/perl -w
# findshell v1.0 == code taken/modified from traps.darkmindz.com
#usage: ./findshell.pl  
use strict;
use File::Find;
my $sens = shift  || 10;
my $folder = shift || './';
find(&backdoor, "$folder");
sub backdoor {
    if ((/.(php|txt)/)){
       open (my $IN,"<$_") || die "can not open datei $File::Find::name: $!";
       my @file =  <$IN>;
       #maybe evil stuffs
       my $score = grep (/function_exists(|phpinfo(|safe_?mode|shell_exec(|popen(|passthru(|system(|myshellexec(|exec(|getpwuid(|getgrgid  (|fileperms(/i,@file);
       #probably evil stuffs
       my $tempscore = grep(/`$_(post|request|get).{0,20}`|(include|require|eval|system|passthru|shell_exec).{0,10}$_(post|request|get)|eval.{0,10}base64_decode|back_connect|backdoor|r57|PHPJackal|PhpSpy|GiX|Fx29SheLL|w4ck1ng|milw0rm|PhpShell|k1r4|FeeLCoMz|FaTaLisTiCz|Ve_cENxShell|UnixOn|C99madShell|Spamfordz|Locus7s|c100|c99|x2300|cgitelnet|webadmin|cybershell|STUNSHELL|Pr!v8|PHPShell|KaMeLeOn|S4T|oRb|tryag|sniper|noexecshell|/etc/passwd|revengans/i, @file);
       $score +=  50 *  $tempscore;
       print "$score - Possible backdoor : $File::Find::namen" if ($score > $sens-1 );
       close $IN;
  }elsif((/.(jpg|jpeg|gif|png|tar|zip|gz|rar|pdf)/)){
       open (my $IN,"<$_") || (print "can not open datei $File::Find::name: $!" && next);
       print "5000 - Possible backdoor (php in non-php file): $File::Find::namen" if grep /(<?php|include( |())/i, <$IN>;
       close $IN;
  }

Usage

perl findshell.pl 10 /srv/www/htdocs > scanout.txt
sort scanout.txt

GOT MEMORY LIMIT USE FOLLOWING

for i in /srv/www/htdocs/ ; do perl findshell.pl 10 $i >> scanout.txt ; done

What do you think?

Итак затронем такую неприятную для любого владельца сайта тему как взлом его детища. Согласитесь, что нет ничего неприятнее, чем если твой ресурс взломали и сделали с ним черт знает что. Трафик упал, яндекс и гугл выкинули из индекса и стало понятно, что творится что-то неладное.

В таком случае нужно задуматься о безопасности Вашего ресурса и Вашего рабочего места или домашнего компьютера. В первую очередь, конечно, нужно подумать, что какие то проблемы есть на вашем ПК. Подумайте об антивирусах и установите наиболее подходящий и надоедливый). Лидирующие позиции на рынке все также занимают 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

Желаю удачной борьбы с вирусами на Ваших сайтах!

Добавить комментарий