<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 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">
  <channel>
    <title>CHAMBERLAIN\IO</title>
    <link>https://chamberlain.io/</link>
    <description>...jack of a few trades, master of none...</description>
    <language>en</language>
    <atom:link href="https://chamberlain.io/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Stop Training Models. Start Thinking About Token Economics</title>
      <link>https://chamberlain.io/ai-cyber-strategy/</link>
      <guid isPermaLink="true">https://chamberlain.io/ai-cyber-strategy/</guid>
      <pubDate>Mon, 16 Feb 2026 20:57:08 +0000</pubDate>
      <dc:creator>Cody Chamberlain</dc:creator>
      <description>Why the real AI moat in cybersecurity isn&#x27;t the model — it&#x27;s how you use it. There&#x27;s a conversation happening in cybersecurity boardrooms that needs a hard reset. Too many mid-market and startup security companies are still talking about AI like it&#x27;s</description>
      <content:encoded><![CDATA[<h2 id="why-the-real-ai-moat-in-cybersecurity-isnt-the-model-%E2%80%94-its-how-you-use-it">Why the real AI moat in cybersecurity isn't the model — it's how you use it.</h2><hr><p>There's a conversation happening in cybersecurity boardrooms that needs a hard reset.</p><p>Too many mid-market and startup security companies are still talking about AI like it's 2022 — debating whether to train their own models, hire ML engineers, and build proprietary LLMs. Meanwhile, the hyperscalers are spending tens of billions of dollars a year on foundation model development. Anthropic, OpenAI, Google, Meta — these companies are in a capital expenditure arms race that no $50M-revenue security vendor is going to win. Or even compete in.</p><p>And they shouldn't try.</p><p>The real opportunity for cybersecurity companies isn't in building models. It's in <em>using</em> them with ruthless economic precision.</p><hr><h2 id="the-pentest-team-analogy">The Pentest Team Analogy</h2><p>Think about how a penetration testing engagement actually works. You don't put your most experienced red teamer on port scans. You don't have your principal consultant running Nmap against ten thousand hosts. That would be an absurd misallocation of talent and cost.</p><p>Instead, you tier the work. Junior analysts handle enumeration and reconnaissance. Mid-level testers run structured exploit attempts and analyze scan output. Senior consultants synthesize findings, identify attack chains, make judgment calls about lateral movement, and determine what to pursue next.</p><p>This isn't just an efficiency play. It's how you get the best results. Each tier is operating where their capabilities matter most.</p><p>AI models work the same way. And cybersecurity companies should be designing their architectures accordingly.</p><hr><h2 id="the-tiered-model-architecture">The Tiered Model Architecture</h2><p>Here's what this looks like in practice for something like autonomous penetration testing:</p><p><strong>The strategist — expensive reasoning models.</strong> Models like Claude Opus handle the high-stakes cognitive work. They plan attack paths, chain findings across hosts and services, decide when to pivot, interpret ambiguous results, and make risk-weighted decisions about resource allocation. This is the senior consultant. You pay a premium, and you use them sparingly on the decisions that actually change outcomes.</p><p><strong>The analyst — mid-tier models.</strong> Models like Claude Sonnet handle semi-structured analysis. Parsing scan output. Classifying vulnerabilities against known CVEs. Writing targeted exploit code. Correlating findings from different tools and phases. This is your experienced mid-level tester — capable, reliable, and significantly cheaper per token than the reasoning tier.</p><p><strong>The operator — lightweight, fast models.</strong> Models like Claude Haiku or purpose-built small models handle high-volume, repetitive execution. Banner grabbing. Fuzzing parameter generation. Log parsing. Formatting enumeration results. This is where the majority of computational work happens, and it can run at a fraction of the cost.</p><p>The economics are stark. If your reasoning model costs 10-15x what a lightweight model costs per token, and roughly 80% of your workload is repetitive task execution, you're looking at the difference between an autonomous test that costs $500 in compute and one that costs $50. At scale, that's the difference between a viable product and a science project.</p><hr><h2 id="this-is-a-strategy-question-not-a-technical-one">This Is a Strategy Question, Not a Technical One</h2><p>The mistake I see companies making isn't technical. It's strategic.</p><p>There's a gravitational pull toward the idea that AI differentiation means model differentiation. That you need your own foundation model, your own training pipeline from scratch, your own proprietary weights to have something defensible. For the vast majority of cybersecurity companies, that's a losing bet against organizations spending tens of billions on the problem.</p><p>But here's the nuance that gets lost in the "build vs. buy" debate: <strong>there's a massive middle ground between training a foundation model and using one off the shelf.</strong></p><p>Techniques like LoRA (Low-Rank Adaptation) let you take a capable hyperscaler model and fine-tune it with domain-specific expertise at a fraction of the cost of full training. If you have years of penetration testing data — successful attack chains, exploitation techniques, the subtle pattern recognition that separates a good pentester from a great one — you can inject that expertise into an existing model without starting from scratch.</p><p>This is the real exception to the "don't train models" argument. You're not competing with the hyperscalers on general intelligence. You're standing on their shoulders and adding a layer of specialized knowledge that they'll never prioritize building themselves. A foundation model doesn't know the difference between a textbook SQL injection and the kind of chained, context-dependent exploitation that an experienced red teamer spots instinctively. But a LoRA-adapted model trained on real engagement data? That starts to close the gap.</p><p>The cost profile is compelling too. Full model training might run millions of dollars. A LoRA fine-tune on domain-specific data can cost orders of magnitude less while producing meaningful performance improvements on the tasks that actually matter for your product.</p><p>So the strategic picture has two layers. First, <strong>orchestration intelligence</strong> — the ability to decompose complex security workflows into tasks, route each task to the right model tier, and coordinate the results into something that's greater than the sum of its parts. Second, <strong>domain-adapted models</strong> — using techniques like LoRA to make the models at each tier meaningfully better at cybersecurity-specific tasks than their generic counterparts.</p><p>Think about what both of these require. Deep domain expertise in the actual security workflow. Understanding which decisions are high-stakes versus routine. Building tooling, integrations, and feedback loops. And curating the specialized data that makes fine-tuning actually work.</p><p>None of that comes from training a foundation model. All of it is something a focused cybersecurity company is uniquely positioned to build.</p><hr><h2 id="the-vulnerability-management-connection">The Vulnerability Management Connection</h2><p>This gets even more interesting when you connect the orchestration layer to existing security intelligence.</p><p>If you already have a vulnerability management platform that identifies, prioritizes, and tracks vulnerabilities across an environment, you have something incredibly valuable: <em>context</em>. Your AI-driven testing system doesn't need to spend expensive reasoning tokens rediscovering the attack surface from scratch. It inherits a prioritized view of where to focus.</p><p>The reasoning model's budget of expensive tokens gets allocated to the decisions that actually matter — evaluating whether a chain of medium-severity findings creates a critical attack path, or determining whether a particular configuration weakness is exploitable in this specific environment. The cheap models handle the grunt work of validating individual findings at scale.</p><p>This is where the compounding advantage lives. The more context you feed into the orchestration layer, the more efficiently you can allocate model resources, and the better your results get per dollar spent.</p><hr><h2 id="what-this-means-for-the-market">What This Means for the Market</h2><p>If I'm right about this, a few things follow.</p><p><strong>Cybersecurity companies should stop hiring ML engineers to train foundation models and start hiring AI engineers who understand both token economics and domain adaptation.</strong> The skill set that matters isn't "can you build a transformer from scratch." It's "can you design a system that orchestrates model tiers efficiently, and can you fine-tune those models with LoRA to be genuinely better at security tasks than anything a hyperscaler will ship out of the box."</p><p><strong>Investors should be skeptical of cybersecurity startups claiming model differentiation — but should pay attention to domain adaptation strategies.</strong> If a company is just wrapping a foundation model API, that's thin differentiation. But if they're combining intelligent orchestration with LoRA-adapted models trained on real security engagement data, that's a meaningful and defensible technical moat. The question to ask isn't just "how are you using AI?" It's "what domain-specific data flywheel are you building that makes your models get better over time?"</p><p><strong>The hyperscalers will keep making models better and cheaper.</strong> That's a tailwind, not a threat, for companies building on top of them. Every improvement in model capability and every reduction in token cost makes your orchestration layer more valuable, not less. You're surfing someone else's R&amp;D curve.</p><p><strong>The winners will be companies that treat AI compute like a managed resource, not a fixed cost.</strong> Just like cloud computing moved from "buy a server" to sophisticated resource management, AI usage will move from "call the API" to intelligent orchestration that dynamically allocates model resources based on task complexity, cost constraints, and quality requirements.</p><hr><h2 id="the-bottom-line">The Bottom Line</h2><p>The AI revolution in cybersecurity isn't going to be won by whoever builds the best foundation model. It's going to be won by whoever builds the best system for <em>using</em> models — and for making them smarter in their specific domain. The companies that understand token economics, respect the tiering, invest in domain adaptation through techniques like LoRA, and focus their engineering effort on the orchestration layer that turns general intelligence into domain-specific excellence.</p><p>Stop trying to compete with the hyperscalers on building foundation models. Start building the intelligence and adaptation layers that make their models work harder — and smarter — for your customers.</p><p>That's where the real moat is.</p>]]></content:encoded>
    </item>
    <item>
      <title>iCloud Custom Domains Ship with Broken Email Security — Here’s How to Fix It</title>
      <link>https://chamberlain.io/icloud-custom-domains-ship-with-broken-email-security-heres-how-to-fix-it/</link>
      <guid isPermaLink="true">https://chamberlain.io/icloud-custom-domains-ship-with-broken-email-security-heres-how-to-fix-it/</guid>
      <pubDate>Sun, 15 Feb 2026 21:27:00 +0000</pubDate>
      <dc:creator>Cody Chamberlain</dc:creator>
      <description>Apple makes it easy to use a custom domain with iCloud Mail. The setup wizard walks you through adding MX records, an SPF record, a DKIM CNAME, and a DMARC policy to your DNS. The defaults are designed to be safe and non-disruptive during initial setup — but if you</description>
      <content:encoded><![CDATA[<p>Apple makes it easy to use a custom domain with iCloud Mail. The setup wizard walks you through adding MX records, an SPF record, a DKIM CNAME, and a DMARC policy to your DNS. The defaults are designed to be safe and non-disruptive during initial setup — but if you never go back and tighten them, your domain is left open to spoofing.</p><p>I found this out when I received a spoofed email — from myself, to myself — that landed directly in my inbox. Every authentication check failed, and yet it was delivered without being flagged as junk.</p><p>Here’s what happened, why it happened, and how to fix it in about two minutes.</p><h2 id="the-attack">The Attack</h2><p>I received an email that appeared to come from my own address at my custom domain. The subject line was a random string. The body contained a short numeric string and a massive tracking pixel — likely a probe to confirm my email address was active and being read.</p><p>Digging into the headers told the full story. The email originated from a Linode IP (<code>173.255.231.177</code>), authenticated to a compromised Bluehost shared hosting account (<code>admin@misamajic.com</code>), and was relayed through Proofpoint's Cloudfilter infrastructure into iCloud. The attacker simply set my email address as both the envelope sender and the&nbsp;<code>From:</code>&nbsp;header. That's it. No sophisticated exploit — just typing someone else's address into the "from" field and hitting send.</p><h2 id="icloud-detected-it-%E2%80%94-but-couldn%E2%80%99t-act-on-it">iCloud Detected It — But Couldn’t Act on It</h2><p>Here’s where it gets interesting. iCloud’s mail infrastructure did detect the fraud. The headers showed the full picture:</p><ul><li><strong>SPF:</strong>&nbsp;softfail — the sending server wasn’t authorized for my domain</li><li><strong>DKIM:</strong>&nbsp;none — no signature present at all</li><li><strong>DMARC:</strong>&nbsp;fail — failed alignment on both SPF and DKIM</li><li><strong>ARC:</strong>&nbsp;fail</li><li><strong>Spam score:</strong>&nbsp;4.42, flagged as&nbsp;<code>X-Spam-Flag: yes</code>&nbsp;and&nbsp;<code>X-Suspected-Spam: true</code></li></ul><p>Every single authentication check failed, and iCloud’s own systems correctly scored this as spam. However, two additional headers appeared that changed the outcome:</p><pre><code>X-ICLOUD-MAIL-BWL: 1
X-Apple-Action: WL/INBOX</code></pre><p>A whitelist rule — likely triggered because the “from” address matched my own iCloud custom domain — moved the message to my inbox. Because my DMARC policy was set to&nbsp;<code>p=none</code>, iCloud had no authorization from my DNS records to reject or quarantine the message based on the authentication failures alone.</p><h2 id="the-root-cause-apple%E2%80%99s-default-dns-configuration">The Root Cause: Apple’s Default DNS Configuration</h2><p>When you set up a custom domain in iCloud Mail, Apple provides specific DNS records to add. Here’s what they recommend for SPF and DMARC:</p><p><strong>Apple’s default SPF:</strong></p><pre><code>v=spf1 include:icloud.com ~all</code></pre><p><strong>Apple’s default DMARC:</strong></p><pre><code>v=DMARC1; p=none; rua=mailto:&lt;your-report-address&gt;</code></pre><p>Both of these are intentionally permissive.</p><p>The SPF record uses&nbsp;<code>~all</code>&nbsp;(soft fail), which tells receiving servers: "If the sender isn't authorized, mark it as suspicious but don't reject it." The DMARC policy is set to&nbsp;<code>p=none</code>, which tells receiving servers: "Even if authentication fails, don't take any action — just send me a report."</p><p>This is standard practice for initial email setup. The&nbsp;<code>p=none</code>&nbsp;DMARC policy is meant to be a monitoring phase — you collect reports, verify that all your legitimate mail is authenticating properly, and then tighten the policy once you're confident everything is working. The gap is that the setup process doesn't guide you through that second step. There's no follow-up prompt in iCloud settings, no reminder to revisit your DMARC policy after a monitoring period, and no indication that your domain is still operating in monitor-only mode.</p><p>If you set it and forget it — which is easy to do when everything appears to be working — your domain remains open to spoofing indefinitely.</p><h2 id="how-to-fix-it">How to Fix It</h2><p>If you’re running a custom domain on iCloud Mail, you need to change two DNS records. If you’re only sending email through iCloud Mail (not using third-party services like Mailchimp, SendGrid, or a CRM), these changes are safe to make immediately.</p><h2 id="1-harden-your-spf-record">1. Harden Your SPF Record</h2><p>Change the&nbsp;<code>~all</code>&nbsp;to&nbsp;<code>-all</code>:</p><p><strong>Before:</strong></p><pre><code>v=spf1 include:icloud.com ~all</code></pre><p><strong>After:</strong></p><pre><code>v=spf1 include:icloud.com -all</code></pre><p>The&nbsp;<code>-all</code>&nbsp;(hard fail) tells receiving servers to reject mail from unauthorized senders outright, rather than just flagging it as suspicious.</p><h2 id="2-enforce-your-dmarc-policy">2. Enforce Your DMARC Policy</h2><p>Change&nbsp;<code>p=none</code>&nbsp;to&nbsp;<code>p=reject</code>:</p><p><strong>Before:</strong></p><pre><code>v=DMARC1; p=none; rua=mailto:&lt;your-report-address&gt;</code></pre><p><strong>After:</strong></p><pre><code>v=DMARC1; p=reject; rua=mailto:&lt;your-report-address&gt;</code></pre><p>This is the big one. With&nbsp;<code>p=reject</code>, any email that fails DMARC authentication — meaning it fails both SPF and DKIM alignment — will be rejected by the receiving server. The spoofed email I received would never have made it past the gateway.</p><p>If you want to be cautious, you can use&nbsp;<code>p=quarantine</code>&nbsp;first, which sends failures to the spam/junk folder instead of rejecting them outright. Run that for a week or two while monitoring your DMARC reports, then move to&nbsp;<code>p=reject</code>&nbsp;once you're confident nothing legitimate is getting caught.</p><h2 id="3-verify-dkim-is-working">3. Verify DKIM Is Working</h2><p>Apple handles DKIM signing automatically when you send through iCloud Mail. You should already have a CNAME record like this:</p><pre><code>sig1._domainkey.&lt;yourdomain&gt; → sig1.dkim.&lt;yourdomain&gt;.at.icloudmailadmin.com</code></pre><p>You can verify it’s working by sending yourself an email from your custom domain to a Gmail address and checking the headers — you should see&nbsp;<code>dkim=pass</code>&nbsp;in the&nbsp;<code>Authentication-Results</code>.</p><h2 id="why-this-matters">Why This Matters</h2><p>Email spoofing isn’t just about spam. A spoofed email from your domain can be used for phishing attacks against your contacts, business email compromise, or simply to confirm that your address is active for future targeting. The tracking pixel in the email I received suggests the latter — someone was building a list of verified, actively-monitored email addresses.</p><p>With proper SPF and DMARC enforcement, spoofed mail gets rejected before it ever reaches a recipient’s inbox. Without it, you’re relying entirely on the receiving server’s spam heuristics — and as I discovered, those heuristics can be overridden by well-intentioned but poorly-implemented whitelist rules.</p><h2 id="room-for-improvement">Room for Improvement</h2><p>This isn’t unique to Apple — most email providers default to permissive settings during initial custom domain setup to avoid breaking legitimate mail flow. It’s a reasonable starting point. The opportunity is in what comes after.</p><p>Apple is well-positioned to improve this experience because they control both the setup guidance and the receiving mail infrastructure. A few things that would help:</p><ul><li><strong>A follow-up prompt</strong>&nbsp;after a monitoring period (30–60 days) suggesting users tighten their DMARC policy to&nbsp;<code>p=quarantine</code>&nbsp;or&nbsp;<code>p=reject</code></li><li><strong>A security health indicator</strong>&nbsp;in iCloud Mail settings showing the current state of SPF, DKIM, and DMARC for your custom domain</li><li><strong>Stricter handling of self-addressed mail</strong>&nbsp;that fails authentication, even when the DMARC policy is permissive</li></ul><p>The fix on the user side is simple — two DNS record changes that take less than a minute. But most people using iCloud custom domains aren’t email security specialists. Making the path from monitoring to enforcement more obvious would go a long way.</p><p>In the meantime, check your DNS records.</p>]]></content:encoded>
    </item>
    <item>
      <title>Running Metasploitable3 on Proxmox: A Step-by-Step Guide</title>
      <link>https://chamberlain.io/running-metasploitable3-on-proxmox-a-step-by-step-guide/</link>
      <guid isPermaLink="true">https://chamberlain.io/running-metasploitable3-on-proxmox-a-step-by-step-guide/</guid>
      <pubDate>Tue, 20 Jan 2026 21:25:00 +0000</pubDate>
      <dc:creator>Cody Chamberlain</dc:creator>
      <description>Introduction

Metasploitable3 is an intentionally vulnerable virtual machine designed for security training and penetration testing practice. While the official build process uses Vagrant and VirtualBox, many security professionals prefer running their lab environments on Proxmox for better resource management and isolation.

This guide shows you how to get Metasploitable3 running</description>
      <content:encoded><![CDATA[<h3 id="introduction">Introduction</h3><p>Metasploitable3 is an intentionally vulnerable virtual machine designed for security training and penetration testing practice. While the official build process uses Vagrant and VirtualBox, many security professionals prefer running their lab environments on Proxmox for better resource management and isolation.</p><p>This guide shows you how to get Metasploitable3 running on Proxmox without installing VirtualBox — perfect for headless servers or systems where VirtualBox isn’t compatible.</p><figure class="kg-card kg-image-card"><img src="/content/images/metasploitable3-proxmox.png" class="kg-image" alt="" loading="lazy" width="3600" height="2260"></figure><h3 id="why-this-approach">Why This Approach?</h3><p>The traditional Metasploitable3 setup requires:</p><ul><li>VirtualBox (often conflicts with other hypervisors)</li><li>Vagrant for building</li><li>Time-consuming build process (30–60 minutes)</li></ul><p>Our method:</p><ul><li>✅ No VirtualBox installation needed</li><li>✅ Works on any Linux system with Vagrant</li><li>✅ Downloads pre-built images (faster)</li><li>✅ Direct import to Proxmox</li></ul><h3 id="prerequisites">Prerequisites</h3><ul><li>A Linux machine for downloading the images (doesn’t need to be Proxmox)</li><li>Proxmox VE server with available storage</li><li>SSH access to your Proxmox server</li><li>~2.5 GB disk space for the download</li><li>Basic familiarity with command line</li></ul><h3 id="step-1-install-vagrant">Step 1: Install&nbsp;Vagrant</h3><p>On your Linux machine (I used Debian testing, but this works on Ubuntu, Fedora, etc.):</p><pre><code class="language-bash"># Download Vagrant
wget https://releases.hashicorp.com/vagrant/2.4.1/vagrant_2.4.1-1_amd64.deb

# Install it
sudo dpkg -i vagrant_2.4.1-1_amd64.deb

# Fix any dependency issues
sudo apt --fix-broken install

# Verify installation
vagrant --version</code></pre><h3 id="step-2-download-the-metasploitable3-box">Step 2: Download the Metasploitable3 Box</h3><pre><code class="language-bash"># Create a workspace
mkdir ~/metasploitable3-workspace
cd ~/metasploitable3-workspace

# Download the pre-built Ubuntu box
vagrant box add rapid7/metasploitable3-ub1404</code></pre><p>When prompted, select option&nbsp;<strong>1</strong>&nbsp;(virtualbox). Don’t worry — you don’t need VirtualBox installed; we just want to download the box file.</p><p><strong>Note:</strong>&nbsp;There’s also a Windows Server 2008 version available (<code>rapid7/metasploitable3-win2k8</code>), but the Ubuntu version is more commonly used and easier to work with.</p><h3 id="step-3-extract-the-vm-files">Step 3: Extract the VM&nbsp;Files</h3><p>The downloaded box contains the VMDK and OVF files we need:</p><pre><code class="language-bash"># Navigate to the downloaded box
cd ~/.vagrant.d/boxes/rapid7-VAGRANTSLASH-metasploitable3-ub1404

# Check the version (yours may differ)
ls -la

# Go into the virtualbox directory
cd 0.1.12-weekly/virtualbox  # Version number may vary

# List the files
ls -la</code></pre><p>You should see:</p><ul><li><code>box.ovf</code>&nbsp;- VM configuration file</li><li><code>metasploitable3-ub1404-disk001.vmdk</code>&nbsp;- Virtual hard disk (~2.1 GB)</li><li><code>Vagrantfile</code>&nbsp;- Vagrant configuration (not needed)</li><li><code>metadata.json</code>&nbsp;- Box metadata (not needed)</li></ul><h3 id="step-4-transfer-files-to-proxmox">Step 4: Transfer Files to&nbsp;Proxmox</h3><p>Copy the OVF and VMDK files to your Proxmox server:</p><pre><code class="language-bash"># Replace &lt;proxmox-ip&gt; with your Proxmox server's IP address
scp box.ovf metasploitable3-ub1404-disk001.vmdk root@&lt;proxmox-ip&gt;:/tmp/</code></pre><p>Example:</p><pre><code class="language-bash">scp box.ovf metasploitable3-ub1404-disk001.vmdk root@192.168.1.100:/tmp/</code></pre><h3 id="step-5-import-to-proxmox">Step 5: Import to&nbsp;Proxmox</h3><p>SSH into your Proxmox server:</p><pre><code class="language-bash">ssh root@&lt;proxmox-ip&gt;</code></pre><p>Navigate to the temp directory and import:</p><pre><code class="language-bash">cd /tmp

# Choose an available VM ID (check your Proxmox web UI)
# Replace &lt;vmid&gt; with something like 100, 101, 102, etc.

# Import the OVF configuration
qm importovf &lt;vmid&gt; box.ovf local-lvm

# Import and convert the disk to qcow2
qm importdisk &lt;vmid&gt; metasploitable3-ub1404-disk001.vmdk local-lvm -format qcow2</code></pre><p>Example with VM ID 100:</p><pre><code class="language-bash">qm importovf 100 box.ovf local-lvm
qm importdisk 100 metasploitable3-ub1404-disk001.vmdk local-lvm -format qcow2</code></pre><p><strong>Note:</strong>&nbsp;If you’re using a different storage pool (not&nbsp;<code>local-lvm</code>), replace it with your storage name.</p><h3 id="step-6-configure-the-vm-critical">Step 6: Configure the VM (Critical!)</h3><p>Open your Proxmox web interface and navigate to your new VM. These configuration changes are&nbsp;<strong>essential</strong>&nbsp;for the VM to boot properly:</p><h3 id="1-attach-the-imported-disk">1. Attach the Imported&nbsp;Disk</h3><ul><li>Go to&nbsp;<strong>Hardware</strong>&nbsp;tab</li><li>You’ll see “Unused Disk 0”</li><li>Double-click it (or select and click Edit)</li><li>Click&nbsp;<strong>Add</strong>&nbsp;to attach it</li></ul><h3 id="2-change-scsi-controller-critical">2. Change SCSI Controller (CRITICAL!)</h3><p>This is the most important step — VirtIO SCSI will cause boot failures:</p><ul><li>Select&nbsp;<strong>SCSI Controller</strong></li><li>Click&nbsp;<strong>Edit</strong></li><li>Change from “VirtIO SCSI” to&nbsp;<strong>“LSI 53C895A”</strong></li><li>Click&nbsp;<strong>OK</strong></li></ul><p>Without this change, you’ll get boot errors like “dev/mapper/metasploitable-root doesn’t exist”</p><h3 id="3-set-boot-order">3. Set Boot&nbsp;Order</h3><ul><li>Go to&nbsp;<strong>Options</strong>&nbsp;tab</li><li>Select&nbsp;<strong>Boot Order</strong></li><li>Click&nbsp;<strong>Edit</strong></li><li>Enable only the SCSI disk</li><li>Move it to first position</li><li>Click&nbsp;<strong>OK</strong></li></ul><h3 id="4-configure-network-security-important">4. Configure Network (Security Important!)</h3><p><strong>⚠️ WARNING:</strong>&nbsp;Metasploitable3 is intentionally vulnerable. NEVER expose it to the internet or your production network.</p><ul><li>Go to&nbsp;<strong>Hardware</strong>&nbsp;tab</li><li>Select&nbsp;<strong>Network Device</strong></li><li>Click&nbsp;<strong>Edit</strong></li><li>Options:<ul><li>Use an isolated internal network/VLAN</li><li>Or create a dedicated “pentest” bridge</li><li>Or set to “No network device” if you’ll only access via console</li></ul></li></ul><h3 id="5-optional-adjust-resources">5. Optional: Adjust Resources</h3><p>The default settings are usually fine, but you can adjust:</p><ul><li><strong>Memory:</strong>&nbsp;2048 MB (2 GB) is recommended</li><li><strong>Processors:</strong>&nbsp;2 cores is plenty</li><li><strong>Display:</strong>&nbsp;Default (keep it)</li></ul><h3 id="step-7-start-the-vm">Step 7: Start the&nbsp;VM</h3><ul><li>Click&nbsp;<strong>Start</strong>&nbsp;in the Proxmox interface</li><li>Open the&nbsp;<strong>Console</strong></li><li>Watch it boot (takes 30–60 seconds)</li></ul><h3 id="step-8-login">Step 8:&nbsp;Login</h3><p>Default credentials:</p><ul><li><strong>Username:</strong>&nbsp;<code>vagrant</code></li><li><strong>Password:</strong>&nbsp;<code>vagrant</code></li></ul><p>Once logged in, you can verify the system:</p><pre><code class="language-bash"># Check the hostname
hostname

# Check IP address
ip addr show

# List vulnerable services
sudo netstat -tulpn</code></pre><h3 id="security-best-practices">Security Best Practices</h3><ol><li><strong>Network Isolation:</strong>&nbsp;Run Metasploitable3 on an isolated network segment</li><li><strong>Firewall Rules:</strong>&nbsp;Block any outbound internet access</li><li><strong>Snapshot Before Use:</strong>&nbsp;Take a Proxmox snapshot before each testing session</li><li><strong>Regular Cleanup:</strong>&nbsp;Delete when not in use</li><li><strong>Access Control:</strong>&nbsp;Limit who can access your Proxmox server</li><li><strong>No Sensitive Data:</strong>&nbsp;Never store real data on Metasploitable3</li></ol><h3 id="troubleshooting">Troubleshooting</h3><h3 id="vm-won%E2%80%99t-boot-gets-stuck">VM Won’t Boot / Gets&nbsp;Stuck</h3><p><strong>Problem:</strong>&nbsp;Boot hangs or shows “dev/mapper/metasploitable-root doesn’t exist”</p><p><strong>Solution:</strong>&nbsp;You forgot to change the SCSI controller! Go back to Step 6.2 and change it to LSI 53C895A.</p><h3 id="can%E2%80%99t-connect-to-network">Can’t Connect to&nbsp;Network</h3><p><strong>Problem:</strong>&nbsp;VM boots but has no network connectivity</p><p><strong>Solution:</strong></p><ul><li>Check that network device is properly configured</li><li>Verify bridge/VLAN settings in Proxmox</li><li>Inside the VM, check:&nbsp;<code>ip addr show</code></li></ul><h3 id="import-fails-with-storage-error">Import Fails with Storage&nbsp;Error</h3><p><strong>Problem:</strong>&nbsp;<code>qm importovf</code>&nbsp;or&nbsp;<code>qm importdisk</code>&nbsp;fails with storage errors</p><p><strong>Solution:</strong></p><ul><li>Verify you have enough free space:&nbsp;<code>pvesm status</code></li><li>Check storage name is correct (might not be&nbsp;<code>local-lvm</code>)</li><li>Try using a different storage pool</li></ul><h3 id="slow-performance">Slow Performance</h3><p><strong>Problem:</strong>&nbsp;VM is sluggish or unresponsive</p><p><strong>Solution:</strong></p><ul><li>Increase RAM to 2–4 GB</li><li>Add another CPU core</li><li>Ensure Proxmox host isn’t overloaded</li></ul><h3 id="what%E2%80%99s-next">What’s Next?</h3><p>Now that you have Metasploitable3 running, you can:</p><ul><li>Practice with&nbsp;<strong>Metasploit Framework</strong></li><li>Test&nbsp;<strong>Nmap</strong>&nbsp;scanning techniques</li><li>Explore&nbsp;<strong>web application vulnerabilities</strong></li><li>Practice&nbsp;<strong>privilege escalation</strong></li><li>Learn&nbsp;<strong>exploit development</strong></li></ul><p>Popular vulnerable services in Metasploitable3:</p><ul><li>UnrealIRCd (backdoor)</li><li>ProFTPD (various exploits)</li><li>Samba/SMB (multiple vulnerabilities)</li><li>Apache/PHP (web vulnerabilities)</li><li>MySQL (weak credentials)</li><li>Docker (privilege escalation)</li></ul><h3 id="getting-the-windows-version">Getting the Windows&nbsp;Version</h3><p>Want the Windows Server 2008 version too? Follow the same process but use:</p><pre><code class="language-bash">vagrant box add rapid7/metasploitable3-win2k8</code></pre><p>The Windows version has different vulnerabilities focused on Windows-specific exploits, Active Directory attacks, and Windows services.</p><h3 id="cleanup">Cleanup</h3><p>When you’re done with the files:</p><pre><code class="language-bash"># On your Linux download machine
rm -rf ~/metasploitable3-workspace
vagrant box remove rapid7/metasploitable3-ub1404

# On Proxmox server
rm /tmp/box.ovf /tmp/metasploitable3-ub1404-disk001.vmdk</code></pre><h3 id="alternative-docker-approach">Alternative: Docker&nbsp;Approach</h3><p>If you only need the Ubuntu version and prefer containers, there’s a community Docker image:</p><pre><code class="language-bash">docker pull kirscht/metasploitable3-ub1404</code></pre><p>However, the Proxmox VM approach gives you:</p><ul><li>Full OS access</li><li>Better network isolation</li><li>Snapshot/restore capabilities</li><li>Both Windows and Linux options</li></ul><h3 id="conclusion">Conclusion</h3><p>Running Metasploitable3 on Proxmox gives you a professional penetration testing lab environment without the overhead of VirtualBox. By downloading the pre-built Vagrant boxes and importing them directly, you skip the time-consuming build process and get straight to learning.</p><p>Remember: This is a deliberately vulnerable system. Always keep it isolated from production networks and the internet!</p><h3 id="resources">Resources</h3><ul><li><a href="https://github.com/rapid7/metasploitable3" rel="noopener">Metasploitable3 GitHub</a></li><li><a href="https://pve.proxmox.com/pve-docs/" rel="noopener">Proxmox VE Documentation</a></li><li><a href="https://www.vagrantup.com/downloads" rel="noopener">Vagrant Downloads</a></li><li><a href="https://www.offensive-security.com/metasploit-unleashed/" rel="noopener">Metasploit Unleashed (Free Training)</a></li></ul>]]></content:encoded>
    </item>
  </channel>
</rss>
