还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《网络攻防原理与技术》课程教案讲课题目第六讲恶意代码目的要求了解恶意代码中的计算机病毒、蠕虫、木马的基本概念;掌握恶意代码的传播与运行、隐藏技术;了解恶意代码检测及防御技术重点难点恶意代码的传播与运行技术;恶意代码的隐藏技术方法步骤理论讲授器材保障电脑、投影仪主要教学内容一恶意代码概述一基本概念恶意代码Malicious Code,又称为恶意软件Malicious Software,Malware,是指在不为人知的情况下侵入用户的计算机系统,破坏系统、网络、信息的保密性、完整性和可用性的程序或代码恶意代码与正常代码相比具有非授权性和破坏性等特点,这也是判断恶意代码的主要依请学员一起讨论在据计算机使近年来,不同类别的恶意代码之间的界限逐渐模糊,采用的技术和用过程中方法也呈多样化、集成化对恶意代码的命名或分类也不再以技术形态,遇到过的而是基于代码的功能,如病毒Virus、木马程序Trojan Horse、蠕虫恶意代码,这些恶意Worm、后门程序Backdoor、逻辑炸弹Logic BombRootKit、间谍代码造成软件Spyware勒索软件或勒索病毒Ransomware、挖矿木马Mining了什么危Trojan、恶意脚本代码Malicious Script、Webshell等害?计算机杀毒软件中的“毒”也不再是只针对传统的计算机病毒,与服务启动相似的还有一种方法Windows的任务计划在默认情况下,任务计划程序随Windows一起启动并在后台运行如果把某个程序添加到任务计划文件夹,并将任务计划设置为“系统启动时”或“登录时”,这样也可以实现程序自启动恶意代码除了开机运行这种启动方式,还可以采用触发式的启动方式这种启动方式需要计算机用户执行某些操作触发恶意代码的运行触发式的最典型的触发方式是修改文件关联,在用户运行指定类型的文件时恶意启动与开代码程序触发运行机运行相通过替换系统动态链接库(DLL)来执行也是早期恶意代码常用的比,两种方法各自方法这种方法通过API HOOK实现(也称为“DLL陷阱技术”),将的优劣?Windows系统中正常的DLL文件,如kernel
32.dll和user
32.dll这些随系统一起加载的DLL替换为木马DLL
(三)恶意代码隐藏技术从攻击者的角度看,希望恶意代码具有很强的隐蔽性,能够长期隐藏在被感染主机中,而不会被计算机用户发现恶意代码的隐藏涉及在目标主机上植入(传播)、存储和运行等各个环节
1.存储时的隐藏恶意代码的存储,即恶意代码文件也必须保证隐蔽性,避免用户发现计算机中出现了异常文件隐藏恶意代码可执行文件或快捷方式的方法有很多首先,隐藏文件的可执行属性,包括文件类型图标伪装,双扩展名,组织学生文件名用空格增加长度以隐藏后缀等其中,双扩展名方法利用Windows讨论有哪系统“隐藏已知文件类型的扩展名”的特性,把一个恶意代码程序命名些方法可为带双扩展名的形式攻击者通常用超长文件名来隐藏第二个扩展名后以实现恶缀,同时将文件的图标修改为第一个扩展名对应的文件类型默认图标来意代码在存储时的增强迷惑性隐藏?其次,恶意代码可以利用文件的“隐藏”属性进行隐藏在Windows系统中,如果一个文件被设置了“隐藏”属性,同时系统被设置为“不显示隐藏的文件和文件夹”,那么用户浏览文件夹时相应的文件不会显示再者,恶意代码可以利用系统中的一些特定规则实现自身的隐藏在Windows系统中很多木马会将自身所在的文件夹以回收站的形式显示Windows系统中回收站、控制面板和网上邻居等都属于特殊的文件夹,它们与一般文件夹的区别是具有特定的扩展名另外,恶意代码还可以使用NTFS文件系统的数据流机制来隐藏自身NTFS交换数据流(Alternate DataStreams,ADS)是NTFS磁盘格式的一个特性在NTFS中,每个文件都可以存在多个数据流,即除了主文件流,还可以有许多非主文件流存储于文件的磁盘空间中通常情况下,一个文件默认使用的是未命名的主文件流,而其它命名的非主文件流并不存在,除非用户明确创建并使用这些非主文件流这些命名的非主文件流在功能上和使用方式上与未命名文件流完全一致,可以用来存储任何数据(包括恶意代码文件)恶意代码还可以通过一些技术手段来隐藏自身,使用较多、隐藏效果较好的方法是在Windows系统中采用Hook技术,截获计算机用户查看文件的指令并替换显示结果Hook技术是Windows中提供的一种用以替换DOS下“中断”的一种系统机制,中文译名为“挂钩”或“钩技术Hook子”通过Hook,可以改变应用编程接口(API)的执行结果API Hook的优势是技术并不是恶意代码的专有技术,但是恶意代码经常使用这种技术来达在事件发生时能够到隐藏自己的目的及时得到当对特定的系统事件进行Hook后,一旦相应事件发生,对该事件通知,便于进行Hook的程序就会收到系统的通知,这时程序就能在第一时间对事件进行相应做出响应恶意代码常常对系统服务描述符表中一些感兴趣的内容进行的隐藏处理Hook例如,如果恶意代码的目标是实现文件的隐藏,那么可以选择NtQueryDirectoryFile这个内核API作为Hook的对象在完成相应的Hook操作以后,系统中所有与查看文件相关的操作都会被恶意代码截获,如果系统查看的内容与恶意代码文件无关,恶意程序会调用NtQueryDirectoryFile,并且把NtQueryDirectoryFile返回的结果提交给用户如果查看的内容与恶意代码文件有关,恶意代码会将自己的文件信息从NtQueryDirectoryFile的返回结果中隐藏,并将剩余的结果返回给用户一些恶意代码还会采用隐写术将载荷和配置信息隐藏在其它信息中,或以不常见的载体来存储信息例如著名的Agent Tesla窃密木马采用的ReZerO加载器将PE格式的攻击载荷隐藏在图片像素中,运行时通过解析图片的像素点数据来还原载荷,以躲避检测
2.运行时的隐藏很多普通的计算机程序在运行时,会有图标出现在任务栏或者桌面右下角的通知区域恶意程序为了避免引起计算机用户的注意,在运行时都不会在这些区域出现运行图标这可以看作恶意代码最基本的一种进程隐藏方法其次,一些恶意代码会使用与系统进程相似的名称达到迷惑用户的目的,比较常用的一种方法是采用一些数字取代与这些数字在形状上相似的字母如果计算机用户查看进程时不够仔细,很容易被木马蒙混过关恶意代码可以通过Hook技术拦截相应API函数的调用,一旦指定的API函数被调用,恶意程序将立即得到通知恶意代码在隐藏过程中的主要工作是处理API调用返回的进程信息,将恶意代码进程从进程列表中移除,而后再将处理结果返回给发起调用的用户程序一般来说,恶意代码除隐藏自身的进程外,不会对其它进程进行隐藏,因为修改的内容越多越容易引起用户的怀疑,导致自身暴露除了利用Hook技术实现进程列表欺骗,恶意代码还可以完全不使用进程,而将需要完成的功能通过Windows系统的动态链接库实现动态链接库是Windows系统的一种可执行模块,这种模块中包含了可以被其它应用程序或者其它动态链接库共享的程序代码和资源除了直接调用恶意代码DLL这种方法,恶意代码还经常使用一种称为特洛伊DLL的技术特洛伊DLL实际上是一种偷梁换柱的方法黑客使用特洛伊DLL的第一步是将系统中的某一个或者某一些DLL文件进行重命名,并将木马DLL以系统中原有的DLL文件进行命名针对特洛使用特洛伊DLL的第二步是当恶意代码DLL被调用时,根据具体伊DLL,有什么有效情况转发调用请求或者执行破坏功能的应对方微软针对特洛伊DLL也采取了一些防护方法,例如,Windows2000法?以后的系统使用了一个专门的目录来备份系统的DLL文件,一旦发现系统内的DLL文件完整性受到了破坏,即自动从备份文件夹中恢复相应的DLL文件但是微软的这种防护方法并不完善,攻击者可以先修改备份文件夹中的DLL文件,进而再对系统中的DLL进行修改或者替换恶意代码还可以采用远程线程技术,通过在指定的远程进程中创建线程将自身的代码作为线程注入其它进程的内存空间,隐匿在相应进程中执行由于木马隐藏在其他进程内部,难以被发觉远程控制类恶意代码需要与其远程控制端进行通信,以回传信息或接受控制命令很多安全机制,如入侵检测系统、网络防火墙等,可以网络流量对网络通信流量进行分析来发现恶意代码产生的异常通信流量因此,的异常也为逃避检测,恶意代码通常需要采用一些通信隐藏技术可能暴露恶意代码由于很多安全系统会对TCP、UDP通信流量进行安全检测,如活动果恶意代码与远程控制端建立TCP连接或用无连接的UDP直接通信,则比较容易暴露,因此,很多恶意代码采用非TCP、UDP通信,如ICMP协议、IP协议,以避免由于端口使用所带来的暴露问题近年来,为了隐藏CC服务器的IP地址,恶意代码中很少硬编码其服务器IP地址,而是使用服务器的域名攻击者经常利用域名生成算法Domain GenerateAlgorithm,DGA来生成一个伪随机的域名列表,并对其中部分域名进行真实的注册,同时绑定CC服务器的IP地址,失陷主机自动请求列表中所有的域名,当域名被注册时,就能够返回CC服务器的IP地址列表,从而与其建立通信CDN域前置也是恶意代码用来伪装流量和隐藏真实CC服务器的一种常见手段如果一个真实存在的合法域名A通过CDN进行加速,那么攻击者可以在同一个CDN运营商中将CC服务器与域名B进行绑定,域名B可以是一个某合法域名下不存在的子域名用于进行伪装因为CDN节点会根据HTTP请求首部的Host字段转发到绑定的IP,所以如果攻击者在Host字段填入自己的域名B,而向域名A发起请求,网络通信数据实际上会被发送到CDN节点,进而转发到攻击者控制的IP恶意代码与其控制端也可以不直接进行通信,而是通过中间人的方式交换信息,如将要传输的信息发送到公网邮箱、FTP服务器、网盘或通过中间利用云服务搭建的服务器上,由其控制端在适当的时间去获取人的方式一些恶意代码还会实时检测系统中是否有流量监测、分析软件在运交换信息有什么优行,如果有则停止与CC服务器间的通信势?在信息交换策略方面,通信时应尽量避免大流量、快速地传输信息,因为这样很容易被部署的网络安全设备,如入侵检测系统、流量监测系统发现因此,好的传输原则是分批、小流量、缓慢地向外传输信息,这样不会导致目标网络流量出现异常,这也是很多恶意代码常常采用的传输策略
3.抗分析检测技术恶意代码为了抵抗用户对其进行静态、动态逆向分析,通常会对其二进制代码进行混淆,还会通过宿主机逻辑处理器数量、运行内存、CPU高速缓存、注册表指定软件安装目录、虚拟机驱动、鼠标指针移动距离请学生结以及系统启动时间来判断自身是否处于虚拟机、沙箱之中,当确认所处合自己的环境不是虚拟机以及沙箱时才进一步执行恶意操作编程经验为了逃避检测,很多恶意代码会对目标环境中安装的终端安全软件,分析,有哪特别是杀毒软件进行检测,关闭检测到的安全软件后再执行恶意操作或些有效的抗分析检下载实现恶意功能的有效负载测技术?一些恶意代码使用多层攻击载荷嵌套加载,每层载荷使用不同的混淆手段在内存中加载,规避安全检测三恶意代码检测及防范
(一)基本思想恶意代码检测的主要思想是基于采集到的与代码有关的信息来判断该代码是否具有恶意行为代码信息采集主要在两个阶段进行:代码执行前和代码执行后代码执行前采集是指在不执行代码的情况下获取任何与代码有关的数据,如文件格式信息、代码描述、二进制数据统计信息、文本/二进制字符串、代码片段等;代码执行后采集是指在代码开始运行后获取该代码进程在系统中的各种行为信息或该进程引发的各种事件相应地,将基于代码执行前信息的恶意代码检测技术称为静态检测技术,而将基于代码执行后信息的恶意代码检测技术称为动态检测技术静态检测技术查其“形”,动态分析技术查其“行”,二者相辅相成
(二)静态检测技术典型的静态检测技术是特征码检测(也称为“基于签名的恶意代码检测”)恶意代码分析人员首先对恶意代码进行人工分析,提取代码中特定的特征数据(Signature,特征码或签名),然后将其加入恶意代码特征库中从理论上讲扫描一个恶意代码需要与数百万个特征码进行匹配,但在实际杀毒软件中,通过各种优化技术,可以大幅提高扫描效特征码如率另外,随着云计算技术的普遍应用,为了提高检测速度,很多杀毒何有效提取?实际软件将提取到的特征码发送到云上进行匹配,而不是在用户端进行检测,应用中是利用后台强大的云计算能力来实现快速检测否会有很除了文件特征码外,很多恶意代码分析系统,如VirusTotal,Sophos,大的匹配McAfee,Bitdefender,Kaspersky等,也将URL、域名作为检测恶意代码开销?的特征这些系统构建了一个庞大的恶意URL、域名数据库用于检测特征码检测技术的主要优点是简单、检测速度快、准确率高,不足之处是不能检测未知恶意软件,对于恶意代码变体的容忍度也很低,稍微变形便无法识别;用户需要不断地升级杀毒软件特征库,同时随着特征库越来越大,检测的效率会越来越低
(三)动态检测技术动态检测技术根据恶意代码运行时所产生的动态行为来检测未知恶意代码该技术监控可疑代码的动态行为是否符合恶意代码通常具有的特征,这些行为主要包括从恶意代1)文件行为码检测的角度思考,恶意程序通过使用内存的地址空间来调用文件系统函数,打开、修有哪些行改、创建甚至删除文件等,特别是敏感的系统或用户文件,达到攻击目为需要重的点关注?2)进程行为恶意代码在运行过程中通常会通过进程或线程函数来创建、访问进程,如远程线程插入、修改系统服务、控制窗口等方式来入侵系统、提升权限、隐藏踪迹等,因此检测系统中是否已启动新服务或进程、线程,或者监控正在运行的进程的状态变化可以发现恶意代码所产生的一些异常进程行为3)网络行为恶意代码运行后会产生很多网络行为,例如,蠕虫通过某个网络安全漏洞进行自动传播,DNS请求的次数较多、失败率较高等通过监测特定进程的网络流量,可以发现恶意代码产生的一些异常网络行为4)注册表行为注册表是Windows系统存储应用程序配置信息、直接控制操作系统启动以及驱动装载的重要数据库很多恶意代码都会隐蔽地改变注册表部分信息,以实现恶意代码长期隐藏、运行之目的所以,几乎所有杀毒软件都会重点监控Windows注册表操作与特征码静态检测技术相比,动态检测技术能够检测未知恶意代码、恶意代码的变种,但也存在着不足,如产生的误报率较高,且不能识别出病毒的名称和类型等因此,现在很多杀毒软件在检测到异常时,如检测到应用修改Windows注册表、一个进程在进行线程插入等,会给用户弹出告警提示,由用户确定是否允许操作继续,而采用特征码检测技术时,杀毒软件一般在检测到匹配的恶意代码时会默认将其查杀或隔离与动态检测技术相关的一种技术是恶意代码动态分析技术,即在受控环境中运行代码,观察代码的各种行为由于现代恶意代码很多采用了加壳、多态、功能代码动态生成、隐蔽通信等各种逃避检测的技术,所以需要给代码一个可控的运行环境(包括主机环境和网络环境),让其真正运行起来,在足够长的时间内暴露代码的真实行为最常见的一种动态分析技术是沙箱(Sandbox)o沙箱是一种能够拦截系统调用并限制程序执行违反安全策略的轻量级虚拟机,其核心是建立一个行为受限的执行环境,将样本程序放入该环境中运行,其在沙箱内的文件操作、注册表操作等的路径会重定利用沙箱向到沙箱指定位置,程序的一些危险行为,如底层磁盘操作、安装驱动进行分析等会被沙箱禁止,这就确保系统环境不会受到影响、系统状态在操作之的主要优后回滚势?
(四)机器学习算法的应用由于机器学习算法可以挖掘样本特征之间更深层次的联系,更加充分地利用恶意代码的信息,因此基于机器学习的恶意代码检测往往表现出较高的准确率,同时机器学习算法可以对海量未知恶意代码实现自动化的分析越来越多的安全厂商将机器学习视为反病毒软件的一个关键技术基于机器学习的恶意代码检测技术的检测步骤大致可归结为L采集大量的恶意代码样本以及正常的程序样本作为训练样本;
2.对训练样本进行预处理,提取特征;机器学习
3.进一步选取用于训练的数据特征;方法主要是解决二
4.选择合适的机器学习算法训练分类模型;分类问题,
5.通过训练后的分类模型对未知样本进行检测将正常代码和恶意与传统的恶意代码检测方法一样,基于机器学习的恶意代码检测技代码区分术也可分为静态分析方法和动态分析方法其中,静态分析在不运行样开来本的情况下提取样本特征,如字节序列、PE字符串序列、编译特征等;而动态分析则是在样本运行过程中提取样本特征,如API系统调用序列、文件与进程操作、通信流量等这些特征与传统特征类似,只不过需要表示成机器学习算法能接受的格式,通常还需要对特征进行选择及降维处理作业与思考题
1、简述感染型计算机病毒、木马、蠕虫之间的相同点和不同点
2、分别从代码功能和用途的角度分析远程控制型木马与远程控制软件之间的区别
3、简述恶意代码的典型进程隐藏方法
4、比较恶意代码静态特征码检测技术和动态检测技术的优缺点参考资料吴礼发,洪征《网络攻防原理与技术(第4版)》,机械工业出版社,2024年本次课教学体会而是指各类恶意代码二计算机病毒计算机病毒的定义最早由美国计算机研究专家科恩博士给出按照他的定义,计算机病毒是一种计算机程序,它通过修改其他程序把自己的一个拷贝或演化的拷贝插入其他程序中实施感染该定义突出了病毒的传染特性,即病毒可以自我繁殖同时,定义也提到了病毒的演化特性,即病毒在感染的过程中可以改变自身的一些特征科恩所提到的病突出病毒毒演化特性在之后出现的很多病毒身上都有体现,病毒往往通过自我演“自我复化来增强隐匿性,躲避反病毒软件的查杀制”的特点我国在1994年2月18日正式颁布实施了《中华人民共和国计算机信息系统安全保护条例》,《条例》的第二十八条中明确指出“计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码”这个病毒的定义在我国具有法律性和权威性2022年发布的国家标准《信息安全技术术语》GB/T25069-2022中对“病毒”的定义是一种程序,即通过修改其他程序,使其他程序包含一个自身可能已发生变化的原程序副本,从而完成传播自身程序,当调用受传染的程序,该程序即被执行计算机病毒典型特性传染性、潜伏性、可触发性、寄生性、非授权执行性、破坏性典型计算机病毒的基本功能模块引导模块、搜索模块、感染模块、表现模块、标识模块比较计算三计算机蠕虫机病毒与2022年发布的国家标准《信息安全技术术语》GB/T25069-2022对蠕虫的差计算机蠕虫的定义是一种通过数据处理系统或计算机网络传播自身的异独立程序,经常被设计用来占满可用资源,如存储空间或处理时间国家互联网应急响应中心(CNCERT)在每月发布的《CNCERT互联网安全威胁报告》中,将蠕虫定义为能自我复制和广泛传播,以占用系统和网络资源为主要目的的恶意代码,按照传播途径,蠕虫可进一步分为邮件蠕虫、即时消息蠕虫、U盘蠕虫、漏洞利用蠕虫和其它蠕虫五类网络安全公司360将蠕虫定义为通过网络将自身复制到网络中其他计算机上的恶意程序,有别于普通病毒,蠕虫病毒通常并不感染计算机上的其他程序,而是窃取其他计算机上的机密信息上述三种定义对于蠕虫的传播途径和功能的描述存在差异,但一般认为计算机蠕虫是一种可以独立运行,并通过网络传播的恶性代码它具有传统计算机病毒的一些特性,如传播性、隐蔽性、破坏性等,但蠕蠕虫突出虫也具有自己的特点,如漏洞依赖性等,需要通过网络系统漏洞进行传自动化和利用漏洞播,另外蠕虫也不需要宿主文件,有的蠕虫甚至只存在于内存中也就个特征2是说,大多数情况下,蠕虫是指CNCERT定义中的“漏洞利用蠕虫”蠕虫的基本功能模块包括1)搜索模块自动运行,寻找下一个满足感染条件(存在漏洞)的目标计算机当搜索模块向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象搜索模块通常会利用网络扫描技术探测主机存活情况、服务开启情况、软件版本等2)攻击模块按漏洞攻击步骤自动攻击搜索模块找到的对象,取得该主机的权限(一般为管理员权限),在被感染的机器上建立传输通道(通常获取一个远程Shell)o攻击模块通常利用系统或服务中存在的安全漏洞,如缓冲区溢出漏洞,远程注入代码并执行,并在必要的时候进行权限提升3)传输模块负责计算机间的蠕虫程序复制可利用远程Shell直接传输,或安装后门进行文件传输4)负载模块进入被感染系统后,负载模块可以实现与木马相同的功能,如信息搜集、现场清理、攻击破坏等,但通常不包括远程控制功能,因为攻击者一般不需要控制蠕虫,从这一点上看,蠕虫更接近病毒5)控制模块该模块负责调整蠕虫行为,控制被感染主机,执行控制端下达的指令分析有影响蠕虫传播速度的因素主要有三个有多少潜在的“脆弱”目标哪些影响蠕虫的因可以被利用;潜在的存在漏洞的主机被发现的速度,也就是单位时间内素能够找到多少可以感染的主机系统;蠕虫对目标的感染(拷贝自身)速度有多快
(四)计算机木马计算机木马,常称为“特洛伊木马”、“木马”,名称来源于《荷马史诗》,是一种伪装成正常文件的恶意程序将《荷马史诗》中的木马映射到网络安全领域,黑客相当于希腊军队,计算机用户相当于特洛伊人由于很多计算机用户通过打补丁、安装个人防火墙等方式对计算机进行了安全防护,黑客很难直接通过网络攻击的方法获得计算机的控制木马与病权,在这种情况下,黑客通过各种手段传播木马,并诱骗计算机用户运行,毒和蠕虫通过木马绕过系统的安全防护手段后,获得计算机的控制权限,盗取他有什么区人信息别?木马程序具有破坏性,会对计算机安全构成威胁同时,木马具有很强的隐蔽性,会采用各种手段避免被计算机用户发现但与病毒不同,木马程序不具备自我复制的能力,也就是其本身不具有传染性在计算机发展的早期,木马出现较少,因为木马编写者必须通过手工传播的方法散播木马程序,难度较大远程控制型木马的组成结构相对复杂,一般采用网络应用中常见的Client/Server模式,由客户端程序和服务器端程序两部分组成其中,木马的服务器端程序在黑客的主机上运行,黑客通过服务器端程序对被植入木马的远程主机实施监视和控制木马的客户端程序被广泛传播,植入受害者主机并获得运行机会后,与服务器端程序建立通信连接并接受服务器端的控制由于远程控制型木马的客户端程序是实际执行破坏活动的程序,一般将其简称为木马程序,而将对应的服务器端程序称为控制端程序或命令与控制(CommandControl,CC,简称C2)服务器从主体功能看,远程控制型木马与远程控制软件相类似,都能够实现对远程主机的访问操作,两者的区别主要体现在两个方面
①访问是比较远程否经过了授权远程控制软件一般需要访问者输入被访问主机上的账号控制型木和密码等信息,只有通过身份验证的用户才能进入系统,根据账户的权马与远程限进行操作,这种访问是在身份认证基础上进行的合法授权访问而利控制软件用远程控制型木马对远程主机的访问是非授权的;
②访问是否具有隐蔽的区别性通过远程控制软件对主机进行远程访问时,被访问主机的任务栏或者系统托盘等区域通常会有明显的图标标识,表明有用户正在进行远程访问如果计算机旁有用户在操作计算机,用户能够实时了解到发生了远程访问事件而对于远程控制型木马,必须考虑到一旦计算机用户发现自己的主机感染木马,会采用各种手段进行清除,所以隐蔽性对于远程控制型木马而言非常重要在各类木马中,远程控制型木马的利用过程最为复杂,也最为常见一般而言,黑客利用远程控制型木马进行网络入侵主要包括五个步骤配置木马、传播木马、运行木马、建立通信和远程控制强调现在近几年来,一种针对Web应用的远程控制木马,Webshell被大量使很多网站攻击使用用Webshell是一种用PHP、ASP、JSP等网页脚本语言编写的Web网Webshell页文件形式的可执行代码,其主要目的是在Web服务器上构建一种命令执行环境顾名思义,其中“Web”指的是“Web服务”,“shell”通常是指用户与操作系统之间的命令交互接口,合起来的Webshellv就是通过Web服务器实现的与Web服务器操作系统进行交互的命令接口实际应用时,只需将Webshell代码文件上传到网站服务器上的网站目录中,然后通过网址访问该网页文件即可对Web服务器执行各种管理和控制操作,极大地方便了网站管理人员对网站和服务器的管理由于使用方便、功能强大、隐蔽性好,近几年来,Webshell被黑客广泛应用于网站攻击中,已成为黑客最常用的网站控制程序在网络攻防领域,很多时候Webshell这一名词专指用于网站远程控制的网页形态的计算机木马,而不再是用于网站远程运维的网页脚本
二、恶意代码传播与运行技术
(一)传播恶意代码从传播是否由攻击者主动参与的角度,可以将恶意代码传播技术主要分为主动植入与被动植入两类主动植入,也称为“定向渗透”,是指攻击者主动将恶意程序植入到本地或者是远程主机上,这个行为过程完全由攻击者主动掌握按照目标系统是本地还是远程,这种方法又分为组织学生讨论有本地安装与远程安装两种场景哪些比较
(1)本地安装就是攻击者在能够直接接触的本地主机上进行安常见的恶装在经常更换使用者的一些公共场所的公用计算机上或通过各种方式意代码传接触到目标计算机时,进入目标系统安装恶意代码播方法同时需要
(2)远程安装就是攻击者通过常规攻击手段获得远程目标主机向学生强的一定权限后,将恶意代码上传到目标主机上,并使其运行起来这种调严禁实现场景通常要求目标主机上存在操作系统漏洞或第三方软件漏洞,攻在网络上以任意形击者利用目标上的安全漏洞上传恶意代码式传播恶总的来说,主动植入所需的技术难度和攻击条件较高,因此传播恶意代码意代码主要还是采用被动植入方法被动植入,也称为“自动传播”,是指攻击者预先设置某种环境,然后被动等待目标设备或系统用户的某种可能操作,只要用户执行了这种操作,恶意代码程序就有可能植入目标系统具体来说,恶意代码的传播方式主要有以下几种1)利用安全漏洞传播攻击者利用弱口令、远程代码执行、缓冲区溢出等网络产品安全漏洞,攻击入侵用户内部网络或目标服务器,获取管理员权限,进而主动传播恶意代码2)利用钓鱼邮件传播攻击者将恶意代码内嵌至钓鱼邮件的文档、图片、压缩包等附件,或将恶意代码链接写入钓鱼邮件正文中,通过网络钓鱼攻击传播恶意代码一旦用户打开邮件附件,或点击恶意链接,恶意代码将被加载、安装和运行不同的传3)利用网站挂马传播播方式各Web网站因搭建简单、浏览量大而成为木马、勒索病毒等恶意代码有哪些依的主要传播渠道攻击者通过网络攻击网站,在网站植入恶意代码的方赖?式挂马,或通过主动搭建包含恶意代码的网站,诱导用户访问网站并触发恶意代码,劫持用户当前访问页面至恶意代码下载链接并执行,进而向用户设备植入恶意代码4)利用移动介质传播移动存储介质,如U盘、移动硬盘、光盘等是很多恶意代码的传播媒介攻击者将恶意代码写入移动存储介质,当用户将感染了恶意代码的存储介质插入计算机时,恶意代码可以利用Windows的AutorunAutoplay机制来执行其中的恶意程序,或当用户将恶意程序拷入计算机中,点击运行时感染目标计算机5)利用软件供应链传播攻击者利用软件供应商与软件用户间的信任关系,通过攻击入侵软件供应商的相关服务器设备,利用软件供应链分发、更新等机制,在合法软件正常传播、升级等过程中,对合法软件进行劫持或篡改,规避用户网络安全防护机制,传播恶意代码6)利用远程桌面入侵传播攻击者通常利用弱口令、暴力破解等方式获取攻击目标服务器远程登录用户名和密码,进而通过远程桌面协议登录服务器并植入木马、勒索病毒等恶意代码同时,攻击者一旦成功登录服务器,获得服务器控制权限,可以服务器为攻击跳板,在用户内部网络进一步传播恶意代码7)以虚拟化环境作为攻击跳板,双向渗透传播恶意代码勒索病毒、木马等恶意代码开始以虚拟环境为通道,通过感染虚拟机、虚拟云服务器等,强制中止虚拟化进程,或利用虚拟化产品漏洞、虚拟云服务器配置缺陷等,实现虚拟化环境的“逃逸”,进而向用户和网络“双向渗透传播勒索病毒、木马8)利用即时通信工具植入随着微信、QQ等社交软件的广泛普及,通过社交软件传播恶意代码也成为黑客常用的手段与电子邮件的传播手法类似,黑客可以利用社交软件直接发送恶意代码,也可以欺骗计算机用户去访问挂马的站点
(二)运行恶意代码运行恶意代码可以分为二个阶段,第一个阶段是首次植入到目标系运行恶意统中的运行;第二个阶段是长期驻留时的运行,当系统重启后让自身再代码的两次获得执行机会而不引起明显异常,从而实现尽可能长时间的生存,也个阶段有就是常说的“持久化”什么主要
1.植入时运行区别?首次植入到目标系统中的运行主要方法有用户操作运行、利用安全漏洞运行用户操作运行是指用户点击运行包含恶意代码的程序,例如攻击者将可执行的恶意程序伪装成文档或图片文件引诱用户点击运行,用户访问网页形式的恶意代码(如Webshell)启动了恶意程序,用户打开存有恶意代码文件的移动存储设备等利用安全漏洞运行是指攻击者利用安全漏洞来执行恶意代码,最常见的是利用缓冲区溢出漏洞执行恶意代码,例如很多蠕虫、勒索病毒常利用网络服务程序中存在的缓冲区溢出漏洞来执行
2.持久化运行对于那些需要长期驻留运行的恶意代码,特别是远程控制类恶意代码,如木马、Rootkit,后门等,当目标系统重启或恶意代码程序退出后需要有一种机制来自动启动已驻留的恶意代码,以实现持久化运行如何在目系统开机时自启动是恶意代码早期最常见的触发方法标系统中保持长期实现恶意代码开机启动的方法比较多首先,可以在系统的“启动”驻留运文件夹中进行设置,该文件夹默认的位置为C:\Documents andSettingsAH行?Users开始菜单程序启动按照系统的设定,该文件夹中的所有程序,都将在用户登录后启动运行其次,恶意代码还可以通过一些系统配置文件启动,例如,在早期Windows XP中,System.iniWin.iniWin start,batAutoexec.bat等都是恶意代码所关注的配置文件这些文件能自动被Windows在启动时加载运行,恶意代码将自身程序加入此类批处理文件中,达到开机启动的目的一些恶意代码将自身注册为系统服务,并将相应服务设置为系统开机时自启动例如,Windows ResourceKit工具包(其中包含的工具可能会根据用户使用的Windows版本而有所不同)中的程序instsrv.exe常常被恶意代码用来创建系统服务,服务的管理和配置可以通过程序sc.exe来实施。
个人认证
优秀文档
获得点赞 0