我正在尝试用 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 控制台: