• Auditing my VPS for signs of compromise

    Introduction I retired an old WordPress site last week. It had been running on my Virtual Private Server (VPS) for a while, and I was never fully confident it had been locked down properly (it was a temporary site to test some stuff for someone). So before I forgot about it entirely, I wanted an…

  • Redteam lab updates

    Introduction Eight or nine weeks ago I built the red team lab on my Mac: one make up, a Kali attacker, two targets, an isolated 10.10.10.0/24. It worked, and then it did what every working lab does: it grew. This post is the catch-up. Same repo, same one command, five targets instead of two, and…

  • Anonymous Kali setup on Mac

    Introduction Last week we setup a single Kali box as a daily driver. As promised, this week we take it a step further. The lab I built in July hands me an attacker box and two targets on an isolated segment, rebuilt from scratch with one command. Every VM in it still reaches the internet…

  • Single Kali VM on Apple Silicon

    Introduction A few weeks back I built a throwaway lab: an attacker box and a couple of disposable targets, all from a make up. That solved the targets problem, but I wanted more for the Kali box itself. So I gave it the same treatment: one repo, one command, a Kali workstation I can burn…

  • Automated lab setup on a Mac

    Introduction Last time I built a single Kali workstation on the Mac by hand: install the VM, update it, duplicate it, keep the clone clean. That’s fine when you need one attacker box. It stops being fine the moment you want a target to point it at, and then a second target, and then a…

  • Attacker workstation on a Mac

    Introduction I run my daily work off a MacBook, and for a while I told myself I could install nmap and a handful of tools straight onto macOS with Homebrew and call it a day. That works until the first time you run something you don’t fully understand yet against a target, on the same…

  • Self hosted cybersecurity dashboard

    Introduction I’ve been struggling for a while to find a good central place to keep up with cybersecurity news. I tried RSS readers, I tried newsletters, I tried a few aggregator sites. Nothing really stuck. Either the UI annoyed me, or the sources were too broad, or I’d end up with the same story duplicated…

  • Separation of concerns of VPS and Docker apps

    Introduction I’ve been working on a clean, reusable setup for running my own apps on a Virtual Private Server (VPS), specifically on Hetzner Cloud. The result is three open source repositories that take you all the way from bare metal to running Nginx, WordPress, and Nextcloud behind a proper reverse proxy, with automatic SSL certificates…

  • Automated secured Hetzner VPS

    Introduction A few weeks ago we setup a cool VPS with WordPress, Traefik, etc. in an automated way. The only downside was that is could not be managed with the same code (only setup once), as explained in the post. Today we’re setting up a complete, automated WordPress hosting solution using OpenTofu, cloud-init and Ansible;…

  • 7 WordPress plugins I install before the theme

    Introduction Forget the “Top 50 Essential Plugins” lists. Most plugins are bloated garbage that slow your site to a crawl. After a decade of debugging sites at 3 AM, I’ve narrowed it down to seven pieces of infrastructure. These handle the invisible work, being speed, security, and not losing data. Akismet anti-spam by Automattic Of…