文章作者: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)