共计 1915 个字符,预计需要花费 5 分钟才能阅读完成。
目录
0x01 socat 的简介
0x02 socat 进行文件传输
0x03 socat 正向端口转发
0x04 socat 反向端口转发
注:
边界机器 win08 192.168.222.175
内网机器 win7 192.168.222.137
0x01 socat 的简介
socat 是一个多功能的网络工具,名字来由是”Socket CAT”,可以看作是 netcat 的 N 倍加强版,其原版本是基于 Linux 的,这里我们使用 Windows 版本的,因为是移植过来的,需要依赖的库也比较多,所以不是那么的方便,以后的使用可能更多的是基于 Linux 平台来进行的。
socat 的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket 等。
socat 的官网:
http://www.dest-unreach.org/socat/
socat 的下载链接:
http://www.dest-unreach.org/socat/download/
至于 Windows 的版本,我在网上找到了以下两种,对其安全性不做任何保证
socat for Windows/Cygwin(这个版本缺少 Cygwin 的 dll 文件,需要自行解决):
http://www.nikhef.nl/~janjust/socat/socat-1.6.0.1-cygwin.bin.tar.gz
socat for Windows(这个版本已经打包了 Cygwin 的 dll 文件):
http://olds.blogcn.com/wp-content/uploads/16/1615/2009/08/socat.rar
0x02 socat 进行文件传输
注:这里使用 win08 作为本地机器,win7 作为目标机器来进行演示
这里我们以上传 win08 机器上的 123.txt 为目标进行上传
首先在 win08 机器上执行命令
socat.exe -u open:123.txt,binary tcp4-listen:53
执行之后,就会发现在这个文件夹下面已经生成了 123.txt 文件
注:create 在哪个机器上执行,文件就会留在哪个机器上
0x03 socat 正向端口转发
首先我们需要在边界机器上执行
socat.exe tcp4-listen:53,reuseaddr,fork tcp4:192.168.222.137:3389
此时并不会有任何的回显,然后我们在本地使用 mstsc 进行远程桌面连接
成功连接
0x04 socat 反向端口转发
- 单层端口转发 (1)
注:这里我们使用 win08 来代表本地主机,win7 来代表边界主机
首先,在 win08 上执行监听,将来自外部 53 端口的流量全部转发到本地 888 端口
socat.exe tcp-listen:53 tcp-listen:888
然后在 win7 上执行命令,将本地 3389 的流量转发到 win08 的 53 端口
socat.exe tcp-connect:192.168.222.175:53 tcp:127.0.0.1:3389
然后回到 win08 的机器上,执行远程桌面连接
成功登陆
* 单层端口转发 (2)
除了可以转发到本地之外,还可以直接将流量转发到内网主机
首先在本地执行监听
socat.exe tcp-listen:53 tcp-listen:111
在边界机器 win08 上执行命令,10.1.111.226 是我本机的地址
socat.exe tcp-connect:10.1.111.226:53 tcp:192.168.222.137:3389
然后回到本地使用 mstsc 来进行远程连接
成功登陆
注:中间可能会有 socat 超时自动断开等其他情况,多执行几次就可以成功了
* 多层端口转发
如果在内网中又发现还有更深一层的内网的机器,我们就可以使用多层的端口转发来进行,我们这里假设其 IP 为 192.168.222.134,我本机地址为 10.1.111.226
首先我们在本地机器进行监听
socat.exe tcp-listen:53 tcp-listen:1000
然后到边界机器 win08 执行转发
socat.exe tcp4-listen:55,reuseaddr,fork tcp4:10.1.111.226:53
最后再到内网机器 win7 上执行转发
socat.exe tcp-connect:192.168.222.175:55 tcp:192.168.222.134:22
最后回到本地,连接第二层内网中的 ssh
如果内网层数再多一些,一样可以通过该方法进行
文章首发公众号:无心的梦呓 (wuxinmengyi)
这是一个记录红队学习、信安笔记,个人成长的公众号
扫码关注即可