吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1037|回复: 6
收起左侧

[调试逆向] 通过HOOK CreateFile达到劫持DNS(只有思路,没有实现)

  [复制链接]
DQQQQQ 发表于 2025-5-23 10:58
下面的都是我一个思路,到底行不行我没有实现。要做的需要自己去实现。但是应该没有问题。

这两天显得无聊打算调试一下windows的DNS cache处理逻辑。调试过程中想如果我要劫持DNS应该怎么做呢。

1. 首先我想到的是DNS有个缓存数据库,如果找到这个数据库,并且插入数据是不是就可以做到了呢。但是我调试很久,没有找到这个数据库在哪里。如果有大佬懂,可以给点提示。

2.因为1走不通,我就想逮着hosts文件来搞事。下面就是分析过程。

Host文件处理先找到处理hosts文件堆栈 图片1.png


对应函数  HostsFile_Query其中HostsFile_open打开文件host文件,并且一次读入一行的处理数据。hostsFile_ScreenName比较特别,他会去解析一部分微软内置的域名。这部分域名会跳过host设置。换句话说,如果想要用host达到劫持部分微软域名是不行的。也就不能用host来实现禁止windows更新。
图片2.png
Win10会跳过host文件的域名
图片3.png
上面如果都满足了。则直接使用host配置的域名IP,然后返回。否则准备执行查询. 到这里我就思考可以得出一个劫持DNS的方法。只要HOOK掉上面的HostsFile_Query 里面的CreateFile, 修改文件路径。 让他去读我们构造的假文件,这样就可以实现不修改hosts文件,直接做到DNS劫持。  再或者修改其拼接路径的字符串,指向我们精心构造文件路径。

具体实现就没有去写。后面有空完善试试。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
nwl909690050 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2025-5-23 14:53
一堆同名的svchost 你是怎么精准找到哪个进程读取了hosts文件
 楼主| DQQQQQ 发表于 2025-5-23 14:54
bester 发表于 2025-5-23 14:53
一堆同名的svchost 你是怎么精准找到哪个进程读取了hosts文件

任务管理器,找到服务。  然后找到dns cache. 后面就有PID了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
bester + 1 + 1 我很赞同!

查看全部评分

loquat 发表于 2025-5-23 16:51
neommc 发表于 2025-5-23 18:05
不用这么麻烦, 用官方的Windows Filtering Platform (WFP) 或者第三方的Windows Packet Filter就能做
在研究dns 防火墙时候研究过这个话题
romobin 发表于 2025-5-23 18:38
实现是肯定能实现, 但是为什么不直接用省事的sunny之类的呢
myweb 发表于 2025-5-25 01:19
感谢分享,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-6-15 10:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表