[28386] 2020-07-02_QEMU信息脆弱性CVE-2015-5165分析及利用

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-19
2020-07-02_QEMU信息脆弱性CVE-2015-5165分析及利用 Q E M U C V E - 2 0 1 5 - 5 1 6 5 P o s t e d   o n   O t s   2 0 2 0 - 0 7 - 0 2 P h r a c k V M   E s c a p e -   Q E M U   [ 1 ] Q E M U C V E - 2 0 1 5 - 5 1 6 5 C V E - 2 0 1 5 - 7 5 0 4 E x p l o i t R T L 8 1 3 9   - 2 0 1 5 - 5 1 6 5 0 x 0 1 1 . 1 V M w a r e   W o r k s t a t i o n U b u n t u   2 0 . 0 4 C P U 使 Q E M U U b u n t u Q E M U P y t h o n   2 U b u n t u   2 0 . 0 4 P y t h o n   3 P y t h o n   2 Q E M U 1 $   s u d o   a p t - g e t   i n s t a l l   z l i b 1 g - d e v   l i b g l i b 2 . 0 - d e v   l i b p i x m a n - 1 - d e v 1 . 2   Q E M U 1 2 3 4 5 6 7 8 $   g i t   c l o n e   g i t / / g i t . q e m u - p r o j e c t . o r g / q e m u . g i t $   c d   q e m u $   g i t   c h e c k o u t   b d 8 0 b 5 9 $   m k d i r   - p   b i n   /   d e b u g   /   n a t i v e $   c d   b i n   /   d e b u g   /   n a t i v e $   . . / . . /   . .   /   c o n f i g u r e   - - t a r g e t - l i s t   =   x 8 6 _ 6 4 - s o f t m m u           - - e n a b l e - d e b u g   - - d i s a b l e - w e r r o r $   m a k e [ 2 ] $   s u d o   a p t - g e t   u p d a t e $   s u d o   a p t - g e t   u p g r a d e $   s u d o   a p t - g e t   i n s t a l l   p y t h o n 2 $   s u d o   l n   - s   / u s r / b i n / p y t h o n 2   / u s r / b i n / p y t h o n c o m m a n d s - p o s i x . c < s y s / s y s m a c r o s . h > / u s r / b i n / l d :   q g a / c o m m a n d s - p o s i x . o :   i n   f u n c t i o n   ` d e v _ m a j o r _ m i n o r ' : / r e p o / q e m u / q g a / c o m m a n d s - p o s i x . c : 6 4 0 :   u n d e f i n e d   r e f e r e n c e   t o   ` m a j o r ' / u s r / b i n / l d :   / r e p o / q e m u / q g a / c o m m a n d s - p o s i x . c : 6 4 1 :   u n d e f i n e d   r e f e r e n c e   t o   ` m i n o r '
1 . 3 Q E M U 便 U b u n t u   2 0 . 0 4   S e r v e r U b u n t u   S e r v e r 3 2 3 2 P o C E x p l o i t 3 2 [ 3 ] V N C   V i e w e r   [ 4 ] 访 d e b 使 1 $   s u d o   d p k g   - i   V N C - V i e w e r - 6 . 2 0 . 5 2 9 - L i n u x - x 6 4 . d e b V N C   V i e w e r 访 0 x 0 2 H o s t G u e s t G u e s t   V i r t u a l   A d d r e s s G V A P a g e T a b l e G u e s t G V A G P A 访 G u e s t G P A Q E M U H V A H P A   U b u n t u   S e r v e r 1 2 $   x 8 6 _ 6 4 - s o f t m m u   /   q e m u - s y s t e m - x 8 6 _ 6 4   - e n a b l e - k v m   - m   2 0 4 8   - d r i v e           f i l e   = /   D e s k t o p   /   v m   /   u b u n t u . i m g f o r m a t   =   q c o w 2 i f   =   i d e c a c h e   =   w r i t e b a c k 2 G B Q E M U 访 P h r a c k [ 5 ] 6 4 1 .   $   . / q e m u - i m g   c r e a t e   - f   q c o w 2   ~ / D e s k t o p / v m / u b u n t u . i m g   1 0 G $   x 8 6 _ 6 4 - s o f t m m u / q e m u - s y s t e m - x 8 6 _ 6 4   - e n a b l e - k v m   - b o o t   d   - c d r o m           / m n t / h g f s / s h a r e / u b u n t u - 2 0 . 0 4 - l i v e - s e r v e r - a m d 6 4 . i s o           - h d a   ~ / D e s k t o p / v m / u b u n t u . i m g   - m   1 0 2 4 $   p s   - e | g r e p   q e m u       4 4 0 7   p t s / 1         0 0 : 0 1 : 1 4   q e m u - s y s t e m - x 8 6 $   c a t   / p r o c / 4 4 0 7 / m a p s . . . . . . 7 f e 8 8 0 0 2 1 0 0 0 - 7 f e 8 8 4 0 0 0 0 0 0   - - - p   0 0 0 0 0 0 0 0   0 0 : 0 0   0   7 f e 8 8 4 0 0 0 0 0 0 - 7 f e 9 0 4 0 0 0 0 0 0   r w - p   0 0 0 0 0 0 0 0   0 0 : 0 0   0                   [ 2 G B   R A M ] 7 f e 9 0 4 0 0 0 0 0 0 - 7 f e 9 0 4 6 5 d 0 0 0   r w - p   0 0 0 0 0 0 0 0   0 0 : 0 0   0   . . . . . . 7 f f c 9 f 4 a 1 0 0 0 - 7 f f c 9 f 4 c 2 0 0 0   r w - p   0 0 0 0 0 0 0 0   0 0 : 0 0   0                   [ s t a c k ] 7 f f c 9 f 4 f d 0 0 0 - 7 f f c 9 f 5 0 0 0 0 0   r - - p   0 0 0 0 0 0 0 0   0 0 : 0 0   0                   [ v v a r ] 7 f f c 9 f 5 0 0 0 0 0 - 7 f f c 9 f 5 0 1 0 0 0   r - x p   0 0 0 0 0 0 0 0   0 0 : 0 0   0                   [ v d s o ] f f f f f f f f f f 6 0 0 0 0 0 - f f f f f f f f f f 6 0 1 0 0 0   - - x p   0 0 0 0 0 0 0 0   0 0 : 0 0   0   [ v s y s c a l l ] 4 0 9 6
2 .   P F N V i r t u a l   P a g e 3 .   4 .   5 .   P F N 1   < <   1 2 / p r o c / p i d / p a g e m a p p a g e m a p 6 4 8 B i t s   0 - 5 4     p a g e   f r a m e   n u m b e r   ( P F N )   i f   p r e s e n t B i t s   0 - 4       s w a p   t y p e   i f   s w a p p e d B i t s   5 - 5 4     s w a p   o f f s e t   i f   s w a p p e d B i t     5 5         p t e   i s   s o f t - d i r t y B i t     5 6         p a g e   e x c l u s i v e l y   m a p p e d   ( s i n c e   4 . 2 ) B i t s   5 7 - 6 0   z e r o B i t     6 1         p a g e   i s   f i l e - p a g e   o r   s h a r e d - a n o n   ( s i n c e   3 . 5 ) B i t     6 2         p a g e   s w a p p e d B i t     6 3         p a g e   p r e s e n t a d d r e s s a d d r e s s   /   4 0 9 6 p a g e m a p a d d r e s s   /   4 0 9 6   *   8 a d d r e s s a d d r e s s   %   4 0 9 6 # 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 t r i n g . h > # i n c l u d e   < i n t t y p e s . h >
[ 6 ] P F N P F N # i n c l u d e   < i n t t y p e s . h > # d e f i n e   P A G E _ S H I F T     1 2 # d e f i n e   P A G E _ S I Z E       ( 1   < <   P A G E _ S H I F T ) # d e f i n e   P F N _ P R E S E N T   ( 1 u l l   < <   6 3 ) # d e f i n e   P F N _ P F N           ( ( 1 u l l   < <   5 5 )   -   1 ) u i n t 6 4 _ t   g e t _ p h y s i c a l _ p f n ( c h a r *   p t r )   {         u i n t 6 4 _ t   p f n   =   - 1 ;         F I L E *   f p   =   f o p e n ( " / p r o c / s e l f / p a g e m a p " ,   " r b " ) ;         i f   ( ! f p )           {                 r e t u r n   p f n ;         }                 i f   ( ! f s e e k ( f p ,   ( u n s i g n e d   l o n g ) p t r   /   P A G E _ S I Z E   *   8 ,   S E E K _ S E T ) )           {                 f r e a d ( & p f n ,   s i z e o f ( p f n ) ,   1 ,   f p ) ;                 i f   ( p f n   &   P F N _ P R E S E N T )                   {                         p f n   & =   P F N _ P F N ;                 }         }         f c l o s e ( f p ) ;         r e t u r n   p f n ; } u i n t 6 4 _ t   g e t _ p h y s i c a l _ a d d r ( c h a r *   p t r )   {         u i n t 6 4 _ t   p f n   =   g e t _ p h y s i c a l _ p f n ( p t r ) ;         r e t u r n   p f n   *   P A G E _ S I Z E   +   ( u i n t 6 4 _ t ) p t r   %   P A G E _ S I Z E ; } 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 *   p t r   =   ( c h a r * ) m a l l o c ( 2 5 6 ) ;         s t r c p y ( p t r ,   " W h e r e   a m   I ? " ) ;         p r i n t f ( " % s n " ,   p t r ) ;         p r i n t f ( " P h y s i c a l   a d d r e s s :   0 x % "   P R I x 6 4   " n " ,   g e t _ p h y s i c a l _ a d d r ( p t r ) ) ;         p r i n t f ( " P r e s s   a n y   k e y   t o   e x i t . . . n " ) ;         g e t c h a r ( ) ;         f r e e ( p t r ) ;                 r e t u r n   0 ; } C A P _ S Y S _ A D M I N p a g e m a p 0
L i n u x   4 . 0 C A P _ S Y S _ A D M I N P F N 4 . 0 4 . 1 - E P E R M 4 . 2   C A P _ S Y S _ A D M I N P F N P F N R o w h a m m e r Q E M U 使 G D B Q E M U Q E M U 0 x 0 3 3 . 1 C V E - 2 0 1 5 - 5 1 6 5 Q E M U R e a l t e k   R T L 8 1 3 9 I P I P 3 . 2 3 . 2 . 1 O S I r o o t 0 x 6 1 7 1 9 2 a 0 $   s u d o   . / a . o u t W h e r e   a m   I ? P h y s i c a l   a d d r e s s :   0 x 6 1 7 1 9 2 a 0 P r e s s   a n y   k e y   t o   e x i t . . . $   s u d o   g d b   q e m u - s y s t e m - x 8 6   4 4 0 7 ( g d b )   x   / s   0 x 7 f e 8 8 4 0 0 0 0 0 0   +   0 x 6 1 7 1 9 2 a 0 0 x 7 f e 8 e 5 7 1 9 2 a 0 :     " W h e r e   a m   I ? " h w n e t r t l 8 1 3 9 . c r t l 8 1 3 9 _ c p l u s _ t r a n s m i t _ o n e h l e n i p - > i p _ l e n / * u i n t 1 6 _ t * /   i p _ d a t a _ l e n   =   b e 1 6 _ t o _ c p u ( i p - > i p _ l e n )   -   h l e n ;
E t h e r n e t   F r a m e [ 7 ] D S T   /   S R C     /     M A C   L e n g t h   /   T y p e       P a y l o a d     P a y l o a d   使       I P     I P v 4 P a y l o a d     M T U M a x i m u m   T r a n s m i s s i o n   U n i t       M T U   3 . 2 . 2   I P   P a c k e t   F o r m a t I P     I P v 4   [ 7 ] 1 5 0 0 0 x 0 8 0 0 1 5 0 0
I H L I n t e r n e t   H e a d e r   L e n g t h   I P   H e a d e r       T o t a l   L e n g t h     I P   P a c k e t       I P   D a t a         I P   H e a d e r       O p t i o n s       3 . 2 . 3   T C P   S e g m e n t   F o r m a t T C P     [ 7 ] 0 b 1 1 1 1   *   4   =   6 0 6 5 5 3 5 6 5 5 3 5   -   2 0   =   6 5 5 1 5 2 0 0
  I P   T C P                   3 . 3           H e a d e r   L e n g t h 0 b 1 1 1 1   *   4   =   6 0 O p t i o n s 2 0 h w n e t r t l 8 1 3 9 . c r t l 8 1 3 9 _ c p l u s _ t r a n s m i t _ o n e # d e f i n e   E T H E R _ A D D R _ L E N   6 # d e f i n e   E T H E R _ T Y P E _ L E N   2 # d e f i n e   E T H _ H L E N   ( E T H E R _ A D D R _ L E N   *   2   +   E T H E R _ T Y P E _ L E N ) # d e f i n e   E T H _ P _ I P         0 x 0 8 0 0             / *   I n t e r n e t   P r o t o c o l   p a c k e t   * / # d e f i n e   E T H _ P _ 8 0 2 1 Q   0 x 8 1 0 0             / *   8 0 2 . 1 Q   V L A N   E x t e n d e d   H e a d e r     * / # d e f i n e   E T H _ M T U           1 5 0 0 / *   i p   p a c k e t   h e a d e r   * / i p _ h e a d e r   * i p   =   N U L L ; i n t   h l e n   =   0 ; u i n t 8 _ t     i p _ p r o t o c o l   =   0 ; u i n t 1 6 _ t   i p _ d a t a _ l e n   =   0 ; u i n t 8 _ t   * e t h _ p a y l o a d _ d a t a   =   N U L L ;
  E t h e r n e t   F r a m e     I P v 4     I P   使           T C P             I P           s i z e _ t       e t h _ p a y l o a d _ l e n     =   0 ; / /   s a v e d _ b u f f e r     E t h e r n e t   F r a m e ,     L e n g t h / T y p e   i n t   p r o t o   =   b e 1 6 _ t o _ c p u ( * ( u i n t 1 6 _ t   * ) ( s a v e d _ b u f f e r   +   1 2 ) ) ; i f   ( p r o t o   = =   E T H _ P _ I P )     / /   P a y l o a d     I P   P a c k e t {         D P R I N T F ( " + + +   C +   m o d e   h a s   I P   p a c k e t n " ) ;         / *   n o t   a l i g n e d   * /         e t h _ p a y l o a d _ d a t a   =   s a v e d _ b u f f e r   +   E T H _ H L E N ;   / /   P a y l o a d           e t h _ p a y l o a d _ l e n     =   s a v e d _ s i z e       -   E T H _ H L E N ;   / /   P a y l o a d           i p   =   ( i p _ h e a d e r * ) e t h _ p a y l o a d _ d a t a ;                     / /   I P   P a c k e t         / /     I P v 4         i f   ( I P _ H E A D E R _ V E R S I O N ( i p )   ! =   I P _ H E A D E R _ V E R S I O N _ 4 )   {                 D P R I N T F ( " + + +   C +   m o d e   p a c k e t   h a s   b a d   I P   v e r s i o n   % d   "                         " e x p e c t e d   % d n " ,   I P _ H E A D E R _ V E R S I O N ( i p ) ,                         I P _ H E A D E R _ V E R S I O N _ 4 ) ;                 i p   =   N U L L ;         }   e l s e   {                 h l e n   =   I P _ H E A D E R _ L E N G T H ( i p ) ;                         / /   I P                   i p _ p r o t o c o l   =   i p - > i p _ p ;                 / /     I P   ,     i p _ d a t a _ l e n     u i n t 1 6 _ t                 / /     b e 1 6 _ t o _ c p u ( i p - > i p _ l e n )   <   h l e n                   / /   i p _ d a t a _ l e n     0 x F F F F                 i p _ d a t a _ l e n   =   b e 1 6 _ t o _ c p u ( i p - > i p _ l e n )   -   h l e n ;         } } i p _ d a t a _ l e n 0 x F F F F I P _ P R O T O _ T C P C P _ T X _ L G S E N i p _ d a t a _ l e n t c p _ d a t a _ l e n / *   p o i n t e r   t o   T C P   h e a d e r   * / t c p _ h e a d e r   * p _ t c p _ h d r   =   ( t c p _ h e a d e r * ) ( e t h _ p a y l o a d _ d a t a   +   h l e n ) ; i n t   t c p _ h l e n   =   T C P _ H E A D E R _ D A T A _ O F F S E T ( p _ t c p _ h d r ) ;
        / *   E T H _ M T U   =   i p   h e a d e r   l e n   +   t c p   h e a d e r   l e n   +   p a y l o a d   * / i n t   t c p _ d a t a _ l e n   =   i p _ d a t a _ l e n   -   t c p _ h l e n ; i n t   t c p _ c h u n k _ s i z e   =   E T H _ M T U   -   h l e n   -   t c p _ h l e n ; t c p _ d a t a _ l e n t c p _ c h u n k _ s i z e i n t   i s _ l a s t _ f r a m e   =   0 ; f o r   ( t c p _ s e n d _ o f f s e t   =   0 ;   t c p _ s e n d _ o f f s e t   <   t c p _ d a t a _ l e n ;             t c p _ s e n d _ o f f s e t   + =   t c p _ c h u n k _ s i z e )   {         u i n t 1 6 _ t   c h u n k _ s i z e   =   t c p _ c h u n k _ s i z e ;         / *   c h e c k   i f   t h i s   i s   t h e   l a s t   f r a m e   * /         i f   ( t c p _ s e n d _ o f f s e t   +   t c p _ c h u n k _ s i z e   > =   t c p _ d a t a _ l e n )         {                 i s _ l a s t _ f r a m e   =   1 ;                 c h u n k _ s i z e   =   t c p _ d a t a _ l e n   -   t c p _ s e n d _ o f f s e t ;         }         / *   a d d   4   T C P   p s e u d o h e a d e r   f i e l d s   * /         / *   c o p y   I P   s o u r c e   a n d   d e s t i n a t i o n   f i e l d s   * /         m e m c p y ( d a t a _ t o _ c h e c k s u m ,   s a v e d _ i p _ h e a d e r   +   1 2 ,   8 ) ;         i f   ( t c p _ s e n d _ o f f s e t )         {                 m e m c p y ( ( u i n t 8 _ t * ) p _ t c p _ h d r   +   t c p _ h l e n ,                           ( u i n t 8 _ t * ) p _ t c p _ h d r   +   t c p _ h l e n   +   t c p _ s e n d _ o f f s e t ,   c h u n k _ s i z e ) ;         }         / *   k e e p   P U S H   a n d   F I N   f l a g s   o n l y   f o r   t h e   l a s t   f r a m e   * /         i f   ( ! i s _ l a s t _ f r a m e )         {                 T C P _ H E A D E R _ C L E A R _ F L A G S ( p _ t c p _ h d r ,   T C P _ F L A G _ P U S H | T C P _ F L A G _ F I N ) ;         }         / *   r e c a l c u l a t e   T C P   c h e c k s u m   * /         i p _ p s e u d o _ h e a d e r   * p _ t c p i p _ h d r   =   ( i p _ p s e u d o _ h e a d e r   * ) d a t a _ t o _ c h e c k s u m ;         p _ t c p i p _ h d r - > z e r o s             =   0 ;         p _ t c p i p _ h d r - > i p _ p r o t o       =   I P _ P R O T O _ T C P ;         p _ t c p i p _ h d r - > i p _ p a y l o a d   =   c p u _ t o _ b e 1 6 ( t c p _ h l e n   +   c h u n k _ s i z e ) ;         p _ t c p _ h d r - > t h _ s u m   =   0 ;         i n t   t c p _ c h e c k s u m   =   i p _ c h e c k s u m ( d a t a _ t o _ c h e c k s u m ,   t c p _ h l e n   +   c h u n k _ s i z e   +   1 2 ) ;         p _ t c p _ h d r - > t h _ s u m   =   t c p _ c h e c k s u m ;         / *   r e s t o r e   I P   h e a d e r   * /         m e m c p y ( e t h _ p a y l o a d _ d a t a ,   s a v e d _ i p _ h e a d e r ,   h l e n ) ;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则