zoukankan      html  css  js  c++  java
  • python 探測端口

    最近在学习网络安全课程,探测对方哪个端口开启是黑客攻击的第一步:

    写了一段探测对方端口的代码

    使用格式:python -H 目标IP地址 -P 目标端口列表

     1 # coding=UTF-8
     2 import socket
     3 import optparse
     4 import threading
     5 screenLock = threading.Semaphore(value=1)
     6 def connScan(tgtHost,tgtPort):
     7     try:
     8         connSkt = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
     9         connSkt.connect((tgtHost,tgtPort))
    10         connSkt.send('ViolentPython
    ')
    11         results = connSkt.recv(100)
    12         screenLock.acquire()
    13         print('[+]%d/tcp open'%tgtPort)
    14         print ('[+] '+str(results))
    15         
    16     except:
    17         screenLock.acquire()#加锁
    18         print ('[-]%d/tcp closed'%tgtPort)
    19     finally:
    20         screenLock.release()
    21         connSkt.close()
    22         
    23         
    24 def portScan(tgtHost,tgtPorts):
    25     try:
    26         tgtIP =socket.gethostbyname(tgtHost)
    27         
    28     except:
    29         print "[-]Cannot resolve '%s':Unknown host" % tgtHost
    30         return
    31     try:
    32         tgtName = socket.gethostbyaddr(tgtIP)
    33         print "
    [+] Scan Results for :"+ tgtName[0]
    34     except:
    35         print "
    [+] Scan Results for:" + tgtIP
    36     socket.setdefaulttimeout(1)
    37     
    38     for tgtPort in tgtPorts:
    39         print "Scanning port"+ str(tgtPort)
    40         t = threading.Thread(target=connScan,args=(tgtHost,int(tgtPort)))
    41         t.start()
    42         
    43 def main():
    44     parser = optparse.OptionParser('usage%prog -H<target host> -p <target port>')
    45     parser.add_option('-H',dest='tgtHost',type='string',help='specify target host')
    46     parser.add_option('-p',dest='tgtPort',type='int',help='specify target port')
    47     (options,args)=parser.parse_args()
    48     tgtHost = options.tgtHost
    49     tgtPort = options.tgtPort
    50     args.append(tgtPort)
    51     if(tgtHost == None)|(tgtPort == None):
    52         return('[-] You must specify a target host and port[s]!')
    53         exit(0)
    54     portScan(tgtHost,args)
    55     
    56     
    57 if __name__ == '__main__':
    58     main()
    59     
    下一步,准备写成一个可用的界面应用程序。
  • 相关阅读:
    Qt:移动无边框窗体(使用Windows的SendMessage)
    github atom 试用
    ENode框架Conference案例转载
    技术
    NET 领域驱动设计实战系列总结
    mac 配置Python集成开发环境
    User、Role、Permission数据库设计ABP
    Oracle 树操作
    Oracle 用户权限管理方法
    Web Api 2, Oracle and Entity Framework
  • 原文地址:https://www.cnblogs.com/b-l-java/p/6873610.html
Copyright © 2011-2022 走看看