黑客是如何监视你的手机的?
作者:网友投稿 时间:2018-05-07 21:37
最近收到比较多的垃圾信息,想起了恶意软件这种东西可能泄露信息,于是便写下此文。 0×01实验环境
基础环境:win10,Android studio 3,jd-gui,apktool,dex2jar
应用 :MyTimer(APP), php网页(接收信息)
虚拟机:

在ubuntu(192.168.159.128)服务器上搭建好php环境,然后准备三个文件:newfile.txt(用来存储接收到的信息),readinfo.php(用来展示接收到的信息),receive.php(用来接收信息)。这里使用的是虚拟机,实际中需要外网能访问的服务器,这样手机应用才能正常连接到服务器。

readinfo.php
<?php
$file_path ="/var/www/readcontacts/newfile.txt";
if(file_exists($file_path)){
$str = file_get_contents($file_path);
$str =str_replace("\r\n","<br />",$str);
$str=explode(',',$str);
echo"<pre>";print_r($str);echo "<pre>";
}
?>
receive.php
<?php
$info= $_POST["info"];
$myfile =fopen("/var/www/readcontacts/newfile.txt", "w") ordie("Unable to open file!");
fwrite($myfile, $info);
fclose($myfile);
?>
0×03实验步骤在模拟器中安装并启动MyTimer(此时服务器上的newfile.txt文件为空),从功能上看这只是一个计时器。如下图所示

我们在最上面的输入框中输入时间,点击“设置时间”按钮,会在下面显示到计时的时间。如下图所示

当我们点击“开始计时”按钮时,应用开始倒计时,如下图所示:

在使用此应用时,我们并未发现什么异常情况,现在我们把视角切换到ubuntu服务器上,这个时候就会发现newfile.txt中多出了一些内容,然后我们访问readinfo.php,就可以看到手机上的联系人信息



一、原理剖析
通常我们要分析一个应用是否有恶意功能,可以进行以下几步操作:
0、使用apktool得到AdroidManifest.xml,使用dex2jar得到应用源码
1、审查应用程序使用的权限

通过查看我们发现这个应用申请了网络访问权限,联系人读写权限,访问帐户列表权限,但是我们从应用的功能来看明显是不需要这几个功能的,列入嫌疑名单,开始下一步审查。
2、审查应用程序使用的进程间通信机制

这里我们只发现了一个调用主Activity的机制,本步检查安全。
3、分析源码中开放的端口、共享/传输的数据,以及网络连接



