SlideShare a Scribd company logo
1 of 166
Download to read offline
fG! @ CodeBlue 2014
BadXNU
Who am I?
!  Ex-legendary white hat hero (© Dr.
Quynh).
Rootkits?
!  How to load kernel rootkits.
!  Bypassing:
!  Code signing.
!  Kernel extensions interface(s).
Backdoors?
!  Design and implementation flaws.
!  Unpatched kernel vulnerabilities.
!  OS X features.
ASSUMPTIONS
Got root?
!  What do *you* estimate as the
probability of a local privilege
escalation in OS X?
!  Anything below HIGH is probably
wrong.
https://vimeo.com/
Got root?
!  Much easier alternative...
!  Go social engineering!
!  iWorm infected +17k hosts just by
asking.
Got root?
!  Installers and updates over HTTP
asking for admin privileges.
!  Etc...
!  The attack surface is big ☺☺.
Problem?
Apple new kext policy
Mavericks
Yosemite
Consequences
!  Kexts can’t be loaded if:
!  Not code signed.
!  Invalid code signature.
!  Bad bundle identifier.
Solutions
!  Steal or buy a code signing certificate.
!  kext-dev-mode=1 boot parameter.
!  Attack userland daemons.
!  Exploit kernel vulnerabilities.
!  Abuse existing features.
!  EFI attacks.
Attack userland daemons
!  Kextd daemon.
!  Runs in ring 3.
!  Responsible for code signature checks!
Attack userland daemons
!  Just find the right place(s) and patch.
*Output from Yosemite GM3 kextd
Attack userland daemons
!  Two bytes patch and that’s it!
!  Wrote about this in November, 2013.
!  http://reverse.put.as/2013/11/23/
breaking-os-x-signed-kernel-
extensions-with-a-nop/
Apple Security...
Kernel vulnerabilities
!  Interested in any of:
!  Write anywhere.
!  Kernel task port.
!  Host privileged port.
Kernel vulnerabilities
!  Every process is represented by a task.
!  Kernel is also a task.
!  Think about it as PID zero.
Kernel vulnerabilities
!  Before Snow Leopard we could access
that port.
!  Using task_for_pid(0).
!  http://phrack.org/issues/66/16.html
Kernel vulnerabilities
Kernel vulnerabilities
!  The processor_set_tasks() vulnerability.
!  Presented by Ming-chieh Pan & Sung-ting
Tsai at BlackHat Asia 2014.
!  Also described at Mac OS X and iOS
Internals book by Jonathan Levin.
Kernel vulnerabilities
!  Allows access to kernel task.
!  Same result as task_for_pid(0).
Every bit as vulnerable!
Kernel vulnerabilities
!  Apple definitely knows this bug.
!  It is patched in iOS!
!  That’s what SECURE_KERNEL is for.
!  No visible side-effects if patched!
How to exploit
this?
We can
!  Allocate kernel memory.
!  Read kernel memory.
!  Write/modify writable memory.
We can’t
!  Change memory protections of:
!  Kernel code.
!  Some read-only data sections.
!  Directly execute code.
Kernel obstacles
!  Kernel code segment is read-only.
Kernel obstacles
!  Some data sections are also read only.
!  Direct modification of syscall and mach
traps tables not possible anymore.
!  Introduced in Mountain Lion.
Kernel obstacles
Kernel obstacles
!  Kernel ASLR.
!  Not really an obstacle in a rootkit scenario.
!  Use kas_info syscall to retrieve slide.
!  Or info leaks.
Memory protection problem
!  Some pages are marked read-only.
!  Possible if we disable write protection
in CR0 register.
!  For that we need code execution.
Code execution problem
!  We can’t (directly) modify kernel code.
!  We can’t leverage syscalls or mach
traps to start code.
Code execution problem
!  Kernel extensions are also protected.
!  When loaded from kernelcache.
!  Which is the default case anyway.
DKOM!
Goals
!  Direct Kernel Object Manipulation
(DKOM).
!  Find a writable data structure.
!  That allows us to execute code.
!  Small shellcode that disables CR0.
!  Or more complex code.
TrustedBSD
TrustedBSD MACF
!  Technically it’s the MAC Framework.
!  Mandatory Access Control.
!  Ported from FreeBSD.
!  The basis for the OS X/iOS sandbox.
!  Gatekeeper and userland code signing.
TrustedBSD MACF
!  Many hooks available.
!  Each policy configures hooks it’s
interested in.
TrustedBSD MACF
!  Policies can be added/removed.
!  Writable data.
!  Code execution.
= WIN!
HOW?
How to Leverage TrustedBSD
!  Add a new policy.
!  With a single hook.
!  That points to rootkit entrypoint.
!  Call function to start rootkit.
10 steps to victory
1.  Get kernel task port.
2.  Find kernel ASLR slide.
3.  Compute rootkit size.
4.  Allocate kernel memory or find free
space.
5.  Copy rootkit to kernel memory.
10 steps to victory
6.  Change memory protections.
7.  Fix external symbols.
8.  Install a new TrustedBSD policy.
9.  Start rootkit via TrustedBSD hook.
10. Cleanup.
1. Get kernel task port
2. Find KASLR slide
3. Compute rootkit size
!  Use the virtual memory size field and
not the file size field.
4. Allocate kernel memory
!  mach_vm_allocate().
!  We just need some kernel memory,
anywhere.
5. Copy rootkit
!  mach_vm_write().
!  Copy each segment.
!  Use the file size from the segment.
6. Change memory protections
!  mach_vm_protect().
!  Make code executable.
!  Use virtual memory size field.
Problems
!  This memory is not wired.
!  Not everything will be paged in when
copied.
Problems
!  Solution is to make that memory wired.
!  mach_vm_wire().
!  Requires the memory protection to be
set first.
!
"
7. Fix external symbols
!  Kernel extensions code is PIE.
!  No need to worry with it.
!  How about all external symbols?
!  We need to fix them.
!  No kernel “linker” to do it for us.
7. Fix external symbols
!  Relocation tables.
!  Information available in Mach-O
header:
!  LC_DYSYMTAB.
!  LC_SYMTAB.
7. Fix external symbols
!  Ten different types of relocations.
!  Kexts only use two:
!  X86_64_RELOC_UNSIGNED.
!  Used for RIP relative addresses.
!  X86_64_RELOC_BRANCH.
!  Used for absolute addresses.
7. Fix external symbols
RReellooccaattiioonn TTyyppee LLooccaall EExxtteerrnnaall
X86_64_RELOC_UNSIGNED 166078 335464
X86_64_RELOC_SIGNED 0 0
X86_64_RELOC_BRANCH 0 158219
X86_64_RELOC_GOT_LOAD 0 0
X86_64_RELOC_GOT 0 0
X86_64_RELOC_SUBTRACTOR 0 0
X86_64_RELOC_SIGNED_1 0 0
X86_64_RELOC_SIGNED_2 0 0
X86_64_RELOC_SIGNED_4 0 0
X86_64_RELOC_TLV 0 0
7. Fix external symbols
!  External:
!  Symbols from KPIs.
!  Local:
!  Strings and some other kext local symbols.
8. Install a TrustedBSD policy
!  Important data structures:
!  mac_policy_list.
!  mac_policy_conf.
!  mac_policy_ops.
8. Install a TrustedBSD policy
!  Core structure.
!  Global variable mac_policy_list.
8. Install a TrustedBSD policy
!  mac_policy_conf contains the
configuration of each policy.
8. Install a TrustedBSD policy
!  mac_policy_ops holds the function
pointers for each hook.
!  Where we set the rootkit entrypoint or
shellcode.
8. Install a TrustedBSD policy
a)  Allocate and install a mac_policy_ops.
b)  Allocate and install a mac_policy_conf.
c)  Add mac_policy_conf to entries array.
d)  Add new policy to mac_policy_list.
a) mac_policy_ops
!  A single hook in task_for_pid().
!  Many other hooks available.
!  Check mac_policy.h
Rootkit entrypoint
!  Process the rootkit symbols table.
!  Locate the kmod_info symbol.
!  The entrypoint is the start_addr field.
b) mac_policy_conf
!  We only need to point to the
mac_policy_ops structure.
!  All other fields can be NULL.
c) Add mac_policy_conf
!  The entries array is pre-allocated.
!  We just need to find an empty slot.
c) Add mac_policy_conf
!  Use the number of loaded policies to
get free slot position.
d) Add new policy
!  To add a new policy, increase:
!  numloaded
!  Number of policies loaded.
!  maxindex
!  Used to iterate over policies.
9. Start rootkit
!  Just call task_for_pid(1).
!  PID 1 is launchd and always exists.
!  Add a “fuse” to the rootkit code to
avoid further executions.
10. Cleanup
!  Disable our policy:
!  Decrease maxindex and numloaded fields.
!  Remove any installation traces:
!  Wipe memory.
!  Deallocate memory.
Abusing OS X features
!  /dev/kmem not enabled by default.
!  Activated with “kmem=1” boot option.
!  Edit /Library/Preferences/
SystemConfiguration/
com.apple.Boot.plist.
Abusing OS X features
!  AppleHWAccess kernel extension.
!  Introduced in Mavericks.
!  Allows direct read and write access to
physical memory.
!  Up to 64 bits read/write per request.
Abusing OS X features
!  Found out by SJ_UnderWater.
!  http://www.tonymacx86.com/apple-
news-rumors/112304-applehwaccess-
random-memory-read-write.html
We can
!  Read and write almost every single bit
available.
!  Bypass all read-only protections.
We can’t
!  Allocate memory.
!  Change memory protections.
!  Directly execute code.
AppleHWAccess
!  We need to:
!  Copy rootkit code to kernel memory.
!  Fix relocations.
!  Start rootkit.
Problems?
!  Memory allocation:
!  Find already allocated free space.
!  Kernel header alignment space.
!  Kernel extensions alignment space.
!  Unused kernel functions.
!  Allocate memory via shellcode.
Problems?
!  Code execution:
!  Add a new syscall or mach trap.
!  Add a new TrustedBSD policy.
!  Hook kernel or kext function.
!  Etc...
10 steps to victory
1.  Find kernel ASLR slide.
2.  Find amount of available memory.
3.  Find where kernel is in physical memory.
4.  Compute rootkit size.
5.  Find free space.
10 steps to victory
6.  Write rootkit to physical memory.
7.  Fix rootkit external symbols.
8.  Find rootkit entrypoint.
9.  Modify unused syscall entry.
10. Call modified syscall to start rootkit.
1. Find KASLR slide
2. Find available memory
3. Find kernel
!  Possible to read almost every bit of
physical memory.
!  Doesn’t kernel panic (in VMs!).
!  Two solutions:
!  “Smart”.
!  Bruteforce.
3. Find kernel
!  “Smart” solution.
!  Read address from kernel disk image.
!  Add the KASLR slide.
!  Clear the highest 32 bits.
3. Find kernel
!  Bruteforce solution.
!  Start reading from physical address
zero.
!  Until the kernel image is found.
3. Find kernel
!  This solution only works in VMs.
!  Physical = machine check exceptions.
!  ""
3. Find kernel
!  How to identify the right location?
!  The magic Mach-O value can be found
in many locations.
!  At least two for kernel image.
!  And every other loaded binary.
3. Find kernel
!  The kernel headers in-memory always
contain the KASLR slide.
!  Also valid for kernel extensions.
3. Find kernel
!  If a potential kernel header is found.
!  Try to match if the vmaddr matches the
value with KASLR slide.
4. Compute rootkit size
!  You need to compute rootkit size.
!  Use the virtual memory size field and
not the file size field.
5. Find free space
!  Alignment space between __TEXT and
__DATA segments.
!  Usually big enough.
!  Enough for a complete rootkit in
10.10.0.
!  Not enough in 10.9.5.
5. Find free space
!  WARNING!
!  Kernel extensions headers aren’t wired.
!  Not suitable for this trick.
5. Find free space
!  Write small shellcode to allocate
memory.
!  Use the header space or unused
function to upload and execute it.
6. Write rootkit to memory
!  Copy each segment.
!  No need to worry with wired memory
issues.
6. Write rootkit to memory
7. Fix rootkit symbols
!  Same as in the first technique.
!  Just changes the way you write to
kernel memory.
8. Find rootkit entrypoint
!  Same as in the first technique.
9. Modify unused syscall entry
!  Locate the sysent table.
!  Bruteforce the kernel memory space.
!  Looking for the address of known syscall
pointers.
!  Use unused sysent slot (there are many).
9. Modify unused syscall entry
!  The unused slots usually points to
“enosys” or “nosys” functions.
!  Mavericks uses nosys.
!  Yosemite uses enosys.
!  Just update pointer to rootkit
entrypoint.
10. Start rootkit
Problems
!  Kernel header is part of non-writable
segment.
!  We can’t change memory protection.
!  If rootkit needs to write to its own data
segments it will crash.
Problems
!  We must disable CR0 protection.
!  Either with a small shellcode stub.
!  Or first thing in rootkit entrypoint.
Problems
!  CR0 register is per CPU core.
!  How can we run code in all cores?
OS X
security
is...
CRAP!
TOTAL
CRAP!
Conclusions
!  Kext code signing is mostly useless.
!  Don’t trust it as a security measure.
!  Apple doesn’t seem to care about
patching all vulnerabilities.
Conclusions
!  Afaik there’s no official products end of
life (EOL) policy.
!  It’s either upgrade or be vulnerable.
!  And that still leaves you with
unpatched vulnerabilities...
Conclusions
!  Apple product security strategy is
reactive not proactive.
!  If they have any strategy at all...
Greetings
!  You for spending time of your life
listening to me, and conference
organizers for all their hard work.
http://reverse.put.as
http://github.com/gdbinit
reverser@put.as
@osxreverser
#osxre @ irc.freenode.net
PGP key:
http://reverse.put.as/wp-content/uploads/2008/06/
publickey.txt
PGP Fingerprint:
7B05 44D1 A1D5 3078 7F4C  E745 9BB7 2A44 ED41 BF05
A day full of
possibilities!
Let's go exploring!
References
!  Images from images.google.com. Credit due to all their
authors.

More Related Content

What's hot

Android– forensics and security testing
Android– forensics and security testingAndroid– forensics and security testing
Android– forensics and security testingSanthosh Kumar
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & futureAlex Matrosov
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboardyeokm1
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbSeunghun han
 
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONETUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONEdede abdulah
 
Controlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden FeaturesControlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden Featuresxabean
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorSeunghun han
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxSeunghun han
 
Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Veduruparthy Bharat
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practicalMoabi.com
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Security Conference
 
Protected Process Light will be Protected – MemoryRanger Fills the Gap Again
Protected Process Light will be Protected – MemoryRanger Fills the Gap AgainProtected Process Light will be Protected – MemoryRanger Fills the Gap Again
Protected Process Light will be Protected – MemoryRanger Fills the Gap AgainIgor Korkin
 
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory Access
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory AccessDetect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory Access
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory AccessIgor Korkin
 
VM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingVM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingTamas K Lengyel
 
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel SpacesDivide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel SpacesIgor Korkin
 
Find your own iOS kernel bug
Find your own iOS kernel bugFind your own iOS kernel bug
Find your own iOS kernel bugGustavo Martinez
 
DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)Michael Smith
 
Applying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit DetectionApplying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit DetectionIgor Korkin
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiKuniyasu Suzaki
 

What's hot (20)

Android– forensics and security testing
Android– forensics and security testingAndroid– forensics and security testing
Android– forensics and security testing
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & future
 
Intel Edison: Beyond the Breadboard
Intel Edison: Beyond the BreadboardIntel Edison: Beyond the Breadboard
Intel Edison: Beyond the Breadboard
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad Usb
 
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONETUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
 
Controlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden FeaturesControlling USB Flash Drive Controllers: Expose of Hidden Features
Controlling USB Flash Drive Controllers: Expose of Hidden Features
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
 
Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !Android and ios cracking, hackintosh included !
Android and ios cracking, hackintosh included !
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical
 
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One StoryBlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
 
Protected Process Light will be Protected – MemoryRanger Fills the Gap Again
Protected Process Light will be Protected – MemoryRanger Fills the Gap AgainProtected Process Light will be Protected – MemoryRanger Fills the Gap Again
Protected Process Light will be Protected – MemoryRanger Fills the Gap Again
 
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory Access
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory AccessDetect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory Access
Detect Kernel-Mode Rootkits via Real Time Logging & Controlling Memory Access
 
VM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzingVM Forking and Hypervisor-based fuzzing
VM Forking and Hypervisor-based fuzzing
 
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel SpacesDivide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces
 
Find your own iOS kernel bug
Find your own iOS kernel bugFind your own iOS kernel bug
Find your own iOS kernel bug
 
DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)DefCon 2012 - Hardware Backdooring (Slides)
DefCon 2012 - Hardware Backdooring (Slides)
 
Applying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit DetectionApplying Memory Forensics to Rootkit Detection
Applying Memory Forensics to Rootkit Detection
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzaki
 

Viewers also liked

[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack TangCODE BLUE
 
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés RianchoCODE BLUE
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英CODE BLUE
 
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac DawsonCODE BLUE
 
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...CODE BLUE
 
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹CODE BLUE
 
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...CODE BLUE
 
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten NohlCODE BLUE
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

Viewers also liked (9)

[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
[CB16] (P)FACE :アップルのコアへ、そしてルート権限へのエクスプロイト by Moony Li & Jack Tang
 
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
[CB16] 難解なウェブアプリケーションの脆弱性 by Andrés Riancho
 
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
[CB16] IoTとしての自動車とセキュリティ: リモートサービスのセキュリティ評価とその対策の検討 - by 和栗直英
 
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
[CB16] 80時間でWebを一周:クロムミウムオートメーションによるスケーラブルなフィンガープリント by Isaac Dawson
 
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
 
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
[CB16] 「ネットバンキングウイルス無力化作戦」の裏側と高度化する金融マルウェア by 高田一樹
 
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
[CB16] Using the CGC’s fully automated vulnerability detection tools in secur...
 
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
[CB16] 基調講演: セキュリティはどれくらいが適量? – How much security is too much? – by Karsten Nohl
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Similar to OSX Kernel Rootkit Techniques

CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇA
CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇACODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇA
CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇACODE BLUE
 
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNoSuchCon
 
44CON London 2015 - Is there an EFI monster inside your apple?
44CON London 2015 - Is there an EFI monster inside your apple?44CON London 2015 - Is there an EFI monster inside your apple?
44CON London 2015 - Is there an EFI monster inside your apple?44CON
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernelguestf1a032
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesPeter Hlavaty
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerunidsecconf
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Pluginsamiable_indian
 
[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory AnalysisMoabi.com
 
Pitfalls and limits of dynamic malware analysis
Pitfalls and limits of dynamic malware analysisPitfalls and limits of dynamic malware analysis
Pitfalls and limits of dynamic malware analysisTamas K Lengyel
 
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch ProtectionsNSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch ProtectionsNoSuchCon
 
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersAlexandre Moneger
 
[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
 
VM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenVM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenTamas K Lengyel
 
[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit AutomationMoabi.com
 
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaIDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaCODE BLUE
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
Security Applications For Emulation
Security Applications For EmulationSecurity Applications For Emulation
Security Applications For EmulationSilvio Cesare
 

Similar to OSX Kernel Rootkit Techniques (20)

CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇA
CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇACODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇA
CODE BLUE 2014 : BadXNU、イケてないリンゴ! by ペドロ・ベラサ PEDRO VILAÇA
 
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
 
44CON London 2015 - Is there an EFI monster inside your apple?
44CON London 2015 - Is there an EFI monster inside your apple?44CON London 2015 - Is there an EFI monster inside your apple?
44CON London 2015 - Is there an EFI monster inside your apple?
 
Joanna Rutkowska Subverting Vista Kernel
Joanna Rutkowska   Subverting Vista KernelJoanna Rutkowska   Subverting Vista Kernel
Joanna Rutkowska Subverting Vista Kernel
 
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytesWindows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerun
 
Writing Metasploit Plugins
Writing Metasploit PluginsWriting Metasploit Plugins
Writing Metasploit Plugins
 
Attack on the Core
Attack on the CoreAttack on the Core
Attack on the Core
 
[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis
 
Pitfalls and limits of dynamic malware analysis
Pitfalls and limits of dynamic malware analysisPitfalls and limits of dynamic malware analysis
Pitfalls and limits of dynamic malware analysis
 
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch ProtectionsNSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
NSC #2 - D2 01 - Andrea Allievi - Windows 8.1 Patch Protections
 
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbersDefcon 22 - Stitching numbers - generating rop payloads from in memory numbers
Defcon 22 - Stitching numbers - generating rop payloads from in memory numbers
 
[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...
 
VM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with XenVM Forking and Hypervisor-based Fuzzing with Xen
VM Forking and Hypervisor-based Fuzzing with Xen
 
Racing with Droids
Racing with DroidsRacing with Droids
Racing with Droids
 
[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation
 
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki ChidaIDA Vulnerabilities and Bug Bounty  by Masaaki Chida
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
 
Tranning-2
Tranning-2Tranning-2
Tranning-2
 
[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Security Applications For Emulation
Security Applications For EmulationSecurity Applications For Emulation
Security Applications For Emulation
 

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 NohlCODE 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 PupilloCODE 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

Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsappssapnasaifi408
 
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service - Bandra F...
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service -  Bandra F...WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service -  Bandra F...
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service - Bandra F...Pooja Nehwal
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Pooja Nehwal
 
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...nagunakhan
 
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...anilsa9823
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一ga6c6bdl
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service ThanePooja Nehwal
 
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikLow Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...Pooja Nehwal
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile servicerehmti665
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...nagunakhan
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls Service Kolkata Aishwarya 🤌 8250192130 🚀 Vip Call Girls Kolkata
Call Girls Service Kolkata Aishwarya 🤌  8250192130 🚀 Vip Call Girls KolkataCall Girls Service Kolkata Aishwarya 🤌  8250192130 🚀 Vip Call Girls Kolkata
Call Girls Service Kolkata Aishwarya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样qaffana
 
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...Call Girls in Nagpur High Profile
 

Recently uploaded (20)

Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /WhatsappsBeautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
Beautiful Sapna Call Girls CP 9711199012 ☎ Call /Whatsapps
 
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service - Bandra F...
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service -  Bandra F...WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service -  Bandra F...
WhatsApp 9892124323 ✓Call Girls In Khar ( Mumbai ) secure service - Bandra F...
 
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
Call Girls In Andheri East Call 9892124323 Book Hot And Sexy Girls,
 
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(ANIKA) Wanwadi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
Slim Call Girls Service Badshah Nagar * 9548273370 Naughty Call Girls Service...
 
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(PARI) Alandi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
(SANA) Call Girls Landewadi ( 7001035870 ) HI-Fi Pune Escorts Service
 
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
Lucknow 💋 Call Girls Adil Nagar | ₹,9500 Pay Cash 8923113531 Free Home Delive...
 
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
定制宾州州立大学毕业证(PSU毕业证) 成绩单留信学历认证原版一比一
 
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311  Call Girls in Thane , Independent Escort Service ThanePallawi 9167673311  Call Girls in Thane , Independent Escort Service Thane
Pallawi 9167673311 Call Girls in Thane , Independent Escort Service Thane
 
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service NashikLow Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
Low Rate Call Girls Nashik Vedika 7001305949 Independent Escort Service Nashik
 
young call girls in Sainik Farm 🔝 9953056974 🔝 Delhi escort Service
young call girls in Sainik Farm 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Sainik Farm 🔝 9953056974 🔝 Delhi escort Service
young call girls in Sainik Farm 🔝 9953056974 🔝 Delhi escort Service
 
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
9892124323 Pooja Nehwal Call Girls Services Call Girls service in Santacruz A...
 
Call Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile serviceCall Girls Delhi {Rohini} 9711199012 high profile service
Call Girls Delhi {Rohini} 9711199012 high profile service
 
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
Russian Call Girls In South Delhi Delhi 9711199012 💋✔💕😘 Independent Escorts D...
 
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
Call Girls in Dwarka Sub City 💯Call Us 🔝8264348440🔝
 
Call Girls Service Kolkata Aishwarya 🤌 8250192130 🚀 Vip Call Girls Kolkata
Call Girls Service Kolkata Aishwarya 🤌  8250192130 🚀 Vip Call Girls KolkataCall Girls Service Kolkata Aishwarya 🤌  8250192130 🚀 Vip Call Girls Kolkata
Call Girls Service Kolkata Aishwarya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样
哪里办理美国宾夕法尼亚州立大学毕业证(本硕)psu成绩单原版一模一样
 
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
(ZARA) Call Girls Jejuri ( 7001035870 ) HI-Fi Pune Escorts Service
 
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
VVIP Pune Call Girls Warje (7001035870) Pune Escorts Nearby with Complete Sat...
 

OSX Kernel Rootkit Techniques

  • 1. fG! @ CodeBlue 2014 BadXNU
  • 2. Who am I? !  Ex-legendary white hat hero (© Dr. Quynh).
  • 3.
  • 4. Rootkits? !  How to load kernel rootkits. !  Bypassing: !  Code signing. !  Kernel extensions interface(s).
  • 5. Backdoors? !  Design and implementation flaws. !  Unpatched kernel vulnerabilities. !  OS X features.
  • 7.
  • 8. Got root? !  What do *you* estimate as the probability of a local privilege escalation in OS X? !  Anything below HIGH is probably wrong.
  • 9.
  • 10.
  • 11.
  • 13. Got root? !  Much easier alternative... !  Go social engineering! !  iWorm infected +17k hosts just by asking.
  • 14. Got root? !  Installers and updates over HTTP asking for admin privileges. !  Etc... !  The attack surface is big ☺☺.
  • 15.
  • 17. Apple new kext policy
  • 20. Consequences !  Kexts can’t be loaded if: !  Not code signed. !  Invalid code signature. !  Bad bundle identifier.
  • 21. Solutions !  Steal or buy a code signing certificate. !  kext-dev-mode=1 boot parameter. !  Attack userland daemons. !  Exploit kernel vulnerabilities. !  Abuse existing features. !  EFI attacks.
  • 22.
  • 23.
  • 24. Attack userland daemons !  Kextd daemon. !  Runs in ring 3. !  Responsible for code signature checks!
  • 25.
  • 26. Attack userland daemons !  Just find the right place(s) and patch. *Output from Yosemite GM3 kextd
  • 27. Attack userland daemons !  Two bytes patch and that’s it! !  Wrote about this in November, 2013. !  http://reverse.put.as/2013/11/23/ breaking-os-x-signed-kernel- extensions-with-a-nop/
  • 29.
  • 30. Kernel vulnerabilities !  Interested in any of: !  Write anywhere. !  Kernel task port. !  Host privileged port.
  • 31. Kernel vulnerabilities !  Every process is represented by a task. !  Kernel is also a task. !  Think about it as PID zero.
  • 32. Kernel vulnerabilities !  Before Snow Leopard we could access that port. !  Using task_for_pid(0). !  http://phrack.org/issues/66/16.html
  • 34. Kernel vulnerabilities !  The processor_set_tasks() vulnerability. !  Presented by Ming-chieh Pan & Sung-ting Tsai at BlackHat Asia 2014. !  Also described at Mac OS X and iOS Internals book by Jonathan Levin.
  • 35. Kernel vulnerabilities !  Allows access to kernel task. !  Same result as task_for_pid(0).
  • 36.
  • 37.
  • 38.
  • 39.
  • 40. Every bit as vulnerable!
  • 41. Kernel vulnerabilities !  Apple definitely knows this bug. !  It is patched in iOS! !  That’s what SECURE_KERNEL is for. !  No visible side-effects if patched!
  • 43. We can !  Allocate kernel memory. !  Read kernel memory. !  Write/modify writable memory.
  • 44. We can’t !  Change memory protections of: !  Kernel code. !  Some read-only data sections. !  Directly execute code.
  • 45.
  • 46. Kernel obstacles !  Kernel code segment is read-only.
  • 47. Kernel obstacles !  Some data sections are also read only. !  Direct modification of syscall and mach traps tables not possible anymore. !  Introduced in Mountain Lion.
  • 49. Kernel obstacles !  Kernel ASLR. !  Not really an obstacle in a rootkit scenario. !  Use kas_info syscall to retrieve slide. !  Or info leaks.
  • 50.
  • 51. Memory protection problem !  Some pages are marked read-only. !  Possible if we disable write protection in CR0 register. !  For that we need code execution.
  • 52. Code execution problem !  We can’t (directly) modify kernel code. !  We can’t leverage syscalls or mach traps to start code.
  • 53. Code execution problem !  Kernel extensions are also protected. !  When loaded from kernelcache. !  Which is the default case anyway.
  • 54.
  • 55. DKOM!
  • 56. Goals !  Direct Kernel Object Manipulation (DKOM). !  Find a writable data structure. !  That allows us to execute code. !  Small shellcode that disables CR0. !  Or more complex code.
  • 58. TrustedBSD MACF !  Technically it’s the MAC Framework. !  Mandatory Access Control. !  Ported from FreeBSD. !  The basis for the OS X/iOS sandbox. !  Gatekeeper and userland code signing.
  • 59. TrustedBSD MACF !  Many hooks available. !  Each policy configures hooks it’s interested in.
  • 60. TrustedBSD MACF !  Policies can be added/removed. !  Writable data. !  Code execution. = WIN!
  • 61. HOW?
  • 62. How to Leverage TrustedBSD !  Add a new policy. !  With a single hook. !  That points to rootkit entrypoint. !  Call function to start rootkit.
  • 63.
  • 64. 10 steps to victory 1.  Get kernel task port. 2.  Find kernel ASLR slide. 3.  Compute rootkit size. 4.  Allocate kernel memory or find free space. 5.  Copy rootkit to kernel memory.
  • 65. 10 steps to victory 6.  Change memory protections. 7.  Fix external symbols. 8.  Install a new TrustedBSD policy. 9.  Start rootkit via TrustedBSD hook. 10. Cleanup.
  • 66. 1. Get kernel task port
  • 67. 2. Find KASLR slide
  • 68. 3. Compute rootkit size !  Use the virtual memory size field and not the file size field.
  • 69. 4. Allocate kernel memory !  mach_vm_allocate(). !  We just need some kernel memory, anywhere.
  • 70. 5. Copy rootkit !  mach_vm_write(). !  Copy each segment. !  Use the file size from the segment.
  • 71. 6. Change memory protections !  mach_vm_protect(). !  Make code executable. !  Use virtual memory size field.
  • 72.
  • 73. Problems !  This memory is not wired. !  Not everything will be paged in when copied.
  • 74.
  • 75. Problems !  Solution is to make that memory wired. !  mach_vm_wire(). !  Requires the memory protection to be set first.
  • 76. ! "
  • 77. 7. Fix external symbols !  Kernel extensions code is PIE. !  No need to worry with it. !  How about all external symbols? !  We need to fix them. !  No kernel “linker” to do it for us.
  • 78. 7. Fix external symbols !  Relocation tables. !  Information available in Mach-O header: !  LC_DYSYMTAB. !  LC_SYMTAB.
  • 79. 7. Fix external symbols !  Ten different types of relocations. !  Kexts only use two: !  X86_64_RELOC_UNSIGNED. !  Used for RIP relative addresses. !  X86_64_RELOC_BRANCH. !  Used for absolute addresses.
  • 80. 7. Fix external symbols RReellooccaattiioonn TTyyppee LLooccaall EExxtteerrnnaall X86_64_RELOC_UNSIGNED 166078 335464 X86_64_RELOC_SIGNED 0 0 X86_64_RELOC_BRANCH 0 158219 X86_64_RELOC_GOT_LOAD 0 0 X86_64_RELOC_GOT 0 0 X86_64_RELOC_SUBTRACTOR 0 0 X86_64_RELOC_SIGNED_1 0 0 X86_64_RELOC_SIGNED_2 0 0 X86_64_RELOC_SIGNED_4 0 0 X86_64_RELOC_TLV 0 0
  • 81. 7. Fix external symbols !  External: !  Symbols from KPIs. !  Local: !  Strings and some other kext local symbols.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86. 8. Install a TrustedBSD policy !  Important data structures: !  mac_policy_list. !  mac_policy_conf. !  mac_policy_ops.
  • 87.
  • 88. 8. Install a TrustedBSD policy !  Core structure. !  Global variable mac_policy_list.
  • 89.
  • 90. 8. Install a TrustedBSD policy !  mac_policy_conf contains the configuration of each policy.
  • 91. 8. Install a TrustedBSD policy !  mac_policy_ops holds the function pointers for each hook. !  Where we set the rootkit entrypoint or shellcode.
  • 92. 8. Install a TrustedBSD policy a)  Allocate and install a mac_policy_ops. b)  Allocate and install a mac_policy_conf. c)  Add mac_policy_conf to entries array. d)  Add new policy to mac_policy_list.
  • 93. a) mac_policy_ops !  A single hook in task_for_pid(). !  Many other hooks available. !  Check mac_policy.h
  • 94.
  • 95. Rootkit entrypoint !  Process the rootkit symbols table. !  Locate the kmod_info symbol. !  The entrypoint is the start_addr field.
  • 96.
  • 97.
  • 98. b) mac_policy_conf !  We only need to point to the mac_policy_ops structure. !  All other fields can be NULL.
  • 99. c) Add mac_policy_conf !  The entries array is pre-allocated. !  We just need to find an empty slot.
  • 100. c) Add mac_policy_conf !  Use the number of loaded policies to get free slot position.
  • 101. d) Add new policy !  To add a new policy, increase: !  numloaded !  Number of policies loaded. !  maxindex !  Used to iterate over policies.
  • 102. 9. Start rootkit !  Just call task_for_pid(1). !  PID 1 is launchd and always exists. !  Add a “fuse” to the rootkit code to avoid further executions.
  • 103.
  • 104. 10. Cleanup !  Disable our policy: !  Decrease maxindex and numloaded fields. !  Remove any installation traces: !  Wipe memory. !  Deallocate memory.
  • 105.
  • 106.
  • 107. Abusing OS X features !  /dev/kmem not enabled by default. !  Activated with “kmem=1” boot option. !  Edit /Library/Preferences/ SystemConfiguration/ com.apple.Boot.plist.
  • 108. Abusing OS X features !  AppleHWAccess kernel extension. !  Introduced in Mavericks. !  Allows direct read and write access to physical memory. !  Up to 64 bits read/write per request.
  • 109.
  • 110.
  • 111. Abusing OS X features !  Found out by SJ_UnderWater. !  http://www.tonymacx86.com/apple- news-rumors/112304-applehwaccess- random-memory-read-write.html
  • 112. We can !  Read and write almost every single bit available. !  Bypass all read-only protections.
  • 113. We can’t !  Allocate memory. !  Change memory protections. !  Directly execute code.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118. AppleHWAccess !  We need to: !  Copy rootkit code to kernel memory. !  Fix relocations. !  Start rootkit.
  • 119.
  • 120. Problems? !  Memory allocation: !  Find already allocated free space. !  Kernel header alignment space. !  Kernel extensions alignment space. !  Unused kernel functions. !  Allocate memory via shellcode.
  • 121. Problems? !  Code execution: !  Add a new syscall or mach trap. !  Add a new TrustedBSD policy. !  Hook kernel or kext function. !  Etc...
  • 122.
  • 123. 10 steps to victory 1.  Find kernel ASLR slide. 2.  Find amount of available memory. 3.  Find where kernel is in physical memory. 4.  Compute rootkit size. 5.  Find free space.
  • 124. 10 steps to victory 6.  Write rootkit to physical memory. 7.  Fix rootkit external symbols. 8.  Find rootkit entrypoint. 9.  Modify unused syscall entry. 10. Call modified syscall to start rootkit.
  • 125. 1. Find KASLR slide
  • 126. 2. Find available memory
  • 127. 3. Find kernel !  Possible to read almost every bit of physical memory. !  Doesn’t kernel panic (in VMs!). !  Two solutions: !  “Smart”. !  Bruteforce.
  • 128. 3. Find kernel !  “Smart” solution. !  Read address from kernel disk image. !  Add the KASLR slide. !  Clear the highest 32 bits.
  • 129. 3. Find kernel !  Bruteforce solution. !  Start reading from physical address zero. !  Until the kernel image is found.
  • 130. 3. Find kernel !  This solution only works in VMs. !  Physical = machine check exceptions. !  ""
  • 131. 3. Find kernel !  How to identify the right location? !  The magic Mach-O value can be found in many locations. !  At least two for kernel image. !  And every other loaded binary.
  • 132. 3. Find kernel !  The kernel headers in-memory always contain the KASLR slide. !  Also valid for kernel extensions.
  • 133. 3. Find kernel !  If a potential kernel header is found. !  Try to match if the vmaddr matches the value with KASLR slide.
  • 134. 4. Compute rootkit size !  You need to compute rootkit size. !  Use the virtual memory size field and not the file size field.
  • 135. 5. Find free space !  Alignment space between __TEXT and __DATA segments. !  Usually big enough. !  Enough for a complete rootkit in 10.10.0. !  Not enough in 10.9.5.
  • 136. 5. Find free space !  WARNING! !  Kernel extensions headers aren’t wired. !  Not suitable for this trick.
  • 137. 5. Find free space !  Write small shellcode to allocate memory. !  Use the header space or unused function to upload and execute it.
  • 138. 6. Write rootkit to memory !  Copy each segment. !  No need to worry with wired memory issues.
  • 139. 6. Write rootkit to memory
  • 140. 7. Fix rootkit symbols !  Same as in the first technique. !  Just changes the way you write to kernel memory.
  • 141. 8. Find rootkit entrypoint !  Same as in the first technique.
  • 142. 9. Modify unused syscall entry !  Locate the sysent table. !  Bruteforce the kernel memory space. !  Looking for the address of known syscall pointers. !  Use unused sysent slot (there are many).
  • 143. 9. Modify unused syscall entry !  The unused slots usually points to “enosys” or “nosys” functions. !  Mavericks uses nosys. !  Yosemite uses enosys. !  Just update pointer to rootkit entrypoint.
  • 145.
  • 146. Problems !  Kernel header is part of non-writable segment. !  We can’t change memory protection. !  If rootkit needs to write to its own data segments it will crash.
  • 147. Problems !  We must disable CR0 protection. !  Either with a small shellcode stub. !  Or first thing in rootkit entrypoint.
  • 148. Problems !  CR0 register is per CPU core. !  How can we run code in all cores?
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 155.
  • 156. CRAP!
  • 158.
  • 159. Conclusions !  Kext code signing is mostly useless. !  Don’t trust it as a security measure. !  Apple doesn’t seem to care about patching all vulnerabilities.
  • 160. Conclusions !  Afaik there’s no official products end of life (EOL) policy. !  It’s either upgrade or be vulnerable. !  And that still leaves you with unpatched vulnerabilities...
  • 161. Conclusions !  Apple product security strategy is reactive not proactive. !  If they have any strategy at all...
  • 162.
  • 163. Greetings !  You for spending time of your life listening to me, and conference organizers for all their hard work.
  • 164. http://reverse.put.as http://github.com/gdbinit reverser@put.as @osxreverser #osxre @ irc.freenode.net PGP key: http://reverse.put.as/wp-content/uploads/2008/06/ publickey.txt PGP Fingerprint: 7B05 44D1 A1D5 3078 7F4C  E745 9BB7 2A44 ED41 BF05
  • 165. A day full of possibilities! Let's go exploring!
  • 166. References !  Images from images.google.com. Credit due to all their authors.