Security Review #184

December 01, 2023

A cache with a bad policy is another name for a memory leak.

— Rico Mariani

New Articles

Exploitation of a kernel pool overflow from a restrictive chunk size (CVE-2021-31969)

CVE-2021-31969 initially appears challenging to exploit due to its restrictive nature. However, by manipulating the paged pool, it is feasible to elevate a seemingly isolated pool overflow into a comprehensive arbitrary read/write scenario. This exploit grants elevated access, allowing the attainment of a shell as SYSTEM.

ETW internals for security research and forensics

In this deep dive, we're not just discussing ETW's functionalities; we're exploring how ETW works internally so you can conduct novel research or forensic analysis on a system.

How I found Microsoft Hypervisor bugs as a by-product of learning

This is a non-technical post on how I found two Microsoft Hypervisor-related vulnerabilities I reported this summer. Specifically, this post discusses CVE-2023-36427, memory corruption at arbitrary physical addresses from the root partition.

Unveiling Parallax RAT: A Journey from Infection to Lateral Movement

A short analysis of NetSupport RAT (Remote Access Trojan), a type of software that allows unauthorized remote access and control over a victim's computer or network. It typically provides attackers with a wide range of capabilities, including remote control, data theft, and surveillance, making it a significant security threat.

How to protect against modern phishing attacks like Evilginx

I wanted to dedicate some time to investigating and understanding how to prevent Evilginx and other Man-In-The-Middle (MITM) style attacks based on personal experience. This guide is designed not only to prevent these attacks but also to cover other mitigation techniques commonly employed in Business Email Compromises (BEC).

JA4+ network fingerprinting

In this blog post, I look at new JA4+ network fingerprinting methods and examples of what they can detect. We look at the use cases for these fingerprints and compare them with existing methods.

Attack Signals Possible Return of Genesis Market, Abuses Node.js, and EV Code Signing

This blog entry provides a technical analysis of malicious operations involving abuse of Node.js to act as a platform for the backdoor, Extended Validation (EV) Code Signing for defense evasion, and possibly Google Colab to host search engine-optimized download sites.

Fun with another PG-compliant Hook

In this article, we will be covering a method of hooking SYSCALL in a PG-compliant manner. This method has been tested from early Windows 10 to latest Windows 11 23h2.

Abusing .NET Core CLR Diagnostic Features (+ CVE-2023-33127)

All flavors of .NET rely on a runtime component called the Common Language Runtime (CLR). In this blog post, we will detail a cross-session privilege escalation through DLL loading by the CLR.

KASLR Leaks Restriction

In this paper we introduce a new method for restricting kernel address leaks to user mode. This method is implemented with a new flag passed to ExIsRestrictedCaller. In particular, this flag is used to determine whether the process can receive information about the loaded kernel modules and determine what kernel data can be returned to the user-mode caller.

LostTrust Ransomware - Trust nothing

THis is an in-depth analysis of the LostTrust ransomware. The encryptor has similar characteristcs to the MetaEncryptor ransomware family including code flow and strings which indicates that the encryptor is a variant from the original MetaEncryptor source.

IceKube: Finding complex attack paths in Kubernetes clusters

This blog post introduces IceKube, an open-source tool that enumerates a cluster and generates a graph database of resource configurations and the relationships between different resources that could be used by an attacker to compromise the cluster and associated workloads.

That's FAR-out, Man

In mid-2023 we noticed a kernel infoleak which led to the discovery of quite an interesting bug. The infoleak was caused by the access of an uninitialised value in the FAR_EL1 register, which was copied unconditionally by XNU's exception handler. Not only can we use this bug to leak data from the kernel, but we can actually leak data from any task on the system.

GoTitan Botnet - Ongoing Exploitation on Apache ActiveMQ

In recent weeks, numerous threat actors have been exploiting CVE-2023-46604 to disseminate diverse strains of malware. Our analysis has unveiled the emergence of a newly discovered Golang-based botnet named GoTitan and a .NET program called "PrCtrl Rat," equipped with remote control capabilities. This article will detail the exploitation and provide insights into the malware associated with these recent attacks.

From Threat Report to (KQL) Hunting Query

Threat intelligence reports are an essential source to be able to identify and mitigate security threats. However, the process of converting the information in these reports into actionable queries can be challenging. In this blog post, we will explore the steps involved in going from a threat intelligence report to a KQL hunting query.

How GitLab's Red Team automates C2 testing

In this blog post, we describe how we implement continuous testing for the Mythic C2 framework. We leverage GitLab CI/CD pipelines to automatically run these tests after each code change, and it enables iterative development and rapid validation of updates to Mythic and other agents.

Creating an OPSEC safe loader for Red Team Operations

This post is going to present a slightly new method for bypassing endpoint detection and response (EDR ) products, commonly known as CreateThreadPoolWait. However, instead of using kernel32.dll we will use ntdll.dll.

DICOM Demystified: Exploring the Underbelly of Medical Imaging

We researched the attack surface of DICOM, a critical healthcare communication protocol, and have uncovered a number of vulnerabilities in different DICOM implementations from leading medical device manufacturers. Successful exploits of these security flaws could result in denial-of-service and remote code execution attacks against these imaging devices.

Dumping Flash Memory of a TrendNet-731BRv1 Router

This blog post will cover using an EEPROM Programmer to read the flash memory of a TrendNet-731BRv1 router via reading flash memory from the PCB vs downloading the firmware from TrendNet's website.

To Schnorr and beyond (part 2)

Algorithms that can solve discrete logarithms in polynomial time. This raises an important question: Do Schnorr signatures have any realization that makes sense in this future post-quantum world? And can we understand it? That's where I intend to go in this post.

Details and Caveats for ownCloud information disclosure (CVE-2023-49103)

We present our deep-dive into CVE-2023-49103, a critical vulnerability in ownCloud's Graph API. We discuss the exploit, its impact on Docker installations, and our comprehensive testing process. We also discuss the role of Apache s mod_rewrite and the htaccess.RewriteBase rule in mitigating the vulnerability.

Still Recent

Mistaken Identity Azure Function Apps

The Linux containers in Azure Function Apps utilize an encrypted start up context file hosted in Azure Storage Accounts. We worked on a function that could be added to a Linux container-based Function App to decrypt this context. As we got further into building the function, we found that the decrypted startup context disclosed more information than we had previously realized.

CVE-2023-4632: Local Privilege Escalation in Lenovo System Updater

The Lenovo System Update application is designed to allow non-administrators to check for and apply updates to their workstation. During the process of checking for updates, the privileged Lenovo system Update application attempts to utilize a file which doesn't exist on the filesystem. This allows for an arbitrary file write primitive, thus resulting in elevation of privilege to NT AUTHORITY\SYSTEM.

A universal EDR bypass built in Windows 10

In this article we detail a mechanism that allows an elevated malicious program wishing to perform nefarious actions (process injection, LSASS dumping, process hollowing, etc.), to carefully disable related telemetry before doing it, removing critical evidence from EDR monitoring, thus greatly improving its chances of not being detected.

Exploring Antivirus and EDR evasion techniques step-by-step - Part 1

In this series, I will explore the techniques used in the field to bypass Antivirus and EDR systems using Windows (native) APIs. This first part will introduce system calls and where are they used for. We will also see what are User and kernel mode. We will also explain how shellcode can be executed by making use of Windows APIs.

Decompilation Debugging

In this post, we will show how the Ghidra Debugger integrates with the ghidra Code Browser, allowing you to step through the pseudo-code of the program you are debugging. We show how this works and why this is impressive, and hope for what's to come in the future.

KQL Functions For Network Operations

If you query data that contains IP addresses this blog is something for you! We will discuss some basic network related operations, before diving into useful network related KQL functions.

Executing from Memory Using ActiveMQ CVE-2023-46604

In this blog, we will explore how an attacker can exploit CVE-2023-46604 to execute arbitrary code from ActiveMQ's memory, therefore avoiding most detections.

To Schnorr and beyond (Part 1)

In this post we will discuss the motivation of signature schemes, and specifically the Schnorr signature, as well as some related schemes like ECDSA and Dilithium. We will start from the very basic building blocks (including the basic concept of an identification protocol ) and then work our way gradually towards an abstract framework.

Oldies but Goodies

The Client/Server Relationship - A Match Made In Heaven

In this post we will share how we have researched different Kerberos-based attacks and how we have used multiple events to gain better understanding for defensive purposes. These approaches are not widely used, and we consider them relatively novel.

Unearthed Arcana

What're you telling me, Ghidra?

This post is a a quick paced introduction to the shiniest features of Ghidra. It should be enough to start looking at binaries of interest, but by no means is this a complete reference.

Reverse Engineering Architecture And Pinout of Custom Asics

Learn about the process of initial reverse engineering the pinout of unknown ASICs by using moderate methods. The two described ICs are good examples out of many industry-solutions and have been chosen to demonstrate how design decisions from vendors are made. The exploited potential leak of the supply-chain can be leveraged by a hardware reverse engineer to extract internal information about such systems.