渗透测试之端口扫描器

—— 《Python绝技》笔记系列

扫描器功能:输入主机和端口,获取端口的状态和banner信息。

核心技术:使用python 的socket模块,建立TCP全连接扫描。

实现思路:

1.输入一个IP和逗号分隔的端口列表,并予以扫描。

2.对列表中的每个端口,连接目标IP和目标端口。

3.确定端口运行的服务,通过发送垃圾数据并读取具体应用返回的banner。

代码实现:

选项分析器,使用python optparse模块,用来解析命令行参数。

import optparse
#调用optparse.OptionParser,生成一个参数解析器类的实例:parser
parser=optparse.OptionParser('usage%prog '+'-H <target host> -p <target port>')
#add_option()方法,用来添加参数
parser.add_option('-H',dest='tgthost',type='string',help='specify target host')
parser.add_option('-p',dest='tgtport',type='int',help='specify target port')

(options,args)=parser.parse_args()
tgthost=options.tgthost
tgtport=options.tgtport

if (tgthost == None) | (tgtport == None):
    print parser.usage
    exit(0)

 TCP端口扫描由两个函数来实现,connScan和portScan。

connScan函数接收两个参数:tgthost和tgtport,它会去尝试建立与目标主机和端口的连接。

原文地址:https://www.cnblogs.com/reborn-blog/p/7554464.html