[14078] 2019-05-07_代理蜜罐的开发与应用实战

文档创建者:s7ckTeam
浏览次数:4
最后更新:2025-01-18
2019-05-07_代理蜜罐的开发与应用实战 n e t x f l y   F r e e B u f   2 0 1 9 - 0 5 - 0 7 使 I P 访 U R L s o c k h t t p 使 V P N v p n v p n i p t a b l e s V P N v p n w e b d e m o V P N A g e n t h t t p s e r v e r S e r v e r A g e n t m o n g o d b 便 A g e n t g o p r o x y g o p r o x y g o p r o x y h t t p h t t p H T T P S h t t p s h t t p   V P N   N o r d V P N   $ 5 0   广 n e t / h t t p   h a n d l e r n e t / h t t p   h a n d l e r p a c k a g e   m a i n i m p o r t   (         " g i t h u b . c o m / e l a z a r l / g o p r o x y "         " l o g "         " n e t / h t t p " ) f u n c   m a i n ( )   {         p r o x y   : =   g o p r o x y . N e w P r o x y H t t p S e r v e r ( )         p r o x y . V e r b o s e   =   t r u e         l o g . F a t a l ( h t t p . L i s t e n A n d S e r v e ( " : 8 0 8 0 " ,   p r o x y ) ) }
h t t p   s e r v e r 2 M I T M h t t p / h t t p s C o n n e c t M i t m T I P S p r o x y r e q u e s t p r o x y P r o x y H t t p S e r v e r h t t p . L i s t e n A n d S e r v e H a n d l e r L i s t e n A n d S e r v e t y p e   H a n d l e r   i n t e r f a c e   {         S e r v e H T T P ( R e s p o n s e W r i t e r ,   * R e q u e s t ) } f u n c   L i s t e n A n d S e r v e ( a d d r   s t r i n g ,   h a n d l e r   H a n d l e r )   e r r o r P r o x y H t t p S e r v e r S e r v e H T T P f u n c   ( p r o x y   * P r o x y H t t p S e r v e r )   S e r v e H T T P ( w   h t t p . R e s p o n s e W r i t e r ,   r   * h t t p . R e q u e s t ) n e t / h t t p p a c k a g e   m a i n i m p o r t   (         " n e t / h t t p " ) f u n c   m a i n ( )   {         m u x   : =   h t t p . N e w S e r v e M u x ( )         m u x . H a n d l e F u n c ( " / " ,   f u n c ( w   h t t p . R e s p o n s e W r i t e r ,   r   * h t t p . R e q u e s t )   {                 w . W r i t e ( [ ] b y t e ( " " ) )         } )         h t t p . L i s t e n A n d S e r v e ( " : 8 0 8 0 " ,   m u x ) } p r o x y m u x L i s t e n A n d S e r v e n e t / h t t p   h a n d l e r p a c k a g e   m a i n i m p o r t   (         " g i t h u b . c o m / e l a z a r l / g o p r o x y "         " l o g "         " f l a g "         " n e t / h t t p " ) f u n c   m a i n ( )   {         v e r b o s e   : =   f l a g . B o o l ( " v " ,   f a l s e ,   " s h o u l d   e v e r y   p r o x y   r e q u e s t   b e   l o g g e d   t o   s t d o u t " )         a d d r   : =   f l a g . S t r i n g ( " a d d r " ,   " : 8 0 8 0 " ,   " p r o x y   l i s t e n   a d d r e s s " )         f l a g . P a r s e ( )         p r o x y   : =   g o p r o x y . N e w P r o x y H t t p S e r v e r ( )         p r o x y . V e r b o s e   =   * v e r b o s e         / /   C O N N E C T A l w a y s M i t m         p r o x y . O n R e q u e s t ( ) . H a n d l e C o n n e c t ( g o p r o x y . A l w a y s M i t m )         l o g . F a t a l ( h t t p . L i s t e n A n d S e r v e ( * a d d r ,   p r o x y ) ) } M I T M M a n - i n - t h e - M i d d l e A t t a c k M I T M O n R e q u e s t R e q P r o x y C o n d s R e q P r o x y C o n d s D o F u n c / /   P r o x y H t t p S e r v e r . O n R e q u e s t   W i l l   r e t u r n   a   t e m p o r a r y   R e q P r o x y C o n d s   s t r u c t ,   a g g r e g a t i n g   t h e   g i v e n   c o n d t i o n s . / /   Y o u   w i l l   u s e   t h e   R e q P r o x y C o n d s   s t r u c t   t o   r e g i s t e r   a   R e q H a n d l e r ,   t h a t   w o u l d   f i l t e r / /   t h e   r e q u e s t ,   o n l y   i f   a l l   t h e   g i v e n   R e q C o n d i t i o n   m a t c h e d . / /   T y p i c a l   u s a g e : / /         p r o x y . O n R e q u e s t ( U r l I s ( " e x a m p l e . c o m / f o o " ) , U r l M a t c h e s ( r e g e x p . M u s t P a r s e ( ` . * . e x a m p l . c o m . / . * ` ) ) . D o ( . . . ) f u n c   ( p r o x y   * P r o x y H t t p S e r v e r )   O n R e q u e s t ( c o n d s   . . . R e q C o n d i t i o n )   * R e q P r o x y C o n d s   {         r e t u r n   & R e q P r o x y C o n d s { p r o x y ,   c o n d s } } / /   D o F u n c   i s   e q u i v a l e n t   t o   p r o x y . O n R e q u e s t ( ) . D o ( F u n c R e q H a n d l e r ( f ) ) f u n c   ( p c o n d   * R e q P r o x y C o n d s )   D o F u n c ( f   f u n c ( r e q   * h t t p . R e q u e s t ,   c t x   * P r o x y C t x )   ( * h t t p . R e q u e s t ,   * h t t p . R e s p o n s e ) )   {         p c o n d . D o ( F u n c R e q H a n d l e r ( f ) ) } p r o x y . O n R e q u e s t ( ) . H a n d l e C o n n e c t ( g o p r o x y . A l w a y s M i t m ) p r o x y . O n R e q u e s t ( ) . D o F u n c ( m o d u l e s . R e q H a n d l e r F u n c ) l o g . F a t a l ( h t t p . L i s t e n A n d S e r v e ( * a d d r ,   p r o x y ) ) m o d u l e s . R e q H a n d l e r F u n c D o F u n c f u n c   R e q H a n d l e r F u n c ( r e q   * h t t p . R e q u e s t ,   c t x   * g o p r o x y . P r o x y C t x )   ( * h t t p . R e q u e s t ,   * h t t p . R e s p o n s e )   {         r e t u r n   r e q ,   n i l } h t t p . R e q u e s t g o p r o x y . P r o x y C t x p r o x y . O n R e s p o n s e ( ) . D o F u n c R e s p H a n d l e r F u n c
O n R e s p o n s e P r o x y C t x r e q u e s t m a p k e y s e s s i o n _ i d 使 使 p r o x y H T T P   P O S T S e r v e r s e r v e r s t r u c t j s o n g o p r o x y r e p o n s e O n R e q u e s t ( ) . D o F u n c R e q H a n d l e r F u n c f u n c   R e q H a n d l e r F u n c ( r e q   * h t t p . R e q u e s t ,   c t x   * g o p r o x y . P r o x y C t x )   ( * h t t p . R e q u e s t ,   * h t t p . R e s p o n s e )   {         v a r s . C m a p . S e t ( f m t . S p r i n t f ( " s e s s _ % v " ,   c t x . S e s s i o n ) ,   r e q )         i f   r e q   ! =   n i l   {                 b u f ,   _   : =   i o u t i l . R e a d A l l ( r e q . B o d y )                 r e q T m p 1   : =   i o u t i l . N o p C l o s e r ( b y t e s . N e w B u f f e r ( b u f ) )                 / /   r e g . b o d y                 r e q . B o d y   =   r e q T m p 1                 / /   使 r e g . b o d y                 _   =   r e q . P a r s e F o r m ( )                 p a r a m s   : =   r e q . F o r m                 r e q T m p   : =   i o u t i l . N o p C l o s e r ( b y t e s . N e w B u f f e r ( b u f ) )                 / /   r e g . b o d y                 r e q . B o d y   =   r e q T m p                 v a r s . C m a p . S e t ( f m t . S p r i n t f ( " s e s s _ % v " ,   c t x . S e s s i o n ) ,   p a r a m s )         }         r e t u r n   r e q ,   n i l } r e g . b o d y i o . R e a d C l o s e r i o u t i l . N o p C l o s e r p r o x y . O n R e s p o n s e ( ) . D o F u n c ( m o d u l e s . R e s p H a n d l e r F u n c ) R e s p H a n d l e r F u n c f u n c   R e s p H a n d l e r F u n c ( r e s p   * h t t p . R e s p o n s e ,   c t x   * g o p r o x y . P r o x y C t x )   * h t t p . R e s p o n s e   {         i f   r e s p   ! =   n i l   {                 t ,   o k   : =   v a r s . C m a p . G e t ( f m t . S p r i n t f ( " s e s s _ % v " ,   c t x . S e s s i o n ) )                 d e f e r   v a r s . C m a p . R e m o v e ( f m t . S p r i n t f ( " s e s s _ % v " ,   c t x . S e s s i o n ) )                 i f   o k   {                         p a r a m s ,   _   : =   t . ( u r l . V a l u e s )                         / / l o g . L o g g e r . E r r o r f ( " p a r a m s :   % v ,   o k :   % v " ,   p a r a m s ,   o k )                         m e t a   : =   N e w M e t a ( c t x ,   p a r a m s ,   t i m e . N o w ( ) )                         m e t a . r e a d B o d y ( )                         r   : =   m e t a . P a r s e ( )                         r . p r i n t ( )                         d a t a ,   e r r   : =   r . J s o n ( )                         i f   e r r   = =   n i l   {                                 g o   f u n c ( )   {                                         _   =   a p i . P o s t ( s t r i n g ( d a t a ) )                                 } ( )                         }                 }         }         r e t u r n   r e s p } t y p e (         H t t p R e c o r d   s t r u c t   {                 I d                         i n t 6 4               ` j s o n : " i d " `                 S e s s i o n               i n t 6 4               ` j s o n : " s e s s i o n " `                 M e t h o d                 s t r i n g             ` j s o n : " m e t h o d " `                 R e m o t e A d d r         s t r i n g             ` j s o n : " r e m o t e _ a d d r " `                 S t a t u s C o d e         i n t                   ` j s o n : " s t a t u s " `                 C o n t e n t L e n g t h   i n t 6 4               ` j s o n : " c o n t e n t _ l e n g t h " `                 H o s t                     s t r i n g             ` j s o n : " h o s t " `                 P o r t                     s t r i n g             ` j s o n : " p o r t " `                 U r l                       s t r i n g             ` j s o n : " u r l " `                 S c h e m e                 s t r i n g             ` j s o n : " s c h e m e " `                 P a t h                     s t r i n g             ` j s o n : " p a t h " `                 R e q H e a d e r           h t t p . H e a d e r   ` j s o n : " r e q _ h e a d e r " `                 R e s p H e a d e r         h t t p . H e a d e r   ` j s o n : " r e s p _ h e a d e r " `                 R e q u e s t P a r a m     u r l . V a l u e s     ` j s o n : " r e q u e s t _ p a r a m " `                 R e q u e s t B o d y       [ ] b y t e             ` j s o n : " r e q u e s t _ b o d y " `                 R e s p o n s e B o d y     [ ] b y t e             ` j s o n : " r e s p o n s e _ b o d y " `                 V i s i t T i m e           t i m e . T i m e       ` j s o n : " v i s i t _ t i m e " `         } ) g i t h u b . c o m / e l a z a r l / g o p r o x y / e x t / h t m l v a r   I s H t m l   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / h t m l " )
O n R e s p o n s e h t t p g o p r o x y h t t p s A g e n t c e r t s s h 使 使 h t t p s A g e n t 使 使 A g e n t H O S T a g e n t 0 . 0 . 0 . 0 P O R T a g e n t D E B U G d e b u g M O D E s e r v e r h t t p A P I _ U R L s e r v e r A P I v a r   I s C s s   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / c s s " ) v a r   I s J a v a S c r i p t   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / j a v a s c r i p t " ,         " a p p l i c a t i o n / j a v a s c r i p t " ) v a r   I s J s o n   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / j s o n " ) v a r   I s X m l   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / x m l " ) v a r   I s W e b R e l a t e d T e x t   g o p r o x y . R e s p C o n d i t i o n   =   g o p r o x y . C o n t e n t T y p e I s ( " t e x t / h t m l " ,         " t e x t / c s s " ,         " t e x t / j a v a s c r i p t " ,   " a p p l i c a t i o n / j a v a s c r i p t " ,         " t e x t / x m l " ,         " t e x t / j s o n " ) g o p r o x y _ h t m l . I s W e b R e l a t e d T e x t p r o x y . O n R e s p o n s e ( g o p r o x y _ h t m l . I s W e b R e l a t e d T e x t ) . D o F u n c ( m o d u l e s . R e s p H a n d l e r F u n c ) g o p r o x y . G o p r o x y C a f u n c   s e t C A ( c a C e r t ,   c a K e y   [ ] b y t e )   e r r o r   {         g o p r o x y C a ,   e r r   : =   t l s . X 5 0 9 K e y P a i r ( c a C e r t ,   c a K e y )         i f   e r r   ! =   n i l   {                 r e t u r n   e r r         }         i f   g o p r o x y C a . L e a f ,   e r r   =   x 5 0 9 . P a r s e C e r t i f i c a t e ( g o p r o x y C a . C e r t i f i c a t e [ 0 ] ) ;   e r r   ! =   n i l   {                 r e t u r n   e r r         }         g o p r o x y . G o p r o x y C a   =   g o p r o x y C a         g o p r o x y . O k C o n n e c t   =   & g o p r o x y . C o n n e c t A c t i o n { A c t i o n :   g o p r o x y . C o n n e c t A c c e p t ,   T L S C o n f i g :   g o p r o x y . T L S C o n f i g F r o m C A ( & g o p r o x y C a ) }         g o p r o x y . M i t m C o n n e c t   =   & g o p r o x y . C o n n e c t A c t i o n { A c t i o n :   g o p r o x y . C o n n e c t M i t m ,   T L S C o n f i g :   g o p r o x y . T L S C o n f i g F r o m C A ( & g o p r o x y C a ) }         g o p r o x y . H T T P M i t m C o n n e c t   =   & g o p r o x y . C o n n e c t A c t i o n { A c t i o n :   g o p r o x y . C o n n e c t H T T P M i t m ,   T L S C o n f i g :   g o p r o x y . T L S C o n f i g F r o m C A ( & g o p r o x y C a ) }         g o p r o x y . R e j e c t C o n n e c t   =   & g o p r o x y . C o n n e c t A c t i o n { A c t i o n :   g o p r o x y . C o n n e c t R e j e c t ,   T L S C o n f i g :   g o p r o x y . T L S C o n f i g F r o m C A ( & g o p r o x y C a ) }         r e t u r n   n i l } f u n c   S e t C A ( )   ( e r r   e r r o r )   {         c a C e r t ,   e r r C e r t   : =   R e a d F i l e ( v a r s . C a C e r t )         c a K e y ,   e r r K e y   : =   R e a d F i l e ( v a r s . C a K e y )         i f   e r r C e r t   = =   n i l   & &   e r r K e y   = =   n i l   {                 e r r   =   s e t C A ( c a C e r t ,   c a K e y )         }         r e t u r n   e r r } [ p r o x y ] H O S T   =   P O R T   =   1 0 8 0 D E B U G   =   f a l s e [ s e r v e r ] M O D E   =   h t t p S E C R E T   =   a p i _ s e c r e t _ k e y A P I _ U R L   =   h t t p : / / x _ p r o x y _ s e r v e r : 8 0 / a p i / s e n d
S E C R E T a p i k e y . / a g e n t   s e r v e E R R O R L O G 使 I P s e r v e r S e r v e r h t t p s e r v e r a p i n g i n x $   . / a g e n t                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             N A M E :       a g e n t   -   x - p r o x y   a g e n t U S A G E :       a g e n t   [ g l o b a l   o p t i o n s ]   c o m m a n d   [ c o m m a n d   o p t i o n s ]   [ a r g u m e n t s . . . ] V E R S I O N :       0 . 1 C O M M A N D S :           s e r v e         s t a r t   x - p r o x y   a g e n t           h e l p ,   h     S h o w s   a   l i s t   o f   c o m m a n d s   o r   h e l p   f o r   o n e   c o m m a n d G L O B A L   O P T I O N S :       - - d e b u g ,   - d                           d e b u g   m o d e       - - p o r t   v a l u e ,   - p   v a l u e     p r o x y   p o r t   ( d e f a u l t :   1 0 8 0 )       - - h e l p ,   - h                             s h o w   h e l p       - - v e r s i o n ,   - v                       p r i n t   t h e   v e r s i o n m y s q l m o n g o d b m a c r o n f u n c   S t a r t ( )   {         m   : =   m a c a r o n . C l a s s i c ( )         m . U s e ( m a c a r o n . R e n d e r e r ( ) )         m . G e t ( " / " ,   r o u t e r s . I n d e x )         m . P o s t ( " / a p i / s e n d " ,   r o u t e r s . R e c v D a t a )         l o g . L o g g e r . I n f o f ( " s t a r t   w e b   s e r v e r   a t :   % v " ,   s e t t i n g s . H t t p P o r t )         l o g . L o g g e r . D e b u g ( h t t p . L i s t e n A n d S e r v e ( f m t . S p r i n t f ( " 0 . 0 . 0 . 0 : % v " ,   s e t t i n g s . H t t p P o r t ) ,   m ) ) } r o u t e r s . R e c v D a t a f u n c   R e c v D a t a ( c t x   * m a c a r o n . C o n t e x t )   {         _   =   c t x . R e q . P a r s e F o r m ( )         t i m e s t a m p   : =   c t x . R e q . F o r m . G e t ( " t i m e s t a m p " )         s e c u r e K e y   : =   c t x . R e q . F o r m . G e t ( " s e c u r e K e y " )         d a t a   : =   c t x . R e q . F o r m . G e t ( " d a t a " )         a g e n t H o s t   : =   c t x . R e q . F o r m . G e t ( " h o s t n a m e " )         h e a d e r s   : =   c t x . R e q . H e a d e r
S e r v e r s u p e r v i s o r d e b u g 访 S e r v e r W E B g o         / /   g e t   r e m o t e   i p s         r e a l I p   : =   h e a d e r s [ " X - F o r w a r d e d - F o r " ]         i p s   : =   m a k e ( [ ] s t r i n g ,   0 )         i f   l e n ( r e a l I p )   >   0   {                 t   : =   s t r i n g s . S p l i t ( r e a l I p [ 0 ] ,   " , " )                 f o r   _ ,   i p   : =   r a n g e   t   {                         s l i c e I p   : =   s t r i n g s . S p l i t ( i p ,   " . " )                         i f   l e n ( s l i c e I p )   = =   4   {                                 i p s   =   a p p e n d ( i p s ,   s t r i n g s . T r i m S p a c e ( i p ) )                         }                 }         }   e l s e   {                 i p s   =   a p p e n d ( i p s ,   c t x . R e q . R e m o t e A d d r )         }         m y S e c r e t K e y   : =   u t i l . M a k e S i g n ( t i m e s t a m p ,   s e t t i n g s . S E C R E T )         i f   s e c u r e K e y   = =   m y S e c r e t K e y   {                 v a r   h   m o d e l s . H t t p R e c o r d                 e r r   : =   j s o n . U n m a r s h a l ( [ ] b y t e ( d a t a ) ,   & h )                 / /   l o g . L o g g e r . I n f o ( r e s p ,   e r r )                 a g e n t I p   : =   u t i l . A d d r e s s 2 I p ( c t x . R e q . R e m o t e A d d r )                 i f   e r r   = =   n i l   {                         i f   l e n ( i p s )   >   0   {                                 a g e n t I p   =   i p s [ 0 ]                         }                         r e c o r d   : =   m o d e l s . N e w R e c o r d ( a g e n t I p ,   a g e n t H o s t ,   h )                         e r r   =   r e c o r d . I n s e r t ( )                         l o g . L o g g e r . I n f o f ( " r e c o r d :   % v ,   e r r :   % v " ,   r e c o r d ,   e r r )                 }         }   e l s e   {                 _ ,   _   =   c t x . W r i t e ( [ ] b y t e ( " e r r o r " ) )         } } m a c r o n
W E B g i t h u b c o l l e c t i o n p y t h o n h t t p   r e c o r d x p r o x y x @ x s e c . i o r e c o r d p a s s w o r d
V P N S R C S R C 使 h t t p s : / / g i t h u b . c o m / n e t x f l y / x - p r o x y I s   N o r d V P N   a   H o n e y p o t ? v p n w e b d e m o G O 2 0 1 9 G o 线 G o   b u i l d - w e b - a p p l i c a t i o n - w i t h - g o l a n g G o G o   g o p r o x y c l i l o g r u s m a c a r o n x o r m u p p e r . i o m g o * n e t x f l y   F r e e B u f  

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则