{"id":254,"date":"2022-11-25T03:41:42","date_gmt":"2022-11-25T03:41:42","guid":{"rendered":"https:\/\/jsec-rt.com\/?p=254"},"modified":"2024-07-08T22:53:17","modified_gmt":"2024-07-09T02:53:17","slug":"rt-ntlm-relay-y-coerce-authentication-casos-practicos","status":"publish","type":"post","link":"https:\/\/jsec-rt.com\/index.php\/2022\/11\/25\/rt-ntlm-relay-y-coerce-authentication-casos-practicos\/","title":{"rendered":"RT &#8211; NTLM Relay y Coerce authentication, casos pr\u00e1cticos"},"content":{"rendered":"\n<p>Ya son bastantes veces que me tope, en escenarios reales, con ciertas configuraciones en el dominio que permiten a un atacante obtener control sobre ciertos equipos y servidores dadas las siguientes condiciones:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Se tiene la posibilidad de forzar la autenticaci\u00f3n de un usuario o servidor hacia el equipo del atacante.<\/li>\n\n\n\n<li>Este usuario o servidor tienen privilegios administrativos sobre otro servidor o estaci\u00f3n de trabajo.<\/li>\n\n\n\n<li>La firma de mensajes SMB no es requerida. <\/li>\n<\/ol>\n\n\n\n<p>Los \u00faltimos dos puntos no est\u00e1n bajo control del atacante, son configuraciones que ya vienen definidas en un dominio y un atacante sin los privilegios necesarios, no las puede modificar, sin embargo, el primer punto puede ser ejecutado por el atacante, a trav\u00e9s de numerosas t\u00e9cnicas ya documentadas y con sus a\u00f1os de antig\u00fcedad, en este post demostrare como se pueden realizar estos ataques de relay a trav\u00e9s de distintas t\u00e9cnicas, aprovechando llamadas por RPC a distintos servicios.<\/p>\n\n\n\n<p>Uno de estos escenarios pego bastante fuerte el a\u00f1o pasado, a trav\u00e9s de la vulnerabilidad Petit Potam, la cual consiste en abusar una funcionalidad leg\u00edtima de un servidor ADCS (Active Directory Certificate Services) para solicitar un certificado digital en base64 perteneciente a un controlador de dominio, utilizando este para solicitar un TGT a nombre del DC, con este ticket se pueden ejecutar ciertas acciones personificando a dicho DC, incluyendo la recuperaci\u00f3n de su hash en formato NTLM, para luego utilizarlo en un proceso de DCSYNC y obtener el resto de los hashes del dominio interno.<\/p>\n\n\n\n<p>Ahora, en muchos casos vi que se refer\u00edan a Petit Potam como la obtenci\u00f3n del certificado digital a trav\u00e9s del ADCS, lo cual en mi opinion, es err\u00f3neo, ya que la entrega del certificado digital es el funcionamiento regular del servicio. En mi opinion y seg\u00fan mi experiencia, Petit potam es la vulnerabilidad que permite forzar la autenticaci\u00f3n de un equipo de dominio hacia el equipo del atacante, el relay hacia el ADCS y el resto de puntos mencionados son parte de la cadena de explotaci\u00f3n, pero no necesariamente de la vulnerabilidad.<\/p>\n\n\n\n<p>Existe una abundancia de recursos sobre la explotaci\u00f3n de Petit Potam, por lo que no explicare la vulnerabilidad ni la cadena de explotaci\u00f3n como tal, pero lo que si me parece importante explorar es <strong>Coerce Authentication<\/strong>.<\/p>\n\n\n\n<p>Como comente, es la capacidad de forzar que un equipo se autentique a otro, utilizando la cuenta de usuario asociada al equipo del dominio interno.<\/p>\n\n\n\n<p>Explicando un poco mas este punto, de manera simplificada, cuando un equipo es asociado al dominio interno, se crea un usuario propio de este equipo, el cual ser\u00e1 utilizado para validar si el equipo pertenece o no al dominio interno, si el hostname del equipo es SERVER, el usuario creado ser\u00e1 SERVER$.<\/p>\n\n\n\n<p>Estos usuarios pertenecientes a equipos son igual de validos para realizar consultas sobre el dominio interno o autenticarse a sus recursos respectivos, sin embargo, pertenecen a un grupo no privilegiado y su acceso es bastante limitado, pero aun pueden ser definidos como usuarios administradores o con privilegios por ACLs hacia otros objetos del dominio.<\/p>\n\n\n\n<p>En este post, mostrare algunos escenarios que me tope en el trabajo, donde equipos son administradores de otros equipos que no requieren la firma de mensajes SMB y captura de hashes NetNTLMv1 utilizando Responder de un controlador de dominio, para luego utilizar un servicio online con el objetivo de intentar obtener el hash NTLM respectivo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Configuraci\u00f3n del entorno.<\/h2>\n\n\n\n<p>Procedemos a configurar nuestro entorno de Active Directory con estas pr\u00e1cticas inseguras.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Usuarios de equipos en dominio administradores de otros equipos<\/h3>\n\n\n\n<p>Para simular un entorno ligeramente m\u00e1s realista, crearemos un nuevo grupo en nuestro Active Directory, en mi caso, lo llamare <strong>equipos_ti<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"1024\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-982x1024.png\" alt=\"\" class=\"wp-image-260\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-982x1024.png 982w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-288x300.png 288w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-768x801.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image.png 1346w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n\n\n\n<p>Y agregar\u00e9 como miembros a los equipos <strong>SOPORTE01<\/strong> y <strong>TECNOLOGIA01<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"780\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1-1024x780.png\" alt=\"\" class=\"wp-image-261\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1-1024x780.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1-300x229.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1-768x585.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1-1536x1170.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-1.png 1722w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Similar a casos anteriores, al querer adicionar equipos, debemos expandir la opci\u00f3n <strong>Object Types<\/strong> y marcar la casilla de <strong>Computers<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"626\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2-1024x626.png\" alt=\"\" class=\"wp-image-262\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2-1024x626.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2-300x183.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2-768x469.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2-1536x939.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-2.png 1590w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Luego agregamos a los dos equipos mencionados.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"646\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-3-1024x646.png\" alt=\"\" class=\"wp-image-263\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-3-1024x646.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-3-300x189.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-3-768x484.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-3.png 1094w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Una vez agregados los equipos, nos autenticamos a estos y por temas de simplicidad, realizaremos la configuraci\u00f3n de manera manual.<\/p>\n\n\n\n<p>En el equipo <strong>SOPORTE01<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"641\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4-1024x641.png\" alt=\"\" class=\"wp-image-264\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4-1024x641.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4-300x188.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4-768x480.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4-1536x961.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-4.png 1560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Agregamos al grupo de dominio <strong>equipos_ti<\/strong> y al equipo <strong>ATENCION01$<\/strong> a los administradores locales.<\/p>\n\n\n\n<p>En el equipo <strong>TECNOLOGIA01<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"387\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-5-1024x387.png\" alt=\"\" class=\"wp-image-265\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-5-1024x387.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-5-300x113.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-5-768x290.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-5.png 1260w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Agregamos al grupo de dominio <strong>equipos_ti<\/strong> a los administradores locales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Captura de hash NetNTLMv1 del Controlador de dominio.<\/h3>\n\n\n\n<p>Por defecto, las \u00faltimas versiones de Windows Server tienen esta opci\u00f3n configurada de manera m\u00e1s segura, si se utiliza una versi\u00f3n obsoleta de Windows Server, es posible que se lo tenga configurado de la siguiente manera.<\/p>\n\n\n\n<p>Ejecutamos el comando <strong>secpol.msc<\/strong> en el controlador de dominio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1003\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-6-1024x1003.png\" alt=\"\" class=\"wp-image-266\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-6-1024x1003.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-6-300x294.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-6-768x752.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-6.png 1448w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>En la ventana, navegamos a la pesta\u00f1a <strong>Local Policies<\/strong>, luego <strong>Security Options<\/strong> y buscamos la opci\u00f3n <strong>Network Security: LAN Manager authentication level<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"810\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-8-1024x810.png\" alt=\"\" class=\"wp-image-268\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-8-1024x810.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-8-300x237.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-8-768x607.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-8.png 1482w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Haciendo doble click, modificamos el valor del par\u00e1metro a cualquiera de los siguientes valores vulnerables:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Send LM&amp; NTLM responses<\/em><\/li>\n\n\n\n<li><em>Send LM&amp; NTLM \u2013 use NTLMv2 session security if negotiated<\/em><\/li>\n\n\n\n<li><em>SendNTLM responses only<\/em><\/li>\n<\/ul>\n\n\n\n<p>En mi caso, seleccione la opci\u00f3n <strong>Send LM&amp; NTLM responses<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"716\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9-1024x716.png\" alt=\"\" class=\"wp-image-269\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9-1024x716.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9-300x210.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9-768x537.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9-1536x1074.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-9.png 1690w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Le damos OK y procedemos a explotar los vectores respectivos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ataque &#8211; Captura de hash NetNTLMv1 del controlador de dominio<\/h3>\n\n\n\n<p>Para capturar el hash, necesitamos que el controlador de dominio se autentique al equipo del atacante, similar a un caso donde un equipo lista los directorios compartidos de otro equipo en red.<\/p>\n\n\n\n<p>Si bien listar los directorios compartidos de un equipo es una tarea sencilla, se necesita tener una sesi\u00f3n activa en el equipo objetivo.<\/p>\n\n\n\n<p>Tambi\u00e9n se puede utilizar la funci\u00f3n p\u00fablica <strong>xp_dirtree<\/strong> o <strong>xp_fileexists<\/strong> desde una instancia de MSSQL, pero requiere que el servidor objetivo tenga instalado este software (Entrada futura del blog, utilizando herramientas como PowerUpSQL para movimiento lateral en instancias MSSQL de dominio).<\/p>\n\n\n\n<p>Los dos caminos mencionados anteriormente no son aplicables en el entorno que estamos evaluando, ya que no tenemos una manera de generar una sesi\u00f3n activa sobre el controlador de dominio o MSSQL instalado, por lo que utilizaremos una de las muchas herramientas disponibles de <strong>Coerce<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Printerbug<\/strong><\/li>\n\n\n\n<li>DFSCoerce<\/li>\n\n\n\n<li>ShadowCoerce<\/li>\n\n\n\n<li>PetitPotam<\/li>\n\n\n\n<li>Dementor<\/li>\n\n\n\n<li>Coercer (Utiliza 9 distintos m\u00e9todos, incluyendo algunos de los mencionados anteriormente)<\/li>\n\n\n\n<li>Etc.<\/li>\n<\/ul>\n\n\n\n<p>Existen m\u00faltiples herramientas que, a trav\u00e9s de llamadas por el protocolo RPC, ocasionan que el equipo objetivo se autentique al equipo del atacante, esta autenticaci\u00f3n es realizada por el usuario del equipo de dominio, en el caso del laboratorio, usuario <strong>DC01$<\/strong>.<\/p>\n\n\n\n<p>Utilizaremos la herramienta <strong>Printerbug<\/strong>, que utiliza el servicio SpoolService, relacionado a impresiones, para forzar la autenticaci\u00f3n del equipo objetivo hacia el equipo del atacante.<\/p>\n\n\n\n<p>Para demostrar la diferencia despu\u00e9s de haber realizado la configuraci\u00f3n mencionada, ejecute <strong>Responder<\/strong> con la flag <strong>&#8211;lm<\/strong> para forzar el downgrade en la comunicaci\u00f3n establecida sobre el controlador de dominio <strong>sin<\/strong> realizar el cambio detallado anteriormente sobre la pol\u00edtica de seguridad local.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"518\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-1024x518.png\" alt=\"\" class=\"wp-image-267\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-1024x518.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-300x152.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-768x388.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-1536x777.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-7-2048x1036.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se observa que se captura el hash del controlador de dominio, sin embargo, es del tipo NetNTLMv2, por lo que poder crackear o realizar un ataque de fuerza bruta sobre este es pr\u00e1cticamente imposible, ya que el hash representa la contrase\u00f1a del usuario <strong>DC01$<\/strong>, dicha contrase\u00f1a es definida por el mismo controlador de dominio y tiene una complejidad ideal (Ejemplo: ^7a1913^0*!@$(@#%)@)61!!$^#@*@!5632472579%#^2871$%3497#@469FVTBang6Q^)<\/p>\n\n\n\n<p>La facilidad de los hashes tipo NetNTLMv1 es que ya existen Rainbow Tables correspondiente al hash NTLM, por lo que es mucho m\u00e1s sencillo convertir un hash NetNTLMv1 a NTLM, debido al protocolo obsoleto inicial.<\/p>\n\n\n\n<p>Luego de realizar la configuraci\u00f3n respectiva, se vuelve a forzar la autenticaci\u00f3n del controlador de dominio hacia el equipo del atacante, obteniendo su hash NetNTLMv1.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-1024x535.png\" alt=\"\" class=\"wp-image-270\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-1024x535.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-300x157.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-768x402.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-1536x803.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-10-2048x1071.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Sin embargo, para poder utilizar el servicio online <strong>crack.sh<\/strong>, necesitamos configurar un Challenge con el valor 1122334455667788 en Responder, por lo que se procede a realizar el ajuste en la herramienta.<\/p>\n\n\n\n<p>Modificamos el fichero Responder.conf.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"764\" height=\"1024\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-11-764x1024.png\" alt=\"\" class=\"wp-image-271\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-11-764x1024.png 764w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-11-224x300.png 224w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-11-768x1030.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-11.png 1016w\" sizes=\"auto, (max-width: 764px) 100vw, 764px\" \/><\/figure>\n\n\n\n<p>Ya teniendo configurado el challenge, ejecutamos nuevamente <strong>Responder<\/strong> y <strong>Printerbug<\/strong>.<\/p>\n\n\n\n<p>*Nota: Ya que se capturo el hash del DC01 con un challenge aleatorio, ser\u00e1 necesario borrar la base de datos de responder, para que vuelva a capturar el hash respectivo (\/usr\/share\/responder\/Responder.db en Kali Linux)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"539\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-1024x539.png\" alt=\"\" class=\"wp-image-272\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-1024x539.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-300x158.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-768x405.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-1536x809.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-12-2048x1079.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se captura el hash NetNTLMv1, esta vez con el challenge requerido por la p\u00e1gina crack.sh.<\/p>\n\n\n\n<p>Ahora, para poder obtener el hash en formato NTLM, se puede utilizar el servicio online mencionado anteriormente o ejecutar un ataque de fuerza bruta sobre el hash, sin embargo, esta tarea requiere bastante poder computacional y tiempo, dado que las contrase\u00f1as de los equipos cambian cada 30 d\u00edas de manera autom\u00e1tica, muchas veces este escenario no es el \u00f3ptimo, por lo que se utiliza el servicio online.<\/p>\n\n\n\n<p>Accediendo a crack.sh, obtenemos informaci\u00f3n del formato en el enlace https:\/\/crack.sh\/netntlm\/<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"468\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13-1024x468.png\" alt=\"\" class=\"wp-image-273\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13-1024x468.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13-300x137.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13-768x351.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13-1536x702.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-13.png 1812w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>En el caso de mi laboratorio, el valor a procesar ser\u00e1<\/p>\n\n\n\n<p>NTHASH:A618A0E8ABB78B19A9B03A2DAFDF92101E833100F217F29C<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-1024x597.png\" alt=\"\" class=\"wp-image-274\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-1024x597.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-300x175.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-768x448.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-1536x896.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-14-2048x1194.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se observa que el proceso ser\u00e1 gratis debido al hash utilizado.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"303\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-1024x303.png\" alt=\"\" class=\"wp-image-275\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-1024x303.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-300x89.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-768x227.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-1536x455.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-15-2048x606.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>El proceso puede demorar un par de d\u00edas, a m\u00e1s tardar, pero usualmente es r\u00e1pido, ya que yo obtuve el resultado despu\u00e9s de 31 segundos de procesamiento.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"201\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-1024x201.png\" alt=\"\" class=\"wp-image-276\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-1024x201.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-300x59.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-768x151.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-1536x302.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-16-2048x403.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Una vez obtengamos el resultado, tendremos el hash NTLM del controlador de dominio, el cual puede ser utilizado para realizar un DCSYNC sobre el mismo controlador de dominio.<\/p>\n\n\n\n<p>Confirmando que el hash es v\u00e1lido.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"116\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17-1024x116.png\" alt=\"\" class=\"wp-image-277\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17-1024x116.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17-300x34.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17-768x87.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17-1536x175.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-17.png 1636w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dumpeando los hashes del dominio interno.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"818\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-18-1024x818.png\" alt=\"\" class=\"wp-image-278\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-18-1024x818.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-18-300x240.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-18-768x613.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-18.png 1252w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>De esta manera, se comprometi\u00f3 el dominio interno utilizando un usuario de dominio de bajos privilegios, un m\u00e9todo de Coerce authentication y crackeo de un hash NetNTLMv1.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ataque &#8211; Usuarios de equipos en dominio administradores de otros equipos<\/h3>\n\n\n\n<p>En un escenario regular y com\u00fan, usuarios de dominio son los que tienen privilegios administrativos.<\/p>\n\n\n\n<p>Utilizando Bloodhound, interpretamos este escenario de la siguiente manera.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"834\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19-1024x834.png\" alt=\"\" class=\"wp-image-281\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19-1024x834.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19-300x244.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19-768x626.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19-1536x1251.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-19.png 1736w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Observamos que el grupo <strong>equipos_ti<\/strong> tiene privilegios administrativos sobre los equipos <strong>SOPORTE01 <\/strong>y <strong>TECNOLOGIA01<\/strong>.<\/p>\n\n\n\n<p>De la misma manera, observamos los miembros del grupo <strong>equipos_ti<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"802\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20-1024x802.png\" alt=\"\" class=\"wp-image-282\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20-1024x802.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20-300x235.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20-768x601.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20-1536x1203.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-20.png 1734w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Se puede concluir que los equipos <strong>SOPORTE01 <\/strong>y <strong>TECNOLOGIA01<\/strong> son administradores de si mismos.<\/p>\n\n\n\n<p>Si queremos buscar este tipo de informaci\u00f3n en Bloodhound de manera directa, podemos utilizar la siguiente query:<\/p>\n\n\n\n<p><em><strong>MATCH p = (c1:Computer)-[r1:AdminTo]-&gt;(c2:Computer) RETURN p UNION ALL MATCH p = (c3:Computer)-[r2:MemberOf*1..]-&gt;(g:Group)-[r3:AdminTo]-&gt;(c4:Computer) RETURN p<\/strong><\/em><\/p>\n\n\n\n<p>El resultado es el siguiente:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"281\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-1024x281.png\" alt=\"\" class=\"wp-image-283\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-1024x281.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-300x82.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-768x210.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-1536x421.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-21-2048x561.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Entendiendo el gr\u00e1fico, observamos que existe un vector de ataque a trav\u00e9s de los usuarios de equipos en el dominio.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"318\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-1024x318.png\" alt=\"\" class=\"wp-image-284\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-1024x318.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-300x93.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-768x238.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-1536x477.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-22-2048x636.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Si llegamos a comprometer el equipo <strong>ATENCION01<\/strong>, podemos utilizar el hash del usuario <strong>ATENCION01$<\/strong> para obtener acceso administrativo sobre <strong>SOPORTE01<\/strong>, posteriormente, utilizamos el hash del usuario <strong>SOPORTE01$<\/strong> para acceder con privilegio administrativo sobre <strong>TECNOLOGIA01<\/strong> y finalmente utilizar el hash del usuario <strong>TECNOLOGIA01$<\/strong> para obtener control del dominio interno, ya que este usuario es miembro de los administradores de dominio.<\/p>\n\n\n\n<p>Utilizando la herramienta mencionada anteriormente, <strong>Coercer<\/strong>, podemos realizar un ataque de Relay.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Acceso a SOPORTE01 desde ATENCION01<\/h4>\n\n\n\n<p>Utilizaremos la herramienta <strong>ntlmrelayx<\/strong> para realizar el ataque mencionado.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"562\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-23.png\" alt=\"\" class=\"wp-image-285\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-23.png 874w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-23-300x193.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-23-768x494.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/figure>\n\n\n\n<p>En este caso, apuntamos el relay hacia el servidor <strong>soporte01.jsec.local<\/strong>, indicando que cualquier intento de autenticaci\u00f3n hacia el equipo del atacante sera reenviado hacia el equipo objetivo.<\/p>\n\n\n\n<p>Forzando la autenticaci\u00f3n del equipo <strong>atencion01.jsec.local<\/strong> hacia el equipo del atacante.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-1024x510.png\" alt=\"\" class=\"wp-image-286\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-1024x510.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-300x149.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-768x383.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-1536x765.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-24-2048x1020.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Observamos que al utilizar <strong>Coercer<\/strong>, se validaron m\u00faltiples maneras de forzar la autenticaci\u00f3n del objetivo al equipo del atacante, teniendo \u00e9xito en una de ellas seg\u00fan el resultado obtenido en el relay, ya que fue posible autenticarse al equipo <strong>soporte01.jsec.local<\/strong> como el usuario<strong> JSEC\\ATENCION01$<\/strong>, posteriormente dumpeando los hashes de usuarios locales.<\/p>\n\n\n\n<p>Utilizamos al usuario local <strong>IEUser<\/strong> para obtener acceso administrativo al equipo, a trav\u00e9s de un ataque Pass the hash.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"269\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27-1024x269.png\" alt=\"\" class=\"wp-image-288\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27-1024x269.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27-300x79.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27-768x201.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27-1536x403.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-27.png 1754w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Obtenemos el hash del usuario <strong>ATENCION01$<\/strong>, permiti\u00e9ndonos utilizarlo para acceder administrativamente a <strong>SOPORTE01<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"287\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28-1024x287.png\" alt=\"\" class=\"wp-image-289\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28-1024x287.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28-300x84.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28-768x215.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28-1536x430.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-28.png 1756w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Obtenemos el hash del usuario <strong>SOPORTE01$<\/strong> utilizando al usuario <strong>ATENCION01$<\/strong>.<\/p>\n\n\n\n<p>Ahora podemos utilizar a <strong>SOPORTE01$<\/strong> para obtener acceso administrativo a <strong>TECNOLOGIA01$<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"379\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30-1024x379.png\" alt=\"\" class=\"wp-image-290\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30-1024x379.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30-300x111.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30-768x285.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30-1536x569.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-30.png 1754w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Finalmente, comprometemos el dominio interno utilizando el hash del usuario <strong>TECNOLOGIA01$<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"113\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-31-1024x113.png\" alt=\"\" class=\"wp-image-291\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-31-1024x113.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-31-300x33.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-31-768x85.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-31.png 1486w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Sin embargo, si observamos el gr\u00e1fico en Bloodhound, observamos que no es necesario realizar el relay desde <strong>ATENCION01<\/strong> hacia <strong>SOPORTE01<\/strong>, ya que podemos hacerlo directamente desde el segundo mencionado hacia <strong>TECNOLOGIA01.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"493\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-1024x493.png\" alt=\"\" class=\"wp-image-292\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-1024x493.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-300x144.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-768x369.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-1536x739.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-32-2048x985.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Obtenemos acceso administrativo a <strong>TECNOLOGIA01<\/strong>, dumpeando los hashes de usuarios locales.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"346\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-33-1024x346.png\" alt=\"\" class=\"wp-image-293\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-33-1024x346.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-33-300x101.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-33-768x259.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-33.png 1078w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Sin embargo, consideremos un escenario donde Pass the hash no es posible (los usuarios locales no est\u00e1n autorizados para autenticarse de manera remota), por lo que estos hashes no nos servir\u00edan si no llegamos a crackearlos y tener acceso fisico al equipo respectivo.<\/p>\n\n\n\n<p>Podemos configurar el relay para ejecutar un comando en lugar de dumpear los hashes respectivos.<\/p>\n\n\n\n<p>Desplegamos el relay con la flag <strong>-c<\/strong> y especificando el comando respectivo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-1024x446.png\" alt=\"\" class=\"wp-image-294\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-1024x446.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-300x131.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-768x334.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-1536x668.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-34-2048x891.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>De igual manera, en la parte inferior, tenemos un intento de autenticaci\u00f3n con el usuario <strong>demo<\/strong>, donde observamos que es v\u00e1lido, pero no tiene privilegios administrativos.<\/p>\n\n\n\n<p>Ejecutando el ataque Coerce y el comando respectivo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"404\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-1024x404.png\" alt=\"\" class=\"wp-image-295\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-1024x404.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-300x118.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-768x303.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-1536x606.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-35-2048x808.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Observamos que el comando se ejecuto de manera correcta y el usuario <strong>demo<\/strong> obtiene privilegios administrativos sobre <strong>TECNOLOGIA01<\/strong><\/p>\n\n\n\n<p>Ahora podemos usar a <strong>demo<\/strong> para obtener el hash NTLM del usuario <strong>TECNOLOGIA01<\/strong> y controlar el dominio, siempre y cuando el equipo tenga estos privilegios.<\/p>\n\n\n\n<p>En caso de que se trate de un equipo regular, sin privilegios, pero con informaci\u00f3n sensible y no se quieran levantar alertas de creaci\u00f3n de usuarios o nuevos usuarios en grupos privilegiados, podemos utilizar el relay para desplegar un proxy SOCKS4 y utilizar el intento de autenticaci\u00f3n con otras herramientas.<\/p>\n\n\n\n<p>En este caso, utilizaremos <strong>Printerbug<\/strong> para forzar una \u00fanica vez la autenticaci\u00f3n del equipo objetivo hacia el atacante, en lugar de 9 veces con <strong>Coercer<\/strong>.<\/p>\n\n\n\n<p>Se recomienda utilizar direcciones IP en lugar de hostnames para establecer el proxy, ya que al intentar utilizar el proxy con un hostname, se intentara realizar la resoluci\u00f3n del hostname a trav\u00e9s de este y fallar\u00e1, ya que solo se tiene una ruta para el puerto 445, no al puerto 53.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"543\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-1024x543.png\" alt=\"\" class=\"wp-image-298\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-1024x543.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-300x159.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-768x407.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-1536x815.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-38-2048x1086.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Para listar las conexiones activas, escribimos <strong>socks<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"160\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-39.png\" alt=\"\" class=\"wp-image-299\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-39.png 734w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-39-300x65.png 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/figure>\n\n\n\n<p>Observamos que tenemos una sesi\u00f3n activa sobre el equipo<strong> 192.168.64.212<\/strong> con el usuario <strong>JSEC\/SOPORTE01$<\/strong> por el puerto 445 con privilegios de administrador<strong> <\/strong>(AdminStatus TRUE)<\/p>\n\n\n\n<p>Ahora podemos utilizar <strong>proxychains<\/strong> para utilizar esta conexi\u00f3n y los privilegios del usuario <strong>SOPORTE01$<\/strong> para acceder al equipo <strong>TECNOLOGIA01<\/strong> por el protocolo SMB.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"662\" src=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-1024x662.png\" alt=\"\" class=\"wp-image-300\" srcset=\"https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-1024x662.png 1024w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-300x194.png 300w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-768x496.png 768w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-1536x992.png 1536w, https:\/\/jsec-rt.com\/wp-content\/uploads\/2022\/11\/image-40-2048x1323.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Observamos que tenemos acceso administrativo al equipo <strong>TECNOLOGIA01<\/strong>, ya que por SMB podemos navegar por el directorio <strong>C$<\/strong>, si bien se observa en la captura que se solicita la contrase\u00f1a, podemos dejarla vac\u00eda, ya que se utilizar\u00e1 la sesi\u00f3n almacenada en el relay.<\/p>\n\n\n\n<p>Este tipo de vectores son un poco raros en escenarios reales, sin embargo, yo me top\u00e9 m\u00faltiples veces con este tipo de vectores, especialmente este \u00faltimo, por lo que considero que es importante documentar una de las maneras de explotar estos vectores.<\/p>\n\n\n\n<p>Espero que sea de ayuda!<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ya son bastantes veces que me tope, en escenarios reales, con ciertas configuraciones en el dominio que permiten a un atacante obtener control sobre ciertos equipos y servidores dadas las siguientes condiciones: Los \u00faltimos dos puntos no est\u00e1n bajo control del atacante, son configuraciones que ya vienen definidas en un <a href=\"https:\/\/jsec-rt.com\/index.php\/2022\/11\/25\/rt-ntlm-relay-y-coerce-authentication-casos-practicos\/\" class=\"btn-link\">Continue Reading<i class=\"ion-ios-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-254","post","type-post","status-publish","format-standard","hentry","category-p-rt"],"_links":{"self":[{"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/posts\/254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/comments?post=254"}],"version-history":[{"count":7,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/posts\/254\/revisions"}],"predecessor-version":[{"id":303,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/posts\/254\/revisions\/303"}],"wp:attachment":[{"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/media?parent=254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/categories?post=254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jsec-rt.com\/index.php\/wp-json\/wp\/v2\/tags?post=254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}