SlideShare a Scribd company logo
The Art of Exploiting Unconventional
Use-after-free Bugs in Android Kernel
Di Shen a.k.a. Retme (@returnsme)
Keen Lab of Tencent
whoami
• Di Shen a.k.a. Retme (@returnsme)
• Member of Keen Lab
• Android Kernel vulnerability hunting and exploitation since 2014
• Aim: to work out universal rooting exploit for Android
• Trophy:
• CVE-2016-6787 & CVE-2017-0403 (kernel/events/core.c)
• CVE-2015-1805 (fs/pipe.c) ’s first working exploit
• CVE-2015-4421,4422 (Huawei TrustZone)
• KNOX Bypassing on Samsung Galaxy S7 (BHUSA 17’)
• Exploiting Wireless Extension for all common Wi-Fi chipsets (BHEU 16’)
• And more To Be Announced in the future
• Available on https://github.com/retme7/My-Slides
Agenda
• Rooting Android: Current situation
• Overview of exploiting UAF in kernel
• Conventional approach
• Afterwards: Gain root
• The Unconventional UAFs
• Implementation of perf system
• Exploiting CVE-2017-0403
• Exploiting CVE-2016-6787
• Conclusion
Rooting Android: Current situation
• Universal exploitable vulnerability is rare
• Available attack surface:
• Generic Linux syscalls
• Android universal drivers like Binder, ION, Ashmem
Rooting Android: Current situation
• Enforced SELinux policy
• Most of device drivers are inaccessible
• Many syscalls are not reachable from untrusted
Application
• Sockets ioctl commands are partially restricted
Rooting Android: Current situation
• Verified Boot through dm-verity kernel feature
• The gained root privilege is nonpersistent
Rooting Android: Future challenges
• Privileged Access Never (PAN)
• KASLR
• Pointer Authentication
Overview of exploiting UAF in kernel
• An easily exploitable UAF bug normally has following
features:
• Has a function pointer in freed object
• Attacker has plenty of time to refill the freed object.
Conventional approach to UAF exploitation
struct socket
(freed)
ops->ioctl(…)
struct socket
(refilled)
ops->ioctl(…)
JOP gadgets
• Free the victim object
• Refill the object with malformed data by heap
spraying or ret2dir
• Let the function pointer point to ROP/JOP gadgets in
kernel
• Ask kernel reference this function pointer to achieve
arbitrary kernel code execution
ioctl(sockfd,…) kernel_sock_ioctl() JOP gadgets
Afterwards, from code execution to root
Arbitrary kernel code
execution
Overwrite
process's
addr_limit
Arbitrary kernel
memory
overwriting
Overwrite uid,
security id,
selinux_enforcing
However…
• Not every UAF bug in kernel is so that idealized
• More unconventional situation to deal with…
• The victim object may don’t have a function pointer
• The kernel may crash soon after UAF triggered
• The attacker may cannot fully controlled the freed object
The unconventional UAFs I found
• All found in sys_perf_event_open()
• Perf system is pretty buggy
• Reachable by application last year
• But now it’s restricted by a feature called “perf_event_paranoid”
The unconventional UAFs I found
• CVE-2017-0403
• Ever affected all devices shipped with 3.10 or earlier Linux kernel
• More than 14 million users of KingRoot gain root privilege on their
smart phones
• CVE-2016-6787
• Ever affected all Qualcomm-based devices. (Only Qucalcomm
enabled hardware perf event…)
• A part of my exploit chain to bypass Samsung KNOX 2.6
sys_perf_event_open()
• Will create a perf_event
• Input: perf_event_attr
• A description of what kind of performance
event you need
• Input: group_fd (optional)
• Specify the group leader of new perf_event
• Return the fd of perf_event to user space
Key kernel objects in perf system
• perf_event
• A performance event which is registered by user
• perf_event_context
• The container of all perf events created in one process
• Each process has two contexts, one for software events, other one for
hardware events
• Perf group and group leader
• Multiple events can form a group
• One event is the leader
perf_sw_context
perf_hw_context
task_struct
event event event
event_list
event (group_leader)
event (group_leader)
move_group
• Happens when user try to create a hardware event in
pure software group.
CVE-2016-6787
Remove the group_leader from origin software context
and then install it to hardware context
Remove every event from software context,
and then install it to new hardware context
’move_group‘ leads to reducing
context’s refcont by one
CVE-2016-6787
• move_group ignored the concurrency issues
• UAF happens due to race condition
• Attacker trigger the move_group on same group leader
simultaneously,
• The ref count of group_leader->ctx may be reduced to zero
• task_struct->perf_event_ctxp[perf_sw_context] will be freed
accidently
The object is freed
Free perf_event_context (PoC)
Create a software
group_leader
Create a
hardware
perf_event
Create a
hardware
perf_event
Main thread Sub thread-1 Sub thread-2
move_group,
put_ctx()
move_group,
put_ctx()
kfree_rcu(perf_event_context)
ctx->refcount = 1
ctx->refcount = 2
ctx->refcount = 0
Kernel crashed instantly
• Kernel crashed soon after we
freed the perf_event_context
• Thread scheduler need to
dereference this object pointer
consecutively
• We don‘t have plenty of time to
refill the object 
Solution: freeze thread after free
• Keep thread scheduler away from me
• Switch the status of attacker’s thread from
running to (un)interruptible
• The thread will be frozen and kernel won’t
crash as soon as perf_event_context freed
How to freeze a thread from user land?
• Sleep() ? Not working
• Use futex_wait_queue_me()
switch to interruptible
freezable_schedule()
Create a software
group_leader
Create a
hardware
perf_event
Create a
hardware
perf_event
Main thread Sub thread-1 Sub thread-2
move_group,
put_ctx()
move_group,
put_ctx()
kfree_rcu(perf_event_context)
futex_wait_queue_me()
Phase
1
Phase
2
Spraying the heap by using ‘ret2dir’ trick,
fill a malformed perf_event_context{}
in every 1024 bytes
Use futex_wake() wake up
main thread
Phase
4
schedule()
finish_task_switch()
perf_event_context_sched_in()
ctx->pmu->pmu_disable()
Phase
3
A brief summary of CVE-2016-6787
• Easy to win the race, and trigger the bug
• Hard to refill the freed object (no time)
• Easy to control the code flow (corrupted object has
function pointer)
• Proposed an approach to freezing thread to gain more
time to refill object
Review: relationship between perf event, group and group leader
• Group leader has a sibling_list
• sibling_list is a list of perf events which belongs this group
perf_sw_context
perf_hw_context
task_struct
event event event
event_list
event (group_leader)
event (group_leader)
CVE-2017-0403 (PoC)
• Create a perf event as ‘A’
• Create another perf event as ‘B’, specify ‘A’ as its group
leader
• Free ‘A’,the group leader
• Free ‘B’, a sibling of group ---- UAF happens here
Root cause
• Now group leader ‘A’ is freed
• Kernel doesn’t empty its sibling list
• Leads to leaving a dangling pointer in
sibling’s event->group_entry
Root cause
• Later on the sibling ‘B’ is freed
• list_del_event()
• list_del_init(&event->group_entry);
• overwrite a pointer to the freed group
leader.
• SLUB poison information
• 0xfffffc00fc2b1a0 is overwritten
to (group_leader+ 0x20)
The unconventional scenario
• The only thing I can do is overwriting the freed object as
following
*(size_t*)(freed_object + 0x20) = (freed_object + 0x20)
Pipe subsystem in Linux
• readv() & writev(): read/write multiple buffers through pipe
• Use an array of struct iovec{iov_base,iov_len} to describe
user buffers
• When no contents available from the write end, readv() may
block in kernel
• Then an array of struct iovec{} may stay in kernel’s heap
Compromise pipe system
• Call readv()
• rw_copy_check_uvector() confirm every iov_base must points to
userland space.
• An array of struct iovec{} now is in heap. Nothing comes from
the write end of pipe, so readv() block.
• If you can somehow overwrite the iovec{}, modify the iov_base
to a kernel address. Emmm…
iov_base iov_len iov_base iov_len iov_base iov_len
…..
kernel_addr iov_len kernel_addr iov_len kernel_addr iov_len
Compromise pipe system
• Now write something to
another end of pipe
• pipe_iov_copy_to_user()
won’t check the iov_base
again.
• Buffers you wrote to pipe
will be copied to the
kernel address
········
Trigger UAF, write two 8-bytes value“A+0x20”to address = A+0x20
↓ the 1st freed object, address is A
Solution: convert UAF to arbitrary R/W
↓the 2nd freed object, address is B = A + 0x400
Use iovec to spray the heap
Freed Data Freed Data Freed Freed Data Freed Data ·········
base len base len base base len base len ···················
base len A + 0x20 A+0x20 base
··········
base len base len
Write a buffer to pipe ,the buffer will be copied to (A + 0x20)
·········
base len KADDR 8 KADDR ·········· KADDR 8 KADDR 8 ·········
Write a buffer to pipe again,it will be copied to KADDR
KADDR can be any address value, we achieved arbitrary kernel memory overwriting
1
2
3
4
5
A brief summary of CVE-2017-0403
• Attacker lost the file descriptor of freed object
• Cannot achieve code execution via refilling object’s
function pointer
• Only be able to write the address value of freed object
twice to freed object
• Proposed a new approach: compromising pipe system
Conclusion
• Most UAF bugs looks not exploitable, but there may be
another way
• No idea? Put it down for a while, but do not let it go…
• Be familiar with kernel’s source code, kernel’s own
feature may help your exploitation (e.g. pipe for CVE-
2017-0403)
The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by Di Shen
Ad

More Related Content

What's hot (20)

C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
흥배 최
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
Seungjae Lee
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
Terry Cho
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
YongSung Yoon
 
Adding a BOLT pass
Adding a BOLT passAdding a BOLT pass
Adding a BOLT pass
Amir42407
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
Hyoungjun Kim
 
1. Docker Introduction.pdf
1. Docker Introduction.pdf1. Docker Introduction.pdf
1. Docker Introduction.pdf
AmarGautam15
 
Jenkins-CI
Jenkins-CIJenkins-CI
Jenkins-CI
Gong Haibing
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
CURVC Corp
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
흥배 최
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
RabbitMQ 알아보기
RabbitMQ 알아보기RabbitMQ 알아보기
RabbitMQ 알아보기
frankradio
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
shimosawa
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetes
SangSun Park
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
Brian Grant
 
Ingress overview
Ingress overviewIngress overview
Ingress overview
Harshal Shah
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
NAVER LABS
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
Docker, Inc.
 
Jenkins pipeline
Jenkins pipelineJenkins pipeline
Jenkins pipeline
Patxi Gortázar
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
Sang Heon Lee
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
흥배 최
 
게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치게임 애셋 스트리밍 패치
게임 애셋 스트리밍 패치
Seungjae Lee
 
Micro Service Architecture의 이해
Micro Service Architecture의 이해Micro Service Architecture의 이해
Micro Service Architecture의 이해
Terry Cho
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
YongSung Yoon
 
Adding a BOLT pass
Adding a BOLT passAdding a BOLT pass
Adding a BOLT pass
Amir42407
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
Hyoungjun Kim
 
1. Docker Introduction.pdf
1. Docker Introduction.pdf1. Docker Introduction.pdf
1. Docker Introduction.pdf
AmarGautam15
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
SonarQube와 함께하는 소프트웨어 품질 세미나 - SonarQube 소개
CURVC Corp
 
Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용Twitter의 snowflake 소개 및 활용
Twitter의 snowflake 소개 및 활용
흥배 최
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
RabbitMQ 알아보기
RabbitMQ 알아보기RabbitMQ 알아보기
RabbitMQ 알아보기
frankradio
 
Linux Kernel Module - For NLKB
Linux Kernel Module - For NLKBLinux Kernel Module - For NLKB
Linux Kernel Module - For NLKB
shimosawa
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetes
SangSun Park
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
Brian Grant
 
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
Docker + Kubernetes를 이용한 빌드 서버 가상화 사례
NAVER LABS
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
Docker, Inc.
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
Sang Heon Lee
 

Similar to The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by Di Shen (20)

Di shen pacsec_final
Di shen pacsec_finalDi shen pacsec_final
Di shen pacsec_final
PacSecJP
 
Linux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Linux Foundation Mentorship Sessions - Kernel Livepatch: An IntroductionLinux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Linux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Marcos de Souza
 
GOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter SlidesGOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter Slides
Alexandra Masterson
 
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
Priyanka Aash
 
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Elvin Gentiles
 
Operating OPNFV: Deploy it, test it, run it
Operating OPNFV: Deploy it, test it, run itOperating OPNFV: Deploy it, test it, run it
Operating OPNFV: Deploy it, test it, run it
OPNFV
 
Linux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/OLinux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/O
YourHelper1
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
Hackito Ergo Sum
 
Breaking paravirtualized devices
Breaking paravirtualized devicesBreaking paravirtualized devices
Breaking paravirtualized devices
Priyanka Aash
 
story_of_bpf-1.pdf
story_of_bpf-1.pdfstory_of_bpf-1.pdf
story_of_bpf-1.pdf
hegikip775
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Christian Schneider
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Anne Nicolas
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerun
idsecconf
 
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
Stefano Stabellini
 
Linux Device Driver for Writing a real world driver for embedded Linux
Linux Device Driver for Writing a real world driver for embedded LinuxLinux Device Driver for Writing a real world driver for embedded Linux
Linux Device Driver for Writing a real world driver for embedded Linux
AchyuthShettigar2
 
Securing Containers, One Patch at a Time - Michael Crosby, Docker
Securing Containers, One Patch at a Time - Michael Crosby, DockerSecuring Containers, One Patch at a Time - Michael Crosby, Docker
Securing Containers, One Patch at a Time - Michael Crosby, Docker
Docker, Inc.
 
4055-841_Project_ShailendraSadh
4055-841_Project_ShailendraSadh4055-841_Project_ShailendraSadh
4055-841_Project_ShailendraSadh
Shailendra Sadh - CISSP
 
Wielding a cortana
Wielding a cortanaWielding a cortana
Wielding a cortana
Will Schroeder
 
fg.workshop: Software vulnerability
fg.workshop: Software vulnerabilityfg.workshop: Software vulnerability
fg.workshop: Software vulnerability
fg.informatik Universität Basel
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!
Levente Kurusa
 
Di shen pacsec_final
Di shen pacsec_finalDi shen pacsec_final
Di shen pacsec_final
PacSecJP
 
Linux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Linux Foundation Mentorship Sessions - Kernel Livepatch: An IntroductionLinux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Linux Foundation Mentorship Sessions - Kernel Livepatch: An Introduction
Marcos de Souza
 
GOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter SlidesGOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter Slides
Alexandra Masterson
 
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
One bite and all your dreams will come true: Analyzing and Attacking Apple Ke...
Priyanka Aash
 
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Smash the Stack: Writing a Buffer Overflow Exploit (Win32)
Elvin Gentiles
 
Operating OPNFV: Deploy it, test it, run it
Operating OPNFV: Deploy it, test it, run itOperating OPNFV: Deploy it, test it, run it
Operating OPNFV: Deploy it, test it, run it
OPNFV
 
Linux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/OLinux System Programming - Advanced File I/O
Linux System Programming - Advanced File I/O
YourHelper1
 
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
Hackito Ergo Sum
 
Breaking paravirtualized devices
Breaking paravirtualized devicesBreaking paravirtualized devices
Breaking paravirtualized devices
Priyanka Aash
 
story_of_bpf-1.pdf
story_of_bpf-1.pdfstory_of_bpf-1.pdf
story_of_bpf-1.pdf
hegikip775
 
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Serial Killer - Silently Pwning your Java Endpoints // OWASP BeNeLux Day 2016
Christian Schneider
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Anne Nicolas
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerun
idsecconf
 
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022System Device Tree and Lopper: Concrete Examples - ELC NA 2022
System Device Tree and Lopper: Concrete Examples - ELC NA 2022
Stefano Stabellini
 
Linux Device Driver for Writing a real world driver for embedded Linux
Linux Device Driver for Writing a real world driver for embedded LinuxLinux Device Driver for Writing a real world driver for embedded Linux
Linux Device Driver for Writing a real world driver for embedded Linux
AchyuthShettigar2
 
Securing Containers, One Patch at a Time - Michael Crosby, Docker
Securing Containers, One Patch at a Time - Michael Crosby, DockerSecuring Containers, One Patch at a Time - Michael Crosby, Docker
Securing Containers, One Patch at a Time - Michael Crosby, Docker
Docker, Inc.
 
Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!Linux Kernel - Let's Contribute!
Linux Kernel - Let's Contribute!
Levente Kurusa
 
Ad

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...
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
 
[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
 
Ad

Recently uploaded (20)

00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
hkrishna9495
 
pharmacology.pdffffffffffffffffffffffffff
pharmacology.pdffffffffffffffffffffffffffpharmacology.pdffffffffffffffffffffffffff
pharmacology.pdffffffffffffffffffffffffff
anooshaazam312
 
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
usmankhan66g66
 
Wondershare Filmora Crack Free Download Latest 2025
Wondershare Filmora Crack Free Download Latest 2025Wondershare Filmora Crack Free Download Latest 2025
Wondershare Filmora Crack Free Download Latest 2025
yousfhashmi786
 
High Perfomance and Reliability Inverter
High Perfomance and Reliability InverterHigh Perfomance and Reliability Inverter
High Perfomance and Reliability Inverter
CarlosFranco13613
 
the-importance-of-learning-french-140722055824-phpapp01.ppt
the-importance-of-learning-french-140722055824-phpapp01.pptthe-importance-of-learning-french-140722055824-phpapp01.ppt
the-importance-of-learning-french-140722055824-phpapp01.ppt
LipicaJasujaWadhwa
 
MiniTool Partition Wizard Professional Edition 10.2.1 Crack
MiniTool Partition Wizard Professional Edition 10.2.1 CrackMiniTool Partition Wizard Professional Edition 10.2.1 Crack
MiniTool Partition Wizard Professional Edition 10.2.1 Crack
yousfhashmi786
 
TabulationwjsnnanamamamNananaka of Data.pptx
TabulationwjsnnanamamamNananaka of Data.pptxTabulationwjsnnanamamamNananaka of Data.pptx
TabulationwjsnnanamamamNananaka of Data.pptx
sriyansh4443
 
materi semi konduktor untuk belajar elektronika daya
materi semi konduktor untuk belajar elektronika dayamateri semi konduktor untuk belajar elektronika daya
materi semi konduktor untuk belajar elektronika daya
RaidahAuliaMursyid
 
Computer Hardware using mostly in daily.
Computer Hardware using mostly in daily.Computer Hardware using mostly in daily.
Computer Hardware using mostly in daily.
manshajunaid205
 
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptxADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
c2422429
 
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).pptIntroduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
AshaManjhi
 
Multilingual hand gesture to speech conversion system
Multilingual hand gesture to speech conversion systemMultilingual hand gesture to speech conversion system
Multilingual hand gesture to speech conversion system
Himabindu905359
 
OSPF & DHCP PPT.pptx it is relATED TO NETWORKING
OSPF & DHCP PPT.pptx it is relATED TO NETWORKINGOSPF & DHCP PPT.pptx it is relATED TO NETWORKING
OSPF & DHCP PPT.pptx it is relATED TO NETWORKING
ritikghw
 
Adobe Illustrator CC Crack Version 2025?
Adobe Illustrator CC Crack Version 2025?Adobe Illustrator CC Crack Version 2025?
Adobe Illustrator CC Crack Version 2025?
yousfhashmi786
 
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtrBiology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
abayamargaug
 
Oxygen Concentrators | Medical Machine Equipment
Oxygen Concentrators | Medical Machine EquipmentOxygen Concentrators | Medical Machine Equipment
Oxygen Concentrators | Medical Machine Equipment
blueredblue74
 
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPTDownload Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
yousfhashmi786
 
ppt untuk seminar proposal dan persiapannya
ppt untuk seminar proposal dan persiapannyappt untuk seminar proposal dan persiapannya
ppt untuk seminar proposal dan persiapannya
Rasidinmamakidin
 
Microsoft Office 365 Crack Latest Version 2025?
Microsoft Office 365 Crack Latest Version 2025?Microsoft Office 365 Crack Latest Version 2025?
Microsoft Office 365 Crack Latest Version 2025?
yousfhashmi786
 
00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
00804.pptvjlvpuvupvpyvupv6v07upv60v7vupv0v6p
hkrishna9495
 
pharmacology.pdffffffffffffffffffffffffff
pharmacology.pdffffffffffffffffffffffffffpharmacology.pdffffffffffffffffffffffffff
pharmacology.pdffffffffffffffffffffffffff
anooshaazam312
 
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
Autodesk AutoCAD Map 3D Crack Free Download Latest Version 2025
usmankhan66g66
 
Wondershare Filmora Crack Free Download Latest 2025
Wondershare Filmora Crack Free Download Latest 2025Wondershare Filmora Crack Free Download Latest 2025
Wondershare Filmora Crack Free Download Latest 2025
yousfhashmi786
 
High Perfomance and Reliability Inverter
High Perfomance and Reliability InverterHigh Perfomance and Reliability Inverter
High Perfomance and Reliability Inverter
CarlosFranco13613
 
the-importance-of-learning-french-140722055824-phpapp01.ppt
the-importance-of-learning-french-140722055824-phpapp01.pptthe-importance-of-learning-french-140722055824-phpapp01.ppt
the-importance-of-learning-french-140722055824-phpapp01.ppt
LipicaJasujaWadhwa
 
MiniTool Partition Wizard Professional Edition 10.2.1 Crack
MiniTool Partition Wizard Professional Edition 10.2.1 CrackMiniTool Partition Wizard Professional Edition 10.2.1 Crack
MiniTool Partition Wizard Professional Edition 10.2.1 Crack
yousfhashmi786
 
TabulationwjsnnanamamamNananaka of Data.pptx
TabulationwjsnnanamamamNananaka of Data.pptxTabulationwjsnnanamamamNananaka of Data.pptx
TabulationwjsnnanamamamNananaka of Data.pptx
sriyansh4443
 
materi semi konduktor untuk belajar elektronika daya
materi semi konduktor untuk belajar elektronika dayamateri semi konduktor untuk belajar elektronika daya
materi semi konduktor untuk belajar elektronika daya
RaidahAuliaMursyid
 
Computer Hardware using mostly in daily.
Computer Hardware using mostly in daily.Computer Hardware using mostly in daily.
Computer Hardware using mostly in daily.
manshajunaid205
 
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptxADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
ADRENAL CORTbsbsbshEX 3 & 4 - 22MBBS.pptx
c2422429
 
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).pptIntroduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
Introduction-to-Robotics-PowerPoint-Presentation-on-Robotics (1).ppt
AshaManjhi
 
Multilingual hand gesture to speech conversion system
Multilingual hand gesture to speech conversion systemMultilingual hand gesture to speech conversion system
Multilingual hand gesture to speech conversion system
Himabindu905359
 
OSPF & DHCP PPT.pptx it is relATED TO NETWORKING
OSPF & DHCP PPT.pptx it is relATED TO NETWORKINGOSPF & DHCP PPT.pptx it is relATED TO NETWORKING
OSPF & DHCP PPT.pptx it is relATED TO NETWORKING
ritikghw
 
Adobe Illustrator CC Crack Version 2025?
Adobe Illustrator CC Crack Version 2025?Adobe Illustrator CC Crack Version 2025?
Adobe Illustrator CC Crack Version 2025?
yousfhashmi786
 
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtrBiology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
Biology SBK10.pdffgguhjjjjghjtrdrettdryttrdtr
abayamargaug
 
Oxygen Concentrators | Medical Machine Equipment
Oxygen Concentrators | Medical Machine EquipmentOxygen Concentrators | Medical Machine Equipment
Oxygen Concentrators | Medical Machine Equipment
blueredblue74
 
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPTDownload Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
Download Capcut Pro 5.7.1.2152 Crack Latest Version | PPT
yousfhashmi786
 
ppt untuk seminar proposal dan persiapannya
ppt untuk seminar proposal dan persiapannyappt untuk seminar proposal dan persiapannya
ppt untuk seminar proposal dan persiapannya
Rasidinmamakidin
 
Microsoft Office 365 Crack Latest Version 2025?
Microsoft Office 365 Crack Latest Version 2025?Microsoft Office 365 Crack Latest Version 2025?
Microsoft Office 365 Crack Latest Version 2025?
yousfhashmi786
 

The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel by Di Shen

  • 1. The Art of Exploiting Unconventional Use-after-free Bugs in Android Kernel Di Shen a.k.a. Retme (@returnsme) Keen Lab of Tencent
  • 2. whoami • Di Shen a.k.a. Retme (@returnsme) • Member of Keen Lab • Android Kernel vulnerability hunting and exploitation since 2014 • Aim: to work out universal rooting exploit for Android • Trophy: • CVE-2016-6787 & CVE-2017-0403 (kernel/events/core.c) • CVE-2015-1805 (fs/pipe.c) ’s first working exploit • CVE-2015-4421,4422 (Huawei TrustZone) • KNOX Bypassing on Samsung Galaxy S7 (BHUSA 17’) • Exploiting Wireless Extension for all common Wi-Fi chipsets (BHEU 16’) • And more To Be Announced in the future • Available on https://github.com/retme7/My-Slides
  • 3. Agenda • Rooting Android: Current situation • Overview of exploiting UAF in kernel • Conventional approach • Afterwards: Gain root • The Unconventional UAFs • Implementation of perf system • Exploiting CVE-2017-0403 • Exploiting CVE-2016-6787 • Conclusion
  • 4. Rooting Android: Current situation • Universal exploitable vulnerability is rare • Available attack surface: • Generic Linux syscalls • Android universal drivers like Binder, ION, Ashmem
  • 5. Rooting Android: Current situation • Enforced SELinux policy • Most of device drivers are inaccessible • Many syscalls are not reachable from untrusted Application • Sockets ioctl commands are partially restricted
  • 6. Rooting Android: Current situation • Verified Boot through dm-verity kernel feature • The gained root privilege is nonpersistent
  • 7. Rooting Android: Future challenges • Privileged Access Never (PAN) • KASLR • Pointer Authentication
  • 8. Overview of exploiting UAF in kernel • An easily exploitable UAF bug normally has following features: • Has a function pointer in freed object • Attacker has plenty of time to refill the freed object.
  • 9. Conventional approach to UAF exploitation struct socket (freed) ops->ioctl(…) struct socket (refilled) ops->ioctl(…) JOP gadgets • Free the victim object • Refill the object with malformed data by heap spraying or ret2dir • Let the function pointer point to ROP/JOP gadgets in kernel • Ask kernel reference this function pointer to achieve arbitrary kernel code execution ioctl(sockfd,…) kernel_sock_ioctl() JOP gadgets
  • 10. Afterwards, from code execution to root Arbitrary kernel code execution Overwrite process's addr_limit Arbitrary kernel memory overwriting Overwrite uid, security id, selinux_enforcing
  • 11. However… • Not every UAF bug in kernel is so that idealized • More unconventional situation to deal with… • The victim object may don’t have a function pointer • The kernel may crash soon after UAF triggered • The attacker may cannot fully controlled the freed object
  • 12. The unconventional UAFs I found • All found in sys_perf_event_open() • Perf system is pretty buggy • Reachable by application last year • But now it’s restricted by a feature called “perf_event_paranoid”
  • 13. The unconventional UAFs I found • CVE-2017-0403 • Ever affected all devices shipped with 3.10 or earlier Linux kernel • More than 14 million users of KingRoot gain root privilege on their smart phones • CVE-2016-6787 • Ever affected all Qualcomm-based devices. (Only Qucalcomm enabled hardware perf event…) • A part of my exploit chain to bypass Samsung KNOX 2.6
  • 14. sys_perf_event_open() • Will create a perf_event • Input: perf_event_attr • A description of what kind of performance event you need • Input: group_fd (optional) • Specify the group leader of new perf_event • Return the fd of perf_event to user space
  • 15. Key kernel objects in perf system • perf_event • A performance event which is registered by user • perf_event_context • The container of all perf events created in one process • Each process has two contexts, one for software events, other one for hardware events • Perf group and group leader • Multiple events can form a group • One event is the leader perf_sw_context perf_hw_context task_struct event event event event_list event (group_leader) event (group_leader)
  • 16. move_group • Happens when user try to create a hardware event in pure software group.
  • 17. CVE-2016-6787 Remove the group_leader from origin software context and then install it to hardware context Remove every event from software context, and then install it to new hardware context ’move_group‘ leads to reducing context’s refcont by one
  • 18. CVE-2016-6787 • move_group ignored the concurrency issues • UAF happens due to race condition • Attacker trigger the move_group on same group leader simultaneously, • The ref count of group_leader->ctx may be reduced to zero • task_struct->perf_event_ctxp[perf_sw_context] will be freed accidently The object is freed
  • 19. Free perf_event_context (PoC) Create a software group_leader Create a hardware perf_event Create a hardware perf_event Main thread Sub thread-1 Sub thread-2 move_group, put_ctx() move_group, put_ctx() kfree_rcu(perf_event_context) ctx->refcount = 1 ctx->refcount = 2 ctx->refcount = 0
  • 20. Kernel crashed instantly • Kernel crashed soon after we freed the perf_event_context • Thread scheduler need to dereference this object pointer consecutively • We don‘t have plenty of time to refill the object 
  • 21. Solution: freeze thread after free • Keep thread scheduler away from me • Switch the status of attacker’s thread from running to (un)interruptible • The thread will be frozen and kernel won’t crash as soon as perf_event_context freed
  • 22. How to freeze a thread from user land? • Sleep() ? Not working • Use futex_wait_queue_me() switch to interruptible freezable_schedule()
  • 23. Create a software group_leader Create a hardware perf_event Create a hardware perf_event Main thread Sub thread-1 Sub thread-2 move_group, put_ctx() move_group, put_ctx() kfree_rcu(perf_event_context) futex_wait_queue_me() Phase 1 Phase 2 Spraying the heap by using ‘ret2dir’ trick, fill a malformed perf_event_context{} in every 1024 bytes Use futex_wake() wake up main thread Phase 4 schedule() finish_task_switch() perf_event_context_sched_in() ctx->pmu->pmu_disable() Phase 3
  • 24. A brief summary of CVE-2016-6787 • Easy to win the race, and trigger the bug • Hard to refill the freed object (no time) • Easy to control the code flow (corrupted object has function pointer) • Proposed an approach to freezing thread to gain more time to refill object
  • 25. Review: relationship between perf event, group and group leader • Group leader has a sibling_list • sibling_list is a list of perf events which belongs this group perf_sw_context perf_hw_context task_struct event event event event_list event (group_leader) event (group_leader)
  • 26. CVE-2017-0403 (PoC) • Create a perf event as ‘A’ • Create another perf event as ‘B’, specify ‘A’ as its group leader • Free ‘A’,the group leader • Free ‘B’, a sibling of group ---- UAF happens here
  • 27. Root cause • Now group leader ‘A’ is freed • Kernel doesn’t empty its sibling list • Leads to leaving a dangling pointer in sibling’s event->group_entry
  • 28. Root cause • Later on the sibling ‘B’ is freed • list_del_event() • list_del_init(&event->group_entry); • overwrite a pointer to the freed group leader.
  • 29. • SLUB poison information • 0xfffffc00fc2b1a0 is overwritten to (group_leader+ 0x20)
  • 30. The unconventional scenario • The only thing I can do is overwriting the freed object as following *(size_t*)(freed_object + 0x20) = (freed_object + 0x20)
  • 31. Pipe subsystem in Linux • readv() & writev(): read/write multiple buffers through pipe • Use an array of struct iovec{iov_base,iov_len} to describe user buffers • When no contents available from the write end, readv() may block in kernel • Then an array of struct iovec{} may stay in kernel’s heap
  • 32. Compromise pipe system • Call readv() • rw_copy_check_uvector() confirm every iov_base must points to userland space. • An array of struct iovec{} now is in heap. Nothing comes from the write end of pipe, so readv() block. • If you can somehow overwrite the iovec{}, modify the iov_base to a kernel address. Emmm… iov_base iov_len iov_base iov_len iov_base iov_len ….. kernel_addr iov_len kernel_addr iov_len kernel_addr iov_len
  • 33. Compromise pipe system • Now write something to another end of pipe • pipe_iov_copy_to_user() won’t check the iov_base again. • Buffers you wrote to pipe will be copied to the kernel address
  • 34. ········ Trigger UAF, write two 8-bytes value“A+0x20”to address = A+0x20 ↓ the 1st freed object, address is A Solution: convert UAF to arbitrary R/W ↓the 2nd freed object, address is B = A + 0x400 Use iovec to spray the heap Freed Data Freed Data Freed Freed Data Freed Data ········· base len base len base base len base len ··················· base len A + 0x20 A+0x20 base ·········· base len base len Write a buffer to pipe ,the buffer will be copied to (A + 0x20) ········· base len KADDR 8 KADDR ·········· KADDR 8 KADDR 8 ········· Write a buffer to pipe again,it will be copied to KADDR KADDR can be any address value, we achieved arbitrary kernel memory overwriting 1 2 3 4 5
  • 35. A brief summary of CVE-2017-0403 • Attacker lost the file descriptor of freed object • Cannot achieve code execution via refilling object’s function pointer • Only be able to write the address value of freed object twice to freed object • Proposed a new approach: compromising pipe system
  • 36. Conclusion • Most UAF bugs looks not exploitable, but there may be another way • No idea? Put it down for a while, but do not let it go… • Be familiar with kernel’s source code, kernel’s own feature may help your exploitation (e.g. pipe for CVE- 2017-0403)