Archive for 30 octubre 2010

Filtrando intentos de acceso por ssh

30/10/2010

Uno de los problemas mas grandes cuando uno utiliza ssh es la enorme cantidad de intentos de acceso, los cuales si bien no provienen de cantidades descomunales de direcciones IP, si son muchisimos intentos desde la misma PC, por lo que me decidi a bloquearlos usando un script de bash y cron

Code:
#!/bin/bash

#Este script monitorea los intentos fallidos de ingreso al sistema con ssh, al 2do agrega la ip al archivo /etc/hosts.deny

LOGFILE="/var/log/messages"
HOSTSDENY="/etc/hosts.deny"
BADCOUNT="2"

# busco los intentos fallidos en el log
grep sshd $LOGFILE |grep "Invalid user"| awk '{print $NF}'|sort|uniq -c|sort -n|sed "s/[[:space:]]*//" | while read i
do        
   # los cuento
   count=`echo $i | cut -d" " -f1`  
   # leo la IP        
   ip=`echo $i | cut -d" " -f2`        
   # verifico que no exista en hosts.deny        
   already=`grep $ip $HOSTSDENY | grep sshd`                
   # si la IP no existe la agrego        
   if [ -z "$already"  ]
      then     
         if [ "$count" -ge "$BADCOUNT" ] 
            then     
               echo "sshd: "$ip >> $HOSTSDENY 
         fi        
   fi
done

este script lo guardamos en /root/bin y como root lo agendamos en cron ejecutando el comando crontab -e y agregando la siguiente informacion:

 

5 * * * * /root/bin/sshlock && /usr/bin/touch /root/run.cron

 

luego de 2 dias con la PC encendida unas pocas horas nada mas se genero el siguiente archivo con las IP que intentaron ingresar:

 

Code:
[vampird@shinobu]:~$ cat /etc/hosts.deny
# /etc/hosts.deny
# See 'man tcpd' and 'man 5 hosts_access' as well as /etc/hosts.allow
# for a detailed description.

http-rman : ALL EXCEPT LOCAL

sshd: 118.142.91.168
sshd: 119.188.7.137
sshd: 140.113.151.65
sshd: 219.143.125.205
sshd: 192.168.1.6
sshd: 121.28.179.10
sshd: 190.21.109.153
sshd: 61.150.72.170
sshd: 203.130.216.49
sshd: 201.236.96.108
sshd: 96.44.189.182
sshd: 194.80.193.219
sshd: 218.241.161.186
sshd: 58.211.1.163
sshd: 151.22.71.2
sshd: 222.141.118.117
sshd: 67.202.108.140
sshd: 76.109.98.23
sshd: 218.63.241.157
sshd: 189.14.114.212
sshd: 218.240.12.194
sshd: 202.51.79.99
sshd: 114.207.245.86
sshd: 219.255.132.105
sshd: 190.129.67.20
sshd: 200.62.170.206
sshd: 184.106.231.121
sshd: 203.171.30.41
sshd: 202.29.18.53
sshd: 87.250.33.180
sshd: 202.107.233.163
sshd: 210.78.144.23
sshd: 212.102.225.32
sshd: 203.66.151.27
sshd: 190.208.31.117
sshd: 89.208.40.152
sshd: 201.6.148.10
[vampird@shinobu]:~$

tambien agrego que podemos usar el comando whois para ver algunos datos de esas direcciones IP, varias son registradas en China

=-=-=-=-=
Powered by Blogilo

Anuncios

Uso de zypper

28/10/2010

Zypper es un manejador de paquetes bastante facil de usar y con bastantes opciones, y bastante rapido desde que se re escribiera libzypp

Aca va un pequeño resumen de lo que es capaz de hacer

Instalar y remover paquetes por nombre, version o capacidades

Instalar o remover utilizando comodines

# zypper rm kde*devel*

# zypper in gtk-sharp?

Manejando versiones multiples de un paquete

# zypper in package-1.2.3

# zypper rm package>1.2.3

Instalar y remover a la misma vez, –significa remover y + significa instalar.

# zypper in <paquete a instalar> -<paquete a remover> +<otro paquete a instalar>

Forzar una reinstalacion

# zypper in –force <paquete>

Instalar un rpm desde el disco o la web y resolver las dependencias desde los repositorios.

# zypper in ./paquete.rpm

# zypper in http://<url>/paquete.rpm

Actualizar los paquetes instalados si tienen nuevas versiones disponibles

# zypper up

Instalar los delta rpm que contienen parches:

#zypper patch

Instalar los paquetes que tienen versiones mas nuevas en otros repositorio o actualizar a otra version de openSUSE:

# zypper dup

Manejo de rpm fuentes

Instalar las fuentes de un paquete

# zypper si <paquete>

Instalar las dependencias para compilar un paquete

# zypper si -d <paquete>

Patrones

Puedes listar todos los patrones disponibles con el comando:

# zypper pt

Instalar el patron xfce

# zypper in -t pattern xfce

Manejo de repositorios

Lasitar repositorios

# zypper lr

Agregar repositorios

# zypper ar <url> <nombre>

Deshabilitar el primer repositorio

# zypper mr -d 1

Deshabilitar un repositorio segun el nombre

# zypper mr -d repo-oss

Remover el primer repositorio

# zypper rr 1

Manejo de paquetes

Buscar un paquete

# zypper se banshee-1

# zypper se bans*

Buscar un patron

# zypper se -t pattern media

Por defecto buscar solo devuelve el nombre, descripcion y tipo del paquete, para obtener una informacion mas detallada como por ejemplo de que repositorio viene el paquete se puede hacer lo siguiente.

# zypper se -s paquete

Ver una descripcion corta

# zypper if package

Otro truquito interesante

Puedes simular cualquier comando de zypper agregando –dry-run al final

# zypper in –dry-run <paquete>

Bloquear el estado de un paquete (instalado o no)

# zypper addlock <paquete>

# zypper removelock <paquete>

=-=-=-=-=
Powered by Blogilo

0-day en el navegador Mozilla Firefox explotado activamente

28/10/2010

Se ha detectado la explotación activa de una vulnerabilidad desconocida que afecta al navegador Mozilla Firefox en las versiones 3.5 y 3.6.

El 0-day fue descubierto por el equipo de Trend-Micro, el cual informó que el sitio web oficial de los Premios Nobel había sido comprometido y que los atacantes habrían insertado un script PHP malicioso, denominado "JS_NINDYA.A", con objeto de propagar malware.

El script determina si va a explotar o no la vulnerabilidad a través de la lectura del campo User-agent, del cual extrae la información sobre el navegador y versión, además del sistema operativo. En caso de explotarla exitosamente procede a descargar el troyano BKDR_NINDYA.A al ordenador de la víctima.

Dicho script explota la mencionada vulnerabilidad y aunque afecta al navegador Firefox en las versiones 3.5 y 3.6, tan solo intenta su explotación en la versión 3.6 sobre Windows en versiones anteriores a Vista.

Mozilla está trabajando en una solución para esta vulnerabilidad, por lo que en breve podría estar disponible una nueva versión del navegador. Recomiendan, mientras tanto, el uso de la extensión NoScript para mitigar el riesgo de exposición hasta que la solución vea la luz.

=-=-=-=-=
Powered by Blogilo

¿Racismo en la edición televisiva de Dragon Ball Kai en EEUU?

27/10/2010

Es de público conocimiento que la edición emitida en televisión de Dragon Ball Kai en Estados Unidos (conocida en ese país como Dragon Ball Z Kai) cuenta con un alto tonelaje de censura, argumentado por la necesidad de adaptar la serie a un público infantil. Es cierto que cosas como borrar la sangre pueden ser aceptadas por el público, ¿pero es aceptable cuando la censura cruza un límite y entramos directamente en el terreno del racismo?.


La última edición de Dragon Ball Z Kai en el bloque Toonzai de la cadena The CW ha causado gran polémica por el cambio de color de piel que uno de sus personajes, específicamente Mr. Popo, ha recibido a manos de la cadena. Su piel fue cambiada del negro, a un muy mal adaptado azul. Nuevamente la mano de 4Kids sobre las series que son licenciadas bajo su marca vuelven al ojo de la polémica.

El canal en cuestión, The CW, ya ha tenido problemas de racismo anteriormente. El año 2009 tuvo que soportar reclamos de televidentes al quitar de su parrilla todas las series en las que participaban actores afroamericanos, luego de fusionarse con un canal que transmitía estas producciones.En Estados Unidos el tema es muy recurrente. Recordado es el caso del Pokémon Jynx, al cual el color de piel le fue cambiado de negro a púrpura.

=-=-=-=-=
Powered by Blogilo

Entendiendo la bomba fork() de bash :(){ :|:& };:

25/10/2010

La pregunta: ¿Alguien puede explicar que es el siguiente codigo en bash? :(){ :|:& };:

Respuesta: Es una funcion en bash, y mas aun, es una funcion recursiva. Es un codigo fatal para cualquier sistema sin configurar correctamente.

Una vez que sea ejecutado ese comando y si el sistema no esta correctamente configurado sera imposible continuar sin reiniciar.

Expliquemos mas detalladamente…

:() – Es el nombre de una funcion, la cual no acepta argumentos, generalmente las funciones de bash de definen como sigue:

Code:
nombre_de_funcion () {
   arg1=$1
   echo ''
   #hacemos algo $arg
}

la bomba fork() se define como sigue:

Code:
:() {
   :|: &
};:

:|: – Aca llamamos a la funcion recursivamente, y para hacerlo peor usamos un pipe para llamarla dos veces, por lo que por cada recursion estaremos llamando dos veces a la funcion.

& – Pone la funcion en segundo plano para que los hijos no mueran del todo y consuman recursos.

; – Terminamos la definicion de la funcion

: – Aca llamamos a la funcion.

Aca dejo un codigo un poco mas facil de leer:

Code:
bomba() {
   bomba | bomba &
}; bomba

=-=-=-=-=
Powered by Blogilo

Huevos de pascua en algunas aplicaciones

25/10/2010

Los huevos de pascua son pequeños regalitos escondidos en algunos programas, y a continuación pongo una lista con algunos bastante llamativos.

  • En Seamonkey/Firefox escribir about:mozilla en la barra de direcciones.
  • En OpenOffice Calc escribir: =GAME("StarWars") en cualquier celda
  • En la misma aplicación escribir: =GAME(A2:C4;"TicTacToe") en la celda A1
  • También en la hoja de cálculo escribir: =starcalcteam() en la celda A1
  • Escribiendo: =TTT() en cualquier celda se obtendrá un emoticón aleatorio
  • Ahora en OpenOffice Writer escribir: StarWriterTeam y pulsar F3
  • Para Debian: escribir en una terminal zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz
  • Escribir en una terminal: ddate y se obtendrán fechas absurdas
  • En FireFox escribir about:robots en la barra de direcciones
  • En openSUSE escribir zypper moo

=-=-=-=-=
Powered by Blogilo

Boletines de seguridad de la Fundación Mozilla

21/10/2010

La Fundación Mozilla ha publicado nueve boletines de seguridad (del MFSA2010-64 al MFSA2010-72) para solucionar 12 vulnerabilidades en productos Mozilla (Firefox, Thunderbird y SeaMonkey). Según la propia clasificación de Mozilla cinco de los boletines presentan un nivel de gravedad "crítico", dos son de carácter "alto", otro es "moderado" y un último considerado como "bajo".

Los boletines publicados son:

  • MFSA 2010-64: Boletín crítico, que corrige tres problemas de seguridad de la memoria en el motor del navegador.
  • MFSA 2010-65: Considerado crítico. Desbordamiento de búfer y corrupción de memoria al pasar cadenas de gran tamaño a document.write.
  • MFSA 2010-66: Boletín crítico, por un error debido a la posibilidad de acceder a la propiedad locationbar de un objeto window después de que haya sido cerrado.
  • MFSA 2010-67: Vulnerabilidad de tratamiento de punteros en LookupGetterOrSetter considerada crítica.
  • MFSA 2010-68: Vulnerabilidad de gravedad alta por un cross site scripting en el parseador de Gopher, debido a que las funciones empleadas para convertir texto en etiquetas html podrían emplearse para convertir texto en JavaScript ejecutable.
  • MFSA 2010-69: Vulnerabilidad de gravedad alta, por una divulgación de información de sitios cruzados por llamadas modales.
  • MFSA 2010-70: Boletín de carácter moderado relacionado con la posibilidad de establecer conexiones SSL válidas con certificados SSL creados con un nombre que contenga un comodín seguido de una dirección IP parcial.
  • MFSA 2010-71: Boletín que corrige dos vulnerabilidades críticas por la carga de librerías inseguras.
  • MFSA 2010-72: Boletín de gravedad baja, en el que se trata un intercambio de claves Diffie-Hellman inseguro.

Se han publicado las versiones 3.6.11 y 3.5.14 del navegador Firefox, las versiones 3.1.5 y 3.0.9 de Thunderbird y la 2.0.9 de SeaMonkey; que corrigen todas estas vulnerabilidades, disponibles desde:

http://www.mozilla-europe.org/es/firefox/

http://www.mozillamessaging.com/es-ES/thunderbird/

http://www.seamonkey-project.org/

=-=-=-=-=
Powered by Blogilo

Calcular PI desde python

18/10/2010

Aca dejo un codigo para calcular PI usando python…

Code:
#!/usr/bin/env python
# -⁻- coding: UTF-8 -*-
print "   πππππππππππ"
print "   π π     π"
print "     π     π"
print "     π     π"
print "  Pi Calcutator"
print

def arccot(x, unity):
   sum = xpower = unity // x
   n = 3    sign = -1
   while 1:
       xpower = xpower // (x*x)
       term = xpower // n
       if not term:
          break
       sum += sign * term
       sign = -sign
       n += 2
       return sum

def pi(digits):
   unity = 10**(digits + 10)
   pi = 4 * (4*arccot(5, unity) - arccot(239, unity))
   return pi // 10**10

# En este caso se calculan los 1000 primeros decimales de π. Modifica este valor para calcular los que quieras.
print pi(1000)

=-=-=-=-=
Powered by Blogilo

Actualización de Moodle para Debian Linux

13/10/2010

Debian ha publicado una actualización del paquete moodle que soluciona múltiples vulnerabilidades.

Moodle es un gestor de cursos educativos de aprendizaje en línea libre. Es modular y orientado a objetos, está escrito en el lenguaje PHP. Moodle fue creado por Martin Dougiamas, el cual trabajó como administrador de WebCT, plataforma educativa propietaria similar a Moodle.

Además de los fallos de seguridad se soluciona un error de regresión introducido en la actualización anterior. El error reside en la falta de inclusión de la dependencia del paquete wwwconfig-common.

Los fallos en orden de CVE corregidos son los siguientes:

CVE-2010-1613

Existe un error de comprobación de restricciones que podría permitir a un atacante remoto acceder a la plataforma a través del uso del ID de sesión del usuario objeto del ataque.

CVE-2010-1614

Existe un error de comprobación de restricciones que podría permitir a un atacante remoto inyectar código (html o javascript) a través de un ataque XSS.

CVE-2010-1615

Existen varios errores de comprobación de restricciones en ‘mod/wiki/view.php’ y en ‘lib/form/selectgroups.php’. Esto podría ser aprovechado por un atacante remoto para ejecutar consultas SQL arbitrarias a través de una petición http especialmente manipulada.

CVE-2010-1616

Existe un error de comprobación de restricciones que permitiría a ciertos usuarios sin permisos ‘moodle/user:create’ crear nuevas cuentas a través de vectores no especificados.

CVE-2010-1617

Existe un error de comprobación de restricciones en ‘user/view.php’. Esto podría permitir a un usuario autenticado revelar datos personales de otro usuario a través de la página ‘perfil del curso’.

CVE-2010-1618

Existe un error al procesar ciertas urls en la librería ‘phpCAS’. Esto podría ser aprovechado por un usuario remoto para inyectar código (HTML, javascript) a través de una url especialmente diseñada.

CVE-2010-1619

Existe un error de comprobación de restricciones en la función ‘fix_non_standard_entities’ de la librería ‘weblib.php’. Esto podría permitir a un atacante remoto inyectar código (html, javascript) a través de una petición http especialmente diseñada

CVE-2010-2228

Existe un error de comprobación de restricciones en la interfaz de control de acceso ‘MNET’. Esto podría ser aprovechado por un atacante remoto para inyectar código (html, javascript) a través del uso de caracteres extendidos en el nombre de usuario

CVE-2010-2229

Existe un error de comprobación de restricciones en ‘blog/index.php’ que podría permitir a un atacante remoto inyectar código (html, javascript) a través de vectores no especificados.

CVE-2010-2230

Existe un error de comprobación de restricciones al procesar urls vbscript en la librería ‘lib/weblib.php’. Esto podría permitir a un atacante remoto inyectar código (html, javascript) a través de una entrada html especialmente diseñada.

CVE-2010-2231

Existe un error de comprobación de restricciones en ‘report/overview/report.php’. Esto podría permitir a un atacante remoto eliminar información sobre el número de intentos de un test a través de un ataque CSRF.

=-=-=-=-=
Powered by Blogilo

Actualización de múltiples paquetes para SuSE Linux

12/10/2010

SuSE ha publicado una actualización para múltiples paquetes de diversos productos SuSE Linux que corrigen hasta 35 problemas de seguridad que podrían permitir la ejecución remota de código. Los problemas afectan a SuSE Linux Enterprise Server 9; SuSE Linux Enterprise 10-SP3, 11 y SLE11-SP1; openSUSE 11.1, 11.2 y 11.3.

De forma resumida, las vulnerabilidades son:

  • Se ha corregido un desbordamiento de búfer en samba que podría ser aprovechado por un atacante remoto para conseguir ejecutar código arbitrario.
  • Se han corregido fallos de desbordamiento de entero en el tratamiento de libgdiplus0 de imágenes tiff, bmp o jpeg específicamente manipuladas.
  • Se ha actualizado el motor de navegación libwebkit a la versión 1.2.4 para corregir once problemas de diversa índole.
  • Se ha corregido un fallo en bzip2 que podría permitir la ejecución de código arbitrario.
  • PHP se ha actualizado a la versión 5.2.14 para corregir 20 vulnerabilidades en OpenSuSE 11.1.
  • Por último, se ha corregido un desbordamiento de búfer en Okular al abrir archivos pdf específicamente creados.

Se recomienda actualizar a través de las herramientas automáticas YoU

(Yast Online Update).

=-=-=-=-=
Powered by Blogilo