20169310 2016-2017-2 《网络攻防实践》第6周学习总结
教材学习内容总结
本周主要学习了《网络攻防---技术与实践》第5、6章的内容,主要学习了 TCP/IP网络协议攻击 和 网络安全防范技术
- TCP/IP网络协议攻击概述
网络安全的属性:机密性 、完整性 、可用性 、真实性 、不可抵赖性 。
网络攻击的基本模式分为:截获(嗅探 与 监听) 、中断(拒绝服务) 、篡改(数据包篡改) 、伪造(欺骗) 。
TCP/IP网络协议栈在设计时采用了分层模型,分为:网络接口层 、互联层 、传输层 、应用层 每一层当中都有针对破坏网络安全属性为目的的攻击技术。以下列出每一层所涉及的主要协议:
网络接口层:以太网协议、PPP协议。
互联层:IPv4、ICMP、ARP、DGP。
传输层:TCP、UDP。
应用层:HTTP、FTP、POP3/SMTP、DNS、SMB。
在TCP/IP网络协议栈的攻击技术当中,除了网络嗅探与协议分析技术外,最流行的是欺骗技术(Spoofing)。攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。在类UNIX平台和Windows平台上,攻击者都可以通过使用原始套接字(Raw Socket),绕过TCP/IP协议栈的报文封装处理和验证,构造出任意的数据报文。除了自己编程实现伪造报文外,还有一些可以实施各种网络欺骗攻击的工具软件,如:Netwox、Netwag。 - 网络层协议攻击
1.IP源地址欺骗。根本原因在于IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性验证。它最普遍应用于拒绝服务攻击当中。防范措施有:(1)使用随机化的初始序列号(2)使用网络层安全传输协议如IPsec(3)避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略(4)在路由器和网关上实施包过滤。
2.ARP欺骗。根源在于ARP协议在设计时认为局域网内部的所有用户都是可信的,是遵循协议涉及规范的。它的应用场景很多,比如在交换是网络中利用ARP欺骗技术进行局域网的嗅探,并通过进一步的协议分析窃取敏感信息或是利用ARP协议进行中间人攻击。防范措施:(1)静态绑定关键主机IP地址与MAC地址映射关系(2)使用相应的ARP防范工具(3)使用VLAN虚拟子网细分网络拓扑并加密传输数据以降低ARP欺骗攻击的危害后果。
3.ICMP路由重定向攻击。就是利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己写可以伪装成为路由器,使目标机器的数据报发送至攻击机从而加强监听,具体过程会与IP源地址欺骗技术结合实施。防范措施:根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器等。 - 传输层协议攻击
1.TCP RST攻击。也称作TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
2.TCP会话劫持攻击。目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。由于TCP会话劫持为攻击者提供了一种绕过应用层身份认证的技术途径,因此得到了较高水平攻击者的青睐。目前比较普遍的方法是结合ARP欺骗来进行TCP会话劫持。防范措施:(1)禁用主机上的源路由(2)采用静态绑定IP-MAC地址表以避免ARP欺骗(3)引用和过滤ICMP重定向报文(4)采用网络层加密机制,即IPsec协议。
3.TCP SYN Flood 拒绝服务攻击。利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。防范措施:(1)SYN-Cookie技术(2)防火墙地址状态监控技术。
4.UDP Flood拒绝服务攻击。利用UDP协议天然的无状态不可靠属性,通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用状态,造成咀拒绝服务供给。防范措施:(1)禁用或过滤监控和响应服务(2)禁用或过滤其他的UDP服务(3)网络关键位置使用防火墙和代理机制用来过滤一些非预期的网络流量。 - TCP/IP网络协议栈攻击防范措施
1.监测、预防与安全加固。
2.网络安全协议。如:网络接口层上的WEP、WPA/WPA2、802.X;网络互联层上的IPsec协议簇;床数层上的TLS;应用层的HTTPS、S/MIME、SET、SSH。
3.下一代互联网协议:IPv6。 - 安全模型
动态可适应网络安全模型基于闭环控制理论,典型的是PDR模型及在其基础上的P2DR。PDR是一个基于时间的动态安全模型,提出了安全性可量化和可计算的观点。P2DR的核心是安全策略,所有的防护、监测、响应都是依据安全策略实施的,安全策略为安全管理提供管理方向和支持手段。 - 网络安全防范技术与系统
1.防火墙。指的是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。它的基本功能是控制计算机网络中不同信任程度网络域之间传送的数据流。具体的为网络管理员提供:(1)检查控制进出网络的网络流量(2)防止脆弱或不安全的协议和服务(3)防止内部网络信息的外泄(4)对网络存取和访问进行监控审计(5)防火墙可以强化网络安全策略并集成其他安全防御机制。而防火墙也有不足,由于它的先天而无法防范的有:(1)来自网络内部的安全威胁(2)通过非法外联的网络攻击(3)计算机病毒传播。由于技术瓶颈技术而无法防范的有:(1)针对开放服务安全漏洞的渗透攻击(2)针对网络客户端程序的渗透攻击(3)基于隐蔽通道进行通信的特洛伊木马或僵尸网络。
2.防火墙技术:包过滤技术、基于状态监测的包过滤(或称动态包过滤)技术、代理技术。防火墙产品:集成包过滤功能的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。防火墙的部署方法有:包过滤路由器、双宿主堡垒主机、屏蔽主机、屏蔽子网。
3.Linux开源防火墙:netfilter/iptable。netfilter是Linux内核中实现的防火墙功能模块,iptables则是应用态的防火墙管理工具。
4.其他网络防御技术:VPN、内网安全管理、内容安全管理SCM、统一威胁管理。 - 网络监测技术与系统
1.入侵检测技术就是对入侵行为进行检测与发现,它是防火墙之后的第二道安全屏障。评估入侵检测技术和系统的两个重要参数是检测率和误报率。理想的入侵检测系统应该同时具有较高的正确检出率和较低的误报率,然而由于存在“基调悖论”现象,提高检测率与降低误报率互为矛盾。入侵检测技术分为无用检测和异常检测。入侵检测系统可分为基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS),这两者可以互相补充成为分布式入侵检测系统(DIDS)。入侵检测系统的体系结构分为集中式、层级式和协作式。入侵防御系统是在入侵检测系统基础上发展出来的一种网络安全技术和产品形态,有时也称为内嵌式IDS,它采用直接在网络边界位置内联连接的方式,并在监测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。
2.Snort是一款非常著名的开源网络入侵检测系统软件,用c语言编写,具有强大的功能:数据包嗅探、数据包记录和分析以及各种入侵检测功能。Snort当中的4个主要部件是:数据包嗅探与解码器、预处理器与插件、检测引擎与插件、输出模块与插件。 - 网络安全事件响应技术
网络安全事件响应是P2DR模型中响应环节的关键技术手段。是指针对那些影响计算机系统和网络安全的不当行为,所采取的措施和行动,旨在阻止和减小事件所带来的影响。计算机安全事件响应小组(CSIRT)是进行网络安全事件应急响应和处理的专业团队。安全事件响应可分为6个阶段:准备、检测、抑制、根除、回复和跟踪。响应过程当中所涉及的关键技术包括计算机取证、攻击追溯与归因、备份恢复与灾难恢复等。
教材学习中的问题和解决过程
问题
在使用 Netwox 工具进行ARP欺骗时,要用到 FTP 服务,我选择在Ubuntu系统当中搭建FTP服务器(IP 192.168.37.150
),vsftpd服务安装完成后,首先新建一个用于FTP服务目录:
然后添加FTP用户,用户名为 uftp:
打开 /etc/vsftpd.conf
修改相应配置:
建立允许用户名单,即之前配置当中添加的文件:allowed_users:
编辑文件 /etc/ftpusers
,由于该文件当中保存的是禁止登陆FTP的用户名,所以要保证该文件当中没有已建立的用户名存在。
为了测试,在服务器端新建了一个名为 1.txt 的文件,然后在另一个系统(IP 192.168.37.130
)当中,登陆FTP服务器并get这个文件:
至此,测试环境已经搭建完毕。
为方便描述,现命名主机A为客户端(IP 192.168.37.130
),B为服务器端(192.168.37.150
),C为攻击机(IP 192.168.37.200
),三者互相ping通后,通过命令 arp -a
查看他们各自的ARP表:
A:
B:
C:
这里通过A登录B的FTP服务器,正常情况下,数据包应该是:
可以看到FTP数据在A和B之间交互,现利用Netwox工具对B进行 ARP欺骗 ,让B误认为C是A,命令如下:
netwox 33 -b 00:0c:29:19:10:04 -g 192.168.37.130 -h 00:0c:29:19:10:04 -i 192.168.37.150
可以看到它将A的IP地址与C的MAC绑在了一起,这样再在B上查看一下ARP表,如下:
可以看到B的ARP表中确实记录了一个被欺骗的映射,同时C虚拟了一个不存在的MAC地址。
同理,对A进行欺骗:
因为数据包不会发向目标服务器,进而在登录ftp时就会出现超时:
作为中间人的C只要对数据包进行转发,就可以达到中间人攻击的目的。
作为中间人进行转发的功能暂时无法实现,所以换了个思路,在A正常连接B后,再通过C进行攻击,首先连接正常情况下的数据包如之前所示,但是出现攻击之后,在B端可以看到:
出现了大量显示深色的数据包,查看这些数据包可以看到,这些数据是由A发过来的,但是A的IP所对应的MAC地址被解析成了C的MAC地址,所以可以发现,由于A得不到响应就一直发送,直至B的ARP表更新正常才会继续交互。
下面利用该工具进行 SYN Flood攻击测试
首先在目标机B上打开xampp服务平台,以便A能够在浏览器中访问它:
正常情况下,TCP的三次握手如下:
断开连接之后,利用如下命令进行SYN Flood攻击:
netwox 76 -i 192.168.37.150 -p 80
这时可以在B端明显发现,出现大量TCP数据包:
很明显netwox工具虚拟了许多不同IP地址,向B发送TCP包,B端开始变得卡顿,网络带宽被完全占据,进而A端就不能再与之建立连接。这就达到了攻击的目的。
视频学习中的问题和解决过程
本周主要学习了KaliSecurity21-25,学习了密码攻击当中的在线攻击工具、离线攻击工具、哈希传递及无线安全分析工具的使用。其中介绍了许多工具,它们之间的有些功能是相互重合的,这里主要对以下几个工具进行总结。
问题1 在线攻击当中的 Hydra 工具,作为一个老牌破解工具,可以使用各种参数来破解各种服务的账户用户名及密码,但是在按照视频学习时,出现了无法破解的情况,具体问题及解决过程如下:
以破解 SSH 服务的用户名及密码为例,首先将SSH服务打开:
可以使用如下命令,查看当前ssh服务所监听的端口号:
由于使用该工具需要密码字典,因而可以手动编写一个名称为 passwd.txt
的简单字典用作测试:
然后使用命令:
hydra -l root -P ./passwd.txt -F ssh://127.0.0.1:22
对本机root
用户的密码进行破解,但是遇到如下情况:
经过上网查找资料,分析相关原因得到的结论是ssh服务默认禁止root用户登录,所以查看ssh的配置文件sshd_config
:
可以看到,在 Authentication 当中有一句 PermitRootLogin prohibit-password
,说明确实在配置文件当中将root登录禁止了,所以可以将其改为图中那样,将 prohibit-password
改为 yes
,然后再使用之前的命令,就可以成功破解了:
问题2 在使用 Hashid 工具进行哈希分析时,发现用 Kali 1.0 与 Kali 2.0自带的hashid工具对同一段哈希值,可能因为版本原因,有着不同的分析结果:
问题3 利用 john 工具对Linux Shadow账户密码进行破解
我们可以查看 /etc/shadow
中的内容:
可以看到第一行当中包含了root用户密码的哈希值,可以将它们先导入一个文件当中,如下:
然后执行:
john testshadow
即可破解成功,通过 --show
即可查看破解结果:
问题4 利用 Samdump2 与 BKhive 工具破解Windows下密码hash文件
这里选用的Windows是windows xp系统,用户名是 administrator
,密码是 frank
,正常情况下,系统的SAM文件与system文件在系统运行时是禁止被拷贝的,所以我利用了冰刃(icesword) 1.22工具,对这两个文件进行复制(也可通过u盘启动的方法复制这两个文件):
将这两个文件复制到Kali系统当中,首先用bkhive工具从system文件当中生成一个bootkey文件:
bkhive system bootkey
再用bootkey和SAM文件通过samdump2生成一个密码hash文件:
samdump SAM bootkey > hashes
再利用john工具,直接:
john hashes
即可。
但是在使用过程中遇到以下错误:
暂时还无法解决。
错题分析与总结
1.SQL注入与XSS攻击的共同原理是: 输入检查不充分、数据和代码没有分离。
2.可以通过以下命令将 f1.txt
复制为 f2.txt
:
cp f1.txt f2.txt
cat f1.txt f2.txt
感想体会
由于时间原因,这次攻防实践做的比较仓促,遇到了许多问题,但总的来说,通过实践确实掌握了几个工具的使用,以后还要继续努力。
学习进度条
学习目标(本学期)
完成网络攻防课程的学习,完成各种攻防实践操作。
本周完成内容
学习了《网络攻防---技术与实践》第5、6章的内容,学习了KaliSecurity的21 - 25视频。
周次 | 教材学习 | 视频学习(新增/累计) | 博客(新增/累计) |
---|---|---|---|
第1周 | (实验楼学习) | (实验楼学习) | 1/1 |
第2周 | 第1、2章 | 5/5 | 1/2 |
第3周 | 第3章 | 5/10 | 2/4 |
第4周 | 第4章 | 5/15 | 1/5 |
第5周 | 第11、12章 | 5/20 | 1/6 |
第6周 | 第5、6章 | 5/25 | 1/7 |