Creando un Exploit Paso a Paso

¿Cómo encontrar vulnerabilidades, escribir código shell,  aprovechar la vulnerabilidad encontrada y finalmente, convertirlo en un módulo de Metasploit?, son algunas de las interrogantes que alguna vez nos hemos realizado y David Hoelzer , Senior Fellow en el Instituto SANS  nos las resuelve con esta serie de vídeo tutoriales. En los siguientes videoturiales, aprenderemos de la mano de David Hoelzer, como crear un Exploit paso a paso y convertirlo en un modulo de Metasploit para después utilizarlo con este excelente framework; aunque los vídeos se encuentran en ingles, son bastante prácticos y visuales, con lo que no tendremos ningún problema al seguirlos. El código utilizado en los vídeos fue: #include #include #include #include #include #include #include #include #include #include #include #include #define PORT “7777” // the port users will be connecting to #define BACKLOG 10 // how many pending connections queue will hold void vulnerable(char *net_buffer) { char local_buffer[120]; strcpy(local_buffer, net_buffer); return; } void sigchld_handler(int s) { while(waitpid(-1, NULL, WNOHANG) > 0); } // get sockaddr, IPv4 or IPv6: void *get_in_addr(struct sockaddr *sa) { if (sa->sa_family == AF_INET) { return &(((struct sockaddr_in*)sa)->sin_addr); } return &(((struct sockaddr_in6*)sa)->sin6_addr); } int main(void) { int sockfd, new_fd; // listen on sock_fd, new connection on new_fd struct addrinfo hints, *servinfo, *p; struct sockaddr_storage their_addr; // connector’s address information socklen_t sin_size; struct sigaction sa; int yes=1; char in_buffer[20], out_buffer[20], net_buffer[2048]; char s[INET6_ADDRSTRLEN]; int rv; memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; // use my IP if ((rv = getaddrinfo(NULL, PORT, &hints, &servinfo)) != 0) { fprintf(stderr, “getaddrinfo: %s\n”, gai_strerror(rv)); return 1; } // loop through all the results and bind to the first we can for(p = servinfo; p != NULL; p = p->ai_next) { if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { perror(“server: socket”); continue; } if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) { perror(“setsockopt”); exit(1); } if (bind(sockfd, p->ai_addr, p->ai_addrlen) == -1) { close(sockfd); perror(“server: bind”); continue; } break; } if (p == NULL) { fprintf(stderr, “server: failed to bind\n”); return 2; } freeaddrinfo(servinfo); // all done with this structure if (listen(sockfd, BACKLOG) == -1) { perror(“listen”); exit(1); } sa.sa_handler = sigchld_handler; // reap all dead processes sigemptyset(&sa.sa_mask); sa.sa_flags = SA_RESTART; if (sigaction(SIGCHLD, &sa, NULL) == -1) { perror(“sigaction”); exit(1); } printf(“server: waiting for connections…\n”); while(1) { // main accept() loop sin_size = sizeof their_addr; new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size); if (new_fd == -1) { perror(“accept”); continue; } inet_ntop(their_addr.ss_family, get_in_addr((struct sockaddr *)&their_addr), s, sizeof s); printf(“server: got connection from %s\n”, s); if (!fork()) { // this is the child process close(sockfd); // child doesn’t need the listener memset(net_buffer, 0, 1024); strcpy(out_buffer, “HELO\nCOMMAND:”); if (send(new_fd,...

Leer Más

Archivo hosts Linux Bloqueo de sitios Web usando el archivo HOSTS

archivo hosts linux, Años atrás cuando no se habían implemetando los DNS con el objetivo de “resolver” las direcciones IPs de una red (y así tener que evitar recordarlas en todo momento) estos eran enviados en un archivo hosts, el cual contenía una lista con el formato IP – Dominio. En la actualidad existen servidores DNS que son los que se encargan de este proceso, con lo cual no es necesario tener que estar actualizando manualmente cada archivo hosts sino que en un ordenador se concentra la información, de manera que cada vez que se necesite la dirección IP de un dominio se haga la petición al servidor que se haya asignado en la configuración de la red; en caso de que esté registrado en su base de datos este responderá con la dirección IP correspondiente al dominio solicitado. En cada sistema operativo el Archivo hosts Linux tiene prioridad a la hora de resolver un dominio. Supongamos que abres tu navegador y escribes www.dragonjar.org, para resolver la dirección IP se realiza el siguiente proceso: Se verifica si el dominio se encuentra en el archivo hosts. Si está, se devuelve la dirección IP especificada ahí. Si no está, se verifica si se encuentra alojado en la cache DNS; Sino, se hace la petición al servidor DNS (en caso de haber uno especificado) y este se encargará de la resolución del dominio. El archivo hosts se encuentra alojado: En Windows: 95/98/ME: C:Windowshosts NT y posteriores (2000, XP, 2003, Vista): C:WINDOWSSystem32driversetchosts En Unix: /etc/hosts Archivo hosts Linux: /etc/hosts En Mac: /etc/hosts En todo sistema operativo se maneja el mismo formato para este archivo: <IP>   <Dominio> Por ejemplo si quisiéramos que al visitar Microsoft.com redirigiera a Linux.com: 140.211.167.55        *.microsoft.* Siendo 140.211.167.55 la dirección IP del servidor de Linux.com. Nótese que también es permitido el uso de comodines (*) a la hora de especificar el dominio. Toda línea que empiece por # será tomado como comentario, por lo tanto a la hora de interpretar el archivo se ignorará. Es de bastante utilidad tener un “buen” archivo hosts en nuestro sistema debido a que nos permite estar protegidos de muchas URLs maliciosas (sobretodo en sistemas Windows), ya que simplemente al visitar una de ellas seremos redirigidos a la dirección IP establecida (generalmente 127.0.0.1). En la red abundan muchos de estos archivos pero sin lugar a duda el más actualizado y con la base de datos más amplia se encuentra en hpHosts; posee protección contra múltiples hosts como servidores con malware, explotadores de vulnerabilidades del navegador, distribución o venta de aplicaciones fraudulentas, entre otros. Al momento de escribir este artículo la última actualización fué realizada el...

Leer Más

Desbloquear iPod Touch 2G Fácilmente

Desbloquea (Jailbreak) o Actualiza el iPhone OS 3.0 para iPhone y iPod Touch Un nuevo metodo para desbloquear aun mas facilmente el ipod touch 2g, ha sido publicado en la comunidad por hecky, para verla click aqui — Después que MuscleNerd anunciara el parche definitivo para desbloquear el iPod Touch 2G (sin tener que reiniciar), han tardado poco en aparecer diversas herramientas que permiten realizar este proceso fácilmente, una de ellas es  QuickFreedom de la cual me entere gracias a los comentarios de @jorge, @m4st3rcr4zy [email protected], la cual será la herramienta que utilizare para llevar a cabo este tutorial de desbloqueo final del iPod Touch 2G. ¿Que Necesitamos para Desbloquear el iPod Touch 2G? QuickFreedom (Mirrro 1, Mirror 2, Mirror 3) El Firmware 2.2.1 para el iPod Touch 2G iTunes 8 o Superior Antes de realizar cualquier procedimiento es recomendable que sincronicemos nuestros datos del ipod touch con el itunes, también que descarguemos nuestras aplicaciones haciendo click en (Archivo/Transferir compras de “nombre de tu ipod touch”) para que perdamos la menor cantidad de información posible en este proceso, si no llevas a cabo esta recomendación antes de realizar el desbloqueo (jailbreak) de tu ipod touch perderás cualquier información que tengas en el. Guía Paso a Paso para desbloquear el iPod Touch 2G en Windows 1). Instalamos el QuickFreedom y lo ejecutamos, obtendremos un pantallazo como el siguiente: y hacemos click en el botón Jailbreak iPod. 2). Nos aparecerán las siguientes opciones Si ya tenemos instalada la librería “LibUSB” nos aparecerá en verde esta opción (como muestra la imagen), si te aparece en rojo debes darle al botón “Install LIBUSB“, ahora debes darle al botón “Browse…” y buscar el El Firmware 2.2.1 para el iPod Touch 2G que descargamos al principio, si todavía no lo tienes puedes bajarlo haciendo click en “Download“, cuando termine de copiar el firmware ( sabrás que ha terminado cuando en la parte inferior te aparezca el mensaje “Firmware copied! Press next to continue…“, más o menos 30 segundos) puedes darle en “Next” Para continuar. 3). Ahora podemos generar el firmware modificado, pero nos detendremos a mirar algunas opciones que nos aparecen en esta pantalla La primera es la posibilidad de instalar el “Installer”, personalmente prefiero el cydia (el cual se instala por defecto) pero tener el installer no nos quita nada, la otra opción es la posibilidad de cambiar la imagen con la que se inicia el ipod touch, tenemos una serie de imágenes predefinidas que podemos escoger y la opción de colocar una personalizada Yo me tome el trabajo de realizar una imagen personalizada para los usuarios de la comunidad que quieran utilizarla, pueden...

Leer Más

Video Tutorial, Cómo descargar y editar archivos Flash (SWF)

Nuestro amigo Sk0rpy0 en Videotutorial descarga y edición de archivos SWF by Sk0rpy0  ha publicado un vídeo tutorial en el cual enseña como descargar y editar una animación flash de form (algo bastante común en vídeo tutoriales y en animaciones flash de pago). Recomendado. http://www.zshare.net/download/3157155c83dce0/ http://www.badongo.com/file/4056656 http://rapidshare.com/files/49245009/VideoTuto_SWF.rar.html http://4filehosting.com/file/62612/VideoTuto-SWF-rar.html http://www.sendspace.com/file/aq46fg http://www.megaupload.com/?d=QM9RO7C3 Password: www.dragonjar.us Herramientas: UnPlug SWF Decompiler (version de...

Leer Más

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES