Doxx/Darkflare: DarkFlare TCPoCDN (TCP over CDN)

(github.com)

91 points | by josephscott 12 hours ago ago

17 comments

  • ameshkov an hour ago ago

    I made a similar thing once to relay UDP traffic over WebSocket and it supports Cloudflare if needed: https://github.com/ameshkov/udptlspipe

    The use case is to relay WireGuard over TCP/CF in a restrictive network, confirmed to work in China, obviously not too fast.

  • ignoramous 6 hours ago ago

    You could straight up connect to the destination (over TCP) from Cloudflare without needing relays; a project I wrote demonstrates TCP over HTTP (for Deno Deploy) and TCP over WebSockets (for Workers): https://github.com/serverless-proxy/serverless-proxy

    Proxying projects utilising HTTP/TLS are popular in the anti-censorship community (discussion board: https://github.com/net4people/bbs) and there are many variants of it; ex:

    - KCP (over UDP): https://github.com/xtaci/kcp-go

    - Bepass: https://github.com/bepass-org/bepass-worker

  • novakwok 5 hours ago ago

    There seems another way to achieve this, using Cloudflare's own cloudflared tunnel.

    Install a cloudflared tunnel on your remote server, configure it to forward traffic to that server's hosts proxy server(maybe Shadowsocks) using Zero Trust dashboard, and run the following command on your local computer:

    cloudflared access tcp --hostname some.your-domain.tld --url localhost:8080

    Then localhost:8080's traffic will be forwarded to cloudflareds' host, the whole traffic is using HTTP2 so might look legitimate to Firewall.

    For example if using Shadowsocks on server, your Shadowsocks's local client can connect to localhost:8080 as server to forward traffic.

  • est 6 hours ago ago

    > Services like Cloudflare, Akamai Technologies, Fastly, and Amazon CloudFront ... support millions of websites across critical sectors, including government and healthcare, making them indispensable

    The author is pretty naive. There is a reason why Google was left out of the list, in the 2010s people argue "Google is too important and China never dare to block it" then google's whole IP range is blocked.

    Amazon Cloudfront, Akmai, Fastly are also (partially) blocked and barely working.

    IMHO cleve tricks like "domain fronting" is just freebooting

    • dlenski 5 hours ago ago

      > IMHO cleve tricks like "domain fronting" is just freebooting

      What do you mean by "freebooting"?

      We added domain fronting support to the OpenConnect TLS-VPN client _in 2022_ because it is still working and useful for many people working in censored countries and environments. https://gitlab.com/openconnect/openconnect/-/merge_requests/...

      • est 4 hours ago ago

        > because it is still working

        That's a big "still" and you don't loose anything in case the real owner of the "fronted" domain suffers loss.

        • notpushkin 3 hours ago ago

          I don't think it's right to assign blame here to any party other than the authoritarian regime that decides to block the whole CDN.

  • a-ve 6 hours ago ago

    Is this something like WebTunnel from the Tor Project?

    https://gitlab.torproject.org/tpo/anti-censorship/pluggable-...

  • theblazehen 3 hours ago ago

    How does this differ from tunneling a VPN over something like wstunnel?

    We've been running that in prod for several years without any issues, also going through cloudflare

  • tomsonj 8 hours ago ago

    chisel is a similar tool in this space https://github.com/jpillora/chisel

    I don’t get why headers and requests need to be spoofed if all traffic is over https?

    • mhio 7 hours ago ago

      The headers are seen by the monster-in-the-middle CDN.

      It's obfuscation at best. I'm not sure the encrypted traffic will look particularly php-ish for example. Compressed formats might look vaguely passable.

      I can't see any stenography code or libraries in the repo.

    • coretx 6 hours ago ago

      Because SNI. Also, State (sponsored) Actors are certificate authorities. HTTPS is the biggest scam in internet history. https://en.wikipedia.org/wiki/Server_Name_Indication

      • astrange 4 hours ago ago

        This certainly was an issue but it's solved by ECH/DoH. As long as they aren't blocked on your network anyway.

        > Also, State (sponsored) Actors are certificate authorities.

        To generate a fake certificate as a CA you have to either put it in the Certificate Transparency log, in which case everyone will notice, or don't, in which case browsers will notice (they know what top sites' certificates are supposed to look like) and your CA will get shut down.

    • duskwuff 5 hours ago ago

      > I don’t get why headers and requests need to be spoofed if all traffic is over https?

      Because the traffic is to a CDN endpoint (like Cloudflare) which expects it to be a HTTP message.

    • Titan2189 8 hours ago ago

      > I don’t get why headers and requests need to be spoofed if all traffic is over https?

      https://en.wikipedia.org/wiki/Deep_packet_inspection

      • fragmede 7 hours ago ago

        how are they looking inside the packet if it's encrypted?

        • sodality2 7 hours ago ago

          DPI doesn't have to decrypt it to make certain guesses about its content. For example, timing information, packet sizes, routing info, etc could lead you to believe it's certain kinds of things (SSH, VPN, etc).