Одним из основных направлений моей деятельности является сопровождение сайтов на битриксе. Когда берешь новый сайт на сопровождение, первым делом нужно проверить, что же оставили предыдущие разработчики (к сожалению, варианты бывают разные:( ).

Написал небольшой sh-скрипт, который помогает в поиске бекдоров на сайте.

sh:
#!/bin/sh
#
# scanbackdoors.sh
#
# Этот скрипт рекурсивно проходит по заданной директории и ищет подозрительный PHP‑код,
# характерный для бекдоров, в том числе вызовы:
#   - eval(base64decode(...))
#   - md5($COOKIE[...])
#   - base64decode($REQUEST[...])
#   - copy($FILES...)
#   - $USER->Authorize(<целое число>);
#
# Результаты сканирования записываются в лог‑файл, имя которого содержит текущую дату и время.
#
# Использование:
#   ./scanbackdoors.sh /path/to/website
#
# Обратите внимание: данный скрипт предназначен для использования в оболочке sh.

if [ -z "$1" ]; then
  echo "Usage: $0 /path/to/website"
  exit 1
fi

SEARCHDIR="$1"

# Формирование имени лог‑файла с текущей датой и временем.
TIMESTAMP=`date +%Y%m%d%H%M%S`
SCRIPTDIR=`dirname "$0"`
LOGFILE="${SCRIPTDIR}/scanlog${TIMESTAMP}.log"

# Записываем стартовую информацию в лог‑файл
{
  echo "------------------------------------------------------------"
  echo "Начало сканирования: `date`"
  echo "Директория для сканирования: $SEARCHDIR"
  echo "------------------------------------------------------------"
} | tee "$LOGFILE"

# Определяем список шаблонов для поиска в виде многострочной строки.
PATTERNS="eval(base64decode
md5(\$COOKIE
base64decode(\$REQUEST
copy(\$FILES
\$USER->Authorize([0-9]\+)"

# Сохраняем значение IFS и переводим его в символ перевода строки
OLDIFS=$IFS
IFS='
'

# Перебираем каждый шаблон
for pattern in $PATTERNS; do
  {
    echo "Ищем строки, содержащие: $pattern"
    echo "------------------------------------------------------------"
  } | tee -a "$LOGFILE"

  grep -RHin --include="*.php" --color=auto "$pattern" "$SEARCHDIR" 2>/dev/null | tee -a "$LOGFILE"

  echo "------------------------------------------------------------" | tee -a "$LOGFILE"
done

# Восстанавливаем первоначальное значение IFS
IFS=$OLDIFS

{
  echo "Сканирование завершено: `date`"
  echo "Лог‑файл: $LOGFILE"
} | tee -a "$LOGFILE"
 

Как использовать:

 

1. Сохраните скрипт в файл, например, scan_backdoors.sh.
2. Сделайте файл исполняемым:

  chmod +x scan_backdoors.sh
3. Запустите сканирование, указав путь к директории сайта:
  ./scan_backdoors.sh /var/www/html
 

 

При необходимости паттерны можно корректировать или дополнять для более точного поиска потенциально вредоносных строк. Обнаруженные совпадения требуют ручного анализа для определения их легитимности.

После выполнения скрипта в том же каталоге, где находится скрипт, появится лог‑файл с именем, содержащим дату и время сканирования. В логе фиксируются все найденные строки, содержащие подозрительные конструкции, что позволит провести их дальнейший анализ.

Если файлов на сайте много - имеет смысл запустить скрипт в фоне:

./scan_backdoors.sh /path/to/website > /path/to/output.log 2>&1 &

Если вы хотите, чтобы скрипт продолжал работать даже после закрытия терминала, используйте команду nohup:

nohup ./scan_backdoors.sh /path/to/website > /path/to/output.log 2>&1 &

Вывод будет сохранен в файл nohup.out, если вы не указали другой файл для перенаправления.

Количество показов: 33
18.03.2025


Реклама: ООО 'РЕГ.РУ Домены Хостинг'. ИНН 6312068502. ERID: CQH36pWzJqCRJ4UXaHSnYxUB4bq5fyuvNiq5y4geRNH7vF
Реклама: ООО «КЛАУДПЭЙМЕНТС». ИНН 7708806062. ERID: CQH36pWzJqCRJ4UXeNjXpDqc5rqRHP2xLyH2ojpuzzBdYG

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.