[16163] 2020-12-03_机器学习检测WebShell脚本实践

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-18
2020-12-03_机器学习检测WebShell脚本实践 W e b S h e l l   便   F r e e B u f   2 0 2 0 - 1 2 - 0 3 W e b S h e l l w e b s h e l l p h p a s p j s p p e r l c g i p y w e b s h e l l W E B W e b 访 w e b s h e l l 访 w e b s h e l l w e b w e b s h e l l w e b s h e l l b r o w s e r / s e r v e r H T T P 便 w e b s h e l l 1   1 . 1   w e b s h e l l w e b s h e l l 便 w e b s h e l l w e b s h e l l A S P v p s a s p b a c k d o o r . p h p 1 . 2   w e b s h e l l w e b s h e l l 便 广 w e b s h e l l w e b s h e l l 西 西 1 . 3   P e c k e r   S c a n n e r p h p w e b s h e l l 1 . 4   w e b s h e l l N e o P I / w e b s h e l l N e o P I 5 1 .   ( L a n g u a g e I C ) :   2 .   E n t r o p y 使 g i n i 使 3 .   ( L o n g e s t W o r d ) b a s e 6 4 4 .   ( S i g n a t u r e N a s t y ) 5 .   ( C o m p r e s s i o n ) 5 b a s e 6 4 w e b s h e l l w e b s h e l l g i n i 2   r u l e = r ' ( a r r a y _ m a p [ s n ] { 0 , 2 0 } ( . { 1 , 5 } ( e v a l | a s s e r t | a s s x 6 5 r t ) . { 1 , 2 0 } $ _ ( G E T | P O S T | R E Q U E S T ) . { 0 , 1 5 } ) ' r u l e = ' ( c a l l _ u s e r _ f u n c [ s n ] { 0 , 2 5 } ( . { 0 , 2 5 } $ _ ( G E T | P O S T | R E Q U E S T ) . { 0 , 1 5 } ) ' r u l e = ' ( $ _ ( G E T | P O S T | R E Q U E S T ) [ . { 0 , 1 5 } ] s { 0 , 1 0 } ( s { 0 , 1 0 } $ _ ( G E T | P O S T | R E Q U E S T ) . { 0 , 1 5 } ) ' r u l e = ' ( ( $ ( _ ( G E T | P O S T | R E Q U E S T | S E S S I O N | S E R V E R ) ( [ [ ' " ] { 0 , 1 } ) w { 1 , 1 2 } ( [ ' " ] { 0 , 1 } ] ) | w { 1 , 1 0 } ) ) [ s n ] { 0 , 2 0 } ( [ s n ] { 0 , 2 0 } ( @ { 0 , 1 } $ ( _ ( G E T | P O S T | R E Q U E S T | S E S S I O N | S E R V E R ) ( [ [ ' " ] { 0 , 1 } ) w { 1 , 1 2 } ( [ ' " r u l e = ' s { 0 , 1 0 } = s { 0 , 1 0 } [ { @ ] { 0 , 2 } ( $ _ ( G E T | P O S T | R E Q U E S T ) | f i l e _ g e t _ c o n t e n t s | s t r _ r e p l a c e | [ " ' ] a [ " ' ] . [ " ' ] s [ " ' ] . | [ " ' ] e [ " ' ] . [ " ' ] v [ " ' ] . | [ " ' ] a s s [ " ' ] . ) . { 0 , 1 0 } ' r u l e = ' ( ( e v a l | a s s e r t ) [ s | n ] { 0 , 3 0 } ( [ s | n ] { 0 , 3 0 } ( { 0 , 1 } $ ( ( _ ( G E T | P O S T | R E Q U E S T | S E S S I O N | S E R V E R ) ( [ [ ' " ] { 0 , 1 } ) [ w ( ) ] { 0 , 1 5 } ( [ ' " ] { 0 , 1 } ] ) ) | w { 1 , 1 0 } ) ) s { 0 , 5 } ) ) ' r u l e = ' ( ( e v a l | a s s e r t ) [ s | n ] { 0 , 3 0 } ( ( g z u n c o m p r e s s | g z i n f l a t e ( ) { 0 , 1 } [ s | n ] { 0 , 3 0 } b a s e 6 4 _ d e c o d e . { 0 , 1 0 0 } ) ' r u l e = ' s { 0 , 1 0 } = s { 0 , 1 0 } ( [ { @ ] { 0 , 2 } { 0 , 1 } $ _ ( G E T | P O S T | R E Q U E S T ) | f i l e _ g e t _ c o n t e n t s | [ " ' ] a [ " ' ] . [ " ' ] s [ " ' ] . | [ " ' ] e [ " ' ] . [ " ' ] v [ " ' ] . | [ " ' ] a s s [ " ' ] . ) . { 0 , 2 0 } ' r u l e = ' ( i n c l u d e | r e q u i r e ) ( _ o n c e ) { 0 , 1 } [ s * ] + [ " | ' ] + [ 0 - 9 A - Z a - z _ ] * : / / ' r u l e = ' ( [ ^ ' " ] ( i n c l u d e | r e q u i r e ) ( _ o n c e ) { 0 , 1 } s { 0 , 5 } ( s { 0 , 5 } | ( s { 0 , 5 } ) [ " ' ] ( [ . w , / + - _ ] { 1 , 6 0 } ) [ " ' ] s * ) { 0 , 1 } ) ' r u l e = ' ( ( i n c l u d e | r e q u i r e ) ( _ o n c e ) { 0 , 1 } ( s { 0 , 5 } | s { 0 , 5 } ( s { 0 , 5 } ) [ ' " ] { 0 , 1 } ( $ ( _ ( G E T | P O S T | R E Q U E S T | S E R V E R ) ( [ [ ' " ] { 0 , 1 } ) w { 0 , 8 } ( [ ' " ] { 0 , 1 } ] ) | [ w ] { 1 , 1 5 } ) ) [ ' " ] { 0 , 1 } ) ' r u l e = ' s { 0 , 1 0 } = s { 0 , 1 0 } ( [ { @ ] { 0 , 2 } $ _ ( G E T | P O S T | R E Q U E S T ) | [ ' " ] { 0 , 1 } p h p : / / i n p u t [ ' " ] { 0 , 1 } | f i l e _ g e t _ c o n t e n t s ) . { 0 , 2 0 } ' r u l e = ' g z d e f l a t e | g z c o m p r e s s | g z e n c o d e ' r u l e   =   ' ( p r e g _ r e p l a c e [ s n ] { 0 , 1 0 } ( [ s n ] { 0 , 1 0 } ( ( [ " ' ] . { 0 , 1 5 } [ / @ ' ] [ i s ] { 0 , 2 } e [ i s ] { 0 , 2 } [ " ' ] ) | $ [ a - z A - Z _ ] [ w " ' [ ] ] { 0 , 1 5 } ) s { 0 , 5 } , s { 0 , 5 } . { 0 , 4 0 } ( $ _ ( G E T | P O S T | R E Q U E S T | S E S S I O N | S E R V E R ) | s t r _ r o t 1 3 | u r l d e c o d e ) . { 0 , 3 0 } ) '
w e b s h e l l w e b s h e l l w e b s h e l l 使 w e b s h e l l D c _ v 0 . 1 w e b s h e l l N L P w e b s h e l l 2 . 1   M L N L P w e b s e h l l A I w e b s h e l l 1 6 0 G i t h u b w e b s h e l l 广 G i t h u b G i t L a b G i t e e C o d i n g j s p j a v a j s p j a v a   线 2 . 2   w e b C o u n t V e c t o r i z e r T f i d f T r a n s f o r m e r n - g r a m X G B o o s t M L P C l a s s i f i e r 2 . 3   f e a t u r e s p r o c e s s m a x f e a t u r e s C o u n t V e c t o r i z e r T f i d f T r a n s f o r m e r C o u n t V e c t o r i z e r m a x f e a t u r e s n g r a m r a n g e R O C 线 3   G i t h u b d e f   f e a t u r e s _ p r o c e s s ( n e g a t i v e d i r ,   p o s t i v e d i r ,   m a x f e a t u r e s ) :         w e b s h e l l _ t e x t s   =   r e a d _ d i r ( n e g a t i v e d i r )         n o r m a l _ t e x t s   =   r e a d _ d i r ( p o s t i v e d i r )         w e b s h e l l _ n u m b e r   =   l e n ( w e b s h e l l _ t e x t s )         n o r m a l _ n u m b e r   =   l e n ( n o r m a l _ t e x t s )         t e x t s   =   w e b s h e l l _ t e x t s   +   n o r m a l _ t e x t s         w e b s h e l l _ l a b l e s   =   [ 1 ]   *   w e b s h e l l _ n u m b e r         n o r m a l _ l a b l e s   =   [ 0 ]   *   n o r m a l _ n u m b e r         l a b l e s   =   w e b s h e l l _ l a b l e s   +   n o r m a l _ l a b l e s         l o g g e r . i n f o ( " % i "   %   n o r m a l _ n u m b e r )         l o g g e r . i n f o ( " % i "   %   w e b s h e l l _ n u m b e r )         c o u n t v e c t o r i z e r   =   C o u n t V e c t o r i z e r ( n g r a m _ r a n g e = ( 2 ,   2 ) ,   d e c o d e _ e r r o r = " i g n o r e " ,         m i n _ d f = 1 ,   a n a l y z e r = " w o r d " ,         t o k e n _ p a t t e r n = r ' [ ^ w s ] + | b w + b ' ,         m a x _ f e a t u r e s = m a x f e a t u r e s )         t f i d f t r a n s f o r m e r   =   T f i d f T r a n s f o r m e r ( s m o o t h _ i d f = F a l s e )         c v _ x   =   c o u n t v e c t o r i z e r . f i t _ t r a n s f o r m ( t e x t s ) . t o a r r a y ( )         t f _ x   =   t f i d f t r a n s f o r m e r . f i t _ t r a n s f o r m ( c v _ x ) . t o a r r a y ( )         j o b l i b . d u m p ( c o u n t v e c t o r i z e r ,   " m o d e l / c o u n t v e c t o r i z e r _ "   +   o p t i o n s . v e r s i o n   +   " . p k l " )         j o b l i b . d u m p ( t f i d f t r a n s f o r m e r ,   " m o d e l / t f i d f t r a n s f o r m e r _ "   +   o p t i o n s . v e r s i o n   +   " . p k l " )         r e t u r n   t f _ x ,   l a b l e s ,   c o u n t v e c t o r i z e r ,   t f i d f t r a n s f o r m e r d e f   e v a l u a t i o n ( y _ t e s t ,   y _ p r e d ) :         l o g g e r . i n f o ( " : % s "   %   m e t r i c s . a c c u r a c y _ s c o r e ( y _ t e s t ,   y _ p r e d ) )         l o g g e r . i n f o ( c o n f u s i o n _ m a t r i x ( y _ t e s t ,   y _ p r e d ) )         l o g g e r . i n f o ( c l a s s i f i c a t i o n _ r e p o r t ( y _ t e s t ,   y _ p r e d ) ) d e f   t r a i n ( t r a i n s e t ,   l a b l e s ,   m o d e ,   s e e d ) :         x _ t r a i n ,   x _ t e s t ,   y _ t r a i n ,   y _ t e s t   =   t r a i n _ t e s t _ s p l i t ( t r a i n s e t ,   l a b l e s ,   t e s t _ s i z e = 0 . 3 ,   r a n d o m _ s t a t e = s e e d )         c l f   =   m o d e l _ c o l l e c t i o n ( m o d e )         c l f n a m e   =   " m o d e l / "   +   m o d e   +   " _ "   +   o p t i o n s . v e r s i o n   +   " . p k l "         c l f . f i t ( x _ t r a i n ,   y _ t r a i n )         l o g g e r . i n f o ( " " )         e v a l u a t i o n ( y _ t r a i n ,   c l f . p r e d i c t ( x _ t r a i n ) )         l o g g e r . i n f o ( " " )         e v a l u a t i o n ( y _ t e s t ,   c l f . p r e d i c t ( x _ t e s t ) )         j o b l i b . d u m p ( c l f ,   c l f n a m e ,   c o m p r e s s = 3 )
线 线 w e b s h e l l 线 w e b s h e l l A I A I A I
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则