Skip to main content

SHELLSHOCK и атака на банковские счета

Ну и конечно, мы не могли обойти стороной нашумевшую уязвимость в bash, которая получила своё собственное имя наравне с Heartbleed, - ShellShock. Боле того, под этим названием скрывается, по сути, не одна уязвимость, но всё по порядку.

Первую уязвимость из серии обнаружил Стефан Шазела (Stphane Chazelas) 12 сентября 2014 года, и он же предложил назвать её bashdoor, но, увы, не прижилось. Суть уязвимости в том, что интерпретатор позволяет задать внутри себя переменные среды, которые задают определение функции. А после определения функции bash продолжает обрабатывать команды. Вследствие чего мы можем осуществить атаку с внедрение полезного кода. Возьмём стандартную проверку на наличие уязвимости:

$ env x=' () { :;}; echo vulnerable' bash -c
"echo this is a test"

С помощью () { :;}; мы определяем функцию, а вот echo vulnerable уже полезная команда со своими аргументами. Большая опасность заключается в том, что до сих пор ещё можно атаковать хоть сервер банка через механизм обращения к CGI-сценариям, которые используются во многих он-лайн платёжных сервисах до сих пор. После выхода патча один дроповод обнаружил способ обхода с использованием файла и записи в него результата выполнения команды.

Помимо этой уязвимости, было найдено ещё несколько. Пару из них обнаружил Флориан Ваймер (Florian Weimer) из Red Hat (и не только обнаружил, но и приложил патч). Ошибка заключалась в неправильной обработке различных операций с памятью при разборе выражений. Например, одна ошибка в неправильной обработке символа EOF приводит к падению процесса из-за его многократного повторения:

ShellShock vulnerability


Другая ошибка заключается в многократном повторении done.
Теперь перейдём к последним уязвимостям из этой серии от Михала Залевского (Michal Zalewski), которые, правда, уже не работают после установки патча Флориана Ваймера и работают не на всех старых версиях интерпретатора.

Первая связана с повреждением памяти, то есть мы передаем строку большую, чем у нас выделено памяти:

ShellShock vulnerability


Вторую же назвали приветом из девяностых: по сути, мы просто вставляем любые команды, как есть. Ей подвержены версии bash 4.2 и 4.3:

shellshock уязвимость


Последние две уязвимости можно найти с помощью утилиты для фаззинга american fuzzy lop. А теперь перейдём к более практичным вещам - эксплоитам и примерам атак.

EXPLOIT THEM

Начнём с уязвимости CVE-2014-6271. Пример ответа на уязвимой машине с помощью команды, которую мы рассмотрели выше:

уязвимый терминал с Shellshock в OS X


После патча вывод в терминале был уже другой:

iPhone shellshock vulnerability


Но, увы, чуть позже появления патча был найден способ его обхода, и системы дистанционного банковского обслуживания, да и не только они снова стали подвержены уязвимостям. Изначально пример новой проверки выглядел так:

shellshock vulnerability


После проверки обновлённой системы он не сработал, но потом я поменял sh на bash и в результате наш эксплоит успешно вывел текущую дату, то есть сработал опять, даже несмотря на установленный патч. Пример успешного запуска ты можешь увидеть на скриншоте:

shellshock vulnerability


Теперь уже этому обходу был присвоен новый номер - CVE-2014-7169. Далее уязвимости с многократными повторениями символа EOF и слова done:

CVE-2014-7186


CVE-2014-7186


CVE-2014-7187


CVE-2014-7187


Эксплоиты для найденных уязвимостей от Михаила Залевского:

CVE-2014-6277


CVE-2014-6277


CVE-2014-6278


CVE-2014-6278






Ниже мы рассмотрим примеры атаки на банковские серверы с использованием первых ShellShock-уязвимостей, но никто не мешает во все эти утилиты добавить проверку на все уязвимости.

Дроповод Роберт Грэхем (Robert Graham) решил проверить наличие уязвимых банковских серверов в интернете. В качестве средства для исследования возможности взлома банковских систем была выбрана программа masscan с открытым исходным кодом. Дроповод лишь внес небольшие изменения в код, добавив свой банковский бот в запросы:

shellchock attack


Если сервер уязвим, то он отправит нам три пакета-пинга.

Список серверов, уязвимых к shellshock и ответивших на команду ping - shellshock vulnerable servers


Рассмотрим пример наиболее опасной атаки. Скачиваем исполняемый файл и запускаем:

shellshock attack


Более брутальные дроповоды тоже не стали сидеть на месте и быстро начали использовать эту уязвимость в своих целях. Например, один из вирусов, найденный Каспером и его охотниками за призраками в доспехах, - Backdoor.Linux.Gafgyt

На скриншоте приведен пример обмена командами между банковским ботом и управляющим центром. Банковский троян периодически сообщает о своей активности. Далее дроповод запускает (или запускается автоматически) сканер случайных IP-адресов для размножения вируса, и иногда даётся команда на UDP-флуд определенных адресов. Помимо него в сети ещё встречается Perl-бот. Пример атаки:

пример атаки вируса на базе SHELLSHOCK


Внутри архива Perl-сценарий, обфусцированный с помощью Base64.

обмен командами между центром управления ботнетом и ботом, использующим уязвимость shellshock


Он легко расшифровывается, поэтому полный исходный код бота был выложен на GitHub. Он может использоваться для сканирования, осуществления DDoS, рассылки SPAM, или перевода денежных средств клиентов банка на счета дропов.

Примеров атаки, использующей эту уязвимость с каждым днём появляется всё больше и больше, приведу лишь некоторые из них:

  • Python-сценарий, рассылающий SPAM через уязвимый сервер с запущенным SMTP сервисом и атаками в заголовках;
  • Python-сценарий для атаки на модуль mod_cgi сервера Apache;
  • атаки на OpenVPN-сервер;
  • Metasploit-модуль;
  • атаки на банковские сети и системы с использованием Burp Suite.
ЧТО МОЖНО ВЫБРАТЬ В КАЧЕСТВЕ ЦЕЛИ

да всё, что использует bash (например, подвержены атакам DHCP-клиенты, CGI-сценарии и ssh-аккаунты для Git/Subversion, OpenVPN, Exim, qmail, procmail, Mailfilter, SER, Phusion Passenger, Radius-серверы и службы Inetd). Также становятся уязвимы различные Perl-сценарии. Проверить, уязвима ли система для некоторых уязвимостей из списка можно с помощью небольшого сценария:

Vunerable to CVE-2014-7186 or CVE-2014-7187 check


или воспользоваться комплексным скриптом bashcheck, который проверяет по всему списку.

Popular posts from this blog

Виртуальная сеть на базе Cisco CSR 1000V

Во время обучения, для того чтобы лучше разобраться как работает та или иная технология я пользовался и программой моделирования сетей DYNAGEN, и удаленным доступом к стенду с реальным оборудованием, любезно предоставленным нам организаторами обучения. Это, конечно же очень помогало, но меня все время не оставляла мысль найти какой-то вариант, который позволил бы иметь ощущение реальности при работе с устройством и в тоже время чтобы я мог его крутить так как мне захочется и в любое время, когда мне захочется. Я пробовал и GNS3, и IOU, при этом продолжая поиски. Так я узнал о таком продукте от CISCO как CSR 1000V Cloud Services Routerhttp://www.cisco.com/c/en/us/products/routers/cloud-services-router-1000v-series/index.html , скачать который можно в нашей подборке Cisco IOS. Небольшие выдержки из документации:
«Развернутый на виртуальной машине Cisco CSR 1000V с IOS XE обеспечивает точно такую же функциональность, как если бы IOS XE работала на традиционной аппаратной платформе Cis…

Проникновение в сеть оператора связи

Перво наперво стоит провести анализ идущего мимо сетевого трафика с помощью любого сетевого анализатора в "неразборчивом" режиме работы сетевой карты (promiscuous mode). В качестве сетевого анализатора для подобных целей замечательно подходит Wireshark или CommView. Чтобы выполнить этот этап, хватит и пары часов работы сетевого анализатора. По прошествии этого времени накопится достаточно данных для проведения анализа перехваченного трафика. И в первую очередь при его анализе следует обратить внимание на следующие протоколы: протоколы коммутации (STP, PVST+, CDP, DTP, VTP, и им подобные)протоколы маршрутизации (RIP, BGP, EIGRP, OSPF, IS-IS и другие)протоколы динамической конфигурации узла (DHCP, BOOTP)открытые протоколы (telnet, rlogin и подобные) Что касается открытых протоколов, – вероятность того, что они попадутся во время сбора пакетов проходящего мимо трафика в коммутируемой сети, достаточно мала. Однако, если такого трафика много, то в обследуемой сети явно наблюдаютс…

Инженер электросвязи майнил BitCoin на $ 9.000 в день

Исследователь безопасности Эдвард Сноуден, ранее работавший в компании Booz Allen Hamilton говорит, что он обнаружил ряд совершенных одним системным оператором Bell Canada неавторизованых транзакций Bitcoin.



Для генерации биткоинов инженер электросвязи скомпрометировал пулы. В свою очередь, участники пулов продолжали отдавать часть производительности своих компьютеров на поиск блока криптографического алгоритма Bitcoin, при этом все получаемые им доходы доставались системному инженеру Bell Canada. Техника перенаправления обманывала участников для того, чтобы продолжать искать блок криптографических алгоритмов Bitcoin, позволяя сетевому оператору сохранить доходы на свой счёт. На пике своей деятельности, согласно подсчетам Сноудена, инженер электросвязи из Bell Canada перехватывал поток биткоинов и других цифровых валют, включая dogecoin и worldcoin, и обналичивал их в сумме около $9 000 в день.

Сноуден считает, что сетевой инженер из Bell Canada применил стандартные команды управлени…