Google EL TIPO DE INFORMATICA

lunes, 17 de agosto de 2015

Inspeccion de Trafico HTTPS con WatchGuard XTM

Con WatchGuard podemos crear reglas de Proxy HTTP que inspeccionan el trafico de negación de los usuarios y nos permiten analizar el contenido. Esta inspección permite analizar los headers HTTP, el contenido de las paginas, aplicar antivirus, reglas de DLP que podría buscar patrones o palabras especificas en contenido de las paginas, etc., mas adelante se muestra la ventana de configuracion de una regla de proxy HTTP donde se muestra los diferentes chequeos que hace el equipo en el trafico HTTP. 

Opciones de análisis de trafico HTTP en reglas de Proxy

Pero con el trafico HTTPS es distinto. Como este trafico es encriptado, el equipo no puede hacer este tipo de análisis una vez se realiza la conexion. Lo único que podemos hacer es permitir o denegar el acceso a sitios Web en base al nombre de dominio, porque es la única información que el equipo puede ver, el nombre del site al que el usuario solicita la conexion. Así que el equipo permitirá la conexion al sitio pero no tendrá idea de lo que se este transfiriendo. 

  • Inspección de Trafico HTTPS

Para prevenir esto, se utiliza la inspección de trafico HTTPS. Como la encriptacion se realiza utilizando el certificado SSL que envía el servidor al cliente (el certificado contiene la clave publica del servidor, que se utilizara para negociar la clave simétrica para encriptacion de todo el trafico), lo que hace el equipo al activarse esta opción es capturar este certificado que envía el servidor al cliente, generar el mismo otro certificado para el dominio que solicito el usuario y pasarlo al usuario como que es el certificado original. El computador cliente empieza entonces la negociación de encriptacion del trafico en base al certificado que le envío el Firewall. De esta forma el trafico se encripta entre el cliente y el Firewall, donde este entonces puede desenciptar porque es con su propio certificado que se encripto, y realizar el análisis al trafico. Luego el Firewall hace la conexion al servidor remoto utilizando el certificado original. El cliente cree que esta hablando con el servidor remoto, y el servidor remoto cree que esta hablando con el cliente. 

Para activar esto en WatchGuard, solo tenemos que editar la regla de proxy HTTPS y seleccionar la opcion "Enable deep inspection of HTTPS content" como se muestra a continuación. 

En la regla, hacer clic en el botón de edición del proxy

Una vez en la ventana de edicion de la regla de proxy HTTPS, se activa la opción "Enable deep inspection....", pueden seleccionar la opcion "Allow SSLv3". También verán que se activa una drop box llamado "Proxy Action", esto es para seleccionar la regla de proxy HTTP que se le aplicara al trafico una vez se desencripte. En el caso de este ejemplo la regla que seleccione se llama "ACCESO_INTERNET_NORMAL". Al trafico HTTPS de esta regla se le aplicaran los análisis que se definan en esta regla HTTP.

Activación inspección trafico HTTPS

  • Importar Certificado CA WatchGuard
Al aplicar salvar la regla que modificamos anteriormente y aplicarla notaran que cuando intentan acceder cualquier sitio HTTPS les aparece un mensaje como el siguiente en el navegador:

Error de Certificado SSL en Internet Explorer
Esto significa que el cliente recibió el certificado SSL que genero el WatchGuard, pero no confía en este certificado. Si hacemos clic en "Continue to the website..." podremos acceder al site, pero esto no es algo que queremos que todos los usuarios tengan que hacer. Además, si utilizan Chrome, no tendrán esa opción de continuar. Para corregir esto lo que tenemos que hacer es importar el certificado que usa Watchguard para firmar los certificados que crea para cada dominio, el certificado CA. Para esto, una vez dentro de un sitio HTTPS, hacemos clic en la barra de navegación encima de "Certificate Error" y luego hacemos clic en "View certificates":



Esto nos mostrara información del certificado SSL que genero el Firewall para este site. Como podrán ver, indica el sitio para el cual se genero (en este caso *.google.com.do) y nos dice que el certificado no puede ser verificado con una autoridad certificadora de confianza. 


Como pueden ver, podemos instalar el certificado en el equipo haciendo clic en "Install Certificate", pero si instalamos este certificado, el mensaje de error dejara de aparecer solo para este dominio, para todos los demás sitios HTTPS seguirá apareciendo. Lo que necesitamos es agregar el certificado que usa WatchGuard para firmar todos estos certificados que genera como un CA de confianza, así que en la ventana anterior haremos clic en "Certification Path", donde podremos ver el certificado del CA:


Aquí podemos ver el certificado CA que uso el equipo Watchguard para generar y firmar, hacemos clic encima de el y luego hacemos clic en el boton "View Certificate", se nos mostrara una ventana similar a la del certificado para google.com.do, pero en este caso si haremos clic en "Install Certificate":


Al hacer clic en "Install Certificate" se abrirá el wizard para la importación de certificados. Hacemos clic en next en la primera ventana y luego hacemos clic en "Browse", donde indicaremos donde almacenaremos el certificado. Como queremos agregarlo como una CA de confianza, seleccionaremos "Trusted Root Certification Authorities": 


Al seleccionar la ubicación del certificado en la ventana "Select Certificate Storage", hacemos clic en OK y luego en Next. En la próxima ventana hacemos clic en "Finish", se nos presentara una ventana como la siguiente de confirmación de importación del certificado, donde haremos clic en "Yes":


Con esto ya hemos importado en este equipo el certificado CA de nuestro equipo WatchGuard, si cerramos el Internet Explorer y abrimos nuevamente algún sitio HTTPS veremos que ya no saldrá la alerta de que el certificado no es confiable:


En este punto, ya tenemos nuestro proxy HTTPS inspeccionando trafico cifrado y nuestro equipo confía en el certificado que le envía el WatchGuard, pero hay que tener en cuenta que por ahora solo este equipo confía en este certificado, los demás equipos de la red continuaran presentando la alerta de que no confía en este certificado. Lo que resta ahora es publicar este certificado a todas las computadoras del dominio con una Política de Grupo (GPO) para no tener que hacer este procesamiento en cada equipo de la red. En el próximo post veremos entonces como exportar este certificado y propagarlo mediante una GPO a todos los equipos del dominio.

domingo, 1 de febrero de 2015

Conseguir Claves WEP en Mac OS X con Aircrack-ng

Este tema de romper claves WEP en redes WiFi no es nada nuevo, todos sabemos lo vulnerable que es WEP y lo rápido que se puede conseguir la clave o "key" una vez se logra capturar suficiente tráfico. Pero en este post veremos como hacerlo en Mac OS X usando la herramienta nativa de diagnostico de redes inalámbricas (Wireless Diagnostic) para capturar paquetes y luego "Aircrack-NG" para descifrar o calcular la clave en base a los datos capturados. Generalmente para el escaneo de redes inalámbricas, la captura de los datos y/o inyección de datos se utilizan programas como KisMAC, pero generalmente estos programas no funcionan con los drivers de la tarjeta WiFi de Mac OS X, por lo que usualmente se utilizan tarjetas externas USB con drivers que soporten. Pero si no tenemos otra tarjeta o drivers compatibles, podemos usar esta utilidad del sistema, nos permitirá conseguir la información necesaria de la red y también capturar los datos para descifrar la clave WEP. Lo que no podremos hacer con con esta utilidad es inyectar trafico a la red, así que si la red no es muy activa tendremos que durar mucho tiempo capturando hasta que se consiga una cantidad de suficiente de paquetes. Pero para muchos casos podremos usar esta herramienta nativa, así que empecemos.

Conseguir Información de la Red

Lo primero que necesitaremos es información de la red que queremos "auditar", o a fin de cuentas conectarnos. Lo que buscaremos será el canal en que transmite, el nombre de la red (o SSID) y el BSSID, que seria el Mac Address del router inalámbrico que transmite la red. Para esto usaremos como les dije la herramienta del sistema para diagnostico de Redes Inalámbricas, para abrirla presionamos la tecla "option" y manteniéndola presionada hacemos clic encima del icono que nos muestra las redes inalámbricas (en el menu de arriba), luego hacemos clic en "Open Wireless Diagnostic", como se muestra mas abajo:

Herramienta de Diagnostico Wireless
Herramienta de Diagnostico Wireless del Sistema

Se les pedirá escribir el usuario/password de un usuario con privilegios administrativos en el equipo, luego abrirá la siguiente ventana. Abrirá una especie de "Wizard" que se usa para determinar problemas de conexión, pero esto no es lo que usaremos. Junto a esta aplicación el sistema tiene una ventana de utilidades, para acceder a ella haremos clic en "Windows" (en el menú superior) y seleccionaremos "Utilities", como se ve mas abajo:

Mac OS X Wireless Diagnostic

Esto nos traerá la ventana que necesitamos. Como verán esta herramienta tiene varias opciones que nos resultaran de mucha utilidad. Tiene varios tabs: Info, Frame Capture, Logging, Wi-Fi Scan, Perfomance. Primeramente utilizaremos la opción "Wi-Fi Scan", que como ya se imaginaran usaremos para escanear y detectar las redes wi-fi cercanas y conseguir la  información que necesitamos. Hacemos clic en "Scan Now" y veremos un listado con las redes WiFi, donde buscaremos alguna que utilice WEP:

Redes WiFi

Ahora que tenemos identificada la red que queremos "auditar", podemos empezar a capturar datos. Como les había comentado al inicio, para conseguir la clave necesitamos capturar todo el trafico posible. Nos movemos a la sección "Frame Capture". Solo tenemos que seleccionar el canal (Channel) en que transmite la red (en el ejemplo del gráfico anterior, se encuentra en el canal 1) y hacemos clic en "Start". Con esto empezara a hacer la captura de los datos, dependiendo de que tan activa este la red este proceso puede tomar desde varios minutos hasta varias horas, mientras mas tiempo estemos capturando mas posibilidades de capturar.

Captura de Datos WiFi


Luego de que haya pasado un tiempo considerable detenemos la captura. Nos generara un archivo en el Desktop con extension ".wcap", el nombre estara compuesto por la fecha de creación, por ejemplo "150131_223736.wcap" (año - mes - mes). Este archivo contiene los datos que capturamos en el canal que especificamos. Ahora podemos pasar a intentar calcular el key usando aircrack-ng.


Aircrack-NG

Aircrack es toda una suite de herramientas para auditoría de redes inalámbricas, tiene herramientas para la captura de datos (lo que hicimos anteriormente con la herramienta del sistema), para inyección de trafico entre otras, pero como les comente antes, algunas no funcionan con los drivers de Mac OS X. Pero si tenemos suerte, no necesitaremos inyectar trafico. En caso de que no tengan Aircrack instalado, pueden instalarlo con Homebrew (y si no lo han utilizado Hombrew aquí les digo como instalarlo, es bastante sencillo). Para instalarlo utilizan el siguiente comando:

 brew install aircrack-ng

Bien, ya con Aircrack instalado, solo tenemos que ejecutarlo sobre el archivo que contiene la captura que hicimos. Este archivo contendrá muchos datos, no solo de la red en cuestión sino de todas las redes que estén en el área transmitiendo en el canal que hicimos la captura. Así que le indicaremos a Aircrack el BSSID de la red que queremos que nos descifre el Key, así que ejecutaremos:

$ aircrack-ng -b bssid-de-la-red archivo-capturado.wcap

Con la opción "-b" le indicamos el BSSID de la red, seguido del archivo capturado. Si se capturaron suficientes paquetes, Aircrack calculara en unos segundos la clave. En caso de que no hayan suficientes, aircrack les dirá que necesita más paquetes (IVs) para poder calcularla. En ese caso necesitarán hacer la captura nuevamente pero por mas tiempo. En el caso de este ejemplo, deje la captura por unos 40 minutos y mi archivo de captura alcanzó unos 900 MBs, al ejecutar aircrack solo necesito unos segundos para calcular la clave:

Aircrack calculando Clave WEP

Como pueden ver pude conseguir una buena cantidad de paquetes (43743 IV's) en la captura, y más abajo Aircrack muestra el Key. Solo hay que remover los dos puntos ":" entre cada par de caracteres y tendremos el Key de la red. Así de rápido se puede conseguir la clave de una red que utilice WEP, por esto es que tiene que evitar usarlo. Espero que esto les sea de utilidad.

Hasta el Próximo!

miércoles, 10 de diciembre de 2014

Comandos Basicos para VMware ESXi

En muchos casos es mucho mas rápido (y fácil) realizar algunas operaciones vía comandos que realizarlos mediante interface gráfica, otras veces hay algunas acciones que no se pueden realizar vía la interface gráfica, como por ejemplo, en el caso de VMWare no tenemos la opción apagar forzosamente una maquina virtual (o "force stop") en Vsphere Client. Por eso les dejo aquí algunos comandos para VMWare ESXi 4.1 y 5 que creo les podrían ser de utilidad, claro deben tener activado el acceso ssh en sus servidores, si aun no lo tienen pueden ver aquí como hacerlo.

  • Listar las Maquinas Virtuales
Para ver el listado de las maquinas virtuales creadas en el host ejecutamos:

vim-cmd vmsvc/getallvms

Esto nos presentara el listado de las maquinas virtuales creadas con el ID de las maquinas (vmid) que se utilizara en los siguientes comandos, el nombre de la VM, la ruta del archivo y el DataStore donde se encuentra, el tipo de Sistema Operativo (el que se indica cuando se crea la VM) y la version de la maquina virtual.

  • Ver status de una VM
Si queremos conocer si una de las maquinas virtuales que listamos con el comando anterior esta encendida o apagada, ejecutamos:

vim-cmd vmsvc/power.getstate <vmid>

Donde como ya imaginaran, remplazaremos  mid
> por el ID de la maquina virtual que queremos verificar.

  • Encender una VM
Si una de las maquinas virtuales esta apada, podemos encenderla utilizando:

vim-cmd vmsvc/power.on <vmid>

  • Apagar una VM
Si queremos apagar "amablemente" una de las maquinas virtuales, o sea, pidiéndole decentemente que por favor se apague, podemos usar el siguiente comando:

vim-cmd vmsvc/power.shutdown <vmid>

Si de la forma amable no responde, ejecutamos:

vim-cmd vmsvc/power.off <vmid>

  • Forzar Apagado de una VM
Si al intentar apagar una maquina virtual, ya sea usando el Vsphere Client o usando los comandos anteriores, la maquina no responde y no llega a apagarse, podemos forzar el apagado usando la utilidad esxcli. Primero necesitaremos el "WorlNumber" de la maquina que queremos apagar, ejecutaremos:

Para ESXi 5:
esxcli vm process list

Para ESXi 4.1:
esxcli vms vm process list


Esto nos arrojara un listado con las VMs que tenemos actualmente y también veremos el "Worl ID" de cada una. Cuando hayamos identificado el que corresponde al equipo que queremos forzar a apagar ejecutamos entonces:

Para ESXi 5:

esxcli vm process kill --type=force --world-id=<WorldNumber>

Para ESXi 4:

esxcli vms vm process kill --type=force --word-id=<WorldNumber>


  • Informacion del Hardware del Host
Para ver la información de hardware del host donde tenemos instalado VMWare ESXi, como la cantidad de procesadores y tipo, la cantidad de memoria RAM que soporta, la cantidad de slots que de memoria que tiene el Motherboard, el tamaño de cada DIMM de memoria, entre otros, podemos usar el siguiente comando:

smbiosDump

Este comando nos traerá una extensa lista de todos los componentes del equipo, esto es muy util si, por ejemplo, están planeando un upgrade de memoria para su servidor y quieren saber cuando les soporta, cuantos DIMMs tiene instalados y cuantos slots tienen disponible, etc.

Información Capacidad Memoria RAM  Soportada
Como ven esto nos muestra información del tipo de memoria que tenemos en el equipo y la cantidad que soportaría. Bueno como siempre espero que esto les sea de utilidad, hasta el próximo!

miércoles, 17 de septiembre de 2014

Permitir conexiones FTP a puertos Alternos a traves de IPTables

Hace un tiempo les hablaba en este post sobre como configurar IPTables para permitir conexiones a un servidor FTP que se encuentre en la red y les hablaba sobre los modos "Pasivo" y "Activo" de FTP. Les decía que era necesario activar los modulos ip_conntrack_ftp y ip_nat_ftp (usando modprobe), pero que pasa si el servidor FTP lo tenemos configurado para escuchar en un puerto diferente al 21? En ese caso, no basta solo con modificar las reglas DNAT en IPTables, también hay que indicarle a los módulos que cargamos que estaremos utilizando puertos diferentes al standart.

Para indicar esto, solo tenemos que crear un archivo llamado conntrack.conf dentro de /etc/modprobe.d, dentro de este indicaremos el puerto en el que escucha nuestro FTP. Supongamos que configuramos el servidor FTP para que escuche en el puerto 2221, en contenido del archivo conntrack.conf seria:

options ip_conntrack_ftp ports=2221

Guardamos nuestro archivo y listo. Con esto y las reglas de IPTables configuradas, ya podremos redirigir el trafico hacia nuestro servidor FTP. En caso de que necesiten saber como configurar las reglas pueden revisar este post y claro, cambiar el puerto "21" por el puerto en que escucha su servidor. Bueno, este fue corto, como siempre espero les haya sido de utilidad.

miércoles, 30 de julio de 2014

Exportar/Importar Permisos NTFS de Carpetas y Subcarpetas usando ICACLS

Aquí les tengo un corto post sobre algo que (como prácticamente todo lo que les escribo aqui) tuve que utilizar recientemente. Supongan que tienen una carpeta que contiene otras subcarpetas y archivos, cada subcarpeta tiene permisos específicos al igual que los archivos, y con el tiempo se han ido agregando otros usuarios a esta carpeta con diferentes privilegios, y que un día, este folder se borra (o lo borran) o lo tienes que copiar a (o restaurar desde) una unidad, por ejemplo FAT32 donde se perderán todos los permisos que se habían configurado. Normalmente esto no seria mucho problema, pero si la carpeta es usada por muchos usuarios y contiene muchos subfolders dentro, es posible que pases mucho tiempo determinando que usuario tenia acceso a cual folder, si tenia permiso de lectura o de escritura, si podía escribir pero no podía borrar, en fin determinar nuevamente todos los permisos NTFS y configurarlos para cada subfolder. Para estos casos podríamos exportar los permisos de la carpeta principal y de todas las subcarpetas y su contenido que contengan a un archivo .txt, el cual podremos luego importarlo nuevamente, ambas cosas usando el comando icacls de Windows.

El comando Icacls nos permite visualizar y modificar los permisos (o DACLs - discretionary access control lists- ) de un archivo o carpeta. El formato o notación en que están definidos estos permisos es SDDL (Security Descriptor Definition Lenguage), esta notación se vería mas o menos de esta forma ejecutando icacls a la carpeta "Program Files" y al archivo "C:\Windows\System32\cmd.exe":

Salida comando icacls.exe

Como ven el comando nos muestra los grupos o usuarios que tienen permisos definidos y el nivel de acceso que tienen sobre la carpeta o archivo, por ejemplo (F) para Full Permitions, solo lectura se expresaría como (R), lectura y ejecución como (RX), escritura como (W). También muestra si los permisos son heredados de folders superiores. Para mas detalles sobre esta notación pueden visitar este link.

Y bien, volviendo a lo que les mencione arriba, si quisiéramos exportar los permisos de una carpeta y sus subcarpetas, utilizaríamos:

C:\> icacls D:\MiFolderdeDatos /save permisosfolder.txt /t

Donde "D:\MiFolderdeDatos" es la carpeta de la cual quiero exportar los permisos, "/save" es la opción para indicarle a icalcs que queremos guardar estos permisos en el archivo "permisosfolder.txt", y con la opción "/t" le indicamos que queremos también los permisos de los subfolders de nuestra carpeta.

Ahora, una vez ya tenemos nuevamente nuestra carpeta con todos los datos restaurada (y claro, en una unidad NTFS), podemos importar todos los permisos, usando ahora:

C:\> icacls D:\ /restore permisosfolder.txt

Como habrán notado, ahora para restaurar los permisos no necesito incluir la carpeta, solo indico la ruta raiz, el sea el disco donde se encuentra el folder (D:\). Esto porque icacls al momento de exportar los permisos utiliza ruta relativa, o sea, por cada entrada de permisos solo escribiría, por ejemplo "MiFolderdeDatos\archivo1.doc" ; "MiFolderdeDatos\carpeta1", así que no necesitamos especificar la carpeta a restaurar. Y bien, como les dije era un post bien corto, espero que esto les sea de ayuda en algún momento, como lo fue para mi.

Hasta el Próximo!