Коллектив авторов - Защита от хакеров корпоративных сетей
mpg123 – # play mp3’s being piped in
используем
sh -c ‘echo OK; exec mpg123 -’ # first say OK, then play MP3s being piped in
3. Выберите порт для shoutcast и увеличьте его на 1. Через выбранный таким образом порт пользователь ссылается на источник, откуда он пожелал прослушать поток аудиоданных. Таким образом, выбранный порт – это не порт, через который проигрыватель читателя будет передавать поток аудиоданных. Подключаемый модуль shoutcast через порт 8000 обслуживает передачу данных пользователем, но получает музыку через порт 8001. Это немного необычно, но позволяет упростить многие вещи. Добавьте выражение Port+1 к /etc/services в качестве сервиса «shout» так, как это показано ниже:
su-2.05a# grep shout /etc/services shout 8001/tcp
(В дальнейшем изложение будет вестись исходя из предположения, что пользователь выбрал порт 8000.) 4. Теперь, после выбора порта для прослушивания и «демона», который знает, что ему делать, можно объединить их в файле inetd.conf и на самом деле проигрывать все, что поступает в ваш адрес:
shout stream tcp nowait root /bin/sh sh -c ‘echo OK; exec mpg123 -’
Почти всегда плохо, если в приложении, подключающем что-либо к сети, рядом с директорией «root» можно увидеть «sh» (гарантируется, что использование возможностей MP3-проигрывателя на всю катушку приведет к переполнению буфера), но в любом случае надо сделать все необходимое для получения доступа к звуковому устройству. Этого можно добиться путем смягчения ограничений на работу звукового устройства при помощи ввода chmod 0666 /dev/dsp или chmod 0666 / dev/dsp0 и выполнении программы mpg123 без каких-либо специальных разрешений, исключая право на создание помех:
shout stream tcp nowait nobody /bin/sh sh -c ‘echo OK; exec mpg123 -’
Пользователям операционной системы Linux, особенно ее версии Red Hat. Вполне возможно, что в состав дистрибутива используемой ими операционной системы включена программа xinetd вместо inetd. Пользователь узнает это по присутствию директории /etc/xinetd.d. В этом случае последовательность действий пользователя вместо уже описанной будет следующей:
a) создайте файл /etc/xinetd.d/shout;
b) запишите в него следующий текст:# default: on
# description: play mp3s
service shout
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /bin/sh
server_args = -c ‘echo OK; exec mpg123 –’
}c) путем ввода /etc/rc.d/init.d/xinetd restart перезапустите xinetd.
5. Наконец, читателю потребуется модуль SHOUTcast DSP, который можно найти по адресу www.shoutcast.com/download/broadcast.phtml. По различным причинам рассматривается случай, когда пользователь собирается инкапсулировать его внутри превосходного подключаемого модуля SqrSoft Advanced Crossfading Output, написанного Марианом Хернаном Лопезом (Mariano Hernan Lopez). Он доступен по адресу www.winamp.com/plugins/detail.jhtml?componentId=32368. Для начала необходимо установить перекрестный регулятор уровня сигнала (микшер):
а) загрузите Winamp и щелкните правой кнопкой мыши на интерфейсном окне программы. Выберите пункты меню Options I Preferences, затем Plugins-Output. Выберите SqrSoft Advanced Crossfading и щелкните на Configure;
б) щелкните на вкладке Buffer. Проверьте установки на соответствие установкам, показанным на рис. 13.5;
Рис. 13.5. Настройка перекрестного регулятора уровня сигналав) щелкните на вкладке Advanced. Активизируйте Fade-On-Seek;
г) щелкните на вкладке DSP. Выберите Nullsoft SHOUTcast Source DSP;
д) щелкните на кнопке OK для фиксации внесенных исправлений и заново запустите программу Winamp.
6. На этом этапе рядом с окном программы Winamp всплывет новое окно. Оно предназначено для управления программой SHOUTcast DSP, и его размеры не могут быть уменьшены, что сильно раздражает. Ниже приведена последовательность действий по настройке программы SHOUTcast DSP:
а) щелкните на вкладке Input. Удостоверьтесь, что устройством ввода данных (Input Device) является Winamp (пользователь может также установить эту систему для разгрузки своей звуковой карты. Это означает, что он может создать канал, передавая выходной сигнал со своих системных микрофонов во внешний мир);
б) щелкните на вкладке Encoder. Удостоверьтесь, что первым кодирующим устройством (Encoder 1) выбрано MP3 Encoder вместе с его установками 256 Кб/с, 44,100 КГц, Stereo;
в) щелкните на вкладке Encoder. Установите в поле IP-адреса Address значение IP-адреса своего сервера и введите в поле номер порта величину 8000. Это на единицу меньше номера порта, который пользователь на самом деле прослушивает с сервера. Удостоверьтесь, что значение кодирующего устройства равно 1;
г) щелкните на кнопках Connect и Play непосредственно на окне программы Winamp. Посмотрите, что получилось! (См. рис. 13.6.)
Рис. 13.6. Направление потока аудиоданных программой Winamp на удаленную аудиосистему7. В сказанном был бы элемент незавершенности, если не добавить несколько слов об организации туннеля передачи аудиоданных при помощи протокола SSH. Для этого известны два основных способа. Первый применяется, когда демон существует независимо от туннеля (как, например, в случае, когда поток аудиоданных передается в конце концов на внешний радиосервер). Второй способ характеризуется запуском демона одновременно с туннелем передачи данных. Второй способ предпочтительнее первого, поскольку при его использовании не остается лазеек для внедрения кем-либо шума, который может хорошо прослушиваться и имитировать звук… в течение короткого времени.
• Независимый демон. Предположим, что у читателя достаточно прав для доступа и модификации файла inetd.conf или программы xinetd при помощи выполнения единственного действия: запуска ssh – L8001:127.0.0.1:8001 [email protected] Пусть он запустит программу Winamp, используя SocksCap, или, что более вероятно, только изменит выходной IP-адрес сервера на значение 127.0.0.1. Если читатель действительно попытается создать туннель к реальному shoutcast/ icecast серверу, то следует заменить значение 8001 портом, который каждый может прослушать, увеличив его номер на единицу.
• Зависимый демон. Для использования зависимого демона нужна программа netcat, скомпилированная, по крайней мере, на стороне клиента с опцией DGAPING_SECURITY_HOLE. Однако это все еще чрезвычайно полезный метод общего назначения, который нужно знать. Он работает подобно тому, как показано ниже:$ ssh -L18001:127.0.0.1:18001 [email protected] “nc
-l -p 18001 -e ./plaympg.sh”
[email protected]”s password:(Файл Plaympg – это нечто больше, чем файл, содержащий команды #!/bin/sh -c ‘echo OK; exec mpg123 -’ .)
Резюме
«My son, you've seen the temporary fire and the eternal fire;
you have reached the place past which my powers cannot see.
I've brought you here through intellect and art;
from now on, let your pleasure be your guide;
you're past the steep and past the narrow paths.
Look at the sun that shines upon your brow;
look at the grasses, flowers, and the shrubs born here, spontaneously, of the earth.
Among them, you can rest or walk until the coming of the glad and lovely eyes-those eyes that, weeping, sent me to your side.
Await no further word or sign from me: your will is free, erect, and whole-to
act against that will would be to err: therefore I crown and miter you over yourself».
[Virgil's last words to Dante as he gives Dante the power to guide himself. Canto XXVII, Purgatorio (IGD Solutions)]
«Мой сын, ты увидел сиюминутный пожар и вечный огонь.
Ты достиг места, куда не простирается моя власть.
Силой своего ума и мастерства я привел тебя туда;
А теперь пусть твоя воля поведет тебя дальше;
Ты прошел по крутым и узким тропинкам.
Посмотри на солнце, сияющее тебе в глаза;
Посмотри на траву, цветы и кусты земные, здесь неожиданно выросшие.
Среди них ты можешь отдохнуть и погулять, пока не дойдешь до радостных и любящих тебя глаз —
Это те глаза, которые, плача, послали меня к тебе.
Не жди от меня больше никаких слов или намеков.
Твои помыслы свободны, прямы и готовы к тому, чтобы действовать безошибочно и самостоятельно:
Поэтому я короную тебя и даю тебе власть над собой».
[Последние слова Виргилия к Данте о том, что его задача выполнена. Он передал Данте свои знания и волю. Теперь Данте может жить самостоятельно. Песнь XXVII, Purgatorio (IGD Solutions)]
Мы поднялись и встали над скалою,
Уже достигнув ступени конечной.
Вергилий, глядя мне в глаза, со мною
Заговорил: «И временный, и вечный
Огонь ты видел, сын, и входишь в область,
Где я не вождь, а ты не подопечный.
Тебя вели мой ум и моя доблесть
Чрез все препоны. Днесь владеешь правом
Сам обресть благо, чести сей сподобясь.
Смотри, как солнце шагом величавым
Грядет по небу, свет и теплотворы
Даруя лесу, и цветам, и травам.
Пока тебе не засияли взоры
Той, кто, рыдая, за тебя молила,
Да скрасят отдых твой сии просторы.
Отныне буду нем я как могила:
Власть восприемли главного арбитра,
И над тобой – чтоб крепла эта сила —
Златись, корона, и красуйся, митра!»
Данте Алигьери. «Божественная комедия» / Пер. с итал. М.: Просвещение, 1988
Различные проблемы вынудили вернуться к ясным решениям туннелирования. При их реализации поиск общих способов инкапсуляции обычно приводит к более эффективным решениям, хотя затраченные на их поиск усилия и отдача от них могут изменяться в очень широких пределах. Основными идеями, лежащими в основе проектирования туннелей, являются следующие:
• конфиденциальность: «Куда уходит мой трафик?»;