Pull to refresh

Про безопасность в phpBB

Reading time2 min
Views5.9K
Добрый день друзья! Начну с того что с php и phpbb знаком по той необходимости, что на своем проекте мы используем этот форум, так как не нашли более достойной альтернативы. Помимо периодических обновлений с php я не сталкиваюсь и с особенностями работы этого форума знаком мало.

Недавно случилось страшное — наш сервер с аптаймом чуть меньше года(после последней миграции) перезагрузился. На сервере развернут собственно сайт и форум phpbb 3.0.12.

В /var/log/auth.log малоинформативное

Oct  6 09:36:21 fsr sudo: pam_unix(sudo:auth): auth could not identify password for [www-data]
Oct  6 09:36:21 fsr sudo: www-data : user NOT in sudoers ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=...

Не найдя больше никаких подробностей восстановил работу сайта. На следующий день обнаружил более важную информацию

Oct  5 22:55:55 fsr su[18114]: pam_unix(su:auth): authentication failure; logname= uid=33 euid=0 tty=/dev/pts/21 ruser=www-data rhost=  user=admin
Oct  5 22:55:57 fsr su[18114]: FAILED su for admin by www-data
Oct  5 22:55:57 fsr su[18114]: - /dev/pts/21 www-data:admin
Oct  5 22:57:50 fsr su[18310]: pam_unix(su:auth): authentication failure; logname= uid=33 euid=0 tty=/dev/pts/21 ruser=www-data rhost=  user=admin
Oct  5 22:57:52 fsr su[18310]: FAILED su for admin by www-data
Oct  5 22:57:52 fsr su[18310]: - /dev/pts/21 www-data:admin
Oct  5 22:58:39 fsr su[18384]: Successful su for admin by www-data
Oct  5 22:58:39 fsr su[18384]: + /dev/pts/21 www-data:admin

То есть доступ таки был получен. На этот раз было найдено несколько интересных процессов запущенных от www-data.

ps aux|grep www-data

perl /tmp/bp.pl 31337
/bin/sh -i
import pty; pty.spawn( /bin/sh )

Первым делом обновляю форум до последней на данный момент версиии phpBB 3.1.9. После этого прибиваю процессы и жду новых записей в auth.log. Оказалось это совсем не обязательно — через некоторое время прибитые процессы снова появились.

Переходим в /var/www/forum, делаем:

ack-grep -l '\.pl'

Особенно нужно обратить внимание на файлы *.php, помеченные как исполняемые. Привлек мое внимание файл с именем members.php с включенным флагом на исполнение, в котором были встречены и bp.pl и небезызвестный порт 31337. Этого файла нет в списке файлов из архива phpBB. Удаляю файл, в логах nginx и apache были обнаружены постоянные запросы к этому файлу. Делаю grep повторно, о чудо — на этот раз найден исполняемый файл ucpi.php, с аналогичным содержанием. Кстати изначально код эксплоита был найден на github, это сильно помогло.

Процесс обновления phpBB сделан достаточно удобно — основная часть папки обновляется, но есть папки которые переносятся из предыдущей версии проекта. У меня таким образом эксплоиты перекочевали в обновленный форум.

Сейчас кажется проблема решена, но периодически буду посматривать в auth.log, список процессов ну и исходники нужно проверять. Может моё мнение не объективно, но даже для нашего форума это не первое нашествие хакеров и это одна из причин моего прохладного отношения к php в целом и phpBB в частности.

Мне будет интересно узнать насколько эта информация актуальна и насколько сильно распространена данная уязвимость.

Спасибо за внимание.

UPD. Спасибо за теплый прием и поддержку. Ваши отзывы мне реально пригодились! Сервер был успешно отбит. Отдельная благодарность за помощь PaulAtreides.
Tags:
Hubs:
Total votes 26: ↑11 and ↓15-4
Comments18

Articles