20159302《网络攻击与防范》第九周学习总结

一、视频学习内容

  1.压力测试

  压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大的服务级别的测试。通俗的讲,压力测试是为了发生在什么条件下您的应用程序的性能会变得不可接受。

  kali下压力测试工具包含VoIP压力测试、WEB压力测试、网络压力测试以及无线压力测试四个分类。

  1.1 VoIP压力测试工具:主要包括iaxflood和inviteflood.

  1.2 WEB压力测试:THC-SSL-DOS,借助THC-SSL-DOS攻击工具,任何人都可以把提供SSL安全连接的网站攻击下线,这种攻击方法称作SSL拒绝服务攻击(ssl dos)。德国黑客组织“the hacker‘s choice”发布THC-SSL-DOS,利用ssl中已知的弱点,迅速消耗服务器资源,与传统的DDos工具不同的是,它不需要任何宽带,只需要一台执行单一攻击的电脑。

  漏洞存在于协议的renegotiation过程中,renegotiation被用于浏览器到服务器之间的验证。

  1.3  网络压力测试--dhcpig:耗尽DHCP资源池的压力测试。

  1.4 ipv6攻击工具包

  1.5 inundator:IDS/IPS/WAF压力测试工具

  1.6 Macof:可做泛红攻击

  1.7 siege:是一个压力测试和评估工具,设计用于web开发者评估应用在压力下的承受能力:可以根据配置对一个web站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

  1.8 T50压力测试:T50 Sukhoi PAK FA Mixed Packet Injector(f.k.a.F22 Raptor)是一个压力测试工具,它功能强大且具有独特的数据包注入工具。T50支持*nix系统可进行多种协议的数据包注入,实际上支持15中协议。

  1.9 无线压力测试:包括msk3 和reaver 。

  2.数字取证工具

  数字取证技术将计算机调查和分析技术应用于对潜在的、有法律效力的电子证据的确定和获取,同样它们都是针对黑客和入侵的,目的都是保障网络的安全。kali下有丰富的数字取证工具。

  2.1 peepdf是一个使用Python编写的pdf文件分析工具,它可以检测恶意的pdf文件,其设计目标是为安全研究人员提供pdf分析中可能用到的所有组件,无需使用4或4种工具来完成同一件任务。

  2.2 反数字取证chkrootkit:chkrootkit是一个Linux系统下的查找检测rootkit后门的工具。判断系统是否被植入rootkit的利器。

  2.3 内存取证工具。volatility是开源的windows、Linux、mac、Android的内存取证分析工具,由Python编程,命令行操作,支持各种操作系统。

  2.4 取证分割工具binwalk。binwalk是一个固件的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还可轻松地进行扩展。借助binwalk有个很强大的功能是提取文件(压缩包)中存在的隐藏文件(或内容文件),也可分析文件格式。

  2.5 取证哈希验证工具集:md5deep是一套跨平台的方案,可以计算和比较md5等哈希加密信息的摘要md5,sha-1,sha-256,tiger,whirlpool。

  2.6 取证镜像工具集:针对镜像文件的取证工具,如mmsstat和mmls等。

  2.7 数字取证套件:其中dff(digital forensics framework)是一个简单但强大的数字取证工作辅助工具,它具有一个灵活的模块系统,具有多种功能,包括:恢复错误或崩溃导致的文件丢失,证据的研究和分析等。DFF提供一个强大的体系结构和一些有用的模块。而autopsy则提供了一个浏览器控制台。

  3.报告工具和系统服务

  一次完整的渗透测试,最后总要完成一份优雅的报告作为一个小结,相应的kali为安全工程师准备了报告工具集。

  3.1 dradis:是一个用于提高安全检测效率的信息共享框架(协作平台)。dradis提供了一个集中的信息仓库,用于标记我们目前已经做的工作和下一步计划。

  3.2 keepnote:富文本格式:彩色字体、内置图片、超链接(即能保存整个网页的图片文字等完整内容);树型分层组织内容;全文搜索;综合截图;文件附件;集成的备份和恢复;拼写检查(通过gtkspell);自动保存;内置的备份和恢复(zip文件存档)。

  3.3 cutycapt 媒体捕捉

  3.4 magictree是一个面向渗透测试人员的工具,可以帮助你轻松直接的进行数据合并、查询、外部命令执行和生成报告所有的数据都会以树形结构存储,非常方便。

  3.5 truecrypt:是一款免费开源的加密软件,支持多种操作系统。

  3.6 系统服务介绍:

  beef:对应xss测试框架beef的启动与关闭;

  dradis:对应笔记分享服务dradis的启动与关闭;

  http:对应kali本机web服务的启动与关闭;

  metasploit:对应metasploit服务的启动与关闭;

二、教材内容学习

  1.恶意代码

  恶意代码指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。首先恶意代码是一组指令集,恶意代码的实现方式可以多种多样,如二进制执行文件、脚本语言代码、宏代码,或是寄生在其他代码或启动扇区中的一段指令流。其次,恶意代码的执行目标是由编写者所决定的,满足他们心理上或利益上的一些需求。典型的攻击目标包括但不局限于:单纯的技术炫耀,或恶作剧、远程控制被攻击主机,使之能为攻击者的傀儡主机,满足其实施跳板攻击或进一步传播恶意代码的需要、窃取私人信息或机密信息、窃取计算、存储、带宽资源、拒绝服务、进行破坏活动。

  恶意代码可以根据其执行方式、传播方式和对攻击目标的影响分为计算机病毒、蠕虫、恶意移动代码、特洛伊木马、后门、僵尸程序、内核套件等。计算机病毒是最早出现的恶意代码类型。计算机病毒:一种能够自我复制的代码,通过将自身嵌入其他程序进行感染,而感染过程通常需要人工干预才能完成。蠕虫:是一类自主运行的恶意代码,并不需要将自身嵌入到其他宿主程序中。恶意移动代码:属于移动代码的范畴,移动代码是指可以从远程主机下载并在本地执行的轻量级程序。后门:一类能够绕开正常的安全控制机制,从而为攻击者提供访问途经的一类恶意代码。特洛伊木马:一类伪装成有用的软件,但隐藏其恶意目标的恶意代码。僵尸网络:攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的攻击网络。僵尸程序:用于构建僵尸网络以形成一对多控制攻击平台的恶意代码形态。内核套件:在用户态通过替换或修改系统关键可执行文件,或者在内核态通过控制操作系统内核,用以获取并保持最高控制权的一类恶意代码,又分为用户态Rootkit和内核态Rootkit两种。

  命名及分类:反病毒业界普遍采用“三元组命名”规则来对所发现的恶意代码新样本来进行命名,这里的“三元组”是指恶意代码的类型、家族名称和变种号,一般形式为:[恶意代码类型.]恶意代码家族名称[变种号]。

  发展趋势:①恶意代码的复杂度和破坏力不断增强②恶意代码技术的创新越来越频繁③关注重点从计算机病毒转移到蠕虫和内核级的攻击工具。

  2.计算机病毒

  计算机病毒的概念在1983年由Fred Cohen首次提出。我国对计算机病毒的具有法规效力的定义:计算机病毒是指编制或者在计算机程序中插入的,破坏计算机功能或数据、影响计算机使用,并能自我复制的一组计算机指令或者程序代码。

  计算机病毒的特性:感染性;潜伏性;可触发性;破坏性;衍生性。

  计算机病毒的感染及引导机制:计算机病毒需要将自身嵌入到一个宿主程序上才能运行,而感染的方式也决定了计算机病毒如何从宿主程序上被引导运行的方式,因此计算机病毒的感染和引导机制是紧密相关的。计算机病毒潜在的感染目标可分为可执行文件(三种对可执行文件的感染方式包括前缀感染机制、后缀感染机制和插入感染机制)、引导扇区和支持宏指令的数据文件三大类。

  计算机病毒的传播机制:包括移动存储、电子邮件及下载、共享目录等。

  3.网络蠕虫

  是一种通过网络自主传播的恶意代码。从定义本质分析,网络蠕虫是一种可以自我复制的代码,并且通过网络传播,通常无须人为干预就能传播。蠕虫正是因为具有快速主动传播的定义特性,因而能够对整个互联网造成瘫痪性的危害后果,也被称为“互联网时代的瘟疫”。1988年11月的Morris蠕虫由于其广泛的知名度和影响力,被誉为“第一个互联网蠕虫”。SQL Slammer蠕虫是有史以来传播速度最快的网络蠕虫。

  特性:在于通过网络的自主传播,如果一个代码不通过网络传播,那么它就不是蠕虫。

  蠕虫组成结构:蠕虫的内部组件类似于导弹这种战争武器中的一些部件,弹头用来穿透目标,传播引擎驱动导弹飞向它的目标,目标选择算法和扫描引擎很像导弹中的小型回转仪,可以引导导弹发现和指向它的目标,有效载荷仓中则携带了执行真正破坏性攻击的恶性材料。

  获取目标系统访问权最常用的技术:缓冲区溢出攻击;文件共享攻击;利用电子邮件传播;利用其他普遍错误配置。

  传播引擎:通常利用的网络传输机制包括文件传输协议FTP、小文件传输协议TFTP、超文本传输协议HTTP、服务信息块协议SMB以及原始SOCKET套接字等。

  4.后门与木马

  从定义特性上分析,后门是允许攻击者绕过系统常规安全控制机制的程序,能够按照攻击者自己的意图通过访问通道;而木马是指一类看起来具有某个有用或善意目的,但实际掩盖着一些隐藏恶意功能的程序。

  后门工具的访问通道:(1)本地权限提升和本地账号(2)单个命令的远程执行(3)远程命令行解释器访问(4)远程控制GUI(5)无端口后门。后门工具往往都利用了系统的自启动功能,将自身加入到系统重启机制中。在Windows平台中,后门工具可以利用自启动文件夹、注册表自启动项及预定计划任务这三种主要方法来达到自启动的效果。

  特洛伊木马的命名起源于《荷马史诗》中描述的特洛伊战争。特洛伊木马程序可以用于以下目的:(1)欺骗用户或系统管理员安装特洛伊木马程序,这样木马程序就通过毫无戒备的用户进入到计算机系统中;(2)隐藏在计算机的正常程序中,将自己伪装成看起来属于该系统,使得用户和管理员不会察觉到它的存在,通常与后门工具结合,成为木马后门。命名伪装常用的攻击技巧有混淆文件扩展名,模仿Windows系统文件或服务命名等。攻击软件发布站点可以使得攻击者能够将官方站点上的软件进行木马化,从而使下载者都安装一个植入了恶意代码的版本,能够对成千上万甚至是数百万的用户构成威胁。代码下毒是指攻击者在软件厂商的开发和测试软件的过程中植入一些与软件功能无关的程序逻辑,甚至于恶意代码。

  5.僵尸网络

  僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展融合而产生的一种新型攻击方式。僵尸网络是指攻击者出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。僵尸网络区别于其他攻击方式的基本特性是使用一对多的命令与控制机制,另外,僵尸网络还具有恶意性和网络传播性。

  僵尸网络的结构:最早出现的IRC僵尸网络由僵尸网络控制器和僵尸程序两部分组成。僵尸程序的功能组成结构可以分为主体功能模块和辅助功能模块,主体功能模块包括实现僵尸网络定义特性的命令与控制模块和实现网络传播特性的传播模块,而包含辅助功能模块(由信息窃取模块、主机控制模块、下载更新模块和防分析检测模块构成)的僵尸程序则具有更强大的攻击功能和更好的生存能力。主体功能模块中的命令与控制模块是整个僵尸程序的核心。僵尸程序可以按照传播策略分为自动传播型僵尸程序和受控传播型僵尸程序两大类,而僵尸程序的传播方式包括通过远程攻击软件漏洞传播、扫描NetBIOS弱密码传播、扫描恶意代码留下的后门进行传播、通过发送邮件病毒传播、通过文件系统共享传播等。辅助功能模块是对僵尸程序除主题功能外其他功能的归纳,主要包括信息窃取、僵尸主机控制、下载与更新和躲避检测与对抗分析等功能模块。

  僵尸程序的控制与命令:僵尸网络的基本特性是使用一对多的命令与控制机制,因此,理解命令与控制机制的实现是深入了解僵尸网络机理的必要前提。当前主流使用的僵尸网络命令与控制机制包括:基于IRC协议的命令与控制机制、基于HTTP协议的命令与控制机制和基于P2P协议的命令与控制机制这三大类。IRC网络中最为普遍使用的一种通信方式是群聊方式。基于IRC协议,攻击者向受控僵尸程序发布命令的方法有三种:设置频道主题命令,使用频道或单个僵尸程序发送PRIVMSG消息,通过NOTICE消息发送命令。IRC僵尸网络中发送的命令按照僵尸程序对应实现的功能模块可以分为僵尸网络控制命令、扩散传播命令、信息窃取命令、主机控制命令和下载与更新命令。其中主机控制命令还可以细分为发动DDoS攻击、架设服务、发送垃圾邮件、单击欺诈等。使用HTTP协议构建僵尸网络命令与控制机制的优势有两方面:首先,使用HTTP协议构建控制信道可以让僵尸网络控制流量湮没在大量的互联网Web通信中,从而使得基于HTTP协议的僵尸网络活动更难被检测;另外,使用HTTP协议构建控制信道一般都可以绕过防火墙。基于IRC协议和HTTP协议的命令与控制机制均具有集中控制点,这使得这种基于客户端-服务器架构的僵尸网络容易被跟踪、检测和反制。

  Rootkit的定义是一类特洛伊木马后门工具,通过修改现有的操作系统软件,使攻击者获得访问权并隐藏在计算机中。Rootkit需要由众多的功能组件所组成,包括替换操作系统软件用于隐藏自身的恶意程序,实现隐藏性后门访问的后门程序,还有各种辅助工具,这些工具允许攻击者调整那些被替换程序的特征,另外,正是由于Rootkit通常是一个恶意程序工具包,因此被命名为“Root”+“kit”,即用来获得Root后门访问的kit工具包。根据操作系统的分层,Rootkit可以运行在两个不同的层次上,即用户模式和内核模式。提供后门访问的二进制替换程序、隐藏攻击者的二进制替换程序、用于隐藏但不替换的二进制程序、另外一些零散的工具、安装脚本。Windows为了支持第三方工具扩展Windows的内置功能特性,提供了一些开发接口。Windows使用了WFP机制来防止操作系统关键文件被修改或替换。用户模式Rookit还可以使用DLL注入和API挂钩技术把恶意代码直接加入运行程序的内存空间中。

三、学习进度条

能够跟上课程的进度,掌握其中基本的压力测试、数字取证以及报告生成的方法,在本节的学习中,掌握了一定的系统压力测试、计算机的数字取证、系统报告工具等系统应用工具。缺点在于动手能力较弱,在整个实验流程中,卡壳比较多,不过都在最后得以解决。

在本周的学习中遇到的问题:尝试着使用php语言进行网站的搭建,该网站是搭建在wampserver上的,能够实现正常的注册登录功能,但是还没能实现设置sql注入漏洞,不知道漏洞的具体使用。

四、本学期学习目标

学习并掌握php语言,并使用其搭建一个网站,利用网络攻防中学到的知识,设置sql注入漏洞和xss漏洞设置。从而双向练习所学内容。

五、下周学习进度安排

对网站进行优化,设计页面等功能。并利用其搭建sql注入漏洞。

原文地址:https://www.cnblogs.com/yfsun/p/5456687.html