首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取证-追踪主机上的DNS查询来源?

取证-追踪主机上的DNS查询来源?
EN

Security用户
提问于 2015-05-09 11:59:52
回答 1查看 2.9K关注 0票数 4

所以我试着在网上搜索答案,但没有找到答案。

是否有任何方法可以追溯哪个exe文件或应用程序导致计算机进行特定的DNS查询?

EN

回答 1

Security用户

发布于 2015-05-13 02:49:32

任何应用程序都可以很容易地提交任何DNS解析请求。有许多可用的库,程序员可以选择以任何他们想要的方式执行解决方案。例如,在Python中,它是一行代码(可能是两行)。

代码语言:javascript
复制
import dns.resolver
answers = dns.resolver.query('dnspython.org', 'MX')

要将实际的应用程序链接到UDP (假设它使用的是默认的UDP协议),它用来发送请求的“会话”是一项相当艰巨的任务。对于不同的操作系统(例如HomeProject或Microsoft ),有一些工具可以帮助实现这一目标。

请记住,解析过程大约需要几毫秒(DNS是在最快的协议之间竞争)。解析域名以获得它解析到的IP地址的过程是从stub resolver (需要对应域名的IP地址的“应用程序”)委托给Recursive DNS Server (又名RDNS)的。这类服务器的一个例子是谷歌在8.8.8.88.8.4.4的公共域名系统。您的ISP很可能会向您的家庭调制解调器/路由器提供它操作的RDNS服务器的IP地址,后者会将它们发送到连接到它的设备上(例如通过DHCP )。

除其他外,RDNS服务器将在其内部cache内存中存储一个与IP地址对匹配的域名,时间为一定时间(TTL,time )。这意味着,如果您在该时间范围内执行解析请求,RDNS服务器将不会关闭递归分解过程,而是使用它在内存中已经具有的匹配IP地址进行应答。因此,stub resolver将得到非常快的响应。例如,这是执行解决方案所需的时间:

第一次

代码语言:javascript
复制
;; Query time: 248 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)

第二次

代码语言:javascript
复制
;; Query time: 40 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)

您要做的是监视哪个应用程序在您的系统上打开一个UDP套接字并监听该套接字的响应,时间少于3秒(DNS的默认超时值)。如果您没有连续地监视流量和进程侦听特定端口,那么据我所知,没有办法得到匹配。对于将来的使用,您将能够通过查看所使用的端口来匹配进程和相应的DNS解析请求。例如,如果application 1打开端口7788,同时在网络流量中看到source port等于7788 (目的地很可能是53),那么您就有了应用程序!

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/88873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档