Archivo de la categoría: Seguridad

Configurar Checkpoint R80.10 VPN doble autenticación mediante certificados

En este post resumo los pasos a seguir para configurar la autenticación de usuarios, mediante certificado y/o doble autenticacióm con certificado y usuario y contraseña para VPN de acceso remoto; ya sea para usuarios internos o de Active Directory (con pequeños cambios sirve para LDAP).

Sigue leyendo

Cosas que deben mejorar en: / Thinks that must be improved in: Cisco Firepower Management Center

En este post voy a ir incluyendo cosas que deben mejorar en Cisco Firepower, que hay…

1-Incluir un checkbox para marcar/desmarcar todas las opciones en system>Tools>import/export / Add a checkbox to check/uncheck all options in system>Tools>Import/export page

2-Ampliar el espacio para ver las ACEs en Access Conprol Policy / Improve space to see ACEs in Access Control Policy.

El espacio utilizado por: 1 es contenido estático, 3 es contenido estático vacío y 2 es el utilizado por el contenido que nos interesa. La suma de 1 y 3 equivale al 40,5% del total, que se utiliza con contenido inútil para la tarea de editar políticas. Sin embargo el contenido útil es de 30,2 % que según los objetos que tengas en la regla tan solo permite ver una o dos reglas, esto es bastante engorroso a la hora de moverte por la ACL. La propuesta sería añadir un botón para maximizar/minimizar la capa que muestra las ACE, permitiendo de esta manera utilizar todo el espacio del contenido estático pasando del 30% al 70% del espacio útil.

The space used by: 1 is static content, 3 is empty static content and 2 is the useful space. The sum of 1 and 3 is the 40,3 percent of the total space, and it’s used to show static useless content. Instead the useful content is only the 30,2 %, depending on the number of object of the rule it allows you to see only 1 or 2 rules, this is very annoing when you need to navigate through the ACL. A possible solution is to add a button to allow you to maximize/minimize the ACE layer, that will increase the useful space from 30% to 70%.

3-Mejorar la búsqueda de reglas (ACE) en la pantalla de edición de una ACL / Improve the search of rules (ACE) in the ACL edition screen

Parece mentira que en pleno siglo 21 se desarrolle una función de búsqueda tan limitada y engorrosa, las funciones de búsqueda en general son bastante pobres, siguiendo filosofías de los 90 principios de los 2000. En este caso en concreto observo las siguientes limitaciones:

 

4 -Ordenar el menú de secciones de System>Configuration de forma alfabética / Sort alphabetically the sections’ menu in System>Configurations:

5-Access-list:

5.0- Agregar el número de veces que se ha utilizado una regla. / Add hit count to the rules.

5.1- Búsquedas/Search:

Al realizar una búsqueda, no es necesario ver todas las reglas, me gusta más (y esto es una preferencia personal) filtrar las reglas y mostrar solo las que coinciden con la búsqueda / Show only rules that match search criteria (this a personal choice).

5.2- Usar los tooltips de forma más útil / Use tooltips in a more useful way:

Al situar el puntero sobre un grupo, mostrar los objetos que contiene el grupo, en lugar del número total de objetos, que de poco sirve cuando estás estudiando una regla. De hecho debería ser una capa con scrollbar para poder mostrar grupos grandes Esto es especialmente importante ya que la única manera de ver el contenido de un grupo es abrir el objeto en sí, y es muy engorroso. / At mouse over a group object, show the elements of the group, instead of the number of elements, which gives you non relevant information when you are trying to figure the sense of a rule. In fact it should be a layer with ability to scroll the content, being able to show large groups. This is an important feature, because the only way to know the elements of a group is opening the object itself and that’s annoying.

5.3- Situar el foco del teclado al editar una regla / Set the keboard focus when edit a rule:

Al abrir una regla en edición, situar el foco del teclado en el primer campo de búsqueda de elementos que pertoque, según la pestaña abierta, de forma que si solo hay un elemento, se puede proceder a buscar directamente y si hay más de uno, se puede mover con el tabulador rápidamente. / Set the keyboard focus to the first search field of the opened section, whe opening a rule in edit mode. If there is only one type of element to search you can search directly, and if more than one, you can move easily with tab key.

5.4- Capturar la combinación de teclas control+F para situar el teclado en el campo de búsqueda, en lugar de abrir la búsqueda del navegador. / Capture control+F shortcut to put the keyboard focus on the search field, instead of opening the browser’s search.

6 Objetos / Objects:

6.1- Permitir eliminar objetos mediante la tecla supr. / Allow to remove objects by key supr.

6.2- Permitir la búsquda de objetos no utilizados. / Allow to search unused objects.

Script para la recolección de eventos de Microsoft windows remotamente

Este script lo desarrollé para un cliente y permite recoger eventos de una o varias máquinas corriendo Microsoft Windows. Se ha probado con Microsoft Windows Server 2003 pero posiblemente funcione bien en otras versiones. A continuación inserto la documentación creada para el cliente, que explica en detalle el funcionamiento.

Descarga el script Remote-Events_log-retriever

Sigue leyendo

Convertir una máquina GNU/Linux en un “appliance”

Un cliente me pidió que le crease unas máquinas GNU/Linux con varios programas para la monitorización y el análisis del tráfico de red. La idea era repartir varias máquinas por distintos puntos de su extensa red y vigilar durante un tiempo ese segmento.

El cliente tan solo quería varias máquinas con GNU/Linux y algunos programas instalados, que se administrasen remotamente por SSH y enviaran a un servidor splunk central las alertas de Snort. Pero a mí me pareció una ocasión ideal para explotar la flexibilidad de GNU/Linux y las cosas chulas que se pueden hacer de una forma sencilla, así que me planteé los siguientes puntos que debería cubrir la solución:

  • Los usuarios no deben conocer la contraseña de administrador
  • Debe ser factible la gestión de los programas que se instalen (esto requiere privilegios de administrador)
  • Permitir su uso por usuarios con conocimiento cero de GNU/Linux (esto quiere decir que hay que evitar la SHELL)
  • Si llega a manos de un usuario con conocimientos, no quiero que desmonte el chiringuito. Hay que limitar el acceso
  • Los datos deben estar cifrados en el disco, ya que pueden contener datos sensibles y se van a mover por la geografía estatal
  • Se deben poder configurar las tarjetas de red

Para cubrir estos requisitos hay que:

  • Proteger la BIOS y el gestor de aranque (Grub) por contraseña
  • Cifrar la mayor parte del disco duro
  • Modificar el inicio para que init no lance el proceso login
  • Crear una interfaz de uso sencillo y que no permita el acceso a la SHELL

Esto en la práctica implica transformar un GNU/Linux en una caja “tonta” que muestre un menú con las distintas acciones que se le permite realizar al usuario al arrancar la máquina, es decir en el TTy1. Además decidí mostrar el log de Snort en el TTy2.

A continuación muestro la documentación entregada al cliente en la que se explica con detalle la arquitectura. La documentación incluye, en el Anexo, un script que automatiza el proceso de configuración una vez instalado GNU/Linux.

Sigue leyendo

Guía de bastionado de Microsoft Windows Server

Esta es una guía que he desarrollado para un cliente, por lo tanto hay aspectos que se adaptan a sus necesidades (como el cortafuegos). Pero ha grandes rasgos puede ser utilizada en cualquier ámbito.

1.     Principios genéricos

A la hora de instalar, configurar y administrar un servidor, se debe:

  • Cifrar todos los datos que se transmiten a través de la red, son particularmente importante los datos relativos a nombres de usuario y contraseñas
  • Minimizar la cantidad de programas y servicios instalados y en ejecución para minimizar el riesgo potencial ante vulnerabilidades
  • Utilizar medidas de seguridad adicionales, como: antivirus, cortafuegos a nivel de host o antimalware
  • Auditar los elementos críticos y/o de mayor riesgo de cada servidor
  • Minimizar la instalación de varios servicios en un mismo servidor, para reducir el riesgo de que un servicio comprometido afecte a otros servicios
  • Realizar un buen seguimiento de las cuentas de usuario, seguir una política de contraseñas sólida y forzar su uso así como eliminar las cuentas de usuarios innecesarias o que ya no se utilicen
  • Revisar los logs de sistema y de aplicación de manera rutinaria. Enviar los logs a un servidor de logs
  • Minimizar el uso de usuarios locales
  • Utilizar la metodología del menor privilegio en todos los ámbitos

Sigue leyendo

Guía de bastionado Linux, basado en RedHat Enterprise Linux

Esta es una guía que he desarrollado para un cliente, por lo tanto hay aspectos que se adaptan a sus necesidades (como iptables). Pero ha grandes rasgos puede ser utilizada en cualquier ámbito. También he desarrollado un script modular que automatiza todo el proceso, para más información ir a este post: Script modular para el bastionado de GNU/Linux

1.     Principios genéricos

A la hora de instalar, configurar y administrar un servidor, se debe:

  • Cifrar todos los datos que se transmiten a través de la red, son particularmente importante los datos relativos a nombres de usuario y contraseñas
  • Minimizar la cantidad de programas y servicios instalados y en ejecución para minimizar el riesgo potencial ante vulnerabilidades
  • Utilizar medidas de seguridad adicionales como: SELinux, IPtables, Apparmor
  • Auditar los elementos críticos y/o de mayor riesgo de cada servidor
  • Minimizar la instalación de varios servicios en un mismo servidor, para reducir el riesgo de que un servicio comprometido afecte a otros servicios
  • Realizar un buen seguimiento de las cuentas de usuario, crear una política de contraseñas sólida y forzar su uso así como eliminar las cuentas de usuarios innecesarias o que ya no se utilicen
  • Revisar los logs de sistema y de aplicación de manera rutinaria. Enviar los logs a un servidor de logs
  • Evitar el inicio de sesión con el usuario root. Los administradores deben usar el comando sudo para ejecutar comandos como root. Utilizar el comando visudo para editar el archivo /etc/sudoers, este comando comprueba la sintaxis del archivo antes de guardarlo
  • Utilizar la metodología del menor privilegio en todos los ámbitos

Sigue leyendo

Recetas

NMAP

-Idle scan (Escaneo pasivo)

1- Obtener hosts vulnerables como intermediario

shell#: nmap -O -v -sS|sT|sA|sW|sM objetivo -oA objetivo.result

2- Buscar los hosts vulnerables en el resultado

shell#: grep “IP ID” objetivo.result.gnmap | perl -pe ‘s/Host:([^\t]+).*IP ID Seq:([^:]+)/$1 $2/’

3-Realizar ping a través de un intermediario

shell#: nmap -PN -p- -sI intermediario destino

-Escaneo ping rápido

nmap -sP rango_ip

PERL

-Sustitución en linea multlinea

perl -pi.back -e ‘undef $/; s/SEARCH/REPLACE/ims’ file

Configurar Linux como cliente web de Microsoft ISA Server o Forefront en 5 pasos

El otro día en el curro me iva fatal la conexión ADSL que utilizaba para funcionar con el único pc con Linux de la empresa (un laptop viejo que me cedieron en su día), por otro lado buscando un proxy en python para una idea que me ronda la cabeza encontré proxies que soportan la autenticación NTLM (NT Lan Manager) que es la usada por Windows y, por lo tanto, por el ISA server o Forefront, entonces se me encendió la bombilla, hice una busqueda rápida y efectivamente!! se puede validar un Linux contra un ISA server mediante un proxy que soporte NTLM, siempre y cuando el servidor de Microsoft tenga activada la opción de ser proxy web. En los repositorios de ubuntu hay varios, yo he elegido el cntlm. No es necesario añadir el pc Linux al dominio ya que conectaremos al proxy web pero ya que estamos ¿porqué no hacerlo?

Pasos a seguir

1-Añadir el pc al dominio mediante likewise-open

Como he dicho esto es OPCIONAL, y se puede obviar si no se dispone de una cuenta con suficientes privilegios para añadir elementos al Active Directory o simplemente no queremos que la máquina forme parte del mismo

  • shell#: sudo aptitude install likewise-open5
  • shell#: sudo domainjoin-cli dominio usuario_administrador_del_dominio
  • shell#: sudo /etc/init.d/likewise-open restart

Si se desea añadir el usuario del dominio a sudo hay que  editar /etc/sudoers y añadir una line del tipo DOMINIO\\usuario permisos

2- Instalar y configurar el proxy

Simplemente así

A- Instalar cntlm

shell#: sudo aptitude install cntlm

B -Editar/etc/cntlm.conf

shell#: sudo vi /etc/cntlm.conf

y establecer las variables: Username, Domain, Password, Proxy (Normalmete es ip_isa_server:8080)

C -Ejecutar

shell#: sudo cntlm -M http://abdulet.net (o cualquier url)

Default config file opened successfully
cntlm: Proxy listening on 127.0.0.1:3128
cntlm: Resolving proxy 192.168.50.37…
cntlm: Workstation name used: kubuntu
cntlm: Using proxy proxyserver:8080
Config profile  1/11… OK (HTTP code: 301)
—————————-[ Profile  0 ]——
Auth            NTLMv2
PassNTLMv2      XXXXXXXXXXXXXXXXXXXXXXX

————————————————
cntlm: Terminating with 0 active threads

D -Vomver a editar /etc/cntlm.conf, pegar el texto en rojo ¿Qué… en donde? pues donde más rabia te de 😉 y además borrar la linea del Password en texto plano

E -Reiniciar el proxy

shell#: sudo /etc/init.d/cntlm restart

F -Configurar las aplicaciones para usar el proxy 127.0.0.1 puerto 3128 (estas opciones se puede cambiar en el archivo /etc/cntlm.conf). Para configurar el proxy para las aplicaciones en general hay que editar el archivo .profile

shell#: vi .profile

, añadir estas lineas

http_proxy=”http://localhost:3128″

ftp_proxy=”ftp://localhost:3128″

y volver a iniciar sesión

Y a disfrutar la navegación!!

Demostrando la debilidad de la encriptación inalámbrica mediante WEP

Voy a demostrar la debilidad y facilidad de craquear redes wireless protegidas mediante la obsoleta encriptación WEP, paradójicamente WEP significa “privacidad equivalente a cable” (Wirede Equivalent Privacy en inglés) pero como veremos a continuación nada más lejos de la realidad. Es muy recomendable poder injectar paquetes, lo más fácil es descargar una distribución Live que se ejecute desde USB o CD por ejemplo la bactrack del equipo de remote-exploit (agradecerles su trabajo desde aquí 😉 ) estas distros además de tener aplicados todos los parches necesarios para inyectar paquetes traen todas las herramientas que vayamos a necesitar y muchas más que pueden abrir la puerta a nuevas ideas y retos (keep your mind moving…)

Herramientas que se utilizarán:

  • Kismet: Para la localización de redes
  • wirelesstools: Para la gestión de la tarjeta inalámbrica
  • aircrack-ng: Suit completa de herramientas para los ataques wireless Sigue leyendo

Compilar madwifi para injectar paquetes con el chipset AR5008 de atheros en Ubuntu 9.04 (Jaunty)

1-Pasos rápidos (Todo está explicado en detalle en el siguiente punto)

  • SO:  Ubuntu 9.04 jaunty (ejecuta el comando lsb_release -a para obtenerla)
  • Tarjeta wifi: Atheros Communications Inc. AR5008 Wireless Network Adapter (rev 01) (ejecuta el comando lscpi)
  • Kernel: 2.6.28-11-generic (obtenido mediante el comando uname -a)
  • gcc del kernel: gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4) (ejecuta: cat /proc/version)

Para los que tengan esta versión de ubuntu aquí dejo un paquete con el driver listo para ser usado 😉 madwifi-hal-01056-r4003_20090416-1_i386

1-Obtener los drivers de madwifi-hal de la página de snapshots del projecto madwifi

2-Obtener el parche desde esta web r3745-corregido o mediante la orden:

wget http://patches.aircrack-ng.org/madwifi-ng-r3745.patch

3-Preparar, compilar el código, cargar el módulo y probar la injección

cd src

tar zxf madwifi-hal-0.10.5.6-current.tar.gz

cd madwifi-hal-0.10.5.6-r4003-20090416/

sudo aptitude install patch

patch -p1 < ../r3745.patch-corregido

make && sudo make install

sudo modprobe -r ath9k && sudo modprobe ath_pci

sudo airmon-ng start wifi0

Found 5 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID    Name
2834    wpa_supplicant
2851    avahi-daemon
2852    avahi-daemon
5332    NetworkManager
9426    dhclient
Process with PID 9426 (dhclient) is running on interface ath0

Interface    Chipset        Driver

wifi0        Atheros        madwifi-ng
ath0        Atheros        madwifi-ng VAP (parent: wifi0)
ath1        Atheros        madwifi-ng VAP (parent: wifi0) (monitor mode enabled)

sudo aireplay-ng -9 ath1
18:25:52  Trying broadcast probe requests…
18:25:52  Injection is working!
18:25:54  Found 5 APs

Perfecto listo y funcionando 😉

Sigue leyendo