Sie sind auf Seite 1von 52

Seguridad Web

Servidor: ataque y
UNAN-Leon
defensa
I Atacando el Servidor Web

•  Pasos de ataque:
1.  Reconocimiento
2.  Escaneo de vulnerabilidades
3.  Explotación de vulnerabilidades
4.  Escalada de privilegios
5.  Manteniendo la posición
1. Reconocimiento

•  ¿Qué máquinas hay en una red?

130.128.66.45

•  ¿Qué puertos hay abiertos en una máquina?


80, 443

•  ¿Servicios corriendo en estos puertos?


http, https

•  ¿Versión de los servicios corriendo en los puertos?


Versión de servidor Web, versión de servidor de Base de Datos
NMAP
•  NMAP.

•  Permite escanear direcciones IP, puertos, SO, servicios y versión versión de


servicios y SO.

•  Posibilidad de ejecutar scripts

•  Modo silencioso (-sS), para evitar ser detectado.


•  Fragmentacion de paquetes de exploración (-f)
•  Fijar MTU (-mtu)
•  Usar varias direcciones IP señuelo (-D).
•  Scan zombie (se usa otros ordenadores de la red)
•  …..
http://nmap.org/bennieston-tutorial/
http://nmap.org/book/man.html
NMAP

Applications/Kali Linux/Top 10 Security Tools

•  Ejemplos de uso:
•  Lista de hosts:

nmap –sP 192.168.42.0/24


•  Escaneo SYN scan (rápido y silencioso) y OS fingerprint:

nmap –sS –A 192.168.42.130


•  Estructura de servidor Web:

nmap --script=http-enum 192.168.42.130


2. Escaneo de vulnerabilidades

•  Hacer un test de penetración a los sistemas objetivo

•  La información en la fase de reconocimiento puede


ayudar a marcar objetivos más precisos en esta fase.

•  Es menos llamativo para los mecanismos de defensa


hacer test específicos que genéricos.
Escaneo de vulnerabilidades

•  Objetivos:
•  Evaluar debilidades de los sistemas marcados como
objetivo
•  Identificar vulnerabilidades y priorizar
•  Mapear sistemas vulnerables con activos
OpenVAS

•  Herramienta de escaneo de vulnerabilidades

•  Configuración desde terminal:

http://www.kalilinux.net/community/threads/
tutorial-vulnerability-scanning-with-openvas.137/

http://kalilinux.foroactivo.com/t46-tutorial-openvas-
setup-para-kali-linux
OpenVAS- Estructura
OpenVAS – Configurar
•  Pasos:
•  Añadir usuario: openvas-adduser
•  Crear certificado: openvas-kmcert
•  Crear certificado de cliente: openvas-kmcert-client
•  Actualizar firmas: openvas-nvt-sync

•  Alternativa: openvas-setup

•  Verificar configuración: openvas-check-setup


•  Si da problemas seguir instrucciones dadas por pantalla
OpenVAS –Interfaz Web
Iniciar: openvas-start
Abre un navegador: iceweasel
htpps://127.0.0.1:9392; Acceso: root/toor
Seguir las instrucciones:
•  Introducir IP de host a escanear
•  Iniciar escaner (tarda un tiempo en completarse)
•  Ver informe y analizar soluciones de riesgos

Parar: openvas-stop
OpenVas – Interfaz Gráfico
Abrir un interfaz gráfico:

Iniciamos el servicio: openvas-start

Iniciamos el interfaz gráfico: Applications/Kali Linux/Applications/


Analisys vulnerabilities/Openvas gsd

•  Introducimos las servidor y credenciales: 127.0.0.1/root/toor

•  Elegir las máquinas a escanear.

•  Cuando el escaneo se completa. Visualizar los informes.

•  Priorizar las vulnerabilidades encontradas para ser tratadas.

•  Puede haber falsos positivos.


Informes
•  Podemos ver en los informes las vulnerabilidades
que tiene el sistema, ordenadas por nivel de
gravedad.

•  Se puede obtener un informe en diferentes formatos:


pdf, html, xml…
Ejemplo
3. Explotación de
vulnerabilidades
•  Puede ser un proceso manual o automático
(programado).

•  El escaner da muchas posibles vulnerabilidades, hay


que:
•  Filtrar: descartar las que no interesen (falsa, muy
costosa, no da buenos resultados…)
•  Priorizar: ¿por cual empiezo?
Explotación de
vulnerabilidades
•  Objetivos de la explotación:
•  Obtener acceso
•  Obtener información no autorizada
•  Ingeniería social
•  Atacar otros sistemas o aplicaciones
•  Documentar
Metasploit

•  Permite explotar vulnerabilidades conocidas.

•  Podemos actualizar los exploits:


•  Versiones antiguas: msfupdate
•  Versiones modernas (subversion): svn update
Metasploit-iniciar

•  Desde un terminal
•  service postgresql start
•  service metasploit start
•  msfconcole

•  Desde el menu: Applications/Kali Linux/Exploitation


Tools/Metasploit/metasploit framework

•  Desde la consola de metasploit podemos pedir ayuda:

msf> help
Metasploit-iniciar
•  Ver lista de exploits disponibles:

msf>show exploits

•  Están organizados en un árbol jerárquico


•  system/protocol/vulnerability
linux/http/peercast_url
osx/atp/loginext

•  Para ver vulnerabilidades de un sistema y/0 protocolo concretos:

msf> msfcli | grep linux/samba

•  Información sobre una vulnerabilidad concreta

msf>info exploit/linux/samba/trans2open
Uso de Metasploit

•  Podemos hacer una base de datos con en resultado


de un escaneo:
msf> db_map –n –A 192.168.42.129

•  Verificamos la lista de hosts y servicios que se han


cargado en la base de datos

msf> hosts

msf> services
Uso de Metasploit

•  Con el resultado de services, o del informe podemos


buscar y seleccionar la vulnerabilidad que podemos
explotar

•  Fuente de información sobre vulnerabilidades y


solución:
http://www.rapid7.com/db/
Uso de Metasploit

•  Seleccionar la vulnerabilidad:

msf> use exploit/linux/samba/trans2open

•  Ver y configurar opciones (por ejemplo RHOST):


msf exploit(trans2open)> show options
msf exploit(trans2open)> set RHOST 192.168.42.130
Uso de Metasploit

•  Payload: permite realizar una acción concreta sobre


el destino vulnerado (por ejemplo conseguir una
consola del destino).

•  Uso:
•  Mostrar payloads asociados al exploit
msf exploit(trans2open)> show payloads
•  Seleccionar payloads asociados al exploit
msf exploit(trans2open)> set PAYLOAD linux/x86/
shell_reverse_tcp
Uso de Metasploit

•  Una vez configuradas las opciones y payloads,


Explotar la vulnerabilidad

msf exploit(trans2open)> exploit


Falla el exploit

•  Posibles motivos:
•  Sistema no vulnerable
•  No corre en la victima el servicio que se intenta vulnerar
•  Firewall bloquea el acceso
•  IPS detecta y bloquea el ataque
•  Opción mal configurada
•  Falla el payload
•  Existe un NAT en medio
•  Destino vulnerable pero en un estado que previene la
explotación
Resumen explotación

•  Seleccionar vulnerabilidad.
•  Documentarse sobre la vulnerabilidad:
•  ¿En qué consiste?
•  ¿Parámetros de configuración?
•  ¿Qué consigo?
•  ¿Me interesa?

•  Configurar parámetros y payload

•  Ejecutarla vulnerabilidad.
Interfaz gráfica artimage

•  Permite hacer scan (nmap), descubrir vulnerabilidades y


explotarlas (botón derecho sobre el host).
•  Puede usar informes de: nessus, openvas…
•  No instalada en Kali
•  Instalar
•  apt-get install armitage

•  Iniciar
Armitage

http://www.fastandeasyhacking.com/manual
Armitage
4. Escalada de privilegios

•  En ocasiones explotar una vulnerabilidad no me da


el acceso requerido para nuestros objetivos (p.e
acceder a la información de un fichero).
•  Necesito hacer escalada de privilegios:
•  Ejemplo: Conseguir los privilegios del usuario con
acceso a los recursos objetivo.

•  Métodos: craking password


•  Acceder al ficheros de passwords de usuarios del
sistema e intentar averiguar la passwords del usuario
con privilegios.
Escalada de privilegios

•  Objetivos:
•  Mejorar el nivel de acceso a sistemas y red
•  Descubrir información de otras cuentas de usuario
•  Acceder a otros sistemas con mayores privilegios
5. Mantener la posición

•  Posiblemente sistemas de defensa cierren accesos


abiertos.

•  Mantener el acceso:
•  Eliminar/ocultar evidencias:
•  logs de huellas del acceso, mensajes de error ocasionados
por el ataque, ocultar canales de acceso…
•  Establecer nuevos puntos de entrada al sistema
Mantener la posición

•  Objetivos de mantenimiento de la posición:


•  Establecer múltiples métodos de acceso a la dirección
de destino.
•  Borrar evidencias de acceso no autorizado.
•  Reparar sistemas afectados por la explotación.
•  Inyectar datos falsos si es necesario.
•  Ocultar métodos de información mediante cifrado y
otros medios.
II Defensa

•  Hardering: configuración
•  Sistema operativo: Debian 7.2 Wheezy
•  Web Server: Apache
•  Base de datos: MySQL Server
•  Lenguaje de programación: php
•  Otros: servidor de ficheros, servidor ldap…

•  IDS: vigilancia
Hardering Debian

•  http://www.debian.org/doc/manuals/securing-
debian-howto/index.en.html

http://www.pontikis.net/blog/debian-wheezy-web-
server-setup
Hardering Debian

•  Antes de la instalación:
•  Objetivo del servidor
•  ¿Qué necesito instalar?
•  Riesgos generales
•  ¿Cómo maneja Debian la seguridad?
Hardering Debian

•  Durante la instalación:
•  Password de: Bios, gestor de arranque (LILO o Gurb),
sistema operativo (root)
•  Sistema de particiones
•  Activar passwords shadow
•  No conectar a Internet aún
•  Instalar mínimo de servicios y software necesarios
•  Leer la lista de correo de seguridad Debian
Hardering Debian

•  Después de la instalación
•  Subscirbirse al mailing list de anuncio de seguridad de
Debian
•  Ejecutar security update
•  Política de passwords: bios, lilo, sistema, servicios…
•  Firewall
•  Asegurar servicios.
Hardering Debian

•  Honeyhost
•  Detección de intrusiones.
•  Detector de Rootkits
•  Auditar
•  Hardering de servicios: mysql, php, Apache…
•  Prevenir DoS: ModEvasive
•  Y mucho más… consultar la referencia
Hardering Apache

•  http://www.tecmint.com/apache-security-tips/

•  Fichero de configuración: /etc/apache/apache2.cnf


Hardering Apache

•  Limitar el tamaño de la respuesta

•  Reducir efectos de ataques DDoS configurando


directivas de parámetros críticos

•  Habilitar logs

•  Configurar SSL y certificados


Hardering Apache

•  Ocultar versión de Apache e identificación de


errores

•  Deshabilitar la lista de directorios

•  Mantener actualizado apache regularmente

•  Deshabilitar módulos innecesarios

•  Correr apache desde una cuenta sin privilegios


Hardering Apache

•  Restricción de acceso a directorios

•  Usar los módulos mod_security (firewall) y


mod_evasive (previene DDoS)

•  Deshabilitar el seguimiento de enlaces simbólicos

•  Deshabilitas includes y CGIs del servidor, no usados


Hardering Mysql

•  /etc/my.cnf o /etc/mysql/my.cnf

•  http://rochakchauhan.com/blog/2013/11/19/
security-and-hardening-tips-for-mysql/
Hardering Mysql

•  Deshabilitar acceso remoto

•  Deshabilitar el uso de LOCAL INFILE

•  Cambiar la cuenta de root

•  Borrar base de datos de pruebas: test


Hardering Mysql

•  Borrar usuarios anónimos.

•  Reducir privilegios de la base de datos

•  Habilitar logging

•  Optimizar el rendimiento

•  Habilitar el slow query log: registro en log de


consultas que tienen un tiempo de respuesta mayor
que uno prefijado.
Hardering php

http://www.securitybydefault.com/2011/02/
hardening-php-mediante-phpini.html

http://es1.php.net/manual/es/security.php

Configurar en: /etc/php5/apache2/php.ini


Algunas directivas

•  Operaciones con ficheros limitados a la ruta especificada

Open_basedir = /var/www/

•  Deshabilita la ejecución desde php de funciones que


pueden ser peligrosas

disable_functions = system, exec, php_uname

•  Deshabilitar la visualización de errores php.

display_errors = Off
Algunas directivas

•  Deshabilitar que las variables EGPCS


(Environment, GET, POST, Cookie, Server) sean
globales, evitando que pueden adquirir valores sin
control.
Register_globals = 0ff
•  Deshabilitar includes de ficheros remotos.
allow_url_fpen = Off
Allow_url_include = Off
Práctica 3: Escaneo de puertos

•  Arranque las máquinas virtuales owaspbwa y lamp.

•  Hacer un escaneo de hosts y puertos en la red virtual


interna, utilizando diferentes técnicas (ayudarse el
manual de nmap).

•  Documente la información que ha sido capaz de


obtener usando nmap y los métodos usados para el
escaneo de los host.
Práctica 4: Escaneo de
vulnerabilidades
•  El siguiente paso después del escaneo de puertos es
elegir potenciales víctimas y probar escanear
vulnerabilidades.
Practique pasando un escaner de vulnerabilidades
(OpenVas) sobre las máquinas descubiertas en la LAN
virtual.
Enumere las más graves y explique cual explotaría y de
qué forma.
Práctica 5: pruebas de
penetración
•  Practique algún ataque a una máquina virtual con
metasplotable y/o Armitage.

•  Escriba un informe sobre el procedimiento seguido.


Práctica 6: Hardering

•  Establezca una guía con las medidas que aplicaría


para hacer hardering a un servidor web LAMP.
•  Aplíquelo a un sistema con una máquina virtual
LAMP.
•  http://www.turnkeylinux.org/lampstack

•  Pase un test de penetración y genere un informe.


•  Si detecta vulnerabilidades establezca las medidas de
seguridad para reducir el riesgo y vuelva a pasar el
test hasta que tenga un nivel de seguridad razonable.

Das könnte Ihnen auch gefallen