您的位置: 新闻资讯 > 行业动态 > 正文

《DNS欺骗攻击:网络安全的隐形威胁》(图文)


来源:mozhe 2024-12-13

一、什么是 DNS 欺骗



DNS 欺骗是一种攻击者冒充域名服务器的欺骗行为。攻击者可以冒充域名服务器,将查询的 IP 地址设为自己的 IP 地址。这样一来,用户在上网时看到的将是攻击者的主页,而非目标网站主页。
例如,当用户尝试浏览网页,比如 IP 地址为 XXX.XX.XX.XX,网址为特定网站时,实际上可能登录的是攻击者设置的 IP 地址 YYY.YY.YY.YY 上的假冒网址。DNS 欺骗并不是真正地 “黑掉” 了对方的网站,而只是冒名顶替、招摇撞骗。
从原理上看,互联网中的域名系统(DNS)协议非常重要。当用户在浏览器输入网址时,会向 DNS 服务器发送一个 DNS 请求,以便找到与该网址相对应的 IP 地址。因为与互联网互连的路由器和设备只知道 IP 地址,不知道具体的网址名称。DNS 服务器的工作原理是存储 IP 地址到 DNS 名称映射的记录数据库,联系这些资源记录与客户端,并将这些资源记录与其他 DNS 服务器联系。然而,攻击者利用 DNS 的工作机制,通过冒充域名服务器,拦截目标设备发送的 DNS 查询,然后发送包含独特识别码的假数据包,使目标计算机根据识别码接受攻击者发送的查询结果。
总的来说,DNS 欺骗就是通过这种方式,将用户引导至攻击者的主页,从而达到窃取信息等不良目的。

二、DNS 欺骗典型案例分析


(一)企业内网中的 DNS 欺骗攻击

  1. 背景:
在企业内网环境中,攻击者常常利用各种手段进行攻击,以获取企业敏感信息或进行其他恶意活动。其中,通过 ARP 欺骗技术控制网关,对员工进行钓鱼攻击或信息窃取是一种较为常见的攻击方式。
  1. 攻击步骤:
    • 扫描网络获取设备信息:攻击者首先使用扫描工具(如 Nmap)扫描企业内网中的所有设备,获取设备的 IP 地址和 MAC 地址等信息。
    • 发送虚假 ARP 响应:攻击者向网络中的所有设备发送虚假的 ARP 响应,将网关的 IP 地址映射到攻击者的 MAC 地址。这样,当员工的设备需要与网关通信时,实际上会将数据包发送到攻击者的设备。
    • 拦截并篡改 DNS 请求和响应:当员工的设备通过攻击者的设备访问 DNS 服务器时,攻击者可以拦截并篡改 DNS 请求。攻击者将特定域名的 DNS 解析结果篡改为攻击者的服务器 IP 地址。
    • 重定向 HTTP 请求:员工的设备在访问被篡改的域名时,会被重定向到攻击者的服务器。攻击者可以在此服务器上设置钓鱼网站或窃取信息。
  1. 代码示例:使用 Scapy 进行 ARP 欺骗的代码展示如下:

 
from scapy.all import *
import sys, getopt
def usage():
print"Usage: sudo./arpSpoofer.py [-i interface] <target> <host>"
def main(argv):
try:
opts, args = getopt.getopt(argv, "hi:t:")
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts:
if opt in ("-h"):
usage()
sys.exit()
elif opt in ("-i"):
conf.iface = arg
if len(args) < 2:
usage()
sys.exit(2)
send(ARP(op="who-has", psrc=args[1], pdst=args[0]), loop=1, inter=0.5)
if __name__ == "__main__":
main(sys.argv[1:])
  1. 案例分析:
在企业内网中,攻击者利用 ARP 欺骗技术,首先扫描网络获取设备信息。然后,发送虚假 ARP 响应,将网关的 IP 地址映射到自己的 MAC 地址。当员工的设备向网关发送请求时,实际上会将数据包发送到攻击者的设备。攻击者拦截并篡改 DNS 请求和响应,将特定域名的解析结果指向自己的服务器 IP 地址。这样,当员工的设备访问这些域名时,会被重定向到攻击者的服务器。攻击者可以在服务器上设置钓鱼网站,诱骗员工输入敏感信息,或者窃取员工的信息。
  1. 数据样例:
    • 正常的 ARP 表:192.168.1.1 -> 00:00:00:00:00:01(假设网关 IP 为 192.168.1.1,正常情况下的 MAC 地址),192.168.1.10 -> 00:00:00:00:00:0A(假设员工设备 IP 为 192.168.1.10,正常情况下的 MAC 地址)。
    • 被篡改的 ARP 表:192.168.1.1 -> 00:11:22:33:44:55(攻击者的 MAC 地址),192.168.1.10 -> 00:00:00:00:00:0A。
  1. 防范措施:
    • 启用动态 ARP 检测(DAD):确保网络设备在更新 ARP 表时进行验证,防止被虚假的 ARP 响应欺骗。
    • 使用静态 ARP 表:将关键设备的 ARP 条目设置为静态,防止被篡改。管理员可以手动将目标 IP 地址与合法的 MAC 地址绑定。
    • 部署 ARP 防火墙:使用网络设备或软件防火墙来检测和阻止异常的 ARP 请求和响应。

(二)公共 Wi-Fi 网络中的 HTTP 重定向攻击

  1. 背景:
在公共 Wi-Fi 网络中,安全性相对较低,攻击者容易利用各种手段进行攻击。攻击者在公共 Wi-Fi 网络中控制路由器,重定向用户 HTTP 请求以收集敏感信息。
  1. 攻击步骤:
    • 扫描网络:攻击者使用扫描工具(如 Nmap)来扫描网络中的所有设备,获取设备的 IP 地址和 MAC 地址。
    • 发送虚假 ARP 响应:攻击者向网络中的所有设备发送虚假的 ARP 响应,将路由器的 IP 地址映射到攻击者的 MAC 地址。
    • 设置恶意 HTTP 服务器:攻击者在自己的设备上设置一个恶意的 HTTP 服务器。
    • 拦截并重定向 HTTP 请求:当用户的设备通过攻击者的设备访问 HTTP 资源时,攻击者可以拦截并重定向这些请求。
    • 收集用户信息:用户的 HTTP 请求被重定向到恶意网站,攻击者可以在此网站上收集用户的敏感信息。
  1. 代码示例:使用 Scapy 进行 ARP 欺骗的代码展示如下:

 
from scapy.all import *
import sys, getopt
def usage():
print"Usage: sudo./arpSpoofer.py [-i interface] <target> <host>"
def main(argv):
try:
opts, args = getopt.getopt(argv, "hi:t:")
except getopt.GetoptError:
usage()
sys.exit(2)
for opt, arg in opts:
if opt in ("-h"):
usage()
sys.exit()
elif opt in ("-i"):
conf.iface = arg
if len(args) < 2:
usage()
sys.exit(2)
send(ARP(op="who-has", psrc=args[1], pdst=args[0]), loop=1, inter=0.5)
if __name__ == "__main__":
main(sys.argv[1:])

三、实验案例中的 DNS 欺骗


(一)dns 欺骗获取敏感信息实验

  1. 实验目标:利用 Kali 系统模拟攻击,对受害者进行 DNS 欺骗获取登录信息。
本次实验旨在通过 Kali 系统的强大功能,模拟攻击场景,以获取受害者在登录过程中的敏感信息。通过巧妙地实施 DNS 欺骗,引导受害者访问虚假的登录页面,从而拦截并获取他们输入的用户名和密码等重要信息。
  1. 实验环境:包括 Windows XP(模拟客户机)、Windows 2003(模拟公网的 dns 服务器与 web 服务器)、Kali(模拟攻击机)及相关软件和素材。
在本次实验中,我们搭建了一个模拟的网络环境。其中,Windows XP 系统被用作模拟客户机,代表着普通用户的设备。Windows 2003 则承担着双重角色,既是模拟公网的 DNS 服务器,负责域名解析工作,又是 web 服务器,用于提供虚假的登录页面。而 Kali 系统则作为模拟攻击机,负责实施 DNS 欺骗攻击。此外,我们还准备了相关的软件和素材,以确保实验的顺利进行。
  1. 实验步骤:部署 web 服务器制作假冒京东登录网页,部署 dns 服务器将域名解析到假冒站点,使用 ettercap 工具截获敏感信息。
首先,我们在 Windows 2003 系统上部署 web 服务器,制作假冒的京东登录网页。这个过程可以参考一些网络安全实验的教程,如 “#yyds 干货盘点# web 安全 day19:DNS 欺骗、ARP 攻机及钓鱼网站制作” 中提到的方法。通过在 Windows 2003 上部署 IIS 服务,将制作好的假冒京东登录网页放置在相应的目录下,使得客户机在访问特定域名时能够被重定向到这个虚假的登录页面。
接着,我们在 Windows 2003 上部署 DNS 服务器,将域名解析到假冒站点。具体操作可以参考 “#yyds 干货盘点# web 安全 day5:DNS 部署与安全” 中的方法。通过配置 DNS 服务器,将特定的域名(如 www.jd.com)解析到 Windows 2003 系统的 IP 地址上,这样当客户机发送 DNS 请求时,就会被引导到我们制作的假冒京东站点。
最后,我们使用 ettercap 工具截获敏感信息。ettercap 是一款强大的网络嗅探工具,在 Kali 系统中自带。我们可以按照以下步骤进行操作:
  • 打开 ettercap 工具,可以在终端中输入 “ettercap -G” 命令。首先点击右上角的对勾,然后点击左上角的放大镜图标,探查网络中的主机。
  • 将探查到的主机列出来后,将 Windows XP(模拟客户机)的网关添加到目标 1,将模拟客户机添加到目标 2。
  • 执行 ARP 欺骗,使得客户机的数据包经过攻击机(Kali)。可以在 “MITM” 菜单中选择 “ARP poisoning...” 进行配置。
  • 开启 DNS 欺骗功能。在 “Ettercap Menu” 中选择 “plugins”,然后选择 “Manage plugins”,双击 “dns_spoof” 启用 DNS 欺骗。
当客户机在虚假的京东登录页面上输入用户名和密码时,ettercap 工具就能够截获这些敏感信息。通过分析这些信息,攻击者可以获取用户的登录凭证,从而可能造成严重的安全隐患。

四、DNS 欺骗的原理与过程


  1. 域名解析过程:域名解析是把域名指向网站空间 IP 的服务,由 DNS 服务器完成。当用户访问域名时,首先会查询本地缓存或 HOST 文件,如果没有找到对应的记录,则会向公网 DNS 服务器发起查询。这个过程就像是在一个巨大的地址簿中查找特定的网址对应的 IP 地址。例如,当用户在浏览器中输入一个网址,如 www.example.com,浏览器会先在本地的缓存中查找是否有该网址的 IP 地址记录。如果没有找到,就会检查本地的 HOST 文件,看是否有手动设置的对应关系。如果还是没有找到,浏览器就会向公网的 DNS 服务器发送一个查询请求,询问 www.example.com 的 IP 地址是多少。DNS 服务器接收到请求后,会在自己的数据库中查找对应的记录,并将 IP 地址返回给用户的浏览器。浏览器再使用这个 IP 地址与对应的服务器建立连接,从而访问到用户想要的网站。
  1. DNS 欺骗真实过程:首先,攻击者会控制一台已经被入侵的主机。攻击者可以通过各种手段,如利用系统漏洞、社会工程学等方法,获取对目标主机的控制权。然后,攻击者通过嗅探技术,获取目标主机发送的 DNS 查询请求中的标识 ID。这个标识 ID 是用来区分不同的查询请求和响应的重要标志。接着,攻击者会发送伪造的查询包和应答包。在伪造的查询包中,攻击者会使用之前获取的标识 ID,使目标主机误以为这是合法的响应。在伪造的应答包中,攻击者会将目标域名解析为自己控制的 IP 地址。这样,当目标主机收到伪造的应答包时,就会认为这是合法的 DNS 解析结果,并将其存储在本地缓存中。下次当目标主机再次访问相同的域名时,就会直接使用被篡改的 IP 地址,从而被引导到攻击者控制的服务器上。完成 DNS 欺骗后,攻击者可以根据自己的目的进行各种恶意活动,如窃取用户信息、进行钓鱼攻击等。

五、防范 DNS 欺骗的方法



防范 DNS 欺骗可以采取多种方法,以下是一些常见的防范措施:
用 DNS 转换得到的 IP 地址或域名再次作反向转换开展验证:用户可以通过一些软件实现这一操作,对 DNS 解析结果进行二次验证。例如,当通过 DNS 查询得到一个域名对应的 IP 地址后,可以使用验证工具对该 IP 地址进行反向查询,看是否能得到正确的域名。如果反向查询的结果与初始域名不一致,那么就可能存在 DNS 欺骗的风险。
使用公共 DNS:公共 DNS 解析器是防范 DNS 欺骗的有效手段之一。设置非常简单,几乎任何用户都可以配置自己的设备来使用。只需要更改系统中输入的 DNS 服务器地址即可。常见的公共 DNS 有 114DNS 的 114.114.114.114,纯净无劫持;Google 的 8.8.8.8、Quad9 的 9.9.9.9,均支持 DNSSEC。大型的公共 DNS 通常会使用先进的安全技术,如 DNSSEC(DNS 安全扩展)、DoH(DNS over HTTPS)和 DoT(DNS over TLS),可以有效减少危险的中间人攻击。
直接用 IP 访问重要服务:用户可以直接用 IP 访问比较重要的服务,这样就能避开 DNS 欺骗攻击。不过,IP 地址比较长,需要记住自己需要访问的 IP 地址。
此外,还有其他一些防范措施:
选择靠谱 DNS 软件:使用相对靠谱的 DNS 软件,这种软件可以控制访问的 DNS 信息,域名解析也只会对合法请求做出反应。内部请求不会因为区域信息而受到限制,外部请求也只能访问公开信息。
启用动态 ARP 检测(DAD):在企业内网环境中,启用动态 ARP 检测可以确保网络设备在更新 ARP 表时进行验证,防止被虚假的 ARP 响应欺骗。
使用静态 ARP 表:将关键设备的 ARP 条目设置为静态,防止被篡改。管理员可以手动将目标 IP 地址与合法的 MAC 地址绑定。
部署 ARP 防火墙:使用网络设备或软件防火墙来检测和阻止异常的 ARP 请求和响应。
使用加密来防止 DNS 欺骗:保护数据免受第三方未经授权的访问,保证通信方的真实性。对于基本安全级别,应使用通用传输加密方法保护尽可能多的连接。最好使用 HTTPS 在浏览器中访问网站。如果连接受到传输加密的保护,至少应该能够检测到 DNS 欺骗攻击。
加密 DNS 流量:虽然传输加密可以保护数据传输,但与 DNS 服务器的连接仍然容易受到攻击,被认为是最薄弱的环节。用户端有专门的 DNS 请求加密解决方案,同时 DNS 服务器也必须支持相应的安全技术,DNS 加密才能正常工作。
使用虚拟专用网络(VPN):使用 VPN 时,所有连接都通过加密隧道路由,有助于防止 DNS 欺骗。但要记住,DNS 服务器的 IP 地址仍然可以存储在大多数 VPN 程序中。如果这是一个恶意地址,VPN 对 DNS 欺骗的保护将失效。
 

墨者安全 防护盾

墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。

热门文章

X

7x24 小时

免费技术支持

15625276999


-->