Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

SupyBot: Como crear un BOT para IRC

Posted by Epsilon On junio - 16 - 2010

Hace pocos dias me puse a la tarea de registrar el canal IRC de la comunidad en freenode, ya que anteriormente  se encontraba en otro servidor el cual solia tener algunos inconvenientes de conectividad. Aprovecho la ocasion para invitarlos a  que ingresen al canal IRC de , para conversar un rato, los datos son los siguientes:

canal: #.org
servidor: irc.freenode.net

Ahore continuemos  con el tema central de esta entrada, al registrar el canal me dio curiosidad y quise hacer algo que desde hace mucho tiempo habia querido hacer y probar: Crear un bot IRC, antes que nada definamos que es un bot irc:

Un bot (abrevitatura de robot) es un programa informático que realiza funciones muy diversas, imitando el comportamiento de un humano. En sitios wiki, como Wikipedia, un bot puede realizar funciones rutinarias de edición. En otros sitios, como Encarta, el bot puede responder a cuestiones sobre el propio contenido del sitio (tcc bots conversacionales).En sitios de chat en línea (IRC o MSN), algunos bots fueron utilizados para simular una persona, intentando hacer creer al “ciberinterlocutor” que chateaban con una persona real.

Me puse a la tarea de buscar(aunque uno mismo puede crear su bot personalizado) un bot, adecuado, sencillo y potente,  y me encontre con supybot,  un bot desarrollado en Python el cual tiene muchas funcionalidades y herramientas, a continuacion voy a dar los pasos que se deben realizar para instalar dicho bot:

  1. Descargamos el bot desde este enlace. y lo descomprimimos
  2. Lo instalamos de la misma forma que instalamos cualquier modulo en python
  3. python setup.py install

  4. Ahora  nos vamos a la carpeta scripts y ejecutamos  un asistente el cual nos guiara creando el archivo de configuracion.
  5. cd  scripts
    python supybot-wizard

  6. Este asistente nos empezara a pregutnar algunas cosas necesarias para configurar nuestro BOT, debemos responder cada una de ellas segun nuestras necesidades. Estas preguntas son:
    1. quieres ver las preguntas en negrita?  -> Responder Y
    2. eres usuario avanzado? -> Por defecto responder N (aunque si quieres puedes ensayar)
    3. donde se encuentra los archivos del bot? -> responder por default .
    4. cual es la red de IRC? -> la red de IRC en mi caso freenode
    5. servidor?  -> la direccion del servidor: irc.freenode.net
    6. requiere de otro puerto no standar? -> Si lo ves necesario
    7. nick del bot? -> Cual sera el nombre del bot
    8. password del nick?  si el nick esta registrado necesita password
    9. canales a conectar?  respondemos Y y en mi caso seria #.org
    10. cargar los plugin idividualmente?  -> NO
    11. owner? Este es el nick quien controlara al bot
    12. caracteres que usara para las ordenes del bot? Y Puede ser @ o | o ! como guste
  7. Lanzamos el bot con el archivo de configuracion que se creo en el paso anterior, generalmente el archivo de configuracion tiene el nombre del archivo con extension .conf:
  8. supybot nombre.conf

  9. Si todo ha salido bien, ya tendremos nuestro bot en el canal de IRC, ahora es necesario entablar una conexion con el bot e identificarnos para poder lanzarle comandos:
  10. /query nombre
    identify nick-quien-controlara-elbot password

  11. Listo ya podremos mandarle muchos comandos a nuestro bot, si quieren ensayar pueden mandarle un ping, y el respondera un pong, este bot tiene muchas funcionalidades, como diccionario, rss,  traductor, mensajes personalizados, y muchos mas… para eso es bueno que lean el manual de cada script y vean como funciona cada uno.

Guia: Como asignar clave al GRUB2

Posted by fortress On abril - 27 - 2010

Bueno en esta oportunidad quiero compartir con ustedes este pequeño truquito para asegurar aun mas nuestro maquina, que consiste en colocarle una clave a nuestro Grub2. bueno sin más carreta aqui vamos.

lo primero que debemos hacer es abrir nuestra consola en modo root y escribimos:

#grub-mkpasswd-pbkdf2

alli deberemos  de escribir el password para nuestro Grub2 y este nos generará un hash. La salida del comando es esta:

grubpassword Guia: Como asignar clave al GRUB2

Ahora escribimos esto otro en la consola

#vim /boot/grub/grub.cfg

Agregamos esto en la parte inicial del archivo

superuser Guia: Como asignar clave al GRUB2

la parte donde dice grub.pbkdf2……. es lo que se genera en la parte anterior

ahora solo queda agregar esto otro –users fortress en la siguiente parte:

useralarranque Guia: Como asignar clave al GRUB2

Ahora solo queda que guardes, reinicies y listo tu Grub2 ya  tiene password

Cabe decir que puedes crear y password para cada entrada en el Grub2. Bueno espero y les sea de utilidad, y hasta la proxima.

Fuente

Usando una imagen ISO como repositorio en Debian

Posted by jhonber On enero - 8 - 2010

Es una pregunta que ya me había hecho hace tiempo, si era posible usar una imagen iso como repositorio y no tener que estar usando los CD’s/DVD’s  (Algo muchas veces molesto, más si se trata de CD’s).

Pues bueno las ventajas que presenta usar las imágenes iso son bastante claras, ya que no tendremos la necesidad de estar insertando y sacando los CD’s/DVD’s de la unidad, a demás de ahorrarnos unos cuantos CD’s/DVD’s.

Preparando lo necesario

- Necesitamos un directorio por cada CD’s/DVD’s. Podríamos crear una directorio llamado ‘repositorio‘ en /media que contenga a los demás.

# mkdir  /media/repositorio

Ahora dentro de ‘repositorio’ creamos el resto de carpetas donde serán montadas las imágenes iso.

# mkdir  /media/repositorio/[CD1 o DVD1]

# mkdir  /media/repositorio/[CD2 o DVD2]

# mkdir  /media/repositorio/[CDn o DVDn]

En mi caso los directorios quedarían así:

# ls  /media/repositorio

cd1 cd2  cd3  cd4  cd5  cd6  cd7  cd8

- Debemos conocer la ubicación de las imágenes iso (La ubicación realmente no importa).

En mi caso: /media/repositorio-isos

Modificando el archivo fstab

#vim  /etc/fstab

Al final del archivo añadimos los siguiente:

/media/RUTA/IMAGEN1.iso  /media/repositorio/[CD1 o DVD1]  iso9660  loop,user,auto  0  0

Para cada imagen debe haber una línea como esta indicando respectivamente la imagen iso y el directorio donde será montada.

Ejemplo:

#Repositorio imagenes-iso
/media/repositorio-isos/debian-testing-i386-CD-1.iso  /media/repositorio/cd1  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-2.iso  /media/repositorio/cd2  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-3.iso  /media/repositorio/cd3  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-4.iso  /media/repositorio/cd4  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-5.iso  /media/repositorio/cd5  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-6.iso  /media/repositorio/cd6  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-7.iso  /media/repositorio/cd7  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-8.iso  /media/repositorio/cd8  iso9660 loop,user,auto  0  0

Modificando el archivo sources.list

Ahora para que apt use las imágenes como repositorio debemos indicar en este archivo donde esta montado cada CD’s/DVD’s de nuestro repositorio.

# vim  /etc/apt/sources.list

Agregamos lo siguiente:

deb file:///media/repositorio/[CD1 o DVD1] squeeze main contrib

Cambia ‘squeeze’ por la versión de Debian que uses.

Ejemplo:

#Repositorio imagenes-iso
deb file:///media/repositorio/cd1 squeeze main contrib
deb file:///media/repositorio/cd2 squeeze main contrib
deb file:///media/repositorio/cd3 squeeze main contrib
deb file:///media/repositorio/cd4 squeeze main contrib
deb file:///media/repositorio/cd5 squeeze main contrib
deb file:///media/repositorio/cd6 squeeze main contrib
deb file:///media/repositorio/cd7 squeeze main contrib
deb file:///media/repositorio/cd8 squeeze main contrib
##END

Si no lo has hecho debes montar las imágenes:

# mount  -a

Y por último:

# aptitude  update

A mí me han aparecido varios errores como este, después de actualizar los repositorios:

Err file: squeeze/contrib Packages
Fichero no encontrado

Pero esto no perjudica el funcionamiento correcto de el repositorio.

Compartir este repositorio para toda la red local

Este punto ofrece una utilidad enorme, imagínate actualizar todos los computadores de una red local a través de un solo computador que actúe como servidor del repositorio. Pues es muy sencillo:

Supongamos que con los pasos de arriba configuramos el repositorio y que ese computador será el servidor.

Ip: 192.168.1.1

Nota: Debemos tener configurado un servidor Apache.

En el servidor

Aquí crearemos enlaces simbólicos a cada uno de los directorios en donde se encuentran montadas las imágenes iso. Esto lo hacemos en el directorio /var/www de Apache.

#cd  /var/www

Cambias si es necesario la ruta del directorio por la tuya.

/var/www# ln  -s  /media/repositorio/cd1

/var/www# ln  -s  /media/repositorio/cd2

Recuerda un enlace por cada directorio.

En los clientes

En cada uno de los clientes debemos modificar el archivo /etc/fstab

#vim  /etc/fstab

Agregamos por cada enlace simbólico una línea como esta:

deb http://192.168.1.1/[NOMBRE_ENLACE] squeeze main contrib

Como puedes ver accedemos al repositorio con la ip del servidor y el nombre del enlace simbólico que apunta a cada una de los directorios donde montamos las imágenes.

Ejemplo

deb http://192.168.1.1/cd1 squeeze main contrib
deb http://192.168.1.1/cd2 squeeze main contrib
deb http://192.168.1.1/cd3 squeeze main contrib

Actualizamos repositorios y listo ;) . Hasta la próxima!!

Uzbl: Un navegador web liviano, minimalista y muy personalizable

Posted by Epsilon On diciembre - 29 - 2009

Si estas cansado de el amplio consumo de CPU y memoria de tu navegador preferido (ya sea Firefox, opera, chromium, etc..) te presento  UZBL un navegador web de código abierto  muy minimalista,  que cumple con la filosofia Unix:

Escribir programas que hacen una cosa y la hacen bien. Escribir programas para trabajar juntos. Escribir programas para manejar flujos de texto, ya que es una interface universal

Antes de empezar con el proceso de instalación hay que aclara que si eres de los que te gusta que tu navegador tenga un sin fin de addons y servicios adicionales, este no es el navegador para ti, por el contrario si eres un usuario el cual solo le interesa que tu navegador sirva para lo que fue diseñado (abrir paginas web), esta aplicacion sera perfecta para ti.

Ventajas de Uzbl

  • 100%  Personalizable (editar menús, cambiar colores, atajos)
  • rápido
  • soporta flash player
  • Soporta pestañas
  • Al ser tan minimalista no quiere decir que no tenga, marcadores, historiales.
  • navegacion con el teclado.

Instalación de UZBL

Ya que este proyecto es demasiado nuevo ( marzo de 2009 ) solo se encuentra en los repositorios de archlinux, gentoo, ubuntu, la versión testing de debian (squeeze)  y por supuesto en la versión inestable (sid),  para los de estas versiónes, pueden instalar uzbl de esta forma:

apt-get install uzbl

Sin embargo para lo de otras distribuciones, las cuales no tengan uzbl en sus repositorios, necesitaran hacer lo siguiente:

apt-get install git-core git-arch git-cvs git-daemon-run git-doc git-email git-gui git-svn gitk gitweb libwebkit-dev

Ahora descargamos las fuentes desde la pagina web oficial:

git clone git://github.com/Dieterbe/uzbl.git

Siguiente punto compilar:

make
make install-uzbl-core
make install-uzbl-browser
make install-uzbl-tabbed

Por ultimo debemos copiar el archivo de configuracion tomando como base un ejemplo, para esto hacemos lo siguiente:

cp /usr/local/share/uzbl/examples/config/uzbl/config /home/tu_usuario/.config/uzbl/config
nota: si la carpeta .config o uzbl no se encuentran en tu home, debes crearlas.

Es importante tener en cuenta que este archivo es parte fundamental del navegador, en el se encuentra toda la configuracion  y es alli donde debemos modificar lo que deseamos, desde la apariencia hasta los atajos del teclado.

Usando el navegador web uzbl

Despues de tenerlo instalado solo basta ejecutarlo, dependendiendo de lo que queramos ejecutamos:

uzbl-tabbed -> navegacion con pestañas
uzbl-brower -> navegador simple

algunos atajos de teclado son (recuerda que puedes cambiarlos a tu antojo):

j -> baja la pagina
k -> Sube pagina
h -> corre hacia la izquierda
l ->  corre hacia la derecha
b -> Pagina atras
m -> pagina adelante
o  -> abrir pagina (despues de presionar o digita la url)
r -> actualizar

Aunque llevo poco probandolo  me parece muy bueno, sencillo  y agradable (nada de molestas barras), y me gusto mucho por lo configurable, cada uno puede  adecuarlo a su gusto, por ultimo dejo un screenshot del menu de click derecho que configure.

Free Image Hosting at www.ImageShack.us

No soy un guru manejando este navegador, pero seria bueno ir probandolo a fondo y conociendo sus otras caracteristicas que deben ser muchas mas, esto es simplemente un abrebocas a que se animen a probarlo  y nos cuenten sus experiencias.

Nuevo reto: Analisis Forense

Posted by Epsilon On diciembre - 25 - 2009

reto informatica forense

Para todos aquellos  que quieran hacer algo muy interesante y productivo en esta época de vacaciones, nuestro amigo Dragon,  ha diseñado un reto forense denominado análisis forense(muchas gracias a dragon por haberse tomado la molestia de crear este reto y compartirlo con nosotros), en los siguientes enlaces encontraras un paquete con todo lo necesario para desarrollarlo:

parte 1
parte 2
parte 3
parte 4
parte 5

Para descomprimir el paquete necesitan una clave, pueden pedirla a cualquiera de estos dos correos:

en gmail
4v4t4r en gmail

el escenario del reto es el siguiente:

Gracias a una denuncia por ciberBullyng a la Unidad de Delitos Informáticos Lunix, se pretende llevar a cabo un análisis forense a un sistema propiedad de un sospechoso que tiene contacto con la víctima. Este análisis se realizará bajo la sospecha que desde éste equipo se están realizando actos delictivos y judicializables.
Se sospecha que éste distribuye contenido pedófilo por medio de Internet.

El objetivo y las reglas:

El objetivo es realizar un análisis forense al sistema de la persona sospechosa. Para ello se entrega un snapshot del sistema objetivo. Esta instantánea podrá ser restaurada para llevar a cabo el respectivo análisis en “caliente” por medio de los aplicativos software VMWare Player o VMWare Server (ambas aplicaciones gratuitas y multiplataforma).

La finalidad del análisis será determinar entre otros los siguientes puntos:

  1. Antecedentes del Sistema/Escenario
  2. Recolección de datos
  3. Descripción de la evidencia
  4. Entorno del análisis/Descripción de las herramientas
  5. Análisis de la evidencia/Información del sistema analizado /Aplicaciones /Servicios
  6. Metodología
  7. Descripción de los hallazgos
  8. Huellas del comportamiento y de las actividades del sospechoso
  9. Cronología de las actividades del sospechoso
  10. Posibles víctimas del sospechoso
  11. Rastros del sospechoso
  12. Conclusiones
  13. Recomendaciones a los padres
  14. Referencias

Esperamos que todos participen ya que es un buen método para aprender sobre un tema tan amplio como lo es la informática forense, no hay mejor metodología de aprendizaje que la practica, cualquier cosa estaremos dispuestos a resolver dudas y esperen muy pronto la solución a este reto.

Firefox: Feliz cumpleaños numero 5

Posted by Epsilon On diciembre - 13 - 2009

Hace 5 años nació un proyecto el cual  consistía en crear un navegador que fuera libre, potente, rápido y seguro, este tuvo gran variedad de nombres, pero finalmente se  llamo  Mozilla Firefox. En estos 5 años hemos visto muchas mejoras  con respecto a la primera versión.

firefox10 Firefox: Feliz cumpleaños numero 5

Y esperamos que siga creciendo y mejorando por mucho mas tiempo. Hoy es el gran día para Firefox y hay que celebrarlo, por esta razón  en la pagina principal de Firefox han publicado un video que  quiero compartir con todos ustedes, el cual demuestra  la historia de este gran navegador, sin nada mas que decir:

FELIZ CUMPLEAÑOS MOZILLA FIREFOX

Canal IRC para Backtrack en Español

Posted by Epsilon On noviembre - 24 - 2009

backtrack4 Canal IRC para Backtrack en Español

Muchos de nosotros los que usamos Backtrack, hemos tenido algún inconveniente con esta excelente distribución, desde problemas con reconocimiento de hardware, hasta problema de compilacion de algunas aplicaciones y demás.

Sin embargo, hace poco mas de un tiempo se abrió  un canal IRC  de Bactrack en el cual pueden entrar, hablar, compartir información, experiencias, inconvenientes o  lo que se les antoje sobre esta temática. los datos para conectarse son los siguientes:

irc.freenode.net
#backtrack-es

La idea a largo plazo con esta iniciativa es crear una comunidad backtrack de habla hispana, donde haya soporte, how-to, discusiones y muchas cosas mas…

Los invito a que entren al IRC y formen parte de este nuevo proyecto que pinta demasiado bien,  pueden visitar la pagina web haciendo click aca para encontrar mas detalles.

Lock Picking: El arte de abrir una cerradura sin la llave

Posted by Epsilon On noviembre - 22 - 2009

Lock Picking es un arte que muy pocos saben practicar,   pero que a muchos otros les interesaría aprender, por que: ¿a quien no le gustaría abrir cualquier puerta  sin tener la llave? Para los puristas  una definición mas completa:

Es la habilidad de abrir una cerradura  mediante el análisis y la manipulación de los componentes del dispositivo de bloqueo, sin la llave original. Aunque la recolección de bloqueo se puede asociar con una intención criminal, Es una habilidad esencial para un cerrajero.La recolección de bloqueo es la manera ideal de abrir una cerradura sin la llave correcta, obviamente sin   dañar la cerradura, permitiendo que sea nuevamente programada para su uso posterior, que es especialmente importante con las cerraduras antiguas que sería imposible de reemplazar si se utilizaron métodos de entrada destructiva.

Algunas herramientas usadas para lock picking son de esta forma:

800pxlockpickingtools Lock Picking: El arte de abrir una cerradura sin la llave

locksmithslimlimelockpi Lock Picking: El arte de abrir una cerradura sin la llave

En los grandes eventos de seguridad informatica como Blackhat o Defcon, suelen realizar competencias de lock picking, las cuales consiste en abrir cerraduras de todo tipo (incluyendo cajas fuertes) en el menor tiempo posible.

En internet hay mucha información sobre este  interesante tema, hay desde vídeos hasta manuales de como crear nuestras propias herramientas, no soy un experto en el tema, pero siempre me ha inquietado este arte. El motivo de esta entrada simplemente es invitarlos a que  se inmersen un poco en este mundo y  por que no quizás mas adelante podamos crear nuestras propias competencias y vídeos.

Dejo algunos vídeos interesantes:

Como crear un ejecutable de Windows apartir de un script en Python

Posted by Epsilon On noviembre - 16 - 2009

Como todos saben, Python es un lenguaje interpretado, sin embargo, hay ocasiones en las cuales es necesario crear un archivo ejecutable  para transportar el script y ejecutarlo sin la necesidad de tener el lenguaje de programación instalado.

Existe una herramienta desarrollada en Python llamada PY2EXE, que nos permite crear un archivo .exe a partir de cualquier script de este mismo lenguaje (Python) en ambientes Windows. En esta oportunidad,  daremos a conocer un ejemplo muy básico sobre el uso de PY2EXE para crear de forma fácil y sencilla un ejecutable .exe basándose en un archivo .py

Requisitos

  • Python: Obviamente es necesario tener instalado el lenguaje  de programación, en entornos GNU/Linux ya viene incluido, pero como estamos trabajando con otros ambientes privativos, debemos descargar el instalador desde acá y proceder con la instalación.
  • Py2Exe: Descargamos la herramienta que nos facilitara el proceso de la creación del .exe descargar aca
  • Es fundamental tener listo el script el cual queremos convertir en .exe

Creando el ejecutable de Python

Teniendo las herramientas necesarias instaladas en nuestro PC procederemos a crear un archivo  .py que lo llamaremos setup en el cual   definiremos las opciones para  nuestro ejecutable, un ejemplo de un archivo setup.py muy basico seria el siguiente:

from distutils.core import setup
import py2exe
setup(console=['script.py'])

Donde script.py es nuestro archivo de python el cual queremos crear en  .exe

Si queremos algo mas personalizado podemos agregar diferentes parámetros a nuestro setup.py por ejemplo:

from distutils.core import setup
import py2exe 

setup(name="nombre aplicacion",
 version="0.0",
 description="Una pequeña descripcion",
 author="autor",
 author_email="email del autor",
 url="url del proyecto",
 license="tipo de licencia",
 scripts=["script.py"],
 console=["script.py"]
)

Con esto nuestro ejecutable se ejecutara en una consola, pero si deseamos que se ejecute en una ventana cambiamos la linea console=["script.py"] por esto:

windows=["script.py"]

Por ultimo  procedemos a  crear el ejecutable, es importante aclarar que  tanto el archivo setup.py y script. py deben estar en la misma ruta. Asumiendo esto, creamos el ejecutable:

  1. Abrimos un simbolo del sistema (como llaman a la consola en Windows)
  2. Nos ubicamos donde tengamos  los dos archivos .py (si no saben manejar la consola de Windows, en la red hay miles de articulos que ayudan a defenderse un poco en ella)
  3. ejecutamos el siguiente comando

python setup.py py2exe

Si todo ha salido bien, tendremos una carpeta  llamada dist donde estara nuestro ejecutable  con todos los archivos necesarios para su ejecucion. ¿Pero que pasaria si quisieramos que todos estor archivos fueran incluidos en el ejecutable .exe, es decir que el resultado sea solo un archivo?

Para hacer esto debemos modificar nuestro archivo setup.py de esta forma:

from distutils.core import setup 
import py2exe 
 
setup(name="nombre aplicacion", 
 version="0.0", 
 description="Una pequeña descripcion", 
 author="autor", 
 author_email="email del autor", 
 url="url del proyecto", 
 license="tipo de licencia", 
 scripts=["script.py"], 
 console=["script.py"] 
 options={"py2exe": {"bundle_files": 1}}, 
 zipfile=None
)

Volvemos hacer el punto 3 y como resultado en nuestra carpeta dist tendremos un solo ejecutable listo para correr el cual incluye todas las dependencias que este necesita.

Pata hacer esto desde GNU/Linux no encontre alguna forma posible  aparte de emular el python y el py2exe con wine, si algun usuario tiene idea de como hacer este proceso en GNU/Linux me gustaria que nos comentara como  es el proceso.