Aventuras con el ScreenCrab

En estos momentos acabo de terminar una asignación de equipo rojo y me gustaria contarles como usamos el ScreenCrab por primera vez, espero que a alguien le sea de ayuda o por lo menos se diviertan leyendolo.

Mi jefe llego un dia y nos dijo:

Toca hacer un ejercicio de Red Team, pero esta vez tenemos que dar una experiencia más profunda y completa, el objetivo final es hacer entender a algunos jefes de alto nivel la importancia de la seguridad informática en el sentido más amplio, no solo la seguridad de la red, sino también la penetración física del lugar, los riesgos que un atacante puede traer a la empresa incluso cuando ya ha abandonado las instalaciones físicas. Si ellos entienden esto el departamento tendra mas $$$$$

Para alcanzar el objetivo, además de usar las técnicas tradicionales pensamos en las siguientes dos técnicas:

  • badUSB, para aumentar la concienciación de seguridad de los empleados, la forma de usarlo era después de penetrar las instalaciones físicas, dejar algunas memorias USB en los escritorios o salas de reuniones, el payload contenido sería una visita a un servidor C2 con cierta información del usuario que inserto la “memoria USB”.
  • ScreenCrab, el objetivo era poner el dispositivo en alguna sala de reuniones que tuviera monitor externo, que permitiera la extracción de información confidencial (para mas informacion del screen crab clicl aqui).

Como alguno a de suponer por el titulo, a mi me pusieron a cargo de la parte del ScreenCrab. Un día antes de iniciar el ejercicio, compre un cable HDMI corto, como de 30 cm (imagen abajo), siempre habia usados cables largos, pero siempre habia creído que uno corto era más conveniente a la hora de esconderlo y para la portabilidad.

Cable HDMI corto averiado
Cable HDMI corto averiado

Ese mismo día inicie las pruebas correspondientes para dejar todo listo, pero me encontré que el ScreenCrab no funciona bien, que la señal era intermitente, que el receptor (televisor de la sala de reuniones) no recibía señal estable, se entre cortaba y muchas veces aparecía que no había señal; por más de que moví el cable, cambie la resolución de la pantalla y otros ajustes, no funcionaba bien, al final me toco reportar a mi jefe que existía la posibilidad de que no se pudiera llevar a cabo esa parte por fallas del equipo, la respuesta de este fue «lleve el equipo al objetivo y tratamos de usarlo, sino sale nada, pues ni modo».

Al otro día ya cerca al objetivo, cada quien inicio sus funciones, hicimos reconocimiento del lugar y tras largo rato conseguimos acceso físico (eso de tener puertas secundarias abierta y sin vigilancia para que los empleados salgan a fumar es un lugar perfecto), a continuacion nos ubicamos en una sala de reuniones y pues cada quien a lo suyo y yo con el ScreenCrab a lo mío.

Me metí bajo la mesa, ubique los cables, los conecte y ¡nada! Igual que con las pruebas anteriores, señal intermitente, como tal el ScreenCrab si capturaba información (led Azul solido capturando fotogramas) pero no la transmitía al televisor, esto no me servia para nada porque generaría sospechas, de tal forma que sería más fácil que alguien descubriera el aparato, ademas que no capturaria informacion (objetivo principal del ScreenCrab).

ScreenCrab vajo la mesa brillando azul solido
ScreenCrab bajo la mesa destellando azul solido, sin señal de salida

Un poco frustrado y pensando como arreglar el problema, pensé que el aparato se había quedado viejo y el problema era que no soportaba las nuevas dimensiones o las grandes resoluciones de los monitores objetivo, entonces procedí a investigar si alguien más había tenido problemas similares y cuáles eran las resoluciones soportadas por el ScreenCrab.

En la investigación, me encontré con la página de resolución de problemas comunes del ScreenCrab (imagen abajo), la página habla de cómo resolver algunos problemas, incluyendo una actualización de certificado SSL, configuración del C2 y verificación de conexión wifi, usando un script llamado “autoexec.txt”.

Pagina de preguntas frecuentes y problemas frecuentes del ScreenCrab
Pagina de preguntas frecuentes y problemas frecuentes del ScreenCrab

Ahí encontré una nota relativamente ambigua que decia “target device uses a supported or down-scalable resolution. non-16:9 aspect ratios may not work. Non standard codecs may not work”, a la ligera y lo más importante que dice es que la resolución del equipo objetivo debe ser de proporción 16:9, sino el equipo no funciona, entonces procedí a buscar una lista de cuáles eran las resoluciones de pantalla que conservaban la proporción 16:9, las probe todas y nada, la señal seguía siendo inestable o sin conexión (La imagen de abajo muestra al monitor indicando sin conexion).

Pantalla conectada al ScreenCrab pero sin Monitor no recibe señal de salida
Pantalla conectada al ScreenCrab pero sin recibir señal

Avisé a mi jefe de la situación y me dijo, “Ni modo, si el aparato no funciona pues no funciona”, yo me puse a hacer otra de las actividades que tenía programadas, pero mientras tanto, pensaba en por que el aparato no funcionaba; al final, cuando ya teníamos que salir, yo le dije a mi jefe que iba a hacer el último intento en otra sala de reuniones a ver si funcionaba.

Esta vez busque una sala de reuniones con una pantalla más pequeña y me dispuse a probar el dispositivo, como solo era prueba, simplemente use un cable que ya estaba conectado al televisor y como por arte de magia el ScreenCrab funciono al instante, bien no sé cómo llegue a la conclusión de que el problema era el cable nuevo que había comprado, pero esa era mi nueva teoría, sin mucho tiempo para meditar acerca de lo sucedido porque tocaba irnos del lugar, recogí mis equipos y evacue la zona con esto en mente.

Esa noche apenas volví a la oficina, busque uno de los cables HDMI de siempre (en la foto de abajo se ve en cable como parte del kit), para confirmar el mi teoría, efectivamente, ¡el problema era el cable! esta vez busque la pantalla más grande de la oficina y la conecte al ScreenCrab y como si nada, funcionaba a las mil maravillas; sabiendo esto, prepare el equipo nuevamente agregando el cable HDMI largo al kit, dejando todo listo para el proximo dia.

Foto del screen crab y el kit complementario usado en el ejercicio
ScreenCrab y kit complementario usado en el ejercicio

La siguiente intrusión funciono a las mil maravillas, ese día llegamos temprano, cada uno se desplego como tenía que hacerlo, yo instalé el ScreenCrab, hice la prueba de conexión y correcto funcionamiento correspondientes, todo sin problema, luego salí del lugar y como dicen en ingles, exfil time, en castiso, esperar al momento de extraccion.

Dos dias despues accedí a la sala de reuniones, extraje toda la parafernalia instalada previamente y luego me dispuse a ver el contenido de la memoria SD. Estas capturas funcionaron muy bien, pero, aquí viene un detalle que no habia tomado en cuanta, «la relevancia de la información obtenida», se obtuvieron unas diapositivas, unas tablas de Excel y unos correos internos, pero a mi juicio la información capturada no fue lo suficientemente relevante, así que, mostrando los resultados a mi jefe, este me indico que buscara otra sala de reuniones para poner el dispositivo.

captura con el ScreenCrab
captura con el ScreenCrab

En la siguiente intrusión busque otra sala de reuniones, una que pareciera más pro, más grande, con más asientos y con intercomunicador, el cual estaba conectado al monitor de la pared. El monitor de esta sala de reuniones tenía dos cables conectados, uno conectado al intercomunicador y otro libre, esto me planteo un problema porque como solo tenia un screen crab solo podria capturar una señal de entrada, si los usuarios de la sala usaban la via no interceptada entonces me quedaría sin capturas, en ese momento me toco tomar una decisión y escogí la conectada al intercomunicador, conecte los cables hice mi prueba de conexión, verifique que funcionaba la captura, todo ok y a esperar que las nuevas capturas produjeran mejores resultados.

Una particularidad que debo mencionar como nota aparte. Nuestro cliente como requerimiento prioritario nos indicó que nada de lo hecho debería salir de la red de su empresa, esto plantea una limitante para mí porque tendría que usar el ScreenCrab sin conexión a C2 (guardando todas las capturas en memoria SD interna) o usar un C2 local con conexión a internet externa solo para activar el C2, luego se corta la conexión, dejando al C2 aislado de internet, en mi caso use la opción 2, servidor c2 local (En mi propia maquina).

Mientras usaba la opción de servidor local C2, me percate de una restricción muy especifica que tiene este servidor, y la verdad sería bueno poder cambiar esto, la restriccion es:

Si la conexión entre el c2 y el ScreenCrab se pierde, la información capturada durante ese tiempo se guarda en el ScreenCrab, pero no se retransmitira al c2 ni podra ser obtenida por este medio en ningún momento.

Por lo que investigué, la única manera de recuperar esa información es de manera física, leyendo la memoria SD fisicamente, es una lástima que el c2 no tenga una función para descargar toda la información de la memoria.

Al siguiente día estuve expectante, tuve acceso a las oficinas en horas de trabajo, intente la conexión entre el ScreenCrab y el C2, pero no recibía señal, pase cerca de la sala de reuniones y me di cuenta que el escenario contrario a mis deseos se habia cumplido, estaban usando el cable externo en lugar del intercomunicador, viendo esto, me di cuenta que mi eleccion no había sido la buena, pero esto no era un motivo para que el C2 no pudierea entablar comunicación con el ScreenCrab, en el servidor se deberia indicar que el ScreenCrab no recibe señal de video, pero hay comunicación, pero esta no era lo que me estaba sucediendo en ese momento.

Servidor C2, ScreenCrab offline
Servidor C2, ScreenCrab offline

Estuve muy pendiente de la situacion, varias veces me acerque al lugar a ver si se podía establecer la conexión, hasta trate de entrar a la sala de reuniones cuando vi las luces apagadas, pero estaba cerrada con llave. En ese momento lo único que quedaba era espera al momento de la extracción del dispositivo a ver con calma que era lo que habia pasado.

Despues de esperar varias horas, en una oportunidad que tuve entre desconecte los cables, reconecte todo como estaba antes y salí de allí.

Al llegar a mi escritorio lo primero que hice fue leer la memoria SD para ver qué información tenía y pues fue mejor de lo que esperaba porque habían capturas, pero como lo había visualizado anteriormente, no había capturas de la mayoría de las reuniones porque los participantes habían usado el cable externo y no el intercomunicador, en conclusión, ¡nada relevante!

Como tal esta era la última oportunidad de esta asignación, así que con respecto al ScreenCrab eso es todo lo que hay que reportar.

Lecciones aprendidas para tener en cuenta en una asignación con ScreenCrab

  1. Preparación, no solo a nivel técnico, pero también pensar en quienes pueden ser los posibles objetivos, cuales son los posibles escenarios y la información que se podrá adquirir. Como lo pudieron ver, a mí me fallo no tener en cuenta la presencia de múltiples fuentes de video.
  2. El cable si ¡importa! la verdad nunca hubiera imaginado que un cable HDMI diera problemas de este tipo, porque el cable en si se ve robusto y transmite señal, pero pues la evidencia obtenida sugiere que el mal funcionamiento del ScreenCrab se dio por el cable.
  3. Seleccionar bien los objetivos, con antelación tratar de acceder a los horarios de las salas de reuniones, si hay la oportunidad de entrevistarce con alguien del lugar pregunte que día son las reuniones importantes o cuando se hacen los reportes semanales a los jefes y en que sala, observe cuales son las salas de reuniones grandes, que parezcan de jefes, en teoría si el dispositivo se instala en una sala de jefes la información seria de mayor valor, relevante y el ejercicio tendría mayor impacto si se obtiene información compartida con jefes (probablemente los haria sentice mas vulnerables).
  4. Los monitores tienen múltiples señales de entrada, a la próxima llevar más de un ScreenCrab, un concentrador de señales, o podria desconectar o dejar en posición de mayor esfuerzo uno de los cables (el cable conectado al ScreenCrab sobre la mesa y el otro cable desconectado o tirado en el piso). Esto nos daria mayores probabilidades de que el usuario se conecte al cable interceptado.
  5. No hay manera de obtener información desde la memoria SD con el C2, si en algún momento el ScreenCrab pierde conexión con el C2, esa información será grabada en la SD, pero el C2 no la podrá obtener.
  6. Como contramedida al punto 5, instalar cerca al objetivo una raspberryPi autónoma, wifi Pineapple u otro minicomputador que contenga el C2 y así el stream se guarde allí, de esta manera ninguna información se perderá pues se almacenara en el Rasberry pi; además este micro computador podrá ser accedido de manera remota o mientras no tengamos acceso a la sala de reuniones (como por ejemplo cuando la cerraron con llave).
  7. Redescubrí el script autoexec.txt, el cual ejecuta comandos que pueden usarse para el diagnóstico de problemas de conexión o de otro tipo en el ScreenCrab. Si uno mira el script se puede ver que son instrucciones Shell, las cuales se pueden cambiar para que el ScreenCrab ejecute algunos comandos deseados después del boot.

Experimentos sugeridos

Estos experimentos los pongo por si alguien los quiere hacer para que se den cuenta de las capacidades y falencias del ScreenCrab

  1. Conexión y desconexión con el C2 para verificar que no se podrán obtener las imágenes desde el C2 mientras no hubo conexión
  2. Configurar una Raspberry pi que sirva como C2 para verificar si se puede contrarrestar de alguna medida las falencias del experimento 1, cuanto tiempo puede durar con una batería portable <10000mAh.
  3. Utilizar un concentrador de HDMI, para observar el comportamiento del ScreenCrab, que pasa si recibe dos señales simultaneas, ¿cuál prefiere o como maneja a situación?

Si en algún momento ejecuto estos experimentos nuevamente aquí les dejare los resultados, si alguno se atreve puede poner el link y aqui los comparto.

Alguna pregunta o sugerencia, escribir en los comentarios.

Deja un comentario

search previous next tag category expand menu location phone mail time cart zoom edit close