标签 dig 下的文章

本文由码云笔记为大家介绍整理两个查询 DNS(域名系统)信息的命令行工具。在 Linux 系统中,这两个工具都非常有用,能够帮助咱们获取域名的解析记录、诊断网络问题等。下面咱们对这两个命令详细介绍下,希望对大家有用。

什么是 DNS?

DNS(英文名:Domain Name System,域名系统)是互联网的一个核心组成部分,用于将人类易于记忆的域名(如 www.mybj123.com)转换为计算机能够理解的 IP 地址。DNS 的主要功能是提供域名与 IP 地址之间的映射关系,从而使用户能够通过输入域名访问网站,而不必记住复杂的数字地址。

dig 命令

dig(Domain Information Groper)是一个强大的命令行工具,用于查询 DNS 相关的信息。它提供了丰富的功能和选项,可以执行各种 DNS 查询操作。

这个命令在大多数 Linux 发行版中,dig 命令已经提前预安装了。如果有小伙伴的系统中没有安装 dig,可以使用以下命令安装它:

在 Debian 或 Ubuntu 系统上使用 apt-get 命令:
sudo apt-get install dnsutils
在 CentOS 或 RHEL 系统上使用 yum 命令:
sudo yum install bind-utils
dig(Domain Information Groper)是一个强大的 DNS 查询工具,常用于域名解析和网络故障排除。以下是 dig 命令的详细用法,包括基本语法、常用选项和示例。

1. 基本语法

dig [@server] [name] [type] [options]

  • @server:可选,指定要查询的 DNS 服务器。如果不指定,将使用系统默认的 DNS 服务器。
  • name:要查询的域名。
  • type:可选,指定记录类型,如 A、AAAA、MX、CNAME 等。默认是 A 记录。
  • options:可选,其他参数和选项。

    2. 常用记录类型

  • A:IPv4 地址记录
  • AAAA:IPv6 地址记录
  • CNAME:别名记录
  • MX:邮件交换记录
  • NS:名称服务器记录
  • TXT:文本记录
  • PTR:反向解析记录
  • SOA:授权区域记录

    3. 常用选项

    +short:以简洁的格式输出结果,只显示答案部分。
    dig +short www.mybj123.com
    +trace:追踪 DNS 查询过程,显示从根服务器到最终结果的每一步查询。
    dig +trace www.mybj123.com
    +noall:关闭所有输出(包括 ANSWER、AUTHORITY、ADDITIONAL),可以与其他选项结合使用。
    dig www.mybj123.com +noall +answer
    +dnssec:查询 DNSSEC(DNS Security Extensions)信息。
    dig www.mybj123.com +dnssec
    +time=seconds:设置查询超时的时间,单位为秒。例如:
    dig www.mybj123.com +time=5
    +tries=n:设置重试次数。例如:
    dig www.mybj123.com +tries=2

    4. 使用示例

    4.1 查询 A 记录

    dig www.mybj123.com

    4.2 查询 MX 记录

    dig MX www.mybj123.com

    4.3 查询多个记录

    可以一次查询多个记录类型,通过空格分隔:

dig www.mybj123.com A MX

4.4 指定 DNS 服务器

使用指定的 DNS 服务器进行查询,例如 mybj123 的公共 DNS 服务器:

dig @8.8.8.8 www.mybj123.com

4.5 反向查找

查询 IP 地址对应的域名(反向 DNS 查找):

dig -x 93.184.216.34

4.6 显示详细输出

不使用+short选项,将显示更详细的查询信息,包括查询时间、服务器信息等:

dig www.mybj123.com

4.7 显示简洁输出

仅显示结果,不包含额外的信息:

dig +short www.mybj123.com

4.8 使用 +trace 追踪 DNS 查询

追踪域名解析的完整路径,从根服务器开始:

dig +trace www.mybj123.com

4.9 查找 NS 记录

查询域名的名称服务器:

dig NS www.mybj123.com

5. 输出解析

dig 的输出通常包括以下几个部分:

  • QUESTION SECTION:查询的内容。
  • ANSWER SECTION:域名解析的结果。
  • AUTHORITY SECTION:提供该域名所需信息的权威 DNS 服务器。
  • ADDITIONAL SECTION:附加信息,包括其他相关记录。
  • Query time:查询花费的时间。
  • SERVER:使用的 DNS 服务器。
  • WHEN:查询的时间。
  • MSG SIZE rcvd:接收到的消息大小。

    nslookup 命令

    1. 基本语法

    nslookup [options] [domain] [servername]

  • domain:要查询的域名,例如 www.mybj123.com。
  • servername:可选,指定要使用的 DNS 服务器。如果不指定,将使用系统配置的默认 DNS 服务器。
  • options:可选,其他命令行参数。

    2. 基本用法

    2.1 查询域名的 A 记录

    这是最常见的用法:

nslookup www.mybj123.com
输出将显示与该域名相关的 IP 地址。

2.2 查询特定类型的记录

可以通过-type或-query选项来指定所需的记录类型。例如,查询 MX(邮件交换)记录:

nslookup -type=MX www.mybj123.com
或者: data-lang=”nginx”>nslookup -query=MX www.mybj123.com

常见的记录类型包括:

  • – A:IPv4 地址记录;
  • – AAAA:IPv6 地址记录;
  • – CNAME:别名记录;
  • – MX:邮件交换记录;
  • – NS:名称服务器记录;
  • – TXT:文本记录。

    2.3 指定 DNS 服务器

    您可以在命令中指定 DNS 服务器,以便使用不同的 DNS 解析器进行查询。例如,使用 mybj123 的公共 DNS 服务器:

nslookup www.mybj123.com 8.8.8.8

3. 交互模式

nslookup 还支持交互模式,可以在命令行中输入 nslookup 直接进入该模式,然后可以多次查询。

nslookup
在交互模式中,您可以输入以下命令:

查询某个域名:
> www.mybj123.com
指定查找的记录类型:
> set type=MX> www.mybj123.com
查询其他 DNS 服务器:
> server 8.8.8.8> www.mybj123.com
退出交互模式:
> exit

4. 常用选项

  • -type=TYPE 或 -query=TYPE:指定查询的记录类型。
  • -debug:显示调试信息,包括发送的请求和接收的响应。
  • -timeout=SECONDS:设置超时,单位为秒,指定等待响应的最长时间。
  • -port=PORT:指定使用的端口(默认是 53)。
  • -recurse:请求递归查询。

    5. 示例

    5.1 查询 A 记录

    nslookup www.mybj123.com

    5.2 查询 MX 记录

    nslookup -type=MX www.mybj123.com

    5.3 查询 NS 记录

    nslookup -type=NS www.mybj123.com

    5.4 反向查找

    可以查询 IP 地址对应的域名:

nslookup 93.184.216.34

5.5 使用不同的 DNS 服务器

nslookup www.mybj123.com 1.1.1.1

6. 输出解析

nslookup 的输出通常包括以下几个部分:

  • Server:使用的 DNS 服务器的地址。
  • Address:DNS 服务器的 IP 地址。
  • Non-authoritative answer:非权威答案,表示该答案可能不是来自域名的授权 DNS 服务器。
  • Name:查询的域名。
  • Address:返回的 IP 地址或其他记录(如 MX 记录)。
  • Query time:查询花费的时间(毫秒)。
  • https://mybj123.com/28970.html
  • WHEN:查询的时间。
    小编详细介绍了 Linux 上的 dig 和 nslookup 命令,这两个命令都是用于查询 DNS 相关信息的工具。dig 是一个功能强大的命令,提供了丰富的选项和功能,可以执行各种 DNS 查询操作。nslookup 则是一个基本的命令,提供了一些简单的查询选项。

声明

本文章所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
此文章不允许未经授权转发至除 火线Zone 社区 以外的其它平台!!!

0x1 RTSP奇特之旅前言

浅谈

哈咯,师傅们,好久不见!

已经很久没有写文章了,这次简单写一个蛮有意思的案例,也是在最近攻防演练中遇到的。

其实在最初开始晚没有特别的去想着去利用这个漏洞——RTSP协议漏洞,因为之前有看过文章简单了解过,主要就是打弱口令和未授权访问漏洞,然后一般就是比较敷衍的使用爆破工具爆破下,有无弱口令,或者使用字典目录遍历下。

像下面的我就喜欢使用无影tools的爆破模块

把目标导入即可,然后选择RTSP的554端口进行爆破,字典可以选择内置的字典

其次一般像RTSP的弱口令和未授权在我以前感觉用处不是很大,且平常挖src漏洞之类的,也不怎么碰的到。但是这次攻防演练嘛,有些东西在平常可能没多大的利用的价值,但是打攻防说不定就是可以打分打权限的那种,下面就来介绍下这个RTSP漏洞。

其中主要还是在网上看了很多的打法和文章资料,在网上尝试了蛮多的工具,发现一款GitHub上面的新利用RTSP漏洞一键利用的工具,然后结合这次资产刚好有,就利用起来了。

然后这次我开始也是简单的爆破下,因为这次是攻防演练嘛,然后是某单位的资产,且有好多下级部门的厂商视频监控管理系统,所以对应的监控大都是RTSP协议的,集群远程管理。

且这次的攻防演练目标资产比较多,范围比较广,只要是属于该市的资产都可以,还有一些企业的都可以,像很多的监控系统都带有远程管理操作,所以有部分都是RTSP协议的,且这个漏洞在平常接触比较少,就比如我平常挖src对这个漏洞基本上没有太多的操作。

下面是我简单收集的一些资产表格如下:

0x2 众测捡钱小技巧(拓展)

一、浅谈

上面既然介绍到了我们平常挖企业src中一些不怎么会收的漏洞,比如我这里要讲的RTSP漏洞,这个漏洞的话主要是在攻防演练中,我们可以对目标资料中的一些监控管理系统进行拿监控管理权限的分,因为在攻防演练中主要是通过拿数据分和权限分,特别是你打进内网,像这样的监控系统肯定很多,这样就可以帮助你拿比较多的权限分。

这里给师傅们看下某些评分标准:

下面我来给师傅们讲下众测中,我一般第一先测试的漏洞——SPF邮件伪造漏洞。

具体的测试方法,我下面有很详细的测试手法,其实网上也有很多的批量跑SPF邮件伪造漏洞的脚本,其中我自己也是利用这些脚本去测试的,因为在众测中,得拼手速了,具体的脚本我这里就不放上去了,因为脚本内容因人而异,最好自己修改下。

其实在攻防演练中也是可以利用SPF邮件伪造漏洞的,可以使用SPF邮件伪造去钓鱼,收集目标资产的邮箱,然后去钓鱼攻击,也是一种方法,在护网期间,钓鱼攻击是特别常态且使用特别多的一种方式。

二、SPF邮件伪造漏洞

针对师傅们对于SPF邮件伪造漏洞的拓展,师傅们可以看我之前写的那篇原创文章:https://xz.aliyun.com/news/14752

这里就引用这篇文章的SPF邮件伪造漏洞,写的蛮详细的,师傅们可以参考学习下,然后后面在众测项目上去赚点漏洞赏金。

1、spf邮件伪造漏洞简介:

SPF 记录是一种域名服务(DNS)记录,用于标识哪些邮件服务器可以代表您的域名发送电子邮件

SPF 记录的目的是为了防止垃圾邮件发送者在您的域名上,使用伪造的发件人地址发送邮件。

原理:未设置spf导致的邮件任意伪造,可以用来钓鱼社工,本身就是高危

若您未对您的域名添加 SPF 解析记录,则黑客可以仿冒以该域名为后缀的邮箱,来发送垃圾邮件。

2、漏洞危害:

可以用未进行安全配置的网站域名,发送邮件。

比如:www.baidu.com有这个漏洞,你就可以伪造HR@baidu.com给受害人发邮件进行钓鱼。

src收的少,但是重测和渗透测试项目可以交。

  • 注意:如果没有v=spf1或者没spf就存在邮件伪造漏洞。
  • -all 不能伪造,all可以伪造

3、测试漏洞

我们直接拿baidu.com的域名来给大家演示下,用kali的nslookup 工具测试下

可以看到下面的回显,存在spf记录,是-all参数,说明不能任意伪造。

┌──(root-kali)-[~]
└─# nslookup -type=txt baidu.com

还可以使用dig -t命令来测试

┌──(root-kali)-[~]
└─# dig -t txt baidu.com

4、SPF解析不当导致绕过

把下面的spf配置记录复制下来

测试地址如下:

https://www.kitterman.com/spf/validate.html

这里显示spf解析配置正确

下面拿一个存在spf解析错误的案例来演示下:

SPF记录报错,在这条SPF记录中,存在多个IP段,但只有开头的一段ip用了ipv4,这就导致了语法错误。因为这个错误,将导致整个SPF记录完全失效,因为SPF无效,邮件接收方的SPF检测功能也就失效了。

5、swaks 测试

使用kali自带工具swaks 测试

swaks --body "helloword" --header "Subject:testT" -t 自己的邮箱 -f test@baidu.com
body为内容
Subject为标题
-t为目标邮箱
-f为伪造的发送方,这里我们伪造加了cn字眼,这里伪造改不明显字眼等都会进垃圾箱

我们先申请一个临时邮箱:

http://24mail.chacuo.net/

然后我们使用kali自带的swaks 工具进行测试,结果如下

┌──(root-kali)-[~]
└─# swaks --body "【2024年8月1日】 检测到您教务系统长时间未修改密码,请及时修改密码确保账户安全 手机管家@163.com
【该邮件自动监测请勿回复】" --header "Subject:vivo" -t vioxzs43016@chacuo.net -f customers@alexz.com


看到这里,我们要是对标题和内容进行改进,那么我们是不是就可以尝试钓一波鱼了呢?

0x3 RTSP协议漏洞介绍

一、协议分析

  • RTSP(实时流协议)是一个网络控制协议,设计用于娱乐和通信系统中控制流媒体服务器。该协议用于建立和控制媒体会话中的时间同步流。RTSP 提供了一个可扩展框架,使得能够实现对实时数据,如音频和视频的控制。与HTTP不同,RTSP提供了对流数据的实时控制功能,比如可以随意快进或倒退。

  • RTSP 主要用于以下场景:

    1、视频监控系统,会议视频

    2、IP摄像头监控(企业、大街、工厂的监控头)

    3、媒体播放器与媒体服务器之间的交互

    4、智能家居设备,比如:门铃、智能汽车行车仪等

  • RTSP 协议通常运行在 TCP 或 UDP 协议之上,使用的端口是554,不同厂商可能是8554端口。它允许客户端发送播放、暂停和停止等控制指令,以及进行实时播放位置的调整。

二、RTSP认证方式

1、Basic认证(基本认证)

基本认证是HTTP 1.0 提出的认证方案,其消息传输不经过加密转换因此存在严重的安全隐患。

服务端在未认证时返回401Unauthorized,并带上WWW-Authenticate: Basic realm="RTSP Server"头,要求客户端提供凭据。

1) 客户端发送 DESCRIBE 请求

DESCRIBE rtsp://192.168.1.55:554/11 RTSP/1.0\\r\\n CSeq: 1\\r\\n 
Accept: application/sdp\\r\\n 
User-agent: Realplayer\\r\\n\\r\\n

2)服务端发出 WWW-Authenticate 认证响应

服务端返回401错误码,发出 WWW-Authenticate 认证响应告诉客户端需要进行认证。

RTSP/1.0 401 Unauthorized\r\n 
CSeq: 1\r\n WWW-Authenticate: Basic realm="RTSPD"\r\n\r\n

3)客户端再次发出 DESCRIBE 请求

此时客户端程序弹出密码认证窗口 ,提示输入用户名,密码等认证信息,并根据服务端返回的响应消息中进处理,如果发现是 Basic认证则携带认证信息发送如下报文:

DESCRIBE rtsp://192.168.1.55:554/live/1/video.sdp?token=A00453FR805a54C8 RTSP/1.0\r\n CSeq: 2\r\n 
Accept: application/sdp\r\n 
User-Agent: RealMedia Player HelixDNAClient/12.0.1.647 (win32)\r\n Authorization: Basic YWRtaW46YWRtaW4=\r\n\r\

其中 “YWRtaW46YWRtaW4=” 是通过 username:password 进行 base64 编码所得。因为其具有唯一性等价于账号和密码,明文发送泄漏后存在安全风险。

2、Digest认证(摘要认证)

摘要认证是http 1.1提出的基本认证的替代方案,其消息经过MD5哈希转换因此具有更高的安全性。

避免了直接明文传输密码的风险。但是 MD5 哈希较弱,仍然可以通过 彩虹表等方式破解。

三、RTSP认证流量监测

首先,这里你去了解RTSP认证流量,得先安装两款工具,工具是使用Wireshark和VLC视频播放工具。

1、Wireshark下载地址

https://www.wireshark.org/download.html

2、VLC视频播放工具

https://www.videolan.org/vlc/index.zh_CN.html

因为我的电脑上macbook,所以打开VLC和使用如下操作(windows的操作也是差不多的)

1、默认下载下来是英文的,直接可以设置中文的

选择Language,然后选择简体中文,重启软件就好了

2、打开 VLC 主界面,选择File > OpenNetwork(中文版为媒体 > 打开网络串流

3、在弹出的对话框输入直播流播放地址,然后点击打开即可查看监控视频画面了

3、认证流量监测

使用Wireshark和VLC视频播放工具

获取rtsp协议认证方式,可以发送options和describe请求进行,如下图所示,获取到认证方式为401 Basic和Digest, 如果返回的状态码为200,说明存在未授权访问。

0x4 RTSP漏洞攻击

一、主流摄像头安全问题汇总

1、警卫视摄像头

型号:qs-qy
连接密码:密码默认为空

rtsp连接地址:

rtsp://admin@IP:554/live/ch00_1

2、乐橙摄像头

型号:LC-S2D
rtsp密码:摄像头底部安全码    
rtsp连接地址:
rtsp://admin:L2C3F848@IP:554/cam/realmonitor?channel=1&subtype=0

3、tp-link摄像头

设备型号:TL-IPC44AW
rtsp密码:默认为空
rtsp连接地址:
rtsp://admin@IP:554/stream1   

4、萤石摄像头

设备型号:CS-C6
rtsp密码:摄像头底部安全码
rtsp连接地址:
rtsp://admin:RMETAA@IP:554/h264/ch1/main/av_stream

5、乔安智联摄像头

设备型号:JA-C10E
rtsp密码:空密码
rtsp连接地址:
rtsp://admin@IP:554/live/ch00_1

6、帝防摄像头

设备型号:JA-C10E
rtsp连接地址:
rtsp://admin:admin11@IP:554/onvif1   

7、Cubetoou摄像头

设备型号:Q88
rtsp连接地址:
rtsp://admin:123a123a@IP:554/onvif1

8、 icam365摄像头

设备型号:GI-2304
rtsp连接地址:
rtsp://admin:admin@IP/live.sdp

思路:
①指纹识别    
发送rtsp请求,根据server头找到设备型号为TAS-Tech

②查找设备rtsp地址和密码
在ispyconnect (https://www.ispyconnect.com/camera/tas-tech),上找到rtsp地址和密码。
连接地址为:rtsp://admin:admin@IP/live.sdp

二、RTSP爆破

  • RTSP协议认证主要有Basic和Digest两种
  • 它的RTSP URL通常是这样的 rtsp://admin:admin@192.168.1.56:554/live/sys01

对于爆破用户名、密码和流路径的方法网上也是有很多的python脚本,都可以尝试使用,但是我自己使用了好几个,都感觉差点意思,首先对于打攻防演练中,批量去测试,且需要对测试出来的IP地址进行归类,然后显示和判断出有价值的信息的,且导出页面可视化效果不好,其次好多针对呀RTSP这个漏洞目前汇总的字典不够全,爆破起来不是那么那啥,得自己汇总针对性的字典。

三、RTSP协议爆破工具

我最开始就是使用无影tools和hydra九头蛇进行尝试爆破。

特别是对于新手师傅们,可能更喜欢在网上找些github项目的图形化GUI的项目试试,我这里也是找到了一个工具,蛮不错的,图形化操作,内置字典都还不错

GitHub地址:

https://github.com/returnwrong/RTSP-Cracker-Pro

师傅们要是觉得这个工具还不错,看完我的文章以后可以挖到这类漏洞了,可以给作者点个star关注

这里直接下载这个zip文件即可,里面主要是一个python的可执行文件,是个GUI图形化的工具

但是这里我的MacBook电脑自带的Python 3.9.6运行这个下载的python执行文件,里面的功能显示不全(有点疑惑)

 ~/Downloads/rtsp_crackV1.0.3 > python --version
Python 3.9.6

后面在Cursor上面进行代码修改,提示应该是在 Mac 上运行时出现图形化界面显示异常,可能是由于不同操作系统的字体、颜色渲染或布局方式有所差异导致的,这里直接改改代码即可

工具打开以后是这样的,图形化界面,看着就很简单

四、攻防演练RTSP实战

这里最开始是通过查看评分手册来看到一些摄像头权限分也是可以拿的,且当时在资产收集过程中,看到了蛮多的视频监控管理系统等等,于是我上网找了蛮多的资料和工具进行测试漏洞。

这里直接把IP导入到ip.txt文件中

这里的字典可以使用工具自带的,但是我这里建议师傅们要是能过自己再去多收集一些,然后与这个工具的字典汇总,再去重,爆破效果可能要好点

然后点击破解,就可以看到具体的一个破解速度和进程了,图形化的好处就是可以很直观的看,爆破的日志也很清晰,特别是对于攻防中目标资产特别多,我们可以调整下线程大小

还有就是Digest认证和Basic认证两种都跑一下,这样爆破成功的概率更大

爆破成功后,可以直接点击查看结果的功能,里面的爆破成功目标资产很详细的列举出来了,但是我感觉爆破最主要还是得靠字典,这个工具自带的字典还行,但是也不是特别全,需要自己去网上收集

然后把显示爆破成功的RTSP URLs复制过来到VLC视频工具,然后连接就可以直接看到监控内容了

五、手把手带你挖RTSP漏洞

像师傅们看完我上面的文章了是吧,手肯定也痒痒了,也想去测试下这个漏洞,获取下监控视频的权限。这里提醒下,别使用国内的,可以去试试国外的。具体的空间搜索引擎语法如下:

FOFA语法

port="554" && protocol="rtsp" && category="视频监控"

FOFA语句二:

(port="554") && (is_honeypot=false && is_fraud=false) && protocol="rtsp"


可以看到数量比较多,测试的时候可以把线程调大点,爆破的时间就稍微短点

shodan搜索网络摄像头语法:

shodan搜索起来更加好点,特别是这里建议大家试试国外的站点,建议可以使用shodan去测试

port:554 has_screenshot:true

然后打开VLC media player,配置流地址,然后就可以直接有监控权限了,可以直接看画面了

0x5 总结

到这里,这篇文章就已经结束了,该聊的和该注意的地方都给师傅们前面已经提过了,结尾呢主要是还是得提醒下师傅们不要未授权测试,且干渗透测试得低调点。

然后上面已经非常详细点给师傅们分享了RTSP漏洞的案例,看完这篇文章,我想小白新手师傅都可以去挖这个漏洞了,使用的工具和手法都给师傅们分享了,且都写的非常的详细。

因为我电脑是MacBook的原因,所以一些软件使用上面还是有差异,师傅们可以自行上网搜索,Google浏览器还是很好用的,多搜搜,最好希望师傅们测试这个漏洞的时候测下国外的,不要未授权测试国内的!!!

文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担。