23
SEGURIDAD EN WEB APPS ETHICAL HACKING

Web App Security, Ethical hacking for CodeCamp SDQ 5

Embed Size (px)

Citation preview

SEGURIDAD EN WEB APPSETHICAL HACKING

- ING. EN SISTEMAS - MASTER EN DIRECCIÓN ESTRATÉGICA DE DESARROLLO DE SOFTWARE - WEB DEVELOPER +10 AÑOS - ETHICAL HACKER ENTUSIASTA +2 AÑOS - LIDER DE GRUPOS DE DESARROLLO WEB EN EMPRESAS - DESARROLLADOR DE 1ERA TIENDA EN LINEA PARA UNA TELCO - ETC…

José Gratereaux @jgratereaux

github.com/gratereaux

QUIEN SOY!

QUIENES SON USTEDES? - DESARROLLADORES? - PICAPOLLEROS? - PRINCIPIANTES? - NO ME IMPORTA EL LENGUAJE!

José Gratereaux @jgratereaux

github.com/gratereaux

QUIEN SON USTEDES?

SEGURIDAD EN WEB APPS

QUE VEREMOS HOY?

▸ Introducción al Web App Security

▸ Que es, SQLi, XSS, DataInput y algo mas…

▸ Herramientas para PenTesting

▸ Algún ejemplo en vivo

▸ Tips para asegurar tu site/app

▸ OWASP

SEGURIDAD EN WEB APPS

PENTESTING (PRUEBAS DE INTRUSIÓN)

▸ Stage 1: Enumeration

▸ Recabar información del servidor, versión, estructura del app, configuración comunes, etc..

▸ Stage 2: Assessment

▸ Encontrar vulnerabilidades usando fuerza bruta, manualmente, usando un scanner, validar inputs, buscar open ports, validar si usan CMS y cual, verificar si existen directorios comprometedores (ej. /admin), etc…

▸ Google hacking…: inurl:, site:, intext:, ext: y mas.

▸ Stage 3: Exploitation

▸ Probar que el target es vulnerable, realizar ataque y obtener pruebas.

▸ Stage 4: Deliverable

▸ Documentar el proceso, Sugerir recomendaciones, proveer soluciones.

▸ Generalmente que se busca?

▸ Authentication, Session Management, Access Control, Data Transport, Server Tier, Data Storage, Logging, Business Logic, Data Validation.

SEGURIDAD EN WEB APPS

ENTRAR POR LA PUERTA PRINCIPAL

▸ Authentication:- Standard: Basic, Digest, HTLM. - Custom: Login Forms, APIs, OpenID, OAuth, etc.

▸ Tipo de Vulnerabilidades o formas de ataques:- Information Leakage Mensajes de error con contenido importante o modo debug activo. - Default Password Buscar usuarios comunes (‘admin’, ‘nombre.apellido’) o scanner de usuarios (ej. WP)- Account Bruteforce Restringir intentos, utilizar Captcha, etc…- Password Reset Abuse- Authentication Bypass Editar cookies o session.- Man-in-the-middle (MITM) - Network Sniffing- Denial Of Service (DoS o DDoS)

PROBLEMAS COMUNES DE DATA INPUTS

VALIDACIÓN DE DATA

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ SQL Injection

Un ataque por inyección SQL consiste en la inserción o “inyección” de una consulta SQL por medio de los datos de entrada desde el cliente hacia la aplicación.

Eres vulnerable si:

A. La Data que el usuario digita se envía al SQL Interpreter como parte del Query directamente.

B. Si los Inputs no validan.

C. Si el usuario de la BD que utilizas posee todos los permisos y lo usas en todos tus apps.

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ SQL Injection

▸ Query para autenticar usuario:

▸ Cuando realizamos inyección vía un Input vulnerable:

si el valor $email es: ’ OR 1=1 #

‣ Otros comandos: Union Select, DROP, INSERT, etc…

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ SQL Injection

▸ Consejos para evitar este ataque.

Usuario de la base de datos (usar diferente por app) y solo con permisos necesarios.

Validar o Sanitize los inputs. (GET - POST). Adaptarlo a lo que solo necesitan hacer.

Usar nombres poco comunes para los usuarios admin o tablas importantes.

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ Local File Includes

This attack vector is used to perform arbitrary file/url read or execution using low-level functions and application-specific features.

File Upload with tamperdata:to view and modify HTTP/HTTPS headers and post parameters...

https://www.youtube.com/watch?v=OADmQpbLn_k

Podemos cargar un shell (PHP) con formato .jpg para burlar validaciones de seguridad, luego con temperdata cambiar dicha extensión.

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ Cross-Site Scripting (XSS)

Is a type of vulnerability where an attacker can bypass SOP (Same Origin Policy) through client-side injection or by abusing forms of configuration. Works by injecting fragments of HTML/JS inside the web page.

<script>alert(1)</script>

<?php $_SESSION['name'] = $_GET['name'] ?>

‣ Como evitar:

When script tags are sanitized or escaped.

Validar los inputs.

SEGURIDAD EN WEB APPS

DATA INPUTS - TIPOS DE PROBLEMAS

▸ File Includes

TamperData

A. Use tamperdata to view and modify HTTP/HTTPS headers and post parameters.

B. Trace and time http response/requests.

C. Security test web applications by modifying POST parameters.

Como prevenir?

D. Comparar hashes.

E. Restringir file types , size, etc.

F. Si es un image upload pasar un image parsing function. Ej, PHP: array getimagesize ( string $filename [, array &$imageinfo ] )

SEGURIDAD EN WEB APPS

DATA TRANSPORT

▸ HTTPS Usa cifrado para proteger el tráfico de Internet con el fin de impedir que otros usuarios de la red puedan espiarlo o alterarlo.

▸ DATA ENCRIPTADA SHA, MD5, BCRYPT, Cadena personalizada, etc…

▸ SSL Secure Sockets Layer es un protocolo diseñado para permitir que las aplicaciones para transmitir información de ida y de manera segura hacia atrás.

SEGURIDAD EN WEB APPS

ARCHIVOS NO SEGUROS EN SERVER / APP

▸ INFO DEL SERVER phpinfo()

▸ OLD CODE Y BACKUPS no guardar en server de producción

▸ ARCHIVOS CON INFORMACIÓN NO NECESARIA Archivos de texto con información relevante para el developer.

archivos de instalación de apps, cms, etc.

Logs existentes del tiempo de desarrollo

doc, xls, ppt, pdf relevantes del proyecto

SEGURIDAD EN WEB APPS

TOOLS PARA UN ETHICAL HACKER

▸ Nmap, Nikto, Netcat

▸ Proxy`s:

▸ Zap, Burp Suite, Paros, WebScarab, Proxify, etc…

▸ Scanners:

▸ Acunetix, Netparker, w3af, etc…

▸ Explotación:

▸ Metasploit

▸ OS, Linux (Kali Linux)

SEGURIDAD EN WEB APPS

SEGURIDAD EN CMS (WORDPRESS)▸ Mala reputación por mal uso de los

usuarios.

▸ Actualizaciones al día

▸ Contraseñas fuertes

▸ Durante la instalación:- wp-config.php Cambiar el prefijo de las tablas para la base de datos Renombrar la carpeta ‘wp-content’ Definir la URL del sitio web

SEGURIDAD EN WEB APPS

SEGURIDAD EN CMS (WORDPRESS)Permisos de archivos y carpetas

Bloquear acceso a carpeta wp-include

Bloquear acceso a archivo wp-config.php

SEGURIDAD EN WEB APPS

SEGURIDAD EN CMS (WORDPRESS)Ya me hackearon y ahora que hago?

Cambiar todas las contraseñas (Host, WP, FTP, BD)

eliminar www/ cron/ plugin/ themes/ de wp-content, lo que puedas y no usas.

Subir una nueva copia de Wordpress menos la carpeta wp-content

Añadir de nuevo wp-content, verificando cada archivo manualmente. Buscar comando eval seguido de Base64

Actualiza los plugins y tema, remueve los que entiendas que son sospechosos.

INGENIERÍA SOCIAL

HACKING

SEGURIDAD EN WEB APPS

HACKING O INGENIERÍA SOCIALHackear personas mediante la Psicología, Acercamiento para generar confianza.

Correos, haciéndose pasar por representantes de una empresa X, soporte técnico de empresa X, telemercadeo de banco X, Chats, redes sociales, etc…

Recopilación de Datos.

Observación

Usar el box de recuperación de contraseña

Documentos con información sensible en lugares visibles.

Utilizando PC publicas

Fishing *

SEGURIDAD EN WEB APPS

OWASP (OWASP.ORG)▸ Open Web Application Security

Project

▸ Impulsa la visibilidad y la evolución en la seguridad y protección de software del mundo.

GRACIAS

@jgratereaux /gratereaux