[21205] 2020-08-19_DNS隧道通信的检测

文档创建者:s7ckTeam
浏览次数:0
最后更新:2025-01-18
2020-08-19_DNS隧道通信的检测 D N S L e m o n S e c   2 0 2 0 - 0 8 - 1 9 D N S D N S   D N S   C & C B a s e 6 4 B i n a r y N e t B i o s H e x T y p e t x t p a y l o a d D N S D N S D N S C & C   S e r v e r D N S   +       d o m a i n 5 2 0 . 5 +       2 6 - 2 +       t y p e T X T 怀 2 h t t p s : / / g i t h u b . c o m / c i s p / D N S T u n n e l D e t e c t T o o l s +     D N S +     +     使 T X T +     b a s e 6 4 2 1 6 # ! / u s r / b i n / e n v   p y t h o n #   - * -   c o d i n g : u t f - 8   - * - " " " D N S : V 1 . 0 . 3 W e C h a t - N u m b e r   - >   c r 1 9 1 4 5 1 8 0 2 5 " " " # : _ a u t h o r     =   " " _ n i c k y       =   " " _ v e r s i o n   =   " v 1 . 0 . 3 " _ v e r s i o n _ s t r i n g   =   " " " 0 3 3 [ 0 ; 3 2 m                         D N S                         :                         V 1 . 0 . 3                         W e C h a t - N u m b e r   - >   c r 1 9 1 4 5 1 8 0 2 5                         L i n u x U n i x M a c O S   X W i n d o w s 0 3 3 [ 0 m " " " # i m p o r t   o s i m p o r t   s y s i m p o r t   t i m e
i m p o r t   p c a p i m p o r t   d p k t i m p o r t   u r l l i b i m p o r t   l o g g i n g i m p o r t   p l a t f o r m i m p o r t   d a t e t i m e f r o m   o p t p a r s e   i m p o r t   O p t i o n P a r s e r # r e l o a d ( s y s ) s y s . s e t d e f a u l t e n c o d i n g ( " u t f - 8 " ) l o g g i n g . b a s i c C o n f i g ( f i l e n a m e = " . / d n s t u n n e l d e t e c t . r u n n i n g . l o g " , l e v e l = l o g g i n g . I N F O , f i l e m o d e = ' a ' , f o r m a t = ' % ( a s c t i m e ) s - % ( l e v e l n a m e ) s : % ( m e s s a g e ) s ' ) # d e f   d n s _ r e q u e s t _ a n a l y s t ( s t r i n g , s p o r t ) :         " " " D N S " " "         l o g g i n g . i n f o ( " " )         d n s d a t a   =   d p k t . d n s . D N S ( s t r i n g )         r e t   =   r e p r ( s t r i n g ) # . r e p l a c e ( " x 0 3 " , " . " ) . r e p l a c e ( " x 0 5 " , " . " ) . r e p l a c e ( " x 1 2 " , " . " )         d o m a i n   =   s t r ( r e t [ 4 1 : - 2 1 ] ) [ 3 : ] # . r e p l a c e ( " " )         r t y p e   =   r e t . r e p l a c e ( " x " , " " ) [ - 9 : ] [ 0 : 4 ]         # p r i n t   t y p e ( d o m a i n )         d o m a i n   =   d o m a i n . r e p l a c e ( " x " , " . " )         d o m a i n l i s t   =   d o m a i n . s p l i t ( " . " )         d o m a i n   =   d o m a i n l i s t [ 0 ] + " . "         f o r   d s t r   i n   d o m a i n l i s t [ 1 : ] :                 d s t r   =   d s t r [ 2 : ]                 d o m a i n   + =   s t r ( d s t r ) + " . "         d o m a i n   =   d o m a i n [ 0 : - 1 ]         s c o r e   =   f l o a t ( l e n ( d o m a i n )   -   5 2 . 0 )   *   0 . 5         i f   l e n ( d o m a i n )   < =   3 0 :                 s c o r e   =   0         e l i f   ( l e n ( d o m a i n )   -   5 2 )   < =   0 :                 s c o r e   =   ( 5 2   -   l e n ( d o m a i n ) )   *   0 . 2         f o r   i t e m   i n   l i s t ( s t r ( d o m a i n ) ) :                 i f   i t e m   n o t   i n   l i s t ( " 0 1 2 3 4 5 6 7 8 9 0 - a b c d e f g h i j k l m n o p q r s t u v w x y z . " ) :                         s c o r e   * =   2                         b r e a k         i f   r t y p e   = =   ' 0 0 1 0 ' :                 s c o r e   * =   2         e l s e :                 s c o r e   =   s c o r e   *   0 . 4         p i d   =   N o n e         i f   p l a t f o r m . p l a t f o r m ( ) . l o w e r ( ) . f i n d ( " w i n d o w s " )   > =   0 :                 p i d   =   o s . p o p e n ( " n e t s t a t   - a n o   |   f i n d s t r   % s " % s p o r t ) . r e a d ( ) . s p l i t ( " n " ) [ 0 ] . s p l i t ( "   " ) [ - 1 ]         e l i f   p l a t f o r m . p l a t f o r m ( ) . l o w e r ( ) . f i n d ( " l i n u x " )   > =   0 :                 p i d   =   o s . p o p e n ( " n e t s t a t   - a n o p   |   g r e p   % s   |   a w k   ' { p r i n t   $ 7 } ' " % s p o r t ) . r e a d ( ) . s p l i t ( " / " ) [ 0 ]         e l i f   p l a t f o r m . p l a t f o r m ( ) . l o w e r ( ) . f i n d ( " d a r w i n " )   > =   0 :                 p i d   =   o s . p o p e n ( " l s o f   - n P   |   g r e p   : % s   |   a w k   ' { p r i n t   $ 2 } ' " % s p o r t ) . r e a d ( ) . s p l i t ( " n " )                 f o r   i   i n   p i d :                         i f   i   ! =   " [ ' ' ] " :                                 p i d   =   i                                 b r e a k         e l s e :                 p a s s         f l a g   =   F a l s e         i f   s c o r e   >   4         r e t u r n   T r u e , d o m a i n , s c o r e , p i d # D N S c l a s s   P a c k e t _ S n i f f e r _ F i l t e r :         " " " " " "         d e f   _ _ i n i t _ _ ( s e l f , i t e r f a c e n a m e ) :                 " " " " " "
                " " " " " "                 l o g g i n g . i n f o ( " " )                 s e l f . n a m e   =   i t e r f a c e n a m e #                 s e l f . s n i f f e r   =   p c a p . p c a p ( n a m e = s e l f . n a m e , i m m e d i a t e = T r u e ) #                 s e l f . s n i f f e r . s e t f i l t e r ( " u d p   p o r t   5 3 " ) #         d e f   r u n ( s e l f ) :                 l o g g i n g . i n f o ( " 线 " )                 f o r   p a c k e t _ t i m e , p a c k e t _ d a t a   i n   s e l f . s n i f f e r :                         p a c k e t   =   d p k t . e t h e r n e t . E t h e r n e t ( p a c k e t _ d a t a ) # 使 d p k t p c a p                         d i p   =   t u p l e ( m a p ( o r d , l i s t ( p a c k e t . d a t a . d s t ) ) ) # I P                         d i p   =   s t r ( d i p ) . r e p l a c e ( " , " , " . " ) . r e p l a c e ( "   " , " " ) [ 1 : - 1 ]                         s p o r t   =   p a c k e t . d a t a . d a t a . s p o r t                         d p o r t   =   p a c k e t . d a t a . d a t a . d p o r t                         i f   d p o r t   ! =   5 3 :                                 c o n t i n u e                         r e s u l t _ f l a g , d o m a i n , s c o r e , p r o c e s s i d   =   d n s _ r e q u e s t _ a n a l y s t ( p a c k e t . d a t a . d a t a . d a t a , s p o r t ) #                         i f   r e s u l t _ f l a g :                                 p r i n t   " " " 0 3 3 [ 0 ; 3 1 m                                 [ * ]   D N S                                         [ - ]   :   % s                                         [ - ]   :   % s                                         [ - ]   :   % s                                         [ - ]   :   % s                                         [ - ]   :   % s                                 0 3 3 [ 0 m " " " % ( d o m a i n [ 3 : ] , s p o r t , s c o r e , d i p , p r o c e s s i d ) i f   _ _ n a m e _ _   = =   " _ _ m a i n _ _ " :         l o g g i n g . i n f o ( " " )         p a r s e r   =   O p t i o n P a r s e r ( )         p a r s e r . a d d _ o p t i o n ( " - i " , " - - i f n a m e " , d e s t = " n a m e " , h e l p = " I n t e r f a c e   N a m e ! " )         p a r s e r . a d d _ o p t i o n ( " - v " , " - - v e r s i o n " , d e s t = " v e r s i o n " , a c t i o n = " s t o r e _ t r u e " , h e l p = " S h o w   V e r s i o n ! " )         p a r s e r . a d d _ o p t i o n ( " - d " , " - - d o c s " , d e s t = " d o c s " , a c t i o n = " s t o r e _ t r u e " , h e l p = " S h o w   D o c u m e n t s ! " )         p a r s e r . a d d _ o p t i o n ( " - r " , " - - r e q u i r m e n t s " , d e s t = " r e q r " , a c t i o n = " s t o r e _ t r u e " , h e l p = " S h o w   R e q u r i m e n t s ! " )         ( o p t i o n s ,   a r g e s )   =   p a r s e r . p a r s e _ a r g s ( )         i f   o p t i o n s . v e r s i o n :                 p r i n t   _ v e r s i o n _ s t r i n g                 e x i t ( 0 )         i f   o p t i o n s . d o c s :                 p r i n t   " " " 0 3 3 [ 0 ; 3 2 m                         使 - - 使 V 1 . 0 . 1                         [ 1 ]   p y t h o n   D N S T u n n e l D e t e c t . p y   - i   e t h 1                 0 3 3 [ 0 " " "                 e x i t ( 0 )         i f   o p t i o n s . r e q r :                 p r i n t   " " " 0 3 3 [ 0 ; 3 2 m                         [ + ]   s u d o   p i p   i n s t a l l   p y p c a p                         [ + ]   s u d o   p i p   i n s t a l l   d p k t                 0 3 3 [ 0 " " "                 e x i t ( 0 )         i f   o p t i o n s . n a m e   i n   [ " " , N o n e ] :                 l o g g i n g . i n f o ( " 退 ! " )                 p r i n t   " 0 3 3 [ 0 ; 3 1 m [ - ]   0 3 3 [ 0 m "                 e x i t ( 0 )         l o g g i n g . i n f o ( " " )         P a c k e t S n i f f e r   =   P a c k e t _ S n i f f e r _ F i l t e r ( o p t i o n s . n a m e )         P a c k e t S n i f f e r . r u n ( ) h t t p s : / / w w w . c n b l o g s . c o m / K e v i n G e o r g e / p / 8 8 5 8 7 1 8 . h t m l
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则