Security Review #198

March 08, 2024

No one in the brief history of computing has ever written a piece of perfect software. It's unlikely that you'll be the first.

— Andy Hunt

New Articles

Meet Silver SAML: Golden SAML in the Cloud

Golden SAML has been known for its extraction of signing certificates from Active Directory Federation Services (AD FS) and its use of those certificates to forge SAML authentication responses. In this post, we present a new application of Golden SAML- in Microsoft Entra ID and without the use of AD FS.

ADCS ESC14 Abuse Technique

An attacker can abuse write access to the altSecurityIdentities attribute of an AD computer or user to add an explicit certificate mapping referring to a certificate in the attacker's possession, and then use this certificate to authenticate as the said computer or user.

Mail in the middle - a tool to automate spear phishing campaigns

Mail-in-the-Middle (Maitm for short) takes advantage of the typos that people make when they enter email addresses. If we positioned ourselves in between the sender of an email and the legitimate recipient, we may be able to capture plenty of information about the business, including personally identifiable information, email verification processes, etc

Detecting Post-Exploitation Behaviour

We provide several KQL queries used to identify post-intrusion operations such as certutil remote download, group addition, database discovery etc.

How we applied advanced fuzzing techniques to cURL

In this post we'll discuss several elements of analysis and improvement of cURL's fuzzing code, including how we identified important areas of the codebase lacking coverage, and then modified the fuzzing code to hit these missed areas.

When try, try, try again leads to out-of-order execution bugs

In this post, we'll share how using retryable tickets may allow unexpected race conditions and result in out-of-order execution bugs. What's more, we've created a new Slither detector for this issue.

How-to: Detecting secrets in video content

In this article, we explain how to (with an assist from AI) identify and mitigate security risks in video content by searching for API keys or other sensitive tokens.

Home-Grown Red Team: Taking On A Hardened Windows System

In this article, we're going to take on a hardened Windows 11 instance that has been fully updated. We will first review the hardening script, then try different ways to bypass security controls.

How to Make Nmap Recognize New Services

I decided to contribute the protocol detection to the Nmap codebase and write a short tutorial to show how you can do the same for other unrecognized protocols

Who Am I? Conditional Prompt Injection Attacks with Microsoft Copilot

In this post we will discuss and show how a prompt injection payload can contain conditional instructions for certain situations. We will provide an example of a malicious email that triggers different attacker controlled results based on who views the content with Copilot.

Passing arguments via rundll32.exe to function exported by DLL

How I provide arguments to a DLL I execute via rundll32.exe ? Bits and pieces of information exist out there. This post assembles this scattered information and presents it in a hopefully easy-to-digest way.

CVE-2023-20078 technical analysis: Identifying and triggering a command injection vulnerability in Cisco IP phones

This article presents my findings while researching CVE-2023-20078, an unauthenticated command injection vulnerability in the web-based management interface of Cisco 6800, 7800, and 8800 Series IP Phones. In the end, the reader should be equipped with the information necessary to understand and trigger this vulnerability.

Rise in Deceptive PDF: The Gateway to Malicious Payloads

We provide technical details regarding a recent surge in the distribution of prominent malware through PDF files. We detail the infection chain and go through all the processes, from initial access to exfiltration and persistence. We will also provide all relevant IOCs.

Chromium Based Browsers Investigation

In this blog post, we are going to focus on making our lives as DFIR analysts easier when dealing with browsers that keep records of almost everything that happens on them.

Recovering data from broken appliance VMDKs

This post details steps and tools that can be used in order to recover data and logs from a broken VMDK appliance.

Hunting For the 'Contiinued' Phish Kit

In this article, we will be dissecting a fraud page; and figuring out how to map it to its originating phishing kit. Succeeding that, we will have a nice indicator to spot and tag them accordingly and maybe have some fun with the functionality on the way.

Real-World Examples of Detecting Attacks with Sysmon

In this post, we'll walk through some examples of incidents that were exposed due to the expanded telemetry provided by Sysmon. These include credential dumping, Active Directory database extraction, suspicious command line activity, and Exchange Server exploitation via ProxyLogon.

How to be IR Prepared in Google Cloud Platform (GCP)

This blog takes a closer look at GCP's logging methods, covering the different types of logging, how logs are stored, and how to best access them.

Cutting Edge, Part 3: Investigating Ivanti Connect Secure VPN Exploitation and Persistence Attempts

In this post, we will detail how some threats actors exploit CVE-2024-21893 (SSRF) to deploy additional malware and maintain persistent access to compromised appliances. In addition, we have observed new TTPs that attempted to enable the custom backdoors to persist across factory resets, system upgrades, and patches.

Browser Credential Dumping

This post describes browser credential dumping and its potential impact, illustrating the threat with a case study and outlining methods for detection and protection.

RattaGATTa: Scalable Bluetooth Low-Energy Survey

In this article, I will explain how to use a pool of collectors to scan and connect to BTLE devices, shedding light on the intricacies of hardware, radio frequency challenges, and the importance of rate-limiting algorithms.

Initial Access Operations Part 2: Offensive DevOps

To get initial access through malware infection, we need an ability to dynamically recompile malware artifacts. This points us directly to employing a CICD approach. This post describes a generic approach and introduces a public repository as a template that you might employ to achieve similar goals.

Automate evasion and compilation of tools

In this post I will cover the steps required to automate the checkout of the latest version of the SharpWMI open source .NET project using JetBrains TeamCity tool, automate the source code modification using PowerShell and obfuscate the compiled .NET assembly using Babel Obfuscator to bypass common AVs.

Attacking IOS

In this comprehensive guide, we delve into the world of iOS security from an offensive perspective, shedding light on the various techniques and methodologies used by attackers to compromise iOS devices and infiltrate their sensitive data.

Persistence - Visual Studio Code Extensions

In this article, we detail how, in a development environment that has been compromised, an arbitrary Visual Studio Code extension can be used for persistence since it will also enable the attacker to blend in with the underlying environment.

Dumping LSASS Like it's 2019

In this article, we will revisit a 2019-era technique for dumping LSASS using the MiniDumpW export of comsvcs.dll.

Azure Batch Service: Misconfigurations & Avoiding Data Exposure Risks

We've taken some time to dive into each component of the Azure Batch service to help identify any potential areas for misconfigurations and sensitive data exposure. This research time has given us a few key areas to look at, that we will cover in this blog.

A Trip Down Memory Lane

My experience with Windows Defender is that getting through it initially is not too difficult, the difficulty comes with doing post-exploitation activities with Defender constantly watching. In this blog I will detail my entire journey to write a loader getting past Defender.

GTPDOOR - A novel backdoor tailored for covert access over the roaming exchange

This is a technical analysis of GTPDOOR, a Linux based malware that is intended to be deployed on systems in telco networks adjacent to the GRX (GRPS eXchange Network) with the novel feature of communicating C2 traffic over GTP-C (GPRS Tunnelling Protocol - Control Plane) signalling messages.

Smishing with EvilGophish

In this article, I will explain how to setup a smishing (SMS phishing) campaign with EvilGoPhish.

OpenNMS Vulnerabilities: Securing Code against Attackers' Unexpected Ways

In this article, we detail how an unauthenticated attacker can leverage CVE-2023-0846 to inject a JavaScript payload in the OpenNMS admin dashboard, which exploits another vulnerability in the application to execute arbitrary code on the server once an admin views the dashboard.

Using form hijacking to bypass CSP

In this post we'll show you how to bypass CSP by using an often overlooked technique that can enable password theft in a seemingly secure configuration.

A hackers' guide to online voting systems

In this blog post, we'll delve into techniques for manipulating online voting systems, focusing on attacks that go beyond classic web vulnerabilities, and distinguishing between two common security contexts: anonymous polls and authenticated polls.

Cryptographic design review of Ockam

In this blog post, we give some insight into our cryptographic design review of Ockam's protocols, highlight several positive aspects of the initial design, and describe the recommendations we made to further strengthen the system's security.

Persistence - Explorer

Since Explorer is a native Windows process it could be used in red team operations for injection of arbitrary code. In this article, we will leverage one missing DLL called by explorer.exe to achieve persistence.

Code injection on Android without ptrace

This article detail a project that has a simple premise: injecting code into a process without using ptrace. To achieve that, it uses /proc/mem to write code directly into memory, allowing running threads to pick up the code and execute it.

Pwning the Domain: Kerberos Delegation

In this article we'll talk about Kerberos Delegation and how to abuse it in various ways and escalate our privileges.

Hijacking & Spoofing Context Menu Options

This article show how to hijack SentinelOne's "Scan For Threats" context menu option and create your own option for persistence.

Breaking down Atomic MacOS Stealer (AMOS)

This article is the analysis of the Atomic MacOS Stealer (AMOS). It reveals a sophisticated malware with evident efforts to evade current XProtect signatures. It shows threats targeting macOS are constantly evolving.

Fuzzer Development 3: Building Bochs, MMU, and File I/0

This post is the third in a series of blogposts detailing the development process of a snapshot fuzzer that aims to utilize Bochs as a target execution engine. In this post, we're going to go over some changes and advancements we've made to the fuzzer and also document some progress related to Bochs itself.

Unwelcome Guest: Abusing Azure Guest Access to Dump Users, Groups, and more

This post will walk through a user, group, and application enumeration attack against a tenant where the attacker has guest access and the guest access settings are set to the default. This technique gets around numerous other attempts to prevent enumeration, and I believe it is novel.

Source Code Disclosure in ASP.NET apps

In this post, I detail a method that makes it possible to reveal .NET applications source code.

TODDLERSHARK: ScreenConnect Vulnerability Exploited to Deploy BABYSHARK Variant

This article is a technical analysis of new malware resembling the VBScript based BABYSHARK malware that we've called TODDLERSHARK. It is used in post-compromise activity following exploitation of a ScreenConnect application. It utilizes legitimate Microsoft binary and alternate data streams and exhibited elements of polymorphic behavior.

Still Recent

SOAPHound - tool to collect Active Directory data via ADWS

In this article, we detail the use of SOAPHound, a custom-developed .NET data collector tool which can be used to enumerate Active Directory environments via the Active Directory Web Services (ADWS) protocol.

Unveiling custom packers: A comprehensive guide

In this article, you'll be diving into an introduction to how packers work, some tips to unpack, and two walkthroughs showing off how i usually deal with custom packers.

MultiDump

This article dives into technical implementation details of MultiDump. This is a post-exploitation tool written in C for dumping and extracting LSASS memory discreetly, without triggering Defender alerts, with a handler written in Python.

Unauthenticated Email Enumeration via API Fuzzing

This blog post explores a recent finding I discovered. This vulnerability allows unauthorized users to enumerate all email addresses without authentication or rate limiting, potentially exposing sensitive information.

Initial Access Operations Part 1: The Windows Endpoint Defense Technology Landscape

This article provides a list of security techniques implemented on Windows endpoints. This should give you a good sense of why it is increasingly difficult to achieve a foothold on a Windows endpoint and perform post exploitation activities in a maturely instrumented environment.

Introducing the Mutator Kit: Creating Object File Monstrosities with Sleep Mask and LLVM

This blog introduces the mutator kit, which uses an LLVM obfuscator to break in-memory YARA scanning of the sleep mask. We will give a quick background to the mutator kit and then show you how to apply it so that a uniquely mutated sleep mask can be applied every time a payload is exported.

Oldies but Goodies

Unearthed Arcana