Skip to content


Make SNMP template

Here you have a bash script that scan a device and allow the selection of items to be added to a template in a wizard way, it support extension by modules in two ways, to manage some special OIDs (like NIC ones) and by defining output modules (that builds the final result, at the moment a zabbix template)

The zabbix template module can build multi or single graph items.

Just download, untar the file, cd make_template and run:

bash make_template.sh -i -a IP_ADDRESS SNMP OPTIONS

and follow the wizard.

The script generate an OID file that is used by template_modules to make the final template

send me bugs (sure they ll be there) improvements you do or whatever related to the script

Download it now
enjoy it ;)

Posted in Sin categorizar.


Introducción breve a la arquitectura de U-boot

Hasta hace poco no sabía muy bien de que iba esto del U-boot, pero al intentar actualizar mi apad M70003 he tenido que entender su funcionamiento. U-boot es un gestor de arranque universal para Linux pero… ¿Es universal y solo para Linux? sí, es universal en cuanto al hardware, está diseñado para utilizarse en dispositivos enbebidos y soporta una gran cantidad. Su estructura es sencilla, se basa en archivos de imágen binarios cuya carga y ejecución se controla mediante variables de entorno y comandos, estos comandos pueden agruparse en scripts convertidos a archivos imágen de U-boot.

Bien lo primero que hay que entender es que los archivos imágen que usa U-boot no son iguales, es decir que existe más de un tipo de imágenes, de hecho las imágenes no son más que archivos con una cabecera añadida mediante el comando mkimage de U-boot, estos archivos pueden ser un kernel o un archivo de texto simple, la cabecera contiene información sobre: magic number para reconocer que es una imágen de U-boot, el tipo de archivo que contiene la imágen, a que plataforma va destinado, fecha de creación, nombre, direcciones de carga, compresión… y un hash del archivo que incluye para comprobar que no se ha modificado la imágen, por lo tanto cada modifición de un archivo conlleva la creación de una imágen nueva para cuadrar el hash.

Un proceso de inicio básico de U-boot es así:

  1. Se carga U-boot con sus parámetros
  2. Se cargan las variables de entorno que contienen parámetros para U-boot
  3. U-boot carga el Linux del sistema embebido

Veamos más detalles sobre estos pasos:

1-La carga de U-boot

Los sistemas embebidos suelen funcionar sin un chip BIOS para abaratar costes de producción y porque realmente no es necesario ya que sus funciones son muy concretas y limitadas, por lo tanto hay que realizar las funciones básicas de otro modo, esta es la función de U-boot. Esta imágen tiene que tener capacidad para comunicarse con los distintos dispositivos del sistema embebido, ya que será la encargada de iniciar la pantalla, gestionar la memória, reproducir alertas sonoras y cualquier otra función que se quiera realizar al iniciar el sistema como mover archivos o conectarse a la red para usar BOOTP. U-boot soporta unos cuantos sistemas de archivos*1: de chip (Flash, MTD, ROM) de memória (tmpfs) y de disco (ramdisk, jffs2, cramfs, ext2…).

Una vez cargado U-boot y según los parámetros que se le hayan pasado se obtendrá una consola o este iniciará la carga del sistema embebido.

2-Establecimiento de las variable de entorno U-boot

U-boot admite una serie de comandos*2 que sirven para multiples propósitos: gestión de dispositivos, extraer información sobre el sistema, mover archivos, control de ejecución… y de variables de entorno*3 que establecen parámetros utilizados por los comandos: resolución de la pantalla, dispositivos a iniciar, tema…

La ejecución de estos comandos se puede automatizar mediante scripts, para ello hay que crear un archivo de texto, introducir los comandos que queramos y crear el archivo imágen que ejecutará U-boot, para crear la imágen hay que instalar el programa mkimage (suele estar disponible en los repositorios de las distribuciones GNU/Linux) y ejecutar:

mkimage -A arm -T script -n scriprinicio -d ruta_al_archivo.txt ruta_de_destino

A excepción del parámetro -T que indica el tipo de imágen que se va a crear, en este caso script, el resto de parámetro puede variar (-A: arquitectura destino, -n nombre) además hay otros parámetros, para obtener un listado ejecutar

mkimage

Para obtener información sobre una imágen ya creada hay que ejecutar

mkimage -l ruta_de_la_imagen

En el caso de tener una imágen de tipo script y querer modificarla, es muy sencillo, tan solo hay que copiarla, abrirla con un editor de texto cualquiera y eliminar la primera linea, teniendo en cuenta que al final puede haber un comando valido que hay que mantener, osea buscamos al final de la primera linea y si hay carácteres ascii comprensibles no los borramos.

3-Carga de la imágen Linux

Una vez ejecutados los comandos: inicializados los dispositivos, cargado los archivos… sel carga el núcleo de Linux pasandole como argumentos los establecidos por la variable bootargs

Para crear la imágen de Linux con las cabeceras necesarias para U-boot, hay que configurar un kernel y compilarlo con compilación cruzada para la arquitectura destino, esto requiere tener las utilidades necesarias para compilación cruzada, no voy a explicar como realizar estos pasos porque queda fuera del ámbito del post, tan solo indicar que teniendo mkimage en el PATH del sistema en lugar de especificar bzImage u otros hay que compilar con el parámetro uImage, el comando sería algo así

make ARCH=arm CROSS_COMPILE=ruta_a_las_toolchain- modules uImage

Referencias

1-Sistemas de archivo soportados por U-boot

2-Comandos admitidos por U-boot

3-Variables de entorno adminitas por U-boot

Posted in Sin categorizar.


Instalar Funambol sync client en BlackBerry

[English Below]

Estoy instalando funambol en mi android, pero no consigo que funcione por ssl aún teniendo un certificado válido, así que para descartar problemas con mi proveedor o con la combinación de Android+terminal he decidido instalar el cliente en la BB del curro. Las instrucciones son descargar el cliente de la web oficial, descomprimirlo e instalarlo con el BlackBerry Desktop Manager, todo correcto hasta el momento de instalar el cliente desde el BDM, que busca archivos alx y no hay ninguno en el directorio descargado… vaya!! ¿que diablos es un archivo alx? bueno por suerte es fácil de solucionar, el archivo alx define las propiedades y los archivos del programa que se va a instalar así que es muy fácil crearlo, con un editor de texto crear el archivo Funambol.alx con este contenido

<loader version=”1.0″>
<application id=”FunambolSync”>
<name>
Funambol Sync Client
</name>
<description>Funambol sync client</description>
<version>8.7.1</version>
<vendor>Funambol</vendor>
<fileset Java=”1.0″>
<files>Funambol_Sync_Plugin.cod</files>
<files>Funambol_Sync_Plugin_common-1.cod</files>
<files>Funambol_Sync_Plugin_common.cod</files>
<files>Funambol_Sync_Plugin_lib-1.cod</files>
<files>Funambol_Sync_Plugin_lib-2.cod</files>
<files>Funambol_Sync_Plugin_lib-3.cod</files>
<files>Funambol_Sync_Plugin_lib.cod</files>
<files>Funambol_Sync_Plugin_pim-1.cod</files>
<files>Funambol_Sync_Plugin_pim.cod</files>
<files>Funambol_Sync_Plugin_syncml-1.cod</files>
<files>Funambol_Sync_Plugin_syncml.cod</files>
</fileset>
</application>
</loader>

Tened en cuenta que los nombres de archivos y las versiones pueden variar según el desarrollo del cliente ;)

Install Funambol sync client into BlackBerry

I’m trying to install Funambol on my Android device but it fails to communicate by ssl, even with a trusted certificate, to discard problems with my provider or with the combination of Android+terminal i decide to install Funambol sync on my BB. The instructions are easy and clear, download from the official site, unzip the files and install using Blackberry Desktop Manager, but… when try to open the unzipped files from BDM it search for .alx files and there is not any wtf?… so what the hell is the .axl file?… luckily its simple, is the file that describe the files and properties of an application, so to solve te problem simply open a text editor and create a file called Funambol.alx with this content

<loader version=”1.0″>
<application id=”FunambolSync”>
<name>
Funambol Sync Client
</name>
<description>Funambol sync client</description>
<version>8.7.1</version>
<vendor>Funambol</vendor>
<fileset Java=”1.0″>
<files>Funambol_Sync_Plugin.cod</files>
<files>Funambol_Sync_Plugin_common-1.cod</files>
<files>Funambol_Sync_Plugin_common.cod</files>
<files>Funambol_Sync_Plugin_lib-1.cod</files>
<files>Funambol_Sync_Plugin_lib-2.cod</files>
<files>Funambol_Sync_Plugin_lib-3.cod</files>
<files>Funambol_Sync_Plugin_lib.cod</files>
<files>Funambol_Sync_Plugin_pim-1.cod</files>
<files>Funambol_Sync_Plugin_pim.cod</files>
<files>Funambol_Sync_Plugin_syncml-1.cod</files>
<files>Funambol_Sync_Plugin_syncml.cod</files>
</fileset>
</application>
</loader>

Take care about the names of files and the versions, it can change between versions of the client ;)

Posted in Sin categorizar.


Utilidades Web

robtex

Esta web se proclama como la navaja suiza de internet y tiene una serie de utilidades que nos dan mucha información sobre el dominio especificado, devolviendo un informe sobre listas negras, dns, mx, rdns y mucho más. Te lista todos los dominios que comparten la misma IP que el dominio indicado, el país donde está alojado, si hay más de un servidor te da las IPs, posicionamiento SEO en definitiva una información muy valiosa a un solo click totalmente recomendable juguetear un poco con ella robtex.com

builtwith.com

Buscando mi nick en google he visto una entrada curiosa sobre este dominio, al visitar la página en cuestión me he encontrado con una web muy interesante, se llama y builtwith.com es una araña que añaliza dominios y la tecnología con que han sido desarrollados.

Los objetivos de la web según describen ellos mismos son (traduzco literalmente):

“Las forma más sencilla de mejorar tu optimizaciones en los motores de búsqueda (SEO), tecnologías web y estándares de documentos, permitiendote también la monitorización de tu infraestructura web y encontrar y seguir qué están haciendo tus competidores”

Es una erramienta útil que puede facilitar bastante información a la hora de analizar un site, pero también permite ver qué sites utilizan una tecnología p.e: PHP o Apache previo pago de cantidades que no son precisamente baratas, para bajar un listado de los 574,692 sites que utilizan Apache me piden $2,619.71, una cifra muy poco amigable. De todas formas es un buen sitio en el que mirar a la hora de recoger información sobre un site antes de realizar un pentest, también te dá la opción de ofrecerte unos consejos básicos SEO para tu site si te registras.

Wholinkstome

Esta web te muestra qué páginas realizan links hacial el dominio que se le indique, nada espectacular pero puede ser información interesantes en algunos casos wholinkstome.com

byte byte my nerds ;)

Posted in Sin categorizar.


Comandos y programas útiles

Este post es una recopilación de comandos y programas que considero útiles, más que nada lo escribo a modo de referéncia e irá creciendo con el tiempo

GNU/Linux

  • auctl: Herramienta para controlar el sistema de auditoría del kernel (funcionalidad existente a partir de la rama 2.6)
  • ausearch: Realiza consultas los logs del demonio de auditoría
  • aureport: Genera reportes de los logs del demonio de auditoría
  • Bastille: Ayuda a securizar un Linux
  • Cops: Comprueba el sistema de archivos en busca de permisos inusuales
  • logcheck: Permite generar alertas por e-mail cuando encuntra algún patron especificado en los logs
  • Maltego: Herramienta para la recolección, organización y visualización de información del objetivo (Inteligencia competitiva)
  • nginx: Un proxy inverso y balanceador de carga http y correo electrónico (failover and load-balancing)
  • plecost: Programa para realizar auditorías sobre el estado de actualización de un WordPress
  • psad: Detecta escaneos de puertos y permite varias acciones, enviar mail, bloquear el ataque…
  • tripwire: Realiza hash MD5 de los directorios especificados para contrastarlos periodicamente en busca de cambios en el sistema de archivos, así se pueden detectar accesos indebidos
  • SystemImager: Programa para realizar copias y restauraciones de sistemas
  • monit: Sistema de monitorización que no requiere php ni similares, multiserver, con interfaz https y no intrusivo

Windows

  • ipconfig /flushdns: Vacía la caché DNS
  • nbtstat -RR: Realiza un release y renew del nombre netbios con el servidor WINS

Posted in GNU/Linux, Microsoft.


Gestor de scripts Unix centralizado y distribuible

Voy a describir el funcionamiento y la estructura de una herramienta que creé hace tiempo, pero que creo que puede serle útil a más gente, la herramienta sirve para gestionar los scripts de forma centralizada en entornos de tipo Unix y se llama DCSM de sus siglas en inglés (Distributable Centralized Scripts Manager, Gestor de scripts centralizado y distribuible) esta programada mediante shell scripts y se desarrolló sobre Solaris pero funciona en cualquier Unix, el único requisito es un servidor CVS (era muy complejo instalar subversion en los Solaris 8 ;) ) y crond. A continuación reproduzco el documento que describe esta herramienta.

La situación general, en gran cantidad de redes,  a la hora de gestionar los scripts de los servidores, que siempre existen, es crear los scripts específicos para cada servidor, y si es necesario en otro servidor se copia. Este sistema de administración de scripts es muy típico y, aunque evita algo de trabajo, tiene unas claras desventajas, las que intento solucionar son las siguientes:

  1. Es difícil hacer un seguimiento de los scripts que están en cada servidor.
  2. Si se modifica un script que se usa en más de un servidor hay que modificarlo en cada uno de los servidores, si tenemos en cuenta el punto 1 puede ser que no se apliquen los cambios deseados a todos los servidores.

Estas desventajas se pueden resolver mediante la centralización de la gestión y distribución de los scripts.

Continued…

Posted in Desarrollo, GNU/Linux, Proyectos, Sistemas.

Tagged with , , , .


Convertir un certifacado pfx (Microsoft) al formato PEM con openssl

  1. openssl pkcs12 -in archivo.pfx -out resultado.pem
  2. openssl pkcs12 -nokeys -in archivo.pfx -out resultado.cert
  3. openssl pkcs12 -nocerts -in archivo.pfx -out resultado.key -nodes
  4. Si vas a usar el certificado en un Cisco CSS hay que eliminar todo el contenido delante de “—–BEGIN RSA PRIVATE KEY—–” en el archivo resultado.key

Posted in GNU/Linux, Microsoft, Redes, Seguridad, Sistemas.

Tagged with , , , .


Recetas para NMAP

-Idle scan (Escaneo pasivo)

1- Obtener hosts vulnerables como intermediario

shell#: nmap -O -v -sS|sT|sA|sW|sM objetivo -oA objetivo.result

2- Buscar los hosts vulnerables en el resultado

shell#: grep “IP ID” objetivo.result.gnmap | perl -pe ‘s/Host:([^\t]+).*IP ID Seq:([^:]+)/$1 $2/’

3-Realizar ping a través de un intermediario

shell#: nmap -PN -p- -sI intermediario destino 

-Escaneo ping rápido

nmap -sP rango_ip

Posted in Redes, Seguridad.

Tagged with , , , .


Como saber la versión de gcc usada para compilar el kernel de Linux

Quien no ha compilado un módulo X y al intentar cargarlo se ha encontrado con el desagradable mensaje de que no se puede cargar el módulo por que se ha compilado con una versión de gcc distinta a la utilizada para compilar el kernel. Cada vez que me pasa me encuentro con lo mismo…¿Cómo se que versión de gcc utilizaron para compilar el kernel? y es que es tan sencillo que siempre se me olvida, a ver si al escribirlo aquí se me queda también en la cabeza y si no pues aquí lo tengo… bueno es tan sencillo como ejecutar en un terminal:

shell#: cat /proc/version

¿fácil no?

byte byte ;)

Posted in GNU/Linux, Sistemas.

Tagged with , , .


Conectar SCCM a ISA Server 2006

Al intentar conectar Microsoft Service Center Configuration Manager (SCCM) con Microsoft ISA server las conexiones RPC eran denegadas, al intentar conectar mediante wmi desde la administración del sistema tampoco se podía conectar. Buscando un poco se encuentran varias soluciones como: agregar el servidor SCCM al conjunto de equipos “Equipos de administración remota” o desactivar la comprobación estricta de RPC. Pero la única que me ha funcionado a mi ha sido añadir una excepción a la regla del sistema que gestiona la administración remota y crear una que la sustituya para el servidor SCCM añadiendole el rango de puertos 1024-6535 para las conexiones RPC. Los pasos son.

  1. Abrir la sección de Directiva de firewall
  2. Añadir un protocolo para los puertos de salida 1024 a 65535, lo llamaré “Puertos > 1024 salida”, en el panel derecho: Herramientas>Protocolos>Nuevo>Protocolo. Añadir los puertos 1024 a 65535 TCP de salida. Si no se desea abrir todo el rango superior al 1024 hay que configurar el RPC en el sistema para que use unos puertos concretos en lugar de uno aleatorio por encima del 1024, seguir los pasos descritos en este articulo de la KB de Microsoft: http://support.microsoft.com/kb/154596/en-us/
  3. Añadir una regla nueva, la llamaremos sccm en el ejemplo
  4. La regla sccm debe permitir el tráfico de los protocolos: Control de Firewall de Microsoft, Datagrama NetBios, RPC (todas las interfaces), Servicio de nombre NetBios, Sesión NetBios y el protocolo creado en el punto anterior Puertos > 1024 salida
  5. La regla se debe aplicar al trafico que venga del servidor SCCM y la red Host local y enviado a los destinos Host local y al servidor SCCM, debe permitirse al conjunto de usuarios Todos los usuarios
  6. Una vez creada la regla pulsar el botón derecho sobre ella, seleccionar la opción Configurar protocolo RPC y deseleccionar el checkbox Hacer cumplir la comprobación RPC estricta
  7. Ahora tan solo queda añadir una excepción para el servidor SCCM en la directiva del sistema, seleccionar la pestaña Tareas del panel derecho y pulsar sobre la opción Mostrar reglas de directivas del sistema
  8. Doble click sobre la directiva Permitir la administración remota desde equipos seleccionados que usan MMC, seleccionar la pestaña “De” y añadir el servidor SCCM en el apartado excepciones, cerrar, aplicar los cambios y voila!! funciona
  9. Para finalizar recomiendo que se añada la regla al final de las permisivas para que no se solape con una regla ya existente, debido a que se aplica a todos los puertos.

Una vez comprobado que todo funciona como debe (se puede acceder los recursos compartidos, hacer peticiones WMI remotas) se puede restringir más el acceso de esta regla, ya sea por usuarios o por origenes de la petición.

Byte byte my nerds ;)

Posted in Microsoft, Sistemas.

Tagged with , , .