Security Review #234

November 29, 2024

The original question 'Can machines think? ' I believe to be too meaningless to deserve discussion.

— Alan Turing

Starred Articles

Lateral Movement on macOS: Unique and Popular Techniques and In-the-Wild Examples

In this article, we explore various lateral movement techniques for macOS, some of which are specific to macOS while others are shared by other operating systems. We'll also provide real-world examples to illustrate these methods and discuss detection opportunities.

From Guardian to Gateway: The Hidden Risks of EDR Vulnerabilities

In this blog post, we take a closer look at the security software Wazuh, where we identified two critical vulnerabilities: a heap buffer overflow (CVE-2024-32038) and a command injection (CVE-2023-50260). These vulnerabilities can be chained in an attack to move from initial access to full network compromise.

Cross-Site POST Requests Without a Content-Type Header

One interesting attempt at CSRF protection is the rejection of requests with a Content-Type header not equal to specific values. In this article, I would like to share an interesting caveat where the protection can be bypassed.

Jailbreaking your friendly, garden-variety, bomb-carrying robot dog

We details attacks on LLM-controlled robots, which, if jailbroken, could be fooled into causing physical harm in the real world. Our attacks successfully jailbreak a self-driving LLM, a wheeled academic robot, and, most concerningly, the Unitree Go2 robot dog, which is actively deployed in war zones and by law enforcement.

New Articles

Leveraging An Order of Operations Bug to Achieve RCE in Sitecore 8.x - 10.x

We discovered a security vulnerability in Sitecore that was exploitable due to an order of operations issue in the code. This vulnerability (CVE-2024-46938) allows an unauthenticated attacker to read arbitrary files from the local system. After downloading some specific files, achieving RCE is trivial by exploiting .NET ViewState deserialization.

Lateral Movement - Remote Desktop Protocol (RDP) - Part 2: Artifacts

In this seconf part, we'll focus on the main artifacts that you might come across when investigating RDP lateral movement: the bitmap cache, UserAssist, RecentApps, JumpLists, Prefetch, Shimcache and Amcache, registry keys, Background Activity Monitor and Desktop Activity Monitor and the default RDP file.

Cross-IdP impersonation: hijacking SSO using fraudulent IdPs

This article investigates Cross-IdP impersonation, a growing trend as a method of hijacking SSO to access downstream apps - without needing to compromise accounts on your company's main IdP.

Detection of "evil-winrm"

We explain a technique that can be used to detect Evil-WinRM operations, a post-exploitation tool that provides a streamlined and efficient way to interact with Windows systems via Windows Remote Management (WinRM).

Linux LKM Persistence

This article presents an alternative persistence mechanism for Linux, specifically loading kernel modules at boot time.

Hunting Malicious Shortcut (.LNK) Files Using the VirusTotal API

This post will discuss methodology for leveraging the VirusTotal (VT) API to gather malicious LNK samples and subsequently tailoring analytics to hunt for observed trends. The analytics presented are for Microsoft Defender for Endpoint (MDE) using KQL.

LLVM-powered devirtualization

This article introduces a technique allowing efficient analysis of malware protected by virtualization, one of the most popular, and potent forms of obfuscation today.

Ruby 3.4 Universal RCE Deserialization Gadget Chain

We provide improvements to the existing gadget chains: loading of the URI module, use alternative module to perform RCE and avoid the exception being raised after executing the gadget chain.

Leveling Up Fuzzing: Finding more vulnerabilities with AI

This blog post discusses the results and lessons over a year and a half of work to bring AI-powered fuzzing to a point where it will find vulnerabilities all by itself, both in introducing AI into fuzz target generation and expanding this to simulate a developer's workflow.

FortiClient VPN Logging Blind Spot Revealed

In this article, we will share with you how we found a way to outsmart Fortinet's logging mechanism and will provide a solution together with a fun, simple script to test against your own Fortinet VPN server.

BitLocker enabled. Are you really protected?

Is BitLocker truly protecting you? We have a closer look at it, explain what TPM is and provide a brief workflow overview of how Bitlocker works.

New AMSI Bypass Technique Modifying CLR.DLL in Memory

In this post, I will present a new technique targeting CLR.DLL to prevent the runtime from passing reflectively loaded .NET modules to the installed anti-virus. This bypass will allow us to safely load our malicious binaries into memory undetected.

Bootkitty: Analyzing the first UEFI bootkit for Linux

Today, we unveil our latest discovery: the first UEFI bootkit designed for Linux systems, named Bootkitty. The bootkit's main goal is to disable the kernel's signature verification feature and to preload two as yet unknown ELF binaries via the Linux init process (which is the first process executed by the Linux kernel during system startup).

RomCom exploits Firefox and Windows zero days in the wild

We detail the analysis of a previously unknown vulnerability in Mozilla products exploited in the wild and another previously unknown Microsoft Windows vulnerability, combined in a zero-click exploit.

Create your own C2 using Python - Part 2

In this second part of the series we will add the ability to list processes , upload and download files and execute any command on the target.

Gaming Engines: An Undetected Playground for Malware Loaders

We discovered a new technique taking advantage of Godot Engine, a popular open-source game engine, to execute crafted GDScript, code which triggers malicious commands and delivers malware. The technique remains undetected by almost all antivirus engines in VirusTotal.

How detect a LD_PRELOAD rootkit and hide from ldd & /proc

In this post, in addition to learning some techniques to detect an LD_PRELOAD rootkit, we will learn how to hide it, to prevent these detections mentioned in the post from catching it.

Mutation XSS: Explained, CVE and Challenge

This post will explain the general idea of Mutation XSS, what tricks exist, and how to find bypasses. It also contains two examples of a CVE I found in the lxml_html_clean library and a hard challenge combining and showcasing two new tricks.

Badmalloc (CVE-2023-32428) - a macOS LPE

There's a bug in MallocStackLogging, Apple's "magical" framework that allows developers to debug application memory allocations. It allows modifications to sudoers files through race conditions, giving us rootshell.

Introduction to Fuzzing Android Native Components - Part 1

This article marks the beginning of a series on fuzzing native code in Android applications. In this first article, we will cover the fundamental concepts of fuzzing, the role of native components in Android applications, the use of the AFL++ fuzzer, and finally, we will create a harness to perform fuzzing on an example library.

How I Found RCE Vulnerability in an API Endpoint

I came across a Remote Code Execution (RCE) vulnerability in an R-based API endpoint. By exploiting it, I managed to retrieve sensitive system files and even establish a reverse shell on the server. This is the story of how I did it, explained step-by-step

MACF on macOS

This post introduces Mandatory Access Control Framework on macOS.

GRUB LUKS Bypass and Dump

I needed to get the data off of a LUKS encrypted partition on a Virtual Machine that "wasn't mine". This blog details different techniques to recover the encryption keys from memory.

Still Recent

Ancient Monkey: Pwning a 17-Year-Old Version of SpiderMonkey

I found a fun bug in the popular enterprise VPN solution Zscaler. The bug allowed us to escape from a string and execute arbitrary JavaScript in the context of the PAC file. In this article, we develop an exploit that leverages a 17 year old version of SpiderMonkey (Firefox's JS engine) on which the pacparser relies.

Cloud Services: Understanding Data Exfiltration and Investigation Techniques

In today's cybercrime landscape, attackers are increasingly turning to cloud services for data exfiltration. This article will help understanding how attackers use tools like rclone and MegaSync and how investigators can reconstruct attacker activities and gain insight into the extent of the breach.

Source of Logs in Azure - Part 1 : Tenant Logs

This series helps understanding where Azure logs come from, how to access them, and how to store them can significantly improve your ability to investigate incidents and mitigate risks. The first part will explain how to centralize logs, setup analytics, and then focus tenant logs.

Source of Logs in Azure - Part 2 : Tenant/Subscription Logs

This second part of the series will discuss some advanced topics regarding Tenants logs, such as exporting logs to a storage account and investigate through Storage Explorer. We will then address another type of logs: Subscription logs.

Investigating 0ktapus: Phishing Analysis & Detection

In this blog post, we will outline several techniques for investigating phishing campaigns by pivoting between phishing landing pages. We will examine 0ktapus as a case study, showcasing how we applied some of these methods and the results we obtained.

Oldies but Goodies

Recover ADCS from Compromise

As part of an "assume breach" approach, organizations must prioritize comprehensive backup and restore strategies within their ADCS infrastructure. In this article, we provide the keys to keep up-to-date backups and implement effective restoration procedures.

ADCS Exploitation Part 1: Common Attacks

In this series, I will show how ADCS misconfigurations introduce domain escalation vulnerabilities, and how these can be exploited. This first part will focus on the most common vulnerabilities in ADCS environments.

AWS penetration testing: a step-by-step guide

In this post, I will cover existing testing methodologies and the specific steps required to conduct an AWS penetration test. Additionally, I've summed up an introduction to Amazon Web Services and the dangers of cloud environments.

Detecting Fake Events in Azure Sign-in Logs

This blog provides an overview and detection methodology of two types of attacks that aims at generating fake logs in the Azure sign-in logs that look like legitimate events.

Unearthed Arcana

Analyzing IranuKit: A modular linux kernel rootkit

This write-up focuses on two kernel modules and a shared library found in an open directory to uncover how they operate together, emphasizing stealth, persistence, and modularity.

How to Backdoor Azure Applications and Abuse Service Principals

This blog post is going to show you how to create / register an application within an Azure portal; how to backdoor the application (aka add a "secret") and lastly, how to detect this.

Detecting Linux Anti-Forensics Log Tampering

In this post, I will walk through two methods of removing and tampering Linux artefacts to delete the malicious logins one wants to hide. I will then walk through a simple way of detecting both methods based on timestamps that you can check.

Detecting Linux Anti-Forensics: Timestomping

Threat actors can modify the timestamps on malicious files to evade detection. I will cover two techniques to perform timestomping and offer a different method of detection that doesn't rely on auditd, command line logging or EDR.