好友
阅读权限10
听众
最后登录1970-1-1
|
下面的都是我一个思路,到底行不行我没有实现。要做的需要自己去实现。但是应该没有问题。
这两天显得无聊打算调试一下windows的DNS cache处理逻辑。调试过程中想如果我要劫持DNS应该怎么做呢。
1. 首先我想到的是DNS有个缓存数据库,如果找到这个数据库,并且插入数据是不是就可以做到了呢。但是我调试很久,没有找到这个数据库在哪里。如果有大佬懂,可以给点提示。
2.因为1走不通,我就想逮着hosts文件来搞事。下面就是分析过程。
Host文件处理先找到处理hosts文件堆栈
对应函数 HostsFile_Query其中HostsFile_open打开文件host文件,并且一次读入一行的处理数据。hostsFile_ScreenName比较特别,他会去解析一部分微软内置的域名。这部分域名会跳过host设置。换句话说,如果想要用host达到劫持部分微软域名是不行的。也就不能用host来实现禁止windows更新。
Win10会跳过host文件的域名
上面如果都满足了。则直接使用host配置的域名IP,然后返回。否则准备执行查询. 到这里我就思考可以得出一个劫持DNS的方法。只要HOOK掉上面的HostsFile_Query 里面的CreateFile, 修改文件路径。 让他去读我们构造的假文件,这样就可以实现不修改hosts文件,直接做到DNS劫持。 再或者修改其拼接路径的字符串,指向我们精心构造文件路径。
具体实现就没有去写。后面有空完善试试。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|