邪恶八进制信息安全团队技术讨论组's Archiver

冰血封情 2005-1-12 05:17

[转载]A simple Port Scanner written in Python

文章作者:mouse

[code]#!/usr/bin/python
# MPS 0.1 - MaphiaPortScanner
#     coded by mouse
#
# usage: mps <host> <sport> <fport>
#
# Greetz:
#    - Maphia Group
#    - Flowsecurity Group
#    - All friends of Blackhat

import socket as sock
import sys

def help():
   print """[-*-] MPS 0.1 - Help
   
        usage: mps <host> <sport> <fport>
        - sport: starting port;
        - fport: finishing port.

        Leave them blanks if you want to scan all ports."""

class MPS:
   def __init__(self, argv=[]):
      self.sport = 1
      self.fport = 65535
      self.host = ""

      if len(argv) == 4:
        self.host = argv[1]
        self.sport = int(argv[2])
        self.fport = int(argv[3])

        if self.sport >= self.fport:
              print "[-!-] Error: Starting port cannot be bigger than finishing port!"
              help()
              sys.exit(-1)

      elif len(argv) == 2:
        self.host = argv[1]

      else:
        help()
        sys.exit(-1)

      try:
        sock.gethostbyname(self.host)
      except:
        print "[-!-] Error: %s is unreachable!" % self.host

      self.scanner(self.host, self.sport, self.fport)


   def scanner(self, host, start, finish):
      print "---------------* MPS *---------------"
      print "Maphia Port Scanner - coded by mouse"
      print "Starting scanning on:"
      print "%s : hostname\n" % host
      
      self.port = start
      
      while self.port <= finish:
        self.host = host
        self.mps = sock.socket(sock.AF_INET, sock.SOCK_STREAM)
        nport = 1
        
        try:
           self.mps.connect((self.host, self.port))
           print "\t%s:%d  OPEN" % (self.host, self.port)
           self.mps.close()
        except: pass
        finally:
           self.port += 1
           nport += 1

      print "\nScan finished."
      print "Found %d ports open." % (nport)


if __name__ == "__main__":
    MPS(sys.argv)[/code]

页: [1]
© 1999-2008 EvilOctal Security Team