zoukankan      html  css  js  c++  java
  • python新手灰帽脚本练习---简易端口扫描

    总体思路:

    调用了socket模块并用connect()函数链接了相应的IP和端口号,用send()函数发送数据并用recv()函数检查响应.

     1 # -*- coding:utf-8 -*-
     2 
     3 __author__='Dou—wei'
     4 
     5 import socket
     6 import sys
     7 
     8 
     9 def scanner(ip,port):                                                    
    10     try:
    11         s = socket.socket()                                                 #创建socket
    12         print "[-] Attempting to connect to " + ip + ":" + str(port)        
    13         s.connect((ip,port))                                                #连接指定地址
    14         s.send('try')                                                       
    15         banner = s.recv(1024)                                               #获取返回信息
    16         if banner:                                                          #判断返回是否为空
    17             print "[+] Port " + str(port) + " open: 
    " + banner
    18         s.close()
    19     except Exception,e:
    20         print e
    21 
    22 def main():
    23     ip = sys.argv[1]
    24     port = int(sys.argv[2])
    25     scanner(ip,port)
    26 
    27 if __name__=='__main__':
    28     main()
    View Code

    效果如图:

    也可以自行添加列表,通过遍历实现批量扫描:

     1 # -*- coding:utf-8 -*-
     2 
     3 __author__='Dou—wei'
     4 
     5 import socket
     6 import sys
     7 
     8 
     9 def scanner(hosts,ports):
    10     for host in hosts:
    11         for port in ports:                                                    
    12             try:
    13                 s = socket.socket()                                                 #创建socket
    14                 print "[-] Attempting to connect to " + host + ":" + str(port)        
    15                 s.connect((host,port))                                                #连接指定地址
    16                 s.send('try')                                                       
    17                 banner = s.recv(1024)                                               #获取返回信息
    18                 if banner:                                                          #判断返回是否为空
    19                     print "[+] Port " + str(port) + " open: 
    " + banner
    20                 s.close()
    21             except Exception,e:
    22                 print e
    23 
    24 def main():
    25     hosts = ['127.0.0.1','192.168.1.1']
    26     ports = [21,22,25,80,3389,8080]
    27     scanner(hosts,ports)
    28 
    29 if __name__=='__main__':
    30     main()
    View Code

    效果如图:

  • 相关阅读:
    Python:三元运算
    SaltStack部署服务及配置管理apache+php-第二篇
    SaltStack介绍及简单配置-第一篇
    git基础常用维护命令
    MySQL设置只读模式
    运维杂记-05
    Tomcat的配置,设置内存,获取用户IP
    Linux系统巡检项目
    Redis维护
    nginx配置文件说明
  • 原文地址:https://www.cnblogs.com/ScriptKid-Lu/p/9558719.html
Copyright © 2011-2022 走看看