【WinPcap】自制抓包+分析+ARP攻击(三)
2015-04-23 08:10
113 查看
【WinPcap】自制抓包+分析+ARP攻击
扫描网内主机
继续接着昨天的来,今天就能搞定。先来看一下对网内活动主机的扫描。我的大体思路是:对网段内所有IP发送ARP包,根据收到的响应来判断是否有活动主机,并作记录。这一点其实不难,仔细认真地遍历网段内主机IP,用一个线程额外接受ARPreply响应包,并做解析就可以了。我觉得难就难在网关的确定,子网掩码的确定,本机mac、IP的确定。只有知道了这三点,我们才能做到正确发包,正确收包,正确遍历本网段内的所有主机。
获取本机信息
本段内容位于ScanHostDlg.cpp/* 在当初初始化适配器的指针中获取IP和netmask */ pcap_addr *paddr = adp_info.usedDevs->addresses; for (; paddr; paddr = paddr->next) { if (paddr->addr->sa_family != AF_INET) //只要IPV4 continue; if (paddr->addr) g_localip = ntohl(((struct sockaddr_in *)paddr->addr)->sin_addr.s_addr); if (paddr->netmask) g_netmask = ntohl(((struct sockaddr_in *)paddr->netmask)->sin_addr.s_addr); }在这里需要注意的是,主机可用有多个适配器,每个适配器可能包含多个IP协议和地址,所以在这里需要选中自己一直在用的适配器,遍历直到找到其中我们需要的IP信息和netmask信息。
获取网关信息
WSADATA wsadata; char buff[20] = "find mac!"; unsigned long destIP = inet_addr("9.2.0.5");//利用非本网段IP //提前开启接受线程 _beginthread(recvThread, 0, (void*)this); WSAStartup(MAKEWORD(2, 2, ), &wsadata); SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); int err = GetLastError(); SOCKADDR_IN addr; addr.sin_family = AF_INET; addr.sin_port = htons(8888); addr.sin_addr.S_un.S_addr = destIP; sendto(sock, buff, strlen(buff), 0, (SOCKADDR*)&addr, sizeof(SOCKADDR_IN)); Sleep(2000);这里就是所说的,用UPD查找网关信息和我本机的MAC地址(可能有其他更好的方法……我就挑了一种用,还得努力学习)。接下来就是对网内主机发ARP包,用另一个线程查看你是否有响应。(可以看源码,等会儿放上链接)。
自制包(ARP欺骗)
好吧,我交代,最初就是看上这个ARP欺骗才想做的,然后了解了之后就想多了解些协议,就做了这个小工具,这是我最初的动机。
知道ARP欺骗么?其实就是利用ARP的响应请求,绑定假的MAC和IP,一直发给被欺骗对象,直到它刷新自己的ARP缓存。这样一说是不是很简单啦?比如你要欺骗MAC为12-34-56-78-90-22,IP为192.168.1.100的家伙,告诉它你是网关(192.168.1.1)那么,你要做的无非就是在ARP数据报中的“发送硬件地址”设为你的MAC,“发送着IP”设为192.168.1.1,把操作码设为0x0002(响应),然后一直发给被欺骗对象。
对于上述问题,我相信你看到这里已经没问题了,剩下的就是鲁棒性和友好性了。交给你去完善吧!
感想
作为一个大三的学生,接触了编程一年了,我觉得应该敢想敢做,当然技术和知识依旧需要好好积累,加油。
源码
Pain is in your mind.相关文章推荐
- 【WinPcap】自制抓包+分析+ARP攻击(二)
- 【WinPcap】自制抓包+分析+ARP攻击(一)
- 使用WinPcap抓包分析网络协议
- 使用WinPcap抓包分析网络协议
- 使用WinPcap抓包分析网络协议
- 使用WinPcap抓包分析网络协议
- 基于winpcap的抓包分析工具
- 使用WinPcap抓包分析网络协议
- SharpPcap 在.net下用封装好的winpcap进行抓包(转)
- 实例抓包分析USB鼠标枚举数据流
- 抓包分析TCP的三次握手和四次握手
- Linux抓包和分析
- winpcap抓包原理
- wireshark TCP状态转换+HTTP抓包分析+提取木马SNORT规则
- tcpdump抓包分析详解
- Wireshark数据抓包教程之认识捕获分析数据包
- tcpdump抓包分析详解
- Wireshark数据抓包分析(网络协议篇)1.2安装Wireshark
- tcpdump抓包二进制tcp协议详细分析
- 计算机网络课程设计--基于winpcap实现简单的抓包