jueves, 20 de enero de 2011

America's Army - Punkbuster

Hola, escribo este pequeño post porque he instalado el America's Army y tuve un problema con la actualizacion automática del PunkBuster (que no es otra cosa que un programita anti-chiter). En fin, buscando en internet me di cuenta que muchos tienen el mismo problema y no hay una solución... hasta ahora!

La forma en que yo solucione el tema fue muy sencilla: Hay que hacerlo manualmente, descargando unos archivos html de:

http://www.evenbalance.com/index.php?page=dl-aa.php

Hay que descargarlos en "system\pb" y "system\pb\htm" sin embargo, buscando el directorio de instalación en /usr/local/games... etc... y descargando dichos archivos no pasaba nada, y la actualizacion no se realizaba (impidiendo que juegue en la sección deploy del juego)

Y toda esta perorata para que?... se me ocurrio chusmear en la carpeta de mi usuario:" /home/usuario/.armyops" (o algo por el estilo)... dentro de esta carpeta tenemos el directorio /system/pb que mencionaba antes, y es aqui donde hay que descargar los archivos... ¡funciono de maravilla!

miércoles, 1 de diciembre de 2010

Hacker High School

Las siguientes lecciones y libros de ejercicios son materiales abiertos y disponibles públicamente bajo los términos y condiciones de ISECOM.

El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar o hacerse cargo de responsabilidad por el modo en como se utilice, aplique o abuse cualquier información aquí contenida.

El proyecto HHS es un proyecto abierto de la comunidad.

Temas:

Lección 00 - Indice - TOC - Glosario
Lección 01 - Ser un Hacker
Lección 02 - Windows y Linux
Lección 03 - Puertos y Protocolos
Lección 04 - Servicios y Conexiones
Lección 05 - Identificación de Sistemas
Lección 06 - Malware (Viruses, Trojans, etc.)
Lección 07 - Attack Analysis
Lección 08 - Digital Forensics
Lección 09 - Seguridad del Correo Electrónico
Lección 10 - Web Security and Privacy
Lección 11 - Passwords
Lección 12 - Legalidad y Ética en Internet

Video de Iniciación: HHS.demo.DivX.avi

Enlace 1: http://www.isecom.info/mirror/HHS.demo.DivX.avi
Enlace 2: http://isecom.securenetltd.com/HHS.demo.DivX.avi

Vía: http://www.hackerhighschool.org

Descargar:

http://www.megaupload.com/?d=SLXWW0WH

jueves, 25 de noviembre de 2010

OCR en Ubuntu

El Reconocimiento Óptico de Caracteres (OCR), así como el reconocimiento de texto, en general son aplicaciones dirigidas a la digitalización de textos. Identifican automáticamente símbolos o caracteres que pertenecen a un determinado alfabeto, a partir de una imagen para almacenarla en forma de datos con los que podremos interactuar mediante un programa de edición de texto o similar.

A) OCR LIBRES

Lista de todos los programas que había encontrado:

  • Clara OCR
  • CuneiForm
  • FreeOCR
  • GOCR
  • HOCR
  • Ocrad
  • Ocre
  • OCRopus
  • Tesseract

Estuve leyendo la historia de cada uno de ellos e investigando sobre los proyectos.

Entre ellos se encuentra el oficial de GNU "OCRAD", tenemos el HOCR que está especializado para el Hebreo y los dos más importantes que vi fueron el Tesseract y el OCRopus.

B) TESSERACT

Tesseract es un motor OCR libre. Fue desarrollado originalmente por Hewlett Packard como software propietario entre 1985 y 1995. Tras diez años sin ningún desarrollo, fue liberado como código abierto en el año 2005 por Hewlett Packard y la Universidad de Nevada, Las Vegas. Tesseract es desarrollado actualmente por Google y distribuido bajo la licencia Apache, versión 2.0.

Tesseract está considerado como uno de los motores OCR libres con mayor precisión disponibles actualmente.

Trabaja con Inglés, Francés, Italiano, Alemán, Español, Brasileño, Portugués e incluso otros idiomas si lo entrenas para ello.

Tesseract funciona por terminal (aunque es posible encontrar algun GUI en Java por ejemplo según los resultados de mis búsquedas. Ej: jtOCR). Cabe destacar tambien que no tiene formato de salida. Simplemente procesa imágenes TIFF y crea un archivo de texto con el resultado.

Uno de los problemas de Tesseract es que solo puede procesar imagenes TIFF.

Para Instalar Tesseract (Inglés y Español):

$ sudo apt-get install tesseract-ocr-spa tesseract-ocr-eng

Esto instalará el tesseract y además el soporte para el Español. Es necesario instalar el inglés si no vas a definir el parámetro de lenguaje)

Si tu distribución no está basada en debian puedes compilar el codigo fuente:

$ wget -c http://tesseract-ocr.googlecode.com/files/tesseract-2.04.tar.gz
$ tar xzvf tesseract-2.04.tar.gz
$ cd tesseract-2.04.tar.gz
$ ./configure
$ make
$ sudo make install

Es posible que tengas algún PDF dando vueltas por ahi y quieras correrle un OCR (como tesseract). Para poder hacerlo necesitas una aplicación para convertir el PDF a imágenes TIFF, en éste caso utilizaremos Imagemagick.

ImageMagick es una aplicación que sirve para crear, editar y componer imágenes. Puede leer, convertir y guardar imágenes en una gran variedad de formatos (más de 100) incluyendo formatos como GIF, JPEG, JPEG-2000, PNG, PDF, PhotoCD, TIFF y DPX.

Para Instalar:

$ sudo apt-get install imagemagick

Para convertir un archivo pdf podemos usar el comando:

$ convert archivo.pdf archivo.tif

Lo cual nos dara como salida una o varias imagenes tiff (leer las paginas de manual para más detalles).

Para correr el OCR sobre los tif:

$ tesseract archivo.tif archivo.txt -l spa

El "-l spa" le dice a Tesseract que el texto está en Español.

Donde "archivo.txt" es el resultado en texto plano del origen tiff.

La calidad del resultado depende íntegramente de la calidad de la imagen. También podemos usar el corrector ortográfico de algún procesador de textos para corregir errores.

C) OCRopus

Bien, por otra parte tenemos a OCRopus, tambien con licencia Apache versión 2.

Este a diferencia del anterior, funciona de forma modular mediante plugins. Es más, OCRopus usa Tesseract para su detección de carácteres únicos.

OCRopus incluye tambien soporte para reconocimiento de escritura a mano, pero está desactivado, pensando en activarse en el futuro.

Como se puede observar, este es un proyecto más grande que el anterior, con más potencia. Está pensado para procesar grandes cantidades de documentos. Este tambien funciona en línea de comandos.

D) PDFOCR

Se trata un programa (creado por Geza Kovacs) que partiendo de un archivo PDF genera uno nuevo al que le añade una capa de texto por lo que si lo imprimimos lo veremos igual que el original pero ahora podemos buscar texto o seleccionarlo.

Se puede instalar desde Launchpad, añadiendo al repositorio de las maneras conocidas:

$ sudo -v
$ sudo add-apt-repository ppa:gezakovacs/pdfocr
$ sudo apt-get update
$ sudo apt-get install pdfocr

Para hacerlo funcionar simplemente:


$ pdfocr -i inputfile.pdf -o outputfile.pdf -l spa

El archivo resultante tiene una capa de texto incrustada, que puedes utilizar para copiar y pegar.

Para ver la lista completa de idiomas que soporta cuneiform ejecuta:

$ cuneiform -l

Si el archivo PDF no indica la resolución, pdfocr la establecerá a 300 y esto implicará que las búsquedas no encontrarán el texto correctamente (estará desplazado). También puede suceder que tengamos que modificar la versión del archivo PDF ya que puede que no sea compatible con pdfocr (Utilizar pdftk para éste propósito).

E) GSCAN2PDF

gscan2pdf es un utilitario que nos ayuda a escanear una o más imágenes y exportarlas a formato PDF.

En realidad gscan2pdf es una interfase gráfica que usa SANE para escanear las páginas y se vale de PDF::API2 para crear los PDF.

Se puede instalar desde el repositorio de Ubuntu gscanpdf

$ sudo apt-get install tesseract-ocr-spa gscan2pdf

Para hacerlo funcionar, corremos gscan2pdf desde un terminal

Importamos las imágenes que queramos someter al OCR

En herramientas seleccionamos OCR, y en la ventana que nos sale seleccionamos el motor de OCR que queramos utilizar (A mi me funciono bien con GOCR pero no con tesseract).

En la parte inferior, veremos los caracteres detectados por el OCR. Al exportar en formato PDF gscan2pdf incrusta el texto detrás de la imagen.

viernes, 12 de marzo de 2010

Direcciones MAC

Para saber las MAC de los dispositivos de tu equipo?

$ ip link show

domingo, 7 de marzo de 2010

Mover archivos de los Subdirectorios al directorio actual

Alguna vez has querido mover todos los archivos de los
subdirectorios recursivamente al directorio actual... he aqui la
solución:

$ find -type f -exec mv {} . \;

Cuidado... puedes tener problemas con archivos de igual nombre.

viernes, 26 de febrero de 2010

Randtype

Randtype es un emulador de typeo...

Ejemplo:

$ echo "pretty realistic virtual typing" | randtype -m 4

miércoles, 2 de septiembre de 2009

Los Modulos y el Kernel

Hace mucho que no posteo nada, les cuento que recientemente he estado haciendo algunos experimentos con los driver de mi tarjeta de red wireless... una abg3945 de intel.

El tema es que con los drivers libres (iwl3945) no se pueden inyectar paquetes por lo que se hacia necesario instalar drivers privativos (ipw3945). En fin, eh encontrado muchos tutoriales en la red sobre como hacerlo, sin embargo, los tutoriales dan recetas paso a paso sin explicar mucho para que sirve cada cosa. Es por eso que eh estado investigando un poquito, y eso es de lo que se trata este post.

En primer lugar el comando lsmod sirve para desplegar la información referente a los módulos que están habilitados por el kernel del sistema. Recordemos que un sistema operativo es el encargado de organizar el uso de los dispositivos por las aplicaciones, por lo cual, esta interaccion se realiza a través de los controladores o del kernel.


Si el kernel soporta cierto dispositivo, es necesario configurar un controlador (normalmente esto se realiza durante la instalación del sistema, y es habitual que sea necesario actualizar algún modulo o el kernel completo cuando hay una actualización en el hardware).

El codigo fuente del kernel cuenta con controladores para diferentes dispositivos, por eso cuando se compila una version, algunos de estos controladores se unen con el kernel (estáticos) otros quedan como "módulos" (esos de los que estabamos hablando antes) que se pueden cargar o descargar mientras el kernel está operando (dinamicos).

Lo ante dicho es muy importante, en mi ejemplo, los drivers de la tarjeta wifi estan cargados como módulos, por eso es posible cargar uno u otro, de otra forma habría que compilar un kernel
para cada caso (o tener varios kernel disponibles a los cuales acceder mediante el grub... opcion interesante no?).

Para configurar un dispositivo controlado por un modulo, se puede emplear modutils o modconf.
Estos comandos sirven para controlar conflictos, encontrar un módulo o pasar opciones.

Pueden encontrar más información al respecto en:

http://structio.sourceforge.net/guias/AA_Linux_colegio/kernel-y-modulos.html

martes, 11 de agosto de 2009

Script "Hola Mundo" en Bash

OK, estoy tratando de aprender a progamar en bash... aunque no es un lenguaje de programación, o lo es pero a un altísimo nivel; algunos lo consideran adecuado para aprender algunos conceptos básicos de la programación. Veamos el ejemplo:
#!/bin/bash
CAD="Hola Mundo"
echo $CAD

Vemos en este pequeño codigo tres elementos. La primer linea de codigo contiene la información del interprete (lo mismo sucede cuando programamos scripts en algún otro lenguaje interpretado, simplemente necesitamos indicarle al SO que interprete debe usar)

En segundo lugar, observamos la declaración de la variable CAD. Esto es algo que aprendi hace poco: un programa encesita variables que van cambiando de estado, antes que nada, uno declara las variables que el programa va a usar (como las dim en Basic?).

En tercer lugar hacemos algo con las variables declaradas, es el programa en si. Lo que hacemos en este caso es imprimir (con echo) la variable CAD declarada anteriormente.

El mismo resultado se ubiese obtenido con:
#!/bin/bash#!/bin/bash
echo"Hola Mundo"

Pero se perdería el concepto de programación antes descripto.

Recordad que para ejecutar el script se utiliza "./script.sh" (ojo, antes darle permiso de ejecución.


Nota:
Aunque en linux las extensiones de archivo no son necesarias para el SO, quizas sea una buena idea para el usuario.

El siguiente ejemplo es un script para realizar una copia de seguridad:
#!/bin/bash
OF=/var/mi-backup-$(date +%Y%m%d).tgz
tar -cZf $OF /home/yo/

Ya nos vamos familiarizandonos con la estructura verdad?. La variable OF es un nombre de archivo, que varía según la fecha actual. Luego se utiliza el comando tar para comprimir el home del usuario (no es TAN bueno backupear todo el home... pero...) con el nombre de la variable, es decir, la fecha en que se realiza el Back Up.

lunes, 27 de julio de 2009

Enlaces simbólicos

Un buen punto de partida para los novatos: son faciles de entender y no hace falta preocuparse por las particiones (los enlaces duros o hard links solo funcionan si cuando enlazan dentro de la particion).

El comando para crear un enlace es ln. para crear un enlace simbolico usamos la opcion-s:

$ ln -s archivoobjetivo nombredelenlace

En el ejemplo debajo, el usuario freddy crea un enlace en un subdirectorio de su directorio home hacia un directorio en otra parte del sistema:

freddy:~/music> ln -s /opt/mp3/Queen/ Queen
freddy:~/music> ls -l
lrwxrwxrwx 1 freddy freddy 17 Jan 22 11:07 Queen -> /opt/mp3/Queen

Los enlaces simbolicos son siempre archivos muy chicos, mientras que un enlace duro tendra el mismo tamaño que el archivo original.

La aplicacion de los enales simbolicos es muy amplia. Usualmente se usan para guardar espacio en el disco cuando se hace una copia de un archivo cuando se quiere satisfacer la necesidades de algun requerimiento de un nuevo programa, el cual necesita que un archivo este ubicado en otro lugar, o tambien para arreglar scripts que seran usados en otro ambiente en el que funcionaba. Si un administrador de sistema decide mover un directorio home a una nueva ubicacion, pero manteniendo todo funcionando como antes.

viernes, 24 de julio de 2009

Colores Hexadecimales para edición en HTML

Bueno, al fin me puse a jugar un poco con HTML, modifique el fondo del blog por este colorcito naranjita que tanto me gusta.
Para hacerlo basta ir a "modificar plantilla HTML" y cambiar el valor de algunas variables. Los colores se definen mediante notacion hexadecimal, abajo les dejo un link muy util.

http://html-color-codes.info/codigos-de-colores-hexadecimales/

jueves, 16 de julio de 2009

miércoles, 15 de julio de 2009

"less is more"



  • Al principio fue cat, donde los caracteres saltaban por la pantalla de una manera descontrolada.
  • Entonces fue pg, el cual ponia el texto de una pagina por vez.
  • El programa more es una version revisada de pg.
  • less es la version GNU de more, con algunas funcionalidades adicionales.

Nota: ver mas informacion con $ man less

El Comando Grep

grep es un comando que sirve para filtrar lineas de texto. Hay literalmente miles de usos para el uso del comando grep. En el ejemplo debajo, jerry usa grep para obtener información sobre el uso del comando find:

jerry:~> grep -a find .bash_history
find . -name userinfo
man find
find ../ -name common.cfg

La mayoría de los UNIXes tienen un diccionario online, como Linux. El diccionario es una lista de palabras conocidas en un archivo llamado words en /usr/share/dict. De modo que podemos usar el comando grep para chequear que una palabra este escrita correctamente:

william:~> grep penguin /usr/share/dict/words
penguin
penguins

Algunas distribuciones también ofrecen el comando dict.

También se puede usar para buscar información sobre un usuario:

lisa:~> grep gdbruyne /etc/passwd
gdbruyne:x:981:981:Guy Debruyne, tel 203234:/home/gdbruyne:/bin/bash

martes, 7 de julio de 2009

Nikto

Nikto es un escaneador para servidores web realizado en lenguaje Perl, obviamente tiene licencia Open Source GPL y realiza todo tipo de pruebas de ataques y vulnerabilidades por medio de un extensible sistema de plugins.

Nikto es un excelente punto de partida para comprobar la seguridad del servidor web a nuestro cargo, que funciona tanto en Linux como en Windows y tiene una gran base de datos de ataques (CGI y otros) en 230 tipos de servidores distintos.

Este programa busca fallos en diferentes categorías, algunas de estas son:

1.Problemas de configuración.

2.Archivos por defecto y ejemplos

3.Archivos y scripts inseguros

4.Versiones desactualizadas de productos.

Es utilizado tanto para seguridad como para buscar vulnerabilidades en servidores. Nikto utilizado como herramienta de seguridad tiene la capacidad de no sólo probar vulnerabilidades de CGI sino también que lo hace de forma evasiva, evitando los sistemas de detección de intrusos.

USO

$ nikto –h <URL de la Web a examinar>

Esta sería la opción por defecto, en la que se analizaría la dirección de la Web a examinar indicada. Con el parámetro "–h" le indicamos la web que queremos analizar.

Se podrían por ejemplo especificar más parámetros, como los puertos a escanear, mediante el parámetro "–p".Cuando no se especifica un puerto en concreto se analiza en 80. Se puede indicar más de un puerto separándolos por comas, la sentencia sería de la siguiente forma:

$ nikto.pl –h <URL de la Web a examinar> –p <Número
Puerto>,<Número Puerto>

Mediante la opción "–o" (output) se indica el directorio donde se guardará la salida del testeo y mediante la opción "–f" el formato, por defecto se nos guardará con formato "txt", aunque también se pueden seleccionar otros como "xml" o "hmtl".

Con el comando "–help", nos muestra las distintas opciones de Nikto.

Se puede actualizar Nikto mediante lel parámetro "-update". Se introduciría el comando –evasion seguido del número de la técnica deseada.

1.- Codificación arbitraria de la URI(no-UTF8)

2.- Autoreferencia de directorio (/./)

3.- Final de URL prematuro

4.– Anteponer cadena larga aleatoria.

5.- Parámetro falso

6.- ETIQUETA como espaciador de petición

7.- Cambiar el caso del URL

8.- Separador de directorio de Ventanas (\)

jueves, 2 de julio de 2009

Mplayer

Mplayer es una aplicacion muy pontente que permite, entre otras cosas, reproducir medios en una consola. Basta ver la cantidad de paginas de manual que tiene (+ de 6000) para tener una idea de la potencia de esta aplicacion.
Como hace mucho que no posteo nada, e decidido postear unos pequeños truquitos para jugar un poco.

Para reproducir un video:

$ mplayer -vo fbdev -fs "mivideo.avi"

Donde -vo es el modo de reproducción y -fs significa fullscreen

Con este comando podremos reproducir el video a traves del framebuffer... en caso de que no funcione (porque el framebuffer no esta compilado en el kernel) podemos con con

$ mplayer -vo help

para ver que opciones de reproducción tenemos. Una muy interesante es:

$ mplayer -vo caca -fs "mivideo.avi"

o

$ mplayer -vo aa -fs "mivideo.avi"

Con estos comandos, el tamaño de video dependera de la resolución. Para hacer un zoom y adaptarlo al tamaño de pantalla podemos utilizar la opcion "-zoom -x 640 -y 480"

Es pero que se diviertan!

miércoles, 24 de junio de 2009

viernes, 19 de junio de 2009

La revolución de los SO

Los subtítulos no son de los mejores peeeeeroo.... igual hay versiones mejores que pueden buscar en youtube, o tambien para descargar. El documental es muy recomendable.

Parte 1



Parte 2



Parte 3



Parte 4



Parte 5



Parte 6



Parte 7



Parte 8



Parte 9

jueves, 18 de junio de 2009

Sniffers

Un sniffer (o husmeador de paquetes) es un software o hardware que captura trafico de red. Este tráfico puede ser analyzado para determinar problemas en una red, como cuellos de botella o degradación en su performance. Tambien puede confirmar un ataque por parte de un hacker. Si uno sospecha que un sistema esta bajo ataque, puede capturar paquetes dentro de un dispositivo para identificar que tipo de paquetes estan "golpeando" al sistema, como también su origen. Una vez que el problema esté determinado, el administrador podrá crear los cambios necesarios para asegurar la red.

Los sniffers capturan paquetes de un dispositivo especifico, o de todos, dependiendo de como esté configurado. Por default, visualizan todo el trafico capturado de una red. Como sea, usualmente resulta en demasiado trafico para poder ser analizado. Por eso, los sniffers permiten aplicar filtros para capturar solo ciertos paquetes que cumplan con algún criterio. Por ejemplo, uno puede estar interesado en capturar paquetes de un cliente y un servidor determinado, para evaluar el tiempo de respuesta, o determinar por que un cliente en particular no puede acceder al servidor. Los sniffers permiten hacer a través de la introducción de los IP correspondientes.

En Linux, los sniffers mas populares son:

TCPdump: Es una herramienta de monitoreo de trafico de red por linea de comandos. Ha sido utilizado desde hace tiempo y muchos sniffers gráficos lo utilizan por debajo. (ver www.tcpdump.org)

Ethereal: Herramienta de monitoreso gráfica, un poco mas amigable que tcpdump. Permite ver paquetes en tiempo real y utiliza muchos comandos y opciones de tcpdump para el filtrado. Una vez que los datos son capturados, Ethereal permite ver cada paquete y sus encabezados. Las descripciones de los encabezados estan resumidas. Tambien permite reconstruir una cadena TCP. Visualiza trafico en tiempo real al mismo tiempo que guarda la información en un archivo. (ver www.ethereal.com).

EtherApe: Herramienta de monitoreo gráfica. A diferencia de Ethereal, EtherApe muestra la actividad de red en forma grafica identificando los Host y sus enlaces entre host. Los enlaces son codificados por colores y cambian cuando el tipo de conexión cambia. Muestra trafico en tiempo real mientras guarda en un archivo. (ver http://etherape.sourceforge.net).

viernes, 12 de junio de 2009

Creando un Niño

Bueno ya suficiente por hoy... otro videito que vi hace un tiempo y me gusto.

Sistemas Operativos

Interesante y Graciosa analogía