六、设计方案
实现原理:
atach、cap进程运行在ubuntu中,要攻击的目的终端可以使网络中任意设备,只需要能ping通即可。本例在windows上测试,采用桥接模式将ubuntu的网口和windows的网口桥接起来。
atach进程主要功能:
- 创建tcp套接字
- 设置需要攻击的终端的ip+port,然后执行connect函数
- connect成功,说明对方该端口可以使用
- 修改port值,重复前面3个步骤
cap进程主要功能:
- 通过eth0,抓取指定规则:host 192.168.0.116数据包
- 解析出以太头、tcp头,ip头、tcp头,判断tcp头中sync+ack位为1的所有数据包
- 打印出步骤2过滤出来的数据包
代码流程:
七、测试
1. 环境:
windows ip:192.168.0.116 ubuntu ip:192.168.0.113
2. 文件:
peng@ubuntu:~/work/test/pcap$ ls atach header.c libpcap-1.10.3.tar.gz cap.c cap libpcap-1.10.3 atach.c protocol.h
其中atach是上攻击方,用于向指定ip发送sync包 cap 用于检测所有网卡收到的sync+ack数据包 程序运行在ubuntu中。
3. 启动网络调试助手
在windows上启动网络调试助手,
建立几个Tcp Server,端口号分别为55、56、57
在这里插入图片描述
4. 启动程序
1)首先启动cap
peng@ubuntu:~/work/test/pcap$ sudo ./cap 192.168.0.116 found device: eth0 netaddr:0000a8c0 try to open device eth0 filter:host 192.168.0.116
2)启动攻击程序atach
需要新开启一个终端。
peng@ubuntu:~/work/test/pcap$ ./atach 192.168.0.116
5. 运行截图如下:
右边log可见,列举出了所有可以访问的端口,包括55、56、57。
注意:那个单词atach故意少了一个t,否则编译不过去:
大家可以试试你们的编译器,刑不刑!
八、代码
代码已经同步到gitee,地址如下: