Python Security 之 端口扫描
来源:互联网 发布:常用协议端口有多少 编辑:程序博客网 时间:2024/06/06 05:20
这一章将会演示如何通过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: "+banner s.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: "+banner s.close() except:pass
结果:
正如你所看到的结果,它把hosts数组里面的所有值都遍历了一次ports数组,等hosts[0]扫描完成之后再扫描hosts[1]依次类推。在这个例子里面你也可以修改里面的代码,只让它显示出可以打开的端口。
0 0
- Python Security 之 端口扫描
- Python之端口扫描程序
- python端口扫描
- Python端口扫描
- Python 多线程端口扫描软件
- python多线程端口扫描程序
- Python多线程端口扫描工具
- python实现端口扫描
- python端口扫描脚本
- python+nmap+端口扫描
- python 多线程 实现端口扫描
- python实现端口扫描
- Python Security 之 反向Shell
- Python实现网段固定端口扫描
- Python端口扫描程序原理解析
- 端口扫描
- 端口扫描
- 端口扫描
- AsyncTask异步加载
- 【leetcode】二叉树的LCA问题:Lowest Common Ancestor of a Binary Tree
- 寻找脚码(C百例,折半&&测时)
- 欢迎使用CSDN-markdown编辑器
- AfxBeginThread 函数的用法实例讲解
- Python Security 之 端口扫描
- POI 3.8版本导出excel问题
- HDU-1106-排序
- I2C总线-学习总结
- 【c语言】统计一个数字在排序数组中出现的次数
- Java.io.StreamTokenizer的使用小结
- 活动(activity)的生命周期
- HDU - 3001 Travelling (状态压缩)
- NSString 字符串