Требуется сканер портов на perl

Discussion in 'PHP' started by Stingers, 29 Jun 2008.

  1. Stingers

    Stingers Elder - Старейшина

    Joined:
    28 Aug 2007
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    сабж. есть у кого?
     
  2. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    в теме "Полезные скрипты" выкладывали...ищи там
     
  3. alextoun

    alextoun Вылет с Трассы

    Joined:
    7 May 2006
    Messages:
    563
    Likes Received:
    216
    Reputations:
    96
    ps попробуй на питоне
    быстрее будет
    Code:
    #!/usr/bin/python
    
    import commands, sys, getopt, StringIO, re, string, ftplib
    from ftplib import *
    
    tmp, args = getopt.getopt(sys.argv[1:],"")
    	
    def getopen():
    
    	nmap = StringIO.StringIO(commands.getstatusoutput('nmap -P0 '+host)[1]).readlines()
    	return nmap
    	
    def sock(plist):
    	
    	for port in plist:
    		print "\nChecking port:",port
    		try:
    			import socket, time
    		
    			s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    			s.settimeout(15)
    			s.connect((host, int(port)))
    			time.sleep(4)
    			s.send("\r\n")
    			response = s.recvfrom(1024)[0]
    			s.close()
    			if response:
    				print "++[ Response:",host,"on port",port,"\n"
    				print "\t",response
    		except socket.error, msg:
    			s.close()
       			print "An error occurred:", msg
    			
    def http(p):
    	
    	import httplib
    	try:# make a http HEAD request
    		h = httplib.HTTP(host+":"+p)
    		h.putrequest("HEAD", "/")
    		h.putheader("Host", host)
    		h.endheaders()
    		status, reason, headers = h.getreply()
    		print "\nChecking port:",p
    		print "++[ Response:",host,"on port",p,"\n"
    		print "\t",headers.get("Server"),"\n"
    	except: 
    		print "Error: Name or service not known. Check your host."
    		pass
    
    def ftp(p):
    	
    	try:
    		print "Checking for anonymous login on",host
    		ftp = FTP(host)
    		ftp.login()
    		ftp.retrlines('LIST')
    		print "\t\nAnonymous login successful on",host,"\n"
    		ftp.quit()
    	except (ftplib.all_errors), msg: print "An error occurred:", msg
    	
    #................................................
    	
    if args == []:
    	print "Usage: ./ipbanscan.py <host>"
    else:
    	host = args[0]
    	plist = []
    	www = ["80","8000","8080"]
    	print "\t--------------------------------------------------\n"
    	print "\n\t\t.:[ Scanning",args[0],"]:.\n"
    	nmap = getopen()
    	for tmp in nmap:
    		if re.search("\d+/tcp\s+(?=open)", tmp): 
    			port = re.findall("\d+", tmp) 
    			if port: plist.append(port[0])
    	print "Ports open:",len(plist),"\n"
    	for p in www:
    		if p in plist: 
    			http(p)
    			plist.remove(p)
    	if "21" in plist:
    		ftp(21)
    	if "23" in plist:
    		print "\n\tTelnet server found on port 23. brute?" 
    		sock(["23"])
    		plist.remove("23")
    	sock(plist)
    				
     
    #3 alextoun, 29 Jun 2008
    Last edited: 29 Jun 2008
    3 people like this.
  4. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    ЗАчем такой большой код... .пишешшь fsocetopen(...) и сморишь порты по одному ... ..Если подключился то порт открыт.... .
     
  5. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    на perl - кривизна трындец - сканер - через lwp - строк на 30 можно накропать + потоки прикрутить намного быстрее будет
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    лвп с потоками любит вылетать, лучше уж сокеты тогда
     
    _________________________
    1 person likes this.
  7. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    лудше вынуть руки из попы и научиться делать код меньше и быстрее - и он вылетает не оттого что он с потоками пашет --- сори если что
    ps - у тебя вылетает или из-за твоего кода кривого или из-за кривой сборки perl

    to true --- ага а порты это вообще не веб так просто фигня консольная и какаянить муть типо bla_bla.com:110 --- нам вернет index.php ))
     
    #7 genom--, 30 Jun 2008
    Last edited: 30 Jun 2008
    1 person likes this.
  8. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    809
    Reputations:
    230
    В студию многопоточник на перле с использованием lwp который будет например содержимое страниц парсить и не вылетать на 200+ потоках
     
    _________________________
    1 person likes this.
  9. Stingers

    Stingers Elder - Старейшина

    Joined:
    28 Aug 2007
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    мм... немного непоняли вы :) мне нада чтобы я вписал диапазон или список Ip для скана, указал поррт для скана и он полетел :) ЗЫ питона на хосте нету
     
  10. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Может, там nmap есть? :)
     
  11. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    tru какое нах udp - иди учи матчасть
    каждый поток хрет прим 2-3 метра оперативы - умножь на свои 200 это раз
    во вторых они едят проц тоже довольно хорошо это два
    чтобы парсить страницы и чтобы полноценно работали все 200 потоков тебе такой невьепенный канал будет нужен что ого-го -- это три
     
Loading...