Як распотрошить знайдений Android-смартфон і дізнатися про його господаря все

  1. WARNING!
  2. Ще одна порада

Уявімо собі таку ситуацію. Ми знаходимо смартфон під управлінням Android 4.1-4.4 (ну або CyanogenMod 10-11) і замість того, щоб повернути його господареві, вирішуємо залишити собі і витягнути з нього всю конфіденційну інформацію, яку тільки зможемо. Все це ми спробуємо зробити без спеціалізованих інструментів на кшталт різних систем для прямого зняття дампа з NAND-пам'яті або хардварних пристроїв для зняття S-ON і так, щоб власник не впізнав про те, що ми робимо, і не зміг віддалено відшукати або заблокувати пристрій. Відразу обмовлюся, що все це зовсім не керівництво до дії, а спосіб досліджувати безпеку смартфонів і дати інформацію тим, хто хоче вберегти свої дані.

WARNING!

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

Отже, нам в руки потрапив чужий смартфон. Не важливо, яким чином, важливо, що він вже у нас. Перше, що ми повинні зробити, - це якомога швидше відв'язати його від мережі, тобто, дотримуючись завіту гопників, вийняти і викинути SIM-карту. Однак робити це я б рекомендував тільки в тому випадку, якщо SIM-карту вдасться вийняти, не вимикаючи смартфон, тобто або обережно піднявши батарею, або через бічний слот, якщо це смартфон з незнімної батареєю (Nexus 4/5, наприклад). У всіх інших випадках краще обмежитися включенням режиму польоту, так як цілком можливо, що в Android активований режим шифрування даних користувача і після відключення смартфон буде заблокований до введення ключа шифрування.

Також ні в якому разі не можна підключати смартфон до якої б то не було мережі Wi-Fi, так як, можливо, встановлене на ньому ПЗ для відстеження (а в Android 4.4.1 воно вже вбудовано) відразу почне свою роботу і можна нарватися на « випадкову »зустріч з власником і його друзями (про поліцію можна не турбуватися, вона такого потерпілого пошле). Фронтальну камеру я б про всяк випадок чимось заклеїв, можливо, вона робить знімки вже зараз і вони будуть відправлені при першій слушній нагоді.

Тепер, коли ми убезпечили свою персону, можна почати розкопки. Перша перешкода, яке нам доведеться обійти, - це екран блокування. У 95% випадків він не матиме захисту, однак про інших п'яти відсотках ми забувати не можемо.

Захищений екран блокування в Android може бути трьох основних типів. Це чотиризначний пін-код, графічний ключ або знімок особи. На розблокування перших двох дається в цілому двадцять спроб, розділених по п'ять штук з «хвилиною відпочинку» між ними. На розблокування по знімку особи є кілька спроб, після яких смартфон перемикається на пін-код. У всіх трьох випадках після провалу всіх спроб смартфон блокується і питає пароль Google.

Наше завдання - спробувати не допустити екран блокування так, щоб не скотитися до паролю Google, підібрати який вже точно не вдасться. Найпростіший спосіб це зробити - використовуючи підключення по USB і ADB:

$ Adb shell rm /data/system/gesture.key

Або так:

$ Adb shell $ cd /data/data/com.android.providers.settings/databases $ sqlite3 settings.db> update system set value = 0 where name = 'lock_pattern_autolock'; > Update system set value = 0 where name = 'lockscreen.lockedoutpermanently'; > .quit

Однак у цього методу є дві проблеми. Він вимагає прав root і не спрацює в Android 4.3 і вище, так як для доступу до ADB потрібно підтвердження з боку пристрою, що в умовах залоченним екрану зробити неможливо. Більш того, доступ по ADB може бути відключений в настройках.

Ми можемо спуститися на рівень нижче і для видалення файлу з ключем блокування використовувати консолі відновлення. Для цього достатньо перезавантажитися в консоль відновлення (вимикання + включення з затиснутою клавішею збільшення гучності) і прошити наступний файл . Він містить скрипт, який видалить /data/system/gesture.key і зніме блокування, не порушуючи роботу поточної прошивки.

Проблема цього підходу - залежність від кастомной консолі відновлення. Стічна консоль просто не прийме файл як підписаний невірної цифровим підписом. Крім того, в разі, якщо активовано шифрування даних, під час наступного завантаження телефон буде заблокований і користуватися ним врятує тільки повне видалення всіх даних, що йде врозріз з нашим завданням.

Ще більш низький рівень - це fastboot, тобто маніпуляція пристроєм на рівні завантажувача. Краса цього методу в тому, що розблокований завантажувач дозволяє робити з пристроєм що завгодно, включаючи завантаження і установку кастомной консолі відновлення. Для цього досить вимкнути смартфон (знову ж робимо знижку на шифрування даних) і включити його в режимі завантажувача, натиснувши кнопку живлення + «гучність вниз». Після цього до пристрою можна буде підключитися за допомогою fastboot-клієнта:

$ Fastboot devices

Тепер завантажуємо «сирий» образ кастомной консолі відновлення (з розширенням img) для «нашого» пристрою і намагаємося його завантажити без установки:

$ Fastboot boot cwm-recovery.img

Якщо завантажувач девайса розлочили, смартфон перезавантажиться в консоль, через яку можна буде активувати режим ADB, залити з його допомогою «оновлення», посилання на яке наведено вище, і прошити його. Далі досить буде перезавантажитися, щоб отримати повний доступ до смартфону. До речі, якщо ти став володарем одного з Nexus-пристроїв, його завантажувач можна легко розблокувати ось так:

$ Fastboot oem unlock

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

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

Fastboot - просто скарб для дослідника

Тепер про те, що робити, якщо всі ці способи не спрацювали. В цьому випадку можна спробувати знайти баг в самому екрані блокування. Дивно, але, незважаючи на відсутність таких в чистому Android, вони досить часто знаходяться в екранах блокувань фірмових прошивок від виробника. Наприклад, в Galaxy Note 2 і Galaxy S 3 на базі Android 4.1.2 колись була знайдена смішна помилка, яка дозволяла на короткий час отримати доступ до робочого столу, просто натиснувши кнопку «Екстрений виклик», потім кнопку ICE (зліва внизу в номеронабирачі) і, нарешті, кнопку «Додому». Після цього буквально на півсекунди з'являвся робочий стіл, чого цілком вистачало, щоб розблокувати.

Ще більш тупий баг був знайдений в Xperia Z: можна було набрати на екстреному номеронабирачі код для входу в інженерне меню (# # 7378423 # #), за допомогою нього потрапити в меню NFC Diag Test і далі вийти на робочий стіл тим же натисканням кнопки « додому ». Мені дуже важко уявити, як могли з'явитися такі дикі баги, але вони є.

Що стосується обходу графічного ключа, тут все досить просто. Він може бути відключений таким же способом, як і пін-код, але тут є ще дві додаткові можливості. По-перше, навіть незважаючи на значну кількість можливих варіантів ключів, люди в силу своєї психології найчастіше вибирають ключ, схожий на одну з букв латинського алфавіту, тобто ті самі Z, U, G, цифра 7 і так далі, що зводить кількість можливостей до парам десятків. По-друге, при введенні ключа палець залишає на екрані зовсім ілюзорний слід, який, навіть змащений, досить легко вгадується. Втім, останній мінус може бути легко знівельовано захисної матовою плівкою, на якій сліди просто не залишаються.

Ну і останнє, про що хотілося б сказати, - це так званий фейс-контроль. Це самий сокирний варіант блокування, який, з одного боку, дуже легко обійти, просто показавши смартфону фотку власника, але з іншого - досить важко, так як, не знаючи навіть імені власника, роздобути його фотографію не представляється можливим. Хоча спробувати сфоткати самого себе, звичайно, варто, цілком можливо, що ти схожий на попереднього власника.

Хоча спробувати сфоткати самого себе, звичайно, варто, цілком можливо, що ти схожий на попереднього власника

Графічний ключ - найпримітивніша міра захисту

Припустимо, що ми обійшли екран блокування. Тепер наші дії будуть спрямовані на те, щоб витягти якнайбільше інформації зі смартфона. Відразу обмовлюся, що пароль Google, сервісів на зразок Facebook, Twitter і номери кредитних карт нам не дістануться. Ні тих, ні інших на смартфоні просто немає; замість паролів використовуються аутентифікаційні токени, які дають доступ до сервісу тільки з даного смартфона, а другі зберігаються на серверах відповідних служб (Google Play, PayPal), а замість них використовуються ті ж маркери.

Більш того, не вдасться навіть купити щось в Google Play, так як його останні версії примусово запитують пароль Google при кожній покупці. Цю функцію, до речі, можна відключити, але навіть в цьому випадку сенс покупок буде втрачено, так як весь контент буде прив'язаний до чужого акаунту.

З іншого боку, ми цілком можемо якщо не викрасти акаунти повністю, то хоча б почитати пошту, Facebook і іншу особисту інфу користувача, а там вже може виявитися щось цікаве. Особливий профіт в цьому випадку дасть Gmail, який можна буде використовувати для того, щоб відновити обліковий запис до інших сервісів. А якщо користувач при цьому ще не встиг сходити в салон зв'язку, щоб заблокувати SIM-карту, то можна буде підтвердити ідентичність і за допомогою номера телефону. Ось тільки займатися цим варто лише після відключення всіх захисних механізмів (ми ж не хочемо, щоб нас відстежили за допомогою захисту від крадіжки).

Всі додатки для відстеження смартфона під управлінням Android можна розділити на три групи: «треш», «іграшки» і «потягне». Перші відрізняються тим, що написані студентами технікумів за три години і, по суті, являють собою самі звичайні програми, які вміють знімати дані з датчика положення і відправляти їх незрозуміло куди. Особлива краса таких софтин в тому, що їх дуже просто виявити і видалити. Фактично досить пройтися по списку встановленого софта, вбити в пошук незрозумілі назви, виявити АНТИВОР і видалити їх. Саме це і потрібно зробити на першому етапі.

Другий тип додатків - це вже щось претендує на серйозний інструмент, але на ділі їм не є. Зазвичай такий софт вміє не тільки відсилати координати на віддалений сервер, але і ховати себе, а також захищатися від видалення. Друга функція зазвичай реалізується за допомогою створення програми у вигляді сервісу без графічного інтерфейсу. В цьому випадку його іконка не буде видно в списку додатків, але сам додаток, звичайно ж, буде висіти в тлі, що легко визначити за допомогою будь-якого менеджера процесів.

Захист від видалення в подібному «софт» зазвичай реалізована через прописування себе в адміністратори пристрої, тому друга дія, яку треба зробити, - це піти в «Налаштування -> Безпека -> Адміністратори пристрою» і просто зняти галочки з усіх перерахованих там додатків. Система повинна запросити пін-код або пароль, але якщо на екрані блокування його вже немає, то доступ буде відкритий відразу. Смішно, але гугловський антизлодій, фактично вбудований в ОС, відключається точно таким же чином.

Нарешті, третій тип додатків, - це АНТИВОР, програмуванням яких займалися люди. Основна відмінність подібних додатків в тому, що крім маскування вони також вміють прописувати себе в розділ / system (якщо є root), через що видалити їх стандартними засобами стає неможливо. Біда тільки в тому, що в списку процесів вони як і раніше будуть видні, а щоб їх відключити, досить перейти в «Налаштування -> Додатки -> Все», потім ткнути по потрібного додатка і натиснути кнопку «Відключити».

Ось і вся захист. У цьому списку також повинні бути і нормальні додатки, реалізовані у вигляді модуля ядра або хоча б нативного Linux-додатки, яке жоден стандартний менеджер процесів не покаже, але я чомусь таких ще не бачив. З іншого боку, команди ps і lsmod все одно б їх видали (якщо це тільки не правильний бекдор), так що рівень скритності підвищився б не сильно.

З іншого боку, команди ps і lsmod все одно б їх видали (якщо це тільки не правильний бекдор), так що рівень скритності підвищився б не сильно

Ось так просто відключається гугловський антизлодій

Наступний крок - зняття дампа внутрішньої пам'яті. Ми не можемо бути впевнені, що в телефоні не залишилося ніяких закладок, особливо якщо це фірмова прошивка від HTC і Samsung, тому перед включенням мережі краще зберегти всі його дані на нашому жорсткому диску. Інакше вони можуть бути видалені в результаті віддаленого дампа.

Для цього в обов'язковому порядку потрібні права root (якщо, звичайно, телефон ще не рутованних). Як їх отримати, тема окремої статті, тим більше що для кожного смартфона свої інструкції. Найпростіше знайти їх на тематичному форумі і виконати, підключивши смартфон до комп'ютера по USB. У деяких випадках рутінг зажадає перезавантаження, тому краще відразу переконатися, не зашифровані дані смартфона (Настройки -> Безпека -> Шифрування), інакше після ребута ми втратимо до них доступ.

Коли root буде отримано, просто копіюємо файли на жорсткий диск за допомогою ADB. Нас цікавлять тільки розділи / data і / sdcard, тому робимо так (інструкції для Linux):

$ Adb root $ adb pull / data $ mkdir sdcard && cd sdcard $ adb pull / sdcard

Всі файли будуть отримані в поточний каталог. При цьому слід врахувати, що якщо в смартфоні немає слота для SD-карти, то вміст віртуальної карти пам'яті буде знаходитися в розділі / data і друга команда просто не знадобиться.

Що далі робити з цими файлами, покаже тільки фантазія. В першу чергу слід звернути увагу на вміст / data / data, там зберігаються всі приватні настройки всіх встановлених додатків (у тому числі системних). Формати зберігання цих даних можуть бути зовсім різні, але загальною практикою вважається зберігання в традиційних для Android базах даних SQLite3. Зазвичай вони розташовуються по приблизно таким шляхах:

/data/data/com.examble.bla-bla/setting.db

Знайти їх все можна за допомогою команди find в Linux, запущеної в первісному каталозі:

$ Find. -name \ *. db

У них можуть міститися не тільки особисті дані, а й паролі (вбудований браузер зберігає їх саме так, причому у відкритому вигляді). Досить лише завантажити будь-який графічний менеджер баз даних SQLite3 і вбити в його поле пошуку рядок password.

Досить лише завантажити будь-який графічний менеджер баз даних SQLite3 і вбити в його поле пошуку рядок password

Робимо дамп пам'яті на смартфон Робимо дамп пам'яті на смартфон   Всі дані додатків зберігаються в каталозі / data / data   Пам'ять не зашифрована, це нам сильно допоможе Всі дані додатків зберігаються в каталозі / data / data Пам'ять не зашифрована, це нам сильно допоможе

Тепер ми нарешті можемо відключити режим польоту, щоб смартфон зміг зв'язатися з сервісами гугла і іншими сайтами. SIM-карти в ньому вже не повинно бути, а визначення місця розташування (в тому числі по IP) можна відключити в «Налаштування -> Місцезнаходження». Після цього відстежити нас вже не вийде.

Що робити далі? Пройтися по листуванню в Gmail, відшукати паролі. Особливо педантичні люди навіть створюють спеціальну папочку для листів з паролями і конфіденційною інформацією. Також можна спробувати запросити зміну пароля на сервісах з підтвердженням за допомогою email, але в разі Google, Facebook, PayPal та іншими нормальними сервісами це спрацює тільки при наявності номера телефону, для чого доведеться повернути SIM-карту на місце.

У загальному і цілому тут все стандартно. У нас є email, можливо, номер телефону, але немає паролів від сервісів. Всього цього повинно бути достатньо для викрадення багатьох акаунтів, але потрібно це чи ні - питання більш серйозний. Той же аккаунт PayPal або WebMoney відновити надзвичайно важко навіть самому власнику, і отриманої інформації тут явно буде недостатньо. Сенс викрадати акаунти від «Однокласників» та інших подібних сайтів дуже сумнівний.

Ще одна порада

Очистити розділ / system від можливих закладок можна, просто перевстановити прошивку. Причому використовувати краще неофіційну і прошивати через стандартну консоль відновлення. В цьому випадку антизлодій не зможе зробити бекап самого себе за допомогою функцій кастомной консолі.

Я ні в якому разі не закликаю надходити так, як описано в цій статті. Наведена в ній інформація, навпаки, призначена для людей, які хочуть захистити свої дані. І ось тут вони можуть зробити для себе кілька очевидних висновків.

  • Перший: для захисту інформації на смартфоні достатньо всього трьох простих механізмів, вже вбудованих в смартфон: пароль на екрані блокування, шифрування даних і відключений ADB. Активовані всі разом, вони повністю відріжуть всі шляхи доступу до пристрою.
  • Другий: мати на смартфоні антизлодій дуже хороша ідея, але не варто покладатися на нього на 100%. Найкраще, що він може дати, - це можливість видалити дані, якщо попадеться не особливо розумний злодій.
  • Ну і третє, найочевидніше: відразу після втрати смартфона необхідно відкликати пароль Google, поміняти паролі на всіх сервісах і заблокувати SIM-карту.

[Authors template = "default»]

Що робити далі?