<?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:blogger='http://schemas.google.com/blogger/2008' 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-338297721855145584</id><updated>2024-10-06T22:34:36.862-07:00</updated><category term="Herramientas"/><category term="Manuales"/><category term="FreeRadius"/><category term="Laboratorio"/><category term="MySQL"/><category term="Noticias"/><title type='text'>Seguridad, Hacking Ético y otros</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-5660222735820943074</id><published>2008-12-19T03:49:00.000-08:00</published><updated>2008-12-23T01:27:21.823-08:00</updated><title type='text'>Premio NAI - Cátedra Telefónica - UPM</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHz4lO2KNsM2N9n7P-ZMSsjEBfhC4mqBphaunjRyr6wRmUvPD6qIDIkss7hZl2KEZtj-wxNpFT7Sjtdqa-nMPvXhLD3DSYSJqagf6FqxlCYQAcgihS0_7bL7B6o_47oVRJm_N1YutNsTV/s1600-h/catedralogo2.png&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 79px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHz4lO2KNsM2N9n7P-ZMSsjEBfhC4mqBphaunjRyr6wRmUvPD6qIDIkss7hZl2KEZtj-wxNpFT7Sjtdqa-nMPvXhLD3DSYSJqagf6FqxlCYQAcgihS0_7bL7B6o_47oVRJm_N1YutNsTV/s400/catedralogo2.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5281467821566377298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;El día 10 de Diciembre se falló la octava edición del &lt;a href=&quot;http://internetng.dit.upm.es/eventos?em_action=register_form&amp;amp;event_id=18&quot;&gt;Premio de Nuevas Aplicaciones para Internet de la Cátedra Telefónica - UPM&lt;/a&gt;. Una de las propuestas finalistas, llamada &lt;span style=&quot;font-weight: bold; font-style: italic;&quot;&gt;Iw3Caché&lt;/span&gt;, fue presentada por el autor de este blog junto a un compañero de trabajo, Francisco J. Gómez. Podéis visitar el blog &lt;a href=&quot;http://www.iniqua.com/&quot;&gt;www.iniqua.com&lt;/a&gt; del cual somos colaboradores.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style=&quot;text-align: justify;&quot;&gt;La propuesta está relacionada con la seguridad de la información y pretende ser una herramienta para combatir el &lt;a href=&quot;http://es.wikipedia.org/wiki/Pharming&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Pharming&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Nos sentimos satisfechos con el resultado y trabajaremos ahora sobre la idea con más entusiasmo y energía. Os invitamos a todos a que conozcáis la idea mediante la lectura del documento que se ha publicado en la web del concurso: &lt;a href=&quot;http://internetng.dit.upm.es/wp-content/uploads/File/Propuesta%209.pdf&quot;&gt;Iw3Caché, un nuevo concepto AntiPharming&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;Todas las opiniones y comentarios serán bienvenidos.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/5660222735820943074/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/5660222735820943074' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/5660222735820943074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/5660222735820943074'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/12/el-da-10-de-diciembre-se-fall-la-octava.html' title='Premio NAI - Cátedra Telefónica - UPM'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCHz4lO2KNsM2N9n7P-ZMSsjEBfhC4mqBphaunjRyr6wRmUvPD6qIDIkss7hZl2KEZtj-wxNpFT7Sjtdqa-nMPvXhLD3DSYSJqagf6FqxlCYQAcgihS0_7bL7B6o_47oVRJm_N1YutNsTV/s72-c/catedralogo2.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-1655903529145742238</id><published>2008-10-20T07:32:00.001-07:00</published><updated>2008-10-20T23:19:19.670-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Noticias"/><title type='text'>¿Y los detalles de la vulnerabilidad DoS del protocolo TCP?</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXWAI7F5YH-E9sWqaJ_TlR0poWR1Xxf-erO53hhFcscD5-MXB88j9LwpBMcI8weT5HJycqqH-7zac-d40RnQIng1x2F8-sj8fFGD89CBt51sJsQrX1QrY1vMUljrEc0z76yZC9BvYtJFLB/s1600-h/tenison.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXWAI7F5YH-E9sWqaJ_TlR0poWR1Xxf-erO53hhFcscD5-MXB88j9LwpBMcI8weT5HJycqqH-7zac-d40RnQIng1x2F8-sj8fFGD89CBt51sJsQrX1QrY1vMUljrEc0z76yZC9BvYtJFLB/s400/tenison.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5259255541906149170&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Cualquiera lea este post y esté interesado en la seguridad informática, es probable que este fin de semana (18-19 de Octubre)  haya buscado alguna reseña, video, resumen o cualquier tipo de información acerca de la conferencia &lt;a href=&quot;http://www.t2.fi/schedule/2008/#speech8&quot;&gt;Sec-T del 17 de Octubre&lt;/a&gt; donde, en principio, iba a ser el lugar y el momento elegido por Jack C. Louis y Robert E. Lee, para dar a conocer los detalles de la vulnerabilidad &lt;a href=&quot;http://www.outpost24.com/news/news-2008-10-02.html&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;TCP DoS&lt;/span&gt;&lt;/a&gt; que anunciaron el pasado 11 de Septiembre.&lt;br /&gt;&lt;br /&gt;Bueno, pues si alguien ha estado buscando esta información durante el fin de semana habrá pensado, como yo, que se ha equivocado de día, o que de pronto ha dejado de interesar a todo el mundo.&lt;br /&gt;&lt;br /&gt;Pues no, según nos cuenta Robert E. Lee en su &lt;a href=&quot;http://blog.robertlee.name/&quot;&gt;blog&lt;/a&gt;, al final han decidido retrasar la publicación de toda esta información:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&quot;&lt;span style=&quot;font-style: italic;&quot;&gt;... we opted to continue to work closely with, and give more time to, the vendor and standards communities. We are not putting them under undue pressure to get poorly implemented rushed fixes out&lt;/span&gt;.&quot;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Van a dar mas tiempo a la comunidad y a los fabricantes para encontrar una solución efectiva, lo cual, en principio, parece una decisión acertada y ser lo más sensato.&lt;br /&gt;&lt;br /&gt;Pero además, hay algo en el&lt;a href=&quot;http://blog.robertlee.name/2008/10/more-detailed-response-to-gordons-post.html&quot;&gt; último post de Robert E. Lee&lt;/a&gt; que resulta curioso (que en realidad es el tema principal de la entrada), que es una respuesta del propio Robert a una &lt;a href=&quot;http://insecure.org/stf/tcp-dos-attack-explained.html&quot;&gt;página&lt;/a&gt; de &lt;a href=&quot;http://en.wikipedia.org/wiki/Gordon_Lyon&quot;&gt;Gordon Lyon&lt;/a&gt; en la que éste último, habla sobre la supuesta vulnerabilidad DoS del protocolo TCP. Gordon, también conocido como &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Fyodor Vaskovich&lt;/span&gt;&quot; es un experto en seguridad de red y autor del famosísimo &lt;a href=&quot;http://nmap.org/&quot;&gt;Nmap&lt;/a&gt;. En esta página se cuestiona la importancia del descubrimiento de Jack C. Louis y Robert E. Lee diciendo que:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;- No es más que otro nuevo ataque de Dos entre tantos otros.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;- No es una amenaza tan seria como se cree ya que, entre otras cosas, para un potencial atacante no es fácil obtener un beneficio lucrativo con ataques DoS.&lt;/li&gt;&lt;li&gt;- Detectar y evitar un ataque que aprovechara esta vulnerabilidad no resultaría tan difícil como Robert insinúa.&lt;/li&gt;&lt;/ul&gt;Total, que Robert ha contestado en su último post a todo esto utilizando unas FAQ para ello:&lt;br /&gt;(Traducción personal)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Pregunta: ¿Se ha descubierto realmente algo nuevo?&lt;br /&gt;Respuesta: Los ataques que Gordon describe en sus razonamientos no son nuevos y afectan a los sistemas de hoy en día. Los detalles de la vulnerabilidad descubierta por nosotros, se encuentran en manos de las partes implicadas y Gordon puede ayudar a solucionar el problema, o quedarse mirando y lanzar comentarios destructivos. Espero que cambie de parecer y elija trabajar con nosotros...&lt;br /&gt;&lt;br /&gt;P:¿Cómo de serio es el problema? Si ya se conocía, ¿por qué no lo utilizan los atacantes ahora mismo?&lt;br /&gt;R: No creo que nadie pueda estar seguro de si los atacantes lo están utilizando o si ya están informados de todo.&lt;br /&gt;&lt;br /&gt;P: ¿Es cierto que no hay solución a este problema?&lt;br /&gt;R: Gordon dijo que &quot;Una vez comienza el ataque, es relativamente fácil identificar y bloquear la IP origen de los ataques&quot; Eso está por ver, ahora mismo eso no parece posible.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Así que, bueno, no podemos saber cuál de los dos lleva razón realmente; si al final no es para tanto toda la expectación generada y no han descubierto nada nuevo, o si ha sido una suerte que se haya detectado este fallo del protocolo primero desde el &quot;lado bueno&quot;.&lt;br /&gt;&lt;br /&gt;Ya veremos qué pasa ...&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/1655903529145742238/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/1655903529145742238' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1655903529145742238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1655903529145742238'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/10/qu-pasa-con-los-detalles-de-la.html' title='¿Y los detalles de la vulnerabilidad DoS del protocolo TCP?'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXWAI7F5YH-E9sWqaJ_TlR0poWR1Xxf-erO53hhFcscD5-MXB88j9LwpBMcI8weT5HJycqqH-7zac-d40RnQIng1x2F8-sj8fFGD89CBt51sJsQrX1QrY1vMUljrEc0z76yZC9BvYtJFLB/s72-c/tenison.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-7358298969230124965</id><published>2008-08-20T03:53:00.000-07:00</published><updated>2008-08-21T05:14:58.367-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Laboratorio"/><title type='text'>Sorteando la detección de malware</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;Muchos antivirus trabajan rastreando y buscando firmas (&lt;span style=&quot;font-style: italic;&quot;&gt;signatures&lt;/span&gt;) de virus conocidos para detectar elementos maliciosos. Conocen las carácteristicas particulares de cada virus e intentan detectar los archivos que cumplen con esas características y que sean sopechosos.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Lo que vamos a hacer a continuación es modificar el contenido de un archivo malicioso, un &lt;a href=&quot;http://en.wikipedia.org/wiki/Portable_Executable&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Portable Executable&lt;/span&gt;&lt;/a&gt; (normalmente archivos con extensión .exe) para intentar que no sea detectado por los antivirus.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;En este caso vamos a intentar ocultar un antiguo troyano llamado &lt;span style=&quot;font-weight: bold;&quot;&gt;Tiny&lt;/span&gt; (tini.exe) que casi todos los antivirus son capaces de detectar. Podemos ver el resultado de enviar este troyano a &lt;a href=&quot;http://www.virustotal.com/&quot;&gt;Virus Total&lt;/a&gt;. Todos los motores antivirus lo clasifican como sospechoso:&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDULsiE9uweV_H1G06midobVP7gmk6UKRxQ7ESQqGQmC-b3EpIHu2EYiUmi1dok1LrtLYrJTHYtO3VVs1ScU4GtxEgu70EFjno1quR6qVoYMhH77zVO-tUWk4A0z0jaIUYBfQVesQGfPwf/s1600-h/virustotal2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDULsiE9uweV_H1G06midobVP7gmk6UKRxQ7ESQqGQmC-b3EpIHu2EYiUmi1dok1LrtLYrJTHYtO3VVs1ScU4GtxEgu70EFjno1quR6qVoYMhH77zVO-tUWk4A0z0jaIUYBfQVesQGfPwf/s400/virustotal2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236876741289587746&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Durante las pruebas vamos a intentar engañar al antivirus &lt;span style=&quot;font-style: italic;&quot;&gt;Kaspersky 7&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Mientras tenemos funcionando este AV e intentamos introducir el archivo tini.exe en nuestro PC, inmediatamente Kaspersky lo detecta y muestra una alerta de troyano. Este antivirus es bastante insistente y &quot;follonero&quot; y es necesario detenerlo para poder hacer las pruebas.&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgso_mhx9AyUvzwJGWolTtwWwjieb6U7fVJjo0WZxn7-mV7SrkYT2OQPRfU2BHV78ghZT4LbvwAYcZ15Y7AyFziil-4mdmjkH3QIe2jISjd74TuiL8EKsIfvDe3xIjfC_X7pe3iZxrA8TL4/s1600-h/kasp1b.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgso_mhx9AyUvzwJGWolTtwWwjieb6U7fVJjo0WZxn7-mV7SrkYT2OQPRfU2BHV78ghZT4LbvwAYcZ15Y7AyFziil-4mdmjkH3QIe2jISjd74TuiL8EKsIfvDe3xIjfC_X7pe3iZxrA8TL4/s400/kasp1b.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236869203234570114&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Lo que haremos será codificar todo el contenido de la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.text&lt;/span&gt; del ejecutable  (que es donde se encuentra el código del propio troyano), para que el antivirus no reconozca nada sospechoso en el código fuente de nuestro ejecutable. Para codificar el código fuente utilizaremos una simple operación XOR. Veamos cómo llevar a cabo esta codificación:&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/08/ocultar-troyanos-virus-etc-los.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Primero, modificamos manualmente con un editor de PE (&lt;span style=&quot;font-style: italic;&quot;&gt;LordPE &lt;/span&gt;por ej) las cabeceras del ejectuable y aumentamos el tamaño de la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.data&lt;/span&gt; en 4096 bytes (1000 en hexadecimal). Esto lo hacemos para añadir nuestro propio código ensamblador al final de esta sección.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_5-EAhsQnY4s6DDFmC94yiDQPr3_uo9_fNRioINlytcNb__4-YjYN0Wfvt1X_0_M2kb6TSZwUaLzA_HnyNXg8h82MYg_ise_u0lifAVRgO9yJPg4XoRSadAH-mo_SXkztVQBfNyIxS3yk/s1600-h/section1b.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_5-EAhsQnY4s6DDFmC94yiDQPr3_uo9_fNRioINlytcNb__4-YjYN0Wfvt1X_0_M2kb6TSZwUaLzA_HnyNXg8h82MYg_ise_u0lifAVRgO9yJPg4XoRSadAH-mo_SXkztVQBfNyIxS3yk/s400/section1b.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236580492758957602&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ih87clJQWVXzh1e0ern9HsDKLWhN1w_2qCtspdEgdigtroGSCZfzPhd9EsRMvBInduggeUGZoZXIH4w0xr5clI_gKubWUZbobYlCvP-k6OwchsEQ9BdNgPYglSNeIK64LGqtemOKXocF/s1600-h/section2b.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3ih87clJQWVXzh1e0ern9HsDKLWhN1w_2qCtspdEgdigtroGSCZfzPhd9EsRMvBInduggeUGZoZXIH4w0xr5clI_gKubWUZbobYlCvP-k6OwchsEQ9BdNgPYglSNeIK64LGqtemOKXocF/s400/section2b.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236580571041078274&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;También aprovechamos y marcamos la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.text&lt;/span&gt; como editable y la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.data&lt;/span&gt; como ejecutable.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Con un editor hexadecimal tendremos que rellenar esos 4096 bytes de espacio que hemos añadido con el valor 00 hex por ejemplo.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRnfyRM2oUKbZgjuOeUwE5998TPrSvbXxZ0JeJrsf0GzAWrnajtzR7nxlWfuA4CjDHnX2sintltBup2csW5cXypCvxJ-NcH8UVIDGezR6V7nYV3dOH4GdFHBdxcAwtVwkwIJsrqvczbo4r/s1600-h/hex2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRnfyRM2oUKbZgjuOeUwE5998TPrSvbXxZ0JeJrsf0GzAWrnajtzR7nxlWfuA4CjDHnX2sintltBup2csW5cXypCvxJ-NcH8UVIDGezR6V7nYV3dOH4GdFHBdxcAwtVwkwIJsrqvczbo4r/s400/hex2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236582143583296578&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Ahora, vamos a añadir una pequeña porción de código ensamblador al ejecutable, y para ello utilizamos &lt;a href=&quot;http://www.ollydbg.de/&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Olly Debugger&lt;/span&gt;&lt;/a&gt;. Nada más abrir el tini.exe con &lt;span style=&quot;font-style: italic;&quot;&gt;Olly&lt;/span&gt;, nos lleva a la primera intrucción que se ejecuta (dentro de la sección&lt;span style=&quot;font-weight: bold;&quot;&gt; .text&lt;/span&gt;):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgddHXRsZAkbiEJ3_Y5QFCKWa3s07dllmyOuu3kYMcszB6bVlgNoLjXgLmB3XUdgdrw4FTbg4CITi8OckYoxO9Bq2OrSsLob8ojFsSrtXh90zBexy4G1af8jGQMB1N4wClDjtC30xvjbBm8/s1600-h/olly1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgddHXRsZAkbiEJ3_Y5QFCKWa3s07dllmyOuu3kYMcszB6bVlgNoLjXgLmB3XUdgdrw4FTbg4CITi8OckYoxO9Bq2OrSsLob8ojFsSrtXh90zBexy4G1af8jGQMB1N4wClDjtC30xvjbBm8/s400/olly1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236583459452031778&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Nosotros sobreescribimos la primera instrucción y ponemos un salto (instrucción JMP en ensamblador) a una dirección de memoria de la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.data&lt;/span&gt; (&lt;u&gt;donde nosotros hemos añadido los bytes de relleno&lt;/u&gt;) que será donde añadiremos manualmente la porción de código encargada de la codificación. &lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;Antes de sobreescribir la primera intrucción nos la copiamos donde sea para luego poder recuperarla y no alterar así nada del código original.&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Kan6Z7DFNiBeUI7Sr14WKyQ2wvU_dub7M0LYAMbqnBpmi4DLsp5TONARikzmIRslEaqQWVQo_C-wRW-g5zD4stG2T9nb8R0nqu0VP72qaybGg3s51Kjv8up4cLxEjWYxk0zIiOxAFfK3/s1600-h/olly3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Kan6Z7DFNiBeUI7Sr14WKyQ2wvU_dub7M0LYAMbqnBpmi4DLsp5TONARikzmIRslEaqQWVQo_C-wRW-g5zD4stG2T9nb8R0nqu0VP72qaybGg3s51Kjv8up4cLxEjWYxk0zIiOxAFfK3/s400/olly3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236584191819184978&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmPXKvZcNw0FKKKQqFpmaTwIwmYhqu5x1f7k8nf9nXzxHefRSKS56d9rNGej45ZBcNzi58qzd7I0LyCiBZiyIjzfLR823xTR-deDmvsQKj8-qteZRdR2dTZ_Lyi2FBwD6kvMoCJ0pTRpVS/s1600-h/olly2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmPXKvZcNw0FKKKQqFpmaTwIwmYhqu5x1f7k8nf9nXzxHefRSKS56d9rNGej45ZBcNzi58qzd7I0LyCiBZiyIjzfLR823xTR-deDmvsQKj8-qteZRdR2dTZ_Lyi2FBwD6kvMoCJ0pTRpVS/s400/olly2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236584313214478626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Añadimos a partir de la dirección donde salta nuestro JMP las siguientes instrucciones de ensamblador:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;MOV EAX,dir_comienzo_codificación&lt;/span&gt;    //movemos al registro EAX la dirección de memoria donde comenzará la codificación&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;XOR BYTE PTR DS:[EAX],0F&lt;/span&gt;        //realiza una operación XOR entre el contenido de la dirección de memoria que contenga EAX y el valor 0Fh&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;INC EAX&lt;/span&gt;                    //incrementa el valor de EAX&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;CMP EAX,dir_fin_codificación&lt;/span&gt;        //comprueba si se ha llegado a la dirección de fin de codificación&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;JLE SHORT dir_comienzo_bucle&lt;/span&gt;        //si no son iguales así, vuelve al comienzo del bucle&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;La dirección de&lt;span style=&quot;font-style: italic;&quot;&gt; comienzo de codificación&lt;/span&gt; será la siguiente a la instrucción de salto que introdujimos al comienzo del ejecutable, en la imagen superior podemos ver que esa dirección es la &lt;span style=&quot;font-style: italic;&quot;&gt;00401005&lt;/span&gt;. Como &lt;span style=&quot;font-style: italic;&quot;&gt;dirección de fin de codificación&lt;/span&gt; ponemos una dirección que veamos que esté al final del código del ejecutable, en este caso &lt;span style=&quot;font-style: italic;&quot;&gt;004012F1&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;A continuación del bucle, pondremos la instrucción que machacamos al principio cuando pusimos el JMP, es decir &lt;span style=&quot;font-style: italic;&quot;&gt;PUSH 00403014&lt;/span&gt;, después, ponemos un salto a la dirección &lt;span style=&quot;font-style: italic;&quot;&gt;00401005&lt;/span&gt; para que regrese a la siguiente instrucción despues el primer JMP que añadimos al comienzo. Nuestro código queda así:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6sw0sXglCUFI1Wl8YjJWMjy1bM7g8JyWP25BJt3NzeU8ZlV0SEGe2tzbXpcRZPULos8NttEjD2ekmZNasm7PErGyLflvcyBWqQcvwzfsF9qbkqiDSGkypP2jjZ-9tVWnlwBUjCas69LBd/s1600-h/olly4.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6sw0sXglCUFI1Wl8YjJWMjy1bM7g8JyWP25BJt3NzeU8ZlV0SEGe2tzbXpcRZPULos8NttEjD2ekmZNasm7PErGyLflvcyBWqQcvwzfsF9qbkqiDSGkypP2jjZ-9tVWnlwBUjCas69LBd/s400/olly4.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236590074907859874&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Ponemos un punto de ruptura en la siguiente instrucción después del bucle de codificación (por ejemplo dirección &lt;span style=&quot;font-style: italic;&quot;&gt;00403027&lt;/span&gt;) para que se detenga la ejecución una vez salga del bucle. Cuando pulsamos el botón play del &lt;span style=&quot;font-style: italic;&quot;&gt;Olly&lt;/span&gt;, inmediatemente se ejecuta el bucle que hemos añadido y se detiene en el punto de ruptura. En este momento, todo el código ensamblador de la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.text&lt;/span&gt; del PE &lt;span style=&quot;font-weight: bold;&quot;&gt;se encuentra codificado&lt;/span&gt;. Ahora guardaremos estos cambios en la sección &lt;span style=&quot;font-weight: bold;&quot;&gt;.text&lt;/span&gt; y creamos un nuevo archivo (tini2.exe).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Si abrimos el nuevo ejecutable con Olly podemos ver que ya no aparecen las mismas instrucciones que la primera vez que lo abrimos. Ahora, despues de nuestro JMP ha cambiado todo:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU7nk7brlPtsClhZNBMz829FluXK-M3PG-F8EJNxtYcpkU1AmEJOJkucKk63AXsuASwDfHbritVw78K5qFpc-K6YiN-2m68wWnsBWISUjIENmpHyYIVKSgHcppCLYWwmLeWZmdShG_AjtF/s1600-h/olly5.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU7nk7brlPtsClhZNBMz829FluXK-M3PG-F8EJNxtYcpkU1AmEJOJkucKk63AXsuASwDfHbritVw78K5qFpc-K6YiN-2m68wWnsBWISUjIENmpHyYIVKSgHcppCLYWwmLeWZmdShG_AjtF/s400/olly5.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236592857755682114&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Veamos qué hace este nuevo ejecutable ejecutándolo paso a paso (F7). La primera instrucción sigue siendo el JMP que añadimos al comienzo, a continuación salta directamente al bucle que añadimos nosotros, pero aquí viene lo interesante; una vez que se complete el bucle de codificación, &lt;span style=&quot;font-weight: bold;&quot;&gt;el contenido de la sección .text vuelve a ser el mismo que al principio ya que se le ha vuelto a aplicar la misma función XOR&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;La clave está en que la víctima que ejecute este archivo, tendrá el contenido original malicioso del troyano &lt;u&gt;en memoria y no en disco&lt;/u&gt;. Al recibir la víctima nuestro archivo en el PC, el antivirus lo inspeccionará y no encontrará nada sopechoso ya que no hay similitudes en su código fuente con ningún virus conocido, (ya que el código fuente se encuentra codificado en disco), pero una vez que la víctima lo ejecute y pase a memoria, &lt;u&gt;en tiempo de ejecución se vovlerá a descodificar y la funcionalidad del troyano se mantendrá intacta&lt;/u&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Lo podemos comprobar si activamos de nuevo Kaspersky e inspeccionamos el archivo tini2.exe. Vemos que no detecta nada.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1qR1zx8TzApusVOR3mYFTLAy8zpIsTofNLzGAww1rkCWVvnehdrwIoBDJ5k9RNSwShx9QPJA3e2bqkV5bbtDSpmybkwqO5bqvrlJI8eoZRUi6SAaRhiFnuMIf8Lt1vR7zpQ7TGAOvyAz/s1600-h/olly6.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1qR1zx8TzApusVOR3mYFTLAy8zpIsTofNLzGAww1rkCWVvnehdrwIoBDJ5k9RNSwShx9QPJA3e2bqkV5bbtDSpmybkwqO5bqvrlJI8eoZRUi6SAaRhiFnuMIf8Lt1vR7zpQ7TGAOvyAz/s400/olly6.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236595275053582914&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO10Yy0hMoAzs_TgWhOX6mC2jNjYriNe00P2e3cN3M-HJdDyDHivl78MozzySNbDNQB1V6SZMcZhorsRR2Mm-BcheJ9aJ8-zwn3OTH9MaiVJ11Y-IGI-0FClddIOYixugZgubMKqC2zMaj/s1600-h/kaspersky.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO10Yy0hMoAzs_TgWhOX6mC2jNjYriNe00P2e3cN3M-HJdDyDHivl78MozzySNbDNQB1V6SZMcZhorsRR2Mm-BcheJ9aJ8-zwn3OTH9MaiVJ11Y-IGI-0FClddIOYixugZgubMKqC2zMaj/s400/kaspersky.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236602452149327106&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;También se ha comprobado que el nuevo ejecutable evade las alertas del antivirus &lt;span style=&quot;font-style: italic;&quot;&gt;Nod32&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Después podremos ejectuarlo con prudencia y comprobar que la funcionalidad del troyano se mantiene intacta.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Queda de esta forma desmostrada la necesidad de implementar por parte de los antivirus un sistema de detección de virus que vaya más allá de las firmas.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;Esta prueba no deja de ser una prueba de concepto y mediante este método no se consigue evadir a todos los sitemas antivirus. Enviando el archivo que se utilizó para las pruebas a &lt;a href=&quot;http://www.virustotal.com/&quot;&gt;Virus Tota&lt;/a&gt;&lt;a href=&quot;http://www.virustotal.com/&quot;&gt;l &lt;/a&gt;hemos obtenido &lt;span style=&quot;font-weight: bold;&quot;&gt;8&lt;/span&gt; alertas de un total de &lt;span style=&quot;font-weight: bold;&quot;&gt;36&lt;/span&gt;, es decir, fueron capaces de detectarlo un 22% del total. El &lt;span style=&quot;font-weight: bold;&quot;&gt;tini.exe&lt;/span&gt; original generó un 100% de alertas  (36 de 36):&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMZhSP9lkZfIQurGL4fC0q9QA2uyfu66CyaT1OMuXv77jPiZXOzAk281LuLj9WWVE1if9BOVsCWBnH3Sch4hVTiAFgLnMX9G8hKC8nCniG_5DLjifEt-CU1apL_vYRWtv9pAW_WS6zQWZj/s1600-h/virustotal.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMZhSP9lkZfIQurGL4fC0q9QA2uyfu66CyaT1OMuXv77jPiZXOzAk281LuLj9WWVE1if9BOVsCWBnH3Sch4hVTiAFgLnMX9G8hKC8nCniG_5DLjifEt-CU1apL_vYRWtv9pAW_WS6zQWZj/s400/virustotal.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5236876928365478834&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;Este entrada se ha desarrollado a partir de una presentación de la &lt;span style=&quot;font-style: italic;&quot;&gt;Shmoocon 2008 &lt;/span&gt;(&quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Hacking and Stuff&lt;/span&gt;&quot;) de Mati Aharoni. Podéis descargar un video de esta presentación desde aquí: &lt;a href=&quot;http://www.shmoocon.org/2008/videos/Backtrack%20Demo.mp4&quot;&gt;Backtrack demo&lt;/a&gt;&lt;/code&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/7358298969230124965/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/7358298969230124965' title='2 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7358298969230124965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7358298969230124965'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/08/ocultar-troyanos-virus-etc-los.html' title='Sorteando la detección de malware'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDULsiE9uweV_H1G06midobVP7gmk6UKRxQ7ESQqGQmC-b3EpIHu2EYiUmi1dok1LrtLYrJTHYtO3VVs1ScU4GtxEgu70EFjno1quR6qVoYMhH77zVO-tUWk4A0z0jaIUYBfQVesQGfPwf/s72-c/virustotal2.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-5927829116871546685</id><published>2008-06-18T05:47:00.001-07:00</published><updated>2008-12-09T18:23:46.605-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><title type='text'>Defiéndete de ataques arp-spoofing / MITM (Man In The Middle) con ArpON</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieBunQfUe3JG7Tcoa-iQVv5PrsOo8NnyWdFA7fDESVciiOn9oaDxdMNouBUwkPrDg76aAyf5K5Ey1fecxmpfsS7K5tmV2jZ14NZOGIiOqz0JIu506F-EFSm3u8zuK_aSGkBDt5zl2eZ7lO/s1600-h/logo2.png.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieBunQfUe3JG7Tcoa-iQVv5PrsOo8NnyWdFA7fDESVciiOn9oaDxdMNouBUwkPrDg76aAyf5K5Ey1fecxmpfsS7K5tmV2jZ14NZOGIiOqz0JIu506F-EFSm3u8zuK_aSGkBDt5zl2eZ7lO/s400/logo2.png.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213548797085073250&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://arpon.sourceforge.net/index.html&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;ArpON&lt;/span&gt;&lt;/a&gt; (Arp handler inspectiON) es una herramienta que permite manipular algunos aspectos del protocolo ARP. Una de sus cualidades destacadas es la de hacer el protocolo ARP más seguro. Implementa dos técnicas de defensa contra ataques de envenenamiento ARP &lt;u&gt;(&lt;a href=&quot;http://en.wikipedia.org/wiki/ARP_spoofing&quot;&gt;ARP spoofing&lt;/a&gt;)&lt;/u&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;SARPI&lt;/span&gt; &quot;Static Arp Inspection&quot; &lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt; &quot;Dynamic Arp Inspection&quot;&lt;/li&gt;&lt;/ul&gt;En este caso vamos a estudiar la segunda.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold; color: rgb(0, 0, 153);font-size:130%;&quot; &gt;DARPI&lt;br /&gt;&lt;/span&gt;Una vez entra en funcionamiento, lo primero que hace es limpiar la &lt;span style=&quot;font-weight: bold;&quot;&gt;caché ARP&lt;/span&gt; eliminando todas las entradas evitando así posibles envenamientos previos.&lt;br /&gt;Después obedece a las siguientes políticas de gestión de paquetes ARP utilizando una caché propia llamada caché &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Para los paquetes ARP request:&lt;/u&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/06/defindete-de-ataques-arp-spoofing-mitm.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; - Salientes&lt;/span&gt;:  Los generamos nosotros, por tanto ArpON los deja pasar y añade una entrada con la dirección destino a la caché &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI &lt;/span&gt;(para posteriormente ser consultada cuando lleguen paquetes &lt;span style=&quot;font-style: italic;&quot;&gt;ARP reply&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; - Entrantes&lt;/span&gt;: ArpON rechaza el paquete y borra la entrada correspondiente a la dirección origen de la caché ARP (ya que este paquete puede estar envenenado); el kernel enviará un paquete &lt;span style=&quot;font-style: italic;&quot;&gt;ARP request&lt;/span&gt; a esa dirección origen, y este paquete se gestionará siguiendo la política de paquetes salientes &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt;.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;De esta forma, ArpON nos defiende de ataques de envenenamiento ARP mediente paquetes ARP request.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Para los paquetes ARP reply&lt;/u&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;br /&gt;- Salientes&lt;/span&gt;: Estos paquetes los generamos nosotros y ArpON les da paso.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt; - Entrantes&lt;/span&gt;:  ArpON comprueba si la dirección origen se encuentra en la caché &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt; (la que fue añadida al enviar un &lt;span style=&quot;font-style: italic;&quot;&gt;ARP request&lt;/span&gt; saliente); en ese caso, lo deja pasar y añade una entrada en la cache ARP. Si la dirección origen no se encuentra en la caché &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt;, ArpON rechaza el paquete y elimina la entrada de la caché ARP.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;De esta forma, ArpON nos defiende de ataques de envenenamiento ARP mediente paquetes ARP reply.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Desde la página principal nos informan de que el servicio ArpON no afecta al rendimiento del protocolo ARP.&lt;br /&gt;&lt;br /&gt;- Vamos una demostración de cómo trabaja esta herramienta:&lt;br /&gt;&lt;br /&gt;Para esta demostración se ha descargado, compilado e instalado las &lt;a href=&quot;http://arpon.sourceforge.net/download.html&quot;&gt;librerías&lt;/a&gt; que se propone desde la página principal de ArpON:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;libpcap-0.9.8.tar.gz&lt;/li&gt;&lt;li&gt;libnet-1.1.2.1.tar.gz&lt;/li&gt;&lt;li&gt;libdnet-1.11.tar.gz &lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;u&gt;&lt;br /&gt;Escenario&lt;/u&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;1 Un pc con Debian instalado se defenderá de ataques arp-spoofing utilizando ArpON.&lt;br /&gt;&lt;br /&gt;2 Otro pc con Debian instalado será el atacante y lanzará un ataque arp-spoofing (&lt;span style=&quot;font-style: italic;&quot;&gt;arp reply&lt;/span&gt;) utilizando &lt;span style=&quot;font-weight: bold;&quot;&gt;ettercap&lt;/span&gt; entre la víctima y la puerta de enlace.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IP atacante: &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.6.137&lt;/span&gt; dirección MAC uu:vv:ww:&lt;span style=&quot;font-weight: bold;&quot;&gt;EC:D4:B9&lt;/span&gt;&lt;/li&gt;&lt;li&gt;IP víctima: &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.6.150&lt;/span&gt; dirección MAC xx:yy:zz:&lt;span style=&quot;font-weight: bold;&quot;&gt;55:38:C3&lt;/span&gt;&lt;/li&gt;&lt;li&gt;IP puerta de enlace: &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.6.1&lt;/span&gt; dirección MAC rr:ss:tt:&lt;span style=&quot;font-weight: bold;&quot;&gt;C0:00:08&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Primero, veamos el desarrollo del ataque sin utilizar ArpON:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;$ ettercap -T -M arp /192.168.6.150/ /192.168.6.1/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una vez lanzado el ataque, podremos consultar la caché ARP de la víctima y comprobar que en dicha tabla, la dirección mac correspondiente a la puerta de enlace (192.168.6.1) es en realidad la dirección mac del atacante (:::EC:D4:B9). En la siguiente imagen podemos ver la salida de &lt;span style=&quot;font-style: italic;&quot;&gt;ettercap&lt;/span&gt; al lanzar el ataque:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ6kEnzGHoXcVFQakLdWGmQWjzprBiU1KnGa1abY9RUd2ndHiGvcqyi7R6EKqLOSdRZetKYJqfA266RjhI5V577RRlUZt8wbljVDmGR6ujsRAAl9AnDhBzrfZvI27-v7qUJS_81ot8v84U/s1600-h/imagen1b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ6kEnzGHoXcVFQakLdWGmQWjzprBiU1KnGa1abY9RUd2ndHiGvcqyi7R6EKqLOSdRZetKYJqfA266RjhI5V577RRlUZt8wbljVDmGR6ujsRAAl9AnDhBzrfZvI27-v7qUJS_81ot8v84U/s400/imagen1b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213505003328955842&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Observamos el cambio en la caché ARP antes y después del lanzar el ataque.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Antes&lt;/span&gt;:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJYDqLz_uj3Jrt82TmdKU_Iyu3Kidqs1_ymv2bhyCSPcYv6XpjIsFN00kFLbDuUqkSlq6fXkciefQDZ4diJk6pLQ0f60lrGA2afwZPPwCnlNKrpJiwVjK-1udw9sqoB_cuRMXmdfzy5rdC/s1600-h/imagen3b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJYDqLz_uj3Jrt82TmdKU_Iyu3Kidqs1_ymv2bhyCSPcYv6XpjIsFN00kFLbDuUqkSlq6fXkciefQDZ4diJk6pLQ0f60lrGA2afwZPPwCnlNKrpJiwVjK-1udw9sqoB_cuRMXmdfzy5rdC/s400/imagen3b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213505208952518290&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Después&lt;/span&gt;:&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkRtJj7FZFu1VZld3FxM4_MH5dfHqJ95ni8AyP0XRfBhu5IqOopwfTZ3AF42mWhKCuyAKqKkzBXYnwnkhIn4IcthB5bQ_Us06B7M7cC6QpLkCzdSqXEQO0EnhPw5nVfwRyq5hldVjkJmNL/s1600-h/imagen2b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkRtJj7FZFu1VZld3FxM4_MH5dfHqJ95ni8AyP0XRfBhu5IqOopwfTZ3AF42mWhKCuyAKqKkzBXYnwnkhIn4IcthB5bQ_Us06B7M7cC6QpLkCzdSqXEQO0EnhPw5nVfwRyq5hldVjkJmNL/s400/imagen2b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213505127174592162&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;En este instante la víctima enviará al atacante, sin saberlo, todos los paquetes con destino a la puerta de enlace.&lt;br /&gt;&lt;br /&gt;- Veamos qué sucede cuando se lanza el mismo ataque pero ArpON está en funcionamiento:&lt;br /&gt;&lt;br /&gt;Ejecutamos ArpON en el pc que deseamos proteger en modo dinámico (&lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family:courier new;&quot;&gt;$./arpon -i eth0 -y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Observamos que lo primero que hace es borrar todas las entradas de la caché ARP. En este caso, la tabla contenía entradas de las direcciones IP 192.168.6.1, 192.168.6.2 y 192.168.6.254:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTGTEMobmRwaShD6Ue8Snz43bwTWzgkq5ambyJFh8PtwOoBMhmUC4O1HyHwXeSnMOybL8hW3C2XSF5e7aokJpKa2FjAiKHfMoigTUfLE0rJlaaMZ7jfYvm2gonxLzLYC4_7bgQNMm8FUVr/s1600-h/imagen4b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTGTEMobmRwaShD6Ue8Snz43bwTWzgkq5ambyJFh8PtwOoBMhmUC4O1HyHwXeSnMOybL8hW3C2XSF5e7aokJpKa2FjAiKHfMoigTUfLE0rJlaaMZ7jfYvm2gonxLzLYC4_7bgQNMm8FUVr/s400/imagen4b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213505320013784498&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Si en ese momento consultamos la caché ARP obtenemos que está vacía:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIDfuShWcwcUPYXPpWC0fpZT1-_zKK9W-b4y9duPJYzBqqkaLK1iz0LkgPBTN8EE3eJ-1kIncJwl2TS-2m5ORXT8JbjBdUAGQjGRN_eTXrlKNRSFle81uD0lakolr2dnM_IsdOdPmfn-so/s1600-h/imagen5b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIDfuShWcwcUPYXPpWC0fpZT1-_zKK9W-b4y9duPJYzBqqkaLK1iz0LkgPBTN8EE3eJ-1kIncJwl2TS-2m5ORXT8JbjBdUAGQjGRN_eTXrlKNRSFle81uD0lakolr2dnM_IsdOdPmfn-so/s400/imagen5b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213507484002311346&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ArpON nos permite observar las acciones que va realizando en cada momento, si el atacante lanza el mismo ataque que antes, observamos lo siguiente:&lt;br /&gt;&lt;br /&gt;Al recibir los paquetes &lt;span style=&quot;font-style: italic;&quot;&gt;ARP reply&lt;/span&gt; envenenados del atacante, observamos que al no encontrar la dirección origen en la caché &lt;span style=&quot;font-weight: bold;&quot;&gt;DARPI&lt;/span&gt;, inmediatamente elimina esta entrada de la caché ARP. Este proceso lo repetirá para cada paquete &lt;span style=&quot;font-style: italic;&quot;&gt;ARP reply&lt;/span&gt; envenenado que reciba:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFXD5ic9CA3ME_iVYFF7Hs9NXONTPxbycxC3TpetfAPOsyLvrdhVpCktDAQZ8w08LnUIaSADFLIhsA81shBHvUggfPxswlp9X-SuaJn6jaDf7Zac0Rdq0nLsp4oTAKy0XWP-MyXxIJEceg/s1600-h/imagen8b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFXD5ic9CA3ME_iVYFF7Hs9NXONTPxbycxC3TpetfAPOsyLvrdhVpCktDAQZ8w08LnUIaSADFLIhsA81shBHvUggfPxswlp9X-SuaJn6jaDf7Zac0Rdq0nLsp4oTAKy0XWP-MyXxIJEceg/s400/imagen8b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213537648547002626&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Veamos ahora qué sucede cuando se recibe una petición &lt;span style=&quot;font-style: italic;&quot;&gt;ARP &lt;/span&gt;válida y cómo comprueba que no está enveneada. En este caso será un host con IP &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.6.136&lt;/span&gt; (xx:yy:zz:34:F4:F4) el que se comunicará con la víctima.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;1. Recibe un paquete &lt;span style=&quot;font-style: italic;&quot;&gt;ARP request&lt;/span&gt; de la &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.6.136&lt;/span&gt;&lt;/li&gt;&lt;li&gt;2. Al no encontrar la dirección origen del paquete en la caché DARPI borra la entrada de la caché ARP &lt;/li&gt;&lt;li&gt;3. Añade la dirección origen a la caché DARPI y lanza un ARP request a esta dirección &lt;/li&gt;&lt;li&gt;4. Recibe la respuesta (un paquete &lt;span style=&quot;font-style: italic;&quot;&gt;ARP reply&lt;/span&gt;) y esta vez sí que se encuentra la dirección origen en la caché DARPI, por tanto borra esta entrada de la caché DARPI y la añade a la caché ARP&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdjmM9T3a2Dmz3hQKYAGL33BAFun8w4WtwATDQVwRx7WsA0Me0vjLbeFb96CnR3_UZ2H5D9ScgCh3PNpQqHvjhvSYdA597V64ZdTltq5tFv08q6ta9lgk8Id5ofQwENbKssyQJEn4dkkcg/s1600-h/imagen9b.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdjmM9T3a2Dmz3hQKYAGL33BAFun8w4WtwATDQVwRx7WsA0Me0vjLbeFb96CnR3_UZ2H5D9ScgCh3PNpQqHvjhvSYdA597V64ZdTltq5tFv08q6ta9lgk8Id5ofQwENbKssyQJEn4dkkcg/s400/imagen9b.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5213537797887509602&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/5927829116871546685/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/5927829116871546685' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/5927829116871546685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/5927829116871546685'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/06/defindete-de-ataques-arp-spoofing-mitm.html' title='Defiéndete de ataques arp-spoofing / MITM (Man In The Middle) con ArpON'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieBunQfUe3JG7Tcoa-iQVv5PrsOo8NnyWdFA7fDESVciiOn9oaDxdMNouBUwkPrDg76aAyf5K5Ey1fecxmpfsS7K5tmV2jZ14NZOGIiOqz0JIu506F-EFSm3u8zuK_aSGkBDt5zl2eZ7lO/s72-c/logo2.png.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-4812930556168813312</id><published>2008-04-24T01:35:00.000-07:00</published><updated>2008-12-09T18:23:47.027-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><title type='text'>Google-Hacking con Metagoofil</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXTFSCW353F1hsOMbP1XDiXF6eMxrxQw7tFNSdWrAjxddC-esp9893-Bq8b8CIWyvx4PT-6wjQp6YS8epnBj7M4HESH6VtZJC-5w-ImqmqHiIE1OremWf20mjuUqtGmf3qQH95n0pKKyjl/s1600-h/metagoofil3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXTFSCW353F1hsOMbP1XDiXF6eMxrxQw7tFNSdWrAjxddC-esp9893-Bq8b8CIWyvx4PT-6wjQp6YS8epnBj7M4HESH6VtZJC-5w-ImqmqHiIE1OremWf20mjuUqtGmf3qQH95n0pKKyjl/s400/metagoofil3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5192728147990003234&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;La&lt;span style=&quot;font-style: italic;&quot;&gt; recopilación de información&lt;/span&gt; es la primera fase en la evaluación de seguridad. un paso necesario en una prueba de intrusión. Se centra en recoger tanta información como sea posible sobre una aplicación  objetivo.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Metagoofil&lt;/span&gt; es una herramienta que se encarga de extraer &lt;span style=&quot;font-weight: bold;&quot;&gt;Meta-Datos&lt;/span&gt; de ciertos ficheros accesibles en los websites.&lt;br /&gt;&lt;br /&gt;Los ficheros que utiliza son los clasicos utilizados en ofimática &lt;span style=&quot;font-weight: bold;&quot;&gt;PDF,PPT,DOC,XLS y MDB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La manera de operar de la herramienta se basa en realizar búsquedas en &lt;span style=&quot;font-weight: bold;&quot;&gt;Google&lt;/span&gt; (Google-Hacking) dentro del dominio del Objetivo, y solo de los ficheros con formatos concretos.&lt;br /&gt;&lt;br /&gt;Una vez identificados los ficheros, se bajan de la web a nuestra máquina donde Metagoofil extraerá la informacion interesante, por último genera un &lt;span style=&quot;font-weight: bold;&quot;&gt;HTML&lt;/span&gt; con los resultados.&lt;br /&gt;&lt;br /&gt;De esta forma tenemos una fuente más de donde extraer usuarios potenciales de los sistemas objetivos.&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/04/google-hacking-con-metagoofil.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Esta herramienta utiliza libextractor para obtener la meta-información de los archivos. Tendremos que instalarla aparte.&lt;br /&gt;&lt;br /&gt;Acaba de publicarse la nueva versión de esta herramienta (&lt;span style=&quot;font-style: italic;&quot;&gt;MetaGooFil 1.4 - 20/04/2008&lt;/span&gt;) que obtiene la dirección MAC de los documentos Microsoft Office.&lt;br /&gt;Es capaz de obtener:&lt;br /&gt;Nombres de usuario, rutas de los archivos y direcciones MAC.&lt;br /&gt;&lt;br /&gt;Otro punto más que proteger por parte de los responsables de seguridad.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vnBQX9HE6HE2YuOf8mOFgXpxYXdoB0doKoeY_Vp8rf1jjodKICpjovuvoGdickOClw4CXmPjbUie8oFgEctVDOVmUNiWbhGcz_mA5qSkikFfrKTNuMor8ZnaF9nrE_bB4-jeUvr5ZnfT/s1600-h/metagoofil4b.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9vnBQX9HE6HE2YuOf8mOFgXpxYXdoB0doKoeY_Vp8rf1jjodKICpjovuvoGdickOClw4CXmPjbUie8oFgEctVDOVmUNiWbhGcz_mA5qSkikFfrKTNuMor8ZnaF9nrE_bB4-jeUvr5ZnfT/s400/metagoofil4b.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5192728276839022130&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Enlaces:&lt;br /&gt;&lt;a href=&quot;http://www.edge-security.com/metagoofil.php&quot;&gt;http://www.edge-security.com/metagoofil.php&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.s21sec.com/metagoofil/metagoofil.html&quot;&gt;http://www.s21sec.com/metagoofil/metagoofil.html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/4812930556168813312/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/4812930556168813312' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/4812930556168813312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/4812930556168813312'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/04/google-hacking-con-metagoofil.html' title='Google-Hacking con Metagoofil'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXTFSCW353F1hsOMbP1XDiXF6eMxrxQw7tFNSdWrAjxddC-esp9893-Bq8b8CIWyvx4PT-6wjQp6YS8epnBj7M4HESH6VtZJC-5w-ImqmqHiIE1OremWf20mjuUqtGmf3qQH95n0pKKyjl/s72-c/metagoofil3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-1559654129264409510</id><published>2008-04-11T02:58:00.000-07:00</published><updated>2008-12-09T18:23:47.333-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Manuales"/><title type='text'>Certificados digitales</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzO0_eXohOd-txeYuWrLvs8fhVpp9FnCZvwEenk4CSqSkYNuQyQo55msYx_wTEZ1NrXvY_NF7XHp58_fZa0QhwQ6N-sz7eUuz2jTVzAZ7wSl-18G8PkfLQgyd-hSraXyJ1suQUOP7De3qH/s1600-h/imagen1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzO0_eXohOd-txeYuWrLvs8fhVpp9FnCZvwEenk4CSqSkYNuQyQo55msYx_wTEZ1NrXvY_NF7XHp58_fZa0QhwQ6N-sz7eUuz2jTVzAZ7wSl-18G8PkfLQgyd-hSraXyJ1suQUOP7De3qH/s400/imagen1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5187928127967217842&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Un &lt;span style=&quot;font-weight: bold;&quot;&gt;certificado digital&lt;/span&gt; es una versión &quot;firmada&quot; o verificada de una clave pública.&lt;br /&gt;Los certificados digitales siguen el estándar &lt;span style=&quot;font-weight: bold;&quot;&gt;X.509&lt;/span&gt; para definir su formato. Las extensiones de estos certificados pueden ser:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;   .P7b&lt;/span&gt; - Estructura &lt;span style=&quot;font-weight: bold;&quot;&gt;PKCS#7&lt;/span&gt;. Usado para firmar y/o cifrar mensajes (contiene sólo la clave pública).&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;   .Pfx&lt;/span&gt; - Estructura &lt;span style=&quot;font-weight: bold;&quot;&gt;PKCS#12&lt;/span&gt;. Puede contener claves públicas y claves privadas (protegido mediante clave simétrica)&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;   .CER&lt;/span&gt; - Certificado codificado en CER, algunas veces es una secuencia de certificados&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;   .DER&lt;/span&gt; - Certificado codificado en DER&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;   .PEM&lt;/span&gt; - Certificado codificado en Base64, encerrado entre &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;-----BEGIN CERTIFICATE-----&quot; &lt;/span&gt;y &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;-----END CERTIFICATE-----&quot;&lt;/span&gt; Puede contener claves privadas o públicas.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Nota: Cuando queremos exportar un certificado, si elegimos el formato &lt;span style=&quot;font-weight: bold;&quot;&gt;PKCS#7&lt;/span&gt; sólo estaremos exportando la clave pública, por en contrario, si elegimos el formato &lt;span style=&quot;font-weight: bold;&quot;&gt;PKCS#12&lt;/span&gt; también estaremos exportando la clave privada.&lt;br /&gt;&lt;br /&gt;A la hora de utilizar certificados digitales en una infraestructura &lt;span style=&quot;font-weight: bold;&quot;&gt;PKI&lt;/span&gt; para fortificar las comunicaciones en internet, las organizaciones disponen de dos opciones:&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/04/certificados-digitales.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;u&gt;1ª Utilizar un certificado raiz de confianza autofirmado&lt;/u&gt;&lt;br /&gt;Una organización puede optar por crear su propia CA para firmar sus propios certificados digitales. Esta CA poseerá un &lt;span style=&quot;font-style:italic;&quot;&gt;certificado raiz&lt;/span&gt; o &lt;span style=&quot;font-style:italic;&quot;&gt;certificado autofirmado&lt;/span&gt; que cada navegador que acceda a un portal bajo SSL deberá añadir previamente a su lista de certificados de confianza, si no lo hace, cada vez que se intente acceder a ese recurso, el navegador devolverá un error de certificado. Más adelante veremos por qué.&lt;br /&gt;Se dice que es un certificado autofirmado porque que el propietario y el emisor son la misma entidad.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;2ª Utilizar un certificado firmado por una Autoridad de Certificación&lt;/u&gt;, solicitando y pagando por la firma de una entidad certificadora reconocida. De esta forma, la CA es la responsable de asegurar que la identidad del propietario del certificado es auténtica. En  este caso los navegadores no necesitan instalar ningún certificado raiz de la CA ya que al ser una Autoridad Certificadora reconocida, estos certificados raiz ya se encuentran instalados por defecto en los navegadores.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Procedimiento de adquisición de un certificado digital&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;- Cuando una organización desea solicitar un certificado de seguridad para utilizarlo, por ejemplo, en un servidor web protegido con SSL, primero debe realizar una solicitud de certificado o &lt;span style=&quot;font-weight: bold;&quot;&gt;CSR (Certificate Signing Request)&lt;/span&gt;. Una &lt;span style=&quot;font-weight: bold;&quot;&gt;CSR&lt;/span&gt; consiste en generar un &quot;pre-certificado&quot; (pre-certificado porque no está firmado aún) con los datos de la entidad solicitante: nombre de la organización, correo, &lt;span style=&quot;font-style: italic;&quot;&gt;DN Distinguished Name&lt;/span&gt; (dato de mucha importancia ya que identificará el dominio sobre el que se alojará el recurso) entre otros. Cuando se crea una &lt;span style=&quot;font-weight: bold;&quot;&gt;CSR&lt;/span&gt; se obtiene dos ficheros:&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;cert.pem&lt;/span&gt; -&gt; pre-certificado&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;key.pem&lt;/span&gt; -&gt; clave privada que utilizará el servidor web para futuros handshake de SSL&lt;br /&gt;&lt;br /&gt;- La &lt;span style=&quot;font-weight: bold;&quot;&gt;CA&lt;/span&gt; recibe la solicitud de certificado y comprueba que los datos que contiene se corresponden realmente con la entidad que lo solicita (cada CA utiliza sus propios metodos). Una vez comprobado, la &lt;span style=&quot;font-weight: bold;&quot;&gt;CA&lt;/span&gt; crea una firma a partir de su llave privada y los datos del &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;pre-certificado&quot;&lt;/span&gt; y genera un certificado ya firmado y definitivo y lo hace llegar a la organización que lo solicitó.&lt;br /&gt;&lt;br /&gt;Una vez la organización reciba el certificado ya firmado, deberá instalar este certificado en su servidor web.&lt;br /&gt;Ejemplo de configuración del fichero &lt;span style=&quot;font-style: italic;&quot;&gt;httpd.conf&lt;/span&gt; de apache:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;...&lt;br /&gt;SSLEngine on&lt;br /&gt;SSLCertificateFile &lt;span style=&quot;font-weight: bold;&quot;&gt;/etc/httpd/conf/certificado-firmado.pem&lt;/span&gt;&lt;/code&gt; &lt;- certificado ya firmado &lt;br&gt; &lt;code&gt;SSLCertificateKeyFile &lt;span style=&quot;font-weight: bold;&quot;&gt;/etc/httpd/conf/key.pem&lt;/span&gt; &lt;/code&gt;&lt;- clave privada que obtuvimos cuando generamos la CSR. ...  &lt;br&gt;&lt;br&gt; A continuación se muestra el proceso de negociación o Handshake entre el cliente y el servidor:     &lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Hacer click sobre la imagen para agrandar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHdiqR_1dOfnLwrLnpl_cBtwoUaJop10n24S4iqUoBXxhr3E5_V6mp1OHGJXFiLQOv4T6eUYW1tID0azT1rsBFIT4hVmxe5lJgF4-RB1QGYmmBl16wWHZ2JB2SYqWyx1XdwIHsbL1bvp9/s1600-h/imagen2.jpg&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXHdiqR_1dOfnLwrLnpl_cBtwoUaJop10n24S4iqUoBXxhr3E5_V6mp1OHGJXFiLQOv4T6eUYW1tID0azT1rsBFIT4hVmxe5lJgF4-RB1QGYmmBl16wWHZ2JB2SYqWyx1XdwIHsbL1bvp9/s400/imagen2.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5187934085086857442&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/1559654129264409510/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/1559654129264409510' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1559654129264409510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1559654129264409510'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/04/certificados-digitales.html' title='Certificados digitales'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzO0_eXohOd-txeYuWrLvs8fhVpp9FnCZvwEenk4CSqSkYNuQyQo55msYx_wTEZ1NrXvY_NF7XHp58_fZa0QhwQ6N-sz7eUuz2jTVzAZ7wSl-18G8PkfLQgyd-hSraXyJ1suQUOP7De3qH/s72-c/imagen1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-2671007312763180523</id><published>2008-04-09T05:00:00.001-07:00</published><updated>2008-12-09T18:23:49.178-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Manuales"/><title type='text'>Autenticación a un servidor SSH utilizando cifrado asimétrico</title><content type='html'>Vamos a configurar el método de autenticación a un servidor con Windows y freeSSHd instalado, utilizando el cliente putty y un sistema de cifrado de clave pública.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;- Generamos nuestro par de claves:&lt;/span&gt;&lt;br /&gt;Abrimos el &lt;span style=&quot;font-weight: bold;&quot;&gt;PuTTy Key Generator&lt;/span&gt; (&lt;span style=&quot;font-weight: bold;&quot;&gt;puttygen.exe&lt;/span&gt;) y puslamos sobre &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Generate&lt;/span&gt;&quot;. Nos pide que generemos información aleatoria moviendo el cursor sobre la zona gris.&lt;br /&gt;Copiamos el texto que viene en la sección &quot;key&quot; en un editor de texto, por ejemplo bloc de notas. Lo guardamos en el directorio donde el servidor de ssh &lt;span style=&quot;font-weight: bold;&quot;&gt;freeSSHd&lt;/span&gt; guarde las claves públicas. Este directorio es por defecto &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;C:\Archivos de programa\freeSSHd\&lt;/span&gt;&quot; y se puede modificar en la pestaña &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Authentication&lt;/span&gt;&quot;. Este documento lo guardamos con el nombre del usuario que tengamos para el freeSSHd. Este usuario deberá tener configurado como método de autorización &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Public key (SSH only)&lt;/span&gt;&quot;; lo comprobamos en la pestaña &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Users&lt;/span&gt;&quot; seleccionando un usuario y pulsando sobre el botón &quot;Change&quot;. Por otra parte, tendremos que tener a &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Allowed&lt;/span&gt;&quot; o &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Required&lt;/span&gt;&quot; el parámetro &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Public key authentication&lt;/span&gt;&quot; en la configuración del &lt;span style=&quot;font-weight: bold;&quot;&gt;freesshd&lt;/span&gt; para que nos permita este tipo de autenticación. Volvemos al &lt;span style=&quot;font-weight: bold;&quot;&gt;PuTTy Key Generator&lt;/span&gt; y puslamos sobre &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Save private key&lt;/span&gt;&quot; para guardar la llave privada en un lugar seguro (en el cliente).&lt;br /&gt;Podemos utilizar passphrase o no para guardarla, si elegimos que sí, cuando intentemos conectar nos la pedirá.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM6Mv7ALdOT6P_PueruQTEh45QG8F7XXQOd57lvRFSHlhR6z_RFtHcOJPTCHK2WSDEEr8-01iZIVIhDYPa_TM5edLrxBrM5qVk3SiZhjNR7i4iisSA5_MQqEZbzL-2uNuqFqhtmSLDepdd/s1600-h/ssh1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM6Mv7ALdOT6P_PueruQTEh45QG8F7XXQOd57lvRFSHlhR6z_RFtHcOJPTCHK2WSDEEr8-01iZIVIhDYPa_TM5edLrxBrM5qVk3SiZhjNR7i4iisSA5_MQqEZbzL-2uNuqFqhtmSLDepdd/s400/ssh1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5187214758098032050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/04/autenticacin-un-servidor-ssh-utilizando.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;- Probamos a conectarnos. &lt;/span&gt;&lt;br /&gt;Abrimos &lt;span style=&quot;font-weight: bold;&quot;&gt;putty&lt;/span&gt; en el cliente y nos vamos a &lt;span style=&quot;font-style: italic;&quot;&gt;Connection -&gt; SSH -&gt; Auth&lt;/span&gt;, y en la sección &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Authentication parameters&lt;/span&gt;&quot;, indicamos la llave privada que usaremos para autenticarnos. Elegimos la que hayamos guardado con el &lt;span style=&quot;font-weight: bold;&quot;&gt;PuTTy Key Generator&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlSoH-XiKhlniD51uy_DwCHycnwmytWUiEyLnAuCqSPUcxPzujltW7y1DL4D1Sn_AappOJQ5K2T7JSI1_NySobl1s8d5w3n8m1QXtX79aYkbHzQtE7SohWk3Y_Wr6ewPVI6h4ral5X6wtj/s1600-h/ssh2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlSoH-XiKhlniD51uy_DwCHycnwmytWUiEyLnAuCqSPUcxPzujltW7y1DL4D1Sn_AappOJQ5K2T7JSI1_NySobl1s8d5w3n8m1QXtX79aYkbHzQtE7SohWk3Y_Wr6ewPVI6h4ral5X6wtj/s400/ssh2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5187214972846396866&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Podemos utilizar Pageant.exe&lt;/span&gt; para que gestione automáticamente las claves privadas que utilizaremos para autenticarnos:&lt;br /&gt;Ejecutamos &lt;span style=&quot;font-weight: bold;&quot;&gt;pageant.exe&lt;/span&gt; y nos coloca en la barra de sistema un icono, cuando hacemos doble click sobre él nos abre una ventana donde aparecen listadas las claves privadas que contiene. La prmiera vez aparecerá vacía y tendremos que añadir las claves privadas pulsando sobre &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Add key&lt;/span&gt;&quot;, si la clave tiene passphrase asociada nos la pedirá en ese momento. Al arrancar putty, detectará automáticamente que pageant está funcionando y utilizará las llaves privadas que contenga. Cuando haya varias, putty probará una por una hasta que encuentre alguna que corresponda con la cabe pública del usuario que esté logeando en el servidor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0hb_Qpjz8Z2Qa2x2QYWArXn6J5BLFHo5I-dOpAWxgQ4MSchE2Dt3-nbfCZ0t8Gj750ymToZU8AxgbWNcHl5JGBlfjTyq6OBxp5UmlExN9CsvZC9qyf-3vs8gxy5mwF17E-S41QdLVvz6h/s1600-h/ssh3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0hb_Qpjz8Z2Qa2x2QYWArXn6J5BLFHo5I-dOpAWxgQ4MSchE2Dt3-nbfCZ0t8Gj750ymToZU8AxgbWNcHl5JGBlfjTyq6OBxp5UmlExN9CsvZC9qyf-3vs8gxy5mwF17E-S41QdLVvz6h/s400/ssh3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5187215148940056018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;NOTA&lt;/span&gt;: Si no queremos que nos pida usuario al conectar, podemos añadir un usuario por defecto en &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Auto-login username&lt;/span&gt;&quot; en &lt;span style=&quot;font-style: italic;&quot;&gt;Connection -&gt; Data&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;- Si ya tenemos un par de claves generadas con &lt;span style=&quot;font-weight: bold;&quot;&gt;freeSSHd&lt;/span&gt;, para utilizarlas, tan solo tendremos que pulsar sobre el botón &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Load&lt;/span&gt;&quot; en el &lt;span style=&quot;font-weight: bold;&quot;&gt;PuTTy Key Generator&lt;/span&gt;, seleccionar &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;All files (*.*)&lt;/span&gt;&quot; en &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;Tipo:&lt;/span&gt;&quot; y abrir la llave privada &lt;span style=&quot;font-style: italic;&quot;&gt;.rsa o .dsa&lt;/span&gt;. Una vez abierta, tendremos que volver a repetir los mismos pasos que si las hubieramos generado directamente con el &lt;span style=&quot;font-weight: bold;&quot;&gt;puttygen.exe&lt;/span&gt;, es decir, guardar la llave pública con el nombre del usuario y la privada con extensión &lt;span style=&quot;font-weight: bold;&quot;&gt;ppk&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirzBv9iHBWFPPfYDXrYGUDNpiZ1PC6AzJrsHqDIOfhcJwrdMlQuTWrx1j_zlrtjdroafmJXPlfFIpzBiVrZeulMYxW_j-BvGD4qpys5pfOaI_1_IvX8wHPjFtm35WKj3V834PysGavzXTG/s1600-h/ssh4.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirzBv9iHBWFPPfYDXrYGUDNpiZ1PC6AzJrsHqDIOfhcJwrdMlQuTWrx1j_zlrtjdroafmJXPlfFIpzBiVrZeulMYxW_j-BvGD4qpys5pfOaI_1_IvX8wHPjFtm35WKj3V834PysGavzXTG/s400/ssh4.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5187215337918617058&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Si tenemos un par de claves generadas con &lt;span style=&quot;font-weight: bold;&quot;&gt;OpenSSH &lt;/span&gt;(utilizando por ej. el comando                   &lt;span style=&quot;font-style: italic;&quot;&gt;# ssh-keygen -t dsa&lt;/span&gt;), seguiremos el mismo proceso importando la clave privada en el &lt;span style=&quot;font-weight: bold;&quot;&gt;puttygen.exe&lt;/span&gt; y guardándola en formato &lt;span style=&quot;font-weight: bold;&quot;&gt;ppk&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/2671007312763180523/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/2671007312763180523' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/2671007312763180523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/2671007312763180523'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/04/autenticacin-un-servidor-ssh-utilizando.html' title='Autenticación a un servidor SSH utilizando cifrado asimétrico'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM6Mv7ALdOT6P_PueruQTEh45QG8F7XXQOd57lvRFSHlhR6z_RFtHcOJPTCHK2WSDEEr8-01iZIVIhDYPa_TM5edLrxBrM5qVk3SiZhjNR7i4iisSA5_MQqEZbzL-2uNuqFqhtmSLDepdd/s72-c/ssh1.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-7388297720512660282</id><published>2008-03-28T05:29:00.000-07:00</published><updated>2008-12-09T18:23:49.403-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><title type='text'>Secunia Software Inspector</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjar45-fe0mPZOi4ZK4W4YMDAVFok0hUv2FlqzFZFzclpLj2SQDPbmrLxC7fQOt_XJk5TIgKMFvaPcLV65pSL5WLR1nzePWJyoBHISexZCjLMtNyXRbjwRJyPzIjgBIyGaYXXW5eDg0l-Bd/s1600-h/secunia1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjar45-fe0mPZOi4ZK4W4YMDAVFok0hUv2FlqzFZFzclpLj2SQDPbmrLxC7fQOt_XJk5TIgKMFvaPcLV65pSL5WLR1nzePWJyoBHISexZCjLMtNyXRbjwRJyPzIjgBIyGaYXXW5eDg0l-Bd/s400/secunia1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5182768955845563810&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Secunia&lt;/span&gt; ofrece un &lt;a href=&quot;http://secunia.com/software_inspector/&quot;&gt;servicio&lt;/a&gt; gratuito que puede resultar muy útil para mantener correctamente parcheado y actualizado todo el software de nuestra máquina. Ofrece la posibilidad de realizar un análisis símplemente accediendo a la web y descargando un applet (cuya firma es verificada correctamente).&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Secunia&lt;/span&gt; analiza los programas instalados y detecta los que se encuentran desactualizados y por tanto pueden resultar inseguros. Nos facilita también información sobre la vulnerabilidad concreta a la que está expuesta la versión oboleta del software instalado.&lt;br /&gt;&lt;br /&gt;Nos permite además descargarnos (de nuevo, de forma gratuita) el software a nuestra máquina para instalarlo, y realizar así un análisis más exhaustivo. Al finalizar el análisis, nos presenta un informe en el que nos detalla las alertas de cada software instalado junto con la versión vulnerable de cada programa, además de un enlace directo a la actualización recomendada correspondiente.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://secunia.com/software_inspector/&quot;&gt;&lt;b&gt;Secunia Software Inspector&lt;/b&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/7388297720512660282/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/7388297720512660282' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7388297720512660282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7388297720512660282'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/03/secunia-software-inspector.html' title='Secunia Software Inspector'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjar45-fe0mPZOi4ZK4W4YMDAVFok0hUv2FlqzFZFzclpLj2SQDPbmrLxC7fQOt_XJk5TIgKMFvaPcLV65pSL5WLR1nzePWJyoBHISexZCjLMtNyXRbjwRJyPzIjgBIyGaYXXW5eDg0l-Bd/s72-c/secunia1.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-7373202960455414121</id><published>2008-03-25T08:33:00.000-07:00</published><updated>2008-12-09T18:23:50.783-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><category scheme="http://www.blogger.com/atom/ns#" term="Manuales"/><title type='text'>SPA (Single Packet Authorization) con fwknop</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_3qqfor7N_rRKchGXHlNnkCcm0um0oWESqNq-VUBuLg7OCSe6dgSjDc4Ia3FOk9MbPRySh8fz58-krM70iF2K8lUtvG1kA9g_uJpFEOycHJiwsGF3E0hSh-h7vVc4wl9AkTFytGN2_YID/s1600-h/fwknop7e.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_3qqfor7N_rRKchGXHlNnkCcm0um0oWESqNq-VUBuLg7OCSe6dgSjDc4Ia3FOk9MbPRySh8fz58-krM70iF2K8lUtvG1kA9g_uJpFEOycHJiwsGF3E0hSh-h7vVc4wl9AkTFytGN2_YID/s400/fwknop7e.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5182318989301831058&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En este artículo se pretende hacer una introducción al concepto de &lt;span style=&quot;font-style: italic;&quot;&gt;‘port knocking’ &lt;/span&gt;(técnica que se puede usar como complemento para securizar servicios que se encuentren detrás de un firewall) y más concretamente a una de sus variantes, &lt;span style=&quot;font-style: italic;&quot;&gt;‘Single Packet Authorization’ (SPA)&lt;/span&gt;, mediante un ejemplo práctico guiado paso a paso utilizando&lt;span style=&quot;font-style: italic;&quot;&gt; fwknop&lt;/span&gt;, una implementación de SPA de código abierto, bajo sistemas linux.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Introducción a &lt;span style=&quot;font-weight: bold;&quot;&gt;Port Knocking&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;En informática, &lt;span style=&quot;font-weight: bold;&quot;&gt;port knocking&lt;/span&gt; es un método utilizado para abrir puertos en un firewall mediante un conjunto de intentos de conexión lanzados sobre puertos cerrados. Cuando en el servidor se recibe la secuencia correcta de conexión, las reglas del firewall son modificadas dinámicamente para permitir al host que envió los paquetes conectar a un puerto/s específico/s.&lt;br /&gt;&lt;br /&gt;El principal objetivo de &lt;span style=&quot;font-weight: bold;&quot;&gt;port knocking&lt;/span&gt; es prevenir escaneos de puertos a un determinado equipo para evitar potenciales ataques a servicios vulnerables. Esto se consigue ya que, a menos que se envíe la secuencia de knocks correcta, los puertos aparecerán como cerrados para cualquiera que lance un escaneo sobre el equipo. Un &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;port&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;knocking&lt;/span&gt;&#39; es similar a un handshake y consiste en una serie de paquetes TCP, UDP o incluso ICMP dirigidos cada uno a un puerto concreto en la máquina destino. La complejidad del &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;knock&lt;/span&gt;&#39; puede ir desde una simple lista de paquetes &lt;span style=&quot;font-style: italic;&quot;&gt;protocolo-puerto&lt;/span&gt; hasta un complejo hash encriptado controlado según IP origen y/u otros factores.&lt;br /&gt;&lt;br /&gt;Ejemplo: Un demonio sshd configurado por defecto escuchará en el puerto 22. Configuramos el firewall para que cierre el puerto 22 y elegimos como secuencia de &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;knocks&lt;/span&gt;&#39; la  sucesión &lt;span style=&quot;font-style: italic;&quot;&gt;TCP-100, UDP-200, TCP-300&lt;/span&gt; que habilitará el puerto 22 en la máquina. El puerto permanecerá cerrado hasta que un usuario intente inicializar conexiones TCP y UDP hacia los puertos 100, 200 y 300 en ese mismo orden. En este caso, el puerto se abrirá durante un intervalo de tiempo determinado. En caso contrario, el usuario recibirá un paquete &lt;span style=&quot;font-weight: bold;&quot;&gt;RST/ACK&lt;/span&gt; cuando inicialice conexiones TCP hacia el puerto22.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Pero &lt;span style=&quot;font-weight: bold;&quot;&gt;Port Knocking&lt;/span&gt; tiene algunas debilidades:&lt;/u&gt;&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/03/spa-single-packet-authorization.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;- Un atacante que no conozca la secuencia de &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;knocks&lt;/span&gt;&#39;, mediante fuerza bruta, podría llegar a obtener la secuencia requerida para habilitar un determinado servicio.&lt;br /&gt;&lt;br /&gt;- Monitorizando las comunicaciones, un atacante podría intentar detectar una secuencia de puertos para reproducirla posteriormente contra el servidor para conseguir acceso al servicio protegido.&lt;br /&gt;&lt;br /&gt;- Las secuencias de &lt;span style=&quot;font-style: italic;&quot;&gt;port knock &lt;/span&gt;pueden ser encriptadas y existen diversas implementaciones que se pueden encontrar en &lt;a href=&quot;http://www.portknocking.org/&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;www.portknocking.org&lt;/span&gt;&lt;/a&gt;. Pero cada paquete enviado puede contener sólo dos bytes de información debido al tamaño de 16 bits que tienen los campos de los puertos en las cabeceras TCP y UDP. Por tanto, para enviar una secuencia cifrada, utilizando por ejemplo un algoritmo simétrico de 128 bits, una secuencia de port knock estaría formada por &lt;span style=&quot;font-style: italic;&quot;&gt;128/16=8&lt;/span&gt; paquetes. Aquí nos encontramos con un posible problema de entrega desordenada de paquetes ya que en este caso no hay una conexión cliente-servidor (tipo TCP). Se puede añadir un retardo de medio segundo para evitar este problema, y en este caso el tiempo de entrega de la secuencia llegaría a 4 segundos. Pero si se decide utilizar algoritmos de cifrado asimétricos, la cantidad de bits a enviar es más grande y el tiempo de entrega de estos paquete se vuelve excesivo e inviable. Esto puede resultar una gran desventaja del port knocking.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Conclusión:&lt;/u&gt; &lt;span style=&quot;font-weight: bold;&quot;&gt;Port knocking&lt;/span&gt; provee algunas ventajas que aumentan las seguridad, pero también tiene algunas limitaciones serias que hay que tener en cuenta. &lt;span style=&quot;font-weight: bold;&quot;&gt;SPA (Single Packet Authorization)&lt;/span&gt; es un protocolo relativamente nuevo que mantiene los beneficios del port knocking pero soluciona algunas de las limitaciones del mismo.&lt;br /&gt;Las primeras noticias que se tuvo de la implementación de SPA surgieron en Mayo de 2005 como una parte de un software llamado &lt;span style=&quot;font-weight: bold;&quot;&gt;fwknop &lt;/span&gt;&lt;a href=&quot;http://www.cipherdyne.org/fwknop&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;www.cipherdyne.org/fwknop&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Descripción de &lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;SPA&lt;/span&gt;&lt;span style=&quot;font-size:130%;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;(Single Packet Authorization)&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;SPA&lt;/span&gt; es una variante del port knocking donde sólo un &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;knock&lt;/span&gt;&#39; es necesario para validar la petición. Éste &#39;&lt;span style=&quot;font-style: italic;&quot;&gt;knock&lt;/span&gt;&#39; consiste en un paquete encriptado.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;SPA&lt;/span&gt; ofrece una arquitectura similar a la del port cknocking:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Ambos sienen componentes cliente y servidor,&lt;/li&gt;&lt;li&gt;El servidor matiene el control de filtrado por defecto a DROP&lt;/li&gt;&lt;li&gt;El servidor monitoriza paquetes de forma pasiva.&lt;/li&gt;&lt;/ol&gt;Pero aquí es donde acaban las similitudes.&lt;br /&gt;&lt;br /&gt;La principal ventaja que ofrece &lt;span style=&quot;font-weight: bold;&quot;&gt;SPA&lt;/span&gt; es que la cantidad de información que puede ser incluída en el paquete sólo se encuentra limitada por el MTU. Esta ventaja permite que mediante SPA se pueda incluir en el paquete no sólo información de acceso, sino también por ejemplo, comandos que sean ejecutados en el sevidor &lt;span style=&quot;font-weight: bold;&quot;&gt;SPA&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;En definitiva, &lt;span style=&quot;font-weight: bold;&quot;&gt;SPA&lt;/span&gt; provee un nivel de seguridad similar al port knocking en términos de proteger un servicio con un filtrado de paquetes en un sistema con una política por defecto de INPUT a DROP. En este entorno, cualquiera que realice un escaneo a la máquina no sería capaz de detectar si un servicio está realmente activo en ella, lo cual dificulta la explotación de muchas vulnerabilidades. SPA ofrece una solución elegante las limitaciones del port knocking.&lt;br /&gt;&lt;br /&gt;Vamos a ver mediante un ejemplo práctico, cómo utilizar &lt;span style=&quot;font-weight: bold;&quot;&gt;fwknop&lt;/span&gt; en modo &lt;span style=&quot;font-style: italic;&quot;&gt;Single Packet Authorization&lt;/span&gt; para proteger y ofrecer acceso al demonio OpenSSH.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - fwknop&lt;/span&gt; define el siguiente formato de paquete en la capa de aplicación:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    16 bytes de datos aleatorios&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nombre del usuario cliente&lt;br /&gt;&lt;/li&gt;&lt;li&gt;    Timestamp del cliente&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Version     fwknop&lt;br /&gt;&lt;/li&gt;&lt;li&gt;    Modo (acceso or comando)&lt;/li&gt;&lt;li&gt;    Acceso (o una cadena de comando)&lt;/li&gt;&lt;li&gt;Resumen MD5 /SHA&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Una vez que el cliente &lt;span style=&quot;font-weight: bold;&quot;&gt;fwknop&lt;/span&gt; contruye el paquete con los campos arriba indicados, el paquete entero es encriptado usando un algoritmo de clave simétrica (128 bits) o asimétrica (utilizando GnuPG con una longitud de clave de 1024 - 4096 ). Por defecto, el cliente enviará un paquete UDP al puerto &lt;span style=&quot;font-weight: bold;&quot;&gt;62201&lt;/span&gt;, aunque esto se puede modificar fácilmente (mediante el uso del parámetro --Server-port)&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;A continuación se muestra un ejemplo de instalación, configuración y prueba de &lt;/span&gt;&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;fwknop&lt;/span&gt;:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Tendremos que tener instalado GnuPG tanto en el servidor como en el cliente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Instalamos el servidor OpenSSH&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install openssh-server&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Instalamos los requisitos para fwknop:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install build-essential libpcap-dev mailx&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Instalamos fwknop en el servidor:&lt;/span&gt;&lt;br /&gt;En este caso, hemos instalado la versión &lt;span style=&quot;font-style: italic;&quot;&gt;1.9.2&lt;/span&gt; del &lt;span style=&quot;font-style: italic;&quot;&gt;12 de Marzo de 2008&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;# wget http://www.cipherdyne.org/fwknop/download/fwknop-1.9.2.tar.gz&lt;br /&gt;# tar zxvf fwknop-1.9.0.tar.gz&lt;br /&gt;# cd fwknop-1.9.0&lt;br /&gt;# sudo ./install.pl&lt;br /&gt;&lt;br /&gt;- Nos hace una serie de preguntas a las cuales se ha contestado lo siguiente:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;blockquote&gt;In which mode will fwknop be executed on the local system?&lt;br /&gt;(client/[server]): server&lt;br /&gt;&lt;br /&gt;Which of the following data acquistion methods would you like to use?&lt;br /&gt;([pcap], file_pcap, ulogd, syslogd, syslog-ng): pcap&lt;br /&gt;&lt;br /&gt;Which network interface would you like fwknop to sniff packets from?  eth0&lt;br /&gt;&lt;br /&gt;Enable fwknop at boot time ([y]/n)?  y&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;- Podemos añadir fwknop al arranque del sistema:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# update-rc.d fwknop defaults 20&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Instalamos fwknop en el cliente:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install build-essential libpcap-dev mailx&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# wget http://www.cipherdyne.org/fwknop/download/fwknop-1.9.2.tar.gz (12 Mar 2008)&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;# tar zxvf fwknop-1.9.0.tar.gz&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;# cd fwknop-1.9.0&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;# sudo ./install.pl&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;En este caso, contestamos con las mismas respuestas excepto que indicamos que se instale como &lt;span style=&quot;font-weight: bold;&quot;&gt;cliente&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Generamos par de claves en el cliente:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# gpg --gen-key&lt;br /&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;- Nosotros elegimos las siguientes opciones:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Tipo -&gt; DSA&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Tamaño -&gt; 2048&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Periodo -&gt; La clave no caduca nunca&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Nombre y apellidos: client fwknop&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Correo: cf@cf.com&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;- Obtenemos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;pub   1024D/A174FC70 2008-03-24&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;uid                  Server fwknop&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;sub   2048g/3220AE91 2008-03-24&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;- Exportamos la clave a un fichero&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# gpg -a --export A174FC70 &gt; fwknop-client.asc&lt;br /&gt;&lt;/pre&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Generamos par de claves en el servidor:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# gpg --gen-key&lt;br /&gt;&lt;/pre&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Tipo -&gt; DSA&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Tamaño -&gt; 2048&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Periodo -&gt; La clave no caduca nunca&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Nombre y apellidos: Server fwknop&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;        Correo: sf@sf.com&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;- Obtenemos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;pub   1024D/D417D41A 2008-03-09&lt;br /&gt;uid                  Server fwknop &lt;sf@sf.com&gt;&lt;br /&gt;sub   2048g/F5F02C2B 2008-03-09&lt;br /&gt;&lt;/sf@sf.com&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Exportamos la clave a un fichero:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# gpg -a --export D417D41A &gt; fwknop-server.asc&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Copiamos los ficheros respectivos en las máquinas e importamos las claves&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;- Importamos la clave del servidor en el cliente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;# gpg --import fwknop-server.asc&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;# gpg --sign-key sf@sf.com&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt; - Importamos la clave del cliente en el servidor:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;# gpg --import fwknop-client.asc&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;# gpg --sign-key cf@cf.com&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Finalizando la instalación:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;- Editamos &lt;span style=&quot;font-style: italic;&quot;&gt;/etc/fwknop/access.conf&lt;/span&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SOURCE: ANY;&lt;br /&gt;OPEN_PORTS: tcp/22;&lt;br /&gt;DATA_COLLECT_MODE: PCAP;&lt;br /&gt;GPG_HOME_DIR: /root/.gnupg;&lt;br /&gt;GPG_DECRYPT_ID: D417D41A;&lt;br /&gt;GPG_DECRYPT_PW: password para la llave D417D41A;&lt;br /&gt;GPG_REMOTE_ID: A174FC70;&lt;br /&gt;FW_ACCESS_TIMEOUT: 30;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;- Iniciamos fwknop:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;pre&gt;# /etc/init.d/fwknop start&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; - Prueba de funcionamiento:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;- Ejemplo de sintaxis:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;fwknop -a &#39;puertos&#39; --gpg-recip SERVER_KEY --gpg-sign CLIENT_KEY -s -D SERVER_IP&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Con -s indicamos que el servidor SPA utilice la ip de origen de la cual recibió el paquete para crear la regla.En lugar de -s se puede utilizar -w que realizará una petición a www.whatismyip.com para averiguar la ip origen&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;- Probamos con:&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# fwknop -a &#39;tcp/22&#39; --gpg-recip D417D41A --gpg-sign A174FC70 -s -D 192.168.6.137&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-psCAdBZ3O9A2R0V-NYPOIej3qyMtdZw_A0S3A1VOVx9xauXF-HbW2SLzGU5GlpqIg3-YELXZ8Lp3o9w3Dy692BXxdya-4wHRcg-yanUbyZrZK20v45ORvwEDeYWiM4xbKjzx2oCxxa5x/s1600-h/fwknop3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-psCAdBZ3O9A2R0V-NYPOIej3qyMtdZw_A0S3A1VOVx9xauXF-HbW2SLzGU5GlpqIg3-YELXZ8Lp3o9w3Dy692BXxdya-4wHRcg-yanUbyZrZK20v45ORvwEDeYWiM4xbKjzx2oCxxa5x/s400/fwknop3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5181982551628633410&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Si todo ha ido bien, el servidor añade la entrada correspondiente a iptables. Ésta se mantendrá durante 60 segundos, después de los cuales se eliminará automáticamente.&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;En este caso, nos crea una regla que permite a la IP 192.168.6.137 conexiones tcp al puerto 22&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;- Podemos comprobar que todo ha ido bien consultando los logs en el servidor SPA:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;# tail -f /var/log/syslog | grep fwknop&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhXjKJISjVFMRh7KuS2Q8qVsp1_d9PKBGU6Y0JCPNzVO3Yxr1TPw8G8GE4CYpR9QLdVi3mUBom2vuqFCs35lKPYc_FiB8Mi914hTcWZex6a-sEnkW33QBjTrSf8_3X18cRo2IkRfCxSNo/s1600-h/fwknop4.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQhXjKJISjVFMRh7KuS2Q8qVsp1_d9PKBGU6Y0JCPNzVO3Yxr1TPw8G8GE4CYpR9QLdVi3mUBom2vuqFCs35lKPYc_FiB8Mi914hTcWZex6a-sEnkW33QBjTrSf8_3X18cRo2IkRfCxSNo/s400/fwknop4.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5181983337607648594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Y cuando se acabe el tiempo disponible para realizar la conexión:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6SL_9e-IIY0kvcOhRSPfX5GlOqvrthvKEaqsR-2hcwc_QPZ6OkemEjp5rvjTnM0qeqbsbIHlq9XRJC8NngZVUvfCxzA6Cr9haXsuMDsWuseSlUz_aQfyN__3zIv-M1JADRV6pCU8yhbeS/s1600-h/fwknop6.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6SL_9e-IIY0kvcOhRSPfX5GlOqvrthvKEaqsR-2hcwc_QPZ6OkemEjp5rvjTnM0qeqbsbIHlq9XRJC8NngZVUvfCxzA6Cr9haXsuMDsWuseSlUz_aQfyN__3zIv-M1JADRV6pCU8yhbeS/s400/fwknop6.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5181984218075944290&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Podemos consultar las reglas iptables en tiempo real con:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;pre&gt;# watch -n1 iptables -L -n&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzG5WgCpILx7uM5EpjNbM9FgraLH9Av8W_EEkHex460jkdcTGVNlsVHcov8J1mc6K8geMaqEb3TS6HPFtn5nF6Jw8_KCpEVunp7JfFMWQDKjLHTVBFzRwxr2EKkn5NGwPuBZIY-v8T5lyN/s1600-h/fwknop1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzG5WgCpILx7uM5EpjNbM9FgraLH9Av8W_EEkHex460jkdcTGVNlsVHcov8J1mc6K8geMaqEb3TS6HPFtn5nF6Jw8_KCpEVunp7JfFMWQDKjLHTVBFzRwxr2EKkn5NGwPuBZIY-v8T5lyN/s400/fwknop1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5181978643208394018&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtGG0x6abbhhxqeEsWK3R-WY6QbXbtzKvd7uM6FbuiH4Km4Y6W7Uj4n1BaO5prDXOeyTXiURjFRHxJWwnZMGJjTZvKo3GvI1EQliqKpWmgfkT84lUdJx1GfnbTJf1N9kI_XgmP1j9HbdZw/s1600-h/fwknop2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtGG0x6abbhhxqeEsWK3R-WY6QbXbtzKvd7uM6FbuiH4Km4Y6W7Uj4n1BaO5prDXOeyTXiURjFRHxJWwnZMGJjTZvKo3GvI1EQliqKpWmgfkT84lUdJx1GfnbTJf1N9kI_XgmP1j9HbdZw/s400/fwknop2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5181978759172511026&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;br /&gt;&lt;br /&gt;NOTA:&lt;/u&gt;&lt;br /&gt;fwknop crea una nueva una nueva cadena en iptables llamada &lt;span style=&quot;font-style: italic;&quot;&gt;FWKNOP_INPUT&lt;/span&gt; y la cadena &lt;span style=&quot;font-style: italic;&quot;&gt;INPUT&lt;/span&gt; hace referencia a ésta.&lt;br /&gt;En el servidor probamos poniendo la política &lt;span style=&quot;font-style: italic;&quot;&gt;INPUT&lt;/span&gt; del iptables por defecto a &lt;span style=&quot;font-style: italic;&quot;&gt;DROP&lt;/span&gt; pero no la cadena &lt;span style=&quot;font-style: italic;&quot;&gt;OUTPUT&lt;/span&gt;. Hay que tener en cuenta que fwknop, por defecto, sólo añade reglas a &lt;span style=&quot;font-style: italic;&quot;&gt;FWKNOP_INPUT&lt;/span&gt;. También se puede habilitar en fwknop.conf para que se cree utilice la cadena&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;FWKNOP_OUTPUT&lt;/span&gt; y así se creará reglas para permitir tráfico &lt;span style=&quot;font-style: italic;&quot;&gt;OUTPUT&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;- Para que se mantenga la conexión SSH que hayamos establecido durante el tiempo permitido, tendremos que tener en iptables una regla que permita las conexiones ya establecidas. Si no, la conexión quedará cortada cuando fwknop elimine la regla correspondiente. En nuestro caso, hemos añadido:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# iptables -A INPUT -p tcp -i eth0 -m state --state ESTABLISHED, RELATED -j ACCEPT&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;Referencias:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.hispasec.com/unaaldia/3382&quot;&gt;http://www.hispasec.com/unaaldia/3382&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.cipherdyne.org/fwknop/&quot;&gt;http://www.cipherdyne.org/fwknop/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://mscoder.org/en/haking/articles_html.html&quot;&gt;http://mscoder.org/en/haking/articles_html.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://help.ubuntu.com/community/SinglePacketAuthorization&quot;&gt;https://help.ubuntu.com/community/SinglePacketAuthorization&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/7373202960455414121/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/7373202960455414121' title='1 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7373202960455414121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/7373202960455414121'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/03/spa-single-packet-authorization.html' title='SPA (Single Packet Authorization) con fwknop'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_3qqfor7N_rRKchGXHlNnkCcm0um0oWESqNq-VUBuLg7OCSe6dgSjDc4Ia3FOk9MbPRySh8fz58-krM70iF2K8lUtvG1kA9g_uJpFEOycHJiwsGF3E0hSh-h7vVc4wl9AkTFytGN2_YID/s72-c/fwknop7e.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-8620935993125121393</id><published>2008-03-17T02:51:00.001-07:00</published><updated>2008-12-09T18:23:50.993-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="FreeRadius"/><category scheme="http://www.blogger.com/atom/ns#" term="Manuales"/><category scheme="http://www.blogger.com/atom/ns#" term="MySQL"/><title type='text'>FreeRADIUS + MySQL</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuGwgwp_qnRUhGVtxQDfRxbo0UCqBKSwKCiQXZvwzsBo1A3yyVw_on-pmBXLQGFCO9rpWj1fe7XeR3yZ5ToBmIZCr_GPKl_u2x-ObdXUncRffYccA30DnjurO_1iBIkyQRCVDy-dbkltkG/s1600-h/Sin+nombre.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuGwgwp_qnRUhGVtxQDfRxbo0UCqBKSwKCiQXZvwzsBo1A3yyVw_on-pmBXLQGFCO9rpWj1fe7XeR3yZ5ToBmIZCr_GPKl_u2x-ObdXUncRffYccA30DnjurO_1iBIkyQRCVDy-dbkltkG/s400/Sin+nombre.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5178722654095329794&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;FreeRADIUS + MySQL&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Gestión de usuarios &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En el siguiente manual, vamos a ver cómo utilizar el gestor de bases de datos MySQL para administrar usuarios y grupos de usuarios de un servidor de autenticación RADIUS.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Instalamos mysql&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install mysql mysql-sever-4.1&lt;br /&gt;# apt-get install freeradius-mysql&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;u&gt;Creamos la base de datos para utilizar con radius:&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; create database radius;&lt;br /&gt;mysql&gt; grant all privileges on radius.* to radius@localhost;&lt;br /&gt;mysql&gt; set password for radius@localhost = old_password(&#39;radius&#39;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejecutamos el script para generar tablas y demás:&lt;br /&gt;primero descomprimimos en &lt;span style=&quot;font-style: italic;&quot;&gt;/usr/share/doc/freeradius/examples/mysql.sql&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# gzip -d mysql.sql.gz&lt;br /&gt;# mysql -u root -p radius &lt; /usr/share/doc/freeradius/examples/mysql.sql    &lt;/code&gt;&lt;br /&gt;Creamos un usuario para ver si funciona:&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/03/freeradius-mysql_17.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Las tablas que usa &lt;span style=&quot;font-weight: bold;&quot;&gt;RADIUS &lt;/span&gt;para la gestión de usuarios son las siguientes:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;usergroup&lt;/span&gt;: Aquí se define a qué grupo pertenece cada usuario.&lt;br /&gt;Campos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;       id. Identificador de registro.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;       UserName. Nombre de usuario.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;       GroupName. Grupo al que pertenece el usuarios&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;radcheck&lt;/span&gt;: Aquí se definen las contraseñas de cada usuario.&lt;br /&gt;Campos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;        id. Identificador de registro.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;        UserName. Nombre de usuario.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;        Attribute. Tipo de contraseña. En nuestro caso, ‘User-Password’.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;        Op. Es el operador que se usará para la comprobación. Para nosotros ‘==’.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;        Value. La contraseña.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;radreply&lt;/span&gt;: En esta tabla se definen los atributos sobre la conexión y sesión de los usuarios; por ejemplo, IP asignada y tiempo de espera máximo. En nuestro caso, permitimos que se asignen los de DEFAULT contenidos en el archivo ‘users’; por lo tanto, no insertamos nada en la tabla.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;radgroupreply&lt;/span&gt;: Similar a radcheck pero permite establecer atributos a un grupo de usuarios completo.&lt;br /&gt;Campos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;         id. Identificador de registro.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;         GroupName. Nombre de grupo.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;fullpost&quot;&gt;         Attribute. Nombre del atributo que se quiere agregar.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Nosotros sólo hicimos uso de uno, el tipo de autenticación: ‘&lt;span style=&quot;font-style: italic;&quot;&gt;Auth-Type&lt;/span&gt;’.&lt;br /&gt;Op. Es el operador que se usará para la comprobación. Para nosotros ‘:=’.&lt;br /&gt;Value. El valor del atributo. Nuestro Auth-Type es ‘EAP’.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Creamos usuario usuario_admin en el grupo admin:&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; insert into usergroup values (&#39;usuario_admin&#39;,&#39;admin&#39;,&#39;&#39;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Añadimos la contraseña para el usuario admin:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; insert into radcheck values (&#39;&#39;,&#39;usuario_admin&#39;,&#39;Password&#39;,&#39;==&#39;,&#39;[password]&#39;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Añadimos el atributo local al grupo admin: (no es necesario)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; insert into radgroupcheck values (&#39;&#39;,&#39;admin&#39;,&#39;Auth-Type&#39;,&#39;:=&#39;,&#39;local&#39;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Esteblecemos atributos del grupo admin&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; insert into radgroupreply values (&#39;&#39;, &#39;admin&#39;, &#39;Framed-Protocol&#39;, &#39;:=&#39;, &#39;PPP&#39;);&lt;br /&gt;mysql&gt; insert into radgroupreply values (&#39;&#39;, &#39;admin&#39;, &#39;Service-Type&#39;, &#39;:=&#39;, &#39;Framed-User&#39;);&lt;br /&gt;mysql&gt; insert into radgroupreply values (&#39;&#39;, &#39;admin&#39;, &#39;Framed-Compression&#39;, &#39;:=&#39;, &#39;Van-Jacobsen-TCP-IP&#39;)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;u&gt;Configuramos RADIUS para que gestione los ususarios con MySQL:&lt;/u&gt;&lt;br /&gt;Editamos &lt;span style=&quot;font-style: italic;&quot;&gt;/usr/local/etc/raddb/clients.conf&lt;/span&gt; y configuramos las IPs o subrredes desde las que se aceptarán peticiones. En este caso, además de localhost, se aceptarán peticiones de un AP con IP 192.168.6.1:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;client 127.0.0.1{&lt;br /&gt;ipaddr = 127.0.0.1&lt;br /&gt;secret = secretradius&lt;br /&gt;shorname = AP&lt;br /&gt;nastype = other&lt;br /&gt;}&lt;br /&gt;client 192.168.6.1{&lt;br /&gt;ipaddr = 192.168.6.1&lt;br /&gt;secret = secretradius&lt;br /&gt;netmask = 32&lt;br /&gt;shortname = windows&lt;br /&gt;nastype = other&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;u&gt;Ahora editamos &lt;span style=&quot;font-style: italic;&quot;&gt;/usr/local/etc/raddb/clients.conf&lt;/span&gt; para indicar a &lt;span style=&quot;font-weight: bold;&quot;&gt;RADIUS&lt;/span&gt; IP del servidor &lt;span style=&quot;font-weight: bold;&quot;&gt;MySQL&lt;/span&gt;, usuario y password:&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# Connect info&lt;br /&gt;server = &quot;localhost&quot;&lt;br /&gt;login = &quot;radius&quot;&lt;br /&gt;password = &quot;password_basededatos&quot;&lt;br /&gt;&lt;br /&gt;# Database table configuration&lt;br /&gt;radius_db = &quot;radius&quot;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;A continuación editamos &lt;span style=&quot;font-style: italic;&quot;&gt;/usr/local/etc/raddb/sites-avaliable/default&lt;/span&gt; y terminamos de configurar los parámetros necesarios:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;authorize {&lt;br /&gt;preprocess&lt;br /&gt;chap&lt;br /&gt;mschap&lt;br /&gt;suffix&lt;br /&gt;eap&lt;br /&gt;sql&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;authenticate {&lt;br /&gt;Auth-Type PAP {&lt;br /&gt;                pap&lt;br /&gt;}&lt;br /&gt;Auth-Type CHAP {&lt;br /&gt;                chap&lt;br /&gt;}&lt;br /&gt;Auth-Type MS-CHAP {&lt;br /&gt;                mschap&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;preacct {&lt;br /&gt;preprocess&lt;br /&gt;acct_unique&lt;br /&gt;suffix&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;accounting {&lt;br /&gt;detail&lt;br /&gt;radutmp&lt;br /&gt;sql&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;session {&lt;br /&gt;radutmp&lt;br /&gt;sql&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;post-auth {&lt;br /&gt;sql&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pre-proxy {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;post-proxy {&lt;br /&gt;eap&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Si el servidor mysql está en otro host, en &lt;span style=&quot;font-style: italic;&quot;&gt;/etc/mysql/my.cnf&lt;/span&gt; parcheamos la linea bind-address=127.0.0.1&lt;br /&gt;&lt;br /&gt;(Al arrancar el servicio &lt;span style=&quot;font-style: italic;&quot;&gt;radiusd -X&lt;/span&gt; me daba error con el puerto 1812 y he tenido que detener los servicios smb)&lt;br /&gt;&lt;br /&gt;A mí me ha dado error en una tabla y he tenido que modificar las columnas de la tabla &lt;span style=&quot;font-style: italic;&quot;&gt;radpostauth&lt;/span&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; alter table radpostauth change user username varchar(64);&lt;br /&gt;mysql&gt; alter table radpostauth change date authdate timestamp;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;En el &lt;span style=&quot;font-style: italic;&quot;&gt;sql.conf&lt;/span&gt; he desparcheado el parámetro &lt;span style=&quot;font-style: italic;&quot;&gt;read_groups&lt;/span&gt; y lo he puesto a &quot;no&quot; porque me daba error con una tabla que no existía que hacía referencia a los grupos&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Para exportar/importar bade de datos&lt;/u&gt; (por si hicera falta):&lt;br /&gt;Para exportar la base de datos &lt;span style=&quot;font-style: italic;&quot;&gt;radius&lt;/span&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysqldump -u [user] -p --opt [nombre_db] &gt; fichero.sql&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Para importarla:&lt;br /&gt;Primero la creamos&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysql -u [user] -p&lt;br /&gt;mysql&gt; create database radius;&lt;br /&gt;mysql&gt; \q&lt;br /&gt;# mysql -u [user] -p [nombre_db] &lt;&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Podemos instalar &lt;span style=&quot;font-weight: bold;&quot;&gt;phpmyadmin&lt;/span&gt; para gestionar &lt;span style=&quot;font-weight: bold;&quot;&gt;MySQL&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install phpmyadmin&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Yo he tenido un problema con la configuración y he tenido que hacer lo siguiente:&lt;br /&gt;He cambiado el fichero &lt;span style=&quot;font-style: italic;&quot;&gt;/var/www/phpmyadmin/config.inc.php&lt;/span&gt; porque me daba un error de &lt;span style=&quot;font-style: italic;&quot;&gt;blowfish&lt;/span&gt;, lo que he hecho es cambiarlo por &lt;span style=&quot;font-style: italic;&quot;&gt;config.sample.inc.php&lt;/span&gt; y en este último he borrado el valor del parámetro &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;controluser&lt;/span&gt;&quot; y el de &quot;&lt;span style=&quot;font-style: italic;&quot;&gt;controlpass&lt;/span&gt;&quot; y los he dejado vacíos.&lt;br /&gt;Así ya me ha funcionado.&lt;br /&gt;&lt;br /&gt;Podremos instalar &lt;span style=&quot;font-weight: bold;&quot;&gt;phpmyadmin &lt;/span&gt;para gestionar via web MySQL y poder administrar los usuarios más fácilmente:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get install phpmyadmin&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Nos muestra un asistente durante la instalación para configurar phpmyadmin automáticamente. Primero nos pregunta qué servidor web esatmos utilizando, en nuestro caso indicamos apache2 (aunque es altamente recomendable utilizar apache-ssl).&lt;br /&gt;Indicamos el usuario para el sitema de configuración (&quot;admin&quot; por defecto) e indicamos la contraseña.&lt;br /&gt;Reiniciamos apache y accedemos desde un navegador a https://[ip_servidor]/phpmyadmin&lt;br /&gt;Cuando accedemos, podremos encontrarnos con un error que nos dice que necesitamos configurar una clave secreta blowfish (algoritmo de cifrado simétrico que utiliza una passprhase para encriptar el password)&lt;br /&gt;En realida lo que tenemos que hacer es modificar los permisos de los ficheros:&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;/etc/phpmyadmin/blowfish_secret.inc.php&lt;br /&gt;/etc/phpmyadmin/htpasswd.setup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es recomendable cambiar la passphrase que viene por defecto ya que por defecto les asigna el grupo&lt;span style=&quot;font-style: italic;&quot;&gt; www-data&lt;/span&gt; y nosotros usamos el usuario y grupo &lt;span style=&quot;font-style: italic;&quot;&gt;httpd&lt;/span&gt;:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# chown root:httpd blowfish_secret.inc.php&lt;br /&gt;# chown root:httpd htpasswd.setup&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Ya podemos acceder con un usuario que tenga privilegios en la base de datos. Por ej. root.&lt;br /&gt;&lt;br /&gt;Ahora desde &lt;span style=&quot;font-weight: bold;&quot;&gt;phpmyadmin&lt;/span&gt; podremos añadir usuarios.&lt;br /&gt;Sólo hay que añadir un registro en usergroup y otro en radcheck por cada usuario (ver imagen).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/8620935993125121393/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/8620935993125121393' title='4 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/8620935993125121393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/8620935993125121393'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/03/freeradius-mysql_17.html' title='FreeRADIUS + MySQL'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuGwgwp_qnRUhGVtxQDfRxbo0UCqBKSwKCiQXZvwzsBo1A3yyVw_on-pmBXLQGFCO9rpWj1fe7XeR3yZ5ToBmIZCr_GPKl_u2x-ObdXUncRffYccA30DnjurO_1iBIkyQRCVDy-dbkltkG/s72-c/Sin+nombre.jpg" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-338297721855145584.post-1575550978351504188</id><published>2008-03-14T06:39:00.000-07:00</published><updated>2008-12-09T18:23:51.234-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Herramientas"/><category scheme="http://www.blogger.com/atom/ns#" term="Manuales"/><title type='text'>Instalación y configuración de SNORT en sistemas basados en Debian</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit4y5mpIN-OUnHU4L_XPSSfQTDhwewlTrH61S_oK8Q31_xmWl6O-yPQltR1mszbcgt-de1Rspoc8kaDOIDJr90g1WMc2YevOCXk6fTSh9cD13bGdW1Dnl22mVx3uunJjozgyjSXjqA_uek/s1600-h/snort_s1.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit4y5mpIN-OUnHU4L_XPSSfQTDhwewlTrH61S_oK8Q31_xmWl6O-yPQltR1mszbcgt-de1Rspoc8kaDOIDJr90g1WMc2YevOCXk6fTSh9cD13bGdW1Dnl22mVx3uunJjozgyjSXjqA_uek/s400/snort_s1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5177595422748625314&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;SNORT&lt;/span&gt; es un sistema open source de detección de intrusos (IDS) y un sistema de prevención de intrusos (IPS) capaz de realizar análisis en tiempo real de tráfico en redes IP. Actualmente se encuentra desarrollo por parte de Sourcefire.&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;SNORT&lt;/span&gt; realiza análisis de portocolos y es usado habitualmente para boquear o detectar gran variedad de ataques y pruebas como buffer overflows, escaneos de puertos, ataques a aplicaciones web, intentos de OS fingerpirnting, etc.&lt;br /&gt;&lt;br /&gt;Este manual, es una adaptación del documento &lt;span style=&quot;font-style: italic;&quot;&gt;&quot;11 step guide to build a Debian based Intrusion&lt;br /&gt;Detection Sensor (IDS) with Snort 2.4.5 or Snort 2.6&quot; &lt;/span&gt; que se puede encontrar en &lt;a href=&quot;http://www.snort.org/&quot; target=&quot;_blank&quot;&gt;www.snort.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solución basada en &lt;span style=&quot;font-weight: bold;&quot;&gt;Snort+MySQL+PHP+BASE+Apache-SSL&lt;/span&gt;.&lt;br /&gt;Se ha utilizado una versión estable Debian 2.6.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Instalamos todos los paquetes necesarios para esta guía:&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# apt-get update&lt;br /&gt;# apt-get install ssh&lt;br /&gt;# apt-get install apache-ssl apache-common libapache-mod-php4 \&lt;br /&gt;mysql-server mysql-common mysql-client php4-mysql \&lt;br /&gt;libnet1 libnet1-dev libpcre3 libpcre3-dev autoconf automake1.9 \&lt;br /&gt;libpcap0.8 libpcap0.8-dev libmysqlclient15-dev \&lt;br /&gt;php4-gd php4-pear libphp-adodb vim gcc make \&lt;br /&gt;php4-cli libtool libssl-dev gcc-4.1 g++&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Al instlar el apache-ssl nos pedirá los parámetros para configurar el certificado que usará.&lt;br /&gt;&lt;br /&gt;A continuación se nos sugiere instalar el firewall lokkit por su sencillez. Obviamos este paso.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Descargamos e instalamos SNORT:&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;summarypost&quot;&gt;&lt;a href=&quot;http://rafasec.blogspot.com/2008/03/instalacin-y-configuracin-de-snort-en.html&quot;&gt;Seguir Leyendo... &lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Instalamos en este caso la versión &lt;span style=&quot;font-weight: bold;&quot;&gt;2.8.0.1&lt;/span&gt; (28 de Noviembre de 2007)&lt;br /&gt;La última versión estable a día 12 de Marzo es &lt;span style=&quot;font-weight: bold;&quot;&gt;2.8.0.2 &lt;/span&gt;(19 de Febrero de 2008) y la podemos descargar desde: http://www.snort.org/dl/current/snort-2.8.0.2.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd /usr/local/src&lt;br /&gt;# wget http://snort.org/dl/old/snort-2.8.0.1.tar.gz&lt;br /&gt;# tar xvzf snort-2.8.0.1.tar.gz&lt;br /&gt;# cd snort-2.8.0.1&lt;br /&gt;# ./configure --with-mysql --enable-dynamicplugin&lt;br /&gt;# make&lt;br /&gt;# make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Instalamos y configuramos las reglas:&lt;/u&gt;&lt;br /&gt;Las reglas &lt;span style=&quot;font-weight: bold;&quot;&gt;VRT &lt;/span&gt;(Sourcefire Vulnerability Research Team), son las reglas que desarrolla el equipo de soporte de SNORT. Hay tres tipos de reglas VRT que podremos encontrar en el portal www.snort.org.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Reglas para suscriptores. Es decir, de pago. Permanentemente actualizado.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Reglas para usuarios registrados (basta con crearse una cuenta). &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Reglas disponibles para usuarios no registrados. Muy desactualizadas.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Por otra parte, hay un grupo de reglas de la comunidad. Son reglas que gente de todo el mundo va desarrolando y envía a snort para que las publiquen.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Descargamos las reglas para la versión 2.8 (tipo 2 :)) en http://www.snort.org/pub-bin/downloads.cgi&lt;br /&gt;Nos registramos y generamos un oink-code -&gt; ...64188359a0f2248...  para poder descargarlas.&lt;br /&gt;En este caso las hemos descargado en el directorio /root:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd /etc/snort&lt;br /&gt;# mv /root/snortrules-snapshot-2.8.0.1.tar.gz .&lt;br /&gt;# tar xvzf snortrules-snapshot-2.8.0.1.tar.gz   MD5 -&gt; 61b7818176609e8753bb10b98ae9a820&lt;br /&gt;# cp /usr/local/src/snort-2.8.0.1/etc/*.conf* .&lt;br /&gt;# cp /usr/local/src/snort-2.8.0.1/etc/*.map .&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Configuramos &lt;span style=&quot;font-style:italic;&quot;&gt;/etc/snort/snort.conf:&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var RULE_PATH /etc/snort/rules&lt;br /&gt;var HOME_NET 192.168.1.0/24&lt;br /&gt;var EXTERNAL_NET !$HOME_NET&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Podemos crear una regla sencilla para comprobar... (ToDo)&lt;br /&gt;&lt;br /&gt;Levantamos snort con:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# /usr/local/bin/snort -Dq -u snort -g snort -c /etc/snort/snort.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;-c fichero de configuración&lt;br /&gt;-D Ejecuta Snort en modo demonio&lt;br /&gt;-g Indica el grupo (elimina privilegios de root a Snort después de terminar su inicialización)&lt;br /&gt;-q Modo Quiet. No muestra información de inicialización ni banner.&lt;br /&gt;&lt;br /&gt;Si tenemos apache2 previamente instalado, podemos tener problemas entre el apache2 y apache-ssl&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Configuramos MYSQL:&lt;/u&gt;&lt;br /&gt;Ponemos password a root de mysql si no lo tiene ya:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysqladmin -u root password &quot;password&quot;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Iniciamos mysql:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysql -u root -p&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Creamos la BD snort:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; create database snort;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Creamos un usuario &quot;snort&quot; en la BD y le asignamos permisos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Le asignamos un password.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mysql&gt; SET PASSWORD FOR snort@localhost=PASSWORD(&#39;password&#39;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejecutamos el script que creará las tablas de la BD snort:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd /usr/local/src/snort-2.8.0.1/schemas&lt;br /&gt;# mysql -u root -p &lt;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;u&gt;Configuramos snort para que utilice mysql:&lt;/u&gt;&lt;br /&gt;Editamos /etc/snort/snort.conf y buscamos, descomentamos y configuramos la linea:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;output database: log, mysql, user=snort password=mipass dbname=snort host=localhost&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reiniciamos snort&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# kill -9 pid&lt;/code&gt;&lt;br /&gt;Hacemos un escaneo a la máquina con nmap por ej. y comprobamos que ha guardado algún evento con:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mysql -u root -p -D snort -e &quot;select count(*) from event&quot;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Configuramos apache-ssl:&lt;/u&gt;&lt;br /&gt;Si tenemos apache2 instalado, deberemos eliminarlo del arranque.&lt;br /&gt;Para ésto, podemos poner:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# update-rc.d -f apache2 remove&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Editamos /etc/apache-ssl/httpd.conf&lt;br /&gt;Buscamos y descomentamos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;AddType application/x-httpd-php .php&lt;br /&gt;AddType application/x-httpd-php-source .phps&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Editamos /etc/php4/apache/php.ini y descomentamos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;extension=mysql.so&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reiniciamos apache:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/etc/init.d/apache-ssl restart&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Instalamos BASE&lt;/u&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt; &lt;/span&gt;(Basic Analysis and Security Engine. Front-end web para analizar alertas del snort):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd /var/www&lt;br /&gt;# rm index.html (opcional)&lt;br /&gt;# wget http://internap.dl.sourceforge.net/sourceforge/secureideas/base-1.2.5.tar.gz&lt;br /&gt;# tar xvzf base-1.2.5.tar.gz&lt;br /&gt;# mv base-1.2.5 base&lt;br /&gt;# chmod 777 base&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Abrimos un navegador y escribimos en la barra de direcciones https://[ip_servidor]/base&lt;br /&gt;Pulsamos continue, elegimos idioma y ponemos como path del adodb -&gt; /usr/share/php/adodb&lt;br /&gt;Pulsamos &quot;continue&quot;.&lt;br /&gt;&lt;br /&gt;Introducimos los siguientes parámetros:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Database Name: snort&lt;br /&gt;Database Host: localhost&lt;br /&gt;Database Port: (en blanco para puerto por defecto)&lt;br /&gt;Database User Name: snort&lt;br /&gt;Database Password: pass&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pulsamos &quot;continue&quot;:&lt;br /&gt;&lt;br /&gt;Introducimos usuario -&gt; root y su contraseña, y nada más (tampoco marco el check).&lt;br /&gt;&lt;br /&gt;Pulsamos &quot;continue&quot;:&lt;br /&gt;Pulsamos sobre el botón &quot;create baseag&quot;  y nos informa de si se ha creado todo correctamente.&lt;br /&gt;Pulsamos &quot;Ir al paso 5&quot;&lt;br /&gt;&lt;br /&gt;Y ya lo tenemos funcionando...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cambiamos permisos al directorio base:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# chmod 755 /var/www/base&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Para que funcionen las gráficas:&lt;/u&gt;&lt;br /&gt;Cambiamos el siguiente enlace:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# rm /etc/alternatives/php&lt;br /&gt;# ln -s /usr/bin/php4 /etc/alternatives/php&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejecutamos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# pear config-set preferred_state alpha&lt;/code&gt;&lt;br /&gt;Editamos /etc/php4/cli/php.ini y descomentamos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;extension=gd.so&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ejecutamos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# pear install Image_Color&lt;br /&gt;# pear install Image_Canvas&lt;br /&gt;# pear install Image_Graph&lt;/code&gt;&lt;br /&gt;Reiniciamos apache-ssl.&lt;br /&gt;&lt;br /&gt;Barnyard (programa para procesar logs de eventos de forma unificada, mejora el rendimiento de snort y proporciona tolerancia a fallos en caso de caída de la BBDD)&lt;br /&gt;En este caso no lo instalamos.&lt;br /&gt;&lt;br /&gt;Pasando del banyard&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Configuramos actualizaciones de las reglas:&lt;/u&gt;&lt;br /&gt;Descargamos e instalamos oinkmaster para que haga actualizaciones automáticas de las reglas:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# cd /usr/local/src&lt;br /&gt;# wget http://internap.dl.sourceforge.net/sourceforge/oinkmaster/oinkmaster-2.0.tar.gz&lt;br /&gt;# tar xvzf oinkmaster-2.0.tar.gz&lt;br /&gt;# cd oinkmaster-2.0&lt;br /&gt;# cp oinkmaster.pl /usr/local/bin&lt;br /&gt;# mkdir /usr/local/etc&lt;br /&gt;# cp oinkmaster.conf /usr/local/etc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Editamos /usr/local/etc/oinkmaster.conf y nos vamos a la linea:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#Example for Snort-current...&lt;/code&gt;&lt;br /&gt;Y descomentamos la siguiente linea:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;url = http://www.snort.org/pub-bin/oinkmaster.cgi/oinkcode/filename&lt;/code&gt;&lt;br /&gt;Sustituimos [b]oinkcode[/b] por uno válido: ...64188359a0f22...&lt;br /&gt;&lt;br /&gt;A continuación hacemos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mkdir /tmp/oinktest&lt;br /&gt;# /usr/local/bin/oinkmaster.pl -o /tmp/oinktest&lt;/code&gt;&lt;br /&gt;Si todo va bien nos descargará más reglas, las desempaquetará e instalará...&lt;br /&gt;&lt;br /&gt;Podemos añadir una copia de seguridad de las reglas antes de instalarlas con la opción -b (sin probar)&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# mkdir /tmp/OINKBACK por ej&lt;br /&gt;# /usr/local/bin/oinkmaster.pl -o /tmp/oinktest -b /tmp/OINKBACK&lt;/code&gt;&lt;br /&gt;Ésto, hará una copia de las reglas en OINKBACK antes de instalar las nuevas.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Creamos el script de inicio de SNORT:&lt;/u&gt;&lt;br /&gt;Creamos y editamos /etc/init.d/snort&lt;br /&gt;Añadimos al fichero lo siguiente:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;/sbin/ifconfig eth0 up&lt;br /&gt;/usr/local/bin/snort -Dq -u snort -g snort -c /etc/snort/snort.conf -i eth1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Lo hacemos ejecutable:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#chmod +x /etc/init.d/snort-barn&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Utilizamos update-rc.d will para crear los enlaces en los directorios rc?.d:&lt;br /&gt;&lt;code&gt;#update-rc.d snort defaults 95&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Reiniciamos y comprobamos que todo funciona correctamente&lt;br /&gt;&lt;br /&gt;FINE&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;Seguridad, Hacking Ético y otros&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rafasec.blogspot.com/feeds/1575550978351504188/comments/default' title='Comentarios de la entrada'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/338297721855145584/1575550978351504188' title='0 Comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1575550978351504188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/338297721855145584/posts/default/1575550978351504188'/><link rel='alternate' type='text/html' href='http://rafasec.blogspot.com/2008/03/instalacin-y-configuracin-de-snort-en.html' title='Instalación y configuración de SNORT en sistemas basados en Debian'/><author><name>Rafa Sánchez</name><uri>http://www.blogger.com/profile/09129204236166177968</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit4y5mpIN-OUnHU4L_XPSSfQTDhwewlTrH61S_oK8Q31_xmWl6O-yPQltR1mszbcgt-de1Rspoc8kaDOIDJr90g1WMc2YevOCXk6fTSh9cD13bGdW1Dnl22mVx3uunJjozgyjSXjqA_uek/s72-c/snort_s1.JPG" height="72" width="72"/><thr:total>0</thr:total></entry></feed>