Knock, obteniendo subdominios

Este fin de semana pasado tocó culturizarse un poco, y entre todas las noticias relacionadas con la seguridad que leí encontré muchas cosas nuevas e interesantes. Desde recientes fallos de seguridad en Joomla a nuevo software cuando menos digno de probar.
Hoy os quiero hablar de Knock, un pequeño script escrito en Pyhton y que realiza un perfecto escaneo de todos los subdominios existentes para un dominio dado. Ese tipo de información que muchas empresas descuidan y que sirve para descubrir servicios o equipos ocultos e incluso de nombre interno. Knock es por lo tanto una herramienta de auditoria muy eficaz y que a mayores de obtener información, también nos permite jugar un poco con el tema de dominios, como por ejemplo forzar una transferencia de zona y cosas así. Sin embargo, lo que más se sorprendió fue la facilidad para encontrar los subdominios.
Knock está disponible para su descarga desde Google Code y tras descargarla, son sólo tener Python instalado ya podemos comenzar a jugar.
shell> python knock.py -h
Knock v1.5 by Gianni 'guelfoweb' Amato ( http://knock.googlecode.com )

USAGE:
   Scanning with internal wordlist:
      knock [url]
      e.g. knock domain.com
   Scanning with external wordlist:
      knock [url] [wordlist]
      e.g. knock domain.com wordlist.txt
...
Como veis, Knock nos permite realizar un escaneo de un dominio pasándole nosotros un listado de palabras propio. En caso de no proporcionárselo, simplemente usará las palabras por defecto que trae en su 'diccionario'. A continuación os dejo un ejemplo contra un dominio conocido para ver qué podemos averigiar de él.
shell> python knock.py facebook.com
Knock v1.5 by Gianni 'guelfoweb' Amato ( http://knock.googlecode.com )

[+] Testing domain
   www.facebook.com          173.252.110.27     
[+] Dns resolving
         Domain name    Ip address    Name server       
         facebook.com   173.252.X.Z   edge-shv-D-frc1.facebook.com
Found 1 host(s) for facebook.com
[+] Testing wildcard
  Ok, no wildcard found.

[+] Scanning for subdomain on facebook.com
[!] Wordlist not specified. I scannig with my internal wordlist...
  Estimated time about 75.72 seconds

         Subdomain      Ip address    Name server    
       0.facebook.com   173.252.X.Z   edge-shv-M-frc1.facebook.com
     abc.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
   about.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
      ac.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
     ads.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
    apps.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
 arizona.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
arkansas.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
      au.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
      ba.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
   baker.facebook.com   173.252.X.Y   edge-shv-D-frc1.facebook.com
...
Tal como se observa, el número de subdominios que nos reporta es cuando menos considerable. Así que espero que os sea de ayuda si tenéis que hacer una auditoria.
Os dejo a continuación también un vídeo donde se ve el funcionamiento de esta herramienta.

La entrada Knock, obteniendo subdominios la puedes leer en Puppet Linux.
Leer más

Bacula (I)

Bacula es un software de copias de seguridad en red de código abierto. Está diseñado para escalar desde una sola máquina a miles, siendo capaz de hacer los backup's en cinta, disco o cualquier otro medio sobre el que GNU/Linux sepa escribir. Sobre algunas características y usos de Bacula ya tuvimos varias entradas, pero hoy vamos a ver Bacula desde un punto de vista más teórico.
El software Bacula está compuesto de 5 servicios principales que detallamos a continuación.
  1. Bacula Director Daemon
    Bacula Director es el centro neurálgico de Bacula y el que controla todas las operaciones: copia de seguridad, recuperación y verificación de datos. En él están, por ejemplo, la ejecución programada de cada acción, también regula la gestión de los grupos de medios y controla el archivo de almacenamiento.
    Para establecer comunicación con él, el administrador tiene acceso a una consola.
  2. Bacula Catalog
    Bacula Catalog está formado por el programa de software responsable de mantener los índices de los archivos y por la base de datos de todos los archivos de copia de seguridad. Son estos catálogos los que permiten al administrador o al usuario encontrar y restaurar cualquier fichero rápidamente. Para ofrecer estos servicios de catálogo, Bacula se apoya en software de base de datos. Actualmente tiene soporte para MySQL, PostgreSQL y SQLite. Uno de ellos es necesario para la instalación de Bacula.
  3. Bacula Storage Daemon
    Bacula Storage es la parte software que se encarga del almacenamiento y la recuperación de los archivos en los medios de copia de seguridad. En otras palabras, es el daemon que se encarga de leer y escribir en las cintas u otras soporte de almacenamiento.
  4. Bacula File Daemon
    Bacula File, también conocido como cliente Bacula, es el programa de software que se instala en todos los equipos de los que deseamos tener una copia de seguridad. Es específico del sistema operativo en el que se ejecuta y se encarga de proporcionar los archivo cuando Bacula Director los solicita.
  5. Bacula Console
    Bacula Console es el programa que permite al administrador o al usuario comunicarse con Bacula Director. La consola está disponible en la interfaz basada en texto (interfaz TTY), pero existen más versiones que permiten interactuar con el Directror de forma más gráfica.
Bacula Services Description

Características

A continuación vamos a ver algunas de las características principales de Bacula como software de backup. Aunque existen muchos programas para la realización de backup's en red, Bacula destaca por lo siguiente.
  • Seguridad
    • Verificación de archivos previamente catalogados.
    • Autenticación con contraseña CRAM-MD5 entre cada componente.
    • Cifrato TLS/SSL de comunicaciones entre cada componente.
    • Posibilidad de encriptación de los datos de un cliente concreto o de todos en función de una clave propia del cliente.
  • Soporte de múltiples sistemas operativos
    • Programado para manejar nombres de archivos y mensajes de longitud arbitraria.
    • Posibilidad de compresión GZIP por parte del cliente en los archivos a transmitir si así es requerido.
    • Soporte para ACL's y atributos extendidos en la mayoría de sistemas operativos.
    • Control de acceso a la consola diferenciado por usuario, lo que permite que cada uno acceda únicamente a sus datos.
    • Soporte para archivos de más de 2 Gb.
    • Soporte para arquitecturas de 64 bits.
    • Apoyo ANSI y etiquetas de cintas IBM.
    • Copia de seguridad consistente de archivos abiertos para Win32 (WinXP, Win2003 y Vista), pero no en Windows 2000.
      Usa para ello, Volume Shadow Copy (VSS).
    • Soporte para rutas/nombres de archivos de hasta 64K en máquinas Win32.
      Sin límite en Unix/Linux.
  • Control de trabajos
    • Copia de seguridad en red desde un punto centralizado.
    • Incluye planificador de ejecución de tareas.
    • Programación de varios trabajos simultáneamente.
    • Permite la ejecución de un trabajo a varios a la vez.
    • Secuancias de trabajo marcadas con prioridades.
    • Consola de comunicación con el proceso principal.
  • Restauración
    • Recuperación de uno o más archivos seleccionados de forma interactiva, desde la última copia de seguridad o desde una seleccionada con fecha y hora concretas.
    • Recuperación de un sistema completo a hardware nuevo. Está especialmente automatizado para sistemas Linux y Solaris.
    • Posibilidad de restaurar la base de datos del catálogo de forma sencilla.
    • Capacidad para volver a generar la base de datos de catálogo mediante el escaneo de los volúmenes gracias a bscan.
  • Catálogo SQL
    • Catálogo de base de datos para almacenar volúmenes, pools, trabajos y archivos.
    • Soporte para MySQL, PostgreSQL, SQLite.
    • Soporte de consultas SQL a los catálogos.
  • Volúmenes y Pools
    • Soporte de etiquetas en volúmenes, que evitan la sobreescritura accidental.
    • Todos los datos de backup pueden ir al mismo volumen. No se discierne por cliente o sistema operativos. Es el catálogo el que controla qué cosa está en cada lugar. Así el volumen se aprovecha mejor y ofrece mayor rapidez de backup.
    • Cambio de volumen automáticamente cuando el que está en uso está marcado como lleno.
    • Pools y volúmenes ofrecen flexibilidad gracias a la configuración de los mismos. Se permite diferenciar por meses, semanas, días, cliente, etc.
    • El formato de los datos es independiente de la máquina cliente.
  • Soporte para la mayoría de los dispositivos de almacenamiento
    • Soporte para función "autochanger", empleando para ellos una shell y el listado de comandos para mtx. Gracias a ellos soporta prácticamente todos las librerías.
    • Soporte para códigos de barras en "autochanger".
    • Etiquetado automático de cintas por códigos de barras.
    • Soporte para múltiples unidades de carga automática.
    • Seguridad en escritura de datos al realizar un checksum de los datos escritos en cada volumen. Aproximadamente cada 64Kb.
    • Soporte para la miegración de datos. Permite mover datos entre diferentes pools o volúmenes y también el guardado de datos en DVD.

Ventajas

  • Bacula File Daemon, un cliente por cada máquina, lo que facilita la conexión y el backup de datos de cada puesto.
  • Soporte para atributos del sistema de ficheros, lo que garantiza que los datos se restauren con los mismos permisos que tenían en origen.
  • Manejo de copias de seguridad de varios volúmenes.
  • Uso de base de datos para almacenar el estado y los fichero de los que hay copia.
  • Auto-purgado de la base de datos, lo que facilita el mantenimiento de la misma.
  • Velocidad de backup y de restauración de datos.
  • Soporte de mensajes de aviso y de estado de operaciones, lo que facilita saber si algo sale mal.
  • Interfaz de comunicación sencilla y por usuario. Existen también clientes web más visuales.
La entrada Bacula (I) la puedes leer en Puppet Linux.
Leer más

Actualización de seguridad para Joomla

Descripción:

Vulnerabilidad crítica en el Core de Joomla.
Afecta a versiones <= 2.5.13 y <= 3.1.4.

Fecha:

31/07/2013

Detalles:

Se ha detectado un fallo de seguridad que permite vulnerar las restricciones de subida de ficheros.
Se hace un filtrado incorrecto de los datos, lo que permite subir deferentes tipos de fichero y extensiones (no permitidos) al site.

Solución:

Actualizar a las versión 2.5.14 o 3.1.5.

Referencias:

Joomla security
Leer más

Simular conexión de agente Zabbix con zabbix_sender

Ya hacía tiempo que no escribía nada referente a algún truco de Zabbix y hoy ya tocaba. Pues bien, como muchos de vosotros sabréis, Zabbix tiene el comando zabbix_sender que sirve para enviar al servidor el valor de un item que sea de tipo trapper. Trapper es un tipo especial de items en los cuales el servidor Zabbix no pide su valor, sino que alguien debe enviarlos. Alguien que no sea el agente de Zabbix, puesto que estos no se solicitan. Para enviar valores a Zabbix, la forma más sencilla es emplear el propio zabbix_sender.
Hoy lo que nos interesa es ver cómo podemos hacer para que zabbix_sender actualice un valor que sea de tipo "zabbix agent". Como ya dijimos, sólo se puede actualizar valores de tipo trapper. Esto es así por que en el código así está escrito.
La idea es aplicar un pequeño parche al código del zabbix_sender para que éste admita un tipo especial de envío que sea "zabbix agent". Si vemos un poco el código, cada uno de los tipos que admite Zabbix se corresponde con una variable previamente definida. Alterar el código por lo tanto para que se permita el envío de otro tipo de item no "debe ser muy complicado".
El problema está en que los datos que envía el zabbix_sender al llegar al servidor identificados como trapper y el destino es un item de tipo "zabbix agent" son automáticamente truncados. Para evitar este problema, debemos hacer que zabbix_sender envíe la comunicación simulando ser un agente Zabbix.
Os dejo el parche, que podéis descargar desde aquí, y que aplica los cambios necesarios.
Gracias a esta pequeña modificación, podemos ya emplear zabbix_sender para actualizar valores de tipo "zabbix agent", con simplemente añadir en la línea de comandos la opción "-a".
shell> zabbix_sender -h
Zabbix Sender v2.0.6 (revision 35158) (22 April 2013)

usage: zabbix_sender [-Vhv] -a {[-zpsI] -ko | [-zpI] -T -i f -r} [-c f]

Options:
...
Other options:
  -h --help            Give this help
  -V --version         Display version number
  -a --active-agent    Simulate a Zabbix agent in active mode

shell> zabbix_sender -a -s locahost -k system.uname -o "My value"
info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.000010"
sent: 1; skipped: 0; total: 1
Lógicamente, sentiros libres de modificarlo.
La entrada Simular conexión de agente Zabbix con zabbix_sender la puedes leer en Puppet Linux.
Leer más

Interfaces de red en tcpdump

tcpdump es uno de los mejores programas que existen para capturar tráfico de red. Tanto la versión para Windows, como especialmente la versión de GNU/Linux funcionan perfectamente y permiten poner uno (o varios) interfaces de red en modo promiscuo para capturar el tráfico de red que recibe. Sin embargo, si estamos conectados a un equipo con varias tarjetas de red, quizás saber cómo se llaman o en cual poner a escuchar nuestro tcpdump puede resultar más complicado. Si echamos un vistazo al manual del programa, podemos ver cómo existe una opción (-D) que nos lista todas las interfaces de red disponibles.
shell> tcpdump -D
1.eth0
2.eth0.20
3.eth0.30
4.usbmon1 (USB bus number 1)
5.eth1
6.usbmon2 (USB bus number 2)
7.usbmon3 (USB bus number 3)
8.eth2
9.any (Pseudo-device that captures on all interfaces)
10.lo
En la salida que vemos, se puede observar el listado de interfaces que tiene un equipo. En ellas, incluso de pueden ver los interfaces virtuales que existen sobre una de las tarjetas. tcpdump también permite escuchar sobre interfaces virtuales. También destaca los puertos USB del equipo, aunque de esto ya hablamos en otro artículo.
Existe también un interfaz especial denominado any y que, como dice su descripción es un pseudo-interfaz que captura en todas las interfaces. En caso de que queramos escuchar en todas las interfaces de red del equipo, any será nuestra tarjeta.
shell> tcpdump -i any

El artículo Interfaces de red en tcpdump lo puedes leer en Puppet Linux.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios