Security Review #207

May 10, 2024

Got an attack working perfectly, based on an apparently wrong hypothesis. now i have no idea why it works.

— Pepe Vila

Starred Articles

AMSI Write Raid 0day Vulnerability

In this blog post, we'll introduce a new 0day technique designed to bypass AMSI without the VirtualProtect API and without changing memory protection. We'll discuss how we discovered the flaw, the process we used to exploit it and build proof of concept code to bypass AMSI in PowerShell 5.1 and PowerShell 7.4.

The detection engineer's guide to Linux

Effective Linux detector development cannot simply adhere to the Windows model, demanding a tailored approach to ensure more comprehensive coverage. This blog will explore the philosophical and practical differences in detector, the basics of Linux detector development, effective testing methodologies, and the criteria for developing Red Canary-grade Linux detectors.

Leash the Hounds: How to Stop LDAP Recon Attacks

While there are methodologies out there aimed at detecting malicious LDAP recon, we believe they are severely lacking and impractical for most organizations. To finally "leash" the various LDAP hounds (SharpHound, SOAPHound and many other tools), a new approach is needed, which we delve into in this post.

Understanding and evading Microsoft Defender for Identity PKINIT

This article will focus on suspicious certificate usage alerts: the detection mechanism will be explained as well as how to avoid raising any alert. In addition, a PowerShell script will be released to perform Kerberos authentication via PKINIT with the Windows API, from a non domain-joined machine.

When "Phish-Proof" Gets Hooked

We demonstrate an attack flow that allowed us to bypass Okta FastPass phish-proof protection. We first delve into the technical details of the protection mechanism, then provide a bypass technique.

AWS CloudQuarry: Digging for Secrets in Public AMIs

This research unveils a quarry of sensitive data stored in public AMIs. Digging through each AMI we managed to collect 500 GB of credentials, private repositories, access keys and more. The present article is the detailed analysis of how we did it and what the data represents.

Send()-ing Myself Belated Christmas Gifts - GitHub.com's Environment Variables & GHES Shell

In this article, I will unveil the shocking story of how I discovered CVE-2024-0200, a one-liner vulnerability that enables disclosure of all environment variables of a production container on GitHub.com, including numerous access keys and secrets. Additionally, this vulnerability can be further escalated to achieve remote code execution (RCE) on GitHub Enterprise Servers (GHES).

New Articles

CVE-2024-2887: A Pwn2Own Winning Bug in Google Chrome

In this blog, I describe a means of exploiting the V8 JavaScript and WebAssembly engine to gain execution of arbitrary shellcode inside the renderer process. This includes a bypass of the V8 memory sandbox (Ubercage), though code execution is still constrained by the process isolation-based browser sandbox.

Secure Kernel Research with LiveCloudKd

Let's say you want to research the secure kernel. You heard about hypervisors and VTL1 and you'd like to see it for yourself, and static analysis is just not always good enough. You need a debugger. In this blog post, we will show how to use LiveCloudKd that allows you to attach a live debugger to a virtual machine and debug the secure kernel.

Tracking illicit actors through bridges, DEXs, and swaps

Detecting illicit activities when looking at crypto movements has always been complex, but as assets and blockchains become increasingly interconnected, this problem has become even more difficult to solve. However, with the release of our new Holistic upgrade, Elliptic users can trace through asset swaps with ease.

How to Improve Your Android & iOS Static Analysis with Nuclei!

In this post, we will cover how to statically analyze Android and iOS applications using Nuclei. Additionally, we will show how to use additional templates available out of the box with the Nuclei repository.

Eight Arms to Hold You: The Cuttlefish Malware

We provide technical analysis of Cuttlefish, a malware that targets networking equipment. This malware is modular. It steals authentication material found in web requests, has the capacity to perform both DNS and HTTP hijacking, interacts with other devices on the LAN, and move material or introduce new agents.

R-bitrary Code Execution

We have discovered a vulnerability, CVE-2024-27322, in the R programming language that allows for arbitrary code execution by deserializing untrusted data. An attacker can create malicious RDS files or R packages containing embedded arbitrary R code that executes on the victim's target device upon interaction.

Devfile file write vulnerability in GitLab

This post is a extensive walkthrough of the process of identifying and exploiting CVE-2024-0402, an arbitrary file write on GitLab instances.

YARA Rules: Empower Your Security With Custom Detections

Using and understanding YARA rules is a fundamental skill for anyone in a technical cyber security role. This guide will cover everything you need to start using YARA rules and crafting your own custom rules.

Analysis of TargetCompany's Attacks Against MS-SQL Servers

The TargetCompany ransomware group primarily targets improperly managed MS-SQL servers to install the Mallox ransomware. While these attacks have been ongoing for several years, here we will outline the correlation between the newly identified malware and previous attack cases involving the distribution of the Tor2Mine CoinMiner and BlueSky ransomware.

At Home Detection Engineering Lab for Beginners

In this blog, we will cover how to build a simple Security Information and Event Management (SIEM) environment to simulate attacks and give us an understanding of how vital detection is in identifying threats and creating defenses against them.

Accelerating incident response using generative AI

In this blog post we are highlighting another way we use generative AI to help the defenders gain the advantage: Leveraging LLMs (Large Language Model) to speed-up our security and privacy incidents workflows.

Hunting in Azure subscriptions

This blog post delves into various strategies and methodologies designed to enhance our grasp of the scope and complexity of how threat actors' manoeuvre within Azure subscriptions, thereby fortifying our defenses against the ever-evolving landscape of cyberattacks.

Hunting M365 Invaders: Dissecting Email Collection Techniques

Adversaries who have gained access to an M365 tenant might exploit these features, enabling them to monitor mailbox communications. In this blog post, we describe various methods attackers may leverage to monitor mailboxes, how to simulate them and how teams can detect them using Splunk's out-of-the-box security content.

SCCM Exploitation: Compromising Network Access Accounts

SCCM Network Access Accounts (NAA) are frequently used despite being associated with several attack primitives. In this blog post, we will explore the various methods to identify and compromise NAA.

Code Injection to RCE with .NET

I encountered a feature that allowed users to define templates containing expressions, specifically for operations related to mathematics, logic, and strings. These templates contained expressions that were vulnerable to Code Injection and, subsequently, Remote Command Execution.

Sleeping Safely in Thread Pools

This blog post, discusses a use of thread pools that is relevant to red teamers: their use as an alternative to a sleeping main thread in a C2 agent or other post-exploitation offensive capability. Let us now compare the standard technique of using a sleeping thread with this alternative option.

Identifying X-Refs with Capstone

In this post, I will explain how you can locate cross references programmatically using Python modules that are generally helpful in reverse engineering.

Tale of Code Integrity & Driver Loads

The objective of this post is very simple: understand how Core Isolation user setting affects the execution flow of driver loading.

Attacking Java

Attacking Java applications requires a nuanced understanding of both the language's intricacies and common vulnerabilities prevalent in its ecosystem. In this article, we review main vulnerabilities, explaining their root causes and exploitation.

Leveraging Fake DLLs, Guard Pages, and VEH for Enhanced Detection

In this article, I would like to discuss a rather unconventional but very interesting detection mechanism used in conjunction with EDR, based on a combination of process environment block (PEB) modification, the use of fake DLLs and guard pages, and the use of vectored exception handling.

XZ Utils Made Me Paranoid

How could we identify backdoors before packages are released or, at the very least, identify them after upgrades ? I decided to try to write up a basic scanner to at least identify hooks in memory. In this post, we'll go through what the initial idea was, what needed to be built, and what we ended up with.

Multiple vulnerabilities in RIOT OS

RIOT is a free, open-source, real-time operating system. It aims to implement all relevant open standards supporting an Internet of Things that is connected, secure, durable, and privacy-friendly. I reviewed RIOT's source code and identified multiple security vulnerabilities that may cause memory corruption. Their impacts range from denial of service to potential arbitrary code execution.

CVE-2024-3661: TunnelVision - How Attackers Can Decloak Routing-Based VPNs For a Total VPN Leak

We identified a novel network technique that bypasses VPN encapsulation. An attacker can use this technique to force a target user's traffic off their VPN tunnel using built-in features of DHCP. The result of this is the user transmits packets that are never encrypted by a VPN, and an attacker can snoop their traffic.

JTAG Hacking with a Raspberry Pi - Introducing the PiFex

With this blog post, we'll introduce the PiFex, a basic companion board for the Raspberry Pi designed to teach users the basics of hardware hacking and embedded protocols. We will then demonstrate how to use the PiFex to access a JTAG tap on an undocumented SSD, allowing memory reads and GDB access to the SSD CPU.

Jump Over Firewall Finding Origin IP

Web application firewalls are the most annoying when you know that there is vulnerability out there! What if I told you that there is a way to bypass this layer of protection - I'm talking about finding origin IP address as a method. We will explore multiple ways how you can do it.

Digging for SSRF in NextJS apps

In this blog post we will detail some common misconfigurations we find in NextJS websites, along with a vulnerability we found in the framework.

Go Binary Analysis with gftrace

gftrace is a command line Windows tool that will run a Go binary and log all the Windows API calls made as it runs. In this blog, I will demonstrate its usage to solve the Napper from HackTheBox. I'll also give a brief overview of how it works, walking through the source code from GitHub.

HijackLoader Updates

We recently analyzed a new HijackLoader sample that has updated evasion techniques. In this blog post, we discuss HijackLoader updates and provide a Python script to extract the malware configuration and modules from HijackLoader samples. Additionally, we delve into the malware families deployed by HijackLoader from March 2024 to April 2024.

CVE-2024-21115: An Oracle VirtualBox LPE

In this blog post, we detail CVE-2024-21115 - an Out-of-Bounds (OOB) Write that occurs in Oracle VirtualBox that can be leveraged for privilege escalation.

Minecraft Source Pack Becomes Gateway for zEus Stealer Distribution

We have uncovered a malware dissemination method involving a crafted Minecraft source pack. The malware, known as the zEus stealer, is specifically targeted at Microsoft Windows users, posing a high threat level by potentially enabling future attacks through the stolen information.

A Basic Guide to AFL QEMU

This post explains a process for fuzzing a parser function identified within a compiled program. We will use American Fuzzy Lop (AFL) QEMU mode to target the parsing logic.

Phishing Attacks Exposed: Essential OSINT Investigation Tactics

With attackers becoming more sophisticated every year, knowing how to delve into a phishing campaign is a crucial skill for every OSINT analyst. This article will equip you with a well-rounded methodology to guide your investigations and help protect yourself and your organization.

Still Recent

64 bytes and a ROP chain - A journey through nftables - Part 1

The purpose of this article is to dive into the process of vulnerability research in the Linux kernel that led to the finding of CVE-2023-0179 and a fully functional Local Privilege Escalation (LPE). In this first post, we will focus on the nftables component and the new mitigations encountered while exploiting the kernel stack from the network context.

Exploring hunting options for catching Impacket - Part 1

Impacket is one of those tools which the threat actors are constantly using during the attacks. It, for example, allows for a PsExec like behavior which is very often one of the key tools the threats use Impacket for. My approach to see if I can catch this is to launch the attack from a non monitored device targeting a device which has the Defender for Endpoint agent installed.

Analyzing Forest Blizzard's custom post-compromise tool for exploiting CVE-2022-38028 to obtain credentials

This blog provides technical information on GooseEgg, a unique Forest Blizzard capability. In addition to patching, this blog details several steps users can take to defend themselves against attempts to exploit Print Spooler vulnerabilities. We also provide additional recommendations, detections, and indicators of compromise.

Oldies but Goodies

Honeypot OSINT

In this post I will be going through the open-source intelligence process I went through following an attack performed against my honeypot.

Analysis of Android settings during a forensic investigation

During the forensic examination of a smartphone, we sometimes need to understand some basic settings of the device. In this blog post, I'll discuss how these settings can be extracted and what information is potentially more relevant for a forensic investigation.

Arlo: I'm watching you

This blog post aims at bootstrapping vulnerability research on Arlo cameras.

Unearthed Arcana

Adapting AngularJS payloads to exploit real world applications

Every experienced pentester knows there is a lot more to XSS than - filtering, encoding, browser-quirks and WAFs all team up to keep things interesting. AngularJS Template Injection is no different. In this post, we will examine how we adapted template injection payloads to bypass filtering and encoding and exploit Piwik and Uber.

Detecting VPN Services

This blog post will introduce various methods of systematically detecting VPN IP addresses from providers such as NordVPN or ExpressVPN.