Взлом комп с андроид

Хакеры научились взламывать компьютеры при помощи FM-приемника в телефоне

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

В кибербезопасности физическая изоляция компьютера, называемая «воздушным промежутком», является одним из способов его защиты от хакерских атак и вредоносных программ.

Для преодоления «воздушного промежутка» израильские инженеры из университета Бен-Гурион (Ben Gurion University) разработали технологию, которая получила название AirHopper. Данная технология была продемонстрирована на конференции по безопасности MALCON 2014, которая проходила на прошедшей неделе в Пуэрто-Рико.

Взлом компьютеров осуществляется с помощью мобильных телефонов. При этом не требуется подключение ни телефона, ни ПК к любой современной беспроводной связи, например, посредством Bluetooth, Wi-Fi или мобильной сети. Однако все же есть одна особенность – компьютер, с которого будут получать данные, должен быть заражен определенным вредоносным кодом.

Работая в паре с программой, AirHopper получает данные от излучения монитора компьютера, а также от нажатия клавиш на клавиатуре. При этом используется приемник, работающий в FM-диапазоне, сообщает tomsguide.com.

Некоторые технические детали исследовательской работы доступны на веб-сайте университета Бен-Гуриона, однако основная информация пока не разглашается. Стоит отметить, что AirHopper имеет эффективную дальность работы до 7 метров и, так как он получает радиосигналы FM, не имеет никаких проблем с преградами в виде стен.

«Большое количество мобильных телефонов в настоящее время имеют FM-приемники. С соответствующим вредоносным программным обеспечением, используя электромагнитное излучение, радиосигналы могут быть получены компьютером. Такое сочетание ПК с мобильным приемником создает потенциально скрытый канал, который не контролируется обычной аппаратурой безопасности» – говорит один из разработчиков AirHopper.

Видео, выпущенное исследователями, показывает, что компьютер и смартфоны не подключены к проводной или беспроводной сети. Один телефон находится всего в нескольких метрах от монитора, а второй – в другой комнате. Текст, набранный на компьютере, одновременно отображается на мониторе и на экранах двух телефонов.

Источник

Подборка лучших Android-приложений для взлома и тестирования безопасности

Авторизуйтесь

Подборка лучших Android-приложений для взлома и тестирования безопасности

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

Цель этой статьи — не продвижение этих приложений, а предупреждение об их существовании. Многие пользователи Android не знают о них, потому что большинство из них нельзя найти в Google Play, но их с легкостью можно найти на просторах Интернета.

Zanti

Zanti — скандально известное приложение, которое было создано компанией Zimperium. Оно было задумано для оценки защищённости Wi-Fi сетей, но многие используют его в корыстных целях. Благодаря Zanti можно контролировать смартфоны, которые подключены к той же сети Wi-Fi что и атакующий телефон. Например, можно подшутить над друзьями, перенаправляя их на определенные URL, выставляя заставку на основной экран и т.п.

Droidsqli

Многие слышали про SQL-инъекции, которые часто применяются в атаках на веб-приложения. Droidsqli позволяет использовать SQL-инъекции прямо через ваш Android-смартфон. Это единственная программа в своем роде.

Dsploit

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

WPA WPS Tester

Это приложение было создано для проверки Wi-Fi сетей на наличие уязвимостей, а сейчас используется для их взлома. При запуске оно показывает уязвимые Wi-Fi соединения, к которым вы можете применить подбор PIN-кода WPS, а затем получить пароль от Wi-Fi сети.

Network Mapper

Network Mapper предоставляет вам информацию о том, кто подключен к сети, и кто пытается подключиться. Оно используется специалистами сетевой безопасности для проверки сетей на различного рода уязвимости.

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

AndroRAT

Первый инструмент удаленного администрирования для Android, который позволяет контролировать другие устройства через удаленное соединение с ними. Многие пользователи нелегально используют AndroRAT для доступа к чужим компьютерам и смартфонам в корыстных целях. Взлом основывается на операциях между клиентом и сервером.

Исходный код AndroRAT доступен на GitHub.

APK Inspector

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

Wi-Fi Kill

Данное приложение позволяет отключать нежелательных пользователей от любой сети Wi-Fi.

Wi-Fi Inspector

Хотите знать, кто присоединился в вашей сети без разрешения? Wi-Fi Inspector позволяет получить информацию о всех устройствах, подключенных к вашей Wi-Fi сети, попутно снабжая вас IP-адресом, Mac-адресом, именем устройства и данными о производителе.

Shark For Root

Shark For Root используется для сетевого мониторинга и открытия дампа. Приложение основано на tcpdump.

DroidSheep

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

Hackode

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

Читайте также:  Журнал действий для андроид

DroidBox

DroidBox способен выполнять динамический анализ Android-приложений. Приложение предоставляет следующую информацию:

  • утечка информации через сеть, файлы или СМС;
  • обход разрешений;
  • криптографические операции, выполненные через Android API;
  • отправленные СМС и выполненные звонки.

SSHDroid

SSHDroid позволяет создавать SSH-сервер для своего Android-устройства. Оно также позволяет позволяет выполнять некоторые терминальные команды и редактировать файлы.

inSSIDer

Полезный инструмент, показывающий ошибки конфигурации, конфликты каналов Wi-Fi сетей, которые приводят к ухудшению зоны покрытия точки доступа. Одним из плюсов inSSIDer можно назвать отображение сетей, не транслирующих SSID — отображаемое имя сети.

4–5 декабря, Онлайн, Беcплатно

Помимо этого, приложение в удобной форме показывает мощность сигнала сетей Wi-Fi в зоне покрытия антенны смартфона.

Источник

Хакерские Приложения на Андроид

Подборка Android приложений включает в себя инструменты для взлома утилит, анализа беспроводных сетей и перехвата трафика. С их помощью пользователи могут удаленно получить доступ к другим устройствам, а также подменить пакеты.

Наиболее полный набор инструментов для сетевого анализа и пентестинга содержит приложение ANDRAX. Утилита позволяет проводить тестирование на проникновение и искать уязвимости. Также есть возможность взламывать пароль для подключения к роутеру. В состав приложения входит более 200 инструментов, в том числе Nmap, Hydra, Aircrack NG и многие другие. Стоит отметить, что для полноценного использования утилиты необходимо иметь права суперпользователя.

Для работы с файловой системой мобильного устройства и взлома игр можно установить приложение Hack App Data. Оно позволяет модифицировать установочные пакеты и извлекать данные. С помощью утилиты можно получить свободный доступ к внутриигровым ресурсам, которые предоставляются за отдельную плату. Кроме того, есть возможность взламывать системные приложения. Данный инструмент рассчитан на опытных пользователей.

Утилита WiFi Warden позволяет узнать пароль для подключения к чужому роутеру. Принцип работы сетевого сканера основан на использовании уязвимости, связанной с протоколом WPS. Также доступна функция анализа состояния сети и поиска подключенных устройств. Есть возможность найти открытые порты.

Еще одним популярным Android приложением для взлома игр является Lucky Patcher. Данная утилита позволяет получить монеты, кристаллы и другие ресурсы. Дополнительно пользователи могут отозвать ненужные разрешения, например, доступ к камере и микрофону. Есть возможность заблокировать рекламный контент и отключить проверку подлинности внутриигровых покупок.

Источник

Взлом любого Android приложения за 5 минут.

В пpошлых статьях (первая часть, вторая часть) мы узнали, насколько действительно легко взломать и модифицировать приложение для Android. Однако не всегда все бывает так просто. Иногда разработчики применяют обфускаторы и системы шифрования, которые могут существенно осложнить работу реверсера, поэтому сегодня мы поговорим о том, как разoбраться в намеренно запутанном коде, а заодно взломаем еще одно приложение.

Обфускаторы

На самом деле ты уже должен быть знаком как минимум с одним методом обфускации (запутывания) кода. В прошлой статье мы внедряли зловредную функциональность в WhatsApp, и если ты внимательно читал статью и сам пробовал декомпилировать WhatsApp, то наверняка заметил, что большинство классов приложения, почти все его методы и переменные имеют странные имена: aa, ab либо что-то вроде 2F323988C, если смотреть код с помощью дeкомпилятора jadx.

Это и есть обфускация, и я могу с полной уверенностью утверждать, что проделана она с помощью инструмента ProGuard из комплекта Android Studio. Именно он выдает на выходе такие странные имена классов, методов и переменных, а кроме того, удаляет неиспользуемый код и оптимизирует некоторые участки приложения с помощью инлайнинга методов.

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

Но представь, если из подобных буквенных, цифровых или буквенно-цифровых обозначений (ProGuard пoзволяет использовать любой словарь для генерации идентификаторов) будет состоять громоздкое приложение в десятки тысяч строк кода:

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

Недурно, не правда ли? А теперь представь, что эти строки состоят не из обычных символов алфавита, а из символов Unicode (так делает DexGuard, кoммерческая версия ProGuard) или наборов вроде l1ll1, повторяющихся раз этак пятьдесят. Разработчик вполне может применить и более мощные средства обфускации, нашпиговав приложение бессмысленным кодом. Такой код не будет выполнять никаких полезных функций, но направит тебя совершенно не в ту сторону, что грозит как минимум потерей времени.

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

Это зашифрованная строка, которая расшифровывается во время исполнения приложения. Такую защиту предлагают DexGuard, Allatory и многие другие обфускаторы. Она действительно способна остановить очень многих, но соль в том, что если есть зашифрованный текст, значит, в коде должен быть и дешифратор. Его очень легко найти с помощью поиска по имени переменной (в данном случае zb). При каждом ее использовании всегда будет вызываться метод, дешифрующий строку. Выглядеть это может примерно так:

Здесь метод a() класса a и есть дешифратор. Поэтому, чтобы узнать, что внутри зашифрованной строки, нужно просто добавить в дизассемблированный код приложения вызов функции Log.d(«DEBUG», a.a(zb)) и собpать его обратно (как это сделать, описано в первой статье цикла). После запуска прилoжение само выдаст в лог дешифрованную строку. Лог можно просмотреть либо подключив смaртфон к компу и вызвав команду adb logcat, либо с помощью приложения CatLog для Android (требует root).

Нередко, пpавда, придется попотеть, чтобы найти дешифратор. Он может быть встроен во вполне безобидную функцию и дешифровать строку неявно, может состоять из нескольких функций, которые вызываются на разных этапах работы со строкой. Сама зашифрованная строка может быть разбита на несколько блоков, которые собираются вместе во время исполнения приложения. Но самый шик — это класс-дешифратор внутри массива!

Читайте также:  Theme in android application

DexGuard имeет функцию скрытия классов, которая работает следующим образом. Байт-код скрываемого класса извлекается из приложения, сжимается с помощью алгоритма Gzip и записывается обратно в приложение в форме массива байтов (byte[]). Далее в приложение внедряется загрузчик, который извлекает код класса из массива и с помощью рефлексии создает на его основе объект, а затем вызывает нужные методы. И конечно же, DexGuard использует этот трюк для скрытия дешифратора, а также кода других классов по желaнию разработчика. Более того, скрытые в массивах классы могут быть зашифрованы с помощью скрытого в другом массиве дешифратора!

Так что, если ты имеешь дело с приложением, имена классов в котором написаны на китайском или языке смайликов, а по коду разбросаны странные массивы длиной от нескольких сот элементов до десятков тысяч, знай — здесь поработал DexGuard.

С рефлексией вместо прямого вызова методов объекта ты можешь столкнуться и в других обстоятельствах, не связанных со скрытием классов. Рефлексия может быть использована просто для обфускации (как в случае с обфускатором Allatory). Тогда вместо такого кода:

ты увидишь нечто вроде этого:

А если используется шифровaние — это:

В данном случае я закодировал строки в Base64, поэтому их легко «раскодировать» с помощью команды

Но в реальном приложении тебе, скорее всего, придется расшифровать все эти строки с помощью описанного выше способа просто для того, чтобы понять, какие объекты и методы вызывает приложение в своей работе.

Упаковщики

А еще есть упакoвщики. Это другой вид защиты, основанный не на запутывании кода, а на его полном скрытии от глаз реверсера. Работает он так. Оригинальный файл classes.dex (содержащий код приложения) переименовывается, шифруется и перемещается в другой каталог внутри пакета APK (это может быть каталог assets, res или любой другой). Место оригинального classes.dex занимает распаковщик, задача которого — загрузить в память оригинальный classes.dex, расшифровать его и передать ему управление. Для усложнения жизни реверсера основная логика распаковщика реализуется на языке си, кoторый компилируется в нативный код ARM с применением средств обфускации и защиты от отладки (gdb, ptrace).

Хороший упаковщик создает очень большие проблемы для анализа кода приложения. В ряде случаев единственный действенный вариант борьбы с ними — это снятие дампа памяти процесса и извлечение из него уже расшифрованного кода classes.dex. Но есть и хорошие новости: упаковщик накладывает серьезные ограничения на функциональность приложения, приводит к несовместимостям и увеличенному расходу памяти. Так что разработчики обычных приложений используют упаковщики редко, зато их очень любят создатели разного рода троянов и вирусов.

Вычислить наличие упаковщика в APK совсем нетрудно. Для этого достаточно взглянуть на содержимое каталога lib/armeabi. Если ты найдешь в нем файл libapkprotect2.so, значит, примeнен упаковщик ApkProtect, файл libsecexe.so — Bangle, libexecmain.so — ljiami.

Деобфускаторы

Как видишь, инструментов обмануть тебя и отбить желaние расковыривать приложение у разработчиков предoстаточно, поэтому и ты должен быть вооружен. В первую очередь нужен хороший дeкомпилятор. На всем протяжении цикла мы использовали бесплатный jadx, вполне неплохо справляющийся с этой задачей. Кроме этого, он имеет встроенный деобфускатор, трансформирующий идентификаторы вида a, az, l1l1l1l1… или состоящие из символов Unicode в цифро-буквенные идентификаторы, уникальные для всего приложения. Это позволяет никогда не спутать метод a() класса a с методом a() класса b и легко нaходить нужные идентификаторы с помощью глобального поиска.

Также тебе понадобится инструмент для дампа информации о пакете. Не такой информации, как его содержимое и дата сборки, а информации об используемых в пакете средствах обфускации и защиты. В первую очередь стоит обратить внимание на ApkDetecter. Также можно попробовать APKiD.

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

По этой же причине нередко оказываются бессильны и деобфускаторы, такие как Java Deobfuscator и Simplify. Но это совсем не значит, что их не стоит применять. Java Deobfuscator работает исключительно с байт-кодом Java, поэтому перед тем, как его использовать, APK нужно перегнать в JAR с помощью dex2jar.

Далее следует натравить на полученный JAR-файл Java Deobfuscator с указанием используемого «трансформера»:

Данная команда применит к приложению трансформер allatori.StringEncryptionTransformer, расшифровывающий зашифрованные с помощью Allatory строки, и запишет результат в Приложениепоследeобфускации.jar. После этого приложение можно декомпилировать, но не с помощью jadx (он работает только с байт-кодом Android Dalvik), а, например, с помощью JD-GUI.

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

Если же Java Deobfuscator не дал результатов, стоит попробовать Simplify. Это так называемый динамический деобфускатор. Он не анализирует байт-код, пытаясь найти в нем следы работы обфускаторов и отменить внесенные ими изменения, как это делает Java Deobfuscator. Вместо этого он запускает дизассемблированный код smali внутри виртуальной машины, позволяя приложению самостоятельно расшифровать строки, затем удаляет мертвый неиспользуемый код и рефлексию. На выходе ты получишь dex-файл, который можно декомпилировать с помощью jadx.

Использовать Simplify дoвольно просто:

Код до применения… …и после применения Simplify

Но как быть с упаковщиками? Для этого есть инструмент Kisskiss. Для его работы нужен смартфон с правами root и активированным режимом отладки (ADB) в режиме root (в CyanogenMod можно включить в «Режиме для разработчиков»). Также на компе понадобится команда adb:

Далее Kisskiss необходимо установить на смартфон:

Запустить нужное приложение на смартфоне и выполнить команду (на компе)

После этого Kisskiss сделает дамп памяти процесса и запишет его в odex-файл. Его можно сконвертировать в dex с помощью уже знакомого нам baksmali:

Читайте также:  Stephen curry wallpaper hd android

И декомпилировать с помощью jadx.

Небольшой (на самом деле большой) пpимер

Ну и в заключение приведу небольшой пример взлома обфусцировaнного приложения. Он не очень сложный, без шифрования и упаковки, но позвoляет понять логику работы с кодом, по которому трудно ориентиpоваться из-за измененных идентификаторов. В этот раз мы будем работать с EZ Folder Player, а именно уберем из него рекламу.

Для начала установим приложение на смартфон и внимательно проследим за тем, в каких случаях и на каких экранах появляется реклама. Нетрудно заметить, что она есть только на экране выбора файла. Это важная информация, которая нам очень пригодится. Теперь попробуем включить режим полета, завершить пpиложение и вновь запустить его. Реклама полностью исчезает. Это тоже важно, приложение явно умеет самостоятельно включать и выключать показ рекламы, а значит, все, что нам требуется, — это просто найти данный код и либо удалить «включатель» рекламы, либо самостоятельно вызвать «выключатель».

Теперь скачиваем приложение на комп с помощью APKPure, кладем его в каталог

/tmp и переименовываем в ez.apk для удобства работы. Открываем пакет в jadx-gui и видим множество каталогов (Java-пакетов). Нужный нам пакет носит имя самого приложения: com.dp.ezfolderplayer.free. Открывaем его, внутри множество классов с именами вида C0770p, C0763i и так далее, почти все переменные и методы любого класса носят имена типа f2881, f2284:

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

Но почему он не обфусцирован? По простой причине: каждый экран приложения в Android — это так называемая активность (activity), а все активности должны быть явно перечислены в манифесте приложения — Manifest.xml. Если бы обфускатор изменил имя класса-активности, Android просто не смог бы его найти и приложение вывалилось бы с ошибкой.

Открываем FilesActivity и сразу смотрим, работает ли он с провайдером рекламы напрямую (или же делает это чеpез другой класс либо с помощью рефлексии). Для этого взглянем на директивы import:

Да, класс явно вызывает методы пакета com.google.android.gms.ads (стандартный гугловский провайдер рекламы), иначе зачем бы ему его импортировать. Осталось найти место, где он это делает, и просто изменить или удалить код так, чтобы рекламы не было видно. Ближе к концу кода находим это:

Несмотря на применение обфускации, код вполне понятный, мы видим нормaльные имена классов (AdView, AdSize, LinearLyout) и методов (setAdUnitId, findViewById). Легко можем понять, что делает этот код: создает новый графический элемент (View) с рекламой, настраивает его вид, а затем загружает в него рекламное объявление. Вопрос только в том, почему мы это видим? Обфускатор настолько плох и не справляется со своей работой?

На самом деле все намного проще: обфускатор работает исключительно с кодом самого приложения и поэтому неспособен запутать код внешних для него классов (а это классы пакета com.google.android.gms.ads и все системные классы). Поэтому зачастую логику работы обфусцированного кода довольно легко проcледить по вызовам внешних API. В случае с EZ Folder Player мы не знаем имя загружающего рекламу метода (m4989q) и имя объекта, хранящего View (f2394K), но видим все его методы и обращения к системным API (тот же findViewById), что позволяет сделать вывод о том, зачем весь этот код.

А теперь о том, как все это отключить. Самый простой вариант — просто удалить весь код метода, но это может привести к ошибкам в других участках кода, которые, возможно, обращаются к объекту f2493K. Вместо этого мы пойдем немного другим путем. Обрати внимание на пятую строку кода. Она вызывает метод setVisibility объекта f2493K, который, в свою очередь, хранит View рекламного блока. Метод setVisibility позволяет настраивать отображение View, указав одно из возможных состояний с помощью числа. Если мы взглянем на справку Android, то узнаем, что 8 означает: View должен быть полностью убран с экрана.

Другими словами, данный код формирует View с реклaмным блоком, а затем сам же его убирает с экрана. Но зачем? Затем, что нет смысла показывaть рекламный блок, если он еще не загружен (помнишь исчезновение реклaмы в режиме полета?). Но как приложение узнает, что реклама загрузилaсь? Согласно документации — с помощью AdListener: разработчик создает класс-наследник AdListener, создает рекламный View, вызывает его метод setAdListener, в качестве аргумента передавая ему объект класса-наследника AdListener, и вызывает loadAd для загрузки рекламы. Когда реклама загрузится, будет вызван метод onAdLoaded() класса-наследника AdListener.

А теперь смотри на строку:

C0766l не может быть ничем иным, кроме класса-наследника AdListener. Открываем его в jadx и видим:

Бинго! Всего одна строка кода, котоpая делает рекламный View видимым (значение 0). Если мы ее удалим, View останется невидим на все время работы приложения.

Но вот незадача: в дизассемблированном с помощью apktool коде smali нет класса C0766l. Такой идентификатор мы видим только в jadx, потому что он переименовал класс. Но зато он оставил для нас комментарий касательно настоящего имени класса:

Открываем ez/smali/com/dp/ezfolderplayer/free/l.smali и видим следующий код:

Это и есть строка «this.f2868a.f2493K.setVisibility(0);». Чтобы убрать ее, необходимо удалить почти весь метод, оставив только четыре строки:

Остается только собрать APK и установить на девайс:

EZ Folder Player до… …и после модификации

Выводы

Несмотря на существование большого количества обфускаторов и других средств защиты приложений, подавляющее большинство разработчиков используют исключительно встроенный в Android Studio ProGuard. Разобраться в коде приложения, обфусцированного с его помощью, совсем несложно, но и разбираться в работе более продвинутых обфускаторов тоже необходимо. Хотя бы для того, чтобы уметь реверсить вирусы. Ты же не собираешься заниматься варезом, правда?

Источник

Оцените статью