原创 二进制空间安全
声明:
二进制空间安全公众号文章中的技术只做研究之用,禁止用来从事非法用途,如有使用文章中的技术从事非法活动,一切后果由使用者自负,与本公众号无关。
1.摘要
File-Tunnel是一款用C#编写的通过文件建立TCP连接隧道的开源项目, 该程序启动一个TCP监听器, 当收到连接时, 它将TCP数据写入文件中。
相应的另一个程序读取该文件,并建立TCP连接以转发这些TCP数据。为了避免共享文件无限增长,当文件大小超过10MB时会进行清理。
开源地址:
https://github.com/fiddyschmitt/File-Tunnel
2.绕过防火墙
当一台主机A想要连接到主机B,但两者之间有防火墙, 且两台主机都可以访问共享文件夹,如图:
【主机A】:
在主机A上,可以利用文件建立TCP连接隧道,命令如下:
ft.exe -L 5000:127.0.0.1:3389 --write "\\server\share\1.dat" --read "\\server\share\2.dat"
该命令监听5000端口上的连接, 当收到连接后, 会通过文件隧道转发到127.0.0.1:3389端口。
【主机B】:
主机B上执行以下命令:
ft.exe --read "\\server\share\1.dat" --write "\\server\share\2.dat"
现在在主机A上, 客户端将连接到127.0.0.1:5000, 它将被转发到远程服务器。
以下是文件隧道运行时的状态:
3.通过RDP建立TCP隧道
假设现在场景是要连接到远程服务: 192.168.1.50:8888, 但只能使用RDP访问主机B。
在主机A上, 运行以下命令:
ft.exe -L 5000:192.168.1.50:8888 --write "C:\Temp\1.dat" --read "C:\Temp\2.dat"
然后运行RDP客户端并确保共享本地驱动器,如图:
在主机B中执行以下命令:
ft.exe --read "\\tsclient\c\Temp\1.dat" --write "\\tsclient\c\Temp\2.dat"
现在在主机 A 上,可以成功连接到127.0.0.1:5000 ,它将被转发到192.168.1.50:8888
文件隧道程序最新版本下载地址:
https://github.com/fiddyschmitt/File-Tunnel/releases/tag/v2.2.1
4.其它功能
-L参数可以多次使用, 通过一条隧道可以转发多个端口。
要使其他计算机能够使用隧道,可以指定绑定地址0.0.0.0 。例如:-L 0.0.0.0:5000:192.168.1.50:3389允许网络上的任何计算机连接到隧道并连接到 192.168.1.50:3389
使用-R进行远程转发。例如:-R 5000:10.0.0.50:6000指示远程端侦听端口 5000,当收到连接时,通过隧道将其转发并通过本地计算机转发到 10.0.0.50:6000。这将允许你与其他计算机共享在本地计算机上运行的服务器。
读取和写入文件不必位于同一文件夹甚至服务器中。
标签:5000,--,主机,防火墙,TCP,dat,绕过,连接 From: https://www.cnblogs.com/o-O-oO/p/18374559