装饰工程网站模板武汉seo优化顾问
前言
前段时间学了学中间人攻击的有关知识,写篇文章记录下
原理介绍
什么是中间人攻击?
中间人攻击(Man-in-the-
MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”
什么是DNS?
百度百科:域名系统(Domain Name
System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。但即使是将32位的二进制IP地址写成4个0~255的十位数形式,也依然太长、太难记。因此,人们发明了域名(Domain
Name),域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com
,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com
,都可以访问其Web网站。
通俗来说就是访问互联网上的另一台电脑需要知道对应的IP地址,而IP地址是一串数
字,不好记,那么我们就起一个好记的名字,这就是DNS所运行的原理。
什么是DNS欺骗?
百度百科:DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。
原理:如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
那么我们如何把自己的攻击机伪造为DNS服务器,怎么样使受害机信任我们的DNS解析记录呢?这就要先借助到上一篇文章中所使用的ARP欺骗攻击的,首先使得受害机的流量全部流经攻击机,之后我们就可以根据受害机的DNS解析请求来发送响应包
本次DNS欺骗测试网络拓扑
正常情况:
经过DNS欺骗后异常情况:
实验准备
kali虚拟机、win7虚拟机、win10(192.168.0.131)、ettercap、arpspoof
开始实验
首先在受害机中输入
ipconfig/flushdns
刷新DNS缓存,防止之前的缓存对实验产生影响
首先在kali虚拟机中开启arp欺骗攻击,并打开路由转发功能(详见上篇文章)
输入
vim /etc/ettercap/etter.dns
编辑ettercap有关DNS欺骗的配置文件
并在最后输入
*.hetianlab.com 192.168.0.131
这句话的意思就是对所有hetianlab.com这个二级域名发起的dns域名请求kali都
会将其解析为192.168.0.131
接下来输入
ettercap -G
打开ettercap的UI界面,并按照下图所示的顺序操作
选择网卡
嗅探主机
从插件中开启DNS欺骗攻击
受害机实验前访问www.hetianlab.com显示
开启DNS欺骗后受害机访问www.hetianlab.com显示
这里我选择了一个在192.168.0.131上我自己使用phpstudy搭的一道ctf题目,主要是使用方便,因为现在许多大网站(例如百度)已经采用了一定的反DNS欺骗的防御措施,拿它来做实验可能会不成功,所以还是拿内网的环境玩一玩~
关于DNS欺骗的防范措施
攻击讲完了,我们来说说防御
首先,DNS攻击存在一定的局限性:
(1)攻击者不能替换缓存中已存在的记录,这也就是我们为什么要在实验开始时刷新受害机的DNS缓存的原因
(2)DNS服务器缓存时间的刷新
2、防范措施(百度百科上大致总结的)
(1)使用最新版本的DNS服务器软件,及时安装补丁
(2)关闭DNS服务器的递归功能
(3)限制区域传输范围
(4)限制动态更新
(5)采用分层的DNS体系结构
(6)保护内网设备,DNS攻击一般都是从内网中发起的,如果你的内网设备很安全,那么也就不存在被感染的风险
丁
(2)关闭DNS服务器的递归功能
(3)限制区域传输范围
(4)限制动态更新
(5)采用分层的DNS体系结构
(6)保护内网设备,DNS攻击一般都是从内网中发起的,如果你的内网设备很安全,那么也就不存在被感染的风险
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
