手机读取r(木马是怎么监控你手机的)

Posted

篇首语:著论准过秦,作赋拟子虚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机读取r(木马是怎么监控你手机的)相关的知识,希望对你有一定的参考价值。

手机读取r(木马是怎么监控你手机的)

被恶意窃听了感到焦虑?被恶意监控了不知道如何解决?

硬件监控、软件监控,面对商业暗战监控与窃听无所适从,整日忧心?

如今手机信息安全备受重视,很多人面临恶意窃听、黑客威胁、木马监控…

刚挂完电话,没多久商业对手就知道了内幕?

去哪儿都感觉行程曝光?

手机消失一段时间后,感觉生活受到“围观”?

被黑客窥探隐私。而惶惶不可终日?

最全干货!黑客利用木马到底能对普通人干啥?是怎么监控你的手机的?手机木马病毒分析报告(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存在,则执行am startservice -n com.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文件的行为进行分析。

<1>.当用户点击运行当前apk以后,会对当前Android应用的图标进行隐藏,使用用户难以发现它的存在。

<2>.将当前Android应用的assets目录下的id.txt文件中的数据"2015-12-10 10: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=

<3>.当前apk数据目录下的配置文件Parameter.xml只要也是用于记录远程服务器对用户的手机进行控制操作的一些记录,方便远程服务器对用户的手机进行控制,主要记录参数有:

<4>.当前Android应用在进行上传用户手机里的信息文件数据到远程服务器的方式是,先将需要发送的信息文件压缩为/data/data/com.schemedroid/files/tmp/data%d.41文件并将该压缩文件的文件路径等相关信息保存到数据库文件/data/data/com.schemedroid/databases/config.db的表t_fileTask中,上传文件数据的信息时,主动连接到远程服务器,读取config.db数据库中文件存放路径srcpath指定文件的数据上传给服务器,远程服务器下载释放文件到用户手机的里也是存放到srcpath指定的文件路径。

<5>.当前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。

<6>.通过检测文件/system/xbin/su4100的存在以及执行命令su4100 -c ls /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。

<7>.root权限下,修改用户手机的系统内存属性为可读可写,通过dd命令将com.schemedroid.apk文件和libwatch.so拷贝释放到文件路径/system目录下并赋予他们677权限,然后发送广播android.intent.action.START_GOOGLE_SERVICE和启动服务com.GoogleService.MainService。

<8>.创建tcp连接的服务端,绑定本地ip地址127.0.0.1端口号为10101,等待远程客户端的连接,接受远程客户端的命令控制。

<9>.窃取用户手机里以下Android应用的文件数据信息和Android应用的版本号,上传到SrvAddr和SrvPort指定的远程服务器端,现将收集到的下列App的数据文件信息进行压缩处理得到data%d.41(其中%d为0~30的某个值)文件,将该压缩文件的路径等信息先保存到数据库config.db的表t_fileTask中,然后发送给远程的服务器。

<10>.读取当前Android应用资源文件目录assets下的about.png文件的数据,释放该文件到文件路径/data/data/com.schemedroid/filess下,判断/system/bin/debuggerd文件是否已经存在,如果存在则执行/system/bin/debuggerd -c -s SrvAddr -p SrvPort(SrvAddr为连接远程服务器的IP地址,SrvPort为连接远程IP地址的端口),否则读取资源目录assets下的help.png、help2.png、help3.png、help4.png文件,解密后分别释放到/data/data/com.schemedroid/files文件路径下,然后在root权限下,执行以下命令创建守护进程/system/bin/debuggerd。

<11>.将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。

<12>.向IP地址为SrvAddr端口号为SrvPort的远程服务器发起网络连接,获取远程服务器发送来的数据包类型,数据包类型为5,将文件/data/data/com.schemedroid/files/setting.prop上传给远程的服务器,关闭与远程服务器的连接;数据包类型为0,接收远程服务器发送来的控制指令对用户的手机进行远程控制操作,每条控制指令是存放在###与###的字符串,并且控制指令执行的操作与上文分析的样本行为是对应的。

<13>.对用户手机里的短信数据库"content://sms"的变化进行监控,判断用户手机接收到的短信是否是###开头的远程控制指令短信,由于该远程控制指令短信是经过TEA算法加密的,使用远控配置文件setting.prop中key对远程控制指令短信进行TEA算法的解密,得到最终有效的控制指令字符串,控制指令对应的具体操作和网络远程控制的控制指令操作一致。

<14>.如果用户手机接收到短信的发送手机号是在config.db的数据库number表中的类型为1的黑名单中的手机号,则该条短信如下详细信息发送到远程的服务器端;如果不在,只将短信的发送时间、短信内容、短信长度和用户手机的手机定位经纬度等信息上到远程的服务器。

<15>.对用户的手机通话进行监控并监听和处理广播事件android.intent.action.NEW_OUTGOING_CALL,对用户的电话拨号进行拦截,获取到用户所拨打的手机号码,如果该手机号不在数据库config.db里的表number中type为2的非黑名单中,则对该手机号的通话进行监控录音。

<16>.对用户的手机进行录音监控,监听和注册广播事件googleservice.action.startRecord和googleservice.action.stopRecord,当前广播事件为前者时对用户的手机进行监控录音和保存,当广播事件为后者时,将录音文件上传到远程的服务器端。

<17>.对用户的手机屏幕进行截图监控,注册和监听广播事件googleservice.action.startTakePicture和googleservice.action.takingPictureOver,当收到的广播事件为前者时,开启定时器任务回调对用户的手机屏幕进行截图操作,当接收到的广播事件为后者时,将对用户手机进行截图监控得到文件,上传远程的服务器端。

<18>.对用户的手机进行视频监控,注册和监听广播事件googleservice.action.startMovieRecord和googleservice.action.movieRecordOver,当监听到的广播事件为前者时,开启定时器回调对用户的手机进行视频的录制操作,当监听到的广播事件为后者时,结束视频监控,将对用户手机视频监控得到的文件上到远程的服务器端。

<19>.强制开启用户手机的Gps定位功能,监听和注册广播事件googleservice.opengps和 googleservice.closegps,当接收到这两种广播事件时,都会强制开启用户手机的Gps定位功能,还会发送位置更新请求更新用户手机的定位信息。

<20>.监控用户手机的网络定位信息的变化并实时将用户手机的网络定位经、纬度等信息,上传到远程的服务器端。

<21>.监听用户手机网络wifi的变化,注册和监听广播事件android.net.conn.CONNECTIVITY_CHANGE和android.net.wifi.WIFI_STATE_CHANGED,当接收到的广播事件为前者时,主动向SrvAddr和SrvPort描述的IP地址发起网络连接,让用户的手机接收远程服务器的命令控制(具体控制行为,上面12中已分析)并将保存用户基本信息的文件上传到远程的服务器;当接收到的广播事件为后者时,清除掉用户手机的wifi配置信息,对用户手机的WiFi进行自动密码的破解。

<22>.远程控制对用户手机里指定路径下的图片、音频、视频文件以及Android系统的其他文件进行删除操作,远程命令控制支持删除的图片、音频、视频文件的格式,如下所示:

在对Android系统的非多媒体文件进行删除时,若被删除文件在/system目录下时,先修改Android系统内存属性(root权限),然后将文件重名为.d文件,对/system/bin/app_process做特殊处理,执行kill命令结束掉/system/bin/app_process进程,其他的文件直接执行rm命令进行删除操作。

<23>.远程销毁和破坏用户手机里安装的所有Android应用程序,删除掉该Android应用的优化odex文件并破坏掉/data/dalvik-cache目录下的缓存dex文件,最后通过包名查找结束掉该Apk对应的Android进程。

<24>.远程控制实现自我的删除操作,执行命令的如下所示,当前Android应用在删除自身操作时,会创建标记文件/data/data/com.schemedroid/android.sys,将/system和/data目录下的com.schemedroid.apk文件删除和卸载后,结束自身进程。

<25>.关闭用户手机的wifi网络打开用户手机的移动数据流量,向http://www.androidcentral.com/google-play-store发送http数据请求,消耗用户手机的移动数据流量。

<26>.强制开启用户手机的Gps功能,wifi网络并开启wifi的扫描功能,发送http请求等操作以及创建和释放脚本文件/data/data/com.schemedroid/files/consume0.sh和脚本文件/data/data/com.schemedroid/files/consume.sh,执行命令sh consume.sh 3 & 对用户手机的网络资源和电池电量进行消耗。

<27>.创建和释放脚本文件/data/data/com.schemedroid/files/slow.sh和/data/data/com.schemedroid/files/slow0.sh,执行命令 sh slow.sh 10 & 运行脚本,消耗用户手机的内存资源。

over,基本的样本行为就是这么多了,还有一些其他的行为就不写了,在该木马病毒的远程控制指令中都有描述。



相关参考

手机室内温度计(如何用使用智能手机读取室内温度)

...供温度读数,或者您可以将一个应用程序下载到您的智能手机上来测量室温。1、将温度计应用程序下载到您的智能手机。许多智能手机都配备了用于监控设备温度的传感器。您可以下载一个应用程序,使用这些传感器读取房间...

手机读取rfid电子标(也许你经常用手机来刷卡,但你真的了解NFC和RFID吗?)

[PConline资讯]这些年来,手机的功能随着发展越来越高端,NFC这项技术已经成了绝大部分手机的标配。而我们也通过这项技术取代了门禁卡、公交卡甚至银行卡。不管走到哪里,只要事需要刷卡的地方基本都可以直接用手机代替...

手机读取TF卡视频卡顿(手机卡顿 应该重启还是关机再开机?)

...汇集业内有趣、有料的热点内容,欢迎大家每周来观看。手机用久了难免卡顿,遇到卡顿时,大家统一行为就是把手机重启。但是你是习惯把手机直接关机再开机还是直接点手机的重启按钮呢?其实这两个不同的操作对于手机的...

手机摄像头不能用怎么回事(大数据监控了您的手机,教你如何关闭监控选项,可以摆脱被监控)

大家好,欢迎来到科技熊,今天给大家分享的是如何关闭手机监控的一个广告开关,为啥给大家分享这个技巧?因为我们经常会遇到这样一种情况,比如说我们手机随便搜索一个产品,然后其他一些APP就会给您推送这个产品,或...

手机怎么把内存卡格式化(sd卡无法读取怎么办?内存卡数据恢复,4个好用方法)

手机上的sd卡可以说是每个人的必备,很多的人在使用手机的时候,都会把sd卡随身携带。而很多有经验的用户也知道,在使用手机中一段时间后,sd卡可能会发生一些故障。当发现sd卡无法读取,就需要及时进行数据恢复了。今天...

手机网络管理软件(手机监控有哪几种?)

手机监控有哪几种?正常的监控包括哪几种:第一种:软件进程监控例如SysTracer电脑被监控的居多。手机也可以用被软件监控但这个前提是你需要下载软件才能监控到你的手机。下面讲讲这些监控电脑或手机的软件大致原理:比...

手机有监控器功能吗(手机“偷看”你的隐私?这几招可以解除“监控”→)

在移动互联网时代最了解你的想必莫过于你的手机了你玩手机时是否经常有这么一种情况刚刚和朋友聊了某样东西转瞬间就有APP推送你相关信息无论切换到哪一个APP系统都能精准判断出你的喜好……以至于怀疑自己正在被手机“...

手机能被监控到什么程度(手机“偷看”你的隐私?这几招可以解除“监控”→)

...视听甘肃】在移动互联网时代最了解你的想必莫过于你的手机了你玩手机时是否经常有这么一种情况刚刚和朋友聊了某样东西转瞬间就有APP推送你相关信息无论切换到哪一个APP系统都能精准判断出你的喜好……以至于怀疑自己正...

怎样让监控失效呢(怎样防止手机被窃听?解决手机被窃听的方法)

手机已经是我们的必需品,除了小学生外,现在基本上没有人不用手机。但手机真的安全吗?之前某论坛提到这样一个软件:通过qq号偷偷获取对方手机里相机权限。该软件只需要通过输入对方的QQ号码,就可获得手机权限控制...

摄像头监控摄像头怎么和手机连(《图文教程》教你安装手机远程监控摄像头,看家看店方便实用)

你想不想在公司?在地铁上,在大街上,打开手机就能看到家里的情况?放学时间到了,小孩子有没有放学回家?是在写作业还是在看电视?如果小孩子没有在写作业,在看电视,你还能对着手机像发微信语音一样,对他说,臭...