Habían pasado pocos días tras el primer intento de Juakin PLC Walker de acceder a las instalaciones de los Hierro Sombrío en Geonosis.
Juakin, ahora acompañado por DAV-25, sabía que tenía que volver a intentar acceder a las misteriosas instalaciones en Geonosis tras la información analizada por DAV-25 en su nave espacial.
Tras realizar varias pasadas con el Pistón Milenario sobre el planeta, DAV-25 detectó un punto débil en la defensa aérea preparada por los Hierro Sombrío. Ejecutando una precisa maniobra de aproximación, Juakin consiguió aterrizar el Pistón Milenario a las afueras de la fábrica, en lo que sería el primer reto, pero no el más complejo como descubrirían a continuación.
Tras acercarse sigilosamente a la fábrica de los Hierro Sombrío, Juakin detectó una perturbación en la fuerza, el flujo de datos estaba alterado, algo estaba sucediendo…
Juakin en voz baja: “DAV, acércate a la exclusa de la fábrica e intenta acceder al panel”.
Cuando DAV-25 llegó al panel y Juakin se acercó con él, ambos vieron que, para poder entrar, había que resolver un reto, algo que nunca habían visto y que sin DAV-25, Juakin nunca podría resolver. Debían obtener la flag.txt del equipo para poder acceder resolviendo la MV de Vulnhub StarWars.
La noche estaba acabando y durante el día, ambos serían vulnerables ya que los Hierro Sombrío y el Apagón Silencioso los detectarían, asique DAV-25, se puso a resolver el reto paso por paso:
DAV-25 comenzó con su diagnóstico, lo primero de todo en cualquier análisis de un dispositivo, revisar su exposición, un escaneo de la red para detectar que dirección IP tenía la consola de los Hierro Sombrío:
Juakin, “Bien hecho DAV, ya tenemos la IP del equipo, 192.168.1.158, ahora escanéalo completamente”
Además, DAV-25, verificó mediante otras herramientas que la IP y la MAC eran esas:
Después, procedió a escanear el equipo por completo, todos sus puertos abiertos, los servicios, las versiones de estos, uso scripts, ejecutando todo usando la famosísima herramienta diseñada por varios Jedí milenios atrás, nmap.
El equipo tenía un sistema operativo Linux, concretamente un Debian 10 y parecía estar virtualizado. DAV-25 sabía que tener toda la información del equipo podía ayudarle después a tomar decisiones y resolver parte del reto.
Además, dos puertos TCP estaban abiertos y proporcionando información a cualquiera que escanease el dispositivo.
Una vez recopilada toda la información posible de los sistemas y dado que el puerto TCP/80 estaba abierto, DAV-25 accedió al mismo pensando que podría haber información de valor que le indicase por donde seguir la investigación y hacerse con el control del sistema embebido, mientras que, en un segundo proceso gracias a su alta capacidad, utilizaba otras herramientas para escanear el puerto TCP/80 y obtener toda la información posible.
Aunque a nivel visual, el panel del controlador no parecía tener mucha más información, DAV-25 siempre realizaba como se ha mencionado anteriormente, escaneos específicos de directorios para detectar más información como el siguiente escaneo:
Dicho escaneo revelo información importante y que podría ayudar, pero como todo buen investigador, hay que ir poco a poco, asique Juakin PLC le recordó e insistió a DAV-25 en que revisase las imágenes y toda la web del panel al que estaban intentando acceder.
Realizando una inspección de la web detectó lo que parecía ser una contraseña:
Haciendo uso de la herramienta CyberChef y de sus capacidades de super computación intento descifrar la cadena de texto que habían detectado. Aplicando inicialmente una trasformación de Base64 y luego una de Binario a texto con el siguiente resultado:
Tras ver el resultado, Juakin PLC Walker exclamó: “Hemos perdido el tiempo, ¡¡¡Nos han engañado!!!”
Pero lo que no sabía Juakin es que DAV-25 ya llevaba analizando la imagen del servidor web durante un rato y había aplicado técnicas de esteganografía como cuando descubrieron la imagen en Geonosis en Crónicas de la Galaxia: Aprendiendo de un nuevo rebelde. El resultado fue sorprendente, en la segunda imagen del grandísimo Maestro Yoda, la clave estaba oculta y gracias a las técnicas de esteganografía aplicadas por DAV-25 ahora tenían la contraseña: babyYoda123
Ahora si podían revisar el análisis de las diferentes páginas web detectadas anteriormente, poniendo foco en las realmente interesantes como podrían ser: /admin, /wordpress y /robots.txt.
Comenzaron por el archivo /robots.txt dado que este archivo puede proporcionar información muy valiosa ya que tiene datos para ayudar a otros robots intergalácticos a navegar por las páginas web e indicarles a que zonas pueden y no pueden entrar.
Analizando el archivo /robots.txt, este mencionaba visitar otro archivo, en este caso, /r2d2, en el cual se contaba una historia que ahora mismo no ayudaba a Juakin y DAV-25 a seguir con el reto pero que igual en un futuro podía servir.
Por lo tanto, quedaban dos sitios web por visitar y que en principio serían los que más información darían, tanto /admin como /wordpress. En el caso del primero solo habilitaba un panel de login que posteriormente DAV-25 usaría para acceder, pero ahora, la información que buscaba era la de cualquier usuario ya que en principio ya tenían una contraseña válida que les permitiría acceder al sistema y buscar el archivo oculto flag.txt. En el panel /wordpress únicamente salía la siguiente frase:
Dado que el sitio mencionaba que no había ningún wordpress, siempre es recomendable asegurarse y usar diferentes herramientas específicas dependiendo de la solución y verificar que lo que te dicen es verdad, sea un CTF o un análisis de dispositivo real. Con esa mentalidad, DAV-25 ejecuto un escaneo del sitio web empleando la herramienta WPScan y la cual verifico que no parecía que se estuviese ejecutando un wordpress en el servidor web.
Juakin empezaba a agobiarse porque DAV-25 no resolvía la parte inicial del reto, estaban en un callejón sin salida y lo que necesitaban no aparecía y aunque habían revisado los tres sitios web de /admin, /wordpress y /robots.txt, no sabían si podía haber más, por lo que, guiados por el flujo de los datos, DAV-25 lanzo un escaneo de directorios:
“Por el flujo de los datos” exclamo Juakin, un directorio llamado users.js había aparecido:
Como investigador, DAV-25 sabía que uno de los pasos iniciales es revisar toda la exposición de los activos siempre y cada uno de los directorios expuestos para cualquiera que intente analizar el activo y gracias a ello, habían sacado dos posibles usuarios: skywalker y han.
Dado que el primer escaneo del panel de acceso a la fábrica de los Hierro Sombrío, DAV-25, detectó el puerto TCP/22 abierto, se probó con los usuarios y la contraseña encontrados:
La herramienta Hydra of the Galaxy indicó que la contraseña para acceder por SSH al sistema se correspondía con el usuario han.
Ahora DAV-25 y Juakin tenían el usuario y la contraseña para acceder al sistema de ficheros del panel de control. Una vez dentro, lo primero siempre es revisar permisos del usuario, procesos, información del sistema, interfaces de red. En definitiva, realizar un análisis de todos los archivos que proporcionen información y buscar si existe un archivo llamado flag.txt en el sistema y que permisos requiere para poder ser leído.
Toda esta información, estaba siendo almacenada por DAV-25 para luego procesarla y analizar posibles debilidades que le permitieran hacerse con el control total del sistema. Además, para tener un control del sistema, siempre es recomendable extraer toda la información de versiones del equipo.
Así mismo, siempre se han de revisar todos los archivos del sistema, no solo los visibles sino también los ocultos para cada usuario del sistema ya que como DAV-25 había detectado anteriormente, un nuevo usuario que antes no se tenía se había encontrado, el usuario Darth.
Ocultar directorios o activos es una práctica común que puede dificultar las labores de un atacante, pero también es una táctica poco efectiva ya que comandos como ls -la, pueden proporcionar información sobre todos los archivos visibles o no.
Los permisos indicaron a DAV-25 y a Juakin que podían leer casi todos los archivos y directorios y uno era llamativo, el directorio .secrets el cual, además, dentro contendría un archivo llamado note.txt que podría proporcionar más información.
La nota hacía alusión a que Anakin, posiblemente el Jedi más famoso de la Galaxia y apellidado Skywalker, era un chico genial. DAV-25 había revisado todos los usuarios y había detectado un usuario llamado Skywalker. Pero para poder acceder a sus archivos, hacía falta una contraseña. Lo más sorprendente, era que cewl, no solo significa “genial” sino que en los sistemas Linux, cewl, también es una herramienta generadora de listas de palabras.
Combinando ambos hallazgos y revisando todas las evidencias recopiladas, el archivo /r2d2 tenía sentido para DAV-25 y Juakin. Ese archivo de texto combinado con la herramienta cewl hacía pensar que podía ser un grupo de palabras para preparar una wordlist y ejecutar una fuerza bruta contra el usuario Skywalker.
DAV-25 procedió a acceder al sistema con el usuario skywalker utilizando el siguiente comando: su skywalker. Una vez dentro del sistema, al igual que con el usuario han, DAV-25 probó a acceder como super usuario, el usuario skywalker no se encontraba en el archivo de sudoers. Si hubiera estado en dicho archivo, usando la contraseña encontrada anteriormente DAV-25 habría podido utilizar el usuario root con permisos de superusuario.
Al igual que con el usuario han, tanto Juakin como DAV-25 revisaron el directorio .secrets que habían detectado anteriormente y el cual ahora se podía leer gracias a estar con el usuario skywalker. Dicho directorio contenía el archivo note.txt y dentro se encontraba escrito el siguiente mensaje:
En este punto, el conocimiento de los sistemas Linux es el mayor valor que un investigador puede tener y DAV-25, entre toda su información almacenada, recordaba un archivo de texto publicado en la red de investigadores de la Galaxia, por el cuartel Jedi de HackRTU, en el que se hablaba sobre archivos ocultos y sobre concretamente el archivo .bash_history.
DAV-25 accedió al archivo .bash_history y vieron los comando y acciones realizadas por los Hombre Sombrío desde el usuario skywalker. Dentro de el archivo varias cosas eran llamativas:
DAV-25 analizó todo el archivo y gracias a sus conocimientos de Linux, creía tener la respuesta al reto, usando un archivo programado dentro de cron para ejecutarse automáticamente, si no tenía los permisos correctos, iba a poder hacerse con el control del sistema, todo indicaba que así sería.
Lo primero, era ver si el archivo podía leerse desde los usuarios han o skywalker porque eso facilitaría la tarea y si podía leerse, ver si podía modificarse dado que el archivo había sido creado desde el usuario skywalker y podían haberse equivocado en la gestión de permisos.
Juakin y DAV-25 se sorprendieron, como con algo tan simple como solo saber de Linux, estaban consiguiendo resolver el reto y como los Hierro Sombrío habían podido equivocarse y dejar toda esa información disponible y no haber cambiado los permisos del archivo. DAV-25, utilizando su tecnología, le mostro a Juakin lo que significaban los valores de -rwxrw-r--:
Como DAV-25 estaba dentro del sistema con la cuenta de usuario de skywalker, solo tenía que verificar si este estaba dentro del grupo anakin, si eso era cierto, iba a poder leer y escribir sobre el archivo. Lo primero comprobar el grupo y luego era ver que hacía y comprobar si de verdad se ejecutaría gracias a una tarea programada en el cron de Linux.
“Todo cuadraba, el flujo de los datos nos está ayudando” dijo Juakin mientras miraba a DAV-25 y le pedía lo siguiente: “Ahora solo tenemos que crear una puerta trasera, DAV, usa tus conocimientos en lenguajes y crea un código en Python para que podamos acceder al sistema de forma remota y ojalá dentro del usuario root este la resolución del reto”
DAV-25 modificó el archivo y utilizando su base de datos de programación, accedió a la carpeta de revshells, una herramienta utilizada en el mundo Jedi para cuando estos querían generar y ejecutar reverse shells en los sistemas de los Hierro Sombrío.
Algo muy importante, es generar una reverse shell en base al sistema, para ello, lo primero es revisar la versión de Python instalada para así asegurar que el código funcionará, en este caso utilizando Python –-versión se detectó que la versión de Python era Python 2.7.16 por lo tanto, DAV-25 programó el código en base a Python 2.
DAV-25 tenía razón y habían podido modificar el código y usar uno de su base de datos.
Utilizando en paralelo el comando nc -lnvp 4444, DAV-25 estaba a la escucha de que el sistema del panel de control de la fábrica de los Hierro Sombrío ejecutará el archivo evil.py mediante el cron, solo tuvieron que esperar 1 minuto y ya tenían acceso al sistema siendo Darth, ahora solo quedaba revisar los permisos y ver si podían encontrar el archivo flag.txt y poder resolver el reto y entrar a la fábrica.
Siguiendo el consejo del grupo de Jedis HackRTU y tras verificar que el usuario Darth estaba en el grupo sudo, DAV-25 y Juakin volvieron a revisar el .bash_history y vieron que el archivo flag.txt se había creado en el directorio /root y que, además, se habían utilizado comando con nmap con permisos de superusuario.
El comando sudo -l permite al usuario, ver si existe algún comando que se pueda ejecutar con privilegios de superusuario y gracias al .bash_history, DAV-25 sospechaba que había un comando relacionado con nmap que se iba a poder ejecutar.
En este caso, la salida del comando sudo -l indicaba:
Dada esta información, lo más sencillo para DAV-25 era usar el binario de nmap para crear una shell interactiva como root. Para ello, haciendo uso de la base de datos de gtfobins para nmap, DAV-25 utilizó el siguiente comando para crear una shell:
TF=$(mktemp)
echo 'os.execute("/bin/sh")' > $TF;
sudo nmap --script=$TF
Para posteriormente, realizar una sanetización de la shell mediante /bin/bash -i, y poder realizar una búsqueda del archivo mediante: find / -name flag.txt.
Por fin lo habían resuelto, DAV-25 y Juakin tenían al alcance de sus manos la llave para entrar a la fábrica… la contraseña era: I hope u liked it Padawan :).
Juakin PLC Walker y DAV-25 estaban dentro de la fábrica, el flujo de datos estremecía a Juakin, notaba la presencia de el Apagón Silencioso, no sabía que iba a suceder a continuación, pero si sabía que junto con DAV-25 iban a poder resolver cualquier misterio que los Hierro Sombrío les pudieran plantear.
La historia continuará…
Que la debilidad se apague y la resiliencia te acompañe.
EQUIPO DE HACKRTU