← All talks

Jackpotting Reloaded: Escaping the Kiosk Like Neo from the Matrix

BSides CDMX53:1935 viewsPublished 2025-07Watch on YouTube ↗
Show transcript [es]

Buenas tardes a todos. Espero que se escuche bien. Gracias por estar aquí en esta última conferencia. Sé que eh ha sido un día pesado, lleno de de nuevos aprendizajes, nuevos temas y pues bueno, veo muchos muchas caras nuevas. Eso, eso me alegra que cada vez la comunidad esté creciendo. Y pues bueno, eh, ese es el título de de de mi plática. La verdad solo lo escribí en inglés, pero no lo sé pronunciar, pero ahí tienen el el tema. Aquí eh ahorita vamos a hablar un poco de acerca de kioscos, de kioscos de autoservicio y es de lo que va. Bueno, para los que no me conocen, yo soy Jesús Domínguez. Nuevamente bienvenidos y gracias por estar aquí. Yo

actualmente trabajo como offensive security researcher en una empresa de servicios y eh pues bueno, mis áreas de de expertiz o mis áreas a las que más me dedico son el Red Team, eh penesting de de malware y malware developer. Eh todo esto para eh pues bueno, bypasear ciertas soluciones de seguridad, etcétera, etcétera. Los que fueron a Guadalajara aquí, a lo mejor alguien fue a Guadalajara, yo estuve dando la eh la villa de cajeros automáticos y una charla antes estuve en Argentina en la Ecopari ahí 2024. También veo caras que estuvieron allá y pues bueno, eh en cuanto a certificaciones, pues bueno, a veces no son tan importantes como lo es la práctica, pero bueno, estamos

buscando certificarnos con la security expert de Offensive Security. Ya nada más nos falta una y a ver si si la logramos acá el siguiente año. Eh, pues bueno, ¿por qué la importancia de los kioscos? Últimamente los kioscos han crecido bastante bastante bastante. Podemos encontrar los kioscos en distintos en distintos escenarios, distintos comercios, distintos eh pues sí, escenarios y comercios. Eh, tanto en hay kioscos de autoservicio como en cines, supermercados donde ya los cajeros, o sea, los que te cobran ya están siendo más relegados por máquinas. Entonces, de aquí viene esta esta charla, ¿no? Eh, también pues bueno, eh esta charla va de eh cómo podemos hacer el tr modeling y cuál es la superficie de ataque de estos quioscos

que ya de por sí traen un riesgo inherente porque están expuestos al público. Es decir, ustedes van caminando en una plaza y ven un kiosco en medio de eh de la plaza y pues bueno, pueden ver una terminal de autoservicio y eso es es un riesgo inherente porque están abiertos al público. Eh, exacto. Aquí tenemos unos ejemplos comunes de eh los kioscos de de autoservicio. Podemos ver eh cajas rápidas como en Walmart, kioscos de chequín como en hoteles, en aeropuertos, incluso eh terminales gubernamentales. Ya ven que eh muchas veces nos piden un acta de nacimiento y pues bueno, estas se van y la imprimen en un kiosco del gobierno donde pues bueno, evidentemente es ese kiosco del gobierno tiene acceso

a un backend que tiene el datos de todos los ciudadanos para poder imprimir un acta de nacimiento certificada y pues en estaciones de venta o facturación eh de comercios. Las tecnologías eh típicas de un cajero de de una terminal de autoservicio, pues bueno, son básicamente Linux, esas son terminales muy pocas, Windows, que es en en el sistema operativo base donde todos los la mayoría de los kioscos de autoservicio trabajan y algunos traen algún Android embebido, es decir, tienen un sistema operativo corriendo como Linux o Windows, pero tienen una aplicación que emula un un Android y sobre ese Android se ejecuta la aplicación del Kosco de autoservicio. Eh, también tenemos eh navegadores en modo kiosco. Muchas veces encontramos

que eh lo que estamos viendo es un Google Chrome, un Firefox en modo kiosco. Esto quiere decir que el modo kiosco lo que hace es quitar todas todas esas funcionalidades cor que tiene un eh un navegador común eh y dejar solo la interfaz de usuario para que pues el la aplicación o la página web del kiosco esté encerrada en un en un en un este en un navegador. Eh, también tenemos aplicaciones desarrolladas por tercero. cierto, vamos a ver que este es un vector muy útil de ataque cuando el el comercio o la empresa que va a implementar un kiosco de autoservicio relega esta parte de crear la aplicación a un tercero, porque muchas veces estos

terceros eh no sé si hay aquí desarrolladores, espero que sí, estos terceros no están muy conscientes de lo que están desarrollando y pues bueno, hacen algunas cosas que ahorita vamos a ver. Eh, periferos periféricos comunes, pues bueno, lectores de tarjeta, lectores QR, eh lectores de códigos de barra, incluso a veces lectores biométricos, terminales bancarias y también eh dispositivos de de administración de dinero en efectivo. Eh, ¿qué hay dentro de un kosco? e el a principios de año, pues como ya les comenté, llevé la villa de cajeros automáticos en Hack GDL. Eh, nos hicieron hicieron un gran trabajo la la organización de Hack GDL en llevar un cajero automático hasta Guadalajara. Y esto, ¿por qué se hizo? Porque muchos

de nosotros interactuamos con los cajeros automáticos, pero no sabemos qué tecnologías y qué tipo de arquitecturas están de esto, están detrás de estos. Entonces, eh yo creo que por eso funcionó muy bien esa villa, porque abrimos el cajero, platicamos todos los componentes. Aquí no les puedo traer un kiosco porque no tengo un kiosco. Sin embargo, pues voy a tratar de explicarles qué es lo que hay detrás de un kiosco cuando ustedes llegan a un cine, por ejemplo, y eh seleccionan sus palomitas y la entrada al cine. Primero lo que vemos es el hardware típico. El hardware típico de una computadora cualquiera, al igual que un cajero. No, no, no, no se dejen intimidar por este

tipo de tecnologías porque no es nada nada de los de otro mundo. Eh, lo que tenemos son una placa base, una placa base bastante chica porque eh si ustedes ven de frente un kosco está la pantalla y detrás de esa pantalla tenemos esta tarjeta que están viendo aquí. Como pueden ver, si se alcanza a ver bien, tenemos memoria RAM, disco duro, el el ventilador, disipadores y todos los todos los puertos USB que conectan distintos periféricos. Así se ve un poquito más de lado. Es la misma placa base, es un kiosco normal de pantalla eh vertical. Y como pueden ver, pues tenemos aquí un puerto de red y también puertos USB que conectan los distintos periféricos, ya

sea lectores QR, administración de dinero en efectivo, eh terminales bancarias etcétera. Aquí un poquito más de lo mismo, eh se ve un poquito más cerca, memoria RAM, es decir, tenemos lo que cualquier PC eh normal, una laptop, una PC de escritorio tiene. No hay nada diferente. Aquí lo único diferente es el formato, es decir, cómo está construido un kiosco por detrás para ser compacto, pero a la vez tener los mismos componentes que tuviera una PC. Ahora sí, aquí viene lo bueno. Muchas veces en cajeros en en terminales de kiosco, sobre todo en supermercados, pues vemos que tienen dispositivos adicionales. Dispositivos adicionales como básculas, eh dispositivos adicionales como eh lectores de de de códigos de barras o incluso cámaras,

¿no? Por ejemplo, en el Walmart, si ustedes ven, hay una cámara arriba y hay cámaras a los costados que revisan, que en teoría revisan para que no te robes nada, pero muchas veces no lo hacen. Este es un dispositivo especial de un fabricante de cajeros automáticos que se llama NSR. NSR eh distribuye esto este tipo de de dispositivos precisamente para que a tu punto de venta, el punto de venta que tú tienes, tu kiosco, punto de venta, puedas sumarle un dispositivo que reciba dinero en efectivo. Este aparato se llama Cash Tender Module. Este, pues bueno, como pueden ver ahí tiene un receptor de monedas, un dispensador de monedas en algunos casos, un receptor de billetes y un dispensador de billetes,

así como también una impresora de tickets. No sé si se han dado cuenta que algunos cajeros o algunos kioscos no reciben monedas. Es bueno. Eso es porque dependiendo del modelo pues puede o no aceptar moneda. Incluso las terminales, los kioscos del metro, del metrobús, no te dan cambio porque no tienen ese dispositivo por detrás que administre la devolución de un cambio en efectivo. Es decir, tú metes un billete de a 100 y es lo que vas a cargar. 100 pes porque no da cambio. Eh, así se ve justamente el módulo de monedas que está del lado izquierdo. Como pueden eh no sé si se alcanza a ver, pero aquí hay uno donde tú depositas la moneda y abajo está el

dispensador de monedas. Por atrás si nosotros abrimos esta bóveda porque al igual que un cajero, esta parte pues está muy blindada. esa placa son placas de acero para evitar precisamente que eh actores maliciosos pues se metan y extraigan los valores. Esta esta es este es el administrador de de dinero, es decir, podemos eh ver que en la parte de arriba tiene donde aceptan las monedas y por aquí del otro lado, aquí en esta foto no salió, tiene eh la parte donde te devuelve las monedas, te devuelve tu cambio. Y pues bueno, el administrador de billetes es prácticamente igual casi que un cajero automático. Eh, si estuvieron en la villa, algunos pudieron verlo. Y si no, pues bueno, aquí están, les

presento a un administrador de billetes o un eh Sí, es un administrador de billetes. Recibe dinero en efectivo y te da dinero en efectivo. Funciona diferente al de un cajero automático porque el del cajero automático solo da dinero. Solo da dinero. Este cumple dos funciones que es eh dar y recibir. Y bueno, pasamos a la arquitectura y superficie de ataque. Nuevamente les comento, no es una tecnología del espacio o no como los satélites, ¿no? que que literalmente están en el espacio, pero esto no, esto es un una simple arquitectura que eh el kiosco tiene un sistema operativo, pero arriba de el kiosco, arriba del sistema operativo, corre la aplicación principal del kiosco, que es la pantalla que nosotros vemos.

Es decir, lo que servicios como Walmart, servicios como Sams o como Costco nos ponen como eh interfaz de usuario. Bajo la interfaz de usuario, que puede ser un browser, como ya les comenté, o una aplicación dedicada desarrolladas por un tercero. Eh, debajo de esta aplicación, debajo de esta capa, corre el sistema operativo. sistema operativo normal Windows, no nos compliquemos más, es Windows eh, ya en versiones 10 para arriba y eh pues ya, pero bueno, aquí viene Android y Linux, pero en general siempre es eh Windows. Posteriormente, pues vienen todas las capas de más que tienen eh el sistema operativo, que es la administración de drivers, eh la red o API que controlan periféricos y el hardware, ¿no? El

hardware va desde un puerto de red, algún algún puerto que esté eh en la parte en la parte de la placa base que a lo mejor esté activo y por allá por ahí haya un vector de ataque. Eso es lo que se refiere con con hardware y es más de lo mismo lo que les comentaba. eh hardware expuesto, puertos USB, eh conectores RJ45, eh navegadores mal configurados, software común, etcétera, etcétera, ¿no? Es lo que es lo que les venía comentando. En los vectores de ataque físicos, pues eh aquí se pueden hacer varias varias varias técnicas como desde snifear qué es lo que está pasando de elko al backend. Es decir, estos kioscos por su naturaleza siempre están conectados a un

backend. ya sea un backend bancario, un backend de alguna empresa de entretenimiento o un backend de un retailer como Walmart, Costco, etcétera, ¿no? Siempre tienen una salida internet. Normalmente estas salidas están muy bien cuidadas, quiere decir que pues bueno, tienen muchas eh mucha seguridad perimetral, es decir, cortafuegos, puertos bloqueados, etcétera. Es por eso que muchas empresas omiten lo que vamos a ver ahorita más adelante, que es hacer el pen testing directo a la aplicación del kiosco porque piensan que eh esa seguridad perimetral es suficiente, sin embargo, a veces no lo es. Y bueno, para acceder a todos estos puertos o tratar de explotarlos, tenemos hardware común, USB Robert Docky, Flipperciero, algún Arduino, alguna eh Raspberry Piie para

Snifea, tráfico, etcétera, ¿no? todo lo todo lo que ya ustedes saben o tienen en mente que funciona a lo mejor en una red corporativa para esnifear, etcétera, también funciona en una red de kioscos por lo mismo que les comento. Es un dispositivo que al final de cuentas se comunica con internet o se comunica en un servicio local dentro de una sucursal, por ejemplo, como de Walmart.

Y bueno, aquí tenemos la parte la parte buena que es de lo que va más enfocado esta charla, vectores de ataques lógicos. Eh, aquí quiero hacer mucho énfasis en las aplicaciones que los que terceros o incluso el mismo equipo de la empresa desarrolla para pues eh tener un una interfaz bonita de kiosco donde pues ustedes puedan, no sé si han ido a McDonald's, en algunos McDonald's ya hay kioscos, pues su café, su cajita feliz, etcétera. Esas esas aplicaciones muchas veces son tercerizadas o incluso dentro del mismo equipo de la empresa pues contratan a desarrolladores para que en efecto hagan estas estas estas aplicaciones. Sin embargo, me he encontrado con varias que están eh no quiero decir mal diseñadas o mal

configuradas, pero carecen de ciertas buenas prácticas. Quiero decir que como los desarrolladores saben que el kiosco tiene mucha seguridad perimetral, pues como que dicen, "Bueno, no lo hagas tan seguro. Eh, nos saltamos ciertas cosas para aparte de entregar un producto más rápido, pues no complicarnos tanto la vida. Las tecnologías que más usan, como ahí lo dicen, es Electron. que Electron eh para los que lo conocen es un framework que trabaja como un navegador embebido. Entonces lo puedes manejar como una aplicación web donde tienes eh tu backend y tu frontend en JavaScript y pues todo tienes todo el frontend en eh HTML y CSS CSS, ¿no? Entonces ahí es más fácil desarrollarlo, pero también es un

poquito más propenso a pues tener las mismas vulnerabilidades que tiene una aplicación web. Sin embargo, ahorita nosotros vamos a ir más allá de eh un de de tratar de encontrar en la aplicación del kiosco a lo mejor alguna inyección de de crosside scripting, etcétera. Eh, aplicaciones, bueno, esto también recae en lo mismo. las aplicaciones que desarrollan los terceros, pues como vuelvo a repetir y perdón por ser tan reiterativo, confían en que la seguridad perimetral de el kiosco va a protegerlo siempre, es decir, eh no no podemos contar con un solo elemento de seguridad, pues normalmente no fuscan su código, es decir, si alguien logra obtener la aplicación del del Kosco, va a leer y va

a poder hacer un un va a poder hacer ingeniería inversa a eh a la aplicación y pues bueno, va a poder leer el código fuente sin ningún problema porque no está ofuscado. También no tienen integrity checks, es decir, cómo yo sé que el binario del kiosco que se está ejecutando es el mismo y es el de siempre, es el binario legítimo. Es decir, cómo yo sé que ese binario no está troyanizado o no está alterado de una manera maliciosa para, por ejemplo, eh hacer un bypass al sistema de pagos, por ejemplo. Y pues bueno, con esto lo mismo, ¿no? Eh, los secretos jarcodeados también eh aplicación eh eh llaves de API, llaves de eh algoritmos criptográficos muchas

veces vienen ahí. Esto va de la mano con mala implementación criptográfica. Es decir, yo tengo mi mi implementación criptográfica superfuerte, pero tengo la llave privada y la llave pública en bebida dentro del código. Entonces, eso no importa porque un atacante que pueda leer este código va a obtener esas llaves y va a poder realizar acciones acciones maliciosas. Eh, también pues bueno, a veces exponen rutas de archivos, eh rutas de archivos con logs, rutas de archivos con información a lo mejor del usuario, a lo mejor estamos viendo una terminal de un kiosco bancario y eh el navegador expone dónde están los logs de todas esas transacciones que se han realizado a lo largo del día. También tenemos que poner

mucha atención en eso. Y pues bueno, hay algunas, si no es que todas, que como vuelvo a lo mismo, todo recae en la seguridad perimetral que hay del Kosco, pues usan API API sin autenticación. Es decir, que cualquiera que esté sobre la red puede usar esa API del Kosco sin autenticación. Es decir, que si ya te comprometieron tu red y ven que hay un servicio de kiosco, a lo mejor, a lo mejor no del kiosco, sino con el que se comunica el kiosco. Es decir, yo tengo mi kiosco eh en una sucursal de entretenimiento y se comunica con un backend y esa comunicación es uno sin cifrar y dos sin autenticación. Es decir, que alguien que ya esté dentro de

la red va a poder esnifear el tráfico y va a poder emular esas peticiones hacia el backend. Y ahí también tenemos comportamiento malicioso. Eh, herramientas igual herramientas para pest físico discretas, pues bueno, Robert Docky, fliper cero, mini PCs encubiertos, cables USBs, eh USB, adaptadores de red y snifers. Aquí quisiera agregar uno que ahorita lo vamos a usar en el ejemplo que les voy a dar, que es un simple celular como hotspot. Es decir, ustedes eh con su celular como hotspot le pueden eventualmente compartir internet a un kiosco que tiene una salida limitada de internet para en un futuro eh hacer eh acciones eh acciones maliciosas. Aquí vamos a entrar en la metodología de Black Box, que es donde más tengo

experiencia. Y aquí es, creo que esta es de las partes que más me gustan porque en los ejercicios que he hecho, tanto a cajeros automáticos como a quioscos y incluso otras otro tipo de ejercicios como instrucción física, oficinas, pues bueno, lo que tenemos que realizar es lo más parecido a un atacante real. Es decir, yo llego al comercio, en el caso de un kiosco, trato de interactuar, trato de interactuar con este kiosco como si fuera un usuario normal. Muchas veces el personal que está en sitio, porque muchas por lo general, por ejemplo, en el SAMS tenemos las cajas rápidas y las cajas donde te cobran. En las cajas rápidas siempre hay una persona que pues si se te atoró ahí

algún proceso o hay o piden alguna autorización, llega esa persona y te auxilia. Sin embargo, estas estas personas desafortunadamente a veces no están muy atentas de qué es lo que está haciendo el usuario. Entonces aquí lo que yo recomiendo es que ustedes lleguen con una seguridad, con una buena seguridad, se pongan a manipular el kiosco como si fueran un usuario normal. Si les preguntan, no solamente estoy viendo, este, tengo algún problema a lo mejor con mi tarjeta. Se van, se cambian a a todo eso. La parte final de tener un contacto de emergencia, es decir, esto lo lo he manejado en varias en varias sucursales bancarias, siempre tengan un contacto de emergencia. Es decir, si ustedes están planeando una

instrucción física o ir a probar un kiosco en una sucursal bancaria, que es donde hay más seguridad, o en un comercio como un supermercado, pues traten, no, no traten, exijan siempre tener un contacto de emergencia por si los cachan, porque muchas veces la persona que te cachó es un es un guardia de seguridad que no entiende muy bien lo que estás haciendo, lo que está pasando, se asustan y pues se eventualmente estas personas pueden llegar a ser un riesgo potencial para ti. Y lo digo por experiencia, porque en suales bancarias donde he llevado a cabo este tipo de ejercicios, hay gente con mac, hay gente eh con con gas pimienta y incluso hasta con armas.

Entonces, tienen que tener un contacto de emergencia para en caso de que te cachen, oye, ¿qué estás haciendo? No, vente para acá. No, ustedes llamen. ¿Saben qué? Es un ejercicio planeado. Háblale al gerente de la sucursal. Ábrale al gerente de piso porque él está notificado que se está llevando a cabo una revisión a un kosco, a un cajero automático de tipo Blackbox. Y pues bueno, documentar los hallazgos. Traten de llevar una cámara oculta, traten de tomar muchas fotos y sobre todo no alteren el estado de el cajero o del kiosco. Es decir, ya encontraron algo potencial, lo documentan bien, regresan a casa, lo exponen al cliente y preguntan, "Oye, tengo este vector, tengo este vector de ataque, ¿eh? lo

puedo explotar en la sucursal o prefieres que lo explote en un ambiente más controlado, que generalmente es un laboratorio de la empresa donde tienen todos estos quioscos eh para pruebas, ¿no? Ahora sí viene lo bueno. El jackpoting es una técnica para hacer que un dispositivo que administra valores, es decir, dinero en efectivo, escupa el dinero, ¿no? Como una maquinita tragamonedas viene de ahí. Cuando ustedes ganan, pues escupe muchas monedas. Eso es básicamente un jackpoting. jackpoting. Las técnicas más clásicas, pues bueno, son ataques, ataques por hardware, ataques combinados con hardware y software, que generalmente es software malicioso desarrollado en este caso por el atacante o en nuestro caso por nosotros mismos, donde pues bueno, podemos ahí

desde troyanizar una aplicación, usar una aplicación de terceros válida, etcétera, con el objetivo siempre de expulsar dinero. Ahora sí viene el caso práctico. Eh, ¿cómo coninamos todo esto? ¿Cómo se conjuga todo esto en una en un en un pentest real de caja negra? En este caso, eh, fuimos de usuario administrador en un kosco que un cliente nos pidió que probáramos. Eh, se divide en tres pasos. Primero tratar de escapar de la aplicación del Kosco, es decir, eh cómo nosotros podemos interactuar con el sistema operativo sin tener, obviamente sin que eh sin tener que usar algún eh cómo nosotros podemos interactuar con el sistema operativo cerrando la aplicación del Kosco, porque muchas veces estas aplicaciones, como ya lo mencioné, pues

están aisladas, se ejecutan y ya no puedes es acceder al sistema operativo, pero siempre hay algo, siempre hay un un un detonador que nos permite cerrar la aplicación y acceder al sistema operativo. Estos detonadores existen porque pues hay gente que necesita hacerle mantenimiento a este tipo de de kioscos y siempre hay un un modo de cerrar esta aplicación para poder interactuar con el sistema operativo. Después, el paso dos viene con la torreganización de la aplicación. Es aquí donde les digo que muchas veces las aplicaciones de tercero confían más en la seguridad perimetral y pues bueno, se relaja un poquito esa esa implementación de seguridad en el desarrollo de la aplicación del Kosco. La aplicación del

Kosco nuevamente es con lo que el usuario interactúa. Y finalmente, pues aquí tenemos un bypass a un portal administrativo. Ahorita lo vamos a ver más adelante. Esta imagen que ustedes están viendo este un ejercicio real en donde eh yo llegué al kiosco, yo tenía la pantalla del kiosco enfrente y y si me preguntan lo que hice, básicamente es el clásico, apreté todos los botones. Es decir, lo que yo hice es son pantallas táctiles. Son pantallas táctiles que reciben un input táctil. Y aquí no lo podemos automatizar con un con una máquina, pero ustedes sí pueden tocar en direcciones, eh hacer distintos gestos, zoom in, zoom out, eh arrastrar de izquierda a derecha, de arriba a

abajo, de abajo hacia arriba, todo este tipo de gestos que las pantallas táctiles admiten y que normalmente el sistema operativo sí procesa, pero los desarrolladores del Kosco que hicieron la aplicación del Kosco no lo filtran. Es decir, es es una especie de input validation porque está el el kiosco la aplicación y ustedes hacen un un arrastre con cuatro dedos, el kiosco no tiene hookeado ese input de la pantalla y no lo procesa. Entonces, en este kosco lo que hice fue jugar varias veces, un ratillo con con la pantalla táctil y de una esquinita en la parte inferior izquierda o derecha más bien estaba eh esa pequeña ventanita de Windows que permite acceder a las funcionalidades que ustedes ahí pueden

ver, eh ubicación, modo avión, eh red, etcétera. Aquí tenemos un modo avión importante que Windows suele utilizar para dispositivos táctiles o dispositivos portátiles. Creo que la la versión de Windows escritorio no lo tiene, pero este tipo de dispositivos sí lo tiene. Y aquí hay algo muy importante que está señalado, es el adaptador de red. ese adaptador de redago, pero yo lo pude prender. Una vez que saqué ese menú contextual, eh se abrió la barra de Windows, la de abajo, ahí no se ve, pero está abierta. Entonces, con un simple eh touch and hold, sale el menú contextual, administrador de tareas, cierras la aplicación del Kosco y ya entras a Windows. Es decir, eh con un simple gesto touch de la

pantalla se logró escapar de la aplicación para poder entrar al sistema operativo. Pero, ¿qué sigue? ¿Qué sigue para explotar este vector? que ya de por sí es un hallazgo importante, pero recuerden que nuestro perfil es más ofensivo. Nosotros tenemos que pensar como un atacante real, qué es lo que más le duele al negocio. Es decir, cuál es el impacto más alto que yo puedo obtener si exploto esta esta vulnerabilidad o esta falta de de control para procesar los los gestos táctiles en la pantalla. Y es aquí donde viene el siguiente paso. Una vez que yo vi que ese dispositivo de red eh servía, es decir, lo tocas, le das on y te empieza a leer todas las

redes Wi-Fi que hay, simplemente con mi teléfono en modo hotspot le compartes internet. El el modo hotspot del del teléfono funciona como una red local básica, es decir, a este kosco se le asignó una IP de mi teléfono mediante el hotspot y yo con mi laptop también me conecté a esa red, a esa red Wi-Fi de mi teléfono. Entonces, yo ya podía interactuar en mi misma red con mi celular de hotspot con el con el kiosco, es decir, ya podía verlo o por lo menos hacerle un ping. ¿Y qué es lo que sigue? Yo estaba ahí en el en el manejando. Nadie se acercó, eso también es muy importante. Nadie me acercó, nadie se me acercó para decirme,

¿qué estás haciendo? No, nadie, nadie, nadie dijo, "Ah, mira, ahí está eh esa persona ya lleva media hora ahí en el en el en el kiosco y no ha hecho nada, no ha comprado nada, etcétera." Pero pues bueno, yo una vez que entré a Windows, eh, comencé a eh explotar. Una vez que entré a Windows, comencé a a manipular el sistema operativo, es decir, abrí un navegador, el kiosco, en efecto, no tenía salida internet, aparentemente, eh, pero como el hotspot tenía salida a internet, posteriormente ya una vez conectado el el kosco a mi red Wi-Fi de mi teléfono, tuvo salida a internet por el por el adaptador de red inalámbrico, es decir, ahí ya las posibilidades

o es a imaginación de cada quien, ¿no? Sin embargo, lo que yo hice aquí es tratar de instalar Python. Python no estaba instalado en el kiosco. ¿Para qué necesitas Python? Eh, hasta ahí todo bien. Sin embargo, eh, pues no lo quería instalar desde la página oficial, bajar doble clic. Yo necesitaba algo más rápido. Han instalado Python en Windows, ven que los manda al store de Windows. Pues aquí igual, aquí igual me mandaron al al store de de Microsoft donde yo empecé a instalar eh Python 3.11 para posteriormente empezar a tratar de exfiltrar información del Kosco, eh tanta información como sea posible. ¿Y cómo cómo hice esto? Pues bueno, me voy a la abro un cmd, me voy a la raíz de C,

ejecuto este comando. Este comando, si no lo conocen, es eh ejecutar Python men m y le das el nombre del módulo. En este caso, un servidor http. Esto si lo ejecutas en la raíz de C, pues lo que tienes es acceso a listar todo todo el disco C deliosco y pues bueno, ahí ya empiezas a ver esto. Eh, se llevó a cabo, dejé mi teléfono detrás del Kosco ahí oculto para que se conectara a la red Wi-Fi. Yo me fui a otro lado de de este comercio para desde ahí con mi laptop conectarme a la misma a la misma a la misma red de mi teléfono y pues en el teléfono ya te dice las IPs que ha

dado, ¿no? Entonces yo ahí ya había visto qué IP tenía el Kosco y pues ahí ya me conecté. Eh, como pueden ver atrás eh el HTTP Server de Python escucha en todas las interfaces por el puerto 8000. Entonces, no importa si estaba conectado por red eh Ethernet o por red Wi-Fi, ese servidor HTTP escucha en todas las interfaces por el en todas las interfaces por el puerto 8000. Entonces, una vez ya yo en mi laptop ahí tranquilamente me puse a ver cada uno de los archivos que tenía el disco C, el eh la la carpeta de mis documentos, la carpeta, una carpeta donde es muy interesante buscar es downloads, es decir, ustedes van a ustedes ya yo ya

sabía qué usuario tenía y posteriormente me fui a la carpeta de descargas de ese de ese de ese usuario. Y por qué se los comento? Porque muchas veces los técnicos que a lo mejor manejan remotamente estos kioscos o incluso localmente lo que hacen es descargar información de internet, ejecutables de administración, incluso la misma aplicación del Kosco la descargan, la copian a otro lado y desde ahí la ejecutan. Pero el par descargas de Windows o del usuario que ustedes estén tratando de explotar es muy importante porque por ahí pasan a veces cosas muy eh muy importantes y muy interesantes. Entonces, una vez que ya vi aquí estuve de chismoso ahí buscando en todos los directorios, pues bueno,

aquí me encontré la aplicación sersegura del Kosco, ¿no? Que ni tan segura, porque ya vimos cómo pudimos escapar de este entorno supuestamente aislado. Entonces, ¿cuál es el siguiente paso? Una vez que ustedes se han se han usado esta técnica, nos metemos al directorio de del Kosco Seguro y pues bueno, ahí estaba el ejecutable principal del Kosco. Lo descargué a mi máquina, eh apagué mi laptop, recogí mi celular y me fui a casa para el siguiente paso, la troyanización de la aplicación del Kosco. Una vez que yo tenía la aplicación del Kosco, eh esta aplicación eh creo que estaba en punto net, eh procedí a analizarla, es decir, era una aplicación básica de Punet, tenía varias varias funciones, varias clases,

etcétera, no estaba fuscada, no estaba para nada fuscada. Entonces, fue muy fácil trackar cada una de las funcionalidades que esta aplicación tenía. Y lo que descubrimos fue aparte de muchas muchos, muchos fallos lógicos, muchos eh sí, muchos fallos lógicos, credenciales en bebidas, eh kits para API en bebidas, etcétera. Incluso eh este kiosco logueaba información sensible de algunos usuarios como número de teléfono, eh el el número de tarjeta también completo sin ofuscar, eh etcétera, etcétera, etcétera. Entonces esta aplicación pues hacía eso, eso de una manera mal. Y una funcionalidad que que encontré fue un panel administrativo. Ese kiosco en el sitio tenía un cash tender module, es decir, el dispositivo o la bóveda que administra el dinero.

Es ese ese dispositivo pues necesita un portal administrativo porque pues como da como da cambio necesita que le metan dinero. Es decir, llega una empresa de valores como a cualquier cajero automático, abre la bóveda y le mete suficiente dinero en efectivo para pues que si alguien mete un billete de 200 y la cuenta es de 150, pues eventualmente le va a regresar cambio de esos 200 pesos, ¿no? Es por eso que necesita un panel administrativo para llevar a cabo esta dotación de de dinero en efectivo para el Kosco. Una vez que yo descubrí este panel administrativo, nuevamente, como les digo, vayan con el cliente, si ya descubrieron algo de alto impacto, pregunten antes si lo pueden probar en

el sitio de donde originalmente lo sacaron o si necesitan algún tipo de autorización extra. En este caso, como el objetivo era o o el objetivo o el hallazgo de más alto impacto era acceder a las opciones administrativas para eventualmente sacar dinero, pues eh eso no lo puedes hacer en una en una en un ambiente eh en la sucursal, ¿no? Porque pues bueno, hay algún tipo de seguridad, procesos administrativos, etcétera. Entonces el cliente dice, "Okay, ya lo descubriste, ya está bien, ya tienes tu POC listo para explotar, vamos al laboratorio, ¿no? Una vez que que nos autorizaron esto, probarlo en el laboratorio y no en el sitio, pues nos dirigimos al sitio. Eh, bueno, aquí es más del de lo mismo,

la troyanización de de de la app. pueden ver eh secretos jarcodeados, credenciales, configuración expuesta, mala implementación criptográfica, mala implementación de CDK. Esta esta aplicación también tenía lo mismo, es decir, el SDK de la terminal bancaria no eh eh exponía toda la información bancaria, es decir, número de tarjeta, eh número del cliente, eh incluso lo la fecha y la la fecha de vencimiento de la tarjeta y los logueaba así en un archivo de en un archivo de log en el en el kosco. Pero bueno, eh mala gestión de dependencias, todo eso. Continuamos con ya probar nuestro POC del portal administrativo de la de este kosco, ¿no? Entonces, lo que hicimos es ir al laboratorio y probar esta aplicación. Ya en la ya en

el kiosco, ya en el laboratorio, la aplicación pues me ayudaron a pasarla por red. Eso es lo de menos. ejecutamos la aplicación. Y aquí hay dos cosas importantes. La primera es que eh tienen que pedir un kiosco que esté igual al kiosco que ustedes encontraron en la sucursal. Es decir, ya un kiosco con la todas las medidas de seguridad que normalmente tienen, porque generalmente cuando ustedes van a probar un cajero, un kiosco o un laboratorio, pues como están en el laboratorio y están haciendo pruebas los ingenieros y mucha gente, pues esos kioscos tienen un nivel de seguridad más bajo. Entonces, aquí lo que hay que pedir para emular nuestro POC es, oye, necesito un kiosco con las

mismas condiciones que si el kiosco estuviera fuera en la calle. Okay. Una vez que yo obtuve mi kiosco de esta manera, pasamos la aplicación, ejecutamos la aplicación eh troyanizada de este kiosco y ninguna alerta saltó. Es decir, esta aplicación no tenía un adecuado integrity check. ¿Y cómo se puede hacer un integrity check? Pues muy fácil con el hash de del archivo, es decir, yo tengo un hash del archivo original y la aplicación que se está ejecutando tiene otro hash. Pues no la ejecutes, manda una alerta, eh, apaga el cajero automático, apaga el kiosco, haz algo, porque hay algo que no está funcionando correctamente. Una vez que eh encontramos eso, yo ya sabía que eh esto iba a pasar. La aplicación en

ningún momento dentro del código tiene un integrity check y pues las reglas de este de seguridad de este kiosco tampoco tenía ningún integrity check. Entonces, ejecutamos ahí el panel administrativo. Eh, esta es una pantalla auxiliar del Kosco. Yo le puse a yo le puse al a la interfaz administrativa este código. Bueno, este sí, este texto organizado por Ocelot, que somos el equipo para el que trabajo. Y las las contraseñas que yo le puse eran por default, porque eh este kiosco lo que hacía iba y preguntaba a su backend si la eh si las credenciales existían, si eran válidas y regresaba y te dejaba pasar. No había ningún token de autorización, no nada. Simplemente le preguntaba al

backend, "Oye, este usuario existe?" Sí, sí existe, déjalo pasar. Entonces, en ese if de si el usuario existe, simplemente la troyanización fue if true, deja pasar. Entonces, cuando se ejecutaba este eh bueno, si le daba enter, mandaba ese request, siempre iba a dar eh positivo, siempre iba a ser true. Por lo tanto, lo que yo le metiera aquí iba a ser eh la lógica iba a ser que siempre pasara al panel administrativo. Y bueno, una vez que ya pasamos al panel administrativo,

¿alguien le puede dar a siguiente? Porque no da.

Ahí está. Sí, soy yo. Sí, gracias. Gracias. Eh, pues bueno, una vez que ya explotamos este fallo lógico, explotamos eh que la la aplicación no tiene un un integrity check adecuado, pues bueno, pasamos al portal administrativo donde eh espero no se alcance a ver, pero bueno, podemos ver todas las denominaciones que este kiosco tiene, que es lo que les mostré previamente, dónde se administra tanto el dinero en efectivo, monedas y eh y monedas y billetes. Pues bueno, ahí podíamos tener la cuenta y posteriormente teníamos un eh un panel para hacer pruebas de dotación y de eh funcionalidades para extraer dinero. Desafortunadamente, y lo entiendo, el este cliente eh al final eh me habló ayer y me dijo, "Oye, no

expongas la vulnerabilidad, por favor, no pongas el video. y y ya no me arruinó todo, pero pues bueno, ya no traigo ya no traigo lo demás, donde después de este panel administrativo llegamos a la función de administración de dinero y hacemos finalmente el jackpoting de eh pues lo que tenía ahí en el laboratorio, que en ese mismo momento le metemos como 200 pesos, no me acuerdo cuánto le metimos, para efectivamente hacer estas pruebas, ¿eh? Y pues bueno, ¿cómo proteger un kiosco? Pues hardening del sistema operativo, ya un clásico, algo que no debe faltar. eh desactivación física de puertos, bios bloqueado, puertos eh sin alimentación o o protegidos por carcasas y eh control de acceso físico. Y también

aquí quisiera agregar eh monitoreo, monitoreo de loges, es decir, agreguen mucho, mucho monitoreo porque de esta manera pues ustedes van a poder anticiparse o van a poder qué está pasando, ¿no? Si son un Walmart y el kosco está funcionando a las 3 de la mañana, pues bueno, ahí hay algo que no está funcionando bien, porque a las 3 de la mañana un Walmart está cerrado, ¿no? Entonces, nadie debería de estar en ese kosco haciendo o eh usándolo, ¿no? también concientización del personal o el staff en sitio. Lo que ya les decía, necesitan hacer conscientes al personal que trabaja en la empresa, en la institución que es dueña de estos kioscos, de que hay un peligro latente

ya inherente que viene con estos kioscos, porque el kiosco está expuesto a a cualquiera que llegue, lo toque. Y a veces, yo no sé por qué hay gente que se tarda 20, 30 minutos en un cajero automático. La verdad no sé, pero igual en los kioscos, ¿no? Incluso en los cines hay gente que se tarda muchísimo en los kioscos y la gente y la gente que está ahí no dice nada, a veces ni siquiera se acerca, ¿no? Y menos si es hora pico, menos si es una función de estreno. Imagínense que alguien es pase desapercibido en un cine, en una función de estreno, pues puede estar ahí todo el tiempo posible tratando de manipular, sacando información y nadie le va a

decir nada porque la gente en sitio no está capacitada para identificar. Yo no digo que estén vigilando ahí siempre, sino trata de que tu personal identifique comportamientos maliciosos en en el sitio. Es decir, ya se tardó aquel, eh, ¿qué estás haciendo? ¿Necesitas ayuda? Obviamente eh ustedes como proveedores de servicio no van a llegar y a ver qué estás haciendo, ¿no? De una forma amigable, oye, necesitas ayuda. Y pues bueno, ahí pueden detectar este tipo de comportamientos a tiempo. Y pues bueno, la última que es simulaciones de ataques reales. tu tu seguridad, tu estrategia de seguridad no puede recaer solamente en tu seguridad perimetral del del kiosco o de tu activo expuesto, porque en algún momento hay

gente con mucho tiempo, con mucho ingenio y sobre todo con tiempo, que a lo mejor va a diario y prueba algo más, lo anota y de repente ya encontró algo y de ese algo va jalando el hilo y pues ahí tienes eh un vector potencial de ataque. pruebas tanto de Blackbox como de Grey Box y a las de Grey Box me me eh me enfocaría más en la aplicación de el kiosco, es decir, el personal que que tienes contratado para el desarrollo de la aplicación del kiosco de verdad desarrolló un un un proyecto seguro. De verdad, esa aplicación del Kosco es eh es es vulnerable a a ciertos ataques, etcétera. Entonces, enfóquense en probar también la aplicación del kiosco.

Conclusión, pues bueno, los como ya les comentaba, los quioscos no son seguros por diseño. Es una superficie de ataque que está expuesta, que eh está expuesta 247, porque a veces eh hay plazas que que tienen un cine a lo mejor y alguien se quedó por ahí y está jugueteando. El pen testing es la clave. Enfoques en black box, en green box y la segidad, la seguridad física solo es una capa más. Que tu seguridad no recaiga en la seguridad perimetral del kosco porque si no te vas a llevar ciertas sorpresas. Muchas gracias. Yo soy Jesús Domínguez.

Yo soy Jesús Domínguez. Este eh me pueden encontrar en LinkedIn así, en Twitter así y en YouTube como Notman la Fama. Subo videos de vez en cuando. Ya voy a revivir el canal. Eh, viene mucho contenido de Red Team más que de resolver máquinas, etcétera. Y pues bueno, antes de terminar quiero invitarlos a HackDF 9. Es un HackDF, es HackDF 9. Es una competencia solo para estudiantes. Inscríbanos universidad, por favor. Todavía están las inscripciones abiertas hasta el 30 de julio. La ronda de clasificación es el 15 de agosto y la final es en el Tecnológico de Monterrey, Campus Monterrey, donde si ustedes quedan entre los primeros lugares, su equipo se va directo y con todos los gastos pagados a

Monterrey a jugar la final en un CTF que, créanme, es muy competitivo. Este estilo y pardí es un poquito diferente al Hackmex, pero ambos son CTFs muy muy eh enfocados a ustedes que son estudiantes. Y pues muchas gracias. Preguntas y respuestas. Muchas gracias, Jesús. ¿Tienen alguien alguna pregunta? ¿Alguien? Ya es la última conferencia. ¿Alguien quiere preguntar algo?

Allá por allí tenemos una pregunta. Aprovechen estos últimos 10 minutos de preguntar eh lo que gusten. Hola. Hola, Jesús. Yo sí tengo una pregunta más enfocada al tema del Blue Team. De todas las pruebas que has realizado en cajeros automáticos, ¿cuántas veces eh te han detectado el equipo de el equipo de SOC o algún equipo de respuesta incidentes? En cajeros automáticos sí te detectan, son están vigilados 247, pero en kioscos lo que les comentaba, no te detectan porque lo relegan como hasta el final. Generalmente si el kiosco es de una institución financiera, posiblemente te detecten, pero si es de algún comercio, eh, algún comercio de entretenimiento, algún supermercado, es un poquito más difícil que te detecten.

¿Alguna pregunta más? Bueno, ah, por ahí si hay preguntas. Sí. ¿Qué tal? Eh, una pregunta. Ahorita hiciste básicamente un pen test de Blackbox, ¿no? Tenías acceso al activo y podías hacer básicamente todo, ¿no? Pero cuando tú haces un modelado de amenazas, no tienes acceso a los activos y sí tienes que preguntarte y plantearte cuáles son todos los vectores de ataque de, por ejemplo, el funcionamiento de una aplicación en un servidor o y justamente no tienes acceso al activo, ¿qué recomendaciones podrías dar como para decir sí debo de considerar esto o o no? porque podrías pasarte toda la vida, ¿no?, inventando posibles vectores, pero esa es como la duda. Sí, aquí como como ya lo mencioné, eh

los vectores de ataque son los físicos que ya conocemos, pero no se limiten a eso, no se limiten al al acceso al acceso físico. En el thread modeling incluyan la aplicación, porque muchas veces esa aplicación está mal configurada, tiene secretos arcodeados, etcétera. Y si ustedes llegan a ganar acceso al al kiosco al sistema operativo, consideren ir un paso más allá. ¿Qué es lo que puedo explotar? ¿Qué es lo que más le duele al comercio? ¿Qué es lo que más perjudicaría el funcionamiento de la empresa si yo vulnero un kiosco? Creo que esa es la pregunta eh fundamental. ¿Cuál es el mayor impacto que pueda obtener? En este caso siempre va a ser el dinero o alguna

alguna alguna exposición de datos personales como información de tarjetas, correos etcétera. Si ya no hay más preguntas, nuevamente muchas gracias. Fue un día largo y si quieren al rato me ven por ahí, no se no duden en acercarse. Si tienen alguna duda más en concreto, ahí podemos estar una echando una chela sin ningún problema. Muchas gracias. Aplauso para que se Muchas gracias.