Comenzaría adquiriendo el código fuente, si está disponible, y lo estudiaría. Me centraría especialmente en los lugares donde acepta la entrada de los clientes de la red, y trataría de encontrar suposiciones sobre la naturaleza de la entrada y cómo enviarle datos que no se ajustan a los supuestos podría hacer que haga algo más que finalidad prevista. Particularmente, busque suposiciones sobre la longitud de los datos de entrada y dónde podría desbordar cualquier búfer que se use para contener la entrada. Además, cualquier suposición sobre el formato de los datos. Si el servidor supone que siempre hay un cierto patrón de bytes, lo que hace cuando no se cumple el supuesto podría ser un vector para la explotación.
Muchas de estas cosas pueden explorarse empíricamente, configurando un cliente para enviar flujos de datos no conformes al servidor y observar el comportamiento. Si tiene acceso al servidor y sus registros, este será un esfuerzo más productivo. De lo contrario, será bastante difícil y llevará mucho tiempo. El tiempo y la carga del servidor pueden ser un factor contribuyente, por lo que la preparación de varios clientes para acceder simultáneamente al servidor puede ayudar en los descubrimientos.
Simplemente sondear con herramientas estándar disponibles puede revelar algunas cosas como primer paso.
- Cómo resolver redes lentas
- ¿Cuál es la diferencia entre el enrutamiento basado en políticas y la optimización de WAN?
- ¿Cuáles son los diversos estándares de red?
- ¿Dónde ubicamos un concentrador, conmutador o repetidor en una red con cuatro edificios? ¿Cuál es la lógica?
- ¿Hay alguna manera de hackear una red WiFi y conocer su contraseña?