Î÷ÃÅ×ÓPLC S7-1500©¶´·ÖÎöÓ븴ÏÖ

Ðû²¼Ê±¼ä 2020-04-23

Ñо¿Åä¾°


Î÷ÃÅ×ÓPLC¹ã·ºÔËÓÃÔÚ¸÷ÐÐÒµµÄ¹¤Òµ¿ØÖÆϵͳÉÏ £¬ºÃ±È¸ÖÌú¡¢Ê¯ÓÍ¡¢»¯¹¤¡¢µçÁ¦¡¢½¨²Ä¡¢»úеÖÆÔì¡¢Æû³µ¡¢Çá·Ä¡¢½»Í¨ÔËÊä¡¢»·±£¼°ÎÄ»¯ÓéÀÖµÈÐÐÒµ £¬ÆäÄþ¾²ÐÔÖ±½Ó¹Øºõ¹ú¼ÒÃñÉúÄþ¾²¡£


2019 BlackHat USA»áÒéÉÏ £¬Äþ¾²Ñо¿Ô±Sara BitanÖ¸³öÎ÷ÃÅ×ÓPLC×îеÄͨÐÅЭÒéS7Comm-Plus´æÔÚÄþ¾²ÎÊÌ⡣Ϊ´Ë £¬¶«É­Æ½Ì¨ADLab¶ÔÏà¹Ø©¶´½øÐÐÑо¿ £¬²¢ÔÚÎ÷ÃÅ×ÓS7-1500É豸Éϸ´ÏÖÁ˹¥»÷Ч¹û¡£


Î÷ÃÅ×ÓPLCЭÒé


Î÷ÃÅ×ÓPLC°üÂÞS7-200¡¢S7-300¡¢S7-400¡¢S7-1200ÒÔ¼°S7-1500µÈ¶à¸öϵÁС£S7-200/300/400ϵÁÐPLC½ÓÄÉÔçÆÚµÄÎ÷ÃÅ×Ó˽ÓÐЭÒéS7comm½øÐÐͨÐÅ £¬S7-1200/1500ϵÁÐPLC½ÓÄÉÎ÷ÃÅ×ÓS7Comm-PlusЭÒé½øÐÐͨÐÅ¡£


S7Comm-PlusЭÒéÔÚS7comm»ù´¡ÉÏÒýÈëÁËÃÜÔ¿± £»¤»úÖÆ £¬ÒÔ·´¿¹»á»°½Ù³Ö¡¢ÖطŹ¥»÷ºÍÖмäÈ˹¥»÷µÈ¡£TIAÓëPLC½»»¥¹ý³Ì¿É·ÖΪÒÔÏÂ4¸ö½×¶Î£º


£¨1£©TCP Connection¡£

£¨2£©COTP Connection¡£

£¨3£©S7Comm-Plus Connection £¬¼´ËÄ´ÎÎÕÊÖÃÜÔ¿ÈÏÖ¤½×¶Î¡£

£¨4£©S7Comm-Plus Function £¬¹¦Ð§ÂëÖ´Ðн׶Ρ£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ1 S7Comm-PlusЭÒé½»»¥Á÷³Ì


ÃÜÔ¿ÈÏÖ¤Àֳɺ󷽿ɽøÈ빦ЧÂëÖ´Ðн׶Î £¬Í¼2ΪËÄ´ÎÎÕÊÖÈÏÖ¤¾ßÌåÁ÷³Ì¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ2 ËÄ´ÎÎÕÊÖÈÏÖ¤


£¨1£©TIAÏòPLC·¢ËÍM1¿ªÆôÒ»¸öеĻỰ¡£

£¨2£©PLC½«·µ»Ø¸øTIAÒ»¸öÏìÓ¦°üM2 £¬M2°üÂÞ PLC¹Ì¼þ°æ±¾ºÍËæ»úÊýServerSessionChallenge £¬³¤¶È20¸ö×Ö½Ú¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ3 M2ÈÏÖ¤Êý¾Ý°ü


£¨3£©TIAÊÕµ½M2ºó £¬½«ÏòPLC·¢ËÍM3 £¬M3ÖаüÂÞSecurityKeyEncryptedKey(ͼ4ÖкìÉ«¿òËùʾ)¡£ÆäÖÐ £¬Magic×Ö¶ÎΪ0xfee1dead £¬³¤¶È180×Ö½Ú¡£SecurityKeyEncryptedKeyÀï°üÂÞ3¸öÒªº¦µÄ¼ÓÃÜ×Ö¶Î(ͼ4ÖÐÀ¶É«¿òËùʾ)¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ4 M3ÈÏÖ¤Êý¾Ý°ü


£¨4£©PLCÊÕµ½M3ºó £¬½øÐÐÃÜÔ¿ÈÏÖ¤¡£ÈôÈÏÖ¤ÀÖ³É £¬ÏòTIA»Ø¸´M4Êý¾Ý°ü¡£

ËÄ´ÎÎÕÊÖÈÏÖ¤Íê³Éºó £¬TIAÏòPLC·¢Ë͹¦Ð§ÂëÊý¾Ý°ü £¬¹¦Ð§ÂëÊý¾Ý°üÖаüÂÞIntergrityPart×ֶΠ£¬Èçͼ5Ëùʾ¡£PLCÊÕµ½¹¦Ð§ÂëÊý¾Ý°üºó £¬Ê×ÏÈУÑéIntergrityPart×ֶΠ£¬ÈôУÑéͨ¹ý £¬Ö´ÐÐÏàÓ¦¹¦Ð§Âë¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ5 stop¹¦Ð§ÂëÊý¾Ý°ü


Ëã·¨·ÖÎö


ËäÈ»Ö÷»úTIAÓëPLCÖ®¼äµÄÈÏÖ¤ÒýÈëÁ˷ǶԳƼÓÃÜËã·¨ £¬µ«ÊÇPLCÓëÖ÷»úÖ®¼ä²¢Ã»ÓнøÐаó¶¨ £¬Òò´ËÈÔÈ»´æÔÚÄþ¾²ÎÊÌâ £¬¹¥»÷Õß¿ÉÒÔαÔì³ÉÒ»¸ö¶ñÒâµÄÖ÷»ú/ÊÂÇéÕ¾ £¬ÀûÓÃÒÑÖªµÄ¹«Ô¿¼°¼ÓÃÜËã·¨ £¬¶ÔPLC½øÐзǷ¨¿ØÖÆ»òÕßÖмäÈ˹¥»÷¡£


ÏÂÃæ½éÉÜÃÜÔ¿Éú³ÉËã·¨Á÷³Ì¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ6 ÃÜÔ¿Éú³ÉËã·¨


Ö÷»ú(TIA)Ëæ»úÉú³É20×Ö½ÚµÄPreKey £¬Ê¹ÓÃÀàÍÖÔ²ÇúÏß¼ÓÃÜËã·¨ºÍ¹«Ô¿¼ÓÃÜPreKey £¬×÷ΪKeying materaial 1(¶ÔӦͼ7ÖÐM3Êý¾Ý°üµÄEG1¡¢EG2)¡£


Ö÷»ú(TIA)ƾ¾ÝPreKey¼ÆËãKDF £¬²¢ÓɽñÉú³ÉCEK(Checksum Encryption Key) £¬CS(Checksum Seed) £¬KEK(Key Encryption Key)¡£


Ö÷»ú(TIA)½«ChallengeºÍKDKÏà½áºÏ £¬Ê¹ÓÃAES-CTR¼ÓÃÜËã·¨ºÍKEK½øÐмÓÃÜ £¬Æä½á¹û×÷ΪKeying material 3(¶ÔÓ¦M3Êý¾Ý°üÖеÄEncryptedChallengeºÍEncryptedKDK)¡£


Ö÷»ú(TIA)ÓÃCSºÍKeying material 3½øÐйþÏ£ÔËËã(Tabulation Hash),µÃµ½½á¹ûTB-HASH¡£


Ö÷»ú(TIA)ʹÓÃAES-ECBËã·¨ºÍCEKÀ´¼ÓÃÜTB-HASH²¢µÃµ½½á¹ûKeying material 2(¶ÔÓ¦M3Êý¾Ý°üÖеÄEncryptedChecksum)¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ7 M3Êý¾Ý°ü½á¹¹


©¶´¸´ÏÖ


ÎÒÃǶÔOMSp_core_managed.dll½øÐÐÄæÏò·ÖÎö £¬Í¨¹ýµ÷ÓÃÒªº¦½Ó¿Úº¯Êý £¬½á¹¹ËÄ´ÎÎÕÊÖ¼ÓÃÜÈÏÖ¤Êý¾Ý°ü¡£¹¥»÷¶ËÊ×ÏÈ·¢ËÍÈÏÖ¤Êý¾Ý°ü £¬ÃÜÔ¿ÈÏÖ¤Íê³Éºó·¢ËÍstop¹¦Ð§Âë £¬ÀÖ³ÉʹµÃÎ÷ÃÅ×ÓPLC S7-1500Í£Ö¹ÔËÐС£


Õý³£ÔËÐÐʱ £¬PLC S7-1500ÔËÐÐָʾµÆΪÂÌÉ«¡£ÔËÐÐ״̬Èçͼ£¸Ëùʾ¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ£¸ ¹¥»÷Ç°PLCÕý³£ÔËÐÐ


·¢Ë͹¥»÷½Å±¾ºó £¬PLC S7-1500ÔËÐÐָʾµÆ±äΪ»ÆÉ« £¬PLCÍ£Ö¹ÔËÐÐ £¬PLC״̬Èçͼ£¹Ëùʾ¡£


¶«É­¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾

ͼ£¹ ¹¥»÷ºóPLCÍ£Ö¹ÔËÐÐ


Äþ¾²½¨Òé


Î÷ÃÅ×Ó¹Ù·½ÒÑÐû²¼Äþ¾²²¹¶¡£º


https://cert-portal.siemens.com/productcert/pdf/ssa-232418.pdf

https://cert-portal.siemens.com/productcert/pdf/ssa-273799.pdf


С ½á


ÔÚ±¾´ÎÑо¿ÖÐ £¬ÎÒÃÇ·ÖÎöÁËÎ÷ÃÅ×ÓS7ϵÁÐ×îеÄͨÐÅЭÒéS7Comm-Plus¡£ËäÈ»Ö÷»úÓëPLCÖ®¼äµÄͨÐÅЭÒé½ÓÄÉÁËÇ¿´óµÄ¼ÓÃÜËã·¨ £¬µ«ÊÇPLC²¢Ã»ÓжÔTIA½øÐÐÈÏÖ¤ £¬Ê¹µÃ¹¥»÷Õß¿ÉÒÔαװ³ÉÒ»¸ö¶ñÒâµÄTIA £¬ÔÚÆäͨÐŹý³ÌÖвåÈëÈÎÒâÖ¸Áî £¬ÈçPLCµÄÆôÍ£Ö¸Áî £¬¼´¿Éµ½´ïÔ¶³Ì¿ØÖÆPLCµÄЧ¹û¡£³ý´ËÖ®Íâ £¬ÏàͬÐͺÅ/¹Ì¼þ°æ±¾µÄPLC £¬Æä˽ԿÍêÈ«Ïàͬ £¬ÕâÒâζ×ÅͬÑùµÄ¹¥»÷ÒªÁìÊÊÓÃÓÚËùÓÐÏàͬµÄPLC¡£


²Î¿¼Á´½Ó£º

[1]https://i.blackhat.com/USA-19/Thursday/us-19-Bitan-Rogue7-Rogue-Engineering-Station-Attacks-On-S7-Simatic-PLCs.pdf

[2]https://i.blackhat.com/USA-19/Thursday/us-19-Bitan-Rogue7-Rogue-Engineering-Station-Attacks-On-S7-Simatic-PLCs-wp.pdf

[3]https://www.secshi.com/30290.html