Last updated on abril 2, 2021
En este post vamos a hablar sobre cómo sacarle el máximo provecho al Remote Procedure Call, un protocolo que está integrado en muchísimas aplicaciones. La «Llamada a Procedimiento Remoto» se produce cuando un ordenador solicita un servicio que se encuentra en otro ordenador y que va por una red, sin necesidad de conocer los detalles de esa red, pues todas las comunicaciones están encapsuladas dentro de este protocolo.
De esa forma los programadores pueden ejecutar estas llamadas de la misma forma que lo harían si el código estuviera en el mismo ordenador, llamando a procesos remotos como se haría en procesos locales.
Normalmente, sobre todo en windows, este servicio corre sobre SMB, puerto 139 y 445, como podemos ver a continuación:
No obstante suele tener otros puertos abiertos que muestran su presencia, como el puerto 135, tal y como podemos ver en la siguiente captura de nmap:
Enumeración de Usuarios
Mediante el cliente rpc podemos obtener mucha información interesante sobre el sistema y los usuarios del mismo. A continuación podemos ver cómo es posible obtener los usuarios de un Windows mediante el comando rpcclient. Nótese que hemos podido acceder mediante usuario anónimo (por eso las comillas ‘ ‘ ) debido a un fallo en la configuración de privacidad de este sistema.
Una vez en la consola rpc, ejecutamos el comando enumdomusers para obtener los usuarios del dominio así como sus identificadores relativos (rid).
Podemos ampliar esta información mediante el comando querydispinfo, obteniendo los nombres y las descripciones de los usuarios.
Enumeración de Grupos
Mediante el comando enumdomgroups podemos ver los diferentes grupos de usuarios del dominio:
Causa especial interes el grupo Contractors, pues no es uno de los grupos por defecto. Podemos obtener más información sobre un grupo con el comando querygroup, indicando el rid del grupo:
Y mediante su rid también podemos obtener los miembros que conforman este grupo, utilizando el comando querygroupmem.
Otros Comandos
SSID de un Usuario
Mediante el comando lookupnames podemos obtener el Service Set Identifier (SSID) de un usuario.
El SSID está compuesto por la primera parte (todo lo que va hasta el último guión) que indica el dominio, y la segunda parte (el último número) que indica el usuario.
Lo más importante es que el administrador siempre va a tener el número 500 al final de su SSID.
Además Mirando un SSID también puedes ver a que usuario pertenece, mediante el comando lookupsids:
Esto es todo por el momento sobre el protocolo RPC. Este protocolo aunque a priori puede parecer inofensivo, puede ser la clave para acceder a un sistema gracias a la gran cantidad de información que puede llegar a revelar. En varias de ocasiones me he encontrado ordenadores windows que estaban corriendo samba que a priori no había forma de atacar, y gracias a rpcclient pude obtener la información necesaria para vulnerarlos.
Si te ha gustado el artículo, te recomiendo que visites el resto de artículos de hacking de infraestructura.
Lethani.
Be First to Comment