Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
2 / 14
https://medium.com/cyberdefendersprogram/python-for-cyber-security-lesson-1-introduction-to-python-
1976d817976
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
V.- PROCEDIMIENTO:
Descargar PHyton, abrir una consola de comandos y ejecutar phyton.exe enviadole como
parámetro el script deseado. Visualizar el resultado.
if __name__ == '__main__':
target = input('Enter the host to be scanned: ')
t_IP = gethostbyname(target)
print ('Starting scan on host: ', t_IP)
Con estos comandos escaneamos un host remoto e imprimimos todos los puertos abiertos. Pero
antes debemos proporcionar una dirección IP del host remoto como se muestra a continuación:
Al inicio nos pide la dirección IP del servidor, nunca usarlo en un servidor público sin
autorización.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
4 / 14
Al colocar el nombre de host para el escaneo de puertos puede tomando en cuenta las
consideraciones para que no se interpretarse como un delito el nombre de sitio web. El escaneo
de puertos es como ir a la casa de alguien y revisar sus ventanas y puertas.
esperados.
import os
import platform
● En el siguiente trozo de código le solicitamos al usuario los datos necesarios, como son el
host y el rango de la subred.
● En la próxima parte del código lo único que compruebo es que sistema operativo se está
utilizando a través de la función platform.system(). Esto es necesario porque queremos
mandar un solo paquete, y en Windows la instrucción se hace con -n y en unix con -c.
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)
t2 = datetime.now()
total = t2 - t1
print ("Scanning completed in: ",total)
Para ejecutar el segundo Script copiamos el código en un bloc y lo guardamos en una carpeta
con extensión .py (LAB7.py)
Ejecutamos la consola de comando y buscamos la carpeta que contiene el script, ejecutamos el
script mediante python LAB.py.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
7 / 14
Como se observa nos pide ingresar la dirección de red presionamos enter e ingresamos el
número de comienzo de la subred y luego ingresamos el número en el que deseas acabar el
barrido.
Por ejemplo en la imagen anterior con los datos que se insertó escanearíamos para ver si están
activas las direcciones desde la 192.168.0.190 a la 192.168.0.199. Se muestra el tiempo que
tardó el barrido pero en este rango no se encontró una dirección activa.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
8 / 14
VI.- CUESTIONARIO:
1.- Investigue y pruebe scripts para diagnóstico de redes, indique este aspecto en las
observaciones y conclusiones
A continuación mostraremos cómo crear un script de red, que permitirá detectar equipos
encendidos en la red haciendo lo que se conoce como ping sweep o barrido de ping, a través de
la herramienta ping propiamente:
Lo que hace este script de automatización es ejecutar un ping a cada dirección de IP en la red.
Entonces, el script invoca a Python, esto es necesario ya que al tratarse de un lenguaje
interpretado, debe invocar su intérprete, que en este caso es /usr/bin/Python.
La línea número 2 importa las librerías sys y subprocess. Sys provee funcionalidades y variables
relacionadas directamente con el intérprete, mientras que subprocess permite trabajar de forma
directa con órdenes del sistema operativo. Vale destacar que pueden importarse por separado
en líneas diferentes.
A partir de la quinta línea, básicamente lo que hace es mostrar un ejemplo de ejecución si el
comando no es correcto. Esto quiere decir que si solo se ejecutara la herramienta en Python, sin
ningún argumento, la ayuda dirá que debes ejecutar, por ejemplo, “psweep.py 10.0.0. “, que es lo
mismo que herramienta + direcciones IP.
A partir de la línea 6, si se ejecuta correctamente con el rango de direcciones IP, lo que hace es
ejecutar un solo ping a cada dirección en la red, para lo cual usa el comando ping –c1. Esto se
aplica en entornos Unix, ya que los ping son infinitos.
En caso de que responda un dispositivo conectado, la respuesta se vería de la siguiente
manera:
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
9 / 14
El equipo respondió, por lo que marca que en la dirección IP 192.168.221.128 hay un equipo
encendido y conectado sin marcar la respuesta como host unreachable.
2.- ¿Como podría integrar GNS3 con Phyton?
Por ejemplo es de la siguiente red :
Tenemos un terminal phyton desde una computadora remota podemos acceder a los routers
como se muestra en la figura:
PARTE D
Se puede mejorar las tareas y lograr una mayor eficiencia en los siguientes factores:
4.- Que otros lenguajes pueden usarse para automatizar tareas en redes?
busca simplificar y escalar las operaciones de red, y minimizar lo más posible los errores
de configuración. Asimismo, mejorar la agilidad, la escalabilidad y la excelencia operativa,
y la experiencia del cliente.
- La herramienta para el diagnóstico de redes realiza un ping y luego pasa a la siguiente
dirección IP, y así sucesivamente hasta analizar todo el rango de direcciones que se
establezca.
- Claramente las respuestas Host Unreachable significan que no responde nadie. Si bien
no significa que no haya un equipo, ya que puede tener bloqueada la respuesta en su
firewall, es un buen comienzo para ver si hay equipos en la red que respondan al
comando.
- Se ejecuta correctamente el rango de direcciones IP, lo que hace es ejecutar un solo ping
a cada dirección en la red, para lo cual usa el comando ping –c1. Esto se aplica en
entornos Unix, ya que los ping son infinitos.
- La librería Sys provee funcionalidades y variables relacionadas directamente con el
intérprete, mientras que subprocess permite trabajar de forma directa con órdenes del
sistema operativo.
- Se ha proporcionado una lista de todas las expresiones regulares de Python más
utilizadas con ejemplos de la vida real en la hoja de trucos anterior para realizar procesos
de scaneo de puertos y de realización de barrido.
- Es muy común encontrar vulnerabilidades en aquellas direcciones IP destinadas a dar
algún tipo de servicio al exterior, como por ejemplo aplicaciones o páginas web, que
implican la conexión de un usuario ajeno a la red interna.
- A través de nmap podemos implementar algunos programas de escaneo más
complicados, puede darnos el programa escrito anteriormente e intentar presentar
python-nmapEmpaquete para lograr algunas funciones útiles.
- Python es el lienzo que permite reflejar, de forma simple y elegante, las ideas en forma
algorítmica. Sus aplicaciones, tanto en la comunidad docente como en la científica, le
permitirán aumentar su popularidad y adopción a nivel internacional.
- Las direcciones, a menudo denominadas «direcciones de host» son la unidad más básica
cuando se trabaja con direccionamiento IP. La forma más sencilla de crear direcciones es
usar la función de fabrica.
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
13 / 14
- Las direcciones también se pueden crear directamente a partir de enteros. Los valores
que caben dentro de 32 bits se asume que son direcciones IPv4:
- El barrido de direcciones IP también se puede realizar mediante hilos.
- A comparación del barrido realizado con el Script 2 el barrido de direcciones IP mediante
hilos es algo más complejo, ya que se va a repartir el trabajo entre varios hilos y no solo
se va a quedar la carga uno, al final el tiempo se reduce mucho, así que podemos decir
que es una versión más óptima.
- El Script 2 no nos brinda una seguridad de mostrarnos los host activos ya que se puede
bloquear el ping en un host bloqueando las peticiones y/o respuestas ICMP, de lo que sí
puedes estar seguro es de que si te dice que está activo.
- Existen otros tipos de escáner, como el de TCP que puedes hacerlo con los puertos que
normalmente deja abierto un sistema operativo, y la combinación del escáner TCP y el de
ping será más fiable.
VIII.- REFERENCIAS:
https://pyneng.readthedocs.io/en/latest/about.html
https://www.tutorialspoint.com/python_penetration_testing/python_penetration_testing_network_s
canner.htm
https://www.welivesecurity.com/la-es/2014/10/02/detectando-equipos-red-ping-python/
ESCUELA PROFESIONAL DE INGENIERÍA Emisión:
ELECTRÓNICA 24/04/2020
LABORATORIO DE CÓMPUTO EXPERIENCIA N° 1 Página
14 / 14
Rúbrica:
2 3 4 Preguntas del cuestionario sección 6 Observaciones y Total
respondidas satisfactoriamente conclusiones de
(parte 7) punto
s
4 4 2 Puntos 10 20