首页
社区
课程
招聘
[求助]请问如何通过HOOK得到IIS的远程IP?
发表于: 2012-12-22 00:55 6348

[求助]请问如何通过HOOK得到IIS的远程IP?

2012-12-22 00:55
6348
IIS是通过inetinfo.exe进程运行的,开放了80端口。现在我需要通过HOOK的手段获取到连接到IIS的远程客户的IP地址,我尝试HOOK了WSAAccept和AcceptEx,通过XUETR看到都HOOK成功了的,但是在访问80端口时,却没有得到IP地址,通过调试发现根本就没有走这两个IP。请问究竟应该HOOK哪个API才能得到IP呢?
注:
1.我通过HOOK WSARecv倒是能HOOK到数据,可是得到的IP却是0.0.0.0,因为这东西异步的,调用完就关闭SOCKET了,所以根本拿不到,只能通过建立连接的拿IP
2.我想要的是通过RING3来HOOK,不是RING0

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 8764
活跃值: (5240)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
IIS应该用的是完成端口.
AcceptEx比较特别,而且这个是微软专门在Windows操作系统里面提供的扩展函数,也就是说这个不是Winsock2标准里面提供的,是微软为了方便使用重叠I/O机制,额外提供的一些函数, 微软的实现是通过mswsock.dll中提供的,所以可以通过静态链接mswsock.lib来使用AcceptEx。但是这是一个不推荐的方式,应该用WSAIoctl 配合SIO_GET_EXTENSION_FUNCTION_POINTER参数来获取函数的指针,然后再调用AcceptEx.因为在未取得函数指针的情况下就调用AcceptEx的开销是很大的,因为AcceptEx 实际上是存在于Winsock2结构体系之外的(因为是微软另外提供的),所以如果直接调用AcceptEx的话,首先代码就只能在微软的平台上用了,没有办法在其他平台上调用到该平台提供的AcceptEx的版本(如果有的话), 而且更糟糕的是,每次调用AcceptEx时,Service Provider都得要通过WSAIoctl()获取一次该函数指针,效率太低了,所以还不如直接在代码中直接去这么获取一下指针好了。

LPFN_ACCEPTEX     m_lpfnAcceptEx;         // AcceptEx函数指针  
GUID GuidAcceptEx = WSAID_ACCEPTEX;        // GUID,这个是识别AcceptEx函数必须的  
DWORD dwBytes = 0;   
  
WSAIoctl(  
    m_pListenContext->m_Socket,   
    SIO_GET_EXTENSION_FUNCTION_POINTER,   
    &GuidAcceptEx,   
    sizeof(GuidAcceptEx),   
    &m_lpfnAcceptEx,   
    sizeof(m_lpfnAcceptEx),   
    &dwBytes,   
    NULL,   
    NULL);  
微软有可能也是这么做的.
2012-12-22 11:03
0
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼上这位朋友的回答,你的意思 是 我应该去HOOK WSAIoctl这个函数对吧?我去试下 。
但是有一点我不明白,按照你的说法,应该AcceptEx能够拿到我要的IP的啊,可是我尝试TELNET 80端口,还是没有HOOK到连接请求呢 ?我事先已经HOOK了AcceptEx这个API的
2012-12-22 13:48
0
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
经过测试,HOOK住WSAIoctl还是不行,郁闷了,这个这么难么?
2012-12-22 22:57
0
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
听说IOCP貌似都是通过内核实现的,不需要用应用层的函数么?有大牛能指教下么?
2012-12-23 12:14
0
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哎,看来这个问题太高难了,这么久都没人能解答
2012-12-25 21:23
0
雪    币: 177
活跃值: (141)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
针对IIS, 查下ISAPI,客户IP,控制等都可以。
2012-12-25 22:43
0
雪    币: 94
活跃值: (465)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
对哦,谢谢您的提醒!
2012-12-26 08:06
0
游客
登录 | 注册 方可回帖
返回
//