en Presentaciones. - Home - IT-DOCS - Document IT Sharing · Es posible que el uso de las...

Post on 07-May-2018

221 views 4 download

Transcript of en Presentaciones. - Home - IT-DOCS - Document IT Sharing · Es posible que el uso de las...

Adrián Ramírez

presentación de

Detección de intrusos en mi sistema

Moderador
Notas de la presentación
Este Esta presentación, que se recomienda ver en modo de presentación, muestra las nuevas funciones de PowerPoint. Estas diapositivas están diseñadas para ofrecerle excelentes ideas para las presentaciones que creará en PowerPoint 2011. Para obtener más plantillas de muestra, haga clic en el menú Archivo y después en la ficha Nuevo a partir de plantilla. En Plantilla, haga clic en Presentaciones.

MÓVILES EN SILENCIO.GRACIAS.

Gracias.

ABOUT ME

SECURITY CONSULTANTDATA RECOVERYCOMPUTER FORENSICSDEFENSE MITIGATIONCOMPUTER AND NETWORKING SECURITYSOCIAL ENGINEERGRAPHICS DESIGNWRITERCEO DOLBUCK

Adrián Ramírez

CÓMO NACIÓ LA CHARLA.

31 de Diciembre 2013

Austria, en algún lugar perdido del Tirol, en un pequeño pueblo (Durchholzen) de 200 habitantes…..

Ahí me encontraba yo, cuando se me dio por verificar la salud de mis servidores de hosting

Aprovechando la Wifi de un restaurante mientras tomaba un café.

Y esta es la cara que se me puso!!!!

Situación:Yo:

solo tenía acceso a Internet desde una cafeteríaMi servidor:

MySQL caído.Al levantarlo, no respondíaIndicios del ataque>>>, explotada una vulnerabilidad de una web en Joomla antigua, que permite ejecución de código exec en php.

• Consecuencias:– Escalada de privilegios– Configuración del servidor para enviar Spam porun atacante.- MySql modificado- Tiempo desde el ataque: unas 12 horas.

• Solución– Reinstalado del Mysql– Anulada la web de origen del ataque– Listado de archivos modificados en los últimos 2 días

mediante para su posterio estudiofind / -type f -mtime -2

- Levantar el apache y vuelta a funcionar

Tiempo que demoré:45 minutos. Y a celebrar año nuevo.

• Consecuencias:– Servidor comprometido, se caería cada 7, 8 días,

pero me valía hasta volver a España y planificar la migración.

– Un servidor comprometido, no puede parchearse

• Y todo lo hicea 2 grados,desde este balcónde la casa donde estabaPara pillar la wifi, de un hotel cercano.

• Da igual lo bueno o malo que seas, • En cualquier momento, te pueden joder.

• Tus servidores están conectados al mundo, y aunque millones de personas estén preparando año nuevo con sus familias, siempre hay algún desgraciado aburrido en casa.

Captura de una DDOS al servidor, luego de ser comprometido.

Agenda de la charla

De qué hablaremos…

Motivaciónde un atacante

En Windows En Linux

Motivación para atacar un servidor

Profesional (Mafia, cybercrimen)Malware para navegación automáticaMinería bitcoinsUsar ancho de banda para botnetAtaques corrdinados de DDOSCobran para eliminar la competencia(Asesinos a sueldo cibernéticos)Secuestros de datosRobo de datosPerjudicar la reputaciónSabotaje y/o espionaje

Amateur (script kiddie, exploiting )CuriosidadPorque soy guay, y puedo hacerloPorque estoy aburridoVenganza

En Windows

PARTE I: Usando las herramientas (nativas) de Windows(Confiando en que el sistema no esté comprometido)

1: Conocer nuestro sistema

Inventario de todo el software instalado, procesos y directorios.Copia del registro del sistemaListado de usuarios

Para eso tiraremos de los comandos que vienen con Windows.

INICIO>>EJECUTAR>>> msconfig

Una copia manual del registro. Con Regedit

Un listado de los procesos con >>inicio/ejecutar/taskmgr

Análisis en tiempo real con Msinfo>>INICIO/EJECUTAR/MSINFO

Conociendo el uso de red con >>>net statistics {workstation y server}

El comando arp –a para detectar MITDM

La herramienta permite varias configuraciones, pudiendo elegir los tipos de ataquesque se desean detectar, si se desea que se mitiguen los ataques ARP Poisoning, así cómo la posibilidad de iniciar Marmita con Windows - algo que os recomendamos si vais de red en red -. En la ventana principal además existen distintos paneles coninformación sobre ARP y DHCP así como todos los logs.

Marmita 1.3

Marmita funciona esnifando los paquetes de la interfaz de red seleccionaday analizando aquellos paquetes bien sean ARP o DHCP en busca de posibles ataquesMITM. Cuando detecta un ataque muestra una alerta y lainformación del atacante que haya podido obtener:

Conociendo los servicios con SC query: Permite conocer todos los servicios ejecutadosEn un momento dado para comparar con otros informes anteriores.

Ver conexiones, mi favorita, netstat –nab

N- mostrar los puertos y conexiones en formato numéricoB- binariosA- muestra todas las conexiones

Win Dump

un sniffer de red, basada en la librería de captura de paquetes (pcap) y que además funciona en plataformas tanto windows como GNU/Linux-UNIX es TCPDump(GNU/Linux) / Windump (Windows), ésta última hace uso de la librería Winpcap. Estas dos librerías son usadas por otras herramientas como Ethereal o Snort, e incluyen un lenguaje de filtros común para todos.

Y por supuesto…. Mirar los logs del sistema, siempre. Recordar activar auditoríaEn las directivas locales del sistema

Lo mejor de la línea de comandos es que siempre podemos redireccionar a unArchivo de texto para documentarlo, compararlo, etcarchivo.txt

Procedimiento:Archivar todos estos datos en una carpeta, y realizar este proceso al menos una vez el mes. Para tener un control anual del servidor en cuestión.

Es posible que el uso de las herramientas nativas del sistema, conviertan estatarea en pesada y nos ocupe más tiempo del deseado.

Si sois partidarios de dotar a vuestro servidor de herramientas de terceros(ventaja) si el sistema está comprometido, estas lo detectará.

Es la de instalar algunos software que nos facilitarán la vida.Aquí dejo algunos.

PARTE I: Usando herramientas de terceros..

1: Conocer nuestro sistema

Inventario de todo el software instalado, procesos y directorios.Copia del registro del sistemaListado de usuarios

Frecuencia: Y una revisión mensual del mismo.

Herramientas que nos pueden facilitar la tarea: Belarc

Belarc Advisor construye un perfil detallado del software y hardware instalados ensu PC, incluyendo los hotfixes de Microsoft y muestra el resultado en su explorador Web. Toda la información del perfil se mantiene privada en su PC y no se envía a ningún servidor Web.

Para el registro, recomiendo SysInspector (gratuita)

Permite: Entre otras cosas, comparar registros

El método de filtrado utilizado consiste en mostrar los procesos/datos asignando un color según su peligrosidad:

Verde: Aplicación conocida (fiable)Naranja: Aplicación dudosa o con modificaciones en el archivo originalRojo: Vendría a ser un proceso no reconocido o peligroso (no por ello un virus).

En la ventana de la izquierda nos mostrará toda la información obtenida del sistema. Haremos un click sobre la descripción que queramos visualizar y en la ventana de la derecha podrás ver todo lo relacionado a ese proceso/archivo.Arriba a la derecha tenemos un menú para administrar los log´s, filtrado por elementos, comparativas…

IceSword

Herramienta de entornos profesionales, Extrae datos procesos en ejecución,Puertos de escucha, conexiones de red, drivers cargados por el sistema. Y todoSin utilizar las API del sistema. Esto dejaría al descubierto cualquier rootkit.

Análisis del proceso svchost con Svchost es un proceso de Windows asociado aservicios del sistema o de otros programas. En ocasiones puede ser usado porprogramas espía o troyanos, por lo que conviene conocer qué aplicaciones accedena él con herramientas como Svchost Process Analyzer.Svchost Process Analyzer realiza un análisis de Svchost y muestra los serviciosy procesos que dependen de él y si son fiables o sospechosos.

Escuchando la comunicación de red de nuestro equipo con Wireshark

Conclusiones sobre un sistema Windows:

Y ahora que hago con esta ensalada de programas???

Reglas:

>> Conoce tu sistema como la palma de tu mano:Inventario de software instaladoInventario de procesos corriendo en tu sistemaListado y estructura de directoriosAudítalo todo con la configuración del sistemaCompara las modificaciones del registro del sistemaControla los usuarios y sus últimos accesosCuidado con el CCLEANER, si hay actividad sospechosa de un usuarioUna buena pista es analizar los archivos temporales. No te vayas a cargar la evidencia

Qué buscar:

Directorios extrañosHoras de acceso en los logs extrañasConexiones a sitios extrañosProcesos desconocidos

Ejemplo en caso real:

Un troyano disfrazado como Winlogon que genera una conexión inversa.

Sus pequeños scripts para distintos idiomas…

Infaltable en un pack de hacking, un borrador de logs

IDS LIGEROS… La utilización de ‘Patriot’ es muy sencilla, puesto queúnicamente hay que seleccionar en las opciones de configuración las protecciones que se desean activar. Corre en ‘background’, y siendo accesible desdela ‘TrayBar’.Entre las características son:- Modificación de claves de registro-Ficheros en los directorios de ‘Startup’ o- creación de nuevas tareas- Creación de nuevos usuarios en el sistema- Creación de nuevos servicios- Modificaciones en el fichero de hosts- Modificaciones en el navegador IE- Monitorización de la tabla ARP- Detección de la carga de drivers- Compartición de nuevos recursos (por NetBios)- Accesos por recursos compartidos- Protección TCP/IP-Modificación de directorios/ficheros críticos- para el sistema- Creación de ventanas ocultas

Windows Event Collector, configurando Windows para reenviar y centralizar eventos

WEC (Windows Event Collector) es una función de Windows que permite reenviar los registros del visor de eventos para tenerlos centralizados en un servidor recolector. La función incluida desde Windows Vista en adelante utiliza elestándar basado en el protocolo WS-Management, WinRM.

Qué es WinRMWinRM (Windows Remote Management) es un nuevo estándar de Microsoft para la administración remota de hardware y software en máquinas Windows. WinRM utiliza WMI (Windows Management Instrumentation) como repositorio de información y está basado en el protocolo WS-Management.El protocolo WS-Management

Web Services for Management (WS-Management) es un protocolo que fue desarrollo por un grupo de fabricantes de hardware y software como un estándar abierto para el intercambio de información con cualquier otra máquina que implemente el protocolo.

Introducción y Configuración Básica de WinRMWinRM (Windows Remote Management) es una herramienta que nos permite administrar el Hardware de computadores basados en Windows Vista y de Servidores basados en Windows Server 2008 tanto de forma local como remota. WinRM está basado en el protocolo WS-Management (Web Services Management que es un protocolo basado en SOAP – Arquitectura Orientada a servicios – diseñado para localizar e intercambiar información de adminsitración mediante la interoperabilidad y consistencia entre sistemas de diferentes fabricantes de Hardware y diferentes sistemas operativos. El estándar forma parte del “Distributed Management TaskForce” )ComponentesWinRM Scripting API – Permite obtener datos desde computadores remotos usando Scripts que ejecuten operaciones basadas en el protocolo WS ManagementWinrm.cmd – Herramienta basada en CLI (Command Line Interface) que permite la configuración de WinRM, manejar sus recursos y obtener datosWinrs.exe – Herramienta de línea de comandos que permite ejecutar remotamente la mayoría de comandos cmd.exe usando el protocolo WS ManagementWMI Service - Servicio que habilita la implementación de Clases WMI para la obtención de datos de Hardware localesITPMI (Intelligent Platform Management Interface ) - Interfase para controlar y diagnosticar hardware en un servidor remoto mediante controladores de adminsitración de base (baseboard management controllers BMCs)

Gnu/Linux!!!

Mis comandos más usados en chequeos y defensa a tiempo real.

Nº1:

#netstat -na

#netstat -pn -l -A inet

Mi otro amigo, lsof –i, que conexiones tengo abiertas y con quién

Al igual que en Windows, conocer nuestros procesos y guardarlos para compararps –aux | greo <usuario>

Otro gran programa que me ayuda a despejar dudas es iptraf

ARP WATCH, evitando MITM

Análsis de logs

http://www.8pussy.org/

FeaturesLDAP supported for Octopussy Users & ContactsSend Alerts by Email, IM(Jabber), NSCA(Nagios) & Zabbix_senderExport Reports by Email, FTP & SCPCreate Map to show your architectureInput & Output Plugins for ReportsReports Scheduling'RRDTool' to graph syslog activityLot of Services already supported: Bind, Cisco Router, Cisco Switch, DenyAll Reverse Proxy, Drbd, F5 BigIP, Fortinet FW, Ironport MailServer, Linux Kernel/System, Linux IPTables, Monit, MySQL, Nagios, NetApp NetCache, Juniper Netscreen FW, Juniper Netscreen NSM, Postfix, PostgreSQL, Samhain, Snmpd, Squid, Sshd, Syslog-ng, Windows Snare Agent, Xen...Wizard to easily create new Message/Service for Unrecognized logsOnline Updates for Services, Tables & MultilanguageMultilanguage support:Themable Interface & Repor

Mod_security

modSecurity™ es una herramienta para detección y prevención de intrusos para aplicaciones Web.El módulo cuenta con diversas funcionalidades:Filtrado de Peticiones: los pedidos HTTP entrantes son analizados por el módulo mod_security antes depasarlos al servidor Web Apache, a su vez, estos pedidos son comparados contra un conjunto de reglaspredefinidas para realizar las acciones correspondientes. Para realizar este filtrado se pueden utilizarexpresiones regulares, permitiendo que el proceso sea flexible.

Técnicas antievasión: las rutas y los parámetros son normalizados antes del análisis para evitar técnicas de evasión.Elimina múltiple barras (//)Elimina directorios referenciados por si mismos (./)Se trata de igual manera la \ y la / en Windows.Decodificación de URLReemplazo de bytes nulos por espacios (%00)Comprensión del protocolo HTTP: al comprender el protocolo HTTP, ModSecurity™ puede realizar filtrados específicos y granulares.Análisis Post Payload: intercepta y analiza el contenido transmitido a través del método POST.Log de Auditoría: es posible dejar traza de auditoría para un posterior análisis forense.Filtrado HTTPS: al estar embebido como módulo, tiene acceso a los datos después de que estos hayan sido descifrados.Verificación de rango de Byte: permite detectar y bloquear shellcodes, limitando el rango de los bytes.

Lo podemos encontrar para nginx e IIS7

Fail2ban es una herramienta que observa los intentos de login de variados servicios,tales como SSH, FTP, SMTP, HTTP, entre otros; y si encuentra intentos de login fallidosuna y otra vez desde una misma IP, fail2ban rechazará estos intentos de login bloqueandocon reglas de iptables a esas IPs que estaban intentando.

Fail2ban

Pruebas:* Se intenta hacer logins fallidos por ssh desde otro servidor* Se revisan los logs de fail2ban2012-07-24 23:57:33,789 fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.0.7*

Se revisan las reglas de iptables# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationfail2ban-ssh-iptables tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

Snort y Base (Basic Analisis and Security Engine)

Snort es un potente IDS/IPS (Intrusion Detection System/Intrusion PreventionSystem) que se ha convertido en un estándar en el campo de la seguridad de sistemas informáticos. Es una herramienta que utiliza una filosofía muy similar a IPTables, ya que utiliza reglas sobre los paquetes que viajan en una red, sin embargo, dependiendo del modo de ejecución va un poco mas allá, permitiendo tomar decisiones sobre la información intercambiada y la detección de posibles ataques sobre peticiones que aunque aparentemente son legitimas, pueden encajar en algún patrón de ataque.

Logwatch

Logwatch es un sistema de monitorización simple y eficaz. Su funcionamiento es muy sencillo:hará un análisis de los ficheros de log del sistema, los resumirá, en algunos casos loscomentará y luego los enviará al administrador por varios métodos posibles.Es una herramienta muy sencilla, que no requiere la inversión de mucho tiempo en su configuración y que sin embargo, da una gran funcionalidad al sistema que estemos administrando.

Logwatch realiza un chequeo de los logs del sistema y envía un email con el resultado.Para instalarlo:

apt-get install logwatch

Configurarlo:copiar el fichero /usr/share/logwatch/default.confa /etc/logwatch/conf/logwatch.confy editar este último, realizando los siguientes cambios si es necesario:

Print = NoOutput = mailMailTo = correo@electronico.comRange = TodayDetail = HighSi al ejecutar logwatch da un error crear el directorio:

mkdir /var/cache/logwatchPor último para programar su ejecución diaria añadir a /etc/crontab0 6 * * * root /usr/sbin/logwatch

Centralizando los logs con rsyslog

Los logs funcionan con rsyslog, una herramienta muy potente y que permite inclusoenviar los mensajes de los logs a otra máquina donde centralizarlos (lo cual puede ser muy útil si administramos un número importante de máquinas).También se puede usar en cualquier otra instalación Debian estándar y en los derivados (por ejemplo, Ubuntu)

Probando los logs localesPara probar nuestro sistema de forma local, vamos a simular un error en una aplicación de correo. Los logs no se escriben a mano sino a través de la orden “logger”. La sintaxis la puedes consultar con:$ man loggerEn nuestro caso vamos a usar la orden:$ logger -p mail.err "Esto es una prueba“

La opción -p imprime el mensaje “Esto es una prueba” en el log llamado “mail.err”

Leyendo los logs localesPara ver el error que hemos simulado, basta con ver el contenido que se ha añadido al final de log. Los diarios se almacenan en la ruta /var/log así que:cat /var/log/mail.errVeremos algo como lo siguiente:dic 13 18:50:39 PC Usuario: Esto es una pruebadonde PC y Usuario son los nombres de nuestra máquina y del usuario que emite el mensaje.Obviamente no es muy práctico tener que leer los logs de esta forma pero existe una multitudde herramientas con las que agilizar la gestión de los diarios, su lectura, aplicar filtros, hacer búsquedas, etc.

Probando nuestro sistema de diarios remotosDesde el cliente, emitimos un mensaje:$ logger -p 0.0 "hola remoto"Introduzco la factoría 0 y el nivel 0, que se ajustarán al patrón *.* que definimos en el envío…En el servidor puede que aparezca una notificación si nos encontramos en la terminal:Message from syslogd@maquina at Dec 13 20:04:11usuario: hola remoto

Y además, el mensaje quedará registrado tal y como queríamos. Se puede ver así:cat /var/log/prueba.log

» http://www.adrianramirez.es/secadmin.pdf

» Si quieres escribirme, puedes hacerlo en:

» adrian@dolbuck.net» O buscarme en la red por “adrian dolbuck”

La transparencia estará disponibles desde

.

Preguntas ????

¿Cuál es el mensajeFIN