lunes, 4 de octubre de 2010

La parte que me falto acidbase

Primero de todo vamos a instalar los paquetes necesarios.
# aptitude install snort-mysql snort-doc acidbase
Esto nos hará algunas preguntas, entre las que tenemos que poner cual es nuestra subred, en la mayoría de los casos con poner 192.168.0.0/24 ya es suficiente, pero por ejemplo mi red tiene la siguiente máscara 255.255.255.240 en vez de ser un 0, es un 240, con lo que junto a mi tipo de red y haciendo un poco de subnetting puedo concluir que tengo que poner 172.26.0.0/28.
A continuación nos dirá si queremos crear la base de datos de snort, aquí le tenemos que decir que no, mientras que le tenemos que dar que si a crear una contraseña para acidbase.
Como podemos ver, el snort-mysql da un montón de errores, y quien quiere usar debconf ... jajaja, así que nos toca crear la bbdd de snort-mysql a mano.

$ mysql -uroot -p mysql 
mysql> CREATE USER'snort'@'localhost' IDENTIFIED BY 'snort'; 
mysql> GRANT ALL PRIVILEGES ON *.* TO 'snort'@'localhost' BY 'snort';
mysql> CREATE DATABASE IF NOT EXISTS `snort`; 
mysql> GRANT ALL PRIVILEGES ON `snort`.* TO 'snort'@'localhost'; 
mysql> flush privileges; 
mysql> quit

Esto nos ha creado un usuario snort y una base de datos llamada snort, fijate la diferencia en que cuando hablamos del usuario lo ponemos con una comilla del tipo ' mientras que cuando hablamos de la base de datos la ponemos con una comilla del tipo `
A continuación nos tocará crear la estructura de la base de datos, para ello usaremos un fichero con dicha estructura que viene en el paquete snort-doc, lo haremos de la siguiente forma.
# cd /usr/share/doc/snort-mysql/
# zcat create_mysql.gz | mysql -u snort -h localhost -p snort
Ahora que ya tenemos creada la estructura, nos toca eliminar el fichero del error al instalar el paquete y le decimos que acabe de confgiurar dicho paquete, de la siguiente forma:
# rm /etc/snort/db-pending-config
# aptitude upgrade
# dpkg-reconfigure -plow snort-mysql

Ahora que ya está todo instalado vamos a configurar el fichero de donde se guarda la configuración del snort y le pondremos nuestra subred
# vi /etc/snort/snort.conf
var HOME_NET 172.26.0.0/28
output database: log, mysql, user=snort password=UN_PASSWORD dbname=snort host=localhost
Ahora nos toca configurar acidbase
# vi /etc/acidbase/database.php
$alert_user='snort';
$alert_password='UN_PASSWORD';
$basepath='';
$alert_dbname='snort';
$alert_host='localhost';
$alert_port='3306';
$DBtype='mysql';
Y finalmente no nos queda mas que reiniciar los demonios
# /etc/init.d/apache2 restart
# /etc/init.d/snort restart
 
AGRADECER NO CUESTA NADA!!!

Que es y como usar NMAP

Nmap (de Network Mapper) es una utilidad de software libre para explorar, administrar y auditar la seguridad de redes de ordenadores. Detecta hosts online, sus puertos abiertos, servicios y aplicaciones corriendo en ellos, su sistema operativo, que firwalls/filtros corren en una red y de que tipo son. Es excelente para hacer trabajos de auditoria de res y fue diseñado para llevar acabo escaneos rápidos en una gran cantidad de redes, pero es igualmente usable en hosts individuales. Es reconocido como el scanner de puertos mas poderoso. Y se lo usa basicamente para 3 cosas:
  • Auditorias de seguridad.
  • Pruebas rutinarias de redes.
  • Recolector de informacion para futuros ataques. (hackers)
Nmap es software libre y por lo tanto gratuito. Y basicamente existe una version para cada sistema operativo que conozcas: MacOSX, Microsoft Windows, GNU/Linux, OpenBSD, Solaris, etc.

Funcionamiento de Nmap

Es capaz se utilizar diferentes técnicas de evasión de detección como escaneo sealth. Soporta escaneos sobre ciertos puertos específicos, entre rangos IP específicos, uso se paquetes Null, FIN, Xmas y ACK, además SYN que es el paquete por defecto. Esto significa que se mandan cierto tipo de paquetes a cada puerto y estos responderán con alguna señal que permitirá a scanner encontrar versiones y servicios.

Conceptos importantes

¿Que es un puerto?: Un puerto es una zona en la que dos ordenadores (hosts) intercambian información
¿Que es un servicio?: Un servicio es el tipo de información que se intercambia con una utilidad determinada como ssh o telnet.
¿Que es un Firewall?: Un firewall acepta o no el trafico entrante o saliente de un ordenador.
¿Que son paquetes SYN?: Así por encima, pueden ser paquetes que abren un intento de establecer una conexión TCP.
Debemos tener en cuenta que para Nmap un puerto puede estar de tres maneras:
open: el puerto es accesible y hay un demonio escuchando.
closed: el puerto es accesible pero no hay un demonio escuchando.
filtered: el puerto no es accesible, un firewall filtra el puerto.

Instalacion en Linux

Siempre que este basado en Debian o Ubuntu se instala con un simple comando:
sudo apt-get install nmap
Si usas otra distro podes buscarlo en los repositorios de tu distro y 100% seguro que esta. Y si usas algun otro sistema operativo entra a esta pagina y bajalo.
Como usar Nmap
La forma mas basica de usarlo es escribir en una consola algo como:
nmap 192.168.1.1
Es decir el comando nmap seguido de una ip o dominio. Este uso tan basico solo nos devuelve que puertos estan abiertos tras un scan simple. Dependiendo de la seguridad de la ip que se escanee puede que nos bloquee el escaneo si lo hacemos de esa manera. Una forma mas discreta de hacerlo que no deja registros en el sistema es asi:
nmap –sS 192.168.1.1
Cabe resaltar que existen varios tipos de modificadores de scan lo mas importante es lograr identificar la combinación mas apropiada, los modificadores que se pueden utilizar para realizar el scan son los siguientes:
sT se intenta hacer un barrido de puertos por TCP la ventaja de esta técnica es que no requiere usuarios privilegiados, opuesto a sS
sU se intenta hacer un barrido de puertos por UDP, es útil cuando se intentan descubrir puertos de nivel superior que pueden estar detrás de un firewall, lenta pero permite hacer auditorias mas exactas.
sA se usan mensajes de ACK para lograr que sistema responda y así dterminar si el puerto esta abierto algunos Firewall no filtran estos Mensajes y por ello puede ser efectivo en algunos casos.
sX puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sN puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sF puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red
sP este modificador ayuda a identificar que sistemas están arriba en la red (en funcionamiento) para luego poder hacer pruebas mas especificas, similar a Ping.
sV intenta identificar los servicios por los puertos abiertos en el sistema esto permite evaluar cada servicio de forma individual para intentar ubicar vulnerabilidades en los mismos.
sO con esta opción se identifica que protocolos de nivel superior a capa tres (Red o Network) responden en el sistema, de esta manera es mas fácil saber las características de la red o el sistema que se intenta evaluar.
Adicionalmente a las opciones de scan se pueden especificar opciones que permiten explotar mas aun la herramienta, dentro de las opciones que mas frecuentemente se usan están las de evitar el Ping o mostrar todos los resultados en pantalla al máximo detalle, veamos cuales son estas opciones:
b Para determinar si la victima es vulnerable al “bounce attack”
n no hace conversiones DNS para hacer el -sP mas rapido
vv hacer la salida de la herramienta detallada en pantalla
f habilita la fracmentacion de esta forma es mucho mas complejo para un un firewall u otro tipo de sistema lograr hacer el rastreo.
oN redirige la salida a un archivo
oX redirige la salida a un archivo XML
--stylesheet con esta opción se usa una hoja de estilo que hace mas fácil la lectura de la salida en XML
P0 indica que no se debe hacer ping a los sistemas objetivo antes de iniciar el análisis útil para evitar el bloque en algunos Firewall
p se usa para especificar puertos de análisis o rango de puertos.
T se usa para especificar la velocidad general del scan de esta forma se puede pasar inadvertido en algunos sistemas que detectan la velocidad de los paquetes entrantes.

Veamos algunos ejemplos:

nmap –sV –P0 –O –vv –o archivo.txt 192.168.1.1
El anterior comando ejecuta un barrido (scan) de puertos sobre la IP seleccionada, evita que se ejecute Ping sobre la maquina, además de esto intenta detectar el sistema operativo, para cada puerto según las cabeceras que se retornan se detecten los servicios ejecutándose y la información se dejara en el archivo.txt
nmap 192.168.1.0/24
El anterior comando escanea una red completa
nmap 192.168.1.100 -p 10-200
El anterior comando escanea un rango de puertos

Interfaces graficas

Para esta herramienta existen un monton de interfaces graficas, en linux la mayoria se instala con un simple sudo apt-get install asi que solo se las voy a nombrar y Ustedes encarguense de probarlas. Yo aun prefiero la consola :)
Nmapsi4: Interface completa basada en QT. Website.
KNmap: Otra mas para KDE basada en QT. Website.
ZenMap: interfaz grafica oficial para nmap, multiplataforma. Website.
Umit: Otro mas y este en español. Website.
NmapFe y otras.

Chuleta de Nmap

Si, hay una chuleta, la encontre en el sitio elcodigok. Para bajarla solo hagan click aqui.

Libro de Nmap

Pues si….les dije al principio que hay mucha info al respecto. Para ver y bajar el manual de Nmap solo hagan click aqui.

Video y Presentacion de Nmap

Por ultimo un video sobre el tema, es una exposicion que hizo un tipo argentino. Dura 1 hora!! Puede resultar un poco aburrido por la manera de hablar del tipo pero aun asi esta muy muy interesante, lo recomiendo altamente.

Y si quieren la presentacion click aqui.
Fuentes: mardelbit y creangel

AGRADECER NO CUESTA NADA!!!

sábado, 2 de octubre de 2010

Instalación de Snort + MySQL + Apache2 en Debian Lenny

Snort es un sniffer de paquetes y un detector de intrusos basado en red (se monitoriza todo un dominio de colisión). Es un software muy flexible que ofrece capacidades de almacenamien tanto en archivos de texto como en bases de datos. Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida. Así mismo existen herramientas de terceros para mostrar informes en tiempo real (ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos. Snort está disponible bajo licencia GPL, gratuito y funciona bajo plataformas UNIX/Linux y Windows. Dispone de una gran cantidad de filtros o patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad.

—Primero vamos a instalar los paquetes necesarios: (suponiendo que no tengamos ya un apache corriendo)
# apt-get install mysql-server apache2 php5

—A continuación instalamos los paquetes de snort.
# apt-get install snort-mysql libio-socket-ssl-perl snort-doc

Nos realizara las siguientes preguntas:

Intervalo de direcciones para la red local

192.168.1.0/24 o la red en la que estemos.

¡OJO! Nos dará el siguiente error: (mas adelante lo reconfiguramos)

error_snort_mysql

—Ahora crearemos la base de datos para snort, el usuario snort y la contraseña snort y le garantizamos todos los permisos: (para acceder a MySQL como root, nos solicitara la contaseña del mismo)
# mysql -uroot -p
mysql> CREATE USER ’snort’@'localhost’ IDENTIFIED BY ’snort’;
mysql> GRANT ALL PRIVILEGES ON * . * TO ’snort’@'localhost’ IDENTIFIED BY ’snort’;
mysql> CREATE DATABASE IF NOT EXISTS `snort` ;
mysql> GRANT ALL PRIVILEGES ON `snort` . * TO ’snort’@'localhost’;

—Creamos las tablas dentro de la BBDD de snort con el usuario snort utilizando un script: (ponemos la contraseña de snort)
# cd /usr/share/doc/snort-mysql/
# zcat create_mysql.gz | mysql -u snort -h localhost -p snort

—Solucionamos el error anterior borrando el fichero que nos indica el error.
# rm /etc/snort/db-pending-config

—Para acabar de instalar snort-mysql ejecutamos:
# apt-get upgrade

—Reconfiguramos el paquete snort-mysql para que nos haga todas las preguntas: (también podriamos hacerlo manualmente modificando el archivo snort.conf)
# dpkg-reconfigure -plow snort-mysql

Nos formulará las siguientes preguntas:

1.- Método de arranque: arranque
2.- Indicamos la interfaz: eth0
3.- Indicamos la red: 192.168.1.0/24
4.- Desactivar el modo promiscuo de la interfaz: NO
5.- Cambiarse el orden de las pruebas: NO
6.- Opciones adicionales: no ponemos nada, Aceptamos
7.- Recibir mails con resumenes?: a la elecció del usuario
8.- Ocurrencias antes de incluir una alerta: 5
9.- Quiere configurar una base de datos: SI
10.- Servidor de base de datos: localhost
11.- Base de datos: snort
12.- Usuario base de datos: snort
13.- Contraseña del usuario: snort

—Verificamos que los ficheros de configuración sean correctos.
# snort -devyq -c /etc/snort/snort.conf -l /var/log/snort/ -D
# snort -c /etc/snort/snort.conf

—Comprobamos que este corriendo snort.
# ps -ef | grep snort
# /etc/init.d/snort status

—Por último reiniciamos snort y verificamos que este corriendo:
# /etc/init.d/snort restart
# ps -ef | grep snort


http://nekan.net/instalacion-de-snort-mysql-apache2-en-debian-lenny


AGRADECER NO CUESTA NADA!!!