python绝技 系列脚本

1.python漏洞扫描脚本

 1 import socket
 2 import os
 3 import sys
 4 def retbanner(ip,port):
 5     try:
 6         socket.setdefaulttimeout(2) #设置连接目标服务器超时时间
 7         s = socket.socket() #创建套接字
 8         s.connect((ip,poet))  #建立tcp连接
 9         banner =  s.recv(1024)  #返回服务器banner信息
10         return banner
11         except:
12             return     #如果连接失败,则返回faulse
13 def checkvulns(banner,filename):
14        f=open(filename,"r")          #打开已准备好的漏洞banner匹配字典
15        for line in f.readlines():    #readlines函数返回一个列表,遍历此列表
16                 if line.strip("\n") in banner:  #去除元素中的换行
17                     print "server is vulnerable"+line.strip("\n")
18 def main():
19       if len(sys.argv)==2:   #sys用来与终端进行交互,argv为命令行参数数组,索引为0默认为脚本名称
20                  filename=sys.argv[1] #此时文件名为第一个参数
21                 if  not os.path.isfile(filename): #如果给定的字典文件不是一个文件
22                         print filename+"does not exist"
23                         exit(0)
24        if not os.access(filename,os.R_OK):  #os与操作系统进行交互,判断文件权限是否够
25                     print filename+"access denied"
26                     exit(0) 
27         else:
28                 print "usage"+str(sys.argv[0]) 
29                 exit(0)
30                portlist=[21,22,25,80,110,443] #要扫描的端口列表
31                 for x in range(147,150):
32                     ip='192.168.95.'+str(x)   #要扫描的ip段
33                     for port in portlist:
34                             banner = retbanner(ip,port)
35                             if banner:
36                                 print '[+]'+ip+';'+banner
37                                 checkvulns(banner,filename)
38 if __name__=='__main__':
39     main()

 

  

posted @ 2016-12-20 23:19  tr1ple  阅读(369)  评论(0)    收藏  举报