SlideShare a Scribd company logo
1
LEVERAGING VMWARE'S RPC
INTERFACE FOR FUN AND PROFIT
2
Agenda
• Introduction
• VMware General Architecture (Simplified)
• Host <-> Guest Communication
– Backdoor Interface
• VM RPC Interface
– Functions
– Recording Guest -> Host RPC requests
• Developing tools to query the RPC Interface
– C++
– Python
• C Extension
• CTypes
• VMware UAF Exploitation
– Controlling Freed Objects
– Finding Exploit primitives
– Demo
• Conclusion
3
Introductions
4
Abdul-Aziz Hariri
• BS in Computer Sciences – University of Balamand
• Currently a Senior Security Researcher at ZDI
– Root Cause analysis / Vulnerability Research / Exploit development
– ZDI Case Lead
– Pwn2Own Preparation / Judging entries
• Past Experiences
– Bits Arabia, Insight-Tech and Morgan Stanley
• Past research:
– Pwn4Fun 2014 renderer exploit writer
– Microsoft Bounty submission
– Patents on Exploit Mitigation Technologies
– Adobe Reader research
• Twitter: @abdhariri
5
Jasiel Spelman
• BA in Computer Science – University of Texas at Austin
• Currently a Senior Security Researcher at ZDI
– Root Cause analysis / Vulnerability Research / Exploit development
– ZDI Research Lead
– Pwn2Own Invigilator
• Past Experiences
– TippingPoint Digital Vaccine team
• Past research:
– Pwn4Fun 2014 sandbox escape exploit writer
– Patents on zero day protection technologies
– Windows kernel information leaks
– Adobe Flash RE & RCE vulnerabilities
• Twitter: @WanderingGlitch
6
Brian Gorenc
• BS in Computer Engineering – Texas A&M University
• MS in Software Engineering – Southern Methodist University
• Director of Vulnerability Research at Trend Micro
– Leads the Zero Day Initiative
– Organizes Pwn2Own
– Approver of Payments
• Past Experiences
– Lead Developer at Lockheed Martin
• Past research:
– Microsoft Bounty submission
– Patents on Exploit Mitigation Technologies
– Bug hunting in many products
• Twitter: @MaliciousInput
7
VMware General Architecture
8
VMware General Architecture (Simplified*)
Hypervisor
Guest
vmware-vmx
CPU
Guest
vmware-vmx
CPU
vmware tools libs
I/O I/O
Management Layer
* very
What’s going on here?
9
Good Question
• As it turns out, quite a bit
• Regardless of whether VMware tools are installed
10
Host <-> Guest Communication
11
Host <-> Guest Communication
• Communication is done by accessing special I/O ports
• VMware implements an interface called “Backdoor”
– Hijacks the IN/OUT instructions
– Supports multiple commands
– Supports two protocols: RPCI and TCLO
– Can be used to extract host information
– Can be used to send Guest->Host RPC requests
• The Backdoor interface is enabled by default
12
Host <-> Guest Communication - Backdoor
• Supports multiple
commands/functions
– The commands can be found in
the open-vm-tools on github
– backdoor_def.h defines these
commands
• The guest can invoke more of
these commands than you
think…
13
Host <-> Guest Communication - Backdoor
• Invoking Backdoor functions is simple:
mov eax, 564D5868h /* magic number */
mov ebx, command-specific-parameter
mov cx, command-number /* 1001e = RPC */
mov dx, 5658h /* VMware I/O port */
in eax, dx
14
Host <-> Guest Communication - Backdoor
Hypervisor
(host)
Guest
(vm)
Backdoor Channel
TCLO
RPCI
Low-bandwidth
High-bandwidth
Backdoor Channel
Other
15
Host <-> Guest Communication - RPCI
• Supports multiple
commands
– Rpctool.exe can be used to
query some of the
commands.
– Rpctool.exe is open source
and can be found in the
open-vm-tools
– These RPC commands can
be found in vmware-
vmx.exe and sprinkled
throughout the open-vm-
tools source
16
Host <-> Guest Communication - RPCI
17
Host <-> Guest Communication – Summary
• Backdoor Interface is used for Host/Guest communication
• Hijacks in/out instructions
• RPCI is used from guest -> host
• TCLO is used from host -> guest
• RPCI commands can be found in vmware-vmx{.exe}
• open-vm-tools is a goldmine!
18
VM RPC Interface
19
GuestRPC
• The RPC requests are sent through the “backdoor” channel
• Specifically, the BDOOR_CMD_MESSAGE (0x1E)
• The Guest Messages are defined in guest_msg_def.h
• GuestRPC supports multiple message types:
20
GuestRPC
• Example of a simple GuestRPC message:
mov eax, 0x564D5868
mov ecx, 0x001e //MESSAGE_TYPE_OPEN
mov edx, 0x5658
mov ebx, 0xC9435052
in eax, dx
mov eax, 0x564D5868
mov ecx, 0x1001e //MESSAGE_TYPE_SENDSIZE
mov edx, 0x5658
mov ebx, SIZE
in eax, dx
mov eax, 0x564D5868
mov ecx, 0x6001e //MESSAGE_TYPE_CLOSE
mov edx, 0x5658
mov ebx, SIZE
in eax, dx
21
GuestRPC
• GuestRPC requests are are parsed within vmware-vmx{.exe}
• GuestRPC Messages/Functions are also implemented inside vmware-vmx{.exe}
• If we look closely inside GuestRPC_Funcs we will notice the following:
22
GuestRPC – ExecRPCRequest
• The function takes the RPC request as an argument
• Checks if the RPC function being passed is valid
• Checks if we have enough permissions to execute the
function
• Executes it
23
GuestRPC – Sniffing RPC Requests
• Since this is exactly where RPC requests are parsed, we can actually hook
this function and sniff the requests being sent
• For this task we used pykd 
– Set a breakpoint on the ExecRPCRequest function
– A pointer pointing to the request is set in the r8 register
– The length of the request is set in the r9 register
• Should look similar to the following
24
GuestRPC – Sniffing RPC Requests - DEMO
• DEMO
25
Developing tools to query the RPC
Interface
26
Tools Dev
• One of the challenging problems with VMware and RPC is tools development
for:
– Case analysis
– Exploit development
– Fuzzing
• While we can definitely use the open-vm-tools to develop tools in C++, there are
still challenges:
– There are functions that definitely needs to be implemented in ASM
– Without ASM we’ll need to use the exports from vmtools.dll
• Still a little bit of a hustle
27
Tools Dev - C++, take 1
• Add the open-vm-tools headers to the Include Directories
28
Tools Dev - C++, take 2
• Assembly..Since some function are
not fully implemented in the tools,
thus in order to step out of the
vmtools.dll we’d need to
implement some functions in ASM
29
Tools Dev - C++, take 2, continued
• As for implementing a function to
send RPC requests through the
backdoor channel in ASM, it
should be pretty simple
30
Tools Dev
• All that is still not enough
• We need something for FAST tools development
• Python? Yup, we implemented simple ways to send RPC requests through
python:
– C Extensions
– Ctypes
• Unfortunately, Josh (@kernelsmith) (our DevOps manager) wanted to
implement something similar in Ruby.
31
Tools Dev – Python, C Extensions
• C Extensions are awesome
• It’s a shared Library (.pyd) on Windows which exports an initialization
function
• The shared library can be imported from python
32
Tools Dev – Python, C Extensions
33
Tools Dev – Python, CTypes
• Ctypes provides C compatible data types
• Allows calling functions in DLLs or shared libraries
34
Fuzzing the RPC Interface
35
Fuzzing the RPC Interface
• Fuzzing the RPC interface requires tooling both on the GuestOS and the
HostOS
• Some problems that we’d need to tackle:
– Detecting Crashes from the host (Mostly debugging vmware-vmx in this case)
– Testcase generation (can be on the GuestOS but we want the guest to stay light)
– GuestOS VM(s) management from the HostOS
36
Fuzzing the RPC Interface
Host
VMWare
WorkStation
Framework
Manage through vmrun
attach
Agent
monitor
Send test cases
mutator
start vmx
37
Fuzzing the RPC Interface - InMemory
• Since we know exactly were the RPC requests are being parsed, we can
actually do InMemory fuzzing:
– Hook ExecRPCRequest (on the HostOS)
– Modify the RPC request before it gets parsed
– Wait for crashes
• Additional tooling required:
– Crash Detection (From HostOS)
– Record modifications (From the HostOS)
38
Fuzzing the RPC Interface - InMemory
DEMO
39
VMware Drag and Drop UAF
40
VMware DnD UAF – Root Cause
• The Free is triggered when the DnD version is changed multiple times
• The re-use happens when a random DnD function is called after the Free
• The PoC is relatively simple:
41
VMware DnD UAF – Root Cause
• If triggered successfully
we should end up in a
crash similar to the following:
• To verify further,
!heap –p –a @RCX will
show us where the
Free happened:
42
VMware DnD UAF – Root Cause
• Next, we will need to get the size of the Free’d object
• In order to do that, we will need to break right before the Free happens and run
!heap –p –a on the address before it gets Freed
43
VMware DnD UAF – Exploiting the vulnerability
• First we will need to find a way to
control the Freed object before
it gets re-used
• This can be done by sending an
arbitrary GuestRPC request
through the backdoor channel
• For example through the
tools.capability.guest_temp_directory
RPC function
44
VMware DnD UAF – Exploiting the vulnerability
• Next question is where should I put my ROP chain? Should I heap spray?
• The answer was in the unity.window.contents.start RPC function
45
VMware DnD UAF – Exploiting the vulnerability
• What does the plan of action look like now?
– Send a unity.window.contents.start request with a ROP chain that sets RSP to RDI.
– Trigger the free.
– Overwrite the freed object with another one. The freed object should contain the address of
vmware_vmx+0xb870f8.
– Trigger the re-use using a request that contains the ROP chain to gain RCE.
• There is an RWX region in vmware-vmx, so you know what the ROP chain should
do ;)
46
VMware DnD UAF
47
Conclusion
49

More Related Content

What's hot

CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CanSecWest
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg
 
ROP 輕鬆談
ROP 輕鬆談ROP 輕鬆談
ROP 輕鬆談
hackstuff
 
Ixgbe internals
Ixgbe internalsIxgbe internals
Ixgbe internals
SUSE Labs Taipei
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
Peter Hlavaty
 
Advanced heap exploitaion
Advanced heap exploitaionAdvanced heap exploitaion
Advanced heap exploitaion
Angel Boy
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
Thomas Graf
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
Andriy Berestovskyy
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
lcplcp1
 
Windows 10 Nt Heap Exploitation (Chinese version)
Windows 10 Nt Heap Exploitation (Chinese version)Windows 10 Nt Heap Exploitation (Chinese version)
Windows 10 Nt Heap Exploitation (Chinese version)
Angel Boy
 
Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented Programming
Angel Boy
 
Reliable Windows Heap Exploits
Reliable Windows Heap ExploitsReliable Windows Heap Exploits
Reliable Windows Heap Exploits
amiable_indian
 
Revisit DCA, PCIe TPH and DDIO
Revisit DCA, PCIe TPH and DDIORevisit DCA, PCIe TPH and DDIO
Revisit DCA, PCIe TPH and DDIO
Hisaki Ohara
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
Brendan Gregg
 
DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows Kernel
Peter Hlavaty
 
Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling Examples
Tanel Poder
 
Oracle dataguard overview
Oracle dataguard overviewOracle dataguard overview
Oracle dataguard overview
aguswahyudi09
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniques
Satpal Parmar
 
Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"
Ajeet Singh Raina
 
Execution
ExecutionExecution
Execution
Angel Boy
 

What's hot (20)

CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
ROP 輕鬆談
ROP 輕鬆談ROP 輕鬆談
ROP 輕鬆談
 
Ixgbe internals
Ixgbe internalsIxgbe internals
Ixgbe internals
 
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel" You didnt see it’s coming? "Dawn of hardened Windows Kernel"
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
 
Advanced heap exploitaion
Advanced heap exploitaionAdvanced heap exploitaion
Advanced heap exploitaion
 
LinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking WalkthroughLinuxCon 2015 Linux Kernel Networking Walkthrough
LinuxCon 2015 Linux Kernel Networking Walkthrough
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
Windows 10 Nt Heap Exploitation (Chinese version)
Windows 10 Nt Heap Exploitation (Chinese version)Windows 10 Nt Heap Exploitation (Chinese version)
Windows 10 Nt Heap Exploitation (Chinese version)
 
Sigreturn Oriented Programming
Sigreturn Oriented ProgrammingSigreturn Oriented Programming
Sigreturn Oriented Programming
 
Reliable Windows Heap Exploits
Reliable Windows Heap ExploitsReliable Windows Heap Exploits
Reliable Windows Heap Exploits
 
Revisit DCA, PCIe TPH and DDIO
Revisit DCA, PCIe TPH and DDIORevisit DCA, PCIe TPH and DDIO
Revisit DCA, PCIe TPH and DDIO
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows Kernel
 
Low Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling ExamplesLow Level CPU Performance Profiling Examples
Low Level CPU Performance Profiling Examples
 
Oracle dataguard overview
Oracle dataguard overviewOracle dataguard overview
Oracle dataguard overview
 
Debugging linux kernel tools and techniques
Debugging linux kernel tools and  techniquesDebugging linux kernel tools and  techniques
Debugging linux kernel tools and techniques
 
Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"Say Bye to VMware PowerCLI ! Time to "GOVC"
Say Bye to VMware PowerCLI ! Time to "GOVC"
 
Execution
ExecutionExecution
Execution
 

Similar to For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by Abdul aziz-hariri, Jasiel Spelman, Brian Gorenc

[若渴計畫] 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
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
Mohammad Fairus Khalid
 
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
Hacking Highly Secured Enterprise Environments by Zoltan BalazsHacking Highly Secured Enterprise Environments by Zoltan Balazs
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
Shakacon
 
Socially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorSocially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front Door
Mike Felch
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
Balasundaram Natarajan
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
Federico Michele Facca
 
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
Zoltan Balazs
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
Docker, Inc.
 
Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shells
Anthony D Hendricks
 
Tick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleepTick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleep
Gianluca Arbezzano
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Jeffrey Ellin
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
Evan McGee
 
Docker Security
Docker SecurityDocker Security
Docker Security
antitree
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathers
Andrew McNicol
 
I got 99 trends and a # is all of them
I got 99 trends and a # is all of themI got 99 trends and a # is all of them
I got 99 trends and a # is all of them
Roberto Suggi Liverani
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
Nuxeo
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with DockerPatrick Mizer
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Combell NV
 

Similar to For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by Abdul aziz-hariri, Jasiel Spelman, Brian Gorenc (20)

[若渴計畫] 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
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
Hacking Highly Secured Enterprise Environments by Zoltan BalazsHacking Highly Secured Enterprise Environments by Zoltan Balazs
Hacking Highly Secured Enterprise Environments by Zoltan Balazs
 
Socially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorSocially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front Door
 
Demystfying container-networking
Demystfying container-networkingDemystfying container-networking
Demystfying container-networking
 
Docker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platformsDocker Swarm secrets for creating great FIWARE platforms
Docker Swarm secrets for creating great FIWARE platforms
 
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
DEFCON 22: Bypass firewalls, application white lists, secure remote desktops ...
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shells
 
Tick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleepTick Stack - Listen your infrastructure and please sleep
Tick Stack - Listen your infrastructure and please sleep
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE PlatformsFIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
FIWARE Tech Summit - Docker Swarm Secrets for Creating Great FIWARE Platforms
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
Docker Security
Docker SecurityDocker Security
Docker Security
 
BSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathersBSides_Charm2015_Info sec hunters_gathers
BSides_Charm2015_Info sec hunters_gathers
 
I got 99 trends and a # is all of them
I got 99 trends and a # is all of themI got 99 trends and a # is all of them
I got 99 trends and a # is all of them
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Developing and Deploying PHP with Docker
Developing and Deploying PHP with DockerDeveloping and Deploying PHP with Docker
Developing and Deploying PHP with Docker
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11Php through the eyes of a hoster phpbnl11
Php through the eyes of a hoster phpbnl11
 

More from CODE BLUE

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
CODE BLUE
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
CODE BLUE
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
CODE BLUE
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
CODE BLUE
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
CODE BLUE
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
CODE BLUE
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
CODE BLUE
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
CODE BLUE
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
CODE BLUE
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
CODE BLUE
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
CODE BLUE
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
CODE BLUE
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
CODE BLUE
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
CODE BLUE
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
CODE BLUE
 

More from CODE BLUE (20)

[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...[cb22] Hayabusa  Threat Hunting and Fast Forensics in Windows environments fo...
[cb22] Hayabusa Threat Hunting and Fast Forensics in Windows environments fo...
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(4) by 板橋 博之
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(3) by Lorenzo Pupillo
 
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...[cb22]  ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
[cb22] ”The Present and Future of Coordinated Vulnerability Disclosure” Inte...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman [cb22]  「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション(2)by Allan Friedman
 
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
[cb22] "The Present and Future of Coordinated Vulnerability Disclosure" Inter...
 
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by  高橋 郁夫
[cb22] 「協調された脆弱性開示の現在と未来」国際的なパネルディスカッション (1)by 高橋 郁夫
 
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
[cb22] Are Embedded Devices Ready for ROP Attacks? -ROP verification for low-...
 
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka [cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
[cb22] Wslinkのマルチレイヤーな仮想環境について by Vladislav Hrčka
 
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
[cb22] Under the hood of Wslink’s multilayered virtual machine en by Vladisla...
 
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
[cb22] CloudDragon’s Credential Factory is Powering Up Its Espionage Activiti...
 
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...[cb22]  From Parroting to Echoing:  The Evolution of China’s Bots-Driven Info...
[cb22] From Parroting to Echoing: The Evolution of China’s Bots-Driven Info...
 
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...[cb22]  Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
[cb22] Who is the Mal-Gopher? - Implementation and Evaluation of “gimpfuzzy”...
 
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
[cb22] Mal-gopherとは?Go系マルウェアの分類のためのgimpfuzzy実装と評価 by 澤部 祐太, 甘粕 伸幸, 野村 和也
 
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
[cb22] Tracking the Entire Iceberg - Long-term APT Malware C2 Protocol Emulat...
 
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
[cb22] Fight Against Malware Development Life Cycle by Shusei Tomonaga and Yu...
 

Recently uploaded

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
NaapbooksPrivateLimi
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Visitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.appVisitor Management System in India- Vizman.app
Visitor Management System in India- Vizman.app
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 

For the Greater Good: Leveraging VMware's RPC Interface for fun and profit by Abdul aziz-hariri, Jasiel Spelman, Brian Gorenc

  • 2. 2 Agenda • Introduction • VMware General Architecture (Simplified) • Host <-> Guest Communication – Backdoor Interface • VM RPC Interface – Functions – Recording Guest -> Host RPC requests • Developing tools to query the RPC Interface – C++ – Python • C Extension • CTypes • VMware UAF Exploitation – Controlling Freed Objects – Finding Exploit primitives – Demo • Conclusion
  • 4. 4 Abdul-Aziz Hariri • BS in Computer Sciences – University of Balamand • Currently a Senior Security Researcher at ZDI – Root Cause analysis / Vulnerability Research / Exploit development – ZDI Case Lead – Pwn2Own Preparation / Judging entries • Past Experiences – Bits Arabia, Insight-Tech and Morgan Stanley • Past research: – Pwn4Fun 2014 renderer exploit writer – Microsoft Bounty submission – Patents on Exploit Mitigation Technologies – Adobe Reader research • Twitter: @abdhariri
  • 5. 5 Jasiel Spelman • BA in Computer Science – University of Texas at Austin • Currently a Senior Security Researcher at ZDI – Root Cause analysis / Vulnerability Research / Exploit development – ZDI Research Lead – Pwn2Own Invigilator • Past Experiences – TippingPoint Digital Vaccine team • Past research: – Pwn4Fun 2014 sandbox escape exploit writer – Patents on zero day protection technologies – Windows kernel information leaks – Adobe Flash RE & RCE vulnerabilities • Twitter: @WanderingGlitch
  • 6. 6 Brian Gorenc • BS in Computer Engineering – Texas A&M University • MS in Software Engineering – Southern Methodist University • Director of Vulnerability Research at Trend Micro – Leads the Zero Day Initiative – Organizes Pwn2Own – Approver of Payments • Past Experiences – Lead Developer at Lockheed Martin • Past research: – Microsoft Bounty submission – Patents on Exploit Mitigation Technologies – Bug hunting in many products • Twitter: @MaliciousInput
  • 8. 8 VMware General Architecture (Simplified*) Hypervisor Guest vmware-vmx CPU Guest vmware-vmx CPU vmware tools libs I/O I/O Management Layer * very What’s going on here?
  • 9. 9 Good Question • As it turns out, quite a bit • Regardless of whether VMware tools are installed
  • 10. 10 Host <-> Guest Communication
  • 11. 11 Host <-> Guest Communication • Communication is done by accessing special I/O ports • VMware implements an interface called “Backdoor” – Hijacks the IN/OUT instructions – Supports multiple commands – Supports two protocols: RPCI and TCLO – Can be used to extract host information – Can be used to send Guest->Host RPC requests • The Backdoor interface is enabled by default
  • 12. 12 Host <-> Guest Communication - Backdoor • Supports multiple commands/functions – The commands can be found in the open-vm-tools on github – backdoor_def.h defines these commands • The guest can invoke more of these commands than you think…
  • 13. 13 Host <-> Guest Communication - Backdoor • Invoking Backdoor functions is simple: mov eax, 564D5868h /* magic number */ mov ebx, command-specific-parameter mov cx, command-number /* 1001e = RPC */ mov dx, 5658h /* VMware I/O port */ in eax, dx
  • 14. 14 Host <-> Guest Communication - Backdoor Hypervisor (host) Guest (vm) Backdoor Channel TCLO RPCI Low-bandwidth High-bandwidth Backdoor Channel Other
  • 15. 15 Host <-> Guest Communication - RPCI • Supports multiple commands – Rpctool.exe can be used to query some of the commands. – Rpctool.exe is open source and can be found in the open-vm-tools – These RPC commands can be found in vmware- vmx.exe and sprinkled throughout the open-vm- tools source
  • 16. 16 Host <-> Guest Communication - RPCI
  • 17. 17 Host <-> Guest Communication – Summary • Backdoor Interface is used for Host/Guest communication • Hijacks in/out instructions • RPCI is used from guest -> host • TCLO is used from host -> guest • RPCI commands can be found in vmware-vmx{.exe} • open-vm-tools is a goldmine!
  • 19. 19 GuestRPC • The RPC requests are sent through the “backdoor” channel • Specifically, the BDOOR_CMD_MESSAGE (0x1E) • The Guest Messages are defined in guest_msg_def.h • GuestRPC supports multiple message types:
  • 20. 20 GuestRPC • Example of a simple GuestRPC message: mov eax, 0x564D5868 mov ecx, 0x001e //MESSAGE_TYPE_OPEN mov edx, 0x5658 mov ebx, 0xC9435052 in eax, dx mov eax, 0x564D5868 mov ecx, 0x1001e //MESSAGE_TYPE_SENDSIZE mov edx, 0x5658 mov ebx, SIZE in eax, dx mov eax, 0x564D5868 mov ecx, 0x6001e //MESSAGE_TYPE_CLOSE mov edx, 0x5658 mov ebx, SIZE in eax, dx
  • 21. 21 GuestRPC • GuestRPC requests are are parsed within vmware-vmx{.exe} • GuestRPC Messages/Functions are also implemented inside vmware-vmx{.exe} • If we look closely inside GuestRPC_Funcs we will notice the following:
  • 22. 22 GuestRPC – ExecRPCRequest • The function takes the RPC request as an argument • Checks if the RPC function being passed is valid • Checks if we have enough permissions to execute the function • Executes it
  • 23. 23 GuestRPC – Sniffing RPC Requests • Since this is exactly where RPC requests are parsed, we can actually hook this function and sniff the requests being sent • For this task we used pykd  – Set a breakpoint on the ExecRPCRequest function – A pointer pointing to the request is set in the r8 register – The length of the request is set in the r9 register • Should look similar to the following
  • 24. 24 GuestRPC – Sniffing RPC Requests - DEMO • DEMO
  • 25. 25 Developing tools to query the RPC Interface
  • 26. 26 Tools Dev • One of the challenging problems with VMware and RPC is tools development for: – Case analysis – Exploit development – Fuzzing • While we can definitely use the open-vm-tools to develop tools in C++, there are still challenges: – There are functions that definitely needs to be implemented in ASM – Without ASM we’ll need to use the exports from vmtools.dll • Still a little bit of a hustle
  • 27. 27 Tools Dev - C++, take 1 • Add the open-vm-tools headers to the Include Directories
  • 28. 28 Tools Dev - C++, take 2 • Assembly..Since some function are not fully implemented in the tools, thus in order to step out of the vmtools.dll we’d need to implement some functions in ASM
  • 29. 29 Tools Dev - C++, take 2, continued • As for implementing a function to send RPC requests through the backdoor channel in ASM, it should be pretty simple
  • 30. 30 Tools Dev • All that is still not enough • We need something for FAST tools development • Python? Yup, we implemented simple ways to send RPC requests through python: – C Extensions – Ctypes • Unfortunately, Josh (@kernelsmith) (our DevOps manager) wanted to implement something similar in Ruby.
  • 31. 31 Tools Dev – Python, C Extensions • C Extensions are awesome • It’s a shared Library (.pyd) on Windows which exports an initialization function • The shared library can be imported from python
  • 32. 32 Tools Dev – Python, C Extensions
  • 33. 33 Tools Dev – Python, CTypes • Ctypes provides C compatible data types • Allows calling functions in DLLs or shared libraries
  • 34. 34 Fuzzing the RPC Interface
  • 35. 35 Fuzzing the RPC Interface • Fuzzing the RPC interface requires tooling both on the GuestOS and the HostOS • Some problems that we’d need to tackle: – Detecting Crashes from the host (Mostly debugging vmware-vmx in this case) – Testcase generation (can be on the GuestOS but we want the guest to stay light) – GuestOS VM(s) management from the HostOS
  • 36. 36 Fuzzing the RPC Interface Host VMWare WorkStation Framework Manage through vmrun attach Agent monitor Send test cases mutator start vmx
  • 37. 37 Fuzzing the RPC Interface - InMemory • Since we know exactly were the RPC requests are being parsed, we can actually do InMemory fuzzing: – Hook ExecRPCRequest (on the HostOS) – Modify the RPC request before it gets parsed – Wait for crashes • Additional tooling required: – Crash Detection (From HostOS) – Record modifications (From the HostOS)
  • 38. 38 Fuzzing the RPC Interface - InMemory DEMO
  • 39. 39 VMware Drag and Drop UAF
  • 40. 40 VMware DnD UAF – Root Cause • The Free is triggered when the DnD version is changed multiple times • The re-use happens when a random DnD function is called after the Free • The PoC is relatively simple:
  • 41. 41 VMware DnD UAF – Root Cause • If triggered successfully we should end up in a crash similar to the following: • To verify further, !heap –p –a @RCX will show us where the Free happened:
  • 42. 42 VMware DnD UAF – Root Cause • Next, we will need to get the size of the Free’d object • In order to do that, we will need to break right before the Free happens and run !heap –p –a on the address before it gets Freed
  • 43. 43 VMware DnD UAF – Exploiting the vulnerability • First we will need to find a way to control the Freed object before it gets re-used • This can be done by sending an arbitrary GuestRPC request through the backdoor channel • For example through the tools.capability.guest_temp_directory RPC function
  • 44. 44 VMware DnD UAF – Exploiting the vulnerability • Next question is where should I put my ROP chain? Should I heap spray? • The answer was in the unity.window.contents.start RPC function
  • 45. 45 VMware DnD UAF – Exploiting the vulnerability • What does the plan of action look like now? – Send a unity.window.contents.start request with a ROP chain that sets RSP to RDI. – Trigger the free. – Overwrite the freed object with another one. The freed object should contain the address of vmware_vmx+0xb870f8. – Trigger the re-use using a request that contains the ROP chain to gain RCE. • There is an RWX region in vmware-vmx, so you know what the ROP chain should do ;)
  • 48. 49