21 nov 2010

WireShark: Tutorial básico


WireShark (antes Ethereal) es un programa que analiza el tráfico de nuestra red, se usa para realizar análisis y solucionar problemas en redes de comunicaciones. Este programa se parece a tcpdump, el cual analiza y monitorea todo el tráfico en una red determinada, las diferencias son que este no está disponible en Windows, y que usa libpcap.
Nuestro programa, WireShark, en cambio, usa la libreria winpcap que se habrá de instalar junto al programa. Esta librería es la que se encarga de capturar los paquetes. He de añadir que WireShark es multi-plataforma, teniendo en cuenta que para cada tipo de plataforma hemos de usar una libreria diferente, en Windows(winpcap) y en GNU/Linux (libpcap); pero bueno a nosotros eso no nos importa.

WireShark, también se puede usar como sniffer.

Lo primero de todo es bajarnos el programa de la web oficial:

Wireshark 1.4.2 - 32 bits


Bien seguimos los pasos de instalación normales en Windows, y recordamos instalar WinPcap

Bueno es un tutorial básico os mostraré que podemos hacer para empezar a familiarizarnos con la interfaz y sus utilidades.

Lo abrimos y nos sale algo parecido a esto:


1: Nos permite ver en cada uno, los paquetes que esta recibiendo.
1.1: Si ya sabemos cual vamos a elegir, escogemos la interfaz que más paquetes reciba.
2: Son las opciones que podemos modificar luego iremos a este paso.
3: Es un filtro que nos servirá más adelante para poder hacer una selección de lo que queremos ver en pantalla, y no tener que ir buscandolo entre todo el tráfico.
4: Nos permite abrir unos paquetes ya analizados y guardados.
5: Un manual de la wiki oficial de WireShark en inglés.

Bueno esto no creo que haya sido muy esclarecedor pero a partir de ahora empezaré los ejemplos básicos de uso.


En mi caso la interfaz se llama Microsoft y tenía 700 paquetes capturados. Siguiente paso, apretar Start y comienza el juego ;)

A partir de aquí, vamos a hacernos la idea de que una de dos, hay alguien metido en nuestra red Wi-Fi sin contraseña, o que por algun casual estamos dentro de una red en la que hay más gente conectada. El primer caso lo podemos autoprovocar dejando nuestra red sin contraseña, con eso conseguiríamos atraer víctimas para conseguir saber que se están bajando, que están diciendo por el Messenger e incluso en que página se encuentran en ese mismo instante.

Yo ya he empezado mi captura y bueno he seleccionado que solo me filtre los paquetes que contengan la direccion del Tuenti para poder así analizar la posible conversación que pueda tener nuestra víctima si empiezan a aparecer paquetes es que está navegando por tuenti.


Bueno el 1 son las opciones, con las que puedes filtrar paquetes como solo filtrar paquetes TCP, UDP, etc.. si pones en Filter: http contains "http://www.tuenti.com" ya tienes tu analizador filtrando solo los paquetes del tuenti.

El 2 es para empezar una nueva captura.

Y el 3 para parar la actual, con opción a guardar todos los paquetes capturados.

Y buena "sorpresa" el chat del tuenti no está codificado así que os enseñaré como he podido sacar una porción de una conversación sin codificar.

Si eso es de una conversación por tuenti, eso lo estaba mandando yo como podeis observar. Eso es una ventaja de que no codifiquen el contenido por el chat, ahora vayamos a probarlo al Messenger, iniciamos sesión y empecemos a hablar con alguien.

Le he mandado a un contacto este mensaje: Prueba para Wireshark


Como veis arriba del todo he filtrado los paquetes con el protocolo MSNMS que son todos los relacionados con la mensajería de Windows Live Messenger, también están la dirección de correo del que envia el paquete y la dirección del que lo recibe. Aparte exceptuando la contraseña(que si que esta codificada) las conversaciones las podemos leer claramente, y poder espiar a nuestra víctima.

Espero que os haya dado una pequeña idea de lo que es WireShark, aunque el límite lo poneis vosotros.

12 nov 2010

FOCA 2.5 + Vatican.va

Hoy es el día de la FOCA, muchos de nosotros adoramos esta herramienta pues hace todos esos pasos de pentesting en un solo click.


Sí, teme la FOCA.

¿Qué es la FOCA?

FOCA es una herramienta para encontrar Metadatos e información oculta en documentos de Microsoft Office, Open Office y documentos PDF/PS/EPS, extraer todos los datos de ellos exprimiendo los ficheros al máximo y una vez extraídos cruzar toda esta información para obtener datos relevantes de una empresa.


¿Qué podemos hacer con esta herramienta?

La FOCA hace Google y Bing Hacking para descubrir los archivos ofimáticos que tiene un dominio, los descarga masivamente, les extrae los metadatos, organiza los datos y nos muestra la siguiente información:

* Nombres de usuarios del sistema
* Rutas de archivos
* Versión del Software utilizado
* Correos electrónicos encontrados
* Fechas de Creación, Modificación e Impresión de los documentos.
* Sistema operativo desde donde crearon el documento
* Nombre de las impresoras utilizadas
* Permite descubrir subdominios y mapear la red de la organización
* Nombres e IPs descubiertos en Metadatos
* Búsqueda de nombres de dominio en Web: Google o Bing [Interfaz web o API]
* Búsqueda de nombres comunes en servidor DNS
* Búsqueda de IPs con resolución DNS
* Transferencia de Zonas

Bueno ya sabemos más o menos que podemos hacer con esta pequeña aplicación creada en .NET para Windows (y GNU/Linux con WINE); pero quizás no todos vean realmente que podemos sacar de esta herramienta, os haré un pequeño ejemplo de su uso con una web conocida: vatican.va

Bien lo primero abrimos FOCA y le damos a File > New Project

Le pones el nombre que desees y en Domain Website pones el dominio que prefieras en mi caso: vatican.va.


Accedemos al Panel de búsqueda a la derecha verás un botón que será EL botón con el cual podemos reunir todos los pasos que debiamos hacer para conseguir algo en un solo click, sin enrollarme le damos a Search All.

Y tendremos toda la lista de archivos ofimáticos, huellas y metadatos que podremos utilizar a nuestro favor en un posible ataque.


Como podeis comprobar en mi imagen yo solo me he descargado 60 documentos, aunque se han analizado 1234 documentos con datos que no han sabido borrar.

Bien, es hora de empezar a mostraros que puede hacer FOCA por nosotros.



Se observa en la imagen que he conseguido 21 usuarios, para que me sirve esto, pues es sencillo para realizar ataques de Ingeniera Social, sabiendo el nombre y un par de datos más podemos engañar una mediana empresa con mala seguridad.

Ahora vamos a sacar algo mucho más importante como pueden ser las rutas internas.
Que como vamos a observar en la siguiente toma de pantalla, son las rutas donde se ubican los documentos descargados del dominio analizado.
Tenemos hasta un español, sino observad el circulo rojo y fijaos que la ruta está en Español.





Vamos a ponernos serios y empezar a ver realmente que podemos conseguir con FOCA nos vamos de los archivos METADATA a Network Data.

Ahí tendremos todos los servidores, con lo que podremos hallar el servidor web HTTP que use, el SO que usa, Ips, dominios, etc..

Pero yo me voy a centrar en algo mucho mejor. Primero de todo si ya estamos en Network Data, vamos a Domains. Ahí encontraremos el dominio que hemos estado analizando todo este rato y los dominios relacionados (estos son muy interesantes y son una gran fuente para los ataques de Ingeniería Social).

Y dentro todos sus subdominios cogemos uno donde hallamos encontrado muchos documentos, en mi caso me voy a asv.vatican.va(que irónicamente son los Archivos Secretos del Vaticano) y apretamos Search Open Folders y Search Methods.

Nos vamos a la pestaña Methods on Folders en caso de que haya encontrado y debemos buscar, el método PUT y DELETE es lo que nos permitirá jugar un rato.

Os enseño como se puede llegar hasta ahí.


Creo que por hoy es más que suficiente...tenemos solo 58 documentos y mirad hasta donde hemos llegado..el límite lo poneis vosotros.
Esta herramienta da para muchísimo más, solo teneis que experimentar un poco para conocer todas las opciones que hay.

Y ya sabeís, no hagais nada de lo que podais arrepentiros.

DESCARGAR FOCA 2.5:

Descargar FOCA 2.5

8 nov 2010

Convierte tu ordenador en un televisor de alta definición


Cada vez es más frecuente el uso del ordenador (también tablets y teléfonos móviles) como televisor alternativo en el hogar e, incluso, como el principal. Y más con el aumento, en los últimos tiempos, del ancho de banda, que ha permitido la visualización de vídeo en alta definición.

Con la llegada de la TDT y el desarrollo de monitores de mayor tamaño también ha aumentado el consumo de televisión a través del ordenador.

Desde Consumer ven en el uso de los sintonizadores de TDT una de las opciones más sencillas para convertir el ordenador en un televisión. Existen varios modelos en el mercado, entre los que destacan:

* AVerTV Volar HD Pro: sintonizador de TDT en formato pincho USB compatible con Windows que, en cuestión de software, implementa aplicaciones que permiten grabar programas de TV en alta definición y convertirlos a diferentes formatos según el dispositivo donde vaya a ser reproducido. Su precio ronda los 39,90 euros. Más sencillo de manejar, y de la misma empresa, es AVer TV Plug&Watch, que incluye un sistema autoinstalable que no requiere de CD de ayuda. Está disponible para Windows 7 y Mac Os X 10.6 y cuesta alrededor de 59,90 euros.
* Eye TV DTT Deluxe: también compatible con Windows 7 y Mac Os X, es de tamaño aún más reducido y cuenta con un software (Eye TV para Mac; Terretec HomeCinema) que permite grabar y clasificar programas de televisión en el disco duro.
* PCTV w-lantv 50n es un kit que cuenta con un sintonizador y un punto de acceso que puede colocarse en el lugar de la casa que se prefiera, buscando una mejor cobertura TDT. Permite transmitir la señal de televisión digital a través de streaming a todos los ordenadores del hogar. Es uno de los más recomendados, pero también más caro. Su precio, 129,99 euros.

Pantallas adecuadas

Seleccionar un monitor adecuado también es importante a la hora de sacarle el máximo provecho a la visualización de televisión en el ordenador.

* Es aconsejable no bajar de las 20 pulgadas.
* Su resolución ha de ser no inferior a 1080P.

Otros requisitos, estos recomendables para sacar más provecho son:

* Disponer en el monitor de diferentes tipos de conectores como VGA, DVI y HDMI para su uso, no solo con ordenadores sino con periféricos como consolas de videojuegos.
* Altavoces integrados, barras de sonido, sonido estéreo...

Fuente: 20minutos.es

6 nov 2010

Algo sobre PageRank

Todos hemos visto alguna vez esta pequeña imagen en muchas webs esta imagen:


Pues bien muchos sabreís que siginifica y como funciona, si no lo sabeís seguid leyendo:

PageRank

PageRank (PR) es un valor numérico que representa la importancia que una página web tiene en Internet. Google se hace la idea de que cuando una página coloca un enlace (link) a otra, es de hecho un voto para esta última.

Cuantos más votos tenga una página, será considerada más importante por Google. Además, la importancia de la página que emite su voto también determina el peso de este voto. De esta manera, Google calcula la importancia de una página gracias a todos los votos que reciba, teniendo en cuenta también la importancia de cada página que emite el voto.

PageRank (desarrollado por los fundadores Larry Page y Sergey Brin) es la manera que tiene Google de decidir la importancia de una página. Es un dato valioso, porque es uno de los factores que determinan la posición que va a tener una página dentro de los resultados de la búsqueda. No es el único factor que Google utiliza para clasificar las páginas, pero sí es uno de los más importantes.

Hay que tener en cuenta que no todos los links son tenidos en cuenta por Google. Por ejemplo, Google filtra y descarta los enlaces de páginas dedicadas exclusivamente a colocar links (llamadas 'link farms').

Además, Google admite que una página no puede controlar los links que apuntan hacia ella, pero sí que puede controlar los enlaces que esta página coloca hacia otras páginas. Por ello, links hacia una página no pueden perjudicarla, pero sí que enlaces que una página coloque hacia sitios penalizados, pueden ser perjudiciales para su PageRank .

Si un sitio web tiene PR0, generalmente es una web penalizada, y podría ser poco inteligente colocar un link hacia ella.

El algoritmo de 'PageRank™ ' fue patentado en Estados Unidos el día 8 de enero de 1998, por Larry Page. El título original es 'Method for node ranking in a linked database', y le fue asignado el número de patente 6,285,999.

El algoritmo:



PR(A) Es el PageRank de A página.

La variable d dicen que puede ser 0,85 es la probabilidad de que un navegante continúe pulsando links al navegar por Internet en vez de escribir una url directamente en la barra de direcciones o pulsar uno de sus marcadores y es un valor establecido por Google.

PR(i) son los valores de PageRank que tienen cada una de las páginas i que enlazan a A.

C(i) es el número total de enlaces salientes de la página i (sean o no hacia A).

Esto es una pequeña introducción al pagerank, para aumentarlo hemos de evitar el spam, los pop-ups, y otras directrices que harán de nuestra web un sitio más visitado.

Fuentes:
http://es.wikipedia.org/wiki/PageRank
http://www.mipagerank.com/

Aumentar la velocidad de nuestra web

En este post voy a escribir sobre eso, la velocidad y fallos de nuestra web.

Pues es importante tener una web bien indexada, rápida y sin fallos.

Para ello solo vamos a necesitar un par de complementos, y nuestro navegador Mozilla Firefox.

Abrimos Firefox y entramos en la página de descargas de Add-on: https://addons.mozilla.org/es-ES/firefox/tag/download

Y nos bajamos Firebug y PageSpeed(Add-on de Google que se descarga del link que he dejado)

Instalamos ambos, reiniciamos Mozilla Firefox y cuando se abra nos vamos a Herramientas > Firebug > Abrir Firebug




Ahora tendremos abierto Firebug y debajo nuestra web, si hemos instalado también el complemento PageSpeed nos saldrá algo así:





Le damos a PageSpeed a Performance y a Analizar la web, nos pondrá la cantidad de errores, que tenemos y que hacen que la web vaya más lenta e impida la indexación.

Espero que les haya servido y puedan mejorar su web ;)

3 nov 2010

Broma-gh0st

Bueno no tengo un título mejor, con ver el code se ppuede hacer uno la idea de sobre que va el tema..el caso es que realmente si alguien lo ejecuta sin más y no sabe el nombre del ejecutable se puede llevar un pequeño susto.

#include 
 
#define ms 10
HWND hwnd;
CHAR szMessage[ms][512] = {"El ordenador esta cerrandose. Motivo desconocido..",
          "addcc %r3,%r5,%r3",
          ".........",
          "Error 0x004...",
          "no te gires...ahora...",
          "It's here...", //como me gusta destino final jaja.
          "ayuda por favor...",
          "...necesito ayuda...",
          "es la hora..",
          "........"};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
  hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
 
 srand(GetTickCount()); //Otro modo de sacar numeros pseudo-aleatorios
 while(TRUE)
 {
  Sleep(8000);
  int azar = (rand() % ms);
  for(int a = 0; a < lstrlen(szMessage[azar]); a++)
  {
 
   keybd_event((UCHAR)VkKeyScan(szMessage[azar][a]), NULL, NULL, NULL);
   Sleep(rand() % 200); //Esto lo hace un poco más realista
  }
 }
 return 0;
}
 
Bueno este code lo hice en 5 minutos, despues de ver la peli Destino Final 2, se me ocurrio la idea de que seria un cague que el ordenador escribiera solo, seguro que algo parecido a esto ya existe, pero quizas no implementado de la misma manera. Bueno este es un code muy sencillo solo uso la cabecera windows.h, y bueno primero creo un array multidimensional donde estan los mensajes que se escribiran.. Bueno luego le puse el modo de Oculto para que no se viera una ventanita negra y sea muy sospechoso.
hwnd=FindWindowA("ConsoleWindowClass",NULL);
  ShowWindow(hwnd, SW_HIDE);
Luego esta srand....demasiado explicado, uso la función GetTickCount() +info Y luego ya viene la función, uso el while porque tenia pensado al principio, ponerle que si apretabas alguna tecla se cerraba, pero al final lo deje así. Cogemos un número al azar comprendido entre el 1 y el 11, y vamos imprimiendo caracteres.
Sleep(rand() % 200);

Esto lo hace aún más realista, pues hace como una pequeña pausa pseudo-aleatoria..

Saludos

Broma-BSOD

Pues estuve trabajando hace unas semanas antes de irme, en una especie de broma muy sencilla, que te saca la BSOD.

No tiene nada especial solo jugar un poco con Windows.

Aperitivo:


 



Comida:

#include <windows.h>


#define SCREEN(x) GetSystemMetrics(*x == 'X' ? SM_CXSCREEN : SM_CYSCREEN)
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "CodeBlocksWindowsApp";

const char * texto[] = {
     "-A problem has been detected and Windous has been shut down to prevent damage",
     "-to your computer.",
     "*The problem seems to have been caused by the following file: MSNMSGR.EXE",
     "*A_LOT_OF_PORN_PHOTOS",
     "*If this is the first time you've seen this Stop error screen,",
     "-restart your computer. If this screen appears again, follow",
     "-these steps:",
     "*Check to make sure any new porn video is not viewed.",
     "*If this is a new installation of YouPornDownloader, ask your friends if ",
     "-they have any problem with any PornDownloader",
     "*If problems continue, disable or remove any newly porn video",
     "-or software downloader. ",
     "*If you need to use Safe Mode to remove or disable components, restart",
     "-your computer, press F8 to select Advanced Startup Options, and then",
     "-select Safe Mode.",
     "*Technical Information:",
     "**** MSNMSGR.EXE - Address: pnf13@hotmail.com Author: P4|3L0 ***"
};

void dalealtextoLOL(HDC hDC){
    unsigned short na = 30;
     unsigned char bs = 0;

     while(bs <= 16){
             if(texto[bs][0] == '*') na += 23;
             TextOut(hDC,10,na+(bs*23),texto[bs]+1,lstrlen(texto[bs])-1);
             bs++;
     }
}

int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default colour as the background of the window */
    wincl.hbrBackground = CreateSolidBrush(RGB(0,0,0x77));


    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "BSOD",       /* Title Text */
           WS_POPUP,
           0,
           0,      /* where the window ends up on the screen */
           SCREEN("X"),                 /* The programs width */
           SCREEN("Y"),                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nCmdShow);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}

HDC hDC;
PAINTSTRUCT ps;
HFONT hFont;
/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {

        case WM_DESTROY:

            break;
          case WM_PAINT:
             hDC = BeginPaint(hwnd,&ps);

             hFont = CreateFont(
                   19, 12, 0, 0,FW_NORMAL, FALSE, FALSE, FALSE,
                   ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
                   DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Verdana"
             );

             SelectObject(hDC, hFont);
             SetTextColor(hDC,RGB(0xFF,0xFF,0xFF));
             SetBkColor(hDC,RGB(0,0,0x77));

             dalealtextoLOL(hDC);

             DeleteObject(hFont);

             EndPaint(hwnd, &ps);
             break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

Como se ve, aun hay cosas por defecto de codeblocks..porque solo he tocado algunas cosas, a partir de la GUI de windows que me daba code::blocks