SlideShare uma empresa Scribd logo
1 de 34
Scapy Generación y manipulación básica de paquetes de red David Cristóbal López “ Osito” Arroutada 18 – A Coruña 17 a 20 de Noviembre de 2011
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Índice
[object Object],[object Object],[object Object],[object Object],[object Object],¿Qué es Scapy?
[object Object],[object Object],[object Object],[object Object],[object Object],¿Qué es Scapy?
Scapy es capaz de “diseccionar” la mayoría de protocolos que existen (IP, Ethernet, STP, HSRP…) Para ver todos los protocolos que soporta, se usa el comando  ls() Protocolos Protocolos
ARP ASN1_Packet BOOTP CookedLinux DHCP DNS DNSQR DNSRR Dot11 Dot11ATIM Dot11AssoReq Dot11AssoResp Dot11Auth Dot11Beacon Dot11Deauth Dot11Disas Dot11Elt Dot11ProbeReq Dot11ProbeResp Dot11QoS Dot11ReassoReq Dot11ReassoResp Dot11WEP Dot1Q Dot3 EAP EAPOL Ether GPRS GRE HCI_ACL_Hdr HCI_Hdr Protocolos HDLC HSRP ICMP ICMPerror IP IPerror IPv6 ISAKMP ISAKMP_class ISAKMP_payload ISAKMP_payload_Hash ISAKMP_payload_ID ISAKMP_payload_KE ISAKMP_payload_Nonce ISAKMP_payload_Proposal ISAKMP_payload_SA ISAKMP_payload_Transform ISAKMP_payload_VendorID IrLAPCommand IrLAPHead IrLMP L2CAP_CmdHdr L2CAP_CmdRej L2CAP_ConfReq L2CAP_ConfResp L2CAP_ConnReq L2CAP_ConnResp L2CAP_DisconnReq L2CAP_DisconnResp L2CAP_Hdr L2CAP_InfoReq L2CAP_InfoResp L2TP LLC MGCP MobileIP MobileIPRRP MobileIPRRQ MobileIPTunnelData NBNSNodeStatusResponse NBNSNodeStatusResponseEnd NBNSNodeStatusResponseService NBNSQueryRequest NBNSQueryResponse NBNSQueryResponseNegative NBNSRequest NBNSWackResponse NBTDatagram NBTSession NTP NetBIOS_DS NetflowHeader NetflowHeaderV1 NetflowRecordV1 NoPayload PPP PPP_ECP PPP_ECP_Option PPP_IPCP PPP_IPCP_Option PPPoE PPPoED Packet Padding PrismHeader RIP RIPEntry RTP RadioTap Radius Raw SMBMailSlot SMBNegociate_Protocol_Request_Header SMBNegociate_Protocol_Request_Tail SMBNegociate_Protocol_Response_Advanced_Security SMBNegociate_Protocol_Response_No_Security SMBNegociate_Protocol_Response_No_Security_No_Key SMBNetlogon_Protocol_Response_Header SMBNetlogon_Protocol_Response_Tail_LM20 SMBNetlogon_Protocol_Response_Tail_SAM SMBSession_Setup_AndX_Request SMBSession_Setup_AndX_Response SNAP SNMP SNMPbulk SNMPget SNMPinform SNMPnext SNMPresponse SNMPset SNMPtrapv1 SNMPtrapv2 SNMPvarbind STP SebekHead SebekV1 SebekV2 SebekV2Sock SebekV3 SebekV3Sock Skinny TCP TCPerror TFTP TFTP_ACK TFTP_DATA TFTP_ERROR TFTP_OACK TFTP_Option TFTP_Options TFTP_RRQ TFTP_WRQ UDP UDPerror X509Cert X509RDN X509v3Ext _IPv6OptionHeader Scapy 1.2.0.2 – 150 protocolos
Para el control de Scapy, disponemos de varios comandos, que pueden ser listados con el comando  lsc() Comandos Comandos
Hay comandos que no se muestran en la ayuda, como los de gestión de ficheros (rdpcap, wrpcap) o los de mostrar gráficos (psdump, pdfdump) La disponibilidad de muchos de los comandos, depende de si están instaladas las librerías adicionales para dar esa funcionalidad (desencriptación WEP, dibujo, …) Algunas de las extensiones sólo están disponibles para Linux Comandos
Para generar paquetes, hay que utilizar los protocolos antes mencionados. Se pueden generar paquetes tanto de capa 2 (Ethernet) como de capa 3 (IP), necesarios para la comunicación. Después, se añaden el resto de protocolos que necesitemos Generación de paquetes Generación de paquetes
Para generar datos de paquete de capa 2, utilizamos el protocolo Ethernet, abreviado como Ether(), indicando MAC de origen (src) y de destino (dst). Para introducir ambos campos, se separan por una coma (,) capa2=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”) Generación de paquetes
En capa 3, tenemos más campos dentro del comando, aparte de un campo de checksum. Éste campo puede rellenarse o no, ya que se puede generar al momento de enviarse capa3=IP(src=“192.168.0.1”,dst=“10.200.250.18”) Generación de paquetes
Crear un paquete desde cero, puede ser lioso si necesitamos introducir demasiados parámetros.  paquete=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”)/IP(src=“192.168.0.1”,dst=“10.200.250.18”) Podemos trabajar con varios “paquetes” de datos, cada uno en un tipo de capa Una vez creadas todas las capas, podemos apilarlas, generando un único paquete Apilado de capas Apilado de capas
paquete=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”)/IP(src=“192.168.0.1”,dst=“10.200.250.18”) Apilado de capas
capa2=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”) capa3=IP(src=“192.168.0.1”,dst=“10.200.250.18”) paquete=capa2/capa3 Apilado de capas
Evidentemente, es necesario ver de vez en cuando cómo está el paquete de datos en memoria y si lo hemos generado correctamente. Para visualizar los paquetes en memoria, tenemos 3 comandos:  show(), show2()  y  hexdump() Sintaxis: p.show()     Muestra el paquete en memoria p.show2()     Muestra el paquete rellenando los  campos que se deben autogenerar hexdump(p)     Vuelca el contenido hexadecimal Visualización Visualización
El comando  show()  nos muestra el contenido del paquete tal y como lo hemos introducido al generarlo. Es una función heredada en cada paquete de datos automáticamente NombreDelPaquete.show() Visualización
El comando  show2()  rellena automáticamente los campos que deben autogenerarse al enviarlo, como el checksum, para ver el paquete exacto que saldrá a la red NombreDelPaquete.show2() Visualización
Mediante  hexdump()  obtenemos el paquete de datos en formato hexadecimal, tal y como se mostraría en cualquier captura de red. Se le pasa como variable el nombre del paquete de datos Visualización
Una vez generado el paquete de datos, es necesario lanzarlo a la red, ya que para ello se ha creado. Podemos enviarlo como paquete de capa 2 o de capa 3, mediante los comandos  sendp()  y  send()  respectivamente. Estos comandos, generan automáticamente campos como el  Checksum.  Se le pasa como variable el nombre del paquete de datos. También podemos enviar varias veces el mismo paquete. Envío Envío
sendp(NombreDelPaquete) sendp(capa2) Envío
send(NombreDelPaquete) send(capa3) Envío
send([NombreDelPaquete]*NúmeroDeVeces) send([capa3]*10) Envío
Generar tráfico mandando paquetes de uno en uno, es lioso y complicado, aparte de lento. Por ello, podemos cargar una captura hecha con un  sniffer , tipo  Wireshark  o  tcpdump . De la misma manera, capturas modificadas con scapy pueden ser guardadas a un fichero pcap. Para ello, disponemos de los comando  rdpcap()  y  wrpcap() . También podemos capturar tráfico directamente con scapy, mediante  sniff() Manipulación de ficheros Manipulación de ficheros
rdpcap(NombreDelFichero) rdpcap(“capt.pcap”) Manipulación de ficheros
Para visualizar un único paquete, se trata como a un elemento de un array. NombreDelArray[NumeroDePaquete].show() captura[0].show() Manipulación de ficheros
Para guardar un paquete o un conjunto de paquetes en un fichero pcap, usamos  wrpcap() Debemos indicar el nombre del fichero y los datos a guardar. wrpcap(NombreDelFichero,Paquete/Array) wrpcap(“capt2.pcap”,paquete) Manipulación de ficheros
También es posible obtener directamente el tráfico de red con scapy, sin necesidad de importarlo de otros programas, mediante el comando  sniff Podemos indicar el número máximo de paquetes que queremos recibir o dejarlo obteniendo tráfico hasta pulsar Ctrl+c capturalarga=sniff() capturaacotada=sniff(50) Manipulación de ficheros
capturalarga=sniff() capturaacotada=sniff(50) Manipulación de ficheros
Cuando tenemos una captura completa y queremos modificar algún campo de algún paquete en concreto, tener que generar todo de nuevo mediante comandos sería extremadamente largo y tedioso. Tampoco podemos indicarle de nuevo el mismo protocolo, ya que lo duplicaría en el paquete o eliminaría el resto de capas. Para editar cualquier campo, es necesario indicar el paquete, el protocolo y el campo a editar. NombreDelPaquete[Protocolo].Campo=NuevoValor Edición de paquetes capturados Edición de paquetes capturados
paquete[IP].src=“172.16.0.1” Edición de paquetes capturados
capturalarga[0][Ether].dst=“ff:ff:ff:ff:ff:ff” Edición de paquetes capturados
De esta manera, podemos capturar tráfico entre equipos (STP, HSRP, VRRP…) y replicarlo cambiando valores, para realizar ataques, contraataques, manipulaciones en la elección de servidores, envenenamientos ARP, etc.) También generar paquetes desde cero para hacer ataques de  flooding  o de  spoofing , ya sea en ARP, DHCP, DNS) Edición de paquetes capturados
[object Object],[object Object],[object Object],[object Object],¿Preguntas? ¿Dudas?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Arroutada 18 – A Coruña 17 a 20 de Noviembre de 2011

Mais conteúdo relacionado

Mais procurados

Tcp Ip
Tcp IpTcp Ip
Tcp Ipbetzy
 
Routing Protocol EIGRP
Routing Protocol EIGRPRouting Protocol EIGRP
Routing Protocol EIGRPDmitry Figol
 
NDIS Packet of Death
NDIS Packet of DeathNDIS Packet of Death
NDIS Packet of Deathnitayart
 
UDP - User Datagram Protocol
UDP - User Datagram ProtocolUDP - User Datagram Protocol
UDP - User Datagram ProtocolPeter R. Egli
 
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerjlzo
 
Modelo de Referencia TCP/IP
Modelo de Referencia TCP/IPModelo de Referencia TCP/IP
Modelo de Referencia TCP/IPSuarezJhon
 
Comandos cli router
Comandos cli routerComandos cli router
Comandos cli routercyberleon95
 
SQL SERVER Service Broker
SQL SERVER Service BrokerSQL SERVER Service Broker
SQL SERVER Service Brokerbrobelo
 
Configuraciones básica en Router Cisco
Configuraciones básica en Router CiscoConfiguraciones básica en Router Cisco
Configuraciones básica en Router CiscoAXELELIANAMAVIZCA
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de redEdison Coimbra G.
 
Quality of-service configuration on cisco nexus
Quality of-service configuration on cisco nexusQuality of-service configuration on cisco nexus
Quality of-service configuration on cisco nexusAADISH BAHATI
 
Asynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureAsynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureJosé Paumard
 
Protocolo http
Protocolo httpProtocolo http
Protocolo httpmateomamis
 
Počítačové sítě I, lekce 7: Přístupové metody
Počítačové sítě I, lekce 7: Přístupové metodyPočítačové sítě I, lekce 7: Přístupové metody
Počítačové sítě I, lekce 7: Přístupové metodyJiří Peterka
 
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PGPgDay.Seoul
 
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Databricks
 
Sql injection utilizando método post
Sql injection utilizando método postSql injection utilizando método post
Sql injection utilizando método postTensor
 

Mais procurados (20)

Presentacion i c m p
Presentacion i c m pPresentacion i c m p
Presentacion i c m p
 
CUALES SON LOS PDU
CUALES SON LOS PDUCUALES SON LOS PDU
CUALES SON LOS PDU
 
Tcp Ip
Tcp IpTcp Ip
Tcp Ip
 
Labo fragmentación ip.
Labo fragmentación ip.Labo fragmentación ip.
Labo fragmentación ip.
 
Routing Protocol EIGRP
Routing Protocol EIGRPRouting Protocol EIGRP
Routing Protocol EIGRP
 
NDIS Packet of Death
NDIS Packet of DeathNDIS Packet of Death
NDIS Packet of Death
 
UDP - User Datagram Protocol
UDP - User Datagram ProtocolUDP - User Datagram Protocol
UDP - User Datagram Protocol
 
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+routerTodos+los+comandos+que+hay+que+saber+para+configurar+un+router
Todos+los+comandos+que+hay+que+saber+para+configurar+un+router
 
Modelo de Referencia TCP/IP
Modelo de Referencia TCP/IPModelo de Referencia TCP/IP
Modelo de Referencia TCP/IP
 
Comandos cli router
Comandos cli routerComandos cli router
Comandos cli router
 
SQL SERVER Service Broker
SQL SERVER Service BrokerSQL SERVER Service Broker
SQL SERVER Service Broker
 
Configuraciones básica en Router Cisco
Configuraciones básica en Router CiscoConfiguraciones básica en Router Cisco
Configuraciones básica en Router Cisco
 
4.1. Funciones de la capa de red
4.1. Funciones de la capa de red4.1. Funciones de la capa de red
4.1. Funciones de la capa de red
 
Quality of-service configuration on cisco nexus
Quality of-service configuration on cisco nexusQuality of-service configuration on cisco nexus
Quality of-service configuration on cisco nexus
 
Asynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFutureAsynchronous API in Java8, how to use CompletableFuture
Asynchronous API in Java8, how to use CompletableFuture
 
Protocolo http
Protocolo httpProtocolo http
Protocolo http
 
Počítačové sítě I, lekce 7: Přístupové metody
Počítačové sítě I, lekce 7: Přístupové metodyPočítačové sítě I, lekce 7: Přístupové metody
Počítačové sítě I, lekce 7: Přístupové metody
 
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG[Pgday.Seoul 2018]  이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
[Pgday.Seoul 2018] 이기종 DB에서 PostgreSQL로의 Migration을 위한 DB2PG
 
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
Dr. Elephant for Monitoring and Tuning Apache Spark Jobs on Hadoop with Carl ...
 
Sql injection utilizando método post
Sql injection utilizando método postSql injection utilizando método post
Sql injection utilizando método post
 

Destaque

La red de la Cantabria Net al descubierto
La red de la Cantabria Net al descubiertoLa red de la Cantabria Net al descubierto
La red de la Cantabria Net al descubiertoDavid Cristóbal
 
Instrumentosdemedicin11 3-140528181407-phpapp01
Instrumentosdemedicin11 3-140528181407-phpapp01Instrumentosdemedicin11 3-140528181407-phpapp01
Instrumentosdemedicin11 3-140528181407-phpapp01Margy Alejandra Hernandez
 
Fiona Lim - Why's Your Camera Bag so Heavy?
Fiona Lim - Why's Your Camera Bag so Heavy?Fiona Lim - Why's Your Camera Bag so Heavy?
Fiona Lim - Why's Your Camera Bag so Heavy?ShootFest
 
Sof&com
Sof&comSof&com
Sof&comosriva
 
Solestar Postkarte
Solestar PostkarteSolestar Postkarte
Solestar PostkarteSolestar
 
El Plan Andinia antes de la destrucción de Israel
El Plan Andinia antes de la destrucción de IsraelEl Plan Andinia antes de la destrucción de Israel
El Plan Andinia antes de la destrucción de IsraelRamón Copa
 
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...GeneXus
 
Telefonía móvil en áreas rurales: Oportunidades para la agricultura
Telefonía móvil en áreas rurales: Oportunidades para la agriculturaTelefonía móvil en áreas rurales: Oportunidades para la agricultura
Telefonía móvil en áreas rurales: Oportunidades para la agriculturaRIBDA 2009
 
Memoria 2009 Paideia ONG - Asociación Paideia
Memoria 2009 Paideia ONG - Asociación PaideiaMemoria 2009 Paideia ONG - Asociación Paideia
Memoria 2009 Paideia ONG - Asociación PaideiaPaideia Ong
 
E volve-barcelona 02-13
E volve-barcelona 02-13E volve-barcelona 02-13
E volve-barcelona 02-13fluential
 
Violeta parra -_run_run_se_fue_pal_norte
Violeta parra -_run_run_se_fue_pal_norteVioleta parra -_run_run_se_fue_pal_norte
Violeta parra -_run_run_se_fue_pal_norteFelipe Pacheco Herrera
 
Obra teatral; madre clarita sierva de dios TERMINADA
Obra teatral; madre clarita sierva de dios TERMINADAObra teatral; madre clarita sierva de dios TERMINADA
Obra teatral; madre clarita sierva de dios TERMINADALaura Rodriguez
 

Destaque (20)

Gumiparty 007
Gumiparty 007Gumiparty 007
Gumiparty 007
 
La red de la Cantabria Net al descubierto
La red de la Cantabria Net al descubiertoLa red de la Cantabria Net al descubierto
La red de la Cantabria Net al descubierto
 
Para ti sólo es un dvd
Para ti sólo es un dvdPara ti sólo es un dvd
Para ti sólo es un dvd
 
Instrumentosdemedicin11 3-140528181407-phpapp01
Instrumentosdemedicin11 3-140528181407-phpapp01Instrumentosdemedicin11 3-140528181407-phpapp01
Instrumentosdemedicin11 3-140528181407-phpapp01
 
Actividad3
Actividad3Actividad3
Actividad3
 
Fiona Lim - Why's Your Camera Bag so Heavy?
Fiona Lim - Why's Your Camera Bag so Heavy?Fiona Lim - Why's Your Camera Bag so Heavy?
Fiona Lim - Why's Your Camera Bag so Heavy?
 
Sof&com
Sof&comSof&com
Sof&com
 
Solestar Postkarte
Solestar PostkarteSolestar Postkarte
Solestar Postkarte
 
El Plan Andinia antes de la destrucción de Israel
El Plan Andinia antes de la destrucción de IsraelEl Plan Andinia antes de la destrucción de Israel
El Plan Andinia antes de la destrucción de Israel
 
Hassan sharaf c.v
Hassan sharaf c.vHassan sharaf c.v
Hassan sharaf c.v
 
Swiss Fluid SBV Ball Valve
Swiss Fluid SBV Ball ValveSwiss Fluid SBV Ball Valve
Swiss Fluid SBV Ball Valve
 
"Sustentabilidad"
"Sustentabilidad""Sustentabilidad"
"Sustentabilidad"
 
APR Ad
APR Ad APR Ad
APR Ad
 
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...
Payroll Diez - Cloud y Mobile: Experiencia con fábrica de software en Cuba - ...
 
Telefonía móvil en áreas rurales: Oportunidades para la agricultura
Telefonía móvil en áreas rurales: Oportunidades para la agriculturaTelefonía móvil en áreas rurales: Oportunidades para la agricultura
Telefonía móvil en áreas rurales: Oportunidades para la agricultura
 
Memoria 2009 Paideia ONG - Asociación Paideia
Memoria 2009 Paideia ONG - Asociación PaideiaMemoria 2009 Paideia ONG - Asociación Paideia
Memoria 2009 Paideia ONG - Asociación Paideia
 
EPA H2020 SC5 Info Day Book of Abstracts
 EPA H2020 SC5 Info Day Book of Abstracts EPA H2020 SC5 Info Day Book of Abstracts
EPA H2020 SC5 Info Day Book of Abstracts
 
E volve-barcelona 02-13
E volve-barcelona 02-13E volve-barcelona 02-13
E volve-barcelona 02-13
 
Violeta parra -_run_run_se_fue_pal_norte
Violeta parra -_run_run_se_fue_pal_norteVioleta parra -_run_run_se_fue_pal_norte
Violeta parra -_run_run_se_fue_pal_norte
 
Obra teatral; madre clarita sierva de dios TERMINADA
Obra teatral; madre clarita sierva de dios TERMINADAObra teatral; madre clarita sierva de dios TERMINADA
Obra teatral; madre clarita sierva de dios TERMINADA
 

Semelhante a Scapy. Generación y manipulación básica de paquetes de red

Comandos utilizados en redes anderson alvarado 6to computacion
Comandos utilizados en redes anderson alvarado 6to computacionComandos utilizados en redes anderson alvarado 6to computacion
Comandos utilizados en redes anderson alvarado 6to computacionAnder Alvarado
 
How to medidas de desempeño
How to medidas de desempeñoHow to medidas de desempeño
How to medidas de desempeñomiss051
 
Herramientas Administrativas de Red
Herramientas Administrativas de RedHerramientas Administrativas de Red
Herramientas Administrativas de Redcyberleon95
 
Herramientas de red de los sistemas operativos
Herramientas de red de los sistemas operativosHerramientas de red de los sistemas operativos
Herramientas de red de los sistemas operativosyoes1053
 
Añadir host a gns3
Añadir host a gns3Añadir host a gns3
Añadir host a gns3Guiro Lin
 
Comandos para redes
Comandos para redesComandos para redes
Comandos para redesguajiro27
 
Taller comandos para solucionar problemas en la red
Taller comandos para  solucionar problemas en la redTaller comandos para  solucionar problemas en la red
Taller comandos para solucionar problemas en la redguestf6e4f00
 
Administración de red servidores y seguridad
Administración de red servidores y seguridadAdministración de red servidores y seguridad
Administración de red servidores y seguridadEmilio
 
Airbase y KARMetasploit
Airbase y KARMetasploitAirbase y KARMetasploit
Airbase y KARMetasploitDaniel
 
Herramientas de seguridad SSI
Herramientas de seguridad SSIHerramientas de seguridad SSI
Herramientas de seguridad SSIxoanGz
 

Semelhante a Scapy. Generación y manipulación básica de paquetes de red (20)

Comandos de red
Comandos de redComandos de red
Comandos de red
 
Comandos de red
Comandos de redComandos de red
Comandos de red
 
Comandos utilizados en redes anderson alvarado 6to computacion
Comandos utilizados en redes anderson alvarado 6to computacionComandos utilizados en redes anderson alvarado 6to computacion
Comandos utilizados en redes anderson alvarado 6to computacion
 
How to medidas de desempeño
How to medidas de desempeñoHow to medidas de desempeño
How to medidas de desempeño
 
Curso Redes Linex 5
Curso Redes Linex 5Curso Redes Linex 5
Curso Redes Linex 5
 
Curso Redes Linex 5
Curso Redes Linex 5Curso Redes Linex 5
Curso Redes Linex 5
 
Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux
 
Herramientas Administrativas de Red
Herramientas Administrativas de RedHerramientas Administrativas de Red
Herramientas Administrativas de Red
 
7.herramientas de redes
7.herramientas de redes7.herramientas de redes
7.herramientas de redes
 
Herramientas de red de los sistemas operativos
Herramientas de red de los sistemas operativosHerramientas de red de los sistemas operativos
Herramientas de red de los sistemas operativos
 
Añadir host a gns3
Añadir host a gns3Añadir host a gns3
Añadir host a gns3
 
Comandos para redes
Comandos para redesComandos para redes
Comandos para redes
 
Taller comandos para solucionar problemas en la red
Taller comandos para  solucionar problemas en la redTaller comandos para  solucionar problemas en la red
Taller comandos para solucionar problemas en la red
 
Redes
RedesRedes
Redes
 
Administración de red servidores y seguridad
Administración de red servidores y seguridadAdministración de red servidores y seguridad
Administración de red servidores y seguridad
 
Informe laboratorio 1
Informe laboratorio 1Informe laboratorio 1
Informe laboratorio 1
 
Airbase y KARMetasploit
Airbase y KARMetasploitAirbase y KARMetasploit
Airbase y KARMetasploit
 
Snmp
SnmpSnmp
Snmp
 
Ejercicios de redes e internet 1
Ejercicios de redes e internet 1Ejercicios de redes e internet 1
Ejercicios de redes e internet 1
 
Herramientas de seguridad SSI
Herramientas de seguridad SSIHerramientas de seguridad SSI
Herramientas de seguridad SSI
 

Último

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (10)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Scapy. Generación y manipulación básica de paquetes de red

  • 1. Scapy Generación y manipulación básica de paquetes de red David Cristóbal López “ Osito” Arroutada 18 – A Coruña 17 a 20 de Noviembre de 2011
  • 2.
  • 3.
  • 4.
  • 5. Scapy es capaz de “diseccionar” la mayoría de protocolos que existen (IP, Ethernet, STP, HSRP…) Para ver todos los protocolos que soporta, se usa el comando ls() Protocolos Protocolos
  • 6. ARP ASN1_Packet BOOTP CookedLinux DHCP DNS DNSQR DNSRR Dot11 Dot11ATIM Dot11AssoReq Dot11AssoResp Dot11Auth Dot11Beacon Dot11Deauth Dot11Disas Dot11Elt Dot11ProbeReq Dot11ProbeResp Dot11QoS Dot11ReassoReq Dot11ReassoResp Dot11WEP Dot1Q Dot3 EAP EAPOL Ether GPRS GRE HCI_ACL_Hdr HCI_Hdr Protocolos HDLC HSRP ICMP ICMPerror IP IPerror IPv6 ISAKMP ISAKMP_class ISAKMP_payload ISAKMP_payload_Hash ISAKMP_payload_ID ISAKMP_payload_KE ISAKMP_payload_Nonce ISAKMP_payload_Proposal ISAKMP_payload_SA ISAKMP_payload_Transform ISAKMP_payload_VendorID IrLAPCommand IrLAPHead IrLMP L2CAP_CmdHdr L2CAP_CmdRej L2CAP_ConfReq L2CAP_ConfResp L2CAP_ConnReq L2CAP_ConnResp L2CAP_DisconnReq L2CAP_DisconnResp L2CAP_Hdr L2CAP_InfoReq L2CAP_InfoResp L2TP LLC MGCP MobileIP MobileIPRRP MobileIPRRQ MobileIPTunnelData NBNSNodeStatusResponse NBNSNodeStatusResponseEnd NBNSNodeStatusResponseService NBNSQueryRequest NBNSQueryResponse NBNSQueryResponseNegative NBNSRequest NBNSWackResponse NBTDatagram NBTSession NTP NetBIOS_DS NetflowHeader NetflowHeaderV1 NetflowRecordV1 NoPayload PPP PPP_ECP PPP_ECP_Option PPP_IPCP PPP_IPCP_Option PPPoE PPPoED Packet Padding PrismHeader RIP RIPEntry RTP RadioTap Radius Raw SMBMailSlot SMBNegociate_Protocol_Request_Header SMBNegociate_Protocol_Request_Tail SMBNegociate_Protocol_Response_Advanced_Security SMBNegociate_Protocol_Response_No_Security SMBNegociate_Protocol_Response_No_Security_No_Key SMBNetlogon_Protocol_Response_Header SMBNetlogon_Protocol_Response_Tail_LM20 SMBNetlogon_Protocol_Response_Tail_SAM SMBSession_Setup_AndX_Request SMBSession_Setup_AndX_Response SNAP SNMP SNMPbulk SNMPget SNMPinform SNMPnext SNMPresponse SNMPset SNMPtrapv1 SNMPtrapv2 SNMPvarbind STP SebekHead SebekV1 SebekV2 SebekV2Sock SebekV3 SebekV3Sock Skinny TCP TCPerror TFTP TFTP_ACK TFTP_DATA TFTP_ERROR TFTP_OACK TFTP_Option TFTP_Options TFTP_RRQ TFTP_WRQ UDP UDPerror X509Cert X509RDN X509v3Ext _IPv6OptionHeader Scapy 1.2.0.2 – 150 protocolos
  • 7. Para el control de Scapy, disponemos de varios comandos, que pueden ser listados con el comando lsc() Comandos Comandos
  • 8. Hay comandos que no se muestran en la ayuda, como los de gestión de ficheros (rdpcap, wrpcap) o los de mostrar gráficos (psdump, pdfdump) La disponibilidad de muchos de los comandos, depende de si están instaladas las librerías adicionales para dar esa funcionalidad (desencriptación WEP, dibujo, …) Algunas de las extensiones sólo están disponibles para Linux Comandos
  • 9. Para generar paquetes, hay que utilizar los protocolos antes mencionados. Se pueden generar paquetes tanto de capa 2 (Ethernet) como de capa 3 (IP), necesarios para la comunicación. Después, se añaden el resto de protocolos que necesitemos Generación de paquetes Generación de paquetes
  • 10. Para generar datos de paquete de capa 2, utilizamos el protocolo Ethernet, abreviado como Ether(), indicando MAC de origen (src) y de destino (dst). Para introducir ambos campos, se separan por una coma (,) capa2=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”) Generación de paquetes
  • 11. En capa 3, tenemos más campos dentro del comando, aparte de un campo de checksum. Éste campo puede rellenarse o no, ya que se puede generar al momento de enviarse capa3=IP(src=“192.168.0.1”,dst=“10.200.250.18”) Generación de paquetes
  • 12. Crear un paquete desde cero, puede ser lioso si necesitamos introducir demasiados parámetros. paquete=Ether(src=“00:00:0c:12:34:56”,dst=“00:fa:ba:da:00:01”)/IP(src=“192.168.0.1”,dst=“10.200.250.18”) Podemos trabajar con varios “paquetes” de datos, cada uno en un tipo de capa Una vez creadas todas las capas, podemos apilarlas, generando un único paquete Apilado de capas Apilado de capas
  • 15. Evidentemente, es necesario ver de vez en cuando cómo está el paquete de datos en memoria y si lo hemos generado correctamente. Para visualizar los paquetes en memoria, tenemos 3 comandos: show(), show2() y hexdump() Sintaxis: p.show()  Muestra el paquete en memoria p.show2()  Muestra el paquete rellenando los campos que se deben autogenerar hexdump(p)  Vuelca el contenido hexadecimal Visualización Visualización
  • 16. El comando show() nos muestra el contenido del paquete tal y como lo hemos introducido al generarlo. Es una función heredada en cada paquete de datos automáticamente NombreDelPaquete.show() Visualización
  • 17. El comando show2() rellena automáticamente los campos que deben autogenerarse al enviarlo, como el checksum, para ver el paquete exacto que saldrá a la red NombreDelPaquete.show2() Visualización
  • 18. Mediante hexdump() obtenemos el paquete de datos en formato hexadecimal, tal y como se mostraría en cualquier captura de red. Se le pasa como variable el nombre del paquete de datos Visualización
  • 19. Una vez generado el paquete de datos, es necesario lanzarlo a la red, ya que para ello se ha creado. Podemos enviarlo como paquete de capa 2 o de capa 3, mediante los comandos sendp() y send() respectivamente. Estos comandos, generan automáticamente campos como el Checksum. Se le pasa como variable el nombre del paquete de datos. También podemos enviar varias veces el mismo paquete. Envío Envío
  • 23. Generar tráfico mandando paquetes de uno en uno, es lioso y complicado, aparte de lento. Por ello, podemos cargar una captura hecha con un sniffer , tipo Wireshark o tcpdump . De la misma manera, capturas modificadas con scapy pueden ser guardadas a un fichero pcap. Para ello, disponemos de los comando rdpcap() y wrpcap() . También podemos capturar tráfico directamente con scapy, mediante sniff() Manipulación de ficheros Manipulación de ficheros
  • 25. Para visualizar un único paquete, se trata como a un elemento de un array. NombreDelArray[NumeroDePaquete].show() captura[0].show() Manipulación de ficheros
  • 26. Para guardar un paquete o un conjunto de paquetes en un fichero pcap, usamos wrpcap() Debemos indicar el nombre del fichero y los datos a guardar. wrpcap(NombreDelFichero,Paquete/Array) wrpcap(“capt2.pcap”,paquete) Manipulación de ficheros
  • 27. También es posible obtener directamente el tráfico de red con scapy, sin necesidad de importarlo de otros programas, mediante el comando sniff Podemos indicar el número máximo de paquetes que queremos recibir o dejarlo obteniendo tráfico hasta pulsar Ctrl+c capturalarga=sniff() capturaacotada=sniff(50) Manipulación de ficheros
  • 29. Cuando tenemos una captura completa y queremos modificar algún campo de algún paquete en concreto, tener que generar todo de nuevo mediante comandos sería extremadamente largo y tedioso. Tampoco podemos indicarle de nuevo el mismo protocolo, ya que lo duplicaría en el paquete o eliminaría el resto de capas. Para editar cualquier campo, es necesario indicar el paquete, el protocolo y el campo a editar. NombreDelPaquete[Protocolo].Campo=NuevoValor Edición de paquetes capturados Edición de paquetes capturados
  • 32. De esta manera, podemos capturar tráfico entre equipos (STP, HSRP, VRRP…) y replicarlo cambiando valores, para realizar ataques, contraataques, manipulaciones en la elección de servidores, envenenamientos ARP, etc.) También generar paquetes desde cero para hacer ataques de flooding o de spoofing , ya sea en ARP, DHCP, DNS) Edición de paquetes capturados
  • 33.
  • 34.