基于Python的端口扫描器

这是一个使用Python 2.7.x编写的简单端口扫描器。通过connScan()和portScan()函数实现,connScan()负责尝试连接目标主机的特定端口,portScan()获取主机名并调用connScan()进行扫描。为了防止多线程扫描时输出混乱,使用了Semaphore进行线程同步。源代码和运行示例提供。

本例是一个基于Python(2.7.x)的简易端口扫描器。基本的想法是这样的:
构建两个函数:connScan()和portScan(),其中connScan()是用于连接指定的地址以及指定端口,建立连接发送信息,看是否有返回信息以确定端口是否开放。portScan()用于获取主机名,打印,调用connScan()进行扫描。
使用Python编写是十分简便的。Python的库十分丰富,很多操作都有现成的库函数调用,完成一个复杂操作只需寥寥数行代码即可。
考虑到在portScan()中将创建线程调用connScan()进行扫描,由于线程同步导致扫描不同端口输出的次序会乱掉,因此设置一个信号量Semaphore,用来在输出时锁定线程,保证端口扫描输出依次打印。

screenLock = Semaphore(value = 1) #定义一个信号量用于锁定线程
def connScan(tgtHost, tgtPort):
  try:
    connSkt = socket(AF_INET, SOCK_STREAM)
    connSkt.connect((tgtHost, tgtPort)) #连接指定的地址和端口
    connSkt.send('ViolentPython\r\n') #发送消息
    results = connSkt.recv(100) #若端口开放,记录返回的消息
    screenLock.acquire() #Lock锁定线程
    print '[+]%d/tcp open'% tgtPort
    print '[+] ' + str(results)
  except
# 00scanner 00scanner是一个多功能扫描器,一方面它是辅助工具,能够对目标网络进行信息搜集;另一方面,它是一个漏洞扫描器,能够对常见漏洞进行扫描。支持扩展插件,即插即用,方便快捷。</br> 扫描器采用python2.7版本,django框架,mysql数据库,B/S架构,直接运行python runserver manager.py即可,然后通过浏览器访问。</br> 扫描器采用模块化编程思想,将各个功能分装为各个模块。</br> 包含模块:</br> (1)主爬虫模块,获取目标站点的网站的数据。</br> (2)端口扫描模块,分为全端口扫描和常用端口扫描,可以根据需求来调用。</br> (3)子域名扫描模块,获取目标站点的子域名信息。</br> (4)活跃主机扫描模块,获取网络中活跃主机信息。</br> (5)sql注入扫描模块,扫描sql注入漏洞。</br> (6)xss扫描模块,扫描xss漏洞。</br> (7)网站目录扫描扫描网站的目录结构。</br> (8)网站后台扫描(敏感目录扫描/资源扫描),扫描敏感路径。</br> (9)若口令扫描模块,扫描弱口令漏洞。</br> (10)系统指纹识别/cms识别,识别目标的主机/cms的类型。</br> (11)ip切换模块,在扫描过程中切换本机ip,避免被墙。</br> (12)专门漏洞扫描模块,为用户提供自定义扫描功能,只要用户在模块中插入标准插件,就可以自定义扫描。(新漏洞扫描)</br> (13)webshell扫描模块,扫描webshell</br> (14)c段和web指纹识别模块。</br> -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值