[14309] 2019-07-04_绕过防火墙过滤规则传输ICMP

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2019-07-04_绕过防火墙过滤规则传输ICMP I C M P   F r e e B u f   2 0 1 9 - 0 7 - 0 4 I C M P I C M P v 6 I C M P I C M P v 6 I n t e r n e t I C M P I C M P   [ v 6 ] I C M P 1 . E c h o 1 8 2 . 3 3 . S o u r c e   q u e n c h 4 4 . 1 4 1 5 I C M P v 6 1 . 1 2 . 2 3 . 3 4 . 4 5 . 1 3 3 1 3 4 6 . 1 3 5 1 3 6 7 . 使 I C M P 1 . 2 . I C M P I C M P 3 . 4 U D P I C M P I C M P I P 6 4 1 B
I C M P I P I C M P   R e d i r e c t I C M P v 6   R o u t e r I C M P I C M P 1 . I C M P [ 1 ] I C M P N A T N A T 2 . I C M P [ 2 ] I C M P I C M P 3 . I C M P   E C H O [ 3 ] 使 广 D o S 4 . M T U [ 4 ]   [ 5 ]   [ 6 ] 5 . I C M P v 6   N D P [ 7 ] I P v 4 A R P 6 . I C M P v 6   M L D +   D o S   [ 8 ] I G M P I P 使 I C M P s y s c t l n e t s h L i n u x 使 s y s c t l #   s y s c t l   - a   - r   ' ^ n e t . i p v [ 4 6 ] . ( i c m p | c o n f . d e f a u l t . a c c e p t ) '   |   c u t   - d =   - f 1 n e t . i p v 4 . c o n f . d e f a u l t . a c c e p t _ l o c a l   n e t . i p v 4 . c o n f . d e f a u l t . a c c e p t _ r e d i r e c t s   n e t . i p v 4 . c o n f . d e f a u l t . a c c e p t _ s o u r c e _ r o u t e   n e t . i p v 4 . i c m p _ e c h o _ i g n o r e _ a l l   n e t . i p v 4 . i c m p _ e c h o _ i g n o r e _ b r o a d c a s t s   n e t . i p v 4 . i c m p _ e r r o r s _ u s e _ i n b o u n d _ i f a d d r   n e t . i p v 4 . i c m p _ i g n o r e _ b o g u s _ e r r o r _ r e s p o n s e s   n e t . i p v 4 . i c m p _ m s g s _ b u r s t   n e t . i p v 4 . i c m p _ m s g s _ p e r _ s e c   n e t . i p v 4 . i c m p _ r a t e l i m i t   n e t . i p v 4 . i c m p _ r a t e m a s k   n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ d a d   n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ r a   n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ r a _ d e f r t r   n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ r a _ f r o m _ l o c a l . . . n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ r e d i r e c t s   n e t . i p v 6 . c o n f . d e f a u l t . a c c e p t _ s o u r c e _ r o u t e   n e t . i p v 6 . i c m p . r a t e l i m i t
I C M P I P W A N L A N I C M P I C M P v 6 I C M P R F C I C M P I P v 6 I P v 4 R F C 4 8 9 0   [ 1 0 ] 2 0 0 7 4 . 3 . 1 I C M P v 6 1   -   2 3   -   0 4   -   1 2 I C M P [ 9 ] 2 0 1 3 I C M P I C M P v 6 1 . I C M P v 4 - u n r e a c h - n e t | h o s t | f r a g - n e e d e d | a d m i n 2 . I C M P v 4 - t i m e d - t t l | r e a s s 3 . I C M P v 6 - u n r e a c h - n o - r o u t e | a d m i n - p r o h i b i t e d | a d d r | p o r t | r e j e c t - r o u t e 4 . I C M P v 6 5 . I C M P v 6 - t i m e d - h o p - l i m i t | r e a s s 6 . I C M P v 6   -   U N R E C 7 . I C M P v 6 - E R R - I C M P W A N I C M P I C M P v 6 N D P I C M P F T P 使 T C P I C M P I C M P I P L A N 1 2 3 4 U D P W A N A 使 1 . L A N W A N   u d p 1 2 3 4 2 . W A N L A N 3 . U D P 1 . I C M P 2 . 2 3
2 I C M P I C M P v 6 I P 4 n f t a b l e s T C P 1 . I P 2 . 3 . S E Q A C K n f t a b l e s U D P 1 . I P 2 . I C M P 1 . I P 2 . I C M P 1 . I P 2 . i d 3 . 使 S C T P U D P - L i t e n f t a b l e s P a c k e t   F i l t e r I C M P 1 . I P   /   I C M P I P v 6   /   I C M P v 6 ; 2 . I P I P v 6 ; 3 . ; 4 . I P  
I C M P - 使 I C M P   [ v 6 ] I C M P   [ v 6 ] n f t a b l e s P a c k e t   F i l t e r L i n u x O p e n B S D N F T A B L E S L i n u x n e t f i l t e r   c o n n t r a c k n e t f i l t e r / n f _ c o n n t r a c k _ c o r e . c n f _ c o n n t r a c k _ i n s k b n f _ c o n n t r a c k _ h a n d l e _ i c m p 4 I C M P I C M P v 6 I C M P - R e a c h a b l e   p a c k e t : [   I P   s r c = @ M   d s t = @ H   t y p e = I C M P   ] [   I C M P   t y p e = @ T y p e   c o d e = @ C o d e   ] [   I P   s r c = @ B   d s t = @ A   ] [   U D P   s p o r t = @ P b   d p o r t = P a   ] M :   t h e   a t t a c k e r   I P H :   t h e   d e s t i n a t i o n   I P   o n   w h i c h   I C M P   s h o u l d   b e   f i l t e r e d A :   h o s t   I P   f r o m   w h i c h   t h e   a t t a c k e r   k n o w s   a n   e x i s t i n g   s e s s i o n   w i t h   B B :   h o s t   I P   f r o m   w h i c h   t h e   a t t a c k e r   k n o w s   a n   e x i s t i n g   s e s s i o n   w i t h   A P a :   t h e   p o r t   u s e d   b y   A   i t s   U D P   s e s s i o n   w i t h   B P b :   t h e   p o r t   u s e d   b y   B   i t s   U D P   s e s s i o n   w i t h   A T y p e :   t h e   I C M P   t y p e   o f   a n   o u t - o f - b a n d   e r r o r   p a c k e t   ( e x a m p l e   3 ) C o d e :   t h e   I C M P   c o d e   o f   a n   o u t - o f - b a n d   e r r o r   p a c k e t   ( e x a m p l e   3 ) u n s i g n e d   i n t n f _ c o n n t r a c k _ i n ( s t r u c t   s k _ b u f f   * s k b ,   c o n s t   s t r u c t   n f _ h o o k _ s t a t e   * s t a t e ) {         / /   . .         l 4 p r o t o   =   _ _ n f _ c t _ l 4 p r o t o _ f i n d ( p r o t o n u m ) ;
n f _ c o n n t r a c k _ h a n d l e _ i c m p I C M P n f _ c o n n t r a c k _ i c m p v 4 _ e r r o r n f _ c o n n t r a c k _ i c m p v 6 _ e r r o r I C M P n f _ c o n n t r a c k _ i c m p v 4 _ e r r o r I C M P i c m p _ e r r o r _ m e s s a g e I C M P _ D E S T _ U N R E A C H I C M P _ P A R A M E T E R P R O B I C M P _ R E D I R E C T I C M P _ S O U R C E _ Q U E N C H I C M P _ T I M E _ E X C E E D E D i c m p _ e r r o r _ m e s s a g e         i f   ( p r o t o n u m   = =   I P P R O T O _ I C M P   | |   p r o t o n u m   = =   I P P R O T O _ I C M P V 6 )   {                 r e t   =   n f _ c o n n t r a c k _ h a n d l e _ i c m p ( t m p l ,   s k b ,   d a t a o f f ,                                                       p r o t o n u m ,   s t a t e ) ;                 i f   ( r e t   < =   0 )   {                         r e t   =   - r e t ;                         g o t o   o u t ;                 }                 / *   I C M P [ v 6 ]   p r o t o c o l   t r a c k e r s   m a y   a s s i g n   o n e   c o n n t r a c k .   * /                 i f   ( s k b - > _ n f c t )                         g o t o   o u t ;         }         / /   . . . } / *   S m a l l   a n d   m o d i f i e d   v e r s i o n   o f   i c m p _ r c v   * / i n t   n f _ c o n n t r a c k _ i c m p v 4 _ e r r o r ( s t r u c t   n f _ c o n n   * t m p l ,                                     s t r u c t   s k _ b u f f   * s k b ,   u n s i g n e d   i n t   d a t a o f f ,                                     c o n s t   s t r u c t   n f _ h o o k _ s t a t e   * s t a t e ) {         c o n s t   s t r u c t   i c m p h d r   * i c m p h ;         s t r u c t   i c m p h d r   _ i h ;         / *   N o t   e n o u g h   h e a d e r ?   * /         i c m p h   =   s k b _ h e a d e r _ p o i n t e r ( s k b ,   i p _ h d r l e n ( s k b ) ,   s i z e o f ( _ i h ) ,   & _ i h ) ;         i f   ( i c m p h   = =   N U L L )   {                 i c m p _ e r r o r _ l o g ( s k b ,   s t a t e ,   " s h o r t   p a c k e t " ) ;                 r e t u r n   - N F _ A C C E P T ;         }         / /   . . .         i f   ( i c m p h - > t y p e   >   N R _ I C M P _ T Y P E S )   {                 i c m p _ e r r o r _ l o g ( s k b ,   s t a t e ,   " i n v a l i d   i c m p   t y p e " ) ;                 r e t u r n   - N F _ A C C E P T ;         }         / *   N e e d   t o   t r a c k   i c m p   e r r o r   m e s s a g e ?   * /         i f   ( i c m p h - > t y p e   ! =   I C M P _ D E S T _ U N R E A C H   & &                 i c m p h - > t y p e   ! =   I C M P _ S O U R C E _ Q U E N C H   & &                 i c m p h - > t y p e   ! =   I C M P _ T I M E _ E X C E E D E D   & &                 i c m p h - > t y p e   ! =   I C M P _ P A R A M E T E R P R O B   & &                 i c m p h - > t y p e   ! =   I C M P _ R E D I R E C T )                 r e t u r n   N F _ A C C E P T ;         r e t u r n   i c m p _ e r r o r _ m e s s a g e ( t m p l ,   s k b ,   s t a t e ) ; } / *   R e t u r n s   c o n n t r a c k   i f   i t   d e a l t   w i t h   I C M P ,   a n d   f i l l e d   i n   s k b   f i e l d s   * / s t a t i c   i n t
1 . 使 n f _ c t _ z o n e _ t m p l s k b n f t a b l e s c o n n t r a c k 便 c o n n t r a c k N A T 0 C T 2 . n f _ c t _ g e t _ t u p l e p r I C M P I P i p   o r i g t u p l e 3 . n f _ c t _ i n v e r t _ t u p l e / 4 . n f _ c o n n t r a c k _ f i n d _ g e t I P 5 . n f _ c t _ s e t I P _ C T _ R E L A T E D s b k i c m p _ e r r o r _ m e s s a g e ( s t r u c t   n f _ c o n n   * t m p l ,   s t r u c t   s k _ b u f f   * s k b ,                                       c o n s t   s t r u c t   n f _ h o o k _ s t a t e   * s t a t e ) {         / /   . . .         W A R N _ O N ( s k b _ n f c t ( s k b ) ) ;         z o n e   =   n f _ c t _ z o n e _ t m p l ( t m p l ,   s k b ,   & t m p ) ;         / *   A r e   t h e y   t a l k i n g   a b o u t   o n e   o f   o u r   c o n n e c t i o n s ?   * /         i f   ( ! n f _ c t _ g e t _ t u p l e p r ( s k b ,                                       s k b _ n e t w o r k _ o f f s e t ( s k b )   +   i p _ h d r l e n ( s k b )                                                               +   s i z e o f ( s t r u c t   i c m p h d r ) ,                                       P F _ I N E T ,   s t a t e - > n e t ,   & o r i g t u p l e ) )   {                 p r _ d e b u g ( " i c m p _ e r r o r _ m e s s a g e :   f a i l e d   t o   g e t   t u p l e n " ) ;                 r e t u r n   - N F _ A C C E P T ;         }         / *   r c u _ r e a d _ l o c k ( ) e d   b y   n f _ h o o k _ t h r e s h   * /         i n n e r p r o t o   =   _ _ n f _ c t _ l 4 p r o t o _ f i n d ( o r i g t u p l e . d s t . p r o t o n u m ) ;         / *   O r d i n a r i l y ,   w e ' d   e x p e c t   t h e   i n v e r t e d   t u p l e p r o t o ,   b u t   i t ' s               b e e n   p r e s e r v e d   i n s i d e   t h e   I C M P .   * /         i f   ( ! n f _ c t _ i n v e r t _ t u p l e ( & i n n e r t u p l e ,   & o r i g t u p l e ,   i n n e r p r o t o ) )   {                 p r _ d e b u g ( " i c m p _ e r r o r _ m e s s a g e :   n o   m a t c h n " ) ;                 r e t u r n   - N F _ A C C E P T ;         }         c t i n f o   =   I P _ C T _ R E L A T E D ;         h   =   n f _ c o n n t r a c k _ f i n d _ g e t ( s t a t e - > n e t ,   z o n e ,   & i n n e r t u p l e ) ;         i f   ( ! h )   {                   p r _ d e b u g ( " i c m p _ e r r o r _ m e s s a g e :   n o   m a t c h n " ) ;                 r e t u r n   - N F _ A C C E P T ;         }         i f   ( N F _ C T _ D I R E C T I O N ( h )   = =   I P _ C T _ D I R _ R E P L Y )                 c t i n f o   + =   I P _ C T _ I S _ R E P L Y ;         / *   U p d a t e   s k b   t o   r e f e r   t o   t h i s   c o n n e c t i o n   * /         n f _ c t _ s e t ( s k b ,   n f _ c t _ t u p l e h a s h _ t o _ c t r a c k ( h ) ,   c t i n f o ) ;         r e t u r n   N F _ A C C E P T ; }
I C M P v 6 1 2 8 1 . 2 . / s y s / n e t / p f . c p f _ t e s t I C M P [ v 6 ] p f _ t e s t _ s t a t e _ i c m p 使 p f _ i c m p _ m a p p i n g p f _ t e s t ( s a _ f a m i l y _ t   a f ,   i n t   f w d i r ,   s t r u c t   i f n e t   * i f p ,   s t r u c t   m b u f   * * m 0 ) {         / /   . . .         s w i t c h   ( p d . v i r t u a l _ p r o t o )   {         c a s e   I P P R O T O _ I C M P :   {                 / /   l o o k   f o r   a   k n o w n   s t a t e                 a c t i o n   =   p f _ t e s t _ s t a t e _ i c m p ( & p d ,   & s ,   & r e a s o n ) ;                 s   =   p f _ s t a t e _ r e f ( s ) ;                 i f   ( a c t i o n   = =   P F _ P A S S   | |   a c t i o n   = =   P F _ A F R T )   {                         / /   i f   a   v a l i d   s t a t e   i s   f o u n d   t h e   p a c k e t   m i g h t   g o   t h e r e                         / /   w i t h o u t   b e i n g   t e s t e d   a g a i n s t   t h e   f i l t e r i n g   r u l e s                         r   =   s - > r u l e . p t r ;                         a   =   s - > a n c h o r . p t r ;                         p d . p f l o g   | =   s - > l o g ;                 }   e l s e   i f   ( s   = =   N U L L )   {                         / /   i f   n o   s t a t e   i s   f o u n d   t h e   p a c k e t   i s   t e s t e d                         a c t i o n   =   p f _ t e s t _ r u l e ( & p d ,   & r ,   & s ,   & a ,   & r u l e s e t ,   & r e a s o n ) ;                         s   =   p f _ s t a t e _ r e f ( s ) ;                 }                 b r e a k ;         }         c a s e   I P P R O T O _ I C M P V 6 :   {                 / /   l o o k   f o r   a   k n o w n   s t a t e                 a c t i o n   =   p f _ t e s t _ s t a t e _ i c m p ( & p d ,   & s ,   & r e a s o n ) ;                 s   =   p f _ s t a t e _ r e f ( s ) ;                 i f   ( a c t i o n   = =   P F _ P A S S   | |   a c t i o n   = =   P F _ A F R T )   {                         / /   i f   a   v a l i d   s t a t e   i s   f o u n d   t h e   p a c k e t   m i g h t   g o   t h e r e                         / /   w i t h o u t   b e i n g   t e s t e d   a g a i n s t   t h e   f i l t e r i n g   r u l e s                         r   =   s - > r u l e . p t r ;                         a   =   s - > a n c h o r . p t r ;                         p d . p f l o g   | =   s - > l o g ;                 }   e l s e   i f   ( s   = =   N U L L )   {                         / /   i f   n o   s t a t e   i s   f o u n d   t h e   p a c k e t   i s   t e s t e d                         a c t i o n   =   p f _ t e s t _ r u l e ( & p d ,   & r ,   & s ,   & a ,   & r u l e s e t ,   & r e a s o n ) ;                         s   =   p f _ s t a t e _ r e f ( s ) ;                 }                 b r e a k ;         }         / /   . . . }
I P 4 i n t   p f _ t e s t _ s t a t e _ i c m p ( s t r u c t   p f _ p d e s c   * p d ,   s t r u c t   p f _ s t a t e   * * s t a t e ,   u _ s h o r t   * r e a s o n )   {         / /   . . .         i f   ( p f _ i c m p _ m a p p i n g ( p d ,   i c m p t y p e ,   & i c m p _ d i r ,   & v i r t u a l _ i d ,   & v i r t u a l _ t y p e )   = =   0 )   {   / /   < - -   1                 / *                   *   I C M P   q u e r y / r e p l y   m e s s a g e   n o t   r e l a t e d   t o   a   T C P / U D P   p a c k e t .                   *   S e a r c h   f o r   a n   I C M P   s t a t e .                   * /                 / /   . . .         }   e l s e   {   / /   < - -   2                 / *                   *   I C M P   e r r o r   m e s s a g e   i n   r e s p o n s e   t o   a   T C P / U D P   p a c k e t .                   *   E x t r a c t   t h e   i n n e r   T C P / U D P   h e a d e r   a n d   s e a r c h   f o r   t h a t   s t a t e .                   * /                 s w i t c h   ( p d - > a f )   {                 c a s e   A F _ I N E T :   / /   < - -   3                         i f   ( ! p f _ p u l l _ h d r ( p d 2 . m ,   i p o f f 2 ,   & h 2 ,   s i z e o f ( h 2 ) ,   N U L L ,   r e a s o n ,   p d 2 . a f ) ) )                         {   / *   . . .   * /   }                 c a s e   A F _ I N E T 6 :   / /   < - -   4                         i f   ( ! p f _ p u l l _ h d r ( p d 2 . m ,   i p o f f 2 ,   & h 2 _ 6 ,   s i z e o f ( h 2 _ 6 ) ,   N U L L ,   r e a s o n ,   p d 2 . a f ) )                         {   / *   . . .   * /   }                         / /   . . .                 s w i t c h   ( p d 2 . p r o t o )   {                 c a s e   I P P R O T O _ T C P :   {                         s t r u c t   t c p h d r   * t h   =   & p d 2 . h d r . t c p ;                         / /   . . .                         i f   ( ! p f _ p u l l _ h d r ( p d 2 . m ,   p d 2 . o f f ,   t h ,   8 ,   N U L L ,   r e a s o n ,   p d 2 . a f ) )   {   / /   < - -   5                                 / /   . . .                         }                         k e y . a f   =   p d 2 . a f ;   / /   < - -   6                         k e y . p r o t o   =   I P P R O T O _ T C P ;                         k e y . r d o m a i n   =   p d 2 . r d o m a i n ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . s i d x ] ,   p d 2 . s r c ,   k e y . a f ) ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . d i d x ] ,   p d 2 . d s t ,   k e y . a f ) ;                         k e y . p o r t [ p d 2 . s i d x ]   =   t h - > t h _ s p o r t ;                         k e y . p o r t [ p d 2 . d i d x ]   =   t h - > t h _ d p o r t ;                         a c t i o n   =   p f _ f i n d _ s t a t e ( & p d 2 ,   & k e y ,   s t a t e ) ;   / /   < - -   7                         i f   ( a c t i o n   ! =   P F _ M A T C H )                                 r e t u r n   ( a c t i o n ) ;                         / /   . . .                         b r e a k ;                 }                 c a s e   I P P R O T O _ U D P :   {                         s t r u c t   u d p h d r   * u h   =   & p d 2 . h d r . u d p ;                         i n t   a c t i o n ;                         i f   ( ! p f _ p u l l _ h d r ( p d 2 . m ,   p d 2 . o f f ,   u h ,   s i z e o f ( * u h ) ,   N U L L ,   r e a s o n ,   p d 2 . a f ) )   {   / /   < - -   8                                 / /   . . .                         }                         k e y . a f   =   p d 2 . a f ;   / /   < - -   9                         k e y . p r o t o   =   I P P R O T O _ U D P ;                         k e y . r d o m a i n   =   p d 2 . r d o m a i n ;
1 . p f _ i c m p _ m a p p i n g 2 . 3 4 I P 5 8 U D P T C P 6 9 I P 7 1 0 P F _ P A S S p o c 4 L A N W A N 使 L i n u x   n f t a b l e s O p e n B S D P a c k e t   F i l t e r I P N A T 2 使 I P 使                         k e y . r d o m a i n   =   p d 2 . r d o m a i n ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . s i d x ] ,   p d 2 . s r c ,   k e y . a f ) ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . d i d x ] ,   p d 2 . d s t ,   k e y . a f ) ;                         k e y . p o r t [ p d 2 . s i d x ]   =   u h - > u h _ s p o r t ;                         k e y . p o r t [ p d 2 . d i d x ]   =   u h - > u h _ d p o r t ;                         a c t i o n   =   p f _ f i n d _ s t a t e ( & p d 2 ,   & k e y ,   s t a t e ) ;   / /   < - -   1 0                         i f   ( a c t i o n   ! =   P F _ M A T C H )                                 r e t u r n   ( a c t i o n ) ;                         b r e a k ;                 }                 c a s e   I P P R O T O _ I C M P :   {                         / /   . . .                         b r e a k ;                 }                 c a s e   I P P R O T O _ I C M P V 6 :   {                         / /   . . .                         b r e a k ;                 }                 d e f a u l t :   {   / /   < - -   1 1                         i n t   a c t i o n ;                         k e y . a f   =   p d 2 . a f ;                         k e y . p r o t o   =   p d 2 . p r o t o ;                         k e y . r d o m a i n   =   p d 2 . r d o m a i n ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . s i d x ] ,   p d 2 . s r c ,   k e y . a f ) ;                         P F _ A C P Y ( & k e y . a d d r [ p d 2 . d i d x ] ,   p d 2 . d s t ,   k e y . a f ) ;                         k e y . p o r t [ 0 ]   =   k e y . p o r t [ 1 ]   =   0 ;                         a c t i o n   =   p f _ f i n d _ s t a t e ( & p d 2 ,   & k e y ,   s t a t e ) ;                         / /   . . .                         b r e a k ;                 }         } 1 . I P v 4 I C M P _ U N R E A C H 2 . I P v 4 I C M P _ S O U R C E Q U E N C H 3 . I P v 4 I C M P _ R E D I R E C T 4 . I P v 4 I C M P _ T I M X C E E D 5 . I P v 4 I C M P _ P A R A M P R O B 6 . I P v 6 I C M P 6 _ D S T _ U N R E A C H 7 . I P v 6 I C M P 6 _ P A C K E T _ T O O _ B I G 8 . I P v 6 I C M P 6 _ T I M E _ E X C E E D E D 9 . I P v 6 I C M P 6 _ P A R A M _ P R O B
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则