《网络攻防》第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,一经查实,立即删除!

相关文章

python读ad域日志_Python实现AD域认证

Python 通过ldap进行ad域账号的校验。首先需要安装python-ldap的模块 http://www.python-ldap.org/。 在这里用的是windows系统,当然比较容易,下载地址 http://pypi.python.org/pypi/python-ldap/。安装后在python 的交互环境里输入import ldap 如果没有…

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

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

js动态时间(转)

html代码 <span id"timeShow" show_cur_times()></span>js代码 $(function(){//设置1秒调用一次show_cur_times函数setInterval("show_cur_times()",100); });function show_cur_times(){ //获取当前日期var date_time new Date();//定义星期…

shell设计精髓_交互设计精髓

了解数字产品的设计过程工业设计师 Victor Papanek 认为&#xff0c;设计是“为赋予有意义的秩序&#xff0c;作出有意识或直觉的努力”。“All men are designers. All that we do, almost all the time is design, for design is basic to all human activity. The planning …

谈谈我对Javascript中This对象的理解

this 指针的隐式赋值 this总是指向调用该方法的对象&#xff1b; 在事件中&#xff0c;this指向触发这个事件的对象&#xff0c;特殊的是&#xff0c;IE中的attachEvent中的this总是指向全局对象Window&#xff1b; 显示操纵 this 指针 Javascript引擎通过以下两种方式允许我们…

mysql获取下一条自增的id_mysql获取一个表中的下一个自增(id)值的方法

mysql获取一个表中的下一个自增(id)值的方法MySQL: Get next AUTO_INCREMENT value from/for tableNote to self: To get the next auto_increment value from a table run this query: SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA $dbName AND…

WebStorm 快捷键整理

我用的是WebStorm11 2016的版本&#xff0c;个人感觉非常不错&#xff0c;现在整理下快捷键。  Ctrl/ 或 CtrlShift/注释&#xff08;// 或者/*…*/ &#xff09;ShiftF6重构-重命名CtrlX剪切行CtrlD复制并粘贴行CtrlG查找行CtrlShiftUp/Down代码快向上/下移动。F2 或ShiftF2高…

mysql云数据库 磁盘利用率_云数据库MySQL参数的那些事儿

MySQL数据库参数是数据库系统运行的关键配置信息&#xff0c;设置不合适的参数值可能会影响业务。本文列举了一些重要参数说明&#xff0c;更多参数详细说明&#xff0c;请参见MySQL官网。修改敏感参数若干参数相关说明如下&#xff1a;“lower_case_table_names;”:云数据库默…

Swift3 Scanner用法之判断是否数字、提取字符串里的数字

1、判断是否数字 /// 判断是否是数字////// - Parameter string: <#string description#>/// - Returns: <#return value description#>class func isPurnInt(string: String) -> Bool {let scan: Scanner Scanner(string: string)var val:Int 0return scan.s…

mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库

本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 &#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。UCSC Genome Browser是由University of California Santa Cruz (UCSC) 创立和维护的&#xff0c;该站点包含有人类、小…

算法交易系列研究之一

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

mysql支持的时区列表_mysql按天分组支持时区

时区问题总是个比较麻烦的问题&#xff0c;客户端与服务器的时区不一致自然是理所当然的事情&#xff0c;而对于多台服务器或者分布式再或者炙手可热的云&#xff0c;时区不统一也很正常&#xff0c;而且也不需要统一&#xff0c;还好有个时间戳的概念&#xff0c;通过时间戳就…

IOS多线程之Block编程

1 什么是block iOS SDK 4.0開始&#xff0c;Apple引入了block这一特性。字面上说&#xff0c;block就是一个代码块。可是它的奇妙之处在于在内联(inline)运行的时候(这和C非常像)还能够传递參数。同一时候block本身也能够被作为參数在方法和函数间传递。这就给予了block无限的可…

python查找两个数组中相同的元素_匹配两个numpy数组以找到相同的元素

使用熊猫&#xff1a;import pandas as pdid1 pd.read_csv(id1.txt)id2 pd.read_csv(id2.txt)df id1.merge(id2.sort_values(byID2).drop_duplicates(ID2).rename(columns{ID2:ID1}))print(df)产生&#xff1a;^{pr2}$对于大型数据集&#xff0c;您可能需要执行以下操作&…

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

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

数据插不进mysql_数据插入不进数据库里面去。

1&#xff1a;index.php提交到&#xff1a;index_ok.php2:连接数据库文件&#xff1a;conn.php<?php $idmysql_connect("localhost","root","root")ordie(连接失败:.mysql_error());if(mysql_select_db("db_databas...1&#xff1a;ind…

Android_Kotlin 代码学习

https://github.com/ldm520/Android_Kotlin_Demo转载于:https://www.cnblogs.com/simadi/p/6704864.html

liberty配置mysql数据源_Bluemix Liberty server.xml MySQL数据源配置

如果要连接到mysql数据库并希望 manually 在server.xml中提供凭据&#xff0c;则可以执行以下操作&#xff1a;server.xml中&#xff1a;URL"jdbc:mysql://1.2.3.4:3306/db"password"mypassword" user"admin" />name"MySQL Connector&qu…

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

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

mysql mgr 配置_MySQL5.7 MGR安装配置

MySQL5.7 MGR安装配置一、服务器规划mysql_mgr_01192.168.10.223mysql_mgr_02192.168.10.224mysql_mgr_03192.168.10.225二、配置文件1. mysql_mgr_01[rootmysql_mgr_01 tmp]# cat /etc/my.cnf[mysqld]sql_mode STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_D…