Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ICS-TestBed-Framework — Implementa bancos de pruebas virtuales realistas de SCADA/ICS con nodos IEC 60870-5-104 y OPC-UA, lo que permite simulaciones de ataques, generación de paquetes legítimos y ejercicios de seguridad de red team. | Kitploit
Herramientas/GitHubGitHub/pmaynard/ics-testbed-framework
Sniffing y Análisis de PaquetesSeguridad SCADA/ICSSeguridad de RedesPruebas de PenetraciónRed TeamingLabs y Práctica
GitHubpmaynard/ics-testbed-framework

ICS-TestBed-Framework

Implementa bancos de pruebas virtuales realistas de SCADA/ICS con nodos IEC 60870-5-104 y OPC-UA, lo que permite simulaciones de ataques, generación de paquetes legítimos y ejercicios de seguridad de red team.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
7026hace 7 añosRevisado por Kitploit

ICS TestBed Framework

Se propone un marco escalable para desplegar automáticamente, de forma local (o remota), un número de máquinas virtuales que replican una red de Control Supervisorio y Adquisición de Datos (SCADA). Esto incluye múltiples hosts virtuales que emulan sensores y actuadores, con una Interfaz Hombre-Máquina (HMI) que controla los hosts. El marco presentado contiene una colección de scripts de automatización que construyen y despliegan un número variable de máquinas virtuales, preconfiguradas para actuar como Unidad Terminal Remota (RTU), HMI o Historiador de Datos. El trabajo presentado incluye una implementación conforme a los estándares de IEC 60870-5-104 (IEC104) y OPC Unified Architecture (OPC-UA), con capacidad para soportar otros protocolos como Modbus-TCP (Modbus) e IEC61850.

Esto permite a los investigadores construir bancos de pruebas que pueden configurarse para replicar despliegues reales de redes SCADA. El marco se basa en librerías de código abierto y se publica bajo la licencia aprobada por la Free Software Foundation, GNU General Public License versión 3.

Operación de ejemplo

asciicast

Casos de uso potenciales

  • Generación de paquetes: El objetivo del primer caso de uso es generar tráfico de red desde un gran número de dispositivos, con un alto nivel de fidelidad de dominio, donde idealmente se incluiría información del proceso en el tráfico. Como se destacó anteriormente, crear conjuntos de datos a partir de un sistema en vivo no siempre es posible: requiere mucho trabajo, hay que localizar un punto de captura adecuado y obtener la aprobación de los operadores de la planta. Esto puede estar restringido por la operación y las políticas de la planta, ya que la interferencia con una red en funcionamiento puede provocar circunstancias imprevistas y filtrar información identificable. La generación de paquetes se puede utilizar para probar los cambios propuestos en la red SCADA antes de desplegarlos en el sistema en vivo. También puede realizar pruebas de estrés de dispositivos utilizando paquetes de apariencia legítima. Los casos de uso interesantes para la investigación incluyen la experimentación con diferentes paradigmas de red, como ICN o IPv6, que no se han aplicado a las redes ICS.

  • Simulación de ataques: Este caso considera la simulación de ataques complejos a sistemas SCADA y tiene como objetivo realizar un análisis de riesgos de una red ICS replicada, sin afectar negativamente al sistema en vivo. El banco de pruebas puede ser utilizado por equipos rojos para intentar comprometer los nodos del banco de pruebas, mientras analizan las consecuencias y obtienen un análisis completo de captura de paquetes. Si tienen éxito, el proceso se puede repetir con contramedidas adicionales, lo que permite probar las nuevas contramedidas en el contexto de la seguridad y cómo puede afectar a los procesos del sitio. Las capturas de red del ejercicio del equipo rojo se pueden publicar como conjuntos de datos abiertos para verificar los IDS, que pueden ser reproducidos y confirmados por otros investigadores.

  • Evaluación comparativa de agentes: El objetivo de este caso de uso es apoyar la evaluación comparativa de los sistemas basados en agentes host, que normalmente no se realizan en sistemas en vivo debido a las restricciones de los proveedores. A menos que el agente sea confiable para los proveedores, a menudo se prohíbe su despliegue, con riesgo de incumplimiento de contrato. Mediante el uso de un banco de pruebas que represente con precisión el sitio industrial real, es posible monitorear el uso del software basado en agentes sin causar interrupciones. Siempre que el banco de pruebas sea libremente modificable, funcionalmente preciso y pueda integrarse con hardware físico, sería posible realizar una evaluación comparativa del agente.

  • Ampliación de hardware limitado: El último caso consiste en ampliar un banco de pruebas físico existente para incluir protocolos de comunicación y configuraciones que no eran posibles con el hardware existente. Esto podría requerir el uso de emuladores de red para ampliar el equipamiento de red y de simuladores de procesos para ampliar el equipamiento de control de procesos. Al acoplar hardware virtual y físico, es posible crear un banco de pruebas complejo y altamente realista, que permita crear y analizar grandes despliegues que combinen múltiples protocolos y dispositivos. Este caso de uso podría utilizarse junto con los demás para mejorar sus resultados.

Compilar y ejecutar localmente

Clone el repositorio e instale las dependencias requeridas:

root@kitploit:~
git clone --recurse-submodules [email protected]:PMaynard/ICS-TestBed-Framework.git
sudo apt install openjdk-8-jdk maven

Compilar:

root@kitploit:~
mvn clean package
mvn package -DskipTests # Skip tests.

Iniciar una RTU:

root@kitploit:~
java -jar node/target/node-1.0.jar
shell> rtu
shell> rtu-iec104port 2404
shell> rtu-listen 127.0.0.1
shell> run

Iniciar una HMI:

root@kitploit:~
java -jar node/target/node-1.0.jar
shell> hmi
shell> hmi-interval 1000
shell> remote-hosts 127.0.0.1
shell> run

Despliegue automático en VMs

El perfil de configuración predeterminado desplegará 1 HMI y 4 RTUs. La HMI integrará las RTUs usando IEC104 y OPC-UA. Las RTUs están configuradas para devolver datos de proceso aleatorios.

Requisitos previos (Vagrant+VirtualBox)

Use la última versión de Vagrant en lugar de los paquetes precompilados/de distribución, ya que estos scripts utilizan características de las últimas versiones de Vagrant. Debería funcionar si se usa Ubuntu 18.04.1 LTS.

root@kitploit:~
git clone https://github.com/mitchellh/vagrant.git /opt/vagrant
cd /opt/vagrant
bundle install
bundle --binstubs exec
ln -sf /opt/vagrant/exec/vagrant /usr/local/bin/vagrant 

[OPCIONAL] Crear imagen de VM

Este es un paso de desarrollo opcional. Construye una imagen de máquina virtual, preconfigurada para ejecutar los nodos del banco de pruebas. Si no desea crear la última versión, la opción predeterminada es obtener una imagen estable desde el repositorio de imágenes de Vagrant, que se mantiene al día con la rama master.

Packer se utiliza para crear una imagen de máquina virtual adecuada para VirtualBox y Vagrant:

root@kitploit:~
cd vagrant_image
packer build vagrant-node.json
vagrant box add testbed-node vagrant.box

Despliegue

ADVERTENCIA: Necesitará al menos 4GB de RAM libre.

Actualice el Vagrantfile con cualquier información adicional, como la dirección IP estática y el uso de RAM.

La configuración de IP predeterminada es 10.50.50.*. .200 se usa para la HMI y 101-105 para las RTUs. La RAM predeterminada asignada por VM es de 512MB.

root@kitploit:~
vagrant up
vagrant ssh hmi
vagrant ssh rtu-1 # 1-5
vagrant halt
vagrant destroy 

Conjunto de datos de ejemplo

Se creó un conjunto de datos de ejemplo utilizando la configuración de despliegue predeterminada. Los PCAP se pueden descargar desde aquí. El MITM IEC104 se realizó utilizando el plugin de ettercap que se encuentra aquí

  • [Host-SCAN 13:45]: Reconocimiento básico de red mediante un escaneo amplio de red con Nmap. Comando: 'nmap -sn 10.50.50.*'

  • [Host-SCAN 13:47]: Reconocimiento básico de red en busca de servidores [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} accesibles. Comando: 'nmap 10.50.50.* -p 2404'

  • [Host-SCAN 13:47]: Escaneo completo de puertos de los nodos [RTUs]{acronym-label="RTU" acronym-form="plural+short"} identificados. Comando: 'nmap 10.50.50.101-105 -A'

  • [Host-SCAN 13:49]: Un escaneo activo [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} que sondea los nodos usando el protocolo [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} [^1]. Comando: 'nmap -Pn -n -d --script iec-identify.nse --script-args='iec-identify.timeout=500' -p 2404 10.50.50.101-105'

  • [Host-MITM 14:19]: Realiza un [MITM]{acronym-label="MITM" acronym-form="singular+short"} sobre RTU-1 y la HMI. Comando: 'ettercap -i enp0s8 -T -M arp -P spoof_104 /10.50.50.101/ /10.50.50.150/'

A continuación se muestra un desglose numérico del conjunto de datos:

Proyectos relacionados

  • https://github.com/flesueur/mi-lxc
  • https://github.com/nsec/the-internet
  • https://minicps.readthedocs.io/en/latest/

Citación

Por favor, cite este marco utilizando el siguiente formato:

root@kitploit:~
@conference{
 author   = "Peter Maynard and Kieran McLaughlin and Sakir Sezer",
 title 	  = "An Open Framework for Deploying Experimental SCADA Testbed Networks",
 journal  = "5th International Symposium for ICS & SCADA Cyber Security Research",
 year 	  = "2018"
}

El conjunto de datos se puede citar utilizando el DOI: 10.6084/m9.figshare.6133457.v1

El artículo completo se puede encontrar en: https://petermaynard.co.uk/publication/an-open-framework-for-deploying-experimental-scada-testbed-networks/

Descargar herramienta
HostIPIEC104OPC-UAOtrosTotal
HMI10.50.50.15026,158017,68843,846
Historian10.50.50.151014,69514,92729,622
RTU-110.50.50.1013,5922,9405,54312,075
RTU-210.50.50.1023,6652,9415,87612,482
RTU-310.50.50.1033,6682,9405,79312,404
RTU-410.50.50.1043,6902,9405,77112,404
RTU-510.50.50.1053,5769307,93312,442
MITM10.50.50.992,39003,4495,839
SCAN10.50.50.315028,35128,366