<?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:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by MITRE Caldera on Medium]]></title>
        <description><![CDATA[Stories by MITRE Caldera on Medium]]></description>
        <link>https://medium.com/@mitrecaldera?source=rss-f37c4de90ecd------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*mNz3pjHAJ_qXZN678GuBKg.png</url>
            <title>Stories by MITRE Caldera on Medium</title>
            <link>https://medium.com/@mitrecaldera?source=rss-f37c4de90ecd------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 01 Jun 2026 03:33:19 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@mitrecaldera/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Caldera for OT HVACSim: Expanding Access to OT Security Education]]></title>
            <link>https://medium.com/@mitrecaldera/caldera-for-ot-hvacsim-expanding-access-to-ot-security-education-c4fcc47396ab?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/c4fcc47396ab</guid>
            <category><![CDATA[mitre-attack]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <category><![CDATA[ics-security]]></category>
            <category><![CDATA[ot-security]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Tue, 03 Mar 2026 16:52:42 GMT</pubDate>
            <atom:updated>2026-03-03T16:52:42.672Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*QoVBuWrShf7Zn_tfLdsyrw.gif" /><figcaption>Figure 1 — HVACSim Operation in Caldera</figcaption></figure><p><em>Authors: Samir Boussarhane, Rachel Murphy, Elijah Saloma, and Jake Dickinson</em></p><p>Access to physical operational technology (OT) hardware remains a significant barrier to hands-on cybersecurity education. Without building automation controllers or HVAC equipment, it can be difficult to understand how industrial control protocols operate, how devices exchange data, and how adversary actions translate into physical process effects.</p><p>Heating, Ventilation, and Air Conditioning (HVAC) systems regulate temperature, airflow, and environmental conditions in commercial and industrial buildings. These systems are typically managed by Building Automation Systems (BAS) that use industrial control protocols such as BACnet to monitor sensors and adjust equipment including chillers and fans. Because HVAC systems directly affect physical processes, energy usage, and occupant safety, they are considered operational technology (OT).</p><p>Cyber incidents have demonstrated the real-world relevance of building systems. The 2013 Target breach began with compromised credentials from an HVAC contractor, allowing attackers to pivot into Target’s corporate network and ultimately exfiltrate millions of payment card records. Public reporting and cyber threat intelligence analysis describe how the attackers initially gained access through the HVAC vendor (<a href="https://krebsonsecurity.com/2014/02/target-hackers-broke-in-via-hvac-company/">Target Hackers Broke In Via HVAC Company</a>).</p><p>Beyond initial access risks, disruption to HVAC systems can have direct operational consequences. In data centers and healthcare environments, improper temperature control can damage equipment or disrupt critical services. Manipulation of fan speeds or setpoints can increase energy consumption, reduce equipment lifespan, or create unsafe environmental conditions. Even simple changes to control values can demonstrate how cyber actions translate directly into physical process impact.</p><p>Recognizing the growing intersection of cyber threats and building automation systems, <a href="https://github.com/mitre/hvac-sim">HVACSim</a> was developed to provide defenders with a safe and accessible environment to understand and mitigate these risks before they affect real-world infrastructure.</p><p>HVACSim was created by University of Hawaii at Manoa students Elijah Saloma and Jake Dickinson as part of a capstone project, in collaboration with the MITRE Caldera for OT team. The simulator provides a software-only model of a server room HVAC controller and integrates directly with Caldera for OT, enabling hands-on adversary emulation without requiring physical industrial hardware.</p><p><strong>HVACSim Overview</strong></p><p>HVACSim is a simplified, educational simulator designed for training and experimentation. It does not attempt to replicate vendor-specific implementations or serve as a high-fidelity engineering model. Instead, it focuses on illustrating how BACnet protocol interactions affect a temperature control process.</p><p>The simulator models a server room with a temperature control loop that includes:</p><ul><li>Ambient and internal heat sources</li><li>Airflow-based cooling</li><li>A proportional-integral (PI) controlled chiller</li><li>Sensor noise and actuator lag</li></ul><p>Users interact with the system through BACnet ReadProperty and WriteProperty requests. Writable values — such as the temperature setpoint, fan speeds, and emergency stop — directly influence the simulated physical process.</p><p><strong>Virtual Equipment Architecture</strong></p><p>The simulator consists of two components: a BACnet/IP server and a matplotlib-based Human Machine Interface (HMI). The server listens for and responds to BACnet requests over UDP. The HMI reads values from BACnet objects and updates its display with temperature trends, chiller load, and fan speeds. When controls are adjusted in the HMI, the object values are updated directly in memory. A BACnet client, such as those operated through Caldera for OT, can send write requests over UDP to modify these same objects, allowing adversaries to observe how their protocol actions change process behavior through the HMI display and network traffic.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gnkpd3sGauyQVE9wzn0QOA.png" /><figcaption>Figure 2 — HVACSim HMI Default Settings</figcaption></figure><p><strong>Adversary Emulation with Caldera for OT</strong></p><p>HVACSim responds to common BACnet protocol requests. The simulator can be used with Caldera for OT abilities discovery, collection, and impact tactics. Discovery can be used to identify devices and their objects. Collection can be used to read process values such as temperature, setpoint, and chiller load. Process impact can be used to change control values and observe the results on the HMI.</p><p><strong>Adversary Scenarios</strong></p><p>One learning scenario is manipulating the temperature setpoint and fan speeds through BACnet WriteProperty commands. The system starts at 73.4°F with both fans running at 30%. When an attacker writes a lower setpoint to analog value address 0 — such as changing it from 73°F down to 64°F — the chiller load increases to reach the new target and the temperature drops. Figure 3 shows the system response after lowering the temperature setpoint.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CdAgCjxLmHQpc2GXZjNUyg.png" /><figcaption>Figure 3 — HVACSim Lowering Setpoint Scenario</figcaption></figure><p>When intake and exhaust fan speeds (analog value addresses 1 and 2) are set to different extremes — like setting intake to 100% but exhaust to 0% — the airflow becomes unbalanced and the temperature rises. Figure 4 shows the system behavior when intake and exhaust fan speeds are set to different extremes.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y8uSGx_RlQ_sUWXjh9bXkg.png" /><figcaption>Figure 4 — HVACSim Setting Intake Fan to Different Extremes Scenario</figcaption></figure><p>The emergency stop control can also be activated at any time to stop both the chiller and fans. Figure 5 shows the system state after the emergency stop is activated.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*d1GK6D62jMvMYFZrnhhMpA.png" /><figcaption>Figure 5 — HVACSim Emergency Stop Scenario</figcaption></figure><p><strong>BACnet Simulation</strong></p><p>HVACSim exposes a small set of BACnet objects that can be accessed using standard ReadProperty and WriteProperty requests. Figure 6 shows an example of reading the current temperature value using a <a href="https://github.com/mitre/bacnet/blob/main/docs/bacnet.md#read-property">BACnet ReadProperty ability</a> in Caldera for OT. Writable objects, such as the temperature setpoint and fan speed values, can be modified using WriteProperty requests, with updated values reflected in the simulator and displayed through the HMI. This allows users to observe how BACnet reads and writes correspond to changes in exposed object values during simulation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FuoX5OZcyJWdytOYx_Nudg.png" /><figcaption>Figure 6 — Reading Temperature with “BACnet Read Property” in Caldera</figcaption></figure><p>Analog Outputs:</p><p>Instance 0: Temperature set point (target temperature in °C)</p><p>Instance 1: Intake fan speed percentage (0–100%)</p><p>Instance 2: Exhaust fan speed percentage (0–100%)</p><p>Binary Outputs:</p><p>Instance 0: Emergency Stop (0 = off, 1 = on)</p><p>Analog Inputs:</p><p>Instance 0: Current Temperature</p><p>Instance 1: Chiller Speed Percentage</p><p><strong>Getting Started</strong></p><p>HVACSim is designed to be lightweight and accessible while still modeling realistic cyber–physical interactions. The simulator runs entirely in software and requires no specialized hardware. It supports Python 3.10+ and runs on Linux, macOS, or Windows. Core dependencies include matplotlib for the HMI and bacpypes for BACnet/IP communications.</p><p>When launched, HVACSim starts a BACnet/IP device over UDP and opens an interactive HMI for observing temperature trends, chiller behavior, and airflow changes in real time. Users can configure device identifiers and network parameters through the provided BACpypes.ini file. Linux systems may require additional GUI packages (such as python3-tk) to support the matplotlib interface.</p><p>For adversary emulation workflows, HVACSim can be paired with MITRE Caldera and its BACnet plugin. Once running, Caldera agents can perform BACnet ReadProperty and WriteProperty actions against the simulator to exercise discovery, collection, and impact techniques in a controlled environment.</p><p>By lowering the barrier to entry for building automation security research, HVACSim enables defenders, educators, and students to safely explore how protocol-level actions translate into physical process behavior — without requiring access to live industrial infrastructure. Contributions and feedback are welcome as the community continues expanding practical OT cybersecurity training resources.</p><p><strong>Resources and Code:</strong></p><ul><li><a href="https://github.com/mitre/caldera-ot">Caldera for OT plugin repository</a></li><li><a href="https://github.com/mitre/hvac-sim">HVACSim</a></li><li><a href="https://github.com/mitre/caldera">Caldera GitHub</a></li><li><a href="http://caldera.mitre.org/">Caldera Homepage</a></li></ul><p><strong>Community and Support:</strong></p><ul><li><a href="https://discord.gg/A9zEkrf9Ta">Discord</a></li><li><a href="https://www.linkedin.com/company/mitre-caldera/">LinkedIn</a></li><li><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></li><li><a href="https://www.youtube.com/@MITRECalderaOfficial">Caldera YouTube</a></li></ul><p><strong>©2026 The MITRE Corporation. All rights reserved.</strong></p><p><strong>Approved for public release. Distribution unlimited PR_26–0182.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c4fcc47396ab" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Caldera for OT Aloha Water Treatment: More Virtual OT Sandboxes!]]></title>
            <link>https://medium.com/@mitrecaldera/caldera-for-ot-aloha-water-treatment-more-virtual-ot-sandboxes-080dc437da89?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/080dc437da89</guid>
            <category><![CDATA[water-treatment-plants]]></category>
            <category><![CDATA[ics-security]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <category><![CDATA[critical-infrastructure]]></category>
            <category><![CDATA[operational-technology]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Fri, 30 Jan 2026 16:58:29 GMT</pubDate>
            <atom:updated>2026-01-30T16:58:29.618Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J3LAYmfHO-kzVHwn4HmAiA.png" /><figcaption>Aloha Water Treatment Plant Control</figcaption></figure><p><strong><em>Author: </em></strong><em>Samir Boussarhane</em></p><p>Access to testable physical hardware is a barrier to entry for operational technology (OT) security education. Without access to programmable logic controllers (PLCs) or OT lab equipment, it can be harder to learn OT protocols, explore how control systems exchange data, and understand how an adversary can impact a critical process. The release of the <a href="https://github.com/mitre/wildcatdam">Wildcat Dam</a> simulator helped lower that barrier by introducing an open-source software-based Modbus simulation that can be used as a virtual OT protocol sandbox. <a href="https://github.com/mitre/aloha-water-treatment">Aloha Water Treatment Plant</a> builds upon that work by adding a simple water treatment process, supporting both Modbus and BACnet control protocols, and includes a web-based human-machine interface (HMI).</p><p><strong>Aloha!</strong></p><p>Aloha Water Treatment Plant is a software-based OT simulator designed as a low-cost resource for education. The simulator is not intended to be a full-fidelity realistic environment mimicking vendor-specific behavior. It models a basic water storage tank, including flows, modes, and alarms, to illustrate how protocol interactions interact with and impact a controlled process.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bNwtAqilR6_QjnbzMAPJgQ.png" /><figcaption><em>Figure 1 — Aloha Water Treatment HMI</em></figcaption></figure><p><strong>Virtual OT Equipment</strong></p><p>The simulator has two parts: a PLC-style protocol server and a web-based HMI. The PLC server responds to Modbus or BACnet requests over TCP/IP. The HMI continuously reads values from the PLC and updates its display. When the user clicks “Controls” on the HMI, it performs protocol writes back to the PLC. This traffic can be observed on the network with packet capture tools, which helps connect protocol activity to process behavior. The diagram in Figure 2 illustrates how these components interact.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/407/1*9MGiPgr2xKtcaDZgg-Lz8Q.png" /><figcaption><em>Figure 2 — Network Diagram for Simulation Interactions</em></figcaption></figure><p><strong>Adversary Emulation with Caldera for OT</strong></p><p>Aloha Water Treatment Plant responds to common OT protocol requests, making it compatible with Caldera for OT. The simulator supports Caldera for OT BACnet and Modbus plugins’ abilities across discovery, collection, impair process control, and impact tactics. Discovery techniques can be used to identify devices for interaction. Collection techniques can be used to read process values such as tank level and flow. Process impact techniques can be used to change control values and observe the results.</p><p><strong>Adversary Scenarios</strong></p><p>One learning scenario is switching the system into manual mode and adjusting inflow and outflow rates through Modbus or BACnet writes. In AUTO mode, the control process adjusts inflow and outflow automatically to stay around 65% full. When inflow is set higher than outflow, the tank level increases and can reach an overflow condition. When outflow is set higher than inflow, the tank level drops and can reach a low-level condition. When thresholds are crossed, alarms become visible in the HMI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KwSequCSHpEn0QaTWQT5_Q.png" /><figcaption><em>Figure 3 — Aloha Water Treatment Manual Overflow Scenario</em></figcaption></figure><p>Another scenario involves the emergency stop. Setting the emergency stop through the protocol halts the process and changes the system state shown in the HMI. In both cases, the impacts of protocol actions are visible in the interface, and observable within network protocol flows.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*25hdPHEdTJ6wM1mdwrTcnQ.png" /><figcaption><em>Figure 4 — Aloha Water Treatment Emergency Stop Scenario</em></figcaption></figure><p><strong>Modbus Simulation</strong></p><p>The Modbus version of Aloha Water Treatment exposes a small set of coils and holding registers that represent values in the simulated process. Figure 5 shows an example of reading the tank level using a Modbus <a href="https://github.com/mitre/modbus/blob/73562caad8662828d93b7aae03592b1d69bf36c3/docs/modbus.md#modbus---read-holding-registers">Read Holding Registers ability</a> in Caldera for OT. Holding registers are used for values such as tank level and flow rates, and coils are used for discrete states including emergency stop, pump switch, and operating mode. Modbus read and write operations can be used to observe and modify these values and view the resulting changes in the HMI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*fGyx_ckLMFZYhHhkJlWCvg.png" /><figcaption><em>Figure 5 — Reading Tank Level with Modbus Read Holding Registers Caldera Ability</em></figcaption></figure><p><strong>Holding registers</strong></p><ul><li>Address 0: Tank level (updated by controller logic)</li><li>Address 6: Inflow rate (effective in manual mode)</li><li>Address 7: Outflow rate (effective in manual mode)</li></ul><p><strong>Coils</strong></p><ul><li>Address 0: Emergency stop (0 = off, 1 = on)</li><li>Address 1: Pump switch (0 = off, 1 = on)</li><li>Address 5: Inflow mode (0 = automatic, 1 = manual)</li></ul><p><strong>BACnet simulation</strong></p><p>The BACnet version of Aloha Water Treatment exposes a set of BACnet objects that represent values in the simulated process. Figure 6 shows an example of reading the tank level using a <a href="https://github.com/mitre/bacnet/blob/main/docs/bacnet.md#read-property">BACnet ReadProperty ability</a> in Caldera for OT. Analog value objects are used for values such as tank level and flow rates, and binary value objects are used for discrete states including emergency stop, pump switch, and operating mode. BACnet ReadProperty and WriteProperty requests can be used to observe and modify these values and view the resulting changes in the HMI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*9BnyXls9SK5JVHfuw1Em2Q.png" /><figcaption><em>Figure 6 — Reading Tank Level with BACnet Read Property Caldera Ability</em></figcaption></figure><p><strong>Analog values</strong></p><ul><li>Instance 1: Tank level (updated by controller logic)</li><li>Instance 2: Inflow rate (effective in manual mode)</li><li>Instance 3: Outflow rate (effective in manual mode)</li></ul><p><strong>Binary values</strong></p><ul><li>Instance 1: Emergency stop</li><li>Instance 2: Pump switch</li><li>Instance 3: Inflow mode (False = automatic, True = manual)</li></ul><p><strong>Getting Started</strong></p><p>To start exploring operational technology (OT), download the Aloha Water Treatment Plant simulator today and explore the Modbus and BACnet protocols. The project is open source and built for education. Feedback, issues, and pull requests are welcome so the community can keep improving these virtual OT sandboxes and continue advancing open-source OT cybersecurity together!</p><p><strong>Resources and Code:</strong></p><ul><li><a href="https://github.com/mitre/caldera-ot">Caldera for OT plugin repository</a></li><li><a href="https://github.com/mitre/aloha-water-treatment">Aloha Water Treatment Plant</a></li><li><a href="https://github.com/mitre/caldera">Caldera GitHub</a></li><li><a href="http://caldera.mitre.org/">Caldera Homepage</a></li></ul><p><strong>Community and Support:</strong></p><ul><li><a href="https://discord.gg/A9zEkrf9Ta">Discord</a></li><li><a href="https://www.linkedin.com/company/mitre-caldera/">LinkedIn</a></li><li><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></li><li><a href="https://www.youtube.com/@MITRECalderaOfficial">Caldera YouTube</a></li></ul><p><strong>©2026 The MITRE Corporation. All rights reserved.</strong></p><p><strong>Approved for public release. Distribution unlimited PRS 23–4177.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=080dc437da89" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Connecting LLMs to Caldera with the MCP Plugin]]></title>
            <link>https://medium.com/@mitrecaldera/connecting-llms-to-caldera-with-the-mcp-plugin-da1450254827?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/da1450254827</guid>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Mon, 10 Nov 2025 18:19:01 GMT</pubDate>
            <atom:updated>2025-11-10T18:19:01.532Z</atom:updated>
            <content:encoded><![CDATA[<p><em>By Ethan Michalak and Mark Perry</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/940/1*cgHHWrK3Ion-7eKmH5HZHQ.png" /><figcaption>Figure 1 — Caldera MCP Plugin Dashboard</figcaption></figure><h3>Overview</h3><p>The MITRE Caldera project has introduced <a href="https://github.com/mitre/mcp">Caldera MCP</a> (Model Context Protocol), a new plugin that enables large language models to interact with and control Caldera. This overview focuses on MCP’s capabilities, setup, and practical use cases for an LLM-powered Caldera. It demonstrates how MCP can streamline purple teaming workflows, automate adversary emulation, and augment analysis.</p><h3>Caldera MCP</h3><p>While large language models (LLMs) are excellent at generating code and drafting emails, the Caldera team wanted to explore uncharted territory with LLMs. Specifically, we set out to apply LLMs to various cybersecurity domains within Caldera, aiming to make the platform more accessible and powerful for operators of all skill levels. Fortunately, recent advances in the AI open-source community have led to the standardization of the Model <a href="#_msocom_1">[EM1]</a> Context Protocol (MCP), which allows standalone tools to be masked and presented as context to large language models [1]. Building on this, the MCP plugin was developed as a wrapper for the existing Caldera API, enabling seamless integration between Caldera and LLMs. The MCP plugin acts as a bridge, translating requests and responses between Caldera’s REST API and large language models. This allows LLMs to understand Caldera’s capabilities and issue commands as if they were native operators, enabling automation and advanced reasoning.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*v5vgvgCnPLO3Gsmkz6BYVg.png" /><figcaption>Figure 2— MCP Wrapper for Caldera’s Rest API</figcaption></figure><p>We explored three different research directions utilizing the MCP plugin, as well as a custom large language model approach that didn’t rely on the MCP plugin. Our work included developing a large language model planner, creating a large language model-powered ability factory, and deploying a forward agent enhanced with Retrieval Augmented Generation (RAG) for CTI-driven improvements.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*YVvnSY7FmRstbNF5SEKXjQ.png" /><figcaption>Figure 3 — LLM Use Cases Explored with Caldera</figcaption></figure><h3>Large Language Models as an Ad-hoc Planner</h3><p>Our first research effort builds on prior work on autonomous Caldera agents [2], adapting those ideas to an LLM-based ad-hoc planner.</p><p>In Caldera, planners are algorithms that determine the order and selection of abilities for an adversary. Traditionally, Caldera planners have focused on optimizing for a specific goal by balancing exploration and exploitation within an environment. The LLM planner, while still grounded in the straightforward atomic planner, takes a different approach: it dynamically constructs new adversaries on the fly based on user requirements provided through natural language prompts. This flexibility allows the ad-hoc planner to adapt to changing environments while still maintaining a balance between exploration and exploitation.</p><p>For example, one of our most frequently tested prompts was: “Can you make a new caldera adversary that replicates a stealer malware sample?” With access to a suite of Caldera API tools exposed via the MCP server, the LLM can analyze and select the most suitable abilities to mimic stealer malware behavior. Typically, the adversaries generated by the LLM included tactics such as collection, exfiltration, and discovery.</p><h3>Large Language Models as an Ability Factory</h3><p>A common challenge for red team operators using Caldera is the lack of high-quality abilities tailored to their specific use cases. Caldera’s ability repository includes thousands of options, with atomic, emu, and stockpile plugins available, but sometimes the unique configuration of an environment requires something more nuanced. Our second research effort addresses this issue by leveraging an LLM to generate new Caldera abilities based on user requirements. By having the LLM handle the creation of custom abilities, operators can spend less time developing red team capabilities from scratch, which in turn allows them to focus on operational details and collaborate more effectively with the blue team for a successful engagement.</p><p>Another prompt we tested frequently was: “Can you create Windows WMI persistence abilities (more than one)?” In our experiments, the LLM typically succeeded in registering two persistence abilities using WMI in Caldera. However, the payloads chosen by the model were sometimes basic, or the abilities resembled proof-of-concept demonstrations rather than fully developed Caldera abilities. Still, the underlying mechanism for establishing a persistence hook was generally solid, and red team operators could easily refine the ability by tweaking the payload to better suit their needs.</p><p>We also found that using more specific prompts, narrowing the LLM’s scope and specifying a desired payload, dramatically improved the quality of the generated abilities. This observation aligns with broader trends in LLM research. Providing clear context and requirements allows the model to deliver more targeted and effective results.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*TgkpZytt_LvEnFhj8dR-mg.png" /><figcaption>Figure 4 — Using MCP plugin to create a custom Caldera ability</figcaption></figure><h3>Utilizing CTI Data via RAG</h3><p>While a large language model planner and a large language model ability factory may offer many use cases, we wanted to take things a step further. We asked ourselves: “What if our existing large language model applications could incorporate cyber threat intelligence (CTI) data?” The immediate benefit of using CTI data is the ability to distill an organization’s STIX data into a repeatable, testable adversary. To accomplish this, we added a RAG pipeline capable of indexing and searching through embeddings for our STIX data in JSON format.</p><p>For testing, we downloaded publicly available STIX data. Although this data wasn’t particularly robust or relevant to an adversary worth replicating, it was still functional for our RAG pipeline and allowed the LLM to gain context about abilities and execution flows. Our most frequently used prompt was: “I want to emulate APT 28’s persistence strategies in a new adversary.” The impact of integrating CTI data into both the planner and the ability factory was immediately noticeable, and we could verify that our CTI data was being pulled into context.</p><h3>APT 28 “Lamehug” Adversary Emulation with Caldera</h3><p>1. In July of this year, shortly before DEFCON 33, CERT-UA [3] <a href="#_msocom_2">[EM2]</a> <a href="#_msocom_3">[RCM3]</a> <a href="#_msocom_4">[EM4]</a> <a href="#_msocom_5">[RCM5]</a> reported a unique malware strain called LameHug attributed to APT 28. The malware’s distribution and behaviors followed familiar patterns such as evasion, collection, and exfiltration, but its techniques were highly innovative. Instead of relying on a command-and-control server or pre-designed payloads, the malware relied on a public large language model endpoint. The Python sample contained configuration settings for a QWEN 2.5-Coder-32B-Instruct model, prompts for PowerShell scripts, and a hardcoded output file called “info.txt” to store the results of PowerShell commands. The sample actively communicated with the Huggingface API<a href="#_msocom_6">[RCM6]</a> , using prompts to translate textual descriptions of PowerShell scripts into targeted PowerShell commands that leveraged Windows utilities.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*OR8EwDFZbklyiOwRnJzDyA.png" /><figcaption>Figure 5 — LameHug’s use of natural language, C2 ping, and recon storage</figcaption></figure><p>We can infer from this isolated malware sample and many threat reports from frontier AI labs like OpenAI and Anthropic that APT groups are starting to utilize LLMs for more than writing social engineering emails.</p><p>Before, the CERT-UA report surfaced, the Caldera team was pursuing a similar LLM research effort. Our approach involved modifying a Caldera agent to translate natural language commands into PowerShell scripts and execute them inline for Caldera C2. But after learning about APT 28’s activities, we decided it would be interesting to emulate the “LameHug” malware by adopting its style of execution, prompting, and reporting.</p><p>We developed a new Caldera agent called Magician, implemented in Go. It uses a prompt format inspired by APT28 and follows a similar flow: translate prompts into commands and execute them. The key addition is a feedback loop that reports errors to the LLM when a generated script fails, allowing it to correct and retry. When commands succeed, Magician writes the output to “C:\Users\Public\info.txt” for later collection by the standard Sandcat agent.</p><p>After confirming that Magician could execute commands reliably, we ran three experiments with increasing complexity. In the first experiment, we structured the prompts to closely emulate APT 28 by gathering files, performing reconnaissance, and, for some flare, even conducting a security assessment. In the second experiment, we tasked the agent to degrade system security by turning off the Windows firewall, disabling real-time protection, disabling user account control, and creating a new user with provided credentials. In the last experiment, we tasked the agent with performing system wide file encryption by finding files most likely to contain sensitive information, generating an AES key, and encrypting the files it found earlier with the AES key it generated. Surprisingly, after a few trials, Magician was able to perform system-wide encryption autonomously. The agent also completed the first two experiments with relative ease, with the reconnaissance experiment being the most consistently successful.</p><h3>Takeaways</h3><p>Having explored three distinct approaches for integrating large language models with Caldera, we evaluated each method using a scoring rubric to assess their overall effectiveness. Table 1 summarizes the scoring results across four key criteria. As shown, both the Planner and Factory approaches performed strongly, tying for first place, while the Forward Deployed Agent approach also showed promise but scored slightly lower overall.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/628/1*xIx1wY9mI3UwSwRvwWp36g.png" /><figcaption>Table 1- Comparative Analysis of Caldera LLM Experiments</figcaption></figure><p>In this rubric, each approach was evaluated for Impact, Autonomy, Cost, and Extensibility, with a maximum score of 5 per criterion. Higher scores reflect better performance in that category.</p><p>· <em>Impact</em> measures real-world effectiveness for adversary emulation tasks.</p><p>· <em>Autonomy</em> indicates how independently the system operates.</p><p>· <em>Cost</em> reflects resource efficiency.</p><p>· <em>Extensibility</em> gauges adaptability to future use cases.</p><p>Overall, the MCP plugin opens up exciting possibilities for future research and operational use in cybersecurity. We will continue exploring and iterating on these approaches, and we invite the community to experiment with the MCP plugin, which is open sourced at: link. Share feedback, file issues, and contribute enhancements to help shape the roadmap.</p><p>References:</p><p>[1] Model Context Protocol (MCP) — Spec and reference implementations. URL: <a href="https://modelcontextprotocol.io/docs/getting-started/intro">https://modelcontextprotocol.io/docs/getting-started/intro</a></p><p>[2] Mirage: cyber deception against autonomous cyber attacks in emulation and simulation. URL: <a href="https://link.springer.com/article/10.1007/s12243-024-01018-4">https://link.springer.com/article/10.1007/s12243-024-01018-4</a></p><p>[3] CERT-UA — “LameHug” malware report (APT28). URL: <a href="https://cert.gov.ua/article/6284730">https://cert.gov.ua/article/6284730</a></p><p>Resources and Code:</p><ul><li>Caldera GitHub: <a href="https://github.com/mitre/caldera">https://github.com/mitre/caldera</a></li><li>Caldera documentation: <a href="https://caldera.readthedocs.io/en/latest/">https://caldera.readthedocs.io/en/latest/</a></li><li>MCP plugin repository: <a href="https://github.com/mitre/MCP">https://github.com/mitre/MCP</a></li></ul><p>Community and Support:</p><p>· Discord: <a href="https://discord.gg/8ApVgPXQnY">https://discord.gg/8ApVgPXQnY</a></p><p>· LinkedIn: <a href="https://www.linkedin.com/company/mitre-caldera/">https://www.linkedin.com/company/mitre-caldera/</a></p><p>· Website: <a href="https://caldera.mitre.org/">https://caldera.mitre.org/</a></p><p>· YouTube: <a href="https://www.youtube.com/@MITRECalderaOfficial">https://www.youtube.com/@MITRECalderaOfficial</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=da1450254827" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Caldera for OT Announcing Wildcat Dam: Your Virtual OT Protocol Sandbox!]]></title>
            <link>https://medium.com/@mitrecaldera/caldera-for-ot-c4ot-announcing-wildcat-dam-your-virtual-ot-protocol-sandbox-074f68d1d0d1?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/074f68d1d0d1</guid>
            <category><![CDATA[caldera]]></category>
            <category><![CDATA[operational-technology]]></category>
            <category><![CDATA[adversary-emulation]]></category>
            <category><![CDATA[mitre]]></category>
            <category><![CDATA[simulation]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Wed, 13 Aug 2025 16:19:36 GMT</pubDate>
            <atom:updated>2025-08-13T16:44:24.282Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RjJW1B8UZLXl83so0ff6Kw.jpeg" /></figure><p><strong>Author</strong>: Devon Colmer</p><p>Since our open-source release in September 2023, the MITRE Caldera for OT team has been adding capabilities to emulate adversary behavior in operational technology (OT) networks. But what if you don’t have access to physical hardware for testing? How can you join our community and start experimenting? Today we’re excited to announce another milestone in our development with the release of <a href="https://github.com/mitre/wildcatdam"><em>Wildcat Dam</em></a> — the first in a planned series of virtual OT protocol training devices. With this simple software device and Caldera for OT, you have everything you need to set up an OT network protocol testing sandbox entirely in software — on a single computer, if desired.</p><p>First, we congratulate the talented University of Arizona students who brought this idea to life. Through the <a href="https://www.caecommunity.org/initiatives/initiative-insure">INSuRE program</a>, MITRE had the privilege of mentoring four students in designing and developing <em>Wildcat Dam</em>. We commend their hard work and are proud to amplify their success.</p><h3>A MODBUS-Based Dam Control Simulation</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9CczReEBtSa_G8Ms1lhw1Q.png" /></figure><p><em>Wildcat Dam</em> is a simulation of a basic dam control system that communicates using the MODBUS protocol. The controller manages three sluice gates (or doors) to regulate the reservoir’s water level, ensuring it stays within threshold setpoints. It receives sensor readings of the water level and the surge (inflow) rate of water. While not intended to be a realistic replica of a dam controller, it was designed to include all four datatypes of the MODBUS protocol and enable a range of interactions with the system. This makes it ideal for experimenting with a range of MODBUS messages, generating sample traffic, and learning how OT represents the physical world.</p><p><strong>Getting Started with Wildcat Dam</strong></p><p>The <em>Wildcat Dam</em> repository includes a README with step-by-step <a href="https://github.com/mitre/wildcatdam?tab=readme-ov-file#getting-started">installation and usage instructions</a>.</p><p><em>Wildcat Dam</em> is a simple Python script. To get started, install the required dependencies, set up a virtual environment, and run the script, launching the virtual MODBUS server. Next, swap over to Caldera, ensuring the MODBUS Caldera for OT plugin is loaded, and begin sending MODBUS messages to the dam controller.</p><p>If you are running the Caldera agent and <em>Wildcat Dam</em> on the same computer, you can target the dam by using the loopback IP address (127.0.0.1) and port 5020. (Note: While the default MODBUS port is 502, Wildcat Dam is configured for port 5020.)</p><p><strong>Exploring Caldera MODBUS Capabilities</strong></p><p>Which Caldera MODBUS abilities should you use? The choice is yours — experiment and discover what works. This setup lets you freely test and explore without the limitations of real hardware or the risk of impacting a physical process. Hands-on exploration fosters deeper learning and a stronger understanding than simply following step-by-step instructions.</p><p>If that feels too broad, here is a breakdown of the variables available in the control system:</p><p><strong>Coils</strong> (binary values that can be read or written)</p><ul><li>Address 0: Door 1 position</li><li>Address 1: Door 2 position</li><li>Address 2: Door 3 position</li><li>Address 3: Door 1 manual override (0/OFF = auto, 1/ON = manual)</li><li>Address 4: Door 2 manual override (0/OFF = auto, 1/ON = manual)</li><li>Address 5: Door 3 manual override (0/OFF = auto, 1/ON = manual)</li></ul><p><strong>Discrete inputs</strong> (read-only binary values)</p><ul><li>Address 0: water outflow status</li></ul><p><strong>Holding registers</strong> (read/write analog values)</p><ul><li>Address 0: close level for door 1 (0–100)</li><li>Address 1: reduction rate of door 1 (0–10)</li><li>Address 2: reduction rate of door 2 (0–10)</li><li>Address 3: reduction rate of door 3 (0–10)</li><li>Address 4: threshold 1 value (0–100)</li><li>Address 5: threshold 2 value (0–100)</li><li>Address 6: threshold 3 value (0–100)</li></ul><p><strong>Input registers</strong> (read-only analog values)</p><ul><li>Address 0: water level</li><li>Address 1: surge rate (inflow rate, scaled 1–5)</li></ul><p>With this understanding, use Caldera to enable manual control of the sluice gates and then open and close them. Next, switch back to automatic control, reset the threshold values and watch the system adjust.</p><p>After that, run an experiment to learn more about the MODBUS data model. First, try reading the water level in the reservoir. Now attempt to set the water level. Spoiler alert: you can’t! MODBUS input registers such as the water level in <em>Wildcat Dam</em> are read-only. There is no “write input register” MODBUS message and consequently, no Caldera “ability” to write to an input register. This isn’t a limitation of MODBUS, it is a way for the protocol to model the physical process in data. The controller can’t change the water level in the reservoir directly, so that water level value is stored as a read-only “input register.”</p><p><strong>Get Involved</strong></p><p>Download <em>Wildcat Dam</em> today and start exploring the world of OT network testing in a safe, virtual environment. Whether you’re experimenting with MODBUS protocols, testing Caldera abilities, or just learning the basics of OT security, this tool is designed to empower your journey.</p><p><em>Wildcat Dam</em> is open-source, and we welcome your contribution of new features, improvements, or bug fixes. Jump into the codebase, submit pull requests, or share your feedback with us. Get started by checking our <a href="https://ttps//github.com/mitre/wildcatdam/issues">issues list</a>.</p><p>Together, we can continue to innovate and build tools that advance OT security for everyone.</p><p><strong>Let’s get started!</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=074f68d1d0d1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MITRE Caldera Security Advisory — Remote Code Execution (CVE-2025–27364)]]></title>
            <link>https://medium.com/@mitrecaldera/mitre-caldera-security-advisory-remote-code-execution-cve-2025-27364-5f679e2e2a0e?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/5f679e2e2a0e</guid>
            <category><![CDATA[mitre-caldera]]></category>
            <category><![CDATA[cve]]></category>
            <category><![CDATA[remote-code-execution]]></category>
            <category><![CDATA[mitre]]></category>
            <category><![CDATA[caldera]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Mon, 24 Feb 2025 17:15:20 GMT</pubDate>
            <atom:updated>2025-02-25T15:48:34.417Z</atom:updated>
            <content:encoded><![CDATA[<h3>MITRE Caldera Security Advisory — Remote Code Execution (CVE-2025–27364)</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/572/1*CYvI1pNOZgPGcY9CLxqz0Q.png" /></figure><p><em>Author</em>: Dawid Kulikowski, edited by Michael Kouremetis for Medium.</p><p><em>Disclaimer: This post comes from a contributor from the MITRE Caldera</em>™<em> open-source community. The views, thoughts, and opinions expressed are those of the author and do not reflect the official view, policy or position of the MITRE Caldera</em>™<em> team or the MITRE Corporation. The MITRE Caldera team has also reviewed the author’s content and code, and have found it to be of high quality and safe for open sourcing. The team expresses their appreciation to the author for their contribution of this high quality content.</em></p><h3>Overview</h3><p>All versions of <a href="https://github.com/mitre/caldera">MITRE Caldera</a> (before commit <a href="https://github.com/mitre/caldera/commit/35bc06e42e19fe7efbc008999b9f993b1b7109c0">35bc06e</a> and going back as far as the very first versions of Caldera) are vulnerable to a remote code execution (RCE) vulnerability that can be triggered in most default configurations. The only preconditions for this vulnerability to be exploitable are the presence of <strong>Go</strong>, <strong>python</strong> and <strong>gcc</strong> on the system that the Caldera server is running on. Notably, all of these dependencies are required for Caldera to be fully-functional in the first place and on many distributions, <strong>gcc</strong> is a dependency of <strong>Go</strong>, meaning this vulnerability is extremely likely to be available to an attacker.</p><p><a href="https://www.cve.org/CVERecord?id=CVE-2025-27364">CVE Record</a></p><h3>Sandcat, Manx and Dynamic Compilation</h3><p>The vulnerability originates in the dynamic compilation functionality of the Caldera <strong>Manx</strong> and <strong>Sandcat</strong> agents (implants). For those unfamiliar, they’re small reverse shells that call back to Caldera and execute commands as tasked during a Caldera operation. Looking at Caldera’s source code, the author initially took note of this compilation endpoint as it is not authenticated, meaning any vulnerability found would likely not require any knowledge of credentials.</p><p>The Caldera server has an HTTP(S) endpoint which serves web requests for for agents to be downloaded and executed on target systems. When downloading them, various options can be specified such as the communication method, encryption keys, the C2 address, etc. using HTTP headers. The agents are then compiled on-the-fly and these parameters are passed to them so it can be included in the resulting binary and control how the agent runs.</p><p>As such, you may be wondering how this attacker-controlled data is passed to the agent being compiled. Something like the use of <strong>gcc’s</strong> <strong>“-D”</strong> flag and insecure use of <strong>“system()”</strong> may be enough to result in exploitable command injection.</p><h4>Simple Command Injection</h4><p>First thing to do is trace the execution flow. After following the function calls from the initial request handler, we arrive <a href="https://github.com/mitre/manx/blob/8adc3c83d932463dacbcc858852919d5a47f758b/app/term_api.py#L56">here</a>:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/855/1*-39nMI8KZ2nTWekR61A8hQ.png" /><figcaption>Dynamic compilation function in the Caldera Manx agent plugin.</figcaption></figure><p>This looks promising! We have user-controlled data in the linker flags “<strong>ldflags”</strong> which is passed to “<strong>compile_go()”</strong> as a string. Let’s see what <a href="https://github.com/mitre/caldera/blob/c400bb8ebda4ddfbfe27d24498e9e3b56c1932ee/app/service/file_svc.py#L159"><strong>compile_go(</strong>)</a> does with this.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/821/1*HbpJqn17-uuBS-S_E0nvug.png" /><figcaption>Compile Go function in Caldera file service module.</figcaption></figure><p>Darn, <strong>subprocess.check_output()</strong> is being used without <strong>shell=True</strong>. As mentioned in the <strong>subprocess</strong> documentation:</p><blockquote>Unlike some other popen functions, this library <strong>will not implicitly choose to call a system shell</strong>. This means that all characters, including <strong>shell metacharacters, can safely be passed to child processes</strong>. If the shell is invoked explicitly, via shell=True, it is the application’s responsibility to ensure that all white-space and meta characters are quoted appropriately to avoid shell injection vulnerabilities. On some platforms, it is possible to use shlex.quote() for this escaping.</blockquote><p>The important parts are <strong>highlighted</strong>. In effect, we won’t be able to simply pass “<strong>; reboot ;”</strong> and restart the system. We will have to look elsewhere for bugs. Or will we?</p><h4>Abusing Linker Flags</h4><p>While there is no low-hanging command injection, we still are able to control the linker flags. But what does that let us do?</p><p>For starters, the only flags that Caldera uses are <strong>“-X”</strong> and sometimes <strong>“-s”</strong>, <strong>“-w”</strong>. According to the documentation, <strong>“-s”</strong> and <strong>“-w”</strong> strip symbols and remove debugging information, while <strong>“-X”</strong> functions like <strong>“-D”</strong> when invoking <strong>“gcc”</strong>— it basically assigns some value to a variable. But are there any other options?</p><p>Yes there are (and many of them). Running <strong>go tool link</strong> returns:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/874/1*uGmYnK3lxH_ph_UrVYSq1A.png" /><figcaption>Go tool link command output.</figcaption></figure><p>Of these flags, those that may be utility here are <strong>“-extar”</strong>, <strong>“-extld”</strong> and <strong>“-extldflags”</strong>.<strong>“-extar”</strong> allows one to specify what tool to use for archiving when using the “<strong>buildmode=c-archive”</strong> option. While “<strong>-extld”</strong> and “<strong>-extldflags”</strong> define what linker to use and what flags to append when invoking it.</p><p>Our goal is to be able to execute something with user-controlled parameters. While there likely are many ways to do this, it takes some trial-and-error to find the right combination of binary and parameters. Even if we get to execute a binary of our choice and manage to give it some attacker-controlled arguments, it will often still fail due to extraneous (and in its eyes invalid) arguments being appended by the <strong>Go</strong> linker to the invocation.</p><p>I quickly gave up on trying to abuse “<strong>-extar”</strong>. While it was executing the binary specified, one couldn’t find a way to pass any arguments to it. The next candidate was <strong>“-extld”</strong>. This is a lot more interesting due to <strong>“-extldflags”</strong>, which allows us to pass some arguments to an executable of choice. First, it was determined that the external linker is not always called. The build mode had to be changed to get <strong>Go</strong> to use the specified linker. However, after getting the specified binary to execute, further obstacles occurred as binaries like <strong>python</strong> or <strong>bash</strong> did not like random parameters being passed to it by the linker in addition to the ones specified by <strong>“-extldflags”</strong>. In the end, the author decided to see if the linker could be set to “<strong>gcc”</strong> or “<strong>clang”</strong> and then ultimately if any functionality in the external linker could be abused.</p><p>This approach was validated after the author quickly skimmed through the <a href="https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Overall-Options.html#index-wrapper">documentation</a> of <strong>gcc</strong>:</p><blockquote>-wrapper</blockquote><blockquote>Invoke all subcommands under a wrapper program. The name of the wrapper program and its parameters are passed as a comma separated list.</blockquote><blockquote>gcc -c t.c -wrapper gdb, — args</blockquote><blockquote>This will invoke all subprograms of gcc under `gdb — args’, thus the invocation of cc1 will be `gdb — args cc1 …’.</blockquote><p>Great! This seems like it could do what we want. Let’s put it all together and try.</p><h3><strong>Proof-of-Concept</strong></h3><p>Running this curl command:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/885/1*Vs_SFtOAktdSkgzfhApQng.png" /><figcaption>Curl command for executing the correct parameters and values for exploiting the dynamic agent compilation function in the Caldera server.</figcaption></figure><p>Should result in:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/961/1*_vSwMdftGRCcpgyquDgleQ.png" /><figcaption>Caldera server terminal output with displayed evidence of successful exploitation of vulnerability.</figcaption></figure><p><strong>Pwned!</strong></p><h4><strong>Conclusion</strong></h4><p>As of writing, this vulnerability has been reported to the MITRE Caldera team and patched in the code base. <strong>The MITRE Caldera team recommends users to immediately pull down the the latest version (either Master branch or v5.1.0+) of Caldera</strong>. The vulnerability has been documented in <strong>CVE-2025–27364</strong>. This post will be updated as public CVE records are created. The MITRE Caldera Team also sincerely thanks <strong>Dawid Kulikowski</strong> for his initial reporting of the vulnerability and subsequent support in patching the affected Caldera code. <strong>Thank you Dawid</strong>.</p><p>A small change is applied to break the proof-of-concept seen here, to prevent script kiddies from being able to easily abuse it. One must investigate the Caldera source code to identify the required modifications, as copy-pasting the proof-of-concept shown here will not fully work.</p><p>The reporting author intends to release a fully-featured Metasploit module in the coming week(s), so patch your instances! Or even better — don’t expose them to the internet!</p><p><strong><em>Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5f679e2e2a0e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing a continuing MITRE Caldera™ Benefactor — NVISO!]]></title>
            <link>https://medium.com/@mitrecaldera/announcing-a-continuing-mitre-caldera-benefactor-nviso-619f97d36716?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/619f97d36716</guid>
            <category><![CDATA[mitre]]></category>
            <category><![CDATA[adversary-emulation]]></category>
            <category><![CDATA[caldera]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Thu, 16 Jan 2025 15:16:57 GMT</pubDate>
            <atom:updated>2025-01-16T15:16:57.253Z</atom:updated>
            <content:encoded><![CDATA[<h3>Announcing a continuing MITRE Caldera™ Benefactor — NVISO!</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*ECKx1PFofcZNc5pfJUclBg.jpeg" /></figure><p><strong><em>Authors:</em></strong> <em>Michael Kouremetis</em></p><p>The MITRE Caldera project would like to announce a continuing benefactor — <a href="https://www.nviso.eu/">NVISO</a>! The Caldera project extends its deepest appreciation to NVISO for its second donation and for directly supporting the MITRE Caldera platform. NVISO’s donation will go to keeping Caldera open source and supporting our upcoming FY25 community initiatives.</p><p>Thank you, NVISO.</p><p><strong>Interested in becoming a MITRE Caldera™ Benefactor?</strong></p><p>Become a MITRE Caldera Benefactor! Through your charitable giving you can directly help in sustaining and advancing the Caldera Adversary Emulation platform. Donations are directly applied to platform development and maintenance, academic and community engagement, and cutting-edge R&amp;D. To show our thanks, Caldera Benefactors are also the recipient of many benefits, to include being recognized as a benefactor of MITRE Caldera and announcement as well as collaboration and briefings with the Caldera leadership team. For more details see the benefactor program link below.</p><p><strong>Caldera Benefactor Program Form:</strong> <a href="https://hubs.ly/Q01Wgc3V0">https://hubs.ly/Q01Wgc3V0</a></p><p>Want to learn a little more about the Caldera Benefactor program first? Feel free to reach out to us at <a href="mailto:caldera@mitre.org">caldera@mitre.org</a> for a conversation.</p><p><strong><em>Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><p><strong>©2025 The MITRE Corporation. All rights reserved.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=619f97d36716" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to implement custom parsers for MITRE Caldera™]]></title>
            <link>https://medium.com/@mitrecaldera/how-to-implement-custom-parsers-for-mitre-caldera-f2e1b21e3da4?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/f2e1b21e3da4</guid>
            <category><![CDATA[red-teaming]]></category>
            <category><![CDATA[adversary-emulation]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[caldera]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Mon, 06 Jan 2025 15:50:18 GMT</pubDate>
            <atom:updated>2025-01-06T15:50:18.850Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/572/1*CYvI1pNOZgPGcY9CLxqz0Q.png" /></figure><p><strong><em>Authors</em></strong><em>: Louis Hacklander-Jansen</em></p><p>Hey Caldera Community! We just wanted to cross-post <strong>Louis Hacklander-Jansen</strong>’s recent post on working with MITRE Caldera parsers. Thank you Louis!</p><p>Checkout out Louis’s great post <a href="https://medium.com/@L015H4CK/how-to-implement-custom-parsers-for-mitre-caldera-095f78f7ce20">here</a>!</p><p><strong><em>Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f2e1b21e3da4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing new MITRE Caldera™ Benefactor — SANS Institute!]]></title>
            <link>https://medium.com/@mitrecaldera/announcing-new-mitre-caldera-benefactor-sans-institute-b5c8bd66dd06?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/b5c8bd66dd06</guid>
            <category><![CDATA[sans-institute]]></category>
            <category><![CDATA[caldera]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Thu, 02 Jan 2025 19:27:17 GMT</pubDate>
            <atom:updated>2025-01-02T19:27:17.988Z</atom:updated>
            <content:encoded><![CDATA[<h3><strong>Announcing new MITRE Caldera™ Benefactor — SANS Institute!</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NjiVa4KxSVOgEQeGcWYKNQ.png" /></figure><p><strong><em>Authors:</em></strong> <em>Michael Kouremetis</em></p><p>The MITRE Caldera project would like to announce our new benefactor — <a href="https://www.sans.org/offensive-operations/">SANS Institute</a>! The Caldera project extends its deepest appreciation to the SANS team for its donation and for directly supporting the MITRE Caldera platform. The Caldera project team, as longtime fans and supporters of the SANS Institute, is very excited to establish this benefactor relationship and strengthen collaboration between our teams. The SANS donation will go to keeping Caldera open source and supporting our upcoming FY25 project initiatives.</p><p>Thank you, SANS.</p><p><strong>Interested in becoming a MITRE Caldera™ Benefactor?</strong></p><p>Become a MITRE CalderaTM Benefactor! Through your charitable giving you can directly help in sustaining and advancing the Caldera Adversary Emulation platform. Donations are directly applied to platform development and maintenance, academic and community engagement, and cutting-edge R&amp;D. To show our thanks, Caldera Benefactors are also the recipient of many benefits, to include being recognized as a benefactor of MITRE Caldera and announcement as well as collaboration and briefings with the Caldera leadership team. For more details see benefactor program link below.</p><p><strong>Caldera Benefactor Program Form:</strong> <a href="https://hubs.ly/Q01Wgc3V0">https://hubs.ly/Q01Wgc3V0</a></p><p>Want to learn a little more about the Caldera Benefactor program first? Feel free to reach out to us at <a href="mailto:caldera@mitre.org">caldera@mitre.org</a> for a conversation.</p><p><strong><em>Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><p><strong>©2024 The MITRE Corporation. All rights reserved.</strong></p><p><strong>Approved for public release. Distribution unlimited PR_24–02464–2.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b5c8bd66dd06" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Time to SubscribeCOV: New BACnet Plugin Abilities!]]></title>
            <link>https://medium.com/@mitrecaldera/time-to-subscribecov-new-bacnet-plugin-abilities-1fd618d83380?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/1fd618d83380</guid>
            <category><![CDATA[operational-technology]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <category><![CDATA[mitre]]></category>
            <category><![CDATA[bacnet]]></category>
            <category><![CDATA[industrial-control-system]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Tue, 10 Dec 2024 19:03:19 GMT</pubDate>
            <atom:updated>2024-12-10T19:14:48.896Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/475/1*elNrV025ujdnS_5LmsHYIw.png" /></figure><p><strong><em>Authors:</em></strong><em> Misha Belisle &amp; Blaine Jeffries</em></p><p>The MITRE Caldera™ for OT team is proud to announce updates to the BACnet plugin. As with the initial release of this OT plugin, these abilities are open source and completely free to use. The BACnet plugin is <a href="https://github.com/mitre/bacnet">available to download</a> from our GitHub repository. Or, if you have an existing version downloaded, you can pull the latest commit for the new content.</p><p>With this update, the BACnet plugins introduces <strong>8 new OT abilities</strong> (available for both Windows and Linux OS environments), for a total of <strong>60 distinct OT abilities</strong>. Practitioners are now enabled to execute additional BACnet protocol functionality, such as GetEventInformation and ReinitializeDevice. Supplementary abilities “<em>BACnet Device Collection</em>” and “<em>BACnet Object Collection</em>” provide users with select preconfigured options to gather device information.</p><p>As before, we extend our thanks and recognize the developers of the libraries Caldera for OT is dependent on. These BACnet updates continue to leverage <a href="https://github.com/bacnet-stack/bacnet-stack/tree/bacnet-stack-1.0">bacnet-stack</a> .</p><p>To share some BACnet background and highlight some of the new abilities:</p><ul><li>BACnet, short for “Building Automation and Control Network” is a data communication protocol that leverages an object-oriented model for describing process controls and devices. Data exists as standardized objects, which are defined by various properties. Implemented as OT abilities, services enable users to interact with these objects and their properties.</li><li>OT Abilities fall into the following categories of BACnet services: Alarm and Event, File Access, Object Access, Remote Device Management. For example, “BACnet Who-Is”, part of the initial release, is classified as Remote Device Management can be used to obtain information on other BACnet devices that share the same internetwork as the sender. By discovering key information, such as the Device object identifier, it is then possible to collect additional information on objects’ properties using abilities such as “BACnet Read Property” or the newly added “BACnet Read Property Multiple”, both of which are Object Access services.</li></ul><p>As with the initial release, the BACnet plugin’s documentation has been updated to reflect guidance on these new abilities, description accessible in-app with the Caldera <strong><em>fieldmanual </em></strong>plugin. This same documentation can also be accessed directly via <strong><em>bacnet/docs/bacnet.md</em></strong>.</p><p>If you are brand new to Caldera or just need a quick refresher, check out the core <a href="https://caldera.readthedocs.io/en/latest/">documentation</a>. There you will find everything you need to get Caldera up and running on your own infrastructure. The Caldera server is intentionally lightweight and portable so that it can be deployed on a standard laptop.</p><p>We are thrilled to bring you these additions to the original BACnet capability, and as always, are eager to hear your feedback. If you have technical comments, please utilize GitHub to report issues and/or contribute!</p><p>We can also be reached at the following:</p><ul><li><a href="mailto:OT@mitre.org">OT@mitre.org</a> — ask to join our Distribution List</li><li><a href="https://join.slack.com/t/mitre-caldera/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ">Caldera Slack</a> — find us Caldera slack</li></ul><p>As always, we a handful of resources available, from blog posts to podcasts:</p><p><strong><em>Caldera for OT Resources</em></strong></p><p><a href="https://github.com/mitre/caldera-ot">Caldera for OT GitHub</a></p><p><a href="https://speakerdeck.com/bjeffries/emulating-adversary-actions-in-the-operational-environment-with-caldera-for-ot">SANS ICS Slides</a></p><p><a href="https://www.youtube.com/watch?v=j5i_S3kBS9M">SecurityWeek ICS Recording</a></p><p><a href="https://federalnewsnetwork.com/cybersecurity/2023/09/a-new-way-for-organizations-to-launch-cyber-attacks-against-themselves/">Federal Drive Podcast</a></p><p><a href="https://nexusconnect.io/podcasts/nexus-podcast-mitre-on-caldera-for-ot">Nexus Podcast</a></p><p><a href="https://podcasts.apple.com/us/podcast/nick-tsamis-leveraging-mitres-adversary-emulation-platform/id1662081824?i=1000631850449">The PrOTect OT Cybersecurity Podcast</a></p><p><strong><em>Caldera Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><p><strong>©2024 The MITRE Corporation. All rights reserved.</strong></p><p><strong>Approved for public release. Distribution unlimited.</strong></p><p><strong>Case #PR_24–02464–1.</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1fd618d83380" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[(Research Highlight) Red Team Redemption: A Structured Comparison of Open-Source Tools for…]]></title>
            <link>https://medium.com/@mitrecaldera/research-highlight-red-team-redemption-a-structured-comparison-of-open-source-tools-for-5fa9d8d1b5c0?source=rss-f37c4de90ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/5fa9d8d1b5c0</guid>
            <category><![CDATA[adversary-emulation]]></category>
            <category><![CDATA[cybersecurity]]></category>
            <category><![CDATA[red-teaming]]></category>
            <category><![CDATA[mitre-caldera]]></category>
            <dc:creator><![CDATA[MITRE Caldera]]></dc:creator>
            <pubDate>Tue, 15 Oct 2024 16:00:36 GMT</pubDate>
            <atom:updated>2024-12-10T18:50:42.482Z</atom:updated>
            <content:encoded><![CDATA[<h3>(Research Highlight) Red Team Redemption: A Structured Comparison of Open-Source Tools for Adversary Emulation</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/572/1*CYvI1pNOZgPGcY9CLxqz0Q.png" /></figure><p><em>Author: Michael Kouremetis</em></p><p>The MITRE Caldera™ team just wanted to highlight what is, at least in our view, a well done survey of adversary emulation tools recently conducted by cyber security researchers out of the <strong><em>Center for Digital Safety &amp; Security, of the Austrian Institute of Technology</em></strong>. We found the survey to be of high quality, arguably the best methodical evaluation of adversary emulation tools (that we have seen), and most importantly useful. We can now just send back this survey when asked about a comparison of open source adversary emulation tooling , which happens a lot around here :). So a big thank you to the authors from the Caldera team.</p><p>Kudos to the authors <strong><em>Max Landauer, Klaus Mayer, Florian Skopik, Markus Wurzenberger, </em></strong><em>and</em><strong><em> Manuel Kern.</em></strong></p><p><strong>Paper link:</strong> <a href="https://arxiv.org/abs/2408.15645">https://arxiv.org/abs/2408.15645</a></p><p><em>*Note on survey evaluation results:</em></p><p>Yes, MITRE Caldera was ranked highly by the authors in their independent survey but that’s not why we are sharing the survey. We are sharing the survey because it is a very good survey, period. Additionally, the Caldera team believes in having many tool suites, and always using the best tool for the job. Not to mention that our team uses at least half of the other tools surveyed, and that Caldera makes significant use of one of the other evaluated tools (i.e. Atomic Red Team).</p><p><strong><em>Resources</em></strong></p><p><a href="http://caldera.mitre.org/">Caldera Homepage</a></p><p><a href="https://github.com/mitre/caldera">Caldera GitHub</a></p><p><a href="https://caldera.readthedocs.io/en/latest/">Caldera Documentation</a></p><p><a href="https://mitre-caldera.slack.com/join/shared_invite/zt-rvngjjpw-OQHAqpUT87DcyClTosF8dQ#/shared-invite/email">Caldera Users Slack</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5fa9d8d1b5c0" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>