SlideShare una empresa de Scribd logo
1 de 25
Ingeniería reversa de
dispositivos seriales con
    algo de Python

    Alfonso de la Guarda Reyes
         alfonsodg@gmail.com
                   @alfonsodg
DISCLAIMER
Todo el contenido de esta charla es resultado de investigación
con fines didácticos y educativos. El autor no se hace
responsable por el uso del conocimiento contenido en la
siguiente presentación. La información contenida debe ser
utilizada únicamente para fines éticos y con la debida
autorización.
Todo descubrimiento realizado, ha sido y será usado de forma
legal. La audiencia debe asumir todo lo que se exponga hoy,
como “falso” y “sin fundamento” hasta que lo compruebe
personalmente. Limahack no es el autor directo de ninguno de
los descubrimientos expuestos, ni de las herramientas
demostradas, ni los conoce.
Todas las opiniones vertidas durante esta presentación son
exclusivas del expositor, Limahack no es responsable de
ninguna de las opiniones vertidas.
Todavía hay dispositivos con
                     puertos seriales?


              SI

Como también: paralelos, usb, con
puertos propietarios, etc....


Es un estándar de la industria... aunque
hoy en día su uso es más especializado
Cómo funcionan los puertos
                                     serie?

●
    Interfaz de                 ●
                                    Seguimiento de un
    comunicaciones digital          protocolo, usualmente
                                    “estándar”
●
    Transmisión bit a bit
●
    Normas RS-232 y RS-
                                ●
                                    Los protocolos tienden
    422 / Propietarias              a emplear secuencias
                                    ASCII
●
    Asíncronos                  ●
                                    Algunos protocolos
●
    Simplex, Half Duplex y          propietarios hacen uso
    Full Duplex                     de IO/CTL
●
    Chips UART
Por qué necesito manipular los
                            puertos serie?
●
    Acceder a funcionalidades particulares de
    nuestros dispositivos
●
    Enviar y recibir datos de los mismos
    (dispositivos)
●
    En general para controlarlos... hasta el
    punto en donde el fabricante lo permita
Es complicado acceder a los
                        dispositivos por puertos serie?
●
    Ingredientes: puertos series (emisor/receptor),
    cable serie, software de comunicaciones,
    parámetros y (quizás) conocer el protocolo...
●
    Preparación: mezclar los ingredientes según las
    especificaciones del fabricante del dispositivo
●
    Presentación: Hacer lo que deseamos según lo
    permita el fabricante
Y qué sucede cuándo la
 receta con funciona?
Hackeando comunicaciones
                       seriales (preparación)
●
    Informarnos: buscar todo material relativo
    al dispositivo y/o hasta de sus chips, cada
    uno puede revelar valiosa información


●
    Buscar si hay software que permita
    comunicarse con el dispositivo de
    alguna/cualquier manera
Hackeando comunicaciones
                        seriales (practicando)
●
    Verificar pinout de puertos y cables
●
    Configurar parámetros del puerto
●
    Probar protocolos o comandos, buscando
    respuesta de los dispositivos
●
    “Sniffear” un aplicativo que trabaje con el
    dispositivo e interpretar las señales /
    comandos
Receta 1: Dispositivo Lector de
                      Tarjetas por Proximidad
●
    Transmisión síncrona
●
    Comando de petición de registros
●
    Comando de validación de recepción con
    llave para vacío de memoria
●
    Tramas simples alfanuméricas con código
    de tiempo e identificación de usuario
La experiencia de las radio
         Tadirant
Equipos VHF 9000 / HF 6000

●
    Objetivo: Integrar los canales de datos de los
    equipos a un sistema C4I
●
    Problema: El fabricante no entregó la
    información técnica para la integración de los
    dispositivos (ni quería hacerlo)
●
    Solución: Aplicar ingeniería reversa al puerto
    de comunicaciones para replicar el protocolo
Communication_Request (COM_REQ)




     HF-6000
      Radio
                              HF                 HF         External
  (RT/RE-6001
 Exciter & Radio             Power             Antenna      Control
System Controller)          Amplifier          Coupler       Device
Rx           Tx           Tx         Rx   Tx         Rx    Tx        Rx




       MASTER                  Slave #1         Slave #2        Slave #N
Radios Tadirant VHF 9000
●
  Con la documentación obtenida se pudo conseguir el pinout para las
  conexiones
●
  Se ubicó un software que permitía la transmisión de flujos de vídeo, se
  procedió al sniffing (monitoreo) de las señales
●
  El protocolo está basado en señales IO/CTL (secuencias de bits)
●
  Con la documentación auxiliar se procedió a completar la
  configuración de los parámetros del equipo
●
  Comunicaciones independientes del canal o modalidad (salto de
  frecuencia, etc.)
Radios Tadirant HF 6000



  No se pudo concluir esta fase, pero se
 encontró que el pinout era diferente y que
    algunas de las señales (protocolo)
requerían ajustes para cerrar el proceso....

Era una cuestión de días y más pruebas...
...este... y Python dónde
            está?
Y ahora Python...

●
    Permite prototipado rápido de los
    protocolos
●
    Al ser interpretado podemos
    experimentar con el proceso de la
    ingeniería reversa paso a paso
●
    Tiene una magnífica librería para el
    manejo de puertos seriales
Suena bonito, pero... “show
                        me the code”




https://bitbucket.org/alfonsodg/radio-data
Gracias!
alfonsodg@gmail.com

Más contenido relacionado

La actualidad más candente

Propuesta RITE E-Controls
Propuesta RITE E-ControlsPropuesta RITE E-Controls
Propuesta RITE E-ControlsE-Controls
 
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Cesar Vele
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010Rubén Loredo
 
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINOVictor Asanza
 
La Familia De Microcontroladores Pic
La Familia De Microcontroladores PicLa Familia De Microcontroladores Pic
La Familia De Microcontroladores PicAndres
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagjoaquinin1
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1José Pujol Pérez
 
Manual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraManual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraEdwin Rosario Gabriel
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaGerardo C
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicacionesJose Antonio Vacas
 
Diseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasDiseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasRFIC-IUMA
 

La actualidad más candente (20)

Intro arduino
Intro arduinoIntro arduino
Intro arduino
 
Propuesta RITE E-Controls
Propuesta RITE E-ControlsPropuesta RITE E-Controls
Propuesta RITE E-Controls
 
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
Aplicación de los fpga’s en radares de vigilancia aérea desde tierra y radare...
 
Introduccion Arduino 2010
Introduccion  Arduino 2010Introduccion  Arduino 2010
Introduccion Arduino 2010
 
Taller arduino I - CyLicon Valley
Taller arduino I - CyLicon ValleyTaller arduino I - CyLicon Valley
Taller arduino I - CyLicon Valley
 
Iniciacion arduino
Iniciacion arduinoIniciacion arduino
Iniciacion arduino
 
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON MÓDULOS ARDUINO
 
2 protocolo hart
2 protocolo hart2 protocolo hart
2 protocolo hart
 
ARDUINO
ARDUINOARDUINO
ARDUINO
 
Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550Curso de microcontroladores pic18 f4550
Curso de microcontroladores pic18 f4550
 
La Familia De Microcontroladores Pic
La Familia De Microcontroladores PicLa Familia De Microcontroladores Pic
La Familia De Microcontroladores Pic
 
Seminario de Arduino
Seminario de ArduinoSeminario de Arduino
Seminario de Arduino
 
FPGA.
FPGA. FPGA.
FPGA.
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
 
Taller fabricación de robots-d1
Taller fabricación de robots-d1Taller fabricación de robots-d1
Taller fabricación de robots-d1
 
Arduino componentes
Arduino componentesArduino componentes
Arduino componentes
 
Manual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraManual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de altera
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 
Arduino práctico comunicaciones
Arduino práctico   comunicacionesArduino práctico   comunicaciones
Arduino práctico comunicaciones
 
Diseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricasDiseño de un circuito wake-up para redes de sensores inalámbricas
Diseño de un circuito wake-up para redes de sensores inalámbricas
 

Similar a Ingenieria Reversa de Puertos Series con algo de Python

T3ch fest leganes_final
T3ch fest leganes_finalT3ch fest leganes_final
T3ch fest leganes_finalRober Garamo
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Buenaventura Salcedo Santos-Olmo
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdfelkinmeza1
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ipJose Luis Chauca
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02myconta
 
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dosYersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dosDavid Barroso
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduinomiguel cruz
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Nahuel Defossé
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...Carlos Camacho
 
Info plc net_redes_industriales
Info plc net_redes_industrialesInfo plc net_redes_industriales
Info plc net_redes_industrialesJonathan Cardenas
 
Trabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezTrabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezrjimenez1012
 
WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"Fundación Proydesa
 
Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"Fundación Proydesa
 
Analisis de factibilidad
Analisis de factibilidadAnalisis de factibilidad
Analisis de factibilidadsaydo2007
 
Comoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.orgComoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.orgBartOc3
 
Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...George Romero Baltazar
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskIrontec
 

Similar a Ingenieria Reversa de Puertos Series con algo de Python (20)

T3ch fest leganes_final
T3ch fest leganes_finalT3ch fest leganes_final
T3ch fest leganes_final
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
 
381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf381429156-PLC-DVP-Fundamentals-RevB.pdf
381429156-PLC-DVP-Fundamentals-RevB.pdf
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ip
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02
 
Presentacion Voip
Presentacion VoipPresentacion Voip
Presentacion Voip
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
 
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dosYersinia - Demostraciones prácticas de nuevos ataques de nivel dos
Yersinia - Demostraciones prácticas de nuevos ataques de nivel dos
 
Como controlar una carga con un Arduino
Como controlar una carga con un ArduinoComo controlar una carga con un Arduino
Como controlar una carga con un Arduino
 
Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5Creando un SCADA con Python y HTML5
Creando un SCADA con Python y HTML5
 
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...Barcamp 2015 -  Integración de proyectos embebidos utilizando Arduino, Raspbe...
Barcamp 2015 - Integración de proyectos embebidos utilizando Arduino, Raspbe...
 
Info plc net_redes_industriales
Info plc net_redes_industrialesInfo plc net_redes_industriales
Info plc net_redes_industriales
 
Trabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenezTrabajo manteniminto de computo robertjimenez
Trabajo manteniminto de computo robertjimenez
 
WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"WebRCT "VoIP también desde el navegador"
WebRCT "VoIP también desde el navegador"
 
Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"Webrtc"VoIP también desde el navegador"
Webrtc"VoIP también desde el navegador"
 
Analisis de factibilidad
Analisis de factibilidadAnalisis de factibilidad
Analisis de factibilidad
 
Factibilidad
FactibilidadFactibilidad
Factibilidad
 
Comoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.orgComoconstruimos bogota mesh.org
Comoconstruimos bogota mesh.org
 
Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...Determinar los componentes de una red e identificar y determinar los equipos ...
Determinar los componentes de una red e identificar y determinar los equipos ...
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 

Más de Alfonso de la Guarda Reyes (12)

Sis 2015 saludpol
Sis 2015 saludpolSis 2015 saludpol
Sis 2015 saludpol
 
Aplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnosticoAplicaciones de E-health para ayuda al diagnostico
Aplicaciones de E-health para ayuda al diagnostico
 
Proyecto COS
Proyecto COSProyecto COS
Proyecto COS
 
Presentacion imagenologia SINPA
Presentacion imagenologia SINPAPresentacion imagenologia SINPA
Presentacion imagenologia SINPA
 
Arquitecturas Libres en E-Health
Arquitecturas Libres en E-HealthArquitecturas Libres en E-Health
Arquitecturas Libres en E-Health
 
Por qué python?
Por qué python?Por qué python?
Por qué python?
 
Ehealth y Software Libre, una visión
Ehealth y Software Libre, una visiónEhealth y Software Libre, una visión
Ehealth y Software Libre, una visión
 
Military Research and Development with FLOSS
Military Research and Development with FLOSSMilitary Research and Development with FLOSS
Military Research and Development with FLOSS
 
GIS
GISGIS
GIS
 
Presentacion Blender
Presentacion BlenderPresentacion Blender
Presentacion Blender
 
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPEInvestigación y Desarrollo Tecnológico con FLOSS en el EPE
Investigación y Desarrollo Tecnológico con FLOSS en el EPE
 
Presentacion web2py
Presentacion web2pyPresentacion web2py
Presentacion web2py
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Último (10)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Ingenieria Reversa de Puertos Series con algo de Python

  • 1.
  • 2.
  • 3. Ingeniería reversa de dispositivos seriales con algo de Python Alfonso de la Guarda Reyes alfonsodg@gmail.com @alfonsodg
  • 4. DISCLAIMER Todo el contenido de esta charla es resultado de investigación con fines didácticos y educativos. El autor no se hace responsable por el uso del conocimiento contenido en la siguiente presentación. La información contenida debe ser utilizada únicamente para fines éticos y con la debida autorización. Todo descubrimiento realizado, ha sido y será usado de forma legal. La audiencia debe asumir todo lo que se exponga hoy, como “falso” y “sin fundamento” hasta que lo compruebe personalmente. Limahack no es el autor directo de ninguno de los descubrimientos expuestos, ni de las herramientas demostradas, ni los conoce. Todas las opiniones vertidas durante esta presentación son exclusivas del expositor, Limahack no es responsable de ninguna de las opiniones vertidas.
  • 5. Todavía hay dispositivos con puertos seriales? SI Como también: paralelos, usb, con puertos propietarios, etc.... Es un estándar de la industria... aunque hoy en día su uso es más especializado
  • 6.
  • 7. Cómo funcionan los puertos serie? ● Interfaz de ● Seguimiento de un comunicaciones digital protocolo, usualmente “estándar” ● Transmisión bit a bit ● Normas RS-232 y RS- ● Los protocolos tienden 422 / Propietarias a emplear secuencias ASCII ● Asíncronos ● Algunos protocolos ● Simplex, Half Duplex y propietarios hacen uso Full Duplex de IO/CTL ● Chips UART
  • 8. Por qué necesito manipular los puertos serie? ● Acceder a funcionalidades particulares de nuestros dispositivos ● Enviar y recibir datos de los mismos (dispositivos) ● En general para controlarlos... hasta el punto en donde el fabricante lo permita
  • 9. Es complicado acceder a los dispositivos por puertos serie? ● Ingredientes: puertos series (emisor/receptor), cable serie, software de comunicaciones, parámetros y (quizás) conocer el protocolo... ● Preparación: mezclar los ingredientes según las especificaciones del fabricante del dispositivo ● Presentación: Hacer lo que deseamos según lo permita el fabricante
  • 10. Y qué sucede cuándo la receta con funciona?
  • 11. Hackeando comunicaciones seriales (preparación) ● Informarnos: buscar todo material relativo al dispositivo y/o hasta de sus chips, cada uno puede revelar valiosa información ● Buscar si hay software que permita comunicarse con el dispositivo de alguna/cualquier manera
  • 12. Hackeando comunicaciones seriales (practicando) ● Verificar pinout de puertos y cables ● Configurar parámetros del puerto ● Probar protocolos o comandos, buscando respuesta de los dispositivos ● “Sniffear” un aplicativo que trabaje con el dispositivo e interpretar las señales / comandos
  • 13.
  • 14. Receta 1: Dispositivo Lector de Tarjetas por Proximidad ● Transmisión síncrona ● Comando de petición de registros ● Comando de validación de recepción con llave para vacío de memoria ● Tramas simples alfanuméricas con código de tiempo e identificación de usuario
  • 15. La experiencia de las radio Tadirant
  • 16. Equipos VHF 9000 / HF 6000 ● Objetivo: Integrar los canales de datos de los equipos a un sistema C4I ● Problema: El fabricante no entregó la información técnica para la integración de los dispositivos (ni quería hacerlo) ● Solución: Aplicar ingeniería reversa al puerto de comunicaciones para replicar el protocolo
  • 17.
  • 18. Communication_Request (COM_REQ) HF-6000 Radio HF HF External (RT/RE-6001 Exciter & Radio Power Antenna Control System Controller) Amplifier Coupler Device Rx Tx Tx Rx Tx Rx Tx Rx MASTER Slave #1 Slave #2 Slave #N
  • 19. Radios Tadirant VHF 9000 ● Con la documentación obtenida se pudo conseguir el pinout para las conexiones ● Se ubicó un software que permitía la transmisión de flujos de vídeo, se procedió al sniffing (monitoreo) de las señales ● El protocolo está basado en señales IO/CTL (secuencias de bits) ● Con la documentación auxiliar se procedió a completar la configuración de los parámetros del equipo ● Comunicaciones independientes del canal o modalidad (salto de frecuencia, etc.)
  • 20.
  • 21. Radios Tadirant HF 6000 No se pudo concluir esta fase, pero se encontró que el pinout era diferente y que algunas de las señales (protocolo) requerían ajustes para cerrar el proceso.... Era una cuestión de días y más pruebas...
  • 22. ...este... y Python dónde está?
  • 23. Y ahora Python... ● Permite prototipado rápido de los protocolos ● Al ser interpretado podemos experimentar con el proceso de la ingeniería reversa paso a paso ● Tiene una magnífica librería para el manejo de puertos seriales
  • 24. Suena bonito, pero... “show me the code” https://bitbucket.org/alfonsodg/radio-data