Практическое задание

Эта задача — шаг 8 курса «Расследование на сервере»

Веб-шелл под чужим именем

сложно~12 мин

Через форму загрузки аватаров на сайт залили веб-шелл, и злоумышленник разложил его копию где-то в статике под безобидным именем. В дереве /opt/webapp (включая вложенные и скрытые файлы) ровно два файла с одинаковым содержимым — это и есть шелл и его копия. Найди их и запиши полные пути, по одному на строку, в /root/webshell.txt.

Что потренируешь:
  • контрольные суммы
  • md5sum
  • поиск дубликатов
  • find -exec
  • расследование

Разбор темы

Злоумышленник может переименовать файл как угодно, но содержимое выдаст его: у файлов с одинаковыми байтами совпадают контрольные суммы. Сравнивать все файлы попарно дорого, поэтому считают хеш каждого (md5sum годится для поиска совпадений, хоть и не для защиты от подделки), сортируют и отбирают повторяющиеся значения. Перечислять файлы при этом нужно через find: шаблоны оболочки не видят скрытых файлов и не заходят в подкаталоги. Совпадение размера — не улика: два файла по 64 байта могут быть совершенно разными.

Что проверяется

  1. найдены оба файла с одинаковым содержимым

Как это выглядит