<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Herramientas &amp; Tutoriales on Hackpuntes</title><link>https://hackpuntes.com/es/categories/herramientas--tutoriales/</link><description>Recent content in Herramientas &amp; Tutoriales on Hackpuntes</description><generator>Hugo -- gohugo.io</generator><language>es-es</language><lastBuildDate>Tue, 02 Dec 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://hackpuntes.com/es/categories/herramientas--tutoriales/index.xml" rel="self" type="application/rss+xml"/><item><title>Descubriendo Tradecraft Garden</title><link>https://hackpuntes.com/es/posts/exploring-tradecraft-garden/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/exploring-tradecraft-garden/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/exploring_tradecraft_garden/exploring_tradecraft_garden_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/exploring_tradecraft_garden/exploring_tradecraft_garden_banner.webp" alt="Descubriendo Tradecraft Garden" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Aprovechando las ofertas del reciente &lt;strong&gt;Black Friday&lt;/strong&gt;, decidí adquirir el curso &lt;a href="https://www.zeropointsecurity.co.uk/course/red-team-ops-ii" target="_blank" rel="noopener noreferrer"&gt;CRTL (Certified Red Team Lead)&lt;/a&gt;
de ZeroPointSecurity. Si bien el material del curso es denso y técnico (como era de esperar de &lt;a href="https://x.com/_RastaMouse" target="_blank" rel="noopener noreferrer"&gt;Rasta Mouse&lt;/a&gt;
), una de las primeras joyas con las que me he topado no está oculta detrás de un paywall, sino que es un proyecto público que merece mucha más atención: &lt;a href="https://tradecraftgarden.org/" target="_blank" rel="noopener noreferrer"&gt;Tradecraft Garden&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - TimeOff</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-timeoff/</link><pubDate>Sun, 09 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-timeoff/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_timeoff/snyk_fetch_the_flag_timeoff_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_timeoff/snyk_fetch_the_flag_timeoff_banner.webp" alt="Snyk Fetch The Flag - TimeOff" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En este desafío de CTF, se nos asigna la tarea de realizar un &lt;strong&gt;pentest&lt;/strong&gt; en una aplicación web basada en el patrón &lt;strong&gt;Modelo-Vista-Controlador (MVC)&lt;/strong&gt; y desarrollada en &lt;code&gt;Ruby on Rails&lt;/code&gt;. La aplicación permite a los empleados de una empresa &lt;strong&gt;solicitar tiempo de descanso&lt;/strong&gt;, y se nos proporciona el código fuente junto con dos credenciales (&lt;code&gt;admin&lt;/code&gt; y &lt;code&gt;user&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Al analizar la aplicación, notamos que el formulario para solicitar tiempo de descanso &lt;strong&gt;permite la subida de archivos&lt;/strong&gt;, lo cual es un punto de interés a revisar en cualquier auditoría web.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Coding Mountains</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-coding-mountains/</link><pubDate>Sat, 08 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-coding-mountains/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_coding_mountains/snyk_fetch_the_flag_coding_mountains_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_coding_mountains/snyk_fetch_the_flag_coding_mountains_banner.webp" alt="Snyk Fetch The Flag - Coding Mountains" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Los &lt;strong&gt;retos de scripting&lt;/strong&gt; son mis favoritos en los CTF, y este, sin duda, ha sido mi preferido en Snyk Fetch The Flag 2025. El desafío consiste en &lt;strong&gt;responder 50 preguntas rápidas sobre las montañas más famosas del mundo&lt;/strong&gt;. Debemos responder con su altura (en pies) y el año en el que fueron escaladas por primera vez, utilizando el siguiente formato: &lt;code&gt;height,year&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - ClickityClack</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-clickityclack/</link><pubDate>Fri, 07 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-clickityclack/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_banner.webp" alt="Snyk Fetch The Flag - ClickityClack" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En este reto, partimos de un fichero &lt;code&gt;pcapng&lt;/code&gt; que contiene la flag oculta en su interior. Inicialmente, intenté analizarlo con &lt;strong&gt;Wireshark&lt;/strong&gt;, pero no encontraba nada relevante. Fue entonces cuando una simple búsqueda en Google me dio la pista clave:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pcapng usb ctf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_clickityclack/snyk_fetch_the_flag_clickityclack_001.webp" alt="Snyk Fetch The Flag - ClickityClack" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Esta búsqueda me llevó a descubrir una herramienta llamada &lt;a href="https://raw.githubusercontent.com/5h4rrk/CTF-Usb_Keyboard_Parser/refs/heads/main/Usb_Keyboard_Parser.py" target="_blank" rel="noopener noreferrer"&gt;Usb_Keyboard_Parser.py&lt;/a&gt;
que parsea los paquetes de tráfico USB, como las pulsaciones de teclas.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Science 100</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-science-100/</link><pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-science-100/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_science_100/snyk_fetch_the_flag_science_100_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_science_100/snyk_fetch_the_flag_science_100_banner.webp" alt="Snyk Fetch The Flag - Science 100" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En este desafío de CTF, nos encontramos con un &lt;strong&gt;terminal de Robco Industries&lt;/strong&gt; similar al que aparece en la saga del videojuego &lt;strong&gt;Fallout&lt;/strong&gt;. Nuestra misión es descifrar la contraseña correcta utilizando la mecánica de &lt;code&gt;Likeness (similitud)&lt;/code&gt;, que nos indica cuántas letras coinciden en la posición exacta con la palabra clave.&lt;/p&gt;
&lt;h2 id="-conectando-al-reto"&gt;🖥️ Conectando al reto&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ nc challenge.ctf.games &lt;span class="m"&gt;32377&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Al conectarnos, el sistema nos da la bienvenida y nos presenta una lista de &lt;strong&gt;posibles contraseñas&lt;/strong&gt; camufladas entre símbolos aleatorios.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - CTF 101</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-ctf-101/</link><pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-ctf-101/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_ctf_101/snyk_fetch_the_flag_ctf_101_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_ctf_101/snyk_fetch_the_flag_ctf_101_banner.webp" alt="Snyk Fetch The Flag - CTF 101" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Este reto está diseñado como una &lt;strong&gt;introducción a los CTFs&lt;/strong&gt; (Capture The Flag). Es un desafío sencillo que permite familiarizarse con la explotación de vulnerabilidades en aplicaciones web.&lt;/p&gt;
&lt;p&gt;Al analizar el código fuente proporcionado, observamos que se trata de una aplicación web desarrollada con &lt;strong&gt;Flask (Python)&lt;/strong&gt;, cuyo código es el siguiente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;flask&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flash&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;subprocess&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Flask&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;secret_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;supersecretkey&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@app.route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;methods&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;GET&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;index&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;method&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;form&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error: Name cannot be empty.&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# I sure hope no one tries to run any commands by injecting here...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;check_output&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;echo &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;shell&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;stderr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;STDOUT&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;! Good luck!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;success&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# ...alright, the challenges won&amp;#39;t be this obvious on game day, but I hope it gives you a good idea of how the game is played!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="n"&gt;subprocess&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CalledProcessError&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Error: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;render_template&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;index.html&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;0.0.0.0&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="-dónde-está-la-vulnerabilidad"&gt;🔍 ¿Dónde está la vulnerabilidad?&lt;/h2&gt;
&lt;p&gt;El problema principal radica en el siguiente fragmento de código:&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Screaming Crying Throwing up</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-screaming-crying-throwing-up/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-screaming-crying-throwing-up/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_screaming_crying_throwing_up/snyk_fetch_the_flag_screaming_crying_throwing_up_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_screaming_crying_throwing_up/snyk_fetch_the_flag_screaming_crying_throwing_up_banner.webp" alt="Snyk Fetch The Flag - Screaming Crying Throwing up" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Este reto consiste en descifrar un binario cifrado con &lt;a href="https://en.wikipedia.org/wiki/Scream_%28cipher%29" target="_blank" rel="noopener noreferrer"&gt;scream&lt;/a&gt;
. Para ello, podemos utilizar la herramienta &lt;a href="https://scream-cipher.netlify.app/" target="_blank" rel="noopener noreferrer"&gt;Scream Cipher Translator&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Si abrimos el archivo &lt;code&gt;screaming.bin&lt;/code&gt; en &lt;strong&gt;VSCode&lt;/strong&gt;, veremos el siguiente contenido:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;a̮ăaa̋{áa̲aȧa̮ȧaa̮áa̲a̧ȧȧa̮ȧaa̲a̧aa̮ȧa̲aáa̮a̲aa̲a̮aaa̧}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sin embargo, si usamos &lt;code&gt;cat&lt;/code&gt; en la terminal (CMD, PowerShell o Bash), obtenemos un resultado diferente:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cat screaming.bin
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;aăaa{áaaȧaȧaaáaaȧȧaȧaaaaaȧaaáaaaaaaaa}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;⚠️ ¡Atención! ⚠️&lt;/p&gt;
&lt;p&gt;El contenido del archivo puede verse distinto dependiendo del visor utilizado. Esto es clave al momento de analizar el cifrado y evitar confusiones. 🧐&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Unfurl</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-unfurl/</link><pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-unfurl/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_banner.webp" alt="Snyk Fetch The Flag - Unfurl" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En este reto nos enfrentamos a una aplicación web que &lt;strong&gt;obtiene los metadatos&lt;/strong&gt; de cualquier URL ingresada en el formulario.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_unfurl/snyk_fetch_the_flag_unfurl_001.webp" alt="Snyk Fetch The Flag - Unfurl" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Un análisis rápido del código fuente revela que la aplicación está desarrollada en &lt;strong&gt;NodeJS&lt;/strong&gt;, y el uso del módulo &lt;code&gt;child_process&lt;/code&gt; sugiere la posibilidad de una &lt;strong&gt;ejecución remota de comandos (RCE)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;📄 Archivo &lt;code&gt;adminRoutes.js&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;exec&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;child_process&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nx"&gt;router&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/execute&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// This isn&amp;#39;t terribly secure, but we&amp;#39;re only going to bind this app to the localhost so you&amp;#39;d need to be on the actual host to run any commands.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="c1"&gt;// So I think we&amp;#39;re good!
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// Definitely making sure to lock this down to the localhost
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;clientIp&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;::1&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;warn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[WARN] Unauthorized access attempt from &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;clientIp&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Forbidden: Access is restricted to localhost.&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cmd&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;No command provided!&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;stderr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[ERROR] Command execution failed: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`Error: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`[INFO] Command executed: &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;h1&amp;gt;Command Output&amp;lt;/h1&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;pre&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;stderr&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;&amp;lt;/pre&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; &amp;lt;a href=&amp;#34;/admin&amp;#34;&amp;gt;Back to Admin Panel&amp;lt;/a&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; `&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;El código indica que la aplicación permite ejecutar comandos en el endpoint &lt;code&gt;/execute&lt;/code&gt; a través del parámetro &lt;code&gt;cmd&lt;/code&gt;, pero solo &lt;strong&gt;localmente&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Snyk Fetch The Flag - Zero Ex Six One</title><link>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-zero-ex-six-one/</link><pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/snyk-fetch-the-flag-zero-ex-six-one/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/snyk_fetch_the_flag_zero_ex_six_one/snyk_fetch_the_flag_zero_ex_six_one_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/snyk_fetch_the_flag_zero_ex_six_one/snyk_fetch_the_flag_zero_ex_six_one_banner.webp" alt="Snyk Fetch The Flag - Zero Ex Six One" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En este desafío obtenemos un archivo llamado &lt;code&gt;flag.txt.encry&lt;/code&gt;, el cual contiene una cadena en formato hexadecimal.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ cat flag.txt.encry
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;0x070x0d0x000x060x1a0x020x540x510x050x590x530x020x510x000x530x540x070x520x040x570x550x550x050x510x560x510x530x030x550x500x050x030x050x510x590x540x000x1c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La 💡 pista en la descripción del reto sugiere que se ha utilizado un cifrado &lt;strong&gt;XOR&lt;/strong&gt;, y el título del desafío, &lt;strong&gt;Zero Ex Six One&lt;/strong&gt;, podría indicar que la clave de cifrado es &lt;code&gt;0x61&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-txt" data-lang="txt"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;I&amp;#39;m XORta out of ideas for how to get the flag. Does this look like anything to you?
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="solución-1---usando-la-clave-de-cifrado"&gt;Solución 1 - Usando la clave de cifrado&lt;/h2&gt;
&lt;p&gt;En esta primera solución, &lt;strong&gt;convertimos la cadena hexadecimal en bytes&lt;/strong&gt; y aplicamos un &lt;strong&gt;cifrado XOR&lt;/strong&gt; con la clave 🔑 &lt;code&gt;0x61&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Creación de un bot en Telegram para notificar conexiones por SSH</title><link>https://hackpuntes.com/es/posts/creacion-de-un-bot-en-telegram-para-notificar-conexiones-por-ssh/</link><pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/creacion-de-un-bot-en-telegram-para-notificar-conexiones-por-ssh/</guid><description>&lt;p&gt;Ahora que estamos más tiempo en casa debido a la situación excepcional que vivimos a causa del Covid-19, podemos aprovechar e intentar agregar algún tipo de seguridad en nuestra red interna, por eso pense en escribir este breve post, tan sencillo como útil… la de notificarnos cuando alguien accede a uno de nuestros dispositivos.&lt;/p&gt;
&lt;p&gt;En este artículo, vamos a crear un bot de Telegram que nos avise cada vez que se inicie sesión por SSH en alguno de nuestros dispositivos (para este ejemplo, usaré mi Raspberry).&lt;/p&gt;</description></item><item><title>Añadir CA de Burp Suite al almacén de certificados de Kali Linux</title><link>https://hackpuntes.com/es/posts/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux/</link><pubDate>Sun, 29 Mar 2020 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux/</guid><description>&lt;p&gt;Durante un programa privado de bug bounty, estuve utilizando las herramientas cURL, gobuster y sqlmap a través del proxy de Burp Suite. Como siempre y por vagancia, configuraba las herramientas para que ignoraran el certificado de PortSwigger (por ejemplo, la opción &lt;code&gt;-k&lt;/code&gt; en cURL).&lt;/p&gt;
&lt;p&gt;En caso de no añadir opciones de ignorar certificados a nuestras herramientas, podemos obtener errores del tipo &lt;strong&gt;SSL certificate problem&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux/anadir-ca-de-burp-suite-al-almacen-de-certificados-de-kali-linux_001.webp" alt="Añadir CA de Burp Suite al almacén de certificados de Kali Linux" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Instalación de Docker en Kali Linux</title><link>https://hackpuntes.com/es/posts/instalacion-de-docker-en-kali-linux/</link><pubDate>Wed, 08 May 2019 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/instalacion-de-docker-en-kali-linux/</guid><description>&lt;p&gt;En esta entrada veremos como instalar &lt;a href="https://www.docker.com/" target="_blank" rel="noopener noreferrer"&gt;Docker Community Edition&lt;/a&gt;
 en nuestra máquina Kali Linux 2019.&lt;/p&gt;
&lt;h2 id="1-añadir-la-clave-pgp-de-docker"&gt;1. Añadir la clave PGP de Docker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsSL https://download.docker.com/linux/debian/gpg &lt;span class="p"&gt;|&lt;/span&gt; sudo apt-key add -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2-configurar-el-repositorio-de-docker"&gt;2. Configurar el repositorio de Docker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;deb https://download.docker.com/linux/debian stretch stable&amp;#39;&lt;/span&gt; &amp;gt; /etc/apt/sources.list.d/docker.list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-actualizar"&gt;3. Actualizar&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4-eliminar-versiones-obsoletas-de-docker-en-caso-que-las-tuviéramos"&gt;4. Eliminar versiones obsoletas de Docker (en caso que las tuviéramos)&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get remove docker docker-engine docker.io
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5-instalar-docker"&gt;5. Instalar Docker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;apt-get install docker-ce
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="6-comprobar-si-docker-se-instaló-correctamente"&gt;6. Comprobar si Docker se instaló correctamente&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run hello-world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="7-comprobar-la-versión-de-docker-instalada"&gt;7. Comprobar la versión de Docker instalada&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="extras"&gt;Extras&lt;/h2&gt;
&lt;h3 id="añadir-usuario-al-grupo-de-docker"&gt;Añadir usuario al grupo de docker&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usermod -aG docker &lt;span class="nv"&gt;$USER&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arrancar-docker"&gt;Arrancar Docker&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl start docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arrancar-docker-al-inicio"&gt;Arrancar Docker al inicio&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl &lt;span class="nb"&gt;enable&lt;/span&gt; docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="instalar-dockstation-gestor-de-dockers"&gt;Instalar DockStation (Gestor de dockers)&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;wget https://github.com/DockStation/dockstation/releases/download/v1.5.1/dockstation_1.5.1_amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dpkg -i dockstation_1.5.1_amd64.deb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://hackpuntes.com/images/instalacion-de-docker-en-kali-linux/instalacion-de-docker-en-kali-linux_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/instalacion-de-docker-en-kali-linux/instalacion-de-docker-en-kali-linux_001.webp" alt="Instalación de Docker en Kali Linux" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Persistencia en sistemas Linux a través de XScreenSaver</title><link>https://hackpuntes.com/es/posts/persistencia-en-sistemas-linux-a-traves-de-xscreensaver/</link><pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/persistencia-en-sistemas-linux-a-traves-de-xscreensaver/</guid><description>&lt;p&gt;Después de la explotación con éxito de un sistema, debemos de &lt;strong&gt;obtener persistencia&lt;/strong&gt; en el mismo, este es uno de los pasos más importantes de las fases del pentesting y que, generalmente, ocasiona más inconvenientes, ya que, &lt;strong&gt;podemos perder el acceso al sistema&lt;/strong&gt; si este se reinicia, existen problemas de red o se edita el archivo utilizado como puerta trasera (backdoor).&lt;/p&gt;
&lt;p&gt;Esta manera de obtener persistencia, la descubrí leyendo write-ups de CTFs, en concreto, de uno realizado por &lt;a href="https://twitter.com/iamrastating" target="_blank" rel="noopener noreferrer"&gt;iamrastating&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Instalación de Golang y Goca en Kali Linux</title><link>https://hackpuntes.com/es/posts/instalacion-de-golang-y-goca-en-kali-linux/</link><pubDate>Sun, 31 Mar 2019 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/instalacion-de-golang-y-goca-en-kali-linux/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/instalacion-de-golang-y-goca-en-kali-linux/instalacion-de-golang-y-goca-en-kali-linux_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/instalacion-de-golang-y-goca-en-kali-linux/instalacion-de-golang-y-goca-en-kali-linux_banner.webp" alt="Instalación de Golang y Goca en Kali Linux" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Golang, es un lenguaje de programación moderno desarrollado por Google, inspirado en la sintaxis de C, es multiplataforma y orientado a objetos. Muchos de los proyectos Open Source, están pasando a este lenguaje, un ejemplo es &lt;a href="https://github.com/michenriksen/aquatone" target="_blank" rel="noopener noreferrer"&gt;Aquatone&lt;/a&gt;
 o &lt;a href="https://github.com/gocaio/goca" target="_blank" rel="noopener noreferrer"&gt;Goca&lt;/a&gt;
, además, &lt;a href="https://github.com/dreddsa5dies/goHackTools" target="_blank" rel="noopener noreferrer"&gt;existen repositorios&lt;/a&gt;
 interesantes con variedad de herramientas de hacking desarrolladas en este lenguaje, por lo tanto, es recomendado tenerlo en nuestra máquina por si necesitáramos usarlo.&lt;/p&gt;</description></item><item><title>Análisis estático de código fuente con SonarQube</title><link>https://hackpuntes.com/es/posts/analisis-estatico-de-codigo-fuente-con-sonarqube/</link><pubDate>Mon, 21 Jan 2019 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/analisis-estatico-de-codigo-fuente-con-sonarqube/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/analisis-estatico-de-codigo-fuente-con-sonarqube/analisis-estatico-de-codigo-fuente-con-sonarqube_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/analisis-estatico-de-codigo-fuente-con-sonarqube/analisis-estatico-de-codigo-fuente-con-sonarqube_banner.webp" alt="Análisis estático de código fuente con SonarQube" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;SonarQube es un conjunto de herramientas de código abierto con interfaz web que nos ayudará a realizar &lt;strong&gt;análisis estáticos&lt;/strong&gt; a nuestro código fuente con el objetivo de mejorar la calidad, solucionar errores y buscar vulnerabilidades.&lt;/p&gt;
&lt;p&gt;Actualmente, la &lt;a href="https://www.sonarqube.org/sonarqube-7-5/" target="_blank" rel="noopener noreferrer"&gt;última versión es la 7.5&lt;/a&gt;
, y soporta más de 25 lenguajes de programación.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/analisis-estatico-de-codigo-fuente-con-sonarqube/analisis-estatico-de-codigo-fuente-con-sonarqube_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/analisis-estatico-de-codigo-fuente-con-sonarqube/analisis-estatico-de-codigo-fuente-con-sonarqube_001.webp" alt="Análisis estático de código fuente con SonarQube" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="1-instalación"&gt;🖥 1. Instalación&lt;/h2&gt;
&lt;p&gt;1.1 Descargar &lt;a href="https://www.sonarqube.org/downloads/" target="_blank" rel="noopener noreferrer"&gt;SonarQube Community Edition 7.5&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>TOP 10 herramientas de seguridad para aplicaciones web</title><link>https://hackpuntes.com/es/posts/top-10-herramientas-de-seguridad-para-aplicaciones-web/</link><pubDate>Tue, 20 Nov 2018 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/top-10-herramientas-de-seguridad-para-aplicaciones-web/</guid><description>&lt;p&gt;En esta entrada, os mostraré un listado de las que son (para mí), &lt;strong&gt;las 10 mejores herramientas de seguridad para aplicaciones web.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;No soy un experto en hacking web y puede que no estés del todo de acuerdo con mi lista TOP, por lo tanto, siéntete libre de comentar y añadir la tuya 😉&lt;/p&gt;
&lt;h2 id="top-10-herramientas-de-seguridad-web"&gt;TOP 10 Herramientas de seguridad web&lt;/h2&gt;
&lt;h3 id="1-burp-suite"&gt;#1 Burp Suite&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/top-10-herramientas-de-seguridad-para-aplicaciones-web/top-10-herramientas-de-seguridad-para-aplicaciones-web_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/top-10-herramientas-de-seguridad-para-aplicaciones-web/top-10-herramientas-de-seguridad-para-aplicaciones-web_001.webp" alt="TOP 10 herramientas de seguridad para aplicaciones web" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Instalación de Mozilla Firefox Quantum en Kali Linux</title><link>https://hackpuntes.com/es/posts/instalacion-de-mozilla-firefox-quantum-en-kali-linux/</link><pubDate>Tue, 12 Dec 2017 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/instalacion-de-mozilla-firefox-quantum-en-kali-linux/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/instalacion-de-mozilla-firefox-quantum-en-kali-linux/instalacion-de-mozilla-firefox-quantum-en-kali-linux_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/instalacion-de-mozilla-firefox-quantum-en-kali-linux/instalacion-de-mozilla-firefox-quantum-en-kali-linux_banner.webp" alt="Instalación de Mozilla Firefox Quantum en Kali Linux" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;En esta entrada, veremos &lt;strong&gt;como instalar Firefox Quantum en Kali Linux&lt;/strong&gt; y otras distribuciones basadas en Debian.&lt;/p&gt;
&lt;p&gt;Firefox Quantum es el nuevo navegador de Mozilla, &lt;strong&gt;mucho más rápido&lt;/strong&gt; que su antecesor y con un &lt;strong&gt;nuevo motor&lt;/strong&gt; con lo último en tecnología para navegadores.&lt;/p&gt;
&lt;h2 id="pasos-a-seguir-para-su-instalación"&gt;Pasos a seguir para su instalación&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Descargamos&lt;/strong&gt; Firefox Quantum desde su web oficial &lt;a href="https://www.mozilla.org/es-ES/firefox/" target="_blank" rel="noopener noreferrer"&gt;https://www.mozilla.org/es-ES/firefox/&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Una vez descargado, &lt;strong&gt;botón derecho&lt;/strong&gt; y extraemos los archivos, también podemos descomprimir con el comando &lt;strong&gt;tar&lt;/strong&gt;, de la siguiente manera:&lt;/p&gt;</description></item><item><title>ESET Remote Administrator (ERA) - Parte II: Instalar Agente ERA mediante tarea</title><link>https://hackpuntes.com/es/posts/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea/</link><pubDate>Tue, 14 Nov 2017 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea/</guid><description>&lt;p&gt;Buenas a todos, en esta entrada sobre ESET Remote Administrator (ERA) vamos a ver como &lt;strong&gt;instalar el Agente ERA en los equipos mediante una tarea&lt;/strong&gt;, a través del agente, podremos administrar los equipos, por ejemplo, después de tenerlo configurado en los equipos comenzaremos a instalar la solución antivirus ESET EndPoint Security &lt;strong&gt;mediante otra tarea y de manera desatendida&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En mi caso tengo instalado ERA en la siguiente dirección &lt;a href="https://192.168.100.10/era" target="_blank" rel="noopener noreferrer"&gt;https://192.168.100.10/era&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea/eset-remote-administrator-era-parte-ii-instalar-agente-era-mediante-tarea_001.webp" alt="ESET Remote Administrator (ERA) - Parte II: Instalar Agente ERA mediante tarea" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>ESET Remote Administrator (ERA) - Parte I: Instalación</title><link>https://hackpuntes.com/es/posts/eset-remote-administrator-era-parte-i-instalacion/</link><pubDate>Wed, 08 Nov 2017 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/eset-remote-administrator-era-parte-i-instalacion/</guid><description>&lt;p&gt;Ya hemos visto en &lt;a href="https://hackpuntes.com/wsus-windows-server-update-services-instalacion-y-configuracion-parte-i/"&gt;entradas anteriores&lt;/a&gt;
como mantener nuestros equipos del dominio con las últimas actualizaciones críticas y parches de seguridad para mantenerlos más seguros, otra de las tareas prioritarias que debemos de hacer, es &lt;strong&gt;proveer de una solución antivirus a los equipos&lt;/strong&gt;, en esta entrada, veremos cómo instalar &lt;strong&gt;ERA (ESET Remote Administrator)&lt;/strong&gt; en un controlador de dominio con Windows Server 2016.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/eset-remote-administrator-era-parte-i-instalacion/eset-remote-administrator-era-parte-i-instalacion_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/eset-remote-administrator-era-parte-i-instalacion/eset-remote-administrator-era-parte-i-instalacion_001.webp" alt="ESET Remote Administrator (ERA) - Parte I: Instalación" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Metasploitable3: Crea una máquina vulnerable para probar tus ataques</title><link>https://hackpuntes.com/es/posts/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques/</link><pubDate>Sun, 11 Jun 2017 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques/metasploitable3-crea-una-maquina-vulnerable-para-probar-tus-ataques_banner.webp" alt="Metasploitable3: Crea una máquina vulnerable para probar tus ataques" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id="qué-es-metasploitable3-y-porqué-usarlo"&gt;¿Qué es Metasploitable3 y porqué usarlo?&lt;/h2&gt;
&lt;p&gt;Metasploitable3 es una &lt;strong&gt;máquina virtual gratuita de Windows Server 2008 que cuenta con varias vulnerabilidades&lt;/strong&gt; listas para ser explotadas y practicar nuestras técnicas de hacking o simular ataques, Metasploitable3 ha sido &lt;strong&gt;desarrollado por Rapid7&lt;/strong&gt;, los mismos &lt;strong&gt;desarrolladores&lt;/strong&gt; del conocido &lt;strong&gt;Framework MetaSploit&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Es &lt;strong&gt;usado por gran parte de la industria de la ciberseguridad&lt;/strong&gt; por varios motivos, cómo por ejemplo, la &lt;strong&gt;formación de personal&lt;/strong&gt; para la explotación de redes, &lt;strong&gt;pruebas de software&lt;/strong&gt; o demostración y &lt;strong&gt;viabilidad de ataques&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Instalación de VirtualBox Guest Additions en Kali Linux 2016.2</title><link>https://hackpuntes.com/es/posts/instalacion-de-virtualbox-guest-additions-en-kali-linux-2016-2/</link><pubDate>Sat, 08 Oct 2016 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/instalacion-de-virtualbox-guest-additions-en-kali-linux-2016-2/</guid><description>&lt;p&gt;Si eres de los que eliges &lt;strong&gt;VirtualBox&lt;/strong&gt; para trabajar con tus &lt;strong&gt;máquinas virtuales&lt;/strong&gt;, después de la instalación, habrás notado que el &lt;strong&gt;tamaño de la pantalla es muy reducido&lt;/strong&gt; e impide que podamos trabajar con ella cómodamente, otras veces, echamos de menos el poder &lt;strong&gt;integrar la máquina anfitrión con la virtual&lt;/strong&gt;, por ejemplo, algo tan simple como &lt;strong&gt;copiar un enlace o URL&lt;/strong&gt; con el atajo de tecla &lt;strong&gt;Ctrl + C&lt;/strong&gt; o &lt;strong&gt;arrastrar un archivo para usarlo en la máquina virtual&lt;/strong&gt;, para ello, VirtualBox tiene las llamadas &lt;strong&gt;Guest Additions&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Preparando Sublime Text 3 para programar en Python</title><link>https://hackpuntes.com/es/posts/preparando-sublime-text-3-programar-python/</link><pubDate>Tue, 28 Jun 2016 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/preparando-sublime-text-3-programar-python/</guid><description>&lt;p&gt;Uno de los &lt;strong&gt;lenguajes de programación que más interés&lt;/strong&gt; ha despertado en el mundo de la &lt;strong&gt;Seguridad Informática y Hacking&lt;/strong&gt;, es sin duda &lt;strong&gt;Python&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Python es un &lt;strong&gt;lenguaje de programación interpretado y orientado a objetos&lt;/strong&gt;, muy &lt;strong&gt;fácil de aprender y potente&lt;/strong&gt;, desde mi punto de vista, recomendado para cualquier persona que desee &lt;strong&gt;aprender a programar&lt;/strong&gt;, y mucho más, si desea orientar sus conocimiento a la seguridad de la información, muchas de las herramientas de hacking que se usan hoy en día, están escritas en este lenguaje.&lt;/p&gt;</description></item><item><title>Cómo instalar Parrot OS en VMware</title><link>https://hackpuntes.com/es/posts/instalar-parrot-os-vmware/</link><pubDate>Sun, 17 Apr 2016 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/instalar-parrot-os-vmware/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/instalar-parrot-os-vmware/instalar-parrot-os-vmware_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/instalar-parrot-os-vmware/instalar-parrot-os-vmware_banner.webp" alt="Cómo instalar Parrot OS en VMware" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Hoy vengo a hablaros sobre una de las distribuciones «top» orientadas a la seguridad informática y pentesting, &lt;strong&gt;Parrot OS&lt;/strong&gt;, que junto a &lt;strong&gt;Kali Linux&lt;/strong&gt; y &lt;strong&gt;Bugtraq&lt;/strong&gt; son a día de hoy &lt;strong&gt;las más utilizadas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Parrot OS es una &lt;strong&gt;distribución de Linux basada en Debian&lt;/strong&gt; con el kernel de Linux 4.3 (en su versión 2.2.1), ha sido desarrollada por &lt;strong&gt;un equipo de hackers italianos llamados FrozenBox, utiliza MATE 1.8.1 como escritorio&lt;/strong&gt; y debido a la gran cantidad de herramientas y la importancia de actualizarlas, &lt;strong&gt;tiene un modelo de actualización continua&lt;/strong&gt; (Rolling release).&lt;/p&gt;</description></item><item><title>Cómo crear un USB Keylogger/Stealer para recuperar contraseñas</title><link>https://hackpuntes.com/es/posts/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas/</link><pubDate>Sat, 02 May 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas/como-crear-un-usb-keyloggerstealer-para-recuperar-contrasenas_banner.webp" alt="Cómo crear un USB Keylogger/Stealer para recuperar contraseñas" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Hace unas semana publiqué una entrada sobre &lt;strong&gt;Stealers&lt;/strong&gt; y expliqué lo que eran y para que servían, hoy vengo a explicaros como crear un USB que se autoejecute y &lt;strong&gt;recupere todas nuestras contraseñas del PC&lt;/strong&gt; de manera automática, únicamente con conectarlo a nuestro PC, sin tocar absolutamente nada, ademas tendrá una función Keylogger, que registrará en un archivo .txt todo lo que pulsemos en nuestro teclado mientras el USB esté conectado al PC.&lt;/p&gt;</description></item><item><title>Herramienta para recuperar los archivos cifrados por el ransomware TeslaCrypt</title><link>https://hackpuntes.com/es/posts/herramienta-para-recuperar-los-archivos-cifrados-por-el-ransomware-teslacrypt/</link><pubDate>Sat, 02 May 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/herramienta-para-recuperar-los-archivos-cifrados-por-el-ransomware-teslacrypt/</guid><description>&lt;p&gt;Cifrar los archivos de la víctima y luego pedir bitcoins para descifrarlos es un negocio muy lucrativo: &lt;strong&gt;las campañas de ramsonware se están convirtiendo en una amenaza cada vez mayor&lt;/strong&gt;. Después de la caída de CryptoLocker surgió &lt;a href="https://es.wikipedia.org/wiki/CryptoLocker" target="_blank" rel="noopener noreferrer"&gt;Cryptowall&lt;/a&gt;
, con técnicas anti-depuración avanzadas, y después &lt;strong&gt;numerosas variantes que se incluyen en campañas dirigidas cada vez más numerosas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Una de las últimas variantes se llama &lt;strong&gt;TeslaCrypt y parece ser un derivado del ransomware CryptoLocker original&lt;/strong&gt;. Este ransomware está &lt;strong&gt;dirigido específicamente a gamers&lt;/strong&gt; y, aunque dice estar usando RSA-2048 asimétrico para cifrar archivos, &lt;strong&gt;realmente está usando AES simétrico&lt;/strong&gt;, lo que ha permitido a &lt;a href="http://blogs.cisco.com/author/talos" target="_blank" rel="noopener noreferrer"&gt;Talos Group&lt;/a&gt;
(Talos Security Intelligence &amp;amp; Research Group) desarrollar una herramienta que descifra los archivos…&lt;/p&gt;</description></item><item><title>Cómo usar tu pendrive como contraseña en Windows 7</title><link>https://hackpuntes.com/es/posts/como-usar-tu-pendrive-como-contrasena-en-windows-7/</link><pubDate>Thu, 23 Apr 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/como-usar-tu-pendrive-como-contrasena-en-windows-7/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/como-usar-tu-pendrive-como-contrasena-en-windows-7/como-usar-tu-pendrive-como-contrasena-en-windows-7_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/como-usar-tu-pendrive-como-contrasena-en-windows-7/como-usar-tu-pendrive-como-contrasena-en-windows-7_banner.webp" alt="Cómo usar tu pendrive como contraseña en Windows 7" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Si eres de los que olvidas las contraseñas fácilmente o simplemente quieres otro método distinto para identificarte en Windows 7, en esta entrada te mostraré como puedes &lt;strong&gt;utilizar tu pendrive como contraseña&lt;/strong&gt; para Windows 7.&lt;/p&gt;
&lt;h2 id="pasos-a-seguir"&gt;Pasos a seguir&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Inserta tu pendrive formateado en NTFS, si no sabes formatearlo en NTFS, haz &lt;strong&gt;«Click derecho»&lt;/strong&gt; sobre la unidad y en &lt;strong&gt;«Formatear»&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="https://hackpuntes.com/images/como-usar-tu-pendrive-como-contrasena-en-windows-7/como-usar-tu-pendrive-como-contrasena-en-windows-7_001.webp"&gt;&lt;img src="https://hackpuntes.com/images/como-usar-tu-pendrive-como-contrasena-en-windows-7/como-usar-tu-pendrive-como-contrasena-en-windows-7_001.webp" alt="Cómo usar tu pendrive como contraseña en Windows 7" loading="lazy" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;</description></item><item><title>Desarrollo de un Stealer sencillo para Twitter en Visual Studio</title><link>https://hackpuntes.com/es/posts/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio/</link><pubDate>Sun, 12 Apr 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio/desarrollo-de-un-stealer-sencillo-para-twitter-en-visual-studio_banner.webp" alt="Desarrollo de un Stealer sencillo para Twitter en Visual Studio" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;No os sorprendáis, &lt;strong&gt;Twitter no ha lanzado&lt;/strong&gt; un aplicación para PC, en la entrada de hoy vengo a enseñaros como desarrollar un &lt;strong&gt;Stealer&lt;/strong&gt; para la &lt;strong&gt;obtención de usuarios y contraseñas&lt;/strong&gt; de esta red social, posteriormente lo programaremos para que nos envie lo &lt;strong&gt;«recolectado»&lt;/strong&gt; a nuestro correo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Todo lo que publico en mi blog, lo hago con fines educativos y de aprendizaje, por lo tanto no me hago responsable del mal uso que algunos puedan darle al conocimiento adquirido en este blog.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>SPARTA - La Caja de Herramientas del Pentester</title><link>https://hackpuntes.com/es/posts/sparta-la-caja-de-herramientas-del-pentester/</link><pubDate>Tue, 31 Mar 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/sparta-la-caja-de-herramientas-del-pentester/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/sparta-la-caja-de-herramientas-del-pentester/sparta-la-caja-de-herramientas-del-pentester_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/sparta-la-caja-de-herramientas-del-pentester/sparta-la-caja-de-herramientas-del-pentester_banner.webp" alt="SPARTA - La Caja de Herramientas del Pentester" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;SPARTA es una &lt;strong&gt;aplicación GUI&lt;/strong&gt; (Interfaz Gráfica de Usuario) &lt;strong&gt;escrita en Python&lt;/strong&gt;, con la cual nos simplifica las &lt;strong&gt;pruebas de penetración&lt;/strong&gt; en una determinada infraestructura de red y nos permite realizar diversas pruebas de penetración en la &lt;strong&gt;fase de escaneo y enumeración&lt;/strong&gt;. Estas cualidades permite al pentester &lt;strong&gt;ahorrar tiempo&lt;/strong&gt; en el momento de realizar una auditoria. SPARTA &lt;strong&gt;equivale&lt;/strong&gt; a tener acceso a su &lt;strong&gt;caja de herramientas&lt;/strong&gt; en la cual nos muestra toda la producción de las herramientas de una manera conveniente y ordenada.&lt;/p&gt;</description></item><item><title>Examen Programación Hilos - HinchaGlobos y PinchaGlobos</title><link>https://hackpuntes.com/es/posts/examen-programacion-hilos-hinchaglobos-y-pinchaglobos/</link><pubDate>Fri, 20 Mar 2015 00:00:00 +0000</pubDate><guid>https://hackpuntes.com/es/posts/examen-programacion-hilos-hinchaglobos-y-pinchaglobos/</guid><description>&lt;p&gt;&lt;a href="https://hackpuntes.com/images/examen-programacion-hilos-hinchaglobos-y-pinchaglobos/examen-programacion-hilos-hinchaglobos-y-pinchaglobos_banner.webp"&gt;&lt;img src="https://hackpuntes.com/images/examen-programacion-hilos-hinchaglobos-y-pinchaglobos/examen-programacion-hilos-hinchaglobos-y-pinchaglobos_banner.webp" alt="Examen Programación Hilos - HinchaGlobos y PinchaGlobos" loading="eager" decoding="async" /&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Recientemente acabo de &lt;strong&gt;terminar mis exámenes&lt;/strong&gt; de programación, y en este caso me gustaría compartir con vosotros el examen de &lt;strong&gt;programación de servicios y procesos&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;El &lt;strong&gt;lenguaje de programación&lt;/strong&gt; que se ha utilizado para &lt;strong&gt;resolver&lt;/strong&gt; el ejercicio es &lt;strong&gt;Java&lt;/strong&gt;, y el examen decía lo siguiente (Dejo la nota de cada punto por si queréis intentarlo vosotros y calcular cual sería vuestra nota):&lt;/p&gt;</description></item></channel></rss>