SlideShare a Scribd company logo
Straight outta VMware:
Modern exploitation of the SVGA device for
guest-to-host escapes
Zisis Sialveras (zisis@census-labs.com)
BlueHatv18
www.census-labs.com
> WHOAMI
• Computer Security Researcher at CENSUS
– RE, exploit development, vulnerability research
• Electrical & Computer Engineering in A.U.Th
• Used to mess with knowledge-based fuzzers
• My twitter handle is @_zisis
> AGENDA
• VMware architecture
– VMware modules
– SVGA thread / Sending commands
– SVGA3D communication protocol
• Exploitation
– Exploitation primitives
– VMSA-2017-0006 (demo!)
• Conclusion / Q&A
> VMWARE ARCHITECTURE
> FIRST TASKS OF VMX APPLICATION
• Calls PowerOn callbacks
from ModuleTable
• MKS, DevicePowerOn
and SVGALate modules
are associated with the
virtual graphics device
> MKS MODULE
• Acronym for Mouse Keyboard Screen
• Spawns the MKS Thread
– Discovers the available renderers (backend)
> MKS MODULE – RENDERERS
• Renderers constitute the VGA backend interface
– which one is going to be enabled depends on the host
OS
• Available renderers in version 14:
– MKSBasicOps, DX11Renderer, DX11RendererBasic,
D3DRenderer, SWRenderer, GLRenderer, GLBasic,
MTLRenderer, VABasic
• On a Windows 10 host DX11Renderer is used.
• DX11Renderer uses DXGI to communicate with
the host graphics device.
> DEVICEPOWERON MODULE
• Contains a list of
devices
• SVGAPowerOn reads
the VM configuration
and spawns the SVGA
thread
• SVGA thread waits for
initialization of other
modules
> SVGALATE MODULE
• Calls IOCTL_VMX86_ALLOC_CONTIG_PAGES to
allocate the SVGA FIFO and the Global Frame
Buffer (GFB).
• FIFO and GFB regions are shared between
guest and host OS.
> SVGA THREAD
• Once VMM is ready, it signals the SVGA
thread.
• VMM has a specific shared memory region
dedicated for communication with the SVGA
thread.
• SVGA enters an infinite loop at which
– Processes commands sent by guest operating
system via SVGA FIFO or command buffers
> SVGA DEVICE – GUEST POINT OF VIEW
• Guest user can send
(SVGA3D)
commands to the
device
– by SVGA FIFO
– by commands
buffers
> SVGA THREAD – SVGA FIFO
• Explained in great detail by Kostya
Kortchinsky.
• SVGA FIFO is a MMIO region.
• Divided into two partitions
– FIFO registers
– FIFO data
> SVGA FIFO – SUBMIT COMMAND
• SVGA_FIFO_NEXT_CMD register denotes the
next command offset in the FIFO data section
• Each command begins with
> SVGA REGISTERS – PORT I/O
• SVGA device exposes a few general purpose
registers
• In, out instruction must be called to access the
registers
> COMMAND BUFFERS
• Two registers must be set to submit a
command buffer
– SVGA_REG_COMMAND_HIGH: upper 32bit of
physical address
– SVGA_REG_COMMAND_LOW: lower 32bit of
physical address and submits command
> SVGA3D
PROTOCOL
> OBJECT TABLES
• Object tables are used to
keep track of SVGA3D entities
(objects)
• Available objects:
– MOB, Surface, Context, Shader,
Screentarget, DXContext
• Stored in guest memory
• PPN = Physical Page Number
(PhysAddr >> 0xC)
> MEMORY OBJECTS
• MOBs are stored in
guest memory as well
• They contain raw data
used for initialization of
SVGA objects (context,
shader, etc)
> COMMON SVGA OBJECTS
• Objects
–Context
–DXContext
–Shader
–Surface
–Screentarget
• Operations
–Define
–Bind
–Destroy
–Readback
> CONTEXT DEFINE
> CONTEXT BIND
> CONTEXT DESTROY
> EXPLOITATION
PRIMITIVES
• Heap spraying
• How to use shaders
• Analysis of
SVGA_3D_CMD_SET_SHADER
• Create new shader
• Heap spraying
• Information leakage and code
execution
• Resource container
• Analysis of surface copy
command
• Attacking VMware
• Hands-on: Exploiting a public bug
> HOW TO USE SHADERS
• Define a shader
• Define a MOB
• Bind shader with the MOB
• Set shader to a context
– Allocation of shader data
structure on the host side
• Next draw command will
use the requested shader
> ANALYSIS OF SVGA_3D_CMD_SET_SHADER
> CREATE NEW SHADER
> HEAP SPRAYING SUMMARY
• On a single “set shader” command, two allocation of the
requested size are performed.
– The first one is freed immediately.
– The latter is freed when the guest user destroys the shader.
• VMware keeps track of the total shader allocation size. Must
be less than 8MB
• Guest is able to define as many shaders fit in shader object
table
– The size of the object table can be modified by
SVGA3D_CMD_SET_OTABLE command.
> SURFACES
• Surface definition
– All host VRAM resources, including 2D textures, 3D textures, cube
environment maps, render targets, and vertex/index buffers are
represented using a homogeneous surface abstraction.
• Surface is a frontend object.
> RESOURCE CONTAINERS
• Resource containers
is a data structure of
the backend
(DX11Renderer).
• They are often
associated with
surfaces.
> RESOURCE CONTAINERS
• There are ten (10) different types
of resource containers
• Which type will be created
depends on the arguments that
the surface was defined with
• Similarly to the other SVGA
objects, VMware creates them
only when they are going to be
used (lazy allocation)
> SURFACE COPY
• SVGA_3D_CMD_SU
RFACE_COPY copies
parts (three
dimensional boxes)
from the source to
the destination
surface
> SURFACE COPY
> MAP SUBRESOURCE
> RESOURCE CONTAINER GETDATABUFFER
> ATTACKING
VMWARE
• Resource containers are very
attractive to attackers, since
they
• can be allocated multiple
times
• contain pointers to heap
• contain dimensions
• contain function pointers
> ATTACKING VMWARE
• Assume that we have a memory corruption bug.
• Consider the following surface
– Width = 0x45
– Height = 0x2
– Depth = 0x1
– Surface format = SVGA3D_A4R4G4B4
• Since the surface format requires 2 bytes for each
pixel the total size of the RC->DataBuffer will be
0x45 * 0x2 * 0x1 * 2 = 0x114 bytes.
> ATTACKING VMWARE
• Corrupt width of RC with a greater value
– RowPitch will also be affected
• Box must be in boundaries due to the checks at frontend.
• DataPtr will point after the end of the buffer
> AVOID THE PITFALL
• MyDX11Resource_MapSubresourceBox will
refresh the contents of the DataBuffer with
the contents of the GPU.
– This will trash the data that we want to write back
to guest.
• This can be avoided by corrupting and
decreasing the value of height.
– GetDataBuffer will silently fail but the surface copy
command will continue.
> LEAK AND CODE EXECUTION
• If a RC is placed after the DataBuffer, we can
leak function pointers.
– LFH chunks are placed next to each other
• Once the attacker has vmware-vmx base
address, he/she can corrupt GetDataBuffer
function pointer and call surface copy
command.
> THE BUG
> VMSA-2017-0006
• Bug is located in SM4 bytecode parser
• Fixed at version 12.5.5 of VMware
– I patched vmware-vmx.exe to reintroduce the
vulnerability on 14.1.3
• Developed an escape exploit (named
“katachnia”) which consists of two parts
(userland application, kernel driver)
> VULNERABILITY DETAILS
• A malicious shader must be set to a DXContext
(using SVGA3D_CMD_DX_SET_SHADER)
• A call to SVGA3D_CMD_DX_DRAW will trigger
the shader bytecode parser
• During the call an object of 0x26D80 size will
be allocated
– Values from the bytecode will be used as index to
access that shader
> VULNERABLE VERSION 12.5.4 -
DCL_CONSTANTBUFFER (59H)
> PATCHED VERSION 12.5.5 -
DCL_CONSTANTBUFFER (59H)
> VULNERABLE VERSION 12.5.4 -
DCL_INDEXRANGE (5B)
> PATCHED VERSION 12.5.5 –
DCL_INDEXRANGE (5B)
> THE EXPLOIT
> DRIVER ENTRY
• BAR0 contains I/O base
• BAR2 contains the FIFO physical address
> INIT_SVGA_IOCTL
KATACHNIA
APPLICATION
KATACHNIA
KERNEL
DRIVER
INIT_SVGA_IOCTL
> HOW TO SETUP SVGA
• FIFO initialization
• Object tables
definition
> LEAK_VMX_ADDR_IOCTL
KATACHNIA
APPLICATION
KATACHNIA
KERNEL
DRIVER
INIT_SVGA_IOCTL
Config is done, graphics are dead
(black screen)
LEAK_VMX_ADDR_IOCTL
> PREPARE MEMORY LAYOUT
• Allocate a big chunk that will
be occupied later by the
allocation at
SVGA3D_CMD_DX_DRAW
• Repeatedly allocate a shader
of size 0x150
0x26D80
> PREPARE MEMORY LAYOUT
• Allocate a big chunk that will
be occupied later by the
allocation at
SVGA3D_CMD_DX_DRAW
• Repeatedly allocate a shader
of size 0x150
0x26D80
LFH 0x150
> PREPARE MEMORY LAYOUT
• Replace all 0x150 heap chunks
with ResourceContainer1
0x26D80
LFH 0x150 (RC1)
> PREPARE MEMORY LAYOUT
> PREPARE MEMORY LAYOUT
DataBuffers
Resource Container type 0
0x26D80
LFH 0x150 (RC1)
LFH 0x150 (RC0)
> FREE BIG SHADER
free
LFH 0x150 (RC1)
LFH 0x150 (RC0)
> TRIGGER THE BUG
0x26D80
Vulnerable
buffer
LFH 0x150 (RC1)
LFH 0x150 (RC0)
> COPY SURFACES BACK TO GUEST
• Call surface copy until
encounter the corrupted RC1
free
LFH 0x150 (RC1)
LFH 0x150 (RC0)
> CORRUPT A FUNCTION POINTER
• Corrupt RC->GetDataBuffer with
the first ROP gadget
0x26D80
Vulnerable
buffer
LFH 0x150 (RC1)
LFH 0x150 (RC0)
> HONEY, I DEFEATED ASLR
• Corrupt the QWORD at offset 8 of RC1 with the
address of the global pointer of the RPC content
buffer
• No much time to talk for RPC (google for more info)
• In short, guest user can allocate a controllable buffer
on the heap of the host which address is stored at a
global variable
> YAY, WE GOT THE ADDRESS
KATACHNIA
APPLICATION
KATACHNIA
KERNEL
DRIVER
INIT_SVGA_IOCTL
Config is done, graphics are dead
(black screen)
LEAK_VMX_ADDR_IOCTL
vmware-vmx address returned,
RC1->GetDataBuffer is corrupted
with the first ROP gadget
> PLACE THE ROP CHAIN…
KATACHNIA
APPLICATION
KATACHNIA
KERNEL
DRIVER
INIT_SVGA_IOCTL
Config is done, graphics are dead
(black screen)
LEAK_VMX_ADDR_IOCTL
vmware-vmx address returned,
RC1->GetDataBuffer is corrupted
with the first ROP gadget
RPC
Place on host’s heap
the ROP chain
> PRISON BREAK!
KATACHNIAAPPLICATION
KATACHNIAKERNELDRIVER
INIT_SVGA_IOCTL
Config is done, graphics are dead
(black screen)
LEAK_VMX_ADDR_IOCTL
vmware-vmx address returned,
RC1->GetDataBuffer is corrupted
with the first ROP gadget
RPC
Place on host’s heap
the ROP chain
ESCAPE_IOCTL !!1
> SHOW OFF (AKA DEMO!)
> CONCLUSION
• Reusable and reliable exploitation primitives
for memory corruption bugs were introduced
• SVGA has a good quality of code
– however, it is amazingly complex, so expect more
bugs
• VMware lacks modern exploitation mitigations
– No isolated heap
– No CFI
> REFERENCES
• Cloudburst - Kostya Kortchinsky, BHUSA 2009
• GPU Virtualization on VMware’s Hosted I/O Architecture - Micah Dowty, Jeremy
Sugerman
• Wandering through the Shady Corners of VMware Workstation/Fusion -
ComSecuris, Nico Golde, Ralf-Philipp Weinmann
• L'art de l'evasion: Modern VMWare Exploitation Techniques - Brian Gorenc, Abdul-
Aziz Hariri, Jasiel Spelman, OffensiveCon 2018
• The great escapes of Vmware: A retrospective case study of Vmware guest-to-host
escape vulnerabilities – Debasish Mandal & Yakun Zhang, BHEU 2017
• Linux kernel driver (vmwgfx) is a treasure!
• Special thanks fly to: Nick Sampanis, Aris Thallas, Sotiris Papadopoulos
BlueHat v18 || Straight outta v mware - modern exploitation of the svga device for guest-to-host escapes

More Related Content

What's hot

Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
CanSecWest
 
kdump: usage and_internals
kdump: usage and_internalskdump: usage and_internals
kdump: usage and_internals
LinuxCon ContainerCon CloudOpen China
 
Lock free programming- pro tips
Lock free programming- pro tipsLock free programming- pro tips
Lock free programming- pro tips
Jean-Philippe BEMPEL
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Peter Hlavaty
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
Paul V. Novarese
 
Csw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromisedCsw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromised
CanSecWest
 
Java Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVMJava Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVM
odnoklassniki.ru
 
[若渴計畫] Challenges and Solutions of Window Remote Shellcode
[若渴計畫] Challenges and Solutions of Window Remote Shellcode[若渴計畫] Challenges and Solutions of Window Remote Shellcode
[若渴計畫] Challenges and Solutions of Window Remote Shellcode
Aj MaChInE
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganeti
kawamuray
 
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
odnoklassniki.ru
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
Peter Hlavaty
 
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physicalCsw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
CanSecWest
 
Kgdb kdb modesetting
Kgdb kdb modesettingKgdb kdb modesetting
Kgdb kdb modesetting
Kaushal Kumar Gupta
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
Pradeep Kumar
 
Kqueue : Generic Event notification
Kqueue : Generic Event notificationKqueue : Generic Event notification
Kqueue : Generic Event notification
Mahendra M
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Anne Nicolas
 
Mathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakesMathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakes
Alexander Krizhanovsky
 
Mem forensic
Mem forensicMem forensic
Mem forensic
Chong-Kuan Chen
 
RHEVM - Live Storage Migration
RHEVM - Live Storage MigrationRHEVM - Live Storage Migration
RHEVM - Live Storage Migration
Raz Tamir
 
Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)
Nate Lawson
 

What's hot (20)

Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacketCsw2016 wheeler barksdale-gruskovnjak-execute_mypacket
Csw2016 wheeler barksdale-gruskovnjak-execute_mypacket
 
kdump: usage and_internals
kdump: usage and_internalskdump: usage and_internals
kdump: usage and_internals
 
Lock free programming- pro tips
Lock free programming- pro tipsLock free programming- pro tips
Lock free programming- pro tips
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Csw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromisedCsw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromised
 
Java Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVMJava Runtime: повседневные обязанности JVM
Java Runtime: повседневные обязанности JVM
 
[若渴計畫] Challenges and Solutions of Window Remote Shellcode
[若渴計畫] Challenges and Solutions of Window Remote Shellcode[若渴計畫] Challenges and Solutions of Window Remote Shellcode
[若渴計畫] Challenges and Solutions of Window Remote Shellcode
 
LXC on Ganeti
LXC on GanetiLXC on Ganeti
LXC on Ganeti
 
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physicalCsw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
 
Kgdb kdb modesetting
Kgdb kdb modesettingKgdb kdb modesetting
Kgdb kdb modesetting
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
Kqueue : Generic Event notification
Kqueue : Generic Event notificationKqueue : Generic Event notification
Kqueue : Generic Event notification
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
 
Mathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakesMathematics and development of fast TLS handshakes
Mathematics and development of fast TLS handshakes
 
Mem forensic
Mem forensicMem forensic
Mem forensic
 
RHEVM - Live Storage Migration
RHEVM - Live Storage MigrationRHEVM - Live Storage Migration
RHEVM - Live Storage Migration
 
Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)
 

Similar to BlueHat v18 || Straight outta v mware - modern exploitation of the svga device for guest-to-host escapes

AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) HypervisorAsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
Dave Voutila
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
DataWorks Summit/Hadoop Summit
 
Installing Oracle Database on LDOM
Installing Oracle Database on LDOMInstalling Oracle Database on LDOM
Installing Oracle Database on LDOM
Philippe Fierens
 
Xiv svc best practices - march 2013
Xiv   svc best practices - march 2013Xiv   svc best practices - march 2013
Xiv svc best practices - march 2013
Jinesh Shah
 
Autonomous control in Big Data platforms: and experience with Cassandra
Autonomous control in Big Data platforms: and experience with CassandraAutonomous control in Big Data platforms: and experience with Cassandra
Autonomous control in Big Data platforms: and experience with Cassandra
Emiliano
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
Altinity Ltd
 
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStoreBig Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
Matt Stubbs
 
Presentazione VMware @ VMUGIT UserCon 2015
Presentazione VMware @ VMUGIT UserCon 2015Presentazione VMware @ VMUGIT UserCon 2015
Presentazione VMware @ VMUGIT UserCon 2015
VMUG IT
 
NET8935_Small_DC_Shahzad_Ali
NET8935_Small_DC_Shahzad_AliNET8935_Small_DC_Shahzad_Ali
NET8935_Small_DC_Shahzad_Alishezy22
 
Road show 2015 triangle meetup
Road show 2015 triangle meetupRoad show 2015 triangle meetup
Road show 2015 triangle meetup
wim_provoost
 
vCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on ArchitecturevCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on Architecture
techstarts
 
CNIT 127 14: Protection Mechanisms
CNIT 127 14: Protection MechanismsCNIT 127 14: Protection Mechanisms
CNIT 127 14: Protection Mechanisms
Sam Bowne
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Julien Anguenot
 
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
DataStax Academy
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle Coherence
Ben Stopford
 
SignalFx Kafka Consumer Optimization
SignalFx Kafka Consumer OptimizationSignalFx Kafka Consumer Optimization
SignalFx Kafka Consumer Optimization
SignalFx
 
Web (dis)assembly
Web (dis)assemblyWeb (dis)assembly
Web (dis)assembly
Shakacon
 
VMware - Virtual SAN - IT Changes Everything
VMware - Virtual SAN - IT Changes EverythingVMware - Virtual SAN - IT Changes Everything
VMware - Virtual SAN - IT Changes Everything
VMUG IT
 
5. IO virtualization
5. IO virtualization5. IO virtualization
5. IO virtualization
Hwanju Kim
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)
mistercteam
 

Similar to BlueHat v18 || Straight outta v mware - modern exploitation of the svga device for guest-to-host escapes (20)

AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) HypervisorAsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
AsiaBSDCon2023 - Hardening Emulated Devices in OpenBSD’s vmd(8) Hypervisor
 
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
End to End Processing of 3.7 Million Telemetry Events per Second using Lambda...
 
Installing Oracle Database on LDOM
Installing Oracle Database on LDOMInstalling Oracle Database on LDOM
Installing Oracle Database on LDOM
 
Xiv svc best practices - march 2013
Xiv   svc best practices - march 2013Xiv   svc best practices - march 2013
Xiv svc best practices - march 2013
 
Autonomous control in Big Data platforms: and experience with Cassandra
Autonomous control in Big Data platforms: and experience with CassandraAutonomous control in Big Data platforms: and experience with Cassandra
Autonomous control in Big Data platforms: and experience with Cassandra
 
High Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouseHigh Performance, High Reliability Data Loading on ClickHouse
High Performance, High Reliability Data Loading on ClickHouse
 
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStoreBig Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
Big Data LDN 2017: Big Data Analytics with MariaDB ColumnStore
 
Presentazione VMware @ VMUGIT UserCon 2015
Presentazione VMware @ VMUGIT UserCon 2015Presentazione VMware @ VMUGIT UserCon 2015
Presentazione VMware @ VMUGIT UserCon 2015
 
NET8935_Small_DC_Shahzad_Ali
NET8935_Small_DC_Shahzad_AliNET8935_Small_DC_Shahzad_Ali
NET8935_Small_DC_Shahzad_Ali
 
Road show 2015 triangle meetup
Road show 2015 triangle meetupRoad show 2015 triangle meetup
Road show 2015 triangle meetup
 
vCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on ArchitecturevCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on Architecture
 
CNIT 127 14: Protection Mechanisms
CNIT 127 14: Protection MechanismsCNIT 127 14: Protection Mechanisms
CNIT 127 14: Protection Mechanisms
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
 
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle Coherence
 
SignalFx Kafka Consumer Optimization
SignalFx Kafka Consumer OptimizationSignalFx Kafka Consumer Optimization
SignalFx Kafka Consumer Optimization
 
Web (dis)assembly
Web (dis)assemblyWeb (dis)assembly
Web (dis)assembly
 
VMware - Virtual SAN - IT Changes Everything
VMware - Virtual SAN - IT Changes EverythingVMware - Virtual SAN - IT Changes Everything
VMware - Virtual SAN - IT Changes Everything
 
5. IO virtualization
5. IO virtualization5. IO virtualization
5. IO virtualization
 
3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)3 boyd direct3_d12 (1)
3 boyd direct3_d12 (1)
 

More from BlueHat Security Conference

BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Security Conference
 
BlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || KeynoteBlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || Keynote
BlueHat Security Conference
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Security Conference
 
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and DefenseBlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Security Conference
 
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come aloneBlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Security Conference
 
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILsBlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Security Conference
 
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Security Conference
 
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Security Conference
 
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR InvestigationsBlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Security Conference
 
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Security Conference
 
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Security Conference
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Security Conference
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat Security Conference
 
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzingBlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat Security Conference
 
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxyBlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat Security Conference
 
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windowsBlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat Security Conference
 
BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat Security Conference
 
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat Security Conference
 
BlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deceptionBlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deception
BlueHat Security Conference
 
BlueHat v18 || An ice-cold boot to break bit locker
BlueHat v18 || An ice-cold boot to break bit lockerBlueHat v18 || An ice-cold boot to break bit locker
BlueHat v18 || An ice-cold boot to break bit locker
BlueHat Security Conference
 

More from BlueHat Security Conference (20)

BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
BlueHat Seattle 2019 || The cake is a lie! Uncovering the secret world of mal...
 
BlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || KeynoteBlueHat Seattle 2019 || Keynote
BlueHat Seattle 2019 || Keynote
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
 
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and DefenseBlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
BlueHat Seattle 2019 || Kubernetes Practical Attack and Defense
 
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come aloneBlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
BlueHat Seattle 2019 || Open Source Security, vulnerabilities never come alone
 
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILsBlueHat Seattle 2019 || Modern Binary Analysis with ILs
BlueHat Seattle 2019 || Modern Binary Analysis with ILs
 
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
BlueHat Seattle 2019 || Don't forget to SUBSCRIBE.
 
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
 
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR InvestigationsBlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
BlueHat Seattle 2019 || Autopsies of Recent DFIR Investigations
 
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
BlueHat Seattle 2019 || The good, the bad & the ugly of ML based approaches f...
 
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
BlueHat Seattle 2019 || Are We There Yet: Why Does Application Security Take ...
 
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
BlueHat Seattle 2019 || Building Secure Machine Learning Pipelines: Security ...
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
 
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzingBlueHat v18 || WSL reloaded - Let's try to do better fuzzing
BlueHat v18 || WSL reloaded - Let's try to do better fuzzing
 
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxyBlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
BlueHat v18 || The hitchhiker's guide to north korea's malware galaxy
 
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windowsBlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
BlueHat v18 || Retpoline - the anti-spectre (type 2) mitigation in windows
 
BlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without deviceBlueHat v18 || Massive scale usb device driver fuzz without device
BlueHat v18 || Massive scale usb device driver fuzz without device
 
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
BlueHat v18 || Modern day entomology - examining the inner workings of the bu...
 
BlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deceptionBlueHat v18 || The matrix has you - protecting linux using deception
BlueHat v18 || The matrix has you - protecting linux using deception
 
BlueHat v18 || An ice-cold boot to break bit locker
BlueHat v18 || An ice-cold boot to break bit lockerBlueHat v18 || An ice-cold boot to break bit locker
BlueHat v18 || An ice-cold boot to break bit locker
 

Recently uploaded

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

BlueHat v18 || Straight outta v mware - modern exploitation of the svga device for guest-to-host escapes

  • 1. Straight outta VMware: Modern exploitation of the SVGA device for guest-to-host escapes Zisis Sialveras (zisis@census-labs.com) BlueHatv18 www.census-labs.com
  • 2. > WHOAMI • Computer Security Researcher at CENSUS – RE, exploit development, vulnerability research • Electrical & Computer Engineering in A.U.Th • Used to mess with knowledge-based fuzzers • My twitter handle is @_zisis
  • 3. > AGENDA • VMware architecture – VMware modules – SVGA thread / Sending commands – SVGA3D communication protocol • Exploitation – Exploitation primitives – VMSA-2017-0006 (demo!) • Conclusion / Q&A
  • 5. > FIRST TASKS OF VMX APPLICATION • Calls PowerOn callbacks from ModuleTable • MKS, DevicePowerOn and SVGALate modules are associated with the virtual graphics device
  • 6. > MKS MODULE • Acronym for Mouse Keyboard Screen • Spawns the MKS Thread – Discovers the available renderers (backend)
  • 7. > MKS MODULE – RENDERERS • Renderers constitute the VGA backend interface – which one is going to be enabled depends on the host OS • Available renderers in version 14: – MKSBasicOps, DX11Renderer, DX11RendererBasic, D3DRenderer, SWRenderer, GLRenderer, GLBasic, MTLRenderer, VABasic • On a Windows 10 host DX11Renderer is used. • DX11Renderer uses DXGI to communicate with the host graphics device.
  • 8. > DEVICEPOWERON MODULE • Contains a list of devices • SVGAPowerOn reads the VM configuration and spawns the SVGA thread • SVGA thread waits for initialization of other modules
  • 9. > SVGALATE MODULE • Calls IOCTL_VMX86_ALLOC_CONTIG_PAGES to allocate the SVGA FIFO and the Global Frame Buffer (GFB). • FIFO and GFB regions are shared between guest and host OS.
  • 10. > SVGA THREAD • Once VMM is ready, it signals the SVGA thread. • VMM has a specific shared memory region dedicated for communication with the SVGA thread. • SVGA enters an infinite loop at which – Processes commands sent by guest operating system via SVGA FIFO or command buffers
  • 11. > SVGA DEVICE – GUEST POINT OF VIEW • Guest user can send (SVGA3D) commands to the device – by SVGA FIFO – by commands buffers
  • 12. > SVGA THREAD – SVGA FIFO • Explained in great detail by Kostya Kortchinsky. • SVGA FIFO is a MMIO region. • Divided into two partitions – FIFO registers – FIFO data
  • 13. > SVGA FIFO – SUBMIT COMMAND • SVGA_FIFO_NEXT_CMD register denotes the next command offset in the FIFO data section • Each command begins with
  • 14. > SVGA REGISTERS – PORT I/O • SVGA device exposes a few general purpose registers • In, out instruction must be called to access the registers
  • 15. > COMMAND BUFFERS • Two registers must be set to submit a command buffer – SVGA_REG_COMMAND_HIGH: upper 32bit of physical address – SVGA_REG_COMMAND_LOW: lower 32bit of physical address and submits command
  • 17. > OBJECT TABLES • Object tables are used to keep track of SVGA3D entities (objects) • Available objects: – MOB, Surface, Context, Shader, Screentarget, DXContext • Stored in guest memory • PPN = Physical Page Number (PhysAddr >> 0xC)
  • 18. > MEMORY OBJECTS • MOBs are stored in guest memory as well • They contain raw data used for initialization of SVGA objects (context, shader, etc)
  • 19. > COMMON SVGA OBJECTS • Objects –Context –DXContext –Shader –Surface –Screentarget • Operations –Define –Bind –Destroy –Readback
  • 23. > EXPLOITATION PRIMITIVES • Heap spraying • How to use shaders • Analysis of SVGA_3D_CMD_SET_SHADER • Create new shader • Heap spraying • Information leakage and code execution • Resource container • Analysis of surface copy command • Attacking VMware • Hands-on: Exploiting a public bug
  • 24. > HOW TO USE SHADERS • Define a shader • Define a MOB • Bind shader with the MOB • Set shader to a context – Allocation of shader data structure on the host side • Next draw command will use the requested shader
  • 25. > ANALYSIS OF SVGA_3D_CMD_SET_SHADER
  • 26. > CREATE NEW SHADER
  • 27. > HEAP SPRAYING SUMMARY • On a single “set shader” command, two allocation of the requested size are performed. – The first one is freed immediately. – The latter is freed when the guest user destroys the shader. • VMware keeps track of the total shader allocation size. Must be less than 8MB • Guest is able to define as many shaders fit in shader object table – The size of the object table can be modified by SVGA3D_CMD_SET_OTABLE command.
  • 28. > SURFACES • Surface definition – All host VRAM resources, including 2D textures, 3D textures, cube environment maps, render targets, and vertex/index buffers are represented using a homogeneous surface abstraction. • Surface is a frontend object.
  • 29. > RESOURCE CONTAINERS • Resource containers is a data structure of the backend (DX11Renderer). • They are often associated with surfaces.
  • 30. > RESOURCE CONTAINERS • There are ten (10) different types of resource containers • Which type will be created depends on the arguments that the surface was defined with • Similarly to the other SVGA objects, VMware creates them only when they are going to be used (lazy allocation)
  • 31. > SURFACE COPY • SVGA_3D_CMD_SU RFACE_COPY copies parts (three dimensional boxes) from the source to the destination surface
  • 33.
  • 35. > RESOURCE CONTAINER GETDATABUFFER
  • 36. > ATTACKING VMWARE • Resource containers are very attractive to attackers, since they • can be allocated multiple times • contain pointers to heap • contain dimensions • contain function pointers
  • 37. > ATTACKING VMWARE • Assume that we have a memory corruption bug. • Consider the following surface – Width = 0x45 – Height = 0x2 – Depth = 0x1 – Surface format = SVGA3D_A4R4G4B4 • Since the surface format requires 2 bytes for each pixel the total size of the RC->DataBuffer will be 0x45 * 0x2 * 0x1 * 2 = 0x114 bytes.
  • 38. > ATTACKING VMWARE • Corrupt width of RC with a greater value – RowPitch will also be affected • Box must be in boundaries due to the checks at frontend. • DataPtr will point after the end of the buffer
  • 39. > AVOID THE PITFALL • MyDX11Resource_MapSubresourceBox will refresh the contents of the DataBuffer with the contents of the GPU. – This will trash the data that we want to write back to guest. • This can be avoided by corrupting and decreasing the value of height. – GetDataBuffer will silently fail but the surface copy command will continue.
  • 40. > LEAK AND CODE EXECUTION • If a RC is placed after the DataBuffer, we can leak function pointers. – LFH chunks are placed next to each other • Once the attacker has vmware-vmx base address, he/she can corrupt GetDataBuffer function pointer and call surface copy command.
  • 42. > VMSA-2017-0006 • Bug is located in SM4 bytecode parser • Fixed at version 12.5.5 of VMware – I patched vmware-vmx.exe to reintroduce the vulnerability on 14.1.3 • Developed an escape exploit (named “katachnia”) which consists of two parts (userland application, kernel driver)
  • 43. > VULNERABILITY DETAILS • A malicious shader must be set to a DXContext (using SVGA3D_CMD_DX_SET_SHADER) • A call to SVGA3D_CMD_DX_DRAW will trigger the shader bytecode parser • During the call an object of 0x26D80 size will be allocated – Values from the bytecode will be used as index to access that shader
  • 44. > VULNERABLE VERSION 12.5.4 - DCL_CONSTANTBUFFER (59H)
  • 45. > PATCHED VERSION 12.5.5 - DCL_CONSTANTBUFFER (59H)
  • 46. > VULNERABLE VERSION 12.5.4 - DCL_INDEXRANGE (5B)
  • 47. > PATCHED VERSION 12.5.5 – DCL_INDEXRANGE (5B)
  • 49. > DRIVER ENTRY • BAR0 contains I/O base • BAR2 contains the FIFO physical address
  • 51. > HOW TO SETUP SVGA • FIFO initialization • Object tables definition
  • 52. > LEAK_VMX_ADDR_IOCTL KATACHNIA APPLICATION KATACHNIA KERNEL DRIVER INIT_SVGA_IOCTL Config is done, graphics are dead (black screen) LEAK_VMX_ADDR_IOCTL
  • 53. > PREPARE MEMORY LAYOUT • Allocate a big chunk that will be occupied later by the allocation at SVGA3D_CMD_DX_DRAW • Repeatedly allocate a shader of size 0x150 0x26D80
  • 54. > PREPARE MEMORY LAYOUT • Allocate a big chunk that will be occupied later by the allocation at SVGA3D_CMD_DX_DRAW • Repeatedly allocate a shader of size 0x150 0x26D80 LFH 0x150
  • 55. > PREPARE MEMORY LAYOUT • Replace all 0x150 heap chunks with ResourceContainer1 0x26D80 LFH 0x150 (RC1)
  • 57. > PREPARE MEMORY LAYOUT DataBuffers Resource Container type 0 0x26D80 LFH 0x150 (RC1) LFH 0x150 (RC0)
  • 58. > FREE BIG SHADER free LFH 0x150 (RC1) LFH 0x150 (RC0)
  • 59. > TRIGGER THE BUG 0x26D80 Vulnerable buffer LFH 0x150 (RC1) LFH 0x150 (RC0)
  • 60. > COPY SURFACES BACK TO GUEST • Call surface copy until encounter the corrupted RC1 free LFH 0x150 (RC1) LFH 0x150 (RC0)
  • 61. > CORRUPT A FUNCTION POINTER • Corrupt RC->GetDataBuffer with the first ROP gadget 0x26D80 Vulnerable buffer LFH 0x150 (RC1) LFH 0x150 (RC0)
  • 62. > HONEY, I DEFEATED ASLR • Corrupt the QWORD at offset 8 of RC1 with the address of the global pointer of the RPC content buffer • No much time to talk for RPC (google for more info) • In short, guest user can allocate a controllable buffer on the heap of the host which address is stored at a global variable
  • 63. > YAY, WE GOT THE ADDRESS KATACHNIA APPLICATION KATACHNIA KERNEL DRIVER INIT_SVGA_IOCTL Config is done, graphics are dead (black screen) LEAK_VMX_ADDR_IOCTL vmware-vmx address returned, RC1->GetDataBuffer is corrupted with the first ROP gadget
  • 64. > PLACE THE ROP CHAIN… KATACHNIA APPLICATION KATACHNIA KERNEL DRIVER INIT_SVGA_IOCTL Config is done, graphics are dead (black screen) LEAK_VMX_ADDR_IOCTL vmware-vmx address returned, RC1->GetDataBuffer is corrupted with the first ROP gadget RPC Place on host’s heap the ROP chain
  • 65. > PRISON BREAK! KATACHNIAAPPLICATION KATACHNIAKERNELDRIVER INIT_SVGA_IOCTL Config is done, graphics are dead (black screen) LEAK_VMX_ADDR_IOCTL vmware-vmx address returned, RC1->GetDataBuffer is corrupted with the first ROP gadget RPC Place on host’s heap the ROP chain ESCAPE_IOCTL !!1
  • 66. > SHOW OFF (AKA DEMO!)
  • 67. > CONCLUSION • Reusable and reliable exploitation primitives for memory corruption bugs were introduced • SVGA has a good quality of code – however, it is amazingly complex, so expect more bugs • VMware lacks modern exploitation mitigations – No isolated heap – No CFI
  • 68. > REFERENCES • Cloudburst - Kostya Kortchinsky, BHUSA 2009 • GPU Virtualization on VMware’s Hosted I/O Architecture - Micah Dowty, Jeremy Sugerman • Wandering through the Shady Corners of VMware Workstation/Fusion - ComSecuris, Nico Golde, Ralf-Philipp Weinmann • L'art de l'evasion: Modern VMWare Exploitation Techniques - Brian Gorenc, Abdul- Aziz Hariri, Jasiel Spelman, OffensiveCon 2018 • The great escapes of Vmware: A retrospective case study of Vmware guest-to-host escape vulnerabilities – Debasish Mandal & Yakun Zhang, BHEU 2017 • Linux kernel driver (vmwgfx) is a treasure! • Special thanks fly to: Nick Sampanis, Aris Thallas, Sotiris Papadopoulos