domingo, 28 de octubre de 2012

Instalar nemesis, resolución de errores

Hola de nuevo, hace tiempo puse una entrada acerca de ARP Spoofing, en dicha entrada hablaba de un programa llamado nemesis (un inyector de paquetes), resulta que el otro día estuve intentado instalarlo y me encontré con que hay un problema al instalar el programa en un ordenador de 64 bits, así que ,enlazando un poco con la entrada anterior, en esta entrada os enseñare a instalar nemesis y como solventar esos pequeños problemas al instalarlo en un ordenador de 64 bits.

Bien, lo primero que necesitamos es el programa en si, ademas de la librería libnet-1.0.2a, podéis descargar ambos en los siguientes enlaces:

Descargar libnet-1.0.2a

Descargar nemesis

Primero vamos a instalar la librería, así que primero la extraemos con tar:


tar xvf libnet-1.0.2a.tar.gz


Después entramos en la carpeta que se ha extraído:


cd Libnet-1.0.2a/


y ejecutamos el script configure:


./configure


compilamos:


make


y realizamos la instalación:


sudo make install


aquí es donde encontramos el primer problema, cuando intentamos instalar nos da un error el programa make, no estoy seguro pero creo que este error solo sale dependiendo de la versión del make que tengas, de todas maneras es fácil de arreglar, editamos el archivo Makefile y cambiamos la siguiente línea:


MAN_PREFIX =


dejándola así:


MAN_PREFIX = /usr/share/man/man3



esta opción solo indica en que lugar se pondrá el manual de la librería. A continuación guardamos el Makefile con los cambios realizados y volvemos a ejecutar el sudo make install.

Bien, ya tenemos instalada la librería libnet, ahora instalaremos el nemesis

Extraemos los archivos:


tar xvf nemesis-1.4.tar.gz


Entramos en la carpeta que se ha extraído:


cd nemesis-1.4/


y ejecutamos el script configure, pero en este caso si lo ejecutáis normal os dirá que falta la librería libnet, a pesar de que la acabamos de instalar, ya que el script buscará la librería en un lugar distinto al que se instala por defecto, así que tendremos que indicarle en donde están los archivos de cabecera y la librería, lo haremos de la siguiente manera:


./configure --with-libnet-includes=/usr/include/ --with-libnet-libraries=/usr/lib/


ahora debería de ejecutarse el configure sin ningún problema.

A continuación lanzaremos el programa make para compilar el programa:


make



Aquí viene un nuevo problema, el compilador da error en una línea concreta (la línea 342) de uno de los archivo de código fuente (nemesis-functions.c situado en la carpeta src), resulta que el compilador de 64 bits no acepta esa línea en concreto, por suerte no es una función importante, así que podemos comentarla para que no se ejecute, esto no afectara al rendimiento del programa.

Podemos abrir el archivo (src/nemesis-functions.c) con un editor que nos marque el número de líneas para saber exactamente cual es la linea 342, yo lo haré con vi. Una vez encontremos la linea simplemente la comentamos poniendo "//" al principio de la linea, quedado así:



Bien, ahora ya podemos ejecutar make para compilar el programa.

A continuación instalamos el programa:


sudo make install


y listo, ya tenemos nemesis instalado en nuestro equipo. Si tenéis un equipo de 32 bits no debería de daros estos errores (quizá si que os de el error al instalar libnet pero los otros no debería), así que simplemente ejecutar todos los pasos de manera normal y os debería de instalar sin problemas.


Espero os sirva, cualquier duda dejarla en comentarios

Saludos =)


Instalar programas desde las fuentes

Hola, hoy os enseñaré algo bastante interesante, como instalar un programa desde las fuentes en linux.

NOTA: la mayoría de programas de linux están escritos en C, así que la gran mayoría de veces que tengamos que instalar un programa desde las fuentes es casi seguro que será un programa escrito en C, por eso solo mostrare ejemplos de programas en C.

Empezaremos por algo simple, si tuviésemos un programa muy simple en el cual todo su código esta en un solo fichero sería bastante fácil instalarlo, solo tendríamos que lanzar el compilador C y posteriormente moverlo a la carpeta que quisiésemos, podríamos moverlo a /usr/bin para tenerlo siempre a mano.

Por ejemplo, si tuviésemos el siguiente programa hello.c:


#include <stdio.h>

main()

{
printf("Hello world\n");
}



para instalarlo podríamos hacerlo asi:


gcc hello.c -o hello

mv hello /usr/bin


Este es un ejemplo muy simple, en el que solo compilaríamos el único archivo de código que tiene el programa y posteriormente lo moveríamos a /usr/bin para tener acceso al programa desde cualquier directorio.

Normalmente los programas se suelen dividir en varios archivos de código fuente, ademas de que también suelen usar varias librerías de código. Para poder realizar todas las operaciones de compilación se suele usar un archivo llamado Makefile, en el cual están todas las instrucciones que se le deben pasar al compilador para poder compilar el programa de una manera ordenada.

Cuando descargamos un programa para instalarlo desde las fuentes normalmente se suele bajar un archivo con extensión ".tar.gz" esto quiere decir que el programa esta archivado y comprimido con tar y gzip, dentro de este archivo estará todo el código fuente del programa.

Lo primero que tenemos que hacer es extraer los archivos que hay dentro del archivo ".tar.gz" para ello usaremos tar (desde el shell) de la siguiente manera:


tar xvf programa.tar.gz


donde "programa.tar.gz" es el nombre completo del archivo que tengamos que extraer.

Una vez tengamos extraídos todos los archivos en muchos casos podemos encontrarnos archivos de texto plano en los cuales tenemos una serie de instrucciones para instalar el programa, es recomendable pararse un momento a leer estas instrucciones (estos archivos suelen tener nombres como README, INSTALL...etc)

Vale, en este momento ya tenemos nuestro programa con todos los archivos extraídos, ahora lo que tendríamos que hacer es ejecutar un archivo llamado configure, este archivo es un script encargado de realizar una comprobación de nuestro sistema para asegurarse de que tenemos todas las librerías y programas necesarios para llevar a cabo la compilación e instalación del programa, ademas configure se encarga de crear el archivo Makefile que he mencionado anteriormente, pero solo lo creara cuando se asegure de que tenemos todo lo necesario para realizar la instalación del programa, podemos ejecutar el script configure desde el shell usando:


./configure


Una vez ejecutado veremos en pantalla una serie de comprobaciones, tenemos que asegurarnos de que el programa finaliza la ejecución sin dar ningún error, en caso de que se nos muestre algún error tendremos que solucionarlo, configure nos indicara a que se debe el error, por lo general suelen ser errores indicando la falta de alguna librería, en este caso tendríamos que instalar dicha librería para poder continuar la instalación, una vez hayamos solucionado el error tendremos que ejecutar de nuevo configure para que nos certifique que no hay mas errores y nos cree el Makefile.

Una vez ejecutado el script configure de manera satisfactoria es hora de compilar el programa usando el Makefile, para ello haremos lo siguiente (desde el shell):


make


el programa make se encarga de buscar el archivo Makefile en nuestro directorio actual y de realizar las operaciones indicadas en el archivo. No os preocupéis si veis que la compilación dura mucho tiempo, en algunos programas un poco grandes es normal.

Una vez compilado el programa tendríamos que instalarlo, para ello lo haríamos con el siguiente comando (por lo general casi siempre se necesitan permisos de root, por eso se añade el sudo al principio):


sudo make install


Este ultimo comando no es realmente necesario, ya que el programa ya lo tenemos compilado y listo para funcionar en la carpeta en la cual lo hemos compilado, lo único que hace el comando make con el argumento install, es mover algunos archivos (como el binario ejecutable o algunos archivos de configuración) a algunas carpetas de nuestro sistema para que podamos ejecutar el programa desde cualquier sitio y no tengamos que ir estrictamente a la carpeta en la que lo compilamos.

De hecho hay algunos programas que carecen de la opción install, en este caso por lo general tendremos que cojer nosotros el binario ejecutable y moverlo manualmente a alguna carpeta como /bin o /usr/bin, que nos permitan la ejecución desde cualquier directorio del sistema


Resumiendo, lo único que necesitamos para instalar un programa desde las fuentes es:

-Extraer los archivos:

tar xvf <nombre_archivo>

-Comprobar que tenemos todo lo necesario:

./configure

-Compilar

make

-Instalar

sudo make install

Espero que os haya gustado este mini-tutorial, si tenéis alguna pregunta no dudéis en dejármela en los comentarios.

Saludos :D

sábado, 27 de octubre de 2012

Wikeando

Hola a todos, hoy traigo buenas y malas noticias... empecemos por lo bueno.

Mis compañeros de clase y yo hemos decidido empezar un wiki para poder documentar todo lo que podamos relacionado con la informática, es un proyecto que realmente me entusiasma, os dejo la dirección del wiki: http://leliadouratic.sytes.net

Bien, ahora viene la parte mala, el wiki me esta comiendo mucho, mucho, muuuuuuuucho tiempo, llevo toda la semana a tope con el wiki, lo cual me ha impedido hacer muchas cosas, entre ellas publicar aquí en el blog... esta semana tenía pensado publicar un par de entradas en el blog durante la semana y quizá otro par de entradas durante el fin de semana, pero estamos a sabado y todavía no he publicado nada (esta entrada no cuenta...), así que ni siquiera sé si podré llegar a ese mínimo de dos entradas que me había propuesto.

Lo que mas me fastidia es que tengo muchas ideas para publicar entradas aquí en el blog, pero literalmente me quedo sin tiempo físico para poder hacerlo, de hecho he tenido que empezar a apuntar las entradas que quiero hacer en el blog, porque sino se me olvidan xD.

y por otra parte tampoco estoy muy satisfecho con el rendimiento que he llevado en el wiki, a pesar de que he estado toda la semana con el wiki, apenas he podido publicar unas 8 entradas, lo cual esta bastante por debajo de las expectativas que tenía en un principio, creo que podría haber publicado casi el doble de contenido pero bueno...

El tema es que no quiero dejar de lado ninguno de los dos proyectos, ni el blog ni el wiki, así que no se como lo haré, pero tendré que optimizar mas mi tiempo para poder llevarlo todo de manera mas regular.

y hasta aquí todo por ahora, espero poder publicar algo por aquí esta tarde =)

Saludos.

domingo, 21 de octubre de 2012

[Script] Buscador de texto en archivos

Buenas, hoy os traigo algo que tenía ganas de hacer hace mucho tiempo, se trata de un programa (bueno, en este caso es un script) cuya función es buscar cadenas de caracteres (ya sean letras o palabras) dentro de varios archivos de texto plano.

Resumiendo, tu le das dos argumentos al script, la carpeta en la que quieres buscar y la cadena de caracteres que quieres buscar, y el programa se encarga de buscar dicha cadena de caracteres dentro de todos los archivos que hay en la carpeta que le has indicado.

Esta idea me surgió hace muchísimo tiempo, cuando me pasaba en varias ocasiones que tenía una serie de archivos (por lo general eran archivos de código fuente) y no recordaba en que archivo en concreto estaba la información que buscaba, lo cual me obligaba a abrir todos los archivos y realizar una búsqueda individual en cada uno de ellos.

En realidad la idea original la tenia pensado realizar en C, pero por unas cosas y otras, nunca llegué a realizarla. Este script hace uso de 4 programas: cat, wc, grep y test. Los 4 vienen por defecto en todos los linux, así que no tendréis que instalar nada adicional.

Bueno, hablemos de problemas. El script tiene un par de problemas, el primero es el tiempo de ejecución, si en la carpeta que indicáis solo hay archivos de texto plano pues no hay mucho problema, el script debería de ejecutarse en un par de segundos, pero si la carpeta contiene otros archivos de gran tamaño ademas de los de texto plano pues la ejecución puede ser bastante larga, lo he probado con una carpeta que contenía algunos archivos de varios GiB y ha tardado varios minutos en ejecutarse, pero bueno, en condiciones normales con archivos no muy pesados no debería de presentar problemas. El segundo problema es que el programa no es recursivo, esto quiere decir que si dentro de la carpeta que indicáis para la búsqueda existe otra carpeta pues el script no entrara en esta nueva carpeta, solo examinara la carpeta que le habéis indicado.

Si algún día llego a realizar la versión en C del programa, probablemente pueda solucionar estos problemas.

A continuación os dejo el código del script:


#!/bin/bash

if test -z $2
then

        echo
        echo "ERROR !!! Faltan argumentos."
        echo
        echo "Modo de uso: $0 <Directorio> <Cadena de caracteres a buscar>"
        echo


else

max=`ls $1 | wc -l`

for ((i=1; i<=$max; i++))
do

cat "$1/`ls $1 | head -n $i | tail -n 1`" 2> /dev/null\
        | grep -n -i $2 > /dev/null

if test $? -eq 0

then

        echo

        echo ----------------

        echo

        ls $1 | head -n $i | tail -n 1

        echo

        cat "$1/`ls $1 | head -n $i | tail -n 1`" 2> /dev/null\
                | grep -n -i $2

fi

done

fi

echo
echo ----------------
echo




Para guardar el script lo guardáis como un archivo de texto plano y le dais permisos de ejecución, después si queréis, podéis ponerlo en la carpeta /usr/bin/ para poder ejecutarlo desde cualquiera carpeta aunque el script no esté en ella.

Bien, el script toma dos parámetros que son de uso obligado, el primer parámetro es la carpeta donde queréis realizar la búsqueda, y el segundo parámetro es la cadena de caracteres a buscar. De manera que un ejemplo podria ser el siguiente (yo le he llamado bsc al script, pero podéis llamarle como queráis):

./bsc Documentos/ valencia

con este comando el script buscaria en la carpeta "Documentos" todos los archivos que contengan la palabra "valencia"

ACLARACIÓN: si tenéis el script en /usr/bin/ no hace falta poner el "./" inicial para ejecutar el script, ademas el script acepta rutas relativas a vuestra posición actual en el shell, osea que en el caso anterior puedo poner simplemente como carpeta "Documentos" en vez de /home/usuario/Documentos/ ya que en ese momento me encuentro en la carpeta usuario.

La salida que produce el script tiene el siguiente formato: cada archivo en el que encuentra una coincidencia lo muestra entre una serie de lineas salteadas como esta "----------------", después la primera linea que muestra es el nombre del archivo, y las lineas siguientes son las lineas del archivo en las que hay coincidencia, mostrando al comienzo de la linea el numero de linea en la que se encuentra.

Ejemplo:



Como podemos ver en este ejemplo, le hemos dicho al programa que busque en los archivos de la carpeta "test" la cadena "prueba" y en este caso se nos muestra un único resultado, el cual ha sido encontrado en el archivo "texto1.txt" y podemos ver que la linea en la que se ha encontrado la cadena es la linea numero 3 y a continuación se nos muestra la linea en cuestión.


ALGUNOS EJEMPLOS INTERESANTES

Cuando terminé el script no tenia necesidad de buscar nada en concreto, pero como tenía que probarlo pues decidí hacer algunas búsquedas en los archivos de configuración del sistema y me salieron algunos resultados interesantes, como por ejemplo los siguientes:

bsc /etc/ runlevel

Al buscar "runlevel" en los archivos de la carpeta "/etc/" se muestra en una de las coincidencias que funcionalidades están activas en cada uno de los niveles de ejecución, por ejemplo se nos indica que en el nivel 5 esta activada la red y la interfaz gráfica, y en el nivel 3 por ejemplo no esta la interfaz gráfica pero si la red.



otro ejemplo:

bsc /etc/sysconfig/ autologin



En este caso se nos indica una de las opciones del archivo "displaymanager" que indica si el sistema esta configurado para iniciar el sistema de manera automática con un usuario concreto, en mi caso esta opción la tengo vacía, así que no se hace ningún autologin.

Bueno y creo que eso es todo, si tenéis alguna duda o pregunta no dudéis en dejármela en los comentarios.

Saludos =)

sábado, 20 de octubre de 2012

Saber que servicios se están ejecutando en linux

Hola, hoy os enseñaré como comprobar que servicios tenéis en ejecución en vuestro linux.

NOTA: lo que voy a exponer a continuación no funciona en ubuntu ni debian, ya que no permiten mirar el estado de los servicios. Lo he probado personalmente en openSuSE y funciona, y también debería de funcionar en otras distros como Fedora o Mandriva

Primero, si queréis ver una lista de los servicios que hay en vuestro sistema podéis verla con el siguiente comando (debemos ejecutarlo como root):


chkconfig -l


Usando este comando obtendremos un resultado como el siguiente:




bien, aquí podemos ver a la izquierda el nombre del servicio y a la derecha podemos ver una serie de datos que indican un numero y a su derecha "on" o "off", NO OS DEJÉIS ENGAÑAR, esto no es el estado actual del servicio, lo que nos indica es el estado que tendrá el servicio al iniciar un determinado nivel de ejecución del sistema, por ejemplo "SuSEfirewall2_init" estará activo cuando se inicie el nivel de ejecución 3 o 5, pero si yo mas tarde decido desactivar el servicio manualmente (aun estando en nivel de ejecución 3 o 5) y ejecuto el chkconfig -l , me seguirá apareciendo como "on" a pesar de que realmente el servicio esta desactivado. Hay que tener cuidado con esto ya que puede inducir a error y pensar que tenemos un servicio activado o desactivado cuando realmente no es así.

Para mirar el estado real de un servicio lo que tenemos que hacer es irnos a la carpeta /etc/init.d/ dentro de esta carpeta nos aparecerán distintos archivos, los cuales muchos de ellos hacen referencia a servicios, si queremos por ejemplo ver el estado del servicio "SuSEfirewall2_init" tendríamos que ejecutar dicho archivo con el argumento "status" tal que así (una vez mas tenemos que hacerlo como root):

./SuSEfirewall2_init status





como podemos ver en la imagen en mi caso se muestra que el servicio esta ejecutándose.

Vale, ahora ya sabemos como poder ver en que estado están los servicios, pero el problema viene cuando queremos echar un vistazo a todos los servicios, en tal caso tendríamos que ir ejecutando uno por uno todos los archivos con el argumento "status" para poder ver el estado, lo cual es algo engorroso... Así que he creado un script que automatizara esta tarea y nos mostrara el estado de todos los servicios.

A continuación os dejo el código del script:



#!/bin/bash

DIR=/etc/init.d/
max=`ls $DIR | wc -l`

for (( i=1; $max >= i; i++))
do

if test $i -eq `ls $DIR | grep -n halt | cut -f 1 -d ":" | head -n 1`\
 -o $i -eq `ls $DIR | grep -n reboot | cut -f 1 -d ":" | head -n 1`
then
:
else

 echo "------------------------------"
 echo
 echo "`ls $DIR  | head -n $i | tail -n 1`"
 echo
 cd $DIR
 ./`ls $DIR | head -n $i | tail -n 1` status
 echo
fi

done



Para ejecutarlo simplemente coger el código, lo guardáis en un archivo de texto plano y le dais permisos de ejecución (yo le he llamado services al archivo, pero podeis llamarle como querais):



después para ejecutarlo tenéis que hacerlo de nuevo como root, y se os mostraran todos los servicios con su respectivo estado:




En mi caso por ejemplo podemos ver como tengo el firewall activo (servicios "SuSEfirewall2_init" y "SuSEfirewall2_setup") y también por ejemplo tengo el ssh (servicio sshd) desactivado.

En caso de que queráis activar o desactivar los servicios lo único que tenéis que hacer es ir de nuevo a la carpeta /etc/init.d/ y en vez de usar el argumento "status" al ejecutar los archivos, tenéis que usar "start" para activarlo o "stop" para desactivarlo.

Saludos :)

viernes, 19 de octubre de 2012

Una semana bien aprovechada

wenasssss !!!! ya estamos a viernes, otra semana que vuela, pero esta semana no ha sido una semana normal debido a los 3 días que hubo de huelga, a la cual no fui (ya que me parecía muy  heavy perder unas 20 horas de clase).

En principio sabia que la mayoría de gente no iba a ir a clase, pero no pensé que al final iría yo solo xD, la verdad es que me quede bastante sorprendido. Bueno, obviamente los profesores no me iban a dar clase a mi solo, cosa que ya había previsto, así que llevaba en mi mente algunas cosas preparadas para hacer durante las clases y así poder aprovechar el tiempo al máximo.

Al final la verdad es que las cosas salieron muchísimo mejor de lo que esperaba, ya que solo tenia pensado probar un par de cosas durante los 3 días de huelga, y después me dedicaría a repasar todo lo que habíamos dado de materia en todas las asignaturas, pero por un lado y por otro se me fueron ocurriendo un montón de cosas que hacer sobre un montón de temas como: pruebas de seguridad, administración y configuración de linux, resolución de problemas, experimentos de redes.... y quizá lo mas sorprendente es que dado un momento incluso me puse a programar (hacia un montón que no programaba), hice un par de experimentos en C (mas que nada para repasar algunas cosas y probar otras) y otro par en shell script.

En definitiva me fastidio bastante perder las 20 horas de clase (en las cuales habríamos dado bastante materia probablemente), pero por otro lado  creo que me ha beneficiado bastante, ya que con todo lo que he podido probar durante los 3 días he sacado un montonazo de conclusiones sobre cosas que no sabia y que gracias a algunos experimentos que hice ahora las entiendo muchísimo mejor =D, en definitiva ha sido una semana muy bien aprovechada.

Ademas por otra parte todas las pruebas que hice y los datos que saqué de ellas me servirán para hacer varias entradas en el blog, las iré poniendo según las vaya redactando.

Bueno y hablando del blog... me he propuesto poner como mínimo dos entradas por semana, la verdad es que quiero mantener el blog activo, pero me cuesta bastante encontrar tiempo para redactar las entradas y ademas durante la semana apenas tengo tiempo, así que casi siempre escribo durante el fin de semana, lo cual no me gusta mucho porque me gustaría publicar las entradas mas periódicamente (cada 2 o 3 días por ejemplo estaría bien), pero bueno, intentare hacer todo lo posible para mantener el ritmo.

Saludos :D


sábado, 13 de octubre de 2012

¿Cómo saber quien esta en mi red?

Buenas otra vez, en esta nueva entrada os traigo un mini-tutorial que creo que le puede resultar muuuyy interesante a bastantes personas, os enseñare como saber quien esta conectado en vuestra red. Sobre todo es interesante para las personas que tienen wi-fi (la mayoria vamos) y que quiere comprobar si hay alguien no autorizado que esta utilizando su red.

Bien, empezamos, para saber que ordenadores estan conectados a tu red usaremos el protocolo ICMP, quizá no os resulte familiar, pero si hablo del programa ping seguro que a mas de uno le suena. Resumiendo... lo que hace el ping es enviar una solicitud a una dirección IP en concreto, si hay un pc en esa dirección este respondera a la solicitud y obtendremos una respuesta, en caso de que no haya ningun pc simplemente no obtendremos respuesta.

Vale, ahora queremos poner esto en práctica, si quisiésemos comprobar que dispositivos hay conectados a nuestra red, tendríamos que hacer ping a todas y cada una de las direcciones de nuestra red de la siguiente manera:

- Abrimos una shell y escribimos :

ping 192.168.120.1

ping 192.168.120.2

ping 192.168.120.3

...etc, etc, etc

 NOTA: en el ejemplo puse la red 192.168.120.0 que es la que uso yo personalmente, normalmente por defecto los routers usan la red 192.168.0.1 o 192.168.1.1, si tienes el router configurado por defecto probablemente tengas una de esas dos redes.

Esto es demasiado engorroso, ademas de que nos llevaría mucho tiempo, ya que la máscara de subred que se suele usar es la 255.255.255.0 lo que indica que hay 254 direcciones útiles en la red, osea que tendríamos que usar el comando ping 254 veces para comprobar cuantos dispositivos hay conectados a nuestra red. Una solución posible seria escribir un script que ejecutase el comando ping con todas las diversas direcciones ip, (aunque la salida de datos que nos daría sería demasiado larga y el script tambien tardaría bastante en ejecutarse).

Otra solución posible sería la de hacer un ping a la dirección broadcast para que la solicitud ICMP se envíe a todos los ordenadores de la red, se haría de la siguiente manera:

ping -b 192.168.120.255

la dirección broadcast siempre es la ultima de la red, en este caso 192.168.120.255. El flag -b nos indica que la solicitud se debe de enviar como broadcast. Pero con este metodo a pesar de que parece bastante bueno tenemos otro problema y es que algunos dispositivos tienen desactivado por defecto la posibilidad de responder a una solicitud broadcast, de manera que en algunos casos puede ser que haya diversos dispositivos conectados a nuestra red y no responda a nuestra solicitud ICMP.


NMAP LA SOLUCIÓN DEFINITIVA

Bien, hasta ahora teníamos dos problemas, el primero es que si queríamos enviar solicitudes ping individualmente sería demasiado tedioso y nos llevaría mucho tiempo, y el segundo es que con la solicitud ICMP broadcast algunos dispositivos no nos responderían a pesar de estar en la red. Para poner solucion a estos problemas usaremos NMAP.

NMAP es un escaner de red, que nos permite emplear diferentes tipos de protocolos para realizar diversos tipos de escaneado en una red (es una herramienta realmente útil).

Podeis conseguir NMAP en su web oficial: http://nmap.org

Bien, una vez tengamos NMAP en nuestro pc abrimos una shell y ponemos lo siguiente (NMAP se puede usar con interfaz grafica, pero prefiero usarlo desde una shell):

nmap -sP 192.168.120.0-255

repasemos los flags:

-sP sirve para enviar solicitudes ICMP

192.168.120.0-255 es la direccion IP a la que queremos hacer ping, pero fijaros que en este caso he puesto el rango completo al que quiero hacer ping en el último byte de la direccion, de manera que asi se hará ping a todas las direcciones de mi red desde la 192.168.120.0 hasta la 192.168.120.255

veamos el resultado que da en mi caso:



Como se puede ver en mi caso salen 3 IPs, una es la del ordenador que estoy usando ahora mismo, otra es de mi router y otra es de mi smartphone, de esta manera sé que hay tres dispositivos conectados a mi red y que son tres dispositivos que me pertenecen a mi, ya que yo les he asignado esas IPs, si en este caso me apareciese una nueva IP que yo nunca he asignado querría decir que hay alguien ajeno conectado a mi red.

Esta técnica debería de funcionar en la mayoría de los casos, pero a veces puede ser que no funcione debido a que hay un bloqueo de los paquetes ICMP, en este caso habria que usar otro tipo de técnicas...

CLICK AQUÍ PARA IR A LA 2ª PARTE

Espero os haya gustado este mini-tutorial.

Saludos =D

[Manual] Como conseguir contraseñas Wi-Fi

Wolap !!!, hoy os traigo un nuevo manual de mi cosecha, en principio no tenía ninguna intención de subir este manual, pero ya que el tema salio en clase pues he decidido subirlo por si a alguien le interesa.

El manual trata sobre descifrar claves WEP, WPA/WPA2, para poder obtener acceso a puntos de acceso wi-fi de los cuales no tenemos la contraseña.

El manual (al igual que el de ARP Spoofing) lo escribí hace unos 5 años (este manual en concreto es un poco mas antiguo que el del ARP Spoofing), pero las técnicas que explico en el manual siguen funcionando igual de bien.

A continuación os dejo el manual: WEP,WPA-WPA2 Cracking

[ACTIVIDAD] Historia de los Hackers

Buenas, hoy os traigo un documental sobre la historia de los hackers que personalmente me parece muy interesante, el documental cuenta un poco el principio de todo y como con la aparición de las primeras lineas telefónicas ya había personas con la curiosidad suficiente y los conocimientos necesarios como para poder vulnerar el sistema y poder conseguir por ejemplo llamadas gratis.

Personalmente la primera parte del documental, en donde se habla de la vulneración de las líneas telefónicas me parece de lo mas increíble.

Bueno y sin más os dejo el documental:


jueves, 4 de octubre de 2012

[Manual] ARP Spoofing

Buenas, enlazando un poco con la actividad anterior de direcciones IP y MAC, he decidido subir un manual que escribí hace unos 5 años, en el cual explico como hacer un ARP Spoofing (algo que digamos esta bastante relacionado con direcciones IP y MAC), técnica que nos permite visualizar todo el trafico de un ordenador ajeno al nuestro que estea en nuestra misma red sin que este se entere...

El manual tiene muuuuuuuchísimas faltas de ortografía (lo siento, antes no tenía la manía de escribir bien xD), pero bueno, no os centreis en eso y centraros en el contenido en si, que es realmente interesante.

Por cierto, para entender el manual se deberían de tener ciertos conocimientos previos sobre redes, de todas maneras os recomiendo leer el manual para haceros una idea de como y con que facilidad alguien puede violar vuestra privacidad dentro de una red local.

A continuación os dejo el enlace al manual: ARP Spoofing

[ACTIVIDAD] Conversión de direcciones IP y MAC a binario

En esta entrada convertiremos una dirección IP y MAC a sus correspondientes en binario, primero para saber la dirección IP y MAC del equipo haremos lo siguiente:

Linux: accedemos a una shell de sistema, ya sea un terminal emulado como xterm o un terminal físico pulsado las teclas crtl+alt+F? siendo ? un numero entre 2 y 6, cuando esteamos en la shell tecleamos el siguiente comando:

ifconfig 

y nos aparecerán todos los datos de todas las interfaces, si queremos especificar una interfaz en concreto solo tenemos que indicarla como atributo, ifconfig [interfaz]. EJ: ifconfig eth0.

En linux tambien podriamos consultar la información desde la interfaz grafica, pero la manera de hacerlo varia dentro de cada distribución.

Windows: accedemos a una shell de sistema, para ello desde el menu de ejecucion tecleamos cmd, despues dentro del shell tecleamos el siguiente comando:

ipconfig /all

y nos aparecerán todos los datos relativos a las interfaces de redes. Si queremos hacerlo desde la interfaz gráfica desde el menu de ejecucion tecleamos ncpa.cpl para acceder al panel de configuracion de interfaces, despues solo tenemos que hacer click derecho encima de la interfaz de la cual queremo saber los datos y clicar en propiedades.

A continuación traduciremos una direccion IP y una MAC a binario, extraida de un equipo ubuntu:



Dirección MAC: 00:24:1D:9E:D7:34

Binario:00000000:00100100:00011101:10011110:11010111:00110100


Dirección IP: 69.51.65.19

Binario: 01000101.00110011.01000001.00010011