7 ms·
Blog hosted on a Nintendo Wii
- rubatuga 1y agoCool, but I sense a slowdown!
- benwilber0 1y agogot hugged. Maybe the next post will say "Blog is hosted on a Nintendo Wii (running Varnish)"
- codetrotter 1y agoLoads for me at the moment
- kotaKat 1y agoIt puts up a bit of a fight. https://blog.infected.systems/status/ https://blog.infected.systems/status/ for a plaintext status of what the Wii's doing load-wise (if it's still up, updated every ~15 minutes according to the blog). https://archive.is/6QvVA https://archive.is/6QvVA
- beeandapenguin 1y agoOP's been preparing for this moment: https://blog.infected.systems/posts/2024-12-04-hugs-of-death/ https://blog.infected.systems/posts/2024-12-04-hugs-of-death...
- jarbus 1y agobeautiful
- jandrese 1y agoPerformance is not bad. It's clear they aren't using Nintendo's TCP stack, as it was notoriously terrible on the Wii.
- jkrejcha 1y agoYeah also in general the WFC code is a bit dated and not very secure. This actually reminds me of two very interesting bugs which used together basically make it so that you can play WFC games (basically just Mario Kart Wii, nowadays) as simple as changing the DNS settings on your Wii 1. Firstly, as long as you set a particular field in the certificate, it just is completely happy with an invalid cert. (This was fixed by the NWC library by the time it was released In Korea, notably, although this bug was present in DWC for a long while. (Aside: I actually suspect that this bug was present in the RVL SDK (used by games and such on the PPC), but also is caused by the same cause as the signing/Trucha bug[1]. While the latter is a IOS specific exploit, it wouldn't surprise me if the same code was used in both this and DWC (the networking library). Given that Mario Kart Wii has an associated IOS version of IOS36[2], but DWC code isn't part of IOS, my hunch is that they used either the same or similar validation logic OR both bugs were squashed a part of some security related cleanup. I haven't actually gone through the reverse engineering effort to confirm this yet, but given that this doesn't work on the Korean version of MKW, which notably uses a later version of IOS and other libraries, my hunch is that those bugs are one in the same. The fix timing at least seems interesting to me. Anyway side note over.) 2. The networking library also has an RCE caused by a buffer overrun, basically from the first message it has a length that's unchecked and the DWC library blindly memcpys data from the packet. This is kinda why it's important to have some sort of patchset that fixes these bugs (because the operating system and libraries ship with the game and you can't update those except for in memory). The culmination of this is all you have to do is 1. Change your DNS settings on your unmodified Wii to point to a specified DNS server. 2. Start Mario Kart Wii (probably, although some other games work too), open up WFC So that the game... 3. Does a DNS lookup for the WFC server which intentionally links to a 3rd party server 4. Passes validation of a bad cert which intentionally sets one of the fields to a null value in order to make the Wii accept it 5. Receives a message that contains an exploit which patches the game in memory to fix the known RCEs and setup URLs to resolve to different domains instead of using the old WFC ones among other things (such as cheat reporting that is all client-side based, etc) all so you can play Wii games (probably Mario Kart Wii) online 11 years after WFC shut down for good :) [1]: https://wiibrew.org/wiki/Signing_bug https://wiibrew.org/wiki/Signing_bug [2]: https://wiibrew.org/wiki/IOS36 https://wiibrew.org/wiki/IOS36
- 1y ago
- MagicRailAPI 1y ago[flagged]
- mrweasel 1y agoGiving the author the benefit of the doubt, that's probably how I'd do it. Not hosting the Wii in a datacenter, but set up a VM as a proxy, as to not expose my home internet connection to the world. You're not going to win an points with the family when they can't stream Disney+ because you had to expose a webserver running on that old Wii to the internet, using your home internet connection.
- busymom0 1y agoCouldn't one use cloudflare tunnel to prevent that issue?
- mrweasel 1y agoI'd assume so, but if you already have a VM running your blog normally, then you can just have nginx/apache/haproxy/varnish/whatever you use forward the traffic, and once you're done point it back to the "real" blog on the same VM once your experiment is done.
- voytec 1y agoHe wrote that there's Caddy adding TLS between Wii (which runs lighttpd) and the viewer.
- LeoPanthera 1y agoYou should read the actual post.
- miyuru 1y agoHetzner is the IPv4 proxy, use the IPv6 address to connect to his network directly. His ASN does not have any IPv4 addresses. https://bgp.tools/as/215768#prefixes https://bgp.tools/as/215768#prefixes
- joseda-hg 1y agoBased on previous experience with Wii homebrew, you could probably circumvent the (expected) reliability issues of the smaller SD by swapping to a regular USB thumbdrive post exploit, ports are only 2.0 but you're bound by processor anyway
- ObscureScience 1y agoAnyone knows if the Starlet co-processor is accessible from NetBSD?
- johnklos 1y agoAFAIK, it's not, but it'd be fun to expose it and do silly things with it.
- dfox 1y agoWorking from the fact that the NetBSD sees the OHCI controllers which are on the Starlet's AHB this runs with AHBPROT disabled (as does most homebrew), so NetBSD can in theory not only interact with Starlet mailboxes (as any normal game), but can also do pretty much anything to it as the entire Starlet address space is R/W accessible from Broadway (which on the other hand makes interacting with Starlet pretty much irelevant for normal use, as you can interact with the hardware directly using normal drivers instead of going through IOS)
- RockRobotRock 1y ago>I was doing this bit using a capture card and Photo Booth on macOS which doesn’t actually support disabling the image-flip on the video feed Please use OBS
- macshome 1y agoI was surprised at the Photo Booth usage as well. I would have just recorded it with the QuickTime Player as if it were an iOS device.
- CommenterPerson 1y agoInteresting work! Definitely deserved the #1 spot on HN
- allegrotim 1y agothis is pure beauty. Do you think something like this can be done on a NES? like a simple CGI website
- zamadatix 1y agoUnfortunately the time you get to the point of even valid HTTP responses it will look less like a SNES and more like whatever-you-plugged-into-a-snes-for-power. E.g. the original Family Computer Network System addon already had more RAM and CPU power than the original console it attaches to just to interface as a modem at all, let alone something "basic" like CGI. The Wii is probably the first Nintendo console where all the hardware you need to do this is fully built in (though maybe the Nintendo DS, depending how much you're willing to try to get Linux + your server to fit in memory without plugging in a RAM expansion pack to the GBA slot).
- echelon 1y ago> The Wii is probably the first Nintendo console where all the hardware you need to do this is fully built in Even though accessories were required, you could probably do this with both the N64 Disk Drive or GameCube network adapter. Both were network interfaces that still dispatched to the underlying system. The N64 Disk Drive [1] would be a fun case, because the storage medium is a glorified floppy disk drive. It does connect over a modem, so there'd be some fun middleware. The Super Nintendo had a network adapter as well, and both the NES and SNES [2] had satellite networking adapters in Japan. IIRC, there was also a network adapter for the Game Boy. I'm not sure how or if those would work, or how much control was surrendered to the hardware/software of the network adapter itself to let it do all the driving. [1] https://en.wikipedia.org/wiki/64DD https://en.wikipedia.org/wiki/64DD [2] https://en.wikipedia.org/wiki/Satellaview https://en.wikipedia.org/wiki/Satellaview
- zamadatix 1y agoAre you sure the Satellaview was available for the Famicom (NES)?
- chandlerswift 1y agohttps://web.archive.org/web/20250421184947/https://blog.infected.systems/posts/2025-04-21-this-blog-is-hosted-on-a-nintendo-wii/ https://web.archive.org/web/20250421184947/https://blog.infe...
- bennydog224 1y agoNot to be a stickler, but the blog isn't actually FULLY hosted on the Wii until you move that Caddy instance to it or drop it :) Nice work.
- Wowfunhappy 1y agoThe author should have just disabled TLS! It would have been perfectly reasonable under the circumstances, and then the website would have been fully Wii-hosted, no caveats!
- pedroslopez 1y agolol rare wowfun sighting made me happy (hi from nacho@atmosphir)
- Wowfunhappy 1y ago:)
- greeniskool 1y ago> Rebooting NetBSD reboots the whole console, and not just the NetBSD ‘app’, so you’ll find yourself back at the Wii Menu after any kernel patch or system upgrade. This can be mitigated by installing Priiloader, and having it autoboot into either the Homebrew Channel or the NetBSD .dol file
- Bluecobra 1y agoReally impressed by how low the load average is (0.06 @15 min).
- cactusplant7374 1y agoThe status page doesn't seem to be updating....
- spauka 1y agoDepending on how often you are refreshing - the status page only updates every 15 minutes: > So I put together a simple shell script that runs from the crontab every 15 min, outputting some system stats to a basic HTML file in the webroot.
- Bluecobra 1y agoI checked it again and it seems to update every 15 minutes.
- tech234a 1y agoFor those unaware, the "SSL Added and removed here!" image is a reference to a diagram describing unencrypted communications between Google datacenters that leaked from the NSA in 2013 [1]. [1] https://arstechnica.com/tech-policy/2013/10/new-docs-show-nsa-taps-google-yahoo-data-center-links/ https://arstechnica.com/tech-policy/2013/10/new-docs-show-ns...
- _fat_santa 1y agoIt’s so funny so see a top secret label below what’s clearly a hastily scribbled diagram
- pyfon 1y agoLooks like a design interview round
- RestartKernel 1y agoI am convinced [1] most people can fall into handling anything with levity. You see the same thing happening in the medical field, and undoubtedly in more macabre organisations as well (see WW2 testimonies, for example). [1] Unsourced learned experience, consider with a grain of salt.
- jsheard 1y agoThat :¬) face makes for a great custom emote in security-related channels.
- indrora 1y agoHave a horizontal copy: ˙ ͜ʟ˙
- encom 1y ago>SSL Added and removed here! And CloudFlare!
- lillecarl 1y ago
- aaronday 1y ago[dead]
- sadeshmukh 1y agoFYI - instead of Photo Booth you can use Quicktime Player and "create new movie recording". I believe that should fix the image flipping problem.
- mattl 1y agoYeah or OBS.
- onefreecomputer 1y agoHey, if anyone wants Wii colo on public address space in New York, get in touch. We gotchu. https://wtfhost.onefreecomputer.org https://wtfhost.onefreecomputer.org We also have android dedis.
- SuperHeavy256 1y agoedent, my question is what tool did you use to make the Wii ASCII art?
- ee99ee 1y agoInteresting how the times don't update with each refresh... CDN?
- tom1337 1y agoIf you’re taking about the status page: So I put together a simple shell script that runs from the crontab every 15 min, outputting some system stats to a basic HTML file in the webroot. It only updates every 15min which is why you’re getting stale data.
- breadchris 1y agoincredible! great job!
- spauka 1y agoOne of the coolest revelations to me, just looking at the status page [1] is that the Wii only had 88 MB of RAM - split between 24 MB built in to the SoC and 64 MB of GDDR3. Given that this is the case, ntpd using 15% of the system memory means it was using about 13 MB of RAM - hardly a huge chunk by today's standards but not small either. I wonder if reducing the number of time servers would improve this much? On my system I can see I'm tracking about 9 servers from the debian pool. Compare this to the XBox 360 which even at the time had 512 MB, it's really amazing how much they managed to squeeze out of such a tiny chip. [1] - https://blog.infected.systems/status/ https://blog.infected.systems/status/
- qingcharles 1y agoI'm thinking back to my first NetBSD boxes in 1995 which must have run in 4-8MB RAM and ran a mail server, a webmail server I wrote, and multiple users logging in to play MUDs and sit on IRC.
- spl757 1y agoAre you still looking for PS2 Linux?
- OuterVale 1y agoThe writer's post on the fediverse announcing this post gave me a good chuckle when it came across my feed. https://infosec.exchange/@alexhaydock/114377262481451962 https://infosec.exchange/@alexhaydock/114377262481451962
- kn100 1y agoI love this sorta stuff! I once had my blog hosted on a docker container on my Robot Vacuum. I switched back to a saner host when I started getting uptime alerts when the vacuum went under my bed and lost wifi signal!
- skiman10 1y agoHaha what? I simply must know more about how you achieved that!
- kQq9oHeAz6wLLS 1y agoSee, I would have just put a WiFi extender near my bed...
- elicash 1y agoPlease write this up somewhere!
- msephton 1y agoVery cool and fun. Regarding power draw, later Wii revisions improved this. My OG Wii runs much "hotter" than my later one.
- cdplayer96 1y agothis is so dope
- janvdberg 1y agoThis reminds me of a project I saw more than 24 (!) years ago. Someone made a webserver for the GBA. It seemed magical to me at the time and I still remember going to this site often to see updates (that's why I remember the URL). Thankfully the Wayback Machine still has it: https://web.archive.org/web/20030204043536/http://fivemouse.com/ https://web.archive.org/web/20030204043536/http://fivemouse....
- _blk 1y agoTry using ZZ to exit vim ;) ...Then the hardest part is only remembering what layout you're on if you regularly swap keyboard layouts between QWERTY and QWERTZ ..or wait are you even on a keyboard there?
- zoezoezoezoe 1y ago> https://blog.infected.systems/posts/2025-04-21-this-blog-is-hosted-on-a-nintendo-wii/caddy.jpg https://blog.infected.systems/posts/2025-04-21-this-blog-is-... Didnt think I'd ever be id'd so accurately on a blog about running a webserver on a WII.