<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2026-03-31T19:29:24+00:00</updated><id>/feed.xml</id><title type="html">UNH Cybersecurity</title><subtitle></subtitle><author><name>UNH Cybersecurity</name></author><entry><title type="html">King of the Hill Environment</title><link href="/posts/koth" rel="alternate" type="text/html" title="King of the Hill Environment" /><published>2025-02-27T02:00:00+00:00</published><updated>2025-02-27T02:00:00+00:00</updated><id>/posts/koth</id><content type="html" xml:base="/posts/koth"><![CDATA[<p>Lately, I have been working on creating an open source King of the Hill competition environment for the UNH Cybersecurity Club and for use in some cybersecurity based courses.</p>

<h2 id="what-is-king-of-the-hill">What is King of the Hill?</h2>

<p>In essence, in a standard King of the Hill competition, each team would get a vulnerable machine they have to lock down. While they lock the system down, they should take note of what they find. As these systems will be nearly identical, everyone has equal footing at the start. As the game progresses, you have the opportunity to attack other teams’ machines. A team’s ability to keep their machine locked down and take over other machines contributes to their score.</p>

<h2 id="what-did-we-make">What did we make?</h2>

<p>This project’s main goal was to be able to create ephemeral virtualized environments for teams that are inherently vulnerable. These can be created and managed from a modern web panel. This is all managed by a head node, which is very lightweight and can be run just as easily on a container of a full virtual machine.</p>

<p>Our lab environment is supported by a <a href="https://proxmox.com/en/">Proxmox Virtualization Cluster</a> that enables us to create and destroy Virtual Machines and <a href="https://linuxcontainers.org/lxc/introduction/">LXC Containers</a> at will. For this project, we targeted LXC containers for a few reasons:</p>

<ol>
  <li><strong>Resource Usage:</strong> <br />
 LXC Containers are created using templates. We chose an Ubuntu template because it is very small (<code class="language-plaintext highlighter-rouge">143.47 MB</code>), and they use very small amounts of resources in our cluster (A running container uses nearly no CPU usage, around <code class="language-plaintext highlighter-rouge">256 MB</code> or RAM, and only needs a bootdisk of around <code class="language-plaintext highlighter-rouge">4 GB</code>).</li>
  <li><strong>Operational Performance:</strong> <br />
 LXC Containers are very fast to create, start, stop, and destroy. These are all important operations for our project, and must be done decently fast.</li>
  <li><strong>Easy Setup:</strong> <br />
 While Proxmox does not currently support Cloud-Init for LXC Containers (which recently received Cloud-Init support), you can SSH into the container and run a script, which is what we chose to do. This script will allow us to quickly set up the entire container, allowing for a very simple setup.</li>
</ol>

<p>Additionally, we also provide a robust and configurable scoring engine. This will come with some default checks, such as pings, Proxmox status polling, and HTTP/port scans. We are working on an API to allow you to add your own as well.</p>

<h2 id="tools-used">Tools used</h2>

<h3 id="frontend">Frontend</h3>

<ul>
  <li>Vanilla HTML, CSS, JavaScript</li>
</ul>

<h3 id="backend">Backend</h3>

<ul>
  <li>GoLang</li>
  <li><a href="https://github.com/Netflix/go-env">Netflix/go-env</a></li>
  <li><a href="https://github.com/gorilla/websocket">gorilla/websocket</a></li>
  <li><a href="https://github.com/joho/godotenv">joho/godotenv</a></li>
  <li><a href="https://github.com/luthermonson/go-proxmox">luthermonson/go-proxmox</a></li>
  <li><a href="https://modernc.org/sqlite">modernc.org/sqlite</a></li>
  <li>The dependencies of the dependencies listed above</li>
</ul>

<h2 id="open-source">Open Source</h2>

<p>As a software developer, I firmly believe that projects like these are a strong candidate to help the open source world. We are keeping this project public over at the club’s GitHub. You can find the source code here: <a href="https://github.com/UNHCSC/proxmox-koth">github.com/UNHCSC/proxmox-koth</a></p>

<p>This project is still under active development and has many more features and documentation on the way.</p>]]></content><author><name>Evan Parker</name></author><category term="Lab" /><summary type="html"><![CDATA[An exciting competition environment has been created!]]></summary></entry><entry><title type="html">2025 NECCDC Regional Qualifiers</title><link href="/posts/2025-neccdc-qualifiers" rel="alternate" type="text/html" title="2025 NECCDC Regional Qualifiers" /><published>2025-02-10T17:43:26+00:00</published><updated>2025-02-10T17:43:26+00:00</updated><id>/posts/neccdc-regionals</id><content type="html" xml:base="/posts/2025-neccdc-qualifiers"><![CDATA[<p>On behalf of the UNH Cybersecutiy Team, I am excited to announce that we’ve qualified for the Northeast Collegiate Cyber Defense Competition (NECCDC) regionals! We will be traveling to Roger Williams in March to compete against the top 10 teams in the northeast.</p>]]></content><author><name>Dan McCarthy</name></author><category term="NECCDC" /><category term="Competition-Team" /><summary type="html"><![CDATA[On behalf of the UNH Cybersecutiy Team, I am excited to announce that we've qualified for the Northeast Collegiate Cyber Defense Competition (NECCDC) regionals.]]></summary></entry></feed>