《工业互联网安全测试技术:施耐德后门账号分析.docx》由会员分享,可在线阅读,更多相关《工业互联网安全测试技术:施耐德后门账号分析.docx(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、施耐德NOE771后门账号分析实验原理对施耐德NOE77101_Exec_V64.bin固件逆向分析完毕后,可以通过查看固件的服务加 载过程,来查看初始化时所添加的账号等信息。实验目的掌握使用ida pro软件使用方法。实验环境Windows10, ida pro6. 8推荐课时数推荐课时数:2课时实验步骤在NOE77101_Exec_V64上in固件逆向分析完毕后,分析固件中的汇编函数调用关系如syslnit图1函数调用关系老版本固件中 usrNetworklnit-userNetApplnit 函数默认调用 telnetlnit 来开启 telnet 服务的问题已经在新版本固件中修复,同时
2、usrToolsInit中默认调用usrWdblnit开启wdb 服务的问题也解决了,但我们来看usrAppInit,固件后门账户还是存在。ROM:O0O29BE4addiROM:00O29BE8nrROM:O0029BEClisROM:OO029BFOaddiROM:0OO29BF4blROM:0O029BF8lisR0M:00029BFCaddiROM:0O029COOlisROM:0OO29C04addiROM:0O029CO8blR0M:00029C0ClisROM:0OO29C1OaddiR0M:00029C1ilisROM:O0029C18addiR0M:00029C1CblR0M
3、:00029C20lisROM:0OO29C2MaddiROM:OO029C28lisR0M:00029C2CaddiROM:0OO29C3OblROM:G。829c34lisROM:GO029c38addiR0M:00029C3ClisROM:OO029C40addiROM:0OO29C44blROM: GO 029g8lisR0M:00029C4CaddiROM:0O029C5OlisrO, r31, 0x538r3 r0r9 unk_342044hr4, r91unk_342MietloginDefaultEncyptr9,r3,r9,r4.aFwupgradeG)tt ,Fwupgra
4、de*r9, aFwupgr idel it fwupgrade* unk_34204Wf ir9, unk 342 M崛loginUserAddr9,r3,r9faSysdiagQh* sysdiagr9, aSysdiatt sysdiag1aBbddrdzb9RiIt bbddRdzb9r9, aBbddrd?b9l n ,bbddRdzb9,eloginUserAddr9,r3,r9,r4.aFdrusersRhn -rdrusersr9, aFdruse *sl U Fdrusers aBrbqyzcy9b ah It bRbQyzcyQb r9, aBrbqyz :y9bl tt
5、bRbQyzcyQb,loginUserAddr9 aUser_0h U “USER”r3, r9, aUser G il It ,USERr9, aCdcs9bcqcG)It cdcSQbcQc,r4 r9, aCdcs9b :qcl U cdcSQbcQc, loginUserAddr9, aNtpupdateG i tt ntpupdate*r3, r9, aNtpupd tt ntpupdater9 aSee9cb9y99 如 It -See9cb9y99图2后门账号查看VxWorksk开发手册,其中对于loginUserAdd函数的描述:The login security feot
6、ire 8 initioilzed by tne root tosk. uyRootC). krt usrC82c. If the confiQjration moao INCLUDE. SECURITY 5 defined. DoFng this macro atso odds o single def out user to the login tobte The deautt user ond password ore denned os lOGn U$ER_NAM6 ond LOGiN_PAS$WORD These con be set to any desired name ond
7、password More users con be ooded by motono additional cols to looryserAodf INCIUD6.SECURHY s not defined, access to VxWorta wVnotbe restricted and secure.The rx)me/po$swofd pairs are odded to the loose bv coilng iooinysefA0O(). which tokos the name and on encryptea posswtxa os orQumenb. Th VxWodcs h
8、ost tool vxencrypt K used to Qenerote the encrypted form of a password Rx example, to odd a user name of -frer ond password of Uintslone*. first 5 vxencrypt on the host to find the oncryptton ot Tintstone“ m foUowt:plae Mter p*ewor4i fllAtatooe Mcrypcad paaavord is ScaMaaMeThen invoke the routine (p
9、QbVSCfAddl I 力 VxWorts:IovIaUmcAM (*frW, Thb can be done from the shel, a start-up script, ar appScotion code.图 3 loginUserAdd 函数其中Password提交的参数为经过vxencrypt加密后的值,符合逆向发现的固件的密 码。Rapid7研究员HDMoore曾经发现VxWorks5.x系统默认加密方式存在缺陷,能够通 过特殊方法进行密码破译。简单分析下vxencrypt加密算法:STATUS loginDefaultEncrypt( char *in,char *out
10、) int ix;unsigned long magic =31695317;unsigned long passwdInt=O;if(strlen(in)=8|strlen(in)=50)errnoSet (SJoginLib_INVALID_PASSWORD); return (ERROR):)for (ix=0;ix=strlen(out);ix+)pass wdlnt+=(in ix) *(ix+ l)A(ix+1);sprintf(out,%u,(long)(passwdlnt*magic);for (ix=0;ix=strlen(out);ix+) if(outix= 3) out
11、ix=outix+,!9;if(outix= 7) outix=outix+7,;if(outix=,9,) outix =outix+9B9; return (OK);)从代码可得加密过程:在第一步,第一个for循环中密码字符串逐字节与位置下标相乘再按位进行异或操作, 然后将每一个字符的运算结果累加起来算出passwdlnto第二步passwdlnt值与magic相乘再转化为String类型。第三步,字符串逐字符与3、7; 9进行比拟,加相应的值。如果通过第一步计算后的passwdlnt为0123456789通过运算将得到加密密码为 ,QRSbcdeyz91,从中可以看出这种加密方式的弱点了。可以通过随机生成密码来构建一个 序列化的输入密码和passwdlnt的对应表,同时passwdlnt与输出密码之间也可构建对应 表,这样输入密码和输出密码将通过长度有限的Int类型passwdlnt打通,这样我们就能通 过查表的方式由输出密码得到输入密码。相比于MD5、SHA1等加密算法,vxencrypt加密算法由于加密方式问题导致密文长度 受限,以至于存在弱点。罗列一下固件中的后门账户:sysdiag bbddRdzb9fdrusers bRbQyzcy9bUSER cdcS9bcQcntpupdate See9cb9y99fwupgrade