2.2工控安全漏洞分析1_第1页
2.2工控安全漏洞分析1_第2页
2.2工控安全漏洞分析1_第3页
2.2工控安全漏洞分析1_第4页
2.2工控安全漏洞分析1_第5页
已阅读5页,还剩32页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.2工控安全漏洞分析CATALOGUE目录任务简介任务目标相关知识任务实施01任务简介网络安全漏洞与工控安全漏洞网络安全漏洞定义网络安全漏洞指存在于硬件、软件或系统策略上的缺陷,可能被攻击者利用,从而在未授权情况下访问或破坏系统。网络安全漏洞影响工控安全漏洞的特性网络安全漏洞的存在会使计算机系统易遭受病毒和黑客攻击,可能导致系统中的组成和数据受到损害。工控安全漏洞指工业控制系统各阶段可能产生的缺陷或薄弱点,可能出现在工业控制系统的硬件、固件、软件等各个层面。系统固有漏洞多工业控制系统在设计时主要考虑功能性、可靠性,而非安全性,导致存在大量先天安全缺陷。漏洞修复难度大工控系统因运行成本和稳定性考虑,难以频繁进行补丁安装和漏洞修补,且操作系统版本老旧,兼容性问题突出。工控安全漏洞的特性工控安全漏洞的影响非常严重,可能导致工厂瘫痪、核电站爆炸、地铁失控等灾难性后果。工控安全漏洞的影响通过任务将学到网络安全漏洞分类、典型的工控安全漏洞、常见的渗透测试工具等知识,为进一步学习工控安全防护打下基础。任务目标漏洞分类与渗透测试基础02任务目标网络安全漏洞理解了解网络安全漏洞的定义及分类,深入理解典型的工控安全漏洞原理,熟悉常见的渗透测试工具,为理解工控安全漏洞打下基础。工控安全漏洞掌握任务目标理解典型的工控安全漏洞原理,熟悉常见的渗透测试工具,通过网络安全攻防对抗实践,为进一步学习工控安全防护打下基础。010203相关知识网络安全漏洞分类基于漏洞产生或触发的技术原因对漏洞进行的划分;参考《GB/T30279-2020》,该标准采用树形导图对漏洞进行分类。网络安全漏洞分类导图2.2.1网络安全漏洞分类标准采用树形导图对漏洞进行分类,从根节点开始,根据漏洞成因将漏洞归入某个具体的类别,如果该类型节点有子类型节点,且漏洞成因可以归入该子类型,则将漏洞划分为该子类型,如此递归,直到漏洞归入的类型无子类型节点或漏洞不能归入子类型为止。输入验证错误指在处理用户输入时,未进行充分验证和过滤,导致解析或执行错误;其子类型包括缓冲区错误、注入、路径遍历、后置链接、跨站请求伪造。2.2.1网络安全漏洞分类授权问题指在访问控制或权限管理中存在的漏洞,其子类型包括信任管理问题,以及更具体的权限许可和访问控制问题,涉及不当的权限授予或验证机制。代码问题指网络产品和服务的代码开发过程中因设计或实现不当而导致的漏洞,涉及资源管理错误、输入验证错误、数字错误、竞争条件问题、处理逻辑错误、加密问题、授权等问题。注入指在用户输入构造命令、数据结构或记录时,缺乏正确验证,导致未过滤或错误过滤特殊元素,引发解析或执行错误;其子类型包括格式化字符串错误、跨站脚本、命令注入、代码注入和SQL注入。。01.2.2.1网络安全漏洞分类缓冲区错误指在内存操作时缺少边界数据验证,导致执行错误的读写操作,如缓冲区溢出;震网病毒和勒索病毒利用的相关漏洞均属于缓冲区溢出。02.指由于组件部署运行环境存在安全问题,如配置不当、资源限制或环境因素,可能导致组件运行异常或被攻击者利用,从而引发安全漏洞。环境问题暂时无法将漏洞归入上述任何类别,或者没有足够充分的信息对其进行分类,以及漏洞细节未指明的情况下,我们应保持警惕并寻求更多信息。其他2.2.1网络安全漏洞分类指网络产品和服务在使用过程中,由于配置文件、配置参数或默认不安全的配置状态而产生的漏洞。环境问题子类型包括:信息泄露和故障注入。信息泄露的子类型包括:日志信息泄露、调试信息泄露和侧信道信息泄露。配置错误VxWorks系统应用用于物联网嵌入式设备及工业控制领域,西门子、施耐德、罗克韦尔的多款PLC设备软件搭载在VxWorks系统上运行。VxWorks介绍VxWorks是美国风河公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。VxWorks支持CPUVxWorks支持几乎所有现代市场上的嵌入式CPU,包括x86、MIPS、PowerPC等,广泛应用于通信、军事、航空、航天等领域。VxWorks系统特性具有开放性、模块化和可扩展性,能在多线程、多任务的系统环境中达到高实时要求的PLC控制要求。2.2.2VxWorks操作系统的简介2.2.2CVE-2010-2967加密算法漏洞加密函数解析通过获取VxWorks5.5系统的源代码,可以直接查看到该函数的源代码,算法的加密流程分两步。第(1)步是将密码的每位与当前位置相乘再异或,取它们的和,最后乘上31695317转化为字符串;第(2)步将字符串的012转化为QRS,23456转化为bcde,78转化为yz,9不变。加密函数缺陷从上面的算法流程可以看出,该函数给了一个很大的输入入口,却只有很小的输出出口,这样很容易使不同的密码得到一个相同的和,从而最后得到一个相同的哈希值,如password和FoBmA^NuN得到的哈希值都是RcQbRbzRyc。假设我们现在遍历所有哈希,将哈希所对应的密码生成一个字典,那么我们只要知道用户名,通过遍历字典里的密码就能成功登录目标系统。漏洞概述VxWorks6.9之前版本的系统中loginLib的loginDefaultEncrypt()函数存在密码碰撞问题,默认使用很弱的散列函数,密码哈希总数为22万个。0302012.2.2CVE-2010-2965wdbrpc远程漏洞WDB应答报文分析在WDBRPC的协议报文分析清楚后,我们发现该协议未加密、未认证,存在很大的安全隐患。我们可以通过WDBRPC协议调用get_target_info,获取VxWorks系统的版本、内存分配等信息;通过调用read_target_memory,获取VxWorks系统的内存;通过write_target_memory,往VxWorks系统的内存中写入数据;通过调用reboot_target重启目标系统。WDB协议分析在WDBRPC请求报文中,WDBParameterWrapper与FunctionInputParameters两个字段为重点内容,WDBParameterWrapper内容包含整个请求报文的大小,校验和及请求序列号,FunctionInputParameters为请求功能号的携带辅助信息。在WDBRPC应答报文中,WDBReplyWrapper与FunctionOutput两个字段为重点内容,WDBReplyWrapper内容包含整个请求包的大小、校验和及应答序列号,FunctionOutput包含应答的输出信息,为请求功能号的返回信息。漏洞概述VxWorks6.x,5.x和之前版本中的WDB目标代理调试服务中存在权限许可和访问控制漏洞,远程攻击者可利用该漏洞读取或修改任意存储单元。rpcbind服务漏洞VxWorks5.5至版本中的rpcbind服务存在漏洞,攻击者向TCP111及UDP111端口发送特殊数据包可致整数溢出,造成任意代码执行。tPortMapd服务崩溃通过对rpcbind服务进行漏洞挖掘测试,我们发现特定的数据报文可以使得tPortMapd服务崩溃。该漏洞属于整型溢出漏洞,成功的利用该漏洞可在VxWorks5.x、VxWorks6.x上添加新用户并控制目标机,在漏洞利用过程中可以使用堆喷射技术来传递Shellcode。2.2.2CVE-2015-7599VxWorks整形溢出漏洞2.2.2利用SiemensS7协议的组态篡改攻击MC7字节码西门子编程支持LAD/STL/SCL,编译为MC7字节码下载到PLC,RUN模式下从OB1读取MC7代码执行,保障高效性与灵活性,为自动化控制提供坚实基础。攻击者活动攻击者利用S7协议上传区块功能获取原始区块数据,在OB1区块头部植入FC666调用逻辑,当植入成功后,PLC每次调用OB1时都将先执行FC666中的逻辑代码。OB1区块OB1也称为“程序循环组织块”或“Watchdog”,其主要的作用是调度处理各自程序(FC,FB,DB,SFC,SFB等),类似于C语言的MAIN程序。030201组态篡改攻击由于西门子区块需符合格式规范,植入代码后需调整BlockHeader中OB1及MC7长度数据。完成后,通过S7协议下载修改后的OB1区块至PLC,完成组态篡改攻击。2.2.2利用SiemensS7协议的组态篡改攻击PLC执行感染区块完成OB1区块修改后,攻击者需调用S7协议下载区块功能,将植入后门的OB1区块下载到PLC中,PLC将在下次轮询开始执行被感染的OB1区块。S7协议漏洞风险SiemensS7协议因未加密、未认证、未校验组态数据,存在安全漏洞,易被攻击者利用进行组态篡改攻击,对工业自动化系统构成潜在威胁。2.2.2CVE-2011-4876目录遍历漏洞目录遍历漏洞SiemensWINCCFlexible多个版本中存在目录遍历漏洞,源于TransferMode开启时,远程攻击者可利用该漏洞执行、读取、创建、修改或删除任意文件。HmiLoad漏洞HmiLoad监听TCP2308端口,攻击者利用目录遍历漏洞上传恶意文件至C盘根目录。文件上传机制程序上传的思路是一个程序分成每个块为1016个字节的模块,然后再加上8个字节的头凑成1024个字节的包,将上传路径设置为"../"*11,目的是将文件上传到C盘的根目录。固件逆向分析解压工具固件逆向解析解压后分析固件逆向分析方法是在不对嵌入式系统进行实际运行的情况下,通过对固件文件进行逆向解析,分析固件中各代码模块的调用关系及代码内容。固件的识别和解压可以借用一些成熟的工具软件,如Binwalk、BAT(BinaryAnalysisToolkit)等,这些工具软件能够帮助我们快速准确地完成固件解压。固件逆向分析过程中,将涉及固件的识别和解压、固件的静态分析等关键技术,以揭示嵌入式系统潜在漏洞和后门,确保系统安全稳定运行。固件解压之后的分析主要集中在对常见漏洞入口进行针对性的静态分析,包括密码、默认开启的服务、端口、配置文件等。2.2.2固件逆向分析方法2.2.2施耐德NOE771后门账号分析Binwalk确认压缩类型使用Binwalk工具,我们确认NOE77101.bin文件的压缩类型,经过分析,该固件文件采用zlib压缩算法进行压缩。提取zlib压缩文件利用Binwalk工具,我们成功提取了zlib压缩的文件;解压后的文件385存储在_NOE77101.bin.extracted目录中,并以文件在固件升级包中的起始位置来命名。下载固件升级包我们可以从施耐德官方网站下载固件升级包,然后从该升级包中提取固件文件;NOE771的固件文件名为NOE77101.bin。030201Binwalk分析关键信息使用Binwalk对385文件进行分析,发现固件中的一些路径名、操作系统版本和符号表地址等关键信息,操作系统内核版本是VxWorksWINDkernelversion2.5。042.2.2施耐德NOE771后门账号分析使用Binwalk-A命令来获取目标固件的CPU架构等信息,目标固件的CPU架构为PowerPCbigendian,该信息对后续逆向分析至关重要。获取CPU架构信息使用IDAPro加载PowerPCbigendian架构的反汇编引擎进行分析;当未修改固件加载地址时,IDAPro仅仅分析出了极少数的函数。分析固件加载地址,进行正确的反汇编。查看固件是否包含了符号表。如包含了符号表,那么就可以利用符号表中的内容,来修复IDAPro中所显示的函数名。IDAPro反汇编分析2.2.3渗透测试概述渗透测试的定义渗透测试是一种通过模拟恶意黑客的攻击方法来评估计算机网络系统安全的行为,旨在验证网络防御的有效性。渗透测试的目的渗透测试的位置渗透测试的核心目的是通过模拟恶意攻击来识别系统的弱点、技术缺陷或漏洞,从而评估系统的安全状态。渗透测试由专业人士在不同位置进行,以确保全面覆盖所有可能的攻击路径,过程类似于对金库进行安全检测和评估。2.2.3常见的渗透测试工具01Nmap是强大的网络发现工具和细致的安全审计工具,用户可以根据需要定制其扫描范围或精确程度。Nmap1、基本扫描:nmap<target>对指定的目标进行端口扫描,目标可以是IP地址或域名。2、扫描特定端口:nmap-p<port><target>使用-p选项可以指定要扫描的端口。3、扫描多个端口:nmap-p<port1,port2,...><target>可以使用逗号分隔多个端口,也可以用连字符表示端口范围:nmap-p22,80,443nmap-p20-254、扫描常见端口:nmap-F<target>-F选项会快速扫描100个常见端口。5、服务版本检测:nmap-sV<target>-sV选项会尝试检测每个开放端口上运行的服务及其版本。6、操作系统检测:nmap-O<target>-O选项会尝试检测目标主机的操作系统类型和版本。7、启用详细输出:nmap-v<target>-v选项会启用详细输出,显示更多的扫描过程信息8、扫描网络范围:nmap<network>/<cidr>可以扫描整个网络范围,例如:nmap/249、保存扫描结果:nmap-oN<outputfile><target>nmap-oX<outputfile><target>-oN选项将结果以普通文本保存,-oX选项将结果以XML格式保存。例如:nmap-oNscan.txtnmap-oXscan.xml10、防火墙/IDS规避技术:nmap-sS<target> #半开扫描(SYN扫描)nmap-sF<target> #FIN扫描nmap-sX<target> #Xmas扫描这些扫描方法可以帮助规避防火墙和入侵检测系统。11、仅显示开放端口:nmap--open<target>--open选项只显示开放的端口,忽略关闭或过滤的端口。2.2.3常见的渗透测试工具进入交互界面命令执行后,用户将进入到Metasploit的交互界面,准备进行漏洞利用等操作。启动控制台要启动Metasploit控制台,用户需要输入命令“msfconsole”。02Metasploit是针对远程目标开发、测试和执行漏洞利用代码的首选工具包。它提供了一个完整的开发环境,包含大量的漏洞利用工具、payloads(负载)和编码器,使渗透测试人员能够轻松发现、验证和利用安全漏洞。Metasploit搜索模块在Metasploit中,使用“search”命令可以查找可用的漏洞利用模块,例如,查找针对Apache的漏洞。选择模块使用“use”命令可以选择一个漏洞利用模块,例如,选择一个针对vsftpd的漏洞利用模块。查看选项使用“showoptions”命令可以查看当前模块的可配置选项,以便进行后续设置。设置选项使用“set”命令可以设置选项,例如,设置目标IP地址等。注意,这里以设置RHOST为例。运行漏洞利用使用“exploit”命令可以运行漏洞利用模块,尝试对目标系统进行渗透,执行攻击。Metasploit基本命令介绍01020304052.2.3常见的渗透测试工具搜索漏洞利用模块在Metasploit中搜索vsftpd相关的漏洞利用模块,可以使用“searchvsftpd”命令。选择漏洞利用模块选择漏洞利用模块时,可以使用“useexploit/unix/ftp/vsftpd_234_backdoor”命令。查看模块选项要查看已选择模块的选项,可以使用“showoptions”命令,了解模块的配置要求和可能选项。设置目标IP地址在设置目标IP地址时,可以使用“setRHOST”命令来指定目标系统的IP地址。运行漏洞利用确认所有设置无误后,使用“exploit”命令运行漏洞利用程序,开始对目标系统进行渗透测试。Metasploit漏洞利用示例01020304052.2.3常见的渗透测试工具辅助模块包括扫描、嗅探等功能,不会直接利用漏洞,主要用于信息收集、网络分析或安全评估等任务。漏洞利用模块用于攻击目标系统的已知漏洞,旨在利用系统或应用的弱点,实现未经授权的代码执行或数据泄露。有效载荷模块在成功利用漏洞后执行的代码,例如打开一个反向shell,用于建立与目标系统的交互会话或执行特定操作。常见模块类型后渗透模块成功利用漏洞后,用于进一步控制和收集信息,例如提升权限、横向移动或数据窃取等。NOPS指令(Nop)用于填充空间,使exploit的shellcode对齐。编码器(Encoders)用于编码payload以绕过防病毒软件。规避模块(Evasion)用于生成免杀的远程控制被控端。2.2.3常见的渗透测试工具3、Nessus的使用步骤:输入账号密码登录Nessus,新建扫描任务并选择基本网络扫描,配置项目名称、描述及目标IP地址范围。1、Nessus简介:Nessus是一款功能强大的漏洞扫描工具,用于扫描网络漏洞、配置问题、基准测试不足和补丁缺失等问题。5、Nessus的扫描结果:运行扫描任务后,点击“Vulnerables”查看已发现的安全漏洞。2、Nessus的作用:一旦系统被指纹识别,渗透测试人员可用Nessus确定该系统容易受到哪些类型的攻击,此步骤后Metasploit等工具将陆续登场发挥威力。4、Nessus的扫描任务:如果我们有目的账号、密码,可以点“Credentials”进行配置,点击“Plugins”可以查看漏洞扫描用件配置完成后,点击“Save”保存。在“MyScan”里就可以看见已建立的扫描任务2.2.3常见的渗透测试工具Nessus工具介绍03启动Wireshark打开Wireshark后,首先选择需要抓取的网络接口,双击网卡名即可开始抓包。停止抓包点击左上角的红色按钮可以停止抓包,点击右上角的“文件”选择“保存”来保存抓包数据。捕获本地回环数据如果需要捕获本地回环数据,可以通过命令行添加路由来实现,确保数据包被正确捕获。过滤器表达式Wireshark支持捕获过滤器和显示过滤器,可以帮助用户快速找到感兴趣的数据包。04Wireshark‌是一款开源的网络抓包分析工具,常用于检测网络问题、攻击溯源和分析底层通信机制。Wireshark2.2.3常见的渗透测试工具类型原语:包括地址原语host、net,端口原语port、portrange;host可表示以太网层、IP层主机地址或域名;net用于过滤多个IP地址。方向原语:主要是src和dst;srchost15表示源IP地址是15的报文;dsthost16表示目的IP地址是16的报文。协议原语:包括常见的ether,arp,rarp,ip,ip6,tcp,udp;确认是否支持协议的捕获过滤,再过滤栏输入该协议的名称,如果过滤规则变绿说明支持,如果为红则不支持。捕获过滤器的限制:捕获过滤器支持的协议较少,小于wireshark支持的协议数量,只能够做到初步的过滤,分析时候需要进一步的使用显示过滤器。捕获过滤规则使用BPF语法010203042.2.3常见的渗透测试工具‌获取数据库信息‌:获取当前使用的数据库‌:sqlmap-u'http://xx/?id=1'--current-db‌获取所有数据库‌:sqlmap-u'http://xx/?id=1'--dbs‌获取特定数据库的所有表‌:sqlmap-u'http://xx/?id=1'-D'security'--tables‌获取所有数据库的所有表‌:sqlmap-u'http://xx/?id=1'--tables‌获取特定表的字段‌:sqlmap-u'http://xx/?id=1'-D'security'-T'users'--columns‌获取字段类型‌:sqlmap-u'http://xx/?id=1'-D'security'--schema‌获取表中的数据‌:sqlmap-u'http://xx/?id=1'-D'security'-T'users'--dump其他常用选项‌探测等级‌:通过--level参数设置,默认是1,level2会测试HTTPcookies,level3会测试User-Agent和Referer。‌是否为数据库管理员‌:通过--is-dba参数判断当前用户是否为数据库管理员。‌伪造HTTP头‌:可以通过--referer参数伪造HTTPReferer头。‌运行SQL语句‌:使用--sql-shell参数执行自定义的SQL语句。执行系统命令和获取shell‌执行系统命令‌:sqlmap.py-u/sqli-labs/Less-1/?id=1--os-cmd=ipconfig‌获取操作系统shell‌:sqlmap.py-u/sqli-labs/Less-1/?id=1--os-shell05SQLmap‌是一个开源的渗透测试工具,主要用于检测SQL注入漏洞,并获取数据库信息。SQLmap可用于从数据库中提取数据、获得数据库管理权限甚至在服务器上执行远程命令。SQLmap2.2.3常见的渗透测试工具读取和写入文件读取文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论