<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mochammad Farros Fatchur Roji</title>
    <description>The latest articles on DEV Community by Mochammad Farros Fatchur Roji (@farros).</description>
    <link>https://dev.to/farros</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3406072%2Feae2c3bd-a7ee-4436-a03b-fdb652e0d665.jpg</url>
      <title>DEV Community: Mochammad Farros Fatchur Roji</title>
      <link>https://dev.to/farros</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/farros"/>
    <language>en</language>
    <item>
      <title>Computer Types | TryHackMe Write-up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/computer-types-tryhackme-write-up-51ag</link>
      <guid>https://dev.to/farros/computer-types-tryhackme-write-up-51ag</guid>
      <description>&lt;p&gt;This is my write-up for the TryHackMe room on &lt;a href="https://tryhackme.com/room/computertypes" rel="noopener noreferrer"&gt;Computer Types&lt;/a&gt;. Written in 2026, I hope this write-up helps others learn and practice cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;Sophia discovers that computers are not limited to traditional laptops and phones; they are also hidden inside everyday objects like smart refrigerators. The goal of this section is to help you identify and differentiate between direct-use computers (laptops, smartphones) and indirect ones (servers, IoT devices, embedded systems) based on their purposes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ready to find the hidden computers?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Sophia’s Summer of Hidden Computers – Month 1
&lt;/h2&gt;

&lt;p&gt;Sophia learns that computers are built differently depending on their intended use. Laptops offer portability but struggle with sustained performance due to cooling limitations. Desktops provide steady, sustained performance at a fixed location. Workstations are specialized for precision and reliability in professional tasks. Finally, Servers operate entirely without screens or keyboards, running continuously to provide services to multiple users over a network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which computer type usually runs without a dedicated screen and keyboard?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Server&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What kind of computer with specialized components would one buy to carry out precision work?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Workstation&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: Sophia’s Summer of Hidden Computers – Month 2
&lt;/h2&gt;

&lt;p&gt;Millions of computers hide in plain sight inside everyday objects. Smartphones are the most popular pocket-sized computers, while tablets offer a touch-first experience. The main difference between IoT and Embedded systems is connectivity: IoT devices (like smart doorbells) connect to a network for single-purpose tasks, whereas embedded computers (found inside coffee machines or automatic doors) operate silently inside a machine and often never connect to the internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the currently most popular pocket-sized computer?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Smartphone&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What kind of computer would you expect to find in a coffee machine?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Embedded computer&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: Why Computers Come in Different Flavors
&lt;/h2&gt;

&lt;p&gt;Computers come in different types because every design involves trade-offs. Making a device mobile means sacrificing sustained power, while making a system highly reliable increases the cost due to redundancy (extra power supplies and disks). There is no single "best" computer; the design is entirely shaped by its specific purpose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go through the attached static site and get the flag.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fledbpazjd6sr3wj914jc.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fledbpazjd6sr3wj914jc.webp" alt="hidden computer" width="563" height="584"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzewei94k1662b2lv4ysa.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzewei94k1662b2lv4ysa.webp" alt="pc" width="563" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workstation: edit 4K video all day.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Server: Host a website 24/7.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embedded: Ring when button pressed.&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why do laptops throttle more than desktops?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Less cooling space&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What does server redundancy prevent?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Single point of failure&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Why do smartphones last longer on battery than laptops?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Optimized for efficiency&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which feature is more common in workstations?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ECC RAM and certified drivers&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In many smart homes, what coordinates devices?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hub or cloud service&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvfz675ra93g1aegn4aa.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvfz675ra93g1aegn4aa.webp" alt="8 computer type" width="563" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{8_computer_types}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: Summary
&lt;/h2&gt;

&lt;p&gt;Sophia concludes her internship by realizing that computers are everywhere, often running silently in the background to keep daily life functioning (like opening doors or flying planes). The module covered eight distinct types of computers and the specific trade-offs involved in choosing the right tool for a given job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Room complete!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thanks for reading. See you in the next lab.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>cybersecurity</category>
      <category>iot</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Exploring Medusa JS for Scalable B2B Commerce</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sat, 07 Feb 2026 23:03:00 +0000</pubDate>
      <link>https://dev.to/farros/exploring-medusa-js-for-scalable-b2b-commerce-3egi</link>
      <guid>https://dev.to/farros/exploring-medusa-js-for-scalable-b2b-commerce-3egi</guid>
      <description>&lt;h2&gt;
  
  
  Why I’m Looking Beyond Traditional Platforms
&lt;/h2&gt;

&lt;p&gt;When building a &lt;strong&gt;B2B e-commerce platform&lt;/strong&gt; , the challenges are usually not about themes or plugins, but about &lt;strong&gt;architecture&lt;/strong&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom pricing logic2&lt;/li&gt;
&lt;li&gt;Flexible product structures&lt;/li&gt;
&lt;li&gt;Integration with internal systems&lt;/li&gt;
&lt;li&gt;Scalability without vendor lock-in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Popular platforms like Magento are mature and powerful, but also come with &lt;strong&gt;complexity and operational overhead&lt;/strong&gt;. For newer projects where flexibility and long-term maintainability matter, I started exploring &lt;strong&gt;Medusa JS&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Medusa JS?
&lt;/h2&gt;

&lt;p&gt;Medusa JS is an &lt;strong&gt;open-source, headless commerce backend&lt;/strong&gt;. Conceptually, it sits in a similar space to Shopify—but instead of a hosted SaaS, Medusa is &lt;strong&gt;self-hosted and API-first&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In practice, this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You own the backend&lt;/li&gt;
&lt;li&gt;You control the data&lt;/li&gt;
&lt;li&gt;You design the frontend freely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it particularly interesting for &lt;strong&gt;custom B2B workflows&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyifwfba7qlp2nugj2o31.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyifwfba7qlp2nugj2o31.webp" alt="alt text" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a high level, the setup looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt; : Medusa JS (Node.js)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt; : PostgreSQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt; : Next.js (or any framework consuming APIs)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional&lt;/strong&gt; : Redis for caching and background jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend exposes clean APIs, while business logic is organized into &lt;strong&gt;services, entities, subscribers, and plugins&lt;/strong&gt;. From an architectural standpoint, this separation is a big plus for long-term maintenance.&lt;/p&gt;




&lt;h2&gt;
  
  
  Early Observations (Pros &amp;amp; Cons)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0dw1v9c1wfxmfu0k2q1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0dw1v9c1wfxmfu0k2q1.webp" alt="alt text" width="800" height="673"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Looks Promising
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript-first stack&lt;/strong&gt; : Easier onboarding for modern web teams&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API-driven design&lt;/strong&gt; : Clean separation between frontend and backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modular extensibility&lt;/strong&gt; : Plugins and custom services feel natural&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PostgreSQL as a core dependency&lt;/strong&gt; : Solid choice for transactional systems&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Things to Be Careful About
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The ecosystem is still &lt;strong&gt;young compared to Magento&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Documentation is good, but &lt;strong&gt;real-world examples are limited&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Requires more architectural decisions upfront&lt;/li&gt;
&lt;li&gt;Not ideal for teams looking for a “click-and-deploy” solution&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Current Status: Testing &amp;amp; Validation
&lt;/h2&gt;

&lt;p&gt;Right now, I’m still in the &lt;strong&gt;early-stage testing phase&lt;/strong&gt; , running Medusa on a VPS and validating:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deployment stability&lt;/li&gt;
&lt;li&gt;Data modeling for B2B use cases&lt;/li&gt;
&lt;li&gt;Integration patterns with a custom frontend&lt;/li&gt;
&lt;li&gt;Operational complexity in real environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not about replacing mature platforms blindly, but about &lt;strong&gt;understanding where Medusa fits best&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Medusa JS is &lt;strong&gt;not a silver bullet&lt;/strong&gt; , but for teams that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;need full control,&lt;/li&gt;
&lt;li&gt;value open-source,&lt;/li&gt;
&lt;li&gt;and are comfortable designing their own architecture,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;…it’s a very compelling option.&lt;/p&gt;

&lt;p&gt;I’ll be sharing more findings once the testing phase progresses.&lt;/p&gt;




&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Docs &amp;amp; Quick Start: &lt;a href="https://docs.medusajs.com" rel="noopener noreferrer"&gt;https://docs.medusajs.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/medusajs/medusa" rel="noopener noreferrer"&gt;https://github.com/medusajs/medusa&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>javascript</category>
      <category>node</category>
    </item>
    <item>
      <title>n8n: CVE-2025-68613 | TryHackMe Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Thu, 25 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/n8n-cve-2025-68613-tryhackme-write-up-dn2</link>
      <guid>https://dev.to/farros/n8n-cve-2025-68613-tryhackme-write-up-dn2</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/n8ncve202568613" rel="noopener noreferrer"&gt;n8n: CVE-2025-68613&lt;/a&gt;, Learn how adversaries can exploit the CVE-2025-68613 vulnerability in n8n. Hope it is useful for learning about cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;CVE-2025-68613 is a critical vulnerability (CVSS 9.9) in the n8n workflow automation platform, published in December 2025. This vulnerability is a Remote Code Execution (RCE) flaw found in the workflow expression evaluation system, affecting versions 0.211.0 through 1.120.3. It allows authenticated attackers to execute system-level commands by injecting malicious JavaScript code. Users are strongly advised to update to patched versions (1.120.4, 1.121.1, or 1.122.0) to secure their instances.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s dive into the technical details.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Technical Background
&lt;/h2&gt;

&lt;p&gt;n8n is built on Node.js and uses an Expression Evaluation System to process dynamic user input wrapped in &lt;code&gt;{{ }}&lt;/code&gt;. The vulnerability exists because this system lacks proper sandboxing. An attacker can escape the intended context by using &lt;code&gt;this&lt;/code&gt; to access the global Node.js object. The exploit chain typically involves accessing &lt;code&gt;this.process.mainModule&lt;/code&gt;, loading the &lt;code&gt;child_process&lt;/code&gt; module via &lt;code&gt;require()&lt;/code&gt;, and finally executing system commands (e.g., &lt;code&gt;execSync('id')&lt;/code&gt;). This demonstrates a fundamental breach of security boundaries where user expressions gain access to the underlying runtime environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In this exploit, what is the name of the module that allowed us to execute system commands?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;child_process&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: Exploitation
&lt;/h2&gt;

&lt;p&gt;To exploit this vulnerability, an attacker logs into the n8n dashboard (e.g., using &lt;code&gt;tryhackme@thm.local&lt;/code&gt;) and creates a new workflow. The method involves adding a "Manual Trigger" connected to an "Edit Fields (Set)" node. Inside the "Edit Fields" node, the attacker adds a new field and pastes the malicious JavaScript payload (containing the sandbox escape code) into the value field. Upon clicking "Execute step," the code runs on the server, and the output of the system command (such as the &lt;code&gt;id&lt;/code&gt; command) is displayed in the interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbybqn80k4acrqj9qrgtu.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbybqn80k4acrqj9qrgtu.webp" alt="alt text" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Landing page after logging into the n8n dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3hy5puu70h0373z82ys.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3hy5puu70h0373z82ys.webp" alt="alt text" width="800" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating a new workflow by selecting Start from scratch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qffx9uk829r94fhs75t.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qffx9uk829r94fhs75t.webp" alt="alt text" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choosing Manual Trigger as the first workflow step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmparmih88ddpoy8h9r0l.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmparmih88ddpoy8h9r0l.webp" alt="alt text" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adding the Edit Fields (Set) node to the workflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdqa6t1h48k6ylf9sor7.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdqa6t1h48k6ylf9sor7.webp" alt="alt text" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Injecting the malicious JavaScript expression into a new field.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ir0az1ygeewcdjnj2zk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ir0az1ygeewcdjnj2zk.webp" alt="alt text" width="800" height="572"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Executing the workflow step to trigger server-side command execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e0n7kcksxj0c94rfm4z.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e0n7kcksxj0c94rfm4z.webp" alt="alt text" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Successful execution of the id command, confirming RCE.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpo10budji3azgz2slzb.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbpo10budji3azgz2slzb.webp" alt="alt text" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reading the flag file (flag.txt) directly from the server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM()&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: Detection
&lt;/h2&gt;

&lt;p&gt;Since n8n's native logging is limited, detection is best achieved by using a proxy (like Nginx) to log web request bodies. Security teams can use Sigma rules to scan these logs for specific patterns in POST requests to &lt;code&gt;/rest/workflows&lt;/code&gt;, looking for keywords like &lt;code&gt;this.process.mainModule&lt;/code&gt;, &lt;code&gt;execSync&lt;/code&gt;, and &lt;code&gt;child_process&lt;/code&gt;. Additionally, it is critical to monitor the operating system for suspicious process creation events—such as reverse shells or reconnaissance commands—to identify post-exploitation activity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depending on your environment, ensure that your security solutions are detecting threats targeting your web applications and infrastructure.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: Conclusion
&lt;/h2&gt;

&lt;p&gt;This vulnerability highlights the severe risks associated with insecure expression evaluation and flawed trust boundaries between user input and the application runtime. Understanding this exploit helps in developing better detection strategies that focus on context escalation patterns. The most effective mitigation is to ensure the n8n server is upgraded to a secure, patched version immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you enjoyed this room, consider checking other rooms in the Recent Threats module.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>automation</category>
      <category>cybersecurity</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Splunk | Advent of Cyber 2025 Day 3 Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sun, 21 Dec 2025 21:31:00 +0000</pubDate>
      <link>https://dev.to/farros/splunk-advent-of-cyber-2025-day-3-write-up-250b</link>
      <guid>https://dev.to/farros/splunk-advent-of-cyber-2025-day-3-write-up-250b</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/splunkforloganalysis-aoc2025-x8fj2k4rqp" rel="noopener noreferrer"&gt;Splunk | Advent of Cyber 2025 (Day 3)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the extracted material formatted according to your requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;The story begins in Wareville, where The Best Festival Company (TBFC) is preparing for Christmas. However, a ransom message from King Malhare appears, threatening to turn the holiday into "EAST-mas." With the network under attack and McSkidy missing, the SOC team must utilize &lt;strong&gt;Splunk&lt;/strong&gt; to investigate the ransomware infiltration and stop the plan.&lt;/p&gt;

&lt;p&gt;The learning objectives for this task include ingesting custom log data, creating field extractions, using Search Processing Language (SPL), and conducting a forensic investigation. The environment contains a pre-configured Splunk instance with the necessary logs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I successfully have access to the Splunk instance!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Log Analysis with Splunk
&lt;/h2&gt;

&lt;p&gt;In this task, we investigate the incident using two pre-ingested datasets: &lt;code&gt;web_traffic&lt;/code&gt; (web server logs) and &lt;code&gt;firewall_logs&lt;/code&gt; (traffic allowed/blocked). The investigation process follows these steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Initial Triage:&lt;/strong&gt; querying &lt;code&gt;index=main&lt;/code&gt; reveals a massive spike in traffic. Using &lt;code&gt;timechart&lt;/code&gt;, we can pinpoint the exact day of the attack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anomaly Detection:&lt;/strong&gt; Analyzing the &lt;code&gt;user_agent&lt;/code&gt; field shows suspicious tools (unlike standard Mozilla/Chrome browsers). Filtering out benign traffic reveals a single attacker IP address.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tracing the Attack Chain:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reconnaissance:&lt;/strong&gt; The attacker used tools like &lt;code&gt;curl&lt;/code&gt; and &lt;code&gt;wget&lt;/code&gt; to probe for configuration files (e.g., &lt;code&gt;/.env&lt;/code&gt;, &lt;code&gt;/.git&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enumeration:&lt;/strong&gt; Path traversal attempts (&lt;code&gt;../../&lt;/code&gt;) were detected to access system files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitation:&lt;/strong&gt; SQL Injection attacks were identified via user agents like &lt;code&gt;sqlmap&lt;/code&gt; and &lt;code&gt;Havij&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exfiltration:&lt;/strong&gt; Large files (&lt;code&gt;backup.zip&lt;/code&gt;, &lt;code&gt;logs.tar.gz&lt;/code&gt;) were downloaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ransomware Staging:&lt;/strong&gt; A web shell (&lt;code&gt;shell.php&lt;/code&gt;) was used to execute a ransomware binary (&lt;code&gt;bunnylock.bin&lt;/code&gt;), confirming Remote Code Execution (RCE).&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;C2 Correlation:&lt;/strong&gt; By pivoting to &lt;code&gt;firewall_logs&lt;/code&gt;, we confirmed the compromised server (10.10.1.5) established an outbound connection to the attacker's IP, transferring a significant volume of data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is the attacker IP found attacking and compromising the web server?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;index=main sourcetype=web_traffic&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4jfkgnodvvkvlmwkj2m.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4jfkgnodvvkvlmwkj2m.webp" alt="alt text" width="800" height="833"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;198.51.100.55&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which day was the peak traffic in the logs?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;index=main sourcetype=web_traffic&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l2fxtxfniyemgaerspx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8l2fxtxfniyemgaerspx.webp" alt="alt text" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;2025-10-12&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What is the count of Havij user_agent events found in the logs?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;index=main sourcetype=web_traffic user_agent=&lt;em&gt;Havij&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5ex8w9utxa242b0wphl.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd5ex8w9utxa242b0wphl.webp" alt="alt text" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;993&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;How many path traversal attempts to access sensitive files on the server were observed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;index=main sourcetype=web_traffic path="&lt;em&gt;../../&lt;/em&gt;"&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pj6zn30ffovb4gjtg4l.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pj6zn30ffovb4gjtg4l.webp" alt="alt text" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;658&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Examine the firewall logs. How many bytes were transferred to the C2 server IP from the compromised web server?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;index=main sourcetype=firewall_logs action=ALLOWED| stats sum(bytes_transferred)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmd6q5pc0gwprbkbz4orl.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmd6q5pc0gwprbkbz4orl.webp" alt="alt text" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;126167&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;If you enjoyed today's room, check out the Incident Handling With Splunk room to learn more about analyzing logs with Splunk.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>cybersecurity</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Phising | Advent of Cyber 2025 Day 2 Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sun, 21 Dec 2025 06:35:00 +0000</pubDate>
      <link>https://dev.to/farros/phising-advent-of-cyber-2025-day-2-write-up-41c7</link>
      <guid>https://dev.to/farros/phising-advent-of-cyber-2025-day-2-write-up-41c7</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/phishing-aoc2025-h2tkye9fzU" rel="noopener noreferrer"&gt;Phising | Advent of Cyber 2025 (Day 2)&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;This section introduces the scenario: The Best Festival Company (TBFC) has faced security threats, prompting a Red Team assessment. You are working with "Recon McRed" and others to execute a phishing campaign to test employee diligence. The objective is to learn about social engineering, types of phishing, creating fake login pages, and using the Social-Engineer Toolkit. This task also involves initializing the necessary AttackBox and Target VM environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have successfully started the AttackBox and the target machine!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Phishing Exercise for TBFC
&lt;/h2&gt;

&lt;p&gt;This task dives into the mechanics of social engineering and phishing. It defines &lt;strong&gt;Social Engineering&lt;/strong&gt; as manipulating humans into making security mistakes by exploiting psychology (urgency, curiosity, authority), and &lt;strong&gt;Phishing&lt;/strong&gt; as a subset of this using communication mediums like email.&lt;/p&gt;

&lt;p&gt;The task outlines the &lt;strong&gt;S.T.O.P.&lt;/strong&gt; method for defense (Suspicious, Telling, Offering, Pushing) and guides the user through a Red Team attack simulation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Building the Trap:&lt;/strong&gt; A fake TBFC login page script (&lt;code&gt;server.py&lt;/code&gt;) is provided. When run, it hosts a web server on port 8000 to capture credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delivery:&lt;/strong&gt; Using the &lt;strong&gt;Social-Engineer Toolkit (SET)&lt;/strong&gt; (&lt;code&gt;setoolkit&lt;/code&gt;), the attacker configures a "Mass Mailer Attack".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration:&lt;/strong&gt; The email is spoofed to look like it comes from "Flying Deer" (&lt;code&gt;updates@flyingdeer.thm&lt;/code&gt;) and is sent to &lt;code&gt;factory@wareville.thm&lt;/code&gt; via the internal SMTP server. The body contains the link to the malicious server (&lt;code&gt;http://&amp;lt;IP&amp;gt;:8000&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitation:&lt;/strong&gt; Once the target clicks the link and logs in, the credentials are captured in the attacker's terminal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;What is the password used to access the TBFC portal?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyntd1pkjlx5r9hhigyed.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyntd1pkjlx5r9hhigyed.webp" alt="alt text" width="762" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;unranked-wisdom-anthem&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Browse to &lt;a href="http://10.49.171.168" rel="noopener noreferrer"&gt;http://10.49.171.168&lt;/a&gt; from within the AttackBox and try to access the mailbox of the factory user to see if the previously harvested admin password has been reused on the email portal. What is the total number of toys expected for delivery?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wu238mgn02ba6ybqim4.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wu238mgn02ba6ybqim4.webp" alt="alt text" width="760" height="844"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1if34womd7m4xa0pz3z5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1if34womd7m4xa0pz3z5.webp" alt="alt text" width="763" height="817"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;1984000&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;If you enjoyed today's room, feel free to check out the Phishing Prevention room.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Linux CLI | Advent of Cyber 2025 Day 1 Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sat, 20 Dec 2025 15:40:00 +0000</pubDate>
      <link>https://dev.to/farros/linux-cli-advent-of-cyber-2025-day-1-write-up-41d</link>
      <guid>https://dev.to/farros/linux-cli-advent-of-cyber-2025-day-1-write-up-41d</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/linuxcli-aoc2025-o1fpqkvxti" rel="noopener noreferrer"&gt;Linux CLI | Advent of Cyber 2025 (Day 1)&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;The narrative begins with the kidnapping of McSkidy, leaving Wareville's defenses vulnerable to King Malhare. The investigation centers on &lt;strong&gt;tbfc-web01&lt;/strong&gt; , a Linux server responsible for processing Christmas wishlists. The goal is to use the Linux command-line interface (CLI) to find clues about the attack. Users are instructed to start the attached virtual machine and can connect via the browser-based split view or SSH using the provided credentials (&lt;code&gt;mcskidy&lt;/code&gt; / &lt;code&gt;AoC2025!&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have successfully started my virtual machine!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Linux CLI
&lt;/h2&gt;

&lt;p&gt;This task provides a crash course in using the Linux CLI for investigation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic Commands &amp;amp; Navigation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;echo "text"&lt;/code&gt;&lt;/strong&gt; : Prints text to the terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ls&lt;/code&gt;&lt;/strong&gt; : Lists directory contents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cat filename&lt;/code&gt;&lt;/strong&gt; : Displays the contents of a file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cd Directory&lt;/code&gt;&lt;/strong&gt; : Changes the current directory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hidden Files&lt;/strong&gt; : Files starting with a dot (e.g., &lt;code&gt;.guide.txt&lt;/code&gt;) are hidden. They can be viewed using &lt;code&gt;ls -la&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Investigation Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Grepping Logs:&lt;/strong&gt; The guide instructs users to look into &lt;code&gt;/var/log/&lt;/code&gt; for security events. The &lt;code&gt;grep&lt;/code&gt; command is used to filter large log files, specifically looking for "Failed password" in &lt;code&gt;auth.log&lt;/code&gt; to identify unauthorized login attempts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finding Files:&lt;/strong&gt; The &lt;code&gt;find&lt;/code&gt; command (e.g., &lt;code&gt;find /home/socmas -name *egg*&lt;/code&gt;) is used to locate specific files, revealing a malicious script named &lt;code&gt;eggstrike.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyzing Scripts:&lt;/strong&gt; The malicious script utilizes special shell features:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pipe (&lt;code&gt;|&lt;/code&gt;)&lt;/strong&gt;: Sends the output of one command to another (e.g., &lt;code&gt;sort | uniq&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Redirect (&lt;code&gt;&amp;gt;&lt;/code&gt;)&lt;/strong&gt;: Overwrites a file with output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic (&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;)&lt;/strong&gt;: Runs the next command only if the previous one succeeds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;System Administration:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Root User&lt;/strong&gt; : The superuser with full permissions. Users can switch to root using &lt;code&gt;sudo su&lt;/code&gt; and verify their identity with &lt;code&gt;whoami&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bash History&lt;/strong&gt; : A history of executed commands is stored in &lt;code&gt;.bash_history&lt;/code&gt;. Checking the root user's history reveals the attacker's activities, including the flag.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Which CLI command would you use to list a directory?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ls&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Complete on machine&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80q5v79rxam5ag1qtq0c.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80q5v79rxam5ag1qtq0c.webp" alt="alt text" width="765" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which command helped you filter the logs for failed logins?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;grep&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Complete on machine&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faffkma5n8fppjgbfal34.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faffkma5n8fppjgbfal34.webp" alt="alt text" width="741" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which command would you run to switch to the root user?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;sudo su&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Finally, what flag did Sir Carrotbane leave in the root bash history?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkgebuy7jz32ic6c8nz2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flkgebuy7jz32ic6c8nz2.webp" alt="alt text" width="763" height="895"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{}&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;For those who consider themselves intermediate and want another challenge, check McSkidy's hidden note in /home/mcskidy/Documents/ to get access to the key for Side Quest 1! Accessible through our Side Quest Hub!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Enjoyed investigating in a Linux environment? Check out our Linux Logs Investigations room for more like this!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cli</category>
      <category>cybersecurity</category>
      <category>linux</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Advent of Cyber Prep Track | TryHackMe Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Sat, 20 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/advent-of-cyber-prep-track-tryhackme-write-up-367i</link>
      <guid>https://dev.to/farros/advent-of-cyber-prep-track-tryhackme-write-up-367i</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/adventofcyberpreptrack" rel="noopener noreferrer"&gt;Advent of Cyber Prep Track&lt;/a&gt;. Get ready for the Advent of Cyber 2025 with the "Advent of Cyber Prep Track", a series of warm-up tasks aimed to get beginners ready for this year's event.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Welcome to Advent of Cyber 2025
&lt;/h2&gt;

&lt;p&gt;This task introduces the Advent of Cyber 2025 event. The story is set in Wareville, where the "SOC-mas" tradition is threatened by King Malhare. The event features daily beginner-friendly security challenges. Participants can win from a $150,000 prize pool (including MacBooks, iPhones, and Flipper Zeros) by completing rooms by December 31, 2025. Strict rules prohibit cheating, bot usage, and attacking other users or infrastructure. A certificate is awarded for completing all rooms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Got it!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: How to use TryHackMe
&lt;/h2&gt;

&lt;p&gt;This section explains the technical interface of TryHackMe. It details how to use the "AttackBox" (a web-based Ubuntu VM) and how to deploy standard Virtual Machines (VMs) for tasks. It covers the split-screen view feature, direct links for specific tools, and alternative connection methods using OpenVPN or direct remote connections (RDP/SSH/VNC) when credentials are provided.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Got it!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: Join our community
&lt;/h2&gt;

&lt;p&gt;This task encourages participants to join the TryHackMe social channels for updates and support. It highlights the Discord server (with over 326,000 members) as the main hub for connecting with other hackers and getting help. Links are provided for LinkedIn, X (Twitter), Instagram, Facebook, Reddit, and TikTok. It also mentions available Advent of Cyber swag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Got it!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: Introduction
&lt;/h2&gt;

&lt;p&gt;The narrative begins with snow falling in Wareville at The Best Festival Company (TBFC). Systems are glitching due to suspected interference by King Malhare. Before the main event starts, users are tasked with 10 short "warm-up" missions to practice essential cybersecurity skills. The interface instruction explains how to use the "View Site" button to open challenges in split-screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Warm me up!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: Challenge 1 — Password Pandemonium
&lt;/h2&gt;

&lt;p&gt;McSkidy's workstation has flagged weak passwords. This challenge focuses on the importance of strong passwords as a defense mechanism. The objective is to create a secure password that meets specific criteria: at least 12 characters, including uppercase, lowercase, numbers, and symbols, and ensuring it does not appear in a breach database.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0xyoyz4llhnhtlwjl7p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0xyoyz4llhnhtlwjl7p.webp" alt="alt text" width="730" height="697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 6: Challenge 2 — The Suspicious Chocolate.exe
&lt;/h2&gt;

&lt;p&gt;A mysterious USB labeled "SOCMAS Party Playlist" contains a suspicious file named &lt;code&gt;chocolate.exe&lt;/code&gt;. This task simulates using a malware analysis tool (like VirusTotal). The user must scan the file to review its report and determine if it is safe or malicious based on the scan results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01c7o2jfwis79o0xgasm.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F01c7o2jfwis79o0xgasm.webp" alt="alt text" width="724" height="833"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 7: Challenge 3 — Welcome to the AttackBox
&lt;/h2&gt;

&lt;p&gt;This task introduces the AttackBox environment and the command line interface (CLI). It emphasizes that defenders must be comfortable with the CLI. The objective is to use basic Linux commands: &lt;code&gt;ls&lt;/code&gt; to list files, &lt;code&gt;cd&lt;/code&gt; to navigate directories, and &lt;code&gt;cat&lt;/code&gt; to read a text file named &lt;code&gt;welcome.txt&lt;/code&gt; to find the hidden message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg6sirgwc6gs99ey4an8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftg6sirgwc6gs99ey4an8.webp" alt="alt text" width="747" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 8: Challenge 4 — The CMD Conundrum
&lt;/h2&gt;

&lt;p&gt;McSkidy's workstation shows signs of tampering with logs wiped and strange folders created. The task focuses on using the Windows Command Prompt to investigate. The user is required to use the &lt;code&gt;dir&lt;/code&gt; command to list files and specifically &lt;code&gt;dir /a&lt;/code&gt; to reveal hidden files, then use &lt;code&gt;type&lt;/code&gt; to read the content of a hidden flag file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgdgzjo37ip7oe4km6t5.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgdgzjo37ip7oe4km6t5.webp" alt="alt text" width="714" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 9: Challenge 5 — Linux Lore
&lt;/h2&gt;

&lt;p&gt;Delivery drones are glitching, and an investigation points to a login from a Linux server. This challenge highlights the importance of navigating Linux filesystems. The objective is to find a hidden message in McSkidy’s home directory by entering the folder and using &lt;code&gt;ls -la&lt;/code&gt; to reveal hidden "dotfiles" (like &lt;code&gt;.secret_message&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8kh9ebjrji476nuqjnx.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8kh9ebjrji476nuqjnx.webp" alt="alt text" width="709" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 10: Challenge 6 — The Leak in the List
&lt;/h2&gt;

&lt;p&gt;There are rumors of a data leak at TBFC. This task simulates using a breach checking tool (similar to Have I Been Pwned). The objective is to check McSkidy’s email address (&lt;code&gt;mcskidy@tbfc.com&lt;/code&gt;) against a database to see if the account has been compromised in any known data breaches.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7wf1k9ezzd5tav7oxiq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7wf1k9ezzd5tav7oxiq.webp" alt="alt text" width="712" height="987"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 11: Challenge 7 — WiFi Woes in Wareville
&lt;/h2&gt;

&lt;p&gt;Drones are behaving erratically because someone logged into the company router using default credentials. This task emphasizes the security risk of leaving default passwords active. The user must log into the router using &lt;code&gt;admin&lt;/code&gt;/&lt;code&gt;admin&lt;/code&gt;, navigate to security settings, and update the password to a secure one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r6tr3ba4c56uwh5xf19.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r6tr3ba4c56uwh5xf19.webp" alt="alt text" width="739" height="921"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 12: Challenge 8 — The App Trap
&lt;/h2&gt;

&lt;p&gt;McSkidy's social account is posting strange messages due to a suspicious third-party application. The task teaches how to manage and review app permissions to prevent data leaks. The objective is to identify a connected app with excessive permissions (such as access to a password vault) and revoke its access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8yi251yhaz7oi0ne7tf.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8yi251yhaz7oi0ne7tf.webp" alt="alt text" width="751" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 13: Challenge 9 — The Chatbot Confession
&lt;/h2&gt;

&lt;p&gt;The AI assistant, FestiveBot, has been leaking internal secrets. This task focuses on the risks of AI oversharing sensitive data. The user must review the chatbot's conversation history to identify specific lines where the bot revealed private information, such as internal URLs or passwords.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkskrw64r6l3z3xwxnqc8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkskrw64r6l3z3xwxnqc8.webp" alt="alt text" width="736" height="1023"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 14: Challenge 10 — The Bunny’s Browser Trail
&lt;/h2&gt;

&lt;p&gt;Web servers are experiencing heavy traffic with a suspicious log entry. This task introduces log analysis and "User Agent" strings. The user needs to review HTTP logs to distinguish between standard browser traffic (Chrome, Firefox, Edge) and identifying a suspicious entry coming from "BunnyOS".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the flag?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghmkhyjff9s9cyyh1srg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghmkhyjff9s9cyyh1srg.webp" alt="alt text" width="748" height="877"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM(REDACTED)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 15: The Finish Line
&lt;/h2&gt;

&lt;p&gt;This final task wraps up the Prep Track. It confirms that the user has completed the warm-up challenges, covering topics from Linux CLI to Prompt Injection. The user is now familiar with the key tools needed for the main event and is ready to participate in Advent of Cyber 2025 to help save SOC-mas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bring on Advent of Cyber 2025!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>beginners</category>
      <category>cybersecurity</category>
      <category>infosec</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Threat Modelling | TryHackMe Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/threat-modelling-tryhackme-write-up-3585</link>
      <guid>https://dev.to/farros/threat-modelling-tryhackme-write-up-3585</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/capabasics" rel="noopener noreferrer"&gt;Threat Modelling&lt;/a&gt; (Premium Room), building cyber resiliency and emulation capabilities through threat modelling.. I wrote this in 2025 and hope it is useful for learning about cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;Threat modelling is a proactive approach to identifying vulnerabilities, prioritising threats, and implementing security measures to safeguard critical assets. In the modern cyber security landscape, relying solely on reactive measures is insufficient against sophisticated threat actors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Objectives:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand the significance of threat modelling for organisational resiliency.&lt;/li&gt;
&lt;li&gt;Learn the fundamentals of modelling significant threats.&lt;/li&gt;
&lt;li&gt;Explore frameworks such as &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; , &lt;strong&gt;DREAD&lt;/strong&gt; , &lt;strong&gt;STRIDE&lt;/strong&gt; , and &lt;strong&gt;PASTA&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt; It is recommended to have knowledge of Threat Emulation and Principles of Security before starting this module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's start modelling threats!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Threat Modelling Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is Threat Modelling?&lt;/strong&gt; It is a systematic approach to identifying, prioritising, and addressing potential security threats. By simulating attack scenarios and assessing vulnerabilities, organisations can reduce risk exposure and allocate resources effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Definitions (The "House" Analogy):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Threat:&lt;/strong&gt; Potential occurrence or actor (e.g., a burglar).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability:&lt;/strong&gt; A weakness or flaw (e.g., broken locks).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk:&lt;/strong&gt; The likelihood of compromise (e.g., living in a high-crime area).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;High-Level Process:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define Scope:&lt;/strong&gt; Identify systems/networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Identification:&lt;/strong&gt; Diagram architecture and identify critical data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify Threats:&lt;/strong&gt; pinpoint potential attacks (cyber, physical, social engineering).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Vulnerabilities &amp;amp; Prioritise Risks:&lt;/strong&gt; Assess impact and likelihood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Countermeasures:&lt;/strong&gt; Design and implement controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor &amp;amp; Evaluate:&lt;/strong&gt; Continuously test effectiveness.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Attack Trees:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An attack tree is a graphical representation used to analyse threats. The root node represents the attacker's goal (e.g., "Gain unauthorised access"), while branches represent the techniques and paths used to achieve that goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a weakness or flaw in a system, application, or process that can be exploited by a threat?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;vulnerability&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Based on the provided high-level methodology, what is the process of developing diagrams to visualise the organisation's architecture and dependencies?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Asset Identification&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What diagram describes and analyses potential threats against a system or application?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;attack tree&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: Modelling with MITRE ATT&amp;amp;CK
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Framework:&lt;/strong&gt; The &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; (Adversarial Tactics, Techniques, and Common Knowledge) framework is a global knowledge base of adversary behaviour. It is organised into a matrix of &lt;strong&gt;Tactics&lt;/strong&gt; (high-level objectives) and &lt;strong&gt;Techniques&lt;/strong&gt; (methods used).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components of a Technique Page:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Details of the technique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedure Examples:&lt;/strong&gt; Real-world usage by threat actors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigations:&lt;/strong&gt; Recommended security measures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detections:&lt;/strong&gt; Strategies/indicators to identify the technique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Integration into Threat Modelling:&lt;/strong&gt; MITRE ATT&amp;amp;CK is mapped after the "Identify Threats" phase. By mapping threats to specific ATT&amp;amp;CK techniques, security teams can derive specific mitigations and detection strategies. It aids in developing threat scenarios, identifying attack paths, and prioritising vulnerability remediation based on real-world threat group data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the technique ID of "Exploit Public-Facing Application"?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;T1190&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Under what tactic does this technique belong?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Initial Access&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: Mapping with ATT&amp;amp;CK Navigator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ATT&amp;amp;CK Navigator:&lt;/strong&gt; This is an open-source, web-based tool designed to visualise and navigate the MITRE ATT&amp;amp;CK matrix. It allows users to create custom layers to map techniques relevant to their specific environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Selection Controls:&lt;/strong&gt; Search and select techniques by keywords, threat groups (e.g., APT41), or software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer Controls:&lt;/strong&gt; Filter by platform (Windows, Linux, etc.), sort, and export data (JSON, Excel, SVG).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technique Controls:&lt;/strong&gt; Annotate specific techniques with scores, background colours, comments, and metadata to highlight risks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; In a financial services context using GCP and web apps, an analyst can map threat groups like APT28 or FIN7 to the matrix. This helps prioritise critical vulnerabilities such as &lt;em&gt;Exploit Public-Facing Application (T1190)&lt;/em&gt; or &lt;em&gt;Data from Cloud Storage (T1530)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many MITRE ATT&amp;amp;CK techniques are attributed to APT33?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;31&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Upon applying the IaaS platform filter, how many techniques are under the Discovery tactic?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;13&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: DREAD Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; Developed by Microsoft, &lt;strong&gt;DREAD&lt;/strong&gt; is a risk assessment model used for qualitative risk analysis. It prioritises threats based on the average score (1-10) of five categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The DREAD Categories:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Damage:&lt;/strong&gt; How bad would the attack be? (e.g., data loss, downtime).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility:&lt;/strong&gt; How easy is it to reproduce the attack?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitability:&lt;/strong&gt; How much work/skill is required to launch the attack?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Users:&lt;/strong&gt; How many people are impacted?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discoverability:&lt;/strong&gt; How easy is it to find the vulnerability?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Guidelines:&lt;/strong&gt; To reduce subjectivity, organisations should establish standardised scoring definitions, encourage team collaboration for scoring justification, and use DREAD alongside other methodologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What DREAD component assesses the potential harm from successfully exploiting a vulnerability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Damage&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What DREAD component evaluates how others can easily find and identify the vulnerability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Discoverability&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which DREAD component considers the number of impacted users when a vulnerability is exploited?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Affected Users&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 6: STRIDE Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt;** STRIDE &lt;strong&gt;is a threat modelling methodology used primarily in software development and system design. It identifies threats by categorising them into six types, each violating a specific aspect of the&lt;/strong&gt; CIA Triad** (Confidentiality, Integrity, Availability) or related security policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Categories:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spoofing:&lt;/strong&gt; Impersonating a user/system (Violates: Authentication).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tampering:&lt;/strong&gt; Modifying data/code (Violates: Integrity).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repudiation:&lt;/strong&gt; Denying actions due to lack of logging (Violates: Non-repudiation).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Information Disclosure:&lt;/strong&gt; Unauthorised access to data (Violates: Confidentiality).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Denial of Service:&lt;/strong&gt; Disrupting availability (Violates: Availability).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elevation of Privilege:&lt;/strong&gt; Gaining unauthorised access levels (Violates: Authorisation).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt; The process involves decomposing the system, applying STRIDE categories to each component, assessing the risk, and developing specific countermeasures (e.g., using DMARC to prevent email spoofing).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What foundational information security concept does the STRIDE framework build upon?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CIA Triad&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What policy does Information Disclosure violate?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Confidentiality&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which STRIDE component involves unauthorised modification or manipulation of data?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tampering&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which STRIDE component refers to the disruption of the system's availability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Denial of Service&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Insecure web application search functionality leading to SQL injection.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tampering&lt;/li&gt;
&lt;li&gt;Information Disclosure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Insecure AWS Infrastructure (EC2, S3, RDS) without load balancers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Information Disclosure&lt;/li&gt;
&lt;li&gt;Denial of Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mail server with no logging enabled.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spoofing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unpatched employee workstations.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tampering&lt;/li&gt;
&lt;li&gt;Elevation of Privilages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha0ty888mymg91438k0p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha0ty888mymg91438k0p.webp" alt="alt text" width="800" height="871"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provide the flag for the simulated threat modelling exercise.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{_}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 7: PASTA Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt;** PASTA** (Process for Attack Simulation and Threat Analysis) is a risk-centric, seven-step framework. It aligns threat modelling with business objectives and technical requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Seven-Step Methodology:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define Objectives:&lt;/strong&gt; Establish scope and compliance requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define Technical Scope:&lt;/strong&gt; Inventory assets and understand architecture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decompose Application:&lt;/strong&gt; Map data flows, trust boundaries, and components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Threats:&lt;/strong&gt; Identify threat sources (internal/external).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerabilities Analysis:&lt;/strong&gt; Scan for weaknesses (static analysis, pentesting).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Attacks:&lt;/strong&gt; Simulate attack scenarios to verify risks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk and Impact Analysis:&lt;/strong&gt; Develop countermeasures based on risk tolerance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt; PASTA is highly adaptable, fosters collaboration between developers/architects/business stakeholders, and ensures security efforts directly support business goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In which step of the framework do you break down the system into its components?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Decompose the Application&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;During which step of the PASTA framework do you simulate potential attack scenarios?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Analyse the Attacks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In which step of the PASTA framework do you create an inventory of assets?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Define the Technical Scope&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Process Flow Diagram
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Strategic Planning&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Architecture&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software Development&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Information Security&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strategic Planning&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Quiz Questions and Answers
&lt;/h3&gt;

&lt;p&gt;What should be the top priority for the online banking platform, as mentioned by the Business Analyst?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Protecting customers’ personal and financial data, securing transactions, and ensuring service availability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the System Architect, what are the primary technical assets of the online banking system?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Amazon EC2, RDS, and S3 services&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What components of the application did the Lead Developer highlight during the 'Decompose the Application' phase?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;User registration, account management, fund transfers, bill payments, and account statements&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the Security Engineer, which type of threat is NOT considered for the online banking platform?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Social engineering attacks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which vulnerability was mentioned by the Security Engineer as a potential issue for the online banking platform?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cloud Infrastructure Misconfigurations&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the Security Engineer, which mitigation strategy does match the identified threats?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Account lockouts&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the "Risk and Impact Analysis" phase, what potential consequence of a successful attack was mentioned by the Business Analyst?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Financial loss and significant reputational damage&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Provide the flag for the simulated threat modelling exercise.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{_}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 8: ConclusionWe have covered four distinct frameworks, each with unique applications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATT&amp;amp;CK:&lt;/strong&gt; Best for mapping real-world adversary tactics and testing existing controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DREAD:&lt;/strong&gt; Best for numerical prioritisation of risks based on damage and exploitability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;STRIDE:&lt;/strong&gt; Best for software development, focusing on categorising threats (Spoofing, Tampering, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PASTA:&lt;/strong&gt; Best for a holistic, risk-centric approach that aligns with business objectives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Leveraging these frameworks helps enhance threat awareness, prioritise mitigation, and improve overall organisational resilience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have completed the Threat Modelling room.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>farrosfr</category>
    </item>
    <item>
      <title>Threat Modelling | THM Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/threat-modelling-thm-write-up-14eh</link>
      <guid>https://dev.to/farros/threat-modelling-thm-write-up-14eh</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/capabasics" rel="noopener noreferrer"&gt;Threat Modelling&lt;/a&gt; (Premium Room), building cyber resiliency and emulation capabilities through threat modelling.. I wrote this in 2025 and hope it is useful for learning about cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;Threat modelling is a proactive approach to identifying vulnerabilities, prioritising threats, and implementing security measures to safeguard critical assets. In the modern cyber security landscape, relying solely on reactive measures is insufficient against sophisticated threat actors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Objectives:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand the significance of threat modelling for organisational resiliency.&lt;/li&gt;
&lt;li&gt;Learn the fundamentals of modelling significant threats.&lt;/li&gt;
&lt;li&gt;Explore frameworks such as &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; , &lt;strong&gt;DREAD&lt;/strong&gt; , &lt;strong&gt;STRIDE&lt;/strong&gt; , and &lt;strong&gt;PASTA&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt; It is recommended to have knowledge of Threat Emulation and Principles of Security before starting this module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's start modelling threats!&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Threat Modelling Overview
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What is Threat Modelling?&lt;/strong&gt; It is a systematic approach to identifying, prioritising, and addressing potential security threats. By simulating attack scenarios and assessing vulnerabilities, organisations can reduce risk exposure and allocate resources effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Definitions (The "House" Analogy):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Threat:&lt;/strong&gt; Potential occurrence or actor (e.g., a burglar).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability:&lt;/strong&gt; A weakness or flaw (e.g., broken locks).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk:&lt;/strong&gt; The likelihood of compromise (e.g., living in a high-crime area).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;High-Level Process:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define Scope:&lt;/strong&gt; Identify systems/networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Asset Identification:&lt;/strong&gt; Diagram architecture and identify critical data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify Threats:&lt;/strong&gt; pinpoint potential attacks (cyber, physical, social engineering).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Vulnerabilities &amp;amp; Prioritise Risks:&lt;/strong&gt; Assess impact and likelihood.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Countermeasures:&lt;/strong&gt; Design and implement controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor &amp;amp; Evaluate:&lt;/strong&gt; Continuously test effectiveness.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Attack Trees:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An attack tree is a graphical representation used to analyse threats. The root node represents the attacker's goal (e.g., "Gain unauthorised access"), while branches represent the techniques and paths used to achieve that goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is a weakness or flaw in a system, application, or process that can be exploited by a threat?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;vulnerability&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Based on the provided high-level methodology, what is the process of developing diagrams to visualise the organisation's architecture and dependencies?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Asset Identification&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What diagram describes and analyses potential threats against a system or application?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;attack tree&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: Modelling with MITRE ATT&amp;amp;CK
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Framework:&lt;/strong&gt; The &lt;strong&gt;MITRE ATT&amp;amp;CK&lt;/strong&gt; (Adversarial Tactics, Techniques, and Common Knowledge) framework is a global knowledge base of adversary behaviour. It is organised into a matrix of &lt;strong&gt;Tactics&lt;/strong&gt; (high-level objectives) and &lt;strong&gt;Techniques&lt;/strong&gt; (methods used).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components of a Technique Page:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Details of the technique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Procedure Examples:&lt;/strong&gt; Real-world usage by threat actors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigations:&lt;/strong&gt; Recommended security measures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detections:&lt;/strong&gt; Strategies/indicators to identify the technique.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Integration into Threat Modelling:&lt;/strong&gt; MITRE ATT&amp;amp;CK is mapped after the "Identify Threats" phase. By mapping threats to specific ATT&amp;amp;CK techniques, security teams can derive specific mitigations and detection strategies. It aids in developing threat scenarios, identifying attack paths, and prioritising vulnerability remediation based on real-world threat group data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the technique ID of "Exploit Public-Facing Application"?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;T1190&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Under what tactic does this technique belong?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Initial Access&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: Mapping with ATT&amp;amp;CK Navigator
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ATT&amp;amp;CK Navigator:&lt;/strong&gt; This is an open-source, web-based tool designed to visualise and navigate the MITRE ATT&amp;amp;CK matrix. It allows users to create custom layers to map techniques relevant to their specific environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Selection Controls:&lt;/strong&gt; Search and select techniques by keywords, threat groups (e.g., APT41), or software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer Controls:&lt;/strong&gt; Filter by platform (Windows, Linux, etc.), sort, and export data (JSON, Excel, SVG).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technique Controls:&lt;/strong&gt; Annotate specific techniques with scores, background colours, comments, and metadata to highlight risks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt; In a financial services context using GCP and web apps, an analyst can map threat groups like APT28 or FIN7 to the matrix. This helps prioritise critical vulnerabilities such as &lt;em&gt;Exploit Public-Facing Application (T1190)&lt;/em&gt; or &lt;em&gt;Data from Cloud Storage (T1530)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many MITRE ATT&amp;amp;CK techniques are attributed to APT33?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;31&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Upon applying the IaaS platform filter, how many techniques are under the Discovery tactic?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;13&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: DREAD Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt; Developed by Microsoft, &lt;strong&gt;DREAD&lt;/strong&gt; is a risk assessment model used for qualitative risk analysis. It prioritises threats based on the average score (1-10) of five categories.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The DREAD Categories:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Damage:&lt;/strong&gt; How bad would the attack be? (e.g., data loss, downtime).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility:&lt;/strong&gt; How easy is it to reproduce the attack?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitability:&lt;/strong&gt; How much work/skill is required to launch the attack?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected Users:&lt;/strong&gt; How many people are impacted?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Discoverability:&lt;/strong&gt; How easy is it to find the vulnerability?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Guidelines:&lt;/strong&gt; To reduce subjectivity, organisations should establish standardised scoring definitions, encourage team collaboration for scoring justification, and use DREAD alongside other methodologies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What DREAD component assesses the potential harm from successfully exploiting a vulnerability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Damage&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What DREAD component evaluates how others can easily find and identify the vulnerability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Discoverability&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which DREAD component considers the number of impacted users when a vulnerability is exploited?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Affected Users&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 6: STRIDE Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt;** STRIDE &lt;strong&gt;is a threat modelling methodology used primarily in software development and system design. It identifies threats by categorising them into six types, each violating a specific aspect of the&lt;/strong&gt; CIA Triad** (Confidentiality, Integrity, Availability) or related security policies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Categories:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Spoofing:&lt;/strong&gt; Impersonating a user/system (Violates: Authentication).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tampering:&lt;/strong&gt; Modifying data/code (Violates: Integrity).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repudiation:&lt;/strong&gt; Denying actions due to lack of logging (Violates: Non-repudiation).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Information Disclosure:&lt;/strong&gt; Unauthorised access to data (Violates: Confidentiality).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Denial of Service:&lt;/strong&gt; Disrupting availability (Violates: Availability).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Elevation of Privilege:&lt;/strong&gt; Gaining unauthorised access levels (Violates: Authorisation).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt; The process involves decomposing the system, applying STRIDE categories to each component, assessing the risk, and developing specific countermeasures (e.g., using DMARC to prevent email spoofing).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What foundational information security concept does the STRIDE framework build upon?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CIA Triad&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What policy does Information Disclosure violate?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Confidentiality&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which STRIDE component involves unauthorised modification or manipulation of data?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tampering&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which STRIDE component refers to the disruption of the system's availability?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Denial of Service&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Insecure web application search functionality leading to SQL injection.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tampering&lt;/li&gt;
&lt;li&gt;Information Disclosure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Insecure AWS Infrastructure (EC2, S3, RDS) without load balancers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Information Disclosure&lt;/li&gt;
&lt;li&gt;Denial of Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mail server with no logging enabled.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spoofing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unpatched employee workstations.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tampering&lt;/li&gt;
&lt;li&gt;Elevation of Privilages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha0ty888mymg91438k0p.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fha0ty888mymg91438k0p.webp" alt="alt text" width="800" height="871"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Provide the flag for the simulated threat modelling exercise.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{_}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 7: PASTA Framework
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Overview:&lt;/strong&gt;** PASTA** (Process for Attack Simulation and Threat Analysis) is a risk-centric, seven-step framework. It aligns threat modelling with business objectives and technical requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Seven-Step Methodology:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Define Objectives:&lt;/strong&gt; Establish scope and compliance requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Define Technical Scope:&lt;/strong&gt; Inventory assets and understand architecture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decompose Application:&lt;/strong&gt; Map data flows, trust boundaries, and components.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Threats:&lt;/strong&gt; Identify threat sources (internal/external).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerabilities Analysis:&lt;/strong&gt; Scan for weaknesses (static analysis, pentesting).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyse Attacks:&lt;/strong&gt; Simulate attack scenarios to verify risks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk and Impact Analysis:&lt;/strong&gt; Develop countermeasures based on risk tolerance.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt; PASTA is highly adaptable, fosters collaboration between developers/architects/business stakeholders, and ensures security efforts directly support business goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In which step of the framework do you break down the system into its components?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Decompose the Application&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;During which step of the PASTA framework do you simulate potential attack scenarios?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Analyse the Attacks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In which step of the PASTA framework do you create an inventory of assets?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Define the Technical Scope&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Process Flow Diagram
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Strategic Planning&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Architecture&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software Development&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Information Security&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strategic Planning&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Quiz Questions and Answers
&lt;/h3&gt;

&lt;p&gt;What should be the top priority for the online banking platform, as mentioned by the Business Analyst?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Protecting customers’ personal and financial data, securing transactions, and ensuring service availability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the System Architect, what are the primary technical assets of the online banking system?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Amazon EC2, RDS, and S3 services&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What components of the application did the Lead Developer highlight during the 'Decompose the Application' phase?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;User registration, account management, fund transfers, bill payments, and account statements&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the Security Engineer, which type of threat is NOT considered for the online banking platform?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Social engineering attacks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Which vulnerability was mentioned by the Security Engineer as a potential issue for the online banking platform?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Cloud Infrastructure Misconfigurations&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;According to the Security Engineer, which mitigation strategy does match the identified threats?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Account lockouts&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In the "Risk and Impact Analysis" phase, what potential consequence of a successful attack was mentioned by the Business Analyst?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Financial loss and significant reputational damage&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Provide the flag for the simulated threat modelling exercise.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{_}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 8: ConclusionWe have covered four distinct frameworks, each with unique applications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MITRE ATT&amp;amp;CK:&lt;/strong&gt; Best for mapping real-world adversary tactics and testing existing controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DREAD:&lt;/strong&gt; Best for numerical prioritisation of risks based on damage and exploitability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;STRIDE:&lt;/strong&gt; Best for software development, focusing on categorising threats (Spoofing, Tampering, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PASTA:&lt;/strong&gt; Best for a holistic, risk-centric approach that aligns with business objectives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Leveraging these frameworks helps enhance threat awareness, prioritise mitigation, and improve overall organisational resilience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I have completed the Threat Modelling room.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cybersecurity</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Learning Astro, Offensive Security, and CI/CD</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/learning-astro-offensive-security-and-cicd-459g</link>
      <guid>https://dev.to/farros/learning-astro-offensive-security-and-cicd-459g</guid>
      <description>&lt;p&gt;Alhamdulillah for the blessing and opportunity in the form of skills, namely Astro Framework, Offensive Security, and CI/CD Workflow. Below are the details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Astro Framework
&lt;/h2&gt;

&lt;p&gt;Around 2 months were dedicated to learning Astro, starting from a simple question to an AI about what kind of web framework is very fast and secure, and the answer pointed to Astro. At first it was still doubtful, since among so many JS frameworks, choosing Astro felt unusual. After reading further, FreeCodeCamp, which once helped with learning responsive web design for free, also recommended Astro. That gave additional confidence.&lt;/p&gt;

&lt;p&gt;During the learning process, it became clear that many large websites already use Astro, including Porsche. The community is also active and supportive. Joining the subreddit showed many people sharing the same surprise about how fast their sites become when built with Astro. More discussion about Astro Framework will probably come next time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offensive Security
&lt;/h2&gt;

&lt;p&gt;Interest in cybersecurity has existed since college, even with a statistics background. Cybersecurity feels different, with a kind of adrenaline that makes learning exciting. Early 2025 became the moment to finally dedicate proper time to it. TryHackMe became one of the most visited platforms, recommended by both international and local communities such as Merdeka Siber. Its beginner friendly structure helped clarify many fundamentals. Even the OSI 7 layers, which used to be unclear, finally made sense and revealed how the web functions.&lt;/p&gt;

&lt;p&gt;Further reading showed that cybersecurity is closely tied to write ups. One well known certification, OSCP, even allocates 12 hours for hacking and 12 hours for reporting, highlighting how important clear documentation is in the field.&lt;/p&gt;

&lt;h2&gt;
  
  
  CI/CD Workflow
&lt;/h2&gt;

&lt;p&gt;CI/CD naturally followed after exploring Astro Framework. Hosting used to be confusing, especially coming from the usual WordPress plus shared hosting setup. Today, many providers offer free hosting even for SSR, such as Netlify and Cloudflare Pages. Netlify's 300 build minutes limit felt restrictive, especially when each build takes about a minute and content continues to grow.&lt;/p&gt;

&lt;p&gt;GitHub Actions eventually became the preferred choice because it integrates directly with GitHub and offers more flexibility when the repository is public. Since making the repo public was not an issue, GitHub Actions became the main workflow, followed by purchasing a .com domain. A .dev domain was considered, but the scope of the work is broader than just development, so .com fit better.&lt;/p&gt;

&lt;p&gt;Thank you for reading :)&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>webdev</category>
      <category>cicd</category>
      <category>learning</category>
    </item>
    <item>
      <title>Governance &amp; Regulation | TryHackMe Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Thu, 11 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/governance-regulation-tryhackme-write-up-3n98</link>
      <guid>https://dev.to/farros/governance-regulation-tryhackme-write-up-3n98</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/cybergovernanceregulation" rel="noopener noreferrer"&gt;Governance &amp;amp; Regulation&lt;/a&gt;. Explore policies and frameworks vital for regulating cyber security in an organisation. I wrote this in 2025 and hope it is useful for learning about cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;Cybersecurity is a rapidly evolving landscape where malicious actors constantly exploit vulnerabilities to cause damage and steal data. To combat this, a comprehensive approach to &lt;strong&gt;information security governance and regulation&lt;/strong&gt; is essential, involving robust policies, monitoring, and enforcement. This room aims to teach the importance of GRC (Governance, Risk Management &amp;amp; Compliance), relevant international laws and standards (ISO 27001, NIST 800-53), and how to improve security posture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I am ready to start the room.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 2: Why is it important?
&lt;/h2&gt;

&lt;p&gt;This section defines key terminologies: &lt;strong&gt;Governance&lt;/strong&gt; (managing systems to achieve objectives), &lt;strong&gt;Regulation&lt;/strong&gt; (rules enforced by governing bodies), and &lt;strong&gt;Compliance&lt;/strong&gt; (adhering to laws). It details Information Security Governance processes such as Strategy, Policies, Risk Management, and Performance Measurement. It also lists key benefits like a robust security posture and stakeholder confidence, and provides examples of regulations like GDPR (Data Privacy), HIPAA (Healthcare), PCI-DSS (Financial), and GLBA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A rule or law enforced by a governing body to ensure compliance and protect against harm is called?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Regulation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Health Insurance Portability and Accountability Act (HIPAA) targets which domain for data protection?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Healthcare&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 3: Information Security Frameworks
&lt;/h2&gt;

&lt;p&gt;Information security frameworks consist of documents that govern how security is managed. These include &lt;strong&gt;Policies&lt;/strong&gt; (high-level goals), &lt;strong&gt;Standards&lt;/strong&gt; (mandatory requirements), &lt;strong&gt;Guidelines&lt;/strong&gt; (recommendations), &lt;strong&gt;Procedures&lt;/strong&gt; (step-by-step tasks), and &lt;strong&gt;Baselines&lt;/strong&gt; (minimum security levels). The development process involves identifying scope, research, drafting, review, implementation, and periodic updates. Real-world examples include creating Password Policies and Incident Response Procedures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The step that involves monitoring compliance and adjust the document based on feedback and changes in the threat landscape or regulatory environment is called?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Review and update&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;A set of specific steps for undertaking a particular task or process is called?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Procedure&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 4: Governance Risk and Compliance (GRC)
&lt;/h2&gt;

&lt;p&gt;GRC is a holistic framework integrating &lt;strong&gt;Governance&lt;/strong&gt; (strategy/direction), &lt;strong&gt;Risk Management&lt;/strong&gt; (identifying and mitigating risks), and &lt;strong&gt;Compliance&lt;/strong&gt; (meeting legal obligations). Developing a GRC program involves defining scope, conducting risk assessments, establishing governance processes, implementing controls (like Firewalls, IPS, IDS), and continuously monitoring and improving performance. In the financial sector, this includes Anti-Money Laundering policies and fraud risk management.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the component in the GRC framework involved in identifying, assessing, and prioritising risks to the organisation?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Risk Management&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Is it important to monitor and measure the performance of a developed policy?&lt;/strong&gt; (yea/nay)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;yea&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 5: Privacy and Data Protection
&lt;/h2&gt;

&lt;p&gt;This section covers regulations protecting Personally Identifiable Information (PII).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GDPR&lt;/strong&gt; : An EU regulation requiring prior approval for data collection, data minimization, and protection. It has tiered fines for non-compliance (Tier 1 can be up to 4% of revenue).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PCI DSS&lt;/strong&gt; : A standard for securing card transactions (Visa, MasterCard, etc.), requiring strict access control and encryption for Cardholder Data (CHD).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;[Image of GDPR Key Principles]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the maximum fine for Tier 1 users as per GDPR (in terms of percentage)?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;4&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In terms of PCI DSS, what does CHD stand for?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;cardholder data&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 6: NIST Special Publications
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NIST 800-53&lt;/strong&gt; : A catalog of security and privacy controls for information systems (e.g., Program Management). Compliance best practices include Discovery, Mapping controls to assets, and Governance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NIST 800-63B&lt;/strong&gt; : Guidelines for digital identity practices, focusing on authentication, verification, and credential management (passwords, biometrics).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Per NIST 800-53, in which control category does the media protection lie?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Physical&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Per NIST 800-53, in which control category does the incident response lie?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Administrative&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Which phase (name) of NIST 800-53 compliance best practices results in correlating identified assets and permissions?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Map&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 7: Information Security Management and Compliance
&lt;/h2&gt;

&lt;p&gt;This task contrasts IS Management (planning/execution of security) with Compliance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ISO/IEC 27001&lt;/strong&gt; : An international standard for Information Security Management Systems (ISMS). Key components include Risk Assessment, Risk Treatment, and the Statement of Applicability (SoA).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SOC 2&lt;/strong&gt; : An auditing framework by AICPA for service organizations, assessing controls based on the CIA triad and privacy. It assures clients that their data is handled securely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Which ISO/IEC 27001 component involves selecting and implementing controls to reduce the identified risks to an acceptable level?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Risk treatment&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;In SOC 2 generic controls, which control shows that the system remains available?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Availability&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task 8: Conclusion
&lt;/h2&gt;

&lt;p&gt;The room provided a comprehensive overview of governance and regulation frameworks used to protect organizational assets. It covered laws like GDPR and PCI DSS, the GRC framework, and enablers like ISO/IEC 27001 and NIST 800-53. The key takeaway is that while 100% security is unrealistic, robust policies and continuous improvement are essential for risk mitigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgr9yf8qlb2d6na6u9sjq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgr9yf8qlb2d6na6u9sjq.webp" alt="alt text" width="800" height="546"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cxp93isqqn5tayogx4a.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cxp93isqqn5tayogx4a.webp" alt="alt text" width="565" height="428"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a3uwzi6lokylkqvp4s2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a3uwzi6lokylkqvp4s2.webp" alt="alt text" width="800" height="556"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbglugjizrqbs5uw1aesg.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbglugjizrqbs5uw1aesg.webp" alt="alt text" width="800" height="554"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68x62cruiipms30yf5se.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68x62cruiipms30yf5se.webp" alt="alt text" width="800" height="556"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qfwneuvxh4k2hq5hf8i.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qfwneuvxh4k2hq5hf8i.webp" alt="alt text" width="562" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Click the View Site button at the top of the task to launch the static site in split view. What is the flag after completing the exercise?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{REDACTED}&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>management</category>
      <category>cybersecurity</category>
      <category>tutorial</category>
      <category>learning</category>
    </item>
    <item>
      <title>React2Shell: CVE-2025-55182 | TryHackMe Write-Up</title>
      <dc:creator>Mochammad Farros Fatchur Roji</dc:creator>
      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/farros/react2shell-cve-2025-55182-tryhackme-write-up-1j0n</link>
      <guid>https://dev.to/farros/react2shell-cve-2025-55182-tryhackme-write-up-1j0n</guid>
      <description>&lt;p&gt;Here i want to share about my write-up for the room &lt;a href="https://tryhackme.com/room/react2shellcve202555182" rel="noopener noreferrer"&gt;React2Shell: CVE-2025-55182&lt;/a&gt;, explore the CVE-2025-55182 vulnerability in React server components. I wrote this in 2025 and hope it is useful for learning about cybersecurity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Task 1: Introduction
&lt;/h2&gt;

&lt;p&gt;This task introduces CVE-2025-55182, dubbed "React2Shell," a critical vulnerability (CVSS 10.0) affecting React Server Components (RSC) and frameworks like Next.js. The flaw allows unauthenticated remote code execution via a specific HTTP request due to an unsafe deserialization issue. To mitigate this, users must update vulnerable packages (like &lt;code&gt;react-server-dom-webpack&lt;/code&gt;) to patched versions (e.g., 19.0.1+).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Having outlined the basics, let’s now dive into the key technical notes.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 2: Understanding React Server Components and the Flight Protocol
&lt;/h2&gt;

&lt;p&gt;This section explains the architecture of React Server Components (RSC), where components are rendered on the server for performance. The server-client communication relies on the &lt;strong&gt;React Flight&lt;/strong&gt; protocol, which handles data serialization using specific markers like &lt;code&gt;$@&lt;/code&gt; (for chunk references) and &lt;code&gt;$B&lt;/code&gt; (for Blob references). The vulnerability stems from the server processing these references without properly validating if the requested properties are legitimate exports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the symbol that denotes a Blob reference?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;$B&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 3: The Core Vulnerability: Unsafe Deserialization
&lt;/h2&gt;

&lt;p&gt;CVE-2025-55182 is identified as an &lt;em&gt;unsafe deserialization vulnerability&lt;/em&gt; located in the &lt;code&gt;requireModule&lt;/code&gt; function of the &lt;code&gt;react-server-dom-webpack&lt;/code&gt; package. The flaw exists because the code uses bracket notation (&lt;code&gt;moduleExports[metadata[2]]&lt;/code&gt;) without validation. This allows an attacker to traverse the prototype chain (e.g., accessing &lt;code&gt;.constructor&lt;/code&gt;) and obtain a reference to the global &lt;code&gt;Function&lt;/code&gt; constructor, enabling arbitrary code execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To deepen our understanding, let’s now study the exploitation chain through a proof-of-concept code analysis.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 4: The Exploitation Chain: From Deserialization to Remote Code Execution
&lt;/h2&gt;

&lt;p&gt;This task breaks down the exploit into three stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Creating a Fake Chunk:&lt;/strong&gt; The attacker constructs a malicious object that references itself via the &lt;code&gt;then&lt;/code&gt; property.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploiting the Blob Handler:&lt;/strong&gt; Using the &lt;code&gt;$B&lt;/code&gt; reference, the exploit triggers a function call (&lt;code&gt;_formData.get&lt;/code&gt;) on the malicious object, which has been polluted to point to the &lt;code&gt;Function&lt;/code&gt; constructor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Achieving Code Execution:&lt;/strong&gt; The payload (e.g., a Node.js &lt;code&gt;execSync&lt;/code&gt; command) is passed to the &lt;code&gt;Function&lt;/code&gt; constructor, executing the arbitrary command on the system.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Let’s analyse an actual proof-of-concept exploit in the next task.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 5: Analysing an Actual Proof-of-Concept
&lt;/h2&gt;

&lt;p&gt;The content analyzes the raw HTTP POST request used for the attack. It requires the &lt;code&gt;Next-Action: x&lt;/code&gt; header to trigger server-side processing. The body uses &lt;code&gt;multipart/form-data&lt;/code&gt; containing three specific parts: the fake chunk object with the payload, a reference to that object (&lt;code&gt;$@0&lt;/code&gt;), and an empty array. This vulnerability is highly critical because it affects default Next.js configurations and requires no authentication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s time to see the exploit in action.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 6: Exploitation
&lt;/h2&gt;

&lt;p&gt;In this practical task, users are instructed to use Burp Suite to attack a target VM on port 3000. The goal is to send the malicious payload to execute remote commands. The provided payload uses &lt;code&gt;execSync&lt;/code&gt; to run the &lt;code&gt;id&lt;/code&gt; command and returns the output in the server's response. The user must then modify the payload to read a flag located in &lt;code&gt;/etc&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Burp Suite is launched using a temporary project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8411s2xk81uxvv0mn79.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm8411s2xk81uxvv0mn79.webp" alt="alt text" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Burp Suite initializes and loads the project environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhn9zgkzihwliwmkjcm8.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhn9zgkzihwliwmkjcm8.webp" alt="alt text" width="800" height="564"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can confirm that you can view the app’s home page by visiting [IP_ADRESS]:3000. Now, it is time to exploit it. At the time of writing, our preferred choice is a payload that allows us to view the command execution result in the server’s response, as obtained from &lt;a href="https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478" rel="noopener noreferrer"&gt;https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A new Repeater tab is opened to craft the exploit request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ylm2ovgkikm3jgxwb2.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7ylm2ovgkikm3jgxwb2.webp" alt="alt text" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The malicious RSC payload is inserted into the request body.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm34dh9zuxxy13qa52a4q.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm34dh9zuxxy13qa52a4q.webp" alt="alt text" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The payload is modified to run ls /etc to search for the flag file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprgvc7hvengwwbjjl25.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzprgvc7hvengwwbjjl25.webp" alt="alt text" width="800" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The target IP and port (10.48.153.181:3000) are configured correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sfan1o0qsvcnqyn8h2g.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1sfan1o0qsvcnqyn8h2g.webp" alt="alt text" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the name of the user running the vulnerable app?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ubuntu&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The server response reveals the user information from the id command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nib59xeq4vn100665o1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nib59xeq4vn100665o1.webp" alt="alt text" width="520" height="704"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Listing /etc shows the presence of flag.txt.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49mzp546u9216kbiffki.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49mzp546u9216kbiffki.webp" alt="alt text" width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reading the file with cat /etc/flag.txt reveals the final flag.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm77tkcm60tcq9bgk6b9d.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm77tkcm60tcq9bgk6b9d.webp" alt="alt text" width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is the flag in /etc?&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;THM{}&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 7: Detection
&lt;/h2&gt;

&lt;p&gt;This section provides methods for detecting React2Shell attacks. The primary indicators are the presence of the &lt;code&gt;Next-Action&lt;/code&gt; header combined with &lt;code&gt;multipart/form-data&lt;/code&gt; containing specific suspicious JSON keys (like &lt;code&gt;"status": "resolved_model"&lt;/code&gt; or &lt;code&gt;"$1: __proto__ :then"&lt;/code&gt;). A &lt;strong&gt;Snort&lt;/strong&gt; rule is provided to detect these network signatures, and an &lt;strong&gt;OSQuery&lt;/strong&gt; snippet is offered to scan endpoints for vulnerable versions of &lt;code&gt;react-server-dom-*&lt;/code&gt; packages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I've read and am aware of the various elements that can be used to detect this vulnerability within my environment.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Task 8: Conclusion
&lt;/h2&gt;

&lt;p&gt;The conclusion reminds users to only perform penetration tests with explicit permission. It notes that many PoCs found online for this CVE are fake or broken. A valid PoC requires the specific vulnerable library versions (e.g., React 19.2.0, Next 16.0.6). The recommended mitigation is to run &lt;code&gt;npm audit&lt;/code&gt; and upgrade servers to patched versions immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you enjoyed this room, consider checking other rooms in the Recent Threats module.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No answer needed&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>cybersecurity</category>
      <category>react</category>
      <category>nextjs</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
