Ubuntu 10.04 Lucid Lynx se acerca

Ubuntu 10.04 Countdown

Visto en immanuel-peratoner.de

HowTo: Intalar Skipfish en Ubuntu.

Skipfish es una herramienta para escaneo de vulnerabilidades en sitios web muy completa desarrollada por gente de google que al terminar el escaneo presenta los resultados en forma muy amigable (html).

Para instalarlo en ubuntu necesitaremos:

  1. Descragar sikpfish aquí.
  2. Instalar algunos paquetes ( libssl-dev y libidn11-dev ) ya sea con synaptic o en linea de comandos:

      sudo apt-get install libssl-dev libidn11-dev
     
  3. Descomprimir el paquete en alguna carpeta
    e.j.

      cd /tmp && tar -zxvf /opt/descargas/skipfish-1.13b.tgz
     
  4. Usando una terminal ir a la carpeta del skipfish y ejecutar make:

      cd /tmp/skipfish && make
     
  5. ahora necesitamos copiar un diccionario de la carpeta …/skipfish/dictionaries a …/skipfish con el nombre “skipfish.wl”:

      cp /tmp/skipfish/dictionaries/default.wl /tmp/skipfish/skipfish.wl
     
  6. Finalmente podemos correr un test:

      mkdir /tmp/results
       /tmp/skipfish/skipfish -o /tmp/results http://localhost/myweb
     

Es importante revisar los readme’s que están tanto en la carpeta skipfish como en la dictionaries.

Happy Testing !!

Por petición.. algunas screenshots:
skipfish corriendo

Reporte generado por skipfish (HTML)

HowTo: Explorar un equipo remoto por medio de ssh y nautilus (sftp)

Una de las funcionalidades más interesantes del escritorio gnome es sin duda el gvfs (gnome virtual file system – Sistema virtual de archivos de gnome) por medio del cual podemos explorar gráficamente distintos equipos remotos de una forma simple y como si fuera local.

Para realizar la exploración es necesario conectarnos a estos equipos remotos mediante algún protocolo como smb (samba – comparticiones de windows), ftp, webdav, sftp (secure ftp) entre otros.

En esta ocasión veremos el caso de sftp que nos permite conectarnos a un equipo que tenga instalado el openssh y esté corriendo el servidor del mismo, esto nos permite explorar todo el contenido al que tenga acceso el usuario (del equipo remoto) con el que nos conectemos.

Para comenzar necesitamos tener instalados algunos paquetes:

Del lado del equipo remoto:


  sudo apt-get install openssh-server
 

Del lado del equipo cliente:


  sudo apt-get install sshfs openssh-client
 

Ya que tenemos estos paquetes instalados abrimos el nautilus en su modo de navegador y damos click en el botón de cambiar la barra de dirección entre botones y texto para que podamos escribir la dirección a la que queremos llegar.


Una vez que tenemos la barra de dirección editable escribimos la linea de conexión de esta forma:


  ssh://<ip>/<carpeta o direccion en el equipo remoto>
 

Tambien podemos agregar el usuario a la linea de conexión de esta forma:


  ssh://<usuario>@<ip>/<carpeta o direccion en el equipo remoto>
 

Despues damos enter y nos aparecerá una ventana en la que nos pedirá el nombre de usuario (si no lo incluimos en la linea de conexion) y contraseña y en donde podemos elejir una opción para manejar las identidades y al dar click ok.



Si los datos son correctos nautilus mostrara los archivos de la carpeta a la que nos acabamos de conectar..


En algunos casos puede aparecer un error que indica que nautilus no sabe como manejar el protocolo sftp pero puede ser un simple error del nautilus que no afecte la conexión. La forma de comprobar esto es observar los elementos de la barra lateral ya que, si se encuentra conectado, debe aparecer un elemento con la leyenda “sftp” como este:



También se puede observar el icono de la conexión en el escritorio.

Algo interesante de gvfs es q te deja hacer uso de los archivos de forma casi local, es decir, si queremos editar un archivo simplemente le damos doble click y este se abrirá y me dejara editarlo y al guardar los datos se guardaran en el equipo remoto. También podemos reproducir vídeo y audio sin mayor problema y sin necesidad de copiar el archivo a nuestro equipo.

Una vez que se a terminado de usar la conexión esta puede ser cerrada dando click al icono de “eject” que esta en la barra lateral a un lado de la carpeta montada:

Para cerrar la conexión también se puede dar click derecho a la carpeta que aparece en el escritorio y seleccionar la opción desmontar

Una vez que el elemento desaparezca de la barra lateral la conexión abra quedado cerrada.

Nota Extra:

Las conexiones establecidas quedan montadas en una carpeta con el nombre de la conexión y se crea dentro de una carpeta llamada .gvfs que esta en el directorio del usuario que hizo la conexión.

Espero que sea útil esta información.

HowTo: Realizar consultas a una base de datos sqlite desde java.

Sqlite no es un gestor de bases de datos como MySql, Oracle o PostgreSql sino que, es una librería que permite tener una base de datos transaccional en un archivo sin necesidad de un servidor o configuración alguna lo cual puede llegar a ser muy útil para cierto tipo de proyectos que no requieran un servidor dedicado de base de datos.

Para poder utilizar este tipo de bases de datos como nuestra capa de persistencia en java todo lo que necesitamos es la librería (jar) o “driver” que puede ser descargado desde aquí.

Una vez descargada la librería de sqlite para java, podemos agregarlo a nuestro buildpath si es que estamos usando una IDE como eclipse o netbeans o agregarlo al classpath al momento de compilar la aplicación.

Para realizar la conexión únicamente necesitamos agregar las siguientes lineas:


  Class.forName("org.sqlite.JDBC");
  Connection conn = DriverManager.getConnection("jdbc:sqlite:sqliteFile");
 
  • La primera linea se encarga de cargar la clase de la librería sqlite.
  • La segunda linea crea una conexión a la base de datos auto contenida (archivo).
  • “sqliteFile” es la ruta completa del archivo (ej. /opt/base1.sqlite) que contiene o contendrá la base de datos, si el archivo no existe sera creado eh inicializado y si ya existe sera usado.

Una vez creada la conexión podemos usarla para acceder a la base de datos.


  PreparedStatement ps = null;
  ps = conn.prepareStatement("insert into tabla1 values (?);");
  ps.setInt(1,10);
  ps.execute();
  ps.close();
 

Hay que tomar en cuenta que por el carácter de este tipo de bases de datos no se puede escribir cuando se tiene un flujo de lectura abierto o leer cuando se tiene un flujo de escritura abierto, es decir, al realizar una transacción en la base de datos esta se bloquea hasta que la transacción se cierra por lo que es muy importante cerrar dicha transacción tan pronto como sea posible.
Se recomienda hacer uso de los prepared statements y de los batch y realizar todas las transacciones de una sola vez.


  PreparedStatement ps = null;
  ps = conn.prepareStatement("insert into tabla1 values (?);");
  for(int i=0; i < 20 ; i++){
    ps.setInt(1,i);
    ps.addBatch();
  }
  conn.setAutoCommit(false);
  ps.executeBatch();
  conn.commit()
  ps.close();
 

Tambien hay que recordar cerrar los ResultSet en cuanto se terminen de usar.


  PreparedStatement ps = conn.prepareStatement("SELECT * FROM tabla1");
  ResultSet rs = ps.executeQuery();
  while(rs.next()){
    System.out.println(rs.getString(1));
  }
  rs.close();
 

Para finalizar dejare el codigo de un ejemplo completo:


/** @author cool2k
* fecha 05/JUN/2009
*
* Ejemplo para crear una base de datos con la libreria sqlite y crear algunas entradas.
*
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class sqlite {

private sqlite(){}

/**
*
* @param args
* @throws ClassNotFoundException
* @throws SQLException
*/
public static void main(String[] args)
throws ClassNotFoundException, SQLException{
Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/tmp/db1.sqlite");
PreparedStatement ps = null;

conn.prepareStatement("create table tabla1(id,nombre,apellido,telefono)").execute();
conn.prepareStatement("create table tabla2(id,usuario,password,email)").execute();

conn.setAutoCommit(false);

ps = conn.prepareStatement("insert into tabla1 values(?,?,?,?)");
ps.setInt(1, 1);
ps.setString(2, "Juan");
ps.setString(3, "Perez");
ps.setString(4, "55123456");
ps.addBatch();
ps.setInt(1, 2);
ps.setString(2, "José");
ps.setString(3, "Peres");
ps.setString(4, "55345612");
ps.addBatch();
ps.setInt(1, 3);
ps.setString(2, "Ana");
ps.setString(3, "Perez");
ps.setString(4, "55561234");
ps.addBatch();
ps.executeBatch();
conn.commit();
ps.close();

ps = conn.prepareStatement("insert into tabla2 values(?,?,?,?)");
ps.setInt(1, 1);
ps.setString(2, "jperez");
ps.setString(3, "mypass");
ps.setString(4, "j.perez@correo.com");
ps.addBatch();
ps.setInt(1, 2);
ps.setString(2, "joperes");
ps.setString(3, "mypass2");
ps.setString(4, "jose.peres@correo.com");
ps.addBatch();
ps.setInt(1, 3);
ps.setString(2, "aperez");
ps.setString(3, "mypass3");
ps.setString(4, "ana@correo.com");
ps.addBatch();
ps.executeBatch();
conn.commit();
ps.close();

conn.close();

}
}
 

Espero que esta entrada les sea de ayuda.
Saludos !!

Contador para Ubuntu 9.04

Pues una vez más como de costumbre ya están disponibles los contadores para el lanzamiento de la nueva versión de ubuntu, la 9.04 jaunty así que aquí dejo una de estos contadores.

Ubuntu 9.04 - on desktops, netbooks, servers and in the cloud

HowTo: Cambiar la resolucion de la consola (tty)

Día con día nuestros escritorios linux van mejorando y se ven más y más impresionantes y nos permiten hacer más y más cosas con herramientas gráficas pero, ya sea por costumbre, facilidad, rapidez o por falta de una opción gráfica, algunas veces tenemos que usar la consola de linea de comandos.

Existen varios emuladores de la consola de linea de comandos en el ambiente gráfico (gnome-terminal, xterm, konsole,..) pero algunos usuarios podemos preferir o necesitar usar la consola real (ctrl+alt+[F1 o F2 o F3 .... F7]) y al pasar a ella encontramos, normalmente, que sin importar el tamaño de nuestro monitor o la capacidad de la tarjeta gráfica la consola luce exactamente igual que desde hace 20 años, es decir, nos encontramos con un numero muy reducido de lineas y columnas por pagina y letras de tamaño enorme.

Podemos cambiar esto de una forma muy sencilla cambiando la resolución de la consola siguiendo estos pasos:

1.- Abrimos el archivo con un editor en modo superusuario.


  gksu gedit /boot/grub/menu.lst

 

o


  sudo nano /boot/grub/menu.lst
 

2.- Buscamos en la parte final del archivo la entrada del kernel que usamos para iniciar linux normalmente:


  title Ubuntu 8.10, kernel 2.6.27-9-generic
  root (hd0,0)
  kernel /vmlinuz-2.6.27-9-generic root=UUID=xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash
  initrd /initrd.img-2.6.27-9-generic
  quiet
 

3.- editamos la linea que empieza con "kernel" y agregamos la opción vga=xxx o si ya existe cambiamos el valor por el que necesitemos de la tabla de resoluciones siguiente:

Colores 640x480 800x600 1024x768 1280x1024 1600x1200 Preguntar al inicio
8 bits vga=769 vga=771 vga=773 vga=775 vga=796 vga=ask
16 bits vga=785 vga=788 vga=791 vga=794 vga=798 vga=ask
32 bits vga=786 vga=789 vga=792 vga=795 vga=799 vga=ask

de modo que debe quedar así:


  kernel /vmlinuz-2.6.27-9-generic root=UUID=xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx ro quiet splash vga=791
 

En este caso lo estoy configurando para obtener una resolución de 1024x768 con 16bits de colores.

4.- Reiniciar el equipo.

Nota:

Sí después de reiniciar el sistema manda error y no nos deja bootear podemos editar temporalmente la opción desde el menú de inicio de grub. Solo hay que seleccionar la opción a editar (del menú de inicio de grub) y presionar la tecla "e" después seleccionar la linea a editar (la que empieza con kernel) y presionar nuevamente la tecla "e". En este punto nos da un cursor con el que podemos movernos y editar la opción vga a otro valor que si sea aceptado o incluso podemos quitar la opción vga por completo.
Una vez concluida la edición salimos del modo editor con la tecla "Esc" y después presionamos la tecla "b" para iniciar nuestro sistema con las opciones editadas.

Saludos!.

Novia via Debian

Vía leprosys me encuentro con este interesante post que fue encontrado en Andrés Garcés y aparentemente es originario de Entre tuxes y pepinos.

Lo dejo aquí para que lo disfruten tanto como yo.

Empezaremos por buscar una novia


   $ aptitude search novia
 

Nos la quedamos


   $ aptitude install novia
 

Ojeamos sus atributos


   $ stat novia
 

La comparas con otra a la que tanteabas desde hace una semana


   $ cmp novia la_otra
 

Compruebas si hay conexión


   $ ping novia
 

Y cómo es dicha conexión


   $ netstat
 

Sí, definitivamente nos la quedamos. Nos aseguramos que sepa que somos su novio…


   $ chown yo novia
 

…y de que no nos pueda poner los cuernos…


   $ chmod 700 novia
 

La moldeamos a nuestro gusto


   $ cat 95-60-90 >> novia
 

Nos vamos a una fiesta en casa de unos colegas y tenemos un calentón. Nos vamos a un lugar aislado, oculto


   $ cd .dormitorio_padres_colega
 

Comprobamos que no hay nadie más


   $ ls -a
 

Buscamos el fastidioso enganche del Sosten…


   $ grep 'enganche_sosten' novia
 

Al lío. Conectamos nuestros cuerpos de la forma tradicional


   $ ssh yo@novia
 

Si alguien quiere un 69 (u otro “slot”), tan sólo hay que decírselo


   $ ssh -p 69 yo@novia
 

Dejamos nuestra semilla


   $ wget http://yo.com/semilla
 

Y separamos nuestros cuerpos


   $ exit
 

Ordenamos y limpiamos un poco el cuarto


   $ clear
 

Poco después te enteras de que metiste el penalti (¡Maldito preservativo!). Nueve meses más tarde tu novia da a luz


   $ tar -xzvf novia.tar.gz
 

Por las presiones de las familias, decides formalizar la relación y os casáis. Fundáis una familia con todo lo que ello conlleva…


   $ addgroup familia
   $ adduser novia familia
   $ adduser hijo familia
   $ alias parienta="novia"
   $ alias crio="hijo"
 

Haces una nota mental para acordarte de este “”””maravilloso día”””” y que no se te olvide, todo ello para evitar que no te ponga a parir la parienta


   $ crontab -e
 

Todo va bien hasta que inexplicablemente un día se le cruzan los cables a la parienta y mata a vuestro hijo


   $ pkill hijo
 

Meditas sobre todo lo que ha sucedido y sobre las mujeres


   $ man mujeres
 

Y efectivamente llegas a una sabia conclusión


   $ No existe entrada de manual para mujeres
 

Pese a que te aseguraste de que no tendrías cuernos, si ambos sois de una raza y el crío de otra, o tienes otro tipo de confirmación,
vete buscando a un tal root…


   $ find / -name root
 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.