IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 身边随时可能发生的网络攻击,短信拦截码分析! -> 正文阅读

[移动开发]身边随时可能发生的网络攻击,短信拦截码分析!

小编不定时干货分享来了,之前拿到的几个恶意样本,简单分析来学习一下

?

冒充10086发过来的短信,要积分兑换现金,然后点进去链接要输入银行卡密码

?

这里我们点激活

?

然后退回桌面

一会儿这个app就自己消失了,隐藏自己

?

进入应用管理页面 可以看到无法卸载

?

我们将apk文件改后缀为rar并解压得到classes.dex文件

这里通过dex2jar

jar2smali可以将dex文件反编译为smali代码

得到classes-out文件夹

然后自己造了一个轮子,用来提取一些关键信息,比如url链接,手机号,邮箱等等,主要还是通过正则表达式来进行匹配

代码如下

脚本还很垃圾 师傅们轻喷~

# coding:utf-8

import?os

import?re

a?=[]

ips?=[]

emails?=[]

emails_fin?=[]

phones?=[]

def?deleteSameNum(num):

num.sort()

last?=?num[-1]

for?i?in?range(len(num)-2,-1,-1):

if?last?==?num[i]:

del?num[i]

else:

last?=?num[i]

return?num

def?bianli(rootdir):

for?root,dirs,files?in?os.walk(rootdir):

for?file?in?files:

b?=?os.path.join(root,file)

a.append(b)

for?dir?in?dirs:

bianli(dir)

rootdir?=?'classes-out/' # dex文件 dex2smali

bianli(rootdir)

for?i?in?a:

file?=?open(i,'r')

con?=?file.read()

con1?=?re.findall(r'[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}',con)

con2?=?re.findall(r'1[35678]\d{9}',con)

con3?=?re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+',con)

ips.append(con3)

phones.append(con2)

emails.append(con1)

def?zhuan_(ffff):

ffff_fin?=[]

ffff?=[x?for?x?in?ffff?if?x]?# remove 空元素

for?i?in?ffff:

for?i2?in?i:

ffff_fin.append(i2)?# two 2 one

return?ffff_fin

print?deleteSameNum(zhuan_(emails))

print?deleteSameNum(zhuan_(phones))

print?deleteSameNum(zhuan_(ips))

?

?可以得到一个地址

['//wap.dzf10086.com/kk/ch.php']

将apk文件直接载入jeb分析

查看manifest文件

<?xml version="1.0" encoding="UTF-8"?>

<manifest?android:versionCode="1" android:versionName="1.0" package="iuxkikw.zkjaksj.jhyvu" xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission?android:name="android.permission.WRITE_SMS"?/>

<uses-permission?android:name="android.permission.SEND_SMS"?/>

<uses-permission?android:name="android.permission.INTERNET"?/>

<uses-permission?android:name="android.permission.READ_SMS"?/>

<uses-permission?android:name="android.permission.WRITE_EXTERNAL_STORAGE"?/>

<uses-permission?android:name="android.permission.RECEIVE_SMS"?/>

<uses-permission?android:name="android.permission.RECEIVE_BOOT_COMPLETED"?/>

<uses-permission?android:name="android.permission.INTERNET"?/>

<uses-permission?android:name="android.permission.READ_PHONE_STATE"?/>

<application?android:allowBackup="true" android:debuggable="true" android:icon="@drawable/qqq" android:label="@string/app_name" android:theme="@style/AppTheme">

<activity?android:label="@string/app_name" android:name="com.fhgfd.heee.MainActivity">

<intent-filter>

<action?android:name="android.intent.action.MAIN"?/>

<category?android:name="android.intent.category.LAUNCHER"?/>

</intent-filter>

</activity>

<receiver?android:description="@string/app_name" android:label="@string/app_name" android:name="com.fhgfd.heee.kc" android:permission="android.permission.BIND_DEVICE_ADMIN">

<meta-data?android:name="android.app.device_admin" android:resource="@xml/xyz"?/>

<intent-filter>

<action?android:name="android.app.action.DEVICE_ADMIN_ENABLED"?/>

</intent-filter>

</receiver>

<receiver?android:name="com.fhgfd.heee.kd">

<intent-filter?android:priority="2147483647">

<action?android:name="b.b.b"?/>

<action?android:name="android.provider.Telephony.SMS_RECEIVED"?/>

<action?android:name="android.intent.action.BOOT_COMPLETED"?/>

<action?android:name="android.intent.action.USER_PRESENT"?/>

</intent-filter>

<intent-filter>

<action?android:name="android.intent.action.PACKAGE_ADDED"?/>

<action?android:name="android.intent.action.PACKAGE_REMOVED"?/>

<data?android:scheme="package"?/>

</intent-filter>

</receiver>

<service?android:name="com.fhgfd.heee.kse"?/>

</application>

</manifest>

可以看到一些比较危险恶意的权限

?

这里就是激活设备管理器了

还向病毒制作者发送的短信 来通知告诉病毒制作者

?

?入口还是MainActivity

看看MainActivity

?

ksj类

?

kapi类

?

可以知道是通过aes加密

写个简单的脚本来解密一下

package?com.example.lib.tttest1;

import?javax.crypto.Cipher;

import?javax.crypto.spec.SecretKeySpec;

publicclass?tttest1?{

publicstaticbyte[]?parseHexStr2Byte(String hexStr){

if(hexStr.length()<1)

returnnull;

byte[]?result?=newbyte[hexStr.length()/2];

for(int?i?=0;?i?<?hexStr.length()/2;?i++){

int?high?=?Integer.parseInt(hexStr.substring(i?*2,?i?*2+1),16);

int?low?=?Integer.parseInt(hexStr.substring(i?*2+1,?i?*2+2),16);

result[i]=(byte)(high?*16+?low);

}

return?result;

}

publicstatic?String decrypt(String content,?String key){

try{

Cipher cipher?=?Cipher.getInstance("AES");

cipher.init(2,new?SecretKeySpec(tttest1.parseHexStr2Byte(key),?"AES"));

String v3?=new?String(cipher.doFinal(tttest1.parseHexStr2Byte(content)));

return?v3;

}

catch(Exception e){

e.printStackTrace();

}

returnnull;

}

publicstaticvoid?main(String[]?args){

String a?=?decrypt("37349EC2F427A1AF812DA757988CB9DE",?"AE920882F4F5818501AB6256F91691D5");

System.out.println(a);

}

}

得到一个手机号

13066310152

ksj.cvh 就是 手机号的值

传入kapi.s函数的第一个参数

?

这里是获取手机设备的IMEI

this.getSystemService("phone").getDeviced()

String number = telephonyManager.getLine1Number();

获取手机号码 获取用户本机号码

向制作病毒的人的手机发送拦截的短信

ka类

?

向这个地址发出http网络请求

把用户的手机信息回传到这个地址

ke类

?

监控用户收件箱变化

删除拦截到的短信在用户短信收件箱的记录

kd类

?

用来收到收短信received,然后停止广播

获取短信内容

message.getOriginatingAddress()

获取发信人的手机号

message.getMessageBody()

获取短信内容,然后就是把短信发送到病毒制作者的手机上

通过分析可以知道该apk程序具有以下恶意意图

1.拦截短信

2.隐藏图标 诱导激活设备管理器权限无法卸载

3.监控收件箱 删除拦截到的短信在用户短信收件箱的记录

4.向病毒制作者的一个手机号 和 网站 发送拦截到的短信包括发送者的手机号,设备信息IMEI,设备的手机号等

来源于网络

*本文章仅供技术交流分享,请勿做未授权违法攻击,雨笋教育不负任何责任。具体请参考《网络安全法》。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:32:03  更:2021-08-10 13:34:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 10:36:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码