被恶意监听了倍感恐惧?被恶意监控了不晓得怎么解决?
硬件监控、软件监控,面对商业暗战监控与监听无所适从,整日担忧?
现在手机信息安全深受注重,好多人面临恶意监听、黑客恐吓、木马监控…
刚挂完电话,没多久商业对手就晓得了黑幕?
去哪里都觉得行程爆光?
手机消失一段时间后,觉得生活遭到“围观”?
被黑客探知隐私。而惴惴不可终日?
最全干货!黑客借助木马究竟能对普通人干啥?是如何监控你的手机的?手机木马病毒剖析报告(30种功能剖析)
木马病毒com.schemedroid的混淆对抗手段:
(1).dex文件的类名称和变量的名称被混淆为难以分辨的特殊字符串
(2).dex文件中的字符串全部被加密函数所加密而且每位类中的加密函数的实现还不同(100多个类文件)
Android木马病毒com.schemedroid的剖析报告
apk包名:com.schemedroid
文件Md5:CFBCEE2B12DD93A6109AC06C10C34C86
1.读取当前Android应用的assets目录下的droid.png文件的文件数据,揭秘然后释放到当前Android应用的文件路径/data/data/com.schemedroid/files/droid.png下,之后将文件/data/data/com.schemedroid/files/droid.png进行重命名为/data/data/com.schemedroid/files/annotation.jar文件。
2.通过DexClassLoader动态加载/data/data/com.schemedroid/files/annotation.jar文件,分别加载类com.GoogleService.MainService和com.GoogleService.Common.Config并通过类反射调用分别构造它们的实例对象,调用通过类反射调用类com.GoogleService.MainService的实例方式create进行对用户的手机进行远程控制的操作(具体的远程控制行为旁边再详尽的剖析);通过类反射调用类com.GoogleService.Common.Config的实例方式getIMEI获取到手机的IMEI值,通过类反射调用类com.GoogleService.Common.Config的实例方式getSrvAddr获取远程服务器的主机名称SrvAddr,通过类反射调用类com.GoogleService.Common.Config的实例方式getSrvPort,获取到与远程服务器通讯的端标语SrvPort,之后删掉文件/data/data/com.schemedroid/files/droid.png和/data/data/com.schemedroid/files/annotation.jar。
3.调用libwatch.so库文件中的native方式init函数,对用户的手机安装远程监控,具体的通过文件/data/data/com.schemedroid的存在性,来判定是否须要在用户的手机上启动远程监控服务,假如文件/data/data/com.schemedroid存在,则执行amstartservice-ncom.schemedroid/com.GoogleService.MainService命令,启动java层的服务类com.GoogleService.MainService进行监控,否则的话向SrvAddr指定的主机名,SrvPort指定的端口,发送带用户手机的IMEI值和"MM_UNINSTALLED"命令的tcp数据包给远程服务器,获取是否对手机设备进行监控的标记,1-不监控(uninstall_watch),0-监控。
对SrvAddr服务器返回的数据包的类型进行判别,数据包类型为2时为uninstall_watch,不监控,仅仅作为发送给服务器的ack握包包。
4.对开机启动的广播风波android.intent.action.BOOT_COMPLETED进行注册和窃听处理,当接收到该广播风波而且文件/data/data/com.schemedroid/files/android.sys不存在时,则重复执行上述的行为;因为当前apk应用在进行远程监控销毁自身应用的命令处理中,销毁自身apk应用时,会创建/data/data/com.schemedroid/files/android.sys文件,因而在触发行为时,须要判定该文件。
5.对广播风波android.intent.action.START_GOOGLE_SERVICE进行相应注册和窃听,启动服务com.schemedroid.SchemeService同样执行上述的行为。
6.当前apk应用的好多行为都是在动态加载的/data/data/com.schemedroid/files/annotation.jar文件里实现的,下边就对/data/data/com.schemedroid/files/annotation.jar文件的行为进行剖析。
.当用户点击运行当前apk之后,会对当前Android应用的图标进行隐藏,使用用户无法发觉它的存在。
.将当前Android应用的assets目录下的id.txt文件中的数据"2015-12-1010:58:27"写入到文件/data/data/com.schemedroid/files/id.txt中,apk在进行数据上传的时侯会用到该数据;读取文件/data/data/com.schemedroid/files/setting.prop或则当前Android应用的assets目录下的setting.prop文件的数据进行揭秘操作,得到对用户的手机进行监控设置的原始初始化数据,其中222.87.0.101就是联接到远程服务器的IP地址SrvAddr,5000是端标语SrvPort被远程定位的手机能收到信息,key=3ADA7521DBE2DBB311B44901A5C6EAD4就是对远程发送到用户手机上的TEA加密的邮件控制指令进行揭秘的秘钥,远控配置文件setting.prop用于保存用户手机被远程监控操作的一些记录。
zr_user=,server=222.87.0.101,timer_trigger_1=-1,wifi_upldOnlyConned=0,record_autoUpld=0,gprs_autoTurnOn=0,screenshot=0,imsi=,zr_type=3,number=,msg_observe=1,rooted=0,judge_root=1,keylog=0,boot_cls=,screenshot_interval=10,key=3ADA7521DBE2DBB311B44901A5C6EAD4,timer_action_1=###GetCmd,keylog_app=,screenshot_app=,screenshot_max=100,wifi_cfg=0,takePicture_autoUpld=0,movieRecord_autoUpld=0,wifi_autoTurnOn=0,call_observe=1,version=2030005,gps_autoTurnOn=0,rcd_dura=3,port=5000,wifi_upldOnConned=1,imei=359250052949300,timer_interval_1=60,user=,boot_pkg=
.当前apk数据目录下的配置文件Parameter.xml只要也是用于记录远程服务器对用户的手机进行控制操作的一些记录,便捷远程服务器对用户的手机进行控制,主要记录参数有:
.当前Android应用在进行上传用户手机里的信息文件数据到远程服务器的形式是,先将须要发送的信息文件压缩为/data/data/com.schemedroid/files/tmp/data%d.41文件并将该压缩文件的文件路径等相关信息保存到数据库文件/data/data/com.schemedroid/databases/config.db的表t_fileTask中,上传文件数据的信息时,主动联接到远程服务器,读取config.db数据库中文件储存路径srcpath指定文件的数据上传给服务器,远程服务器下载释放文件到用户手机的里也是储存到srcpath指定的文件路径。
.当前Android应用自带了root工具,先通过判定文件system/bin/su4100和system/bin/clock_service是否存在,来判定用户的手机是否root。
将assets目录下的splash文件释放到文件路径/data/data/com.schemedroid/app_bin/su下,assets目录下的help4.png文件释放到文件路径,
/data/data/com.schemedroid/app_bin/help4.png下,assets目录下的busybox_g1文件释放到文件路径,
/data/data/com.schemedroid/app_bin/busybox_g1下以及创建和释放脚本文件,
/data/data/com.schemedroid/app_bin/toor.sh并将assets目录下的logo.png文件先揭秘之后释放该文件到文件,
路径/data/data/com.schemedroid/app_bin/logo.png下,执行如下命令对用户的手机进行root操作,
root操作完成以后删掉文件/data/data/com.schemedroid/app_bin/logo.png、/data/data/com.schemedroid/app_bin/toor.sh以及/data/data/com.schemedroid/app_bin/su。
.通过测量文件/system/xbin/su4100的存在以及执行命令su4100-cls/data能够获取用户手机的data目录下的文件信息来判定用户的手机是否早已root;假如用户的手机没有root,则对用户的手机进行root操作。将assets目录下的splash文件释放到文件路径/data/data/com.schemedroid/app_bin/su下,assets目录下的help4.png文件释放到文件路径/data/data/com.schemedroid/app_bin/help4.png下,将assets目录下的busybox_g1文件释放到文件路径/data/data/com.schemedroid/app_bin/busybox_g1下,创建和释放脚本文件/data/data/com.schemedroid/app_bin/toor.sh,动态加载/data/data/com.schemedroid/app_rmr目录下的.jar包文件,通过类反射调用获取类com.r.m的实例方式s,传入参数.jar文件的名称、/data/data/com.schemedroid/app_bin/toor.sh等调用该类方式s对用户的手机进行root操作(.jar包文件应当是远程服务器下载到app_rmr目录下的),root操作完成之后删掉文件toor.sh,su,help4.png。
.root权限下,更改用户手机的系统显存属性为可读可写,通过dd命令将com.schemedroid.apk文件和libwatch.so拷贝释放到文件路径/system目录下并赋于她们677权限,之后发送广播android.intent.action.START_GOOGLE_SERVICE和启动服务com.GoogleService.MainService。
.创建tcp联接的服务端,绑定本地ip地址127.0.0.1端标语为10101,等待远程顾客端的联接,接受远程顾客端的命令控制。
.盗取用户手机里以下Android应用的文件数据信息和Android应用的版本号,上传到SrvAddr和SrvPort指定的远程服务器端,现将搜集到的下述App的数据文件信息进行压缩处理得到data%d.41(其中%d为0~30的某个值)文件,将该压缩文件的路径等信息先保存到数据库config.db的表t_fileTask中,之后发送给远程的服务器。
.读取当前Android应用资源文件目录assets下的about.png文件的数据,释放该文件到文件路径/data/data/com.schemedroid/filess下,判定/system/bin/debuggerd文件是否早已存在,假如存在则执行/system/bin/debuggerd-c-sSrvAddr-pSrvPort(SrvAddr为联接远程服务器的IP地址,SrvPort为联接远程IP地址的端口),否则读取资源目录assets下的help.png、help2.png、help3.png、help4.png文件,揭秘后分别释放到/data/data/com.schemedroid/files文件路径下,之后在root权限下,执行以下命令创建守护进程/system/bin/debuggerd。
.将Android应用的assets目录下的iptables_armv5文件和busybox_g1文件拷贝到文件路径/data/data/com.schemedroid/app_bin下,创建和释放/data/data/com.schemedroid/app_bin/droidwall.sh脚本文件并在root权限下执行脚本droidwall.sh,使手机安全软件com.qihoo360.mobilesafe被远程定位的手机能收到信息,com.qihoo.antivirus的防火墙功能失效并在执行完成后删掉脚本文件droidwall.sh。
.向IP地址为SrvAddr端标语为SrvPort的远程服务器发起网路联接,获取远程服务器发送来的数据包类型,数据包类型为5,将文件/data/data/com.schemedroid/files/setting.prop上传给远程的服务器,关掉与远程服务器的联接;数据包类型为0,接收远程服务器发送来的控制指令对用户的手机进行远程控制操作,每条控制指令是储存在###与###的字符串,而且控制指令执行的操作与上文剖析的样本行为是对应的。
.对用户手机里的邮件数据库"content://sms"的变化进行监控,判定用户手机接收到的邮件是否是###开头的远程控制指令邮件,因为该远程控制指令邮件是经过TEA算法加密的,使用远控配置文件setting.prop中key对远程控制指令邮件进行TEA算法的揭秘,得到最终有效的控制指令字符串,控制指令对应的具体操作和网路远程控制的控制指令操作一致。
.假如用户手机接收到邮件的发送手机号是在config.db的数据库number表中的类型为1的黑名单中的手机号,则该条邮件如下详尽信息发送到远程的服务器端;若果不在,只将邮件的发送时间、短信内容、短信宽度和用户手机的手机定位经经度等信息上到远程的服务器。
.对用户的手机通话进行监控并窃听和处理广播风波android.intent.action.NEW_OUTGOING_CALL,对用户的电话拔号进行拦截,获取到用户所拨通的手机号码,假如该手机号不在数据库config.db里的表number中type为2的非黑名单中,则对该手机号的通话进行监控录音。
.对用户的手机进行录音监控,窃听和注册广播风波googleservice.action.startRecord和googleservice.action.stopRecord,当前广播风波为后者时对用户的手机进行监控录音和保存,当广播风波为前者时,将录音文件上传到远程的服务器端。
.对用户的手机屏幕进行截图监控,注册和窃听广播风波googleservice.action.startTakePicture和googleservice.action.takingPictureOver,当收到的广播风波为后者时,开启定时器任务反弹对用户的手机屏幕进行截图操作,当接收到的广播风波为前者时,将对用户手机进行截图监控得到文件,上传远程的服务器端。
.对用户的手机进行视频监控,注册和窃听广播风波googleservice.action.startMovieRecord和googleservice.action.movieRecordOver,当窃听到的广播风波为后者时,开启定时器反弹对用户的手机进行视频的录制操作,当窃听到的广播风波为前者时,结束视频监控,将对用户手机视频监控得到的文件上到远程的服务器端。
.强制开启用户手机的Gps定位功能,窃听和注册广播风波googleservice.opengps和googleservice.closegps,当接收到这两种广播风波时,就会强制开启用户手机的Gps定位功能,就会发送位置更新恳求更新用户手机的定位信息。
.监控用户手机的网路定位信息的变化并实时将用户手机的网路定位经、纬度等信息,上传到远程的服务器端。
.窃听用户手机网路wifi的变化,注册和窃听广播风波android.net.conn.CONNECTIVITY_CHANGE和android.net.wifi.WIFI_STATE_CHANGED,当接收到的广播风波为后者时,主动向SrvAddr和SrvPort描述的IP地址发起网路联接,让用户的手机接收远程服务器的命令控制(具体控制行为,前面12中已剖析)并将保存用户基本信息的文件上传到远程的服务器;当接收到的广播风波为前者时,去除掉用户手机的wifi配置信息,对用户手机的WiFi进行手动密码的破解。
.远程控制对用户手机里指定路径下的图片、音频、视频文件以及Android系统的其他文件进行删掉操作,远程命令控制支持删掉的图片、音频、视频文件的格式,如下所示:
在对Android系统的非多媒体文件进行删掉时,若被删掉文件在/system目录下时,先更改Android系统显存属性(root权限),之后将文件重名为.d文件,对/system/bin/app_process做特殊处理,执行kill命令结束掉/system/bin/app_process进程,其他的文件直接执行rm命令进行删掉操作。
.远程销毁和破坏用户手机里安装的所有Android应用程序,删掉掉该Android应用的优化odex文件并破坏掉/data/dalvik-cache目录下的缓存dex文件,最后通过包名查找结束掉该Apk对应的Android进程。
.远程控制实现自我的删掉操作,执行命令的如下所示,当前Android应用在删掉自身操作时,会创建标记文件/data/data/com.schemedroid/android.sys,将/system和/data目录下的com.schemedroid.apk文件删掉和卸载后,结束自身进程。
.关掉用户手机的wifi网路打开用户手机的联通数据流量,向发送http数据恳求,消耗用户手机的联通数据流量。
.强制开启用户手机的Gps功能,wifi网路并开启wifi的扫描功能,发送http恳求等操作以及创建和释放脚本文件/data/data/com.schemedroid/files/consume0.sh和脚本文件/data/data/com.schemedroid/files/consume.sh,执行命令shconsume.sh3&对用户手机的网路资源和电瓶电量进行消耗。
.创建和释放脚本文件/data/data/com.schemedroid/files/slow.sh和/data/data/com.schemedroid/files/slow0.sh,执行命令shslow.sh10&运行脚本,消耗用户手机的显存资源。
over,基本的样本行为就是那么多了,还有一些其他的行为就不写了,在该木马病毒的远程控制指令中都有描述。