Antique
Antique es una máquina Linux sencilla que cuenta con una impresora de red que revela credenciales a través de una cadena SNMP que permite iniciar sesión en el servicio Telnet. Se puede obtener acceso mediante la explotación de una característica de la impresora. El servicio de administración CUPS se ejecuta localmente. Este servicio se puede explotar aún más para obtener acceso raíz en el servidor.

Reconnaissance
Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Antique. Este resultado lo almacenaremos en un archivo llamado allPorts.
A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.
Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que solamente se encuentra abierto el puerto de telnet (23).
Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.
Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Realizaremos un reconocimiento básico sobre el telnet. Al acceder al sistema, comprobamos que nos aparece un mensaje de HP JetDirect y nos pide credenciales. Parece ser el acceso a una impresora de red.
Dado que en el escaneo inicial con Nmap no logramos encontrar más información sobre los puertos TCP, probamos de verificar si existían puertos UDP abiertos en el sistema.
Logramos verificar la existencia del puerto 161 que pertenece a snmp.
Initial Access
SNMP Enumeration
Durante la evaluación, realizamos una caminata (walk) por el árbol MIB del dispositivo objetivo utilizando SNMP para recopilar información detallada.
Este comando accede al nodo raíz (OID 1) del árbol de MIB del dispositivo, lo que nos permite obtener toda la información disponible sobre él. La respuesta obtenida indica que el dispositivo está etiquetado como HTB Printer y proporciona un conjunto de bits asociada a una OID específica (enterprises.11.2.3.9.1.1.13.0), lo que puede ser útil para identificar configuraciones o parámetros adicionales del dispositivo.
Además, al explorar la OID enterprises.11.2.3.9.1.2.1.0, se nos indicó que no hay más variables disponibles en este nodo del árbol, lo que implica que hemos llegado al final de la información accesible a través de esta ruta en particular.
Este proceso de enumeración nos permitió obtener detalles clave del dispositivo y explorar posibles vectores de ataque asociados a su configuración SNMP.
Network Printer Abuse (HP JetDirects)
Por otro lado, en el siguiente blog nos especifican como podemos hackear impresoras HP JetDirects desde SNMP para lograr obtener la contraseña de la impresora.

Al realizar la ejecución del comando que se nos indicaba en el blog, logramos obtener el mismo resultado anterior.
Este resultado s eencuentra en hexadecimal, al convertirlo en ASCII, logramos obtener la contraseña de la impresora de red.
Probamos de acceder nuevamente a telnet e ingresamos las credenciales obtenidas. Verificamos que logramos acceder a la impresora correctamente.
Por otro lado, verificamos que dispone de un comando exec que al parecer permite ejecutar comandos. Al ejecutar un comando exec id verificamos que logramos ejecutarlo sin problemas.
Por lo tanto, probarmeos de obtener una Reverse Shell. Para ello, nos pondremos en escucha por un puerto.
Desde la interfaz de telnet de la impresora, ejecutaremos el siguiente comando.
Verificamos que logramos obtener acceso al sistema y visualizar la flag de user.txt.
Privilege Escalation
CUPS Administration Exploitation (CVE-2012-5519)
Revisamos si en el equipo dispone de algún puerto interno abierto. Verificamos que hay un puerto 161 abierto el cual investigaremos.
Realizaremos Port Forwarding a través de chisel para obtener acceso a ese puerto desde nuestro equipo local.
Desde nuestra Kali, nos crearemos un servidor con chisel.
Por otro lado, deberemos disponer del binario de chisel para Linux y compartiremos este binario a través de un servidor web.
Desde el equipo comprometido, nos descargaremos el chisel, le daremos permisos de ejecución y lo configuraremos para que actúe como cliente y nos realice el Port Forwarding del puerto que nos interesa.
Desde nuestor navegador, accederemos a http://127.0.0.1:631 y verificaremos que se trata del panel de Administración de CUPS. Además logramos verificar la versión 1.6.1.

Revisando posibles vulnerabilidades de esta versión de CUPS, nos encontramos con el siguiente CVE-2012-5519.
CUPS v1.4.4, cuando se ejecuta en ciertas distribuciones de Linux como Debian GNU/Linux, almacena la la clave de la interfaz web del administrador en /var/run/cups/certs/0 con ciertos permisos, lo que permite a los usuarios locales en el grupo lpadmin leer o escribir archivos arbitrarios como root mediante el aprovechamiento de la interfaz web.
Nos descargaremos el siguiente repositorio de GitHub el cual nos proporcionan un exploit.
Nos pasaremos el exploit al equipo comrpometido y lo ejecutaremos. Al ejecutarlo verificamos que podemos leer archivos arbitrarios, entre los cuales podemos visualizar la flag de root.txt directamente.
También verificamos que podemos visualizar el archivo /etc/passwd el cual nos aparece la contraseña del usuarioroot cifrada. Intentamos descifrarla pero no obtuvimos éxito en el resultado.
Obtaining root shell - pwnkit (CVE-2021-4034)
Revisando posibles vulnerabilidades del equipo, nos encontramos que el equipo era vulnerable a CVE-2021-403.
Al ejecutar el exploit, verificamos que logramos obtener una bash como usuarioroot.
Última actualización
¿Te fue útil?