Python3 Escaner de puertos.

Iniciado por @XSStringManolo, 27 Marzo 2020, 15:34 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Os dejo un escaner de puertos. Pones el host y los puertos. Por ejemplo:
localhost
8078-8082

Te dice que puertos están abiertos, que tipo de servicio corre. Se guardan logs de los scanneres en un archivo en la misma carpeta del script y también da salida en CSV.

Código (python) [Seleccionar]
import nmap
import socket
import datetime
import sys
import os
now = datetime.datetime.now()
netmap = nmap.PortScanner()
remoteServer = input('Enter host:\n')
try:
    remoteServerIP = socket.gethostbyname(remoteServer)
    portRange = input('Enter port range using - as separator:\n')
    print ('-' * 60)
    print ('Please wait, scanning remote host', remoteServerIP)
    print ('-' * 60)
    t1 = datetime.datetime.now()
    netmap.scan(remoteServerIP, portRange)
except KeyboardInterrupt:
    print ("Ctrl+C pressed")
    sys.exit()

except socket.gaierror:
    print ("Couldn't resolve hostname")
    sys.exit()

except socket.error:
    print ("Couldn't connect to server")
    sys.exit()

with open ("pScan.log", "a") as out:
    for host in netmap.all_hosts():
        print('Host : ' + host + '(' + netmap[host].hostname() + ')')
        out.write('Host : ' + host + '(' + netmap[host].hostname() + ')\n')
        print('State : %s' % netmap[host].state())
        out.write('State : %s' % netmap[host].state()+"\n")
        for proto in netmap[host].all_protocols():
            print('----------')
            out.write('----------\n')
            print('Protocol : %s' % proto)
            out.write('Protocol : %s' % proto+"\n")
            lport = sorted(netmap[host][proto])
       
            for port in lport:
                print('Port : %s\nState : %s' % (port, netmap[host][proto][port]['state']))
                out.write('Port : ' + str(port) + '\nState  : ' + str(netmap[host][proto][port]['state'])+"\n")
                print('Name : '+netmap[host][proto][port]['name'])
                out.write('Name : '+netmap[host][proto][port]['name']+"\n")
                temp2 = str(now.year) + "/" + str(now.month) + "/" + str(now.day) + " "  + str(now.hour) + ":" + str(now.minute) + ":" + str(now.second)
                print("Date : " + temp2 + "\n\n")
                out.write("Date : " + temp2 + "\n\n")
    t2 = datetime.datetime.now()
    total = t2 - t1
    print ("Scanning completed in ", str(total))
    out.write("\nScanning completed in "+ str(total)+"\n")
    print('\n\nCSV:\n'+netmap.csv())
    out.write('\n\nCSV:\n'+netmap.csv()+"\n")

W17CH3R

Cita de: @XSStringManolo en 27 Marzo 2020, 15:34 PM
Os dejo un escaner de puertos. Pones el host y los puertos. Por ejemplo:
localhost
8078-8082

Te dice que puertos están abiertos, que tipo de servicio corre. Se guardan logs de los scanneres en un archivo en la misma carpeta del script y también da salida en CSV.


Muchisímas gracias por el aporte, se agradece el esfuerzo y por compartirlo :)

Por cierto, hoy aprobe el curso online de Python, y decidido que lo proximo que voy a estudiar sera otro curso pero con el lenguaje que me recomendastes de javascript, pero ahora practicare con Python para ir familizandome con el codigo, tu aporte me va ayudar mucho!!  :D
La importancia de los Datos es la importancia de los Recuerdos.

@XSStringManolo

El curso de W3schools de javascript es bastante friendly y completo.


W17CH3R

Cita de: @XSStringManolo en 28 Marzo 2020, 16:30 PM
El curso de W3schools de javascript es bastante friendly y completo.

Muchas gracias por el dato, le acabo de echar un vistazo, y es muy completa la pagina en cuanto lenguajes de programación  :o

Te lo agradezco! de verdad, muchisimas gracias!!!!  a estudiar a tope!! :D :D
La importancia de los Datos es la importancia de los Recuerdos.