嘟嘟社区

[疑问] 如何将一个软件的TCP连接劫持到自己的服务器?


各位大佬好,本菜鸡近来遇到一个问题。
某软件,开启就会自动连接到一个服务器 A的指定端口。

本来在大版本更新前,它采用的是本地DNS解析。通过监控他的TCP连接和DNS查询找到了他连接的域名和端口。
修改了本地hosts达到了劫持连接到自己服务器的功能。
当时还笑他说 naive,换我我就用远程DNS。

结果求锤得锤,新版本换上了远程DNS,
看到开启时连接了 8888 dns.google ,dns-cloudflare.com,还有9.9.9.9 这三个DNS服务器,并且是https 443端口

这就是传说中的DOH吗?

一时间不知道该咋办了。

群里有大佬指点可以通过做假证书本地信任,然后hosts劫持这三个地址到自己假设的 dnsmasq 假dns服务器。

再查看他解析的域名,并将这些域名返回自己的服务器IP。

尝试了一番后失败了,有点没头绪了。

来请教大佬们,有什么好的解决办法?

直接修改二进制文件

HOH 发表于 2021-12-22 21:50
直接修改二进制文件

这个确实能力不足了…
不过已知程序是go写的

配置局域网NAT就能强制走网关吧,
然后在网关那里可以靠iptables进行流量转发

konololi 发表于 2021-12-22 21:57
配置局域网NAT就能强制走网关吧,
然后在网关那里可以靠iptables进行流量转发 …

程序运行在国外小鸡上,是不是没法这样操作了= =

syouko 发表于 2021-12-22 21:58
程序运行在国外小鸡上,是不是没法这样操作了= =

如果是Linux的话直接在鸡子上本地iptables转就行了,不需要搞个网关绕一道。
鸡在你手上,总归能让它听话

试试在机器上屏蔽这三个远程DNS,这个软件会不会fallback到本地DNS解析。
使用类似与sockscap等软件,强制它使用指定的socks代理,然后在代理上做手脚,把包重定向到自己的服务器