范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

震网(Stuxnet)病毒深度解析首个攻击真实世界基础设施的病毒

  本文分享自华为云社区《【安全技术】震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒(1)【原创分析】-云社区-华为云》,作者:云存储开发者支持团队 。第一章震网病毒背景【源自网络】
  2006年,伊朗重启核计划,在纳坦兹建立核工厂,安装大量离心机生产浓缩铀。2010年1月,联合国负责核查伊朗核设施的国际原子能机构(IAEA)发现纳坦兹核工厂出现问题,原本预期使用寿命10年的IR-1型离心机大规模故障,但是谁都说不清楚到底是什么原因导致的。
  伊朗纳坦兹核工厂伊朗纳坦兹核工厂
  2010年6月,白俄罗斯一家小型反病毒公司VirusBlockAda的技术负责人舍基·乌尔森(Sergey Ulasen),在分析伊朗计划上上的恶意文件时,发现该恶意文件异常复杂,不仅有效利用了"内核极"后门来躲过反病毒引擎的扫描,还利用了多个"零日漏洞"(zero-day) 来突破Windows系统,但是由于力不从心,没有完全破译该恶意代码。2010年7月12日,乌尔森将该发现发布在一个英文安全论坛上。
  舍基·乌尔森(SergeyUlasen)
  全球安全业界开始对这个病毒进行分析和破译。同时,微软将该病毒命名为:震网(Stuxnet)。通过分析发现,该病毒的隐蔽性、先进性和复杂性远远超过人们的想象。
  据国外一些报道称,该病毒是由美国和以色列的程序员共同编写,其中攻击的西门子工控系统的技术规范由德国提供,西门子工控系统被广泛应用于伊朗核设施中。在以色列的迪莫诺,构建了西门子控制器和IR-1型离心机的试验系统,对该病毒进行了测试,英国政府也参与了试验,试验完成后,荷兰情报人员作为离心机的技术咨询工程师,将病毒植入到核设施中。
  震网病毒主要是通过改变离心机的转速,来破坏离心机,并影响生产的浓缩铀质量。
  离心机被故障
  震网病毒原本的设计是定向攻击,作为网络武器来使用,算是APT攻击的鼻祖。之所以被发现,是因为开发震网病毒的程序员在编程的时候,错误的将and和or用错,导致病毒可以感染任何版本的Windows系统,最终在2010年6月被捕获。第二章震网病毒逆向深入分析【个人原创分析,非授权请勿转载】
  震网病毒结构与运行流程
  震网病毒主要包含6个文件,4个快捷方式图标文件,利用LNK漏洞从U盘自动感染计算机,两个tmp文件,用于初始化和安装震网病毒。
  震网病毒共利用了7个漏洞,其中4个0 Day漏洞:CVE-2008-4250(MS-08-067)-Windows Server Service NetPathCanonicalize()CVE-2010-2772 WinCC default passwordCVE-2012-3015 Step 7 Insecure Library LoadingCVE-2010-2568(MS-10-046)-Windows Shell LNK Vulnerability (O day)CVE-2010-2743(MS-10-073)-Win32K.sys Local Privilege Escalation (O day)CVE-2010-3888(MS-10-092) Task Scheduler vulnerability (O day)CVE-2010-2729(MS-10-061)-Windows Print Spooler Service Remote Code Execution (O day)
  震网病毒隐藏在U盘中,当U盘插入到计算机上时,利用LNK漏洞会自动感染Windows系统,感染执行后,通过Ring3 Hook Ntdll实现在内存中加载~WTR4141.tmp文件,Ring3 Hook Kernel32、Ntdll实现*.tmp和*.lnk文件隐藏。进而通过内存LoadLibrary加载~WTR4132.tmp文件,提取出核心的Main.dll,在内存中加密、脱壳、加载Main.dll,初始化安装震网病毒,注入进程、注册服务,释放资源文件,最终震网病毒以服务运行。服务运行时,会攻击西门子WinCC工控系统软件,通过该软件最终攻击PLC,让离心机异常工作,导致离心机快速故障。
  Call#15初始化安装Stuxnet
  当Main.dll被加载的时候,导出表#15第一个被调用。#15主要负责检查Stuxnet是否运行在一个合适的系统中,检测当前系统是否已被感染,把当前进程权限提升到系统权限,检测系统中安装的杀毒软件版本,选择把DLL注入到哪个进程中;把DLL注入到选择的进程中,然后调用#16。
  #15的第一个任务是检查配置数据(configuration data)是否是最新的。配置数据可以被存储到两个位置。Stuxnet检查最新的配置数据并且执行。然后Stuxnet检查是否运行在一个32位的系统中,如果运行在64位系统中则退出,同时也检查操作系统的版本,Stuxnet只能运行在以下版本的操作系统中:Win2KWinXPWindows 2003VistaWindows Server 2008Windows 7Windows Server 2008 R2
  接着检查当前进程是否具有Administrator权限,如果没有则会利用0-day漏洞提升运行权限。如果当前操作系统是Windows Vista、Windows 7、Windows Server 2008 R2,则利用Task Scheduler Escalation of Privilege来提升权限;如果操作系统是Windows XP、Win2K则利用Windows Win32k.sys Local Privilege Escalation(MS10-073)漏洞提升权限。
  如果代码运行成功,如果利用win32k.sys漏洞,主DLL文件作为一个新进程运行,如利用Task Scheduler,主dll运行在csrss.exe进程中。
  Win32k.sys漏洞利用的代码在资源文件#250中,当导出表#15运行检查都通过后,#16运行。#16是Stuxnet的主安装程序。它检查日期和操作系统的版本,解密、创建并安装rootkit文件和注册表项;并把自己注入到services.exe中,以便感染移动存储设备;把自己注入到Step7的进程中感染所有的Step7工程;建立全局互斥量(mutexes)用于不同组件之间的通信;连接RPC服务器。
  Call#16安装Stuxnet
  #16首先检查配置数据是否有效,然后检查注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionMS-DOS Emulation中的NTVDM TRACE值是否是19790509,如果是则退出。该项应该是是否允许感染的标识。然后读取配置数据中的日期(配置数据偏移0x8c处)和当前系统日期对比,如果当前日期比配置数据中的时间晚,则退出;配置数据中的日期是2012-6-24。
  Stuxnet的各个组件之间的通信采用全局互斥信号量,当在Windows Xp中时调用SetSecurityDescriptorDacl创建这些互斥信号量;在Windows Vista、Windows 7和WindowsServer2008中调用SetSecurityDescriptorSacl创建,用此方法可以降低系统完整性检测,保证代码写操作被拒绝。
  然后Stuxnet创建3个加密的文件,这些文件来自.stub节。然后将他们保存到磁盘。
  Ø Stuxnet主要攻击载荷文件保存为Oem7a.pnf;
  Ø 一个90个字节的数据被保存到%SystemDrive%infmdmeric3.PNF中;
  Ø 配置数据被拷贝到%SystemDrive%infmdmcpq3.PNF中;
  Ø 一个日志文件被拷贝到%SystemDrive%infoem6C.PNF中;
  接着Stuxnet检查系统时间,确保它在2012年6月24号以前。然后通过读取存并解密储到硬盘中的版本信息,来检查自己和保存到磁盘上的加密代码是否是最新的。此功能是通过#6实现的。
  版本检查通过后,Stuxnet从资源文件中(#201、#242)释放、解码并将内容写2个文件中:Mrxnet.sys和Mrxcls.sys;它们是两个驱动文件:一个用于Stuxnet的加载点(Load point),另一个用于隐藏磁盘中恶意文件。并且这两个文件的时间和系统目录中的其他文件时间一致,以免引起怀疑;然后创建注册表项指向这两个驱动文件,将它们注册为服务项,以便开机的时候就启动这2个服务。一旦Stuxnet创建的这个Rootkit正确安装后,会产生一些全局信号量,表明安装成功。
  Stuxnet接着采用另外的2个导入函数(exports)继续完成安装和感染(infection)过程。
  (1)然后把payload .dll注入到services.exe中并且调用#32(感染可移动存储设备和启动RPC服务);
  (2)把payload .dll注入到Step7的进程:S7tgtopx.exe中并且调用#2(用于感染Step7工程文件),为使这一步成功,Stuxnet可能需要杀掉explorer.exe和S7tgtopx.exe进程,如果他们在运行中的话。
  Stuxnet的通过上述的两种payload .dll注入和创建的服务及驱动文件运行起来。
  Stuxnet将等待一段短暂时间后才试图连接RPC服务(#32开启的),将调用0号函数检查连接是否成功并且调用9号函数接收一些数据存储到oem6c.pnf中。
  至此,所有默认的传播方式和攻击载荷已经被激活。
  Stuxnet攻击西门子PLC流程
  攻击PLC过程:
  (1) 恶意DLL将s7otbxdx.dll重命名为s7otbxsx.dll,用定制的DLL替代s7otbxdx.dll,该定制DLL主要重写s7otbxsx.dll 109个中的16个涉及读、写和枚举代码块的导出函数,其他导出函数还是由s7otbxdx.dll提供;
  (2) 震网根据不同目标系统的特征选择不同的代码来感染PLC,一个感染的序列包含注入到PLC中的代码块和数据块,来改变PLC行为,主要有三种感染序列,其中两种比较相似,功能相同,标记为序列A和B,另外一种标记为序列C;
  (3) 如果s7otbxdx.dll是运行在ccrtsloader.exe文件中,替换后的s7otbxdx.dll启动两个线程感染特定的PLC:
  线程1:(每15分钟运行一次;感染含有特定SDB特征的6ES7-315-2 PLC)
  (a) 通过s7ag_read检测PLC类型,必须为6ES7-315-2;
  (b) 检测SDB块来确定PLC是否被感染以及选择写入哪个序列(A或B);
  Ø 枚举、解析SDB(系统数据块),寻找一个偏移50h DWORD的地方等于0100CB2Ch的SDB;(说明使用的是Profibus communications processor module CP 342-5。)
  Ø 在SDB中搜索特定的值7050h和9500h,只有当两个值出现在总数大于等于33时才满足感染要求;(7050h代表KFC750V3变频驱动器,9500h代表Vacon NX频率转换驱动器。)
  (c) 按照序列A或B进行感染:
  Ø 拷贝DP_RECV块到FC1869,然后用定制的块替换DP_RECV块;(DP_RECV是网络协处理器使用的标准代码块的名称,用来接收Profibus上的网络帧。每次接收包时,定制块会调用FC1869中原始的DP_RECV进行处理,然后对包数据进行一些后处理。)
  Ø 将一些定制块写入到PLC(20个);
  Ø 感染OB1,使每个周期开始先执行恶意代码;(首先增加原始块的大小;然后将定制代码写入到块的开头;最后将原始的OB1代码插入到定制代码后面。)
  Ø 感染OB35;(和OB1相同,采用code-prepending感染技术)
  线程2:(每5分钟查询一次;保证攻击同时进行)
  (a) 监控、查询总线上的每个特定PLC(如S7-315)中被线程1成功注入的数据块DB890;
  (b) 当达到特定条件,启动破坏例程时,该线程向所有监控的PLC中的DB890写入数据,使同一总线上的PLC同时发起破坏攻击。
  (4) 某些条件下,会将序列C写入PLC,针对6ES7-417,更为复杂;
  (5) 破坏:(在不同时间降低或增加马达频率)
  (a) 确定正常的操作频率:807-1210Hz;
  (b) 将频率设定为1410Hz;
  (c) 恢复正常操作;
  (d) 大约27天后,先将频率设为2Hz,然后设为1064Hz;
  (e) 恢复正常操作;
  重复上述过程。第三章震网病毒重现
  【篇幅原因,请关注后续文章】
  点击下方,第一时间了解华为云新鲜技术~
  华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云

心有阳光雨亦晴这是一个阴雨连绵的季节。雨,一直下了三日,让我真切地感受到了满目青翠听雨声的酣畅。喜欢一个人伫立窗前,看雨丝珠帘般从天而降,喜欢听那唰唰唰雨打树叶的声音。这声音就是一种天地的契合,自己救赎自己的句子1。生活没这么复杂,你敢试,世界敢回答。2。生活就是在无光的日子里使劲熬,那些没有结果的事最终都要学会放弃。3。所有快乐都向你靠拢,所有好运都在路上。4。我们给了生活多少耕耘,生活三伏天将至,要为家人抓住养阳3宝,养好元气不受苦,别大意老话说冷在三九热在三伏,三伏天是一年中气温最高且又潮湿闷热的阶段,持续的时间比较长。入伏后空气湿度大,再加上持续的高温,人体异常的不适。动一动就会汗流浃背的,恨不得整天呆在空调房里一勺猪油等于五副药?长期吃猪油,是有益还是有害呢?日常食用油种类有很多,猪油就是其中一种,是从猪肉提炼出来的一种食用油。在我们父辈甚至更早的时候,几乎家家户户都是用猪油来炒菜的,与其他食用油相比,猪油有一种无法替代的香味儿,任何食日常食用天麻好处多天麻作为药材可以和食物进行烹饪,改善口感的同时可以达到治疗疾病的目的。比较常见的天麻食用方法是做成天麻肉片汤天麻炖鸡天麻炖甲鱼炖鸽子都可以。也可以通过天麻切成薄片和粥进行熬炖,做成恒大复牌需过四大关,7月底将公布初步重组方案,15个月后或面临退市风险中国恒大(03333。HK)停牌整三个月后,突然在6月20日与另两家恒大系上市公司恒大物业恒大汽车一同宣布复牌指引。按照目前情况,想顺利复牌,恒大要过四道关公布业绩公布物业134亿电力设备行业专题报告迎接分布式新能源消纳的投资机遇(报告出品方作者广发证券,陈子坤纪成炜)一分布式发电成为新能源发展的重要形式分布式电源是利用分散的能源资源,通过小型发电机组,就近满足用户电力需求的发电方式。相较于传统的集中式发电中国首艘全球最大超大型集装箱船在沪交付来源央视新闻客户端6月22日,中国首艘全球最大24000TEU超大型集装箱船在中国船舶集团有限公司旗下沪东中华造船(集团)有限公司签字交付。该船由沪东中华自主设计,拥有完全自主知识探花史密斯适合火箭吗?3因素让其坐稳核心,2缺陷还需进行加强随着2022年选秀大会的完美落幕,所有新秀的最终归宿也终于确定,很遗憾,我们备受期待的中国队小将曾凡博没有被选中,而魔术队用状元签选中了班切罗,榜眼霍姆格伦被雷霆队拿下,而一直都是比世界最大航母还要长60多米!中国首艘全球最大超大型集装箱船在沪交付6月22日,中国首艘全球最大24000TEU超大型集装箱船在中国船舶集团有限公司旗下沪东中华造船(集团)有限公司签字交付。该船总长399。99米,创下全球超大型集装箱船记录,也是目世界智能大会在全球经济下滑担忧中开幕并释放信心6月24日,这是第六届世界智能大会云开幕式暨创新发展高峰会现场。新华社记者赵子硕摄新华社天津6月24日电(记者李鲲毛振华)在2022年即将过半全球经济高度不确定的当下,第六届世界智
摘抄优雅是种力量高级感女人玫瑰金句摘抄玫瑰一个女人懂穿,才懂生活一个女人爱美,才能有更好的能力去爱别人。喜欢穿什么样的衣服,是一个女子内心深处品性和态度的折射。穿得繁复,永远不如穿得简单。买得好是加法,穿得初夏微凉,阳光正好走进五月,走进遍地葱茏的时光,从四月春深里走出,踏着满地跌落的花痕,一身轻盈叩响浅夏的门楣,初夏,就这样悄然迎候。晨风中,听得见清脆婉转的鸟鸣声,闻得到清幽素雅的青草香,感受到这初如果不穿宇航服,人在各大星球可以存活多久?对比一下数据宇航员在外太空进行作业时都必须穿戴好自己的宇航服,这一过程中不能有任何闪失,如果宇航服出现任何一点微小的错误,对宇航员的安全来讲,都有极大的威胁。这是为什么?宇航服是宇航员在太空活安兔兔发布了4月份性能最高手机排行榜看看你的手机上榜没?安兔兔在2022年4月发布了三个类别中高性能的手机列表,具体有哪些手机呢?我们一起来看看。图来源安兔兔搭载骁龙8Gen1的黑鲨5Pro以106。2万分位居旗舰类别榜首,红魔7Pro曝设计和功能领先华为P60Pro,华为P50跌至白菜价,真服了YOU曝光携手5G芯片回归华为P60Pro配置天花板机皇采用未来领先的设计和功能,曝光携手5G芯片回归华为P60Pro配置天花板机皇确实足够豪横的,也相当下血本。曝光携手5G芯片回归华为新买的手机不要着急用,教你6步设置,让手机越来越好用大家好,我是科技熊,一个专注于黑科技数码成为开箱提案以及使用技巧分享up主!相信有好多朋友都遇到过这样一种情况,在我们刚买安卓手机的时候用得比较流畅,但是过了一两年以后手机就变得非唤醒沉睡的芯片闲置手机远比想象中更值钱来源四川日报川观新闻川观新闻记者陈碧红文图买了一部新手机,被淘汰的旧手机就会被闲置在抽屉里,或以两三百元的价格直接卖掉,这是绝大多数人最普遍的处理方式。但对于当下具有高算力的智能手先收藏,只买对的不买贵的,五月买手机的时候你都用得上相信大多数人对于手机市场行情包括一些配置信息都是不太了解的,很多小白不知道哪样的手机好,或者自己需要什么样的手机,这种情况之下呢,就往往会选择贵的,毕竟一分价钱一分货,但是现在市面OPPO新折叠屏手机曝光天玑9000上下折5999元,这么香目前国内的折叠屏手机市场很热闹,此前有蓝厂在4月11日发布的vivoxfold,还有华为在4月28日发布的华为matexs2。这次,有博主爆料出了,绿厂的新折叠屏手机就快要来了,或折腾的人生,无悔的选择,创新的养老,创业的尝试写在退休倒计时一年之际!人生是用来折腾的,不折腾哪来的人生经历?人生其实就是不断地去折腾,折腾出自己想要的模样,不管结果如何?鱼和熊掌不可兼得!平淡的生活注定是生命的常态,是绝大数为什么很多华为老用户,换下一部手机时,选择购买小米手机了不知道大家有没有注意到,现在有很多的华为老用户,在更换手机时,都不愿意考虑购买华为手机了,反而选择购买小米的手机了。大家知道是什么原因吗?我们今天来一探究竟。第一点华为产品溢价严重