[17918] 2021-02-11_projectdiscover之naabu端口扫描器源码学习

文档创建者:s7ckTeam
浏览次数:0
最后更新:2025-01-18
2021-02-11_projectdiscover之naabu端口扫描器源码学习 p r o j e c t d i s c o v e r n a a b u     w 8 a y   H a c k i n g   2 0 2 1 - 0 2 - 1 1   P r o j e c t D i s c o v e r y n a a b u h t t p s : / / g i t h u b . c o m / p r o j e c t d i s c o v e r y / n a a b u s y n / c o n n e c t H O S T   /   I P   /   C I D R S t d i n s t d o u t 使 s u b f i n d e r n u c l e i n a a b u d n s p r o b e   d n s h t t p x h t t p G o G o
2 .   7 .   9 .   c d n   c h e c k 1 .     n a a b u   - h o s t   h a c k e r o n e . c o m 3 .                                       _ _ 4 .       _ _ _     _ _ _     _ _ _   _ /   /     _ _   _ _ 5 .     /   _   /   _   /   _   /   _   /   / /   / 6 .   / _ / / _ / _ , _ / _ , _ / _ . _ _ / _ , _ /   v 2 . 0 . 3 8 .           p r o j e c t d i s c o v e r y . i o 1 0 .   [ W R N ]   U s e   w i t h   c a u t i o n .   Y o u   a r e   r e s p o n s i b l e   f o r   y o u r   a c t i o n s 1 1 .   [ W R N ]   D e v e l o p e r s   a s s u m e   n o   l i a b i l i t y   a n d   a r e   n o t   r e s p o n s i b l e   f o r   a n y   m i s u s e   o r   d a m a g e . 1 2 .   [ I N F ]   R u n n i n g   S Y N   s c a n   w i t h   r o o t   p r i v i l e g e s 1 3 .   [ I N F ]   F o u n d   4   p o r t s   o n   h o s t   h a c k e r o n e . c o m   ( 1 0 4 . 1 6 . 1 0 0 . 5 2 ) 1 4 .   h a c k e r o n e . c o m : 8 0 1 5 .   h a c k e r o n e . c o m : 4 4 3 1 6 .   h a c k e r o n e . c o m : 8 4 4 3 1 7 .   h a c k e r o n e . c o m : 8 0 8 0 v 2 / p k g / s c a n
c d n C D N i p i p i p 8 .   1 4 .   1 8 .   2 6 .   g i t h u b . c o m / p r o j e c t d i s c o v e r y / c d n c h e c k 1 .   / /   s c r a p e C l o u d f l a r e   s c r a p e s   c l o u d f l a r e   f i r e w a l l ' s   C I D R   r a n g e s   f r o m   t h e i r   A P I 2 .   f u n c   s c r a p e C l o u d f l a r e ( h t t p C l i e n t   * h t t p . C l i e n t )   ( [ ] s t r i n g ,   e r r o r )   { 3 .           r e s p ,   e r r   : =   h t t p C l i e n t . G e t ( " h t t p s : / / w w w . c l o u d f l a r e . c o m / i p s - v 4 " ) 4 .           i f   e r r   ! =   n i l   { 5 .                   r e t u r n   n i l ,   e r r 6 .           } 7 .           d e f e r   r e s p . B o d y . C l o s e ( ) 9 .           d a t a ,   e r r   : =   i o u t i l . R e a d A l l ( r e s p . B o d y ) 1 0 .           i f   e r r   ! =   n i l   { 1 1 .                   r e t u r n   n i l ,   e r r 1 2 .           } 1 3 .           b o d y   : =   s t r i n g ( d a t a ) 1 5 .           c i d r s   : =   c i d r R e g e x . F i n d A l l S t r i n g ( b o d y ,   - 1 ) 1 6 .           r e t u r n   c i d r s ,   n i l 1 7 .   } 1 9 .   / /   s c r a p e I n c a p s u l a   s c r a p e s   i n c a p s u l a   f i r e w a l l ' s   C I D R   r a n g e s   f r o m   t h e i r   A P I 2 0 .   f u n c   s c r a p e I n c a p s u l a ( h t t p C l i e n t   * h t t p . C l i e n t )   ( [ ] s t r i n g ,   e r r o r )   { 2 1 .           r e q ,   e r r   : =   h t t p . N e w R e q u e s t ( h t t p . M e t h o d P o s t ,   " h t t p s : / / m y . i n c a p s u l a . c o m / a p i / i n t e g r a t i o n / v 1 / i p s " ,   s t r i n g s . N e w R e a d e r ( " r e s p _ f o r m a t = t e x t " ) ) 2 2 .           i f   e r r   ! =   n i l   { 2 3 .                   r e t u r n   n i l ,   e r r 2 4 .           } 2 5 .           r e q . H e a d e r . S e t ( " C o n t e n t - T y p e " ,   " a p p l i c a t i o n / x - w w w - f o r m - u r l e n c o d e d " ) 2 7 .           r e s p ,   e r r   : =   h t t p C l i e n t . D o ( r e q ) 2 8 .           i f   e r r   ! =   n i l   { 2 9 .                   r e t u r n   n i l ,   e r r 3 0 .           }         d e f e r   r e s p . B o d y . C l o s e ( )
3 2 .   3 8 .   4 2 .   5 0 .   5 6 .   6 0 .   6 8 .   3 1 .           d e f e r   r e s p . B o d y . C l o s e ( ) 3 3 .           d a t a ,   e r r   : =   i o u t i l . R e a d A l l ( r e s p . B o d y ) 3 4 .           i f   e r r   ! =   n i l   { 3 5 .                   r e t u r n   n i l ,   e r r 3 6 .           } 3 7 .           b o d y   : =   s t r i n g ( d a t a ) 3 9 .           c i d r s   : =   c i d r R e g e x . F i n d A l l S t r i n g ( b o d y ,   - 1 ) 4 0 .           r e t u r n   c i d r s ,   n i l 4 1 .   } 4 3 .   / /   s c r a p e A k a m a i   s c r a p e s   a k a m a i   f i r e w a l l ' s   C I D R   r a n g e s   f r o m   i p i n f o 4 4 .   f u n c   s c r a p e A k a m a i ( h t t p C l i e n t   * h t t p . C l i e n t )   ( [ ] s t r i n g ,   e r r o r )   { 4 5 .           r e s p ,   e r r   : =   h t t p C l i e n t . G e t ( " h t t p s : / / i p i n f o . i o / A S 1 2 2 2 2 " ) 4 6 .           i f   e r r   ! =   n i l   { 4 7 .                   r e t u r n   n i l ,   e r r 4 8 .           } 4 9 .           d e f e r   r e s p . B o d y . C l o s e ( ) 5 1 .           d a t a ,   e r r   : =   i o u t i l . R e a d A l l ( r e s p . B o d y ) 5 2 .           i f   e r r   ! =   n i l   { 5 3 .                   r e t u r n   n i l ,   e r r 5 4 .           } 5 5 .           b o d y   : =   s t r i n g ( d a t a ) 5 7 .           c i d r s   : =   c i d r R e g e x . F i n d A l l S t r i n g ( b o d y ,   - 1 ) 5 8 .           r e t u r n   c i d r s ,   n i l 5 9 .   } 6 1 .   / /   s c r a p e S u c u r i   s c r a p e s   s u c u r i   f i r e w a l l ' s   C I D R   r a n g e s   f r o m   i p i n f o 6 2 .   f u n c   s c r a p e S u c u r i ( h t t p C l i e n t   * h t t p . C l i e n t )   ( [ ] s t r i n g ,   e r r o r )   { 6 3 .           r e s p ,   e r r   : =   h t t p C l i e n t . G e t ( " h t t p s : / / i p i n f o . i o / A S 3 0 1 4 8 " ) 6 4 .           i f   e r r   ! =   n i l   { 6 5 .                   r e t u r n   n i l ,   e r r 6 6 .           } 6 7 .           d e f e r   r e s p . B o d y . C l o s e ( )
6 8 .   7 4 .   7 8 .   8 5 .   9 1 .   c o n n e c t n a a b u c o n n e c t t c p 6 9 .           d a t a ,   e r r   : =   i o u t i l . R e a d A l l ( r e s p . B o d y ) 7 0 .           i f   e r r   ! =   n i l   { 7 1 .                   r e t u r n   n i l ,   e r r 7 2 .           } 7 3 .           b o d y   : =   s t r i n g ( d a t a ) 7 5 .           c i d r s   : =   c i d r R e g e x . F i n d A l l S t r i n g ( b o d y ,   - 1 ) 7 6 .           r e t u r n   c i d r s ,   n i l 7 7 .   } 7 9 .   f u n c   s c r a p e P r o j e c t D i s c o v e r y ( h t t p C l i e n t   * h t t p . C l i e n t )   ( [ ] s t r i n g ,   e r r o r )   { 8 0 .           r e s p ,   e r r   : =   h t t p C l i e n t . G e t ( " h t t p s : / / c d n . p r o j e c t d i s c o v e r y . i o / c d n / c d n - i p s " ) 8 1 .           i f   e r r   ! =   n i l   { 8 2 .                   r e t u r n   n i l ,   e r r 8 3 .           } 8 4 .           d e f e r   r e s p . B o d y . C l o s e ( ) 8 6 .           d a t a ,   e r r   : =   i o u t i l . R e a d A l l ( r e s p . B o d y ) 8 7 .           i f   e r r   ! =   n i l   { 8 8 .                   r e t u r n   n i l ,   e r r 8 9 .           } 9 0 .           b o d y   : =   s t r i n g ( d a t a ) 9 2 .           c i d r s   : =   c i d r R e g e x . F i n d A l l S t r i n g ( b o d y ,   - 1 ) 9 3 .           r e t u r n   c i d r s ,   n i l 9 4 .   }
s y n s y n u n i x w i n d o w s c o n n e c t s y n s y n t c p 1 .   / /   C o n n e c t V e r i f y   i s   u s e d   t o   v e r i f y   i f   p o r t s   a r e   a c c u r a t e   u s i n g   a   c o n n e c t   r e q u e s t 2 .   f u n c   ( s   * S c a n n e r )   C o n n e c t V e r i f y ( h o s t   s t r i n g ,   p o r t s   m a p [ i n t ] s t r u c t { } )   m a p [ i n t ] s t r u c t { }   { 3 .           f o r   p o r t   : =   r a n g e   p o r t s   { 4 .                   c o n n ,   e r r   : =   n e t . D i a l T i m e o u t ( " t c p " ,   f m t . S p r i n t f ( " % s : % d " ,   h o s t ,   p o r t ) ,   s . t i m e o u t ) 5 .                   i f   e r r   ! =   n i l   { 6 .                           d e l e t e ( p o r t s ,   p o r t ) 7 .                           c o n t i n u e 8 .                   } 9 .                   g o l o g g e r . D e b u g f ( " V a l i d a t e d   a c t i v e   p o r t   % d   o n   % s n " ,   p o r t ,   h o s t ) 1 0 .                   c o n n . C l o s e ( ) 1 1 .           } 1 2 .           r e t u r n   p o r t s 1 3 .   }
2 .   9 .   1 5 .   1 8 .   1 .   i m p o r t   g i t h u b . c o m / p h a y e s / f r e e p o r t 3 .   f u n c   N e w S c a n n e r U n i x ( s c a n n e r   * S c a n n e r )   e r r o r   { 4 .           r a w P o r t ,   e r r   : =   f r e e p o r t . G e t F r e e P o r t ( ) 5 .           i f   e r r   ! =   n i l   { 6 .                   r e t u r n   e r r 7 .           } 8 .           s c a n n e r . l i s t e n P o r t   =   r a w P o r t 1 0 .           t c p C o n n ,   e r r   : =   n e t . L i s t e n I P ( " i p 4 : t c p " ,   & n e t . I P A d d r { I P :   n e t . P a r s e I P ( f m t . S p r i n t f ( " 0 . 0 . 0 . 0 : % d " ,   r a w P o r t ) ) } ) 1 1 .           i f   e r r   ! =   n i l   { 1 2 .                   r e t u r n   e r r 1 3 .           } 1 4 .           s c a n n e r . t c p P a c k e t l i s t e n e r   =   t c p C o n n 1 6 .           v a r   h a n d l e r s   H a n d l e r s 1 7 .           s c a n n e r . h a n d l e r s   =   h a n d l e r s 1 9 .           s c a n n e r . t c p C h a n   =   m a k e ( c h a n   * P k g R e s u l t ,   c h a n S i z e ) 2 0 .           s c a n n e r . t c p P a c k e t S e n d   =   m a k e ( c h a n   * P k g S e n d ,   p a c k e t S e n d S i z e ) 2 1 .           r e t u r n   n i l 2 2 .   }
S e t u p H a n d l e r U n i x   9 .   1 5 .   1 .   c o n s t   ( 2 .           m a x R e t r i e s           =   1 0 3 .           s e n d D e l a y M s e c     =   1 0 4 .           c h a n S i z e               =   1 0 0 0 5 .           p a c k e t S e n d S i z e   =   2 5 0 0 6 .           s n a p l e n                 =   6 5 5 3 6 7 .           r e a d t i m e o u t         =   1 5 0 0 8 .   ) 1 0 .   f u n c   S e t u p H a n d l e r U n i x ( s   * S c a n n e r ,   i n t e r f a c e N a m e   s t r i n g )   e r r o r   { 1 1 .           i n a c t i v e ,   e r r   : =   p c a p . N e w I n a c t i v e H a n d l e ( i n t e r f a c e N a m e ) 1 2 .           i f   e r r   ! =   n i l   { 1 3 .                   r e t u r n   e r r 1 4 .           } 1 6 .           e r r   =   i n a c t i v e . S e t S n a p L e n ( s n a p l e n ) 1 7 .           i f   e r r   ! =   n i l   {                 r e t u r n   e r r
2 0 .   3 0 .   3 3 .   3 9 .   4 1 .   5 1 .   1 8 .                   r e t u r n   e r r 1 9 .           } 2 1 .           r e a d T i m e o u t   : =   t i m e . D u r a t i o n ( r e a d t i m e o u t )   *   t i m e . M i l l i s e c o n d 2 2 .           i f   e r r   =   i n a c t i v e . S e t T i m e o u t ( r e a d T i m e o u t ) ;   e r r   ! =   n i l   { 2 3 .                   s . C l e a n u p H a n d l e r s ( ) 2 4 .                   r e t u r n   e r r 2 5 .           } 2 6 .           e r r   =   i n a c t i v e . S e t I m m e d i a t e M o d e ( t r u e ) 2 7 .           i f   e r r   ! =   n i l   { 2 8 .                   r e t u r n   e r r 2 9 .           } 3 1 .           h a n d l e r s   : =   s . h a n d l e r s . ( H a n d l e r s ) 3 2 .           h a n d l e r s . I n a c t i v e   =   a p p e n d ( h a n d l e r s . I n a c t i v e ,   i n a c t i v e ) 3 4 .           h a n d l e ,   e r r   : =   i n a c t i v e . A c t i v a t e ( ) 3 5 .           i f   e r r   ! =   n i l   { 3 6 .                   s . C l e a n u p H a n d l e r s ( ) 3 7 .                   r e t u r n   e r r 3 8 .           } 4 0 .           h a n d l e r s . A c t i v e   =   a p p e n d ( h a n d l e r s . A c t i v e ,   h a n d l e ) 4 2 .           / /   S t r i c t   B P F   f i l t e r 4 3 .           / /   +   P a c k e t s   c o m i n g   f r o m   t a r g e t   i p 4 4 .           / /   +   D e s t i n a t i o n   p o r t   e q u a l s   t o   s e n d e r   s o c k e t   s o u r c e   p o r t 4 5 .           e r r   =   h a n d l e . S e t B P F F i l t e r ( f m t . S p r i n t f ( " t c p   a n d   d s t   p o r t   % d   a n d   t c p [ 1 3 ] = 1 8 " ,   s . l i s t e n P o r t ) ) 4 6 .           i f   e r r   ! =   n i l   { 4 7 .                   s . C l e a n u p H a n d l e r s ( ) 4 8 .                   r e t u r n   e r r 4 9 .           } 5 0 .           s . h a n d l e r s   =   h a n d l e r s 5 2 .           r e t u r n   n i l 5 3 .   }
% d   t c p [ 1 3 ] = 1 8   t c p 1 8 T C P   S Y N p c a p 3 .   5 .   7 .   1 2 .   1 8 .   2 3 .   2 6 .   2 8 .   t c p a n d d s t   p o r t % d a n d t c p [ 1 3 ] = 1 8 1 .   f u n c   T C P R e a d W o r k e r P C A P U n i x ( s   * S c a n n e r )   { 2 .           d e f e r   s . C l e a n u p H a n d l e r s ( ) 4 .           v a r   w g r e a d   s y n c . W a i t G r o u p 6 .           h a n d l e r s   : =   s . h a n d l e r s . ( H a n d l e r s ) 8 .           f o r   _ ,   h a n d l e r   : =   r a n g e   h a n d l e r s . A c t i v e   { 9 .                   w g r e a d . A d d ( 1 ) 1 0 .                   g o   f u n c ( h a n d l e r   * p c a p . H a n d l e )   { 1 1 .                           d e f e r   w g r e a d . D o n e ( ) 1 3 .                           v a r   ( 1 4 .                                   e t h   l a y e r s . E t h e r n e t 1 5 .                                   i p 4   l a y e r s . I P v 4 1 6 .                                   t c p   l a y e r s . T C P 1 7 .                           ) 1 9 .                           / /   I n t e r f a c e s   w i t h   M A C   ( P h y s i c a l   +   V i r t u a l i z e d ) 2 0 .                           p a r s e r M a c   : =   g o p a c k e t . N e w D e c o d i n g L a y e r P a r s e r ( l a y e r s . L a y e r T y p e E t h e r n e t ,   ð ,   & i p 4 ,   & t c p ) 2 1 .                           / /   I n t e r f a c e s   w i t h o u t   M A C   ( T U N / T A P ) 2 2 .                           p a r s e r N o M a c   : =   g o p a c k e t . N e w D e c o d i n g L a y e r P a r s e r ( l a y e r s . L a y e r T y p e I P v 4 ,   & i p 4 ,   & t c p ) 2 4 .                           v a r   p a r s e r s   [ ] * g o p a c k e t . D e c o d i n g L a y e r P a r s e r 2 5 .                           p a r s e r s   =   a p p e n d ( p a r s e r s ,   p a r s e r M a c ,   p a r s e r N o M a c ) 2 7 .                           d e c o d e d   : =   [ ] g o p a c k e t . L a y e r T y p e { } 2 9 .                           f o r   { 3 0 .                                   d a t a ,   _ ,   e r r   : =   h a n d l e r . R e a d P a c k e t D a t a ( ) 3 1 .                                   i f   e r r   = =   i o . E O F   {
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则