***网络安全实验报告
题 目 基于 socket 的扫描器设计
专 业 信息安全
指 导 教 师 王彦***
一、实验目的
熟悉socket 编程,可以利用socket 编程编写基于linux平台的 C/S程序和基于 windows 平台的扫描器。
二、实验内容
-
windows机器安装Linux虚拟机
-
在Windows下编写客户端程序向Linux端程序发送指定格式数据(目的体验语法和语义的概念,后期需要)包括源目的IP,端口和数据。
-
在Windows下编写基于connect的端口扫描程序,要求有界面,可以指定线程数,ip范围,端口范围,以及返回扫描结果,能够检测出2中打开的端口。可以配置输出文件。
-
要求有实验报告需要必要的截屏和程序(需要有注释)
三、实验过程
(一)Linux 环境下的 C/S 程序
实验基本信息:
实验环境:Ubuntu 16.04 x64 编程语言:C -
需求分析
需要在Windows下编写客户端程序向Linux端程序发送指定格式数据。
程序功能:
(1)客户端:
a.可以向服务端发送一个本目录下指定的文件,文件名由用户输入;
(2)服务端:
a.可以监听来自客户端的连接请求;
b.可以接收客户端传送的文件;
(3)传送文件要求:任何二进制文件。 -
环境配置
检查虚拟机网络配置:
-
客户端编写
-
服务端编写
(二)Windows 环境下的扫描器程序
实验基本信息:
实验环境:Windows10 x64 编程语言:python3
- 需求分析
本次实验需要扫描ip以及端口,我选择用python来编写程序
程序功能:
(1) 用户可以输入需要扫描的 ip 范围、端口范围,然后开始扫描
(2) 关于扫描的线程分配: 由于技术有限,暂时只写了一个线程的扫描程序
关于扫描输出:
在完成扫描后输出正在开启的端口号 - 控件逻辑编写
首先得到用户输入的ip地址范围以及用户输入的端口范围,然后用将每个端口和每个ip存储在序列中,然后将ip地址和端口一一进行比对是否ip占用该端口,如果比对成功则输出对应的ip地址和端口号,最后知道全部比对一遍 - 具体功能编写
(1) 扫描主方法
(2) 打印扫描结果
四、实验结果
(一) Linux 环境下的 C/S 程序
发送端:
接收端:
Windows 环境下的扫描器程序
测试扫描结果 :
测试传输时端口: