版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web攻击网络安全技术第八章+SQL注入攻击01漏洞产生原因SQL注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行SQL语句以及进行其他方式的攻击,动态生成SQL语句时没有对用户输入的数据进行验证是SQL注入攻击得逞的主要原因。SQL注入原理SQL命令可查询、插入、更新、删除等,命令的串接。而以分号字符为不同命令的区别。(原本的作用是用于SubQuery或作为查询、插入、更新、删除……等的条件式)。SQL命令中,可注入注解(连续2个减号字符--后的文字为注解,或“/”与“/”所包起来的文字为注解)。SQL命令对于传入的字符串参数是用单引号字符所包起来。(但连续2个单引号字符,在SQL数据库中,则视为字符串中的一个单引号字符)。请因此,如果在组合SQL的命令字符串时,未针对单引号字符作转义处理的话,将导致该字符变量在填入命令字符串时,被恶意窜改原本的SQL语法的作用。SQL注入类型参数类型分类数字型字符型注入手法分类联合查询注入报错注入基于布尔的盲注基于时间的盲注HTTP头注入宽字节注入堆叠查询二阶注入+跨站脚本攻击(XSS)02XSS攻击简介跨站脚本攻击XSS(CrossSiteScripting),为了不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以XSS漏洞关键就是寻找参数未过滤的输出函数。常见XSS攻击类型01反射型XSS<非持久化>攻击者事先制作好攻击链接,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。02存储型XSS<持久化>代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie(虽然还有种DOM型XSS,但是也还是包括在存储型XSS内)。常见XSS攻击类型03DOM型XSS基于文档对象模型DocumentObjeetModel,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如URL,location等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOMXSS漏洞。XSS原理010203反射型XSS利用了应用程序对用户输入的不恰当处理或输出过程中的漏洞。攻击者通过构造恶意的请求,将恶意脚本注入到应用程序返回的响应中。一旦用户访问了携带恶意脚本的链接,浏览器会执行该脚本,从而导致攻击者能够窃取用户的敏感信息、修改页面内容或进行其他恶意操作。反射型XSS存储型XSS的原理是攻击者将恶意脚本注入到目标网站的数据库中,然后当其他用户访问该网站时,恶意脚本会从数据库中取出并在用户浏览器中执行,从而导致安全漏洞。存储型XSSDOM型XSS攻击利用网页DOM结构的漏洞,通过JavaScript操作DOM,插入并执行恶意代码。这种攻击难以被常规漏扫工具检测。DOM型XSS要对XSS攻击进行防范,从Web程序开发角度,需要遵循安全开发原则,采取措施防止跨站脚本攻击。XSS防范+跨站请求伪造(CSRF)03
CSRF攻击原理及过程Cookie和Session示意图
CSRF攻击原理及过程CSRF过程图CSRF分类01GET类型的CSRF02POST类型的CSRF通过一个简单的HTTPGET请求即可实现。例如,用户登录银行站点后访问危险站点,该站点的HTML代码可能会触发一个GET请求,导致用户银行账户资金被转移。早期认为只有GET请求能发起CSRF攻击,但攻击者可以通过构造表单和JavaScript自动提交来发起POST请求。例如,攻击者可以创建一个隐藏的iframe,其中包含自动提交表单的代码,从而在用户不知情的情况下完成操作。CSRF漏洞的挖掘①最简单的方法就是抓取一个正常请求的数据包,如果没有Referer字段和token,那么极有可能存在CSRF漏洞。②如果有Referer字段,但是去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。③随着对CSRF漏洞研究的不断深入,不断涌现出一些专门针对CSRF漏洞进行检测的工具,如CSRFTester,CSRFRequestBuilder等。以CSRFTester工具为例,CSRF漏洞检测工具的测试原理如下:下面是挖掘的一些技巧和工具的使用:使用CSRFTester进行测试时,首先需要抓取我们在浏览器中访问过的所有链接以及所有的表单等信息,然后通过在CSRFTester中修改相应的表单等信息,重新提交,这相当于一次伪造客户端请求。如果修改后的测试请求成功被网站服务器接受,则说明存在CSRF漏洞,当然此款工具也可以被用来进行CSRF攻击。CSRF漏洞的防御1.用户端:避免非必要的登录,使用二维码或多重验证登录,不点击可疑链接,使用专用浏览器访问重要网站。2.开发者端:
-验证码:强制用户与应用交互,有效遏制CSRF,但不宜滥用,以免影响用户体验。
-Referer验证:通过检查请求头中的Referer字段识别访问来源,过滤可疑请求。但依赖浏览器实现,存在安全风险。
-请求地址添加Token:在请求中加入服务器生成的随机Token,服务器端验证Token有效性,增加攻击者伪造请求难度。但需注意Token的安全性和在动态内容中的应用。
-HTTP头自定义属性:将Token放在HTTP头自定义属性中,适用于Ajax请求,避免Token泄露,但不适合所有请求,且重构成本高。综合这些措施,可以有效提升网站对抗CSRF攻击的能力。防御CSRF攻击的措施包括:文件解析攻击01htaccess攻击Apache中允许对站点同时解析,并且提供给类型机制实现不同站点之间的个性化配置功能,.htaccess即为其中的一项。.htaccess可配置解析目标,比如如下代码,允许包含字符“XXE”的文件以PHP方式执行。<FilesMatch"XXE">SetHanderapplication/x-httpd-php</FilesMatch>文件解析攻击02Web服务器解析漏洞攻击解析漏洞可以说是Web安全中比较“古老”的漏洞类型,绝大多数解析漏洞都是中间件的版本过低造成的。由于中间件在判断文件类型时,存在判断机制的问题,导致在实际解析过程中并不会按照既定的后缀名进行解析。攻击者针对这种情况,在文件名构造上进行特殊设计,导致中间件在判断此类特殊文件名时触发解析漏洞,实际解析后的文件与文件名并不相同(.jpg文件会被当做.php文件执行)。解析漏洞的危害在于Web应用防护方面防护看似非常到位,但仍存在安全隐患。目前主流中间件在老版本中均存在解析漏洞。谢谢观看网络安全技术防火墙网络安全技术第九章+防火墙工作原理与分类01防火墙基本概念01防火墙基本功能作为一个中心“遏制点”,将内部网的安全管理集中起来,所有的通信都经过防火墙。只放行经过授权的网络流量,屏蔽非法请求,防止越权访问,并产生安全报警。能经受得起对其自身的攻击。
02防火墙工作在OSI参考模型上如表所示OSI参考模型防火墙技术应用层应用级网关表示层加密会话层电路级网关传输层包过滤网络层NAT数据链路层无物理层无防火墙基本概念03防火墙的发展史第一代防火墙技术由附加在边界路由器上的访问控制表ACL(AccessControlTable)构成,采用了包过滤技术。第二代代理防火墙即电路层网关和应用层网关。1994年,以色列的CheckPoint公司开发出了第一个基于动态包过滤技术的防火墙产品。1998年,美国的网络联盟公司NAI(NetworkAssociatesInc.)又推出了一种自适应代理技术。04防火墙的两大分类包过滤防火墙和代理防火墙。前者以Checkpoint防火墙和Cisco公司的PIX防火墙为代表,后者以NAI公司的Gauntlet防火墙为代表。防火墙基本概念05防火墙的组成防火墙既可以是一台路由器、一台PC或者一台主机,也可以是由多台主机构成的体系。应该将防火墙放置在网络的边界。网络边界是一个本地网络的整个边界,本地网络通过输入点和输出点与其它网络相连,这些连接点都应该装有防火墙,然而在网络边界内部也应该部署防火墙,以便为特定主机提供额外的、特殊的保护。06防火墙的分类根据采用的技术不同,可分为包过滤防火墙和代理服务防火墙。按照应用对象的不同,可分为企业级防火墙与个人防火墙。依据实现的方法不同,又可分为软件防火墙、硬件防火墙和专用防火墙。防火墙基本概念07软件防火墙防火墙运行于特定的计算机上,一般来说这台计算机就是整个网络的网关。软件防火墙像其它的软件产品一样需要先在计算机上安装并做好配置才可以使用。使用这类防火墙,需要网络管理人员对所工作的操作系统平台比较熟悉。08硬件防火墙由PC硬件、通用操作系统和防火墙软件组成。在定制的PC硬件上,采用通用PC系统、Flash盘、网卡组成的硬件平台上运行Linux、FreeBSD、Solaris等经过最小化安全处理后的操作系统及集成的防火墙软件。特点是开发成本低、性能实用、稳定性和扩展性较好,价格也低廉。09专用防火墙采用特别优化设计的硬件体系结构,使用专用的操作系统,此类防火墙在稳定性和传输性能方面有着得天独厚的优势,速度快,处理能力强,性能高;由于使用专用操作系统,容易配置和管理,本身漏洞也比较少,但是扩展能力有限,价格也较高。包过滤防火墙无状态包过滤防火墙:无状态包过滤也叫静态包过滤或者无检查包过滤。防火墙在检查数据包报头时,不关心服务器和客户机之间的连接状态,只是根据定义好的过滤规则集来检查所有进出防火墙的数据包报头信息来允许或者拒绝数据包。01无状态包过滤防火墙02IP欺骗当外部主机伪装内部主机的IP地址时,防火墙能够阻止这种类型的IP欺骗。但是当外部主机伪装成可信任的外部主机的IP地址时,防火墙却不能阻止它们。由于无状态包过滤防火墙不能为挂起的通信维持一个记录,所以它就必须根据数据包的格式来判断该数据包是否属于先前所允许的对话。这就使其有受到IP欺诈的可能性,并且无法识别UDP数据包和ICMP包的状态。包过滤防火墙对于一些比较新的多媒体应用在会话开始之前端口号是未知的。有状态包过滤防火墙:有状态包过滤也叫状态包检查SPI(State-fulPacketInspection)或者动态包过滤(Dynamicpacketfilter),后来发展成为包状态监测技术,它是包过滤器和应用级网关的一种折衷方案。具有包过滤机制的速度和灵活,也有应用级网关的应用层安全的优点。03无法过滤服务04SPI防火墙采用SPI技术的防火墙除了有一个过滤规则集外,还要对通过它的每一个连接都进行跟踪,汲取相关的通信和应用程序的状态信息,形成一个当前连接的状态列表。列表中至少包括源和目的IP地址、源和目的端口号、TCP序列号信息,以及与那个特定会话相关的每条TCP/UDP连接的附加标记。当一个会话经过防火墙时,SPI防火墙把数据包与状态表、规则集进行对比,只允许与状态表和规则集匹配的项通过。代理防火墙最初,代理服务器将常用的页面存储在缓冲区中,以便提高网络通信的速度。后来代理服务器逐渐发展为能够提供强大安全功能的一种技术。代理能在应用层实现防火墙功能,代理技术针对每一个特定应用都有一个程序,通过代理可以实现比包过滤更严格的安全策略。代理防火墙或者说代理服务器(ProxyServer)防火墙,是基于软件的。运行在内部用户和外部主机之间,并且在它们之间转发数据,它像真的墙一样挡在内部网和Internet之间。从外面来的访问者只能看到代理服务器但看不见任何内部资源;而内部客户根本感觉不到代理服务器的存在,他们可以自由访问外部站点。代理可以提供极好的访问控制、登录能力以及地址转换功能,对进出防火墙的信息进行记录,便于管理员监视和管理系统。电路级网关电路级网关不允许TCP端到端的连接,而是要建立两个连接。其中一个连接是网关到内部主机,另一个是网关到外部主机。一旦两个连接被建立,网关只简单地进行数据中转,即它只在内部连接和外部连接之间来回拷贝字节,并将源IP地址转换为自己的地址,使得外界认为是网关和目的地址在进行连接。由于电路级网关在会话建立连接后不对所传输的内容作进一步的分析,因此安全性稍低。应用级网关应用级网关主要工作在应用层。当客户机需要使用服务器上的数据时,首先将数据请求发给代理服务器,代理服务器再根据这一请求向服务器索取数据,然后再由代理服务器将数据传输给客户机。由于外部系统与内部服务器之间没有直接的数据通道,外部的恶意侵害也就很难伤害到内部网。在应用级网关中,每一种协议都需要相应的代理软件,常用的代理服务软件有如HTTP、SMTP、FTP、Telnet等,但是对于新开发的应用,尚没有相应的代理服务。有些应用级网关还存储Internet上的那些被频繁使用的页面。当用户请求的页面在服务器缓存中存在时,服务器将检查所缓存的页面是否是最新的版本(即该页面是否已更新),如果是最新版本,则直接提交给用户,否则,到真正的服务器上请求最新的页面,然后再转发给用户。其他防火墙自适应代理防火墙1复合防火墙2个人防火墙3+防火墙体系结构02堡垒主机单宿主堡垒主机①双宿主堡垒主机②内部堡垒主机③外部堡垒主机④受害堡垒主机⑤01堡垒主机非军事区(DMZ)在现代网络安全设计中用到的最关键的思想之一是按照功能或者部门将网络分割成网段。不同的网段对安全有着不同的需要。屏蔽路由器屏蔽路由器(ScreeningRouter)是在Internet和内部网之间放置一个路由器,使之执行包过滤功能,这是最简单的防火墙。屏蔽路由器可以由路由器实现。它作为内外连接的唯一通道,要求所有的数据包都必须在此通过检查。在路由器上安装包过滤软件,实现包过滤功能。虽然它并不昂贵,但仍能提供重要的保护。双宿柱主机体系结构用一台装有两块网卡的堡垒主机做防火墙,两块网卡各自与内部网和Internet相连。堡垒主机上运行防火墙软件,可以转发应用程序,提供服务等。内、外部网之间的通信必须经过堡垒主机。在这种体系结构中必须禁用路由选择功能,这样防火墙两边的网络才可以只与双宿主主机通信,而两系统不能直接通信。主机过滤体系结构在双宿主主机体系结构防火墙中没有使用路由器。而主机过滤体系结构防火墙(ScreenedHostFirewall)则使用一个路由器把内部网和外部网隔离,路由器充当内部网和外部网之间的接口。主机过滤体系结构子网过滤体系结构也称为被屏蔽子网体系结构或者筛选子网体系结构。它用两台包过滤路由器建立一个DMZ,用这一DMZ将内部网和外部网分开。组合体系结构建造防火墙时,一般很少采用单一的技术,通常采用解决不同问题的多种技术的组合,+常见防火墙介绍03包过滤防火墙1应用层网关2状态检测防火墙3神经网络防火墙4入侵检测系统5负载均衡器6代理防火墙7云防火墙8+防火墙与国家安全04在信息化时代,网络安全已成为国家安全的新边疆。防火墙技术作为守护网络空间的一道重要防线,不仅关系到个人隐私和企业数据的安全,更是维护国家主权和安全的关键技术之一。防火墙技术是国家网络安全的基石。在全球化的网络环境中,国家面临着来自外部的网络攻击和内部的安全威胁。防火墙能够有效地监控和过滤网络流量,防止未经授权的访问和恶意攻击,保护国家关键信息基础设施免受损害。这不仅涉及到经济利益,更关乎国家的政治安全和社会稳定。谢谢观看网络安全技术入侵检测系统网络安全技术第十章+IDS技术原理01IDS通用模型入侵检测通用模型IDS通用模型01CIDF的体系结构事件产生器1事件分析器2事件数据库3响应单元402CIDF规范语言CIDF的规范语言文档定义了一个公共入侵标准语言(Commonintrusionspecificationlanguage,CISL),各IDS使用统一的CISL来表示原始事件信息、分析结果和响应指令,从而建立了IDS之前信息共享的基础。CISL是CIDF的最核心也是最重要的内容。IDS通用模型03CIDF内部通讯层次结构GIDO层(GIDOlayer)消息层(Messagelayer)传输层(NegotiatedTransportlayer)04CIDF程序接口CIDF也对各组件之间的信息传递格式、通信方法和标准API进行了标准化。在现有的IDS中,经常用数据采集部分、分析部分、响应部分和日志来分别代替事件产生器、事件分析器、响应单元和事件数据库这些术语。根据检测所用数据的来源不同,可将入侵检测系统分为以下三类:IDS类别01根据检测所用数据源进行分类基于主机的入侵检测系统(HIDS)基于网络的入侵检测系统(NIDS)基于混合数据源的入侵检测系统(HIDS+NIDS)IDS类别02根据检测分析方法进行分类①误用检测系统(基于知识的检测)②异常检测系统(基于行为的检测)③误用和异常检测混合的入侵检测系统03根据入侵检测方式进行分类实时检测系统非实时检测系统IDS分析方法010203病毒和恶意软件(例如木马、蠕虫、病毒等)是网络安全的主要威胁之一,可以窃取用户敏感信息、破坏系统、挖矿、勒索等。误用检测异常检测(anormalydetection)是指根据非正常行为(系统或用户)和资源非正常使用情况检测出入侵行为。异常检测是一种基于行为的检测方法,它的通用性较强,可以检测出未知的攻击模式。异常检测协议分析是出现最晚的入侵检测方法,它利用网络协议的高度规则性,快速识别协议,并检测是否存在攻击,通过辨别数据包的协议类型,以便使用相应的数据分析程序来检测数据包。协议分析(NTA)+IDS配置与使用02Snort简介01Snort的功能网络入侵检测系统(IDS)网络入侵防御系统(IPS)协议分析内容搜索与匹配基于规则的检测02Snort的工作模式Sniffer模式PacketLogger模式NetworkIntrusionDetectionSystem(NIDS)模式IntrusionPreventionSystem(IPS)模式Snort简介03Snort的优势开源免费1灵活性强2广泛应用304Snort的工作流程Snort安装与配置1.进入Snort官网下载网址:/downloads下载snort-.tar.gz,daq-2.0.6.tar.gz推荐下载安装都选择进入官网页面的Source下默认显示的下载包,否则可能安装时候遇到问题。2.解压安装包,命令如下:tar-zxvfsnort-.tar.gztar-zxvfdaq-2.0.6.tar.gz3.在安装Snort之前,先安装daq所依赖的开发包,直接编译会出现错误,命令如下:apt-getinstallflexapt-getinstallbisonapt-getinstalllibpcap-devSnort安装与配置4.查看目录下文件,并对daq包进行编译,命令如下:#查看目录下文件ls#对daq包编译./configure&&make&&makeinstall5.安装snort所依赖的软件包,命令如下:apt-getisnatlllibpcre3-devapt-getinstalllibdumbnet-devapt-getinstallzlibig-dev6.对snort包进行编译,命令如下:./configure-disable-open-appid&&make&&makeinstall7.查看snort是否安装成功,命令如下:snort-h8.配置Snort规则,从官网下载规则包。9.下载并解压最新的规则包,然后将Snort安装目录的包用规则包进行替换。使用Snort进行入侵检测测试01简单练习规则在Snort安装目录下的rules/local.rules中进行规则配置,设置规则如下:alertudpanyany<>$HOME_NETany(msg:"udpids/dns-version-query";content:"version";)02利用Snort检测ping攻击①在rules/icmp-info.rules文件中设置规则如下:alerticmp$EXTERNAL_NETany->$HOME_NETany(msg:"ICMPLargeICMPPacket";dsize:>800;reference:arachnids,246;classtype:bad-unknown;sid:499;rev:4;)②创建snort检测日志,命令如下:mkdir/var/log/snort使用Snort进行入侵检测测试02利用Snort检测ping攻击③将Snort规则中的路径(RULE_PATH)改为Snort下的rules规则路径。④使用Snort规则对流量进行检测,并将结果输出到snort日志中,命令如下:snort-ieth0-c/software/snort-/etc/snort.conf-Afast-l/var/log/snort/⑤成功开启snort进行检测。⑥使用局域网内主机对安装snort主机进行包>800的ping攻击,命令如下:ping01-l1000⑦在日志中查看检测结果,打开在②创建的日志。使用Snort进行入侵检测测试03利用Snort检测nmap扫描①对Snort规则进行修改,将检测的家庭网络改为所在局域网,命令如下:ipvarHOME_NET/24②在rules/local.rules下进行tcp规则配置,命令如下:alerttcp$EXTERNAL_NETany->$HOME_NETany(msg:"nmapscan";sid:1000000888;)③启动Snort进行局域网内的扫描检测snort-ieth0-c/software/snort-/etc/snort.conf-Afast-l/var/log/snort/④使用宿主机进行局域网内的namp扫描,命令如下:nmap-sP/24⑤在var/log/snort中查看检测结果。常见使用问题错误信息1注释删除1常见使用问题错误信息2注释删除2常见使用问题错误信息3这是因为在tcp规则的设定中,没有sid号导致的错误(注释:<100保留,100~999999为snrot发布用,>=1000,000本地用)。+入侵检测日志分析03日志分析日志分析是通过检查系统生成的日志文件来识别潜在的安全事件、异常行为或系统故障的过程。在网络安全中,日志分析尤其重要,因为它帮助管理员了解网络中的活动,识别入侵企图或攻击的痕迹。对于Snort这样的入侵检测系统(IDS),日志分析涉及对捕获的网络流量和生成的安全事件进行审查,以便发现可疑活动、网络攻击的模式或潜在的漏洞。这一过程可以为进一步的防御措施提供关键信息,确保网络的安全性和稳定性。Snort安装成功后,并不表示一切都万事大吉了,你还有许多事情要做。Snort启动后,它会在的硬盘上记录大量的报警信息。因此,你需要工具对日志或者报警文件进行分析。不同你的需要和安全形势,要求你使用不同的工具。你可能只要一个日志汇总,或者你的领导要求你提供一个最近10次攻击的报告。或对于某个报警你可能需要获取更多的信息,以便做进一步的研究。不管是出于什么目的,日志分析可以帮助你从日志中获取有用的信息,使你可以针对攻击威胁采取必要措施。Snort的日志格式01基于文本的格式如果在启动Snort时,使用-A[fast|full|none]选项,Snort就会把报警信息保存到一个文件中。例如如下:[]INFO-ICQAccess[][Classification:content:"MKD/"][Priority:0]05/10-10:02:31.953089.:54835->:80TCPTTL:127TOS:0x0ID:13690IpLen:20DgmLen:482DFAPSeq:0x112BDD12Ack:0x11B38D8AWin:0x4510TcpLen:20其中的[Classification:content:"MKD/"][Priority:0]是报警的分类和优先级。①报警文件Snort的日志格式01基于文本的格式Snort使用这个插件可以把日志数据或者报警信息以XML格式保存到本地文件和输出到一个中心数据库,或者发送到CERT进行处理。这些数据使用SNML格式。XML输出插件支持HTTP、HTTPS和IAP(入侵报警协议,IntrusionAlertProtocol)协议。它的数据可以使用HEX、BASE64或者ASCII编码。下面是XML输出插件的配置示例:outputxml:log,file=/var/log/snort/snortxml这配置可以让Snort把产生的日志信息输出到/var/log/snort/snortxml-MMDD@HHMM命名的文件中,其中MMDD是月、日,HHMM是时、分。outputxml:alert,protocol=httpshost=file=yourfilecert=mycert.crtkey=mykey.pemca=ca.crtserver=srv_list.lst这配置使Snort使用HTTPS协议把产生的输出送到远程服务器的文件yourfile,cert、key、ca与SSL有关,server参数可以设置连接的服务器列表。②syslog文件Snort的日志格式01基于文本的格式取消Snort.conf文件中以下注释,可以使Snort向系统日志文件中日志数据:outputalert_syslog:LOG_AUTHLOG_ALERT输出格式如下:May1000:03:38xxxxxxsnort:INFO-ICQAccess[Classification:content:"MKD/"Priority:0]::54352->:80④XML格式通过CSV输出插件,Snort可以使用CSV格式记录数据。它的配置非常容易,只要在Snort.conf文件中加入以下的配置行:outputCSV:/your/filenametimestamp,msg,proto,src,dst③CSV文件Snort的日志格式02tcpdump格式报文捕获库(libcap)应用广泛,许多的报文捕获程序都是基于这个库的,例如:tcpdump和snort。在snort.conf文件中加入下面的配置行,能够把日志以tcpdump二进制格式记录到指定的文件中:outputlog_tcpdump:snort_dump.logSnort的日志格式03数据库数据库输出插件支持MySQL、PostgreSQL、unixODBS和Oracle数据库,在snort.conf文件中加入如下:outputdatabase:log,mysql,user=snortuserpassword=snortpassdbname=snortdbhost=localhost就可以使Snort把日志数据输出到名为snortdb的MySQL数据库中,这个数据库位于本地主机,用户名为snortuser,验证密码是snortpass。针对不同的数据库系统,mysql可以改为postgresql、unixodbc或者oracle。在使用数据库之前,需要做建立数据库和用户/密码等准备工作。还要为用户这是适当的权限,然后使用contrib目录下的create_mysql、create_postgresql、create_oracle.sql建立数据库的表。查看Snort日志与工具01查看Snort日志的方法①Wireshark②Splunk③ELKStack(Elasticsearch,Logstash,Kibana)02日志分析工具直接查看日志文件①使用Snort自带的日志查看工具②Barnyard2③Snort警报日志解读01日志解读[1:1000001:0]ICMPPINGNMAP其中:[1]:表示规则的生成器编号(GID),通常是1,代表这是Snort基本规则。1000001:这是触发该警报的规则ID(SID),每条Snort规则都有一个唯一的SID。0:规则的修订版本号(Rev),表示这是该规则的第一个版本。ICMPPINGNMAP:警报的描述,表示Snort检测到了使用Nmap工具执行的ICMPping扫描。这表明可能有人在使用Nmap扫描目标网络的活跃主机。①警报头信息:②优先级:[Priority:3]:其中:Priority:3表示这条警报的严重性较低。优先级3表示这是一个低威胁的警报,可能是探测行为而不是实际的攻击。Snort警报日志解读01日志解读03/05-12:10:20.12345600->其中:03/05-12:10:20.123456:表示警报触发的日期和时间(3月5日12:10:20),精确到微秒。00->:表示警报中涉及的源IP和目标IP地址。此处表示源IP00向目标IP发送了ICMP请求。③时间戳和源/目标IP地址:④ICMP相关信息:CMPTTL:64TOS:0x0ID:12345IpLen:20DgmLen:84TTL:64:表示ICMP数据包的生存时间(TTL),一般值为64。TOS:0x0:服务类型,表示该数据包的优先级信息,这里是0x0,即无特定优先级。ID:12345:数据包标识符。IpLen:20:IP头的长度,单位是字节。DgmLen:84:数据报长度,表示整个ICMP数据包的长度为84字节。Snort警报日志解读01日志解读Type:8Code:0ID:56789Seq:1ECHOType:8:ICMP类型8表示“EchoRequest”,即ICMPping请求。Code:0:ICMP代码,通常与类型配合使用,这里为0,表示标准的EchoRequest。ID:56789:ICMP标识符,用于区分不同的请求。Seq:1:序列号,表示该Echo请求的序列号。ECHO:表示这是一条ICMPEcho(ping)请求。⑤ICMP特殊字段:Snort警报日志解读02分析解读这条日志表明Snort检测到了一次ICMPping扫描,特别是由Nmap工具发起的扫描行为。Nmap是一种常用于网络探测和漏洞扫描的工具,攻击者常用它来发现网络上的活跃主机。①检测到的事件虽然ping扫描本身不是攻击,但它可能是攻击者探测网络的前奏。通过ping扫描,攻击者可以找出哪些主机在线,并进一步进行漏洞扫描或攻击。②潜在威胁虽然优先级较低,但应密切关注这种扫描行为。如果此类扫描频繁出现,可以采取措施,如在防火墙中阻止ICMP请求或使用防御系统对扫描源进行限制。③建议的应对措施谢谢观看网络安全技术数据加密网络安全技术第十一章+数据加密技术01对称加密对称加密算法是应用较早的加密算法,又称为共享密钥加密算法。在对称加密算法中,使用的密钥只有一个,发送和接收双方都使用这个密钥对数据进行加密和解密。这就要求加密和解密方事先都必须知道加密的密钥。对称加密流程图所示。非对称加密非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥(publickey),即公钥,另一个称为私有密钥(privatekey),即私钥。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。非对称加密流程图如图所示。数字签名数字签名,简单来说就是通过提供可鉴别的数字信息验证自身身份的一种方式。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。分别由发送者持有能够代表自己身份的私钥(私钥不可泄露),由接受者持有与私钥对应的公钥,能够在接受到来自发送者信息时用于验证其身份。数字签名原理图如图所示。+常见的数据加密算法02MD5算法MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改。严格来说,MD5不是一种加密算法而是摘要算法。无论是多长的输入,MD5都会输出长度为128bits的一个串(通常用16进制表示为32个字符)。算法核心代码如下:publicstaticfinalbyte[]computeMD5(byte[]content){try{MessageDigestmd5=MessageDigest.getInstance("MD5");returnmd5.digest(content);}catch(NoSuchAlgorithmExceptione){thrownewRuntimeException(e);}}SHA1算法SHA1是和MD5一样流行的消息摘要算法,然而SHA1比MD5的安全性更强。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。基于MD5、SHA1的信息摘要特性以及不可逆(一般而言),可以被应用在检查文件完整性以及数字签名等场景。算法核心代码如下:publicstaticbyte[]computeSHA1(byte[]content){try{MessageDigestsha1=MessageDigest.getInstance("SHA1");returnsha1.digest(content);}catch(NoSuchAlgorithmExceptione){thrownewRuntimeException(e);}}HMAC算法HMAC是密钥相关的哈希运算消息认证码(Hash-basedMessageAuthenticationCode),HMAC运算利用哈希算法(MD5、SHA1等),以一个密钥和一个消息为输入,生成一个消息摘要作为输出。HMAC发送方和接收方都有的key进行计算,而没有这把key的第三方,则是无法计算出正确的散列值的,这样就可以防止数据被篡改。HMAC算法实例在多线程环境下是不安全的。但是需要在多线程访问时,进行同步的辅助类,使用ThreadLocal为每个线程缓存一个实例可以避免进行锁操作。DES算法DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。DES加密算法是对密钥进行保密,而公开算法,包括加密和解密算法。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为2^56次。3DES算法3DES(TripleDataEncryptionStandard)算法是基于DES的对称算法,也称为DESede,是DES算法的加强版,对一块数据用三个不同的密钥进行三次加密,强度更高。3DES算法使用3个56位的密钥对数据进行加密和解密,它的加密过程包括以下步骤:第一次DES加密:使用第一个密钥对数据块进行加密。第二次DES解密:使用第二个密钥对第一次加密得到的结果进行解密。第三次DES加密:使用第三个密钥对第二次解密得到的结果进行加密。3DES算法的加密过程相当于对数据进行了两次加密和一次解密,因此安全性更高。同时,3DES算法也可以使用两个密钥,即双重DES(2DES)算法,但这种算法已经不再被推荐使用。3DES算法已经成为广泛使用的加密算法之一,它的安全性比DES算法更高,但速度比DES算法慢。因此,在实际应用中,需要根据实际需求选择合适的加密算法。同时,3DES算法已经逐渐被更安全和更快速的加密算法所取代,如AES算法。AES算法AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128位、192位、256位,分组长度128位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准。考虑到AES、DES、3DES都是对称的块加密算法所以只针对AES算法进行实例编写。AES、DES、3DES都是对称的块加密算法,加解密的过程是可逆的。常用的有AES128、AES192、AES256(默认安装的JDK尚不支持AES256,需要安装对应的jce补丁进行升级jce1.7,jce1.8)。AES本身就是为了取代DES的,AES具有更好的安全性、效率和灵活性。RSA算法RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一。RSA是第一个能同时用于加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。ECC算法ECC也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更小的密钥,比如RSA加密算法,提供相当的或更高等级的安全级别。不过一个缺点是加密和解密操作的实现比其他机制时间长(相比RSA算法,该算法对CPU消耗严重)。各种加密算法对比01散列算法比较名称安全性速度SHA-1高慢MD5中快02对称加密算法比较名称密钥长度运行速度安全性资源消耗DES56位较快低中3DES112位、168位慢中高AES128位、192位、256位快高低各种加密算法对比03非对称加密算法比较04对称算法与非对称加密算法名称成熟度安全性运算速度资源消耗RSA高高中中ECC高高慢高①对称算法②非对称算法+数据加密的应用场景03HTTPS通信1数据库加密2文件加密3用户身份验证4数字签名5HTTPS/TLS6VPN加密7电子邮件加密8加密货币9+国密算法04概述国密即国家密码局认定的国产密码算法,主要有SM1,SM2,SM3,SM4等。目前我国主要使用公开的SM2、SM3、SM4作为商用密码算法。SM1SM2SM3SM4密钥长度和分组长度均为128位。安全性01SM2SM2的安全性建立在椭圆曲线离散对数问题(ECDLP)的难解性上。目前,没有有效的算法能在合理时间内破解这一数学难题。数学难题基础:经过广泛的密码分析,SM2在抗御已知的公钥密码攻击(如中间数攻击、侧信道攻击)方面表现出色。抗攻击能力:256位的密钥长度在当前计算能力下,提供了足够的安全裕度,能够抵御暴力破解。密钥长度:安全性02SM3SM3在设计中增强了抗碰撞能力,使得找到两个不同输入却有相同哈希值的可能性极低。抗碰撞性:具有单向散列特性,无法从哈希值反推出原始输入,保障了数据的隐私。单向性:对输入的微小改变会导致哈希值的巨大变化,提高了抵抗差分攻击的能力。雪崩效应:安全性03SM4采用了先进的Feistel网络结构,设计了精细的轮函数和S盒,增强了算法的复杂性和安全性。算法结构:SM4经过严格的密码分析,对线性攻击和差分攻击具有良好的抵抗能力。抗线性和差分攻击:在保证安全性的前提下,SM4的算法效率较高,适合在软硬件环境中高效实现。性能优化:简单实现01使用Hutool实现SM2加密和解密代码如下:importcn.hutool.crypto.SmUtil;importcn.hutool.crypto.asymmetric.SM2;importorg.junit.Test;
publicclassHutoolSM2Util{
@Testpublicvoidsm2Test(){Stringtext="网络安全攻防";
//生成SM2密钥对
SM2sm2=SmUtil.sm2();//使用公钥加密
StringcipherText=sm2.encryptBase64(text,cn.hutool.crypto.asymmetric.KeyType.PublicKey);//使用私钥解密
StringdecryptedText=sm2.decryptStr(cipherText,cn.hutool.crypto.asymmetric.KeyType.PrivateKey);
//输出结果
System.out.println("原文:"+text);System.out.println("加密后:"+cipherText);System.out.println("解密后:"+decryptedText);
}}运行结果为Base64编码的字符串:原文:网络安全攻防加密后:MEYCIQD4x6D0vFJHYY9/7AhOBR1I62AXF4W3uRCV0lqNe+jV8gIhAPj2R3d06RXWkg8t8X1mqTzppysVYOBn59FcwUqL8eqN解密后:网络安全攻防简单实现02使用Hutool实现SM3哈希计算代码如下:importcn.hutool.crypto.SmUtil;importorg.junit.Test;publicclassHutoolSM3Util{@Testpublicvoidsm3Test(){Stringtext="网络安全攻防";//计算SM3哈希值
StringdigestHex=SmUtil.sm3(text);
//输出结果
System.out.println("原文:"+text);System.out.println("SM3哈希值:"+digestHex);}}运行结果为固定长度的64个十六进制字符的哈希值:原文:网络安全攻防SM3哈希值:e1c6f14e5d73a599ef8d9a67a306d88738b8de119776a6f15cf04f68fdfed4d2简单实现03使用Hutool实现SM4加密和解密代码如下:importcn.hutool.crypto.SecureUtil;importcn.hutool.crypto.SmUtil;importcn.hutool.crypto.symmetric.SM4;importorg.junit.Test;publicclassHutoolSM4Util{@Testpublicvoidsm4Test(){Stringtext="网络安全攻防";//生成随机密钥(16字节,128位)
byte[]key=SecureUtil.generateKey("SM4").getEncoded();//创建SM4实例,使用ECB模式,PKCS5Padding填充
SM4sm4=SmUtil.sm4(key);//加密StringcipherText=sm4.encryptBase64(text);//解密
StringdecryptedText=sm4.decryptStr(cipherText);//输出结果
System.out.println("原文:"+text);System.out.println("加密后:"+cipherText);System.out.println("解密后:"+decryptedText);}}运行结果为Base64编码的字符串:原文:网络安全攻防加密后:nQWhOPAEuNBGt3sxyFrfaw==解密后:网络安全攻防谢谢观看网络安全技术蜜罐技术网络安全技术第十二章+基本概念01定义蜜罐是故意设置的系统,用以吸引黑客攻击并研究其行为。它们必须提供漏洞以吸引攻击者,但这些漏洞若处理不当,可能导致严重安全风险。蜜罐被破坏后,黑客可能将其作为跳板攻击其他系统,引发的责任问题复杂。设置蜜罐涉及三个主要问题:技术、隐私和责任。技术上,蜜罐必须足够隐蔽,以免被轻易识破。隐私方面,蜜罐可能涉及非法收集数据和监控通信的法律问题。责任上,若蜜罐被攻破并用于进一步攻击,管理员可能需承担由此造成的损失。因此,蜜罐的设置和管理需要谨慎,确保合法合规,并采取适当措施以减轻潜在风险。类型01实系统蜜罐实系统蜜罐是最真实的蜜罐,它运行着真实的系统,并且带着真实可入侵的漏洞,属于最危险的漏洞,但是它记录下的入侵信息往往是最真实的。02伪系统蜜罐伪系统蜜罐是基于真实系统构建的,但具有平台与漏洞非对称性。这意味着不同操作系统如Windows、Linux、Unix因核心不同而产生的漏洞也不同,很少有漏洞能同时攻击多种系统。使用方法作用迷惑入侵者保护服务器1抵御入侵者加固服务器2诱捕网络罪犯3引诱攻击者延缓攻击监控和分析攻击行为误导攻击者提高系统安全性设置与收集01蜜网蜜网是指另外采用了技术的蜜罐,从而以合理方式记录下黑客的行动,同时尽量减小或排除对因特网上其它系统造成的风险。02虚拟蜜网虚拟计算机网络运行在使用VMware或User-ModeLinux等虚拟计算机系统的单一机器之上。虚拟系统使你可以在单一主机系统上运行几台虚拟计算机(通常是4到10台)。03数据收集蜜罐监控者只要记录下进出系统的每个数据包,就能够对黑客的所作所为一清二楚。蜜罐本身上面的日志文件也是很好的数据来源。但日志文件很容易被攻击者删除,所以通常的办法就是让蜜罐向在同一网络上但防御机制较完善的远程系统日志服务器发送日志备份,但也要注重不止需要监控蜜罐,也要同时监控日志服务器。蜜罐技术分类诱饵技术反制技术隐藏技术诱饵技术识别技术0102030405+蜜罐简单使用02HFish蜜罐简介01HFish架构HFish各模块关系图HFish蜜罐简介02场景介绍内网环境:内网办公/内部服务器失陷检测场景内部人员风险外网环境:外网威胁感知场景外网情报生产场景外网溯源反制场景云环境风险感知场景员工账号密码遗失感知场景员工安全意识培训场景Docker部署HFish蜜罐步骤1:获取HFish镜像步骤3:访问HFish管理界面环境准备步骤2:启动HFish容器步骤4:配置和使用0102030405攻击蜜罐攻击监测1情报收集2跨平台部署3管理界面配置4最新安全特性5蜜罐防护实例01企业内部网络安全防护实例描述:一家大型企业在其内部网络中部署了多个蜜罐,以监测和记录未授权的访问尝试和潜在的内部威胁。这些蜜罐模拟了企业的关键服务器和数据库,吸引了试图窃取敏感信息的攻击者。02国家关键基础设施防护实例描述:政府机构在关键基础设施如电力网、交通控制系统中部署蜜罐,以检测和防御网络攻击,确保国家基础设施的安全稳定运行。03教育机构的网络安全教育实例描述:一所大学在其校园网络中设置蜜罐,用于教学和研究网络攻击与防御技术。学生可以通过实际操作蜜罐,学习如何识别和防御网络攻击,增强网络安全实践能力。+蜜罐日志分析03攻击特征分析蜜罐部署后,分析攻击特征至关重要。攻击画像包括动机、攻击的深度与广度、复杂度、隐蔽性、攻击源、脆弱性和工具。攻击模式涉及特征选择、模式匹配和聚类,需选择合适的算法。攻击演进关注时间模式,通过计算比率识别异常行为。攻击频率分析需考虑蜜罐的网络配置,以准确监测攻击活动。攻击源与目标分析攻击源与目标分析对于理解网络攻击至关重要。攻击源分析需识别IP地址、AS号码、域名等标识符,但这些可能不准确或变化。IP地址可能因ISP策略变动,AS号码和域名系统也可能变化。客户端蜜罐通过URL分类,国家信息可从AS注册或第三方获取。攻击目标分析需确定攻击的服务和端口,服务可能绑定非标准端口,因此区分端口和服务重要。服务器蜜罐通过服务分类目标,而网络蜜罐将IP地址视为目标标识符,可详细分类到不同网络环境。这些分析有助于揭示攻击动机和影响范围。攻击风险与检测010203分析蜜罐数据以识别攻击的根本原因,可能涉及特定工具或其变体。需验证集群的一致性,通过攻击指纹比较检查。多态攻击构成挑战,但蠕虫有常量子字符串可用于识别。双蜜罐设计有助于区分蠕虫活动和非攻击行为。攻击根源识别在高交互蜜罐上基于漏洞严重性评估风险,低交互蜜罐则基于通信量特征(分组数、字节量、持续时间)进行风险估计。风险评估公式为:Risk=log(nPackets)+log(nBytes)+log(duration+1),并扩展到网络特征。攻击风险评估高交互蜜罐分析中考虑利用的漏洞,主要通过数据驱动技术和操作系统状态监视。动态污点分析检测利用缓冲区溢出攻击,操作系统状态监视发现非法操作,如文件系统或进程管理中的异常。EXP检测数据分析展望直接信息描述观察结果,并在通用操作期间记录在蜜罐日志中:通常蜜罐日志文件包含基于IP信息的攻击的源,目标和时间戳。重要的是要注意,尤其是对于IP,没有源和目标的IP地址的通信是不可能的,并且每个事件具有时间戳。因此,基于这些特征提出分析问题是直接和自然的。这种情况对于剩下的问题是不同的,因为他们试图导出信息。派生信息解释,评估或本地化观察的原因,其根本上比单纯的描述更复杂。这种分析的进行正在成为一种跨学科的方法,因为为了得到信息,基本统计通常不再满足:复杂的蜜罐网络和来自其他领域的方法,如关联规则挖掘,神经网络,虚拟机中的内存污染名字几个,已经变得必要。一般来说,蜜罐研究和其他研究领域之间的联系在过去几年里加强了。谢谢观看网络安全技术AdobeReader字体溢出漏洞案例网络安全技术第十三章+实验环境01进行CVE-2010-2883的漏洞分析需要用到的系统和工具准备如下:WindowsXPSP3(虚拟机)AdobeReader9.3.4(版本不能高于9.3.4)IDA_Pro_v6.8_and_Hex-Rays_Decompiler_(ARM,x64,x86)_Green(静态分析)PdfStreamDumper.exe(PDF二进制分析工具)Ollydbg(动态调试)msf.pdf(漏洞文件)+漏洞分析02找到漏洞点找到溢出点找到TableEntry
SING表真实数据
uniqueName域数据复制到ebp指定地址自动中断在0x803DD89F处程序所运行的栈中uniqueName域寻找执行shellcode的代码第一次断点继续寻找关键点找到关键点地址a地址bicucnv36.dll中调用内容寻找执行shellcode的代码堆栈情况变化第二处ROP堆栈情况第三处ROP堆栈情况第三处ROP堆栈情况用函数地址创建文件三个函数a三个函数b
shellcode执行部分
shellcode执行部分调用计算器计算器启动到此漏洞分析结束,计算器成功启动,假如能调用计算器,也说明攻击者要对目标主机做其他事也是可以的,包括不限于信息泄露,系统被攻击,远控,挖矿等,会对目标主机安全造成很大的危害,该漏洞现在已经修复。网络安全是国家战略的重要组成部分。在数字化、网络化、智能化深入发展的今天,网络安全已成为国家安全体系中的关键一环。通过本次案例分析,我们应深刻认识到网络安全的脆弱性和复杂性,以及维护网络安全对于保护国家利益、社会稳定和个人权益的重要意义。作为信息技术的学习者和使用者,我们应树立正确的网络安全观。在掌握技术的同时,更要注重技术的合法合规使用,坚决抵制和反对任何形式的网络攻击和网络犯罪行为。我们要以实际行动维护网络空间的清朗环境,为构建和谐网络社会贡献力量。通过本次AdobeReader字体溢出漏洞案例的分析,我们不仅要学习技术知识,更要从中汲取思政教育的养分,提升自身的网络安全素养,为实现网络强国梦贡献青春力量。谢谢观看网络安全技术Windows内核DoubleFree漏洞案例网络安全技术第十四章+实验环境01进行本次漏洞分析需要的系统和工具如下:Windows7x86(虚拟机)Windbg10.0.17134.1+virtualKD(双机调试)VisualC++6.0(编译器)IDAPro(反汇编)poc.exeexp.exe
+漏洞原理02该漏洞是由于Windows的afd.sys驱动在对系统内存的管理操作中,存在着悬垂指针的问题。在特定情况下攻击者可以通过该悬垂指针造成内存的doublefree漏洞。+漏洞分析03初步分析1.调试运行poc得到以下报错,崩溃原因是重复释放了一块已经被释放了的内存,报错崩溃原因如图所示。崩溃原因初步分析2.调用堆栈信息,如图14-2所示。查看调用堆栈信息初步分析3.我们可以得到如下函数的调用关系,如图中圈出位置所示:查看调用堆栈信息初步分析4.可以看到,出问题的是afd模块,我们查看afd模块详细信息,如图所示。afd模块详细信息第一次调用分析(0x1207F)1.我们首先针对nt!NtDeviceIoControlFile设置条件断点,当其在处理0x1207F时断下,根据官方文档,该函数的第六个参数是IO控制码,也就是esp+18,因此条件断点为:bpnt!NtDeviceIoControlFile“.if(poi(esp+18)=0x1207F){}.else{gc;}”IO控制码第一次调用分析(0x1207F)2.开始对AfdTransmitFile函数分析,断下来之后查看堆栈情况和调用情况,如图所示。查看堆栈情况和调用情况第一次调用分析(0x1207F)3.可以使用wt命令跟踪后续函数调用过程,可以发现,当IoControlCode=0x1207F时,afd驱动会调用afd!AfdTransmitFile函数,我们直接对这个函数进行分析,这里我们直接用IDA反编译Afd中的AfdTransmitFile函数,因为该函数有两个参数(pIRP和pIoStackLocation),我们将反编译的a1,a2改名为该参数,通过IoStackLocation我们就可以访问用户传递的数据了,如图所示。跟踪函数调用过程第一次调用分析(0x1207F)4.通过分析,我们想要调用AfdTliGetTpInfo函数,必须满足如下这三个条件:(v54&0xFFFFFFC8)==0(v54&0x30)!=0x30(v54&0x30)!=0第一次调用分析(0x1207F)5.开始对AfdTliGetTpInfo函数分析,满足上面条件之后,程序会调用AfdTliGetTpInfo函数,TpInfoElementCount是这个函数的参数,该函数的返回值是一个指向TpInfo结构体的指针,根据对AfdTransmitFile剩余函数部分的分析,该结构体大致如下:structTpInfo{
TpInfoElementpTpInfoElement;//+0x20,TpInfoElement数组指针
ULONGTpInfoElementCount;//+0x28,TpInfoElement数组元素个数
ULONGAfdTransmitIoLength;//+0x38,传输的默认IO长度
}structTpInfoElement{intstatus;//+0x00,状态码
ULONGlength;//+0x04,长度
PVOIDVirtualAddress;//+0x08,虚拟地址
PVOIDpMdl;//+0x0C,指向MDL内存描述符表的指针
ULONGReserved1;//+0x10,未知
ULONGReserved2;//+0x14,未知};第一次调用分析(0x1207F)6.用IDA反编译AfdTliGetTpInfo函数,如图所示。反编译AfdTliGetTpInfo函数第一次调用分析(0x1207F)7.函数中调用的ExAllocateFromNPagedLookasideList函数含义大致如下:TpInfo__stdcallExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LISTLookaside){(Lookaside+0x0C)++;tpInfo=InterlockedPopEntrySList(Lookaside)if(tpInfo==NULL){(Lookaside+0x10)++;tpInfo=AfdAllocateTpInfo(NonPagedPool,0x108,0xc6646641);}returntpInfo}第一次调用分析(0x1207F)8.AfdInitializeTpInfo是一个初始化数据tpInfo
的函数,我们直接分析赋值部分:AfdInitializeTpInfo(tpInfo,elemCount,stacksize,x){……tpInfo->pElemArray=tpInfo+0x90tpInfo->elemCount=0tpInfo->isOuterMem=false……}9.根据上面的几个函数调用关系,我们可以大致分析的出来函数的调用顺序,经过以下调用,我们可以得到一个tpInfo结构体:ExAllocateFromNPagedLookasideList->AfdAllocateTpInfo->AfdInitializeTpInfo第一次调用分析(0x1207F)10.现在我们拿到结构体之后继续分析AfdTransmitFile函数剩余的一些部分,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年桂林市胜利小学教师招聘备考题库及参考答案详解一套
- 物产中大金属集团有限公司2026届秋季校园招聘9名备考题库及答案详解参考
- 浙商银行丽水分行2025年社会招聘备考题库及一套参考答案详解
- 赣江新区人民医院2025年心血管内科医师岗招聘备考题库(第二批)及答案详解1套
- 2025年衡水市景县人民医院公开招聘医护人员备考题库附答案详解
- 2025年上海市浦东新区肺科医院非编人员招聘备考题库完整答案详解
- 西藏自治区教材编译中心2026年度急需紧缺人才引进7人备考题库及完整答案详解一套
- 2025年浙商银行嘉兴分行四季度社会招聘备考题库及一套完整答案详解
- 南京市第一医院2026年公开招聘卫技人员备考题库及答案详解一套
- 理解关心与互助课件
- 【数 学】2025-2026学年北师大版数学七年级上册期末练习(一)
- (一诊)成都市2023级高三高中毕业班第一次诊断性检测英语试卷(含官方答案)
- 2025山西大地环境投资控股有限公司社会招聘116人参考笔试题库及答案解析
- 2026年哈尔滨铁道职业技术学院单招职业技能考试题库带答案
- 月子会所的礼仪培训课件
- iso28000-2022供应链安全管理手册程序文件表单一整套
- 吟诵古诗课程设计
- 2024年保安员证考试题库及答案(共130题)
- 2024年中国红芪市场调查研究报告
- NB-T42167-2018预制舱式二次组合设备技术要求
- 中国法律史-第二次平时作业-国开-参考资料
评论
0/150
提交评论