Python Security 之 端口扫描

2024-03-12 12:18

本文主要是介绍Python Security 之 端口扫描,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一章将会演示如何通过Python的网络连接来开发一个基础的端口扫描器
我们的设计思路是使用socket一遍又一遍的去连接ip与端口的组合的新值

下面的代码就演示了如何使用内建的socket模块去建立一个socket连接

import sockets = socket.socket()
s.connect(('127.0.0.1s', 22))
s.send('Primal Security \n')banner = s.recv(1024)
print banner

上面这个例子:我们先import这socket模块并且调用connect()函数去连接指定的IP地址与端口。它就会建立一个TCP连接(SYN/SYN-ACK/ACK)并且我们再通过send()函数给服务器发送一个真实的数据,然后使用recv()打印出响应的内容

现在教大家如何容错socket,对于不能打开的连接:
s.connect(('127.0.0.1', 23))这句话会出错的!
对于上面的错误有若干中处理方式,这里我们使用最简单的一种方式:使用”try/except”循环来处理错误

import sockets = socket.socket()for port in range(20,25):try:print "[+] Attempting to connect to 127.0.0.1:"+str(port)s.connect(('127.0.0.1', port))s.send('Primal Security \n')    banner = s.recv(1024)if banner:print "[+] Port "+str(port)+" open: "+banners.close()except: pass

结果:
第一个
因为我实验的机器不是Linux,如果是Linux的话在22端口可能开启了SSH服务
如果开启了,可以用Putty连接试试

如果我们想一次性扫描多台主机,可以使用一个for循环嵌套。最外层的是主机的ip,然后里面的for循环是端口。下面有一个基础的例子,展示了如何通过循环嵌套来构建一个简单的扫描器:

hosts = ['127.0.0.1', '192.168.1.5', '10.0.0.1']ports = [22, 445, 80, 443, 3389]for host in hosts:for port in ports:try:print "[+] Connecting to "+host+":"+str(port)s.connect((host, port))s.send('Primal Security \n')banner = s.recv(1024)if banner:print "[+] Port "+str(port)+" open: "+banners.close()except:pass

结果:
第二张
正如你所看到的结果,它把hosts数组里面的所有值都遍历了一次ports数组,等hosts[0]扫描完成之后再扫描hosts[1]依次类推。在这个例子里面你也可以修改里面的代码,只让它显示出可以打开的端口。

这篇关于Python Security 之 端口扫描的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/801230

相关文章

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Python Websockets库的使用指南

《PythonWebsockets库的使用指南》pythonwebsockets库是一个用于创建WebSocket服务器和客户端的Python库,它提供了一种简单的方式来实现实时通信,支持异步和同步... 目录一、WebSocket 简介二、python 的 websockets 库安装三、完整代码示例1.

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.