Если у вас есть доступ к локальной сети крупного предприятия, то вы можете посеять хаос и панику в рядах Linux-пользователей, запустив DHCP-сервер с эксплоитом Shellshock на борту. Концептуальный эксплоит показал Джефф Уолтон (Geoff Walton), старший консультант по безопасности из компании TrustedSec.

DHCP — сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры для работы в сети TCP/IP. Протокол работает по модели «клиент-сервер». Для автоматической конфигурации клиент на этапе конфигурации сетевого устройства обращается к серверу DHCP и получает от него нужные параметры.

Итак, воспроизвести уязвимость проще всего на популярном DHCP-сервере TFTP, слегка изменив его настройки, чтобы сервер не только отвечал на запросы клиентов, но и сам обращался к ним (dhcp-parameter-request-list).

Для внедрения эксплоита подходит любое строковое значение, но надёжнее всего использовать 114 (URL). Запускаем сервер и устанавливаем для 114 следующее значение:

() { ignored;}; echo ‘foo’

003

Разумеется, вместо echo ‘foo’ может быть любая команда, которые вы хотите исполнить на клиентских компьютерах.

004

Пожалуй, у Windows-сисадминов уязвимость Shellshock вызывает злорадную ухмылку. Много лет Linux-админы издевались над большим количеством «дыр» в Windows, но теперь наступила их очередь стыдливо вжимать голову в плечи. Ясно одно: сам факт использования Linux не гарантирует лучшей защищённости, как это было принято считать в определённых кругах.

17 комментариев

  1. 26.09.2014 at 11:47

    Мда, статья как раз для простого пользователя, или даже не пойму для кого вообще 🙂

  2. 26.09.2014 at 11:50

    Уязвимость была обнародована 24 сентября в 14:05:51(UTC) — http://seclists.org/oss-sec/2014/q3/649

    Фиксы стали доступны уже через 1 час и 3 минуты (на примере Debian) — https://lists.debian.org/debian-security-announce/2014/msg00220.html

    Так почему линуксоиды должны «стыдливо вжимать голову в плечи»? =]

  3. 26.09.2014 at 12:31

    «Итак, воспроизвести уязвимость проще всего на популярном DHCP-сервере TFTP, слегка изменив его настройки, чтобы сервер не только отвечал на запросы клиентов, но и сам обращался к ним (dhcp-parameter-request-list)» — это что-то новенькое. Разве запрос аренды, посылаемый только клиентом, не является обязательным?

  4. 26.09.2014 at 12:31

    что же это за пиздец-то такой 🙁

  5. 26.09.2014 at 12:47

    А с маками сработает?

  6. 26.09.2014 at 13:22

    Спасибо. https://security-tracker.debian.org/tracker/CVE-2014-7169

    Все-таки это была хорошая идея использовать в манифесте puppet
    «bash»: ensure=>latest;

    =]

  7. 26.09.2014 at 13:49

    Кстати, а кто мешает внедрять команды внутрь скобок {}? Они должны исполняться, хотя и в non-interactive mode. Видимо, нужно было ставить при импорте переменных флаг SEVAL_PARSEONLY, а не набор SEVAL_NONINT|SEVAL_NOHIST. А так вместо проверки на корректность они передаются на исполнение.

  8. 26.09.2014 at 14:18

    И мы еще долго будем смеяться над виндузятниками.Вопрос.Через сколько времени уязвимость такого вида заделает Microsoft?И когда про эту уязвимость узнают все и получат фикс?

  9. 27.09.2014 at 09:05

  10. 28.09.2014 at 23:19

    А как оно из dhcp в bash попадает? Зачем оно там? Почему именно bash, а не sh, например?

    • 29.09.2014 at 10:16

      Да очень просто. Параметры, передаваемые сервером DHCP, попадают в переменные окружения, которые Bash вместо проверки на корректность исполняет при импорте. Та же шняга, что и с CGI.

      • 29.09.2014 at 22:08

        Так странно, что DHCP вообще понадобилось устанавливать переменные окружения.

        • 30.09.2014 at 13:02

          Просто никому как-то не приходило в голову, что эти переменные bash начнёт без спроса исполнять.

  11. avalonsec

    16.06.2015 at 18:39

    tftpd и криворукий dnsmasq не есть хорошо для сервера. В dhcpd 4.3 скорее всего уже заштопали дырку запретив обращения. На многих дистрибутивах shellshock в bash уже закрыли. В arch linux и fedora вообще очень быстро реагируют на подобное.

Оставить мнение