100% encontró este documento útil (2 votos)
238 vistas43 páginas

Curso Python Pentestig I SL

Este documento presenta un curso sobre Python para Pentesting. El curso enseña a usar Python para realizar escaneos de red, sniffing y ataques como spoofing ARP. El objetivo es enseñar las habilidades básicas de Python y redes necesarias para pentesting. El temario cubre conceptos como sockets, escaneo de servicios, creación de sniffers y paquetes de red usando Python.

Cargado por

Aldo Aldito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
100% encontró este documento útil (2 votos)
238 vistas43 páginas

Curso Python Pentestig I SL

Este documento presenta un curso sobre Python para Pentesting. El curso enseña a usar Python para realizar escaneos de red, sniffing y ataques como spoofing ARP. El objetivo es enseñar las habilidades básicas de Python y redes necesarias para pentesting. El temario cubre conceptos como sockets, escaneo de servicios, creación de sniffers y paquetes de red usando Python.

Cargado por

Aldo Aldito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Está en la página 1/ 43

Curso

Python para Pentesting I

Alonso Eduardo Caballero Quezada


Instructor y Consultor en Hacking Ético & Forense Digital

e-mail: [email protected]

Mayo 2018
Este es para
Python el título
Pentesting
para cada
I diapositiva

Presentación

Este curso es una guía práctica el cual muestra la ventajas de utilizar


Python para Pentesting, con la ayuda de códigos conteniendo ejemplos
detallados. En este curso se empieza a explotar los fundamentos de redes
utilizando Python, para luego proceder con las etapas del Pentesting
correspondientes a los escaneos y el sniffing.

Objetivos

Este curso enseña al participante la manera de utilizar Python para redes y


Pentesting, de tal manera se cumplan los requisitos previos para ir a temas
más profundos. La fase de escaneo abarca como se realizan los escaneos
de redes para capturar información desde una red, host y servicios. La fase
final enseña como crear un Sniffer a nivel de la capa 4, y como realizar
ataques en las capas 3 y 4.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título para cada diapositiva
Temario
● Python para Pentesting
● Introducción al Alcance del Pentesting
● Perspectivas para el Pentesting
● Introducción a Scripting en Python
● Entender las Pruebas y Herramientas Necesarias
● Aprender las Plataformas de Pruebas Comunes con Python
● Sockets de Red
● Métodos de Sockets para Servidores, Clientes y Generales
● Escaneo
● Verificar Sistemas en Funcionamiento en una Red
● Concepto de un Sistema en Funcionamiento
● Servicios Ejecutándose en una Máquina Objetivo
● Sniffing
● Introducción a un Sniffer de Red
● Implementar un Sniffer de Red utilizando Python
● Aprender sobre Creación de Paquetes
● Introducción a Spoofing de ARP e Implementarlo en Python
● Probar la Seguridad de un Sistema utilizando Creación e Inyección de
Paquetes
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es
Hola Mundo!
el título para cada diapositiva

Python es un lenguaje de programación muy simple, y tiene una sintaxis


muy sencilla. Esto alienta a los programadores a desarrollar programas sin
código repetitivo (preparado). La directiva más simple en Python es la
directiva “print”

Existen dos principales versiones de Python, Python 2 y 3. En Python 2 la


sentencia “print” no es una función, y por lo tanto se invoca sin paréntesis.
Sin embargo en Python 3 es una función, y debe ser invocada con
paréntesis.

Identación

Python utiliza identación para los bloques en lugar de llaves. Tabuladores y


espacios son permitidos, pero la identación estándar requiere código
Python estándar utilice cuatro espacios

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el ytítulo
Variables Tipospara cada diapositiva

Python está completamente orientado a objetos, y no es “tipeado


estáticamente”. No se necesita declarar variables antes de utilizarlas, o
declarar su tipo. Cada variable en Python es un objeto.

Números

Python soporta dos tipos de números, números enteros y de punto flotante.


(También soporta números complejos).

Cadenas

Las cadenas son definidas ya sea con comillas simples o dobles comillas.
La diferencia en utilizar dobles comillas es facilitar el uso de apostrofes,
(donde podría terminar la cadena si se utiliza comillas simples).

La asignación puede ser hecho en más de una variable “simultaneamente”.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título para cada diapositiva
Listas

Las listas son muy similares a los arreglos (arrays).

La listas contienen cualquier tipo de variables, y pueden contener tantas


variables como se requiera.

Las listas también se pueden repetir de una manera muy simple.

El acceder hacia un indice el cual no existe genera una excepción (un


error).

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Operadores Básicos
para cada diapositiva

Operadores Aritméticos

Como cualquier otro lenguaje de programación, las operaciones de suma,


resta, multiplicación y división pueden ser utilizados con números.

Utilizar Operaciones con Cadenas

Python soporta concatenación de cadenas utilizando la operación de suma.

Python también soporta multiplicación de cadenas para formar una cadena


con una secuencia repetida.

Utilizar Operaciones con Listas

Las listas pueden ser unidas con la operación de adición. Como las
cadenas, Python soporta la formación de nuevas listas con una secuencia
repetida utilizando la operación de multiplicación.
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título
Formatear Cadenas
para cada diapositiva

Python utiliza el formateo de cadenas al estilo C para crear cadenas nuevas


formateadas.

El operador “%” es utilizado para formatear un conjunto de variables


encerradas en una tupla (una lista de tamaño fijo), junto con una cadena
formateada, el cual contiene el texto normal junto con “especificadores de
argumentos”, símbolos especiales como “%s” y “%d”.

Algo muy frecuente es tener una variable “nombre” con el nombre del
usuario, y se requiere luego imprimirlo (como un saludo al usuario).

Para utilizar uno o más especificadores para argumentos, utilizar una tupla
(paréntesis).

Cualquier objeto el cual no es una cadena puede ser formateada utilizando


también el operador “%s”. La cadena la cual retorna desde el método “repr”
del cual el objeto es formateado como la cadena.

Algunos especificadores de argumento; %s, %d, %f, %<número>f, %x/%X


SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título para cada diapositiva
Condiciones

Python utiliza variables boolenadas para evaluar condiciones. Los valores


booleanos “True” y “False” son retornados cuando una expresión es
comparada o evaluada.

Se debe anotar la asignación de variables se hace utilizando los operadores


“=”, mientras la comparación entre dos variables se hace utilizando doble
operador igual “==”. El operador “no igual” es “!=”.

Operadores Booleanos: Los operadores booleanos “and” y “or” permiten


construir expresiones booleanas complejas.

El Operador “in”: Puede ser utilizado para verificar si un objeto


especificado existe dentro un contenedor iterable de objeto, como una lista.

El Operador “is”: A diferencia del operador “==”, el operador “is” no


coincide los valores de las variables, sino las instancias por si mismas.

El Operador “not”: Utilizar “not” antes de una expresión booleana la


invierte.
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título para cada diapositiva
Bucles

Existen dos tipos de bucles en Python, “for” y “while”.

El Bucle “for”:

Los bucles “for” iteran sobre una secuencia definida. Pueden iterar sobre
una secuencia de números utilizando funciones “range” y xrange“.

El Bucle “while”:

Los bucles “while” se repiten mientras se cumplan una cierta expresión


booleana.

Sentencias “break” y “continue”:

“break” se utiliza para salir de un bucle “for” o “while”, mientras “continue” se


utiliza para saltar el bloque actual, y retornar a “for” o “while”.

¿Se puede usar la clausula “else” para bucles “for”?

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título para cada diapositiva
Funciones

Las funciones son una manera conveniente para dividir el código en


bloques útiles, permitiendo ordenar el código, haciéndolo más legible,
reutilizable y ahorrando tiempo. También las funciones son una manera
clave para definir interfaces, de tal manera los programadores puedan
compartir su código.

¿Cómo se Escriben Funciones en Python?

Las funciones en Python se definen utilizando la palabra clave “def”,


seguido del nombre de la función. Las funciones también pueden recibir
argumentos (variables pasadas hacia la función). Las funciones pueden
retornar un valor, utilizando la palabra clave “return”.

¿Cómo se Llaman Funciones en Python?

Simplemente se escribe el nombre de la función seguido por (), colocando


cualquier argumento requerido entre paréntesis.
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este esyelObjetos
Clases título para cada diapositiva

Los objetos son una encapsulación de variables y funciones dentro de una


única entidad. Los objetos obtienen sus variables y funciones desde las
clases. Las clases son esencialmente una plantilla para crear objetos.

Acceder a las Variables del Objeto:

Se pueden crear múltiples objetos diferentes de la misma clase (tienen las


mismas variables y funciones definidas). Sin embargo, cada objeto contiene
copias independientes de las variables definidas en la clase.

Acceder a las Funciones del Objeto:

Para acceder al interior de una función de un objeto, se debe utilizar una


notación similar para acceder hacia una variable.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título para cada diapositiva
Diccionarios

Un diccionario es un tipo de dato similar a los arreglos, pero trabaja con


claves y valores en lugar de indices. Cada valor almacenado en un
diccionario puede ser accedido utilizando una clave, la cual es cualquier tipo
de objeto (una cadena, un número, una lista, etc) en lugar de utilizar su
indice para direccionarlo.

Alternativamente un diccionario puede ser iniciado con los mismos valores.

Iterar sobre Diccionarios:

Los diccionarios pueden ser iterados como una lista. Sin embargo, un
diccionario a diferencia de una lista, no mantiene un orden en los valores
almacenados.

Remover un Valor:

Para eliminar un indice especificado.


SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es elytítulo
Módulos Paquetes
para cada diapositiva

Un módulo es una pieza de software con una funcionalidad específica. Por


ejemplo, cuando se crea un juego de ping pong, uno de los módulos podría
ser responsable de la lógica, y otro responsable de dibujarlo en pantalla.

Escribir Módulos

Importar Módulos objetos hacia el nombre de espacios actual

Importar todos los Objetos

Nombre de Importación Personalizada

Iniciación del Módulo

Extender la Ruta de Carga del Módulo

Explorar Módulos Incorporados

Escribir Paquetes
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título
Pentesting & Python
para cada diapositiva

Un profesional en pruebas de penetración trabaja en una organización o


empresa para asegurar sus sistemas. Intentando irrumpir en la red después
de obtener una aprobación legal del cliente, para presentar luego un reporte
de sus hallazgos.

Los atacantes maliciosos realiza acciones para ganar fama, vender


vulnerabilidades por dinero, o explotar una vulnerabilidad para beneficio
personal.

Para convertirse en un buen profesional en pruebas de penetración, se


necesita un profundo conocimiento sobre diversos conceptos tecnológicos.
Así mismo se necesita conocer una metodología para realizar pruebas de
penetración. Se enumeran:

● Alcance del pentesting


● Necesidad para un pentesting
● Componentes a ser evaluados
● Perspectivas de un pentesting
● Herramientas necesarias
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título
Perspectiva del para
Pentesting
cada diapositiva

Pentesting de caja negra

Se tiene únicamente el nombre de la empresa. Hacking con el conocimiento


de un atacante externo. No se necesita conocimiento previo del sistema.
Consume bastante tiempo.

Pentesting de caja blanca

Se tiene un completo conocimiento sobre la infraestructura a evaluar. Se


trabaja como un empleado malicioso quien tiene amplio conocimiento
relacionando a la infraestructura de la empresa. Se proporciona información
sobre la infraestructura de la empresa, tipo de red, políticas de la empresa,
direcciones IP, firewall, IDS, IPS, etc.

Pentesting de caja gris

Usualmente se tiene información limitada sobre la red o sistema objetivo, lo


proporciona el cliente para bajar el costo, además de minimizar las pruebas
y errores en las evaluación. Evaluaciones de seguridad y pruebas internas.
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es elcon
Scripting título
Python
para cada diapositiva

Es necesario tener conocimiento básico de programación en Python, como


la sintaxis básica, tipos de variables, tipo de dato tupla, lista diccionario,
funciones, cadenas, métodos, etc.

Existen dos versiones de Python, la rama 2.X y 3.X. Python 3.0 se publicó
en el año 2008. La versión final de 2.x salió a mediados del año 2010, con
una declaración de soporte extendido para esta versión. La rama 2.x no
verá nuevas publicaciones importantes después de esto. 3.X está en
desarrollo activo. Esto significa todas las mejoras están por defecto en 3.X.

Para realizar pruebas de penetración es necesario sentirse cómodo con los


fundamentos de las redes, como direcciones IP, subneting, significado de
los puertos, direcciones de red, direcciones de difusión.

Un profesional en Pentesting debe conocer profundamente fundamentos de


redes como también sistemas operativos. Si se piensa utilizar GNU/Linux,
se está en la dirección correcta.
* Python: https://www.python.org/
* Should I use Python 2 or Python 3 for my development activity?: https://wiki.python.org/moin/Python2orPython3
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el
Sockets detítulo
Red para cada diapositiva

Un socket de red contiene una dirección IP y un número de puerto. De


manera simple, un socket es un mecanismo para hablar con otras
computadoras. Mediante un socket, un proceso puede comunicarse con
otros procesos sobre una red.

s = socket.socket (socket_family, socket_type, protocol=0)

socket_family: socket.AF_INET, PF_PACKET

Socket_type : socket.SOCK_DGRAM,
socket.SOCK_RAW,socket.SOCK_STREAM

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elSocket
Métodos título para
Servidor
cada/diapositiva
Cliente

Servidor

En una arquitectura cliente / servidor, existe un servidor centralizado el cual


proporciona servicios, y muchos clientes solicitándo y recibiendo desde un
servidor centralizado.

A continuación algunos métodos necesarios de conocer.

socket.bind(address)

socket.listen(q)

socket.accept()

Cliente

Socket.connect(address)

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elSocket
Métodos título para
Generales
cada diapositiva

Los métodos socket generales son los siguientes:

socket.recv(bufsize)

socket.recvfrom(bufsize)

socket.recv_into(buffer)

socket.recvfrom_into(buffer)

socket.send(bytes)

socket.sendto(data, address)

socket.sendall(data)

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Excepciones de para
Sockets
cada diapositiva

Diferentes tipos de excepciones son definidas en la librería socket de


Python para diferentes errores. Estas excepciones son:

socket.herror

socket.timeout

-> settimeout()

socket.gaierror

-> getaddrinfo()

-> getnameinfo()

socket.error

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elsocket
Métodos título para
Útiles
cada diapositiva

Pyhton ofrece muchos bellos y útiles métodos para obtener información en


un Pentesting.

socket.gethostbyname(hostname)

socket.gethostbyname_ex(name)

socket.gethostname()

socket.getfqdn([name])

socket.gethostbyaddr(ip_address)

socket.getservbyname(servicename[, protocol_name])

socket.getservbyport(port[, protocol_name])

socket.connect_ex(address)
SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com
Este es el título para cada diapositiva
Escaneo

El escaneo de red se refiere a un conjunto de procedimientos para


investigar un host en funcionamiento, el tipo de host, puertos abiertos, y tipo
de servicios funcionando en el host. El escaneo de red es una parte de la
recopilación de inteligencia e virtud del cual un atacante puede crear un
perfil de la organización objetivo.

Se deben tener conocimientos básicos de las capas de comunicación


TCP/IP. También se debe tener claro el concepto de PDU (Protocol Data Uni
t).

Un PDU es una unidad de datos especificada en el protocolo. Es un termio


genérico para los datos en cada capa.

● Para la capa de aplicación, PDU indica dato.


● Para la capa de transporte, PDU indica un segmento.
● Para la capa de Internet o red, PDU indica un paquete.
● Para la capa de enlace o acceso a red, PDU indica una trama.
● Para la capa física, esto es, transmisión física, PDU indica bits.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elSistemas
Verificar título para
Funcionando
cada diapositiva

Un escaneo ping implica enviar Peticiones ECHO ICMP hacia un host. Si el


host está funcionando, devolverá una respuesta ECHO.

El sistema operativo proporcionad el comando “ping” para verificar si un


host está funcionando o no. Considerar por ejemplo la situación donde se
requiere probar una lista completa de direcciones IP. En esta situación,
probar uno por uno, puede tomar mucho tiempo y esfuerzo. Para esta
situación, se utiliza barridos ping.

Barrido Ping

El barridos ping es utilizado para identificar los host funcionando desde un


rango de direcciones IP mediante peticiones ECHO ICMP y respuestas
ECHO ICMP. Desde una subred y direcciones de red, un atacante o
profesional en pruebas de penetración, puede calcular el rango de la red.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el de
Concepto título
Escaneo
para cada
TCPdiapositiva

El barrido ping funciona sobre una petición ECHO ICMP, y la respuesta


ECHO ICMP. Muchas veces se desactiva la respuesta ECHO ICMP o se
utiliza un firewall para bloquear paquetes ICMP. En esta situación, el
escaner podría no funcionar. En este caso, se necesita realizar un escaneo
TCP. Para esto se necesita estar familiarizado con el “Three Way
Handshake”.

Para establecer una conexión, los hosts realizan una saludo de tres vías.
Las tres fases para establecer una conexión TCP son:

1. El cliente envía un segmento con el flag “SYN”; esto significa el cliente


solicita al servidor iniciar una sesión.

2. En la forma de una respuesta, el servidor envía un segmento el cual


contiene flags, SYN y ACK.

3. El cliente responde con un flag ACK.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el en
Servicios título
Funcionamiento
para cada diapositiva

Los servicios son aquellos los cuales utilizan una conexión de red. El
servicio utilizando una conexión de red debe abrir un puerto; desde un
número de puerto, se puede identificar cual servicio está funcionando sobre
la máquina objetivo. En una prueba de penetración, la significación el
escaneo de puertos es para verificar si algún servicio ilegítimo está
funcionando sobre la máquina objetivo. Un escaneo de puertos puede
ayudar a identificar servicios desconocidos los cuales funcionan en la
máquina de una victima.

Los rangos para los números de puertos van desde el 0 hasta el 65535. Los
puertos conocidos (también conocidos como puertos del sistema) son
aquellos del rango 0 al 1023, y están reservados para servicios
privilegiados. El rango 1024 al 49151 son puertos registrados para ser
utilizados por proveedores para sus aplicaciones; por ejemplo el puerto
3306 está reservado para MySQL.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Introducción a un
para
Sniffer
cadade
diapositiva
Red

Sniffing es el proceso de vigilar o capturar todos los paquetes de datos


atravesando una red, utilizando software (una aplicación) o u dispositivo
hardware. Sniffing es usualmente hecho por un administrador de red. Sin
embargo, un atacantes podría utilizar un sniffer para capturar datos, y estos
datos, algunas veces, puede contener información sensible como nombres
de usuario y contraseñas.

Los administradores de red utilizan un puerto SPAN del switch. El Switch


envía una copia del tráfico hacia el puerto SPAN. El administrado utilizar el
puerto SPAN para analizar el tráfico. El Sniffing puede únicamente ser
realizado dentro una subred.

● Sniffing pasivo: Se refiere a husmear desde un red basada en un hub.


Se coloca el sniffer de paquetes en modo promiscuo.

● Sniffing activo: Este tipo se realiza sobre redes basadas en un switch. El


switch envía paquetes hacia la computadora después de verificar una
tabla MAC. Aquí se utiliza un ARP Spoofing.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Implementar un para
Sniffer
cada
de diapositiva
Red

Formato de Caracteres

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Implementar un para
Sniffer
cada
de diapositiva
Red (Cont.)

Se debe tener en consideración las siguientes definiciones:

PF_PACKET

Raw socket

Los siguientes métodos socket son utilizados para la conversación de orden


del byte.

socket.ntohl(x)

socket.ntohs(x)

socket.htonl(x)

socket.htons(x)

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Implementar un para
Sniffer
cada
de diapositiva
Red (Cont.)

Capa Física de Red

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Implementar un para
Sniffer
cada
de diapositiva
Red (Cont.)

Capa IP o de Red

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es el título
Implementar un para
Sniffer
cada
de diapositiva
Red (Cont.)

Cabecera TCP

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elPaquetes
Elaborar título para cada diapositiva

Esta es una técnica mediante el cual un atacante malicioso o profesional en


pruebas de penetración, crea paquetes personalizados.

Utilizando un paquete personalizado se pueden realizar diversas tareas,


como probar un conjunto de reglas en un firewall, escaneo de puertos, y el
comportamiento del sistema operativo.

Están disponibles muchas herramientas para la elaboración de paquetes,


como hping3, scapy, y demás. Pero es factible realizar esto sin
herramientas únicamente con Python.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este Spoofing
ARP es el título para cada diapositiva

ARP es utilizado para convertir dirección IP hacia su correspondiente


dirección MAC. Cuando un paquete viene desde la capa de red, tiene una
dirección IP, y un paquete de la capa de enlace de datos necesita la
dirección MAC del dispositivo destino. En este caso el remitente utiliza el
protocolo ARP.

El proceso de resolución se refiere al proceso de encontrar la dirección


MAC de una computadora en una red. A continuación se presentan dos tipo
de mensajes ARP, los cuales podrían ser enviados por ARP.

Petición ARP:

Una máquina desea enviar un mensaje hacia otra máquina en la misma


subred. La máquina únicamente conoce la dirección IP, mientras la
dirección MAC es requerida para enviar el mensajes en la capa de enlace
de datos. En esta situación, la máquina difunde una petición ARP. Todas las
máquinas en la subred reciben el mensaje.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este Spoofing
ARP es el título(Cont.)
para cada diapositiva

Respuesta ARP:

El usuario destino responde de vuelta con su dirección MAC. Esta


respuesta es unicast y es conocida como una réplica ARP.

Cache ARP:

Para reducir el número de peticiones para la resolución de direcciones, un


cliente normalmente hace “cache” de las direcciones resueltas por un corto
periodo de tiempo. El cache ARP es de tamaño finito. Cuando un dispositivo
requiere enviar datos hacia otro dispositivo objetivo en una subred, debe
primero determinar la dirección MAV del objetivo, incluso aunque el
remitente conozca la dirección IP a la cual resuelve. Este mapeo de
direcciones IP a MAC son derivados desde ARP mantenido en cada
dispositivos. Las entradas no utilizadas son eliminadas, lo cual libera
espacio en cache.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este Spoofing
ARP es el título(Cont.)
para cada diapositiva

ARP Spoofing, también conocido como “ARP cache spoofing”, es un tipo de


ataque donde la dirección MAC de una máquina victima en el cache ARP de
una pasarela, junto con la dirección MAC de la pasarela, en el cache ARP
de la máquina victima, son cambiadas por un atacante.

Esta técnica es utilizada para atacar redes de área local. El atacante puede
husmear la trama de datos sobre una LAN. En ARP spoofing, el atacante
envía una respuesta falsa hacia la pasarela, como también hacia la victima.
Esto permite asociar la dirección MAC del atacante con la dirección IP de
otro hosts (como la de la pasarela por defecto).

Si este ataque es exitoso, la dirección IP de la victima y el atacante tendrán


la misma dirección MAC. Ahora, todos los paquetes dirigidos hacia la
pasarela, irán a través del sistema del atacante, y el atacante puede leer
paquetes viajando hacia y desde la pasarela y la victima.

En una prueba de penetración se debe atacar (ARP spoofing) la pasarela,


para investigar si esta es vulnerable a ARP spoofing o no.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este esel
Probar elSistema
título para
de cada
Seguridad
diapositiva

Escaneo Medio Abierto

Como su nombre lo sugiere, este es un tipo especial de escaneo. Esta


técnica es utilizada para evadir reglas del firewall, y previene ser detectado
por los sistemas de seguridad. Sin embargo, este es un tipo de especial de
escaneo el cual es hecho utilizando elaboración de paquetes.

Scapy es una librería la cual permite crear paquetes personalizados. De tal


manera se puede escribir código simple y código entendiendo Scapy.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este esel
Probar elSistema
título para
de cada
Seguridad
diapositiva
(Cont.)

Desasociación de Red

En este ataque, la victima permanecerá conectada hacia la pasarela pero


no podrá comunicará con la red externa. La victima seguirá conectaa hacia
el encaminador pero no podrá navegar Internet. El principio de este ataque
es el mismo del ARP Cache Poisoning. El ataque enviará paquetes ARP
Reply hacia la victima, y el paquete cambiará la dirección MAC de la
pasarela en el cache ARP de la victima con otra MAC. Lo mismo para la
pasarela.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este esel
Probar elSistema
título para
de cada
Seguridad
diapositiva
(Cont.)

Escaneo FIN

Algunas veces los firewalls y sistemas para la detección de intrusiones, son


configurados para detectar escaneos SYN. En un escaneo FIN, un paquete
TCP es enviado hacia el host remoto con únicamente el bit de control FIN
activo. Si ninguna respuesta proviene del host, esto significa el puerto está
abierto. Si se recibe una respuesta, conteniendo un bit de control RST/ACK,
significa el puerto está cerrado.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este esel
Probar elSistema
título para
de cada
Seguridad
diapositiva
(Cont.)

Escaneo ACK

El método de escaneo ACK es utilizado para determinar si el host está


protegido por algún tipo de sistema para filtros.

En este método de escaneo, el atacante envía un paquete de prueba ACK


con un número de secuencia aleatoria, donde ninguna respuesta significa el
puerto está filtrado (un firewall para la inspección de estado está presente
en este caso); si una respuesta RST proviene de retorno, esto significa el
puerto está cerrado.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este esel
Probar elSistema
título para
de cada
Seguridad
diapositiva
(Cont.)

Ping de la Muerte

El ping de la muerte es un tipo de negación de servicio en el cual el


atacante deliberadamente envía una petición ping, tan grande como de
65535 bytes.

Una de las características de TCP/IP es la fragmentación, esto permite un


simple paquete IP sea dividido en pequeños segmentos.

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Este es elJunio
Eventos título2018
para cada diapositiva
● Taller Pruebas de Seguridad a Contraseñas
4 de Junio. De 19:30 - 21:30

● Curso Análisis Forense a Sistemas Windows


5, 6, y 7 de Junio. De 19:30 - 21:30

● Curso Nmap para auditorias de seguridad


12, 13 y 14 de Junio. De 19:30 - 21:30

● Taller Recopilación de Información a Servidores Web


15 de Junio. De 19:30 - 21:30

● Curso LPIC 101 (Parte 1)


18, 25 y 26 de Junio. 19:00 - 22:00

● Curso LPIC 101 (Parte 2)


27, 28 y 29 de Junio. 19:30 - 21:30

SOLUFLEX S.R.L. Ingeniería en Seguridad e Infraestructura IT - http://soluflexsrl.com


Curso
Python para Pentesting I

Alonso Eduardo Caballero Quezada


Instructor y Consultor en Hacking Ético & Forense Digital

e-mail: [email protected]

Mayo 2018

También podría gustarte