En Positive Hack Days 8, una vez más se celebró la vieja competencia para hackear Leave ATM Alone ATMs. Había dos cajeros automáticos a disposición de los participantes, el hardware fue provisto por nuestro socio bancario de seguridad Alfa-Bank. Especialmente para la competencia, configuramos cajeros automáticos y les pusimos vulnerabilidades. En 15 minutos fue necesario evitar el equipo de protección y extraer dinero del dispositivo. El fondo de premios ascendió a 40 000 ₽. Unos 40 participantes vinieron para tratar de eludir la defensa. Leonid Krolle, organizador del concurso y especialista del departamento de investigación de seguridad de sistemas bancarios de Positive Technologies, contó cómo era y analizó las tareas en detalle.
Deje a los concursantes de ATM soloA disposición de los participantes había dos cajeros automáticos. En uno de ellos, se instala el software de control de aplicaciones de nuestros socios, lo que impide el lanzamiento de aplicaciones no confiables. No le permite ejecutar ninguna aplicación que necesite para retirar efectivo (¡hola, Cutlet Maker, BubbleMaker y nemagiya!).
El segundo cajero automático está conectado a través de la red para probar el procesamiento, lo que le permite realizar una operación de extracción de efectivo (que está disponible en el cajero automático). Sin embargo, el procesamiento envía una señal para emitir desde el casete en el que no hay dinero. Por lo tanto, la tarea de los participantes es sustituir la respuesta de procesamiento para emitir dinero del cassette correcto.
Los cables de conexión del cajero automático y el procesamiento de prueba se encuentran en el exterior, con la capacidad de conectarse a ellos mediante un cable de red (LAN).
Los jugadores se llevaron todo el dinero retirado del sistema.
Cajeros automáticos en dos días del foro: estaban tristes y solitariosControl de la aplicación
Hay varias formas de verificar si una aplicación coincide con una lista blanca dada, desde verificar la ruta al archivo ejecutable o su hash hasta analizar la firma digital y la extensión. Las herramientas de control de aplicaciones se utilizan con mayor frecuencia para proporcionar protección adicional para las computadoras cliente (prohíben el lanzamiento de software que no figura en la lista blanca) y proporcionan seguridad para sistemas aislados, como los cajeros automáticos, que no implican una intervención operativa constante.
Si la lista negra de extensiones que deben bloquearse es más o menos universal y es fácil de configurar, entonces la lista blanca de lo que se permite ejecutar es redundante de forma predeterminada: a menudo incluye todas las aplicaciones del sistema operativo en el momento de la configuración.
En los últimos años, se han descrito muchos métodos para omitir el control de aplicaciones utilizando las herramientas de Microsoft Windows (por ejemplo, "rundll32", "regsvr32"), un bloqueo simple que interrumpe el funcionamiento normal del sistema operativo. Por lo tanto, ajustar el control de la aplicación es un trabajo complejo y minucioso, cuyo resultado fue entregado a los participantes del concurso de rasgado. Tenga en cuenta que en el mundo real, los atacantes no tienen tanto tiempo para eludir el control de la aplicación.
Primer dia de competencia
La verdad de la vida :)El comienzo del primer día de la competencia estuvo marcado por una gran cantidad de participantes en el foro que intentaron sortear el control de la aplicación y reemplazar la respuesta de procesamiento, más de 40 personas en total.
Primeros participantesEn total, se asignaron 15 minutos para omitir la protección en un cajero automático con control de la aplicación: durante este tiempo, tuvo que lograr ejecutar su código. Desafortunadamente, el primer día, todos los intentos de los participantes para lanzar su exploit fallaron. Sin embargo, un participante logró encontrar un dispositivo extraño instalado en un cajero automático. Era un skimmer, un lector portátil en miniatura que se puede conectar a un cajero automático. Dichos dispositivos ayudan a los estafadores a robar datos de tarjetas bancarias: detalles, código PIN: toda la información registrada en la banda magnética.
SkimmerDespués de detectar el skimmer, fue necesario extraer los datos de la tarjeta: durante la preparación de la competencia, los organizadores escribieron un volcado de una tarjeta inexistente con un cierto número allí.
Hablemos un poco sobre la preparación de un skimmer para una competencia.El skimmer consiste en una cabeza magnética para leer y un dispositivo para grabar una pista de audio (a veces con Wi-Fi o Bluetooth). Esta instancia puede realizarse sobre la base de una grabadora de reproductor Explay o una grabadora de voz USB similar. Ejemplos
aquí . En términos de tamaño, simplemente encajan en la superposición del anti-skimmer y todavía hay espacio para una batería, ya que el mini de Frankenstein tuvo que prepararse y revivirse: se realizó una prueba de rendimiento en un dispositivo similar de otro modelo de cajero automático. Para ahorrar espacio, la almohadilla de montaje del puerto USB está recortada, por lo que tuve que hacer el adaptador yo mismo.
Hacer un adaptadorProbamos la inclusión correcta del reproductor skimmer de acuerdo con las instrucciones del jugador de Internet (no había signos en los botones, ya que permanecían en el estuche) y anotamos la tarjeta y el número que los participantes tenían que quitar del skimmer.

Así es como se ve una tarjeta con polvo magnético aplicado
La información en la banda magnética de la tarjeta se graba utilizando la codificación de frecuencia F / 2F (con lo que se come y cómo se puede decodificar, lea
aquí ) y representa caracteres alfanuméricos en codificación de 7 bits o caracteres digitales en codificación de 5 bits. Para determinar los errores de lectura, se utiliza la verificación de redundancia de paridad y longitudinal (o control de espera longitudinal - LRC).
Los datos en cualquier pista deben comenzar con el inicio del símbolo de servicio y finalizar con el final del símbolo de servicio. Estos símbolos se eligen de tal manera que le permitan determinar el comienzo de un bloque de información útil, determinar la dirección de lectura de la tarjeta e incluso el formato de codificación de la información (5 bits o 7 bits).
Los caracteres de control están diseñados para controlar hardware y no se pueden usar para transmitir información (contenido de datos). Los separadores se utilizan para separar los campos de datos en el mapa.
En una codificación de 7 bits, los caracteres [\] están reservados para caracteres nacionales adicionales y no deben usarse como parte del intercambio internacional de información, el carácter # está reservado para caracteres gráficos adicionales arbitrarios.
Aquí hay un ejemplo de cómo se vería:
- pista estándar ISO 2:
; XXXXXXXXXXXXXXXX = YYYYYYYYYYYYYYYYY? Z - 37 caracteres
X ... X - número de tarjeta, Z - LRC (los datos comienzan con el carácter inicial y terminan con el carácter final, el número de tarjeta es de 16 dígitos, LRC está presente)
El momento de la prueba y el vertido.De hecho, puede copiar datos del reproductor en forma de un archivo MP3, encontrar dónde está grabada la pista, ampliarla en el editor de audio y analizarla poco a poco, pero existen métodos más simples.
Por ejemplo:
- SWipe es una aplicación para leer tarjetas de banda magnética a través de un puerto de audio.
- Decodificador de banda magnética. Un programa para decodificar una tarjeta de banda magnética, recibiendo los datos brutos de la banda magnética a través de la tarjeta de sonido.
Le permiten convertir de manera más o menos precisa los datos de la pista de audio a ASCII (datos descifrados).
Después de aproximadamente una hora, se proporcionaron los datos de la tarjeta grabada en el skimmer. El Premio de Honor de la simpatía del espectador encontró a su dueño. ¡Felicitaciones a Maxim Vikhlyantsev!
El resto de los participantes continuaron luchando por los premios principales cargados en los cajeros automáticos :) Alguien intentó piratear la defensa, pero también hubo quienes estaban cansados y perdieron la esperanza de un enriquecimiento rápido. Sin embargo, el primer día fue tormentoso, aunque el premio mayor permaneció con los organizadores ...

Segundo dia
Seguía siendo el más persistente.En el segundo día de la competencia en el campo por piratería de cajeros automáticos, uno podría observar a todos los mismos participantes. La perseverancia y la perseverancia al tratar de encontrar un vector para eludir la protección no fue en vano, y aquí: Stanislav Povolotsky eludió la defensa de manera segura y, al ejecutar un código sin firmar, ganó el premio en efectivo en el primer cajero automático.
Demostración de un trabajo exitosoLa esencia del ataque a la red en el segundo cajero automático fue la siguiente: en el cajero automático había una computadora portátil con software instalado que emulaba el procesamiento.
Emulador de procesamientoEl emulador se configuró para emitir dinero con cualquier tarjeta insertada, sin un código PIN, pero el cassette cuyo comando envió el emulador en respuesta a la solicitud estaba vacío. Para resolver este problema, era necesario:
- interceptar el paquete de respuesta del emulador de procesamiento;
- desmonte el paquete y forme el suyo, solo con el número de cartucho correcto;
- inserte una tarjeta y, cuando envíe una solicitud de procesamiento, responda al cajero automático con los datos modificados;
- utilizando las herramientas tcpdump, wireshark, scapy o ettercap, realice un ataque de repetición o un ataque de suplantación de identidad con datos modificados para responder al cajero automático.
tcpdump es una utilidad UNIX que tiene un clon para Windows y le permite interceptar y analizar el tráfico de red que pasa a través de la computadora en la que se ejecuta este programa.
wireshark es una utilidad similar, solo que más "cargada", con una GUI.
scapy es una biblioteca interactiva de shell y software para manipular paquetes de red en el lenguaje de programación Python.
ettercap es una utilidad para analizar el tráfico de red que pasa a través de una interfaz de computadora, pero con funcionalidad adicional. El programa le permite realizar ataques como "hombre en el medio" para obligar a otra computadora a transmitir paquetes no al enrutador, sino al atacante.
En realidad, nada cambiaCon un enfoque tan difícil, los participantes tuvieron dificultades, pero los superaron. El equipo recibió el premio por falsificar la respuesta del procesamiento en el segundo cajero automático: Información y Público, Centro de Seguridad y Uzbekistán. Con lo que los felicitamos! La lista completa de ganadores se encuentra en
la página del concurso .