SlideShare una empresa de Scribd logo
1 de 75
Descargar para leer sin conexión
Gestión Remota de Equipos
con Python
ING. JUAN RODRÍGUEZ
NOISE CIBER SEGURIDAD
¿Quién es Juan Rodríguez?
• 4 años programando PHP Freelance (tenía que hacer
algo en mis tiempos libres de la U)
• 2 años como programador senior PHP.
• 7 años como encargado de middleware en un
procesador de tarjetas.
– Inicio en el área de la seguridad.
– Implementador y facilitador de soluciones para PCI DSS.
– Creación de políticas, aplicación de controles y verificación
de los mismos.
• Mas de un año de trabajo con NOISE.
¿Qué es Python?
Python es un lenguaje de programación
interpretado, su filosofía es basada en hacer un
énfasis en la sintaxis ordenada para poder
obtener un código legible.
¿En qué lenguajes se basa?
Influenciado por:
• ABC
• C
• Perl
• JAVA
Filosofía
Cronología
Python aplicado a redes
Python y las redes nacen como una solución a
los tiempos largos de respuesta de equipos
puesto que se configuran remotamente por La
línea de Comando (CLI) o mensajes MIB bajo el
protocolo SNMP comúnmente utilizado en los
sistemas de gestión remota.
Antes de continuar unas preguntas
• ¿Cuántos son Sysadmin?
• ¿Cuántos son Netadmin?
• ¿Cuántos son Programadores?
• ¿Quiénes ya han programado en Python?
Repaso
Necesario pero nadie es experto en todas las
ciencias del universo 
REPASO GENERAL DE PYTHON
Parte 1
Antes de continuar
• ¿Tienen Python instalado?
• Usuarios de Linux lo poseen por defecto ya
que viene preinstalado en la mayoría de
distibuciones.
• Usuarios de Windows se proporcionará el
instalador.
Palabras Clave
Python posee dos tipos de palabras reservadas
las palabras clave y las funciones, la gran
diferencia es que las palabras fueron concebidas
cuando fue escrito el núcleo del lenguaje y
algunas no necesitan parámetros, y las
funciones han sido agregadas al núcleo de
Python y necesitan parámetros o al menos
ponerle "()" al final.
Ejemplo de palabras clave
Palabra Clave Descripción
True Valor booleano
False Valor booleano
None Valor
and Operador booleano
or Operador booleano
not Operador booleano
as Sirve para “renombrar” una librería o sub-librería
assert Evalúa una variable o una condición y si el valor el
False imprime o muestra un error
if Inicia una estructura if o switch/case
else Continúa la estructura if o termina la estructura case
elif Continua la estructura switch/case
Ejemplos de funciones
Función Descripción
abs() Devuelve el valor absoluto de un numero
all() Devuelve verdadero si todos los elementos en un objeto
iterable son verdaderos
any() Devuelve verdadero si cualquier elemento en un objeto
iterable es verdadero
ascii() Devuelve una versión legible de un objeto
bool() Devuelve el valor booleano de un objeto
dict() Devuelve un arreglo de un diccionario
dir() Devuelve una lista de propiedades y métodos de un objeto
divmod() Devuelve el cociente y el sobrante cuando el argumento “a” es
dividido entre el argumento “b”
enumerate() Toma una colección (lista, tupla,etc) y la devuelve como objeto
enumerado
eval() Evalúa y ejecuta una expresión
exec() Ejecuta el código especificado
Identificadores
Los identificadores son los nombres que pueden
tener las variables, como en todo lenguaje de
programación, Python tiene ciertas reglas para
los identificadores de las variables:
• No puede comenzar con digito
• Es case sensitive (distingue entre mayúsculas y
minúsculas)
• No pueden ser palabras reservadas
Modos de programación
• Interactivo.
• Por medio de scripts.
Programación interactiva
¿Es esto todo lo que debo saber?
No, Python es un lenguaje extenso, sin embargo
para fines del taller esta es la base.
Fuente: https://xkcd.com/353/
¿QUIÉN DIJO MODELO OSI?
Parte 2
Las capas de OSI
Cabecera IP
Cabecera TCP
Cabecera UDP
Cabecera ICMP
Librería Scapy
Una herramienta poderosa de manipulación de
paquetes que permite forjar paquetes de una
amplia variedad de protocolos.
¿Que podemos hacer con esto?
Utilizar la librería Scapy de Python para:
• Crear paquetes personalizados.
• Verificar la salud de los paquetes de la red.
• Esconde información en los campos no
utilizados de las cabeceras.
• Escaneo de red y descubrimiento de equipos.
• Pero solo tenemos 4 horas, asi que subiremos
a la capa 7 
¿Qué operaciones nos interesaría
saber?
• Escanear rápido una red.
• Identificar hosts caídos.
• Ejecutar comandos remotos.
• Integrar APIs.
IDENTIFICACIÓN DE HOSTS
Parte 3
Python-nmap
# pip3 install python-nmap
Llamadas de sistema
Si no deseamos utilizar librerías adicionales y
poseemos otras aplicaciones instaladas que
pueden realizan la operación solicitada,
podemos invocarlos por medio de una llamada
de sistema.
RETO
Crear un script que escanee una red e
identifique todos los equipos que posean el
puerto TCP(80) abierto.
EJECICUCIÓN DE COMANDOS
REMOTOS
Parte 4
¿Cómo podemos ejecutar comandos
remotos?
• ¿Alguna idea?
Ejecutar un comando remoto por SSH
Para ejecutar un comando remoto no es
necesario mantener una sesion persistente.
¿Es necesario utilizar siempre un
password?
No, se pueden implementar llaves de cifrado sin
contraseña.
Contraseña vs Llaves en SSH
Contraseña Llave
Definición Una frase secreta creada
por un usuario
Una frase creada por un
sistema para bloquear o
desbloquear funciones
criptográficas
Usado en Cifrado, autenticación Cifrado, autenticación,
certificados digitales,
comunicaciones seguridad
Aleatoriedad Puede contener datos no
aleatorios como palabras
de diccionarios
Usualmente cercano a lo
aleatorio
Fuente: https://simplicable.com/new/password-vs-key
Creación de llaves en linux
• Crear un usuario al cual se estará conectando el equipo.
• Aplicar reglas de control administrativo (sudo) según sea
necesario.
• Crear par de llaves.
• Deshabilitar el uso de contraseña para el inicio de sesion
(solo llave) para el usuario dado.
• Intercambiar la llave con el cliente (o usuario que se
conectará).
• …
• Profit!!
Creando el usuario
En equipo remoto
ADVERTENCIA
La siguiente configuración representa un falla de
seguridad, sin embargo, se utilizará de esta
forma para facilitar los fines educativos de la
ejecución de comando administrativos.
Nunca utilizar de dicha forma en ambientes
productivos.
Aplicando reglas de administrativas
# sudo nano /etc/sudoers
Recomendado: https://www.sudo.ws/man/1.8.15/sudoers.man.html
Fuente: https://xkcd.com/838/
El correcto uso de sudo
• Únicamente permitir los comando necesarios.
• Utilizar rutas completas para especificar
comandos.
• Especificar los switches (parámetros) que podrá
ejecutar con ese comando.
• Nunca utilizar un usuario con todos los privilegios
para conexiones remotas.
Recomendado: http://toroid.org/sudoers-syntax
Creando par de llaves
En equipo cliente
Favor compartir sus llaves públicas
https://tinyurl.com/yam72756
Deshabilitar contraseña
En equipo remoto
# sudo nano /etc/ssh/sshd_config
Extrayendo la llave del cliente
Primero exportar la llave publica del equipo local
(cliente)
Importando la llave en el servidor
(equipo remoto)
# nano ~/.ssh/authorized_keys
Nota: iniciar sesion con el usuario “remoto”
Probando funcionamiento
Profit!!
EJECUCIÓN DE COMANDO
REMOTOS EN PYTHON
Parte 5
Librería Paramiko
Una implementación del protocolo SSHv2 para
Python el cual funciona como ambos, tanto
cliente como servidor.
Instalación de la librería
# pip3 install paramiko
¿Complicado verdad?
Ejecutando comandos en el equipo
remoto (con password)
Ejecutando comandos en el equipo
remoto (con llave)
¿Cuál es la ventaja de ejecutar
comandos remotos?
Se pueden automatizar tareas acorde a la
necesidad y ambientes del negocio como:
• Enrutamiento.
• Reglas de firewall.
• Configuración de VPN.
• Estadísticas de uso de recursos.
• Reinicios programados, etc.
Procesando la salida de comandos
En Python es posible ejecutar funciones sobre
cadenas para poder procesar la salida de texto,
realizar cortes y obtener subcadenas:
RETO
Obtener la IP privada de alice y bob y ejecutar
un ping (-c 1) al Gateway para obtener el tiempo
de respuesta.
Los comandos remotos son útiles,
pero…
• Es necesario realizar un parsing por comando
generado de lo devuelto.
• Debemos considerar todos los posibles casos
de uso.
API’S EN PYTHON
Parte 6
Fabric
Una librería diseñada para ejecutar comandos
de Shell remoto sobre SSH.
# pip3 install fabric
Uso de fabric
Fuente: http://www.fabfile.org/
¿Cuál es la gran ventaja de fabric?
Muchas, pero una de ellas es que nos permite
ejecutar un comando en múltiples equipos (lo
siguiente es de la documentación):
API’s de fabricantes
La adopción de Python ha sido tal que muchos
fabricantes han creado sus API’s para conectarse
directamente, entre ellos tenemos:
• Fortinet
• Cisco
• Juniper
FortiOSAPI
Python en los equipos de red
Cisco incluye Python en sus equipos para la
creación de scripts por medio del “Cisco Python
Module”.
https://www.cisco.com/c/en/us/td/docs/ios-
xml/ios/prog/configuration/166/b_166_progra
mmability_cg/python_api.html
VIENDO AL HORIZONTE
Parte 7
¿Dónde más puedo utilizar Python?
El internet of things y el mundo maker nos ha
traído muchas cosas interesante:
Micropython
Una versión reducida de Python 3 diseñana para
correr de forma nativa en microcontrolador. En
uso con ESP8266 y ESP32 se puede crear un
sistema de monitoreo conectado a WiFi o de
visualización de alertas con modelos que poseen
LCD.
En conclusión
• Cada ambiente es diferente a otro, asi como cada
fabricante es diferente, debemos hacer planes de
acuerdo a cada infraestructura.
• Puntos clave a monitorear en la red: uso de
recursos, carga en CPU, cantidad de conexiones
recurrentes, eventos de error, etc.
• Python es un lenguaje multiplataforma por lo que
no debemos enfocarnos a que es algo atado a
Linux.
¿PREGUNTAS?
¡MUCHAS GRACIAS!
Referencias Adicionales
• https://www.w3schools.com/python/python_cla
sses.asp
• https://docs.python.org/3.8/tutorial/classes.html
• https://doc.lagout.org/programmation/python/B
eginning%20Programming%20with%20Python%2
0for%20Dummies%20%5BMueller%202014-09-
22%5D.pdf
• https://www.packtpub.com/packt/free-
ebook/learning-python
• https://es.wikipedia.org/wiki/Modelo_OSI

Más contenido relacionado

La actualidad más candente

Trabajodetecnologia
TrabajodetecnologiaTrabajodetecnologia
Trabajodetecnologiaajmillan94
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application TechnologiesSehan Lee
 
Aplicacion web presentacion
Aplicacion web   presentacionAplicacion web   presentacion
Aplicacion web presentacionalumno17ja
 
Riesgos de navegar en internet
Riesgos de navegar en internetRiesgos de navegar en internet
Riesgos de navegar en internetSpericueta
 
Cyber Hygiene in Dailylife
Cyber Hygiene in DailylifeCyber Hygiene in Dailylife
Cyber Hygiene in Dailylifessuser98b1f71
 
Historia de la web
Historia de la web Historia de la web
Historia de la web LuzSegundo2
 
Conceptos basicos-de-internet
Conceptos basicos-de-internetConceptos basicos-de-internet
Conceptos basicos-de-internetJuan Carl
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration TestingSubho Halder
 
Presentacion powerpoing utilidades del messenger
Presentacion powerpoing utilidades del messengerPresentacion powerpoing utilidades del messenger
Presentacion powerpoing utilidades del messengerelgil2698
 
Administrador de dispositivos
Administrador de dispositivosAdministrador de dispositivos
Administrador de dispositivostecnologia01
 
Spywares & Keyloggers
Spywares & KeyloggersSpywares & Keyloggers
Spywares & KeyloggersJithin James
 
Instalacion de packet tracer
Instalacion de packet tracerInstalacion de packet tracer
Instalacion de packet tracerCarlos Hernandez
 
Seguridad en internet y redes sociales
Seguridad  en  internet  y redes  socialesSeguridad  en  internet  y redes  sociales
Seguridad en internet y redes socialesCapestella
 
Unidad 6 Seguridad en redes corporativas
Unidad 6 Seguridad en redes corporativasUnidad 6 Seguridad en redes corporativas
Unidad 6 Seguridad en redes corporativasvverdu
 
Bsides Delhi Security Automation for Red and Blue Teams
Bsides Delhi Security Automation for Red and Blue TeamsBsides Delhi Security Automation for Red and Blue Teams
Bsides Delhi Security Automation for Red and Blue TeamsSuraj Pratap
 

La actualidad más candente (20)

Servidor proxy en endian
Servidor proxy en endianServidor proxy en endian
Servidor proxy en endian
 
Trabajodetecnologia
TrabajodetecnologiaTrabajodetecnologia
Trabajodetecnologia
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application Technologies
 
Aplicacion web presentacion
Aplicacion web   presentacionAplicacion web   presentacion
Aplicacion web presentacion
 
Riesgos de navegar en internet
Riesgos de navegar en internetRiesgos de navegar en internet
Riesgos de navegar en internet
 
Cyber Hygiene in Dailylife
Cyber Hygiene in DailylifeCyber Hygiene in Dailylife
Cyber Hygiene in Dailylife
 
Historia de la web
Historia de la web Historia de la web
Historia de la web
 
Conceptos basicos-de-internet
Conceptos basicos-de-internetConceptos basicos-de-internet
Conceptos basicos-de-internet
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration Testing
 
Presentacion powerpoing utilidades del messenger
Presentacion powerpoing utilidades del messengerPresentacion powerpoing utilidades del messenger
Presentacion powerpoing utilidades del messenger
 
Administrador de dispositivos
Administrador de dispositivosAdministrador de dispositivos
Administrador de dispositivos
 
Shareware
SharewareShareware
Shareware
 
Spywares & Keyloggers
Spywares & KeyloggersSpywares & Keyloggers
Spywares & Keyloggers
 
Fundamentos de Seguridad Informatica
Fundamentos de Seguridad InformaticaFundamentos de Seguridad Informatica
Fundamentos de Seguridad Informatica
 
Software libre vs software pirata
Software libre vs software pirataSoftware libre vs software pirata
Software libre vs software pirata
 
Security testing in mobile applications
Security testing in mobile applicationsSecurity testing in mobile applications
Security testing in mobile applications
 
Instalacion de packet tracer
Instalacion de packet tracerInstalacion de packet tracer
Instalacion de packet tracer
 
Seguridad en internet y redes sociales
Seguridad  en  internet  y redes  socialesSeguridad  en  internet  y redes  sociales
Seguridad en internet y redes sociales
 
Unidad 6 Seguridad en redes corporativas
Unidad 6 Seguridad en redes corporativasUnidad 6 Seguridad en redes corporativas
Unidad 6 Seguridad en redes corporativas
 
Bsides Delhi Security Automation for Red and Blue Teams
Bsides Delhi Security Automation for Red and Blue TeamsBsides Delhi Security Automation for Red and Blue Teams
Bsides Delhi Security Automation for Red and Blue Teams
 

Similar a Gestión Remota Equipos Python

2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOTDavid Narváez
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptxDyllanBastidas
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoBig Data Spain
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Brat Stell
 
Java janner
Java   jannerJava   janner
Java jannersena
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.guestdf1874
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_javaSaviotec
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosIrontec
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4David Ramirez
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerceDavid Ramirez
 

Similar a Gestión Remota Equipos Python (20)

2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT2. Introduccion Programabilidad Arquitectura IOT
2. Introduccion Programabilidad Arquitectura IOT
 
Python
PythonPython
Python
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx01 T1 2021 Sistemas Embebidos.pptx
01 T1 2021 Sistemas Embebidos.pptx
 
Alumno
AlumnoAlumno
Alumno
 
Starta KaliLinux
Starta KaliLinuxStarta KaliLinux
Starta KaliLinux
 
Capítulo 2 todo se vuelve programable v1
Capítulo 2 todo se vuelve programable v1Capítulo 2 todo se vuelve programable v1
Capítulo 2 todo se vuelve programable v1
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3
 
Java janner
Java   jannerJava   janner
Java janner
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Curso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzadosCurso de VoIP / Parte 04: Conceptos avanzados
Curso de VoIP / Parte 04: Conceptos avanzados
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4Interchange How-To for Red Hat Linux ES4
Interchange How-To for Red Hat Linux ES4
 
Interchange CMS - e-commerce
Interchange CMS - e-commerceInterchange CMS - e-commerce
Interchange CMS - e-commerce
 

Último

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Último (20)

Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

Gestión Remota Equipos Python

  • 1. Gestión Remota de Equipos con Python ING. JUAN RODRÍGUEZ NOISE CIBER SEGURIDAD
  • 2. ¿Quién es Juan Rodríguez? • 4 años programando PHP Freelance (tenía que hacer algo en mis tiempos libres de la U) • 2 años como programador senior PHP. • 7 años como encargado de middleware en un procesador de tarjetas. – Inicio en el área de la seguridad. – Implementador y facilitador de soluciones para PCI DSS. – Creación de políticas, aplicación de controles y verificación de los mismos. • Mas de un año de trabajo con NOISE.
  • 3. ¿Qué es Python? Python es un lenguaje de programación interpretado, su filosofía es basada en hacer un énfasis en la sintaxis ordenada para poder obtener un código legible.
  • 4. ¿En qué lenguajes se basa? Influenciado por: • ABC • C • Perl • JAVA
  • 7. Python aplicado a redes Python y las redes nacen como una solución a los tiempos largos de respuesta de equipos puesto que se configuran remotamente por La línea de Comando (CLI) o mensajes MIB bajo el protocolo SNMP comúnmente utilizado en los sistemas de gestión remota.
  • 8. Antes de continuar unas preguntas • ¿Cuántos son Sysadmin? • ¿Cuántos son Netadmin? • ¿Cuántos son Programadores? • ¿Quiénes ya han programado en Python?
  • 9. Repaso Necesario pero nadie es experto en todas las ciencias del universo 
  • 10. REPASO GENERAL DE PYTHON Parte 1
  • 11. Antes de continuar • ¿Tienen Python instalado? • Usuarios de Linux lo poseen por defecto ya que viene preinstalado en la mayoría de distibuciones. • Usuarios de Windows se proporcionará el instalador.
  • 12. Palabras Clave Python posee dos tipos de palabras reservadas las palabras clave y las funciones, la gran diferencia es que las palabras fueron concebidas cuando fue escrito el núcleo del lenguaje y algunas no necesitan parámetros, y las funciones han sido agregadas al núcleo de Python y necesitan parámetros o al menos ponerle "()" al final.
  • 13. Ejemplo de palabras clave Palabra Clave Descripción True Valor booleano False Valor booleano None Valor and Operador booleano or Operador booleano not Operador booleano as Sirve para “renombrar” una librería o sub-librería assert Evalúa una variable o una condición y si el valor el False imprime o muestra un error if Inicia una estructura if o switch/case else Continúa la estructura if o termina la estructura case elif Continua la estructura switch/case
  • 14. Ejemplos de funciones Función Descripción abs() Devuelve el valor absoluto de un numero all() Devuelve verdadero si todos los elementos en un objeto iterable son verdaderos any() Devuelve verdadero si cualquier elemento en un objeto iterable es verdadero ascii() Devuelve una versión legible de un objeto bool() Devuelve el valor booleano de un objeto dict() Devuelve un arreglo de un diccionario dir() Devuelve una lista de propiedades y métodos de un objeto divmod() Devuelve el cociente y el sobrante cuando el argumento “a” es dividido entre el argumento “b” enumerate() Toma una colección (lista, tupla,etc) y la devuelve como objeto enumerado eval() Evalúa y ejecuta una expresión exec() Ejecuta el código especificado
  • 15. Identificadores Los identificadores son los nombres que pueden tener las variables, como en todo lenguaje de programación, Python tiene ciertas reglas para los identificadores de las variables: • No puede comenzar con digito • Es case sensitive (distingue entre mayúsculas y minúsculas) • No pueden ser palabras reservadas
  • 16. Modos de programación • Interactivo. • Por medio de scripts.
  • 18. ¿Es esto todo lo que debo saber? No, Python es un lenguaje extenso, sin embargo para fines del taller esta es la base.
  • 20. ¿QUIÉN DIJO MODELO OSI? Parte 2
  • 26. Librería Scapy Una herramienta poderosa de manipulación de paquetes que permite forjar paquetes de una amplia variedad de protocolos.
  • 27. ¿Que podemos hacer con esto? Utilizar la librería Scapy de Python para: • Crear paquetes personalizados. • Verificar la salud de los paquetes de la red. • Esconde información en los campos no utilizados de las cabeceras. • Escaneo de red y descubrimiento de equipos. • Pero solo tenemos 4 horas, asi que subiremos a la capa 7 
  • 28. ¿Qué operaciones nos interesaría saber? • Escanear rápido una red. • Identificar hosts caídos. • Ejecutar comandos remotos. • Integrar APIs.
  • 31.
  • 32. Llamadas de sistema Si no deseamos utilizar librerías adicionales y poseemos otras aplicaciones instaladas que pueden realizan la operación solicitada, podemos invocarlos por medio de una llamada de sistema.
  • 33.
  • 34.
  • 35. RETO Crear un script que escanee una red e identifique todos los equipos que posean el puerto TCP(80) abierto.
  • 37. ¿Cómo podemos ejecutar comandos remotos? • ¿Alguna idea?
  • 38. Ejecutar un comando remoto por SSH Para ejecutar un comando remoto no es necesario mantener una sesion persistente.
  • 39. ¿Es necesario utilizar siempre un password? No, se pueden implementar llaves de cifrado sin contraseña.
  • 40. Contraseña vs Llaves en SSH Contraseña Llave Definición Una frase secreta creada por un usuario Una frase creada por un sistema para bloquear o desbloquear funciones criptográficas Usado en Cifrado, autenticación Cifrado, autenticación, certificados digitales, comunicaciones seguridad Aleatoriedad Puede contener datos no aleatorios como palabras de diccionarios Usualmente cercano a lo aleatorio Fuente: https://simplicable.com/new/password-vs-key
  • 41. Creación de llaves en linux • Crear un usuario al cual se estará conectando el equipo. • Aplicar reglas de control administrativo (sudo) según sea necesario. • Crear par de llaves. • Deshabilitar el uso de contraseña para el inicio de sesion (solo llave) para el usuario dado. • Intercambiar la llave con el cliente (o usuario que se conectará). • … • Profit!!
  • 42. Creando el usuario En equipo remoto
  • 43. ADVERTENCIA La siguiente configuración representa un falla de seguridad, sin embargo, se utilizará de esta forma para facilitar los fines educativos de la ejecución de comando administrativos. Nunca utilizar de dicha forma en ambientes productivos.
  • 44. Aplicando reglas de administrativas # sudo nano /etc/sudoers Recomendado: https://www.sudo.ws/man/1.8.15/sudoers.man.html
  • 46. El correcto uso de sudo • Únicamente permitir los comando necesarios. • Utilizar rutas completas para especificar comandos. • Especificar los switches (parámetros) que podrá ejecutar con ese comando. • Nunca utilizar un usuario con todos los privilegios para conexiones remotas. Recomendado: http://toroid.org/sudoers-syntax
  • 47. Creando par de llaves En equipo cliente
  • 48. Favor compartir sus llaves públicas https://tinyurl.com/yam72756
  • 49. Deshabilitar contraseña En equipo remoto # sudo nano /etc/ssh/sshd_config
  • 50. Extrayendo la llave del cliente Primero exportar la llave publica del equipo local (cliente)
  • 51. Importando la llave en el servidor (equipo remoto) # nano ~/.ssh/authorized_keys Nota: iniciar sesion con el usuario “remoto”
  • 53. EJECUCIÓN DE COMANDO REMOTOS EN PYTHON Parte 5
  • 54. Librería Paramiko Una implementación del protocolo SSHv2 para Python el cual funciona como ambos, tanto cliente como servidor.
  • 55. Instalación de la librería # pip3 install paramiko ¿Complicado verdad?
  • 56. Ejecutando comandos en el equipo remoto (con password)
  • 57. Ejecutando comandos en el equipo remoto (con llave)
  • 58. ¿Cuál es la ventaja de ejecutar comandos remotos? Se pueden automatizar tareas acorde a la necesidad y ambientes del negocio como: • Enrutamiento. • Reglas de firewall. • Configuración de VPN. • Estadísticas de uso de recursos. • Reinicios programados, etc.
  • 59. Procesando la salida de comandos En Python es posible ejecutar funciones sobre cadenas para poder procesar la salida de texto, realizar cortes y obtener subcadenas:
  • 60. RETO Obtener la IP privada de alice y bob y ejecutar un ping (-c 1) al Gateway para obtener el tiempo de respuesta.
  • 61. Los comandos remotos son útiles, pero… • Es necesario realizar un parsing por comando generado de lo devuelto. • Debemos considerar todos los posibles casos de uso.
  • 63. Fabric Una librería diseñada para ejecutar comandos de Shell remoto sobre SSH. # pip3 install fabric
  • 64. Uso de fabric Fuente: http://www.fabfile.org/
  • 65. ¿Cuál es la gran ventaja de fabric? Muchas, pero una de ellas es que nos permite ejecutar un comando en múltiples equipos (lo siguiente es de la documentación):
  • 66. API’s de fabricantes La adopción de Python ha sido tal que muchos fabricantes han creado sus API’s para conectarse directamente, entre ellos tenemos: • Fortinet • Cisco • Juniper
  • 68. Python en los equipos de red Cisco incluye Python en sus equipos para la creación de scripts por medio del “Cisco Python Module”. https://www.cisco.com/c/en/us/td/docs/ios- xml/ios/prog/configuration/166/b_166_progra mmability_cg/python_api.html
  • 70. ¿Dónde más puedo utilizar Python? El internet of things y el mundo maker nos ha traído muchas cosas interesante:
  • 71. Micropython Una versión reducida de Python 3 diseñana para correr de forma nativa en microcontrolador. En uso con ESP8266 y ESP32 se puede crear un sistema de monitoreo conectado a WiFi o de visualización de alertas con modelos que poseen LCD.
  • 72. En conclusión • Cada ambiente es diferente a otro, asi como cada fabricante es diferente, debemos hacer planes de acuerdo a cada infraestructura. • Puntos clave a monitorear en la red: uso de recursos, carga en CPU, cantidad de conexiones recurrentes, eventos de error, etc. • Python es un lenguaje multiplataforma por lo que no debemos enfocarnos a que es algo atado a Linux.
  • 75. Referencias Adicionales • https://www.w3schools.com/python/python_cla sses.asp • https://docs.python.org/3.8/tutorial/classes.html • https://doc.lagout.org/programmation/python/B eginning%20Programming%20with%20Python%2 0for%20Dummies%20%5BMueller%202014-09- 22%5D.pdf • https://www.packtpub.com/packt/free- ebook/learning-python • https://es.wikipedia.org/wiki/Modelo_OSI