Cómo encontrar lagunas en un servidor de red

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.