Creación de un protocolo de comunicación propio con Scapy (II)

En el post anterior implementamos la estructura de nuestro protocolo, en esta segunda parte veremos como utilizarlo.

Ahora vamos a implementar el envío y la recepción de paquetes con nuestro protocolo, por parte del servidor además explicaremos cómo evaluar los campos del protocolo para responder según el identificador de la pregunta. Por parte del cliente explicaremos cómo acceder a un field del protocolo y mostrarlo por pantalla.

Modificamos el main del cliente, quedando el código como se muestra a continuación:

client.py

def main():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((TCP_IP, TCP_DPORT))
        socketsr1 = StreamSocket(s, Pedro)
        packet_to_send = Pedro(direction=0, service=1)/PedroReqYourName(name_number=NAME)
        ans = socketsr1.sr1(packet_to_send, timeout=2, verbose=False)
        server_name = ans.getlayer("PedroRespYourName").sprintf("%own_name%")
        print('Server name: {}').format(server_name)
        s.close()
    except Exception as client_error:
        print('Error: {}').format(client_error)

[Read more…]

Creación de un protocolo de comunicación propio con Scapy (I)

En esta entrada veremos cómo implementar un protocolo de comunicación de red utilizando la pila TPC/IP. Utilizaremos el protocolo TCP en la capa de transporte y para la capa de Aplicación utilizaremos el nuevo protocolo donde viajarán nuestros datos.

Para implementar nuestro propio protocolo tendremos que “picar” código y para ello he elegido como lenguaje de programación Python en su versión 2.7, pues utilizaremos las librerías del software Scapy que nos permitirá generar y entender los paquetes con los que trabajaremos.

Una mejor explicación, Scapy es un software que permite la manipulación interactiva de paquetes, también tiene implementado un gran abanico de protocolos de red. Además, este programa permite diseccionar, construir, enviar y recibir paquetes de red.
[Read more…]

Capture The Flag

CTFEn éste mi primer post, os hablaré acerca de cómo poner en práctica las habilidades de hacking de una persona. Para ello existen múltiples plataformas que permiten que cualquiera mediante una serie de desafíos con diferentes niveles de dificultad, obtenga una visión de su nivel en cuanto a habilidades de seguridad informática se refiere.

[Read more…]