【发布时间】:2018-08-27 18:14:10
【问题描述】:
我制作了一个基本的 C# 工具,可以打开一个绑定到我的服务器的 shell。 假设 IP 是 192.168.0.101 和端口 9500。
我的目标是将流量从 C# 工具路由到我的第二个服务器,假设它位于 192.168.0.102 并使用相同的端口。
为了得到我想要的,我尝试挂钩 ws2_32.dll 函数“WSAConnect”。 在 C# 中添加了一个调试器,在函数上放置了一个断点,毕竟我发现 RDX 拥有指向我要修改的内容的“sockaddr”。
前 2 个字节是 0x02 0x00,代表 ipv4 使用。 第二个 2 是我的十六进制端口,接下来的 4 是我的十六进制 IP。 从那里我修改了这些字节以获得我想要的并让程序继续运行。
为了检查它是否有效,我使用了“任务管理器”中的“源代码控制”并查看了我的 C# 应用程序。从那里我看到了一个 TCP 连接,它没有连接到我的第一台服务器,而是我的第二台服务器,这正是我想要的。
但在查看了两台服务器后,我没有看到任何传入连接。 一段时间后,“源代码管理”中的连接消失了,同时也没有数据包发送。
我的连接没有启动是怎么回事?我是否忽略了什么?
【问题讨论】:
-
在您的情况下,您需要尝试使用导入地址表挂钩
标签: assembly proxy 64-bit hook