All Projects → aploium → Shootback

aploium / Shootback

Licence: mit
a reverse TCP tunnel let you access target behind NAT or firewall

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Shootback

Ahri
Ahri is an intranet sharing tool. Like VPN
Stars: ✭ 205 (-74.34%)
Mutual labels:  tcp, tunnel
DatagramTunneler
Simple C++ cross-platform client/server app forwarding UDP datagrams through a TCP connection.
Stars: ✭ 116 (-85.48%)
Mutual labels:  tunnel, tcp
Frpc Android
Android,安卓版frpc,一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。
Stars: ✭ 205 (-74.34%)
Mutual labels:  tcp, tunnel
Inlets Pro
Secure TCP and HTTP tunnels that work anywhere
Stars: ✭ 179 (-77.6%)
Mutual labels:  tcp, tunnel
Udp2raw Tunnel
A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)
Stars: ✭ 4,839 (+505.63%)
Mutual labels:  tcp, tunnel
Fq Book
📖《这本书能让你连接互联网》详细阐述代理、隧道、VPN运作过程,并对GFW策略如:地址端口封锁、服务器缓存投毒、数字验证攻击、SSL连接阻断做相关的原理说明
Stars: ✭ 2,393 (+199.5%)
Mutual labels:  tcp, tunnel
udp2raw
A Tunnel which Turns UDP Traffic into Encrypted UDP/FakeTCP/ICMP Traffic by using Raw Socket,helps you Bypass UDP FireWalls(or Unstable UDP Environment)
Stars: ✭ 5,256 (+557.82%)
Mutual labels:  tunnel, tcp
Mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.
Stars: ✭ 1,102 (+37.92%)
Mutual labels:  tcp, tunnel
Nps
一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。a lightweight, high-performance, powerful intranet penetration proxy server, with a powerful web management terminal.
Stars: ✭ 19,537 (+2345.18%)
Mutual labels:  tcp, tunnel
anytunnel
内网穿透,内网穿透代理服务器,商用内网穿透代理系统,内网穿透平台,内网穿透多用户会员系统。
Stars: ✭ 115 (-85.61%)
Mutual labels:  tunnel, tcp
Sish
HTTP(S)/WS(S)/TCP Tunnels to localhost using only SSH.
Stars: ✭ 2,087 (+161.2%)
Mutual labels:  tcp, tunnel
Chisel
A fast TCP/UDP tunnel over HTTP
Stars: ✭ 6,557 (+720.65%)
Mutual labels:  tcp, tunnel
Pingtunnel
ping tunnel is a tool that advertises tcp/udp/socks5 traffic as icmp traffic for forwarding.
Stars: ✭ 1,904 (+138.3%)
Mutual labels:  tcp, tunnel
Zserver4d
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透
Stars: ✭ 199 (-75.09%)
Mutual labels:  tcp, tunnel
Bouncer
Bouncer is a network TCP port redirector/forward proxy (like rinetd) with extra features like Reverse tunneling (like ssh -R), SSL tunneling (like stunnel), connection Failover, LoadBalancing and Clustering. In pure Java (BIO)
Stars: ✭ 103 (-87.11%)
Mutual labels:  tcp, tunnel
Go Http Tunnel
Fast and secure tunnels over HTTP/2
Stars: ✭ 2,786 (+248.69%)
Mutual labels:  tcp, tunnel
LightTunnel
LightTunnel-内网穿透映射工具,支持TCP、HTTP、HTTPS穿透映射,支持Windows、Linux、Mac、Android系统
Stars: ✭ 40 (-94.99%)
Mutual labels:  tunnel, tcp
Nsmartproxy
NSmartProxy是一款开源免费的内网穿透工具。采用.NET CORE的全异步模式打造。(NSmartProxy is an open source reverse proxy tool that creates a secure tunnel from a public endpoint to a locally service.)
Stars: ✭ 547 (-31.54%)
Mutual labels:  tcp, reverse
Inlets Operator
Add public LoadBalancers to your local Kubernetes clusters
Stars: ✭ 795 (-0.5%)
Mutual labels:  tcp, tunnel
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (-26.53%)
Mutual labels:  tcp

shootback

shootback is a reverse TCP tunnel let you access target behind NAT or firewall
反向TCP隧道, 使得NAT或防火墙后的内网机器可以被外网访问.
Consumes less than 1% CPU and 8MB memory under 800 concurrency.
slaver is single file and only depends on python(2.7/3.4+) standard library.

How it works

How shoot back works

Typical Scene

  1. Access company/school computer(no internet IP) from home
    从家里连接公司或学校里没有独立外网IP的电脑
  2. Make private network/site public.
    使内网或内网站点能从公网访问
  3. Help private network penetration.
    辅助内网渗透
  4. Help CTF offline competitions.
    辅助CTF线下赛, 使场外选手也获得比赛网络环境
  5. Connect to device with dynamic IP, such as ADSL
    连接动态IP的设备, 如ADSL
  6. SSL encryption between slaver and master
    slaver和master间支持SSL加密

Getting started

  1. requirement:

    • Master: Python3.4+, OS independent
    • Slaver: Python2.7/3.4+, OS independent
    • no external dependencies, only python std lib
  2. download git clone https://github.com/aploium/shootback

  3. (optional) if you need a single-file slaver.py, run python3 build_singlefile_slaver.py

  4. run these command

    # master listen :10000 for slaver, :10080 for you
    python3 master.py -m 0.0.0.0:10000 -c 127.0.0.1:10080
    
    # slaver connect to master, and use example.com as tunnel target
    # ps: you can use python2 in slaver, not only py3
    python3 slaver.py -m 127.0.0.1:10000 -t example.com:80
    
    # doing request to master
    curl -v -H "host: example.com" 127.0.0.1:10080
    # -- some HTML content from example.com --
    # -- some HTML content from example.com --
    # -- some HTML content from example.com --
    
  5. a more reality example (with ssl):
    assume your master is 22.33.44.55 (just like the graph above)

    # slaver_local_ssh <---> slaver <--[SSL]--> master(22.33.44.55) <--> You
    
    # ---- master ----
    python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022 --ssl
    
    # ---- slaver ----
    # ps: the `--ssl` option is for slaver-master encryption, not for SSH
    python(or python3) slaver.py -m 22.33.44.55:10000 -t 127.0.0.1:22 --ssl
    
    # ---- YOU ----
    ssh 22.33.44.55 -p 10022
    
  6. for more help, please see python3 master.py --help and python3 slaver.py --help

Tips

  1. run in daemon:
    nohup python(or python3) slaver.py -m host:port -t host:port -q &
    or:

    # screen is a linux command
    screen
    python(or python3) slaver.py -m host:port -t host:port
    # press  ctrl-a d  to detach screen
    # and if necessary, use "screen -r" to reattach
    
  2. ANY service using TCP is shootback-able. HTTP/FTP/Proxy/SSH/VNC/...

  3. shootback itself just do the transmission job, do not handle encrypt or proxy.
    however you can use a 3rd party proxy (eg: shadowsocks) as slaver target.
    for example:
    shadowsocks_server<-->shootback_slaver<-->shootback_master<-->shadowsocks_client(socks5)

Warning

  1. in windows, due to the limit of CPython select.select(), shootback can NOT handle more than 512 concurrency, you may meet
    ValueError: too many file descriptors in select()
    If you have to handle such high concurrency in windows, Anaconda-Python3 is recommend, it's limit in windows is 2048

Performance

  1. in my laptop of intel I7-4710MQ, win10 x64:
    • 1.6Gbits/s of loopback transfer (using iperf), with about 5% CPU occupation.
    • 800 thread ApacheBench, with less than 1% CPU and 8MB memory consume
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].