2019寒假训练营第三次作业part1-网络空间安全概论第五章
第五章 网络攻防技术
5.1 网路信息收集技术--网络踩点
- 黑客入侵系统之前,需要了解目标系统可能存在的:
- 管理上的安全缺陷和漏洞
- 网络协议安全缺陷与漏洞
- 系统安全缺陷与漏洞
- 黑客实施入侵过程中,需要掌握:
- 目标网络的内部拓扑结构
- 目标系统与外部网络的连接方式与链路路径
- 防火墙的端口过滤与访问控制配置
- 使用的身份认证与访问控制机制
- 网络踩点:
- 通过有计划的信息收集,了解攻击目标的隐私信息、网络环境和信息安全状况
- 根据踩点结果,攻击者寻找出攻击目标可能存在的薄弱环节,为进一步的攻击提供指引
- 网络踩点常用手段
- Google Hacking
通过网络搜索引擎查找特点安全漏洞或是私密信息
常用的搜索引擎:
- www.ZoomEye.org
- www.google.com
- www.altavista.com
- www.dogpile.com
Google Hacking客户端软件:Athena,Wikto,SiteDigger
能否利用搜索引擎在WEB中找到所需信息,关键在于能否合理提取搜索关键字
防范Google Hacking
- 将敏感信息从公共媒体上删除
- 发现存在非预期泄露的敏感信息后,应采取行动进行清楚
- 发表信息时,尽量不要出现真实个人信息
- 做为网络管理者,不要轻易在讨论组或技术论坛发布求助技术贴,防止将单位内部网络拓扑结构或路由器配置泄露给他人
- 关注中国国家漏洞库CNNVD等安全漏洞信息库发布的技术信息,及时更新软件或操作系统补丁
- WhoIs查询
- DNS注册信息WhoIs查询:查询特定域名的3R详细注册信息
- 3R:
- 已注册域名的注册人(Registrant)信息,包括域名登记人信息、联系方式、域名注册时间和更新时间、权威DNS IP地址等。
- 注册商(Registrar)信息
- 官方注册局(Registry)信息
- 官方注册局一般会提供注册商和Referral URL信息,具体注册信息则位于注册商数据库中
- DNS WhoIs查询思路
- ICANN:因特网技术协调机构,负责协调以下因特网标识符的分配工作:
- 域名、IP地址、网络通信协议的参数指标和端口号
- 位于DNS/IP层次化管理结构的顶层,因此是手动WHOIS查询的最佳入口点
- 一般思路
- 在www.iana.org 得到某个提供whois查询服务的机构
- 进一步查询域名注册商
- 在域名注册商上查询注册信息
- ICANN:因特网技术协调机构,负责协调以下因特网标识符的分配工作:
- 3R:
- IP WhoIs查询:查询特定的IP地址的详细注册信息
- ICANN的地址管理组织ASO总体负责IP地址分配工作
- 具体IP网段分配记录和注册者信息都储存于各个洲际互联网管理局RIR的数据库中
- 有时需要到国家/地区互联网注册局NIR(中国为CNNIC)或ISP查询更细致信息
- 查询过程
- ARIN的Whois Web服务,告知这段IP由AONIC管辖
- APNIC的Whois Web服务,给出该网段其他详细信息
- whois查询安全防范
- 及时更新管理性事务联系人的信息
- 尝试使用虚拟的人名来作为管理性事务联系人
- 使用域名注册商提供的私密注册服务,确保敏感信息不被公开
- DNS注册信息WhoIs查询:查询特定域名的3R详细注册信息
- DNS查询
- DNS:一个提供域名到IP地址的映射或者将IP地址映射成域名的分布式数据库系统
- DNS区域传送:
- 辅助DNS服务器使用来自主服务器的数据刷新自己的ZONE数据库
- 为运行中的DNS服务提供一定的冗余度,防止因主服务器故障而导致域名解析器服务不可用
- DNS区域传送一般仅限于辅助DNS服务器才能向主服务器发起请求
- DNS服务:允许不受信任的因特网用户执行DNS区域传送请求,是严重的配置错误
- 在错误配置时DNS服务器会接受任何一个主机的DNS区域传送请求
- 如果没有使用公用/私用DNS机制分割外部公用DNS信息和内部私用DNS信息,任何攻击者都可以得到机构的所有内部主机和IP地址
- 解决方案:对外的DNS服务器配置为禁止DNS区域传送,且该服务器不能包含内部网络相关主机的敏感信息
5.2网路信息收集技术--网络扫描
- Google Hacking
网络扫描:攻击者通过扫描技术找到目标可能的入侵漏洞
类型
- 主机扫描:向目标系统发出特定的数据包,并分析目标系统返回的相应结果的行为
- 使用ICMP协议
- 常见扫描技术
- ICMP Ping扫描
- 端口扫描
- 防范
- 使用例如Snort入侵扫描检测系统,或者McAfee桌面防火墙工具,来检测主机扫描活动
- 根据业务要求,仔细考虑允许哪些类型的ICMP通信进入网络
- 使用访问控制列表机制ACL
- 只允许制定的ICMP数据包到达特定主机
- 端口扫描:攻击者通过连接到目标系统的TCP/UDP端口,已确定有哪些服务正处于监听状态
- 常见端口扫描技术
- TCP端口扫描
- TCP SYN扫描
- TCP FIN扫描
- TCP圣诞树扫描
- TCP空扫描
- TCP ACK扫描
- TCP窗口扫描
- TCP RPC扫描
- UDP扫描
- 常见端口扫描技术
- 防范措施
- 端口扫描监测
- 网络入侵系统如Snort
- 端口扫描的预防
- 开启防火墙
- 禁用所有不必要的服务
- 类UNIX:/etc/inetd.conf文件中注释掉不必要的服务,修改系统、使用脚本,禁用此类服务
- win32:在“控制面板/服务”中关闭服务
- 端口扫描监测
- 操作系统/网络服务辨识
- 操作系统类型探测技术:TCP/IP协议栈指纹分析
- 不同的操作系统在实现TCP/IP协议栈时都存在着差异
- RFC中没有对TCP/IP协议实现给予精确的定义
- 不同的操作系统产生商,在实现TCP/IP协议栈时,也没有完全按照RFC所定义的标准来实现
- 不同的网络服务在实现应用层协议时也存在差异
- 防范措施
- 使用端口扫描检测工具,发现对操作系统的探查活动
- 部署安全的防火墙以保护目标主机
- 操作系统类型探测技术:TCP/IP协议栈指纹分析
- 漏洞扫描
- 安全漏洞:通常指硬件、软件或策略上存在的安全缺陷,利用这些安全缺陷,攻击者能够在未授权的情况下访问、控制、甚至破坏目标系统
- 目的:探测目标网络的特定操作系统、网络服务、应用程序中是否存在已公布安全漏洞
- 防范措施
- 在黑客之前扫描漏洞
- 补丁自动更新和分发,修补漏洞
- 保证所安装软件的来源安全
- 开启操作系统和应用软件的自动更新机制
5.3网路信息收集技术--网络查点
- 主机扫描:向目标系统发出特定的数据包,并分析目标系统返回的相应结果的行为
- 查点:对选择好的攻击目标,发起主动的连接和查询,针对性的收集发起实际攻击所需的具体信息内容
- 网络服务旗标抓取:利用客户端工具连接至远程网络服务并观察输出以搜集关键信息的技术手段
- 通用网络服务查点
- 通用网络服务
- 通用网络服务查点
- Windows平台网络服务查点:利用Windows平台特有的网络服务协议
- NETBIOS名字服务查询
- SMB会话查询
- 目录查询
- MSRPC查点
- 防范措施:
- 关闭不必要的服务及窗口
- 关闭打印与共享服务(SMB)
- 不要让主机名暴露使用者身份
- 关闭不必要共享,特别是可写共享
- 关闭默认共享限制IPC$默认共享的匿名空连接等
5.4Windows系统渗透基础
控制注入攻击:
- 现代计算机系统遵循冯诺依曼体系结构,没有在内存中严格区分计算机程序的数据和指令,使得程序外部的指令数据有可能被当作指令代码执行。
- 攻击者目标:劫持应用程序控制流来执行目标系统上的任意代码,最终达到远程控制目标系统的目的
- 劫持攻击技术:
- 缓冲区溢出:
- 栈溢出
- 利用方式:符改函数返回地址
- 堆溢出
- 栈溢出
- 格式化字符串漏洞
- 整数溢出
- 指针释放后再次被使用
- 缓冲区溢出:
Windows系统主要的网络服务程序:
- NetBIOS网络服务
- SMB网络服务
- MSRPC网络服务
- RDP远程桌面服务
远程渗透Windows系统的途径
- 缓冲区溢出攻击
- 认证欺骗
- 客户端软件漏洞利用
- 设备驱动漏洞利用
针对系统渗透攻击的常见防范措施
- 及时更新应用软件、操作系统、硬件设备驱动程序的安全补丁
- 禁用不必要的网络服务
- 使用防火墙来限制可能存在漏洞的服务的访问
- 强制用户使用强口令,并定期更换口令
- 审计与日治
- 使用扫描软件主动发现系统是否存在已知安全漏洞,安装入侵检测/防御系统
- 客户端应用程序尽量使用受限权限,而非管理员或同等级权限的用户登录因特网
- 运行并及时更新防病毒软件
- 禁用以受攻击的硬件设备
5.5Internet协议安全问题
终端设备、路由器以及其他因特网连接设备,都要运行一系列协议,这些协议控制因特网中信息的接受和发送,因特网的主要协议成为TCP/IP协议
网络安全五大属性(CIA)
- 机密性
- 完整性
- 可用性
- 真实性
- 不可抵赖性
网络攻击基本模式
- 被动威胁
- 截获(窃听)(破坏机密性)
- 嗅探
- 监听
- 截获(窃听)(破坏机密性)
- 主动威胁
- 篡改(破坏完整性)
- 数据包篡改
- 中断(破坏可用性)
- 拒绝服务
- 伪造(破坏真实性)
- 欺骗
- 欺骗
- 篡改(破坏完整性)
- 被动威胁
因特网协议栈层次结构
网络层基础协议:IP协议、ARP地址协议解析协议、BGP边界网关协议等动态路由协议
- IP源地址欺骗攻击:路由器只根据目标IP地址进行路由转发,不对源IP地址做验证,常被利用于发起匿名Dos攻击
传输层协议:UDP和TCP协议
基于TCP协议安全缺陷引发的TCP RST攻击(伪造TCP重置报文攻击)
TCP会话劫持攻击
应用层协议:目前流行的应用层协议如HTTP、FTP、SMTP/POP3、DNS等均缺乏合理的身份验证机制,加上大多采用铭文传输通信数据,因此普遍存在被嗅探、欺骗、中间人攻击等风险。
- DNS协议
- DNS协议
- 拒绝式服务攻击(DoS):用超出目标处理能力的海量数据包消耗可用系统资源、宽带资源等,或造成程序缓冲区溢出错误,导致其无法处理合法用户的正常请求,最终致使网络服务瘫痪,甚至系统死机。
- 弱点攻击
- 洪泛攻击
- TCP/IP网络协议栈攻击防范措施
- 网络接口层,检测和防御网络威胁,对网关路由器等关键网络节点设备进行安全防护,优化网络结构,增强链路层加密强度
- 网络层,采用多种过滤和检测技术来发现和阻断网络中欺骗攻击,增强防火墙、路由器和网关设备的安全策略,关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通讯等预防机制
- 传输层加密传输和安全控制机制,包括身份认证和访问
- 应用层加密,用户级身份认证,数字签名技术,授权和访问控制技术以及审计、入侵检测
5.6基本的web安全
- 跨站脚本攻击(XSS):攻击者利用网页开发时留下的漏洞,通过巧妙的方式注入恶意代码到网页,使用户加载网页时会运行攻击者恶意制造的代码,脚本可以是JavaScript、VBSvript、ActiveX、Flash、HTML。攻击成功后,攻击者会得到敏感信息,以获取更高用户权限,以被攻击者身份执行操作
- 反射型XSS
- 储存型XSS
- DOM-XSS
- 防范XSS攻击
- 在浏览器设置中关闭JavaScript,关闭cookie或设置为为只读,提高浏览器的安全等级设置,尽量使用非IE的安全浏览器来降低风险
- 只信任值得信任的站点或内容,不要轻易点击不明链接
- SQL注入:利用web应用程序输入验证不完善的漏洞,将一段精心构造的SQL命令注入到后台数据库引擎执行
SQL注入的危害
- 数据库中的用户隐私信息被泄露
- 对特定网页进行篡改
- 通过修改数据库一些字段的值,嵌入木马链接,进行挂马攻击
- 数据库的系统管理员账户被修改
- 服务器被黑客安装后门进行远程控制
- 破坏硬盘数据,瘫痪全系统
SQL注入的主要原因是web应用程序没有对用户输入进行严格的转义字符过滤和类型检查
- 防范:
- 使用类型安全的参数编码机制
- 对来自程序外部的用户输入,必须进行完备检查
- 将动态SQL语句替换为存储过程,预编译SQL或ADO命令对象
- 加强SQL数据库服务器的配置与连接,以最小权限配置原则配置web应用程序连接数据库的操作权限,避免将敏感数据明文存放于数据库中
- 跨站请求伪造(CSRF)
- 防范:
csrf实际上是利用了web身份验证的漏洞:基于cookies的身份验证只能保证请求发自用户的浏览器,却不能保证请求时用户自愿发出的
- 对CSRF攻击的防御
- 服务端
- 客户端
- 设备端
- 预防措施
- 不要点击未知的链接或图片
- 及时退出已登录账户
- 为计算机系统安装安全防护软件,及时更新特征库和软件升级
- 安装浏览器插件扩展防护
5.7社会工程学攻击
- 攻击形式
- 信息收集
- 心理诱导
- 身份伪造
- 施加影响
- 希望获得的信息
- 可能直接导致攻击对象的财产或身份被盗
- 能力也这些信息获取目标组织的薄弱环节
- 向攻击目标发动更有针对性的攻击
- 防范
- 了解熟悉社会工程学诈骗
- 对自己的基础信息保持足够的警惕不要通过不安全的方式透露个人、家庭、公司一些看似无关紧要的信息
- 涉及敏感信息,务必核实对方身份使用防火墙保护个人电脑,同时提高垃圾邮件过滤器的门槛!
2019寒假训练营第三次作业part1-网络空间安全概论第五章的更多相关文章
- 2019寒假训练营第三次作业part2 - 实验题
热身题 服务器正在运转着,也不知道这个技术可不可用,万一服务器被弄崩了,那损失可不小. 所以, 决定在虚拟机上试验一下,不小心弄坏了也没关系.需要在的电脑上装上虚拟机和linux系统 安装虚拟机(可参 ...
- 2019寒假训练营寒假作业(三) MOOC的网络空间安全概论笔记部分
目录 第五章 网络攻防技术 5.1:网络信息收集技术--网络踩点 信息收集的必要性及内容 网络信息收集技术 网络踩点(Footprinting) 网络踩点常用手段 5.2:网络信息收集技术 --网络扫 ...
- 2019 SDN上机第三次作业
2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 ...
- 2019北航OO第三单元作业总结
1.梳理JML语言的理论基础.应用工具链情况 JML基础理论: JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.JML是一种行为接口规格语言,基 ...
- 2019寒假训练营寒假作业(三) 对Sketch——CM-Sketch的理解(理论题部分)
目录 实验题部分 基本题 1.简述sketch: 2.Count-min Sketch: 开放题部分 理论部分 1.解释为什么 sketch 可以省空间 2.用流程图描述Count-min sketc ...
- 2019寒假训练营寒假作业(二) MOOC的网络空间安全概论笔记部分
视频课程--MOOC的网络空间安全概论笔记 第一章 网络空间安全概述 2001年,网络空间概念被首次提出: 网络空间安全框架: 1.设备层安全: 可通过截获电磁辐射获取计算机信息.通过硬件木马(恶意电 ...
- Contest1692 - 2019寒假集训第三十一场 UPC 11075 Problem D 小P的国际象棋
非常简单的单点修改+区间加+区间查询.我用的是最近刚学的区间修改版本树状数组. 直接维护即可,注意修改后的单点值已经不是a[i],或者b[i],要通过区间查询求单点.不然是错的. 区间修改版本树状数 ...
- 第三次作业-Python网络爬虫与信息提取
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 过程. 5.写一篇不少于100 ...
- BUAA OO 2019 第三单元作业总结
目录 总 JML规格化设计 理论基础 工具链 规格验证 验证代码 代码静态检查 自动生成测试样例 生成结果 错误分析 作业设计 第九次作业 架构 代码实现 第十次作业 架构 代码实现 第十一次作业 架 ...
随机推荐
- linux系统中用户
一.用户身份介绍: 1.系统管理员用户,UID(User IDentification) :0, 2.系统用户,UID为1~999,默认的程序都有独立的系统用户负责,运行,进而控制被破坏的范围, 3. ...
- Xcode9.2 添加iOS11.2以下旧版本模拟器
问题起源 由于手边项目需要适配到iOS7, 但是手边的测试机都被更新到最新版本,所以有些潜在的bug,更不发现不了.最近就是有个用户提出一个bug,而且是致命的,app直接闪退.app闪退,最常见的无 ...
- JavaScript脚本加载相关知识
<script>标签的位置 HTML4规范允许<script>可以放在<head>或<body>中. 但是,放在<head>中会导致性能问题 ...
- Redis集群进阶之路
Redis集群规范 本文档基于Redis 3.X或更高版本,讲解Redis集群算法以及设计原理.此官方文档长期更新且随着Redis新版本特性的变化变动,详细请留意官网. 官网地址:https://re ...
- 微信小程序上滑加载更多
onReachBottom: function () { var that = this var limit = that.data.limit var count = that.data.count ...
- English_phonetic symbol
Introduction 本人学习了奶爸课程---45天的搞定发音课,结合自己的英语水平,为自己撰写的一个系统的英语发音课,不只是音标,还有音标辨析.连读.音调等. 重点:英语发音时一个持续一生的东西 ...
- Linux命令集锦
梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...
- QOS-交换机拥塞管理
QOS-交换机拥塞管理 2018年7月7日 20:29 优先级映射: 根据信任的优先级,查找映射表,标记丢弃优先级和本地优先级 如果信任端口优先级,不同产品优先级标记方式可能不同,S3610处理过程如 ...
- java 优化版 用接口实现(输入两个数选择实现加减乘除运算)
//利用java接口实现计算器,实现加减乘除的功能 import java.util.Scanner; class Test { public static void main(String[] ar ...
- 利用.NET Code Contracts实现运行时验证
.NET的Contract类库是Declarative Programming实践的一部分,可以对日常编程带来很多好处: 提高代码可读性,使用者一看Require, Ensure就知道这方法接受什么输 ...