Actualizando librerías para metasploit

Hace ya unos meses que no jugaba con metasploit y hoy, tras decidirme a hacer unas pruebas de concepto de shellshock, tras actualizar el framework me empiezan a dar errores de librerías y no arranca. Puesto que no creo que sea al único al que le pasan, dejo aquí las soluciones tomadas, que espero a alguien le sirvan. Lo primero de todo, el error mostrado cuando intentaba arrancar el framework,
shell> msfconsole
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.3.2 in any of the sources (Bundler::GemNotFound)
...
Como se puede deducir por el mensaje, el problema está en la librería rake. Y concretamente en la versión de la misma que tras el ultimo upgrade de metasploit es necesaria. Para solucionarlo, actualizamos dicha librería
shell> gem install rake
Fetching: rake-10.3.2.gem (100%)
Successfully installed rake-10.3.2
1 gem installed
...
Y un nuevo error vuelve a aparecer en escena. Esta vez,
shell> msfconsole
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find i18n-0.6.11 in any of the sources (Bundler::GemNotFound)
...
Aplicamos la misma solución que en el primer caso,
shell> gem install i18n
...
Installing sqlite3 (1.3.9) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Gem files will remain installed in /var/lib/gems/1.9.1/gems/sqlite3-1.3.9 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/sqlite3-1.3.9/ext/sqlite3/gem_make.out

An error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.9'` succeeds before bundling.
Sólo que esta vez nos avisa de otro error de por medio. Nos falta una librería necesaria para poder instalar sqlite3 y, por suerte, la solución también nos la da un poco más arriba, que es instalar el paquete libsqlite3-dev. Procedemos,
shell> apt-get install libsqlite3-dev
Una vez finalizado, repetimos la instalación de i18n, esta vez debería de ir todo correcto y msfconsole debería de arrancar ya perfectamente.
shell> msfconsole
# cowsay++
 ____________
 metasploit 
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *

+ -- --=[ 1358 exploits - 761 auxiliary - 218 post        ]
+ -- --=[ 346 payloads - 35 encoders - 8 nops             ]
+ -- --=[ Free Metasploit Pro trial: http://r-7.co/trymsp ]

msf >
Si a alguien le pasa lo mismo, aquí podrá encontrar la solución.
Leer más

Limitar velocidad de descarga para APT

Con los nuevos métodos de trabajo que se están implantando en entornos grandes, cada vez resulta más necesario tener un método de control que limite ciertos problemas de colapso de red. Uno de ellos es la instalación/actualización de paquetes en los servidores. Imaginaros que tenemos una red de 100 ordenadores con Debian/Ubuntu y decidimos instalar un nuevo paquete en todos. Herramientas como salt stack  hacen esta trabajo realmente sencillo y rápido,
shell> salt -G 'os:Debian' pkg.install vim
y mandar a 100 equipos descargar un mismo paquete en un mismo momento, puede provocar un colapso de red y ésta afectaría a todos los equipos y personas que estén en ella.
Para evitarlo, si empleamos herramientas de orquestación, por ejemplo para sistemas Debian, es muy recomendable configurar un máximo de velocidad de descarga desde los repositorios APT. Así evitaremos un sobre saturar de la red. Hacerlo es tan sencillo como crear el fichero /etc/apt/apt.conf.d/99limit con el siguiente contenido,
Acquire
{
   Queue-mode "access";
   http
   {
      Dl-Limit "25";
   };
};
Tras guardarlo, la próxima vez que empleemos apt, la velocidad de descarga se limitará a los kbs aquí establecidos (más o menos).
Leer más

Solucionar problema con popups en Chrome

Hoy me he encontrado con un problema en el trabajo. Tras la última actualización de Chrome no me abrían los popups de la web que usamos para gestionar los proyectos, lanzar ausencias, etc. ya que Chrome considera que este método está en desuso. La solución pasa por habilitar la opción de características web deprecated y para ello os dejamos aquí los siguientes pasos:

  1. Creamos la carpeta de políticas de Chrome
    shell> mkdir -p /etc/opt/chrome/policies/managed
    
  2. Creamos un fichero, chrome.js, con el siguiente contenido,
    {
    
    EnableDeprecatedWebPlatformFeatures = "ShowModalDialog_EffectiveUntil20150430"
    
    }
    
    Con esto lo habilitaríamos hasta el 30 de Abril de 2015
  3. Reiniciamos Chrome
    Una vez hecho esto, abrimos las políticas de Chrome para comprobar que se han cargado correctamente. La URL: chrome://policy
    Si todo fue bien debería aparecer la política que acabamos de introducir y ya deberían funcionar correctamente los popups.
Leer más

Humor social IV





Leer más

IP de salida en Postfix

Seguimos hablando de Postfix y de variables de configuración que, según qué instalación, pueden ser interesantes. Hoy vamos a ver cómo indicarle al servidor de correo la IP para el correo de salida que debe emplear (variable smtp_bind_address). Por defecto, dicha variable no se suele configurar y es el propio servicio el que se encarga de salir por el interfaz que mejor le convenga. En caso de que teniendo un servidor con más de una IP de salida, nos interese que el correo salga por una concreta, simplemente con indicarlo en el fichero de configuración (/etc/postfix/main.cf) nos llegaría.
smtp_bind_address = 192.168.0.2
Una vez reiniciado Postfix, la salida de correos se producirá por dicha IP y, por lo tanto, por el interfaz en el que esté configurada.
Leer más

Samba: Registro de actividad

Por normal general, tarde o temprano, al trabajar sobre unidades de red y ficheros compartidos, la pregunta ¿quién ha borrado el fichero ...? llega al administrador de sistemas. Es en este momento cuando un samba mal configurado o con unas opciones de auditoría malas puede complicarte la vida.
Por suerte, samba nativamente ofrece dicha posibilidad, y únicamente para usarlo hay que emplear el módulo full_audit que viene incluido ya en las últimas versiones de samba. La forma en la que yo lo implementé creo que es la más sencilla y fácil de gestionar, y permite más modularidad. Para ello, comenzamos creando el fichero /etc/samba/audit.conf con el siguiente contenido,
vfs objects         = full_audit
 
full_audit:prefix   = %u|%I|%m|%S
full_audit:success  = mkdir rename unlink rmdir pwrite
full_audit:failure  = none
full_audit:facility = local0
full_audit:priority = INFO
Con el fichero creado, únicamente debemos de incluir este método de auditoría en aquellas carpetas compartidas que deseemos. Para hacerlo, nada más sencillo que en el fichero /etc/samba/samba.conf, añadir la siguiente línea las unidades que deseemos,
[UNIDAD DE RED]
  include   = /etc/samba/audit.conf
  path      = /srv/data
  read only = no
  ...
Tras ello, y antes de reiniciar el servicio, podemos comprobar con testparm que el fichero de configuración es válido. Si todo está correcto, entonces ya podemos reiniciar el servicio.
shell> testparm
shell> service smbd restart
shell> service nmbd restart
Desde este momento, aparecerán líneas en syslog indicando la actividad de los usuarios en el sistema.
shell> tail -f /var/log/syslog
mail|192.168.0.20|304j|user|pwrite|ok|data/file.text
fran|192.168.0.14|71aj|user|pwrite|ok|data/file.text
fran|192.168.0.14|712j|user|pwrite|ok|data/file.text
mail|192.168.0.20|304j|user|pwrite|ok|data/file.text
javier|192.168.0.25|304j|user|pwrite|ok|javier/file.text
javier|192.168.0.25|304j|user|pwrite|ok|javier/file.text
javier|192.168.0.25|304j|user|pwrite|ok|javier/file.text
Espero que os sea de utilidad. En esta salida, buscar un evento, como veis es muy sencillo.

Nota:

Significado de las líneas del fichero de auditoría:
  • vfs objects
    Indicamos que use el módulo full_audit
  • full_audit:success
    Especifica las acciones en las cuales realizar la escritura de auditoría.
    • mkdir: Creación de directorios
    • rename: Cambio de nombres
    • unlink: Borrado de ficheros
    • rmdir: Borrado de directorios
    • pwrite: Nuevos ficheros (creados o subidos)
    Aquí puedes encontrar toda la lista de opciones soportadas.
  • full_audit:failure
    Indica qué acciones se deben de escribir a auditoría en caso de que fallen.
  • full_audit:facility
    full_audit envía todo a syslog, pero permite configurarlo por si nos interesa separar o poder filtrar dichas acciones. En este caso, hemos optado por poner la facility local0, ya que suele ser de las no usadas en el sistema.
  • full_audit:priority
    Al igual que nos permite indicar la facility, también se permite indicar la prioridad. Para nosotros INFO.
  • full_audit:prefix
    Indica cómo queremos escribir la línea de log, para hacerla más legible. A continuación os deja la tabla de las variables soportadas por full_audit.
    Variable Definition
    Variables de cliente
    %a Arquitectura del cliente
    %I Dirección IP del cliente
    %m Nombre NetBIOS del cliente
    %M Nombre DNS del cliente
    Variables de usuario
    %u Nombre de usuario
    %U Nombre de usuario que el cliente solicita
    %H Directorio ~ de %u
    %g Grupo primario de %u
    %G Grupo primario de %U
    Variables de compartido
    %S Nombre del compartido
    %P Directorio del compartido
    %p Punto de montaje del compartido
    Variables del servidor
    %d ID del proceso del servidor
    %h Nombre DNS del servidor
    %L Nombre NetBIOS del servidor
    %N Directorio raís del servidor
    %v Versión de samba
    Miscellaneous variables
    %R Nivel de protocolo SMB negociado
    %T Fecha
    var Valor de una variable de entorno var
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios