martes, 1 de julio de 2008

Vulnerabilidad

Analisis de vulnerabilidad del equipo 10.3.19.124 con Nessus.

SINOPSIS: Es posible obtener el nombre de la red del host remoto.

DESCRIPCION: El host remoto escucha en el puerto UDP 137 y respuestas a NetBIOS nbtscan
solicitudes. Al enviar un comodín petición es posible obtener la
nombre del sistema remoto y el nombre de su dominio.

FACTOR DE RIESGO: Ninguno

PLUGIN DE SALIDA: Los siguientes 6 nombres NetBIOS se han reunido:

ADMON-01 = Nombre del ordenador
ADMON = Workgroup / Nombre de dominio
ADMON-01 = File Server Service
ADMON = navegador servicio elecciones
ADMON = explorador maestro
__MSBROWSE__ = Master Browser

El host remoto tiene la siguiente dirección MAC de su adaptador:
00:16:6 f: 66: a3: b6
CVE: CVE-1999-0621
Otras referencias: OSVDB: 13577

Nessus ID : 10150

Traceroute
Para su información, aquí está el traceroute de 10.3.9.132 a 10.3.19.124:
10.3.9.132
10.3.9.129
10.3.19.124


Nessus ID : 10287

TCP HORA

SINOPSIS: El mando a distancia de servicios TCP implementa de tiempo.

DESCRIPCION: El host remoto implementa TCP de tiempo, tal como se define en RFC1323.
Un efecto secundario de esta caracteristica es que el tiempo de funcionamiento del mando a distancia acogida a veces puede ser calculada.

Ver tambien:

http://www.ietf.org/rfc/rfc1323.txt

FACTOR DE RIESGO: Ninguno

Nessus ID : 25220

HOST REMOTO EN EL MISMO FISICO,PERO NO LOGICO DE RED.

SINOPSIS: La red física está configurada en una forma potencialmente inseguras.

DESCRIPCION: La máquina remota está en una lógica de red diferentes. Sin embargo, es
en la misma subred física.

Un atacante se conectan a través de la misma red como su Nessus
escáner se puede reconfigurar en su sistema para forzarlo
pertenecer a la subred del host remoto.

Esto hace que cualquier filtración entre las dos subredes sea inútil.

SOLUCION: Use VLANs para separar las diferentes redes lógicas.

FACTOR DE RIESGOS: Bajo

PLUGIN DE SALIDA: La dirección MAC de la máquina remota se 00:1 c: b0: 3c: d0: 00

Nessus ID : 23971








NESSUS



Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos. Desde consola nessus puede ser programado para hacer escaneos programados con cron.

En operación normal, nessus comienza escaneando los puertos con nmap o con su propio escaneador de puertos para buscar puertos abiertos y después intentar varios exploits para atacarlo. Las pruebas de vulnerabilidad, disponibles como una larga lista de plugins, son escritos en NASL (Nessus Attack Scripting Language, Lenguaje de Scripting de Ataque Nessus), un lenguaje scripting optimizado para interacciones personalizadas en redes.

Opcionalmente, los resultados del escaneo pueden ser exportados en reportes en varios formatos, como texto plano, XML, HTML, y LaTeX. Los resultados también pueden ser guardados en una base de conocimiento para referencia en futuros escaneos de vulnerabilidades.


martes, 24 de junio de 2008

Ipsec en linux con AH

En esta entrada se explicara como es la configuracion basica del protocolo ipsec en linux.

Primero se debe instalar el paquete ipsec-tools

#apt-get install ipsec-tools

luego se pasa a configurar el archivo de configuracion de ipsec

#pico ipsec-tools.conf

IPSec en modo AH (autentication Header -Autenticacion de Cabezera)

Este es el archivo de configuracion de ipsec para que funcione con AH en modo transporte

#!/usr/sbin/setkey -f

# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# SAs para AH empleando claves largas de 128 bits
add 10.3.16.81 10.3.16.84 ah 0x200 -A hmac-md5 "daniel-sena";
add 10.3.16.84 10.3.16.81 ah 0x300 -A hmac-md5 "daniel-sena";

# Políticas de seguridad
spdadd 10.3.16.81 10.3.16.84 any -P out ipsec
ah/transport//require;
spdadd 10.3.16.84 10.3.16.81 any -P in ipsec
ah/transport//require;


luego con el comando #setkey -f ipsec-tools.conf se cargara la configuracion del ipsec

el mismo archivo se debe configurar el la maquina con la cual se va a comunicar cambiando los parametros de direcciones ip




Ipsec en linux con ESP

En esta entrada se explicara la configuracion de ipsec en modo esp (Encasulation Security Payload -Encapsulacion Segura de la carga de datos).

Este seria el archivo de configuracion de ipsec

#!/usr/sbin/setkey -f


# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# SAs para ESP empleando claves largas de 192 bits (168 + 24 paridad)
add 10.3.16.81 10.3.16.84 esp 0x201 -E 3des-cbc "fuji-orbit-sena2008-1234";
add 10.3.16.84 10.3.16.81 esp 0x301 -E 3des-cbc "fuji-orbit-sena2008-1234";


# Políticas de seguridad
spdadd 10.3.16.81 10.3.16.84 any -P out ipsec
esp/transport//require;
# ah/transport//require;
spdadd 10.3.16.84 10.3.16.81 any -P in ipsec
esp/transport//require;
# ah/transport//require;

Luego con el comando #setkey -f ipsec-tools.conf se cargara la configuracion del ipsec

El mismo archivo se debe configurar el la maquina con la cual se va a comunicar cambiando los parametros de direcciones ip




Y como se muestra el siguiente pantallazo hay se ve el intercambio de datos.

Configuracion de Ipsec en linux

Primero instalamos el paquete raccon.

#apt-get install racoon



y nos vamos a configurarlo.

#cd /etc/racoon


Aca se definira la llave precompartida que se utilizara en la comunicacion

#pico psk.txt

y esta seria la configurcion final del archivo.

# IPv4/v6 addresses
#10.160.94.3 mekmitasdigoat
#172.16.1.133 0x12345678
#194.100.55.1 whatcertificatereally
#3ffe:501:410:ffff:200:86ff:fe05:80fa mekmitasdigoat
#3ffe:501:410:ffff:210:4bff:fea2:8baa mekmitasdigoat
# USER_FQDN
#foo@kame.net mekmitasdigoat
# FQDN
foo.kame.net hoge
# Direcciones IPv4
10.3.16.112 clave precompartida simple
10.3.19.10 "daniel-fugi-orbit";
# USER_FQDN
dany@misena.edu.co Esta es una clave precompartida para una dirección de correo
# FQDN
www.spenneberg.net Esta es una clave precompartida


Ahora pasamos a configurar el archivo racoon.conf

#pico racoon.conf

y aca se configuraran los parametros de la comunicacion como los metodos de encriptacion y demas parmetros necesarios para la comunicacion.

Este seria la configuracion final del archivo.

#
# NOTE: This file will not be used if you use racoon-tool(8) to manage your
# IPsec connections. racoon-tool will process racoon-tool.conf(5) and
# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead
# of this file.
#
# Simple racoon.conf
#
#
# Please look in /usr/share/doc/racoon/examples for
# examples that come with the source.
#
# Please read racoon.conf(5) for details, and alsoread setkey(8).
#
#
# Also read the Linux IPSEC Howto up at
# http://www.ipsec-howto.org/t1.html
#

path pre_shared_key "/etc/racoon/psk.txt";
#path certificate "/etc/racoon/certs";

remote 10.3.19.114 {
exchange_mode main;
proposal {
encryption_algorithm 3des;
hash_algorithm md5;
authentication_method pre_shared_key;
dh_group modp1024;
}
generate_policy off;
}

sainfo address 10.3.16.81[any] any address 10.3.19.114[any] any {
pfs_group modp768;
encryption_algorithm 3des;
authentication_algorithm hmac_md5;
compression_algorithm deflate;
}


Y por ultimo pasaremos a configurar el archivo de configuracion de ipsec donde solo se tendran el cuentas las bases de datos de las politicas y el modo de comunicacion que se va a usar.

#!/usr/sbin/setkey -f

# NOTE: Do not use this file if you use racoon with racoon-tool
# utility. racoon-tool will setup SAs and SPDs automatically using
# /etc/racoon/racoon-tool.conf configuration.
#

## Flush the SAD and SPD
#
flush;
spdflush;

## Some sample SPDs for use racoon
#
# spdadd 10.10.100.1 10.10.100.2 any -P out ipsec
# esp/transport//require;
#
# spdadd 10.10.100.2 10.10.100.1 any -P in ipsec
# esp/transport//require;
#

# Políticas de seguridad
spdadd 10.3.16.81 10.3.19.114 any -P out ipsec
esp/transport//require;
# ah/transport//require;
spdadd 10.3.19.114 10.3.16.81 any -P in ipsec
esp/transport//require;
# ah/transport//require;


Ahora para probar que todo esta bien con los comandos #setkey -f ipsec-tools.conf y #/etc/init.d/racoon restart y si no nos sale ningun problema la comunicacion se hara correctamente.


Configuracion de ssh

Secure Shell o SSH es un protocolo de red que permite el intercambio de datos utilizando un canal seguro entre dos ordenadores. Encripta y proporciona confidencialidad e integridad de datos a través de una red insegura, como Internet.

(SSh trabaja por el puerto 22 tcp) y una de las herramientas que utiliza ssh para entrar en otros equipos es la aplicacion libre Putty.


Ahora pasamos a la configuracion de SSH en Linux

#apt-get install ssh


Ahora pasaremos a la configuracion de ssh en el archivo de configuracion por defecto.

#pico /etc/ssh/ssh_config


Ahora veremos algunas opciones del archivo de configuracion estando dentro del archivo especificaremos en la linea:
port 22

Este seria el puerto por defecto por el que funciona ssh pero si queremos lo podemos cambiar por otro puerto


Luego en la linea permitRootLogin que es para permitir el acceso directo al usuario root se recomienda que este en no porque cualquier usuario que se loguee quedara como root y tendra permiso para modificar cualquier cosa dentro de nuestro equipo

PermitRootLogin no


La linea x11Forwarding nos da la opcion de permitir o denegar la ejecucion remota de una interface grafica.

x11Forwarding yes

Para que nuestro servidor pida una llave al ingresar el ususario debemos descomentar la linea:

AuthorizedKeysFile /root/.ssh/authorized_keys

Esa ruta es donde van a ir almacenadas las llaves publicas de los usuarios .


Luego debemos descomentar la linea PasswordAuthentication y cambiar de yes a no esto se hace para que no pida clave sino la llave del usuario

PasswordAuthentication yes

Despues debemos copiar la llave del usuario que va a ingresar al servidor ssh en la ruta que le dimos en la linea AuthorizedKeysFile
(la ruta es /root/.ssh/authorized_keys)

cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys


id_dsa.pub es la llave publica del usuario.



Por ultimo reiniciaremos el servicio

/etc/init.d/ssh restart

Configuracion del cliente SSH

primero instalaremos el cliente ssh

#apt-get install openssh-client

Luego crearemos las llaves del usuario con el comando
#ssh -keygen -t dsa

Debemos copiar la llave publica al archivo donde se alojan las llaves que es /root/.ssh/authorized_keys

cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys

Ya podemos provar si la configuracion esta buena accediendo al servidor ssh

ssh 10.3.8.154 (es la ip del servidor ssh)


En esta imagen podemos ver que nos pudimos comunicar al servidor SSH

Analisis del trafico ssh

Acontinuacion veremos como es la conexion ssh cliente servidor


El cliente hace una peticion ssh con un SYN al servidor
El servidor le responde con un SYN,ACK
Vuelve a responder el cliente con un ACK
El servidor responde arrojando datos del protocolo y del equipo.
El cliente hace lo mismo, arroja informacion de su equipo y demas.
Luego el cliente inicia el intercambio de llaves del servidor.
El servidor responde con un ACK, y inicia en intercamo de llaves del servidor.
Luego establecen un algoritmo de encriptacion, crean unas nuevas llaves para crear el tunel ssh y luego inician una comunicacion encriptada.




Para finalizar la conexion ssh el cliente le manda una peticion de FIN, ACK al servidor el servidor le responde con otro FIN, ACK y el cliente le confirma con un ACK.



Este documento fue compartido del blog de Cristian Ceballos.

lunes, 16 de junio de 2008

Creacion de Certificados para Servidor Web en Windows

En esta entrada se explicara como sera la creacion de un certificado digital para un servidor web en windows 2003 server
Primero ingresamos ala consola de administracion de IIS (internet information server) ,y damos click derecho en la opcion sitio web predeterminado y damos click en opciones.Veremos las opciones del servidor, pero como lo que nos interesa es la creacion del certificado iremos a la pestaña seguridad de directorios.
Aca encontaremos las opciones de la creacion de certificados le damos click en la opcion creacion de certificados.Ya entramos en el asistente para la creacion del nuevo certificado, damos click en siguiente.


En esta opcion nos mostrara varias opciones de certificados pero nosotros escogeremos la opcion crear un certificado nuevo.
Por defecto sale la opcion preparar la peticion ahora para enviarla mas tarde ,y damos click en siguiente
En esta opcion le damos el nombre del certificado que vamos a utilizar le podemos dar la longitud del certificado pero dejaremos la que hay por defecto 10024, damos click en siguiente
En esta opcion damos el nombre de nuestra organizacion y de nuestra unidad organizativa ,click en siguienteAca se definira el nombre del servidor dejaremos el que sale por defecto,click en siguiente.
En esta opcion le daremos a nuestro certificado las opciones de localizacion eligiendo nuestro pais,estado,ciudad , click en siguiente.
En esta opcion se le da el nombre al certificado que por defecto sera certreq.txt, click en siguiente.
Aca nos muestra un resumen de toda la informacion que va a contener el certificado que se va a crear.
Ya se a creado un certificado y solo falta enviarlo a la autoridad certificadora para que lo firme y subirlo al servidor web.

Esto se hizo con la ayuda de Alexis Cerpa y Cristian Ceballos