Î÷ÃÅ×ÓPLC S7-1500·ì϶·ÖÎöÓ븴ÏÖ

°ä²¼¹¦·ò 2020-04-23

×êÑв¼¾°


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


2019 BlackHat USA»áÒéÉÏ£¬£¬°²È«×êÑÐÔ±Sara BitanÖ¸³öÎ÷ÃÅ×ÓPLC×îеÄͨѶºÍ̸S7Comm-Plus´æÔÚ°²È«ÎÊÌâ¡£¡£Îª´Ë£¬£¬OG¶«·½Ìü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£¬£¬Ö°ÄÜÂëÖ´Ðн׶Ρ£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)

ͼ1 S7Comm-PlusºÍ̸½»»¥Á÷³Ì


ÃÜÔ¿ÈÏÖ¤³É¹¦ºó·½¿É½øÈëÖ°ÄÜÂëÖ´Ðн׶Σ¬£¬Í¼2ΪËÄ´ÎÎÕÊÖÈÏÖ¤¾ßÌåÁ÷³Ì¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)

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


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

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


OG¶«·½Ìü¡¤(Öйú´ó½)

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


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


OG¶«·½Ìü¡¤(Öйú´ó½)

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


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

ËÄ´ÎÎÕÊÖÈÏ֤ʵÏֺ󣬣¬TIAÏòPLC·¢ËÍÖ°ÄÜÂëÊý¾Ý°ü£¬£¬Ö°ÄÜÂëÊý¾Ý°üÖÐÔ̺¬IntergrityPart×ֶΣ¬£¬Èçͼ5Ëùʾ¡£¡£PLCÊÕµ½Ö°ÄÜÂëÊý¾Ý°üºó£¬£¬Ê×ÏÈУÑéIntergrityPart×ֶΣ¬£¬ÈôУÑéͨ¹ý£¬£¬Ö´ÐÐÏàÓ¦Ö°ÄÜÂë¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)

ͼ5 stopÖ°ÄÜÂëÊý¾Ý°ü


Ëã·¨·ÖÎö


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


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


OG¶«·½Ìü¡¤(Öйú´ó½)

ͼ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)¡£¡£


OG¶«·½Ìü¡¤(Öйú´ó½)

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


·ì϶¸´ÏÖ


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


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


OG¶«·½Ìü¡¤(Öйú´ó½)

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


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


OG¶«·½Ìü¡¤(Öйú´ó½)

ͼ£¹ ¹¥»÷ºó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