Рубрика «bash» - 19

Для дистрибутивов с действующей поддержкой уязвимость Shellshock устраняется простым обновлением пакета bash. Но если обновления уже не выпускаются, решение проблемы будет сложнее. Рабочих вариантов всего два — обновлять bash другим способом или отказываться от bash в пользу другого shell-интерпретатора.

Читать полностью »

image

Доброе время суток %username%! Хочу рассказать историю о том, как мой сервер каждый день подвергается атаке через CVE-2014-6271 (shellshock). Для тех, кто вдруг упустил это из виду, две публикации на «Хабре»: «CVE-2014-6271, CVE-2014-7169: удалённое выполнение кода в Bash» и «Новая опасная уязвимость ShellShock позволяет атаковать множество устройств, от смартфонов до промышленных серверов».

Итак, после того, как информация попала в публичный доступ, в логах сервера я стал видеть запросы к серверу, где заголовки содержали вызов bash. Сначала, это были безобидные запросы, где referer и UserAgent http запросы содержали вызов из bash ping xxx.xxx.xxx.xxx — можно догадаться, что это уже поиск потенциальных жертв.

Сегодня ночью стало все куда интереснее. Проверяя логи сервера я наткнулся на такой запрос:
Читать полностью »

Привет, читатели!

Хотелось бы вам рассказать, как я сделал для себя «напоминалку» о том, что в SVN появилась более новая ревизия, чем та, с которой я работаю.

Первая мысль — написать Bash-скрипт, который будет по CRON уведомлять меня о новой ревизии. Возникает вопрос: по e-mail или стандартными средствами Ubuntu? Я склонился использовать утилиту «notify-send», так как не хотел захламлять ящик практически ненужными сообщениями.

Под катом немного кода.
Читать полностью »

Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). Но у Shellshock есть потенциал стать не менее важной птицей, чем Heartbleed. И сейчас я хотел бы собрать воедино всю необходимую информацию, которая поможет всем желающим справиться с ситуацией и избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.

Для начала позвольте поделиться с вами некоторой информацией из блога Роберта Грэма, который провёл превосходный анализ уязвимости. Рассмотрим представленный ниже HTTP-запрос:

target = 0.0.0.0/0
port = 80
banners = true
http-user-agent = shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)
http-header = Cookie:() { :; }; ping -c 3 209.126.230.74
http-header = Host:() { :; }; ping -c 3 209.126.230.74
http-header = Referer:() { :; }; ping -c 3 209.126.230.74

Если его применить к диапазону уязвимых IP, то получим такой результат:

Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить)

Проще говоря, Роберт заставил кучу удалённых машин пинговать его, просто отправив в сеть специально сформированный запрос. Беспокойство вызывает тот факт, что он заставил эти машины выполнить произвольную команду (в данном случае безобидный ping), что открывает широчайшие возможности.
Читать полностью »

Сегодня были опубликованы детали об уязвимости в Bash.
Вкратце, Bash позволяет экспортировать функции как переменные окружения:

$ myfunc() { echo "Hello"; }
$ export -f myfunc
$ env | grep -A1 ^myfunc
myfunc=() {  echo "Hello"
}

Уязвимость состоит в том, что если после тела функции (после последнего символа "}") добавить ещё какую-нибудь команду, и экспортировать её — она будет выполнена при вызове дочернего интерпретатора:
Читать полностью »

Реанимация серверов Ubuntu на Hetzner или немного полезных команд

Этот небольшой пост-шпаргалка предназначен для тех у кого внезапно в ходе неудачного эксперимента или обновления перестал пинговаться сервер, отвалился ssh и прочее. Проще говоря он о восстановлении сервера после обновлений, взломов и тому подобного. По моим ощущениям последнее бывает гораздо реже. Читать полностью »

Если вы занимаетесь администрированием, велика вероятность что рано или поздно встанет вопрос — «На клиентских машинах стоит антивирус Nod32, надо бы создать для них единое зеркало обновлений». И тут возможны несколько путей развития сюжета:

  1. «Сервер на Windows, денег достаточно». Тут всё довольно просто — покупаем лицензию, ставим нужный дистрибутив Nod32 на сервер, настраиваем, радуемся. Вариант более мифический, так как крайне редко, когда на IT «денег достаточно».
  2. «Сервер на Windows, денег не достаточно». Тут возможны варианты. Начиная от использования варезных лицензий, до ручного скриптинга и использования Linux-решений (cygwin в помощь).
  3. «Сервер на Linux». Деньги в этом случае особого значения просто не имеют. У нас есть руки, есть голова, и есть желание сделать всё довольно качественно и надежно.

Вот про третий вариант мы сейчас и поговорим.

Скрипт создания зеркала обновлений для Eset Nod32 на Linux

Читать полностью »

Здравствуйте, читатели!
Недавно в компании, в которой я работаю, было принято решение о переходе на VoIP-телефонию, чтобы связать наконец-то наши многочисленные офисы в единую телефонную сеть. В качестве SIP-сервера был выбран очень интересный продукт Communigate Pro. Долго определялись с абонентскими устройствами, одним из основных критериев, при выборе ТА, было наличие встроенного гигабитного свитча. В итоге выбор пал на телефонные аппараты (далее ТА) ESCENE GS330-PEN. Все бы ничего, но произошло страшное — подвел поставщик, поэтому внедрение сервиса перенеслось почти на пол года. Когда партия телефонов наконец была получена, нам был установлен жесткий дедлайн. Тут-то и возник вопрос: как быстро сконфигурировать и расставить на рабочих местах 80 ТА. Под катом вас ожидает несколько скриптов и алгоритм действий Читать полностью »

Написание своих автодополнений для Shell. Часть 2: bash
В данных статьях (решил, что тематически лучше разбить на две части) описываются некоторые основы создания файлов автодополнений для собственной программы.

Преамбула

В процессе разработки одного своего проекта возникло желание добавить также файлы автодополнений (только не спрашивайте зачем). Благо я как-то уже брался за написание подобных вещей, но читать что-либо тогда мне было лень, и так и не осилил.

Введение

Bash, в отличие от zsh, требует к себе некоторого велосипедостроения в отношении автодополнений. Бегло погуглив, я не нашел более-менее нормальных туториалов, потому за основу были взяты имеющиеся в системе файлы автодополнений для pacman (искренне надеюсь, что отцы-основатели Arch'а не придумывали много велосипедов).

Читать полностью »

Время от времени появляется задача: сделать скрипт для публикации, который нужно обновлять но невозможно изменять. Например это может быть скрипт инициализации, зашитый внутрь образа виртуальной машины или скрипт для установки движка сайта (публикуемый разработчиком движка).
В статье я расскажу о приемах, которые применяю для создания таких скриптов, они помогут избежать некоторых граблей, сохранить простоту и гибкость скриптов. Подход подойдет для тех скриптов, поведение которых должно меняться в зависимости от потребностей автора, обновлений и т.п. Подход НЕ подойдет для скриптов, которые должны работать автономно (без связи с системой автора).

Я использую такой подход в bash-скриптах, но общий принцип можно применять независимо от языка.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js