{"id":4220,"date":"2019-07-03T15:49:37","date_gmt":"2019-07-03T14:49:37","guid":{"rendered":"http:\/\/bitacora.eniac2000.com\/?p=4220"},"modified":"2025-10-11T05:16:31","modified_gmt":"2025-10-11T03:16:31","slug":"hacking-lab-sobre-modbus-tcp-introduccion","status":"publish","type":"post","link":"https:\/\/bitacora.eniac2000.com\/?p=4220","title":{"rendered":"Hacking lab sobre Modbus TCP. Introducci\u00f3n"},"content":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 1 de 4 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=hacking-lab-modbus-tcp\" class=\"series-1837\" title=\"Hacking Lab Modbus TCP\">Hacking Lab Modbus TCP<\/a><\/div><p>Por temas relacionados con un m\u00e1ster de ciberseguridad industrial que estoy cursando he tenido que preparar una serie de ejercicios para el mismo, entre los que se encuentra la realizaci\u00f3n de un <em>hacking lab<\/em>. La idea de un hacking lab es preparar un entorno controlado en el que poder hacer ataques a un sistema para aprender posibles vulnerabilidades, t\u00e9cnicas para desvelarlas, y herramientas que se pueden utilizar para ello, a fin de ser capaz en un futuro de proteger un entorno real con las lecciones aprendidas en el entorno de pruebas.<\/p>\n<p>Para la realizaci\u00f3n de este hacking lab opt\u00e9 por preparar un escenario en el que se pudiera realizar un ataque a un entorno de control industrial que hiciera uso de comunicaciones basadas en <a href=\"https:\/\/es.wikipedia.org\/wiki\/Modbus\" target=\"_blank\">Modbus<\/a> sobre TCP. Modbus es un protocolo de comunicaci\u00f3n industrial desarrollado en 1979, y que constituye un est\u00e1ndar de facto en los sistemas de producci\u00f3n industrial. El objetivo general es perturbar el funcionamiento de un sistema de iluminaci\u00f3n LED cuyo sistema de control est\u00e1 implementado empleando Modbus sobre TCP. El mismo consta de los siguientes elementos:<\/p>\n<ul>\n<li><strong>Una red plana<\/strong> que simula una red de control industrial. En este caso es una red del rango 192.168.0.0\/24. Si bien en un caso real ser\u00eda una red cableada, para este escenario de prueba es una red mixta cableada y WiFi, con un enrutador proporcionando conectividad a los distintos elementos de la misma.<\/li>\n<li><strong>Un <a href=\"https:\/\/es.wikipedia.org\/wiki\/Controlador_l%C3%B3gico_programable\" target=\"_blank\">PLC<\/a> que act\u00faa como Master Modbus<\/strong>, y que permite controlar, mediante el uso de tres bobinas (coils), el encendido y apagado de un sistema de iluminaci\u00f3n LED de colores rojo, verde y azul. Este PLC, al no tener disponible ning\u00fan dispositivo real disponible, se simula mediante el aplicativo <a href=\"https:\/\/nodered.org\/\" target=\"_blank\">Node-RED<\/a> de IBM con una librer\u00eda Modbus desarrollada al efecto. Este PLC (virtual) tiene la IP 192.168.0.39, y escucha en el puerto 1502 (por razones de privilegios en el dispositivo, no se ha hecho uso del puerto est\u00e1ndar 502\/TCP de Modbus).<\/li>\n<li><strong>Un actuador f\u00edsico como Slave Modbus<\/strong>, que en base a las lecturas que realiza de los valores de las bobinas del Master Modbus, enciende  y apaga los LEDs del sistema de iluminaci\u00f3n. Este actuador f\u00edsico se ha implementado con un dispositivo <a href=\"https:\/\/es.wikipedia.org\/wiki\/NodeMCU\" target=\"_blank\">ESP8266<\/a> programado mediante <a href=\"https:\/\/www.arduino.cc\/en\/Main\/Software\" target=\"_blank\">Arduino IDE<\/a> y librer\u00edas espec\u00edficas. Las comunicaciones con el Master Modbus se realizan mediante protocolo Modbus sobre TCP. El actuador tiene la IP 192.168.0.34.<\/li>\n<li><strong>Un <a href=\"https:\/\/vestertraining.com\/diferencias-scada-hmi\/\" target=\"_blank\">HMI<\/a> de control de las luces<\/strong>, que permite controlar el encendido y apagado de las mismas mediante una aplicaci\u00f3n web tipo SCADA. Este HMI se ha desarrollado mediante el aplicativo Node-RED de IBM y las librer\u00edas gr\u00e1ficas para desplegar cuadros de mando, as\u00ed como una librer\u00eda MODBUS desarrollada al efecto. EL HMI tiene la IP 192.168.0.31.<\/li>\n<li><strong>Un dispositivo atacante<\/strong>, que tiene como objeto descubrir sistemas Modbus en la red desplegada, e interferir los valores normales de operaci\u00f3n de los mismos. Este dispositivo es una <a href=\"https:\/\/www.raspberrypi.org\/\" target=\"_blank\">Raspberry Pi<\/a> con <a href=\"https:\/\/www.kali.org\/\" target=\"_blank\">Kali Linux<\/a> instalado, teniendo la IP 192.168.0.99.<\/li>\n<\/ul>\n<p>El siguiente diagrama de red muestra el sistema desarrollado:<\/p>\n<figure id=\"attachment_4221\" aria-describedby=\"caption-attachment-4221\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2019\/07\/diagrama-red.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/bitacora.eniac2000.com\/wp-content\/uploads\/2019\/07\/diagrama-red-400x161.png\" alt=\"Diagrama de la red\" title=\"Diagrama de la red\" width=\"400\" height=\"161\" class=\"size-medium wp-image-4221\" \/><\/a><figcaption id=\"caption-attachment-4221\" class=\"wp-caption-text\">Diagrama de la red<\/figcaption><\/figure>\n<p>En siguientes art\u00edculos ir\u00e9 dando mayor detalle de los dispositivos del entorno, as\u00ed como de los pasos dados en el <em>hacking lab<\/em>, adem\u00e1s de las conclusiones obtenidas de la puesta en marcha del mismo. <\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"seriesmeta\">Esta entrada es la parte 1 de 4 de la serie <a href=\"https:\/\/bitacora.eniac2000.com\/?series=hacking-lab-modbus-tcp\" class=\"series-1837\" title=\"Hacking Lab Modbus TCP\">Hacking Lab Modbus TCP<\/a><\/div><p>Por temas relacionados con un m\u00e1ster de ciberseguridad industrial que<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[133,621,780,900,974,1094,1179,1381,1599],"series":[1837],"class_list":["post-4220","post","type-post","status-publish","format-standard","hentry","category-informatica","tag-arduino","tag-esp8266","tag-hacking-lab","tag-kali","tag-led","tag-modbus","tag-nodemcu","tag-raspberry-pi","tag-tcp","series-hacking-lab-modbus-tcp"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/4220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4220"}],"version-history":[{"count":1,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/4220\/revisions"}],"predecessor-version":[{"id":11035,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=\/wp\/v2\/posts\/4220\/revisions\/11035"}],"wp:attachment":[{"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4220"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/bitacora.eniac2000.com\/index.php?rest_route=%2Fwp%2Fv2%2Fseries&post=4220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}