王斯里 200405030
(1)Python 网络开发
(2)Socket 基础知识
(3)端口扫描概念
(4)python-nmap 包:就是一个可以在 Python 程序中使用 nmap 端口扫描器的 Python 包。允许开发者对 nmap 扫描结果进行解析并能够帮助管理员自动化扫描任务和报告输出。并且这个包可以支持异步输出,当扫描结果完成时调用用户定义的回调函数。
1.理论基础
(1)端口扫描:端口扫描工具(Port Scanner)指用于探测服务器或主机开放端口情况的工具。常被计算机管理员用于确认安全策略,同时被攻击者用于识别目标主机上的可运作的网络服务。
(2)实现原理
TCP 连接扫描、SYN 扫描
2.实现一个使用单线程方式依次测试连接端口列表的端口扫描程序
(1)读取端口及目标服务器
在 /home/shiyanlou/Code 文件夹中使用 touch 命令来创建代码文件夹, 使用 sudo chmod +x port_scan.py 为文件加上执行权限,使用 ls 查看文件,文件名是绿色的,说明它有执行权限了。
编写代码:
程序中使用 sys.argv[] 来读取操作指令,它能让我们读取到刚刚的 host、start_port 和 end_port;程序还需要对数据进行初步处理,让对应的数据存储到变量中。编写的是处理代码。
(2)测试 TCP 端口连接
第二步,我们进入一个循环,在这个循环中依次对端口范围内的端口进行连接测试。连接测试方法是:创建 socket,调用 connect() 函数,关闭连接。
首先要在文件开始部分引入 socket 包,然后获取目标 IP 地址,进入循环开始连接。
(3)输出开放端口结果
打印 opened_ports 列表
3.执行测试
测试了 100-200,8000-8080,7000-8080,100-9000端口,只有5901端口处于打开状态。使用浏览器查看5901提供什么样的服务:
4.安装 Python 端口扫描包 python-nmap
(1)输入命令更新软件包列表,再输入命令进行安装。
(2)基本功能
输入 python 进入 python shell,加载 nmap 包,创建 PortScanner 对象,扫描127.0.0.1的 22-100 端口,查看使用的命令行和扫描信息,查看扫描的目标主机信息。
在实验中采用TCP扫描连接进行了服务器端口扫描实验,安装了python-nmap包,体验了基本功能。
学习时间 181分钟
操作时间 69分钟
按键次数 2006次
实验次数 10次
报告字数 1848字
是否完成 完成