Pull to refresh

Comments 17

Что за год такой. Интересно, когда Apple пошевелится.
А конкретно Apple причем тут? Уязвим bash и десктопным ОС практически пофиг а Linux сервера находятся в намного большей опасности.
Bash по умолчанию присутствует в поставке OSX, и его надо пропатчить до выхода йосемити.
Если у вас смотрящий в интернет сервер на OS X, то имеет смысл пропатчить bash, это дело пары минут.

На десктопе эта уязвимость погоды не делает.
Это пока unofficial, но спасибо за ссылку, пропатчить надо.
DHCP клиент может быть уязвим
UFO just landed and posted this here
UFO just landed and posted this here
«spawning the shell „/bin//sh“ upon connected»
«I think I saw this as shellcode, was used in about a lot in 2011 or 2012»

Весь анализ можно было свести к тому, что использовался шеллкод, сгенеренный через msfpayload и shell_reverse_tcp.
Ой, и правда ведь! Я как-то и не заметил, думал, что вручную писали.
С анатомической точки зрения (в kill chain) это еще и отличная возможность насовать в «хорошие» веб сайты всяких iframe-редиректов на эксплойты и их связки (да и самих эксплойтов тоже можно насовать). Одно дело выпотрошить себе БД сервера, другое — отгрузить эксплойт (пробить уязвимость) почти каждому его посетителю. Риск посадить трояна на рабочий компьютер (даже внутри периметра) резко увеличился.

Братцы, убирайте Java-машины из браузеров пользователей (и у себя в первую очередь), а также все «любимые» плагины. Лучше портативная Java и/или отдельный браузер с Java, Flash и т.п. для работы с корпоративными бизнес-приложениями (которые вечно требуют какую-нибудь особо винтажную дырявую версию).

Сколько ж еще неоткрытых дырок в «проверенном годами» open source сидят…
Можно подробности про магический () {}? Что он делает, почему допускается в заголовке, почему сразу не писать код без этого пролога?
Подробности можно посмотреть, например, здесь и здесь.
В моем понимании это выглядит так:
Bash при работе использует переменные окружения, которые задаются командой env.
Помимо переменных окружения bash поддерживает список внутренних функций, также задаваемых командой env. Вот пример команды:
$ export foo='() { echo "Inside function"; }'
$ bash -c 'foo'
Inside function

Насколько я понимаю, эти функции должны выполняться только при непосредственном их вызове. Однако в старых версиях bash не проверяет определение функции на корректность и интерпретирует всю строку целиком, из-за чего возникает возможность дописать после определения функции другие исполняемые команды — как-то так:
$ export dummy='() { echo "hi"; }; echo "pwned"'
$ bash
pwned

Беда-печаль состоит в том, что «дополнительные» команды исполняются не при вызове внутренней функции, а при загрузке нового экземпляра интерпретатора, что и видно из примера. Почему это так, объясняется в посте, доступном по второй ссылке.
Резюмируя, ответ на ваш вопрос получается такой: магические скобочки — это определение функции; они допускаются в заголовке, так как являются стандартной конструкцией языка; просто написать вредоносный код без них нельзя, ибо в этом случае bash посчитает вводимый параметр не функцией, а обычной строковой переменной окружения.
P.S. А вот что для меня загадка — так это назначение двоеточия и точек с запятыми. Но особенно двоеточия.
Sign up to leave a comment.