Conference Opening
We present the design and construction of a robot that reliably extracts contents of RAM of modern embedded devices at runtime. We discuss the practical engineering challenges and solutions of adapting the traditional cold-boot attack to non-removable DDR chips commonly found on modern embedded devices. Lastly, we present a practical guide to building your own cryo-mem rig from COTS parts for less than a thousand bucks.
Have you noticed that embedded hardware is getting harder to reverse? BGA chips, massively integrated packages, vertical stackups, encrypted firmware at rest, and a pinch of "no jtag or uart" has become standard fare. While these artifacts do not correlate to material improvements in device security, you can't prove it because you can't dump the firmware or debug the hardware. Skip the noise and change up the game. Sometimes it's easier just to grabbing unencrypted firmware from live RAM. All you have to do is keep the chips at -50C on a running system, pull all the chips off on the same CPU instruction, slap it on an FPGA that sort of respects the DDR state machine without punching a whole in your device, or cause shorts due to condensation, and without freezing your eyebrows off. We'll show you how to build a robot to do this in an afternoon for about a thousand dollars.
PlugX, a fully-featured remote access tool with a Chinese nexus, has been active in the wild for over a decade. However, a new variant was recently discovered to be using older, lesser-known Windows APIs via Component Object Model (COM) for staging and concealment - never-before-seen techniques. Leveraging an undesirable behavior in Windows Explorer, the malware uses COM to create folders that the Operating System cannot render or natively access, evading security scans that rely on the underlying Windows APIs. Additionally, this sucker is wormable, spreading across networks via USB air-gap jumping.
Despite rapidly changing and improving security practices, old technology is still an effective means for malicious cyber activity. This presentation will describe how the threat actors used COM to instantiate Windows APIs and abuse Windows Explorer to remain undetected on their victim's machines. It will explain how and why COM is so often overlooked by security researchers and suggest further areas of research on the topic.
This talk presents a comprehensive security analysis of low-earth satellites, which have gained immense popularity in the "New Space" era. Despite their growing numbers, the security of these satellites remains uncertain. After introducing the essential architectural components of satellites, we dive into the approach to reverse engineer satellites and exploit their vulnerabilities. Using emulation, we showcase live on stage the exploitation process and how to seize full control of the satellite.
Can we write a kernel driver in one hour that does something useful?
We'll fire up Visual Studio, talk about the required theory, and then write a somewhat useful kernel driver. For example, a driver that can read the memory of any process.
Truly read-only memory is sometimes found as a ROM encoded in a mask layer of a microcontroller. This is hard to extract electrically when the debugging protocol is undocumented, so many of these chips are dumped photographically after chemically decapsulating the chip with nitric acid, delayering it with hydrofluoric acid, and if they look identical, staining the ones to be a little darker than the zeroes.
In this lecture, I'll explain how I build a home lab for taking these photographs, how I wrote CAD software for converting the photos into bits. I'll also describe some prior work in the field, and how to reproduce those results quickly and cleanly.
The recently bankrupt Chinese tech giant Phicomm installed a cryptographically locked backdoor on each and every one of the routers they released over the past several years. In this talk, I will show how I reverse engineered the backdoor protocol and discovered a series of zero day vulnerabilities in that protocol's implementation. I will also demonstrate a tool I developed to exploit these vulnerabilities and gain a backdoor on any Phicomm router released since 2017, including models released on the international market, and which can still be found for sale on Amazon. Since Phicomm is no longer in business, it's safe to assume that there will never be an official patch for these routers, which means that the surest path for securing these devices passes through this very backdoor.
The goal of this workshop is to teach participants how to use patch diffing techniques to analyze real-world vulnerabilities in Microsoft Windows via (CVE-2023-28302) and Android via (CVE-2022-36934). The main point of the workshop is to help researchers understand that they already have the information and tools needed to understand complex vulnerabilities. By learning to patch diff "in the dark", a researcher can progress from knowing about a vulnerability to actually understanding its root cause.
Record/replay or "time travel" debuggers let developers record a trace of a program's execution and later replay it, allowing them to revisit past execution states and diagnose bugs that may be difficult to reproduce. These tools have existed on Linux and Windows for many years, however no such tool has ever been created for macOS. In this talk, we'll present our work towards creating a record/replay tool for macOS, describing the macOS-specific internals required to create it, why existing tools can't simply be ported, and some of the challenges that come up in creating this type of tool from scratch.
You probably wouldn't consider power analysis & fault injection being a required skill set for your oven repair person. But when your oven is actively lying to you and not just broken, a new type of repair is needed beyond just replacing a heating element. This talk starts from a common complaint: how a range of Samsung ovens show you only the set temperature, and the actual temperature varies widely (and is often incorrect). Using an attack combining power analysis & fault injection the code protection of the Toshiba TMP91FW series microcontrollers used in the controller is bypassed using a ChipWhisperer-Husky, which allows recovery of the oven firmware. From there the firmware is reverse engineered, and new functions are added to output the internal measured temperatures & control signals for analysis. This allows us to definitely demonstrate that the reason our thanksgiving turkey took so long to cook: an inflexible control system that cannot enable the heater long enough. Finally as a proof of concept, a patched version of the firmware improves how quickly it can recover, and is demonstrated cooking a souffle (all while displaying the actual oven temperature, also fixing one of the other common complaints). The documentation and tools are helpful for others repairing these ovens, hopefully diverting them from become waste.
Modern video encoding standards such as H.264 are a marvel of hidden complexity. But with hidden complexity comes hidden security risk. Decoding video today involves interacting with dedicated hardware accelerators and the proprietary, privileged software components used to drive them. The video decoder ecosystem is obscure, opaque, diverse, highly privileged, largely untested, and highly exposed -- a dangerous combination.
We introduce H26Forge, a framework that carefully crafts video files to expose edge cases in H.264 decoders. H26Forge’s key insight is operating on the syntax elements rather than on the encoded bitstring to build syntactically correct but semantically spec-non-compliant video files. These files cause H.264 decoders to find themselves in undefined states or unhandled errors.
We used H26Forge to uncover numerous vulnerabilities across the video decoder ecosystem, including kernel memory corruption bugs in iOS, memory corruption bugs in Firefox and VLC for Windows, and video accelerator and application processor kernel memory bugs in multiple Android devices. These bugs have been acknowledged by multiple vendors including Apple, Mozilla, and FFmpeg.
In this talk, we will share the internals of H.264 decoding pipelines and describe our experience developing and using H26Forge to find vulnerabilities. H26Forge and its related tools are fully open source and available to participants. We will also explore how participants can use H26Forge to test the security of H.264 decoders on the platforms they use.
Our talk dives into the security of consumer drones from market leader DJI and exposes how to analyze, reverse engineer, and exploit such cyber-physical systems. In this process, we uncover various vulnerabilities in DJI drones, show how to bypass vendor signatures, become root, or even crash the drone mid-flight.
What information is your iPhone, iPad or MacBook giving away about you? iOS, iPadOS and macOS use a variety of proprietary protocols under the "Continuity" umbrella to share information across a user’s devices and provide us with a "seamless experience". However, much of this information is passed in the clear and can be sniffed, captured, or mimicked by other nearby devices. This talk will cover privacy considerations and demonstrate the private information being passed in the clear via Apple’s proprietary Bluetooth Continuity protocol, including one called "Handoff".
First, the talk will highlight the Bluetooth research performed by the FuriousMAC research team to reverse engineer the Continuity protocol (without any documentation from Apple). Then, it will demonstrate how others can build upon this research using the tools provided by FuriousMAC and others in the Apple researcher community! Next, the talk will give a breakdown the of cryptographic protocols employed in AirTags via the Continuity Protocol and explain "Offline Finding". Finally, this talk will also show its observations to the changes in the Continuity protocol that have occurred over the years since the AirTag's official release in 2021.
Can we write a kernel driver in one hour that does something useful?
We'll fire up Visual Studio, talk about the required theory, and then write a somewhat useful kernel driver. For example, a driver that can read the memory of any process.
From the early days of operating systems, malware authors have attempted to hijack legitimate OS components for malicious purposes, which makes it essential to identify and understand the potential threats they represent. Today, let’s explore one uncommonly hijacked Windows component: the Restart Manager.
Introduced in Windows Vista, the Restart Manager aims to help reduce the number of reboots required during software updates. During updates, files that need to get updated can be locked by various applications, preventing the process responsible for the update from modifying them. The Restart Manager enables processes to request the lock release of the resource that they need to access, killing processes that are using it if the required conditions are met. However, this mechanism can be hijacked by third parties to serve malicious purposes.
This talk will first introduce the Restart Manager, diving into its architecture and mechanisms to provide a better understanding of how the component works. We’ll observe a legitimate use case of the Restart Manager by an installer, and will detail what happens under the hood. Next, we’ll look at real world examples to see how the Restart Manager can also be used for several malicious purposes, and will explain the rationale of each technique. Then, we’ll play around with the different functionalities of the Restart Manager through a live demo, and will explore one funny use case. Finally, we will conclude this presentation by presenting some of the methods that processes can use to defend themselves against this type of threat.
Wifi chips contain general purpose processors. Even though these are powerful processors, their firmware is closed source and does not allow modifications. This talk explores how the firmware of modern Qualcomm Wifi chips can be modified to allow extending its indented functionality. Such modifications can even be leveraged by security researchers to find vulnerabilities in an otherwise closed source Wifi code. During the talk we will also dive into the architecture of Qualcomms Wifi chips as well as the structure of the firmware used withing these chips. We will release a modified version of the Nexmon framework to enable patching of Xtensa based firmware and show all the steps involved to create such patches.
The goal of this workshop is to teach participants how to use patch diffing techniques to analyze real-world vulnerabilities in Microsoft Windows via (CVE-2023-28308) and Android via (CVE-2022-36934). The main point of the workshop is to help researchers understand that they already have the information and tools needed to understand complex vulnerabilities. By learning to patch diff "in the dark", a researcher can progress from knowing about a vulnerability to actually understanding its root cause.
Elbrus is a 40 year old Russian CPU family currently targeted at the Russian government and military market. This talk will use an old C++ virtual function pointer exploit technique as the basis for exploring Elbrus’s instruction set architecture, which contains some unique features such as very long instruction words (VLIWs) and register windowing.
State-backed actors generally have multiple tools in their kit to conduct cyber operations, but in recent years we've seen an uptick in the number of APT groups using disruptive tooling. One of the most prolific groups conducting disruptive cyber operations is part of the Russian Military Intelligence, also known as the GRU.
Since the beginning of the invasion in February 2022, we’ve seen 12 wipers deployed against Ukrainian Government and Business entities and in October 2022, the use of capabilities expanded, affecting logistics companies in the neighbouring country of Poland.
Over the course of the invasion, the GRU’s approach to disruptive operations has evolved. At the start of the invasion, the GRU was likely using a new wiper for each individual operation. They later changed to a reusable capability, employing a novel loader that bypassed some Windows security features, but some components of the operations remained consistent, such as the use of Group Policy Objects (GPO) to deploy and execute the payloads.
At the same time, as tactics have evolved, their quick pace caused them to make mistakes, including multiple operational and developmental errors in the tooling.
In this talk, you’ll hear about the disruptive arsenal at play by taking an in depth look at all of the wipers and the associated support tools used by the GRU in Ukraine. We’ll also evaluate the techniques used by the actors and what that tells us about their ability to rapidly prototype and deploy new payloads.
Our talk addresses the challenges faced by reverse engineers in navigating and exploring large, unknown binaries. We introduce a range of efficient, architecture-agnostic heuristics to quickly detect intriguing code locations in real-world applications. This ranges from the detection of cryptographic algorithms and complex state machines in firmware to string decryption routines in malware. Then, we use these techniques to identify API functions in statically-linked executables and pinpoint obfuscated code in commercial applications. Attendees will gain valuable insights and tools to enhance their reverse engineering workflows and discover new code detection strategies applicable to a wide array of scenarios.
The windows networking stack has been the source of various vulnerabilities over the years, a few of which could lead to remote code execution. This talk will discuss the internals of windows networking, how to uncover its secrets through reverse engineering and will conclude with details of some recently patched vulnerabilities (including CVE-2023-23415 aka Ping of Death).
Samsung baseband modems provide mobile network functionality to a variety of devices. Project Zero reviewed the Samsung 'Shannon' Exynos 5300 modem used by the Google Pixel 7, discovering and reporting several vulnerabilities. While many of these could only be exploited using a local base-station or compromised mobile network, some could be accessed remotely cross-carrier, requiring only a rooted mobile phone to perform the attack. This presentation will explore fully-remote baseband vulnerabilities.
For a reverse engineer one of the first steps is to differentiate between library code and code the author wrote. This can be especially hard depending on how the compiler has optimized the code. This research’s objective is to make life easier for analysts and reverser engineers while analyzing NIM based binaries.
The evolution of programming languages has created more portable languages that can be compiled for different platforms with little or no changes, without the recourse to virtual machines. This comes at the cost of a lot of boilerplate code which is added by the compiler or the Intermediate code translator. These languages often have their own definition of strings, calling convention and in some cases the intermediate code translator can implement different optimizations which in the end results in very complex executables.
The NIM compiler has several optimization options, it can be optimized for speed or size for example, which will result in dramatically different binaries. This presentation starts to demonstrate these differences and their impact on the final binary. Then it moves to show how an analyst can identify the non-library code, so that she can focus her efforts on analyzing the logic of the executable, instead of getting lost in library code. To help out in this task we will present IDAPro scripts that will do part of the binary analysis and identify imported library or boilerplate code and create well known structures for language specific objects like strings.
The presentation ends with a demonstration of the IDA scripts and the help it provides for analyzing NIM binaries.
ClamAV is an open-source antivirus engine maintained by Cisco. As it is freely available, it is widely used across a large number of software products, like email servers, and appliances. This means that if an attacker can fully compromise the AV engine running in one of those products, they could access incoming and outgoing emails and for an appliance even control the network traffic of an organization. It is well known that AV engines expose a large, externally reachable attack surface as they parse a variety of file-formats, often coming from the Internet. On the other hand, modern mitigations make the exploitation of antivirus software significantly harder because remote attackers cannot interact with the target and thus can’t leak memory addresses.
This talk is a case-study of reliably exploiting CVE-2023-20032, a heap-buffer-overflow as a remote-attacker and lessons learned from it. The exploit results in remote-code-execution impact and utilizes a unique exploit-technique to bypass ASLR that can be applied to similar targets.
NVMe technology is part of every Could Service Provider, and nowadays, Cloud Services are perhaps the most important cornerstone of modern computing. For this technology to work effectively, there’s a need for a reliable communication standard between the different services and their storage, and that’s exactly where NVMe comes to play.
In this session, we’ll see how I discovered a pre-auth remote vulnerability in the NVMe implementation of the Linux kernel in a matter of minutes and how you can do it as well.
The ease with which such vulnerability can be detected and exploited, combined with the fact that it’s done in the pre-auth stage and requires no more than a slight misconfiguration, makes this kind of attack vector very dangerous.
What can the early bootkits of the 1980s and 1990s teach us about bootkits of the present day? Why did vx-ers of that era use graphical payloads and how can their creative stealth and persistence techniques be applied to exploit writing and bootkit development of the present day?
Part history lesson, part malware analysis and part RE extravaganza, this talk will be a greatest hits deep dive into several of the most iconic and memorable moments in early bootkit history — Brain, Stoned, Ping-Pong, and others — and will explore the connection between legacy bootkit techniques and modern UEFI-targeting malware. The talk will then focus on the details of how I reverse engineered the infamous Michaelangelo bootkit and remixed its MBR infection techniques, to create a polymorphic art engine.
In the words of the ‘90s vx-er Spanska: “Coding a virus can be creative.” This talk presents malware art that aims to pay homage to the techniques of notable vx-ers of the ‘80s and ‘90s while adapting their techniques for the modern era.
There will be pretty pictures. There will be core wars. There will be a plethora of assembly language programming tricks.
I’m throwing a party for the ages and serving up a veritable smorgasbord of vintage exploits.
can’t wait to c u there
xoxo
ic3qu33n
Following our research on the Titan M, the security chip made by Google for their Android smartphones, we received a request from someone who had broken their device and was asking how they could recover the data despite the main SoC being dead. This question aroused our curiosity, and gave us the opportunity to play the forensic role and investigate how we could attack user data encryption on Android. We ended up asking ourselves how strong this mechanism is, against attackers who have access to a wide range of software vulnerabilities. To answer that question, we exploited two powerful known vulnerabilities, one in the Boot ROM of a Mediatek SoC and one in the Titan M, to attack the two mechanisms behind credential validation and key derivation: Gatekeeper and Weaver.
In this talk, we present the logic behind the generation and storage of the keys for Android's user data encryption, called File-Based Encryption. Referencing the implementation in the AOSP (Android Open Source Project), we follow the steps performed by the system to generate the final encryption keys. Analyzing this process, we describe how elements from the file system, TEE and Secure Element (when present) are combined with the user's credentials, which still remain essential in the derivation. In two scenarios, one relying on TrustZone (and the Gatekeeper TA), and one relying on a security chip (implementing Weaver), we show strategies on how they can be attacked. In this context we use two known software vulnerabilities to build a PoC on a Samsung A22 and on a Pixel 3a, to highlight the difficulties that one may face with this task.
This presentation brings together all the elements needed to fully understand user data encryption and authentication, touching the design principles, the implementation details and the necessary strategies to be adopted as an attacker. We hope this work can be an up to date reference, which can help other researchers reviewing these mechanisms and their internals.
Conference closing