0% encontró este documento útil (0 votos)
68 vistas10 páginas

Diagnóstico de Redes con Python

Este documento presenta dos scripts de Python para el diagnóstico de redes. El primer script determina qué puertos están abiertos en un host mediante la prueba de conexión en cada puerto. El segundo script realiza un barrido de direcciones IP en un rango especificado para identificar las direcciones activas mediante ping. El laboratorio tiene como objetivo ejecutar estos scripts de diagnóstico de redes usando Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas10 páginas

Diagnóstico de Redes con Python

Este documento presenta dos scripts de Python para el diagnóstico de redes. El primer script determina qué puertos están abiertos en un host mediante la prueba de conexión en cada puerto. El segundo script realiza un barrido de direcciones IP en un rango especificado para identificar las direcciones activas mediante ping. El laboratorio tiene como objetivo ejecutar estos scripts de diagnóstico de redes usando Python.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

LABORATORIO

Diagnóstico de redes mediante Phyton

T ELEM ÁTICA
.
.

Integrantes:

• Chambi Serrano Hernán Vladimir


• Huarza Hincho Oscar Yunior
• Revollo Flores Mario Alejandro

Docente:

Mg. Ramiro Gustavo Banda Valdivia

Universidad Nacional San Agustı́n de Arequipa


Escuela Profesional de Ingenierı́a Electrónica
2021-B
E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

LABORATORIO 7
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON

Apellidos y Nombres de los Alumnos:


Grupal Individual Total
(El primero en la lista es el delegado del grupo)
1) Chambi Serrano Hernán Vladimir
2) Huarza Hincho Oscar Yunior
4) Revollo Flores Mario Alejandro
Grupo #2 Docente:
Semestre Décimo • Mg. Ramiro Gustavo Banda Valdivia
Fecha de Entrega: 20/12/2021 Hora:8:40AM Periodo Académico: 2021-B

1. O BJETIVOS
1. Ejecutar scripts de diagnóstico de redes usando scripts de Phyton

2. F UNDAMENTO T E ÓRICO
Phyton es un lenguaje de programación que es muy usado para recolectar y manipular información de redes de
datos, existen diversas librerias. Ejecuta las instrucciones de un archivo con extensión .py Podemos ejecutarlo
sin necesidad de instalar, solo debe descomprimirse en una misma carpeta y agregar en la ruta de programas, en
el path el acceso a Phyton. Se requiere normalmente un editor, la versión actual es la 3.10 del intérprete. Como
editores puede usarse:
X PythonEditors
X IntegratedDevelopmentEnvironments
X VIM and Python - a Match Made in Heaven
Como introducción a Phyton se sugiere leer: https://medium.com/cyberdefendersprogram/python-for-cy
Se puede instalar paquetes adicionales mediante pip un administrador de paquetes. Existen diversidad de pruebas
y scripts que pueden usarse en redes, por ejemplo pruebas de penetración a la seguridad, tomamos contenido de:
https://www.tutorialspoint.com/python_penetration_testing/index.htm

3. R ECOMENDACIONES DE SEGURIDAD
Ninguna en particular.

4. E QUIPOS Y MATERIALES A UTILIZAR


X Computadora con Packet Tracer instalado

5. P ROCEDIMIENTO
Descargar PHyton, abrir una consola de comandos y ejecutar phyton.exe enviadole como parámetro el script
deseado. Visualizar el resultado.
Ejecutar el primer script que determina que puertos están abiertos:

from socket import *


import time
startTime = time.time()

if __name__ == '__main__':
target = input('Enter the host to be scanned: ')

1
E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

t_IP = gethostbyname(target)
print ('Starting scan on host: ', t_IP)

for i in range(50, 500):


s = socket(AF_INET, SOCK_STREAM)

conn = s.connect_ex((t_IP, i))


if(conn == 0) :
print ('Port %d: OPEN' % (i,))
s.close()
print('Time taken:', time.time() - startTime)

Al inicio nos pide la dirección IP del servidor, nunca usarlo en un servidor público sin autorización.

Script 2: Barrido de direcciones IP

import os
import platform

from datetime import datetime


net = input("Enter the Network Address: ")
net1= net.split('.')
a = '.'

net2 = net1[0] + a + net1[1] + a + net1[2] + a


st1 = int(input("Enter the Starting Number: "))
en1 = int(input("Enter the Last Number: "))
en1 = en1 + 1
oper = platform.system()

2 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

if (oper == "Windows"):
ping1 = "ping -n 1 "
elif (oper == "Linux"):
ping1 = "ping -c 1 "
else :
ping1 = "ping -c 1 "
t1 = datetime.now()
print ("Scanning in Progress:")

for ip in range(st1,en1):
addr = net2 + str(ip)
comm = ping1 + addr
response = os.popen(comm)
for line in response.readlines():
if(line.count("TTL")):
break
if (line.count("TTL")):
print (addr, "--> Live")

t2 = datetime.now()
total = t2 - t1
print ("Scanning completed in: ",total)

3 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

6. C UESTIONARIO
1. Investigue y pruebe scripts para diagnóstico de redes, indique este aspecto en las observaciones y
conclusiones

from socket import *


import time
startTime = time.time()

if __name__ == '__main__':
target = input('Enter the host to be scanned: ')
t_IP = gethostbyname(target)
print ('Starting scan on host: ', t_IP)

for i in range(50, 500):


s = socket(AF_INET, SOCK_STREAM)

conn = s.connect_ex((t_IP, i))


if(conn == 0) :
print ('Port %d: OPEN' % (i,))
s.close()
print('Time taken:', time.time() - startTime)

import os
import platform

from datetime import datetime


net = input("Enter the Network Address: ")
net1= net.split('.')
a = '.'

net2 = net1[0] + a + net1[1] + a + net1[2] + a

4 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

st1 = int(input("Enter the Starting Number: "))


en1 = int(input("Enter the Last Number: "))
en1 = en1 + 1
oper = platform.system()

if (oper == "Windows"):
ping1 = "ping -n 1 "
elif (oper == "Linux"):
ping1 = "ping -c 1 "
else :
ping1 = "ping -c 1 "
t1 = datetime.now()
print ("Scanning in Progress:")

for ip in range(st1,en1):
addr = net2 + str(ip)
comm = ping1 + addr
response = os.popen(comm)

for line in response.readlines():


if(line.count("TTL")):
break
if (line.count("TTL")):
print (addr, "--> Live")

t2 = datetime.now()
total = t2 - t1
print ("Scanning completed in: ",total)

5 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

import socket
from datetime import datetime
net = input("Enter the IP address: ")
net1 = net.split('.')
a = '.'

net2 = net1[0] + a + net1[1] + a + net1[2] + a


st1 = int(input("Enter the Starting Number: "))
en1 = int(input("Enter the Last Number: "))
en1 = en1 + 1
t1 = datetime.now()

def scan(addr):
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
socket.setdefaulttimeout(1)
result = s.connect_ex((addr,135))
if result == 0:
return 1
else :
return 0

def run1():
for ip in range(st1,en1):
addr = net2 + str(ip)
if (scan(addr)):
print (addr , "is live")

run1()
t2 = datetime.now()
total = t2 - t1
print ("Scanning completed in: " , total)

6 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

2. ¿Como podrı́a integrar GNS3 con Phyton?


GNS3 puede emular dispositivos de red tales como routers, por lo que si es que en estos entornos se instala
Python y se crea archivos ejecutables que importen librerı́as especializadas (tales como telnet); es posible
agilizar y facilitar la configuración de los routers en GNS3.
3. ¿Que tareas de automatización en redes pueden simplificarse con Phyton?
X Supervisión del estado de la red Probar y documentara la conectividad de red para una gran
cantidad de hosts.
X Despliegue de nuevo equipamiento Si necesita implementar muchos dispositivos de red (como
Cisco CSR1000v) para pruebas y trabajo de laboratorio, puede usar este código de Python para
automatizar el proceso de implementación. Esto le permite realizar tareas como la implementación
de OVA a vCenter sin utilizar una GUI.
X Acceso a los servicios de red proporciona dos niveles de acceso a los servicios de red. En un nivel
bajo, puede acceder al soporte básico de socket en el sistema operativo subyacente, lo que le permite
implementar clientes y servidores para protocolos orientados a conexión y sin conexión. Python
también tiene bibliotecas que brindan acceso de nivel superior a protocolos de red de nivel de
aplicación especı́ficos, como FTP, HTTP, etc.
4. Que otros lenguajes pueden usarse para automatizar tareas en redes?
X Java : Manejo de la red (networking), API de sockets BSD ,Sockets TCP
X C++ : API de sockets BSD
X Python :Seguridad de las redes.

7. O BSERVACIONES Y C ONCLUSIONES
X El Penetration Testing explota las vulnerabilidades de redes inalámbricas , servidores, aplicaciones web
por lo para tener seguridad se debe realizar un escaneo de vulnerabilidades .
X Python con Java son los lenguajes de programación mas utilizados en las Redes.
X Existen software de análisis de red para cualquier usuario, sea principiante o avanzado. Monitorea
dispositivos de red como enrutadores, conmutadores, firewalls, balanceadores de carga, controladores
LAN inalámbricos, servidores.
X El scaner de la red con Python vijila los puertos de un host.

7 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

Figura 7.1: Ejemplo del uso de una librerı́a de Python para la configura-
ción de routers en GNS3. Recuperado de https://www.linkedin.com/pulse/
network-automation-gns3-lab-configure-cisco-router-using-javed

X El Ping Sweep encuentra la disponibilidad de varios host en un rango de red especı́fico.


X El entorno de Python es muy versátil para la configuración de distintos elementos de la red como routers.
X Un entorno de programación vuelve mucho más dinámico la configuración de los dispositivos de red.
X La programación con Python y diferentes lenguajes de programación es recomendable en el uso de redes
más complejas.
X El uso de simuladores tales como GNS3 con Python facilitan el diseño e implementación de redes
complejas o más dinámicas.
X En la red existen diversos recursos para la programación en Python a cualquier aplicación, tal como GNS3.
Se estima que este informe tenga entre 10-20 páginas y sea entregado en forma digital. La Práctica puede
realizarla solo o en grupo.

8. B IBLIOGRAF ÍA
X https://pyneng.readthedocs.io/en/latest/about.html
X https://www.tutorialspoint.com/python_penetration_testing/python_penetration_
testing_network_scanner.htm
X https://oznetnerd.com/2020/10/15/python-automating-network-health-checks/
X https://developer.cisco.com/network-automation/detail/7056758566348676/

8 Instructor: Mg. Ramiro Gustavo Banda Valdivia


E SCUELA P ROFESIONAL DE I NGENIER ÍA E LECTR ÓNICA 2021-B
T ELEM ÁTICA 17067
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA
LABORATORIO # 7 Emision:
D IAGN ÓSTICO DE REDES MEDIANTE P HYTON 20/12/2021

X https://www.tutorialspoint.com/python/python_networking.htm

9. RUBRICA

Observaciones
Fundamento t.

Conclusiones
Puntualidad

Porcentaje
Individual
Preguntas

Total
Desarrollo de experiencias
Q1 Q2
1 2 2 3 1.5 4 20 15

Mg. Ramiro Gustavo Banda Valdivia


Docente DAIE

9 Instructor: Mg. Ramiro Gustavo Banda Valdivia

También podría gustarte