BASH
#bash#bitrix#security#grep#find#malware#upload#audit

Bash: поиск подозрительного кода и PHP в upload (проверка Bitrix после взлома)

Команды grep и find для поиска типичных признаков вредоносного кода и недавно изменённых PHP-файлов в каталоге сайта 1С-Битрикс.

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

  1. Подставьте вместо /var/www/site путь к корню вашего сайта (DOCUMENT_ROOT).
  2. Запускайте с пользователя, имеющего право чтения файлов сайта (обычно www-data или владелец каталога).
  3. Результаты grep — файлы и номера строк; проверяйте их вручную — не весь вывод является вредоносным кодом.

Команды для ручной проверки сайта на 1С-Битрикс после инцидента или для профилактики: поиск типичных конструкций вредоносного кода и списка PHP-файлов в /upload, изменённых за последние дни. По каталогу /upload в Bitrix не должно быть исполняемого PHP — любые .php там повод для разбора.

Поиск подозрительных конструкций в коде

# Подозрительный base64 + eval (частая маскировка бэкдора)
grep -R --line-number "eval(base64_decode" /var/www/site

# Прямой вызов выполнения команд
grep -R --line-number -E "shell_exec|passthru|system\s*\(" /var/www/site

# Поиск eval в PHP-файлах внутри upload (в upload не должно быть PHP)
grep -Rl "eval(" /var/www/site/upload --include="*.php" 2>/dev/null

/var/www/site замените на фактический путь к корню сайта (например, $DOCUMENT_ROOT).

Поиск недавно изменённых PHP в /upload

Файлы, изменённые после предполагаемой даты взлома, стоит проверить в первую очередь.

# PHP-файлы в upload, изменённые за последние 7 дней
find /var/www/site/upload -name "*.php" -mtime -7 -ls

# Список с датой и размером (удобно для отчёта), за последние 30 дней
find /var/www/site/upload -name "*.php" -mtime -30 -exec ls -la {} \;

-mtime -7 — изменены за последние 7 дней; -30 — за 30 дней.

Краткий просмотр логов (для контекста)

Чтобы понять, к каким путям были запросы в момент инцидента:

tail -n 500 /var/log/nginx/access.log
tail -n 500 /var/log/nginx/error.log

Замечания

  • Часть совпадений grep может быть в легитимном коде (например, обёртки над shell_exec). Каждый результат нужно просматривать вручную.
  • В каталоге /upload по рекомендациям Bitrix не должно быть PHP; если find находит там .php — их нужно проверить или удалить после анализа.
  • Пути к логам зависят от дистрибутива и настройки Nginx/Apache; при необходимости укажите свой путь к access.log и error.log.