[27803] 2020-09-11_协议Fuzz技术

文档创建者:s7ckTeam
浏览次数:1
最后更新:2025-01-19
2020-09-11_协议Fuzz技术 F u z z   h a c k e d b y l h   O P P O   2 0 2 0 - 0 9 - 1 1 h a c k e d b y l h 稿 广 稿 O S R C 稿 ~ ~ 稿 m a r k d o w n B a c n e t   s e r v e r F u z z ,     b o o f u z z     m u t i n y - f u z z e r . B a c n e t   s e r v e r b o o f u z z b o o f u z z F u z z p y t h o n B A C n e t A S H R A E B A C n e t B a c n e t   S e r v e r B A C n e t 仿 U D P B A C n e t 使 B A C n e t B A C n e t S c a n B a c n e t   S e r v e r W i r e s h a r k B A C n e t h t t p s : / / s o u r c e f o r g e . n e t / p r o j e c t s / b a c n e t s e r v e r /
使 b o o f u z z F u z z b o o f u z z B A C n e t b o o f u z z s _ i n i t i a l i z e ,   s _ b l o c k _ s t a r t s _ b y t e   s _ w o r d s _ d w o r d 4 使 b o o f u z z f u z z f u z z i n g s _ i n i t i a l i z e ( " b a c n e t _ p a c k e t " ) i f   s _ b l o c k _ s t a r t ( " b l o c k " ) :         s _ b y t e ( 0 x 8 1 ,   n a m e = ' t y p e ' )         s _ b y t e ( 0 x 0 a ,   n a m e = ' f u n c t i o n ' )         s _ w o r d ( 0 x 1 9 ,   n a m e = ' b v l c - l e n g t h ' ,   e n d i a n = B I G _ E N D I A N )         s _ b y t e ( 0 x 0 1 ,   n a m e = " v e r s i o n " )         s _ b y t e ( 0 x 0 0 ,   n a m e = " c o n t r o l " )         s _ b y t e ( 0 x 3 0 ,   n a m e = " t y p e _ f l a g " )         s _ b y t e ( 0 x 0 3 ,   n a m e = " i d " )         s _ b y t e ( 0 x c ,   n a m e = " s c " )         s _ b y t e ( 0 x c ,   n a m e = " t a g " )         s _ d w o r d ( 0 x 0 2 0 3 f 7 a 2 ,   n a m e = " t y p e _ n u m b e r " ,   e n d i a n = B I G _ E N D I A N )         s _ b y t e ( 0 x 1 9 ,   n a m e = " C T " )         s _ b y t e ( 0 x 4 c ,   n a m e = " P I " )         s _ w o r d ( 0 x 2 9 0 b ,   n a m e = " P A I " ,   e n d i a n = B I G _ E N D I A N )         s _ b y t e ( 0 x 3 e )         s _ b y t e ( 0 x c 4 )         s _ d w o r d ( 0 x 0 0 8 0 0 0 0 1 ,   e n d i a n = B I G _ E N D I A N )         s _ b y t e ( 0 x 3 f ) s _ b l o c k _ e n d ( ) s e s s i o n   =   S e s s i o n ( ) #   t a r g e t   =   T a r g e t ( c o n n e c t i o n = S o c k e t C o n n e c t i o n ( t a r g e t _ i p ,   4 7 8 0 8 ,   p r o t o = ' u d p ' ) ) t a r g e t . p r o c m o n   =   b o o f u z z . i n s t r u m e n t a t i o n . E x t e r n a l ( p r e = N o n e ,   p o s t = t a r g e t _ a l i v e ,   s t a r t = r e s e t _ t a r g e t ,   s t o p = N o n e ) s e s s i o n . a d d _ t a r g e t ( t a r g e t )
b o o f u z z . i n s t r u m e n t a t i o n . E x t e r n a l B A C n e t b o o f u z z p y t h o n F u z z F u z z b o o f u z z h t t p F u z z s e s s i o n . a d d _ t a r g e t ( t a r g e t ) s _ i n i t i a l i z e ( " b a c n e t _ p a c k e t " ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s e s s i o n . c o n n e c t ( s _ g e t ( " b a c n e t _ p a c k e t " ) ) s e s s i o n . f u z z ( ) d e f   t a r g e t _ a l i v e ( ) :         t r y :                 c l i e n t   =   s o c k e t . s o c k e t ( t y p e = s o c k e t . S O C K _ D G R A M )                 d e c o d e _ h e x   =   c o d e c s . g e t d e c o d e r ( " h e x _ c o d e c " )                 s e n d _ d a t a   =   d e c o d e _ h e x ( " 8 1 0 a 0 0 1 3 0 1 0 4 0 0 0 5 0 1 0 c 0 c 0 2 0 3 f 7 a 2 1 9 4 c 2 9 0 0 " ) [ 0 ]                 c l i e n t . s e n d t o ( s e n d _ d a t a ,   ( t a r g e t _ i p ,   4 7 8 0 8 ) )                 c l i e n t . s e t t i m e o u t ( 3 . 0 )                 r e c v _ d a t a ,   a d d r e s s   =   c l i e n t . r e c v f r o m ( 1 0 2 4 )                 c l i e n t . s e t t i m e o u t ( N o n e )                 c l i e n t . c l o s e ( )                 i f   l e n ( r e c v _ d a t a )   >   0 :                         r e t u r n   T r u e                 e l s e :                         r e t u r n   F a l s e         e x c e p t :                 r e t u r n   F a l s e
m u t i n y - f u z z e r d e c e p t T C P U D P m u t i n y - f u z z e r F u z z p c a p d e c e p t 使 d e c e p t   m u t i n y - f u z z e r F u z z 1 .   使 d e c e p t   . f u z z e r   2 .     m u t i n y - f u z z e r     . f u z z e r   F u z z B A C n e t   S e r v e r 使 d e c e p t m u t i n y - f u z z e r F u z z d e c e p t . f u z z e r p y t h o n   d e c e p t . p y   1 2 7 . 0 . 0 . 1   1 2 2 4 5   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3   4 7 8 0 8   - l   u d p #   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3   B a c n e t   S e r v e r I P
1 9 2 . 1 6 8 . 2 4 5 . 1 3 3   B a c n e t   S e r v e r I P d e c e p t   1 2 7 . 0 . 0 . 1 : 1 2 2 4 5   u d p 1 9 2 . 1 6 8 . 2 4 5 . 1 3 3 : 4 7 8 0 8   b a c n e t   1 2 7 . 0 . 0 . 1 : 1 2 2 4 5 b a c n e t   s e r v e r d e c e p t b a c n e t . f u z z e r F u z z   b a c n e t . f u z z e r   p r o t o     u d p   i m p o r t   s o c k e t i m p o r t   c o d e c s t a r g e t _ i p   =   " 1 2 7 . 0 . 0 . 1 " p o r t   =   1 2 2 4 5 d e f   m a i n ( ) :         c l i e n t   =   s o c k e t . s o c k e t ( t y p e = s o c k e t . S O C K _ D G R A M )         d e c o d e _ h e x   =   c o d e c s . g e t d e c o d e r ( " h e x _ c o d e c " )         s e n d _ d a t a   =   d e c o d e _ h e x ( " 8 1 0 a 0 0 1 3 0 1 0 4 0 0 0 5 0 1 0 c 0 c 0 2 0 3 f 7 a 2 1 9 4 c 2 9 0 0 " ) [ 0 ]         c l i e n t . s e n d t o ( s e n d _ d a t a ,   ( t a r g e t _ i p ,   p o r t ) )         c l i e n t . s e t t i m e o u t ( 1 0 . 0 )         r e c v _ d a t a ,   a d d r e s s   =   c l i e n t . r e c v f r o m ( 1 0 2 4 )         c l i e n t . s e t t i m e o u t ( N o n e )         c l i e n t . c l o s e ( )         p r i n t ( r e c v _ d a t a . h e x ( ) )         i f   l e n ( r e c v _ d a t a )   >   0 :                 r e t u r n   T r u e         e l s e :                 r e t u r n   F a l s e i f   _ _ n a m e _ _   = =   " _ _ m a i n _ _ " :         m a i n ( ) ~ / w o r k p l a c e / D e c e p t $   p y t h o n   d e c e p t . p y   1 2 7 . 0 . 0 . 1   1 2 2 4 5   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3   4 7 8 0 8   - l   u d p   - r   u d p   - - f u z z e r   b a c n e t . f u z z e r [ < _ < ]   D e c e p t   p r o x y / s n i f f e r   [ > _ > ] [ * . * ]   L i s t e n i n g   o n   1 2 7 . 0 . 0 . 1 : 1 2 2 4 5 [ $ . $ ]   l o c a l : u d p | r e m o t e : u d p 0 0 0 0       8 1   0 a   0 0   1 3   0 1   0 4   0 0   0 5   0 1   0 c   0 c   0 2   0 3   f 7   a 2   1 9         . . . . . . . . . . . . . . . . 0 0 1 0       4 c   2 9   0 0                                                                                       L ) . [ o . o ]   0 7 : 5 7 : 4 8 . 7 3 0 9 2 0   S e n t   1 9   b y t e s   t o   r e m o t e   ( 1 9 2 . 1 6 8 . 2 4 5 . 1 3 3 : 4 7 8 0 8 ) 0 0 0 0       8 1   0 a   0 0   1 6   0 1   0 0   3 0   0 1   0 c   0 c   0 2   0 3   f 7   a 2   1 9   4 c         . . . . . . 0 . . . . . . . . L 0 0 1 0       2 9   0 0   3 e   2 1   3 8   3 f                                                                     ) . > ! 8 ? [ o . o ]   0 7 : 5 7 : 5 0 . 7 3 5 2 2 5   S e n t   2 2   b y t e s   t o   l o c a l   f r o m   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3 : 4 7 8 0 8 ^ C F i l e   b a c n e t . f u z z e r   a l r e a d y   e x i s t s ,   u s i n g   b a c n e t . f u z z e r - 1   i n s t e a d [ ^ . ^ ]   T h a n k s   f o r   u s i n g   D e c e p t ! #   D i r e c t o r y   c o n t a i n i n g   a n y   c u s t o m   e x c e p t i o n / m e s s a g e / m o n i t o r   p r o c e s s o r s #   T h i s   s h o u l d   b e   e i t h e r   a n   a b s o l u t e   p a t h   o r   r e l a t i v e   t o   t h e   . f u z z e r   f i l e #   I f   s e t   t o   " d e f a u l t " ,   M u t i n y   w i l l   u s e   a n y   p r o c e s s o r s   i n   t h e   s a m e #   f o l d e r   a s   t h e   . f u z z e r   f i l e p r o c e s s o r _ d i r   d e f a u l t #   N u m b e r   o f   t i m e s   t o   r e t r y   a   t e s t   c a s e   c a u s i n g   a   c r a s h f a i l u r e T h r e s h o l d   3 #   H o w   l o n g   t o   w a i t   b e t w e e n   r e t r y i n g   t e s t   c a s e s   c a u s i n g   a   c r a s h f a i l u r e T i m e o u t   5 #   H o w   l o n g   f o r   r e c v ( )   t o   b l o c k   w h e n   w a i t i n g   o n   d a t a   f r o m   s e r v e r
使 m u t i n y . f u z z e r F u z z P O C r e c e i v e T i m e o u t   1 . 0 #   W h e t h e r   t o   p e r f o r m   a n   u n f u z z e d   t e s t   r u n   b e f o r e   f u z z i n g s h o u l d P e r f o r m T e s t R u n   1 #   P r o t o c o l   ( u d p   o r   t c p ) p r o t o   u d p #   P o r t   n u m b e r   t o   c o n n e c t   t o p o r t   4 7 8 0 8 #   P o r t   n u m b e r   t o   c o n n e c t   f r o m s o u r c e P o r t   - 1 #   S o u r c e   I P   t o   c o n n e c t   f r o m s o u r c e I P   0 . 0 . 0 . 0 #   T h e   a c t u a l   m e s s a g e s   i n   t h e   c o n v e r s a t i o n #   E a c h   c o n t a i n s   a   m e s s a g e   t o   b e   s e n t   t o   o r   f r o m   t h e   s e r v e r ,   p r i n t a b l y - f o r m a t t e d o u t b o u n d   f u z z   ' x 8 1 n x 0 0 x 1 3 x 0 1 x 0 4 x 0 0 x 0 5 x 0 1 x 0 c x 0 c x 0 2 x 0 3 x f 7 x a 2 x 1 9 L ) x 0 0 ' i n b o u n d   ' x 8 1 n x 0 0 x 1 6 x 0 1 x 0 0 0 x 0 1 x 0 c x 0 c x 0 2 x 0 3 x f 7 x a 2 x 1 9 L ) x 0 0 > ! 8 ? ' p y t h o n   m u t i n y . p y   b a c n e t . f u z z e r   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3 #   1 9 2 . 1 6 8 . 2 4 5 . 1 3 3   B a c n e t   S e r v e r I P i m p o r t   s o c k e t d e f   t a r g e t _ a l i v e ( ) :         t r y :                 c l i e n t   =   s o c k e t . s o c k e t ( t y p e = s o c k e t . S O C K _ D G R A M )                 s e n d _ d a t a   =   " x 8 1 x 0 4 # x 0 0 x 0 1 x 1 3 n x 0 0 x e 2 x f 3 x e f x b b x b f x a f x 8 1 x a 6 x 0 5 x 0 1 x 0 c ) x 0 0 x 0 2 x 1 9 x 0 3 L x a 2 "                 c l i e n t . s e n d t o ( s e n d _ d a t a , ( ' 1 9 2 . 1 6 8 . 4 6 . 1 2 8 ' , 4 7 8 0 8 ) )                 c l i e n t . s e t t i m e o u t ( 1 0 . 0 )                 r e _ D a t a , a d d r e s s   =   c l i e n t . r e c v f r o m ( 1 0 2 4 )                 c l i e n t . s e t t i m e o u t ( N o n e )                 p r i n t ( r e _ D a t a . e n c o d e ( ' h e x ' ) )                 c l i e n t . c l o s e ( )                 i f   l e n ( r e _ D a t a )   >   0 :                         r e t u r n   T r u e                 e l s e :                         r e t u r n   F a l s e         e x c e p t :                 r e t u r n   F a l s e p r i n t   t a r g e t _ a l i v e ( )
H o o k F u z z e r f u z z e r F u z z 使 F u z z
F u z z F u z z h o o k b a c n e t   s e r v e r F u z z   b a c n e t   s e r v e r 4 7 8 0 8 u d p u d p 使 r e c v f r o m I D A r e c v f r o m   r e c v f r o m   . t e x t : 0 0 4 3 2 D 1 E                                   p u s h         e d x                           ;   l e n . t e x t : 0 0 4 3 2 D 1 F                                   m o v           e a x ,   [ e b p + b u f ] . t e x t : 0 0 4 3 2 D 2 2                                   p u s h         e a x                           ;   b u f . t e x t : 0 0 4 3 2 D 2 3                                   c a l l         s u b _ 4 1 B 4 1 5 . t e x t : 0 0 4 3 2 D 2 8                                   p u s h         e a x                           ;   s . t e x t : 0 0 4 3 2 D 2 9                                   c a l l         d s : r e c v f r o m . t e x t : 0 0 4 3 2 D 2 F                                   c m p           e s i ,   e s p . t e x t : 0 0 4 3 2 D 3 1                                   c a l l         j _ _ _ R T C _ C h e c k E s p . t e x t : 0 0 4 3 2 D 3 6                                   m o v           [ e b p + r e c v l e n ] ,   e a x . t e x t : 0 0 4 3 2 D 3 C                                   j m p           s h o r t   l o c _ 4 3 2 D 4 5     v 3 6   =   s u b _ 4 1 B 4 1 5 ( v 5 ) ;     i f   (   s e l e c t ( v 3 6   +   1 ,   & r e a d f d s ,   0 ,   0 ,   & t i m e o u t )   < =   0   )         r e t u r n   0 ;     s   =   s u b _ 4 1 B 4 1 5 ( & f r o m ) ;     r e c v l e n   =   r e c v f r o m ( s ,   b u f ,   l e n ,   0 ,   & f r o m ,   & f r o m l e n ) ;   / /     u d p       i f   (   r e c v l e n   <   0   )         r e t u r n   0 ;     i f   (   ! r e c v l e n   )         r e t u r n   0 ;     i f   (   * b u f   ! =   1 2 9   )         r e t u r n   0 ;     b y t e _ f r o m _ b u f   =   b u f [ 1 ] ;   / /   b u f     e x t r a c t _ w o r d _ f r o m _ b u f ( ( b u f   +   2 ) ,   & w o r d _ f r o m _ b u f ) ;   / /     b u f   2     w o r d _ f r o m _ b u f   - =   4 ;     v 1 6   =   b y t e _ f r o m _ b u f ;     s w i t c h   (   b y t e _ f r o m _ b u f   )   / /     b y t e _ f r o m _ b u f       {         c a s e   0 :             e x t r a c t _ w o r d _ f r o m _ b u f ( ( b u f   +   4 ) ,   & v 2 1 ) ;             d w o r d _ 4 D 8 6 4 8   =   v 2 1 ;             s u b _ 4 3 3 7 4 0 ( " B V L C :   R e s u l t   C o d e = % d n " ) ;             w o r d _ f r o m _ b u f   =   0 ;
r e c v f r o m r e c v f r o m 使 F r i d a   F r i d a h o o k   w i n d o w s l i n u x a n d r o i d h o o k             w o r d _ f r o m _ b u f   =   0 ;             b r e a k ;         c a s e   1 :             s u b _ 4 3 3 7 4 0 ( " B V L C :   R e c e i v e d   W r i t e - B D T . n " ) ;             v 1 9   =   s u b _ 4 3 3 9 6 0 ( b u f   +   4 ,   w o r d _ f r o m _ b u f ) ;             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . / / P r o c e s s . s e t E x c e p t i o n H a n d l e r ( f u n c t i o n   ( d e t a i l s )   {         i f   ( d e t a i l s . t y p e   ! =   " s y s t e m " )   {                 c o n s o l e . l o g ( d e t a i l s . c o n t e x t ) ;                 c o n s o l e . l o g ( d e t a i l s . t y p e ) ;                 c o n s o l e . l o g ( d e t a i l s . a d d r e s s ) ;                 c o n s o l e . l o g ( d e t a i l s . m e m o r y ) ;                 v a r   b a c k t r a c e   =   T h r e a d . b a c k t r a c e ( d e t a i l s . c o n t e x t ,   B a c k t r a c e r . A C C U R A T E ) . m a p ( D e b u g S y m b o l . f r o m A d d r e s s ) . j o i n ( ' n t ' ) ;                 c o n s o l e . l o g ( b a c k t r a c e ) ;         }         r e t u r n   f a l s e ; } ) ; / / m i n N u m m a x N u m f u n c t i o n   g e n e r a t e _ r a n d o m _ n u m b e r ( m i n N u m ,   m a x N u m )   {         s w i t c h   ( a r g u m e n t s . l e n g t h )   {                 c a s e   1 :                         r e t u r n   p a r s e I n t ( M a t h . r a n d o m ( )   *   m i n N u m   +   1 ,   1 0 ) ;                         b r e a k ;                 c a s e   2 :                         r e t u r n   p a r s e I n t ( M a t h . r a n d o m ( )   *   ( m a x N u m   -   m i n N u m   +   1 )   +   m i n N u m ,   1 0 ) ;                         b r e a k ;                 d e f a u l t :                         r e t u r n   0 ;                         b r e a k ;         } } v a r   f u z z _ c o u n t   =   1 ; f u n c t i o n   f u z z ( b u f ,   s i z e )   {         v a r   f u z z _ s i z e   =   p a r s e I n t ( s i z e   *   0 . 3 ,   1 0 ) ;         c o n s o l e . l o g ( " f u z z   s i z e :   "   +   f u z z _ s i z e ) ;         v a r   o f f s e t   =   g e n e r a t e _ r a n d o m _ n u m b e r ( 0 ,   s i z e   -   f u z z _ s i z e   -   1 ) ;         f o r   ( v a r   i   =   0 ;   i   <   f u z z _ s i z e ;   i + + )   {                 b u f . a d d ( o f f s e t   +   i ) . w r i t e U 8 ( g e n e r a t e _ r a n d o m _ n u m b e r ( 0 ,   2 5 5 ) ) ;         }         c o n s o l e . l o g ( " f u z z   c o u n t :   "   +   f u z z _ c o u n t ) ;         f u z z _ c o u n t   + =   1 ;         c o n s o l e . l o g ( h e x d u m p ( b u f ,   {                 o f f s e t :   0 ,
r e c v f r o m I n t e r c e p t o r . a t t a c h h o o k   r e c v f r o m r e c v f r o m o n E n t e r r e c v f r o m b u f F u z z . r e c v f r o m o n L e a v e f u z z f u z z % 3 0 便 h e x d u m p F r i d a h o o k 使 p y t h o n                 l e n g t h :   s i z e ,                 h e a d e r :   t r u e ,                 a n s i :   t r u e         } ) ) ; } v a r   r e c v _ f r o m   =   M o d u l e . f i n d E x p o r t B y N a m e ( n u l l ,   " r e c v f r o m " ) ; I n t e r c e p t o r . a t t a c h ( r e c v _ f r o m ,   {         o n E n t e r :   f u n c t i o n   ( a r g s )   {                 / /   c o n s o l e . l o g ( " s o c k e t :   "   +   a r g s [ 0 ] ) ;                 / /   c o n s o l e . l o g ( " b u f f e r :   "   +   a r g s [ 1 ] ) ;                 t h i s . b u f f e r   =   a r g s [ 1 ] ;         } ,         o n L e a v e :   f u n c t i o n   ( r e t v a l )   {                 / /   c o n s o l e . l o g ( " r e c v f r o m   l e n g t h :   "   +   r e t v a l ) ;                 f u z z ( t h i s . b u f f e r ,   r e t v a l . t o I n t 3 2 ( ) ) ;         } } ) ; f u n c t i o n   ( a r g s )   {     t h i s . b u f f e r   =   a r g s [ 1 ] ; } f u n c t i o n   ( r e t v a l )   {     f u z z ( t h i s . b u f f e r ,   r e t v a l . t o I n t 3 2 ( ) ) ; } f u n c t i o n   f u z z ( b u f ,   s i z e )   {         v a r   f u z z _ s i z e   =   p a r s e I n t ( s i z e   *   0 . 3 ,   1 0 ) ;         c o n s o l e . l o g ( " f u z z   s i z e :   "   +   f u z z _ s i z e ) ;         v a r   o f f s e t   =   g e n e r a t e _ r a n d o m _ n u m b e r ( 0 ,   s i z e   -   f u z z _ s i z e   -   1 ) ;         f o r   ( v a r   i   =   0 ;   i   <   f u z z _ s i z e ;   i + + )   {                 b u f . a d d ( o f f s e t   +   i ) . w r i t e U 8 ( g e n e r a t e _ r a n d o m _ n u m b e r ( 0 ,   2 5 5 ) ) ;         }         c o n s o l e . l o g ( h e x d u m p ( b u f ,   {                 o f f s e t :   0 ,                 l e n g t h :   s i z e ,                 h e a d e r :   t r u e ,                 a n s i :   t r u e         } ) ) ; } d e f   s e n d _ l o o p ( ) :         i m p o r t   t i m e         c l i e n t   =   s o c k e t . s o c k e t ( t y p e = s o c k e t . S O C K _ D G R A M )         d e c o d e _ h e x   =   c o d e c s . g e t d e c o d e r ( " h e x _ c o d e c " )         s e n d _ d a t a   =   d e c o d e _ h e x ( " 8 1 0 a 0 0 1 3 0 1 0 4 0 0 0 5 0 1 0 c 0 c 0 2 0 3 f 7 a 2 1 9 4 c 2 9 0 0 " ) [ 0 ]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则