Socat 1.7.2.3 发布,此版本修复了一个安全问题:socats PROXY-CONNECT 地址很脆弱,容易导致命令行提供的数据缓存区溢出。(CVE-2014-0019).
socat是一?netcat(nc)的替代?品,可以?得上nc++。socat的特?就是在??流之?建立一??向的 通道。socat的地址?型很 多,有ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,等等。看一?例子:
c:\>socat - tcp:192.168.1.18:80
??命令等同於 nc 192.168.1.18 80。 socat?面,必?有??流,所以第一???-代表??的?入?出,第二?流?接到192.168.1.18的80端口。再看一?反向telnet的例子:
on server:
c:\>socat tcp-listen:23 exec:cmd,pty,stderr
??命名把cmd?定到端口23,同?把cmd的Stderr重定向到stdout。
on client:
c:\>socat readline tcp:server:23
?接到服?器的23端口,即可?得一?cmd shell。readline是gnu的命令行??器,具有?史功能。
再看文件??的例子。nc也?常用???文件,但是nc有一?缺?,就是不知道文件什??候?完了,一般要用Ctrl+c??止,或者估?一???,用-w????他自??止。用socat就不用??麻?了:
on host 1:
c:\>socat -u open:myfile.exe,binary tcp-listen:999
on host 2:
c:\>socat -u tcp:host1:999 open:myfile.exe,create,binary
??命令把文件myfile.exe用二?制的方式,?host 1 ?到host 2。-u 表示???向流?,?第一???到第二???,-U表示?第二?到第一?。文件?完了,自?退出。
再?一?大家喜?用的例子。在一?NAT?境,如何?外部?接到?部的一?端口呢?只要能?在?部?行socat就可以了。
外部:
c:\>socat tcp-listen:1234 tcp-listen:3389
?部:
c:\>socat tcp:outerhost:1234 tcp:192.168.12.34:3389
??,你外部?器上的3389就影射在?部?192.168.12.34的3389端口上。
socat?具有一??特的??分流功能,比如:
c:\>socat open:read.txt!!open:write.txt,create,append tcp-listen:80,reuseaddr,fork
??命令??一?假的web server,客?端???之後,就把read.txt?面的?容??去,同?把客?的??保存到write.txt?面。”!!”符?用?合???流,前面的用於?,後面的用於?。
项目主页:http://www.dest-unreach.org/socat/
下载地址:http://www.dest-unreach.org/socat/download/
来自:开源中国社区

