SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
SPLICE™
When is
something
overflowing
 Log
 PoC
 Bug
 More problems
Stack overflow
 Buffer overflow
 Overflowing too much
 No data problem
 Memory pools and SLUB
 introduction
一步一步
#trinity
#race condition
#2012
#< 3.4.67
#most of droids 2014
https://lkml.org/lkml/2012/6/6/713
Date
=> Wed, 6 Jun 2012 22:51:17 -
0400
From
=> Dave Jones <>
Subject
=> vmsplice triggering bug in kfree.
PoC
https://lkml.org/lkml/2012/6/7/156
RACE:
 fcntl => pipe_set_size
 vmsplice / splice => do_splice
 Multiple access to pipe->buffers
 No locks present
 Fast alloc => from stack
 Big alloc => from heap
 Race to confuse its origin!
BUG - RACE
not one function issue only!
default_file_splice_read
@race, @controlled content,
@stack overflow, @buffer overflow
Stack overflow options
1. No canaries!
2. Attack LR => PC
3. Target params!
4. Target locals
5. …
6. Fail on splice shrink 
Stack attack revival !!
1. Lets pipe->buffers be small == stack
alloc
2. Race pie->buffers before kmalloc to
vec => aka vec = kmalloc
3. Race again, before splice shrink!
4. Pwn stack by spd.pages!
5. …
6. Need to handle with stack layout per
ROM, sometimes not possible – aka
bad layout
7. FAIL most of time, 2 races in
short time! 99.9999999%
WHAT NEXT ?
BUFFER OVERFLOW
@kernel pool, @SLUB,
@pipe_set_size, @kmalloc
Lets do pool overflow! (SLUB)
Tactic
1. pipe->buffers > PIPE_DEF_BUFFERS
means no panic if kfree!
2. race pipe->buffers to be bigger than
passed to kmalloc
means overflow
3. read our controlled content
(kernel_readv)
4. pwn some adjacent data to kmalloced
buffer
ptr is kernel one, but data are
controlled
problems
1. we overflow with IOVEC structure!!
{ KERNEL PTR, 0x1000 }
No so cool controlled, but still
controlled enough!
2. we do kmalloc followed by overflow
means, targeted buffer should be
positioned already!
kmalloc should return memory right
before targeted buffer
3. we do kmalloc not only for VEC
buffer!
Multiple overflows!
Multiple chances to panic!
DEFAULT
FILE
SPLICE
READ
struct iovec *vec;
struct splice_pipe_desc {
struct page **pages;
struct partial_page *partial;
…
}
POSSIBLE TO EXIT SOONER!
”/dev/null”
GOOD : Reduce overflowing buffers
- vec  struct iovec (size == 8)
- spd.pages  struct page (size == 4)
BAD : different SLAB
=> not following buffers, overflow something different
=> kfree_skb problem!!
BUT ! DATA CONTENT
PROBLEM ! Wtf, we exit too soon due to error on
data read, no controlled data anymore ?
NEW POOL SPRAY ?
default_file_splice_read
.. AGAIN ..
POOL SPRAY NOT SO
EASY
1. You have to ship data to pipe
2. With splice
3. Splice have to use
default_file_splice_read
4. /dev/ptmx a.k.a TTY 
5. You can to load data to TTY
6. Splice to pipe
7. Read from pipe
1. We have just limited number of TTY
== 0x1fd to be exact
2. Not enough for pool spray, but not
necessary anyway  repeat!!
3. avoiding memory pressure as side
effect!
NEW POOL SPRAY!
NO MEMORY PRESSURE!
CONTROLLED DATA!
SPRAY Implementation
Why design matter #1
VULN IMPLEMENTATION
Why design matter #2
Overflows vs Kernel Pool
SLUB
Randomization
but chosen
mainly from
last SLAB
SLAB organized
by size
similar sized
objects
covered by
same SLAB
Probe and pwn!
1. choose two semi-controlled
objects
2. Target and Victim
3. Should cover same SLAB
4. Full many SLABs by target
5. Free one target per SLAB
6. Try to fill holes by victim
7. Trigger over/under flow from
victim to hit target
8. pwn
memory object separation
• Linux kernel – caches
• many times object specific cache
• But cache can be fully filled as well
• Then need to allocate new one
• Reallocation cache can be played with!
• Not so easy as with normal objects, but doable ..
• Windows kernel – sessions
• Many powerful objects in same session
• Choose one of them & pwn
POWER lies in DESIGN
Full control about
kmalloc & kfree
Control (at least
semi!) about the
object content
Objects contains
plain *pointers* and
members
No integrity checks
on member state
No effective sentinels
(page_noaccess)
between objects /
memory chunks even
on 64bit!
Limited
Randomization -
everytime same
chunk base
http://www.slideshare.net/
PeterHlavaty/back-to-the-core
SPLICE not done yet …
Whats COVERED BY PRESO
 Race no problem
 Reduced overflow to 2
buffers (vec, pages)
 Spray to fill data to
controlled state
 Play with SLUB
TODO
OWN-RESEARCH
 WHAT is our
TARGET ?
 EXEC ?
 PXN ?
 PAN & arm64 ?
Hint : kmalloc and pipe_set_size
 We set sizes for kmalloc trough
pipe_set_size
 pipe_set_size (->buffers) is limited
to some sizes
 1, 2, 4, 8, 0x10, 0x20,
0x40, 0x80, 0x100
 That’s all!
 We are not interested in content of
pipe, just about pipe->buffers,
because …
 kmalloc take those sizes and
multiply by siozeof(iovec) !
 On kmalloc goes only sizes :
 0x20, 0x40, 0x80, 0x100
 Results in following kmallocs :
0x80, 0x100, 0x200, 0x400
 Here is necessary some techs!
 For TTY was used tty_buffer,
size in 0x400 SLAB, cool!
 But magic there, and we scatter it
because of pattern
{ KERNEL PTR, 0x1000 }
 Some other candidates ?
btw.
Software Security!
.. tale about calculator : how some guys protect others ..
Attack chain
• Social
engineering
• Vulnerability
Attack vector
• Killing 0days
proactive
solution!
Prevent to
automatic install
malware • Cure after-
effects
Dissecting
malware
If proactive fails
Targeted attack here won already!
Aftermath
Low hanging fruits
Poping calcs
Good luck …
https://twitter.com/JohnLaTwC/status/601101229939294208/photo/1
.. shameless plug ..
#whoarewe
KEEN TEAM - TIMELINE
2010前 2010.7
2010-
2012
Pwn2Own 2013 Pwn2own 2014
Emergency
experts
Global Platinum prize
XP Guard Security
Alliance
GeekPwn 2014
Evaluation
CNMSRC
founding team
2013.11 2014.2 2014.3 2014.10
Project Zero
2014.12
Tesla
recognition
2014.11
Pwn2Own 2015
2015.3 2015.4
CodeGate CTF – 0ops
KEEN TEAM - GEEKS
http://forum.xda-developers.com/galaxy-s6/general/
root-pingpongroot-s6-root-tool-t3103016/post60600131
PINGP0NG ROOT
wushi (@team509)
memeda (@antlr7)
idl3r (xda : idler1984)
Qoobee (@EvilLeoC)
@K33nTeam
KEEN TEAM - TECHNIQUES
Isolated heap bypass [ blog – MS14-056 ]
CC-shellcoding framework [ nosuchcon ]
Webkit exploitation [ cansecwest ]
VadRoot (vm_area) + PageTable pwn [ syscan ]
Pool spray tech [ confidence ]
1bit flip - kernel escape (kernel code exec) [ recon ]
KEEN TEAM - KNOWLEDGE
* multiple presentations on chinese domestic conferences & lectures at universities not listed here
ten months highlights
10.24.2015
Pick a device, name your own challenge!
Thank You!
Q & A
@K33nTeam
hr (at) keencloudtech.com
We are hiring! :)Interns wanted!

Más contenido relacionado

La actualidad más candente

Vulnerability desing patterns
Vulnerability desing patternsVulnerability desing patterns
Vulnerability desing patternsPeter Hlavaty
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon chinaPeter Hlavaty
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODEPeter Hlavaty
 
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
 
DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelPeter Hlavaty
 
Memory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMMemory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMPositive Hack Days
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Pythoninfodox
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheelsinfodox
 
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacDefcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacPriyanka Aash
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Shota Shinogi
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitJiahong Fang
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashinfodox
 
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camDefcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camPriyanka Aash
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Liang Chen
 
Practical Windows Kernel Exploitation
Practical Windows Kernel ExploitationPractical Windows Kernel Exploitation
Practical Windows Kernel ExploitationzeroSteiner
 
Modern Evasion Techniques
Modern Evasion TechniquesModern Evasion Techniques
Modern Evasion TechniquesJason Lang
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Jeremy Brown
 

La actualidad más candente (20)

Attack on the Core
Attack on the CoreAttack on the Core
Attack on the Core
 
Vulnerability desing patterns
Vulnerability desing patternsVulnerability desing patterns
Vulnerability desing patterns
 
Back to the CORE
Back to the COREBack to the CORE
Back to the CORE
 
Security research over Windows #defcon china
Security research over Windows #defcon chinaSecurity research over Windows #defcon china
Security research over Windows #defcon china
 
Guardians of your CODE
Guardians of your CODEGuardians of your CODE
Guardians of your CODE
 
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
 
DeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows KernelDeathNote of Microsoft Windows Kernel
DeathNote of Microsoft Windows Kernel
 
Memory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMMMemory Corruption: from sandbox to SMM
Memory Corruption: from sandbox to SMM
 
Steelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with PythonSteelcon 2014 - Process Injection with Python
Steelcon 2014 - Process Injection with Python
 
BSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on WheelsBSides Hannover 2015 - Shell on Wheels
BSides Hannover 2015 - Shell on Wheels
 
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacDefcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
 
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
Introduction of ShinoBOT (Black Hat USA 2013 Arsenal)
 
How to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One ExploitHow to Root 10 Million Phones with One Exploit
How to Root 10 Million Phones with One Exploit
 
Steelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trashSteelcon 2015 - 0wning the internet of trash
Steelcon 2015 - 0wning the internet of trash
 
Packers
PackersPackers
Packers
 
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop camDefcon 22-colby-moore-patrick-wardle-synack-drop cam
Defcon 22-colby-moore-patrick-wardle-synack-drop cam
 
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
Us 16-subverting apple-graphics_practical_approaches_to_remotely_gaining_root...
 
Practical Windows Kernel Exploitation
Practical Windows Kernel ExploitationPractical Windows Kernel Exploitation
Practical Windows Kernel Exploitation
 
Modern Evasion Techniques
Modern Evasion TechniquesModern Evasion Techniques
Modern Evasion Techniques
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
 

Destacado

50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco GrassiShakacon
 
Designing and Attacking DRM (RSA 2008)
Designing and Attacking DRM (RSA 2008)Designing and Attacking DRM (RSA 2008)
Designing and Attacking DRM (RSA 2008)Nate Lawson
 
Find your own iOS kernel bug
Find your own iOS kernel bugFind your own iOS kernel bug
Find your own iOS kernel bugGustavo Martinez
 
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and Entitlements
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and EntitlementsRuxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and Entitlements
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and EntitlementsStefan Esser
 
Vijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath
 
Csw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromisedCsw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromisedCanSecWest
 
Targeting the iOS kernel
Targeting the iOS kernelTargeting the iOS kernel
Targeting the iOS kernelSeguridad Apple
 
Moony li pacsec-1.8
Moony li pacsec-1.8Moony li pacsec-1.8
Moony li pacsec-1.8PacSecJP
 
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCanSecWest
 
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IPSyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IPStefan Esser
 
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCanSecWest
 
CSW2017 Qidan he+Gengming liu_cansecwest2017
CSW2017 Qidan he+Gengming liu_cansecwest2017CSW2017 Qidan he+Gengming liu_cansecwest2017
CSW2017 Qidan he+Gengming liu_cansecwest2017CanSecWest
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 

Destacado (15)

50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
 
Designing and Attacking DRM (RSA 2008)
Designing and Attacking DRM (RSA 2008)Designing and Attacking DRM (RSA 2008)
Designing and Attacking DRM (RSA 2008)
 
Find your own iOS kernel bug
Find your own iOS kernel bugFind your own iOS kernel bug
Find your own iOS kernel bug
 
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and Entitlements
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and EntitlementsRuxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and Entitlements
Ruxcon 2014 - Stefan Esser - iOS8 Containers, Sandboxes and Entitlements
 
Vijay Amarnath - Updated
Vijay Amarnath - UpdatedVijay Amarnath - Updated
Vijay Amarnath - Updated
 
Csw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromisedCsw2016 chen grassi-he-apple_graphics_is_compromised
Csw2016 chen grassi-he-apple_graphics_is_compromised
 
Targeting the iOS kernel
Targeting the iOS kernelTargeting the iOS kernel
Targeting the iOS kernel
 
Moony li pacsec-1.8
Moony li pacsec-1.8Moony li pacsec-1.8
Moony li pacsec-1.8
 
VMware Presentation
VMware PresentationVMware Presentation
VMware Presentation
 
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
 
Smart TV Insecurity
Smart TV InsecuritySmart TV Insecurity
Smart TV Insecurity
 
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IPSyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
 
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
 
CSW2017 Qidan he+Gengming liu_cansecwest2017
CSW2017 Qidan he+Gengming liu_cansecwest2017CSW2017 Qidan he+Gengming liu_cansecwest2017
CSW2017 Qidan he+Gengming liu_cansecwest2017
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 

Similar a When is something overflowing

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
 
Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4Digital Bond
 
About Multiblock Reads v4
About Multiblock Reads v4About Multiblock Reads v4
About Multiblock Reads v4Enkitec
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHackito Ergo Sum
 
Size of in java
Size of in javaSize of in java
Size of in javalorban
 
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...chen yuki
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performancepradeepfn
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploitTiago Henriques
 
DefCon 2012 - Rooting SOHO Routers
DefCon 2012 - Rooting SOHO RoutersDefCon 2012 - Rooting SOHO Routers
DefCon 2012 - Rooting SOHO RoutersMichael Smith
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and PerformanceWSO2
 
Ceph Performance and Optimization - Ceph Day Frankfurt
Ceph Performance and Optimization - Ceph Day Frankfurt Ceph Performance and Optimization - Ceph Day Frankfurt
Ceph Performance and Optimization - Ceph Day Frankfurt Ceph Community
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2ice799
 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraMathias Karlsson
 
I know why your Java is slow
I know why your Java is slowI know why your Java is slow
I know why your Java is slowaragozin
 
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE
 

Similar a When is something overflowing (20)

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
 
Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4Project Basecamp: News From Camp 4
Project Basecamp: News From Camp 4
 
Failure Of DEP And ASLR
Failure Of DEP And ASLRFailure Of DEP And ASLR
Failure Of DEP And ASLR
 
About Multiblock Reads v4
About Multiblock Reads v4About Multiblock Reads v4
About Multiblock Reads v4
 
Eusecwest
EusecwestEusecwest
Eusecwest
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
 
Size of in java
Size of in javaSize of in java
Size of in java
 
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...
2013 syscan360 yuki_chen_syscan360_exploit your java native vulnerabilities o...
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
EhTrace -- RoP Hooks
EhTrace -- RoP HooksEhTrace -- RoP Hooks
EhTrace -- RoP Hooks
 
Vulnerability, exploit to metasploit
Vulnerability, exploit to metasploitVulnerability, exploit to metasploit
Vulnerability, exploit to metasploit
 
DefCon 2012 - Rooting SOHO Routers
DefCon 2012 - Rooting SOHO RoutersDefCon 2012 - Rooting SOHO Routers
DefCon 2012 - Rooting SOHO Routers
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Debugging ZFS: From Illumos to Linux
Debugging ZFS: From Illumos to LinuxDebugging ZFS: From Illumos to Linux
Debugging ZFS: From Illumos to Linux
 
Surge2012
Surge2012Surge2012
Surge2012
 
Ceph Performance and Optimization - Ceph Day Frankfurt
Ceph Performance and Optimization - Ceph Day Frankfurt Ceph Performance and Optimization - Ceph Day Frankfurt
Ceph Performance and Optimization - Ceph Day Frankfurt
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
Polyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPraPolyglot payloads in practice by avlidienbrunn at HackPra
Polyglot payloads in practice by avlidienbrunn at HackPra
 
I know why your Java is slow
I know why your Java is slowI know why your Java is slow
I know why your Java is slow
 
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇACODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
CODE BLUE 2014 : BadXNU, A rotten apple! by PEDRO VILAÇA
 

Último

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburgmasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benonimasabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 

Último (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

When is something overflowing

  • 2.  Log  PoC  Bug  More problems Stack overflow  Buffer overflow  Overflowing too much  No data problem  Memory pools and SLUB  introduction 一步一步
  • 3. #trinity #race condition #2012 #< 3.4.67 #most of droids 2014 https://lkml.org/lkml/2012/6/6/713 Date => Wed, 6 Jun 2012 22:51:17 - 0400 From => Dave Jones <> Subject => vmsplice triggering bug in kfree.
  • 4. PoC https://lkml.org/lkml/2012/6/7/156 RACE:  fcntl => pipe_set_size  vmsplice / splice => do_splice
  • 5.  Multiple access to pipe->buffers  No locks present  Fast alloc => from stack  Big alloc => from heap  Race to confuse its origin! BUG - RACE
  • 6. not one function issue only!
  • 8.
  • 9. Stack overflow options 1. No canaries! 2. Attack LR => PC 3. Target params! 4. Target locals 5. … 6. Fail on splice shrink 
  • 10. Stack attack revival !! 1. Lets pipe->buffers be small == stack alloc 2. Race pie->buffers before kmalloc to vec => aka vec = kmalloc 3. Race again, before splice shrink! 4. Pwn stack by spd.pages! 5. … 6. Need to handle with stack layout per ROM, sometimes not possible – aka bad layout 7. FAIL most of time, 2 races in short time! 99.9999999%
  • 12. BUFFER OVERFLOW @kernel pool, @SLUB, @pipe_set_size, @kmalloc
  • 13. Lets do pool overflow! (SLUB) Tactic 1. pipe->buffers > PIPE_DEF_BUFFERS means no panic if kfree! 2. race pipe->buffers to be bigger than passed to kmalloc means overflow 3. read our controlled content (kernel_readv) 4. pwn some adjacent data to kmalloced buffer ptr is kernel one, but data are controlled problems 1. we overflow with IOVEC structure!! { KERNEL PTR, 0x1000 } No so cool controlled, but still controlled enough! 2. we do kmalloc followed by overflow means, targeted buffer should be positioned already! kmalloc should return memory right before targeted buffer 3. we do kmalloc not only for VEC buffer! Multiple overflows! Multiple chances to panic!
  • 14. DEFAULT FILE SPLICE READ struct iovec *vec; struct splice_pipe_desc { struct page **pages; struct partial_page *partial; … } POSSIBLE TO EXIT SOONER! ”/dev/null” GOOD : Reduce overflowing buffers - vec  struct iovec (size == 8) - spd.pages  struct page (size == 4) BAD : different SLAB => not following buffers, overflow something different => kfree_skb problem!!
  • 15. BUT ! DATA CONTENT PROBLEM ! Wtf, we exit too soon due to error on data read, no controlled data anymore ?
  • 16. NEW POOL SPRAY ? default_file_splice_read .. AGAIN ..
  • 17. POOL SPRAY NOT SO EASY 1. You have to ship data to pipe 2. With splice 3. Splice have to use default_file_splice_read 4. /dev/ptmx a.k.a TTY  5. You can to load data to TTY 6. Splice to pipe 7. Read from pipe 1. We have just limited number of TTY == 0x1fd to be exact 2. Not enough for pool spray, but not necessary anyway  repeat!! 3. avoiding memory pressure as side effect!
  • 18. NEW POOL SPRAY! NO MEMORY PRESSURE! CONTROLLED DATA!
  • 21. Overflows vs Kernel Pool SLUB Randomization but chosen mainly from last SLAB SLAB organized by size similar sized objects covered by same SLAB
  • 22. Probe and pwn! 1. choose two semi-controlled objects 2. Target and Victim 3. Should cover same SLAB 4. Full many SLABs by target 5. Free one target per SLAB 6. Try to fill holes by victim 7. Trigger over/under flow from victim to hit target 8. pwn
  • 23. memory object separation • Linux kernel – caches • many times object specific cache • But cache can be fully filled as well • Then need to allocate new one • Reallocation cache can be played with! • Not so easy as with normal objects, but doable .. • Windows kernel – sessions • Many powerful objects in same session • Choose one of them & pwn
  • 24. POWER lies in DESIGN Full control about kmalloc & kfree Control (at least semi!) about the object content Objects contains plain *pointers* and members No integrity checks on member state No effective sentinels (page_noaccess) between objects / memory chunks even on 64bit! Limited Randomization - everytime same chunk base http://www.slideshare.net/ PeterHlavaty/back-to-the-core
  • 25. SPLICE not done yet … Whats COVERED BY PRESO  Race no problem  Reduced overflow to 2 buffers (vec, pages)  Spray to fill data to controlled state  Play with SLUB TODO OWN-RESEARCH  WHAT is our TARGET ?  EXEC ?  PXN ?  PAN & arm64 ?
  • 26. Hint : kmalloc and pipe_set_size  We set sizes for kmalloc trough pipe_set_size  pipe_set_size (->buffers) is limited to some sizes  1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80, 0x100  That’s all!  We are not interested in content of pipe, just about pipe->buffers, because …  kmalloc take those sizes and multiply by siozeof(iovec) !  On kmalloc goes only sizes :  0x20, 0x40, 0x80, 0x100  Results in following kmallocs : 0x80, 0x100, 0x200, 0x400  Here is necessary some techs!  For TTY was used tty_buffer, size in 0x400 SLAB, cool!  But magic there, and we scatter it because of pattern { KERNEL PTR, 0x1000 }  Some other candidates ?
  • 27. btw. Software Security! .. tale about calculator : how some guys protect others ..
  • 28. Attack chain • Social engineering • Vulnerability Attack vector • Killing 0days proactive solution! Prevent to automatic install malware • Cure after- effects Dissecting malware If proactive fails Targeted attack here won already!
  • 29. Aftermath Low hanging fruits Poping calcs Good luck …
  • 31. .. shameless plug .. #whoarewe
  • 32. KEEN TEAM - TIMELINE 2010前 2010.7 2010- 2012 Pwn2Own 2013 Pwn2own 2014 Emergency experts Global Platinum prize XP Guard Security Alliance GeekPwn 2014 Evaluation CNMSRC founding team 2013.11 2014.2 2014.3 2014.10 Project Zero 2014.12 Tesla recognition 2014.11 Pwn2Own 2015 2015.3 2015.4 CodeGate CTF – 0ops
  • 33. KEEN TEAM - GEEKS http://forum.xda-developers.com/galaxy-s6/general/ root-pingpongroot-s6-root-tool-t3103016/post60600131 PINGP0NG ROOT wushi (@team509) memeda (@antlr7) idl3r (xda : idler1984) Qoobee (@EvilLeoC) @K33nTeam
  • 34. KEEN TEAM - TECHNIQUES Isolated heap bypass [ blog – MS14-056 ] CC-shellcoding framework [ nosuchcon ] Webkit exploitation [ cansecwest ] VadRoot (vm_area) + PageTable pwn [ syscan ] Pool spray tech [ confidence ] 1bit flip - kernel escape (kernel code exec) [ recon ]
  • 35. KEEN TEAM - KNOWLEDGE * multiple presentations on chinese domestic conferences & lectures at universities not listed here ten months highlights
  • 36. 10.24.2015 Pick a device, name your own challenge!
  • 37. Thank You! Q & A @K33nTeam hr (at) keencloudtech.com We are hiring! :)Interns wanted!