<?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: croxsec</title>
    <description>The latest articles on DEV Community by croxsec (@croxsec).</description>
    <link>https://dev.to/croxsec</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%2F4216054%2Fc0107c72-d127-49dd-8a09-4fc4110a4fcb.png</url>
      <title>DEV Community: croxsec</title>
      <link>https://dev.to/croxsec</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/croxsec"/>
    <language>en</language>
    <item>
      <title>El Método CROX Sec: auditoría externa pasiva completa (guía definitiva)</title>
      <dc:creator>croxsec</dc:creator>
      <pubDate>Thu, 29 Oct 2026 20:52:53 +0000</pubDate>
      <link>https://dev.to/croxsec/el-metodo-crox-sec-auditoria-externa-pasiva-completa-guia-definitiva-5c59</link>
      <guid>https://dev.to/croxsec/el-metodo-crox-sec-auditoria-externa-pasiva-completa-guia-definitiva-5c59</guid>
      <description>&lt;h1&gt;
  
  
  El Método CROX Sec: auditoría externa pasiva completa
&lt;/h1&gt;

&lt;p&gt;La guía definitiva en español para evaluar la superficie de seguridad de cualquier dominio &lt;strong&gt;sin tocarlo&lt;/strong&gt;: cero paquetes intrusivos, cero autorización necesaria, cero excusas. Todo lo que sigue funciona desde una terminal y una tarde de tu tiempo.&lt;/p&gt;




&lt;h2&gt;
  
  
  FILOSOFÍA: ver lo que ve el atacante
&lt;/h2&gt;

&lt;p&gt;Tu firewall interno, tus políticas y tus antivirus no le importan a quien te ataca: él ve lo que es público. La auditoría pasiva replica esa visión. Si encuentras puertas desde fuera, un atacante las encontraría. Si cierras esas puertas, el 90% de los ataques oportunistas rebota.&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 1 — Mapa de subdominios (20 minutos)
&lt;/h2&gt;

&lt;p&gt;Todo certificado TLS queda registrado públicamente en los Certificate Transparency logs. Es el mapa más honesto que existe:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://crt.sh/?q=%25.DOMINIO&amp;amp;output=json"&lt;/span&gt; | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.[].name_value'&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; subs.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Limpia wildcards y duplicados. Lo que queda es TODO lo que ha tenido HTTPS: incluido lo que el equipo ya olvidó.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Defensa:&lt;/strong&gt; apaga en DNS lo que no exista. Un subdominio que no resuelve no puede ser secuestrado.&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 2 — Qué responde y con qué (15 minutos)
&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;subs.txt | httpx &lt;span class="nt"&gt;-title&lt;/span&gt; &lt;span class="nt"&gt;-tech-detect&lt;/span&gt; &lt;span class="nt"&gt;-status-code&lt;/span&gt; &lt;span class="nt"&gt;-silent&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; alive.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O a mano para pocos dominios:&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="k"&gt;for &lt;/span&gt;s &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;subs.txt&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"== &lt;/span&gt;&lt;span class="nv"&gt;$s&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; curl &lt;span class="nt"&gt;-sk&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code} %{redirect_url}
'&lt;/span&gt; &lt;span class="nt"&gt;--max-time&lt;/span&gt; 6 https://&lt;span class="nv"&gt;$s&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Marca: paneles de login (403/401/200 con form), servicios conocidos (webmail, phpmyadmin, jenkins, grafana), subdominios de terceros (CNAME a SaaS).&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 3 — Radiografía de cabeceras (10 minutos por dominio vivo)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-sI&lt;/span&gt; https://DOMINIO | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-iE&lt;/span&gt; &lt;span class="s1"&gt;'strict-transport|content-security|x-frame|x-content|referrer|server|x-powered'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tabla rápida:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sin HSTS&lt;/strong&gt; → downgrade posible en red hostil&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sin CSP/X-Frame&lt;/strong&gt; → clickjacking e inyección de recursos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server/X-Powered con versión&lt;/strong&gt; → regalo de fingerprint&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sin security.txt&lt;/strong&gt; → el investigador honesto no tiene cómo avisarte&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  FASE 4 — DNS de correo: la suplantación (15 minutos)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig +short TXT DOMINIO | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; spf
dig +short TXT _dmarc.DOMINIO
dig +short TXT default._domainkey.DOMINIO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SPF ausente o con +all&lt;/strong&gt; → cualquiera envía como tú&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DMARC ausente o p=none&lt;/strong&gt; → el phishing con tu marca tiene vía libre&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DKIM ausente&lt;/strong&gt; → los spoof no se detectan&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El fix completo (SPF + DKIM + DMARC p=quarantine→reject) corta el phishing corporativo en seco y se configura en una tarde.&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 5 — Exposiciones típicas (30 minutos)
&lt;/h2&gt;

&lt;p&gt;Rutas que casi siempre revelan algo:&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="k"&gt;for &lt;/span&gt;p &lt;span class="k"&gt;in&lt;/span&gt; .git/config .env backup.zip backup.sql .well-known/security.txt xmlrpc.php wp-json wp-login.php phpmyadmin adminer.php&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;&lt;span class="nv"&gt;code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-sk&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}'&lt;/span&gt; &lt;span class="nt"&gt;--max-time&lt;/span&gt; 6 https://DOMINIO/&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
  &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$code&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"200"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"¡EXPUESTO! /&lt;/span&gt;&lt;span class="nv"&gt;$p&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y consulta CT monitoring gratuito para alertas de nuevos certificados en tu dominio.&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 6 — TLS y criptografía (15 minutos)
&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;echo&lt;/span&gt; | openssl s_client &lt;span class="nt"&gt;-connect&lt;/span&gt; DOMINIO:443 &lt;span class="nt"&gt;-servername&lt;/span&gt; DOMINIO 2&amp;gt;/dev/null | openssl x509 &lt;span class="nt"&gt;-noout&lt;/span&gt; &lt;span class="nt"&gt;-dates&lt;/span&gt; &lt;span class="nt"&gt;-issuer&lt;/span&gt;
nmap &lt;span class="nt"&gt;--script&lt;/span&gt; ssl-enum-ciphers &lt;span class="nt"&gt;-p&lt;/span&gt; 443 DOMINIO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cadena completa, fechas, protocolos viejos vivos (TLS1.0/1.1 = problema), ciphers débiles.&lt;/p&gt;

&lt;h2&gt;
  
  
  FASE 7 — El informe que se ejecuta solo
&lt;/h2&gt;

&lt;p&gt;Cada hallazgo se anota con: severidad, evidencia (comando + salida), fix concreto, comando de verificación del fix. Sin teoría: la lista se convierte en tickets directamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  FRECUENCIA: vigilar, no auditar una vez
&lt;/h2&gt;

&lt;p&gt;El recon pasivo cabe en un cron semanal. Lo que cambia entre semana y semana es lo que importa: un subdominio nuevo, un certificado extraño, un registro DNS modificado. Eso es señal de vida — legítima o no.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;CROX Sec publica research de seguridad en español de forma abierta. Si esto te fue útil: BTC &lt;code&gt;bc1qfulwc94ej036rauexs3aa76td0xpquhzld96lx&lt;/code&gt; · XNO &lt;code&gt;nano_38ddjn4jd1pkgp6ugaoyyeqtkbaes7oby11m1u8asfr7bwg13h5x51uky9r1&lt;/code&gt; · Nostr &lt;code&gt;npub1grgfze827hsgh8hn2eh3glswg7fyyun3yrjx3uchqszguwwxufuq8uazte&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

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