martes, 30 de agosto de 2011

Http Fingerprint.

Fingerprint, ¿Qué es? ¿Para qué sirve?

fingerprint En el caso de un criminalista forense, las huellas dactilares son marcas que quedan impresas en las superficies cuando alguien las toca e identifican inequívocamente a un sujeto. Para nosotros son algo un poco distinto.
Una huella, fingerprint, o como prefieras llamarla no es mas que una respuesta de “alguien”, llamémoslo destino, ante una petición determinada.


Nosotros <—– Comunicación —–> Destino

Analizando esas respuestas y comparándolas con unos patrones podríamos deducir qué tipo de servicio, sistema operativo, etc. esta del otro lado.

Ejemplo:
Petición
HEAD / HTTP/1.1 host: www.unaweb.org 
en el puerto 80.

Respuesta:
HTTP/1.1 200 OK
Date Mon, 20 Oct 2008 20:42:27 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
….
Dado que las técnicas de fingerprinting no son mas que un análisis de respuestas, entonces podemos aplicarlas a prácticamente cualquier servicio que tenga interacción con el cliente como por ejemplo ftp, telnet, http, etc.

Si por ejemplo hacemos:
david@sat:~$ ftp ftp.yyyy.es
Connected to xxx.yyyy.es
220-Welcome to Pure-FTPd
Name (ftp.yyyy.es:david): anonymous
Password:
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Ya tenemos algo de información. Eso, a groso modo, es una huella:

Una respuesta que da información. A veces este tipo de respuestas no aportan por si solas los datos suficientes para llegar a una conclusión, pero sí nos van marcando un camino. La clave aquí reside en diversificar y buscar por diferentes vías para poder contrastar la información obtenida. Hay que pensar que todo es susceptible de ser modificado para proporcionar una respuesta diferente a lo que debería ser, pero esto lo veremos mas adelante.

Quizá el fingerprinting mas famoso es el TCP/IP stack fingerprinting. Es lo que hace la opción -O implementada en nmap. Básicamente esta técnica consiste en jugar con el TCP/IP sabiendo como reaccionan los distintos Sistemas Operativos ante diferentes paquetes, valores de campos, etc.

(Mas información en http://nmap.org/book/osdetect.html)

HTTP Fingerprinting, HTTP y otras cosas raras

Las técnicas que se ocupan del análisis de las respuestas de los servidores web reciben el nombre de http fingerprinting. El propósito de estas no es, como en el caso del TCP/IP stack fingerprinting, averiguar el sistema operativo remoto, sino identificar los servidores HTTP que están prestando el servicio en el otro extremo de la conexión.



Como ya se sabe, los servidores web se entienden con los clientes a través de un protocolo llamado Hypertext Transfer Protocol (HTTP). HTTP es un protocolo a nivel de aplicación que lleva funcionando desde 1990. La primera versión, muy simple, fue la 0.9. En la primera mitad de los años 90 apareció la 1.0 (http://www.ietf.org/rfc/rfc1945.txt) con bastantes mejoras para dar paso en 1999 a la versión 1.1 (http://www.ietf.org/rfc/rfc2616.txt).



Estaría bien leer un poco el RFC de HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt), mas que nada para tener una visión global de todo y hacernos una idea de su funcionamiento. De todas maneras, como la lectura es un tanto espesa vamos a extraer lo más importante para tener una idea de la sintaxis básica de HTTP/1.1.

Las peticiones mas importantes son: GET, HEAD, DELETE y OPTIONS.


Sintaxis de los métodos GET, HEAD, DELETE y OPTIONS

Para comprender el funcionamiento de estos métodos vamos a ver unos cuantos ejemplos prácticos.


GET
Sintaxis: GET Request-URI PROTOCOL

El metodo GET ataca a cualquier información que se le pasa como argumento en Request-URI. Es una forma de “pedir” un archivo. Al hacer:
GET /pub/index.htm HTTP/1.1

Le estamos indicando al servidor que queremos el archivo /pub/index.htm y que empleamos el protocolo HTTP/1.1.

Un ejemplo práctico:
Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’. 
GET / HTTP/1.1
host: www.xxxx.com [ENTER][ENTER] 

 Respuesta:
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 14:28:57 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
Set-Cookie: PHPSESSID=ba7421d0b10bf48fb6d3c9e6fd79ca67; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, 
pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
 
2000
<!DOCTYPE HTML PUBLIC-//W3C//DTD HTML 4.01 Transitional//EN
http://www.w3.org/TR/html4/loose.dtd>
<html>
….. 
</html>
 
0
 
Connection closed by foreign host. 
david@sat:~$ 

Tras escribir la línea host: www.xxxx.com deberemos pulsar dos veces enter. La primera para indicarle el fin de la línea de petición (la de host: www.xxxx.com) y la segunda para indicarle el fin de las cabeceras opcionales.

Cuando en Request-URI ponemos / quiere decir que lo que queremos es el archivo index del directorio raíz.

En HTTP/1.0 bastaba con hacer un GET / HTTP/1.0, sin embargo desde la versión 1.1 hay que identificar el nombre de host. Esto tiene una explicación: Virtual Hosts.

 

Supongamos que tenemos una IP: 22.22.22.22 y dos nombres que apuntan a esa IP: www.xxxx.org y www.yyyy.org. Bien, en HTTP/1.1 al indicar el nombre del host el servidor es capaz de devolver un contenido diferente dependiendo de cual sea la petición. Es lo que se conoce como Virtual Hosts.

Nota: Existe una alternativa a indicar el nombre de máquina en la línea de cabecera host: Hacer el GET de la ruta completa al archivo indicando en la misma el nombre de máquina. Quiero puntualizar que aquí solo trato de dar unas pautas generales para que luego cada uno se lo cocine al gusto.

HEAD

Sintaxis: HEAD Request-Uri PROTOCOL

El método HEAD es idéntico a GET excepto porque porque el servidor no devuelve el contenido del archivo solicitado sino tan solo las cabeceras.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host:www.xxxx.com

Respuesta: 
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 14:22:05 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
Set-Cookie: PHPSESSID=cac08aaaa0b49abea7e499cbe9d742dd; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Connection: close
Content-Type: text/html; charset=ISO-8859-1


DELETE
Sintaxis: DELETE Request-URI PROTOCOL

Con este método le indicamos al servidor que debe borrar el archivo indicado en Request-URI. Lo normal por supuesto es que nos de un error del tipo 405: Method Not Allowed, 403: Forbidden o similar. Dependiendo del servidor http.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
DELETE / HTTP/1.1
host:www.xxxx.com

Respuesta:
DELETE / HTTP/1.0
HTTP/1.1 405 Method Not Allowed
Date: Tue, 21 Oct 2008 19:49:48 GMT
Server: Apache
Vary: accept-language,accept-charset
……


OPTIONS

Sintaxis: OPTIONS Request-URI PROTOCOL

Con este método pedimos información sobre los métodos permitidos para la petición/respuesta identificada por Request-URI.

OPTIONS permite utilizar un asterisco (*) como Request-URI. Cuando lo utilizamos se nos responde con los métodos permitidos en el servidor.

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to www.xxxx.com.
Escape character is ‘^]’.
OPTIONS * HTTP/1.1
host: www.xxxx.com

Respuesta: 
HTTP/1.1 200 OK
Date: Tue, 21 Oct 2008 15:25:51 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 0
Connection: close
Content-Type: text/plain; charset=ISO-8859-1
 
Connection closed by foreign host.
david@sat:~$

Aunque hay mas métodos, GET, HEAD, DELETE y OPTIONS son, como ya he dicho anteriormente los mas usados dentro del http fingerprinting. Se quedan en el tintero POST, PUT, TRACE y CONNECT que también tienen mucho juego.


En el otro lado del cable

Como ya se pudo observar, las respuestas por parte del servidor que hemos visto en el apartado anterior siempre comenzaban por algo así:
HTTP/1.1 200 OK

En general la sintaxis podría ser como sigue:
PROTOCOL STATUS_CODE METAINFORMATION

¿Qué significa esto?. Bien, con esta línea el servidor nos indica si la petición del cliente se ha realizado con éxito o no y porque. En un primer lugar se especifica la versión del protocolo con la que estamos trabajando (PROTOCOL), a continuación aparece el STATUS_CODE o código de estado que consiste en tres  dígitos que nos indican el resultado de la petición efectuada y por último encontramos la metainformación (METAINFORMATION), es decir, una pequeña información sobre la respuesta devuelta por el servidor.

Los códigos de estado pueden agruparse en cinco bloques:
  • 100 – 199: De Información.
  • 200 – 299: Petición del cliente procesada correctamente. Recibida,
    entendida y aceptada.
  • 300 – 399: Petición del cliente redireccionada.
  • 400 – 499: Error en la Peticion del cliente.
  • 499 – 599: Error en Servidor. Se produce cuando el servidor falla y es incapaz de realizar alguna petición.
El esquema de todos los códigos de estado es el siguiente:
  • 1XX – Informational
  • 100 Continue
  • 101 Switching Protocols
  • 2XX – Succeful
  • 200 OK
  • 201 Created
  • 202 Accepted
  • 203 Non-Authoritative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content
  • 3XX – Redirection
  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 306 (Unused)
  • 307 Termorary Redirect
  • 4XX – Client Error
  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Leght Required
  • 412 Precondition Failed
  • 413 Request Entity Too Large
  • 414 Request-URI Too Long
  • 415 Unsupported Media Type
  • 416 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 5XX – Server Error
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavaiable
  • 504 gateway Timeout
  • 505 HTTP Version Not Supported
Técnicas de http fingerprinting

Como ya hemos visto anteriormente, el http fingerprinting consiste en adivinar que servidor web esta corriendo mediante el análisis de las respuestas que este nos devuelve.

Quizá el primer esbozo de estas técnicas aparece con la famosa cabecera Server. Es lo que se conoce como banner string. A continuación un par de  ejemplos:

Petición:
david@sat:~$ telnet www.xxxx.com 80
HEAD / HTTP/1.1
host: www.xxxx.com

Respuesta:
HTTP/1.1 200 OK
Date: Wed, 22 Oct 2008 10:44:15 GMT
Server: Apache
X-Powered-By: PHP/4.3.9
…..

Petición:
david@sat:~$ telnet www.xxxx.net 80
HEAD / HTTP/1.1
host: www.xxxx.net

Respuesta:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 52034
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.0
Set-Cookie:
 
CSAnonymous=QzAXvh01yQEkAAAAZjNiZjlmMWItZGVhMi00NjFiLTgzNjEtZTljOWY2YzljYzlj0;
domain=xxxx.net; expires=Thu, 23-Oct-2008 14:43:41 GMT; path=/; HttpOnly
…..

En el primer ejemplo tenemos un Apache (http://www.apache.org) mientras que en el segundo caso se trata de un Internet Information Server de Microsoft (http://www.iis.net). Todo esto es una suposición. ¿Por qué? simplemente porque es bastante fácil modificar el servidor web para que oculte o cambie esta cabecera. En Apache, por ejemplo, existe httpd.conf y mod_security para poder cambiar la identidad del mismo.

Si nos fijamos en las respuestas de los servidores web veremos que, además del campo Server, existen numerosas diferencias como por ejemplo:
  • Orden de las cabeceras.
  • Palabras utilizadas para el contenido de las cabeceras.
  • Uso de mayusculas y minisculas.
  • Cabeceras especificas.
  • etc.
Bien, todo esto es lo que constituye la  base del http fingerprinting.


Ejemplos y recursos

El siguiente paso es tener (o crear) alguna relación de las diferencias que hay entre los distintos servidores. Httprecon (http://www.computec.ch/projekte/httprecon) es un proyecto que se dedica a investigar sobre este campo. Tienen una base de datos bastante completa (http://www.computec.ch/projekte/httprecon/?s=database)  con mas de 320 entradas. En ella se puede navegar por las distintas peticiones (GET, HEAD, DELETE, OPTIONS y TEST) y ver que contenido y orden tienen las cabeceras de respuesta de cada servidor ante la petición formulada.

Por ejemplo, para el primer caso: GET EXISTING.

Como se nos indica en la web consiste en hacer un GET de un recurso existente. Por ejemplo podría ser GET / HTTP/1.1. Si pinchamos en el método aparecerá un listado con todas las cabeceras posibles y sus valores correspondientes según el servidor que responda.

Vamos a ver un par de casos prácticos:

Petición:
david@sat:~$ telnet www.xxxx.com 80
Trying 22.22.22.22…
Connected to 22.22.22.22.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host: www.xxxx.com

Respuesta:
HTTP/1.1 200 OK
Content-Length: 600
Content-Type: text/html
Content-Location: http://www.xxxx.com/Default.htm
Last-Modified: Thu, 13 Oct 2005 07:14:52 GMT
Accept-Ranges: bytes
ETag: “07ee8cdc5cfc51:ec2″
Server: Unknown
X-Powered-By: ASP.NET
Date: Thu, 23 Oct 2008 09:08:15 GMT
 
 
Connection closed by foreign host.
david@sat:~$

El método empleado es un HEAD sobre un recurso existente. En httprecon podemos consultar la entrada de la base de datos correspondiente.
  • En este caso la cabecera “Server” no nos aporta información.
  • Lo primero es consultar el orden de las cabeceras. En este caso solo hay un candidato que presenta las cabeceras en ese orden:
a) Microsoft IIS 6.0
  • Si prestamos atención a los valores de las cabeceras Content-Type, Accept-Ranges y X-Powered by podremos comprobar que en efecto se trata de MS-IIS/6.0.
  • Dado que IIS 7.0 es la nueva versión que Microsoft saco para los sistemas Windows server 2008, todo indica que se trata de un Windows 2003.
Vamos con otro ejemplo:

Sabemos que en la IP 3.3.3.3 hay un router.

Petición:
david@sat:~$ telnet 3.3.3.3 80
Trying 3.3.3.3…
Connected to 3.3.3.3.
Escape character is ‘^]’.
HEAD / HTTP/1.1
host: 3.3.3.3

Respuesta:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm=”P-660HW-D1″
Content-Type: text/html
Transfer-Encoding: chunked
Server: RomPager/4.07 UPnP/1.0
Connection: close
EXT:
 
083
<html>
<head>
<title>Protected Object</title></head><body>
<h1>Protected Object</h1>This object on the RomPager server is protected
0
 
Connection closed by foreign host.
david@sat:~$

En este caso el método empleado es un HEAD sobre un recurso existente. Consultamos la base de datos.
  • Según la cabecera “Server” se trata de un router ZyXEL. En cuanto a  la version del servidor web, mirando el orden de las cabeceras hay tres  opciones:
a) ZyXEL ZyWALL 10W RomPager 4.07. 
b) ZyXEL Prestige 662H-61 RomPager 4.07.
c) ZyXEL Prestige 662H-63/67 RomPager 4.07.

En algunas ocasiones se nos presentara una situación en la que nos quedamos con dos o tres candidatos y no hay diferencias documentadas entre los mismos. Aunque las técnicas empleadas no sean una ciencia exacta si pueden ser muy útiles para guiar al intruso potencial en su recopilación de información.

En este caso, teniendo en cuenta lo que dice la cabecera WWW-Authenticate, el país (España) y que telefónica ha vendido ese modelo de router a diestro y siniestro probablemente no cueste demasiado llegar a la conclusión de que tenemos un router P660HW.

Lógicamente es imposible conocer de memoria todas las diferencias entre los servidores web, y, a veces, consultar las bases de datos puede hacerse eterno.

Todo este proceso (al igual que ocurre con el TCP/IP stack fingerprinting) está automatizado en programas como httprecon (http://www.computec.ch/projekte/httprecon/?s=download), httprint (http://net-square.com/httprint/#downloads) y muchos mas. Aquí entra en juego el gusto y las preferencias de cada uno.


Defensa

¿Qué hacer para defendernos de estas técnicas?

Para ponerlo un poco mas difícil se podrían tomar algunas medidas, como por ejemplo cambiar el campo Server, el orden y contenido de las cabeceras, etc.. La idea es modificar el servidor web para que cambie algunas respuestas y así sea mas complicada la identificación. En Apache, por ejemplo, podemos utilizar mod_security (http://www.modsecurity.org) para hacer algunas modificaciones.

Para Microsoft IIS tenemos disponible ServerMask (http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1268), desarrollado por port80software.

Podríamos decir que estas técnicas siguen el principio de lo que se conoce como Security by obscurity, es decir, algo así como conseguir que sea mas seguro evitando que alguien de fuera pueda saber que es exactamente lo que esta al otro lado.









Agradecimientos a: http://www.totalsec.com.ar


Artículo original publicado por David Carbajo Carralero, Alicante, 2010 (http://desistemas.net/2010/03/16/http-fingerprinting/)

Trinity Rescue Kit: Tutorial para eliminar la contraseña de administrador en Windows


Quiero compartir con ustedes una utilidad muy importante, tanto para el escaneo de virus como para la recuperación de datos en una PC. Trinity Rescue Kit (TRK) es una distribución Linux que se ejecuta como un LiveCD (es decir, se bootea desde el arranque de la máquina) para poder escanear y chequear los discos duros desde fuera.
Si bien se puede chequear cualquier sistema operativo, su uso está dirigido a aquellos sistemas con Windows que pueden haber sido afectados por un virus o con pérdida de datos. Se basa en un kernel de la distro Mandriva para utilizar los comandos y demás.
Para remover los virus, utiliza 4 motores de antivirus muy poderosos: BitDefender Scanner, Grisoft AVG, F-prot y Clamav.
Un agregado importante es que si tenés una conexión a internet que utilice DHCP, las bases de los antivirus se actualizarán inmediatamente.

Entre sus funciones mas importantes destaca:
  • Herramienta para borrar contraseña de Windows.
  • Puede escribir en NTFS gracias a ntfs-3g.
  • Clona discos NTFS a través de la red con CloneXP.
  • Incluye herramientas de recuperación de datos.
  • Tiene 2 herramientas para la detección de rootkit.
 

 

1.0 - Modo de uso:

virusscan -a {clam,avg,fprot,bde} -c -g -n -d {Destino}

1.1 - Parametros:

-a  Elige el motor del escaneo. Se usa ‘clam’ para ClamAv, ‘fprot’ para F-Prot, ‘avg’ 
para Grisoft AVG y ‘bde’ para BitDefender. Si no se pone el parámetro por defecto usa ClamAv.
-c  Extensiones alternativas do los motores.
-g  Para actualizar los motores. No se puede usar en un escaneo.
-d  Destino del escaneo para poner varios destinos se debe separar por comas.
-n  El AVG se actualiza solo antes de escanear este modificador es para que no se actualice.
-h  Mensaje de ayuda.
Nota Importante: TRK no es una utilidad para principiantes, requiere ciertos conocimientos previos para poder ser utilizada.
Advertencia: El escaneo de un disco rígido entero puede llevar mucho tiempo. Esto se debe a que escanea absolutamente todo el disco, no sólo las áreas de "probabilidad" de virus. Se recomienda dejar la PC funcionando e ir a hacer algo productivo en el medio.

2.0 - Resetear la contraseña de cualquier usuario de Windows, incluida la del administrador

Podemos elegir entre dejar la contraseña en blanco o simplemente escribir una nueva. Para esto solo tenemos que seguir los siguientes pasos:
1 – Iniciar la PC y bootear desde el CD de Trinity Rescue Kit. Luego selecionar la opción 1 : TRK 3.4 in failsafe mode (No menu, VGA, noacpi, noapic)



 





2 – Ejecutar el comando winpass


3 – Seleccionar la ubicación donde se encuentra la instalación de Windows. Por default es la opción 1




4 – Esto hará que se listen todos los usuarios en dicha instalación de Windows
 

5 – Seleccionar el usuario al que queremos eliminarle la clave: winpass –u Administrador


6 – Nuevamente debemos seleccionar la ubicación donde se encuentra la instalación de Windows. Por default es la opción 1
 

7 – Seleccionar la operación que deseamos realizar. En este caso será la 1: Clear (blank) user password


8 – Nos dirá que la clave ha sido eliminada y que se ha creado un archivo de backup


9 – Ejecutamos el comando reboot y eso reiniciará la PC. Cuando ingrese a Windows, ingresará automáticamente con la cuenta de Administrador sin pedir ninguna clave.


Obviamente se puede jugar (y mucho) con esta utilidad. Si alguien realiza algo siéntase libre de enviar sus comentarios!

Este tutorial en formato PDF [978.88KB]: http://www.mediafire.com/?im6icyj0qmp3j56
Sitio oficial de Trinity Rescue Kit: http://trinityhome.org/Home/index.php?wpid=1&front_id=12
Descarga Oficial de Trinity Rescue Kit 3.4 build 367 [145.59MB]: http://rm.mirror.garr.it/mirrors/trk/trinity-rescue-kit.3.4-build-367.iso
Descarga Mirror de Trinity Rescue Kit 3.4 build 367 [145.59MB]: http://www.mediafire.com/?7k27kvwc818a2g7


fuente: http://www.totalsec.com.ar

Listado de Conferencias de Seguridad Informática

Estan organizadas alfabéticamente y es solo para poner a disposición un completo compendio de eventos que no debemos pasar por alto, no solo por los papers que se liberan, sino por todos los demás materiales que quedan luego de este tipo de eventos.

Información extraída de: http://www.sec-track.com/listado-de-conferencias-de-seguridad-informatica

Actualizar BackTrack5 a BackTrack5 R1 sin reinstalar

Antes que nada quiero dar las gracias y el créditos a DragonJAR ya que en su pagina http://www.dragonjar.org segui los pasos para actualizar mi BackTrack y poder hacer este tutorial.

El 18-08-2011 salió el BackTrack 5 R1. Tal como se puede leer en el sitio web oficial, este release contiene más de 120 correcciones de errores, 30 herramientas nuevas y 70 actualizaciones de las herramientas. Además, el kernel se ha actualizado a la versión 2.6.39.4, la cual incluye los parches de inyección correspondientes.

La complicación reside en que no hay una manera de actualizar directamente desde la versión 5 a la versión 5 R1. Pero hay unos pasos bastante completo para actualizar el sistema operativo sin tener que reinstalarlo. No es oficial y por tanto puede no ser el mejor, pero yo decidi aplicarlos y como han sido publicados en el sitio de DragonJAR me inspiro confianza.

Seguí al pie de la letra todos estos pasos y realmente funciono todo bien, así que voy a explicar la manera de ejecutar estos pasos:

Nota importante: Esto sólo sirve para versiones 32 bits

Descargar el primer script

Lo primero que que hay que hacer es ejecutar el script llamado BT5MiGRATE realizado por Bl4ck5w4n.tk, y lo que hace este script es comparar los cambios entre los paquetes instalados en Backtrack 5 y Backtrack 5 R1, para GNome o KDE y generar un listado para actualizar estos paquetes según el gestor de ventanas que se utilice.

descargamos el primer script

1: wget http://bl4ck5w4n.tk/wp-content/uploads/2011/08/bt5migrate.tar

Luego de que se descargue el script, hay que descomprimirlo, y situarnos en la carpeta donde se descomprimió y ejecutarlo.

1: tar -xvf bt5migrate.tar

2: cd bt5migrate

3: python bt5migrate.py

Luego se debe descargar el segundo script llamado Backtrack5_update que permite actualizar por SVN todas las herramientas de Backtrack (que lo permiten), también actualiza el sistema y los paquetes que se encuentren desactualizados, lo que lo hace un complemento ideal para el primer script ya que si se pasa por alto algún paquete con BT5Migrate, con Backtrack5_update se podrá tener un sistema operativo actualizado sin problemas.

Descargamos el segundo script

1: wget http://sickness.tor.hu/wp-content/uploads/2011/06/backtrack5_update.py

Le damos permisos de ejecución al segundo script

1: chmod a+x backtrack5_update.py

Ejecutamos del segundo script

1: ./backtrack5_update.py

seleccionamos la opción 7 (update all).

y listo nuestro sistema quedara actualizado a la version R1

Se debe compilar y corregir de nuevo el wireshark por que la actualización crea problemas.

martes, 9 de agosto de 2011

Los 100 mejores juegos gratis para Linux


Los juegos quizás sea el talón de aquiles de la adaptación de sistemas Linux en el escritorio en entornos caseros. Aunque para Linux no estén disponibles los juegos punteros, si que tiene muchos juegos de gran calidad. Aquí hay una lista de 100 juegos que podras descargar de forma totalmente gratuita para tu Linux:

1. Urban Terror
2. Alien Arena
3. Wolfenstein: Enemy Territory
4. True Combat: Elite
5. True Combat: Close Quarters Battle
6. Smokin’ Guns
7. AssaultCube
8. Cube 2: Sauerbraten
9. Dark Places
10. Nexuiz
11. Xonotic
12. Red Eclipse
13. Legends
14. World of Padman
15. Tremulous
16. Warsow
17. Open Arena
18. ZEQ2 Lite
19. Zero Ballistics
20. Q3Rally
21. Greedy Car Thieves
22. Lemmingball Z
23. Waterstorm
24. Teeworlds
25. Savage: The Battle for Newerth
26. Savage 2: A Tortured Soul
27. Regnum Online
28. PlaneShift
29. Auteria
30. IConquerU
31. Eternal Lands
32. RuneScape
33. The Mana World
34. Daimonin
35. Atrinik
36. Stendhal
37. GemRB
38. Hero of Allacrost
39. FreeDroidRPG
40. Ardentryst
41. GNU FreeDink
42. Battle for Wesnoth
43. UFO: Alien Invasion
44. Legendary Legions
45. Free Heroes II
46. FreeCol
47. Freeciv
48. LordsAWar!
49. Scorched3D
50. Warmux (Formerly Wormux)
51. Hedgewars
52. Glest
53. MegaGlest
54. 0 A.D.
55. Seven Kingdoms: Ancient Adversaries
56. Battles of Antargis
57. Zero-K
58. Spring: 1944
59. netPanzer
60. Widelands
61. Unknown Horizons
62. OpenTTD
63. Simutrans
64. LinCity-NG
65. Vega Strike
66. Thunder and Lightning
67. FlightGear
68. GL-117
69. Search and Rescue II
70. Naev
71. Chromium B.S.U.
72. Glaxium
73. Danger from the Deep
74. Rigs of Rods
75. Vdrift
76. Ultimate Stunts
77. Tile Racer
78. ManiaDrive
79. TORCS
80. Speed Dreams
81. Trigger
82. Armagetron Advanced (Armacycles Advanced in Fedora)
83. GLtron
84. BMExt-GLtron
85. Extreme Tux Racer
86. SuperTuxKart
87. CannonSmash
88. Free Tennis
89. Slam Soccer 2006
90. PokerTH
91. Yo Frankie!
92. Plee the Bear
93. SuperTux
94. Go Ollie!
95. Frozen Bubble
96. Zaz
97. Amoebax
98. Secret Maryo Chronicles
99. Mega Mario
100. TuxTyping

En la entrada original puedes encontrar el enlace a la web oficial de cada juego, así como una pequeña descripción de los mismos con una captura de pantalla.