[28663] 2020-12-01_利用SMBGhost(CVE-2020-0796)进行本地特权升级:Writeup+POC

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-19
2020-12-01_利用SMBGhost(CVE-2020-0796)进行本地特权升级:Writeup+POC S M B G h o s t C V E - 2 0 2 0 - 0 7 9 6 W r i t e u p   +   P O C O t s   2 0 2 0 - 1 2 - 0 1 C V E - 2 0 2 0 - 0 7 9 6 S M B v 3 . 1 . 1   S M B G h o s t W i n d o w s   1 0 1 9 0 3 1 9 0 9 M i c r o s o f t P O C B S O D D o S M i c r o s o f t R C E P O C R C E s r v 2 . s y s   S M B S r v 2 D e c o m p r e s s D a t a t y p e d e f   s t r u c t   _ C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R {         U L O N G   P r o t o c o l I d ;         U L O N G   O r i g i n a l C o m p r e s s e d S e g m e n t S i z e ;         U S H O R T   C o m p r e s s i o n A l g o r i t h m ;         U S H O R T   F l a g s ;         U L O N G   O f f s e t ; }   C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R ,   * P C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R ;   t y p e d e f   s t r u c t   _ A L L O C A T I O N _ H E A D E R {         / /   . . .         P V O I D   U s e r B u f f e r ;         / /   . . . }   A L L O C A T I O N _ H E A D E R ,   * P A L L O C A T I O N _ H E A D E R ;   N T S T A T U S   S r v 2 D e c o m p r e s s D a t a ( P C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R   H e a d e r ,   S I Z E _ T   T o t a l S i z e ) {         P A L L O C A T I O N _ H E A D E R   A l l o c   =   S r v N e t A l l o c a t e B u f f e r (                 ( U L O N G ) ( H e a d e r - > O r i g i n a l C o m p r e s s e d S e g m e n t S i z e   +   H e a d e r - > O f f s e t ) ,                 N U L L ) ;         I f   ( ! A l l o c )   {                 r e t u r n   S T A T U S _ I N S U F F I C I E N T _ R E S O U R C E S ;         }           U L O N G   F i n a l C o m p r e s s e d S i z e   =   0 ;           N T S T A T U S   S t a t u s   =   S m b C o m p r e s s i o n D e c o m p r e s s (                 H e a d e r - > C o m p r e s s i o n A l g o r i t h m ,                 ( P U C H A R ) H e a d e r   +   s i z e o f ( C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R )   +   H e a d e r - > O f f s e t ,                 ( U L O N G ) ( T o t a l S i z e   -   s i z e o f ( C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R )   -   H e a d e r - > O f f s e t ) ,                 ( P U C H A R ) A l l o c - > U s e r B u f f e r   +   H e a d e r - > O f f s e t ,                 H e a d e r - > O r i g i n a l C o m p r e s s e d S e g m e n t S i z e ,                 & F i n a l C o m p r e s s e d S i z e ) ;         i f   ( S t a t u s   <   0   | |   F i n a l C o m p r e s s e d S i z e   ! =   H e a d e r - > O r i g i n a l C o m p r e s s e d S e g m e n t S i z e )   {                 S r v N e t F r e e B u f f e r ( A l l o c ) ;                 r e t u r n   S T A T U S _ B A D _ D A T A ;         }           i f   ( H e a d e r - > O f f s e t   >   0 )   {                 m e m c p y (                         A l l o c - > U s e r B u f f e r ,                         ( P U C H A R ) H e a d e r   +   s i z e o f ( C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R ) ,                         H e a d e r - > O f f s e t ) ;
2 0 3 1 使 P O C 使 使 2 0 3 1 3 0 访 3 1 使 3 0                         H e a d e r - > O f f s e t ) ;         }           S r v 2 R e p l a c e R e c e i v e B u f f e r ( s o m e _ s e s s i o n _ h a n d l e ,   A l l o c ) ;         r e t u r n   S T A T U S _ S U C C E S S ; } S r v 2 D e c o m p r e s s D a t a O f f s e t 0 x F F F F F F F F O f f s e t 0 x F F F F F F F F
1 .   2 .   3 .   O r i g i n a l C o m p r e s s e d S e g m e n t S i z e O f f s e t O f f s e t O r i g i n a l C o m p r e s s e d S e g m e n t S i z e O r i g i n a l C o m p r e s s e d S e g m e n t S i z e
使 S r v N e t A l l o c a t e B u f f e r 1 6   M B 1   M B 使 使 S r v N e t A l l o c a t e B u f f e r P A L L O C A T I O N _ H E A D E R   S r v N e t A l l o c a t e B u f f e r ( S I Z E _ T   A l l o c S i z e ,   P A L L O C A T I O N _ H E A D E R   S o u r c e B u f f e r ) {         / /   . . .           i f   ( S r v D i s a b l e N e t B u f f e r L o o k A s i d e L i s t   | |   A l l o c S i z e   >   0 x 1 0 0 1 0 0 )   {                 i f   ( A l l o c S i z e   >   0 x 1 0 0 0 1 0 0 )   {                         r e t u r n   N U L L ;                 }                 R e s u l t   =   S r v N e t A l l o c a t e B u f f e r F r o m P o o l ( A l l o c S i z e ,   A l l o c S i z e ) ;         }   e l s e   {                 i n t   L o o k a s i d e L i s t I n d e x   =   0 ;                 i f   ( A l l o c S i z e   >   0 x 1 1 0 0 )   {                         L o o k a s i d e L i s t I n d e x   =   / *   s o m e   c a l c u l a t i o n   b a s e d   o n   A l l o c S i z e   * / ;                 }                   S O M E _ S T R U C T   l i s t   =   S r v N e t B u f f e r L o o k a s i d e s [ L o o k a s i d e L i s t I n d e x ] ;                 R e s u l t   =   / *   f e t c h   r e s u l t   f r o m   l i s t   * / ;         }           / /   I n i t i a l i z e   s o m e   R e s u l t   f i e l d s . . .           r e t u r n   R e s u l t ; } S r v N e t A l l o c a t e B u f f e r F r o m P o o l
1 .   / 2 .   3 .   使 P y t h o n 9 使 S r v N e t A l l o c a t e B u f f e r F r o m P o o l 使 便 S r v D i s a b l e N e t B u f f e r L o o k A s i d e L i s t S r v N e t B u f f e r L o o k a s i d e s S r v N e t C r e a t e B u f f e r L o o k a s i d e s S r v N e t B u f f e r L o o k a s i d e A l l o c a t e S r v N e t A l l o c a t e B u f f e r F r o m P o o l 0 x 1 0 0 1 0 0 > > >   [ h e x ( ( 1   < <   ( i   +   1 2 ) )   +   2 5 6 )   f o r   i   i n   r a n g e ( 9 ) ] [ 0 x 1 1 0 0 ,   0 x 2 1 0 0 ,   0 x 4 1 0 0 ,   0 x 8 1 0 0 ,   0 x 1 0 1 0 0 ,   0 x 2 0 1 0 0 ,   0 x 4 0 1 0 0 ,   0 x 8 0 1 0 0 ,   0 x 1 0 0 1 0 0 ] S r v N e t A l l o c a t e B u f f e r F r o m P o o l S r v N e t A l l o c a t e B u f f e r F r o m P o o l N o n P a g e d P o o l N x E x A l l o c a t e P o o l W i t h T a g A L L O C A T I O N _ H E A D E R A L L O C A T I O N _ H E A D E R
A L L O C A T I O N _ H E A D E R f r e e f r e e - a f t e r - f r e e 使 便 S m b C o m p r e s s i o n D e c o m p r e s s i f   ( S t a t u s   <   0   | |   F i n a l C o m p r e s s e d S i z e   ! =   H e a d e r - > O r i g i n a l C o m p r e s s e d S e g m e n t S i z e )   {         S r v N e t F r e e B u f f e r ( A l l o c ) ;         r e t u r n   S T A T U S _ B A D _ D A T A ; } S r v N e t F r e e B u f f e r O r i g i n a l C o m p r e s s e d S e g m e n t S i z e F i n a l C o m p r e s s e d S i z e S r v N e t F r e e B u f f e r m e m c p y S m b C o m p r e s s i o n D e c o m p r e s s N T S T A T U S   S m b C o m p r e s s i o n D e c o m p r e s s (         U S H O R T   C o m p r e s s i o n A l g o r i t h m ,         P U C H A R   U n c o m p r e s s e d B u f f e r ,         U L O N G     U n c o m p r e s s e d B u f f e r S i z e ,         P U C H A R   C o m p r e s s e d B u f f e r ,         U L O N G     C o m p r e s s e d B u f f e r S i z e ,         P U L O N G   F i n a l C o m p r e s s e d S i z e ) {         / /   . . .           N T S T A T U S   S t a t u s   =   R t l D e c o m p r e s s B u f f e r E x 2 (                 . . . ,                 F i n a l U n c o m p r e s s e d S i z e ,                 . . . ) ;         i f   ( S t a t u s   > =   0 )   {                 * F i n a l C o m p r e s s e d S i z e   =   C o m p r e s s e d B u f f e r S i z e ;         }           / /   . . .           r e t u r n   S t a t u s ; } F i n a l C o m p r e s s e d S i z e C o m p r e s s e d B u f f e r S i z e F i n a l C o m p r e s s e d S i z e m e m c p y (         A l l o c - > U s e r B u f f e r ,         ( P U C H A R ) H e a d e r   +   s i z e o f ( C O M P R E S S I O N _ T R A N S F O R M _ H E A D E R ) ,         H e a d e r - > O f f s e t ) ; A L L O C A T I O N _ H E A D E R
使 使 M o r t e n   S c h e n k B l a c k   H a t   U S A   2 0 1 7 j 0 0 r u W C T F   2 0 1 8 使 S M B 线 G U I 线 使 G U I 线 2 0 1 2 B l a c k   H a t E a s y   E a s y   W i n d o w s   K e r n e l   E x p l o i t a t i o n 使 c e r a r c e r 使 A P I · d r o n e s e c · b r e e n m a c h i n e 2 0 1 7 使 A l e x a n d r e   B e a u l i e u D L L D L L / C V E - 2 0 2 0 - 0 7 9 6 A P I 1 .   W i n d o w s 4 4 5 C V E - 2 0 2 0 - 0 7 9 6 2 .   S M B v 3 . 1 . 1 A L L O C A T I O N _ H E A D E R . d a t a w i n 3 2 k b a s e . s y s w i n 3 2 k b a s e . s y s N t Q u e r y S y s t e m I n f o r m a t i o n ( S y s t e m H a n d l e I n f o r m a t i o n ) w i n l o g o n . e x e c m d . e x e h t t p s : / / b l o g . z e c o p s . c o m / v u l n e r a b i l i t i e s / e x p l o i t i n g - s m b g h o s t - c v e - 2 0 2 0 - 0 7 9 6 - f o r - a - l o c a l - p r i v i l e g e - e s c a l a t i o n - w r i t e u p - a n d - p o c /
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则