4

我正在尝试用 Java 开发一个基于 UI 的应用程序来使用 Metasploit(操作系统:Kali Linux)。基本上我想启动一个终端并运行命令“msfconsole”,然后一旦 Metasploit 框架控制台启动,我想在其中执行命令。

使用 Java 的 ProcessBuilder 类,我可以打开终端并启动 Metasploit 框架控制台,但我无法在框架下执行任何命令。我是 Java 的 Runtime 和 ProcessBuilder 类的新手。启动框架控制台后,我确实尝试执行 Metasploit 框架的“帮助”命令,但该命令是直接在终端下执行的,因此会显示终端帮助。那么有人可以帮我解决这个问题吗?代码片段如下所示。我还在这篇文章的末尾附上了一张支持图片。

    String line;
    Scanner scan = new Scanner(System.in);

    ProcessBuilder builder = new ProcessBuilder("/bin/bash");
    builder.redirectErrorStream(true);
    Process process = builder.start();

    OutputStream stdin = process.getOutputStream();
    InputStream stderr = process.getErrorStream();
    InputStream stdout = process.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));

    String input = scan.nextLine();
    input += "\n";
    writer.write(input);
    writer.flush()

    input = scan.nextLine();
    input += "\n";
    writer.write(input);
    writer.flush();

    while ((line = reader.readLine()) != null) {
        System.out.println("Stdout: " + line);
    }
    writer.close();

我已经圈出了我想输入命令的部分。该图显示了在终端窗口内运行的 Metasploit 控制台:

我已经圈出了我想输入命令的部分。 该图显示了在终端窗口内运行的 Metasploit 控制台。

4

0 回答 0