"How to Hijack, Proxy and Smuggle Sockets with Rack/Ruby"
summary
Rack hijacking extracts the raw socket from an HTTP request and repurposes it to carry TCP protocols so an SSH or VNC session runs through an HTTP upgrade. Implementation uses Ruby and a custom epoll wrapper with EPOLLONESHOT for efficient readiness, falls back to IO.select on macOS, and pairs a Rack-embedded proxy with a small native helper so browsers can open a local listener. A demo tunnels SSH and VNC successfully but requires a native browser plugin binary and is described as working proof of concept not yet production hardened.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 0:38Live Demo
- 1:30Download
- 2:25Manage IQ
- 3:02Remote Desktop Sessions
- 3:40Remote Consoles
- 4:08Virtual Machines
- 5:22Proxy
- 7:27Buffers
- 8:35Nonblocking IO
- 13:04Alternatives
- 20:43Supported platforms
- 21:12WebSockets
- 23:22Socket Hijack
- 25:09Smuggle Sockets
- 26:18Why I am doing this
- 27:06Raw Request
- 29:06Architecture
- 30:30Demo
related talks
35m"How to hijack, proxy and smuggle sockets with Rack/Ruby"
35mStuck in the Middle: Leverage the power of Rack Middleware
28mReal-Time Rails
33mRack ‘em, Stack ‘em Web Apps
31mFrom Rails to the Web Server to the Browser
33mOutside the (Web) Box: Using Ruby for Other Protocols
47mSpeedrun through Splicing Sockets with Sockmap
34mUnraveling the Cable: How ActionCable works
