《网络攻防》第6周作业

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服务目录:

1115759-20170409191832519-1158161632.png
然后添加FTP用户,用户名为 uftp:

1115759-20170409191925722-1831651207.png
打开 /etc/vsftpd.conf 修改相应配置:

1115759-20170409192029675-586153658.png
1115759-20170409192052847-1569220533.png
建立允许用户名单,即之前配置当中添加的文件:allowed_users:

1115759-20170409192221097-1872783682.png
1115759-20170409192242269-904226572.png
编辑文件 /etc/ftpusers ,由于该文件当中保存的是禁止登陆FTP的用户名,所以要保证该文件当中没有已建立的用户名存在。
为了测试,在服务器端新建了一个名为 1.txt 的文件,然后在另一个系统(IP 192.168.37.130)当中,登陆FTP服务器并get这个文件:

1115759-20170409192731300-15196062.png
1115759-20170409192754128-750705882.png

至此,测试环境已经搭建完毕。
为方便描述,现命名主机A为客户端(IP 192.168.37.130),B为服务器端(192.168.37.150),C为攻击机(IP 192.168.37.200),三者互相ping通后,通过命令 arp -a 查看他们各自的ARP表:
A:

1115759-20170409194443488-636014397.png
B:

1115759-20170409194454269-2065123325.png

C:

1115759-20170409194501410-1975167405.png
这里通过A登录B的FTP服务器,正常情况下,数据包应该是:

1115759-20170409194635519-700079949.png
可以看到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

1115759-20170409195022675-234389578.png
可以看到它将A的IP地址与C的MAC绑在了一起,这样再在B上查看一下ARP表,如下:

1115759-20170409195252628-542010626.png
可以看到B的ARP表中确实记录了一个被欺骗的映射,同时C虚拟了一个不存在的MAC地址。
同理,对A进行欺骗:

1115759-20170409200018769-314856013.png
因为数据包不会发向目标服务器,进而在登录ftp时就会出现超时:

1115759-20170409200247910-1292432712.png

作为中间人的C只要对数据包进行转发,就可以达到中间人攻击的目的。
作为中间人进行转发的功能暂时无法实现,所以换了个思路,在A正常连接B后,再通过C进行攻击,首先连接正常情况下的数据包如之前所示,但是出现攻击之后,在B端可以看到:

1115759-20170409201655582-315625764.png
出现了大量显示深色的数据包,查看这些数据包可以看到,这些数据是由A发过来的,但是A的IP所对应的MAC地址被解析成了C的MAC地址,所以可以发现,由于A得不到响应就一直发送,直至B的ARP表更新正常才会继续交互。

下面利用该工具进行 SYN Flood攻击测试

首先在目标机B上打开xampp服务平台,以便A能够在浏览器中访问它:

1115759-20170409203903988-725486683.png
正常情况下,TCP的三次握手如下:

1115759-20170409203933566-465486548.png
断开连接之后,利用如下命令进行SYN Flood攻击:

netwox 76 -i 192.168.37.150 -p 80

这时可以在B端明显发现,出现大量TCP数据包:

1115759-20170409204225597-1512300189.png
很明显netwox工具虚拟了许多不同IP地址,向B发送TCP包,B端开始变得卡顿,网络带宽被完全占据,进而A端就不能再与之建立连接。这就达到了攻击的目的。

视频学习中的问题和解决过程

本周主要学习了KaliSecurity21-25,学习了密码攻击当中的在线攻击工具、离线攻击工具、哈希传递及无线安全分析工具的使用。其中介绍了许多工具,它们之间的有些功能是相互重合的,这里主要对以下几个工具进行总结。

问题1 在线攻击当中的 Hydra 工具,作为一个老牌破解工具,可以使用各种参数来破解各种服务的账户用户名及密码,但是在按照视频学习时,出现了无法破解的情况,具体问题及解决过程如下:

以破解 SSH 服务的用户名及密码为例,首先将SSH服务打开:

1115759-20170409112051785-1818469452.png
可以使用如下命令,查看当前ssh服务所监听的端口号:

1115759-20170409112737316-1338264261.png
由于使用该工具需要密码字典,因而可以手动编写一个名称为 passwd.txt 的简单字典用作测试:

1115759-20170409112208941-1879341453.png
然后使用命令:

hydra -l root -P ./passwd.txt -F ssh://127.0.0.1:22

对本机root用户的密码进行破解,但是遇到如下情况:

1115759-20170409112517738-690292381.png
经过上网查找资料,分析相关原因得到的结论是ssh服务默认禁止root用户登录,所以查看ssh的配置文件sshd_config

1115759-20170409112935816-158649526.png
可以看到,在 Authentication 当中有一句 PermitRootLogin prohibit-password ,说明确实在配置文件当中将root登录禁止了,所以可以将其改为图中那样,将 prohibit-password 改为 yes,然后再使用之前的命令,就可以成功破解了:

1115759-20170409113242628-617336922.png

问题2 在使用 Hashid 工具进行哈希分析时,发现用 Kali 1.0Kali 2.0自带的hashid工具对同一段哈希值,可能因为版本原因,有着不同的分析结果:

1115759-20170409113556675-272950110.png
1115759-20170409113617785-735682357.png

问题3 利用 john 工具对Linux Shadow账户密码进行破解

我们可以查看 /etc/shadow 中的内容:

1115759-20170409150550738-2118925366.png
可以看到第一行当中包含了root用户密码的哈希值,可以将它们先导入一个文件当中,如下:

1115759-20170409150748972-501493381.png
然后执行:

john testshadow

即可破解成功,通过 --show 即可查看破解结果:

1115759-20170409151015738-637797612.png

问题4 利用 Samdump2BKhive 工具破解Windows下密码hash文件

这里选用的Windows是windows xp系统,用户名是 administrator ,密码是 frank ,正常情况下,系统的SAM文件与system文件在系统运行时是禁止被拷贝的,所以我利用了冰刃(icesword) 1.22工具,对这两个文件进行复制(也可通过u盘启动的方法复制这两个文件):

1115759-20170409143328535-1048354026.png
将这两个文件复制到Kali系统当中,首先用bkhive工具从system文件当中生成一个bootkey文件:

bkhive system bootkey

再用bootkey和SAM文件通过samdump2生成一个密码hash文件:

samdump SAM bootkey > hashes

再利用john工具,直接:

john hashes

即可。
但是在使用过程中遇到以下错误:

1115759-20170409152309628-470587239.png
暂时还无法解决。

错题分析与总结

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/51/2
第3周第3章5/102/4
第4周第4章5/151/5
第5周第11、12章5/201/6
第6周第5、6章5/251/7

转载于:https://www.cnblogs.com/zhanghanbing/p/6684006.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nios ii小实验——第一个demo指导书

1.新建工程:打开Quartus II 13.0,点击File->New Project Wizard,点击Next后可以看到如图2所示的对话框,选择工程路径给工程命名(注意:工程名必须和顶层模块名一致,否则编译会报错&#xff09…

算法交易系列研究之一

一、算法交易的概念 (一)什么是算法交易 算法交易(Algorithmic Trading)是一种程序化交易方式,它将交易者和市场有机地联系起来。算法交易通常可以减少这两者之间的摩擦,或者说在一定程度上可以降低交易对市…

Spring3系列7- 自动扫描组件或Bean

原文地址 http://www.cnblogs.com/leiOOlei/p/3547589.html 一、 Spring Auto Scanning Components —— 自动扫描组件     1. Declares Components Manually——手动配置component 2. Auto Components Scanning——自动扫描组件 3…

CI Weekly #17 | flow.ci 支持 Java 构建以及 Docker/DevOps 实践分享

这周一,我们迫不及待写下了最新的 changelog —— 项目语言新增「Java」。创建 Java 项目工作流和其它语言项目配置很相似,flow.ci 提供了默认的 Java 项目构建流程模版,快去试试吧~ 最近 flow.ci 2017 招聘计划正式启动&#xff…

python选取tensor某一维_Pytorch的Tensor操作(1)

类型推断torch.randn():随机初始化a.type():返回类型type():返回基本类型isinstance() :检查类型cuda会影响数据类型标量维度(dimention)为0的标量标量的shape:返回类型为【】(空的list),返回长度也为0a.di…

201521123014 《Java程序设计》第8周学习总结

201521123014 《Java程序设计》第8周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。 泛型(编写的代码可被不同类型的对象所重用) Java中一个集合可以放任何类型的对象,因为…

【4.0】jdbcTemplate

1.什么是jdbcTemplate? 2.使用jdbcTemplate 3.crud操作 参考博文:http://blog.csdn.net/u014800380/article/details/64125653 4.采用配置文件的方式使用jdbcTemplate 参考博文:http://suyanzhu.blog.51cto.com/8050189/1563219/ 参考博文原文&#x…

基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)

基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文) 导读:触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编…

【转】C#之继承

C#之继承 一.继承的类型  在面向对象的编程中,有两种截然不同继承类型:实现继承和接口继承  1.实现继承和接口继承  *实现继承:表示一个类型派生于基类型,它拥有该基类型的所有成员字段和函数。在实现继承中,派生…

java 学习计划_Java学习计划范例

Java学习计划范例Java学习计划好的计划是成功的一半,今天是在创新思维的第一节课,在这门课程的开始,一个有策略的、有目的性的计划是非常必要的,为了在以后的学习中能够达到最好的.效果,"坚持"是一把雕刻刀&…

SQL Server 2012自动备份

SQL 2012和2008一样,都可以做维护计划,来对数据库进行自动的备份。 现在做这样一个数据库维护的计划,每天0点对数据库进行差异备份,每周日0点对数据库进行完全备份,并且每天晚上10点删除一次过期备份(两个星…

mysql查逻辑表的分片规则_MySQL(19) Mycat分片(分库分表)配置

一、前言本文将基于主从复制,读写分离的环境基础上进行一个简单的分片(分库分表)配置二、Mycat分片配置mycat分片主要在scheam.xml,rule.xml这2个表中配置① scheam.xml:配置逻辑表以及对应使用的分片规则select user()这里小编主要对t_user表…

JS取消浏览器文本选中的方法

一 、问题的出现 今天在使用Easy-UI 的messager.alert()方法时候出现浏览器文本被选中,不知道其中是什么原因,如下图所示。 二 、解决思路 我最后的思路时在弹出消息框的同时,取消浏览器文本的选择,最后查找资料编写如下方法。  …

linux 脚本 java_Linux 通过脚本执行Java程序

由于要统计不同的IP,代码中应用了HashSet来存放IP地址。上述Java程序是在Windows下编写的,如果在Linux服务器上运行,只需要把上面文件的路径和文件更换了就可以了。2.编写好java程序后,将java程序打成jar文件(环境Linux)我将上述测…

Java开启/关闭tomcat服务器

© 版权声明:本文为博主原创文章,转载请注明出处 通过java代码实现Tomcat的开启与关闭 1.项目结构 2.CallTomcat.java package com.calltomcat.test;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;…

5、如何快速找到多个字典中的公共键(key) 6 如何让字典保持有序 7 如何实现用户的历史记录功能(最多n条)...

5、如何快速找到多个字典中的公共键(key) from random import randint,sample #随机取数 # a sample("ABCDEF",randint(5,6)) # print(a) # b1 {x:randint(1,4) for x in sample("ABCDEF",randint(3,6))} # b2 {x:randint(1,4) for x in sample("A…

KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机

一 .KVM 简介 KVM (名称来自英语: Kernel-basedVirtual Machine 的缩写,即基于内核的虚拟机) , 是一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。KVM在2007年2月被导入Li…

python 如何在一个for循环中遍历两个列表

是我在看《笨方法学python》过程中发现有一行代码看不懂——“ for sentence in snippet, phrase:”,所以研究了半天,感觉挺有收获的。所以就放在博客上分享给大家了。 直入主题: 为了不耽误大家时间,如果知道以下为两段代码为什么…

画王八java代码参数_java画乌龟源代码-郭遥航.doc

java画乌龟源代码-郭遥航.doc /*JAVA基本功小练习用java语言描述小王八用鼠标可以拖动小乌龟进行移动选中乌龟时可以显示小乌龟的腹面*/importjava.awt.*;importjavax.swing.*;importjava.awt.event.MouseMotionListener;importjava.awt.event.MouseListener;importjava.awt.ev…

java服务注册中心有哪些_Spring Cloud服务注册中心简述

概念当一个大型系统拥有很多服务时,往往需要一个服务注册中心来管理这些服务,它可以提供如下功能:登记每个服务提供的功能检测每个服务是否可用,不可用的服务剔除服务间互相调用时,通过服务注册中心很容易找到目标服务…