A simple Port Scanner written in Python
文章作者:mouse- #!/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)
复制代码 |