Удар по memcached: разбираем уязвимость в популярном кеширующем middle-end'е
https://t.me/w2hackЧто такое Memcached
Memcached представляет собой сервер, хранящий в оперативной памяти некоторые данные с заданным временем жизни. Доступ к данным осуществляется по ключу (имени). Вы можете думать о Memcached, как о хэш-таблице, хранящейся на сервере. Применяется он в основном для кэширования кода веб-страниц, результатов запросов к базе данных и тп.
Также ничто не мешает использовать Memcached в качестве «не очень надежного» key-value хранилища. Например, в нем можно хранить сессии пользователей, коды капч или счетчик посетителей, находящихся в данный момент на сайте.

Новые DDoS-атаки на на сервера Memcached
Как пишет журнал ][акер в своих хрониках, злоумышленники научились использовать для амплификации DDoS-атак серверы Memcached, что позволяет усилить атаку более чем в 50 000 раз. Данный метод впервые был описан (PDF) в ноябре 2017 года группой исследователей 0Kee Team из компании Qihoo 360. Тогда эксперты предрекали, что из-за эксплуатации Memcached-серверов мы увидим DDoS-атаки мощностью вплоть до 2 Тб/сек.
Вновь о таком методе амплификации заговорили в конце февраля и начале марта 2018 года. Тогда компании Qrator Labs, Cloudflare, Arbor Networks и Qihoo 360 практически одновременно сообщили о том, что преступники действительно начали использовать Memcached для амплификации DDoS-атак, и отчитались от отражении атак мощностью 260-480 Гб/сек. Затем на GitHub обрушилась атака мощностью 1,35 Тб/сек, а также были зафиксированы случаи вымогательских DDoS-атак, тоже усиленных при помощи Memcached.

Эксплоиты
Сразу три proof-of-concept утилиты для организации DDoS-атак с амплификацией посредством Memcached были опубликованы в сети.
Первая утилита — это написанный на Python скрипт Memcacrashed.py, который сканирует Shodan в поисках уязвимых Memcached-серверов. Скрипт позволяет пользователю сразу же использовать полученные IP-адреса для усиления DDoS-атаки. Автором данного решения является ИБ-специалист, ведущий блог Spuz.me.



Вторая утилита была опубликована на Pastebin еще в начале текущей недели, ее автор неизвестен. Инструмент написан на C и комплектуется списком из 17 000 IP-адресов, принадлежащих уязвимым Memcached-серверам. Скрипт запускает DDoS-атаку, используя адреса из списка для ее амплификации.

Практика
Для начало нам нужно найти уязвимые Memcached-сервера, для этого мы воспользуемся тем самым Shodan . Да, да это именно тот поисковик, мы уже писали о нем в одном из наших самых первых постов на канале.

Или воспользуемся уже готовым списком, который собрали до нас - https://pastebin.com/raw/eSCHTTVu . Скрипт для атаки написан на python 2.7.
sudo apt-get install python
Далее установим себе на эти вот библиотеки:
python -m pip install datetime
python -m pip install scapy
Теперь потираем руки и запускаем программу:
python namescript.py -T xx.xx.xx.xx -S file.txt -P 100 -Thread 100
T - Цель
S - Файл с уязвимыми серверами
P - Кол-во отправленных пакетов
Thread - Потоки

Линки:
Ссылка на программу - https://github.com/DefWolf/Memecrashed
А также исходники атаки: https://pastebin.com/nmthYmHu
Полезный сканер для поиска: https://pastebin.com/GZcekqLz
Защита
Независимый ИБ-эксперт Амир Хашаяр Мохаммади (Amir Khashayar Mohammadi) опубликовал на GitHub исходные коды написанной на Python утилиты Memfixed, которая призвана автоматизировать защиту от усиленных через Memcached DDoS-атак. Довольно иронично, но на прошлой неделе именно Мохаммади выложил в открытый доступ утилиту Memcacrashed, предназначенную для организации Memcached-атак.

Защитное решение Мохаммади использует и автоматизирует метод, предложенный самими разработчиками Memcached, а также компании Corero. Напомню, что эксперты предложили использовать для защиты от уже начавшихся атак команды flush_all и shutdown, которые жертва может отправить на IP-адреса серверов, с которых исходит DDoS. Так, команда flush_all помогает очистить кеш сервера, избавив его от вредоносных пакетов, а команда shutdown приводит к остановке работы демона memcached.

Так же разработчики Memcached выпустили обновленную версию своего продукта, Memcached v1.5.6, в которой была исправлена уязвимость CVE-2018-1000115. Дело в том, что по умолчанию Memcached-серверы доступны через порт 11211, и именно эту особенность злоумышленники используют для амплификации атак. Своим исправлением разработчики изменили конфигурацию по умолчанию, отключив протокол UDP «из коробки».
Огласка в СМИ и патч, выпущенный разработчиками, похоже, делают свое дело. Так, специалисты компании Rapid7 сообщили, что количество уязвимых Memcached-серверов с открытым портом 11211 все же начало снижаться. По данным компании, 1 марта 2018 года их число равнялось 18 000, но уже 5 марта 2018 года оно снизилось до 12 000.
Только в образовательных целях!
Всем удачи!