端口截听实现端口躲藏 办理嗅探与攻击办法[网络技术]
本文“端口截听实现端口躲藏 办理嗅探与攻击办法[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在WINDOWS的SOCKET服务器利用的编程中,以下的语句大概比比都是:
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(s,(SOCKADDR *)&saddr,sizeof(saddr));
其实这当中存在在非常大的安全隐患,因为在winsock的实现中,关于服务器的绑定是可以多重绑定的,在肯定多重绑定利用谁的时刻,按照一条原则是谁的指定最明确则将包递交给谁,并且没有权限之分,也就是说初级权限的用户是可以重绑定在高级权限如服务启动的端口上的,这是非常庞大的一个安全隐患.
这意味着什么?意味着可以举行以下的攻击:
1.一个木马绑定到一个已经合理存在的端口上举行端口的躲藏,他通过自己特定的包格局判断是不是自己的包,假如是自己处理,假如不是通过127.0.0.1的地址交给真正的服务器利用举行处理.
2.一个木马可以在低权限用户上绑定高权限的服务利用的端口,举行该处理信息的嗅探,本来在一个主机上监听一个SOCKET的通讯需求具有非常高的权限要求,但其实操纵SOCKET重绑定,你可以简单的监听具有这种SOCKET编程漏洞的通讯,而无须采取什么挂接,钩子或低层的驱动技术(这些都需求具有管理员权限才能到达)
3.针对一些的特别利用,可以发动中间人攻击,从低权限用户上得到信息或事实拐骗,如在guest权限下拦阻telnet服务器的23端口,假如是采取NTLM加密认证,固然你无法通过嗅探直接获得密码,但一旦有admin用户通过你登陆今后,你的利用就完好可以发动中间人攻击,扮演这个登陆的用户通过SOCKET发送高权限的号令,到达入侵的目的.
4.关于构建的WEB服务器,入侵者只需求得到初级的权限,便可以完好到达更改网页目的,很简单,扮演你的服务器赐与衔接恳求以其他信息的应答,乃至是基于电子商务上的拐骗,获得不法的数据.
其实,MS自己的很多服务的SOCKET编程都存在这样的问题,telnet,ftp,http的服务实现全部都可以操纵这种办法举行攻击,在低权限用户上实现对SYSTEM利用的截听.包含W2K+SP3的IIS也都一样,那么假如你已经可以以低权限用户入侵或木马植入的话,并且对方又开启了这些服务的话,那就无妨一试.并且我预计还有很多第三方的服务也大多存在这个漏洞.
办理的办法很简单,在编写如上利用的时刻,绑定前需求利用setsockopt指定SO_EXCLUSIVEADDRUSE要求独占全部的端口地址,而不答应复用.这样其他人就无法复用这个端口了.
下面就是一个简单的截听ms telnet服务器的例子,在GUEST用户下都能成功举行截听,剩余的就是大家按照自己的需求,举行一些特别剪裁的问题了:如是躲藏,嗅探数据,高权限用户拐骗等.
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
DWORD WINAPI ClientThread(LPVOID lpParam);
int main()
{
WORD wVersionRequested;
DWORD ret;
WSADATA wsaData;
BOOL val;
SOCKADDR_IN saddr;
SOCKADDR_IN scaddr;
int err;
SOCKET s;
SOCKET sc;
int caddsize;
HANDLE mt;
DWORD tid;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
printf("error!WSAStartup failed!\n");
return -1;
以上是“端口截听实现端口躲藏 办理嗅探与攻击办法[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |