<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Cyberwox Unplugged: Labs]]></title><description><![CDATA[Practical demonstrations & technical deep dives.]]></description><link>https://www.cyberwoxunplugged.com/s/labs</link><image><url>https://substackcdn.com/image/fetch/$s_!pA5b!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b1ed158-420f-4ae6-9aaa-adc23c31da06_1280x1280.png</url><title>Cyberwox Unplugged: Labs</title><link>https://www.cyberwoxunplugged.com/s/labs</link></image><generator>Substack</generator><lastBuildDate>Tue, 10 Nov 2026 17:59:17 GMT</lastBuildDate><atom:link href="https://www.cyberwoxunplugged.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Dayspring Johnson]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[cyberwox@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[cyberwox@substack.com]]></itunes:email><itunes:name><![CDATA[Day Johnson]]></itunes:name></itunes:owner><itunes:author><![CDATA[Day Johnson]]></itunes:author><googleplay:owner><![CDATA[cyberwox@substack.com]]></googleplay:owner><googleplay:email><![CDATA[cyberwox@substack.com]]></googleplay:email><googleplay:author><![CDATA[Day Johnson]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I Almost Fried My Home Lab Server Over an extra 32GB of RAM]]></title><description><![CDATA[Wazuh was eating 30GB. Fixing that nearly cost me the whole box.]]></description><link>https://www.cyberwoxunplugged.com/p/i-almost-fried-my-home-lab-server</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/i-almost-fried-my-home-lab-server</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Tue, 22 Sep 2026 12:04:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/3d8d4387-236c-4b4e-aed5-40aa002357b1_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I built this PC in June 2020, and I haven&#8217;t touched its hardware components since. I only know the date because it&#8217;s printed on one of the sticks I pulled out that night, and seeing it stopped me for a second. Peak pandemic, me putting a machine together on the dining table. Six years later it was still running everything I&#8217;d thrown at it, which is exactly why I never touched it.</p><div id="youtube2-dZc-QKqJ7Rs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dZc-QKqJ7Rs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/dZc-QKqJ7Rs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>The reason I finally had to was Wazuh.</p><p>My Proxmox host, lab0, was sitting on 32GB of RAM. I restarted it fresh, and it climbed right back to 63% memory utilization; on a normal day when I&#8217;m not touching anything, it drifts up to 70% or 71%. Almost all of that is one node. Wazuh was pulling around 18GB immediately after boot and creeping toward 30GB the longer it stayed up.</p><p>That&#8217;s what finally pushed me. It wasn&#8217;t that anything was broken; it&#8217;s that nothing new could ever get built. Every time I thought about spinning up another VM for a project, the math said no before I even got to the fun part. So I had to upgrade the memory.</p><p>Two <a href="https://amzn.to/4cFToSF">G.SKILL Ripjaws V DDR4 sticks</a>, 16GB each, to take the host from 32GB to 64GB. $239, which stung a little. If you&#8217;ve priced memory recently, you already know why: AI demand has RAM in a strange place right now, and DDR4 didn&#8217;t get a pass. Not an outrageous number for 32GB, but definitely a premium over what I paid for the original build.</p><p>Before I pulled power on anything, I did one small thing that I&#8217;d recommend to anybody about to do the same job. I went into the Wazuh VM options in Proxmox and turned on start at boot. It takes thirty seconds, and it means that when the host comes back, your important VMs come back with it. Then I shut the node down cleanly, powered off the machine, and unplugged it.</p><h2>Where it started going wrong</h2><p>Two open DIMM slots, two new sticks. I had this pegged as a fifteen-minute job.</p><p>The first one went in fine. Lined up the notch, pressed down, heard the click, felt pretty good about myself. I flipped the lever on the second slot, slid that stick in, and it felt locked, so I closed everything up, plugged the machine back in, and hit power.</p><p>Yellow light.</p><p>I gave it time, because I didn&#8217;t expect it to post instantly, and I kept refreshing the Proxmox page like that would help. It stayed yellow. Then, on a later attempt, it went red, and red is what actually worried me. So I looked both up, and it turns out the board had been telling me exactly what was wrong the entire time. </p><p>Solid yellow or amber on the DRAM light means memory failed the power-on self-test. Red means the system can&#8217;t detect a component at all.</p><p>Fine. Something&#8217;s loose. I powered down, opened it back up, and started reseating.</p><h2>The thing I didn&#8217;t know about DDR4</h2><p>This is where I burned most of the evening, and where the actual lesson lies.</p><p>I pulled the sticks and pushed them back in, and nothing changed. Did it again; still yellow. I was being careful, because these things are expensive and they feel fragile, and I kept thinking I was going to crack something. At one point I caught myself wondering if I was the problem, doing this on my office floor, in bad light, wearing jewelry, not grounded, which is a pretty complete list of what you&#8217;re <strong>not</strong> supposed to do.</p><p>I was the problem, just not in the way I assumed.</p><p>A stick can be locked at the bottom and completely loose at the top. It looks/looked seated, but it isn't.</p><p>DDR4 needs more force than feels acceptable, and it needs that force at both ends until each side clicks. Being gentle was why nothing worked. Once I pushed harder, every stick clicked twice, and suddenly they all looked properly seated in a way they hadn&#8217;t before. I had pushed one in earlier, and it wasn&#8217;t even sitting right, which is a little scary in hindsight.</p><p>So now everything was genuinely in. I closed it up, powered it on, and got yellow again.</p><h2>The part that wasn&#8217;t the RAM</h2><p>At that point I was lightheaded and out of ideas, so I went looking. I found people on Reddit describing the same lights and saying the fix was to reseat the big power cable that runs into the motherboard, which I hadn't touched once.</p><p>I grabbed my phone flashlight, which I should have done an hour earlier, and actually looked. The large connector was snug. The small one next to it wasn&#8217;t, and I&#8217;d been fighting it because I was going in the wrong order. There&#8217;s a little arrow stamped on it that had me second-guessing myself for a while, trying to work out which way it was supposed to point.</p><p>The small connector goes in first, and then the larger one seats on top of it and anchors, with a clip on the side. Once I did it in that order, it slid in and sat snug immediately.</p><p>Looking back, this is the part I&#8217;d want somebody to take from all of it. I was a hundred percent certain this was a memory problem, because memory was the thing I changed. It was partly memory, and partly a connector I never intended to move, and I only found the second half because I got desperate enough to stop trusting my own assumption. If you&#8217;re reading this thinking I was making it far harder than it needed to be, you&#8217;re right, and I knew it while it was happening.</p><h2>Back online</h2><p>I powered it on, and the light went yellow, then red, then white, then red again, then white, then green. I went through about six emotions in ten seconds.</p><p>Then the POST screen came up: ASUS TUF Gaming, total memory 65536MB.</p><p>It booted into safe mode, which makes sense after that many failed POST attempts and a few forced shutdowns. I went into the BIOS, checked the CPU temperature, confirmed DRAM status looked right, confirmed Proxmox was still first in the boot order, changed nothing, and saved and exited. One more reboot, and lab0 was back.</p><p>Proxmox reports 62GB usable rather than 64, which is normal. The BIOS sees the full 65536MB, and some gets reserved before the hypervisor ever counts it. Wazuh is now running around 59 percent of the 32GB I allocated to its VM, and that&#8217;s completely fine because it&#8217;s using what I gave it instead of squeezing the entire host. There&#8217;s finally room for the next VM.</p><p>Tailscale was the last loose end. The tail IP wouldn&#8217;t load at first and <code>tailscale status</code> reported it running but idle after all those hard resets. It came back on its own after a while, and by then it was the least of my concerns.</p><h2>What I&#8217;m taking away</h2><p><strong>Turn on start at boot before you power down.</strong> Thirty seconds of prep so you&#8217;re not troubleshooting two problems at once.</p><p><strong>Read the lights.</strong> Amber means DRAM, red means a component isn&#8217;t being detected. The board is specific. I guessed for twenty minutes before I looked it up.</p><p><strong>RAM needs real force, at both ends.</strong> No click on both sides means it isn&#8217;t in, no matter how snug it looks.</p><p><strong>Work on a flat surface with the light on.</strong> I did neither and made the whole thing harder than it had to be.</p><p><strong>Question the thing you changed.</strong> I was sure it was the memory. The power cable I never touched was half the problem.</p><h2>So, storage or a NAS?</h2><p>The bottleneck has now moved, and now I&#8217;ve got headroom for the projects I&#8217;ve been putting off.</p><p>Storage is the next constraint. I&#8217;m on a single 1TB drive, and I keep going back and forth. I could drop in another SSD, which is cheap, quick, and solves the immediate problem. Or I could build out a mini NAS, which costs more and takes real work but gets the lab closer to something that actually resembles infrastructure instead of everything living on one disk. That&#8217;s also just a better project.</p><p>Still deciding, and you&#8217;ll be the first to know when I decide.</p><p>Two questions for you in the meantime. Would you have done this upgrade differently, and if so, how? What should I hit next: another drive or the NAS?</p><div><hr></div><h1><strong>Until Next Time</strong></h1><p>That&#8217;s it for this one.</p><p>As always, keep learning, keep building, and keep thinking deeply about the systems we&#8217;re trusted to defend.</p><p>See you in the next one.</p><p>~ Day &#128153;</p><div class="callout-block" data-callout="true"><p>This newsletter includes affiliate links from the original video sponsor. I may earn a commission if you purchase through them, at no additional cost to you.</p></div>]]></content:encoded></item><item><title><![CDATA[I Upgraded My Cybersecurity Homelab From Proxmox 8 to Proxmox 9]]></title><description><![CDATA[And almost broke everything...]]></description><link>https://www.cyberwoxunplugged.com/p/i-upgraded-my-cybersecurity-homelab</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/i-upgraded-my-cybersecurity-homelab</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Fri, 21 Aug 2026 20:55:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/dnhvkNXaQ0s" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>What began as a routine Proxmox upgrade turned into a surprisingly useful infrastructure-recovery exercise.</p><p>My primary homelab server <code>lab0</code> was still running Proxmox VE 8.4 on Debian 12 Bookworm. Since Proxmox VE 9 had been out for a while and moves the underlying distribution to Debian 13 Trixie, I decided it was time to make the jump.</p><p>This is the same host running much of the infrastructure from my homelab series, including my Wazuh VM.</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;50b4485b-629e-4c03-829a-e6e45b45b2e5&quot;,&quot;caption&quot;:&quot;Five years ago, I was just a curious college freshman with a few spare computer parts, a lot of Google searches, and a dream of breaking into cybersecurity.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why I&#8217;m Building a New Cybersecurity Homelab &quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:172540827,&quot;name&quot;:&quot;Day Johnson&quot;,&quot;bio&quot;:&quot;&#9881;&#65039;Engineering a meaningful life | Cybersecurity @Amazon // ex-@datadog | 61k on YouTube | Opinions are mine, not of past/present/future employers.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbd53745-4b45-4abc-b056-4d9ac6849f36_1320x1320.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-08-22T12:03:17.798Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1ae16ec-e503-41e5-8bd3-4ce65b325387_1280x720.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://www.cyberwoxunplugged.com/p/why-im-building-a-new-cybersecurity&quot;,&quot;section_name&quot;:&quot;Labs&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:171047974,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:9,&quot;comment_count&quot;:1,&quot;publication_id&quot;:1996296,&quot;publication_name&quot;:&quot;Cyberwox Unplugged&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!pA5b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b1ed158-420f-4ae6-9aaa-adc23c31da06_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>So before changing anything, I started where every major upgrade should start:</p><pre><code><code>pve8to9 --full</code></code></pre><p>The initial report was better than expected: 43 checks total, 29 passing, three warnings, and one failure.</p><p>The failure was the one that mattered most:</p><pre><code><code>FAIL: systemd-boot meta-package installed.</code></code></pre><p>There were a few other cleanup items too:</p><ul><li><p>AMD CPU microcode was missing.</p></li><li><p>Legacy settings remained in <code>/etc/sysctl.conf</code>.</p></li><li><p>LVM volumes were using the old autoactivation behavior.</p></li><li><p>Wazuh&#8217;s third-party repository appeared as an unusual APT suite.</p></li><li><p>One VM was still running.</p></li></ul><p>None of that was catastrophic. But this is precisely why pre-upgrade checks exist: they turn hidden technical debt into an actionable checklist.</p><div id="youtube2-dnhvkNXaQ0s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;dnhvkNXaQ0s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/dnhvkNXaQ0s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><em>Full unedited upgrade process (with the help of ChatGPT).</em></p><h2>Confirming the Boot Path</h2><p>The first thing I wanted to understand was the bootloader warning.</p><p>Having the <code>systemd-boot</code> package installed does not necessarily mean the host actually boots using systemd-boot, so I checked the relevant state:</p><pre><code><code>proxmox-boot-tool status
efibootmgr -v
dpkg -l | grep -E 'systemd-boot|grub|proxmox-boot'</code></code></pre><p>The key detail was this EFI entry:</p><pre><code><code>Boot0004* proxmox ... \EFI\proxmox\shimx64.efi</code></code></pre><p>The host also had the full GRUB stack installed. In other words, it was booting through Proxmox&#8217;s GRUB/shim path&#8212;not systemd-boot. The package was simply an unnecessary meta-package left behind on the system.</p><p>I removed it, reran the checker, and the failure disappeared.</p><p>That took the host from one failure to zero.</p><h2>Cleaning Up Before the Upgrade</h2><p>Next, I worked through the remaining warnings.</p><h3>Updating LVM autoactivation</h3><p>Proxmox 9 changes how newly created LVM and LVM-thin guest volumes use autoactivation. One of my existing VM disks still had the older behavior enabled.</p><p>Proxmox provides a migration script for this:</p><pre><code><code>/usr/share/pve-manager/migrations/pve-lvm-disable-autoactivation</code></code></pre><p>It found the affected volume and corrected it.</p><p>One important lesson: I had to run this script a second time later in the upgrade </p><p>because another LVM-backed VM state volume appeared after the new LVM configuration was installed.</p><p>A clean pre-upgrade check does not guarantee that nothing changes during the distribution upgrade itself. Run the checker again afterward.</p><h3>Installing AMD microcode</h3><p><code>lab0</code> uses an <strong>AMD Ryzen CPU</strong>, and the upgrade checker correctly identified that <code>amd64-microcode</code> was not installed.</p><p>The reason was straightforward: my Debian repositories only included:</p><pre><code><code>main contrib</code></code></pre><p>The microcode package lives in:</p><pre><code><code>non-free-firmware</code></code></pre><p>After updating the Bookworm repository definitions, I installed the package:</p><pre><code><code>apt install amd64-microcode</code></code></pre><p>That rebuilt the initramfs and queued the updated microcode for activation at the next reboot.</p><p>Another warning resolved.</p><h3>Moving sysctl settings out of <code>/etc/sysctl.conf</code></h3><p>I also had these forwarding settings in the legacy <code>/etc/sysctl.conf</code>:</p><pre><code><code>net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1</code></code></pre><p>They are intentional. This host participates in networking within the lab&#8212;but Proxmox 9 wanted them moved into a dedicated file under <code>/etc/sysctl.d/</code>.</p><p>I created:</p><pre><code><code>/etc/sysctl.d/99-homelab-forwarding.conf</code></code></pre><p>With:</p><pre><code><code>net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1</code></code></pre><p>Then applied the configuration:</p><pre><code><code>sysctl --system</code></code></pre><p>Both forwarding values remained enabled.</p><p>After another upgrade-check run, I was down to:</p><pre><code><code>WARNINGS: 1
FAILURES: 0</code></code></pre><p>The remaining warning was simply that a VM was still running.</p><p>At that point, the host was ready.</p><h2>Moving to Proxmox 9</h2><p>Before changing repositories, I shut down Wazuh and temporarily disabled the Wazuh and Tailscale APT sources.</p><p>For a major Debian upgrade, I prefer to keep third-party repositories out of the transaction until the base OS and platform packages are stable. It reduces the number of variables involved if something goes sideways.</p><p>I then migrated the Debian repositories from Bookworm to Trixie and moved to the newer deb822-style APT configuration.</p><p>The Debian suites became:</p><pre><code><code>trixie
trixie-updates
trixie-security</code></code></pre><p>And the Proxmox repository became:</p><pre><code><code>trixie pve-no-subscription</code></code></pre><p>After updating package metadata:</p><pre><code><code>apt update</code></code></pre><p>I verified the intended upgrade path:</p><pre><code><code>apt policy proxmox-ve</code></code></pre><p>The output showed exactly what I wanted:</p><pre><code><code>Installed: 8.4.0
Candidate: 9.2.0</code></code></pre><p>Then came the real upgrade:</p><pre><code><code>apt dist-upgrade</code></code></pre><p>And that is where things became interesting.</p><h2>The APT Terminal Disappeared</h2><p>During the upgrade, Debian prompted for configuration-file decisions&#8212;normal things such as:</p><pre><code><code>/etc/issue
/etc/lvm/lvm.conf</code></code></pre><p>At some point, though, the shell running <code>apt dist-upgrade</code> disappeared due to a random glitch.</p><p>The upgrade process itself did not.</p><p>When I checked the Proxmox package state, I found a strange hybrid environment. Proxmox 9 packages were present:</p><pre><code><code>pve-manager: 9.2.11
proxmox-kernel-7.0.14-12-pve</code></code></pre><p>But many packages were listed as:</p><pre><code><code>not correctly installed</code></code></pre><p>That looks alarming, but it is exactly the moment when you should avoid making things worse.</p><p>My first check was:</p><pre><code><code>dpkg --audit</code></code></pre><p>It showed a long list of packages that had been unpacked but not yet configured.</p><p>I tried:</p><pre><code><code>dpkg --configure -a</code></code></pre><p>But APT still owned the package database.</p><p>So instead of deleting lock files or rebooting, I checked the process tree:</p><pre><code><code>ps auxf | grep -E '[a]pt|[d]pkg'</code></code></pre><p>There it was:</p><pre><code><code>apt dist-upgrade
&#9492;&#9472;&#9472; dpkg --configure --pending</code></code></pre><p>The original APT transaction was still running.</p><p>I inspected its file descriptors:</p><pre><code><code>ls -l /proc/&lt;PID&gt;/fd/{0,1,2}</code></code></pre><p>That revealed the actual problem: APT&#8217;s input and output were connected to a deleted pseudo-terminal.</p><pre><code><code>/dev/pts/0 (deleted)</code></code></pre><p>The terminal was gone. The process was not.</p><p>The upgrade had effectively become stranded while holding the package manager state.</p><h2>Recovering Safely</h2><p>Once I knew what I was looking at, the recovery path was clear.</p><p>I terminated the orphaned APT process normally:</p><pre><code><code>kill &lt;PID&gt;</code></code></pre><p>I did <strong>not</strong> delete the package manager lock files.</p><p>I did <strong>not</strong> remove files from <code>/var/lib/dpkg</code>.</p><p>I did <strong>not</strong> reboot halfway through the package configuration process.</p><p>After the orphaned process exited, I ran:</p><pre><code><code>dpkg --configure -a</code></code></pre><p>This time it completed successfully.</p><p>LVM configured. GRUB configured. The new Proxmox kernel was detected:</p><pre><code><code>Found linux image: /boot/vmlinuz-7.0.14-12-pve</code></code></pre><p>Then the Proxmox packages finished configuring:</p><pre><code><code>pve-manager configured
proxmox-ve configured</code></code></pre><p>I followed with:</p><pre><code><code>apt -f install</code></code></pre><p>Which returned:</p><pre><code><code>Upgrading: 0
Installing: 0
Removing: 0</code></code></pre><p>Then:</p><pre><code><code>apt-get dist-upgrade</code></code></pre><p>Returned:</p><pre><code><code>0 upgraded, 0 newly installed, 0 to remove</code></code></pre><p>That was the confirmation I was looking for: the package database had returned to a healthy state.</p><p><code>pveversion -v</code> Now showed:</p><pre><code><code>proxmox-ve: 9.2.0
pve-manager: 9.2.11
proxmox-kernel-7.0.14-12-pve-signed</code></code></pre><p>And the &#8220;not correctly installed&#8221; messages were gone.</p><h2>One Last Weird Service Failure</h2><p>There was still one failed service:</p><pre><code><code>chrony.service</code></code></pre><p>Chrony is responsible for time synchronization on this host. Its error was:</p><pre><code><code>Fatal error: Could not send notification to $NOTIFY_SOCKET</code></code></pre><p>At that moment, the host had a newly upgraded userspace (including systemd), but was still running the pre-upgrade kernel and runtime environment.</p><p>Rather than overcorrecting a failure that could be transient, I validated the essentials:</p><pre><code><code>dpkg --audit</code></code></pre><p>Returned clean.</p><p>The new Proxmox kernel was installed and set as the default:</p><pre><code><code>7.0.14-12-pve</code></code></pre><p>And the Proxmox upgrade checker showed no failures.</p><p>So I rebooted.</p><h2>The Moment of Truth</h2><p>The server came back cleanly.</p><pre><code><code>uname -r</code></code></pre><p>Returned:</p><pre><code><code>7.0.14-12-pve</code></code></pre><p>And:</p><pre><code><code>pveversion -v</code></code></pre><p>Confirmed:</p><pre><code><code>proxmox-ve: 9.2.0
pve-manager: 9.2.11</code></code></pre><p>Most importantly:</p><pre><code><code>systemctl --failed</code></code></pre><p>Returned:</p><pre><code><code>0 loaded units listed.</code></code></pre><p>Chrony had recovered after the reboot. A few seconds later:</p><pre><code><code>chronyc tracking</code></code></pre><p>Showed:</p><pre><code><code>Leap status : Normal</code></code></pre><p>With an active NTP source.</p><p>Storage was healthy too:</p><pre><code><code>pvesm status</code></code></pre><p>Both <code>local</code> and <code>local-lvm</code> were active.</p><p>Finally, I started Wazuh again:</p><pre><code><code>qm start 100
qm status 100</code></code></pre><p>And got:</p><pre><code><code>status: running</code></code></pre><p>The final validation was the best one:</p><pre><code><code>pve8to9 --full</code></code></pre><pre><code><code>WARNINGS: 0
FAILURES: 0</code></code></pre><p>Beautiful.</p><h2>Repository Cleanup</h2><p>The final step was restoring the repositories I had temporarily disabled.</p><p>Tailscale had a Debian 13 Trixie repository available, so I changed its suite from:</p><pre><code><code>bookworm</code></code></pre><p>To:</p><pre><code><code>trixie</code></code></pre><p>Then I re-enabled it.</p><p>Wazuh uses its own stable repository suite, so I re-enabled that source as well.</p><p>One last APT issue appeared: an enterprise Proxmox repository was still enabled.</p><pre><code><code>https://enterprise.proxmox.com/debian/pve trixie</code></code></pre><p>Since this lab uses the no-subscription repository, APT correctly returned:</p><pre><code><code>401 Unauthorized</code></code></pre><p>The fix was simple: disable the enterprise source and run:</p><pre><code><code>apt update</code></code></pre><p>This time:</p><pre><code><code>All packages are up to date.</code></code></pre><h2>The Actual Lesson</h2><p>This upgrade turned out to be a more valuable homelab exercise than I anticipated, mainly due to the circumstances surrounding it, not because Proxmox 9 introduced a significant breaking change.</p><p>Bootloaders. Repository management. CPU microcode. LVM behavior. Sysctl configuration. GRUB. systemd. NTP. Package state. Process trees. Terminal file descriptors. Recovering an interrupted package transaction.</p><p>Installing a SIEM is cool. Deploying Kubernetes is cool. Spinning up twenty containers is cool.</p><p>But maintaining infrastructure when the platform beneath it changes is where you build a different kind of engineering muscle.</p><p>At one point, I had:</p><ul><li><p>A Proxmox 9 userspace.</p></li><li><p>A Proxmox 8 kernel still running.</p></li><li><p>Dozens of unpacked-but-unconfigured packages.</p></li><li><p>An orphaned APT process holding the package database lock.</p></li><li><p>A deleted pseudo-terminal attached to that process.</p></li></ul><p>The negative reaction would have been:</p><blockquote><p>Delete the lock file and reboot.</p></blockquote><p>The right response was:</p><ol><li><p>Observe the actual state.</p></li><li><p>Identify what owns that state.</p></li><li><p>Fix the underlying failure.</p></li><li><p>Let the package manager finish the work it was already trying to do.</p></li></ol><p>That is infrastructure engineering.</p><p><code>lab0</code> is now running:</p><pre><code><code>Debian 13 Trixie
Proxmox VE 9.2
Kernel 7.0.14-12-pve
0 failed systemd services
0 pve8to9 warnings
0 pve8to9 failures</code></code></pre><p>And Wazuh is back online.</p><p>Not a bad Friday afternoon in the homelab.</p><div><hr></div><h1><strong>Until Next Time</strong></h1><p>That&#8217;s it for this one.</p><p>As always, keep learning, keep building, and keep thinking deeply about the systems we&#8217;re trusted to defend.</p><p>See you in the next one.</p><p>~ Day &#128153;</p>]]></content:encoded></item><item><title><![CDATA[How I Access My Cybersecurity Homelab From Anywhere]]></title><description><![CDATA[No port forwarding, no exposed Proxmox, no exposed SSH. Just Tailscale, RustDesk, and a lesson I learned in a hotel room in D.C.]]></description><link>https://www.cyberwoxunplugged.com/p/how-i-access-my-cybersecurity-homelab</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/how-i-access-my-cybersecurity-homelab</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Wed, 12 Aug 2026 11:01:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6b409947-f4a1-4da1-a8eb-da99d0bf21f2_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was heading to D.C. for a cybersecurity conference (more on that another time), and I knew, before I even packed a bag, that I&#8217;d want access to my homelab while I was gone. Yep, this one:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;e1cd5727-53cf-4e8b-8506-fcb4eacdcfaa&quot;,&quot;caption&quot;:&quot;It&#8217;s been about 9 months since my last homelab update. Back in September 2025.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;showDescription&quot;:true,&quot;showImage&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Marriage Expanded My Attack Surface&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:172540827,&quot;name&quot;:&quot;Day Johnson&quot;,&quot;bio&quot;:&quot;&#9881;&#65039;Engineering a meaningful life | Cybersecurity @Amazon // ex-@datadog | 61k on YouTube | Opinions are mine, not of past/present/future employers.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbd53745-4b45-4abc-b056-4d9ac6849f36_1320x1320.png&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-08-01T11:00:53.050Z&quot;,&quot;cover_image&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/faa36a93-b9df-4117-a57f-92b4fa7a8f6d_1730x909.png&quot;,&quot;cover_image_alt&quot;:null,&quot;cover_image_crop&quot;:null,&quot;canonical_url&quot;:&quot;https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so&quot;,&quot;section_name&quot;:&quot;Labs&quot;,&quot;video_upload_id&quot;:null,&quot;id&quot;:209240771,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:6,&quot;comment_count&quot;:2,&quot;publication_id&quot;:1996296,&quot;publication_name&quot;:&quot;Cyberwox Unplugged&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!pA5b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b1ed158-420f-4ae6-9aaa-adc23c31da06_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>So before I left, I made sure <a href="https://tailscale.com/">Tailscale</a> was already installed and running across the homelab: the Proxmox host, my laptops, all of it.</p><p>That one decision ended up being the whole point of this issue. Because once I was actually in D.C., sitting on hotel WiFi with zero trust in that network, I got to see firsthand just how powerful that setup really is.</p><p>So this issue is about showing that off: how I access my entire cybersecurity homelab from anywhere, without exposing Proxmox, SSH, or remote desktop services directly to the internet, and why setting it up before you need it is the move.</p><p>The two tools doing all the heavy lifting: <strong>Tailscale</strong> and <strong>RustDesk</strong>.</p><p>Watch the full walkthrough here: </p><div id="youtube2-A_pJYzAXafQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;A_pJYzAXafQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/A_pJYzAXafQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>Why I Set This Up Before I Ever Needed It</h2><p>Here&#8217;s the thing about homelabs: the second you want to reach them from outside your own network, you&#8217;re one bad decision away from turning a learning environment into a real liability.</p><p>Port forward SSH to the router and you&#8217;ve got a service sitting on the open internet getting hammered by scanners or unrelentless AI agents within hours. Expose the Proxmox web UI the same way, and you&#8217;ve basically hung a sign that says <strong>&#8220;management plane, please attack me.&#8221;</strong></p><p>I never even considered either of those routes. I wanted something that felt like I was still on my home network, no matter where I actually was, and I wanted it working well before I needed it under pressure.</p><p>That&#8217;s the whole premise of <a href="https://tailscale.com/">Tailscale</a>: a mesh VPN built on WireGuard that quietly stitches all your devices into one private network (a &#8220;tailnet&#8221;), with no ports opened on your router at all.</p><h2>How Tailscale Connects My Homelab Devices</h2><p>The setup is almost anticlimactic in how simple it is. Install the Tailscale client on a device, authenticate, and it joins the tailnet. That&#8217;s it. No firewall rules, no static IP requirements, nothing crazy.</p><p>I&#8217;ve got it running across the homelab: the Proxmox host, individual VMs, my laptops, even devices that aren&#8217;t normally reachable from outside the house.</p><p>Once everything&#8217;s on the same tailnet, they can all talk to each other using stable, private IP addresses (or <a href="https://tailscale.com/docs/features/magicdns">MagicDNS</a> names, if you want something more human-readable). It doesn&#8217;t matter if I&#8217;m on hotel WiFi in D.C. or on my phone&#8217;s hotspot. As far as the network is concerned, I&#8217;m home.</p><h2>Configuring and Using Exit Nodes</h2><p>This is where it goes from &#8220;nice remote access&#8221; to genuinely useful: <strong>exit nodes</strong>.</p><p>An <a href="https://tailscale.com/docs/features/exit-nodes">exit node</a> lets you route your device&#8217;s entire internet traffic through another machine on your tailnet, in my case, a node sitting at home. Flip it on, and suddenly all my traffic looks like it&#8217;s coming from my home network, encrypted the whole way there.</p><p>Practically, that means I can be anywhere, connect through my home exit node, and get the same network posture I&#8217;d have sitting on my couch. For a security engineer who&#8217;s paranoid about hotel and conference WiFi (rightfully so), that&#8217;s a real upgrade over hoping a commercial VPN is trustworthy.</p><h2>Remotely Accessing Machines With RustDesk and Tailscale</h2><p>SSH gets you a terminal. Sometimes you need a screen or GUI.</p><p>That&#8217;s where <a href="https://rustdesk.com/">RustDesk</a> comes in, an open source remote desktop tool that I&#8217;m running entirely over the Tailscale network rather than exposing it to the open internet. Since RustDesk traffic rides on top of Tailscale&#8217;s already encrypted mesh, I get full remote desktop access to my homelab machines without opening a single port.</p><p>This combo (Tailscale for the private network, RustDesk for the actual screen access) means I can pull up a full desktop session on any lab machine from basically anywhere, and the attack surface stays exactly where I want it: nowhere on the public internet.</p><h2>Using Tailscale SSH Across My Tailnet</h2><p>Once devices are on the tailnet, Tailscale can also handle <a href="https://tailscale.com/docs/features/tailscale-ssh">SSH</a> directly, no separate key management, no exposed port 22, no fumbling with <code>.ssh/config</code> across a dozen machines.</p><p>Access control lives in Tailscale&#8217;s <a href="https://tailscale.com/docs/reference/examples/acls">ACLs</a> instead of a patchwork of firewall rules. Want to restrict which devices can SSH into which lab machines? That&#8217;s simple a policy.</p><p>For a homelab where I&#8217;m constantly spinning things up and tearing them down, this alone saves a meaningful amount of friction.</p><h2>Secure File Sharing With Taildrop</h2><p>Small feature, genuinely useful: <strong><a href="https://tailscale.com/docs/features/taildrop">Taildrop</a></strong>.</p><p>It lets me send files directly between devices on the tailnet, no cloud upload, no USB drive, no janky SCP command with a path I always mistype. Need to grab a config file off my macbook host onto my Proxmox while I&#8217;m out? Taildrop handles it, encrypted, peer-to-peer, done.</p><p>It&#8217;s not the headline feature, but it&#8217;s the kind of quality-of-life addition that makes the whole setup feel less like a workaround and more like an actual system.</p><h2>Security Considerations for Remote Homelab Access</h2><p>I&#8217;d be doing you a disservice if I didn&#8217;t call out the tradeoffs, because there always are some.</p><p>Tailscale and RustDesk dramatically shrink my attack surface compared to port forwarding, but they don&#8217;t eliminate risk. A few things I&#8217;m keeping in mind:</p><ul><li><p><strong>Identity is the new perimeter.</strong> Tailscale ties device access to your identity provider. If that account gets compromised, the blast radius is your entire tailnet. Multi-factor authentication on that identity provider isn&#8217;t optional.</p></li><li><p><strong>ACLs need actual attention, not defaults.</strong> It&#8217;s tempting to let every device talk to every other device once it&#8217;s all &#8220;private&#8221; anyway. Don&#8217;t. Scope access the same way you would on any internal network. I&#8217;ll make a future issue on that.</p></li><li><p><strong>RustDesk still needs auditing.</strong> Remote desktop access is powerful, which means it&#8217;s also exactly the kind of access an attacker wants if something upstream goes wrong. I&#8217;m treating it the same way I&#8217;d treat any privileged access path in production: logged, reviewed, with MFA and not left on indefinitely.</p></li></ul><p>None of this is a reason to avoid the setup. It&#8217;s a reason to run it the way I&#8217;d want anyone on my team running similar access in a real environment.</p><h2>What I&#8217;m Taking Away From This</h2><p><strong>Setting it up before you need it is clutch.</strong> The whole reason this trip went smoothly is that Tailscale was already running when I needed it. If I&#8217;d waited until I was in a hotel room trying to configure a VPN for the first time, this story would read very differently.</p><p><strong>Convenience and exposure aren&#8217;t the same tradeoff you think they are.</strong> I assumed secure remote access meant sacrificing convenience. Tailscale proved that wrong. The private mesh is often more convenient than the &#8220;exposed&#8221; version ever was.</p><p><strong>Identity-based access beats network-based access almost every time now.</strong> Instead of asking &#8220;what can reach this port,&#8221; I&#8217;m asking &#8220;who is this device, and should it be allowed to talk to that other device?&#8221; That mental shift matters more than any specific tool.</p><p><strong>The best security fix is usually the one that removes the exposure entirely</strong>, not the one that adds another layer on top of it. Zero open ports beats a hardened open port every time.</p><h2>What&#8217;s Next</h2><p>Now that I&#8217;ve seen how well this held up under real-world conditions, I want to push further into how I segment the tailnet itself: tighter ACLs between the Wazuh manager, the endpoints reporting to it, and everything else in the house.</p><p>If something in this house misbehaves while I&#8217;m three states away, I want to still catch it. If it breaks, I want to know why, from wherever I happen to be.</p><p>The homelab keeps getting more capable. Let&#8217;s see where it goes next.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/how-i-access-my-cybersecurity-homelab?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Cyberwox Unplugged! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/how-i-access-my-cybersecurity-homelab?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.cyberwoxunplugged.com/p/how-i-access-my-cybersecurity-homelab?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h1><strong>Interested in sponsoring Cyberwox?</strong></h1><p style="text-align: center;">Sponsoring Cyberwox helps me continue creating practical cybersecurity education, labs, and industry analysis while connecting your brand with a trusted multi-platform audience of 120,000+ cybersecurity practitioners, engineers, students, founders, and technology leaders across the global cyber community on our YouTube, LinkedIn, X, &amp; Substack &#127758;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/sponsorships&quot;,&quot;text&quot;:&quot;Learn More Here &#128640;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.cyberwoxunplugged.com/p/sponsorships"><span>Learn More Here &#128640;</span></a></p><div><hr></div><h1><strong>Until Next Time</strong></h1><p>That&#8217;s it for this one.</p><p>As always, keep learning, keep building, and keep thinking deeply about the systems we&#8217;re trusted to defend.</p><p>See you in the next one.</p><p>~ Day &#128153;</p>]]></content:encoded></item><item><title><![CDATA[Marriage Expanded My Attack Surface]]></title><description><![CDATA[Deploying Wazuh agents across every endpoint in the house: MacBooks, Proxmox, and a Windows box that almost didn&#8217;t make the video.]]></description><link>https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Sat, 01 Aug 2026 11:00:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4971b252-909a-4218-b446-3290afa6231e_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s been about 9 months since my last homelab update. Back in September 2025.</p><p>That&#8217;s insane to say out loud. It&#8217;s July 2026 now.</p><p>Life&#8217;s been a whirlwind though, a good one. I got married. We went on our honeymoon. And somewhere in the middle of planning a wedding for six straight months, the homelab just&#8230; sat there. Dormant. Collecting dust.</p><p>But here&#8217;s the thing: now more than ever, this project matters. Because my wife and I living together has literally expanded our threat surface. New devices, new habits, new attack surface under one roof.</p><p>So this is a two-in-one issue, part homelab, part home security. Time to get this thing back on track.</p><p><strong>The mission:</strong> deploy the <a href="https://wazuh.com/?utm_source=ambassadors&amp;utm_medium=referral&amp;utm_campaign=ambassadors%20program">Wazuh</a> agent across four endpoints (three macOS machines and one Windows box) and make sure I have visibility into every single asset in this house.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Cyberwox Unplugged is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Endpoint 1: The Command Center</h2><p>First up is an old MacBook (M1, Apple Silicon) that used to be my daily driver, before it got demoted to &#8220;random stuff&#8221; duty once I upgraded. Still functional, still useful, so I gave it a new job: <strong>command center for the homelab.</strong></p><p>Everything still runs off the makeshift PC server, where Proxmox lives. But this MacBook is where I access the Wazuh dashboard and manage the whole operation.</p><p>Following the <a href="https://documentation.wazuh.com/current/installation-guide/wazuh-agent/wazuh-agent-package-macos.html">Wazuh macOS install docs</a>, the process is refreshingly simple:</p><ul><li><p>Log into the dashboard, click <strong>Deploy a new agent</strong></p></li><li><p>Confirm the architecture (Apple Silicon vs. Intel)</p></li><li><p>Point it at the manager IP; mine&#8217;s sitting on <code>192.168.1.133</code></p></li><li><p>Name the agent (I went with <strong>cwx-mac-cmd-ctr</strong>)</p></li><li><p>Copy, paste, run</p></li></ul><p>A few minutes later: agent active. To confirm it was actually working, I ran <code>sudo -i</code> to trigger a privileged session, and sure enough, Wazuh flagged it immediately: <em>&#8220;First time user executed sudo.&#8221;</em></p><p>That&#8217;s the whole point of a homelab, honestly. You don&#8217;t just install something and trust it works. You <strong>poke it</strong> until it proves itself.</p><h2>Endpoint 2: The Daily Driver</h2><p>Next up was my actual daily driver, an M4 MacBook, also silicon, also where all my content and work actually happens. Same install flow, new agent name: <strong>cwx-mac-daily-driver</strong></p><p>Ran the same <code>sudo -i</code> test. This time, four events came through: agent connected, agent stopped, agent started, first-time sudo. Clean.</p><p>Two active agents down. Two to go.</p><h2>Endpoint 3: My Wife&#8217;s MacBook (Yes, &#8220;Big Bertha&#8221;)</h2><p>This one came with a small hiccup, a connection refused error that turned out to be a missing <code>https://</code> in the manager address. Classic. Once fixed, the install went smoothly on her M1 MacBook, which (for reasons I will not fully explain in a newsletter) was <em>almost</em> affectionately named <strong>Big Bertha</strong>.</p><p>Same sudo test, same confirmation. Three agents active.</p><h2>Endpoint 4: The Proxmox Node </h2><p>This is the one that actually matters most, the bare-metal node running every virtual machine in the lab. Confirmed it was a Debian-based AMD64 system with <code>uname -m</code>, grabbed the Linux install command, and named it <strong>cwx-proxmox-lab0</strong>, after the lab itself.</p><p>Then it broke.</p><blockquote><p><strong>&#8220;The job for the wazuh-agent service failed because the control process exited with error code.&#8221;</strong><br><strong>&#8220;Invalid server address found for manager IP.&#8221;</strong></p></blockquote><p>Classic homelab moment. Turns out I had previously installed the <strong>Wazuh manager</strong> on this exact node (back when this box briefly played SIEM server), and the config was still pointing at itself instead of the actual manager IP. A quick edit to swap the manager IP field to <code>192.168.1.133</code>, a service reload, and it connected.</p><p>This is the part of homelabbing that never changes, no matter how many years in: <strong>trial and error is still the name of the game.</strong> Every fix teaches you something about how the system actually behaves under the hood, not just how the docs say it should.</p><h2>Endpoint 5 (Sort Of): The Windows Box</h2><p>Last endpoint: a Windows machine I picked up a couple years ago while (half-heartedly) studying for the SANS GCIH cert I never actually took. It&#8217;s been sitting around for VMware experiments and &#8220;special projects&#8221; ever since. Time to put it to work.</p><p>Here&#8217;s where I have to be honest with you: <strong>I goofed.</strong> OBS wasn&#8217;t configured to capture the screen properly, so the actual Windows install didn&#8217;t record. But the process is genuinely this simple:</p><ul><li><p>Copy the install command from the Wazuh dashboard</p></li><li><p>Run it as admin in PowerShell</p></li><li><p>Start the service</p></li></ul><p>And then, don&#8217;t skip this, <strong>install Sysmon.</strong> Raw agent telemetry is good, but Sysmon is what turns &#8220;I have an agent&#8221; into &#8220;I actually have visibility.&#8221; I recommend <a href="https://github.com/olafhartong/sysmon-modular">Olaf Hartong&#8217;s Sysmon-modular config</a>, probably the most useful config out there, or <a href="https://github.com/swiftonsecurity/sysmon-config">SwiftOnSecurity&#8217;s Sysmon config</a> as a solid alternative.</p><h2>What I&#8217;m Taking Away From This</h2><p>A few things stuck with me rewatching this lab session:</p><p><strong>Visibility isn&#8217;t a one-time project; it&#8217;s a maintenance habit.</strong> Nine months of dormancy meant nine months of blind spots. The moment life changes (new house, new person, new devices), your monitoring needs to catch up.</p><p><strong>The &#8220;boring&#8221; fixes are usually config, not code.</strong> Every issue in this session (a missing <code>https://</code>, a stale manager IP left over from an old install) was a five-second fix once I actually read the error message instead of assuming the worst.</p><p><strong>Test every agent the same way you&#8217;d expect a real event to fire.</strong> <code>sudo -i</code> isn&#8217;t glamorous, but it&#8217;s a fast, repeatable way to confirm an agent is actually alive and alerting, not just &#8220;installed.&#8221;</p><h2>What&#8217;s Next?</h2><p>The homelab&#8217;s back. Let&#8217;s see where it goes.</p><p><em>Watch the full episode:</em></p><div id="youtube2-NMxXUwPcvQ4" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;NMxXUwPcvQ4&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/NMxXUwPcvQ4?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Cyberwox Unplugged! This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.cyberwoxunplugged.com/p/the-homelab-is-back-online-and-so?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h1><strong>Interested in sponsoring Cyberwox?</strong></h1><p style="text-align: center;">Sponsoring Cyberwox helps me continue creating practical cybersecurity education, labs, and industry analysis while connecting your brand with a trusted multi-platform audience of 120,000+ cybersecurity practitioners, engineers, students, founders, and technology leaders across the global cyber community on our YouTube, LinkedIn, X, Substack, and Discord &#127758;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/sponsorships&quot;,&quot;text&quot;:&quot;Learn More Here &#128640;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.cyberwoxunplugged.com/p/sponsorships"><span>Learn More Here &#128640;</span></a></p><div><hr></div><h1><strong>Until Next Time</strong></h1><p>That&#8217;s it for this one.</p><p>As always, keep learning, keep building, and keep thinking deeply about the systems we&#8217;re trusted to defend.</p><p>See you in the next one.</p><p>~ Day &#128153;</p>]]></content:encoded></item><item><title><![CDATA[Threat Intelligence Case Study: Dissecting a Multi-Stage Phishing Campaign Against YouTube Creators]]></title><description><![CDATA[They Tried to Hack Me With an &#8216;Undetected&#8217; Malware Loader using Google Drive, Cloudflare, and LOLBins.]]></description><link>https://www.cyberwoxunplugged.com/p/threat-intelligence-case-study-dissecting</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/threat-intelligence-case-study-dissecting</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Tue, 02 Sep 2025 12:00:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b414ad82-f7b4-41d4-b73c-fadc5df1457a_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Phishing has been around since the dawn of email, but it hasn&#8217;t stayed the same.</p><p>What once appeared as clumsy scams with broken English and shady attachments has evolved into sophisticated, multi-layered attacks. Modern attacker campaigns not only deceive users but also utilize legitimate cloud services and Windows tools to blend into regular activity se&#8230;</p>
      <p>
          <a href="https://www.cyberwoxunplugged.com/p/threat-intelligence-case-study-dissecting">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Power Of Cyber Threat Intelligence]]></title><description><![CDATA[Turning Raw Indicators Into Threat Intelligence with ANY.RUN.]]></description><link>https://www.cyberwoxunplugged.com/p/the-power-of-cyber-threat-intelligence</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/the-power-of-cyber-threat-intelligence</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Wed, 27 Aug 2025 12:46:38 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/171532050/2163c4ea3713ee8f7021c0c8b5b0c9c5.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Conflict today doesn&#8217;t just play out on land, sea, or in the air. It&#8217;s expanded into cyberspace. </p><p>Behind every headline of breaches and takedowns are targeted campaigns carried out by methodical, well-resourced threat actors &#8212; each with their motives, tactics, and long-term goals.</p><p>One such group is <strong>Salt Typhoon</strong> (also tracked as <em>FamousSparrow</em> and <em>GhostEmperor</em> depending on the vendor). </p><p>A Chinese nation-state&#8211;backed adversary that has been discovered infiltrating major U.S. telecom networks &#8212; from T-Mobile to Verizon, Samsung, and others.</p><p>Salt Typhoon is known for stealth, patience, and precision. </p><p>They leave behind only faint traces across compromised networks, making it exceptionally difficult for defenders to contain or eradicate their activity.</p><p>That challenge is exactly where <strong>cyber threat intelligence (CTI)</strong> comes in.</p><div><hr></div><h2>From IOCs to Insight</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Axx3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Axx3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!Axx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Generated image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Generated image" title="Generated image" srcset="https://substackcdn.com/image/fetch/$s_!Axx3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!Axx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47df7173-4df3-4c3d-9309-361ec161e956_1536x1024.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Threat intelligence is not just about collecting IOCs (indicators of compromise, such as hashes, IPs, and domains) and feeding them into SIEMs. </p><p>At its best, CTI is about <strong>connecting the dots</strong>: finding patterns across disparate indicators, uncovering infrastructure, profiling adversary behavior, and turning raw data into actionable defense.</p><p>The value lies in the transformation:</p><ul><li><p>From a file hash &#8594; to the malware family behind it.</p></li><li><p>From a suspicious domain &#8594; to the broader C2 network.</p></li><li><p>From isolated alerts &#8594; to an adversary campaign strategy.</p></li></ul><p>When done well, this enables defenders to build more effective detections, strengthen playbooks, automate enrichment, and prioritize risks in line with evolving active threat landscapes.</p><div><hr></div><h1><strong>About Me</strong></h1><p>If you're new here, I'm Day, a Cybersecurity Engineer at Amazon. With five years in cybersecurity, my experience covers Detection Engineering, Cloud Security, Incident Response, Threat Hunting, and most recently, Threat Intelligence.</p><p>Before Amazon, I worked at Datadog as a cloud threat detection engineer, where I researched cloud threats and built detections for various cloud providers and SaaS applications.</p><p>I've worked my way up from various SOC analyst roles, investigating everything from endpoint threats to building detection systems for cloud-based abuse, so I know exactly what it takes to break into this field and make career advancements.</p><p>I started, just like many of you, learning from scratch, asking questions, and figuring it out one step at a time. <strong>And now, I'm here to help you do the same.</strong></p><p>If you want to stay up-to-date on the cybersecurity industry and everything technical and career-related, be sure to like and subscribe to the newsletter for more content like this.</p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iF0v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iF0v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 424w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 848w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 1272w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!iF0v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png" width="1456" height="570" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:570,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188886,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.cyberwoxunplugged.com/i/159067704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F913f1923-04a0-4fe6-afb6-5e0fca6d78b1_2500x2500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!iF0v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 424w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 848w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 1272w, https://substackcdn.com/image/fetch/$s_!iF0v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba71e4f8-2d28-4fd6-9a78-c966708c46a6_2500x979.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Join a vibrant cybersecurity community of over 6,500 people who are constantly engaging in conversations and supporting one another, covering topics from cybersecurity and college to certifications, resume assistance, and various non-professional interests like fitness, finance, anime, and other exciting subjects.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://discord.gg/cyberwoxacademy&quot;,&quot;text&quot;:&quot;Join Us!&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://discord.gg/cyberwoxacademy"><span>Join Us!</span></a></p><div><hr></div><h2>Applying CTI in Practice</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zraM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zraM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!zraM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!zraM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!zraM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!zraM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Generated image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Generated image" title="Generated image" srcset="https://substackcdn.com/image/fetch/$s_!zraM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!zraM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!zraM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!zraM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98a3f83f-688c-453c-bf11-bac3b7c8a0a2_1024x1024.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a Security Engineer at Amazon, I&#8217;ve had the opportunity to use threat intelligence at scale. </p><p>But CTI isn&#8217;t just for enterprise SOCs. With the right tools, individual analysts and researchers can explore and learn from the same adversary tradecraft.</p><p>For this issue, I investigated <strong>Salt Typhoon</strong> using ANY.RUN&#8217;s Threat Intelligence Platform. It blends <strong>interactive sandboxing</strong> (their signature strength) with curated intelligence and lookup capabilities. Here&#8217;s what that looks like in practice:</p><ul><li><p><strong>Starting with a handful of IOCs</strong>, such as an IP address, a SHA-256 hash, or a domain name.</p></li><li><p><strong>Pivoting into reports</strong> &#8594; correlating with published research from vendors like Trend Micro.</p></li><li><p><strong>Interactive detonation</strong> &#8594; running suspicious files in a sandbox, observing process creation, persistence mechanisms, and outbound C2 calls.</p></li><li><p><strong>Hunting for connections</strong> &#8594; mapping behaviors against known TTPs and extracting new indicators.</p></li><li><p><strong>YARA integration</strong> &#8594; building and running rules directly in the platform to surface related artifacts.</p></li></ul><p>What begins as a single suspicious hash quickly expands into a narrative: a Trojan is dropped, a service is created for persistence, reconnaissance of the host is conducted, and finally, communication with a C2 domain occurs.</p><div><hr></div><h2>Why It Matters</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FWa0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FWa0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!FWa0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Generated image&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Generated image" title="Generated image" srcset="https://substackcdn.com/image/fetch/$s_!FWa0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 424w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 848w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!FWa0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f9f759f-63b3-4fd4-997e-584e9f0f3b09_1024x1024.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The power of CTI lies in turning <strong>fragments into a story</strong>. </p><p>Instead of drowning in endless IOCs, analysts can contextualize activity, link it to known actors, and anticipate what might come next.</p><p>In this case, a few scattered data points around Salt Typhoon transformed into a clearer picture of:</p><ul><li><p>Their infrastructure choices</p></li><li><p>Their persistence techniques</p></li><li><p>Their reconnaissance behavior</p></li><li><p>Their communication patterns</p></li></ul><p>With that knowledge, defenders can proactively hunt for related TTPs in their environments or simulate adversary behavior to test defenses.</p><div class="pullquote"><p><em><strong>ANY.RUN Threat Intelligence</strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QHnK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QHnK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 424w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 848w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 1272w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 1456w" sizes="auto, 100vw"><img src="https://substackcdn.com/image/fetch/$s_!QHnK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png" width="1456" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/caf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22296,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.cyberwoxunplugged.com/i/159067704?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!QHnK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 424w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 848w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 1272w, https://substackcdn.com/image/fetch/$s_!QHnK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcaf355a3-b7d7-45c4-8613-5c0bd4277ffa_1600x500.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This issue is powered by ANY.RUN, which sponsored this deep dive. ANY.RUN makes it easy to turn raw indicators into actionable intelligence without needing to set up your own lab environment. If you&#8217;re serious about developing threat intelligence skills, it&#8217;s worth checking out.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://bit.ly/cwx-anyrun-threat-intelligence-lookup&quot;,&quot;text&quot;:&quot;&#128640;Unlock (free) ANY.RUN Threat Intel&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://bit.ly/cwx-anyrun-threat-intelligence-lookup"><span>&#128640;Unlock (free) ANY.RUN Threat Intel</span></a></p></div><h1>Closing</h1><p>What began as a file hash and a suspicious domain evolved into a broader narrative about Salt Typhoon&#8217;s operations. That&#8217;s the heart of cyber threat intelligence: transforming raw signals into stories that defenders can act on.</p><p>If you&#8217;re early in your cybersecurity journey, practice this workflow yourself:</p><ul><li><p>Begin with a known IOC from a publicly available report.</p></li><li><p>Pivot into related domains, files, and hashes.</p></li><li><p>Map the TTPs you discover against frameworks like MITRE ATT&amp;CK.</p></li><li><p>Build detections or run hunts based on your findings.</p></li></ul><p>That&#8217;s how you transition from merely &#8220;consuming&#8221; intel to&nbsp;<strong>generating actionable intelligence</strong>&nbsp;&#8212; a skill that grows from home labs to Fortune 500 SOCs.</p><p>Here&#8217;s a video that can help you do that:</p><div id="youtube2-A0r6A7kWD58" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;A0r6A7kWD58&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/A0r6A7kWD58?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p>Thanks for reading Cyberwox Unplugged! This post is public, so feel free to share it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.cyberwoxunplugged.com/p/the-power-of-cyber-threat-intelligence?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.cyberwoxunplugged.com/p/the-power-of-cyber-threat-intelligence?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why I’m Building a New Cybersecurity Homelab ]]></title><description><![CDATA[Five Years Later!]]></description><link>https://www.cyberwoxunplugged.com/p/why-im-building-a-new-cybersecurity</link><guid isPermaLink="false">https://www.cyberwoxunplugged.com/p/why-im-building-a-new-cybersecurity</guid><dc:creator><![CDATA[Day Johnson]]></dc:creator><pubDate>Fri, 22 Aug 2025 12:03:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f1ae16ec-e503-41e5-8bd3-4ce65b325387_1280x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Five years ago, I was just a curious college freshman with a few spare computer parts, a lot of Google searches, and a dream of breaking into cybersecurity. </p><p>That spark led me to build my very first homelab in a small apartment bedroom. No mentors, no structured guidance, just curiosity and trial-and-error.</p><p>That project changed everything. It was the firs&#8230;</p>
      <p>
          <a href="https://www.cyberwoxunplugged.com/p/why-im-building-a-new-cybersecurity">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>