Shootback es una herramienta escrita en Python para realizar un túnel TCP inverso y permitir el acceso hacia una máquina detrás de un NAT o firewall.
Consume menos de 1% de CPU y 8MB de memoria con una concurrencia de 800 conexiones (sockets). El cliente (Slaver) es un único fichero que sólo tiene como dependencia la librería estándar de python(2.7/3.4+) .
Cómo funciona 
Escenarios típicos
1 Acceder al equipo de una compañía/escuela (sin IP pública) desde casa
2 Hacer un sitio/red públicos
3 Facilitar la intrusión a una red privada
4 Ayudar a los participantes de un CTF offline
5 Conectarse a un dispositivo con una IP dinámica, como una ADSL doméstica
Comenzando a usarlo
1. requisitos:
◦ Master: Python3.4+, independiente del SO
◦ Slaver: Python2.7/3.4+, independiente del SO
◦ no tiene dependencias externas, sólo las librerías estándar de python
2. descarga git clone https://github.com/aploium/shootback
3. (opcional) si necesitas un único fichero slaver.py, ejecuta python3 build_singlefile_slaver.py
4. ejecuta estos comandos
# 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
5. un ejemplo más realista:
# slaver_local_ssh <---> slaver <--> master(22.33.44.55) <--> You # ---- master ---- python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022 # ---- slaver ---- python(or python3) slaver.py -m 22.33.44.55:10000 -t 127.0.0.1:22 # ---- YOU ---- ssh 22.33.44.55 -p 10022
6. para más ayuda ver python3 master.py –help
y python3 slaver.py –help
Tips
1. ejecutar en modo daemon:
nohup python(or python3) slaver.py -m host:port -t host:port -q &
o:
# 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. CUALQUIER servicio que use TCP es “shootback-able”. HTTP/FTP/Proxy/SSH/VNC/…
3. shootback sólo hace la función de transmisión, no cifra ni hace de proxy, sin embargo se puede usar un proxy de terceros (ej. shadowsocks) en el slaver.
Por ejemplo:
shadowsocks_server–shootback_slaver–shootback_master–shadowsocks_client(socks5)
Aviso
1. En windows debido al límite de CPython select.select(), shootback no puede manejar más de 512 conexiones de forma concurrente, por lo que podrías encontrarte con el error:
ValueError: too many file descriptors in select()
2. Si necesitas mayor concurrencia en Windows se recomienda usar Anaconda-Python3 que aumenta el límite a 2048.
Fuente: https://github.com/aploium/shootback
#HackNic
Shadow77