Security Review #219

August 16, 2024

Failure is central to engineering. Every single calculation that an engineer makes is a failure calculation. Successful engineering is all about understanding how things break or fail.

— Henry Petroski

Starred Articles

Ghost in the PPL Part 1: BYOVDLL

In this series of blog posts, I will explore yet another avenue for bypassing LSA Protection in Userland. This first post will detail the Bring Your Own Vulnerable DLL (BYOVDLL) technique that we will use to reintroduce two vulnerabilities, and then exploit them to gain arbitrary code execution within a protected LSASS process.

The "Fake" Potato

"ShellWindows" DCOM application along with "ShellBrowserWindows", is well-known in the offensive security community for performing lateral movements by instantiating these objects remotely with admin privileges. However, I was curious to understand if they could be abused locally by a standard user.

GitHub Actions exploitation - Part 5: Dependabot

We found a new GitHub action exploitation technique leveraging the Dependabot GitHub app to compromise some repositories, leading to arbitrary code push. In this article we will explain how we discovered it and illustrate with 2 real world examples.

0.0.0.0 Day: Exploiting Localhost APIs From the Browser

This article details the the "0.0.0.0 Day" vulnerability. This vulnerability allows malicious websites to bypass browser security and interact with services running on an organization's local network, potentially leading to unauthorized access and remote code execution on local services by attackers outside the network.

Google Chrome RCE

WASM isorecursive canonical type confusion in JS-to-WASM conversion functions and their wrappers, resulting in type confusion between arbitrary WASM types.

New Articles

Splitting the email atom: exploiting parsers to bypass access controls

Some websites parse email addresses to extract the domain and infer which organisation the owner belongs to. In this paper I'm going to show you how to turn email parsing discrepancies into access control bypasses and even RCE.

Listen to the whispers: web timing attacks that actually work

In this paper, I'll unleash novel attack concepts to coax out server secrets including masked misconfigurations, blind data-structure injection, hidden routes to forbidden areas, and a vast expanse of invisible attack-surface.

Privilege Elevation in Entra ID: UnOAuthorized

This article details a series of discoveries that resulted in the ability to perform actions in Entra ID beyond expected authorization controls. Our most concerning discovery involved the ability to add and remove users from privileged roles, including the most powerful role in Entra ID: Global Administrator.

Cloud Digital Forensics and Incident Response - Part 2: AWS IAM Privilege Escalation Leads to EC2 Ransomware Deploymen

In this article, I'll trace a threat actor's steps through ransomware deployment, vertical (lateral) movement via AWS Systems Manager (SSM), and privilege escalation through IAM abuse. Forensics artifacts included in this report include Windows Sysmon logs, the Update Sequence Number (USN) Journal, AWS CloudTrail logs, and AWS Systems Manager command history.

Living off the VPN - Exploring VPN Post-Exploitation

In this blog post, we highlight the overlooked threat of VPN post-exploitation; that is, we address techniques that can be used by threat actors after compromising a VPN server to further escalate their intrusion.

An In-Depth Look at DarkAngels Ransomware

This article provides technical analysis and IoCs for a new ransomware named DarkAngels, that was used in a highly targeted attack.

New malware, FakeBat Loader, spreads via drive-by download

In this article, I'll provide an overview of how drive-by download works, and then we'll get into the details of FakeBat Loader and what it reveals about the current state of the cybercrime economy. We'll close out with a discussion of how best to combat this type of attack.

How to Inspect TLS Encrypted Traffic

In this blog post I describe three different methods for decrypting TLS and explain when to use one or the other.

The Cyber Kill Chain and Incident Response Process

In this blog, we will explore the Cyber Kill Chain framework, outline the Incident Response Process, and discuss the relationship between these two concepts and their importance in a robust cybersecurity strategy.

Best security practices for ESXi environments

There are things defenders can do to interfere with an attack on ESXi. At minimum, these precautions slow attackers down, and they may even succeed in stopping the attack against ESXi altogether. This article covers ten tactics, with links to source materials and additional information where appropriate.

Securing from Active Directory Attacks

This blog peels back the layers of AD, revealing its core components and how they empower centralized control. Explore how AD streamlines administration, enhances security, and ensures seamless network operations.

Understanding DLL Sideloading

In this blog, we'll explore how DLL sideloading works, how to identify vulnerabilities, and methods to protect against these attacks.

Sneaking around with Web Assembly

In this article, we will demonstrate how to leverage memory and function sharing between WASM and JavaScript to obfuscate malicious payloads.

Disclosure: Apple ADE - Network Based Provisioning Bypass

We identified a network-based provisioning bypass which prevents the iPad to fetch and apply the provisioning profiles. The iPad boots into an unprovisioned mode without restrictions, which can be kept for an arbitrary amount of time. In this state the user is able to install Apps and Root CA certificates which are trusted for TLS communication.

PureHVNC Deployed via Python Multi-stage Loader

In this article, we provide technical details regarding a phishing campaign that also employs multiple layers of evasion techniques to deploy various malware into an infected environment.

Exploiting pfsense Remote Code Execution - CVE-2022-31814

In this write-up, we will be exploring the interesting exploitation that has been done against the pfsense, a FreeBSD-based operating system designed to install and configure a firewall that can be easily configured via the web interface and installed on any PC.

Bucket Monopoly: Breaching AWS Accounts Through Shadow Resources

We discovered critical vulnerabilities in six AWS services. In this blog, we thoroughly explain the "Shadow Resource" attack vector, which may lead to resource squatting, and the "Bucket Monopoly" technique that dramatically increases the success rate of an attacker.

Gotta cache 'em all: bending the rules of web cache exploitation

In this paper will explore how different HTTP servers and proxies behave when parsing specially crafted URLs and explore ambiguities in the RFC that lead to path confusion. It will also introduce a set of novel techniques that can be used to leverage parser discrepancies and achieve arbitrary web cache poisoning and deception in countless websites and CDN providers.

InfoStealer Uses SwiftUI, OpenDirectory API to Capture Passwords

In this article, we take a close look at the first stage of a recennr infostealer -specifically at the dropper, which is written in Swift and leverages APIs not seen in other recent stealers to capture and verify the user's password. Many detection methods focus on OSAscript; this malware takes a different approach to evade detection.

Breaking Kakasoft USB Copy Protection

In this article, I'll walk you through the entire process I used to crack Kakasoft USB Copy Protection, sharing my thought process and detailed steps along the way.

Downgrade Attacks Using Windows Updates

In this article, I detail how I found several vulnerabilities that I used to develop Windows Downdate, a tool that allowed me to elevate privileges and bypass security features. As a result, I was able to make a fully patched Windows machine susceptible to thousands of past vulnerabilities.

BloodHound Operator - Dog Whispering Reloaded

If you like BloodHound & PowerShell, and if you want to automate all the BloodHound things, this post is written for you. I'll be sharing a new tool for all your Dog Whispering needs.

Exploiting authorization by nonce in WordPress plugins

Many WordPress plugins use nonces and nothing else to authorize requests. This often has a potential for exploitation to gain privilege escalation. In this article, I elaborate on WordPress security features connected to nonces and AJAX/REST requests and describe three critical vulnerabilities I've found in popular WordPress plugins.

Execution Guardrails: No One Likes Unintentional Exposure

In this blog, I want to discuss how several mistakes I made during a pentest engagement can be avoided by using a collection of different keying variations and mechanisms.

Vestaboard: Exploring Broken Access Controls and Privilege Escalation

During research on the Vestaboard web platform, we identified three instances of Broken Access Controls: read access to other Vestaboards, ability to update names of other users, and privilege escalation from Admin to Owner.

Unveiling the Power Duo: osquery and osctrl

osquery, the SQL-based open-source tool, lets you query your systems like a database, transforming complex system data into actionable insights. Paired with osctrl, a potent orchestration platform, you'll gain real-time control and visibility over your network's security posture.

Cloud cryptography demystified - Part 2: Google Cloud Platform

This post, the second in our series on cryptography in the cloud, provides an overview of the cloud cryptography services offered within Google Cloud Platform (GCP): when to use them, when not to use them, and important usage considerations. Stay tuned for future posts covering other cloud services.

Threat Hunting - Suspicious Named pipes

This article provides common tools and techniques to identify malicious named pipes open on a system. We also provide an example and show how to gather all the necessary details.

Writing a system call tracer using eBPF

We provide the basics of a program that traces a few common system calls. To achieve this, we'll write two types of programs: eBPF programs and a loader (which loads the BPF objects into the kernel and attaches them).

Hiding in plain sight - Part 2: Abusing the dynamic linker

This post details a defence evasion technique that overcomes a pitfall on Solaris and the BSDs. The technique is extended to Linux with additional anti-forensic behaviours to provide additional stealth, such as removing evidence of LD_PRELOAD.

From Evidence to Advantage: Leveraging Incident Response Artifacts for Red Team Engagements

This blog post is about why incident responder artifacts not only play a role on the defensive but also offensive side of cyber security. We will look at some of the usually collected evidences and how they can be valuable to us as red team operators. We will be putting everything together in a proof of concept tool that tries to simplify collecting that information.

Identify and prevent abuse of Managed Identities with Federated Credentials from unauthorized entities

In this article, I would like to point out options to identify, monitor and avoid persistent access on Managed Identities privileges by adding federated credentials on User-Assigned Managed Identities (UAMI) from malicious or unauthorized entities. We will also have a quick look at attack paths and privileges which should be considered.

Sleeping With the Phishes

We provide techniques to guess what communication channels are available for C2 callbacks, and use the same channels to sneak instructions to your implants and outputs back to your C2 server.

Tenable discovers Azure Health Bot critical vulnerabilities

We discovered multiple privilege-escalation issues in the Azure Health Bot Service via a server-side request forgery (SSRF), which allowed researchers access to cross-tenant resources.

ArtiPACKED: Hacking Giants Through a Race Condition in GitHub Actions Artifacts

A combination of misconfigurations and security flaws can make artifacts leak tokens, both of third party cloud services and GitHub tokens, making them available for anyone with read access to the repository to consume. This potentially leads to the push of malicious code that can flow to production through the CI/CD pipeline, or to access secrets stored in the GitHub repository and organization.

RCE Attack Chain on Quick Share

We'll dive into the details behind Quick Share's communication protocol. Then, we will discuss the research process that led to the discovery of 10 vulnerabilities and explain how we were able to chain several of them together to develop an RCE attack.

Chained for attack: OpenVPN vulnerabilities discovered leading to RCE and LPE

We identified multiple medium severity vulnerabilities in OpenVPN. Attackers could chain and remotely exploit some of the discovered vulnerabilities to achieve an attack chain consisting of remote code execution (RCE) and local privilege escalation (LPE).

Cyclops: a likely replacement for BellaCiao

This report introduces Cyclops, a newly discovered and previously undocumented malware platform written in Go. Cyclops allows operators to execute arbitrary commands on the target's file system, as well as pivot inside the infected network. Notably, Cyclops is controlled through a HTTP REST API which is exposed to operators within an SSH tunnel.

SCCMSecrets.py: exploiting SCCM policies distribution for credentials

SCCM policies are a prime target for attackers in Active Directory environments as they may expose sensitive technical information such as account credentials. Said credentials could be retrieved by authenticated attackers impersonating a registered device, or in some cases from an unauthenticated position by exploiting misconfigurations on policies distribution.

Outplay Your Adversary: Red Teaming Tactics for AWS, Azure, and GCP

This blog will explore advanced red teaming tactics tailored specifically for AWS, Azure, and GCP. By adopting an attacker's perspective, we will examine how to systematically breach, exploit, and maintain persistence in these cloud environments, outplaying your adversaries.

Oops I UDL'd it Again

This post is about a new phishing technique based on Outlook UDL files.

Hacking Android Games

In this first part of the series, we aim to provide you with an overview of the process involved in hacking Android games.

Unmask Privileged Access in Azure

In this blog, I will explain how attacker gaining access to initial Entra ID user can enumerate and access resources from the Azure Key Vaults containing credentials which leads to lateral movement further extraction of Global Administrator credentials from the variable of Azure automation workbook variables.

Android Jetpack Navigation: Go Even Deeper

Jetpack Compose is a new approach to building UIs in Android, replacing the previously widely used fragments. This article details how deep links can be exploited to bypass application authentication screens.

From object transition to RCE in the Chrome renderer

In this post, I'll exploit CVE-2024-5830, a type confusion in Chrome that allows remote code execution (RCE) in the renderer sandbox of Chrome by a single visit to a malicious site.

Still Recent

RDP Bitmap Cache - Piece(s) of the Puzzle

This article discusses something that you might not be collecting or analyzing when performing host-based analysis. RDP Bitmap Cache. It is a fantastic and very unique artifact and may provide context, command-lines, tools, etc. that you may have not identified via traditional routes.

TrickDump - Dump lsass without generating a Minidump file

This post intoruces TrickDump. It allows to dump the lsass process without generating a Minidump file, generating instead three JSON files and one zip file with memory regions' dumps.

All About JavaScript Analysis For Bug Bounty Hunting

JavaScript analysis is a crucial part of bug bounty hunting because many web vulnerabilities are exposed through client-side scripts. Here's a comprehensive guide on how to analyze JavaScript for bug bounty purposes

You Can't Spell WebRTC without RCE - Part 1

This first post of the series surveyes WebRTC's implementation of various protocols, injects arbitrary read and arbitrary write vulnerabilities, and sets up a research environment to trigger the vulnerabilities.

You Can't Spell WebRTC without RCE - Part 2

In this second part of the series, we will cover the following topics: breaking ASLR with sequential leaks, limitations of Xcode's iOS simulator, setting up Corellium for iOS emulation and exploit development, locating and exfiltrating Signal's database, and stack pivoting and ARM64 ROP chain.

Abusing PIM-related application permissions in Microsoft Graph - Part 3

In tenants relatively mature in terms of cloud security, eligible and active assignments are often constrained to meeting additional security requirements. In this part, we will take a closer look at how those constrains can be disabled to keep leveraging the Tier-0 permissions previously discussed, and still escalate to Global Admin in environments with strict PIM settings.

Bypassing Rockwell Automation Logix Controllers' Local Chassis Security Protection

We discovered and disclosed a security bypass vulnerability in Rockwell Automation ControlLogix 1756 devices. Our technique allowed us to bypass the trusted slot feature implemented by Rockwell that enforces security policies and allows the controller to deny communication via untrusted paths on the local chassis.

CVE-2024-39877: Apache Airflow Arbitrary Code Execution

In this analysis, we detail the CVE-2024-39877 vulnerability, which allows authenticated DAG authors to exploit the doc_md parameter to execute arbitrary code in the scheduler context, violating Airflow's security model.

Breaking Barriers and Assumptions: Techniques for Privilege Escalation on Windows - Part 3

To wrap up this blog series we wanted to include one more technique that you can use when exploiting this class of vulnerabilities. This technique becomes useful when you have an on-boot arbitrary delete primitive that you want to transform into an on-demand delete, so that you can escalate using the C:\Config.msi technique.

Racing round and round: The little bug that could

The little bug that could: CVE-2024-30089 is a subtle kernel vulnerability I used to exploit a fully updated Windows 11 machine (with all Virtualization Based Security and hardware security mitigations enabled). In this article, I outline my straightforward approach to bug hunting: picking a starting point and intuitively following a path until something catches my attention.

Pwn2Own Automotive: Popping the CHARX SEC-3100

In this second post we will detail how to weaponize the bugs we discovered in the CHARX SEC-3100 ControllerAgent service for Pwn2Own Automotive.

Teaching the Old .NET Remoting New Exploitation Tricks

This blog post provides insights into three exploitation techniques that can still be used in cases of a hardened .NET Remoting server with TypeFilterLevel.Low and Code Access Security (CAS) restrictions in place. Two of these tricks are considered novel and can help in cases where ExploitRemotingService is stuck.

Persisting on Entra ID applications and User Managed Identities with Federated Credentials

In this blog, we cover a third way of authenticating as an application: using federated credentials. With this blog I'm also introducing a new utility to the ROADtools family: roadoidc, which can set up a minimal Identity Provider (IdP), allowing us to authenticate using federated credentials as apps and user managed identities with roadtx.

Polyfill Supply Chain Attack

We provide details about a supply chain attack via Polyfill, a common open-source library written in JavaScript, used in web development to provide modern functionality on older browsers like IE7 that did not support it natively.

Hiding in plain sight - Part 1: Modifying process names in UNIX-like systems

This post explores the defence evasion technique of dynamically modifying process names in UNIX-like systems. It takes a look at various ways to "process masquerade" or "process stomp" primarily in the Linux operating system with the occasional detour looking at the BSDs and Solaris. The second half of the post goes a little deeper into the mechanisms at play.

Certified evil: Investigating signed malicious binaries

Despite the issuers' validation procedures, we routinely detect malware that's signed with legitimate code-signing certificates. Fortunately, there are many ways to differentiate suspicious or malicious signed binaries from legitimate ones, and we're going to share some of our strategies for analyzing digital signatures.

Repo Jacking: The Great Source-code Swindle

In this post, we explore a powerful, yet widely unknown attack vector which has emerged in the last couple of years known as 'Repo Jacking'.

Relay Your Heart Away: An OPSEC-Conscious Approach to 445 Takeover

We detail a technique that will ease the abuse of several popular NTLM relay primitives by allowing attackers to control inbound 445/tcp traffic without loading a driver, loading a module into LSASS, or requiring a reboot of the target Windows machine.

Windows AppLocker Driver LPE Vulnerability - CVE-2024-21338

This is the detailed write-up about CVE-2024-21338, a Windows Kernel Elevation of Privileges, specifically an Untrusted Pointer Dereference vulnerability in the appid.sys driver. The driver is responsible for the AppLocker technology.

Recovering an ECU firmware using disassembler and branches

This blogpost explains how we recovered the firmware of a fleet-sharing Electronic Control Unit (ECU) which has been erased from a FAT memory using Capstone disassembler to locate scattered parts, to be able to reverse-engineer it.

Demystifying Okta Attacks with Dorothy and Splunk

In this blog we are going to break down various attacks against Okta and how to identify them in Splunk. Some of the logs shown in this blog will be truncated to show the important parts for brevity.

Cisco SSM On-Prem; Account Takeover (CVE-2024-20419)

Cisco Smart Software Manager On-Prem (SSM On-Prem) is susceptible to an account takeover vulnerability, which can be exploited by an unauthenticated attacker to gain unauthorized access and control over user accounts, including administrative accounts. The exploitation can be carried out with just a few HTTP requests.

NTLM Relaying to LDAP - The Hail Mary of Network Compromise

NTLM relaying can be incredibly impactful. This documentation will go over an explanation of the specific avenues of exploitation, practical examples, their requirements, and configuration specifics for the attacks to take place.

Persistence With GPP Item-level Targeting

This article details a new persistence technique that relies on adding a new Group Policy Preference (GPP) to an existing Group Policy Object (GPO).

LayeredSyscall - Abusing VEH to Bypass EDRs

In this blog post, we will abuse Vectored Exception Handlers (VEH) as a foundation to produce a legitimate thread call stack and employ indirect syscalls to bypass user-land EDR hooks.

Oldies but Goodies

Evading the wifi router ban

This article explains how I configured a wifi router to evade detection by the campus IT department. The wifi router doesn't need to be completely hidden (after all, it's emitting radio waves that anyone nearby can receive), but it should at least avoid detection from an adversary that probably isn't trying very hard.

Dismantling Smart App Control

In this deep dive, we will explore how CORS works across different web browsers and how certain misconfigurations can be exploited despite the built-in anti-tracking mechanisms.

Linux Kernel PWN - Part 05: ret2dir

In this post, we will talk about the ret2dir technique, which leverages the functionality of physmap to place attack-controlled payload in kernel, bypassing existing ret2usr defenses.

Linux Kernel PWN - Part 01: From Zero to One

In this series, we will explore kernel PWN and heap-based PWN on Linux. In this first post, I will follow an awesome tutorial to solve a PWN challenge from hxp CTF 2020 step by step.

Linux Kernel PWN - Part 02: CVE-2009-1897

In this article, we will learn about CVE-2009-1897 vulnerability and its exploitation, prepare a vulnerable environment and exploit this vulnerability.

Linux Kernel PWN - Part 06: DirtyCred

In this post, we will walk through DirtyCred. The DirtyCred technique is one of such attacks, which contains two sub-techniques: process cred swapping and file permission check bypass. By stealing a high privilege cred or writing read-only files, attackers can obtain root privilege, thus have no need to struggle with kernel vulnerability mitigations.

Engineering a SIEM - Part 1: Why did we need to build our own SIEM?

This blog is the first in a series of posts covering how we built an engineering-first security information and event management (SIEM) system. Our initial post will focus on the foundational features, delving into the "what" and "why" behind our decision to build.

Engineering a SIEM - Part 2: Security data lakehouse and modular design

In addressing the requirements and challenges of SIEM solutions, we drew inspiration from data engineering best practices, particularly the use of data lake and warehouses. Our approach was further informed by our data engineering team's use of the Snowflake platform for business analytics and data initiatives.

Offensive IoT for Red Team Implants (Part 3)

In this third part of the series, we are going to install and setup an operating system on the implant and configure basic networking.

Azure AD Kerberos Tickets: Pivoting to the Cloud

In this blog, I'll show you the dangers of machine account SSO compromise. We will do so without extracting any user account hashes and will have the ability to impersonate any account without MFA to achieve full cloud dominance.

Racing Cats to the Exit: A Boring Linux Kernel Use-After-Free

In this small article, I'll explore a fairly dull use-after-free in the Linux kernel that's been around in the process termination code for quite a number of years. The vulnerability is only dull because there doesn't appear to be any way to usefully exploit it beyond causing a DoS.

Secure Code Review: Finding XML vulnerabilities in Code - Part 1

This first part of the series covers what XML is in short, a little bit about XML entities and parsers along with the different types of parsers available. We then proceed to cover a critical vulnerability - XXE (XML External Entities).

Unearthed Arcana

A Samsung RKP Compendium

The purpose of this blog post is to provide a comprehensive reference of the inner workings of the Samsung RKP. It enables anyone to start poking at this obscure code that is executing at a high privilege level on their device.

Attacking Samsung RKP

This blog post that explains how we attacked Samsung RKP. After revealing three vulnerabilities leading to the compromise of the hypervisor or of its assurances, we also describe the exploitation paths we came up with.